90 lines
1.8 KiB
Markdown
90 lines
1.8 KiB
Markdown
```
|
|
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;
|
|
}
|
|
|
|
```
|