Add selection box on left click drag

This commit is contained in:
2025-10-14 12:41:53 +01:00
parent 7a431f6eec
commit 365821e969
5 changed files with 96 additions and 198 deletions
+1 -2
View File
@@ -65,7 +65,7 @@ windowYFloat = fromIntegral . _windowY
data DebugBool
= Show_ms_frame
| Enable_debug
| Display_debug
| Show_sound
| Noclip
| Cr_status
@@ -91,7 +91,6 @@ data DebugBool
| Show_zone_circ
| Inspect_wall
| Show_path_between
| Select_creature
deriving (Eq, Ord, Bounded, Enum, Show)
data ResFactor = DoubleRes | FullRes | HalfRes | QuarterRes | EighthRes | SixteenthRes
+2 -2
View File
@@ -49,8 +49,8 @@ data Universe = Universe
}
data DebugItem = DebugItem
{ _debugMessage :: [String]
, _debugInfo :: DebugInfo
{ _debugMessage :: String
, _debugFunction :: String -> Universe -> Universe
}
data DebugInfo
+16 -118
View File
@@ -2,46 +2,37 @@
module Dodge.Debug (debugEvents,drawDebug) where
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 ShortShow
debugEvents :: Universe -> Universe
debugEvents u = case dbools ^. at Enable_debug of
debugEvents u = case dbools ^. at Display_debug of
Nothing -> u
Just () -> S.foldr debugEvent (u & uvDebug .~ mempty) dbools
where
dbools = u ^. uvConfig . debug_booleans
debugEvent :: DebugBool -> Universe -> Universe
debugEvent db u = u & uvDebug . at db ?~ debugItem db u
debugEvent db u = u & uvDebug . at db .~ debugItem db u
debugItem :: DebugBool -> Universe -> [DebugItem]
debugItem :: DebugBool -> Universe -> Maybe [DebugItem]
debugItem = \case
Collision_test -> mempty
Circ_collision_test -> mempty
Select_creature -> return . selectCreatureDebugItem
Show_walls_near_point_cursor -> mempty
Show_walls_near_segment -> mempty
Enable_debug -> mempty
Display_debug -> mempty
Noclip -> mempty
Remove_LOS -> mempty
Cull_more_lights -> mempty
@@ -59,24 +50,22 @@ debugItem = \case
Inspect_wall -> mempty
Cr_awareness -> mempty
Show_sound -> mempty
Cr_status -> drawCrInfo
Cr_status -> Just . drawCrInfo
Mouse_position -> mempty
Walls_info -> mempty
Pathing -> mempty
Show_path_between -> mempty
drawCrInfo :: Universe -> [DebugItem]
drawCrInfo u = mapMaybe f . IM.elems $ w ^. cWorld . lWorld . creatures
drawCrInfo u = foldMap f . IM.elems $ w ^. cWorld . lWorld . creatures
where
w = u ^. uvWorld
g h str = fmap $ ((rightPad 7 '.' str ++ "...") ++) . h
f cr = do
f cr = fromMaybe [] $ do
guard $
pointIsOnScreen (u ^. uvConfig) (w ^. wCam) (cr ^. crPos . _xy)
&& cr ^. crID /= 0
Just $
DebugItem
( catMaybes
Just $ (\x -> DebugItem x (const id)) <$> catMaybes
[ g show "crID" $ cr ^? crID
, g show "crHP" $ cr ^? crHP . _HP
, g show "crStrategy" $ cr ^? crActionPlan . apStrategy
@@ -85,114 +74,23 @@ drawCrInfo u = mapMaybe f . IM.elems $ w ^. cWorld . lWorld . creatures
, 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
--closestCreatureID :: Universe -> Maybe Int
--closestCreatureID u =
-- fmap (_crID . snd) . listToMaybe
-- . sortOn (Down . dist mwp . fst)
-- . crsHitRadial mwp 100
-- $ _uvWorld u
-- 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
{ _debugMessage = debugSelectCreatureMessage u
, _debugInfo = scrollDebugInfoInt (length $ debugSelectCreatureList 0 u) u $ clickGetCreature u
}
scrollDebugInfoInt :: Int -> Universe -> DebugInfo -> DebugInfo
scrollDebugInfoInt i u
| SDL.ScancodeRShift `M.member` (u ^. uvWorld . input . pressedKeys) =
debugInt %~ ((`mod` i) . (+ (u ^. uvWorld . input . scrollAmount)))
| otherwise = id
debugSelectCreatureMessage :: Universe -> [String]
debugSelectCreatureMessage u = fromMaybe
[show (u ^? uvDebug . ix Select_creature . ix 0 . debugInfo . debugInt)]
$ do
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"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crActionPlan)
, debugList
"Perception"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crPerception)
, debugList
"Intention"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crIntention)
, debugList
"Memory"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crMemory)
, debugList
"Strategy"
(u ^? uvWorld . cWorld . lWorld . creatures . ix cid . crActionPlan . apStrategy)
, 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)
clickGetCreature :: Universe -> DebugInfo
clickGetCreature u
| SDL.ButtonLeft `M.member` (u ^. uvWorld . input . mouseButtons)
&& SDL.ScancodeRShift `M.member` (u ^. uvWorld . input . pressedKeys) =
DebugIntMInt 0 (closestCreatureID u)
| otherwise =
fromMaybe (DebugIntMInt 0 Nothing) $
u ^? uvDebug . ix Select_creature . ix 0 . debugInfo
closestCreatureID :: Universe -> Maybe Int
closestCreatureID u =
fmap (_crID . snd) . listToMaybe
. sortOn (Down . dist mwp . fst)
. crsHitRadial mwp 100
$ _uvWorld u
where
mwp = mouseWorldPos (u ^. uvWorld . input) (u ^. uvWorld . wCam)
-- mwp = mouseWorldPos (u ^. uvWorld . input) (u ^. uvWorld . wCam)
drawDebug :: Universe -> DebugBool -> Picture
drawDebug u = \case
Collision_test -> drawCollisionTest $ _uvWorld u
Circ_collision_test -> drawCircCollisionTest $ _uvWorld u
Select_creature -> mempty
Show_walls_near_point_cursor -> drawWallsNearCursor $ _uvWorld u
Show_walls_near_segment -> drawWallsNearSegment $ _uvWorld u
Enable_debug -> mempty
Display_debug -> mempty
Noclip -> mempty
Remove_LOS -> mempty
Cull_more_lights -> mempty
+10 -1
View File
@@ -2,6 +2,7 @@
module Dodge.Render.Picture (fixedCoordPictures) where
import qualified SDL
import Control.Lens
import qualified Data.Map.Strict as M
import Data.Maybe
@@ -30,6 +31,7 @@ fixedCoordPictures u =
(u ^. uvWorld . cWorld . lWorld . lTestString)
)
<> displayFrameTicks u
<> drawAnySelectionBox u
<> drawMouseCursor u
<> toTopLeft
cfig
@@ -44,7 +46,7 @@ fixedCoordPictures u =
hw = halfWidth cfig
hh = halfHeight cfig
ttl = toTopLeft cfig
f (k, l) = (show k, foldMap _debugMessage l)
f (k, l) = (show k, map _debugMessage l)
displayFrameTicks :: Universe -> Picture
displayFrameTicks u
@@ -125,6 +127,13 @@ mouseCursorType u = case u ^. uvWorld . input . mouseContext of
argV (w ^. cWorld . lWorld . lAimPos -.- cpos)
- w ^. wCam . camRot
drawAnySelectionBox :: Universe -> Picture
drawAnySelectionBox u = case u ^. uvWorld . input . mouseContext of
OverInvDragSelect{} -> fold $ do
p <- u ^. uvWorld . input . clickPos . at SDL.ButtonLeft
return . color white . polygonWire $ rectVV (u ^. uvWorld . input . mousePos) p
_ -> mempty
drawCursorByTerminalStatus :: TerminalStatus -> Picture
drawCursorByTerminalStatus = \case
TerminalPressTo "QUIT" -> drawQuitTerminal 5
+67 -75
View File
@@ -45,7 +45,7 @@ AimStance src/Dodge/Data/AimStance.hs 11;" t
Aiming src/Dodge/Data/Creature/Stance.hs 39;" C
AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C
AlienContact src/Dodge/Data/Scenario.hs 30;" C
AllRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
AllRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C
AlteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" C
Ambush src/Dodge/Data/ActionPlan.hs 178;" C
AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C
@@ -345,6 +345,7 @@ Detector src/Dodge/Data/Item/Combine.hs 182;" t
Dirt src/Dodge/Data/Material.hs 11;" C
DisasterType src/Dodge/Data/Scenario.hs 24;" t
DisplayTerminal src/Dodge/Data/HUD.hs 29;" C
Display_debug src/Dodge/Data/Config.hs 68;" C
Distortion src/Dodge/Data/Distortion.hs 12;" t
DivineRetribution src/Dodge/Data/Scenario.hs 35;" C
DoActionIf src/Dodge/Data/ActionPlan.hs 116;" C
@@ -369,7 +370,7 @@ DoorObstacle src/Dodge/Data/PathGraph.hs 50;" C
DoorOpen src/Dodge/Data/Door.hs 23;" C
DoorPart src/Dodge/Data/Wall/Structure.hs 14;" C
DoorStatus src/Dodge/Data/Door.hs 23;" t
DoubleRes src/Dodge/Data/Config.hs 97;" C
DoubleRes src/Dodge/Data/Config.hs 96;" C
DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 16;" t
DrWdId src/Dodge/Data/WorldEffect.hs 68;" C
DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 69;" C
@@ -392,7 +393,7 @@ Ears src/Dodge/Data/Creature/Perception.hs 47;" C
East src/Dodge/Data/CardinalPoint.hs 7;" C
East8 src/Dodge/Data/CardinalPoint.hs 22;" C
EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t
EighthRes src/Dodge/Data/Config.hs 97;" C
EighthRes src/Dodge/Data/Config.hs 96;" C
Eldritch src/Dodge/Data/Scenario.hs 34;" C
ElectricSensor src/Dodge/Data/Machine/Sensor.hs 16;" C
ElectricSpark src/Dodge/Data/Spark.hs 22;" C
@@ -401,7 +402,6 @@ ElectricalAmmo src/Dodge/Data/AmmoType.hs 9;" C
ElectricalBall src/Dodge/Data/EnergyBall/Type.hs 15;" C
Electronics src/Dodge/Data/Material.hs 11;" C
EllShad src/Picture/Data.hs 39;" C
Enable_debug src/Dodge/Data/Config.hs 68;" C
EncircleFlock src/Dodge/Data/Creature/State.hs 17;" C
EnergyBall src/Dodge/Data/EnergyBall.hs 17;" t
EnergyBallType src/Dodge/Data/EnergyBall/Type.hs 12;" t
@@ -480,7 +480,7 @@ FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C
ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t
ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t
FromEdge src/Dodge/Data/Room.hs 49;" C
FullRes src/Dodge/Data/Config.hs 97;" C
FullRes src/Dodge/Data/Config.hs 96;" C
FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C
FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C
@@ -508,7 +508,7 @@ GenFloat src/Dodge/Data/GenFloat.hs 11;" t
GenParams src/Dodge/Data/GenParams.hs 15;" t
GenWorld src/Dodge/Data/GenWorld.hs 24;" t
GenericFaction src/Dodge/Data/Creature/State.hs 15;" C
GeoObjShads src/Dodge/Data/Config.hs 101;" C
GeoObjShads src/Dodge/Data/Config.hs 100;" C
GetTo src/Dodge/Data/ActionPlan.hs 189;" C
GetToPoint src/Dodge/Data/Scenario.hs 12;" C
Gib src/Dodge/Data/Prop.hs 43;" C
@@ -538,7 +538,7 @@ HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C
HOSE src/Dodge/Data/Item/Combine.hs 55;" C
HP src/Dodge/Data/Creature.hs 71;" C
HUD src/Dodge/Data/HUD.hs 31;" t
HalfRes src/Dodge/Data/Config.hs 97;" C
HalfRes src/Dodge/Data/Config.hs 96;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C
HardQuit src/Dodge/Data/Universe.hs 69;" C
HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C
@@ -604,7 +604,7 @@ Int2 src/Geometry/Data.hs 21;" t
IntID src/Dodge/Data/Universe.hs 109;" t
IntImp src/Dodge/Data/CreatureEffect.hs 20;" t
Intention src/Dodge/Data/Creature.hs 76;" t
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C
IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C
IntroScanType src/Dodge/Data/Item/Combine.hs 45;" t
InvInt src/Dodge/Data/Item/Location.hs 17;" t
@@ -860,16 +860,16 @@ NoItTargeting src/Dodge/Data/Item.hs 44;" C
NoItemScroll src/Dodge/Data/Item.hs 39;" C
NoItemZone src/Dodge/Data/Machine/Sensor.hs 34;" C
NoLightFlare src/Dodge/Data/Muzzle.hs 31;" C
NoLighting src/Dodge/Data/Config.hs 104;" C
NoLighting src/Dodge/Data/Config.hs 103;" C
NoMouseContext src/Dodge/Data/Input.hs 15;" C
NoMvType src/Dodge/Data/Creature/Misc.hs 29;" C
NoObjShads src/Dodge/Data/Config.hs 102;" C
NoObjShads src/Dodge/Data/Config.hs 101;" C
NoParams src/Dodge/Data/Item/Params.hs 15;" C
NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 16;" C
NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
NoRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C
NoSF src/Dodge/Data/ComposedItem.hs 29;" C
NoShadowFidelity src/Shape/Data.hs 25;" C
NoShadows src/Dodge/Data/Config.hs 103;" C
NoShadows src/Dodge/Data/Config.hs 102;" C
NoSubInventory src/Dodge/Data/HUD.hs 17;" C
NoTrigger src/Dodge/Data/TriggerType.hs 11;" C
NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C
@@ -1095,7 +1095,7 @@ PutTrigger src/Dodge/Data/GenWorld.hs 48;" C
PutWall src/Dodge/Data/GenWorld.hs 55;" C
PutWorldUpdate src/Dodge/Data/GenWorld.hs 60;" C
QFloat src/Geometry/Data.hs 50;" t
QuarterRes src/Dodge/Data/Config.hs 97;" C
QuarterRes src/Dodge/Data/Config.hs 96;" C
QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C
RAM src/Dodge/Data/Item/Combine.hs 74;" C
RED src/Color/Data.hs 15;" C
@@ -1136,7 +1136,7 @@ ReplaceEquipment src/Dodge/Data/RightButtonOptions.hs 31;" C
RequireDeadCreatures src/Dodge/Data/Machine/Sensor.hs 39;" C
RequireEquipment src/Dodge/Data/Machine/Sensor.hs 38;" C
RequireHealth src/Dodge/Data/Machine/Sensor.hs 37;" C
ResFactor src/Dodge/Data/Config.hs 97;" t
ResFactor src/Dodge/Data/Config.hs 96;" t
ResearchFacility src/Dodge/Data/Scenario.hs 62;" C
ResourceFailure src/Dodge/Data/Scenario.hs 29;" C
RespawnDelay src/Dodge/Data/World.hs 61;" C
@@ -1154,7 +1154,7 @@ RocketHoming src/Dodge/Data/Projectile.hs 41;" t
RocketSmoke src/Dodge/Data/Projectile.hs 54;" t
RocketSmoke src/Dodge/Data/Cloud.hs 24;" C
Room src/Dodge/Data/GenWorld.hs 123;" t
RoomClipping src/Dodge/Data/Config.hs 107;" t
RoomClipping src/Dodge/Data/Config.hs 106;" t
RoomInt src/Dodge/Tree/Shift.hs 26;" t
RoomLink src/Dodge/Data/Room.hs 24;" t
RoomLinkType src/Dodge/Data/Room.hs 43;" t
@@ -1200,7 +1200,6 @@ SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C
SelItem src/Dodge/Data/SelectionList.hs 42;" C
SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C
SelSection src/Dodge/Data/SelectionList.hs 29;" t
Select_creature src/Dodge/Data/Config.hs 94;" C
SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" C
Selection src/Dodge/Data/HUD.hs 41;" t
SelectionItem src/Dodge/Data/SelectionList.hs 41;" t
@@ -1216,7 +1215,7 @@ ShadNum src/Picture/Data.hs 35;" t
Shader src/Shader/Data.hs 51;" t
ShaderTexture src/Shader/Data.hs 94;" t
ShadowFidelity src/Shape/Data.hs 24;" t
ShadowRendering src/Dodge/Data/Config.hs 100;" t
ShadowRendering src/Dodge/Data/Config.hs 99;" t
Shape src/Shape/Data.hs 53;" t
ShapeProp src/Dodge/Data/Prop.hs 32;" C
ShapeType src/Shape/Data.hs 16;" t
@@ -1246,7 +1245,7 @@ ShrinkGunStatus src/Dodge/Data/Item/Params.hs 28;" t
Shrunk src/Dodge/Data/Item/Params.hs 28;" C
SideCluster src/Dodge/Data/RoomCluster.hs 13;" C
SideEffect src/Dodge/Data/Universe.hs 63;" t
SixteenthRes src/Dodge/Data/Config.hs 97;" C
SixteenthRes src/Dodge/Data/Config.hs 96;" C
Size src/Shape/Data.hs 28;" t
SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C
SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C
@@ -1748,7 +1747,7 @@ _dbSpin src/Dodge/Data/Prop.hs 53;" f
_dbType src/Dodge/Data/Prop.hs 50;" f
_dbVel src/Dodge/Data/Prop.hs 51;" f
_debris src/Dodge/Data/LWorld.hs 103;" f
_debugInfo src/Dodge/Data/Universe.hs 53;" f
_debugFunction src/Dodge/Data/Universe.hs 53;" f
_debugInt src/Dodge/Data/Universe.hs 61;" f
_debugMInt src/Dodge/Data/Universe.hs 60;" f
_debugMessage src/Dodge/Data/Universe.hs 52;" f
@@ -2590,7 +2589,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 276;" f
aimDelaySweep src/Dodge/Render/Picture.hs 285;" 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
@@ -2631,7 +2630,7 @@ applyPastDamages src/Dodge/Creature/State.hs 49;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 23;" f
applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 459;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f
applyResFactor src/Dodge/Data/Config.hs 109;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 83;" f
applySidePush src/Dodge/HeldUse.hs 559;" f
applySoundCME src/Dodge/HeldUse.hs 449;" f
@@ -2700,7 +2699,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 78;" f
barrelShape src/Dodge/Render/ShapePicture.hs 79;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 158;" f
@@ -2784,7 +2783,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f
branchWith src/Dodge/Room/Room.hs 69;" f
bright src/Color.hs 120;" f
brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 127;" f
btSPic src/Dodge/Render/ShapePicture.hs 128;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
@@ -2886,7 +2885,6 @@ 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 174;" f
clicker src/Dodge/Item/Scope.hs 82;" f
clipV src/Geometry/Vector.hs 48;" f
clipZoom src/Dodge/Update/Camera.hs 230;" f
@@ -2895,7 +2893,6 @@ 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 183;" f
closestPointOnLine src/Geometry/Intersect.hs 272;" f
closestPointOnLineParam src/Geometry/Intersect.hs 288;" f
closestPointOnSeg src/Geometry/Intersect.hs 303;" f
@@ -2953,7 +2950,6 @@ 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 69;" f
constructEdges src/Polyhedra.hs 34;" f
constructEdgesList src/Polyhedra.hs 43;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f
@@ -3054,7 +3050,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 39;" f
crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f
crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f
cubeShape src/Dodge/Block/Debris.hs 103;" f
cullPoint src/Dodge/Render/ShapePicture.hs 94;" f
cullPoint src/Dodge/Render/ShapePicture.hs 95;" f
cullPretty src/AesonHelp.hs 14;" f
cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f
cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f
@@ -3109,15 +3105,12 @@ deadUpperBody src/Dodge/Creature/Picture.hs 113;" f
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f
debrisSPic src/Dodge/Prop/Draw.hs 20;" f
debrisSize src/Dodge/Block/Debris.hs 77;" f
debugEvent src/Dodge/Debug.hs 34;" f
debugEvents src/Dodge/Debug.hs 27;" f
debugItem src/Dodge/Debug.hs 37;" f
debugList src/Dodge/Debug.hs 171;" f
debugEvent src/Dodge/Debug.hs 26;" f
debugEvents src/Dodge/Debug.hs 19;" f
debugItem src/Dodge/Debug.hs 29;" 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 149;" f
debugSelectCreatureMessage src/Dodge/Debug.hs 140;" f
debugOn src/Dodge/Data/Config.hs 150;" f
decodeSensorType src/Dodge/Terminal.hs 72;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f
decomposeTree src/Dodge/Tree/Compose.hs 58;" f
@@ -3146,7 +3139,7 @@ defaultCWGen src/Dodge/Default/World.hs 57;" f
defaultCWorld src/Dodge/Default/World.hs 82;" f
defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f
defaultClusterStatus src/Dodge/Default/Room.hs 37;" f
defaultConfig src/Dodge/Data/Config.hs 127;" f
defaultConfig src/Dodge/Data/Config.hs 126;" f
defaultCraftItem src/Dodge/Default/Item.hs 25;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f
defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f
@@ -3217,7 +3210,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 49;" f
displayFrameTicks src/Dodge/Render/Picture.hs 51;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f
@@ -3323,44 +3316,45 @@ 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 283;" f
drawAimSweep src/Dodge/Render/Picture.hs 292;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawArrowDown src/Dodge/Render/Picture.hs 210;" f
drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f
drawArrowDown src/Dodge/Render/Picture.hs 219;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBlock src/Dodge/Block/Draw.hs 7;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 348;" f
drawBullet src/Dodge/Render/ShapePicture.hs 137;" f
drawBullet src/Dodge/Render/ShapePicture.hs 134;" f
drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawChasm src/Dodge/Render/ShapePicture.hs 50;" f
drawChasm src/Dodge/Render/ShapePicture.hs 51;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f
drawCliff src/Dodge/Render/ShapePicture.hs 53;" f
drawCliff src/Dodge/Render/ShapePicture.hs 54;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 258;" f
drawCombFilter src/Dodge/Render/Picture.hs 267;" f
drawCombineInventory src/Dodge/Render/HUD.hs 182;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f
drawCoord src/Dodge/Debug/Picture.hs 376;" f
drawCrInfo src/Dodge/Debug.hs 72;" f
drawCreature src/Dodge/Render/ShapePicture.hs 69;" f
drawCrInfo src/Dodge/Debug.hs 59;" f
drawCreature src/Dodge/Render/ShapePicture.hs 70;" 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 72;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 128;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 137;" f
drawDDATest src/Dodge/Debug/Picture.hs 303;" f
drawDamSensor src/Dodge/Machine/Draw.hs 27;" f
drawDebug src/Dodge/Debug.hs 192;" f
drawDebug src/Dodge/Debug.hs 87;" f
drawDoorPaths src/Dodge/Debug/Picture.hs 253;" f
drawDoubleLampCover src/Dodge/Prop/Draw.hs 95;" f
drawDrag src/Dodge/Render/Picture.hs 189;" f
drawDragDrop src/Dodge/Render/Picture.hs 218;" f
drawDragPickup src/Dodge/Render/Picture.hs 227;" f
drawDragSelect src/Dodge/Render/Picture.hs 186;" f
drawDrag src/Dodge/Render/Picture.hs 198;" f
drawDragDrop src/Dodge/Render/Picture.hs 227;" f
drawDragPickup src/Dodge/Render/Picture.hs 236;" f
drawDragSelect src/Dodge/Render/Picture.hs 195;" f
drawDragSelected src/Dodge/Render/HUD.hs 136;" f
drawDragSelecting src/Dodge/Render/HUD.hs 153;" f
drawEmptySet src/Dodge/Render/Picture.hs 142;" f
drawEmptySet src/Dodge/Render/Picture.hs 151;" 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 +3363,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 269;" f
drawGapPlus src/Dodge/Render/Picture.hs 278;" 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,7 +3372,7 @@ 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 181;" f
drawJumpDown src/Dodge/Render/Picture.hs 190;" 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
@@ -3392,11 +3386,11 @@ 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 157;" f
drawMenuCursor src/Dodge/Render/Picture.hs 169;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f
drawMenuClick src/Dodge/Render/Picture.hs 166;" f
drawMenuCursor src/Dodge/Render/Picture.hs 178;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f
drawMouseCursor src/Dodge/Render/Picture.hs 83;" f
drawMouseCursor src/Dodge/Render/Picture.hs 85;" 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
@@ -3405,21 +3399,21 @@ 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 154;" f
drawPlus src/Dodge/Render/Picture.hs 163;" 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 61;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 136;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 62;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 145;" 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 145;" f
drawReturn src/Dodge/Render/Picture.hs 154;" 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 246;" f
drawSelect src/Dodge/Render/Picture.hs 255;" 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
@@ -3441,7 +3435,7 @@ drawTitle src/Dodge/Render/MenuScreen.hs 35;" 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 201;" f
drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 210;" 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
@@ -3538,7 +3532,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 99;" f
extraPics src/Dodge/Render/ShapePicture.hs 100;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f
@@ -3566,7 +3560,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 19;" 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
@@ -3597,7 +3591,7 @@ flockPointTargetR src/Dodge/Creature/Boid.hs 268;" f
flockToPointUsing src/Dodge/Creature/Boid.hs 216;" f
flockToPointUsing' src/Dodge/Creature/Boid.hs 229;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 231;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 121;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
@@ -3615,7 +3609,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 57;" f
fpsText src/Dodge/Render/Picture.hs 59;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 145;" f
frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f
@@ -4001,7 +3995,7 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f
lamp src/Dodge/Creature/Lamp.hs 21;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 83;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 84;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 412;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
@@ -4211,7 +4205,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 104;" f
mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f
mcProxTest src/Dodge/Machine/Update.hs 203;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f
mcSPic src/Dodge/Render/ShapePicture.hs 132;" f
mcSPic src/Dodge/Render/ShapePicture.hs 131;" f
mcShootAuto src/Dodge/HeldUse.hs 1169;" f
mcShootLaser src/Dodge/HeldUse.hs 1162;" f
mcTriggerVal src/Dodge/Machine/Update.hs 110;" f
@@ -4279,7 +4273,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 90;" f
mouseCursorType src/Dodge/Render/Picture.hs 92;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 25;" f
moveBullet src/Dodge/Bullet.hs 196;" f
moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
@@ -4883,7 +4877,6 @@ 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 134;" f
scrollRBOption src/Dodge/Update/Scroll.hs 202;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f
scrollTimeBack src/Dodge/Update.hs 206;" f
@@ -4911,7 +4904,6 @@ 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 127;" 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
@@ -4999,7 +4991,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 78;" f
shiftByV2 src/Dodge/PlacementSpot.hs 250;" f
shiftChildren src/Dodge/Tree/Compose.hs 44;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 88;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 89;" f
shiftInBy src/Dodge/PlacementSpot.hs 247;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
@@ -5681,7 +5673,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f
wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f
wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f
worldSPic src/Dodge/Render/ShapePicture.hs 22;" f
worldSPic src/Dodge/Render/ShapePicture.hs 23;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 148;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f