#include "TownConfig.h" #include "Asset/AssetManager.h" #include "Tool/Tool_String.h" namespace GlobalTownScript { std::map InitTownLst() { std::map TownList; ScriptData Data = AssetManager::GetInstance().GetScriptInfo("town/town.lst"); while (!Data.IsEnd()) { std::string Index = Data.Get(); std::string MonsterPath = std::string("town/") + Tool_toLowerCase(Data.Get()); TownList[std::stoi(Index)] = MonsterPath; } return TownList; } TownConfig *GetTownConfig(std::string TownPath) { TownConfig *Config = new TownConfig(); ScriptData Data = AssetManager::GetInstance().GetScriptInfo(TownPath); while (!Data.IsEnd()) { std::string Segment = Data.Get(); if (Segment == "[entering title]") { Config->Entering_Title = "sprite/" + Tool_toLowerCase(Data.Get()); } else if (Segment == "[cutscene image]") { Config->Entering_Cutscene = "sprite/" + Tool_toLowerCase(Data.Get()); } else if (Segment == "[area]") { int Index = std::stoi(Data.Get()); std::string MapPath = "map/" + Tool_toLowerCase(Data.Get()); std::string TypeBuffer = Data.Get(); std::string Type = TypeBuffer.substr(1, TypeBuffer.size() - 2); int GenerateXPos = -1; int GenerateYPos = -1; if (Type == "gate") { GenerateXPos = std::stoi(Data.Get()); GenerateYPos = std::stoi(Data.Get()); } Config->AreaLst[Index] = AreaConfig{MapPath, Type, GenerateXPos, GenerateYPos}; } else if (Segment == "[name]") { Config->TownName = Data.Get(); } } return Config; } }