Reify debug booleans

This commit is contained in:
2022-06-17 21:34:00 +01:00
parent 261bb0bb6b
commit 5053590792
10 changed files with 73 additions and 49 deletions
+23 -15
View File
@@ -3,6 +3,7 @@ module Dodge.Menu
, pauseMenu
, gameOverMenu
) where
import Dodge.Config.Data
import LensHelp
import Dodge.Menu.OptionType
import Dodge.StartNewGame
@@ -79,21 +80,28 @@ debugMenu = slTitleOptions
"OPTIONS:GAMEPLAY"
debugMenuOptions
debugMenuOptions :: [MenuOption]
debugMenuOptions = zipWith ($)
[ makeBoolOption debug_seconds_frame "SHOW SECONDS/FRAME"
, makeBoolOption debug_noclip "NOCLIP"
, makeBoolOption debug_cr_status "SHOW CREATURE STATUS"
, makeBoolOption debug_cr_awareness "SHOW CREATURE AWARENESS"
, makeBoolOption debug_view_boundaries "SHOW VIEW BOUNDARIES"
, makeEnumOption debug_view_clip_bounds "SHOW ROOM CLIP" return
, makeBoolOption debug_pathing "SHOW PATHING"
, makeBoolOption debug_show_sound "SHOW VISUAL SOUNDS"
, makeBoolOption debug_mouse_position "SHOW MOUSE POSITION"
, makeBoolOption debug_walls "SHOW WALL INFO"
, makeBoolOption debug_remove_LOS "REMOVE LOS"
, makeBoolOption debug_cull_more_lights "CULL MORE LIGHTS"
]
$ map Scancode [4 ..]
debugMenuOptions = zipWith f [minBound..] $ map Scancode [4..]
where
f :: DebugBool -> Scancode -> MenuOption
f bd = Toggle (return . Just . (config . debug_booleans . at bd %~ toggleJust))
(Right . g bd . (^? config . debug_booleans . ix bd))
g bd Nothing = (show bd, "FALSE")
g bd _ = (show bd, "TRUE")
-- zipWith ($)
-- [ makeBoolOption debug_seconds_frame "SHOW SECONDS/FRAME"
-- , makeBoolOption debug_noclip "NOCLIP"
-- , makeBoolOption debug_cr_status "SHOW CREATURE STATUS"
-- , makeBoolOption debug_cr_awareness "SHOW CREATURE AWARENESS"
-- , makeBoolOption debug_view_boundaries "SHOW VIEW BOUNDARIES"
-- , makeEnumOption debug_view_clip_bounds "SHOW ROOM CLIP" return
-- , makeBoolOption debug_pathing "SHOW PATHING"
-- , makeBoolOption debug_show_sound "SHOW VISUAL SOUNDS"
-- , makeBoolOption debug_mouse_position "SHOW MOUSE POSITION"
-- , makeBoolOption debug_walls "SHOW WALL INFO"
-- , makeBoolOption debug_remove_LOS "REMOVE LOS"
-- , makeBoolOption debug_cull_more_lights "CULL MORE LIGHTS"
-- ]
-- $ map Scancode [4 ..]
gameplayMenu :: ScreenLayer
gameplayMenu = slTitleOptions
"OPTIONS:GAMEPLAY"