eolBool eol_level_build_save_keychain(eolLevel *level,eolKeychain *keys) { GList *l; eolKeychain *layers; eolKeychain *key; if ((!level)||(!keys))return eolFalse; eol_keychain_hash_insert(keys,"idName",eol_keychain_new_string(level->idName)); eol_keychain_hash_insert(keys,"layerCount",eol_keychain_new_uint(level->layerCount)); eol_keychain_hash_insert(keys,"spawnPool",eol_keychain_new_uint(level->spawnPool)); eol_keychain_hash_insert(keys,"active",eol_keychain_new_uint(level->active)); eol_keychain_hash_insert(keys,"cameraDist",eol_keychain_new_float(level->cameraDist)); key = eol_keychain_clone(level->keys); if (key != NULL) { eol_keychain_hash_insert(keys,"keys",key); } key = eol_tile_set_build_keychain(level->tileSet); if (key != NULL) { eol_keychain_hash_insert(keys,"tileSet",key); } layers = eol_keychain_new_list(); for (l = level->layers;l != NULL;l = l->next) { eol_keychain_list_append(layers,eol_level_build_layer_keychain(l->data)); } eol_keychain_hash_insert(keys,"layers",layers); return eolTrue; }
eolKeychain *eol_spawn_build_keychain(eolSpawn *spawn) { eolKeychain * spawnKey = NULL; if (!spawn)return NULL; spawnKey = eol_keychain_new_hash(); if (!spawnKey)return NULL; eol_keychain_hash_insert(spawnKey,"type",eol_keychain_new_string(spawn->type)); eol_keychain_hash_insert(spawnKey,"id",eol_keychain_new_uint(spawn->id)); eol_keychain_hash_insert(spawnKey,"ori",eol_keychain_new_orientation(spawn->ori)); eol_keychain_hash_insert(spawnKey,"keys",eol_keychain_clone(spawn->keys)); return spawnKey; }