Tweak debug display

This commit is contained in:
2025-10-14 10:14:30 +01:00
parent 3d602b4f57
commit cadaf00797
7 changed files with 150 additions and 143 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ data Universe = Universe
, _uvLastFrameTicks :: Word32
, _uvFrameTicks :: Word32
, _uvRAMSave :: Maybe World
, _uvDebug :: M.Map DebugBool DebugItem
, _uvDebug :: M.Map DebugBool [DebugItem]
, _uvDebugFloat1 :: Float
, _uvDebugFloat2 :: Float
, _uvDebugMessageOffset :: Int
+63 -69
View File
@@ -1,28 +1,31 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Debug (debugEvents) where
import Padding
import Dodge.Base.Window
import ShortShow
import Linear
import Dodge.Render.InfoBox
import Picture.Base
import Geometry.Data
import qualified Data.IntMap.Strict as IM
import Data.Aeson.Types
--import Dodge.Render.InfoBox
import AesonHelp
import Control.Lens
import Control.Monad
import Data.Aeson.Types
import qualified Data.IntMap.Strict as IM
import Data.List (sortOn)
import qualified Data.Map.Strict as M
import Data.Maybe
import Data.Ord
import qualified Data.Set as S
import Dodge.Base.Coordinate
import Dodge.Base.Window
import Dodge.Data.Universe
import Dodge.Debug.Picture
import Dodge.WorldEvent.ThingsHit
import Geometry.Vector
import Linear
import Padding
import Picture.Base
import qualified SDL
import Data.Ord
import ShortShow
--import Data.Foldable (fold)
debugEvents :: Universe -> Universe
@@ -35,11 +38,11 @@ debugEvents u = case dbools ^. at Enable_debug of
debugEvent :: DebugBool -> Universe -> Universe
debugEvent db u = u & uvDebug . at db .~ debugItem db u
debugItem :: DebugBool -> Universe -> Maybe DebugItem
debugItem :: DebugBool -> Universe -> Maybe [DebugItem]
debugItem = \case
Collision_test -> constDPic (drawCollisionTest . _uvWorld)
Circ_collision_test -> constDPic (drawCircCollisionTest . _uvWorld)
Select_creature -> Just . selectCreatureDebugItem
Select_creature -> Just . return . selectCreatureDebugItem
Show_walls_near_point_cursor -> constDPic (drawWallsNearCursor . _uvWorld)
Show_walls_near_segment -> constDPic (drawWallsNearSegment . _uvWorld)
Enable_debug -> const Nothing
@@ -59,27 +62,47 @@ debugItem = \case
Show_zone_circ -> constDPic $ drawZoneCirc . _uvWorld
Inspect_wall -> constDPic $ drawInspectWalls . _uvWorld
Cr_awareness -> constDPic $ drawCreatureDisplayTexts . _uvWorld
Show_sound -> constDPic $ \u ->
Show_sound -> constDPic $ \u ->
fold (M.map (soundPic (u ^. uvConfig) (u ^. uvWorld)) $ u ^. uvWorld . playingSounds)
Cr_status -> constDPic $ \u -> drawCrInfo (u ^. uvConfig) (u ^. uvWorld)
Cr_status -> Just . drawCrInfo
Mouse_position -> constDPic $ drawMousePosition . _uvWorld
Walls_info -> constDPic $ drawWlIDs . _uvWorld
Pathing -> constDPic $ \u -> drawPathing (u ^. uvConfig) (u ^. uvWorld)
Pathing -> constDPic $ \u -> drawPathing (u ^. uvConfig) (u ^. uvWorld)
Show_path_between -> constDPic $ drawPathBetween . _uvWorld
constDPic :: (Universe -> Picture) -> Universe -> Maybe DebugItem
constDPic p u = Just $ DebugItem (p u) mempty NoDebugInfo
constDPic :: (Universe -> Picture) -> Universe -> Maybe [DebugItem]
constDPic p u = Just [DebugItem (p u) mempty NoDebugInfo]
drawCrInfo' :: Universe -> Maybe DebugItem
drawCrInfo' u = do
undefined
--
drawCrInfo :: Universe -> [DebugItem]
drawCrInfo u = mapMaybe f . IM.elems $ w ^. cWorld . lWorld . creatures
where
w = u ^. uvWorld
g h str = fmap $ ((rightPad 7 '.' str ++ "...") ++) . h
f cr = do
guard $
pointIsOnScreen (u ^. uvConfig) (w ^. wCam) (cr ^. crPos . _xy)
&& cr ^. crID /= 0
Just $
DebugItem
mempty
( catMaybes
[ g show "crID" $ cr ^? crID
, g show "crHP" $ cr ^? crHP . _HP
, g show "crStrategy" $ cr ^? crActionPlan . apStrategy
, g shortShow "crPos" $ cr ^? crPos . _xy
, g show "cpVigilance" $ cr ^? crPerception . cpVigilance
, g show "crAction" $ cr ^? crActionPlan . apAction
, g show "crImpulse" $ cr ^? crActionPlan . apImpulse
]
)
(DebugV2 $ cr ^. crPos . _xy)
--drawCrInfo :: Config -> World -> Picture
--drawCrInfo cfig w =
-- setLayer FixedCoordLayer $
-- renderInfoListsAt (2 * hw - 400) 0 cfig cam $
-- mapMaybe crDisplayInfo $ IM.elems $ w ^. cWorld . lWorld . creatures
-- where
-- w = u ^. uvWorld
-- cfig = u ^. uvConfig
-- cam = w ^. wCam
-- crDisplayInfo :: Creature -> Maybe (Point2, [String])
-- crDisplayInfo cr
@@ -106,39 +129,6 @@ drawCrInfo' u = do
-- fpreShow str = fmap (((rightPad 7 '.' str ++ "...") ++) . show)
-- hw = halfWidth cfig
drawCrInfo :: Config -> World -> Picture
drawCrInfo cfig w =
setLayer FixedCoordLayer $
renderInfoListsAt (2 * hw - 400) 0 cfig cam $
mapMaybe crDisplayInfo $ IM.elems $ w ^. cWorld . lWorld . creatures
where
cam = w ^. wCam
crDisplayInfo :: Creature -> Maybe (Point2, [String])
crDisplayInfo cr
| _crID cr == 0 = Nothing
| crOnScreen =
Just
( cr ^. crPos . _xy
, catMaybes
-- [fmap show $ ap ^? crGoal
[ fpreShow "crHP" $ cr ^? crHP . _HP
, fpreShow "crStrategy" $ ap ^? apStrategy
, fmap (("crPos....." ++) . shortShow) $ cr ^? crPos . _xy
, fpreShow "cpVigilance" $ cr ^? crPerception . cpVigilance
, fpreShow "crAction" $ ap ^? apAction
, fpreShow "crImpulse" $ ap ^? apImpulse
]
)
| otherwise = Nothing
where
ap = _crActionPlan cr
crOnScreen = pointIsOnScreen cfig cam $ cr ^. crPos . _xy
fpreShow :: (Show a, Functor f) => String -> f a -> f String
fpreShow str = fmap (((rightPad 7 '.' str ++ "...") ++) . show)
hw = halfWidth cfig
selectCreatureDebugItem :: Universe -> DebugItem
selectCreatureDebugItem u =
DebugItem
@@ -155,33 +145,37 @@ scrollDebugInfoInt i u
debugSelectCreatureMessage :: Universe -> [String]
debugSelectCreatureMessage u = fromMaybe
[show (u ^? uvDebug . ix Select_creature . debugInfo . debugInt)]
[show (u ^? uvDebug . ix Select_creature . ix 0 . debugInfo . debugInt)]
$ do
cid <- u ^? uvDebug . ix Select_creature . debugInfo . debugMInt . _Just
i <- u ^? uvDebug . ix Select_creature . debugInfo . debugInt
cid <- u ^? uvDebug . ix Select_creature . ix 0 . debugInfo . debugMInt . _Just
i <- u ^? uvDebug . ix Select_creature . ix 0 . debugInfo . debugInt
cap <- debugSelectCreatureList cid u !! i
return $ show cid : cap
debugSelectCreatureList :: Int -> Universe -> [Maybe [String]]
debugSelectCreatureList cid u =
[ debugList "ActionPlan"
[ debugList
"ActionPlan"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crActionPlan)
, debugList "Perception"
, debugList
"Perception"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crPerception)
, debugList "Intention"
, debugList
"Intention"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crIntention)
, debugList "Memory"
, debugList
"Memory"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crMemory)
, debugList "Strategy"
, debugList
"Strategy"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crActionPlan . apStrategy)
, debugList "Vocalization"
, debugList
"Vocalization"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crVocalization)
]
debugList :: (Functor f, ToJSON a) => String -> f a -> f [String]
debugList str = fmap (([str] ++) . prettyShort )
debugList str = fmap (([str] ++) . prettyShort)
clickGetCreature :: Universe -> DebugInfo
clickGetCreature u
@@ -190,7 +184,7 @@ clickGetCreature u
DebugIntMInt 0 (closestCreatureID u)
| otherwise =
fromMaybe (DebugIntMInt 0 Nothing) $
u ^? uvDebug . ix Select_creature . debugInfo
u ^? uvDebug . ix Select_creature . ix 0 . debugInfo
closestCreatureID :: Universe -> Maybe Int
closestCreatureID u =
+10 -10
View File
@@ -16,7 +16,7 @@ import Dodge.Path
import Dodge.Picture.SizeInvariant
--import Dodge.Render.InfoBox
import Dodge.Render.Label
import Dodge.Render.List
--import Dodge.Render.List
import Dodge.ShortShow
import Dodge.SoundLogic.LoadSound
import Dodge.Viewpoints
@@ -153,15 +153,15 @@ drawZoneCol col s (V2 x y) = setLayer DebugLayer . color col $ thickLine 2 (p :
zipWith (+.+) (square 1) $
map ((s *.*) . (each %~ fromIntegral)) [V2 x y, V2 (x + 1) y, V2 (x + 1) (y + 1), V2 x (y + 1)]
showEnabledDebugs :: Config -> Picture
{-# INLINE showEnabledDebugs #-}
showEnabledDebugs cfig
| Enable_debug `S.member` _debug_booleans cfig =
setLayer FixedCoordLayer (toTopLeft cfig (translate (0.5 * halfWidth cfig) 0 $ drawList $ map text ts))
| otherwise = mempty
where
-- pic = foldMap (debugDraw' cfig w) (_debug_booleans cfig)
ts = map show (S.toList $ _debug_booleans cfig)
--showEnabledDebugs :: Config -> Picture
--{-# INLINE showEnabledDebugs #-}
--showEnabledDebugs cfig
-- | Enable_debug `S.member` _debug_booleans cfig =
-- setLayer FixedCoordLayer (toTopLeft cfig (translate (0.5 * halfWidth cfig) 0 $ drawList $ map text ts))
-- | otherwise = mempty
-- where
-- -- pic = foldMap (debugDraw' cfig w) (_debug_booleans cfig)
-- ts = map show (S.toList $ _debug_booleans cfig)
--debugDraw' :: Config -> World -> DebugBool -> Picture
--{-# INLINE debugDraw' #-}
+8
View File
@@ -16,6 +16,7 @@ module Dodge.Render.List (
selSecDrawCursorAt,
drawTitleBackground, -- should be renamed, made sensible
drawCursorAt,
drawLabelledList,
) where
import qualified Data.IntMap.Strict as IM
@@ -208,6 +209,13 @@ renderListAt tx ty = translate tx (- ty)
drawList :: [Picture] -> Picture
drawList = drawListYgapScaleYoff 0 1 0
drawLabelledList :: [(String,[String])] -> Picture
drawLabelledList ((s,ss):xs)
= translate (-10) 0 (drawListYgapScaleYoff 0 1 0 [ textJustifyRight s])
<> drawListYgapScaleYoff 0 1 0 (text <$> ss)
<> translate 0 (negate $ fromIntegral (max 1 $ length ss) * 20) (drawLabelledList xs)
drawLabelledList [] = mempty
--TODO put the following functions in an appropriate place
-- | Colour picture and add black drop shadow.
+11 -8
View File
@@ -2,8 +2,8 @@
module Dodge.Render.Picture (fixedCoordPictures) where
import Linear (_xy)
import Control.Lens
import qualified Data.Map.Strict as M
import Data.Maybe
import Dodge.Base.Coordinate
import Dodge.Base.Window
@@ -13,6 +13,7 @@ import Dodge.Render.List
import Dodge.Render.MenuScreen
import Geometry
import HelpNum
import Linear (_xy)
import Picture
fixedCoordPictures :: Universe -> Picture
@@ -30,18 +31,20 @@ fixedCoordPictures u =
)
<> displayFrameTicks u
<> drawMouseCursor u
<> ( toTopLeft cfig . translate (1.3 * halfWidth cfig) 0
. drawList
. take 50
. drop (u ^. uvDebugMessageOffset)
. map text
$ foldMap _debugMessage (_uvDebug u) -- other debug pics in extraPics
)
<> toTopLeft
cfig
( translate (halfWidth cfig) (10 * fromIntegral (u ^. uvDebugMessageOffset))
. drawLabelledList
. fmap f
. M.toList
$ u ^. uvDebug
)
where
cfig = _uvConfig u
hw = halfWidth cfig
hh = halfHeight cfig
ttl = toTopLeft cfig
f (k, l) = (show k, foldMap _debugMessage l)
displayFrameTicks :: Universe -> Picture
displayFrameTicks u
+2 -2
View File
@@ -110,8 +110,8 @@ extraPics cfig u =
<> _flares lw
<> foldMap drawLightSource (_lightSources lw)
<> viewClipBounds cfig w
<> showEnabledDebugs cfig
<> foldMap _debugPic (_uvDebug u) -- debug messages are in fixed coord pics
-- <> showEnabledDebugs cfig
<> foldMap (foldMap _debugPic) (_uvDebug u) -- debug messages are in fixed coord pics
where
w = u ^. uvWorld
lw = w ^. cWorld . lWorld
+55 -53
View File
@@ -2591,7 +2591,7 @@ adjustIMZone src/Dodge/Base.hs 81;" f
advanceScrollAmount src/Dodge/Update.hs 404;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f
advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 46;" f
aimDelaySweep src/Dodge/Render/Picture.hs 273;" f
aimDelaySweep src/Dodge/Render/Picture.hs 275;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f
aimTurn src/Dodge/Creature/YourControl.hs 181;" f
airlock src/Dodge/Room/Airlock.hs 23;" f
@@ -2852,7 +2852,7 @@ checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f
chestPQ src/Dodge/Creature/HandPos.hs 124;" f
chooseCursorBorders src/Dodge/Render/List.hs 155;" f
chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f
@@ -2887,7 +2887,7 @@ cleatLabel src/Dodge/Cleat.hs 30;" f
cleatOnward src/Dodge/Cleat.hs 24;" f
cleatSide src/Dodge/Cleat.hs 27;" f
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f
clickGetCreature src/Dodge/Debug.hs 150;" f
clickGetCreature src/Dodge/Debug.hs 189;" f
clicker src/Dodge/Item/Scope.hs 82;" f
clipV src/Geometry/Vector.hs 48;" f
clipZoom src/Dodge/Update/Camera.hs 230;" f
@@ -2896,7 +2896,7 @@ closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
closeObjectInfo src/Dodge/Render/HUD.hs 226;" f
closestCreatureID src/Dodge/Debug.hs 159;" f
closestCreatureID src/Dodge/Debug.hs 198;" f
closestPointOnLine src/Geometry/Intersect.hs 272;" f
closestPointOnLineParam src/Geometry/Intersect.hs 288;" f
closestPointOnSeg src/Geometry/Intersect.hs 303;" f
@@ -2954,7 +2954,7 @@ conEffects src/Dodge/Concurrent.hs 12;" f
conLDTToConDT src/Dodge/DoubleTree.hs 22;" f
concurrentIS src/Dodge/Update/Input/InGame.hs 287;" f
connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f
constDPic src/Dodge/Debug.hs 70;" f
constDPic src/Dodge/Debug.hs 71;" f
constructEdges src/Polyhedra.hs 34;" f
constructEdgesList src/Polyhedra.hs 43;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f
@@ -3076,7 +3076,7 @@ cylinderIndices src/Shader/Poke.hs 382;" f
cylinderOnSeg src/Geometry.hs 122;" f
cylinderPoly src/Shape.hs 87;" f
cylinderRoundIndices src/Shader/Poke.hs 389;" f
dShadCol src/Dodge/Render/List.hs 214;" f
dShadCol src/Dodge/Render/List.hs 222;" f
damMatSideEffect src/Dodge/Material/Damage.hs 14;" f
damThingHitWith src/Dodge/Damage.hs 72;" f
damToExpBarrel src/Dodge/Barreloid.hs 53;" f
@@ -3113,12 +3113,12 @@ debrisSize src/Dodge/Block/Debris.hs 77;" f
debugEvent src/Dodge/Debug.hs 35;" f
debugEvents src/Dodge/Debug.hs 28;" f
debugItem src/Dodge/Debug.hs 38;" f
debugList src/Dodge/Debug.hs 146;" f
debugList src/Dodge/Debug.hs 185;" f
debugMenu src/Dodge/Menu.hs 125;" f
debugMenuOptions src/Dodge/Menu.hs 131;" f
debugOn src/Dodge/Data/Config.hs 151;" f
debugSelectCreatureList src/Dodge/Debug.hs 129;" f
debugSelectCreatureMessage src/Dodge/Debug.hs 120;" f
debugSelectCreatureList src/Dodge/Debug.hs 168;" f
debugSelectCreatureMessage src/Dodge/Debug.hs 159;" f
decodeSensorType src/Dodge/Terminal.hs 72;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f
decomposeTree src/Dodge/Tree/Compose.hs 58;" f
@@ -3218,7 +3218,7 @@ dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f
disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f
displayConfig src/Dodge/Menu.hs 231;" f
displayControls src/Dodge/Menu.hs 242;" f
displayFrameTicks src/Dodge/Render/Picture.hs 46;" f
displayFrameTicks src/Dodge/Render/Picture.hs 48;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f
@@ -3324,9 +3324,9 @@ doublePairSet src/Geometry.hs 166;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 129;" f
doubleV2 src/Geometry.hs 169;" f
drawARHUD src/Dodge/Creature/State.hs 193;" f
drawAimSweep src/Dodge/Render/Picture.hs 280;" f
drawAimSweep src/Dodge/Render/Picture.hs 282;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawArrowDown src/Dodge/Render/Picture.hs 207;" f
drawArrowDown src/Dodge/Render/Picture.hs 209;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f
@@ -3339,28 +3339,29 @@ drawChasm src/Dodge/Render/ShapePicture.hs 48;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f
drawCliff src/Dodge/Render/ShapePicture.hs 51;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 255;" f
drawCombFilter src/Dodge/Render/Picture.hs 257;" f
drawCombineInventory src/Dodge/Render/HUD.hs 182;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 69;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 71;" f
drawCoord src/Dodge/Debug/Picture.hs 376;" f
drawCrInfo src/Dodge/Debug.hs 73;" f
drawCrInfo src/Dodge/Debug.hs 112;" f
drawCrInfo' src/Dodge/Debug.hs 74;" f
drawCreature src/Dodge/Render/ShapePicture.hs 67;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 198;" f
drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f
drawCursorAt src/Dodge/Render/List.hs 71;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 125;" f
drawCursorAt src/Dodge/Render/List.hs 72;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 127;" f
drawDDATest src/Dodge/Debug/Picture.hs 303;" f
drawDamSensor src/Dodge/Machine/Draw.hs 27;" f
drawDoorPaths src/Dodge/Debug/Picture.hs 253;" f
drawDoubleLampCover src/Dodge/Prop/Draw.hs 95;" f
drawDrag src/Dodge/Render/Picture.hs 186;" f
drawDragDrop src/Dodge/Render/Picture.hs 215;" f
drawDragPickup src/Dodge/Render/Picture.hs 224;" f
drawDragSelect src/Dodge/Render/Picture.hs 183;" f
drawDrag src/Dodge/Render/Picture.hs 188;" f
drawDragDrop src/Dodge/Render/Picture.hs 217;" f
drawDragPickup src/Dodge/Render/Picture.hs 226;" f
drawDragSelect src/Dodge/Render/Picture.hs 185;" f
drawDragSelected src/Dodge/Render/HUD.hs 136;" f
drawDragSelecting src/Dodge/Render/HUD.hs 153;" f
drawEmptySet src/Dodge/Render/Picture.hs 139;" f
drawEmptySet src/Dodge/Render/Picture.hs 141;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 127;" f
drawExamineInventory src/Dodge/Render/HUD.hs 198;" f
@@ -3369,7 +3370,7 @@ drawFarWallDetect src/Dodge/Debug/Picture.hs 270;" f
drawFlame src/Dodge/Flame/Draw.hs 8;" f
drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f
drawForceField src/Dodge/Wall/Draw.hs 11;" f
drawGapPlus src/Dodge/Render/Picture.hs 266;" f
drawGapPlus src/Dodge/Render/Picture.hs 268;" f
drawGib src/Dodge/Prop/Draw.hs 39;" f
drawHUD src/Dodge/Render/HUD.hs 51;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f
@@ -3378,24 +3379,25 @@ drawInspectWalls src/Dodge/Debug/Picture.hs 233;" f
drawInventory src/Dodge/Render/HUD.hs 58;" f
drawItemChildrenConnect src/Dodge/Render/HUD.hs 329;" f
drawItemConnections src/Dodge/Render/HUD.hs 319;" f
drawJumpDown src/Dodge/Render/Picture.hs 178;" f
drawJumpDown src/Dodge/Render/Picture.hs 180;" f
drawLabCrossCol src/Dodge/Render/Label.hs 8;" f
drawLabelledList src/Dodge/Render/List.hs 212;" f
drawLampCover src/Dodge/Prop/Draw.hs 55;" f
drawLaser src/Dodge/Laser/Update.hs 29;" f
drawLightSource src/Dodge/LightSource/Draw.hs 7;" f
drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f
drawList src/Dodge/Render/List.hs 208;" f
drawListElement src/Dodge/Render/List.hs 186;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f
drawListYoff src/Dodge/Render/List.hs 92;" f
drawList src/Dodge/Render/List.hs 209;" f
drawListElement src/Dodge/Render/List.hs 187;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 96;" f
drawListYoff src/Dodge/Render/List.hs 93;" f
drawMachine src/Dodge/Machine/Draw.hs 16;" f
drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f
drawMapperInventory src/Dodge/Render/HUD.hs 173;" f
drawMenuClick src/Dodge/Render/Picture.hs 154;" f
drawMenuCursor src/Dodge/Render/Picture.hs 166;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 64;" f
drawMenuClick src/Dodge/Render/Picture.hs 156;" f
drawMenuCursor src/Dodge/Render/Picture.hs 168;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 66;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f
drawMouseCursor src/Dodge/Render/Picture.hs 80;" f
drawMouseCursor src/Dodge/Render/Picture.hs 82;" f
drawMouseOver src/Dodge/Render/HUD.hs 109;" f
drawMousePosition src/Dodge/Debug/Picture.hs 366;" f
drawMovingShape src/Dodge/Prop/Draw.hs 81;" f
@@ -3404,23 +3406,23 @@ drawOptions src/Dodge/Render/MenuScreen.hs 22;" f
drawPathBetween src/Dodge/Debug/Picture.hs 201;" f
drawPathEdge src/Dodge/Debug/Picture.hs 258;" f
drawPathing src/Dodge/Debug/Picture.hs 398;" f
drawPlus src/Dodge/Render/Picture.hs 151;" f
drawPlus src/Dodge/Render/Picture.hs 153;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 26;" f
drawProxSensor src/Dodge/Machine/Draw.hs 37;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 59;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 135;" f
drawRBOptions src/Dodge/Render/HUD.hs 251;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f
drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f
drawReturn src/Dodge/Render/Picture.hs 142;" f
drawReturn src/Dodge/Render/Picture.hs 144;" f
drawRootCursor src/Dodge/Render/HUD.hs 76;" f
drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f
drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f
drawSelect src/Dodge/Render/Picture.hs 243;" f
drawSelectionList src/Dodge/Render/List.hs 35;" f
drawSelectionListBackground src/Dodge/Render/List.hs 51;" f
drawSelect src/Dodge/Render/Picture.hs 245;" f
drawSelectionList src/Dodge/Render/List.hs 36;" f
drawSelectionListBackground src/Dodge/Render/List.hs 52;" f
drawSelectionSections src/Dodge/SelectionSections/Draw.hs 16;" f
drawShader src/Shader.hs 27;" f
drawShaderLay src/Shader.hs 16;" f
@@ -3437,10 +3439,10 @@ drawTerminalDisplay src/Dodge/Render/HUD.hs 360;" f
drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f
drawText src/Picture/Base.hs 220;" f
drawTitle src/Dodge/Render/MenuScreen.hs 35;" f
drawTitleBackground src/Dodge/Render/List.hs 44;" f
drawTitleBackground src/Dodge/Render/List.hs 45;" f
drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f
drawTurret src/Dodge/Machine/Draw.hs 76;" f
drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 198;" f
drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 200;" f
drawVerticalLampCover src/Dodge/Prop/Draw.hs 71;" f
drawWall src/Dodge/Wall/Draw.hs 7;" f
drawWallFace src/Dodge/Debug/Picture.hs 73;" f
@@ -3565,7 +3567,7 @@ fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" f
firstBreather src/Dodge/Room/Breather.hs 9;" f
firstTrie src/SimpleTrie.hs 51;" f
firstWorldLoad appDodge/Main.hs 77;" f
fixedCoordPictures src/Dodge/Render/Picture.hs 18;" f
fixedCoordPictures src/Dodge/Render/Picture.hs 20;" f
fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f
flFlicker src/Dodge/Flame.hs 38;" f
flameMuzzles src/Dodge/HeldUse.hs 325;" f
@@ -3614,7 +3616,7 @@ forceField src/Dodge/Wall/ForceField.hs 7;" f
forceFoldable src/StrictHelp.hs 7;" f
forceSpine src/StrictHelp.hs 4;" f
fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f
fpsText src/Dodge/Render/Picture.hs 54;" f
fpsText src/Dodge/Render/Picture.hs 56;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 145;" f
frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f
@@ -4056,7 +4058,7 @@ linksGridToPath src/Dodge/Room/Path.hs 36;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f
listConfig src/Dodge/Menu.hs 235;" f
listControls src/Dodge/Menu.hs 247;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 134;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f
listGuard src/Dodge/Creature/ReaderUpdate.hs 191;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
@@ -4161,7 +4163,7 @@ makePathBetweenPs src/Dodge/Path.hs 54;" f
makePathUsing src/Dodge/Path.hs 33;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" f
makeSelectionListPictures src/Dodge/Render/List.hs 65;" f
makeSelectionListPictures src/Dodge/Render/List.hs 66;" f
makeShaderEBO src/Shader/Compile.hs 53;" f
makeShaderProgram src/Shader/Compile.hs 241;" f
makeShaderUsingVAO src/Shader/Compile.hs 146;" f
@@ -4278,7 +4280,7 @@ mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 177;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 182;" f
modTo src/Geometry/Zone.hs 10;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f
mouseCursorType src/Dodge/Render/Picture.hs 87;" f
mouseCursorType src/Dodge/Render/Picture.hs 89;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 25;" f
moveBullet src/Dodge/Bullet.hs 196;" f
moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
@@ -4745,7 +4747,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 234;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 191;" f
renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 117;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 163;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f
@@ -4882,7 +4884,7 @@ screenPosAbs src/Dodge/ScreenPos.hs 15;" f
screenToWorldPos src/Dodge/Base/Coordinate.hs 28;" f
scrollAugInvSel src/Dodge/Inventory.hs 191;" f
scrollAugNextInSection src/Dodge/Inventory.hs 204;" f
scrollDebugInfoInt src/Dodge/Debug.hs 114;" f
scrollDebugInfoInt src/Dodge/Debug.hs 153;" f
scrollRBOption src/Dodge/Update/Scroll.hs 202;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f
scrollTimeBack src/Dodge/Update.hs 206;" f
@@ -4905,12 +4907,12 @@ seedStartOptions src/Dodge/Menu.hs 90;" f
segOnCirc src/Geometry.hs 113;" f
selNumPos src/Dodge/Render/HUD.hs 447;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f
selSecDrawCursor src/Dodge/Render/List.hs 125;" f
selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f
selSecDrawCursor src/Dodge/Render/List.hs 126;" f
selSecDrawCursorAt src/Dodge/Render/List.hs 105;" f
selSecSelCol src/Dodge/Render/HUD.hs 501;" f
selSecSelSize src/Dodge/SelectionSections.hs 143;" f
selSecYint src/Dodge/SelectionSections.hs 152;" f
selectCreatureDebugItem src/Dodge/Debug.hs 106;" f
selectCreatureDebugItem src/Dodge/Debug.hs 145;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f
@@ -5153,8 +5155,8 @@ ssScrollMinOnFail src/Dodge/SelectionSections.hs 44;" f
ssScrollUsing src/Dodge/SelectionSections.hs 37;" f
ssSetCursor src/Dodge/SelectionSections.hs 59;" f
ssfold src/FoldableHelp.hs 105;" f
stackPicturesAt src/Dodge/Render/List.hs 98;" f
stackPicturesAtOff src/Dodge/Render/List.hs 101;" f
stackPicturesAt src/Dodge/Render/List.hs 99;" f
stackPicturesAtOff src/Dodge/Render/List.hs 102;" f
stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 311;" f
startCr src/Dodge/Creature.hs 92;" f
@@ -5300,7 +5302,7 @@ toFloatVAs src/Shader/Compile.hs 211;" f
toLabel src/Dodge/Cleat.hs 16;" f
toMultiset src/Multiset.hs 64;" f
toOnward src/Dodge/Tree/Compose.hs 101;" f
toTopLeft src/Dodge/Render/List.hs 218;" f
toTopLeft src/Dodge/Render/List.hs 226;" f
toV2 src/Geometry/Data.hs 54;" f
toV3 src/Geometry/Data.hs 57;" f
toV4 src/Geometry/Data.hs 60;" f