mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-12-07 10:28:30 +00:00
Improve automatic engine detection for some games (nobug, irc r=asherkin).
--HG-- extra : rebase_source : a80a7c0a00956617e58ce5ba196d37fb474061f2
This commit is contained in:
parent
6992f85f87
commit
013c549090
@ -213,7 +213,7 @@ public:
|
|||||||
QueryValveInterface fileSystemFactory,
|
QueryValveInterface fileSystemFactory,
|
||||||
void *pGlobals)
|
void *pGlobals)
|
||||||
{
|
{
|
||||||
mm_backend = mm_DetermineBackend(engineFactory, game_name);
|
mm_backend = mm_DetermineBackend(engineFactory, gamedll_qvi, game_name);
|
||||||
|
|
||||||
char error[255];
|
char error[255];
|
||||||
if (mm_backend == MMBackend_UNKNOWN)
|
if (mm_backend == MMBackend_UNKNOWN)
|
||||||
|
|||||||
@ -270,7 +270,7 @@ mm_GetGameName(char *buffer, size_t size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MetamodBackend
|
MetamodBackend
|
||||||
mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
|
mm_DetermineBackend(QueryValveInterface engineFactory, QueryValveInterface serverFactory, const char *game_name)
|
||||||
{
|
{
|
||||||
if (engineFactory("VEngineServer024", NULL) != NULL)
|
if (engineFactory("VEngineServer024", NULL) != NULL)
|
||||||
{
|
{
|
||||||
@ -287,14 +287,16 @@ mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
|
|||||||
else if (engineFactory("VEngineServer022", NULL) != NULL &&
|
else if (engineFactory("VEngineServer022", NULL) != NULL &&
|
||||||
engineFactory("VEngineCvar007", 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;
|
return MMBackend_Blade;
|
||||||
}
|
}
|
||||||
if (strcmp(game_name, "portal2") == 0)
|
|
||||||
{
|
|
||||||
return MMBackend_Portal2;
|
|
||||||
}
|
|
||||||
if (engineFactory("EngineTraceServer004", NULL) != NULL)
|
if (engineFactory("EngineTraceServer004", NULL) != NULL)
|
||||||
{
|
{
|
||||||
return MMBackend_AlienSwarm;
|
return MMBackend_AlienSwarm;
|
||||||
@ -310,6 +312,7 @@ mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
|
|||||||
return MMBackend_Left4Dead2;
|
return MMBackend_Left4Dead2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return MMBackend_Left4Dead;
|
return MMBackend_Left4Dead;
|
||||||
}
|
}
|
||||||
else if (engineFactory("VEngineServer021", NULL) != NULL)
|
else if (engineFactory("VEngineServer021", NULL) != NULL)
|
||||||
|
|||||||
@ -120,7 +120,7 @@ extern void
|
|||||||
mm_GetGameName(char *buffer, size_t size);
|
mm_GetGameName(char *buffer, size_t size);
|
||||||
|
|
||||||
extern MetamodBackend
|
extern MetamodBackend
|
||||||
mm_DetermineBackend(QueryValveInterface qvi, const char *game_name);
|
mm_DetermineBackend(QueryValveInterface engineFactory, QueryValveInterface serverFactory, const char *game_name);
|
||||||
|
|
||||||
extern MetamodBackend mm_backend;
|
extern MetamodBackend mm_backend;
|
||||||
|
|
||||||
|
|||||||
@ -90,7 +90,7 @@ public:
|
|||||||
{
|
{
|
||||||
mm_GetGameName(game_name, sizeof(game_name));
|
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)
|
if (mm_backend == MMBackend_UNKNOWN)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user