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

Improve automatic engine detection for some games (nobug, irc r=asherkin).

--HG--
extra : rebase_source : a80a7c0a00956617e58ce5ba196d37fb474061f2
This commit is contained in:
Nicholas Hastings 2014-01-07 17:39:55 -05:00
parent 6992f85f87
commit 013c549090
4 changed files with 12 additions and 9 deletions

View File

@ -213,7 +213,7 @@ public:
QueryValveInterface fileSystemFactory,
void *pGlobals)
{
mm_backend = mm_DetermineBackend(engineFactory, game_name);
mm_backend = mm_DetermineBackend(engineFactory, gamedll_qvi, game_name);
char error[255];
if (mm_backend == MMBackend_UNKNOWN)

View File

@ -270,7 +270,7 @@ mm_GetGameName(char *buffer, size_t size)
}
MetamodBackend
mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
mm_DetermineBackend(QueryValveInterface engineFactory, QueryValveInterface serverFactory, const char *game_name)
{
if (engineFactory("VEngineServer024", NULL) != NULL)
{
@ -287,14 +287,16 @@ mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
else if (engineFactory("VEngineServer022", NULL) != NULL &&
engineFactory("VEngineCvar007", NULL) != NULL)
{
if (strcmp(game_name, "berimbau") == 0)
if (serverFactory("ServerGameClients004", NULL))
{
if (strcmp(game_name, "portal2") == 0)
{
return MMBackend_Portal2;
}
return MMBackend_Blade;
}
if (strcmp(game_name, "portal2") == 0)
{
return MMBackend_Portal2;
}
if (engineFactory("EngineTraceServer004", NULL) != NULL)
{
return MMBackend_AlienSwarm;
@ -310,6 +312,7 @@ mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
return MMBackend_Left4Dead2;
}
}
return MMBackend_Left4Dead;
}
else if (engineFactory("VEngineServer021", NULL) != NULL)

View File

@ -120,7 +120,7 @@ extern void
mm_GetGameName(char *buffer, size_t size);
extern MetamodBackend
mm_DetermineBackend(QueryValveInterface qvi, const char *game_name);
mm_DetermineBackend(QueryValveInterface engineFactory, QueryValveInterface serverFactory, const char *game_name);
extern MetamodBackend mm_backend;

View File

@ -90,7 +90,7 @@ public:
{
mm_GetGameName(game_name, sizeof(game_name));
mm_backend = mm_DetermineBackend(engineFactory, game_name);
mm_backend = mm_DetermineBackend(engineFactory, gsFactory, game_name);
}
if (mm_backend == MMBackend_UNKNOWN)