1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-26 19:54:14 +01:00

Merge pull request #16 from alliedmodders/more-version-cleanup

Improve "meta version" output and remove version code duplication.
This commit is contained in:
Nicholas Hastings 2015-05-13 14:02:51 -04:00
commit 72055f40be
2 changed files with 155 additions and 129 deletions

View File

@ -106,6 +106,51 @@ void SMConVarAccessor::Unregister(ConCommandBase *pCommand)
}
}
template <typename ... Ts>
void CMDMSG(edict_t *client, const char *pMsg, Ts ... ts)
{
if (client)
{
CLIENT_CONMSG(client, pMsg, ts...);
}
else
{
CONMSG(pMsg, ts...);
}
}
static void ReplyCredits(edict_t *client = nullptr)
{
CMDMSG(client, "Metamod:Source was developed by:\n");
CMDMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n");
CMDMSG(client, " GameDLL/Plugins: David \"BAILOPAN\" Anderson\n");
CMDMSG(client, " GameDLL: Scott \"DS\" Ehlert\n");
CMDMSG(client, "For more information, see the official website\n");
CMDMSG(client, "http://www.metamodsource.net/\n");
}
static void ReplyVersion(edict_t *client = nullptr)
{
CMDMSG(client, " Metamod:Source Version Information\n");
CMDMSG(client, " Metamod:Source version %s\n", METAMOD_VERSION);
CMDMSG(client, " Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION);
CMDMSG(client, " SourceHook version: %d:%d\n", g_SHPtr->GetIfaceVersion(), g_SHPtr->GetImplVersion());
if (g_GameDll.loaded)
{
CMDMSG(client, " Loaded As: GameDLL (gameinfo.txt)\n");
}
else
{
CMDMSG(client, " Loaded As: Valve Server Plugin\n");
}
CMDMSG(client, " Compiled on: %s\n", MMS_BUILD_TIMESTAMP);
#if defined(MMS_GENERATED_BUILD)
CMDMSG(client, " Built from: https://github.com/alliedmodders/metamod-source/commit/%s\n", METAMOD_SHA);
CMDMSG(client, " Build ID: %s:%s\n", METAMOD_LOCAL_REV, METAMOD_SHA);
#endif
CMDMSG(client, " http://www.metamodsource.net/\n");
}
ConVar metamod_version("metamod_version", METAMOD_VERSION, FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version");
#ifdef OS_WIN32
ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File");
@ -132,32 +177,11 @@ CON_COMMAND(meta, "Metamod:Source Menu")
const char *command = e->Cmd_Argv(1);
if (strcmp(command, "credits") == 0)
{
CONMSG("Metamod:Source was developed by:\n");
CONMSG(" SourceHook: Pavol \"PM OnoTo\" Marko\n");
CONMSG(" GameDLL/Plugins: David \"BAILOPAN\" Anderson\n");
CONMSG(" GameDLL: Scott \"DS\" Ehlert\n");
CONMSG("For more information, see the official website\n");
CONMSG("http://www.metamodsource.net/\n");
ReplyCredits();
return;
} else if (strcmp(command, "version") == 0) {
CONMSG("Metamod:Source version %s\n", METAMOD_VERSION);
CONMSG(" Compiled on: %s", MMS_BUILD_TIMESTAMP);
#if defined(MMS_GENERATED_BUILD)
CONMSG("Built from: https://github.com/alliedmodders/metamod-source/commit/%s\n", METAMOD_SHA);
#endif
if (g_GameDll.loaded)
{
CONMSG("Loaded As: GameDLL (gameinfo.txt)\n");
}
else
{
CONMSG("Loaded As: Valve Server Plugin\n");
}
CONMSG("Compiled on: %s\n", SOURCEMM_DATE);
CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION);
CONMSG("SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion());
CONMSG("http://www.metamodsource.net/\n");
ReplyVersion();
return;
} else if (strcmp(command, "game") == 0) {
@ -639,20 +663,11 @@ void ClientCommand_handler(edict_t *client)
if (strcmp(subcmd, "credits") == 0)
{
CLIENT_CONMSG(client, "Metamod:Source was developed by:\n");
CLIENT_CONMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n");
CLIENT_CONMSG(client, " Core: David \"BAILOPAN\" Anderson\n");
CLIENT_CONMSG(client, " Core: Scott \"DS\" Ehlert\n");
CLIENT_CONMSG(client, "For more information, see the official website\n");
CLIENT_CONMSG(client, "http://www.metamodsource.net/\n");
ReplyCredits(client);
RETURN_META(MRES_SUPERCEDE);
} else if(strcmp(subcmd, "version") == 0) {
CLIENT_CONMSG(client, "Metamod:Source version %s\n", METAMOD_VERSION);
CLIENT_CONMSG(client, "Compiled on: %s\n", SOURCEMM_DATE);
CLIENT_CONMSG(client, "Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION);
CLIENT_CONMSG(client, "SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion());
CLIENT_CONMSG(client, "http://www.metamodsource.net/\n");
ReplyVersion(client);
RETURN_META(MRES_SUPERCEDE);
} else if(strcmp(subcmd, "list") == 0) {

View File

@ -42,6 +42,107 @@ using namespace SourceHook;
#define CONMSG g_Metamod.ConPrintf
#define CLIENT_CONMSG g_Metamod.ClientConPrintf
template <typename ... Ts>
#if SOURCE_ENGINE == SE_DOTA
void CMDMSG(int client, const char *pMsg, Ts ... ts)
#else
void CMDMSG(edict_t *client, const char *pMsg, Ts ... ts)
#endif
{
if (client)
{
CLIENT_CONMSG(client, pMsg, ts...);
}
else
{
CONMSG(pMsg, ts...);
}
}
#if SOURCE_ENGINE == SE_BLOODYGOODTIME
#define MMS_ENGINE_NAME "Bloody Good Time (2010)"
#elif SOURCE_ENGINE == SE_ALIENSWARM
#define MMS_ENGINE_NAME "Alien Swarm (2010)"
#elif SOURCE_ENGINE == SE_LEFT4DEAD2
#define MMS_ENGINE_NAME "Left 4 Dead 2 (2009)"
#elif SOURCE_ENGINE == SE_NUCLEARDAWN
#define MMS_ENGINE_NAME "Nuclear Dawn (2011)"
#elif SOURCE_ENGINE == SE_CONTAGION
#define MMS_ENGINE_NAME "Contagion (2013)"
#elif SOURCE_ENGINE == SE_LEFT4DEAD
#define MMS_ENGINE_NAME "Left 4 Dead (2008)"
#elif SOURCE_ENGINE == SE_ORANGEBOX
#define MMS_ENGINE_NAME "Episode 2 (Orange Box, 2007)"
#elif SOURCE_ENGINE == SE_CSS
#define MMS_ENGINE_NAME "Counter-Strike: Source (Valve Orange Box)"
#elif SOURCE_ENGINE == SE_HL2DM
#define MMS_ENGINE_NAME "Half-Life 2 Deathmatch (Valve Orange Box)"
#elif SOURCE_ENGINE == SE_DODS
#define MMS_ENGINE_NAME "Day of Defeat: Source (Valve Orange Box)"
#elif SOURCE_ENGINE == SE_SDK2013
#define MMS_ENGINE_NAME "Source SDK 2013 (2013)"
#elif SOURCE_ENGINE == SE_BMS
#define MMS_ENGINE_NAME "Black Mesa (2015)"
#elif SOURCE_ENGINE == SE_TF2
#define MMS_ENGINE_NAME "Team Fortress 2 (Valve Orange Box)"
#elif SOURCE_ENGINE == SE_DARKMESSIAH
#define MMS_ENGINE_NAME "Dark Messiah (2006)"
#elif SOURCE_ENGINE == SE_EYE
#define MMS_ENGINE_NAME "E.Y.E. Divine Cybermancy (2011)"
#elif SOURCE_ENGINE == SE_PORTAL2
#define MMS_ENGINE_NAME "Portal 2 (2011)"
#elif SOURCE_ENGINE == SE_BLADE
#define MMS_ENGINE_NAME "Blade Symphony (2013)"
#elif SOURCE_ENGINE == SE_INSURGENCY
#define MMS_ENGINE_NAME "Insurgency (2013)"
#elif SOURCE_ENGINE == SE_CSGO
#define MMS_ENGINE_NAME "Counter-Strike: Global Offensive (2012)"
#elif SOURCE_ENGINE == SE_DOTA
#define MMS_ENGINE_NAME "Dota 2 (2013)"
#else
#error "SOURCE_ENGINE not defined to a known value"
#endif
#if SOURCE_ENGINE == SE_DOTA
static void ReplyCredits(int client = 0)
#else
static void ReplyCredits(edict_t *client = nullptr)
#endif
{
CMDMSG(client, "Metamod:Source was developed by:\n");
CMDMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n");
CMDMSG(client, " GameDLL/Plugins: David \"BAILOPAN\" Anderson\n");
CMDMSG(client, " GameDLL: Scott \"DS\" Ehlert\n");
CMDMSG(client, "For more information, see the official website\n");
CMDMSG(client, "http://www.metamodsource.net/\n");
}
#if SOURCE_ENGINE == SE_DOTA
static void ReplyVersion(int client = 0)
#else
static void ReplyVersion(edict_t *client = nullptr)
#endif
{
CMDMSG(client, " Metamod:Source Version Information\n");
CMDMSG(client, " Metamod:Source version %s\n", METAMOD_VERSION);
CMDMSG(client, " Plugin interface version: %d:%d\n", METAMOD_PLAPI_VERSION, PLAPI_MIN_VERSION);
CMDMSG(client, " SourceHook version: %d:%d\n", g_SHPtr->GetIfaceVersion(), g_SHPtr->GetImplVersion());
if (g_Metamod.IsLoadedAsGameDLL())
{
CMDMSG(client, " Loaded As: GameDLL (gameinfo.txt)\n");
}
else
{
CMDMSG(client, " Loaded As: Valve Server Plugin\n");
}
CMDMSG(client, " Compiled on: %s\n", MMS_BUILD_TIMESTAMP);
#if defined(MMS_GENERATED_BUILD)
CMDMSG(client, " Built from: https://github.com/alliedmodders/metamod-source/commit/%s\n", METAMOD_SHA);
CMDMSG(client, " Build ID: %s:%s\n", METAMOD_LOCAL_REV, METAMOD_SHA);
#endif
CMDMSG(client, " http://www.metamodsource.net/\n");
}
bool Command_Meta(IMetamodSourceCommandInfo *info)
{
@ -58,35 +159,13 @@ bool Command_Meta(IMetamodSourceCommandInfo *info)
const char *command = info->GetArg(1);
if (strcmp(command, "credits") == 0)
{
CONMSG("Metamod:Source was developed by:\n");
CONMSG(" SourceHook: Pavol \"PM OnoTo\" Marko\n");
CONMSG(" GameDLL/Plugins: David \"BAILOPAN\" Anderson\n");
CONMSG(" GameDLL: Scott \"DS\" Ehlert\n");
CONMSG("For more information, see the official website\n");
CONMSG("http://www.metamodsource.net/\n");
ReplyCredits();
return true;
}
else if (strcmp(command, "version") == 0)
{
CONMSG("Metamod:Source version %s\n", METAMOD_VERSION);
CONMSG(" Compiled on: %s", MMS_BUILD_TIMESTAMP);
#if defined(MMS_GENERATED_BUILD)
CONMSG("Built from: https://github.com/alliedmodders/metamod-source/commit/%s\n", METAMOD_SHA);
#endif
if (g_Metamod.IsLoadedAsGameDLL())
{
CONMSG("Loaded As: GameDLL (gameinfo.txt)\n");
}
else
{
CONMSG("Loaded As: Valve Server Plugin\n");
}
CONMSG("Compiled on: %s\n", SOURCEMM_DATE);
CONMSG("Plugin interface version: %d:%d\n", METAMOD_PLAPI_VERSION, PLAPI_MIN_VERSION);
CONMSG("SourceHook version: %d:%d\n", g_SHPtr->GetIfaceVersion(), g_SHPtr->GetImplVersion());
CONMSG("http://www.metamodsource.net/\n");
ReplyVersion();
return true;
}
@ -97,66 +176,7 @@ bool Command_Meta(IMetamodSourceCommandInfo *info)
CONMSG(" Mod Path: %s\n", g_Metamod.GetBaseDir());
CONMSG(" DLL Path: %s\n", g_Metamod.GetGameBinaryPath());
CONMSG(" Interface: ServerGameDLL%03d\n", g_Metamod.GetGameDLLVersion());
#if 0
int engine = g_Metamod.GetSourceEngineBuild();
if (engine == SOURCE_ENGINE_ORIGINAL)
{
CONMSG(" Engine: Original (pre-Episode 1)\n");
}
else if (engine == SOURCE_ENGINE_EPISODEONE)
{
CONMSG(" Engine: Episode 1 (2004)\n");
}
else if (engine == SOURCE_ENGINE_ORANGEBOX)
{
CONMSG(" Engine: Episode 2 (Orange Box, 2007)\n");
}
#endif
#if SOURCE_ENGINE == SE_BLOODYGOODTIME
CONMSG(" Engine: Bloody Good Time (2010)\n");
#elif SOURCE_ENGINE == SE_ALIENSWARM
CONMSG(" Engine: Alien Swarm (2010)\n");
#elif SOURCE_ENGINE == SE_LEFT4DEAD2
CONMSG(" Engine: Left 4 Dead 2 (2009)\n");
#elif SOURCE_ENGINE == SE_NUCLEARDAWN
CONMSG(" Engine: Nuclear Dawn (2011)\n");
#elif SOURCE_ENGINE == SE_CONTAGION
CONMSG(" Engine: Contagion (2013)\n");
#elif SOURCE_ENGINE == SE_LEFT4DEAD
CONMSG(" Engine: Left 4 Dead (2008)\n");
#elif SOURCE_ENGINE == SE_ORANGEBOX
CONMSG(" Engine: Episode 2 (Orange Box, 2007)\n");
#elif SOURCE_ENGINE == SE_CSS
CONMSG(" Engine: Counter-Strike: Source (Valve Orange Box)\n");
#elif SOURCE_ENGINE == SE_HL2DM
CONMSG(" Engine: Half-Life 2 Deathmatch (Valve Orange Box)\n");
#elif SOURCE_ENGINE == SE_DODS
CONMSG(" Engine: Day of Defeat: Source (Valve Orange Box)\n");
#elif SOURCE_ENGINE == SE_SDK2013
CONMSG(" Engine: Source SDK 2013 (2013)\n");
#elif SOURCE_ENGINE == SE_BMS
CONMSG(" Engine: Black Mesa (2015)\n");
#elif SOURCE_ENGINE == SE_TF2
CONMSG(" Engine: Team Fortress 2 (Valve Orange Box)\n");
#elif SOURCE_ENGINE == SE_DARKMESSIAH
CONMSG(" Engine: Dark Messiah (2006)\n");
#elif SOURCE_ENGINE == SE_EYE
CONMSG(" Engine: E.Y.E. Divine Cybermancy (2011)\n");
#elif SOURCE_ENGINE == SE_PORTAL2
CONMSG(" Engine: Portal 2 (2011)\n");
#elif SOURCE_ENGINE == SE_BLADE
CONMSG(" Engine: Blade Symphony (2013)\n");
#elif SOURCE_ENGINE == SE_INSURGENCY
CONMSG(" Engine: Insurgency (2013)\n");
#elif SOURCE_ENGINE == SE_CSGO
CONMSG(" Engine: Counter-Strike: Global Offensive (2012)\n");
#elif SOURCE_ENGINE == SE_DOTA
CONMSG(" Engine: Dota 2 (2013)\n");
#else
#error "SOURCE_ENGINE not defined to a known value"
#endif
CONMSG(" Engine: " MMS_ENGINE_NAME "\n");
// Display user messages
const char *msgname;
@ -695,22 +715,13 @@ bool Command_ClientMeta(edict_t *client, IMetamodSourceCommandInfo *info)
if (strcmp(subcmd, "credits") == 0)
{
CLIENT_CONMSG(client, "Metamod:Source was developed by:\n");
CLIENT_CONMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n");
CLIENT_CONMSG(client, " GameDLL/Plugins: David \"BAILOPAN\" Anderson\n");
CLIENT_CONMSG(client, " GameDLL: Scott \"DS\" Ehlert\n");
CLIENT_CONMSG(client, "For more information, see the official website\n");
CLIENT_CONMSG(client, "http://www.metamodsource.net/\n");
ReplyCredits(client);
return true;
}
else if(strcmp(subcmd, "version") == 0)
{
CLIENT_CONMSG(client, "Metamod:Source version %s\n", METAMOD_VERSION);
CLIENT_CONMSG(client, "Compiled on: %s\n", SOURCEMM_DATE);
CLIENT_CONMSG(client, "Plugin interface version: %d:%d\n", METAMOD_PLAPI_VERSION, PLAPI_MIN_VERSION);
CLIENT_CONMSG(client, "SourceHook version: %d:%d\n", g_SHPtr->GetIfaceVersion(), g_SHPtr->GetImplVersion());
CLIENT_CONMSG(client, "http://www.metamodsource.net/\n");
ReplyVersion(client);
return true;
}