eolLevelLayer *eol_level_build_layer_from_key(eolKeychain *key,eolLevel *level) { eolLevelLayer *layer = NULL; eolKeychain *bkey = NULL; if (!key)return NULL; layer = eol_level_layer_new(); if (!layer)return NULL; if (!level)return NULL; eol_keychain_get_hash_value_as_line(layer->idName,key,"idName"); eol_keychain_get_hash_value_as_orientation(&layer->ori,key,"ori"); eol_keychain_get_hash_value_as_rectfloat(&layer->bounds,key,"bounds"); eol_keychain_get_hash_value_as_bool(&layer->usesClipMesh,key,"usesClipMesh"); eol_keychain_get_hash_value_as_bool(&layer->usesTileMap,key,"usesTileMap"); layer->keys = eol_keychain_clone(eol_keychain_get_hash_value(key,"keys")); bkey = eol_keychain_get_hash_value(key,"backgrounds"); if (bkey) { eol_level_build_backgrounds_from_keychain(layer,bkey); } bkey = eol_keychain_get_hash_value(key,"tileMap"); if (bkey) { layer->tileMap = eol_tile_map_build_from_definition(bkey,level->tileSet); } /* GList * spawnList; */ return layer; }
eolBool eol_config_get_orientation_by_tag( eolOrientation * output, eolConfig * conf, eolLine tag ) { g_return_val_if_fail(conf, eolFalse); g_return_val_if_fail(output, eolFalse); return eol_keychain_get_hash_value_as_orientation(output, conf->_node, tag); }
eolSpawn *eol_spawn_create_from_keychain(eolKeychain *conf) { eolSpawn *spawn; if (!conf)return NULL; spawn = eol_spawn_new(); if (!spawn)return NULL; spawn->keys = eol_keychain_get_hash_value(conf,"keys"); eol_keychain_get_hash_value_as_orientation(&spawn->ori, conf, "ori"); eol_keychain_get_hash_value_as_uint(&spawn->id, conf, "id"); eol_keychain_get_hash_value_as_line(spawn->type, conf, "type"); return spawn; }
void eol_level_build_backgrounds_from_keychain(eolLevelLayer *layer,eolKeychain *keychain) { eolBackground backTemp, *newBack; int i,count; eolKeychain *key; if ((!layer)||(!keychain))return; count = eol_keychain_get_list_count(keychain); for (i = 0;i < count;i++) { key = eol_keychain_get_list_nth(keychain, i); if (!key)continue; if ((eol_keychain_get_hash_value_as_orientation(&backTemp.ori,key,"ori")) && (eol_keychain_get_hash_value_as_line(backTemp.modelFile,key,"modelFile")) && (eol_keychain_get_hash_value_as_float(&backTemp.followCam,key,"followCam"))) { newBack = eol_level_add_background_to_layer(layer); eol_orientation_copy(&newBack->ori,backTemp.ori); eol_line_cpy(newBack->modelFile,backTemp.modelFile); newBack->followCam = backTemp.followCam; eol_keychain_get_hash_value_as_bool(&newBack->useAsClip,key,"useAsClip"); eol_keychain_get_hash_value_as_bool(&newBack->hidden,key,"hidden"); } } }