diff --git a/Source/d_main.c b/Source/d_main.c index 473efab3..ca915a55 100644 --- a/Source/d_main.c +++ b/Source/d_main.c @@ -206,7 +206,7 @@ void D_Display (void) int wipestart; boolean done, wipe, redrawsbar; - if (demobar && demo_skipping) + if (demobar && DEMOSKIP) { if (HU_DemoProgressBar(false)) { diff --git a/Source/doomstat.h b/Source/doomstat.h index c7a5eebe..dff869f9 100644 --- a/Source/doomstat.h +++ b/Source/doomstat.h @@ -295,7 +295,13 @@ extern boolean demonext; // skipping demo extern int demoskip_tics; -#define demo_skipping (demowarp >= 0 || demoskip_tics > 0 || demonext) +#define DEMOSKIP (demowarp >= 0 || demoskip_tics > 0 || demonext) + +extern boolean strictmode, default_strictmode; + +#define STRICTMODE(x) (strictmode ? 0 : x) + +#define STRICTMODE_COMP(x) (strictmode ? comp[x] : default_comp[x]) extern gamestate_t gamestate; diff --git a/Source/g_game.c b/Source/g_game.c index 91a4d61c..c93be89f 100644 --- a/Source/g_game.c +++ b/Source/g_game.c @@ -127,9 +127,13 @@ byte *savebuffer; int autorun = false; // always running? // phares int novert = false; int mouselook = false; +// killough 4/13/98: Make clock rate adjustable by scale factor +int realtic_clock_rate = 100; int default_complevel; +boolean strictmode, default_strictmode; + // // controls (have defaults) // @@ -2608,6 +2612,39 @@ static int G_GetWadComplevel(void) return -1; } +static void G_MBFDefaults(void) +{ + weapon_recoil = 0; + monsters_remember = 1; + monster_infighting = 1; + monster_backing = 0; + monster_avoid_hazards = 1; + monkeys = 0; + monster_friction = 1; + help_friends = 0; + dogs = 0; + distfriend = 128; + dog_jumping = 1; + + memset(comp, 0, sizeof comp); + + comp[comp_zombie] = 1; +}; + +static void G_MBF21Defaults(void) +{ + G_MBFDefaults(); + + comp[comp_pursuit] = 1; + + comp[comp_respawn] = 0; + comp[comp_soul] = 0; + comp[comp_ledgeblock] = 1; + comp[comp_friendlyspawn] = 1; + comp[comp_voodooscroller] = 0; + comp[comp_reservedlineflag] = 1; +}; + static void G_MBFComp() { comp[comp_respawn] = 1; @@ -2623,11 +2660,13 @@ static void G_BoomComp() comp[comp_telefrag] = 1; comp[comp_dropoff] = 0; comp[comp_falloff] = 1; + comp[comp_skymap] = 1; comp[comp_pursuit] = 1; comp[comp_staylift] = 1; comp[comp_zombie] = 1; comp[comp_infcheat] = 1; - comp[comp_respawn] = 1; + + comp[comp_respawn] = 1; comp[comp_soul] = 1; comp[comp_ledgeblock] = 0; comp[comp_friendlyspawn] = 1; @@ -2711,8 +2750,25 @@ void G_ReloadDefaults(void) if (demo_version == -1) demo_version = G_GetDefaultComplevel(); + strictmode = default_strictmode; + + if (M_CheckParm("-strict")) + strictmode = true; + + // Reset MBF compatibility options in strict mode + if (strictmode) + { + if (demo_version == 203) + G_MBFDefaults(); + else if (mbf21) + G_MBF21Defaults(); + } + if (!mbf21) + { + // Set new compatibility options G_MBFComp(); + } // killough 3/31/98, 4/5/98: demo sync insurance demo_insurance = 0; @@ -2749,11 +2805,10 @@ void G_ReloadDefaults(void) } else if (mbf21) { + // These are not configurable variable_friction = 1; allow_pushers = 1; - demo_insurance = 0; classic_bfg = 0; - beta_emulation = 0; } M_ResetSetupMenu(); diff --git a/Source/hu_stuff.c b/Source/hu_stuff.c index 6c1890e7..b97167da 100644 --- a/Source/hu_stuff.c +++ b/Source/hu_stuff.c @@ -1037,7 +1037,7 @@ static void HU_UpdateCrosshair(void) else crosshair.cr = colrngs[hud_crosshair_color]; - if (hud_crosshair_target) + if (STRICTMODE(hud_crosshair_target)) { angle_t an = plr->mo->angle; ammotype_t ammo = weaponinfo[plr->readyweapon].ammo; @@ -1144,7 +1144,9 @@ void HU_Drawer(void) } // [FG] draw player coords widget - if (automapactive && !(hud_distributed && automapoverlay) && map_player_coords) + if ((automapactive && !(hud_distributed && automapoverlay) && + STRICTMODE(map_player_coords) == 1) || + STRICTMODE(map_player_coords) == 2) { // killough 10/98: allow coordinates to display non-following pointer AM_Coordinates(plr->mo, &x, &y, &z); diff --git a/Source/i_timer.c b/Source/i_timer.c index ee2dbff2..b03cd37e 100644 --- a/Source/i_timer.c +++ b/Source/i_timer.c @@ -102,25 +102,10 @@ static int I_GetFracTime_FastDemo(void) int (*I_GetFracTime)(void) = I_GetFracTime_Scaled; - -// killough 4/13/98: Make clock rate adjustable by scale factor -int realtic_clock_rate = 100; - void I_InitTimer(void) { - int p; - - p = M_CheckParmWithArgs("-speed", 1); - if (p) - { - time_scale = BETWEEN(10, 1000, atoi(myargv[p+1])); - } - else - { - time_scale = realtic_clock_rate; - } - I_GetTime = I_GetTime_Scaled; + I_GetFracTime = I_GetFracTime_Scaled; } void I_SetTimeScale(int scale) diff --git a/Source/i_video.c b/Source/i_video.c index 6eae667b..09f6484c 100644 --- a/Source/i_video.c +++ b/Source/i_video.c @@ -1022,7 +1022,7 @@ void I_BeginRead(unsigned int bytes) static void I_DrawDiskIcon(void) { - if (!disk_icon || !in_graphics_mode || demo_skipping) + if (!disk_icon || !in_graphics_mode || DEMOSKIP) return; if (disk_to_draw >= DISK_ICON_THRESHOLD) @@ -1045,7 +1045,7 @@ void I_EndRead(void) static void I_RestoreDiskBackground(void) { - if (!disk_icon || !in_graphics_mode || demo_skipping) + if (!disk_icon || !in_graphics_mode || DEMOSKIP) return; if (disk_to_restore) diff --git a/Source/m_menu.c b/Source/m_menu.c index 4a725883..e1d23846 100644 --- a/Source/m_menu.c +++ b/Source/m_menu.c @@ -60,6 +60,7 @@ #include "r_draw.h" // [FG] R_SetFuzzColumnMode #include "r_sky.h" // [FG] R_InitSkyMap() #include "r_plane.h" // [FG] R_InitPlanes() +#include "m_argv.h" // [crispy] remove DOS reference from the game quit confirmation dialogs #include "SDL_platform.h" @@ -133,7 +134,7 @@ boolean menuactive; // The menus are up #define LINEHEIGHT 16 #define M_SPC 9 -#define M_X 250 +#define M_X 240 #define M_Y (29 + M_SPC) #define M_X_PREV (57) #define M_X_NEXT (310) @@ -145,6 +146,9 @@ boolean menuactive; // The menus are up #define M_THRM_WIDTH (M_THRM_STEP * (M_THRM_SIZE + 2)) #define M_X_THRM (M_X - M_THRM_WIDTH) +#define DISABLE_ITEM(condition, item) \ + (condition ? (item.m_flags |= S_DISABLE) : (item.m_flags &= ~S_DISABLE)) + char savegamestrings[10][SAVESTRINGSIZE]; // [FG] support up to 8 pages of savegames @@ -3094,10 +3098,7 @@ static const char *weapon_attack_alignment_strings[] = { static void M_UpdateCenteredWeaponItem(void) { // weap_center - if (cosmetic_bobbing) - weap_settings1[12].m_flags &= ~S_DISABLE; - else - weap_settings1[12].m_flags |= S_DISABLE; + DISABLE_ITEM(!cosmetic_bobbing, weap_settings1[13]); } setup_menu_t weap_settings1[] = // Weapons Settings screen @@ -3220,27 +3221,11 @@ setup_menu_t stat_settings1[] = // Status Bar and HUD Settings screen static void M_UpdateCrosshairItems (void) { - if (hud_crosshair) - { - stat_settings2[8].m_flags &= ~S_DISABLE; - stat_settings2[9].m_flags &= ~S_DISABLE; - stat_settings2[10].m_flags &= ~S_DISABLE; - if (hud_crosshair_target) - { - stat_settings2[11].m_flags &= ~S_DISABLE; - } - else - { - stat_settings2[11].m_flags |= S_DISABLE; - } - } - else - { - stat_settings2[8].m_flags |= S_DISABLE; - stat_settings2[9].m_flags |= S_DISABLE; - stat_settings2[10].m_flags |= S_DISABLE; - stat_settings2[11].m_flags |= S_DISABLE; - } + DISABLE_ITEM(!hud_crosshair, stat_settings2[8]); + DISABLE_ITEM(!(hud_crosshair && !strictmode), stat_settings2[9]); + DISABLE_ITEM(!hud_crosshair, stat_settings2[10]); + DISABLE_ITEM(!(hud_crosshair && STRICTMODE(hud_crosshair_target)), + stat_settings2[11]); } static const char *timests_str[] = { @@ -3816,6 +3801,7 @@ enum { enum { general_title5, + general_strictmode, general_realtic, general_demobar, general_skill, @@ -3828,6 +3814,48 @@ enum { #define G_Y3 (M_Y + (general_end3 + 1) * M_SPC) #define G_Y4 (G_Y3 + (general_end4 + 1) * M_SPC) +#define DISABLE_STRICT(item) DISABLE_ITEM(strictmode, item) + +static void M_UpdateStrictModeItems(void) +{ + // weap_center + DISABLE_STRICT(weap_settings1[13]); + // hud_crosshair_target + DISABLE_STRICT(stat_settings2[9]); + DISABLE_STRICT(stat_settings2[11]); + // map_player_coords + DISABLE_STRICT(auto_settings1[5]); + // enem_ghost + DISABLE_ITEM(strictmode || !comp[comp_vile], enem_settings1[13]); + // general_realtic + DISABLE_STRICT(gen_settings3[general_realtic]); + // enem_colored_blood + DISABLE_STRICT(enem_settings1[11]); + // enem_flipcorpses + DISABLE_STRICT(enem_settings1[12]); + // general_brightmaps + DISABLE_STRICT(gen_settings2[general_end3 + general_brightmaps]); +} + +static void M_ResetTimeScale(void) +{ + if (strictmode) + I_SetTimeScale(100); + else + { + int p, time_scale; + + p = M_CheckParmWithArgs("-speed", 1); + + if (p) + time_scale = BETWEEN(10, 1000, atoi(myargv[p+1])); + else + time_scale = realtic_clock_rate; + + I_SetTimeScale(time_scale); + } +} + static const char *default_skill_strings[] = { // dummy first option because defaultskill is 1-based "", "ITYTD", "HNTR", "HMP", "UV", "NM", NULL @@ -3891,8 +3919,11 @@ setup_menu_t gen_settings3[] = { // General Settings screen3 {"Miscellaneous" ,S_SKIP|S_TITLE, m_null, M_X, M_Y}, - {"Game speed, percentage of normal", S_NUM|S_PRGWARN, m_null, M_X, - M_Y + general_realtic*M_SPC, {"realtic_clock_rate"}}, + {"Strict Mode", S_YESNO|S_LEVWARN, m_null, M_X, + M_Y + general_strictmode*M_SPC, {"strictmode"}}, + + {"Game speed, percentage of normal", S_NUM, m_null, M_X, + M_Y + general_realtic*M_SPC, {"realtic_clock_rate"}, 0, M_ResetTimeScale}, {"Show demo progress bar", S_YESNO, m_null, M_X, M_Y + general_demobar*M_SPC, {"demobar"}}, @@ -4070,6 +4101,7 @@ setup_menu_t comp_settings2[] = // Compatibility Settings screen #2 {"Linedef effects work with sector tag = 0", S_YESNO, m_null, C_X, M_Y + compat_zerotags * COMP_SPC, {"comp_zerotags"}}, + {"Cosmetic", S_SKIP|S_TITLE, m_null, C_X, M_Y + compat_cosmetic * COMP_SPC}, @@ -4184,10 +4216,7 @@ setup_menu_t* mess_settings[] = static void M_UpdateMultiLineMsgItem(void) { - if (message_list) - mess_settings1[7].m_flags &= ~S_DISABLE; - else - mess_settings1[7].m_flags |= S_DISABLE; + DISABLE_ITEM(!message_list, mess_settings1[7]); } setup_menu_t mess_settings1[] = // Messages screen @@ -5225,7 +5254,7 @@ boolean M_Responder (event_t* ev) // [FG] reload current level / go to next level if (M_InputActivated(input_menu_nextlevel)) { - if (demoplayback && singledemo && !demo_skipping) + if (demoplayback && singledemo && !DEMOSKIP) { demonext = true; G_EnableWarp(true); @@ -5237,7 +5266,7 @@ boolean M_Responder (event_t* ev) if (M_InputActivated(input_demo_fforward)) { - if (demoplayback && singledemo && !demo_skipping && !fastdemo) + if (demoplayback && singledemo && !DEMOSKIP && !fastdemo) { static boolean fastdemo_timer = false; fastdemo_timer = !fastdemo_timer; @@ -5246,7 +5275,8 @@ boolean M_Responder (event_t* ev) } } - if (M_InputActivated(input_speed_up) && (!netgame || demoplayback)) + if (M_InputActivated(input_speed_up) && (!netgame || demoplayback) + && !strictmode) { realtic_clock_rate += 10; realtic_clock_rate = BETWEEN(10, 1000, realtic_clock_rate); @@ -5254,7 +5284,8 @@ boolean M_Responder (event_t* ev) I_SetTimeScale(realtic_clock_rate); } - if (M_InputActivated(input_speed_down) && (!netgame || demoplayback)) + if (M_InputActivated(input_speed_down) && (!netgame || demoplayback) + && !strictmode) { realtic_clock_rate -= 10; realtic_clock_rate = BETWEEN(10, 1000, realtic_clock_rate); @@ -5262,7 +5293,8 @@ boolean M_Responder (event_t* ev) I_SetTimeScale(realtic_clock_rate); } - if (M_InputActivated(input_speed_default) && (!netgame || demoplayback)) + if (M_InputActivated(input_speed_default) && (!netgame || demoplayback) + && !strictmode) { realtic_clock_rate = 100; dprintf("Game Speed: %d", realtic_clock_rate); @@ -6641,9 +6673,12 @@ void M_ResetMenu(void) } } -#define FLAG_SET_BOOM(var, flag) (demo_version < 203) ? (var |= flag) : (var &= ~flag) -#define FLAG_SET_VANILLA(var, flag) demo_compatibility ? (var |= flag) : (var &= ~flag) -#define FLAG_SET_VANILLA_ONLY(var, flag) (!demo_compatibility) ? (var |= flag) : (var &= ~flag) +#define DISABLE_BOOM(item) \ + DISABLE_ITEM((strictmode || demo_version < 203), item) +#define DISABLE_VANILLA(item) \ + DISABLE_ITEM((strictmode || demo_compatibility), item) +#define DISABLE_VANILLA_ONLY(item) \ + DISABLE_ITEM(!demo_compatibility, item) void M_ResetSetupMenu(void) { @@ -6651,55 +6686,56 @@ void M_ResetSetupMenu(void) for (i = compat_stub1; i <= compat_god; ++i) { - FLAG_SET_BOOM(comp_settings1[i].m_flags, S_DISABLE); + DISABLE_BOOM(comp_settings1[i]); } for (i = compat_infcheat; i <= compat_zerotags; ++i) { - FLAG_SET_BOOM(comp_settings2[i].m_flags, S_DISABLE); + DISABLE_BOOM(comp_settings2[i]); + } + for (i = compat_blazing; i <= compat_skymap; ++i) + { + DISABLE_STRICT(comp_settings2[i]); } // comp_emu1 to comp_emu3 for (i = compat_emu1; i <= compat_emu3; ++i) { - FLAG_SET_VANILLA_ONLY(comp_settings3[i].m_flags, S_DISABLE); + DISABLE_VANILLA_ONLY(comp_settings3[i]); } - FLAG_SET_BOOM(enem_settings1[enem_infighting].m_flags, S_DISABLE); + DISABLE_BOOM(enem_settings1[enem_infighting]); for (i = enem_backing; i < enem_stub1; ++i) { - FLAG_SET_BOOM(enem_settings1[i].m_flags, S_DISABLE); + DISABLE_BOOM(enem_settings1[i]); } // enem_ghost - if (comp[comp_vile]) - enem_settings1[13].m_flags &= ~S_DISABLE; - else - enem_settings1[13].m_flags |= S_DISABLE; + DISABLE_ITEM(!comp[comp_vile], enem_settings1[13]); + + DISABLE_VANILLA(enem_settings1[enem_remember]); - FLAG_SET_VANILLA(enem_settings1[enem_remember].m_flags, S_DISABLE); // weap_pref1 to weap_pref9 for (i = 0; i < 9; ++i) { - FLAG_SET_VANILLA(weap_settings1[i].m_flags, S_DISABLE); + DISABLE_ITEM(demo_compatibility, weap_settings1[i]); } // [FG] exclusive fullscreen if (fullscreen_width != 0 || fullscreen_height != 0) { - gen_settings1[general_fullscreen+1].m_flags |= S_DISABLE; + gen_settings1[general_fullscreen].m_flags |= S_DISABLE; } M_UpdateCrosshairItems(); M_UpdateCenteredWeaponItem(); M_UpdateMultiLineMsgItem(); + M_UpdateStrictModeItems(); + M_ResetTimeScale(); } void M_ResetSetupMenuVideo(void) { // enem_fuzz - if (hires) - enem_settings1[14].m_flags &= ~S_DISABLE; - else - enem_settings1[14].m_flags |= S_DISABLE; + DISABLE_ITEM(!hires, enem_settings1[14]); } // diff --git a/Source/m_misc.c b/Source/m_misc.c index a822906b..a345a3ed 100644 --- a/Source/m_misc.c +++ b/Source/m_misc.c @@ -157,6 +157,13 @@ default_t defaults[] = { "1 to enable wait for vsync to avoid display tearing" }, + { + "strictmode", + (config_t *) &default_strictmode, (config_t *) &strictmode, + {0}, {0,1}, number, ss_gen, wad_no, + "1 to enable strict mode" + }, + { "realtic_clock_rate", (config_t *) &realtic_clock_rate, NULL, @@ -1670,11 +1677,11 @@ default_t defaults[] = { "1 to make keyed doors flash on the automap" }, - // [FG] player coords widget (intentionally not shown outside Automap) + // [FG] player coords widget { "map_player_coords", (config_t *) &map_player_coords, NULL, - {1}, {0,1}, number, ss_auto, wad_yes, + {1}, {0,2}, number, ss_auto, wad_yes, "1 to show player coords widget" }, diff --git a/Source/p_doors.c b/Source/p_doors.c index e35ff5ed..df422af4 100644 --- a/Source/p_doors.c +++ b/Source/p_doors.c @@ -133,7 +133,7 @@ void T_VerticalDoor (vldoor_t *door) door->sector->ceilingdata = NULL; //jff 2/22/98 P_RemoveThinker (&door->thinker); // unlink and free // killough 4/15/98: remove double-closing sound of blazing doors - if (default_comp[comp_blazing]) + if (STRICTMODE_COMP(comp_blazing)) S_StartSound((mobj_t *)&door->sector->soundorg,sfx_bdcls); break; @@ -525,7 +525,7 @@ int EV_VerticalDoor(line_t *line, mobj_t *thing) door->line = line; // jff 1/31/98 remember line that triggered us // killough 10/98: use gradual lighting changes if nonzero tag given - door->lighttag = default_comp[comp_doorlight] ? 0 : line->tag; // killough 10/98 + door->lighttag = STRICTMODE_COMP(comp_doorlight) ? 0 : line->tag; // killough 10/98 // set the type of door from the activating linedef type switch(line->special) diff --git a/Source/p_enemy.c b/Source/p_enemy.c index dfbc43c6..fa9caa98 100644 --- a/Source/p_enemy.c +++ b/Source/p_enemy.c @@ -1691,7 +1691,8 @@ static boolean P_HealCorpse(mobj_t* actor, int radius, statenum_t healstate, sfx (info->flags & ~MF_FRIEND) | (actor->flags & MF_FRIEND); // [crispy] resurrected pools of gore ("ghost monsters") are translucent - if (ghost_monsters && corpsehit->height == 0 && corpsehit->radius == 0) + if (STRICTMODE(ghost_monsters) && corpsehit->height == 0 + && corpsehit->radius == 0) { corpsehit->flags |= MF_TRANSLUCENT; fprintf(stderr, "A_VileChase: Resurrected ghost monster (%d) at (%d/%d)!\n", diff --git a/Source/p_genlin.c b/Source/p_genlin.c index 4485e080..c3d38d7d 100644 --- a/Source/p_genlin.c +++ b/Source/p_genlin.c @@ -971,7 +971,7 @@ manual_locked: door->direction = 1; // killough 10/98: implement gradual lighting - door->lighttag = !default_comp[comp_doorlight] && (line->special&6) == 6 && + door->lighttag = !STRICTMODE_COMP(comp_doorlight) && (line->special&6) == 6 && line->special > GenLockedBase ? line->tag : 0; // setup speed of door motion @@ -1110,7 +1110,7 @@ manual_door: door->line = line; // jff 1/31/98 remember line that triggered us // killough 10/98: implement gradual lighting - door->lighttag = !default_comp[comp_doorlight] && (line->special&6) == 6 && + door->lighttag = !STRICTMODE_COMP(comp_doorlight) && (line->special&6) == 6 && line->special > GenLockedBase ? line->tag : 0; // set kind of door, whether it opens then close, opens, closes etc. diff --git a/Source/p_map.c b/Source/p_map.c index afdcbc6d..971517c4 100644 --- a/Source/p_map.c +++ b/Source/p_map.c @@ -1881,7 +1881,7 @@ static boolean PIT_ChangeSector(mobj_t *thing) P_SetMobjState(thing, S_GIBS); thing->flags &= ~MF_SOLID; thing->height = thing->radius = 0; - if (colored_blood) + if (STRICTMODE(colored_blood)) { thing->flags2 |= MF2_COLOREDBLOOD; thing->bloodcolor = V_BloodColor(thing->info->bloodcolor); @@ -1921,7 +1921,7 @@ static boolean PIT_ChangeSector(mobj_t *thing) thing->y, thing->z + thing->height/2, MT_BLOOD); - if (colored_blood) + if (STRICTMODE(colored_blood)) { mo->flags2 |= MF2_COLOREDBLOOD; mo->bloodcolor = V_BloodColor(thing->info->bloodcolor); diff --git a/Source/p_mobj.c b/Source/p_mobj.c index 773480ec..6bf5baeb 100644 --- a/Source/p_mobj.c +++ b/Source/p_mobj.c @@ -1331,7 +1331,7 @@ void P_SpawnBlood(fixed_t x,fixed_t y,fixed_t z,int damage,mobj_t *bleeder) th = P_SpawnMobj(x,y,z, MT_BLOOD); th->momz = FRACUNIT*2; th->tics -= P_Random(pr_spawnblood)&3; - if (colored_blood) + if (STRICTMODE(colored_blood)) { th->flags2 |= MF2_COLOREDBLOOD; th->bloodcolor = V_BloodColor(bleeder->info->bloodcolor); diff --git a/Source/r_bmaps.c b/Source/r_bmaps.c index b554457b..46dd0e13 100644 --- a/Source/r_bmaps.c +++ b/Source/r_bmaps.c @@ -681,7 +681,7 @@ static const byte *R_BrightmapForTexName_Hacx (const char *texname) // [crispy] adapted from russian-doom/src/doom/r_things.c:617-639 static const byte *R_BrightmapForSprite_Doom (const int type) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { switch (type) { @@ -723,7 +723,7 @@ static const byte *R_BrightmapForSprite_Chex (const int type) { // [crispy] TODO /* - if (brightmaps) + if (STRICTMODE(brightmaps)) { switch (type) { @@ -751,7 +751,7 @@ static const byte *R_BrightmapForSprite_Chex (const int type) static const byte *R_BrightmapForSprite_Hacx (const int type) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { switch (type) { @@ -803,7 +803,7 @@ static int bmapflatnum[12]; static const byte *R_BrightmapForFlatNum_Doom (const int num) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { if (num == bmapflatnum[0] || num == bmapflatnum[1] || @@ -818,7 +818,7 @@ static const byte *R_BrightmapForFlatNum_Doom (const int num) static const byte *R_BrightmapForFlatNum_Hacx (const int num) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { if (num == bmapflatnum[0] || num == bmapflatnum[1] || @@ -853,7 +853,7 @@ static const byte *R_BrightmapForFlatNum_None (const int num) static const byte *R_BrightmapForState_Doom (const int state) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { switch (state) { @@ -873,7 +873,7 @@ static const byte *R_BrightmapForState_Doom (const int state) static const byte *R_BrightmapForState_Hacx (const int state) { - if (brightmaps) + if (STRICTMODE(brightmaps)) { switch (state) { diff --git a/Source/r_plane.c b/Source/r_plane.c index b13c8986..e7f956f3 100644 --- a/Source/r_plane.c +++ b/Source/r_plane.c @@ -400,7 +400,7 @@ static void do_draw_plane(visplane_t *pl) // // killough 7/19/98: fix hack to be more realistic: - if (default_comp[comp_skymap] || !(dc_colormap[0] = dc_colormap[1] = fixedcolormap)) + if (STRICTMODE_COMP(comp_skymap) || !(dc_colormap[0] = dc_colormap[1] = fixedcolormap)) dc_colormap[0] = dc_colormap[1] = fullcolormap; // killough 3/20/98 dc_texheight = textureheight[texture]>>FRACBITS; // killough diff --git a/Source/r_segs.c b/Source/r_segs.c index 550a89bf..c1a4d4b9 100644 --- a/Source/r_segs.c +++ b/Source/r_segs.c @@ -388,7 +388,8 @@ static void R_RenderSegLoop (void) if (index >= MAXLIGHTSCALE ) index = MAXLIGHTSCALE-1; dc_colormap[0] = walllights[index]; - dc_colormap[1] = (!fixedcolormap && brightmaps) ? fullcolormap : dc_colormap[0]; + dc_colormap[1] = (!fixedcolormap && STRICTMODE(brightmaps)) ? + fullcolormap : dc_colormap[0]; dc_x = rw_x; dc_iscale = 0xffffffffu / (unsigned)rw_scale; } diff --git a/Source/r_things.c b/Source/r_things.c index 74c8062b..2bac1649 100644 --- a/Source/r_things.c +++ b/Source/r_things.c @@ -519,7 +519,7 @@ void R_ProjectSprite (mobj_t* thing) } // [crispy] randomly flip corpse, blood and death animation sprites - if (flipcorpses && + if (STRICTMODE(flipcorpses) && (thing->flags2 & MF2_FLIPPABLE) && !(thing->flags & MF_SHOOTABLE) && (thing->health & 1))