Improve wall squashing further

This commit is contained in:
2026-03-26 20:25:59 +00:00
parent 62a37388e7
commit 0ddedf7fd6
9 changed files with 99 additions and 79 deletions
+7 -7
View File
@@ -34,6 +34,7 @@ module Dodge.Base.Collide (
collide3, collide3,
) where ) where
import Data.Foldable
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
@@ -186,11 +187,11 @@ wallToSurface wl = (g x, g $ vNormal (x - y), [(g x, g (y - x)), (g y, g (x - y)
-- this COULD be written in terms of collidePointWallsFilterStream, TODO test -- this COULD be written in terms of collidePointWallsFilterStream, TODO test
-- whether this is actually faster -- whether this is actually faster
collidePointTestFilter :: (Wall -> Bool) -> Point2 -> Point2 -> [Wall] -> Bool collidePointTestFilter :: (Wall -> Bool) -> Point2 -> Point2 -> IM.IntMap Wall -> Bool
{-# INLINE collidePointTestFilter #-} {-# INLINE collidePointTestFilter #-}
collidePointTestFilter t sp ep = collidePointTestFilter t sp ep =
any (isJust . uncurry (intersectSegSeg sp ep) . _wlLine) any (isJust . uncurry (intersectSegSeg sp ep) . _wlLine)
. filter t . IM.filter t
---- this COULD be written in terms of collidePointWallsFilterStream, TODO test ---- this COULD be written in terms of collidePointWallsFilterStream, TODO test
---- whether this is actually faster ---- whether this is actually faster
@@ -209,9 +210,9 @@ collidePointWallsFilter t sp ep = collidePoint sp ep . IM.filter t . wlsNearSeg
-- {-# INLINE overlapSegWalls #-} -- {-# INLINE overlapSegWalls #-}
-- overlapSegWalls sp ep = S.mapMaybe $ \wl -> uncurry (intersectSegSeg sp ep) (_wlLine wl) <&> (,wl) -- overlapSegWalls sp ep = S.mapMaybe $ \wl -> uncurry (intersectSegSeg sp ep) (_wlLine wl) <&> (,wl)
overlapSegWalls :: Point2 -> Point2 -> [Wall] -> [(Point2, Wall)] overlapSegWalls :: Point2 -> Point2 -> IM.IntMap Wall -> IM.IntMap (Point2, Wall)
{-# INLINE overlapSegWalls #-} {-# INLINE overlapSegWalls #-}
overlapSegWalls sp ep = mapMaybe $ overlapSegWalls sp ep = IM.mapMaybe $
\wl -> uncurry (intersectSegSeg sp ep) (_wlLine wl) <&> (,wl) \wl -> uncurry (intersectSegSeg sp ep) (_wlLine wl) <&> (,wl)
visibleWalls :: Point2 -> Point2 -> World -> [(Point2, Wall)] visibleWalls :: Point2 -> Point2 -> World -> [(Point2, Wall)]
@@ -219,8 +220,8 @@ visibleWalls :: Point2 -> Point2 -> World -> [(Point2, Wall)]
visibleWalls sp ep = visibleWalls sp ep =
takeUntil (wlIsOpaque . snd) takeUntil (wlIsOpaque . snd)
. sortOn (dist sp . fst) . sortOn (dist sp . fst)
. overlapSegWalls sp ep
. IM.elems . IM.elems
. overlapSegWalls sp ep
. wlsNearSeg sp ep . wlsNearSeg sp ep
allVisibleWalls :: World -> [(Point2, Wall)] allVisibleWalls :: World -> [(Point2, Wall)]
@@ -298,7 +299,6 @@ hasLOS :: Point2 -> Point2 -> World -> Bool
hasLOS p1 p2 = hasLOS p1 p2 =
not not
. collidePointTestFilter (const True) p1 p2 . collidePointTestFilter (const True) p1 p2
. IM.elems
. wlsNearSeg p1 p2 . wlsNearSeg p1 p2
hasButtonLOS :: Point2 -> Point2 -> World -> Bool hasButtonLOS :: Point2 -> Point2 -> World -> Bool
@@ -315,7 +315,7 @@ hasLOSIndirect :: Point2 -> Point2 -> World -> Bool
hasLOSIndirect p1 p2 = hasLOSIndirect p1 p2 =
not not
. collidePointTestFilter wlIsOpaque p1 p2 . collidePointTestFilter wlIsOpaque p1 p2
. IM.elems -- . IM.elems
. wlsNearSeg p1 p2 . wlsNearSeg p1 p2
canSee :: Int -> Int -> World -> Bool canSee :: Int -> Int -> World -> Bool
-1
View File
@@ -33,7 +33,6 @@ data WdWd
| MakeStartCloudAt Point3 | MakeStartCloudAt Point3
| TorqueCr Float Int | TorqueCr Float Int
| WdWdNegateTrig Int | WdWdNegateTrig Int
-- | WdWdFromItCrixWdWd (LabelDoubleTree ComposeLinkType Item) Int ItCrWdWd
| MakeTempLight LSParam Int | MakeTempLight LSParam Int
| MakeTempLightFade Float LSParam Int | MakeTempLightFade Float LSParam Int
| UseInvItem Int Int -- invid presstime | UseInvItem Int Int -- invid presstime
+1 -1
View File
@@ -142,7 +142,7 @@ updateCloseObjects w =
x <- lw ^? terminals . ix tid . tmStatus x <- lw ^? terminals . ix tid . tmStatus
return (x /= TerminalDeactivated) return (x /= TerminalDeactivated)
_ -> True _ -> True
isclose x = dist y x < 40 && hasButtonLOS y x w isclose x = dist y x < 30 && hasButtonLOS y x w
y = you w ^. crPos . _xy y = you w ^. crPos . _xy
changeSwapSelSet :: Int -> World -> World changeSwapSelSet :: Int -> World -> World
+3 -2
View File
@@ -236,8 +236,9 @@ closeButtonToSelectionItem w i = do
btText :: Button -> String btText :: Button -> String
btText bt = case _btEvent bt of btText bt = case _btEvent bt of
ButtonPress {} -> "BUTTON" ButtonPress {} -> "BUTTON"
ButtonSwitch {_btOn = t} -> if t then "SWITCH\\" else "SWITCH/" --ButtonSwitch {_btOn = t} -> if t then "SWITCH\\" else "SWITCH/"
ButtonDumbSwitch {} -> "SWITCH" ButtonSwitch {} -> "SWITCH"
ButtonDumbSwitch {} -> "SWITCH" -- do we want to show switch status?
ButtonAccessTerminal i -> "TERMINAL " ++ show i ButtonAccessTerminal i -> "TERMINAL " ++ show i
closeItemToTextPictures :: Item -> ([String], Color) closeItemToTextPictures :: Item -> ([String], Color)
+17
View File
@@ -1,6 +1,7 @@
{-# OPTIONS_GHC -Wno-unused-imports #-} {-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.TestString where module Dodge.TestString where
import Dodge.WallCreatureCollisions
import Data.List ((\\)) import Data.List ((\\))
import ShortShow import ShortShow
import Geometry import Geometry
@@ -34,6 +35,22 @@ import RandomHelp
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit u = (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crWallTouch) testStringInit u = (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crWallTouch)
<> fromMaybe [] (do
w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18
w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61
let
f = uncurry (-) . (^. wlLine)
g = argV . f
h = normalizeV . uncurry (-) . (^. wlLine)
a = angleVV (f w1) (f w2)
return [show $ wlWlCrush w1 w2, show a , show (f w1), show (f w2)
, show $ g w1
, show $ g w2
, show $ h w1
, show $ h w2
, show (norm (h w1 + h w2))
]
)
-- <> (fmap show $ u ^.. uvWorld . cWorld . lWorld . machines . each . mcMaterial) -- <> (fmap show $ u ^.. uvWorld . cWorld . lWorld . machines . each . mcMaterial)
--testStringInit u = map show (u ^.. uvWorld . cWorld . lWorld . machines . traverse . mcDir) --testStringInit u = map show (u ^.. uvWorld . cWorld . lWorld . machines . traverse . mcDir)
--testStringInit u = map show --testStringInit u = map show
+10 -4
View File
@@ -1,5 +1,7 @@
-- | Deals with moving creature wall collisions. -- | Deals with moving creature wall collisions.
module Dodge.WallCreatureCollisions (colCrsWalls) where module Dodge.WallCreatureCollisions (colCrsWalls,
wlWlCrush
) where
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
@@ -45,7 +47,8 @@ pushCr wls cr
& crPos . _xy .~ ap & crPos . _xy .~ ap
| otherwise = ecr | otherwise = ecr
where where
twls = IM.elems $ IM.restrictKeys wls (ecr ^. crWallTouch) stwls = IM.filter (\wl -> uncurry circOnSegNoEndpoints (wl ^. wlLine) sp r) wls
twls = IM.elems $ IM.restrictKeys wls (ecr ^. crWallTouch) -- `IM.union` stwls
ep = ecr ^. crPos . _xy ep = ecr ^. crPos . _xy
ap = cr ^. crOldPos . _xy ap = cr ^. crOldPos . _xy
sp = cr ^. crPos . _xy sp = cr ^. crPos . _xy
@@ -60,9 +63,12 @@ wlsCrush [] = False
wlsCrush (x:xs) = any (wlWlCrush x) xs || wlsCrush xs wlsCrush (x:xs) = any (wlWlCrush x) xs || wlsCrush xs
wlWlCrush :: Wall -> Wall -> Bool wlWlCrush :: Wall -> Wall -> Bool
wlWlCrush w1 w2 = angleVV (f w1) (f w2) > 0.75 * pi wlWlCrush w1 w2 = norm (f w1 + f w2) < 0.5
where where
f = uncurry (-) . (^. wlLine) f = normalizeV . uncurry (-) . (^. wlLine)
--wlWlCrush w1 w2 = angleVV (f w1) (f w2) > 0.75 * pi
-- where
-- f = uncurry (-) . (^. wlLine)
-- the amount to push creatures out from walls, extra to their radius -- the amount to push creatures out from walls, extra to their radius
wallBuffer :: Float wallBuffer :: Float
-3
View File
@@ -45,9 +45,6 @@ doWdWd = \case
SoundStart so p sid mi -> soundStart so p sid mi SoundStart so p sid mi -> soundStart so p sid mi
WdWdNegateTrig trid -> cWorld . lWorld . triggers . ix trid %~ not WdWdNegateTrig trid -> cWorld . lWorld . triggers . ix trid %~ not
WdWdSetSoundFilter x -> wSoundFilter .~ x WdWdSetSoundFilter x -> wSoundFilter .~ x
-- WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do
-- cr <- w ^? cWorld . lWorld . creatures . ix crid
-- return $ doItCrWdWd f it cr w
MakeTempLight _ 0 -> id MakeTempLight _ 0 -> id
MakeTempLight x t -> MakeTempLight x t ->
(cWorld . lWorld . lights .:~ x) (cWorld . lWorld . lights .:~ x)
+5 -5
View File
@@ -154,19 +154,19 @@ thingsHitExceptCr (Just cid) sp ep = filter t . thingsHit sp ep
t = (Just cid /=) . (^? _2 . _Left . crID) t = (Just cid /=) . (^? _2 . _Left . crID)
wlsHit :: Point2 -> Point2 -> World -> [(Point2, Wall)] wlsHit :: Point2 -> Point2 -> World -> [(Point2, Wall)]
wlsHit sp ep = sortOn (dist sp . fst) . wlsHitUnsorted sp ep wlsHit sp ep = sortOn (dist sp . fst) . IM.elems . wlsHitUnsorted sp ep
---- pushes out any hit point by one ---- pushes out any hit point by one
wlHitPos :: Point2 -> Point2 -> World -> Point2 wlHitPos :: Point2 -> Point2 -> World -> Point2
wlHitPos sp ep = maybe ep ((+ normalize (ep - sp)) . fst) . safeHead . wlsHit sp ep wlHitPos sp ep = maybe ep ((+ normalize (ep - sp)) . fst) . safeHead . wlsHit sp ep
wlsHitUnsorted :: Point2 -> Point2 -> World -> [(Point2, Wall)] wlsHitUnsorted :: Point2 -> Point2 -> World -> IM.IntMap (Point2, Wall)
wlsHitUnsorted sp ep wlsHitUnsorted sp ep
| sp == ep = const mempty | sp == ep = const mempty
| otherwise = overlapSegWalls sp ep . IM.elems . wlsNearSeg sp ep | otherwise = overlapSegWalls sp ep . wlsNearSeg sp ep
wlsHitRadial :: Point2 -> Float -> World -> [(Point2, Wall)] wlsHitRadial :: Point2 -> Float -> World -> IM.IntMap (Point2, Wall)
wlsHitRadial p r = mapMaybe f . IM.elems . wlsNearCirc p r wlsHitRadial p r = IM.mapMaybe f . wlsNearCirc p r
where where
--f wl = uncurry (intersectSegSeg p (p - r *.* v)) (_wlLine wl) <&> (,wl) --f wl = uncurry (intersectSegSeg p (p - r *.* v)) (_wlLine wl) <&> (,wl)
f wl = mhp <&> (,wl) f wl = mhp <&> (,wl)
+56 -56
View File
@@ -1184,8 +1184,9 @@ SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C
SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t
SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C
SentinelAt src/Dodge/Data/ActionPlan.hs 152;" C SentinelAt src/Dodge/Data/ActionPlan.hs 152;" C
SetLSCol src/Dodge/Data/WorldEffect.hs 29;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C
SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C
SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C
ShadNum src/Picture/Data.hs 30;" t ShadNum src/Picture/Data.hs 30;" t
Shader src/Shader/Data.hs 51;" t Shader src/Shader/Data.hs 51;" t
ShaderTexture src/Shader/Data.hs 102;" t ShaderTexture src/Shader/Data.hs 102;" t
@@ -1511,7 +1512,6 @@ West8 src/Dodge/Data/CardinalPoint.hs 34;" C
WlID src/Dodge/Data/CrWlID.hs 10;" C WlID src/Dodge/Data/CrWlID.hs 10;" C
Wood src/Dodge/Data/Material.hs 11;" C Wood src/Dodge/Data/Material.hs 11;" C
World src/Dodge/Data/World.hs 35;" t World src/Dodge/Data/World.hs 35;" t
WorldEffects src/Dodge/Data/WorldEffect.hs 28;" C
WorldEventFlag src/Dodge/Data/World.hs 30;" t WorldEventFlag src/Dodge/Data/World.hs 30;" t
WorldGovernment src/Dodge/Data/Scenario.hs 52;" C WorldGovernment src/Dodge/Data/Scenario.hs 52;" C
XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t
@@ -2525,7 +2525,7 @@ aRadarPulse src/Dodge/RadarSweep.hs 20;" f
aShape src/Dodge/Placement/Instance/LightSource.hs 93;" f aShape src/Dodge/Placement/Instance/LightSource.hs 93;" f
aSound src/Dodge/SoundLogic.hs 74;" f aSound src/Dodge/SoundLogic.hs 74;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 65;" f accessTerminal src/Dodge/WorldEffect.hs 63;" f
activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 63;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 63;" f
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
addArmour src/Dodge/Creature.hs 82;" f addArmour src/Dodge/Creature.hs 82;" f
@@ -2707,10 +2707,10 @@ bgunSound src/Dodge/HeldUse.hs 540;" f
bingate src/Dodge/Item/Scope.hs 115;" f bingate src/Dodge/Item/Scope.hs 115;" f
black src/Color.hs 54;" f black src/Color.hs 54;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 15;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 15;" f
blinkActionFail src/Dodge/Creature/Action/Blink.hs 87;" f blinkActionFail src/Dodge/Creature/Action/Blink.hs 88;" f
blinkActionMousePos src/Dodge/Creature/Action/Blink.hs 24;" f blinkActionMousePos src/Dodge/Creature/Action/Blink.hs 25;" f
blinkDistortions src/Dodge/Creature/Action/Blink.hs 45;" f blinkDistortions src/Dodge/Creature/Action/Blink.hs 46;" f
blinkShockwave src/Dodge/Creature/Action/Blink.hs 78;" f blinkShockwave src/Dodge/Creature/Action/Blink.hs 79;" f
blinker src/Dodge/Item/Held/Utility.hs 30;" f blinker src/Dodge/Item/Held/Utility.hs 30;" f
blipAt src/Dodge/RadarSweep.hs 78;" f blipAt src/Dodge/RadarSweep.hs 78;" f
blockLine src/Dodge/Placement/Instance/Wall.hs 44;" f blockLine src/Dodge/Placement/Instance/Wall.hs 44;" f
@@ -2862,7 +2862,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f
clicker src/Dodge/Item/Scope.hs 88;" f clicker src/Dodge/Item/Scope.hs 88;" f
clipV src/Geometry/Vector.hs 48;" f clipV src/Geometry/Vector.hs 48;" f
clipZoom src/Dodge/Update/Camera.hs 233;" f clipZoom src/Dodge/Update/Camera.hs 234;" f
clockCycle src/Dodge/Clock.hs 7;" f clockCycle src/Dodge/Clock.hs 7;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f
@@ -3082,7 +3082,7 @@ dbArg src/Dodge/Base.hs 165;" f
dbArgChain src/Dodge/Base.hs 170;" f dbArgChain src/Dodge/Base.hs 170;" f
dbwMuzzles src/Dodge/HeldUse.hs 349;" f dbwMuzzles src/Dodge/HeldUse.hs 349;" f
deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneIX src/Dodge/Zoning/Base.hs 91;" f
deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f
deadEndRoom src/Dodge/Room/Room.hs 261;" f deadEndRoom src/Dodge/Room/Room.hs 261;" f
deadFeet src/Dodge/Creature/Picture.hs 68;" f deadFeet src/Dodge/Creature/Picture.hs 68;" f
deadRot src/Dodge/Creature/Picture.hs 86;" f deadRot src/Dodge/Creature/Picture.hs 86;" f
@@ -3207,8 +3207,8 @@ displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f
displayTerminalLineString src/Dodge/Update.hs 561;" f displayTerminalLineString src/Dodge/Update.hs 561;" f
dist src/Geometry/Vector.hs 185;" f dist src/Geometry/Vector.hs 185;" f
dist3 src/Geometry/Vector3D.hs 101;" f dist3 src/Geometry/Vector3D.hs 101;" f
distributeAmmoToItem src/Dodge/WorldEffect.hs 151;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 149;" f
distributeAmmoToYou src/Dodge/WorldEffect.hs 139;" f distributeAmmoToYou src/Dodge/WorldEffect.hs 137;" f
distributerRoom src/Dodge/Room/Room.hs 428;" f distributerRoom src/Dodge/Room/Room.hs 428;" f
divTo src/Geometry/Zone.hs 8;" f divTo src/Geometry/Zone.hs 8;" f
divideCircle src/Geometry.hs 321;" f divideCircle src/Geometry.hs 321;" f
@@ -3232,8 +3232,8 @@ doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f
doCrImp src/Dodge/CreatureEffect.hs 13;" f doCrImp src/Dodge/CreatureEffect.hs 13;" f
doCrWdAc src/Dodge/CreatureEffect.hs 48;" f doCrWdAc src/Dodge/CreatureEffect.hs 48;" f
doDamage src/Dodge/Creature/State.hs 42;" f doDamage src/Dodge/Creature/State.hs 42;" f
doDeathToggle src/Dodge/WorldEffect.hs 100;" f doDeathToggle src/Dodge/WorldEffect.hs 98;" f
doDeathTriggers src/Dodge/WorldEffect.hs 93;" f doDeathTriggers src/Dodge/WorldEffect.hs 91;" f
doDebugGet src/Dodge/Debug.hs 145;" f doDebugGet src/Dodge/Debug.hs 145;" f
doDebugPut src/Dodge/Debug.hs 134;" f doDebugPut src/Dodge/Debug.hs 134;" f
doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f
@@ -3278,8 +3278,8 @@ doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 132;" f doThrust src/Dodge/Projectile/Update.hs 132;" f
doTimeScroll src/Dodge/Update.hs 233;" f doTimeScroll src/Dodge/Update.hs 233;" f
doTmWdWd src/Dodge/WorldEffect.hs 103;" f doTmWdWd src/Dodge/WorldEffect.hs 101;" f
doWallRotate src/Dodge/Update/Camera.hs 230;" f doWallRotate src/Dodge/Update/Camera.hs 231;" f
doWdBl src/Dodge/WorldBool.hs 10;" f doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f
doWdP2f src/Dodge/WdP2f.hs 10;" f doWdP2f src/Dodge/WdP2f.hs 10;" f
@@ -3497,7 +3497,7 @@ errorIsLHS src/Geometry.hs 65;" f
errorNormalizeV src/Geometry.hs 54;" f errorNormalizeV src/Geometry.hs 54;" f
errorPointInPolygon src/Geometry.hs 46;" f errorPointInPolygon src/Geometry.hs 46;" f
evenOddSplit src/Dodge/Base.hs 160;" f evenOddSplit src/Dodge/Base.hs 160;" f
exitTerminalSubInv src/Dodge/WorldEffect.hs 171;" f exitTerminalSubInv src/Dodge/WorldEffect.hs 169;" f
expandLine src/Dodge/Picture.hs 30;" f expandLine src/Dodge/Picture.hs 30;" f
expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f
expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
@@ -3515,13 +3515,13 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 103;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 62;" f faceEdges src/Polyhedra.hs 62;" f
facesToVF src/Polyhedra/Geodesic.hs 70;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f
farWallDistDirection src/Dodge/Update/Camera.hs 244;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f
fdiv src/ShortShow.hs 41;" f fdiv src/ShortShow.hs 41;" f
feet src/Dodge/Creature/Picture.hs 51;" f feet src/Dodge/Creature/Picture.hs 51;" f
filter3 src/FoldableHelp.hs 76;" f filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f
findBlips src/Dodge/RadarSweep.hs 63;" f findBlips src/Dodge/RadarSweep.hs 63;" f
findBoundDists src/Dodge/Update/Camera.hs 251;" f findBoundDists src/Dodge/Update/Camera.hs 252;" f
findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f
findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f
findIndex src/IntMapHelp.hs 86;" f findIndex src/IntMapHelp.hs 86;" f
@@ -3617,7 +3617,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 151;" f getAimZoom src/Dodge/Update/Camera.hs 152;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 108;" f getAmmoLinks src/Dodge/Item/Grammar.hs 108;" f
getAttachedSFLink src/Dodge/HeldUse.hs 805;" f getAttachedSFLink src/Dodge/HeldUse.hs 805;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f
@@ -3736,7 +3736,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
healthTest src/Dodge/Room/LasTurret.hs 130;" f healthTest src/Dodge/Room/LasTurret.hs 130;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f
heldAimStance src/Dodge/Item/AimStance.hs 27;" f heldAimStance src/Dodge/Item/AimStance.hs 27;" f
heldAimZoom src/Dodge/Update/Camera.hs 157;" f heldAimZoom src/Dodge/Update/Camera.hs 158;" f
heldEffect src/Dodge/HeldUse.hs 64;" f heldEffect src/Dodge/HeldUse.hs 64;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 135;" f heldEffectMuzzles src/Dodge/HeldUse.hs 135;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 85;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 85;" f
@@ -3989,7 +3989,7 @@ launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 42;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 42;" f
ldpRect src/Dodge/Render/List.hs 48;" f ldpRect src/Dodge/Render/List.hs 48;" f
ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 84;" f ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 84;" f
leaveResetQuitTerminal src/Dodge/WorldEffect.hs 165;" f leaveResetQuitTerminal src/Dodge/WorldEffect.hs 163;" f
led src/Dodge/Item/Held/Utility.hs 23;" f led src/Dodge/Item/Held/Utility.hs 23;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 193;" f leftChildList src/Dodge/Item/Grammar.hs 193;" f
@@ -4251,7 +4251,7 @@ moveToSideNthOutLink src/Dodge/Room/Warning.hs 102;" f
moveWall src/Dodge/Wall/Move.hs 23;" f moveWall src/Dodge/Wall/Move.hs 23;" f
moveWallID src/Dodge/Wall/Move.hs 18;" f moveWallID src/Dodge/Wall/Move.hs 18;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f
moveZoomCamera src/Dodge/Update/Camera.hs 93;" f moveZoomCamera src/Dodge/Update/Camera.hs 94;" f
mtTopLabels src/Dodge/Tree/Compose.hs 51;" f mtTopLabels src/Dodge/Tree/Compose.hs 51;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
@@ -4549,10 +4549,10 @@ psposAddLabel src/Dodge/PlacementSpot.hs 71;" f
pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f
ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f
pulseChecker src/Dodge/Item/Equipment.hs 84;" f pulseChecker src/Dodge/Item/Equipment.hs 84;" f
pushCr src/Dodge/WallCreatureCollisions.hs 37;" f pushCr src/Dodge/WallCreatureCollisions.hs 38;" f
pushL src/DoubleStack.hs 20;" f pushL src/DoubleStack.hs 20;" f
pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 83;" f pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 84;" f
pushOutFromWall src/Dodge/WallCreatureCollisions.hs 72;" f pushOutFromWall src/Dodge/WallCreatureCollisions.hs 73;" f
pushR src/DoubleStack.hs 24;" f pushR src/DoubleStack.hs 24;" f
pushScreen src/Dodge/Menu/PushPop.hs 9;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f
pushYouOutFromWalls src/Dodge/Update.hs 342;" f pushYouOutFromWalls src/Dodge/Update.hs 342;" f
@@ -4685,7 +4685,7 @@ replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 67;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 67;" f
resetPLUse src/Dodge/PlacementSpot.hs 94;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f
resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f
resetTerminal src/Dodge/WorldEffect.hs 159;" f resetTerminal src/Dodge/WorldEffect.hs 157;" f
resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f
resizeFBOTO' src/Framebuffer/Update.hs 197;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f
resizeFBOTO2 src/Framebuffer/Update.hs 104;" f resizeFBOTO2 src/Framebuffer/Update.hs 104;" f
@@ -4757,7 +4757,7 @@ rotate src/Picture/Base.hs 145;" f
rotate3x src/Geometry/Vector3D.hs 60;" f rotate3x src/Geometry/Vector3D.hs 60;" f
rotate3y src/Geometry/Vector3D.hs 66;" f rotate3y src/Geometry/Vector3D.hs 66;" f
rotate3z src/Geometry/Vector3D.hs 54;" f rotate3z src/Geometry/Vector3D.hs 54;" f
rotateCamera src/Dodge/Update/Camera.hs 204;" f rotateCamera src/Dodge/Update/Camera.hs 205;" f
rotateList src/Padding.hs 49;" f rotateList src/Padding.hs 49;" f
rotateSH src/Shape.hs 254;" f rotateSH src/Shape.hs 254;" f
rotateSHq src/Shape.hs 163;" f rotateSHq src/Shape.hs 163;" f
@@ -4765,7 +4765,7 @@ rotateSHx src/Shape.hs 262;" f
rotateSP src/ShapePicture.hs 57;" f rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 65;" f rotateTo src/Polyhedra/Geodesic.hs 65;" f
rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 218;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 219;" f
rotateToZ src/Quaternion.hs 35;" f rotateToZ src/Quaternion.hs 35;" f
rotateV src/Geometry/Vector.hs 106;" f rotateV src/Geometry/Vector.hs 106;" f
rotateVAround src/Geometry/Vector.hs 113;" f rotateVAround src/Geometry/Vector.hs 113;" f
@@ -4890,7 +4890,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f
setTile src/Dodge/Layout.hs 70;" f setTile src/Dodge/Layout.hs 70;" f
setTiles src/Dodge/Layout.hs 67;" f setTiles src/Dodge/Layout.hs 67;" f
setTreeInts src/Dodge/Room/Tutorial.hs 94;" f setTreeInts src/Dodge/Room/Tutorial.hs 94;" f
setViewDistance src/Dodge/Update/Camera.hs 239;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 448;" f setViewport src/Dodge/Render.hs 448;" f
setVol src/Dodge/Config.hs 47;" f setVol src/Dodge/Config.hs 47;" f
@@ -5076,7 +5076,7 @@ sqPlatformChasm src/Dodge/Room/Tutorial.hs 225;" f
sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f
square src/Geometry/Polygon.hs 56;" f square src/Geometry/Polygon.hs 56;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 86;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 87;" f
squashNormalizeV src/Geometry/Vector.hs 158;" f squashNormalizeV src/Geometry/Vector.hs 158;" f
ssLookupDown src/Dodge/SelectionSections.hs 96;" f ssLookupDown src/Dodge/SelectionSections.hs 96;" f
ssLookupGE' src/Dodge/SelectionSections.hs 150;" f ssLookupGE' src/Dodge/SelectionSections.hs 150;" f
@@ -5240,7 +5240,7 @@ titleOptionsMenu src/Dodge/Menu.hs 104;" f
titleOptionsNoWrite src/Dodge/Menu.hs 107;" f titleOptionsNoWrite src/Dodge/Menu.hs 107;" f
tlDoEffect src/Dodge/Terminal.hs 115;" f tlDoEffect src/Dodge/Terminal.hs 115;" f
tlSetStatus src/Dodge/Terminal.hs 112;" f tlSetStatus src/Dodge/Terminal.hs 112;" f
tmDistributeAmmo src/Dodge/WorldEffect.hs 119;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 117;" f
tmDistributeLines src/Dodge/Room/Room.hs 466;" f tmDistributeLines src/Dodge/Room/Room.hs 466;" f
tmMachine src/Dodge/Placement/Instance/Terminal.hs 54;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 54;" f
toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f
@@ -5272,7 +5272,7 @@ topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 53;" f topTestPart src/Dodge/TestString.hs 53;" f
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
torqueAmount src/Dodge/HeldUse.hs 606;" f torqueAmount src/Dodge/HeldUse.hs 606;" f
torqueCr src/Dodge/WorldEffect.hs 86;" f torqueCr src/Dodge/WorldEffect.hs 84;" f
torso src/Dodge/Creature/Picture.hs 100;" f torso src/Dodge/Creature/Picture.hs 100;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
@@ -5286,8 +5286,8 @@ transMat src/MatrixHelper.hs 87;" f
transToHandle src/Dodge/Item/HeldOffset.hs 28;" f transToHandle src/Dodge/Item/HeldOffset.hs 28;" f
translate src/Picture/Base.hs 108;" f translate src/Picture/Base.hs 108;" f
translate3 src/Picture/Base.hs 112;" f translate3 src/Picture/Base.hs 112;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 49;" f translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 67;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f
translateH src/Picture/Base.hs 104;" f translateH src/Picture/Base.hs 104;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f
@@ -5367,7 +5367,7 @@ unigate src/Dodge/Item/Scope.hs 108;" f
unitVectorAtAngle src/Geometry/Vector.hs 101;" f unitVectorAtAngle src/Geometry/Vector.hs 101;" f
unlockInv src/Dodge/Inventory/Lock.hs 12;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f
unpause src/Dodge/Menu.hs 205;" f unpause src/Dodge/Menu.hs 205;" f
unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 58;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 59;" f
unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f
unsafeSwapKeys src/IntMapHelp.hs 75;" f unsafeSwapKeys src/IntMapHelp.hs 75;" f
unshadowBlock src/Dodge/Block.hs 14;" f unshadowBlock src/Dodge/Block.hs 14;" f
@@ -5384,11 +5384,11 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 454;" f
updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarrel src/Dodge/Barreloid.hs 44;" f
updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
updateBounds src/Dodge/Update/Camera.hs 261;" f updateBounds src/Dodge/Update/Camera.hs 262;" f
updateBulVel src/Dodge/Bullet.hs 57;" f updateBulVel src/Dodge/Bullet.hs 57;" f
updateBullet src/Dodge/Bullet.hs 22;" f updateBullet src/Dodge/Bullet.hs 22;" f
updateBullets src/Dodge/Update.hs 643;" f updateBullets src/Dodge/Update.hs 643;" f
updateCamera src/Dodge/Update/Camera.hs 32;" f updateCamera src/Dodge/Update/Camera.hs 33;" f
updateCloseObjects src/Dodge/Inventory.hs 125;" f updateCloseObjects src/Dodge/Inventory.hs 125;" f
updateCloud src/Dodge/Update.hs 885;" f updateCloud src/Dodge/Update.hs 885;" f
updateClouds src/Dodge/Update.hs 754;" f updateClouds src/Dodge/Update.hs 754;" f
@@ -5420,7 +5420,7 @@ updateEnterRegex src/Dodge/Update/Input/InGame.hs 481;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 742;" f updateFlames src/Dodge/Update.hs 742;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 37;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 338;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 338;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 334;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 334;" f
updateGas src/Dodge/Update.hs 907;" f updateGas src/Dodge/Update.hs 907;" f
@@ -5428,7 +5428,7 @@ updateGasses src/Dodge/Update.hs 757;" f
updateGusts src/Dodge/Update.hs 869;" f updateGusts src/Dodge/Update.hs 869;" f
updateIMl src/Dodge/Update.hs 609;" f updateIMl src/Dodge/Update.hs 609;" f
updateIMl' src/Dodge/Update.hs 612;" f updateIMl' src/Dodge/Update.hs 612;" f
updateInGameCamera src/Dodge/Update/Camera.hs 85;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 404;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 404;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
@@ -5559,7 +5559,7 @@ verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
verticalWire src/Dodge/Wire.hs 23;" f verticalWire src/Dodge/Wire.hs 23;" f
vgunMuzzles src/Dodge/HeldUse.hs 369;" f vgunMuzzles src/Dodge/HeldUse.hs 369;" f
viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewClipBounds src/Dodge/Debug/Picture.hs 350;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 201;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f
viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f
viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f
@@ -5572,7 +5572,7 @@ volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f
walkNozzle src/Dodge/HeldUse.hs 826;" f walkNozzle src/Dodge/HeldUse.hs 826;" f
walkableNodeNear src/Dodge/Path.hs 69;" f walkableNodeNear src/Dodge/Path.hs 69;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 67;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 68;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallToSurface src/Dodge/Base/Collide.hs 181;" f wallToSurface src/Dodge/Base/Collide.hs 181;" f
wallsFromRooms src/Dodge/Layout.hs 141;" f wallsFromRooms src/Dodge/Layout.hs 141;" f
@@ -5619,25 +5619,25 @@ windowYFloat src/Dodge/Data/Config.hs 74;" f
withAlpha src/Color.hs 37;" f withAlpha src/Color.hs 37;" f
withByteString src/Shader/Compile.hs 157;" f withByteString src/Shader/Compile.hs 157;" f
wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 160;" f wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 160;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 31;" f
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f wlIXsNearPoint src/Dodge/Zoning/Wall.hs 21;" f
wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f wlIXsNearRect src/Dodge/Zoning/Wall.hs 28;" f
wlIXsNearSeg src/Dodge/Zoning/Wall.hs 25;" f wlIXsNearSeg src/Dodge/Zoning/Wall.hs 24;" f
wlIsOpaque src/Dodge/Base/Wall.hs 6;" f wlIsOpaque src/Dodge/Base/Wall.hs 6;" f
wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f
wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f
wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f
wlWlCrush src/Dodge/WallCreatureCollisions.hs 61;" f wlWlCrush src/Dodge/WallCreatureCollisions.hs 62;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f
wlsCrush src/Dodge/WallCreatureCollisions.hs 57;" f wlsCrush src/Dodge/WallCreatureCollisions.hs 58;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 34;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f
wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 163;" f wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 163;" f
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 48;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 38;" f
wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearRect src/Dodge/Zoning/Wall.hs 45;" f
wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 41;" f
wordsBy src/ListHelp.hs 117;" f wordsBy src/ListHelp.hs 117;" f
worldPosToResOffset src/Dodge/Base/Coordinate.hs 31;" f worldPosToResOffset src/Dodge/Base/Coordinate.hs 31;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 24;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 24;" f
@@ -5698,12 +5698,12 @@ zoneOfRect src/Dodge/Zoning/Base.hs 30;" f
zoneOfSeg src/Dodge/Zoning/Base.hs 49;" f zoneOfSeg src/Dodge/Zoning/Base.hs 49;" f
zoneOfSegSet src/Dodge/Zoning/Base.hs 53;" f zoneOfSegSet src/Dodge/Zoning/Base.hs 53;" f
zoneOfSight src/Dodge/Zoning/World.hs 9;" f zoneOfSight src/Dodge/Zoning/World.hs 9;" f
zoneOfWl src/Dodge/Zoning/Wall.hs 55;" f zoneOfWl src/Dodge/Zoning/Wall.hs 54;" f
zonePn src/Dodge/Zoning/Pathing.hs 32;" f zonePn src/Dodge/Zoning/Pathing.hs 32;" f
zoneWall src/Dodge/Zoning/Wall.hs 65;" f zoneWall src/Dodge/Zoning/Wall.hs 64;" f
zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f
zonesExtract src/Dodge/Zoning/Base.hs 62;" f zonesExtract src/Dodge/Zoning/Base.hs 62;" f
zoomFloatingCamera src/Dodge/Update/Camera.hs 77;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 78;" f
zoomInLongGun src/Dodge/Update/Scroll.hs 103;" f zoomInLongGun src/Dodge/Update/Scroll.hs 103;" f
zoomOutLongGun src/Dodge/Update/Scroll.hs 111;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 111;" f
zoomScope src/Dodge/Item/Scope.hs 32;" f zoomScope src/Dodge/Item/Scope.hs 32;" f