added ability to use game name from gameinfo.txt in gamedata files
authorDavid Anderson <dvander@alliedmods.net>
Tue Dec 04 15:27:04 2007 +0000 (2007-12-04)
changeset 17627255bec4ef54
parent 1761 bf3094f50ba7
child 1763 1f347b5c7366
added ability to use game name from gameinfo.txt in gamedata files
core/GameConfigs.cpp
     1.1 --- a/core/GameConfigs.cpp	Tue Dec 04 03:29:02 2007 +0000
     1.2 +++ b/core/GameConfigs.cpp	Tue Dec 04 15:27:04 2007 +0000
     1.3 @@ -51,6 +51,7 @@
     1.4  IGameConfig *g_pGameConf = NULL;
     1.5  char g_Game[256];
     1.6  char g_GameDesc[256] = {'!', '\0'};
     1.7 +char g_GameName[256] = {'$', '\0'};
     1.8  
     1.9  #define PSTATE_NONE						0
    1.10  #define PSTATE_GAMES					1
    1.11 @@ -131,7 +132,8 @@
    1.12  			if ((strcmp(name, "*") == 0)
    1.13  				|| (strcmp(name, "#default") == 0)
    1.14  				|| (strcasecmp(name, g_Game) == 0)
    1.15 -				|| (strcasecmp(name, g_GameDesc) == 0))
    1.16 +				|| (strcasecmp(name, g_GameDesc) == 0)
    1.17 +				|| (strcasecmp(name, g_GameName) == 0))
    1.18  			{
    1.19  				bShouldBeReadingDefault = true;
    1.20  				m_ParseState = PSTATE_GAMEDEFS;
    1.21 @@ -271,7 +273,10 @@
    1.22  		sm_trie_replace(m_pKeys, key, (void *)id);
    1.23  	} else if (m_ParseState == PSTATE_GAMEDEFS_SUPPORTED) {
    1.24  		if (strcmp(key, "game") == 0
    1.25 -			&& (strcasecmp(value, g_Game) == 0 || strcasecmp(value, g_GameDesc) == 0))
    1.26 +			&& (strcasecmp(value, g_Game) == 0 
    1.27 +				|| strcasecmp(value, g_GameDesc) == 0
    1.28 +				|| strcasecmp(value, g_GameName) == 0)
    1.29 +				)
    1.30  		{
    1.31  			bShouldBeReadingDefault = true;
    1.32  		}
    1.33 @@ -585,6 +590,17 @@
    1.34  
    1.35  	strncopy(g_Game, g_SourceMod.GetGameFolderName(), sizeof(g_Game));
    1.36  	strncopy(g_GameDesc + 1, SERVER_CALL(GetGameDescription)(), sizeof(g_GameDesc) - 1);
    1.37 +
    1.38 +	KeyValues *pGameInfo = new KeyValues("GameInfo");
    1.39 +	if (pGameInfo->LoadFromFile(basefilesystem, "gameinfo.txt"))
    1.40 +	{
    1.41 +		const char *str;
    1.42 +		if ((str = pGameInfo->GetString("game", NULL)) != NULL)
    1.43 +		{
    1.44 +			strncopy(g_GameName + 1, str, sizeof(g_GameName) - 1);
    1.45 +		}
    1.46 +	}
    1.47 +	pGameInfo->deleteThis();
    1.48  }
    1.49  
    1.50  void GameConfigManager::OnSourceModAllInitialized()