From 7da0cdb8a343a15b6fec4a625f2484fe05b05d8c Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 10 Jun 2020 18:04:38 -0400 Subject: [PATCH] CGameInfo: Make file-scope strings non-allocating Same behavior, minus any potential heap allocations and static constructors. --- src/Core/GameProject/CGameInfo.cpp | 8 ++++++++ src/Core/GameProject/CGameInfo.h | 7 ++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Core/GameProject/CGameInfo.cpp b/src/Core/GameProject/CGameInfo.cpp index 48d79470..8b0a80c3 100644 --- a/src/Core/GameProject/CGameInfo.cpp +++ b/src/Core/GameProject/CGameInfo.cpp @@ -2,6 +2,9 @@ #include "CResourceStore.h" #include +constexpr char gkGameInfoDir[] = "resources/gameinfo"; +constexpr char gkGameInfoExt[] = "xml"; + bool CGameInfo::LoadGameInfo(EGame Game) { Game = RoundGame(Game); @@ -86,3 +89,8 @@ TString CGameInfo::GetDefaultGameInfoPath(EGame Game) TString GameName = GetGameShortName(Game); return TString::Format("%s/%s/GameInfo%s.%s", *gDataDir, *gkGameInfoDir, *GameName, *gkGameInfoExt); } + +TString CGameInfo::GetExtension() +{ + return gkGameInfoExt; +} diff --git a/src/Core/GameProject/CGameInfo.h b/src/Core/GameProject/CGameInfo.h index eb8ed786..96681725 100644 --- a/src/Core/GameProject/CGameInfo.h +++ b/src/Core/GameProject/CGameInfo.h @@ -8,9 +8,6 @@ #include #include -const TString gkGameInfoDir = "resources/gameinfo"; -const TString gkGameInfoExt = "xml"; - //@todo merge this class into CGameTemplate // they serve similar purposes, no real reason for them to be different classes class CGameInfo @@ -50,14 +47,14 @@ public: TString GetAreaName(const CAssetID& rkID) const; // Accessors - inline EGame Game() const { return mGame; } + EGame Game() const { return mGame; } // Static static CGameInfo* GetGameInfo(EGame Game); static EGame RoundGame(EGame Game); static TString GetDefaultGameInfoPath(EGame Game); - inline static TString GetExtension() { return gkGameInfoExt; } + static TString GetExtension(); }; #endif // CGAMEINFO