mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-02-20 13:54:14 +01:00
Fix regression in engine detection for some cases (bug 5963, r=asherkin).
This commit is contained in:
parent
adc7d3774d
commit
ec1acb2738
@ -70,10 +70,7 @@ mm_DetectGameInformation()
|
|||||||
|
|
||||||
game_info_detected = -1;
|
game_info_detected = -1;
|
||||||
|
|
||||||
if (!mm_GetGameName(game_name, sizeof(game_name)))
|
mm_GetGameName(game_name, sizeof(game_name));
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mm_GetFileOfAddress((void*)mm_DetectGameInformation, mm_path, sizeof(mm_path)))
|
if (!mm_GetFileOfAddress((void*)mm_DetectGameInformation, mm_path, sizeof(mm_path)))
|
||||||
{
|
{
|
||||||
|
@ -191,7 +191,7 @@ mm_GetProcAddress(const char *name)
|
|||||||
return mm_GetLibAddress(mm_library, name);
|
return mm_GetLibAddress(mm_library, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
void
|
||||||
mm_GetGameName(char *buffer, size_t size)
|
mm_GetGameName(char *buffer, size_t size)
|
||||||
{
|
{
|
||||||
buffer[0] = '\0';
|
buffer[0] = '\0';
|
||||||
@ -217,7 +217,6 @@ mm_GetGameName(char *buffer, size_t size)
|
|||||||
|
|
||||||
LocalFree(wargv);
|
LocalFree(wargv);
|
||||||
|
|
||||||
return buffer[0] != 0;
|
|
||||||
#elif defined __APPLE__
|
#elif defined __APPLE__
|
||||||
int argc = *_NSGetArgc();
|
int argc = *_NSGetArgc();
|
||||||
char **argv = *_NSGetArgv();
|
char **argv = *_NSGetArgv();
|
||||||
@ -234,7 +233,6 @@ mm_GetGameName(char *buffer, size_t size)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return buffer[0] != 0;
|
|
||||||
#elif defined __linux__
|
#elif defined __linux__
|
||||||
FILE *pFile = fopen("/proc/self/cmdline", "rb");
|
FILE *pFile = fopen("/proc/self/cmdline", "rb");
|
||||||
if (!pFile)
|
if (!pFile)
|
||||||
@ -262,10 +260,14 @@ mm_GetGameName(char *buffer, size_t size)
|
|||||||
free(arg);
|
free(arg);
|
||||||
fclose(pFile);
|
fclose(pFile);
|
||||||
|
|
||||||
return buffer[0] != 0;
|
|
||||||
#else
|
#else
|
||||||
#error unsupported platform
|
#error unsupported platform
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (buffer[0] == 0)
|
||||||
|
{
|
||||||
|
strncpy(buffer, ".", size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MetamodBackend
|
MetamodBackend
|
||||||
|
@ -116,7 +116,7 @@ mm_UnloadMetamodLibrary();
|
|||||||
extern void
|
extern void
|
||||||
mm_LogFatal(const char *message, ...);
|
mm_LogFatal(const char *message, ...);
|
||||||
|
|
||||||
extern bool
|
extern void
|
||||||
mm_GetGameName(char *buffer, size_t size);
|
mm_GetGameName(char *buffer, size_t size);
|
||||||
|
|
||||||
extern MetamodBackend
|
extern MetamodBackend
|
||||||
|
@ -88,10 +88,7 @@ public:
|
|||||||
/* Backend should already filled in if loaded as gamedll */
|
/* Backend should already filled in if loaded as gamedll */
|
||||||
if (gamedll_bridge == NULL)
|
if (gamedll_bridge == NULL)
|
||||||
{
|
{
|
||||||
if (!mm_GetGameName(game_name, sizeof(game_name)))
|
mm_GetGameName(game_name, sizeof(game_name));
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
mm_backend = mm_DetermineBackend(engineFactory, game_name);
|
mm_backend = mm_DetermineBackend(engineFactory, game_name);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user