Hack solution to path graph space leak: evaluate all edge obstacles

This commit is contained in:
2025-10-26 11:38:22 +00:00
parent b8536e2929
commit c55c3e874d
9 changed files with 19608 additions and 399694 deletions
+40 -40
View File
@@ -1,42 +1,42 @@
X_RANGE 23.19 X_RANGE 11.40
Y_RANGE 14888520.00 Y_RANGE 20574456.00
ORDER OTHER 1 ORDER OTHER 1
ORDER (143425)#..\/#./rememberSounds/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates/c... 2 ORDER (13951)updateEdgeWallObs 2
ORDER (143174)updatePastWorlds/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSp... 3 ORDER (14169)updateDisplaySections,updateEdgeWallObs 3
ORDER (143513)ix/#..\/#./updateExpBarrel/updateBarreloid.\/updateBarreloid/updateCreature'/updateCreature/dima... 4 ORDER (14505)SYSTEM,updateDisplaySections,doDrawing',colCrsWalls,updateEdgeWallObs 4
ORDER (146310)#..\/#./mcApplyDamage/updateMachine/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUp... 5 ORDER (13997)updateEdgeWallObs 5
ORDER (143439)ix/#..\/#./performActions/updateCreature'.\/updateCreature'/updateCreature/dimap/dimap/_Wrapped'... 6 ORDER (13996)updateEdgeWallObs 6
ORDER (143432)#..\/#./targetYouWhenCognizant/chaseCritInternal/ix/updateCreature'.\/updateCreature'/updateCrea... 7 ORDER (14223)SYSTEM,updateDisplaySections,updateEdgeWallObs 7
ORDER (144727)ix.\/ix/#..\/#./moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functiona... 8 ORDER (14009)updateEdgeWallObs 8
ORDER (149438)#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/upd... 9 ORDER (14027)updateEdgeWallObs,ix 9
ORDER (138578)zoneIncPe.f/zoneIncPe/#..\/#./generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/... 10 ORDER (13964)SYSTEM,updateEdgeWallObs 10
ORDER (144742)moveWall.newwl/moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functional... 11 ORDER (13953)updateEdgeWallObs 11
ORDER (145015)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 12 ORDER (14086)updateEdgeWallObs,ix 12
ORDER (143414)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 13 ORDER (14099)updateEdgeWallObs,ix 13
ORDER (144747)each/#..\/#./taintedDot/each/doorLerp.wlposs/doorLerp.f/doorLerp/updateDoor/updateDoors/function... 14 ORDER (14085)updateEdgeWallObs,ix 14
ORDER (145066)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 15 ORDER (14030)updateEdgeWallObs,ix 15
ORDER (144970)primitive/basicUnsafeCopy/ix.\/ix/updateEdge/updateEdgeWallObs/updateEdgesWall'/updateEdgesWall/... 16 ORDER (14175)SYSTEM,updateDisplaySections,updateEdgeWallObs 16
ORDER (143493)ix/checkDeath'.tocr/#..\/#./checkDeath'/checkDeath/crUpdate/updateCreature'.\/updateCreature'/up... 17 ORDER (2)SYSTEM 17
ORDER (144815)each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/updateDoors/functionalUp... 18 ORDER (13952)SYSTEM,updateEdgeWallObs 18
ORDER (143191)#..\/#./zoneCreatures/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRen... 19 ORDER (13941)updateEdgeWallObs 19
ORDER (149444)_xy/#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor... 20 ORDER (14018)updateEdgeWallObs,ix 20
SHADE OTHER 0.00 SHADE OTHER 0.00
SHADE (143425)#..\/#./rememberSounds/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates/c... 0.00 SHADE (13951)updateEdgeWallObs 0.00
SHADE (143174)updatePastWorlds/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSp... 0.00 SHADE (14169)updateDisplaySections,updateEdgeWallObs 0.00
SHADE (143513)ix/#..\/#./updateExpBarrel/updateBarreloid.\/updateBarreloid/updateCreature'/updateCreature/dima... 0.00 SHADE (14505)SYSTEM,updateDisplaySections,doDrawing',colCrsWalls,updateEdgeWallObs 0.00
SHADE (146310)#..\/#./mcApplyDamage/updateMachine/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUp... 0.10 SHADE (13997)updateEdgeWallObs 0.10
SHADE (143439)ix/#..\/#./performActions/updateCreature'.\/updateCreature'/updateCreature/dimap/dimap/_Wrapped'... 0.10 SHADE (13996)updateEdgeWallObs 0.10
SHADE (143432)#..\/#./targetYouWhenCognizant/chaseCritInternal/ix/updateCreature'.\/updateCreature'/updateCrea... 0.10 SHADE (14223)SYSTEM,updateDisplaySections,updateEdgeWallObs 0.10
SHADE (144727)ix.\/ix/#..\/#./moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functiona... 0.10 SHADE (14009)updateEdgeWallObs 0.10
SHADE (149438)#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/upd... 0.00 SHADE (14027)updateEdgeWallObs,ix 0.00
SHADE (138578)zoneIncPe.f/zoneIncPe/#..\/#./generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/... 0.00 SHADE (13964)SYSTEM,updateEdgeWallObs 0.00
SHADE (144742)moveWall.newwl/moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functional... 0.00 SHADE (13953)updateEdgeWallObs 0.00
SHADE (145015)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 0.00 SHADE (14086)updateEdgeWallObs,ix 0.00
SHADE (143414)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 0.05 SHADE (14099)updateEdgeWallObs,ix 0.05
SHADE (144747)each/#..\/#./taintedDot/each/doorLerp.wlposs/doorLerp.f/doorLerp/updateDoor/updateDoors/function... 0.05 SHADE (14085)updateEdgeWallObs,ix 0.05
SHADE (145066)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 0.05 SHADE (14030)updateEdgeWallObs,ix 0.05
SHADE (144970)primitive/basicUnsafeCopy/ix.\/ix/updateEdge/updateEdgeWallObs/updateEdgesWall'/updateEdgesWall/... 0.05 SHADE (14175)SYSTEM,updateDisplaySections,updateEdgeWallObs 0.05
SHADE (143493)ix/checkDeath'.tocr/#..\/#./checkDeath'/checkDeath/crUpdate/updateCreature'.\/updateCreature'/up... 0.10 SHADE (2)SYSTEM 0.10
SHADE (144815)each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/updateDoors/functionalUp... 0.10 SHADE (13952)SYSTEM,updateEdgeWallObs 0.10
SHADE (143191)#..\/#./zoneCreatures/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRen... 0.10 SHADE (13941)updateEdgeWallObs 0.10
SHADE (149444)_xy/#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor... 0.10 SHADE (14018)updateEdgeWallObs,ix 0.10
+18961 -371594
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+510 -27943
View File
File diff suppressed because it is too large Load Diff
+6 -8
View File
@@ -209,11 +209,12 @@ drawPathBetween u = concat $ do
let nodepos = (`getNodePos` w) let nodepos = (`getNodePos` w)
nodelist = makePathBetween sp ep w nodelist = makePathBetween sp ep w
return . setLayer DebugLayer $ return . setLayer DebugLayer $
color rose (foldMap (arrowPath . mapMaybe nodepos) nodelist) --color rose (foldMap (arrowPath . mapMaybe nodepos) nodelist)
color rose (foldMap (arrowPath . map nodepos) nodelist)
<> drawCrossCol green sp <> drawCrossCol green sp
<> drawCrossCol cyan ep <> drawCrossCol cyan ep
<> foldMap (color green . arrow sp) (nodepos =<< walkableNodeNear w sp) <> foldMap (color green . arrow sp) (nodepos <$> walkableNodeNear w sp)
<> foldMap (color cyan . flip arrow ep) (nodepos =<< walkableNodeNear w ep) <> foldMap (color cyan . flip arrow ep) (nodepos <$> walkableNodeNear w ep)
<> foldMap (color orange . arrow sp) (pointTowardsImpulse sp ep w) <> foldMap (color orange . arrow sp) (pointTowardsImpulse sp ep w)
where where
w = u ^. uvWorld w = u ^. uvWorld
@@ -403,14 +404,11 @@ drawWlIDs w = setLayer FixedCoordLayer $ foldMap f (w ^. cWorld . lWorld . walls
drawPathing :: Config -> World -> Picture drawPathing :: Config -> World -> Picture
drawPathing cfig w = setLayer DebugLayer $ ifoldMap f $ w ^. cWorld . incGraph drawPathing cfig w = setLayer DebugLayer $ ifoldMap f $ w ^. cWorld . incGraph
where where
inodes = w ^. cWorld . incNode inode i = w ^?! cWorld . incNode . ix i
--f i = foldMap (g i)
--g i (j,se) = edgeToPic (screenPolygon cfig (w ^.wCam))
-- (inodes ^?! ix i) (inodes ^?! ix j) (se ^. seObstacles)
f :: Int -> IM.IntMap SimpleEdge -> Picture f :: Int -> IM.IntMap SimpleEdge -> Picture
f i = ifoldMap (g i) f i = ifoldMap (g i)
g i j se = edgeToPic (screenPolygon cfig (w ^.wCam)) g i j se = edgeToPic (screenPolygon cfig (w ^.wCam))
(inodes ^?! ix i) (inodes ^?! ix j) (se ^. seObstacles) (inode i) (inode j) (se ^. seObstacles)
edgeToPic :: [Point2] -> Point2 -> Point2 -> S.Set EdgeObstacle -> Picture edgeToPic :: [Point2] -> Point2 -> Point2 -> S.Set EdgeObstacle -> Picture
edgeToPic poly sp ep pe edgeToPic poly sp ep pe
+4 -16
View File
@@ -8,7 +8,7 @@ module Dodge.Path (
walkableNodeNear, walkableNodeNear,
snapToGrid, snapToGrid,
pairsToIncGraph, pairsToIncGraph,
updateEdge, -- updateEdge,
getEdgesCrossing, getEdgesCrossing,
) where ) where
@@ -35,16 +35,8 @@ import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import Linear import Linear
getNodePos :: Int -> World -> Maybe Point2 getNodePos :: Int -> World -> Point2
getNodePos i w = w ^? cWorld . incNode . ix i getNodePos i w = w ^?! cWorld . incNode . ix i
--getEdgesCrossingPoly :: [Point2] -> World -> [(Int,Int)]
--getEdgesCrossingPoly ps w = filter tcross $ zonesExtract (w ^. incEdgeZoning)
-- $ Set.toList $ foldMap (uncurry $ zoneOfSegSet peZoneSize) $ pairs
-- where
-- pairs = loopPairs ps
-- tcross (i,j) = any (isJust . uncurry (intersectSegSeg (f i) (f j))) pairs
-- f i = w ^?! cWorld . incNode . ix i
getEdgesCrossing :: Point2 -> Point2 -> World -> [(Int,Int)] getEdgesCrossing :: Point2 -> Point2 -> World -> [(Int,Int)]
getEdgesCrossing s e w = filter inedgecrosses $ nearSeg peZoneSize _incEdgeZoning s e w getEdgesCrossing s e w = filter inedgecrosses $ nearSeg peZoneSize _incEdgeZoning s e w
@@ -67,10 +59,6 @@ makePathUsing t s e w = do
let h i = distance (getn nb) (getn i) let h i = distance (getn nb) (getn i)
(na :) . snd <$> AS.aStarAssoc getes h (== nb) na (na :) . snd <$> AS.aStarAssoc getes h (== nb) na
where where
-- g (i, SimpleEdge c o)
-- | t o = Just (i, c)
-- | otherwise = Nothing
--getes i = mapMaybe g $ w ^?! cWorld . incGraph . ix i
getes i = IM.toList getes i = IM.toList
. IM.map (^. seDist) . IM.map (^. seDist)
. IM.filter (^. seObstacles . to t) $ w ^?! cWorld . incGraph . ix i . IM.filter (^. seObstacles . to t) $ w ^?! cWorld . incGraph . ix i
@@ -98,7 +86,7 @@ smallSnailInt2 =
[V2 x y | x <- [-2 .. 2], y <- [-2 .. 2]] [V2 x y | x <- [-2 .. 2], y <- [-2 .. 2]]
makePathBetweenPs :: Point2 -> Point2 -> World -> Maybe [Point2] makePathBetweenPs :: Point2 -> Point2 -> World -> Maybe [Point2]
makePathBetweenPs a b w = traverse (`getNodePos` w) =<< makePathBetween a b w makePathBetweenPs a b w = fmap (`getNodePos` w) <$> makePathBetween a b w
-- assumes that pathfinding is symmetric -- assumes that pathfinding is symmetric
pointTowardsImpulse :: Point2 -> Point2 -> World -> Maybe Point2 pointTowardsImpulse :: Point2 -> Point2 -> World -> Maybe Point2
+3 -1
View File
@@ -29,9 +29,11 @@ import qualified IntMapHelp as IM
import qualified Data.Map.Strict as M import qualified Data.Map.Strict as M
import NewInt import NewInt
import Data.Foldable import Data.Foldable
import Data.Monoid
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit _ = [] testStringInit u = [show $ foldMap (foldMap (Sum . length . (^. seObstacles)))
$ u ^. uvWorld . cWorld . incGraph]
-- foldMap prettyShort $ u ^? uvWorld . cWorld . lWorld . machines . ix 0 . mcType . _McProxSensor -- foldMap prettyShort $ u ^? uvWorld . cWorld . lWorld . machines . ix 0 . mcType . _McProxSensor
--testStringInit u = foldMap prettyShort $ u ^.. uvWorld . cWorld . lWorld . machines --testStringInit u = foldMap prettyShort $ u ^.. uvWorld . cWorld . lWorld . machines
+15 -21
View File
@@ -1,47 +1,41 @@
module Dodge.Update.WallDamage (updateWallDamages, updateEdgesWall) where module Dodge.Update.WallDamage (updateWallDamages, updateEdgesWall) where
import Dodge.Wall.Pathing
import Geometry.Data
import Control.Lens import Control.Lens
import Data.Foldable import Data.Foldable
import Data.Maybe import Data.Maybe
import qualified Data.Set as S import qualified Data.Set as S
import Dodge.Data.World import Dodge.Data.World
import Dodge.Path
import Dodge.Wall.Damage import Dodge.Wall.Damage
import Dodge.Wall.Pathing
import Dodge.WorldEvent.ThingsHit import Dodge.WorldEvent.ThingsHit
import Dodge.Zoning.Base import Dodge.Zoning.Base
import Geometry.Data
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
updateWallDamages :: World -> World updateWallDamages :: World -> World
updateWallDamages w = updateWallDamages w =
let (is, w') = let (is, w') = IM.foldlWithKey' f (mempty, w) (w ^. cWorld . lWorld . wallDamages)
IM.foldlWithKey' f (mempty, w) (w ^. cWorld . lWorld . wallDamages) in updateEdgesWall is w' & cWorld . lWorld . wallDamages .~ IM.empty
in updateEdgesWall is
w'
& cWorld . lWorld . wallDamages .~ IM.empty
where where
f isw k dams = fromMaybe isw $ do f isw k dams = fromMaybe isw $ do
wl <- isw ^? _2 . cWorld . lWorld . walls . ix k wl <- isw ^? _2 . cWorld . lWorld . walls . ix k
return $ foldl' (flip (`damageWall` wl)) isw dams return $ foldl' (flip (`damageWall` wl)) isw dams
updateEdgesWall :: S.Set Int2 -> World -> World updateEdgesWall :: S.Set Int2 -> World -> World
updateEdgesWall is w = updateEdgesWall' updateEdgesWall is w =
(zonesExtract (w ^. incEdgeZoning & each . each %~ S.fromList) is) w updateEdgesWall'
(zonesExtract (w ^. incEdgeZoning & each . each %~ S.fromList) is)
w
updateEdgesWall' :: S.Set (Int, Int) -> World -> World updateEdgesWall' :: S.Set (Int, Int) -> World -> World
updateEdgesWall' = flip $ foldl' updateEdgeWallObs updateEdgesWall' = flip $ foldl' updateEdgeWallObs
--updateEdgeWallObs :: World -> (Int, Int) -> World
--updateEdgeWallObs w (i, j) = w
updateEdgeWallObs :: World -> (Int, Int) -> World updateEdgeWallObs :: World -> (Int, Int) -> World
updateEdgeWallObs w (i, j) = fromMaybe w $ do updateEdgeWallObs w (i, j) = w & cWorld . incGraph . ix i . ix j . seObstacles %~ f wlflags
s <- getNodePos i w
e <- getNodePos j w
let wlflags = foldMap (^. _2 . to getWallPathing) $ wlsHitUnsorted s e w
return $ w & cWorld . incGraph %~ updateEdge (f wlflags) (i, j)
where where
-- f x _ = S.map WallObstacle x s = w ^?! cWorld . incNode . ix i
f x y = S.map WallObstacle x `S.union` e = w ^?! cWorld . incNode . ix j
(y S.\\ (S.fromList $ map WallObstacle [minBound..maxBound])) wlflags = foldMap (^. _2 . to getWallPathing) $ wlsHitUnsorted s e w
f x =
(`S.union` S.map WallObstacle x)
. (S.\\ (S.fromList $ map WallObstacle [minBound .. maxBound]))
+69 -71
View File
@@ -751,11 +751,9 @@ MiniGunFlare src/Dodge/Data/Muzzle.hs 32;" C
ModIDID src/Dodge/Data/Modification.hs 21;" C ModIDID src/Dodge/Data/Modification.hs 21;" C
ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C
Modification src/Dodge/Data/Modification.hs 12;" t Modification src/Dodge/Data/Modification.hs 12;" t
MountedLS src/Dodge/Data/MountedObject.hs 12;" C MountedLight src/Dodge/Data/MountedObject.hs 12;" C
MountedLight src/Dodge/Data/MountedObject.hs 14;" C
MountedObject src/Dodge/Data/MountedObject.hs 11;" t MountedObject src/Dodge/Data/MountedObject.hs 11;" t
MountedProp src/Dodge/Data/MountedObject.hs 13;" C MountedSPic src/Dodge/Data/MountedObject.hs 13;" C
MountedSPic src/Dodge/Data/MountedObject.hs 15;" C
MouseAiming src/Dodge/Data/Input.hs 15;" C MouseAiming src/Dodge/Data/Input.hs 15;" C
MouseContext src/Dodge/Data/Input.hs 13;" t MouseContext src/Dodge/Data/Input.hs 13;" t
MouseGameRotate src/Dodge/Data/Input.hs 29;" C MouseGameRotate src/Dodge/Data/Input.hs 29;" C
@@ -2510,7 +2508,7 @@ airlockCrystal src/Dodge/Room/Airlock.hs 238;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 102;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 102;" f
airlockSimple src/Dodge/Room/Airlock.hs 127;" f airlockSimple src/Dodge/Room/Airlock.hs 127;" f
airlockZ src/Dodge/Room/Airlock.hs 155;" f airlockZ src/Dodge/Room/Airlock.hs 155;" f
allVisibleWalls src/Dodge/Base/Collide.hs 223;" f allVisibleWalls src/Dodge/Base/Collide.hs 224;" f
alongSegBy src/Geometry.hs 40;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f
@@ -2528,11 +2526,11 @@ angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 58;" f angleVV src/Geometry/Vector.hs 58;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f angleVV3 src/Geometry/Vector3D.hs 122;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 341;" f anythingHitCirc src/Dodge/Base/Collide.hs 342;" f
applyCME src/Dodge/HeldUse.hs 369;" f applyCME src/Dodge/HeldUse.hs 369;" f
applyClip src/Dodge/Debug.hs 96;" f applyClip src/Dodge/Debug.hs 96;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyEventIO src/Loop.hs 89;" f applyEventIO src/Loop.hs 90;" f
applyGravityPU src/Dodge/Projectile/Update.hs 40;" f applyGravityPU src/Dodge/Projectile/Update.hs 40;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f
applyInvLock src/Dodge/HeldUse.hs 428;" f applyInvLock src/Dodge/HeldUse.hs 428;" f
@@ -2711,8 +2709,8 @@ cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
calcTexCoord src/Tile.hs 19;" f calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 327;" f canSee src/Dodge/Base/Collide.hs 328;" f
canSeeIndirect src/Dodge/Base/Collide.hs 334;" f canSeeIndirect src/Dodge/Base/Collide.hs 335;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f
capacitor src/Dodge/Item/Ammo.hs 69;" f capacitor src/Dodge/Item/Ammo.hs 69;" f
cardEightVec src/Dodge/Base/CardinalPoint.hs 17;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 17;" f
@@ -2766,12 +2764,12 @@ chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f
chooseMovementLtAuto src/Dodge/CreatureEffect.hs 77;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 77;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 60;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 60;" f
circHitWall src/Dodge/Base/Collide.hs 240;" f circHitWall src/Dodge/Base/Collide.hs 241;" f
circInPolygon src/Geometry/Polygon.hs 102;" f circInPolygon src/Geometry/Polygon.hs 102;" f
circOnAnyCr src/Dodge/Base/Collide.hs 291;" f circOnAnyCr src/Dodge/Base/Collide.hs 292;" f
circOnSeg src/Geometry.hs 101;" f circOnSeg src/Geometry.hs 101;" f
circOnSegNoEndpoints src/Geometry.hs 91;" f circOnSegNoEndpoints src/Geometry.hs 91;" f
circOnSomeWall src/Dodge/Base/Collide.hs 285;" f circOnSomeWall src/Dodge/Base/Collide.hs 286;" f
circle src/Picture/Base.hs 180;" f circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f circleSolid src/Picture/Base.hs 164;" f
@@ -2825,7 +2823,7 @@ collide3Floors src/Dodge/Base/Collide.hs 141;" f
collide3Wall src/Dodge/Base/Collide.hs 155;" f collide3Wall src/Dodge/Base/Collide.hs 155;" f
collide3Walls src/Dodge/Base/Collide.hs 136;" f collide3Walls src/Dodge/Base/Collide.hs 136;" f
collide3WallsFloor src/Dodge/Base/Collide.hs 98;" f collide3WallsFloor src/Dodge/Base/Collide.hs 98;" f
collideCircWalls src/Dodge/Base/Collide.hs 252;" f collideCircWalls src/Dodge/Base/Collide.hs 253;" f
collidePoint src/Dodge/Base/Collide.hs 52;" f collidePoint src/Dodge/Base/Collide.hs 52;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 188;" f collidePointTestFilter src/Dodge/Base/Collide.hs 188;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 202;" f collidePointWallsFilter src/Dodge/Base/Collide.hs 202;" f
@@ -2952,7 +2950,7 @@ crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f
crossPic src/Dodge/Render/Label.hs 27;" f crossPic src/Dodge/Render/Label.hs 27;" f
crossProd src/Geometry/Vector3D.hs 41;" f crossProd src/Geometry/Vector3D.hs 41;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 66;" f crsHit src/Dodge/WorldEvent/ThingsHit.hs 66;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 155;" f crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 153;" f
crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 77;" f crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 77;" f
crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f
crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f
@@ -3094,7 +3092,7 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f
denormalEdges src/Polyhedra.hs 136;" f denormalEdges src/Polyhedra.hs 136;" f
destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f
destroyBlock src/Dodge/Block.hs 17;" f destroyBlock src/Dodge/Block.hs 17;" f
destroyDoor src/Dodge/DrWdWd.hs 76;" f destroyDoor src/Dodge/DrWdWd.hs 75;" f
destroyInvItem src/Dodge/Inventory.hs 40;" f destroyInvItem src/Dodge/Inventory.hs 40;" f
destroyItem src/Dodge/Inventory.hs 62;" f destroyItem src/Dodge/Inventory.hs 62;" f
destroyLS src/Dodge/LightSource.hs 32;" f destroyLS src/Dodge/LightSource.hs 32;" f
@@ -3102,8 +3100,8 @@ destroyLSFlashAt src/Dodge/LightSource.hs 42;" f
destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f
destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/DrWdWd.hs 96;" f destroyMount src/Dodge/DrWdWd.hs 95;" f
destroyMounts src/Dodge/DrWdWd.hs 93;" f destroyMounts src/Dodge/DrWdWd.hs 92;" f
destroyProjectile src/Dodge/Projectile/Update.hs 108;" f destroyProjectile src/Dodge/Projectile/Update.hs 108;" f
detV src/Geometry/Vector.hs 94;" f detV src/Geometry/Vector.hs 94;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
@@ -3142,8 +3140,8 @@ doBarrelSpin src/Dodge/Projectile/Update.hs 157;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
doBounce src/Dodge/Base/Collide.hs 67;" f doBounce src/Dodge/Base/Collide.hs 67;" f
doButtonEvent src/Dodge/Button/Event.hs 9;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f
doConLoop src/Loop.hs 137;" f doConLoop src/Loop.hs 138;" f
doConLoop' src/Loop.hs 226;" f doConLoop' src/Loop.hs 227;" f
doCrAc src/Dodge/CreatureEffect.hs 38;" f doCrAc src/Dodge/CreatureEffect.hs 38;" f
doCrBl src/Dodge/CreatureEffect.hs 30;" f doCrBl src/Dodge/CreatureEffect.hs 30;" f
doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f
@@ -3204,7 +3202,7 @@ doWorldEvents src/Dodge/Update.hs 429;" f
doWorldPos src/Dodge/WorldPos.hs 10;" f doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 13;" f door src/Dodge/Room/Door.hs 13;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 44;" f doorBetween src/Dodge/Placement/Instance/Door.hs 44;" f
doorLerp src/Dodge/DrWdWd.hs 47;" f doorLerp src/Dodge/DrWdWd.hs 46;" f
dotV src/Geometry/Vector.hs 76;" f dotV src/Geometry/Vector.hs 76;" f
dotV3 src/Geometry/Vector3D.hs 119;" f dotV3 src/Geometry/Vector3D.hs 119;" f
doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f
@@ -3224,7 +3222,7 @@ drawArrowDown src/Dodge/Render/Picture.hs 221;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 354;" f drawBoundingBox src/Dodge/Debug/Picture.hs 355;" f
drawBullet src/Dodge/Render/ShapePicture.hs 135;" f drawBullet src/Dodge/Render/ShapePicture.hs 135;" f
drawButton src/Dodge/Button/Draw.hs 10;" f drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
@@ -3235,7 +3233,7 @@ drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 269;" f drawCombFilter src/Dodge/Render/Picture.hs 269;" f
drawCombineInventory src/Dodge/Render/HUD.hs 182;" f drawCombineInventory src/Dodge/Render/HUD.hs 182;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f
drawCoord src/Dodge/Debug/Picture.hs 382;" f drawCoord src/Dodge/Debug/Picture.hs 383;" f
drawCrInfo src/Dodge/Debug.hs 135;" f drawCrInfo src/Dodge/Debug.hs 135;" f
drawCrInfo' src/Dodge/Debug.hs 130;" f drawCrInfo' src/Dodge/Debug.hs 130;" f
drawCreature src/Dodge/Render/ShapePicture.hs 71;" f drawCreature src/Dodge/Render/ShapePicture.hs 71;" f
@@ -3244,7 +3242,7 @@ drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f
drawCursorAt src/Dodge/Render/List.hs 72;" f drawCursorAt src/Dodge/Render/List.hs 72;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f
drawDDATest src/Dodge/Debug/Picture.hs 309;" f drawDDATest src/Dodge/Debug/Picture.hs 310;" f
drawDamSensor src/Dodge/Machine/Draw.hs 27;" f drawDamSensor src/Dodge/Machine/Draw.hs 27;" f
drawDebug src/Dodge/Debug.hs 173;" f drawDebug src/Dodge/Debug.hs 173;" f
drawDrag src/Dodge/Render/Picture.hs 200;" f drawDrag src/Dodge/Render/Picture.hs 200;" f
@@ -3258,7 +3256,7 @@ drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 127;" f drawEquipment src/Dodge/Creature/Picture.hs 127;" f
drawExamineInventory src/Dodge/Render/HUD.hs 198;" f drawExamineInventory src/Dodge/Render/HUD.hs 198;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 276;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 277;" f
drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f
drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f
drawForceField src/Dodge/Wall/Draw.hs 13;" f drawForceField src/Dodge/Wall/Draw.hs 13;" f
@@ -3266,8 +3264,8 @@ drawGapPlus src/Dodge/Render/Picture.hs 280;" f
drawGib src/Dodge/Prop/Draw.hs 31;" f drawGib src/Dodge/Prop/Draw.hs 31;" f
drawHUD src/Dodge/Render/HUD.hs 51;" f drawHUD src/Dodge/Render/HUD.hs 51;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f
drawInspectWall src/Dodge/Debug/Picture.hs 253;" f drawInspectWall src/Dodge/Debug/Picture.hs 254;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 241;" f drawInspectWalls src/Dodge/Debug/Picture.hs 242;" f
drawInventory src/Dodge/Render/HUD.hs 58;" f drawInventory src/Dodge/Render/HUD.hs 58;" f
drawItemChildrenConnect src/Dodge/Render/HUD.hs 329;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 329;" f
drawItemConnections src/Dodge/Render/HUD.hs 319;" f drawItemConnections src/Dodge/Render/HUD.hs 319;" f
@@ -3290,11 +3288,11 @@ drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f
drawMouseCursor src/Dodge/Render/Picture.hs 85;" f drawMouseCursor src/Dodge/Render/Picture.hs 85;" f
drawMouseOver src/Dodge/Render/HUD.hs 109;" f drawMouseOver src/Dodge/Render/HUD.hs 109;" f
drawMousePosition src/Dodge/Debug/Picture.hs 372;" f drawMousePosition src/Dodge/Debug/Picture.hs 373;" f
drawOptions src/Dodge/Render/MenuScreen.hs 22;" f drawOptions src/Dodge/Render/MenuScreen.hs 22;" f
drawPathBetween src/Dodge/Debug/Picture.hs 201;" f drawPathBetween src/Dodge/Debug/Picture.hs 201;" f
drawPathEdge src/Dodge/Debug/Picture.hs 266;" f drawPathEdge src/Dodge/Debug/Picture.hs 267;" f
drawPathing src/Dodge/Debug/Picture.hs 403;" f drawPathing src/Dodge/Debug/Picture.hs 404;" f
drawPlus src/Dodge/Render/Picture.hs 165;" f drawPlus src/Dodge/Render/Picture.hs 165;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
@@ -3334,15 +3332,15 @@ drawTurret src/Dodge/Machine/Draw.hs 76;" f
drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 212;" f drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 212;" f
drawWall src/Dodge/Wall/Draw.hs 9;" f drawWall src/Dodge/Wall/Draw.hs 9;" f
drawWallFace src/Dodge/Debug/Picture.hs 73;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f
drawWallSearchRays src/Dodge/Debug/Picture.hs 318;" f drawWallSearchRays src/Dodge/Debug/Picture.hs 319;" f
drawWallsNearCursor src/Dodge/Debug/Picture.hs 230;" f drawWallsNearCursor src/Dodge/Debug/Picture.hs 231;" f
drawWallsNearSegment src/Dodge/Debug/Picture.hs 130;" f drawWallsNearSegment src/Dodge/Debug/Picture.hs 130;" f
drawWallsNearYou src/Dodge/Debug/Picture.hs 221;" f drawWallsNearYou src/Dodge/Debug/Picture.hs 222;" f
drawWeapon src/Dodge/Creature/Volition.hs 15;" f drawWeapon src/Dodge/Creature/Volition.hs 15;" f
drawWlIDs src/Dodge/Debug/Picture.hs 390;" f drawWlIDs src/Dodge/Debug/Picture.hs 391;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 298;" f drawZoneCirc src/Dodge/Debug/Picture.hs 299;" f
drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 291;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 292;" f
dropAll src/Dodge/Creature/Update.hs 129;" f dropAll src/Dodge/Creature/Update.hs 129;" f
dropInventoryPath src/Dodge/HeldUse.hs 1351;" f dropInventoryPath src/Dodge/HeldUse.hs 1351;" f
dropItem src/Dodge/Creature/Action.hs 155;" f dropItem src/Dodge/Creature/Action.hs 155;" f
@@ -3373,7 +3371,7 @@ ebEffect src/Dodge/EnergyBall.hs 45;" f
ebFlicker src/Dodge/EnergyBall.hs 70;" f ebFlicker src/Dodge/EnergyBall.hs 70;" f
ebtToDamage src/Dodge/EnergyBall.hs 93;" f ebtToDamage src/Dodge/EnergyBall.hs 93;" f
edgeFormatting src/Dodge/Combine/Graph.hs 129;" f edgeFormatting src/Dodge/Combine/Graph.hs 129;" f
edgeToPic src/Dodge/Debug/Picture.hs 415;" f edgeToPic src/Dodge/Debug/Picture.hs 416;" f
effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnEquip src/Dodge/Equipment.hs 32;" f
effectOnRemove src/Dodge/Equipment.hs 19;" f effectOnRemove src/Dodge/Equipment.hs 19;" f
eitType src/Dodge/Data/EquipType.hs 15;" f eitType src/Dodge/Data/EquipType.hs 15;" f
@@ -3548,7 +3546,7 @@ getCrsFromRooms src/Dodge/Room/Tutorial.hs 359;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 346;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 346;" f
getDebugMouseOver src/Dodge/Update.hs 377;" f getDebugMouseOver src/Dodge/Update.hs 377;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getEdgesCrossing src/Dodge/Path.hs 49;" f getEdgesCrossing src/Dodge/Path.hs 41;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
@@ -3634,10 +3632,10 @@ handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 19;" f handleTextInput src/Dodge/Event/Input.hs 19;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f
hardQuit src/Dodge/Concurrent.hs 32;" f hardQuit src/Dodge/Concurrent.hs 32;" f
hasButtonLOS src/Dodge/Base/Collide.hs 310;" f hasButtonLOS src/Dodge/Base/Collide.hs 311;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f
hasLOS src/Dodge/Base/Collide.hs 303;" f hasLOS src/Dodge/Base/Collide.hs 304;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 319;" f hasLOSIndirect src/Dodge/Base/Collide.hs 320;" f
hat src/Dodge/Item/Equipment.hs 76;" f hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" f head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
@@ -3781,7 +3779,7 @@ isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 77;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f
isCornerLink src/Dodge/RoomLink.hs 65;" f isCornerLink src/Dodge/RoomLink.hs 65;" f
isElectrical src/Dodge/Machine/Update.hs 84;" f isElectrical src/Dodge/Machine/Update.hs 84;" f
isFlyable src/Dodge/WorldEvent/ThingsHit.hs 163;" f isFlyable src/Dodge/WorldEvent/ThingsHit.hs 161;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 161;" f isInLnk src/Dodge/PlacementSpot.hs 161;" f
isJust' src/MaybeHelp.hs 27;" f isJust' src/MaybeHelp.hs 27;" f
@@ -3802,7 +3800,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
isVowel src/StringHelp.hs 8;" f isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/WorldEvent/ThingsHit.hs 170;" f isWalkable src/Dodge/WorldEvent/ThingsHit.hs 168;" f
isoMatrix src/MatrixHelper.hs 30;" f isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 22;" f isotriBWH src/Geometry/Polygon.hs 22;" f
itDim src/Dodge/Item/InvSize.hs 21;" f itDim src/Dodge/Item/InvSize.hs 21;" f
@@ -4041,9 +4039,9 @@ makeIntInterval src/Dodge/Zoning/Base.hs 37;" f
makeMovingEB src/Dodge/EnergyBall.hs 60;" f makeMovingEB src/Dodge/EnergyBall.hs 60;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 656;" f makeMuzzleFlare src/Dodge/HeldUse.hs 656;" f
makeParagraph src/Justify.hs 6;" f makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 85;" f makePathBetween src/Dodge/Path.hs 67;" f
makePathBetweenPs src/Dodge/Path.hs 106;" f makePathBetweenPs src/Dodge/Path.hs 88;" f
makePathUsing src/Dodge/Path.hs 69;" f makePathUsing src/Dodge/Path.hs 55;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" f makeRect src/Grid.hs 82;" f
makeSelectionListPictures src/Dodge/Render/List.hs 66;" f makeSelectionListPictures src/Dodge/Render/List.hs 66;" f
@@ -4240,8 +4238,8 @@ numSelfTree' src/Dodge/Tree/Compose.hs 110;" f
numShads src/Picture/Data.hs 40;" f numShads src/Picture/Data.hs 40;" f
numSubElements src/Shader/Parameters.hs 39;" f numSubElements src/Shader/Parameters.hs 39;" f
numTraversable src/TreeHelp.hs 184;" f numTraversable src/TreeHelp.hs 184;" f
obstacleColor src/Dodge/Debug/Picture.hs 269;" f obstacleColor src/Dodge/Debug/Picture.hs 270;" f
obstructPathsCrossing src/Dodge/Path.hs 135;" f obstructPathsCrossing src/Dodge/Path.hs 121;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
onEquipWristShield src/Dodge/Equipment.hs 37;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f
onRemoveWristShield src/Dodge/Equipment.hs 24;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f
@@ -4278,8 +4276,8 @@ overPos src/Picture/Base.hs 303;" f
overPosObj src/Shape.hs 277;" f overPosObj src/Shape.hs 277;" f
overPosSH src/Shape.hs 261;" f overPosSH src/Shape.hs 261;" f
overPosSP src/ShapePicture.hs 41;" f overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 229;" f overlapCircWalls src/Dodge/Base/Collide.hs 230;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 271;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 272;" f
overlapSegCrs src/Dodge/Base/Collide.hs 59;" f overlapSegCrs src/Dodge/Base/Collide.hs 59;" f
overlapSegWalls src/Dodge/Base/Collide.hs 211;" f overlapSegWalls src/Dodge/Base/Collide.hs 211;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 179;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 179;" f
@@ -4289,7 +4287,7 @@ p src/ShortShow.hs 48;" f
pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f
pairInPolys src/Dodge/Room/Path.hs 53;" f pairInPolys src/Dodge/Room/Path.hs 53;" f
pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 68;" f pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 68;" f
pairsToIncGraph src/Dodge/Path.hs 113;" f pairsToIncGraph src/Dodge/Path.hs 95;" f
pairsToIncidence src/Dodge/Graph.hs 20;" f pairsToIncidence src/Dodge/Graph.hs 20;" f
pairsToSCC src/Dodge/Graph.hs 32;" f pairsToSCC src/Dodge/Graph.hs 32;" f
paletteToColor src/Color.hs 58;" f paletteToColor src/Color.hs 58;" f
@@ -4297,7 +4295,7 @@ parseItem src/Dodge/Debug/Terminal.hs 62;" f
parseNum src/Dodge/Debug/Terminal.hs 77;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f
passthroughLockKeyLists src/Dodge/Floor.hs 120;" f passthroughLockKeyLists src/Dodge/Floor.hs 120;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 88;" f pathEdgeObstructed src/Dodge/Path.hs 70;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 525;" f pauseGame src/Dodge/Update/Input/InGame.hs 525;" f
pauseMenu src/Dodge/Menu.hs 59;" f pauseMenu src/Dodge/Menu.hs 59;" f
@@ -4372,7 +4370,7 @@ pointInOrOnPolygon src/Geometry/Polygon.hs 78;" f
pointInPoly src/Geometry/Polygon.hs 86;" f pointInPoly src/Geometry/Polygon.hs 86;" f
pointIsInCone src/Geometry.hs 375;" f pointIsInCone src/Geometry.hs 375;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 110;" f pointTowardsImpulse src/Dodge/Path.hs 92;" f
pointerToItem src/Dodge/Item/Location.hs 39;" f pointerToItem src/Dodge/Item/Location.hs 39;" f
pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerToItemID src/Dodge/Item/Location.hs 42;" f
pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f
@@ -4823,8 +4821,8 @@ setViewport src/Dodge/Render.hs 440;" f
setVol src/Dodge/Config.hs 47;" f setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f setWristShieldPos src/Dodge/Euse.hs 38;" f
setupConLoop src/Loop.hs 102;" f setupConLoop src/Loop.hs 103;" f
setupConLoop' src/Loop.hs 192;" f setupConLoop' src/Loop.hs 193;" f
setupEBO src/Shader/Compile.hs 188;" f setupEBO src/Shader/Compile.hs 188;" f
setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f
setupFramebuffer3GivenStencil src/Framebuffer/Setup.hs 62;" f setupFramebuffer3GivenStencil src/Framebuffer/Setup.hs 62;" f
@@ -4927,8 +4925,8 @@ slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f
slideWindow src/ListHelp.hs 80;" f slideWindow src/ListHelp.hs 80;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 156;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 160;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 173;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 177;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f smallBattery src/Dodge/Item/Ammo.hs 60;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
@@ -4939,11 +4937,11 @@ smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f
smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f
smallPillar src/Dodge/Room/Pillar.hs 37;" f smallPillar src/Dodge/Room/Pillar.hs 37;" f
smallRoom src/Dodge/Room/RunPast.hs 31;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f
smallSnailInt2 src/Dodge/Path.hs 100;" f smallSnailInt2 src/Dodge/Path.hs 82;" f
smg src/Dodge/Item/Held/Stick.hs 58;" f smg src/Dodge/Item/Held/Stick.hs 58;" f
smokeReducer src/Dodge/Item/Scope.hs 162;" f smokeReducer src/Dodge/Item/Scope.hs 162;" f
snailAround src/Dodge/Path.hs 97;" f snailAround src/Dodge/Path.hs 79;" f
snapToGrid src/Dodge/Path.hs 144;" f snapToGrid src/Dodge/Path.hs 130;" f
sndV2 src/Geometry/Data.hs 73;" f sndV2 src/Geometry/Data.hs 73;" f
sniperRifle src/Dodge/Item/Held/Rod.hs 44;" f sniperRifle src/Dodge/Item/Held/Rod.hs 44;" f
someCrits src/Dodge/LockAndKey.hs 120;" f someCrits src/Dodge/LockAndKey.hs 120;" f
@@ -4957,7 +4955,7 @@ soundMultiFrom src/Dodge/SoundLogic.hs 187;" f
soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f
soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f
soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 296;" f soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 296;" f
soundPic src/Dodge/Debug/Picture.hs 359;" f soundPic src/Dodge/Debug/Picture.hs 360;" f
soundStart src/Dodge/SoundLogic.hs 118;" f soundStart src/Dodge/SoundLogic.hs 118;" f
soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" f soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" f
soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
@@ -5035,7 +5033,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f
stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f
stopAllSounds src/Sound.hs 125;" f stopAllSounds src/Sound.hs 125;" f
stopBulletAt src/Dodge/Bullet.hs 200;" f stopBulletAt src/Dodge/Bullet.hs 200;" f
stopPushing src/Dodge/DrWdWd.hs 103;" f stopPushing src/Dodge/DrWdWd.hs 102;" f
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f
strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f
@@ -5317,10 +5315,10 @@ updateDoor src/Dodge/DrWdWd.hs 26;" f
updateDoors src/Dodge/Update.hs 311;" f updateDoors src/Dodge/Update.hs 311;" f
updateDust src/Dodge/Update.hs 823;" f updateDust src/Dodge/Update.hs 823;" f
updateDusts src/Dodge/Update.hs 673;" f updateDusts src/Dodge/Update.hs 673;" f
updateEdge src/Dodge/Path.hs 55;" f updateEdge src/Dodge/Path.hs 47;" f
updateEdgeWallObs src/Dodge/Update/WallDamage.hs 38;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 34;" f
updateEdgesWall src/Dodge/Update/WallDamage.hs 28;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 27;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 32;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 31;" f
updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f
updateEnergyBalls src/Dodge/Update.hs 661;" f updateEnergyBalls src/Dodge/Update.hs 661;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f
@@ -5401,7 +5399,7 @@ updateUniverseMid src/Dodge/Update.hs 157;" f
updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 16;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f
updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f
updateWheelEvents src/Dodge/Update.hs 415;" f updateWheelEvents src/Dodge/Update.hs 415;" f
updateWorldEventFlag src/Dodge/Update.hs 121;" f updateWorldEventFlag src/Dodge/Update.hs 121;" f
@@ -5462,18 +5460,18 @@ verticalPipe src/Dodge/Picture.hs 19;" f
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f 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 341;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f
viewBoundaries src/Dodge/Debug/Picture.hs 327;" f viewBoundaries src/Dodge/Debug/Picture.hs 328;" f
viewClipBounds src/Dodge/Debug/Picture.hs 336;" f viewClipBounds src/Dodge/Debug/Picture.hs 337;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 154;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 154;" f
violet src/Color.hs 21;" f violet src/Color.hs 21;" f
visibleWalls src/Dodge/Base/Collide.hs 215;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f
visionCheck src/Dodge/Creature/Perception.hs 152;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f
walkNozzle src/Dodge/HeldUse.hs 809;" f walkNozzle src/Dodge/HeldUse.hs 809;" f
walkableNodeNear src/Dodge/Path.hs 91;" f walkableNodeNear src/Dodge/Path.hs 73;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
@@ -5532,7 +5530,7 @@ wlSeeThroughDraw src/Dodge/Render/Walls.hs 50;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 138;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 138;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 148;" f wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 146;" f
wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 141;" f wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 141;" f
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f