diff --git a/radiant/preferences.cpp b/radiant/preferences.cpp index 5a115cac..28367575 100644 --- a/radiant/preferences.cpp +++ b/radiant/preferences.cpp @@ -3479,6 +3479,9 @@ void CGameInstall::BuildDialog() { case GAME_WOLF: gtk_combo_box_text_append_text( GTK_COMBO_BOX_TEXT( game_select_combo ), _( "Return To Castle Wolfenstein" ) ); break; + case GAME_UNVANQUISHED: + gtk_combo_box_text_append_text( GTK_COMBO_BOX_TEXT( game_select_combo ), _( "Unvanquished" ) ); + break; } iGame++; } @@ -3645,6 +3648,10 @@ void CGameInstall::Run() { gamePack = WOLF_PACK; gameFilePath += WOLF_GAME; break; + case GAME_UNVANQUISHED: + gamePack = UNVANQUISHED_PACK; + gameFilePath += UNVANQUISHED_GAME; + break; default: Error( "Invalid game selected: %d", m_availGames[ m_nComboSelect ] ); } @@ -3832,6 +3839,20 @@ void CGameInstall::Run() { } break; } + case GAME_UNVANQUISHED: { + fprintf( fg, " prefix=\".unvanquished\"\n" ); + fprintf( fg, " basegame=\"pkg\"\n" ); + + // Hardcoded fix for "missing" shaderlist in gamepack + Str dest = m_strEngine.GetBuffer(); + dest += "/pkg/scripts/shaderlist.txt"; + if( CheckFile( dest.GetBuffer() ) != PATH_FILE ) { + Str source = gameInstallPath.GetBuffer(); + source += "pkg/scripts/default_shaderlist.txt"; + radCopyFile( source.GetBuffer(), dest.GetBuffer() ); + } + break; + } } fprintf( fg, "/>\n" ); fclose( fg ); @@ -3896,6 +3917,9 @@ void CGameInstall::ScanGames() { if ( stricmp( dirname, Q1_PACK ) == 0 ) { m_availGames[ iGame++ ] = GAME_Q1; } + if ( stricmp( dirname, UNVANQUISHED_PACK ) == 0) { + m_availGames[ iGame++ ] = GAME_UNVANQUISHED; + } } Sys_Printf( "No installable games found in: %s\n", pakPaths.GetBuffer() ); diff --git a/radiant/preferences.h b/radiant/preferences.h index ac6ca9d0..54ef1225 100644 --- a/radiant/preferences.h +++ b/radiant/preferences.h @@ -217,6 +217,7 @@ void Dump(); #define STVEF_GAME "stvef.game" #define WOLF_GAME "wolf.game" #define Q1_GAME "q1.game" +#define UNVANQUISHED_GAME "unvanquished.game" #define Q3_PACK "Q3Pack" #define URT_PACK "UrTPack" @@ -233,6 +234,7 @@ void Dump(); #define STVEF_PACK "STVEFPack" #define WOLF_PACK "WolfPack" #define Q1_PACK "Q1Pack" +#define UNVANQUISHED_PACK "UnvanquishedPack" class CGameInstall : public Dialog { public: @@ -262,6 +264,7 @@ public: GAME_STVEF, GAME_WOLF, GAME_Q1, + GAME_UNVANQUISHED, GAME_COUNT };