This commit is contained in:
aozhiwei 2021-03-25 17:13:46 +08:00
parent 6d9f77e14f
commit a22e67c927

View File

@ -63,6 +63,7 @@ public:
std::list<metatable::AI> ai_meta_list;
std::list<MetaData::AI> ai_list;
std::list<metatable::Text> text_meta_list;
std::list<metatable::TerrainJson> terrain_meta_list;
std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash;
@ -76,7 +77,6 @@ public:
std::map<int, MetaData::Building*> building_hash;
std::map<int, MetaData::Drop*> drop_hash;
std::map<std::string, std::list<metatable::MapTplThingJson>> maptpl_meta_hash;
std::map<int, metatable::TerrainJson> terrain_meta_hash;
std::map<std::string, std::list<metatable::MapLayerJson>> layer_meta_hash;
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
std::map<int, MetaData::Dress*> dress_hash;
@ -143,6 +143,7 @@ public:
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
f8::ReadCsvMetaFile(res_path + "ai@ai.csv", ai_meta_list);
f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list);
f8::ReadJsonMetaFile(res_path + "terrain.json", terrain_meta_list);
BindToMetaData();
#if 1
{
@ -445,14 +446,26 @@ private:
#if 1
{
for (auto& tuple : item.template_list) {
auto itr = maptpl_meta_hash.find(std::get<0>(tuple));
if (itr == maptpl_meta_hash.end()) {
maptpl_meta_hash[std::get<0>(tuple)] = std::list<metatable::MapTplThingJson>();
itr = maptpl_meta_hash.find(std::get<0>(tuple));
} else {
itr->second.clear();
{
auto itr = maptpl_meta_hash.find(std::get<0>(tuple));
if (itr == maptpl_meta_hash.end()) {
maptpl_meta_hash[std::get<0>(tuple)] = std::list<metatable::MapTplThingJson>();
itr = maptpl_meta_hash.find(std::get<0>(tuple));
} else {
itr->second.clear();
}
f8::ReadJsonMetaFile(res_path + std::get<0>(tuple) + ".json", itr->second);
}
{
auto itr = layer_meta_hash.find(std::get<0>(tuple));
if (itr == layer_meta_hash.end()) {
layer_meta_hash[std::get<0>(tuple)] = std::list<metatable::MapLayerJson>();
itr = layer_meta_hash.find(std::get<0>(tuple));
} else {
itr->second.clear();
}
f8::ReadJsonMetaFile(res_path + std::get<0>(tuple) + ".layers.json", itr->second);
}
f8::ReadJsonMetaFile(res_path + std::get<0>(tuple) + ".json", itr->second);
}
}
#endif
@ -742,8 +755,12 @@ std::vector<MetaData::MapTplThing>* MetaMgr::GetMapTplThing(std::string& map_nam
metatable::TerrainJson* MetaMgr::GetTerrainJson(int map_id)
{
auto itr = loader_->terrain_meta_hash.find(map_id);
return itr != loader_->terrain_meta_hash.end() ? &itr->second : nullptr;
for (auto& itr : loader_->terrain_meta_list) {
if (itr.map_id() == map_id) {
return &itr;
}
}
return nullptr;
}
std::list<metatable::MapLayerJson>* MetaMgr::GetMapLayer(std::string& map_name)