]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - menu.c
removed detail texturing (it only worked in q1bsp and hlbsp maps, did not work proper...
[xonotic/darkplaces.git] / menu.c
diff --git a/menu.c b/menu.c
index a3b37a6290e7c0972d9184f3fe04dd6ed5b69fb9..09025546ee69b5a1e09d27a7576fb6b62dc49a7e 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -819,7 +819,7 @@ int         loadable[MAX_SAVEGAMES];
 
 void M_ScanSaves (void)
 {
-       size_t  i, j, len;
+       int             i, j, len;
        char    name[MAX_OSPATH];
        char    buf[SAVEGAME_COMMENT_LENGTH + 256];
        const char *t;
@@ -1500,7 +1500,7 @@ void M_DrawCheckbox (int x, int y, int on)
 }
 
 
-#define OPTIONS_ITEMS 40
+#define OPTIONS_ITEMS 39
 
 int options_cursor;
 
@@ -1546,8 +1546,6 @@ void M_Menu_Options_AdjustSliders (int dir)
                Cvar_SetValueQuick (&scr_screenshot_jpeg_quality, bound(0, scr_screenshot_jpeg_quality.value + dir * 0.1, 1));
        else if (options_cursor == optnum++)
                Cvar_SetValueQuick (&r_sky, !r_sky.integer);
-       else if (options_cursor == optnum++)
-               Cvar_SetValueQuick (&gl_combine, !gl_combine.integer);
        else if (options_cursor == optnum++)
                Cvar_SetValueQuick (&gl_dither, !gl_dither.integer);
        else if (options_cursor == optnum++)
@@ -1563,7 +1561,7 @@ void M_Menu_Options_AdjustSliders (int dir)
        else if (options_cursor == optnum++)
                Cvar_SetValueQuick (&r_textshadow, !r_textshadow.integer);
        else if (options_cursor == optnum++)
-               Cvar_SetValueQuick (&crosshair, bound(0, crosshair.integer + dir, 5));
+               Cvar_SetValueQuick (&crosshair, bound(0, crosshair.integer + dir, 6));
        else if (options_cursor == optnum++)
                Cvar_SetValueQuick (&crosshair_size, bound(1, crosshair_size.value + dir, 5));
        else if (options_cursor == optnum++)
@@ -1675,7 +1673,6 @@ void M_Options_Draw (void)
        M_Options_PrintCheckbox("  JPEG screenshots", jpeg_dll != NULL, scr_screenshot_jpeg.integer);
        M_Options_PrintSlider(  "      JPEG quality", jpeg_dll != NULL, scr_screenshot_jpeg_quality.value, 0, 1);
        M_Options_PrintCheckbox("               Sky", true, r_sky.integer);
-       M_Options_PrintCheckbox("   Texture Combine", true, gl_combine.integer);
        M_Options_PrintCheckbox("         Dithering", true, gl_dither.integer);
        M_Options_PrintSlider(  "Anisotropic Filter", gl_support_anisotropy, gl_texture_anisotropy.integer, 1, gl_max_anisotropy);
        M_Options_PrintSlider(  "        Game Speed", sv.active, slowmo.value, 0, 5);
@@ -1764,7 +1761,7 @@ void M_Options_Key (int k, char ascii)
        }
 }
 
-#define        OPTIONS_EFFECTS_ITEMS   37
+#define        OPTIONS_EFFECTS_ITEMS   35
 
 int options_effects_cursor;
 
@@ -1776,7 +1773,6 @@ void M_Menu_Options_Effects_f (void)
 }
 
 
-extern cvar_t r_detailtextures;
 extern cvar_t cl_stainmaps;
 extern cvar_t cl_stainmaps_clearonload;
 extern cvar_t r_explosionclip;
@@ -1810,7 +1806,6 @@ void M_Menu_Options_Effects_AdjustSliders (int dir)
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_stainmaps, !cl_stainmaps.integer);
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_stainmaps_clearonload, !cl_stainmaps_clearonload.integer);
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_decals, !cl_decals.integer);
-       else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_detailtextures, !r_detailtextures.integer);
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_bulletimpacts, !cl_particles_bulletimpacts.integer);
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_smoke, !cl_particles_smoke.integer);
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_sparks, !cl_particles_sparks.integer);
@@ -1836,7 +1831,6 @@ void M_Menu_Options_Effects_AdjustSliders (int dir)
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterwarp, bound(0, r_waterwarp.value + dir * 0.1, 1));
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_wateralpha, bound(0, r_wateralpha.value + dir * 0.1, 1));
        else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterscroll, bound(0, r_waterscroll.value + dir * 0.5, 10));
-       else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_watershader, bound(0, r_watershader.value + dir * 0.25, 10));
 }
 
 void M_Options_Effects_Draw (void)
