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
Y_RANGE 14888520.00
X_RANGE 11.40
Y_RANGE 20574456.00
ORDER OTHER 1
ORDER (143425)#..\/#./rememberSounds/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates/c... 2
ORDER (143174)updatePastWorlds/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSp... 3
ORDER (143513)ix/#..\/#./updateExpBarrel/updateBarreloid.\/updateBarreloid/updateCreature'/updateCreature/dima... 4
ORDER (146310)#..\/#./mcApplyDamage/updateMachine/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUp... 5
ORDER (143439)ix/#..\/#./performActions/updateCreature'.\/updateCreature'/updateCreature/dimap/dimap/_Wrapped'... 6
ORDER (143432)#..\/#./targetYouWhenCognizant/chaseCritInternal/ix/updateCreature'.\/updateCreature'/updateCrea... 7
ORDER (144727)ix.\/ix/#..\/#./moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functiona... 8
ORDER (149438)#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/upd... 9
ORDER (138578)zoneIncPe.f/zoneIncPe/#..\/#./generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/... 10
ORDER (144742)moveWall.newwl/moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functional... 11
ORDER (145015)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 12
ORDER (143414)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 13
ORDER (144747)each/#..\/#./taintedDot/each/doorLerp.wlposs/doorLerp.f/doorLerp/updateDoor/updateDoors/function... 14
ORDER (145066)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 15
ORDER (144970)primitive/basicUnsafeCopy/ix.\/ix/updateEdge/updateEdgeWallObs/updateEdgesWall'/updateEdgesWall/... 16
ORDER (143493)ix/checkDeath'.tocr/#..\/#./checkDeath'/checkDeath/crUpdate/updateCreature'.\/updateCreature'/up... 17
ORDER (144815)each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/updateDoors/functionalUp... 18
ORDER (143191)#..\/#./zoneCreatures/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRen... 19
ORDER (149444)_xy/#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor... 20
ORDER (13951)updateEdgeWallObs 2
ORDER (14169)updateDisplaySections,updateEdgeWallObs 3
ORDER (14505)SYSTEM,updateDisplaySections,doDrawing',colCrsWalls,updateEdgeWallObs 4
ORDER (13997)updateEdgeWallObs 5
ORDER (13996)updateEdgeWallObs 6
ORDER (14223)SYSTEM,updateDisplaySections,updateEdgeWallObs 7
ORDER (14009)updateEdgeWallObs 8
ORDER (14027)updateEdgeWallObs,ix 9
ORDER (13964)SYSTEM,updateEdgeWallObs 10
ORDER (13953)updateEdgeWallObs 11
ORDER (14086)updateEdgeWallObs,ix 12
ORDER (14099)updateEdgeWallObs,ix 13
ORDER (14085)updateEdgeWallObs,ix 14
ORDER (14030)updateEdgeWallObs,ix 15
ORDER (14175)SYSTEM,updateDisplaySections,updateEdgeWallObs 16
ORDER (2)SYSTEM 17
ORDER (13952)SYSTEM,updateEdgeWallObs 18
ORDER (13941)updateEdgeWallObs 19
ORDER (14018)updateEdgeWallObs,ix 20
SHADE OTHER 0.00
SHADE (143425)#..\/#./rememberSounds/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates/c... 0.00
SHADE (143174)updatePastWorlds/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSp... 0.00
SHADE (143513)ix/#..\/#./updateExpBarrel/updateBarreloid.\/updateBarreloid/updateCreature'/updateCreature/dima... 0.00
SHADE (146310)#..\/#./mcApplyDamage/updateMachine/dimap/dimap/_Wrapped'/updateIMl'/functionalUpdate/timeFlowUp... 0.10
SHADE (143439)ix/#..\/#./performActions/updateCreature'.\/updateCreature'/updateCreature/dimap/dimap/_Wrapped'... 0.10
SHADE (143432)#..\/#./targetYouWhenCognizant/chaseCritInternal/ix/updateCreature'.\/updateCreature'/updateCrea... 0.10
SHADE (144727)ix.\/ix/#..\/#./moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functiona... 0.10
SHADE (149438)#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/upd... 0.00
SHADE (138578)zoneIncPe.f/zoneIncPe/#..\/#./generateLevelFromRoomList/generateWorldFromSeed/startSeedGameConc/... 0.00
SHADE (144742)moveWall.newwl/moveWall/moveWallID/ifoldl'/doorLerp.f/doorLerp/updateDoor/updateDoors/functional... 0.00
SHADE (145015)ix/crCrSpring/crSpring/simpleCrSprings/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateU... 0.00
SHADE (143414)chaseCritAwarenessUpdate/chaseCritPerceptionUpdate/chainCreatureUpdates.unf/chainCreatureUpdates... 0.05
SHADE (144747)each/#..\/#./taintedDot/each/doorLerp.wlposs/doorLerp.f/doorLerp/updateDoor/updateDoors/function... 0.05
SHADE (145066)colCrsWalls/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRenderSplit/t... 0.05
SHADE (144970)primitive/basicUnsafeCopy/ix.\/ix/updateEdge/updateEdgeWallObs/updateEdgesWall'/updateEdgesWall/... 0.05
SHADE (143493)ix/checkDeath'.tocr/#..\/#./checkDeath'/checkDeath/crUpdate/updateCreature'.\/updateCreature'/up... 0.10
SHADE (144815)each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor/updateDoors/functionalUp... 0.10
SHADE (143191)#..\/#./zoneCreatures/functionalUpdate/timeFlowUpdate/updateUniverseMid/updateUniverse/updateRen... 0.10
SHADE (149444)_xy/#..\/#./untaintedDot/each/_1/doDoorMount.\/doDoorMount/doorLerp.domounts/doorLerp/updateDoor... 0.10
SHADE (13951)updateEdgeWallObs 0.00
SHADE (14169)updateDisplaySections,updateEdgeWallObs 0.00
SHADE (14505)SYSTEM,updateDisplaySections,doDrawing',colCrsWalls,updateEdgeWallObs 0.00
SHADE (13997)updateEdgeWallObs 0.10
SHADE (13996)updateEdgeWallObs 0.10
SHADE (14223)SYSTEM,updateDisplaySections,updateEdgeWallObs 0.10
SHADE (14009)updateEdgeWallObs 0.10
SHADE (14027)updateEdgeWallObs,ix 0.00
SHADE (13964)SYSTEM,updateEdgeWallObs 0.00
SHADE (13953)updateEdgeWallObs 0.00
SHADE (14086)updateEdgeWallObs,ix 0.00
SHADE (14099)updateEdgeWallObs,ix 0.05
SHADE (14085)updateEdgeWallObs,ix 0.05
SHADE (14030)updateEdgeWallObs,ix 0.05
SHADE (14175)SYSTEM,updateDisplaySections,updateEdgeWallObs 0.05
SHADE (2)SYSTEM 0.10
SHADE (13952)SYSTEM,updateEdgeWallObs 0.10
SHADE (13941)updateEdgeWallObs 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)
nodelist = makePathBetween sp ep w
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 cyan ep
<> foldMap (color green . arrow sp) (nodepos =<< walkableNodeNear w sp)
<> foldMap (color cyan . flip arrow ep) (nodepos =<< walkableNodeNear w ep)
<> foldMap (color green . arrow sp) (nodepos <$> walkableNodeNear w sp)
<> foldMap (color cyan . flip arrow ep) (nodepos <$> walkableNodeNear w ep)
<> foldMap (color orange . arrow sp) (pointTowardsImpulse sp ep w)
where
w = u ^. uvWorld
@@ -403,14 +404,11 @@ drawWlIDs w = setLayer FixedCoordLayer $ foldMap f (w ^. cWorld . lWorld . walls
drawPathing :: Config -> World -> Picture
drawPathing cfig w = setLayer DebugLayer $ ifoldMap f $ w ^. cWorld . incGraph
where
inodes = w ^. cWorld . incNode
--f i = foldMap (g i)
--g i (j,se) = edgeToPic (screenPolygon cfig (w ^.wCam))
-- (inodes ^?! ix i) (inodes ^?! ix j) (se ^. seObstacles)
inode i = w ^?! cWorld . incNode . ix i
f :: Int -> IM.IntMap SimpleEdge -> Picture
f i = ifoldMap (g i)
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 poly sp ep pe
+4 -16
View File
@@ -8,7 +8,7 @@ module Dodge.Path (
walkableNodeNear,
snapToGrid,
pairsToIncGraph,
updateEdge,
-- updateEdge,
getEdgesCrossing,
) where
@@ -35,16 +35,8 @@ import Geometry
import qualified IntMapHelp as IM
import Linear
getNodePos :: Int -> World -> Maybe Point2
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
getNodePos :: Int -> World -> Point2
getNodePos i w = w ^?! cWorld . incNode . ix i
getEdgesCrossing :: Point2 -> Point2 -> World -> [(Int,Int)]
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)
(na :) . snd <$> AS.aStarAssoc getes h (== nb) na
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
. IM.map (^. seDist)
. IM.filter (^. seObstacles . to t) $ w ^?! cWorld . incGraph . ix i
@@ -98,7 +86,7 @@ smallSnailInt2 =
[V2 x y | x <- [-2 .. 2], y <- [-2 .. 2]]
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
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 NewInt
import Data.Foldable
import Data.Monoid
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
--testStringInit u = foldMap prettyShort $ u ^.. uvWorld . cWorld . lWorld . machines
+15 -21
View File
@@ -1,47 +1,41 @@
module Dodge.Update.WallDamage (updateWallDamages, updateEdgesWall) where
import Dodge.Wall.Pathing
import Geometry.Data
import Control.Lens
import Data.Foldable
import Data.Maybe
import qualified Data.Set as S
import Dodge.Data.World
import Dodge.Path
import Dodge.Wall.Damage
import Dodge.Wall.Pathing
import Dodge.WorldEvent.ThingsHit
import Dodge.Zoning.Base
import Geometry.Data
import qualified IntMapHelp as IM
updateWallDamages :: World -> World
updateWallDamages w =
let (is, w') =
IM.foldlWithKey' f (mempty, w) (w ^. cWorld . lWorld . wallDamages)
in updateEdgesWall is
w'
& cWorld . lWorld . wallDamages .~ IM.empty
let (is, w') = IM.foldlWithKey' f (mempty, w) (w ^. cWorld . lWorld . wallDamages)
in updateEdgesWall is w' & cWorld . lWorld . wallDamages .~ IM.empty
where
f isw k dams = fromMaybe isw $ do
wl <- isw ^? _2 . cWorld . lWorld . walls . ix k
return $ foldl' (flip (`damageWall` wl)) isw dams
updateEdgesWall :: S.Set Int2 -> World -> World
updateEdgesWall is w = updateEdgesWall'
(zonesExtract (w ^. incEdgeZoning & each . each %~ S.fromList) is) w
updateEdgesWall is w =
updateEdgesWall'
(zonesExtract (w ^. incEdgeZoning & each . each %~ S.fromList) is)
w
updateEdgesWall' :: S.Set (Int, Int) -> World -> World
updateEdgesWall' = flip $ foldl' updateEdgeWallObs
--updateEdgeWallObs :: World -> (Int, Int) -> World
--updateEdgeWallObs w (i, j) = w
updateEdgeWallObs :: World -> (Int, Int) -> World
updateEdgeWallObs w (i, j) = fromMaybe w $ do
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)
updateEdgeWallObs w (i, j) = w & cWorld . incGraph . ix i . ix j . seObstacles %~ f wlflags
where
-- f x _ = S.map WallObstacle x
f x y = S.map WallObstacle x `S.union`
(y S.\\ (S.fromList $ map WallObstacle [minBound..maxBound]))
s = w ^?! cWorld . incNode . ix i
e = w ^?! cWorld . incNode . ix j
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
ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C
Modification src/Dodge/Data/Modification.hs 12;" t
MountedLS src/Dodge/Data/MountedObject.hs 12;" C
MountedLight src/Dodge/Data/MountedObject.hs 14;" C
MountedLight src/Dodge/Data/MountedObject.hs 12;" C
MountedObject src/Dodge/Data/MountedObject.hs 11;" t
MountedProp src/Dodge/Data/MountedObject.hs 13;" C
MountedSPic src/Dodge/Data/MountedObject.hs 15;" C
MountedSPic src/Dodge/Data/MountedObject.hs 13;" C
MouseAiming src/Dodge/Data/Input.hs 15;" C
MouseContext src/Dodge/Data/Input.hs 13;" t
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
airlockSimple src/Dodge/Room/Airlock.hs 127;" 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
alteRifle src/Dodge/Item/Held/Cane.hs 22;" 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
angleVV3 src/Geometry/Vector3D.hs 122;" 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
applyClip src/Dodge/Debug.hs 96;" 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
applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" 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
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 327;" f
canSeeIndirect src/Dodge/Base/Collide.hs 334;" f
canSee src/Dodge/Base/Collide.hs 328;" f
canSeeIndirect src/Dodge/Base/Collide.hs 335;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f
capacitor src/Dodge/Item/Ammo.hs 69;" 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
chooseMovementLtAuto src/Dodge/CreatureEffect.hs 77;" 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
circOnAnyCr src/Dodge/Base/Collide.hs 291;" f
circOnAnyCr src/Dodge/Base/Collide.hs 292;" f
circOnSeg src/Geometry.hs 101;" 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
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" 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
collide3Walls src/Dodge/Base/Collide.hs 136;" 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
collidePointTestFilter src/Dodge/Base/Collide.hs 188;" 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
crossProd src/Geometry/Vector3D.hs 41;" 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
crsItmsUnused src/Dodge/Room/Containing.hs 45;" 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
destroyAllInvItems src/Dodge/Inventory.hs 53;" 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
destroyItem src/Dodge/Inventory.hs 62;" 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
destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/DrWdWd.hs 96;" f
destroyMounts src/Dodge/DrWdWd.hs 93;" f
destroyMount src/Dodge/DrWdWd.hs 95;" f
destroyMounts src/Dodge/DrWdWd.hs 92;" f
destroyProjectile src/Dodge/Projectile/Update.hs 108;" f
detV src/Geometry/Vector.hs 94;" 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
doBounce src/Dodge/Base/Collide.hs 67;" f
doButtonEvent src/Dodge/Button/Event.hs 9;" f
doConLoop src/Loop.hs 137;" f
doConLoop' src/Loop.hs 226;" f
doConLoop src/Loop.hs 138;" f
doConLoop' src/Loop.hs 227;" f
doCrAc src/Dodge/CreatureEffect.hs 38;" f
doCrBl src/Dodge/CreatureEffect.hs 30;" 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
door src/Dodge/Room/Door.hs 13;" 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
dotV3 src/Geometry/Vector3D.hs 119;" 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
drawBeam src/Dodge/Beam/Draw.hs 6;" 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
drawButton src/Dodge/Button/Draw.hs 10;" 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
drawCombineInventory src/Dodge/Render/HUD.hs 182;" 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 130;" 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
drawCursorAt src/Dodge/Render/List.hs 72;" 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
drawDebug src/Dodge/Debug.hs 173;" 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
drawExamineInventory src/Dodge/Render/HUD.hs 198;" 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
drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" 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
drawHUD src/Dodge/Render/HUD.hs 51;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f
drawInspectWall src/Dodge/Debug/Picture.hs 253;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 241;" f
drawInspectWall src/Dodge/Debug/Picture.hs 254;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 242;" 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
@@ -3290,11 +3288,11 @@ drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f
drawMouseCursor src/Dodge/Render/Picture.hs 85;" 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
drawPathBetween src/Dodge/Debug/Picture.hs 201;" f
drawPathEdge src/Dodge/Debug/Picture.hs 266;" f
drawPathing src/Dodge/Debug/Picture.hs 403;" f
drawPathEdge src/Dodge/Debug/Picture.hs 267;" f
drawPathing src/Dodge/Debug/Picture.hs 404;" f
drawPlus src/Dodge/Render/Picture.hs 165;" f
drawPointLabel src/Dodge/Render/Label.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
drawWall src/Dodge/Wall/Draw.hs 9;" f
drawWallFace src/Dodge/Debug/Picture.hs 73;" f
drawWallSearchRays src/Dodge/Debug/Picture.hs 318;" f
drawWallsNearCursor src/Dodge/Debug/Picture.hs 230;" f
drawWallSearchRays src/Dodge/Debug/Picture.hs 319;" f
drawWallsNearCursor src/Dodge/Debug/Picture.hs 231;" 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
drawWlIDs src/Dodge/Debug/Picture.hs 390;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 298;" f
drawWlIDs src/Dodge/Debug/Picture.hs 391;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 299;" 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
dropInventoryPath src/Dodge/HeldUse.hs 1351;" 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
ebtToDamage src/Dodge/EnergyBall.hs 93;" 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
effectOnRemove src/Dodge/Equipment.hs 19;" 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
getDebugMouseOver src/Dodge/Update.hs 377;" 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
getInventoryPath src/Dodge/Inventory/Path.hs 9;" 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
handleWindowMoveEvent src/Dodge/Event.hs 44;" 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
hasLOS src/Dodge/Base/Collide.hs 303;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 319;" f
hasLOS src/Dodge/Base/Collide.hs 304;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 320;" f
hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" 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
isCornerLink src/Dodge/RoomLink.hs 65;" 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
isInLnk src/Dodge/PlacementSpot.hs 161;" 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
isValidCommand src/Dodge/Debug/Terminal.hs 134;" 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
isotriBWH src/Geometry/Polygon.hs 22;" 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
makeMuzzleFlare src/Dodge/HeldUse.hs 656;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 85;" f
makePathBetweenPs src/Dodge/Path.hs 106;" f
makePathUsing src/Dodge/Path.hs 69;" f
makePathBetween src/Dodge/Path.hs 67;" f
makePathBetweenPs src/Dodge/Path.hs 88;" f
makePathUsing src/Dodge/Path.hs 55;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" 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
numSubElements src/Shader/Parameters.hs 39;" f
numTraversable src/TreeHelp.hs 184;" f
obstacleColor src/Dodge/Debug/Picture.hs 269;" f
obstructPathsCrossing src/Dodge/Path.hs 135;" f
obstacleColor src/Dodge/Debug/Picture.hs 270;" f
obstructPathsCrossing src/Dodge/Path.hs 121;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
onEquipWristShield src/Dodge/Equipment.hs 37;" 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
overPosSH src/Shape.hs 261;" f
overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 229;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 271;" f
overlapCircWalls src/Dodge/Base/Collide.hs 230;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 272;" f
overlapSegCrs src/Dodge/Base/Collide.hs 59;" f
overlapSegWalls src/Dodge/Base/Collide.hs 211;" 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
pairInPolys src/Dodge/Room/Path.hs 53;" 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
pairsToSCC src/Dodge/Graph.hs 32;" 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
passthroughLockKeyLists src/Dodge/Floor.hs 120;" 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
pauseGame src/Dodge/Update/Input/InGame.hs 525;" 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
pointIsInCone src/Geometry.hs 375;" 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
pointerToItemID src/Dodge/Item/Location.hs 42;" 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
setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f
setupConLoop src/Loop.hs 102;" f
setupConLoop' src/Loop.hs 192;" f
setupConLoop src/Loop.hs 103;" f
setupConLoop' src/Loop.hs 193;" f
setupEBO src/Shader/Compile.hs 188;" f
setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" 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
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f
slideWindow src/ListHelp.hs 80;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 156;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 173;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 160;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 177;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" 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
smallPillar src/Dodge/Room/Pillar.hs 37;" 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
smokeReducer src/Dodge/Item/Scope.hs 162;" f
snailAround src/Dodge/Path.hs 97;" f
snapToGrid src/Dodge/Path.hs 144;" f
snailAround src/Dodge/Path.hs 79;" f
snapToGrid src/Dodge/Path.hs 130;" f
sndV2 src/Geometry/Data.hs 73;" f
sniperRifle src/Dodge/Item/Held/Rod.hs 44;" 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
soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" 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
soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" 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
stopAllSounds src/Sound.hs 125;" 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
strFromEquipment src/Dodge/Creature/Statistics.hs 53;" 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
updateDust src/Dodge/Update.hs 823;" f
updateDusts src/Dodge/Update.hs 673;" f
updateEdge src/Dodge/Path.hs 55;" f
updateEdgeWallObs src/Dodge/Update/WallDamage.hs 38;" f
updateEdgesWall src/Dodge/Update/WallDamage.hs 28;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 32;" f
updateEdge src/Dodge/Path.hs 47;" f
updateEdgeWallObs src/Dodge/Update/WallDamage.hs 34;" f
updateEdgesWall src/Dodge/Update/WallDamage.hs 27;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 31;" f
updateEnergyBall src/Dodge/EnergyBall.hs 31;" f
updateEnergyBalls src/Dodge/Update.hs 661;" 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
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" 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
updateWheelEvents src/Dodge/Update.hs 415;" 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
verticalWire src/Dodge/Wire.hs 23;" f
vgunMuzzles src/Dodge/HeldUse.hs 341;" f
viewBoundaries src/Dodge/Debug/Picture.hs 327;" f
viewClipBounds src/Dodge/Debug/Picture.hs 336;" f
viewBoundaries src/Dodge/Debug/Picture.hs 328;" f
viewClipBounds src/Dodge/Debug/Picture.hs 337;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 154;" 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
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" 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
wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" 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
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" 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
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f