From 964bdc8d45d33a151a9cf28f4c84418798acf9eb Mon Sep 17 00:00:00 2001 From: dashodanger Date: Thu, 9 May 2024 00:53:45 -0600 Subject: [PATCH] SLUMP tweaks --- games/chex1/base.lua | 2 +- games/chex1/themes.lua | 21 +- games/hacx/themes.lua | 727 +++++++++++++++--------------------- scripts/defs.lua | 11 + scripts/obsidian.lua | 6 +- source_files/slump/slump.cc | 8 +- 6 files changed, 318 insertions(+), 457 deletions(-) diff --git a/games/chex1/base.lua b/games/chex1/base.lua index c96d88cea2..f505cc47f1 100644 --- a/games/chex1/base.lua +++ b/games/chex1/base.lua @@ -34,7 +34,7 @@ end OB_GAMES["chex1"] = { - label = _("Chex Quest 1"), + label = _("Chex 3 Vanilla"), priority = 93, engine = "idtech_1", diff --git a/games/chex1/themes.lua b/games/chex1/themes.lua index 909a389cbc..12709d098d 100644 --- a/games/chex1/themes.lua +++ b/games/chex1/themes.lua @@ -1196,28 +1196,11 @@ CHEX1.ROOM_THEMES = } ------------------------------------------------------------------------ - -CHEX1.ROOMS = -{ - GENERIC = - { - env = "any" - }, - - OUTSIDE = - { - env = "outdoor", - prob = 50 - }, - -} - - function CHEX1.slump_setup() if ob_match_game({game = {chex1=1}}) then - if OB_CONFIG.theme == "original" or OB_CONFIG.theme == "epi" then + if OB_CONFIG.theme == "default" then PARAM.slump_config = CHEX1.THEMES.DEFAULTS.slump_config - elseif OB_CONFIG.theme == "jumble" or OB_CONFIG.theme == "bit_mixed" then + elseif OB_CONFIG.theme == "jumble" then local possible_configs = {} for _,tab in pairs(CHEX1.THEMES) do if tab.slump_config then diff --git a/games/hacx/themes.lua b/games/hacx/themes.lua index 91e53f5338..821fcd871f 100644 --- a/games/hacx/themes.lua +++ b/games/hacx/themes.lua @@ -2,65 +2,10 @@ -- HACX THEMES ------------------------------------------------------------------------ -HACX.SINKS = -{ - -- sky holes -- - - sky_plain = - { - mat = "_SKY", - dz = 64, - light = 16 - }, - - -- liquid floor -- - - liquid_plain = - { - mat = water, - dz = -12 - }, - - -- street sink def, do not use for anything else - floor_default_streets = - { - mat = "RROCK02", - dz = 2, - - trim_mat = "PLAT1", - trim_dz = 2, - } -} - - HACX.THEMES = { DEFAULTS = { - - keys = - { - kz_red = 50, - kz_yellow = 50, - kz_blue = 50 - }, - - skyboxes = - { - - }, - - cage_lights = { 0, 8, 12, 13 }, - - pool_depth = 24, - - street_sinks = - { - floor_default_streets = 1 - }, - - streets_friendly = false, - slump_config = [[ ; @@ -241,416 +186,346 @@ HACX.THEMES = ]] }, - prison = { - style_list = - { - caves = { none=60, few=40, some=12, heaps=2 }, - outdoors = { none=10, few=35, some=90, heaps=30 }, - pictures = { few=20, some=80, heaps=30 }, - hallways = { none=30, few=80, some=15, heaps=10 }, - windows = { few=25, some=50, heaps=90 }, - cages = { none=30, few=50, some=20, heaps=10 }, - liquids = { none=45, few=30, some=20, heaps=5 }, - doors = { few=20, some=70, heaps=30 }, - steepness = { few=25, some=50, heaps=90 }, - big_rooms = { none=25, few=40, some=25, heaps=15 }, - ambushes = { none=5, few=20, some=75, heaps=30 }, - teleporters = { none=20, few=30, some=65, heaps=10 }, - keys = { none=15, few=50, some=50, heaps=20 }, - symmetry = { none=40, few=30, some=35, heaps=25 }, - switches = { none=20, few=60, some=40, heaps=10 }, - secrets = { few=5, some=80, heaps=25 }, - traps = { none=10, few=40, some=70, heaps=25 }, - barrels = { none=10, few=50, some=20, heaps=5 } - }, - - liquids = - { - water2 = 40, - water = 50, - elec = 10 - }, - - narrow_halls = - { - - }, - - wide_halls = - { - - }, - - floor_sinks = - { - - }, - - ceiling_sinks = - { - - }, - - fences = - { - BRICK8 = 30, - }, - - cage_mats = - { - MODWALL3 = 30, - }, - - facades = - { - MODWALL3 = 30, - }, - - fence_groups = - { - PLAIN = 50, - }, - - fence_posts = - { - Post = 50 - }, - - beam_groups = - { - beam_metal = 50 - }, - - window_groups = - { - square = 40, - tall = 80, - }, - - wall_groups = - { - PLAIN = 0.01, - }, - - cliff_trees = - { - tree = 50, - }, - - park_decor = - { - tree = 50, - }, - - cave_torches = - { - rock = 50 - }, - - outdoor_torches = - { - standing_lamp = 50 - }, - - ceil_light_prob = 70, - - scenic_fences = - { - BRIDGE_RAIL = 80, - }, + slump_config = + [[ + ; + ; Sample SLIGE config file. (Semicolon starts a comment to end of line.) + ; + ; This is the SLIGE.CFG as shipped with SLIGE itself. It contains a + ; description of the default SLIGE configuration, as hardwired into + ; the program. So having this file in the current directory under the + ; name SLIGE.CFG should produce exactly the same effect as not having + ; any config file at all. You can use this file as a base to build + ; your own config files on (but if you do, you should change these + ; comments; otherwise they'll be WRONG!). + ; + ; Dave Chess, dmchess@aol.com, chess@us.ibm.com + + ; The current implementation ignores everything before the + ; [THEMES] line also, but that will change. - sink_style = - { - sharp = 1, - curved = 0.1 - }, + [THEMES] ; Anything after a ; is, remember, a comment - steps_mat = "CEIL5_1", + ; We have three themes, one secret. They should all be declared + ; before any textures or flats or anything else. The only valid + ; modifier is "secret", which says that that theme should only be + ; used on secret levels. There should be at least one "secret" + ; theme. - post_mat = "HW209" + Theme PRS ; Prison theme + + ; Flats and textures and constructs and stuff are also in the [THEMES] section + + ; Textures are described by "Texture NAME ". Obvious + ; attributes include "wall", "door", and so on. Some subtler ones: + ; + ; "core " means that this texture should be common in that theme. + ; "comp " means that this texture is compatible with that theme, but + ; not to be used all that often. + ; "switch " means "the given texture is a good switch to use in + ; a room that has walls of the current texture" + ; "isswitch" means "the current texture is a good switch to use on any + ; wall in a room with a compatible theme" + ; "subtle " means "the given texture is a subtle variant of the + ; current texture, suitable for hinting at secrets" + ; "yhint N" means "when using a vertical misalignment to hint at + ; a secret door in a wall of this texture, use a y-offset of N". If + ; N is zero, it means "this wall is too visually complex to hint via a + ; y-misalignment at all; hint some other way". If no "yhint" is given, + ; the value 5 is used. + ; "noDoom2" means that the texture does not exist in the usual DOOM II + ; IWAD. "noDoom0" means it doesn't exist in the DOOM 1.2 IWAD, and + ; "noDoom1" means it's not in the DOOM 1.666 or 1.89 IWAD. If none + ; of these are specified, the texture is assumed to be in all. + ; "size " gives the size of the texture. You can leave + ; this out if the height is 128, and the width is some reasonable + ; divisor of 256 (except for doors, where you should give the real + ; width so SLIGE can make them look nice). + + ; Prison walls + Texture MIDSPACE size 128 128 wall core PRS + Texture METAL6 size 128 128 wall core PRS subtle METAL5 + Texture MIDBARS1 size 128 128 wall core PRS subtle METAL7 + + ; Prison switches + Texture SW1STARG size 128 128 isswitch comp PRS + Texture SW1BRNGN size 128 128 isswitch comp PRS + + ; And the lift texture + Texture BIGDOOR1 size 128 128 lift comp PRS + + ; Doors of all kinds. "size" gives the width and height of the texture, + ; and "locked" means that it's a good texture to use on a door that only + ; opens with a switch, not a touch. + Texture BIGDOOR4 size 128 128 door comp PRS + + ; Prison exit switches + Texture DOORRED size 128 128 exitswitch comp PRS + + ; Lights, suitable for lighting recesses and stuff. + Texture HW208 size 8 64 light comp PRS + Texture HW215 size 64 8 light comp PRS + Texture HW221 size 8 32 light comp PRS + + ; "Plaques", suitable for wall consoles and paintings and pillars and stuff. + ; "vtiles" means that it's OK to pile one on top of another, as when + ; making the big central pillar in an arena. + ; "half_plaque" means that the upper half of this texture can be used + ; by itself, as well as the whole thing. + Texture SPCDOOR1 size 128 128 plaque comp PRS + + ; Gratings + Texture SPACEW3 size 128 128 grating comp PRS + Texture HW203 size 128 128 grating comp PRS + + ; Colors (suitable for marking key-locked things) + Texture HW510 size 8 128 red comp PRS + Texture HW511 size 8 128 yellow comp PRS + Texture HW512 size 8 128 blue comp PRS + + ; Step kickplates + Texture HW216 size 64 8 step comp PRS + + ; "Doorjambs" + Texture HW513 size 16 128 jamb comp PRS + + ; Support textures, used in various places + Texture BIGBRIK3 size 128 128 support comp PRS + + ; Bunch of things for outside patios (no themes applied here) + Texture PANEL2 size 128 128 outside + Texture PANEL3 size 128 128 outside + + ; Misc + Texture BROWNGRN size 128 128 error + + ; Now the flats. Keywords should all be pretty obvious... *8) + + ; Teleport-gate floors + Flat BLOOD1 gate comp PRS + + ; Prison floors and ceilings + Flat FLOOR0_1 floor comp PRS + Flat CEIL3_2 ceiling comp PRS + Flat CEIL4_3 ceiling comp PRS + Flat SFLR6_1 ceiling light comp PRS + Flat SFLR6_4 ceiling light comp PRS + Flat TLITE6_5 floor comp PRS + Flat DEM1_3 floor comp PRS + Flat FLOOR6_1 ceiling comp PRS + + ; and nukage + Flat SLIME01 nukage comp PRS + Flat SLIME09 nukage comp PRS + Flat LAVA1 nukage red comp PRS + + ; Floors for outside areas not yet mentioned + Flat CONS1_7 outside + Flat FLAT23 outside + + ; These are the defaults, but we'll list them anyway. + Flat FWATER1 water + Flat F_SKY1 sky + + ; Constructs: computers and crates and stuff that stand around in rooms + ; This is pretty complex! Fool with it at your peril. + + ; Family 1 is crates of various sizes and kinds + Construct family 1 height 128 comp PRS + top FLOOR0_2 + Primary BRICK10 width 128 + + ; Load the hardwired monster and object and so on data (required in + ; this version of SLIGE; don't remove this!) + Hardwired1 + + ; Say which lamps we like in which themes, and where barrels are allowed + ; Information like which Doom version each object is in, and which ones + ; cast light, and which ones explode, is still hardwired. + Thing 2028 comp PRS ; floor lamp + + ; and that's it! + ]] }, digi_ota = { - style_list = - { - caves = { none=60, few=40, some=12, heaps=2 }, - outdoors = { none=10, few=35, some=90, heaps=30 }, - pictures = { few=20, some=80, heaps=30 }, - hallways = { none=30, few=80, some=15, heaps=10 }, - windows = { few=25, some=50, heaps=90 }, - cages = { none=30, few=50, some=20, heaps=10 }, - liquids = { none=45, few=30, some=20, heaps=5 }, - doors = { few=20, some=70, heaps=30 }, - steepness = { few=25, some=50, heaps=90 }, - big_rooms = { none=25, few=40, some=25, heaps=15 }, - ambushes = { none=5, few=20, some=75, heaps=30 }, - teleporters = { none=20, few=30, some=65, heaps=10 }, - keys = { none=15, few=50, some=50, heaps=20 }, - symmetry = { none=40, few=30, some=35, heaps=25 }, - switches = { none=20, few=60, some=40, heaps=10 }, - secrets = { few=5, some=80, heaps=25 }, - traps = { none=10, few=40, some=70, heaps=25 }, - barrels = { none=10, few=50, some=20, heaps=5 } - }, - - liquids = - { - water2 = 40, - water = 50, - elec = 10 - }, - - narrow_halls = - { - - }, - - wide_halls = - { - - }, - - floor_sinks = - { - - }, - - ceiling_sinks = - { - - }, - - fences = - { - BRICK8 = 30, - }, - - cage_mats = - { - MODWALL3 = 30, - }, - - facades = - { - MODWALL3 = 30, - }, - - fence_groups = - { - PLAIN = 50, - }, - - fence_posts = - { - Post = 50 - }, - - beam_groups = - { - beam_metal = 50 - }, - - window_groups = - { - square = 40, - tall = 80, - }, - - wall_groups = - { - PLAIN = 0.01, - }, - - cliff_trees = - { - tree = 50, - }, - - park_decor = - { - tree = 50, - }, - - cave_torches = - { - rock = 50 - }, - - outdoor_torches = - { - standing_lamp = 50 - }, - - ceil_light_prob = 70, - - scenic_fences = - { - BRIDGE_RAIL = 80, - }, + slump_config = + [[ + ; + ; Sample SLIGE config file. (Semicolon starts a comment to end of line.) + ; + ; This is the SLIGE.CFG as shipped with SLIGE itself. It contains a + ; description of the default SLIGE configuration, as hardwired into + ; the program. So having this file in the current directory under the + ; name SLIGE.CFG should produce exactly the same effect as not having + ; any config file at all. You can use this file as a base to build + ; your own config files on (but if you do, you should change these + ; comments; otherwise they'll be WRONG!). + ; + ; Dave Chess, dmchess@aol.com, chess@us.ibm.com - sink_style = - { - sharp = 1, - curved = 0.1 - }, + ; The current implementation ignores everything before the + ; [THEMES] line also, but that will change. - steps_mat = "CEIL5_1", + [THEMES] ; Anything after a ; is, remember, a comment - post_mat = "HW209" + ; We have three themes, one secret. They should all be declared + ; before any textures or flats or anything else. The only valid + ; modifier is "secret", which says that that theme should only be + ; used on secret levels. There should be at least one "secret" + ; theme. - } + Theme OTA ; Digi-Ota theme -} + ; Flats and textures and constructs and stuff are also in the [THEMES] section + ; Textures are described by "Texture NAME ". Obvious + ; attributes include "wall", "door", and so on. Some subtler ones: + ; + ; "core " means that this texture should be common in that theme. + ; "comp " means that this texture is compatible with that theme, but + ; not to be used all that often. + ; "switch " means "the given texture is a good switch to use in + ; a room that has walls of the current texture" + ; "isswitch" means "the current texture is a good switch to use on any + ; wall in a room with a compatible theme" + ; "subtle " means "the given texture is a subtle variant of the + ; current texture, suitable for hinting at secrets" + ; "yhint N" means "when using a vertical misalignment to hint at + ; a secret door in a wall of this texture, use a y-offset of N". If + ; N is zero, it means "this wall is too visually complex to hint via a + ; y-misalignment at all; hint some other way". If no "yhint" is given, + ; the value 5 is used. + ; "noDoom2" means that the texture does not exist in the usual DOOM II + ; IWAD. "noDoom0" means it doesn't exist in the DOOM 1.2 IWAD, and + ; "noDoom1" means it's not in the DOOM 1.666 or 1.89 IWAD. If none + ; of these are specified, the texture is assumed to be in all. + ; "size " gives the size of the texture. You can leave + ; this out if the height is 128, and the width is some reasonable + ; divisor of 256 (except for doors, where you should give the real + ; width so SLIGE can make them look nice). -HACX.ROOM_THEMES = -{ + + ; Digi-Ota switches + Texture SW1STARG size 128 128 isswitch comp OTA + Texture SW1BRNGN size 128 128 isswitch comp OTA + + ; Digi-Ota walls + Texture HW165 size 128 128 wall core OTA + Texture STUCCO2 size 128 128 wall core OTA + Texture TANROCK2 size 128 128 wall core OTA - prison_Interior = - { - env = "building", - prob = 50, - - walls = - { - MIDSPACE = 30, - METAL6 = 30, - MIDBARS1 = 30, - }, - - floors = - { - FLOOR0_1 = 30, - TLITE6_5 = 30, - DEM1_3 = 30, - }, - - ceilings = - { - CEIL3_2 = 30, - CEIL4_3 = 30, - FLOOR6_1 = 30, - } - }, + ; And the lift texture + Texture BIGDOOR1 size 128 128 lift comp OTA - prison_Outdoors = - { - env = "outdoor", - prob = 50, + ; Doors of all kinds. "size" gives the width and height of the texture, + ; and "locked" means that it's a good texture to use on a door that only + ; opens with a switch, not a touch. + Texture BIGDOOR4 size 128 128 door comp OTA - floors = - { - FLOOR6_2 = 50, - }, + ; Prison exit switches + Texture DOORRED size 128 128 exitswitch comp OTA - naturals = - { - CONS1_7 = 50, - FLAT23 = 50, - }, + ; Lights, suitable for lighting recesses and stuff. + Texture HW208 size 8 64 light comp OTA + Texture HW215 size 64 8 light comp OTA + Texture HW221 size 8 32 light comp OTA - porch_floors = - { - FLOOR6_2 = 50, - }, + ; "Plaques", suitable for wall consoles and paintings and pillars and stuff. + ; "vtiles" means that it's OK to pile one on top of another, as when + ; making the big central pillar in an arena. + ; "half_plaque" means that the upper half of this texture can be used + ; by itself, as well as the whole thing. + Texture STUCCO size 128 128 plaque vtiles comp OTA + Texture STUCCO1 size 128 128 plaque vtiles comp OTA + Texture STUCCO3 size 128 128 plaque comp OTA - }, + ; Gratings + Texture HW203 size 128 128 grating comp OTA + Texture TEKGREN2 size 128 128 grating comp OTA - prison_Cave = - { - env = "cave", - prob = 50, - - floors = - { - FLOOR0_1 = 50 - }, - - walls = - { - HW185 = 50 - } - }, + ; Colors (suitable for marking key-locked things) + Texture HW510 size 8 128 red comp OTA + Texture HW511 size 8 128 yellow comp OTA + Texture HW512 size 8 128 blue comp OTA - digi_ota_Interior = - { - env = "building", - prob = 50, - - walls = - { - HW165 = 30, - STUCCO2 = 30, - TANROCK2 = 30, - }, - - floors = - { - FLOOR5_2 = 30, - FLOOR0_5 = 30, - FLAT5_2 = 30, - }, - - ceilings = - { - MFLR8_2 = 30, - MFLR8_3 = 30, - FLAT5_3 = 30, - } - }, + ; Step kickplates + Texture HW216 size 64 8 step comp OTA - digi_ota_Outdoors = - { - env = "outdoor", - prob = 50, + ; "Doorjambs" + Texture HW513 size 16 128 jamb comp OTA + + ; Support textures, used in various places + Texture BIGBRIK3 size 128 128 support comp OTA - floors = - { - FLOOR6_2 = 50, - }, + ; Bunch of things for outside patios (no themes applied here) + Texture PANEL2 size 128 128 outside + Texture PANEL3 size 128 128 outside - naturals = - { - CONS1_7 = 50, - FLAT23 = 50, - }, + ; Misc + Texture BROWNGRN size 128 128 error - porch_floors = - { - FLOOR6_2 = 50, - }, + ; Now the flats. Keywords should all be pretty obvious... *8) - }, + ; Teleport-gate floors + Flat BLOOD1 gate comp OTA + + ; Digi-Ota floors and ceilings + Flat FLOOR5_2 floor comp OTA + Flat FLOOR0_5 floor comp OTA + Flat FLAT5_2 floor comp OTA + Flat MFLR8_2 ceiling comp OTA + Flat MFLR8_3 ceiling comp OTA + Flat FLAT5_3 ceiling comp OTA + + ; and nukage + Flat SLIME01 nukage comp OTA + Flat SLIME09 nukage comp OTA + Flat LAVA1 nukage red comp OTA + + ; Floors for outside areas not yet mentioned + Flat CONS1_7 outside + Flat FLAT23 outside + + ; These are the defaults, but we'll list them anyway. + Flat FWATER1 water + Flat F_SKY1 sky + + ; Constructs: computers and crates and stuff that stand around in rooms + ; This is pretty complex! Fool with it at your peril. + + ; Family 1 is crates of various sizes and kinds + Construct family 1 height 128 comp OTA + top FLOOR0_2 + Primary BRICK10 width 128 + + ; Load the hardwired monster and object and so on data (required in + ; this version of SLIGE; don't remove this!) + Hardwired1 + + ; Say which lamps we like in which themes, and where barrels are allowed + ; Information like which Doom version each object is in, and which ones + ; cast light, and which ones explode, is still hardwired. + Thing 2028 comp OTA ; floor lamp + + ; and that's it! + ]] - digi_ota_Cave = - { - env = "cave", - prob = 50, - - floors = - { - FLOOR0_1 = 50 - }, - - walls = - { - HW185 = 50 - } } } function HACX.slump_setup() if ob_match_game({game = {hacx=1}}) then - if OB_CONFIG.theme == "original" or OB_CONFIG.theme == "epi" then + if OB_CONFIG.theme == "default" then PARAM.slump_config = HACX.THEMES.DEFAULTS.slump_config - elseif OB_CONFIG.theme == "jumble" or OB_CONFIG.theme == "bit_mixed" then + elseif OB_CONFIG.theme == "jumble" then local possible_configs = {} for _,tab in pairs(HACX.THEMES) do if tab.slump_config then @@ -676,7 +551,7 @@ OB_THEMES["prison"] = mixed_prob = 50 } -OB_THEMES["digi-ota"] = +OB_THEMES["digi_ota"] = { label = _("Digi-Ota"), game = "hacx", diff --git a/scripts/defs.lua b/scripts/defs.lua index 71ede63a61..f315cacd79 100644 --- a/scripts/defs.lua +++ b/scripts/defs.lua @@ -64,6 +64,7 @@ function _(s) return gui.gettext(s) end -- special theme types, usable by all games OB_THEMES["original"] = { + port = "!limit_enforcing", label = _("Original"), priority = 91 } @@ -71,6 +72,7 @@ OB_THEMES["original"] = OB_THEMES["epi"] = { + port = "!limit_enforcing", label = _("Episodic"), priority = 85 } @@ -85,6 +87,7 @@ OB_THEMES["jumble"] = OB_THEMES["bit_mixed"] = { + port = "!limit_enforcing", label = _("Bit Mixed"), priority = 81 } @@ -92,10 +95,18 @@ OB_THEMES["bit_mixed"] = OB_THEMES["psycho"] = { + port = "!limit_enforcing", label = _("Psychedelic"), priority = -99 -- bottom most } +OB_THEMES["default"] = +{ + port = "limit_enforcing", + label = _("Default"), + priority = 99, +} + -- choices for Length button LENGTH_CHOICES = diff --git a/scripts/obsidian.lua b/scripts/obsidian.lua index d985775648..d67a030d9e 100644 --- a/scripts/obsidian.lua +++ b/scripts/obsidian.lua @@ -574,9 +574,7 @@ function ob_update_ports() else OB_CONFIG.port = "zdoom" end - elseif OB_CONFIG.engine == "idtech_2" then - OB_CONFIG.port = "vanilla" - else + else -- shouldn't get here - Dasho OB_CONFIG.port = "vanilla" end gui.set_button("port", OB_CONFIG.port) @@ -1935,8 +1933,6 @@ function ob_default_filename() elseif OB_CONFIG.length == "episode" then if ob_match_game({game = {doom2=1,tnt=1,plutonia=1,hacx=1}}) then levelcount = "11" - elseif OB_CONFIG.game == "chex1" then - levelcount = "5" else levelcount = "9" end diff --git a/source_files/slump/slump.cc b/source_files/slump/slump.cc index 9a37fd4106..28cc8ecc08 100644 --- a/source_files/slump/slump.cc +++ b/source_files/slump/slump.cc @@ -1208,8 +1208,6 @@ config *get_config(std::filesystem::path filename) { if (StringCaseCmp(current_game, "doom2") == 0 || StringCaseCmp(current_game, "plutonia") == 0 || StringCaseCmp(current_game, "tnt") == 0 || StringCaseCmp(current_game, "hacx") == 0) { answer->levelcount = 11; - } else if (StringCaseCmp(current_game, "chex1") == 5) { - answer->levelcount = 5; } else { answer->levelcount = 8; } @@ -1217,12 +1215,10 @@ config *get_config(std::filesystem::path filename) { if (StringCaseCmp(current_game, "doom2") == 0 || StringCaseCmp(current_game, "plutonia") == 0 || StringCaseCmp(current_game, "tnt") == 0 || StringCaseCmp(current_game, "hacx") == 0) { answer->levelcount = 32; - } else if (StringCaseCmp(current_game, "doom1") == 0) { + } else if (StringCaseCmp(current_game, "doom1") == 0 || StringCaseCmp(current_game, "chex1") == 0) { answer->levelcount = 24; } else if (StringCaseCmp(current_game, "ultdoom") == 0) { answer->levelcount = 32; - } else if (StringCaseCmp(current_game, "chex1") == 0) { - answer->levelcount = 5; } else { answer->levelcount = 40; // Heretic } @@ -1236,7 +1232,7 @@ config *get_config(std::filesystem::path filename) { answer->do_dm = StringToInt(dm_starts); answer->do_slinfo = SLUMP_TRUE; answer->produce_null_lmps = SLUMP_FALSE; - answer->do_seclevels = (StringCaseCmp(current_game, "chex1") == 0) ? SLUMP_FALSE : SLUMP_TRUE; + answer->do_seclevels = (StringCaseCmp(current_game, "chex1") == 0) ? SLUMP_FALSE : SLUMP_TRUE; // review now that CQ3 Vanilla exists - Dasho answer->force_secret = SLUMP_FALSE; answer->minlight = 115; /* Is this the right place for all these? */