mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-26 13:50:53 +00:00
Slight finetuning of Q2 game code loading.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2235 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
603f07b5a3
commit
771828d5fb
1 changed files with 25 additions and 15 deletions
|
@ -205,25 +205,35 @@ void *Sys_GetGameAPI(void *parms)
|
|||
void (*q2_so_deinit)(void);
|
||||
void *(*GetGameAPI)(void *);
|
||||
void *ret;
|
||||
char *searchpath;
|
||||
char path[256];
|
||||
|
||||
gamefile = dlopen("gameppc.so", RTLD_NOW);
|
||||
if (gamefile)
|
||||
searchpath = 0;
|
||||
|
||||
while((searchpath = COM_NextPath(searchpath)))
|
||||
{
|
||||
q2_so_init = dlsym(gamefile, "q2_so_init");
|
||||
q2_so_deinit = dlsym(gamefile, "q2_so_deinit");
|
||||
if (q2_so_init && q2_so_init())
|
||||
{
|
||||
GetGameAPI = dlsym(gamefile, "GetGameAPI");
|
||||
if (GetGameAPI && (ret = GetGameAPI(parms)))
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (q2_so_deinit)
|
||||
q2_so_deinit();
|
||||
snprintf(path, sizeof(path), "%s%sgameppc.so", searchpath[0]!='.'?searchpath:"", searchpath[0]&&searchpath[0]!='.'?"/":"");
|
||||
|
||||
gamefile = dlopen(path, RTLD_NOW);
|
||||
if (gamefile)
|
||||
{
|
||||
q2_so_init = dlsym(gamefile, "q2_so_init");
|
||||
q2_so_deinit = dlsym(gamefile, "q2_so_deinit");
|
||||
if (q2_so_init && q2_so_init())
|
||||
{
|
||||
GetGameAPI = dlsym(gamefile, "GetGameAPI");
|
||||
if (GetGameAPI && (ret = GetGameAPI(parms)))
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (q2_so_deinit)
|
||||
q2_so_deinit();
|
||||
}
|
||||
dlclose(gamefile);
|
||||
gamefile = 0;
|
||||
}
|
||||
dlclose(gamefile);
|
||||
gamefile = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue