Savier is a save system wrote for RII programming language.
Go to file
Murii 87acf68683 version 2.0 2018-11-29 00:30:46 +02:00
src version 2.0 2018-11-29 00:30:46 +02:00
system_packages version 2.0 2018-11-29 00:30:46 +02:00
License.md init 2018-11-25 15:21:17 +02:00
README.md version 2.0 2018-11-29 00:30:46 +02:00
run.sh version 2.0 2018-11-29 00:30:46 +02:00

README.md

priv data:char* = """[
player:{
player_x=200;
player_y=300;
    minor:{
    a=1;
    b=3;
    }
    
    minor2:{
    hah=  vlad;
        minor2_sub_minor1:{
            heh=dalv;
        }
        minor2_sub_minor2:{
            heha=lvda;
        }
    } 
}

enemy:{
    damage=10;
    speed=120;
}
""";


priv func print_sub_parent(parent:save_data_parent*) {
    for (i := 0; i < parent.sub_parents; i++) {
        p:save_data_parent* = parent.sub_parent[i]; 
        print_paires(p);
        if (p.has_sub_parent) {
            print_sub_parent(p);
        }
    }
}


priv func print_paires(parent:save_data_parent*) {
    for (i := 0; i < parent.total; i++) {
        printf("Key: %s, Value: %s in parent: %s, id: %zu \n", parent.keys[i], parent.values[i], parent.name, parent.id);
    }
}


priv func print_parent(parent:save_data_parent*) {
    print_paires(parent);
    if (parent.has_sub_parent) {
       print_sub_parent(parent);
    }
}


priv func print_all(save:save_data*) {
    for (i := 0; i < save.total_parents; i++) {
        p:save_data_parent* = save.parents[i];
        print_parent(p);
    }
}


func main(argc:int, argv:char**):int {

	save:save_data;
	save_data_init(&save, "player.stat"); //Creates and overrides file "player.stat" 

    manually:char* = save_data_serialize_parent("programatically1", "foo", "42", "", 32);
    manually2:char* = save_data_serialize_parent("programatically2", "foo", "42", manually, 64);

	save_data_write(&save, data, true);
	save_data_write(&save, manually, false);
	save_data_write(&save, manually2, false);
	save_data_write(&save, "]", false);

	// Read back what we have saved 
	save_data_read(&save);	

    printf("Total parents: %zu\n", save.total_parents);

    print_all(&save);    	

    save_data_free(&save);
    free(manually);
    free(manually2);
	return 0;
}