mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-17 08:57:09 +00:00
Added project settings dialog; added build name lookup functionality
This commit is contained in:
@@ -41,10 +41,25 @@ void CGameInfo::Serialize(IArchive& rArc)
|
||||
}
|
||||
|
||||
// Serialize data
|
||||
rArc << SERIAL_CONTAINER("GameBuilds", mBuilds, "Build");
|
||||
|
||||
if (mGame <= ePrime)
|
||||
rArc << SERIAL_CONTAINER("AreaNameMap", mAreaNameMap, "AreaName");
|
||||
}
|
||||
|
||||
TString CGameInfo::GetBuildName(float BuildVer, ERegion Region) const
|
||||
{
|
||||
for (u32 iBuild = 0; iBuild < mBuilds.size(); iBuild++)
|
||||
{
|
||||
const SBuildInfo& rkBuildInfo = mBuilds[iBuild];
|
||||
|
||||
if (rkBuildInfo.Version == BuildVer && rkBuildInfo.Region == Region)
|
||||
return rkBuildInfo.Name;
|
||||
}
|
||||
|
||||
return "Unknown Build";
|
||||
}
|
||||
|
||||
TString CGameInfo::GetAreaName(const CAssetID &rkID) const
|
||||
{
|
||||
auto Iter = mAreaNameMap.find(rkID);
|
||||
|
||||
@@ -14,6 +14,22 @@ const TString gkGameInfoExt = "xml";
|
||||
class CGameInfo
|
||||
{
|
||||
EGame mGame;
|
||||
|
||||
// List of known builds of each game
|
||||
struct SBuildInfo
|
||||
{
|
||||
float Version;
|
||||
ERegion Region;
|
||||
TString Name;
|
||||
|
||||
void Serialize(IArchive& rArc)
|
||||
{
|
||||
rArc << SERIAL_AUTO(Version) << SERIAL_AUTO(Region) << SERIAL_AUTO(Name);
|
||||
}
|
||||
};
|
||||
std::vector<SBuildInfo> mBuilds;
|
||||
|
||||
// List of internal area names; used for MP1 which doesn't store area names in the MLVL
|
||||
std::map<CAssetID, TString> mAreaNameMap;
|
||||
|
||||
public:
|
||||
@@ -26,6 +42,7 @@ public:
|
||||
bool SaveGameInfo(TString Path = "");
|
||||
void Serialize(IArchive& rArc);
|
||||
|
||||
TString GetBuildName(float BuildVer, ERegion Region) const;
|
||||
TString GetAreaName(const CAssetID& rkID) const;
|
||||
|
||||
// Accessors
|
||||
|
||||
@@ -104,6 +104,8 @@ public:
|
||||
inline CGameInfo* GameInfo() const { return mpGameInfo; }
|
||||
inline CAudioManager* AudioManager() const { return mpAudioManager; }
|
||||
inline EGame Game() const { return mGame; }
|
||||
inline ERegion Region() const { return mRegion; }
|
||||
inline TString GameID() const { return mGameID; }
|
||||
inline float BuildVersion() const { return mBuildVersion; }
|
||||
inline bool IsWiiBuild() const { return mBuildVersion >= 3.f; }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user