engine: strip Intel suffixes from server library name, but only on special platforms

Remove same code from filesystem, it's not what filesystem should do
This commit is contained in:
Alibek Omarov 2023-01-10 04:51:04 +03:00
parent 5d98e13fb8
commit eb0459a045
2 changed files with 18 additions and 19 deletions

View File

@ -158,6 +158,22 @@ static void COM_GenerateClientLibraryPath( const char *name, char *out, size_t s
#endif
}
/*
==============
COM_StripIntelSuffix
Some modders use _i?86 suffix in game library name
So strip it to follow library naming for non-Intel CPUs
==============
*/
static void COM_StripIntelSuffix( char *out )
{
char *suffix = Q_strrchr( out, '_' );
if( suffix && Q_stricmpext( "_i?86", suffix ))
*suffix = 0;
}
/*
==============
COM_GenerateServerLibraryPath
@ -193,6 +209,7 @@ static void COM_GenerateServerLibraryPath( char *out, size_t size )
ext = COM_FileExtension( dllpath );
COM_StripExtension( dllpath );
COM_StripIntelSuffix( dllpath );
COM_GenerateCommonLibraryName( dllpath, ext, out, size );
#endif
@ -234,7 +251,7 @@ void COM_GetCommonLibraryPath( ECommonLibraryType eLibType, char *out, size_t si
}
break;
default:
ASSERT( true );
ASSERT( 0 );
out[0] = 0;
break;
}

View File

@ -625,24 +625,6 @@ void FS_ParseGenericGameInfo( gameinfo_t *GameInfo, const char *buf, const qbool
else if( !Q_stricmp( token, "gamedll_linux" ))
{
pfile = COM_ParseFile( pfile, GameInfo->game_dll_linux, sizeof( GameInfo->game_dll_linux ));
// try to normalize filename only for liblist.gam
// from hl_i?86.so to hl.so
if( !isGameInfo )
{
char *p;
COM_StripExtension( GameInfo->game_dll_linux );
p = Q_strrchr( GameInfo->game_dll_linux, '_' );
if( p && Q_stricmpext( "_i?86", p ))
{
*p = 0;
}
COM_DefaultExtension( GameInfo->game_dll_linux, "."OS_LIB_EXT );
}
found_linux = true;
}
// valid for both