Improve wall crushing

This commit is contained in:
2026-03-28 21:43:06 +00:00
parent 2db4e9bc6e
commit 08fcc4baab
12 changed files with 176 additions and 106 deletions
+1
View File
@@ -33,6 +33,7 @@ data Door = Door
, _drZeroPos :: (Point2,Float) , _drZeroPos :: (Point2,Float)
, _drOnePos :: (Point2,Float) , _drOnePos :: (Point2,Float)
, _drLerp :: Float , _drLerp :: Float
, _drOldLerp :: Float
, _drFootPrint :: IM.IntMap (Point2,Point2) , _drFootPrint :: IM.IntMap (Point2,Point2)
, _drHP :: Int , _drHP :: Int
, _drPushedBy :: PushSource , _drPushedBy :: PushSource
+1
View File
@@ -3,6 +3,7 @@
module Dodge.Data.Wall.Structure where module Dodge.Data.Wall.Structure where
--import Geometry.Data
import Control.Lens import Control.Lens
import Data.Aeson import Data.Aeson
import Data.Aeson.TH import Data.Aeson.TH
+1
View File
@@ -11,6 +11,7 @@ defaultDoor =
, _drZeroPos = (0, 0) , _drZeroPos = (0, 0)
, _drOnePos = (0, 0) , _drOnePos = (0, 0)
, _drLerp = 0 , _drLerp = 0
, _drOldLerp = 0
, _drFootPrint = mempty , _drFootPrint = mempty
, _drHP = 10000 , _drHP = 10000
, _drPushedBy = PushesItself , _drPushedBy = PushesItself
+4 -1
View File
@@ -38,8 +38,9 @@ doDoorMount pa w = \case
& _2 . each . vxPos . _xy %~ shiftPointBy pa & _2 . each . vxPos . _xy %~ shiftPointBy pa
) )
-- do the mounts need to be done if there is no lerping?
doorLerp :: Float -> Door -> World -> (S.Set Int2, World) doorLerp :: Float -> Door -> World -> (S.Set Int2, World)
doorLerp speed dr w = fromMaybe (mempty, domounts (dr ^. drLerp) w) $ do doorLerp speed dr w = fromMaybe (mempty, domounts (dr ^. drLerp) $ setOldLerp w) $ do
x <- newlerp x <- newlerp
let ps = wlposs x let ps = wlposs x
ps' = wlposs (dr ^. drLerp) ps' = wlposs (dr ^. drLerp)
@@ -52,8 +53,10 @@ doorLerp speed dr w = fromMaybe (mempty, domounts (dr ^. drLerp) w) $ do
f x f x
& playSound x & playSound x
& cWorld . lWorld . doors . ix drid . drLerp .~ x & cWorld . lWorld . doors . ix drid . drLerp .~ x
& setOldLerp
) )
where where
setOldLerp = cWorld . lWorld . doors . ix drid . drOldLerp .~ (dr ^. drLerp)
domounts x w' = foldl' (doDoorMount (doDoorLerp dr x)) w' (dr ^. drMounts) domounts x w' = foldl' (doDoorMount (doDoorLerp dr x)) w' (dr ^. drMounts)
f = ifoldl' (flip . moveWallID) w . wlposs f = ifoldl' (flip . moveWallID) w . wlposs
wlposs x = (dr ^. drFootPrint) & each . each %~ shiftPointBy (doDoorLerp dr x) wlposs x = (dr ^. drFootPrint) & each . each %~ shiftPointBy (doDoorLerp dr x)
@@ -14,6 +14,7 @@ module Dodge.Placement.Instance.LightSource (
spanColLightBlackI, spanColLightBlackI,
spanLightI, spanLightI,
spanLightY, spanLightY,
spanLightL,
mntLightLnkCond', mntLightLnkCond',
spanLS, spanLS,
mntLightLnkShape, mntLightLnkShape,
@@ -178,6 +179,15 @@ spanLightY l x y z =
f p = putShape $ thinHighBar h p (l + normalize (l-p)) f p = putShape $ thinHighBar h p (l + normalize (l-p))
h = 95 h = 95
spanLightL :: Point2 -> Point2 -> Point2 -> Placement
spanLightL l x y =
ps0j (PutLS $ lsColPos 0.75 (addZ (h -5) l)) $
ps0j (f x) $
sps0 (f y)
where
f p = putShape $ thinHighBar h p (l + normalize (l-p))
h = 95
--extendAway :: Point2 -> Point2 -> Point2 --extendAway :: Point2 -> Point2 -> Point2
--extendAway p x = p +.+ squashNormalizeV (p -.- x) --extendAway p x = p +.+ squashNormalizeV (p -.- x)
+1 -1
View File
@@ -30,7 +30,7 @@ plDoor dr wl gw =
lerposa = doDoorLerp dr (dr ^. drLerp) lerposa = doDoorLerp dr (dr ^. drLerp)
addWalls = addWalls =
insertStructureWalls insertStructureWalls
(`DoorPart` isauto) (\x -> DoorPart x isauto)
wl wl
(map fst pps & each %~ shiftPointBy lerposa) (map fst pps & each %~ shiftPointBy lerposa)
drid drid
+43 -24
View File
@@ -148,18 +148,23 @@ slowCrushRoom = do
& rmPmnts .~ [spanLightI (V2 0 60) (V2 35 100) & rmPmnts .~ [spanLightI (V2 0 60) (V2 35 100)
, spanLightI (V2 220 60) (V2 185 100) , spanLightI (V2 220 60) (V2 185 100)
] ]
crs <- takeOne [[]
, [sPS (V2 200 10) (0.8* pi) randC1]
, [sPS (V2 200 10) (0.8* pi) randC1 , sPS (V2 210 20) (0.8* pi) randC1]
, [sPS (V2 200 80) pi randC1]
, [sPS (V2 200 80) pi randC1 , sPS (V2 210 90) pi randC1]
]
return $ rm' return $ rm'
& rmBound .:~ rectNSWE 0 (-50) 0 220 & rmBound .:~ rectNSWE 0 (-50) 0 220
& rmLinks %~ setOutLinks (\rl -> onside East $ rl ^. rlType) & rmLinks %~ setOutLinks (\rl -> onside East $ rl ^. rlType)
& rmLinks %~ setInLinks (\rl -> onside West $ rl ^. rlType) & rmLinks %~ setInLinks (\rl -> onside West $ rl ^. rlType)
& rmPmnts .:~ & rmPmnts <>~
(ps0 (PutTrigger False) $ \i -> Just $ [ps0 (PutTrigger False) $ \i -> Just $
pContID (apos West) (PutButton $ makeDumbSwitch i) $ \_ -> Just $ pContID (apos West) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (apos East) (PutButton $ makeDumbSwitch i) $ \_ -> Just $ pContID (apos East) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
sps0 (PutDoor (dr & drTrigger .~ WdTrig i) defaultDoorWall) & plIDCont . mapped . mapped ?~ sps0 (PutDoor (dr & drTrigger .~ WdTrig i) defaultDoorWall) & plIDCont . mapped . mapped ?~
sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i) defaultDoorWall) sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i) defaultDoorWall)
) ] <> crs
where where
onside x s = (OnEdge x `S.member` s) onside x s = (OnEdge x `S.member` s)
|| (OnEdge South `S.member` s && FromEdge x 0 `S.member` s) || (OnEdge South `S.member` s && FromEdge x 0 `S.member` s)
@@ -180,36 +185,50 @@ slowCrushRoom = do
UnusedLink s -> onside edge s UnusedLink s -> onside edge s
_ -> False _ -> False
slowCrushRoom' :: RandomGen g => State g Room slowCrush90 :: RandomGen g => State g Room
slowCrushRoom' = do slowCrush90 = do
rm <- shuffleLinks =<< roomRectAutoLights 200 100 rm <- shuffleLinks =<< roomRectAutoLights 170 100
(ilinks, olinks) <- shufflePair (cornlinks,onside West)
let rm' = removeLights rm let rm' = removeLights rm
& rmPmnts .~ [spanLightI (V2 0 60) (V2 35 100) & rmPmnts .~ [spanLightI (V2 0 60) (V2 35 100)
, spanLightI (V2 200 60) (V2 165 100) , spanLightL (V2 120 39) (V2 170 39) (V2 120 0)
] ]
crs <- takeOne [[] ]
return $ rm' return $ rm'
& rmLinks %~ setOutLinksByType (OnEdge East) & rmBound <>~ [rectNSWE 0 (-55) 0 110
& rmLinks %~ setInLinksByType (OnEdge West) , rectNSWE 100 40 170 220
& rmPmnts .:~ ]
(ps0 (PutTrigger False) $ \i -> Just $ & rmLinks %~ setOutLinks (\rl -> olinks $ rl ^. rlType)
pContID (apos West 5) (PutButton $ makeDumbSwitch i) $ \_ -> Just $ & rmLinks %~ setInLinks (\rl -> ilinks $ rl ^. rlType)
pContID (apos East (-5)) (PutButton $ makeDumbSwitch i) $ \_ -> Just $ & rmPmnts <>~
[ps0 (PutTrigger False) $ \i -> Just $
pContID (spos ilinks) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (spos olinks) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
sps0 (PutDoor (dr & drTrigger .~ WdTrig i) defaultDoorWall) & plIDCont . mapped . mapped ?~ sps0 (PutDoor (dr & drTrigger .~ WdTrig i) defaultDoorWall) & plIDCont . mapped . mapped ?~
sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i) defaultDoorWall) sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i) defaultDoorWall)
) ] <> crs
where where
onside x s = (OnEdge x `S.member` s)
|| (OnEdge South `S.member` s && FromEdge x 0 `S.member` s)
|| (OnEdge North `S.member` s && FromEdge x 0 `S.member` s)
cornlinks s =
(OnEdge South `S.member` s && FromEdge East 0 `S.member` s)
|| (OnEdge East `S.member` s && FromEdge South 0 `S.member` s)
dr = defaultDoor dr = defaultDoor
& drUpdate .~ DoorLerp 0.01 & drUpdate .~ DoorLerp 0.01
& drZeroPos .~ (V2 65 (-40), 0) & drZeroPos .~ (V2 75 (-5), 0)
& drOnePos .~ (V2 65 50, 0) & drOnePos .~ (V2 75 50, 0)
& drFootPrint .~ IM.fromDistinctAscList (zip [0..] (loopPairs . reverse $ rectWH 35 50)) & drFootPrint .~ IM.fromDistinctAscList (zip [0..] (loopPairs . reverse $ rectWH 34 50))
dr1 = dr dr1 = dr
& drOnePos .~ (V2 135 (-40), 0) & drOnePos .~ (V2 190 70, 0)
& drZeroPos .~ (V2 135 50, 0) & drZeroPos .~ (V2 140 70, 0)
apos edge x = (rprBool (t edge) & psSelect . mapped . mapped . _Just . _1 %~ (psRot +~ pi) . (psPos +~ V2 x 0)) & drFootPrint .~ IM.fromDistinctAscList (zip [0..] (loopPairs . reverse $ rectWH 30 29))
t edge rp _ = case _rpType rp of f ps = case ps of
UnusedLink s -> OnEdge edge `S.member` s PS _ r -> ps & psRot +~ pi & psPos +~ rotateV r (V2 0 (-5))
_ -> ps
spos h = (rprBool (t' h) & psSelect . mapped . mapped . _Just . _1 %~ f)
t' h rp _ = case _rpType rp of
UnusedLink s -> h s
_ -> False _ -> False
slowDoorRoom :: RandomGen g => State g Room slowDoorRoom :: RandomGen g => State g Room
+1 -1
View File
@@ -55,7 +55,7 @@ tutAnoTree = do
foldMTRS foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor , corDoor
, tToBTree "slowCrush" . return . cleatOnward <$> slowCrushRoom , tToBTree "slowCrush" . return . cleatOnward <$> slowCrush90
, corDoor , corDoor
, chasmSpitTerminal , chasmSpitTerminal
--a , return $ tToBTree "cor" $ return $ cleatOnward corridor --a , return $ tToBTree "cor" $ return $ cleatOnward corridor
+2 -2
View File
@@ -34,8 +34,8 @@ import Data.Monoid
import RandomHelp import RandomHelp
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit u = testStringInit u = [fromMaybe "" $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crName]
(fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crStance . carriage . strideAmount) -- (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crStance . carriage . strideAmount)
-- a <> fromMaybe [] (do -- a <> fromMaybe [] (do
-- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18 -- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18
-- a w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61 -- a w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61
+2 -2
View File
@@ -21,9 +21,9 @@ moveWallID wlid wlline w = case w ^? cWorld . lWorld . walls . ix wlid of
Just wl -> moveWall wlid wl wlline w Just wl -> moveWall wlid wl wlline w
moveWall :: Int -> Wall -> (Point2, Point2) -> World -> World moveWall :: Int -> Wall -> (Point2, Point2) -> World -> World
moveWall wlid wl wlline w = moveWall wlid wl xy w =
w & cWorld . lWorld . walls . ix wlid .~ newwl w & cWorld . lWorld . walls . ix wlid .~ newwl
& deleteWallFromZones wl & deleteWallFromZones wl
& insertWallInZones newwl & insertWallInZones newwl
where where
newwl = wl{_wlLine = wlline} newwl = wl & wlLine .~ xy
+45 -16
View File
@@ -1,8 +1,11 @@
-- | Deals with moving creature wall collisions. -- | Deals with moving creature wall collisions.
module Dodge.WallCreatureCollisions (colCrsWalls, module Dodge.WallCreatureCollisions (colCrsWalls) where
wlWlCrush
) where
--import Control.Applicative
--import Data.Monoid
import Dodge.Door.DoorLerp
import Dodge.ShiftPoint
import Data.Maybe
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
import Data.Foldable import Data.Foldable
@@ -26,7 +29,7 @@ colCrWall :: World -> Creature -> Creature
colCrWall w c = cornpush . wallpush $ pushthrough c colCrWall w c = cornpush . wallpush $ pushthrough c
where where
cornpush = crPos . _xy %~ pushOutFromCorners r ls' cornpush = crPos . _xy %~ pushOutFromCorners r ls'
wallpush = pushCr wls wallpush = pushCr (w ^. cWorld . lWorld) wls
pushthrough = crPos . _xy %~ fst . flip (collidePoint p1) wls -- check push throughs pushthrough = crPos . _xy %~ fst . flip (collidePoint p1) wls -- check push throughs
r = crRad (c ^. crType) + wallBuffer r = crRad (c ^. crType) + wallBuffer
p1 = c ^. crOldPos . _xy p1 = c ^. crOldPos . _xy
@@ -37,34 +40,60 @@ colCrWall w c = cornpush . wallpush $ pushthrough c
notff x = x ^. wlMaterial /= ForceField notff x = x ^. wlMaterial /= ForceField
-- might want to check angled crushing -- might want to check angled crushing
pushCr :: IM.IntMap Wall -> Creature -> Creature pushCr :: LWorld -> IM.IntMap Wall -> Creature -> Creature
pushCr wls cr pushCr w wls cr
| (dist ep sp > r && dist ep ap > r) -- | (dist ep sp > r && dist ep ap > r)
|| wlsCrush twls -- || wlsCrush' w (cr ^. crPos . _xy) twls =
= | wlsCrush' w (cr ^. crPos . _xy) twls =
ecr ecr
& crDamage <>~ [Crushing 1000 0] & crDamage <>~ [Crushing 1000 0]
& crPos . _xy .~ ap & crPos . _xy .~ ap
-- | Just s <- wlsCrush w (cr ^. crPos . _xy) twls =
-- ecr
-- & crDamage <>~ [Crushing 1000 0]
-- & crPos . _xy .~ ap
-- & crName .~ s
| otherwise = ecr | otherwise = ecr
where where
-- stwls = IM.filter (\wl -> uncurry circOnSegNoEndpoints (wl ^. wlLine) sp r) wls -- stwls = IM.filter (\wl -> uncurry circOnSegNoEndpoints (wl ^. wlLine) sp r) wls
twls = IM.elems $ IM.restrictKeys wls (ecr ^. crWallTouch) -- `IM.union` stwls 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
ecr = foldl' f (cr & crWallTouch .~ mempty) wls ecr = foldl' f (cr & crWallTouch .~ mempty) wls
r = crRad (cr ^. crType) r = crRad (cr ^. crType)
f acr wl = case pushOutFromWall r (acr ^. crPos . _xy) (wl ^. wlLine) of f acr wl = case pushOutFromWall r (acr ^. crPos . _xy) (wl ^. wlLine) of
Just p -> acr & crPos . _xy .~ p & crWallTouch %~ IS.insert (wl ^. wlID) Just p -> acr & crPos . _xy .~ p & crWallTouch %~ IS.insert (wl ^. wlID)
Nothing -> acr Nothing -> acr
wlsCrush :: [Wall] -> Bool wallMovement :: LWorld -> Point2 -> Wall -> Point2
wlsCrush [] = False wallMovement w p wl = fromMaybe 0 $ do
wlsCrush (x:xs) = any (wlWlCrush x) xs || wlsCrush xs drid <- w ^? walls . ix (wl ^. wlID) . wlStructure . wsDoor
dr <- w ^? doors . ix drid
let oldp = shiftPointBy (doDoorLerp dr (dr ^. drOldLerp))
$ invShiftPointBy (doDoorLerp dr (dr ^. drLerp)) p
return $ p - oldp
wlWlCrush :: Wall -> Wall -> Bool --wlsCrush :: LWorld -> Point2 -> [Wall] -> Maybe String
wlWlCrush w1 w2 = norm (f w1 + f w2) < 0.2 --wlsCrush _ _ [] = Nothing
--wlsCrush w p (x:xs) = getFirst (foldMap (First . wlWlCrush w p x) xs) <|> wlsCrush w p xs
wlsCrush' :: LWorld -> Point2 -> [Wall] -> Bool
wlsCrush' _ _ [] = False
wlsCrush' w p (x:xs) = any (wlWlCrush' w p x) xs || wlsCrush' w p xs
--wlWlCrush :: LWorld -> Point2 -> Wall -> Wall -> Maybe String
--wlWlCrush w p w1 w2
-- | wlWlCrush' w p w1 w2 = Just $ show (w1 ^. wlID) <> ":" <> show (w2 ^. wlID)
-- | otherwise = Nothing
wlWlCrush' :: LWorld -> Point2 -> Wall -> Wall -> Bool
wlWlCrush' w p w1 w2 = (t w1 w2 || t w2 w1) -- test either wall is moving towards the other
&& norm (f w1 + f w2) < 0.2 -- test walls are facing each other
where where
-- t wl = dotV (vNormal (normalizeV (uncurry (-) (wl ^. wlLine)))) (wallMovement w p wl) > 0
t x y = dotV (vNormal (normalizeV (uncurry (-) (x ^. wlLine))))
(wallMovement w p x - wallMovement w p y) > 0
f = normalizeV . uncurry (-) . (^. wlLine) f = normalizeV . 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
+65 -59
View File
@@ -131,7 +131,7 @@ BlNegate src/Dodge/Data/BlBl.hs 10;" C
Block src/Dodge/Data/Block.hs 20;" t Block src/Dodge/Data/Block.hs 20;" t
BlockDebris src/Dodge/Data/Prop.hs 23;" C BlockDebris src/Dodge/Data/Prop.hs 23;" C
BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 31;" C BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 31;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C BlockPart src/Dodge/Data/Wall/Structure.hs 15;" C
BlockStatus src/Dodge/Data/Universe.hs 98;" t BlockStatus src/Dodge/Data/Universe.hs 98;" t
BlockedLink src/Dodge/Data/Room.hs 54;" C BlockedLink src/Dodge/Data/Room.hs 54;" C
BloomLayer src/Picture/Data.hs 21;" C BloomLayer src/Picture/Data.hs 21;" C
@@ -279,7 +279,7 @@ CraftType src/Dodge/Data/Item/Combine.hs 49;" t
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
Creature src/Dodge/Data/Creature.hs 36;" t Creature src/Dodge/Data/Creature.hs 36;" t
CreaturePart src/Dodge/Data/Wall/Structure.hs 15;" C CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C
CreatureShape src/Dodge/Data/Creature/Misc.hs 74;" t CreatureShape src/Dodge/Data/Creature/Misc.hs 74;" t
CreatureType src/Dodge/Data/Creature/Misc.hs 58;" t CreatureType src/Dodge/Data/Creature/Misc.hs 58;" t
Crushing src/Dodge/Data/Damage.hs 19;" C Crushing src/Dodge/Data/Damage.hs 19;" C
@@ -346,11 +346,11 @@ DoReplicate src/Dodge/Data/ActionPlan.hs 106;" C
DoReplicatePartial src/Dodge/Data/ActionPlan.hs 110;" C DoReplicatePartial src/Dodge/Data/ActionPlan.hs 110;" C
DockingBaySS src/Dodge/Data/Scenario.hs 92;" C DockingBaySS src/Dodge/Data/Scenario.hs 92;" C
Door src/Dodge/Data/Door.hs 29;" t Door src/Dodge/Data/Door.hs 29;" t
DoorDoNothing src/Dodge/Data/Door.hs 44;" C DoorDoNothing src/Dodge/Data/Door.hs 45;" C
DoorLerp src/Dodge/Data/Door.hs 45;" C DoorLerp src/Dodge/Data/Door.hs 46;" C
DoorLerpWithTimer src/Dodge/Data/Door.hs 46;" C DoorLerpWithTimer src/Dodge/Data/Door.hs 47;" C
DoorPart src/Dodge/Data/Wall/Structure.hs 12;" C DoorPart src/Dodge/Data/Wall/Structure.hs 13;" C
DoorUpdate src/Dodge/Data/Door.hs 43;" t DoorUpdate src/Dodge/Data/Door.hs 44;" t
DoubleRes src/Dodge/Data/Config.hs 113;" C DoubleRes src/Dodge/Data/Config.hs 113;" C
DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 9;" t DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 9;" t
DrawForceField src/Dodge/Data/Wall.hs 37;" C DrawForceField src/Dodge/Data/Wall.hs 37;" C
@@ -706,7 +706,7 @@ MTree src/Dodge/Data/MetaTree.hs 12;" C
Machine src/Dodge/Data/Machine.hs 30;" t Machine src/Dodge/Data/Machine.hs 30;" t
MachineAltSound src/Dodge/Data/SoundOrigin.hs 23;" C MachineAltSound src/Dodge/Data/SoundOrigin.hs 23;" C
MachineBackgroundSound src/Dodge/Data/SoundOrigin.hs 22;" C MachineBackgroundSound src/Dodge/Data/SoundOrigin.hs 22;" C
MachinePart src/Dodge/Data/Wall/Structure.hs 13;" C MachinePart src/Dodge/Data/Wall/Structure.hs 14;" C
MachinePrimarySound src/Dodge/Data/SoundOrigin.hs 21;" C MachinePrimarySound src/Dodge/Data/SoundOrigin.hs 21;" C
MachineType src/Dodge/Data/Machine.hs 42;" t MachineType src/Dodge/Data/Machine.hs 42;" t
MagBelow src/Dodge/Data/Muzzle.hs 22;" C MagBelow src/Dodge/Data/Muzzle.hs 22;" C
@@ -1267,7 +1267,7 @@ SpreadGunAI src/Dodge/Data/Creature/Misc.hs 40;" C
StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C
StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C
Stance src/Dodge/Data/Creature/Stance.hs 15;" t Stance src/Dodge/Data/Creature/Stance.hs 15;" t
StandaloneWall src/Dodge/Data/Wall/Structure.hs 11;" C StandaloneWall src/Dodge/Data/Wall/Structure.hs 12;" C
StartSentinelPost src/Dodge/Data/ActionPlan.hs 117;" C StartSentinelPost src/Dodge/Data/ActionPlan.hs 117;" C
StayInArea src/Dodge/Data/Scenario.hs 13;" C StayInArea src/Dodge/Data/Scenario.hs 13;" C
Stone src/Dodge/Data/Material.hs 13;" C Stone src/Dodge/Data/Material.hs 13;" C
@@ -1463,16 +1463,16 @@ WaitThen src/Dodge/Data/ActionPlan.hs 74;" C
Walking src/Dodge/Data/Creature/Stance.hs 23;" C Walking src/Dodge/Data/Creature/Stance.hs 23;" C
Wall src/Dodge/Data/Wall.hs 17;" t Wall src/Dodge/Data/Wall.hs 17;" t
WallArcNode src/Dodge/Data/LWorld.hs 160;" C WallArcNode src/Dodge/Data/LWorld.hs 160;" C
WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 19;" C WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 20;" C
WallDraw src/Dodge/Data/Wall.hs 37;" t WallDraw src/Dodge/Data/Wall.hs 37;" t
WallFlag src/Dodge/Data/Wall/Structure.hs 18;" t WallFlag src/Dodge/Data/Wall/Structure.hs 19;" t
WallNotAutoOpen src/Dodge/Data/Wall/Structure.hs 20;" C WallNotAutoOpen src/Dodge/Data/Wall/Structure.hs 21;" C
WallNotDestrucable src/Dodge/Data/Wall/Structure.hs 21;" C WallNotDestrucable src/Dodge/Data/Wall/Structure.hs 22;" C
WallObstacle src/Dodge/Data/PathGraph.hs 50;" C WallObstacle src/Dodge/Data/PathGraph.hs 50;" C
WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t
WallP src/Dodge/LevelGen/StaticWalls/Deprecated.hs 11;" t WallP src/Dodge/LevelGen/StaticWalls/Deprecated.hs 11;" t
WallSound src/Dodge/Data/SoundOrigin.hs 25;" C WallSound src/Dodge/Data/SoundOrigin.hs 25;" C
WallStructure src/Dodge/Data/Wall/Structure.hs 10;" t WallStructure src/Dodge/Data/Wall/Structure.hs 11;" t
WallWire src/Dodge/Data/Room.hs 59;" C WallWire src/Dodge/Data/Room.hs 59;" C
Walls_info src/Dodge/Data/Config.hs 89;" C Walls_info src/Dodge/Data/Config.hs 89;" C
War src/Dodge/Data/Scenario.hs 28;" C War src/Dodge/Data/Scenario.hs 28;" C
@@ -1770,16 +1770,17 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 113;" f
_doReplicateTimes src/Dodge/Data/ActionPlan.hs 107;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 107;" f
_doReplicateTimes src/Dodge/Data/ActionPlan.hs 112;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 112;" f
_doors src/Dodge/Data/LWorld.hs 124;" f _doors src/Dodge/Data/LWorld.hs 124;" f
_drFootPrint src/Dodge/Data/Door.hs 36;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f
_drHP src/Dodge/Data/Door.hs 37;" f _drHP src/Dodge/Data/Door.hs 38;" f
_drID src/Dodge/Data/Door.hs 30;" f _drID src/Dodge/Data/Door.hs 30;" f
_drLerp src/Dodge/Data/Door.hs 35;" f _drLerp src/Dodge/Data/Door.hs 35;" f
_drLerpSpeed src/Dodge/Data/Door.hs 45;" f _drLerpSpeed src/Dodge/Data/Door.hs 46;" f
_drLerpTimer src/Dodge/Data/Door.hs 46;" f _drLerpTimer src/Dodge/Data/Door.hs 47;" f
_drMounts src/Dodge/Data/Door.hs 40;" f _drMounts src/Dodge/Data/Door.hs 41;" f
_drOldLerp src/Dodge/Data/Door.hs 36;" f
_drOnePos src/Dodge/Data/Door.hs 34;" f _drOnePos src/Dodge/Data/Door.hs 34;" f
_drPushedBy src/Dodge/Data/Door.hs 38;" f _drPushedBy src/Dodge/Data/Door.hs 39;" f
_drPushes src/Dodge/Data/Door.hs 39;" f _drPushes src/Dodge/Data/Door.hs 40;" f
_drTrigger src/Dodge/Data/Door.hs 31;" f _drTrigger src/Dodge/Data/Door.hs 31;" f
_drUpdate src/Dodge/Data/Door.hs 32;" f _drUpdate src/Dodge/Data/Door.hs 32;" f
_drZeroPos src/Dodge/Data/Door.hs 33;" f _drZeroPos src/Dodge/Data/Door.hs 33;" f
@@ -2507,25 +2508,25 @@ _wlLine src/Dodge/Data/Wall.hs 18;" f
_wlMaterial src/Dodge/Data/Wall.hs 26;" f _wlMaterial src/Dodge/Data/Wall.hs 26;" f
_wlOpacity src/Dodge/Data/Wall.hs 20;" f _wlOpacity src/Dodge/Data/Wall.hs 20;" f
_wlRotateTo src/Dodge/Data/Wall.hs 23;" f _wlRotateTo src/Dodge/Data/Wall.hs 23;" f
_wlStCreature src/Dodge/Data/Wall/Structure.hs 15;" f _wlStCreature src/Dodge/Data/Wall/Structure.hs 16;" f
_wlStructure src/Dodge/Data/Wall.hs 24;" f _wlStructure src/Dodge/Data/Wall.hs 24;" f
_wlTouchThrough src/Dodge/Data/Wall.hs 21;" f _wlTouchThrough src/Dodge/Data/Wall.hs 21;" f
_wlUnshadowed src/Dodge/Data/Wall.hs 22;" f _wlUnshadowed src/Dodge/Data/Wall.hs 22;" f
_wlZoning src/Dodge/Data/World.hs 52;" f _wlZoning src/Dodge/Data/World.hs 52;" f
_worldEventFlags src/Dodge/Data/World.hs 47;" f _worldEventFlags src/Dodge/Data/World.hs 47;" f
_worldEvents src/Dodge/Data/LWorld.hs 133;" f _worldEvents src/Dodge/Data/LWorld.hs 133;" f
_wsBlock src/Dodge/Data/Wall/Structure.hs 14;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 15;" f
_wsDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 13;" f
_wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 13;" f
_wsMachine src/Dodge/Data/Wall/Structure.hs 13;" f _wsMachine src/Dodge/Data/Wall/Structure.hs 14;" f
_xNum src/Dodge/Data/Item/Combine.hs 141;" f _xNum src/Dodge/Data/Item/Combine.hs 141;" f
_xNum src/Dodge/Data/Item/Combine.hs 151;" f _xNum src/Dodge/Data/Item/Combine.hs 151;" f
_xNum src/Dodge/Data/Item/Combine.hs 171;" f _xNum src/Dodge/Data/Item/Combine.hs 171;" f
aBar src/Dodge/Placement/Instance/LightSource.hs 68;" f aBar src/Dodge/Placement/Instance/LightSource.hs 69;" f
aFlame src/Dodge/Gas.hs 20;" f aFlame src/Dodge/Gas.hs 20;" f
aGasCloud src/Dodge/Gas.hs 15;" f aGasCloud src/Dodge/Gas.hs 15;" f
aRadarPulse src/Dodge/RadarSweep.hs 20;" f aRadarPulse src/Dodge/RadarSweep.hs 20;" f
aShape src/Dodge/Placement/Instance/LightSource.hs 93;" f aShape src/Dodge/Placement/Instance/LightSource.hs 94;" 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 63;" f accessTerminal src/Dodge/WorldEffect.hs 63;" f
@@ -2882,8 +2883,8 @@ clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f
clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f
clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f
cogRaised src/Dodge/Creature/Perception.hs 101;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f
colCrWall src/Dodge/WallCreatureCollisions.hs 25;" f colCrWall src/Dodge/WallCreatureCollisions.hs 30;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 22;" f
collectDamageTypes src/Dodge/Damage.hs 53;" f collectDamageTypes src/Dodge/Damage.hs 53;" f
collectInvItems src/Dodge/Inventory.hs 205;" f collectInvItems src/Dodge/Inventory.hs 205;" f
collide3 src/Dodge/Base/Collide.hs 129;" f collide3 src/Dodge/Base/Collide.hs 129;" f
@@ -3294,8 +3295,8 @@ doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 14;" f door src/Dodge/Room/Door.hs 14;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 34;" f doorBetween src/Dodge/Placement/Instance/Door.hs 34;" f
doorCor src/Dodge/Room/Room.hs 400;" f doorCor src/Dodge/Room/Room.hs 400;" f
doorLerp src/Dodge/Door.hs 41;" f doorLerp src/Dodge/Door.hs 42;" f
doorLerpWithTimer src/Dodge/Door.hs 72;" f doorLerpWithTimer src/Dodge/Door.hs 75;" 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 291;" f doubleCorridorBarrels src/Dodge/Room/Room.hs 291;" f
@@ -3772,7 +3773,7 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f
hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f
hotkeyToScancode src/Dodge/Creature/YourControl.hs 82;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 82;" f
hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f
iShape src/Dodge/Placement/Instance/LightSource.hs 56;" f iShape src/Dodge/Placement/Instance/LightSource.hs 57;" f
icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
inLink src/Dodge/RoomLink.hs 128;" f inLink src/Dodge/RoomLink.hs 128;" f
@@ -3946,7 +3947,7 @@ itmBaseInfo src/Dodge/Item/Info.hs 30;" f
itmEquipSiteInfo src/Dodge/Item/Info.hs 250;" f itmEquipSiteInfo src/Dodge/Item/Info.hs 250;" f
itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f
itmUsageInfo src/Dodge/Item/Info.hs 230;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 71;" f jShape src/Dodge/Placement/Instance/LightSource.hs 72;" f
joinItemsInList src/Dodge/Item/Grammar.hs 215;" f joinItemsInList src/Dodge/Item/Grammar.hs 215;" f
joystick src/Dodge/Item/Scope.hs 158;" f joystick src/Dodge/Item/Scope.hs 158;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f
@@ -3969,7 +3970,7 @@ lChasm src/Dodge/Room/Tutorial.hs 145;" f
lConnect src/Dodge/Render/Connectors.hs 43;" f lConnect src/Dodge/Render/Connectors.hs 43;" f
lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f
lConnectMulti src/Dodge/Render/Connectors.hs 51;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 59;" f lShape src/Dodge/Placement/Instance/LightSource.hs 60;" f
lamp src/Dodge/Creature/Lamp.hs 18;" f lamp src/Dodge/Creature/Lamp.hs 18;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 125;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 125;" f
lasCenRunClose' src/Dodge/Room/LasTurret.hs 309;" f lasCenRunClose' src/Dodge/Room/LasTurret.hs 309;" f
@@ -4006,7 +4007,7 @@ leftRightCombine src/Dodge/Item/Grammar.hs 205;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 86;" f leftWristPQ src/Dodge/Creature/HandPos.hs 86;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f
lerpP2A src/Dodge/ShiftPoint.hs 14;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 84;" f liShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
light src/Color.hs 131;" f light src/Color.hs 131;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 77;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 77;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 64;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 64;" f
@@ -4233,12 +4234,12 @@ mkDustCloudLike src/Shader/Poke/Cloud.hs 27;" f
mkGraphFromEdges src/GraphHelp.hs 4;" f mkGraphFromEdges src/GraphHelp.hs 4;" f
mkNode src/Dodge/Graph.hs 29;" f mkNode src/Dodge/Graph.hs 29;" f
mkRectangle src/Dodge/LevelGen/DoorPane.hs 7;" f mkRectangle src/Dodge/LevelGen/DoorPane.hs 7;" f
mntLS src/Dodge/Placement/Instance/LightSource.hs 105;" f mntLS src/Dodge/Placement/Instance/LightSource.hs 106;" f
mntLSCond src/Dodge/Placement/Instance/LightSource.hs 110;" f mntLSCond src/Dodge/Placement/Instance/LightSource.hs 111;" f
mntLSOn src/Dodge/Placement/Instance/LightSource.hs 35;" f mntLSOn src/Dodge/Placement/Instance/LightSource.hs 36;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 127;" f mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 128;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 135;" f mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 136;" f
mntLightLnkShape src/Dodge/Placement/Instance/LightSource.hs 132;" f mntLightLnkShape src/Dodge/Placement/Instance/LightSource.hs 133;" f
modTo src/Geometry/Zone.hs 18;" f modTo src/Geometry/Zone.hs 18;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 70;" f mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 70;" f
mouseCursorType src/Dodge/Render/Picture.hs 90;" f mouseCursorType src/Dodge/Render/Picture.hs 90;" f
@@ -4303,7 +4304,7 @@ nextInSectionSS src/Dodge/SelectionSections.hs 34;" f
nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f
noPic src/ShapePicture.hs 25;" f noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 20;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 25;" f
nodesNear src/Dodge/Path.hs 75;" f nodesNear src/Dodge/Path.hs 75;" f
nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f
nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f
@@ -4554,10 +4555,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 40;" f pushCr src/Dodge/WallCreatureCollisions.hs 45;" f
pushL src/DoubleStack.hs 20;" f pushL src/DoubleStack.hs 20;" f
pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 87;" f pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 116;" f
pushOutFromWall src/Dodge/WallCreatureCollisions.hs 76;" f pushOutFromWall src/Dodge/WallCreatureCollisions.hs 105;" 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
@@ -4570,7 +4571,7 @@ putDoor src/Dodge/Room/Airlock.hs 116;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 20;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 20;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 60;" f putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 60;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 187;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 197;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
putLitButOnPos src/Dodge/Placement/Instance/Button.hs 64;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 64;" f
putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f
@@ -5011,9 +5012,10 @@ slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f
slideWindow src/ListHelp.hs 81;" f slideWindow src/ListHelp.hs 81;" f
slowCrush90 src/Dodge/Room/LongDoor.hs 188;" f
slowCrushRoom src/Dodge/Room/LongDoor.hs 144;" f slowCrushRoom src/Dodge/Room/LongDoor.hs 144;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 176;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 234;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 193;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 251;" f
smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBattery src/Dodge/Item/Ammo.hs 57;" 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
@@ -5050,11 +5052,12 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f
spaceAction src/Dodge/Update/Input/InGame.hs 504;" f spaceAction src/Dodge/Update/Input/InGame.hs 504;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 160;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 161;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 153;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 154;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 145;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 146;" f
spanLightI src/Dodge/Placement/Instance/LightSource.hs 167;" f spanLightI src/Dodge/Placement/Instance/LightSource.hs 168;" f
spanLightY src/Dodge/Placement/Instance/LightSource.hs 171;" f spanLightL src/Dodge/Placement/Instance/LightSource.hs 182;" f
spanLightY src/Dodge/Placement/Instance/LightSource.hs 172;" f
sparkDam src/Dodge/Spark.hs 37;" f sparkDam src/Dodge/Spark.hs 37;" f
sparkRandDir src/Dodge/Spark.hs 117;" f sparkRandDir src/Dodge/Spark.hs 117;" f
sparkToDamage src/Dodge/Spark.hs 40;" f sparkToDamage src/Dodge/Spark.hs 40;" f
@@ -5081,7 +5084,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 90;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 119;" 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
@@ -5550,7 +5553,7 @@ vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 154;" f vInverse src/Geometry/Vector.hs 154;" f
vNormal src/Geometry/Vector.hs 149;" f vNormal src/Geometry/Vector.hs 149;" f
vNormaly src/Geometry/Vector3D.hs 72;" f vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 98;" f vShape src/Dodge/Placement/Instance/LightSource.hs 99;" f
vToL src/MatrixHelper.hs 56;" f vToL src/MatrixHelper.hs 56;" f
vToQuat src/Quaternion.hs 42;" f vToQuat src/Quaternion.hs 42;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
@@ -5578,8 +5581,9 @@ 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 71;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 100;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallMovement src/Dodge/WallCreatureCollisions.hs 71;" f
wallToSurface src/Dodge/Base/Collide.hs 182;" f wallToSurface src/Dodge/Base/Collide.hs 182;" f
wallsFromRooms src/Dodge/Layout.hs 141;" f wallsFromRooms src/Dodge/Layout.hs 141;" f
wallsToDraw src/Dodge/Render/Walls.hs 18;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f
@@ -5633,9 +5637,11 @@ 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 65;" f wlWlCrush src/Dodge/WallCreatureCollisions.hs 87;" f
wlWlCrush' src/Dodge/WallCreatureCollisions.hs 92;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f
wlsCrush src/Dodge/WallCreatureCollisions.hs 61;" f wlsCrush src/Dodge/WallCreatureCollisions.hs 79;" f
wlsCrush' src/Dodge/WallCreatureCollisions.hs 83;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 34;" 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