diff --git a/radiant/eclass.cpp b/radiant/eclass.cpp index 091595a3..df503f4f 100644 --- a/radiant/eclass.cpp +++ b/radiant/eclass.cpp @@ -382,7 +382,8 @@ void Eclass_Init(){ if ( !strcmp( ValueForKey( g_qeglobals.d_project_entity, "gamemode" ), "sp" ) ) { // SP mapping, ignore mp_*.def char *name = (char *)pFile->data; - if ( name[0] == 'm' && name[1] == 'p' && name[2] == '_' ) { + if ( name[0] == 'm' && name[1] == 'p' && name[2] == '_' + || name[0] == 'h' && name[1] == 'm' && name[2] == '_' ) { Sys_Printf( "Single Player mapping mode. Ignoring '%s'\n", name ); pFile = pFile->next; continue; @@ -392,7 +393,7 @@ void Eclass_Init(){ { // HM mapping, ignore sp_*.def char *name = (char *)pFile->data; - if ( name[0] == 'h' && name[1] == 'm' && name[2] == '_' ) { + if ( name[0] == 's' && name[1] == 'p' && name[2] == '_' ) { Sys_Printf( "HoloMatch mapping mode. Ignoring '%s'\n", name ); pFile = pFile->next; continue; diff --git a/radiant/preferences.cpp b/radiant/preferences.cpp index d0f7a0bb..886eea89 100644 --- a/radiant/preferences.cpp +++ b/radiant/preferences.cpp @@ -3376,6 +3376,9 @@ void CGameInstall::BuildDialog() { case GAME_QL: gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _( "Quake Live" ) ); break; + case GAME_STVEF: + gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _( "Star Trek - Voyager: Elite Force" ) ); + break; } iGame++; } @@ -3490,6 +3493,9 @@ void CGameInstall::Run() { case GAME_QL: gameFilePath += "ql.game"; break; + case GAME_STVEF: + gameFilePath += "stvef.game"; + break; } Sys_Printf( "game file: %s\n", gameFilePath.GetBuffer() ); @@ -3685,6 +3691,27 @@ void CGameInstall::Run() { fprintf( fg, " basegame=\"baseq3\"\n" ); break; } + case GAME_STVEF: { + fprintf( fg, " "TOOLS_ATTRIBUTE "=\"%sinstalls/"STVEF_PACK "/game\"\n", g_strAppPath.GetBuffer() ); + fprintf( fg, " prefix=\".stvef\"\n" ); + Str source = g_strAppPath.GetBuffer(); + source += "installs/"; + source += STVEF_PACK; + source += "/install/"; + Str dest = m_strEngine.GetBuffer(); + radCopyTree( source.GetBuffer(), dest.GetBuffer() ); + // Hardcoded fix for "missing" shaderlist in gamepack + dest += "/base/scripts/shaderlist.txt"; + if(CheckFile(dest.GetBuffer()) != PATH_FILE) { + source += "base/scripts/default_shaderlist.txt"; + radCopyFile(source.GetBuffer(),dest.GetBuffer()); + } + fprintf( fg, " basegame=\"baseEF\"\n" ); + fprintf( fg, " shaderpath=\"scripts\"\n" ); + fprintf( fg, " default_scale=\"0.25\"\n" ); + fprintf( fg, " caulk_shader=\"textures/common/caulk\"\n" ); + break; + } } fprintf( fg, "/>\n" ); fclose( fg ); @@ -3740,6 +3767,9 @@ void CGameInstall::ScanGames() { if ( stricmp( dirname, QL_PACK ) == 0 ) { m_availGames[ iGame++ ] = GAME_QL; } + if ( stricmp( dirname, STVEF_PACK ) == 0 ) { + m_availGames[ iGame++ ] = GAME_STVEF; + } } Sys_Printf( "No installable games found in: %s\n", pakPaths.GetBuffer() ); diff --git a/radiant/preferences.h b/radiant/preferences.h index 4076f7ad..62b67768 100644 --- a/radiant/preferences.h +++ b/radiant/preferences.h @@ -213,6 +213,7 @@ void Dump(); #define REACTION_PACK "ReactionPack" #define ET_PACK "ETPack" #define QL_PACK "QLPack" +#define STVEF_PACK "STVEFPack" class CGameInstall : public Dialog { public: @@ -238,6 +239,7 @@ enum gameType_e { GAME_REACTION, GAME_ET, GAME_QL, + GAME_STVEF, GAME_COUNT };