@@ -1865,7 +1859,6 @@ void M_Options_Effects_Draw (void)
        M_Options_PrintCheckbox("             Stainmaps", true, cl_stainmaps.integer);
        M_Options_PrintCheckbox("Onload Clear Stainmaps", true, cl_stainmaps_clearonload.integer);
        M_Options_PrintCheckbox("                Decals", true, cl_decals.integer);
-       M_Options_PrintCheckbox("      Detail Texturing", true, r_detailtextures.integer);
        M_Options_PrintCheckbox("        Bullet Impacts", true, cl_particles_bulletimpacts.integer);
        M_Options_PrintCheckbox("                 Smoke", true, cl_particles_smoke.integer);
        M_Options_PrintCheckbox("                Sparks", true, cl_particles_sparks.integer);
@@ -1891,7 +1884,6 @@ void M_Options_Effects_Draw (void)
        M_Options_PrintSlider(  "  Underwater View Warp", true, r_waterwarp.value, 0, 1);
        M_Options_PrintSlider(  " Water Alpha (opacity)", true, r_wateralpha.value, 0, 1);
        M_Options_PrintSlider(  "        Water Movement", true, r_waterscroll.value, 0, 10);
-       M_Options_PrintSlider(  " GeForce3 Water Shader", true, r_watershader.value, 0, 10);
 }
 
 
@@ -2991,6 +2983,7 @@ int M_ChooseQuitMessage(int request)
        case GAME_HIPNOTIC:
        case GAME_ROGUE:
        case GAME_NEHAHRA:
+       case GAME_DEFEATINDETAIL2:
                if (request-- == 0) return M_QuitMessage("Are you gonna quit","this game just like","everything else?",NULL,NULL,NULL,NULL,NULL);
                if (request-- == 0) return M_QuitMessage("Milord, methinks that","thou art a lowly","quitter. Is this true?",NULL,NULL,NULL,NULL,NULL);
                if (request-- == 0) return M_QuitMessage("Do I need to bust your","face open for trying","to quit?",NULL,NULL,NULL,NULL,NULL);
@@ -3664,6 +3657,18 @@ episode_t openquartzepisodes[] =
        {"Contrib", 7, 6},
 };
 
+level_t defeatindetail2levels[] =
+{
+       {"atac3",       "River Crossing"},
+       {"atac4",       "Canyon Chaos"},
+       {"atac7",       "Desert Stormer"},
+};
+
+episode_t defeatindetail2episodes[] =
+{
+       {"ATAC Campaign", 0, 3},
+};
+
 gamelevels_t sharewarequakegame = {"Shareware Quake", quakelevels, quakeepisodes, 2};
 gamelevels_t registeredquakegame = {"Quake", quakelevels, quakeepisodes, 7};
 gamelevels_t hipnoticgame = {"Scourge of Armagon", hipnoticlevels, hipnoticepisodes, 6};
@@ -3673,10 +3678,11 @@ gamelevels_t transfusiongame = {"Transfusion", transfusionlevels, transfusionepi
 gamelevels_t goodvsbad2game = {"Good Vs. Bad 2", goodvsbad2levels, goodvsbad2episodes, 1};
 gamelevels_t battlemechgame = {"Battlemech", battlemechlevels, battlemechepisodes, 1};
 gamelevels_t openquartzgame = {"OpenQuartz", openquartzlevels, openquartzepisodes, 3};
+gamelevels_t defeatindetail2game = {"Defeat In Detail 2", defeatindetail2levels, defeatindetail2episodes, 1};
 
 typedef struct
 {
-       int gameid;
+       gamemode_t gameid;
        gamelevels_t *notregistered;
        gamelevels_t *registered;
 }
@@ -3692,6 +3698,7 @@ gameinfo_t gamelist[] =
        {GAME_GOODVSBAD2, &goodvsbad2game, &goodvsbad2game},
        {GAME_BATTLEMECH, &battlemechgame, &battlemechgame},
        {GAME_OPENQUARTZ, &openquartzgame, &openquartzgame},
+       {GAME_DEFEATINDETAIL2, &defeatindetail2game, &defeatindetail2game},
        {-1, &sharewarequakegame, &registeredquakegame} // final fallback
 };
 
@@ -4612,6 +4619,7 @@ void MR_SetRouting (qboolean forceold);
 
 void MP_Error(const char *format, ...)
 {
+       static qboolean processingError = false;
        char errorstring[4096];
        va_list argptr;
 
@@ -4620,7 +4628,13 @@ void MP_Error(const char *format, ...)
        va_end (argptr);
        Con_Printf( "Menu_Error: %s\n", errorstring );
 
-       PRVM_Crash();
+       if( !processingError ) {
+               processingError = true;
+               PRVM_Crash();
+               processingError = false;
+       } else {
+               Con_Printf( "Menu_Error: Recursive call to MP_Error (from PRVM_Crash)!\n" );
+       }
 
        // fall back to the normal menu