58 lines
2.0 KiB
C++
58 lines
2.0 KiB
C++
#include "TownConfig.h"
|
|
#include "Asset/AssetManager.h"
|
|
#include "Tool/Tool_String.h"
|
|
namespace GlobalTownScript
|
|
{
|
|
std::map<int, std::string> InitTownLst()
|
|
{
|
|
std::map<int, std::string> 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;
|
|
}
|
|
} |