void DynamicDataLoader::initialize() { reset(); // all of the applicable types that can be loaded, along with their loading functions // Add to this as needed with new StaticFunctionAccessors or new ClassFunctionAccessors for new applicable types // Static Function Access type_function_map["material"] = new StaticFunctionAccessor(&material_type::load_material); type_function_map["bionic"] = new StaticFunctionAccessor(&load_bionic); type_function_map["profession"] = new StaticFunctionAccessor(&profession::load_profession); type_function_map["skill"] = new StaticFunctionAccessor(&Skill::load_skill); type_function_map["dream"] = new StaticFunctionAccessor(&load_dream); type_function_map["mutation"] = new StaticFunctionAccessor(&load_mutation); type_function_map["lab_note"] = new StaticFunctionAccessor(&computer::load_lab_note); type_function_map["hint"] = new StaticFunctionAccessor(&load_hint); type_function_map["furniture"] = new StaticFunctionAccessor(&load_furniture); type_function_map["terrain"] = new StaticFunctionAccessor(&load_terrain); type_function_map["monstergroup"] = new StaticFunctionAccessor( &MonsterGroupManager::LoadMonsterGroup); type_function_map["MONSTER_BLACKLIST"] = new StaticFunctionAccessor( &MonsterGroupManager::LoadMonsterBlacklist); type_function_map["MONSTER_WHITELIST"] = new StaticFunctionAccessor( &MonsterGroupManager::LoadMonsterWhitelist); type_function_map["speech"] = new StaticFunctionAccessor(&load_speech); type_function_map["ammunition_type"] = new StaticFunctionAccessor(&ammunition_type::load_ammunition_type); //data/json/colors.json would be listed here, but it's loaded before the others (see curses_start_color()) // Non Static Function Access type_function_map["snippet"] = new ClassFunctionAccessor<snippet_library>(&SNIPPET, &snippet_library::load_snippet); type_function_map["item_group"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_group); type_function_map["vehicle_part"] = new ClassFunctionAccessor<game>(g, &game::load_vehiclepart); type_function_map["vehicle"] = new ClassFunctionAccessor<game>(g, &game::load_vehicle); type_function_map["trap"] = new ClassFunctionAccessor<game>(g, &game::load_trap); type_function_map["AMMO"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_ammo); type_function_map["GUN"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_gun); type_function_map["ARMOR"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_armor); type_function_map["TOOL"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_tool); type_function_map["TOOL_ARMOR"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_tool_armor); type_function_map["BOOK"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_book); type_function_map["COMESTIBLE"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_comestible); type_function_map["CONTAINER"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_container); type_function_map["GUNMOD"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_gunmod); type_function_map["GENERIC"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_generic); type_function_map["BIONIC_ITEM"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_bionic); type_function_map["VAR_VEH_PART"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_veh_part); type_function_map["ITEM_CATEGORY"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_category); type_function_map["MONSTER"] = new ClassFunctionAccessor<MonsterGenerator> (&MonsterGenerator::generator(), &MonsterGenerator::load_monster); type_function_map["SPECIES"] = new ClassFunctionAccessor<MonsterGenerator> (&MonsterGenerator::generator(), &MonsterGenerator::load_species); type_function_map["recipe_category"] = new StaticFunctionAccessor(&load_recipe_category); type_function_map["recipe"] = new StaticFunctionAccessor(&load_recipe); type_function_map["tool_quality"] = new StaticFunctionAccessor(&load_quality); type_function_map["technique"] = new StaticFunctionAccessor(&load_technique); type_function_map["martial_art"] = new StaticFunctionAccessor(&load_martial_art); type_function_map["effect_type"] = new StaticFunctionAccessor(&load_effect_type); type_function_map["tutorial_messages"] = new StaticFunctionAccessor(&load_tutorial_messages); type_function_map["overmap_terrain"] = new StaticFunctionAccessor(&load_overmap_terrain); type_function_map["construction"] = new StaticFunctionAccessor(&load_construction); type_function_map["mapgen"] = new StaticFunctionAccessor(&load_mapgen); type_function_map["monitems"] = new ClassFunctionAccessor<game>(g, &game::load_monitem); type_function_map["region_settings"] = new StaticFunctionAccessor(&load_region_settings); type_function_map["ITEM_BLACKLIST"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_blacklist); type_function_map["ITEM_WHITELIST"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_whitelist); // ...unimplemented? type_function_map["INSTRUMENT"] = new StaticFunctionAccessor(&load_ingored_type); // loaded earlier. type_function_map["colordef"] = new StaticFunctionAccessor(&load_ingored_type); // mod information, ignored, handled by the mod manager type_function_map["MOD_INFO"] = new StaticFunctionAccessor(&load_ingored_type); // init maps used for loading json data init_martial_arts(); }
void init_data_structures() { // all of the applicable types that can be loaded, along with their loading functions // Add to this as needed with new StaticFunctionAccessors or new ClassFunctionAccessors for new applicable types // Static Function Access type_function_map["material"] = new StaticFunctionAccessor(&material_type::load_material); type_function_map["bionic"] = new StaticFunctionAccessor(&load_bionic); type_function_map["profession"] = new StaticFunctionAccessor(&profession::load_profession); type_function_map["skill"] = new StaticFunctionAccessor(&Skill::load_skill); type_function_map["dream"] = new StaticFunctionAccessor(&load_dream); type_function_map["mutation"] = new StaticFunctionAccessor(&load_mutation); type_function_map["lab_note"] = new StaticFunctionAccessor(&computer::load_lab_note); type_function_map["hint"] = new StaticFunctionAccessor(&load_hint); type_function_map["furniture"] = new StaticFunctionAccessor(&load_furniture); type_function_map["terrain"] = new StaticFunctionAccessor(&load_terrain); type_function_map["monstergroup"] = new StaticFunctionAccessor(&MonsterGroupManager::LoadMonsterGroup); type_function_map["speech"] = new StaticFunctionAccessor(&load_speech); //data/json/colors.json would be listed here, but it's loaded before the others (see curses_start_color()) // Non Static Function Access type_function_map["snippet"] = new ClassFunctionAccessor<snippet_library>(&SNIPPET, &snippet_library::load_snippet); type_function_map["item_group"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_group); type_function_map["vehicle_part"] = new ClassFunctionAccessor<game>(g, &game::load_vehiclepart); type_function_map["vehicle"] = new ClassFunctionAccessor<game>(g, &game::load_vehicle); type_function_map["trap"] = new ClassFunctionAccessor<game>(g, &game::load_trap); type_function_map["AMMO"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_ammo); type_function_map["GUN"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_gun); type_function_map["ARMOR"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_armor); type_function_map["TOOL"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_tool); type_function_map["BOOK"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_book); type_function_map["COMESTIBLE"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_comestible); type_function_map["CONTAINER"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_container); type_function_map["GUNMOD"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_gunmod); type_function_map["GENERIC"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_generic); type_function_map["ITEM_CATEGORY"] = new ClassFunctionAccessor<Item_factory>(item_controller, &Item_factory::load_item_category); type_function_map["MONSTER"] = new ClassFunctionAccessor<MonsterGenerator>(&MonsterGenerator::generator(), &MonsterGenerator::load_monster); type_function_map["SPECIES"] = new ClassFunctionAccessor<MonsterGenerator>(&MonsterGenerator::generator(), &MonsterGenerator::load_species); type_function_map["recipe_category"] = new StaticFunctionAccessor(&load_recipe_category); type_function_map["recipe_subcategory"] = new StaticFunctionAccessor(&load_recipe_subcategory); type_function_map["recipe"] = new StaticFunctionAccessor(&load_recipe); type_function_map["tool_quality"] = new StaticFunctionAccessor(&load_quality); type_function_map["technique"] = new StaticFunctionAccessor(&load_technique); type_function_map["martial_art"] = new StaticFunctionAccessor(&load_martial_art); type_function_map["effect_type"] = new StaticFunctionAccessor(&load_effect_type); type_function_map["tutorial_messages"] = new StaticFunctionAccessor(&load_tutorial_messages); type_function_map["overmap_terrain"] = new StaticFunctionAccessor(&load_overmap_terrain); type_function_map["construction"] = new StaticFunctionAccessor(&load_construction); type_function_map["mapgen"] = new StaticFunctionAccessor(&load_mapgen); type_function_map["monitems"] = new ClassFunctionAccessor<game>(g, &game::load_monitem); mutations_category[""].clear(); init_body_parts(); init_ter_bitflags_map(); init_vpart_bitflag_map(); init_translation(); init_martial_arts(); init_colormap(); init_artifacts(); init_mapgen_builtin_functions(); }