Make chasms remove RoomPos within their boundaries

This commit is contained in:
2025-10-07 10:43:15 +01:00
parent 4cc5477f07
commit e9178f9643
12 changed files with 280 additions and 256 deletions
+14 -8
View File
@@ -1,5 +1,6 @@
{-# LANGUAGE StrictData #-} {-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE LambdaCase #-}
module Dodge.Data.Room ( module Dodge.Data.Room (
module Dodge.Data.Room, module Dodge.Data.Room,
@@ -14,8 +15,8 @@ import Geometry
data RoomPos = RoomPos data RoomPos = RoomPos
{ _rpPos :: Point2 { _rpPos :: Point2
, _rpDir :: Float , _rpDir :: Float
, _rpType :: S.Set RoomPosType , _rpFlags :: S.Set RoomPosFlag
, _rpLinkStatus :: RPLinkStatus , _rpType :: RPLinkStatus
, _rpPlacementUse :: S.Set UsedPos , _rpPlacementUse :: S.Set UsedPos
} }
deriving (Eq, Ord, Show) deriving (Eq, Ord, Show)
@@ -53,6 +54,7 @@ data RoomWire
= --RoomWire Point2 Float = --RoomWire Point2 Float
WallWire Point2 Float Float WallWire Point2 Float Float
-- the link constructors should probably be combined in some way
data RPLinkStatus data RPLinkStatus
= UsedOutLink = UsedOutLink
{ _rplsType :: S.Set RoomLinkType { _rplsType :: S.Set RoomLinkType
@@ -64,16 +66,20 @@ data RPLinkStatus
, _rplsInRoomID :: Int , _rplsInRoomID :: Int
} }
| UnusedLink {_rplsType :: S.Set RoomLinkType} | UnusedLink {_rplsType :: S.Set RoomLinkType}
| PathNodeRP | NotLink {_rpOnPath :: Bool}
| NotLink
deriving (Eq, Ord, Show) deriving (Eq, Ord, Show)
notLink :: RPLinkStatus -> Bool
notLink = \case
NotLink {} -> True
_ -> False
data PathFromEdge = PathFromEdge CardinalPoint Int data PathFromEdge = PathFromEdge CardinalPoint Int
deriving (Eq, Ord, Show) deriving (Eq, Ord, Show)
data RoomPosType data RoomPosFlag
= RoomPosOnGrid {_onPathFromEdges :: S.Set PathFromEdge} = RoomPosOnGrid {_onGridFromEdges :: S.Set PathFromEdge}
| RoomPosOffGrid {_offPathFromEdges :: S.Set PathFromEdge} | RoomPosOffGrid {_offGridFromEdges :: S.Set PathFromEdge}
deriving (Eq, Ord, Show) deriving (Eq, Ord, Show)
data UsedPos data UsedPos
@@ -85,5 +91,5 @@ data UsedPos
makeLenses ''RoomLink makeLenses ''RoomLink
makeLenses ''RoomPos makeLenses ''RoomPos
makeLenses ''RoomPosType makeLenses ''RoomPosFlag
makeLenses ''RPLinkStatus makeLenses ''RPLinkStatus
+4 -4
View File
@@ -168,21 +168,21 @@ gameRoomFromRoom rm =
[ p +.+ 10 *.* unitVectorAtAngle a [ p +.+ 10 *.* unitVectorAtAngle a
, p -.- 10 *.* unitVectorAtAngle a , p -.- 10 *.* unitVectorAtAngle a
] ]
filterUnusedLinks rp = case _rpLinkStatus rp of filterUnusedLinks rp = case _rpType rp of
UnusedLink{} -> Just $ _rpPos rp UnusedLink{} -> Just $ _rpPos rp
_ -> Nothing _ -> Nothing
filterUsedLinks rp = case _rpLinkStatus rp of filterUsedLinks rp = case _rpType rp of
UsedOutLink{} -> doubleShift (_rpPos rp) (_rpDir rp) UsedOutLink{} -> doubleShift (_rpPos rp) (_rpDir rp)
UsedInLink{} -> doubleShift (_rpPos rp) (_rpDir rp) UsedInLink{} -> doubleShift (_rpPos rp) (_rpDir rp)
_ -> [] _ -> []
undir rp = case _rpLinkStatus rp of undir rp = case _rpType rp of
UsedOutLink{} -> ma UsedOutLink{} -> ma
UsedInLink{} -> ma UsedInLink{} -> ma
_ -> Nothing _ -> Nothing
where where
ma = Just $ 0.5 * pi + _rpDir rp + snd (_rmShift rm) ma = Just $ 0.5 * pi + _rpDir rp + snd (_rmShift rm)
closePoints x y = roundPoint2 x == roundPoint2 y closePoints x y = roundPoint2 x == roundPoint2 y
getDir (rp : xs) = case _rpLinkStatus rp of getDir (rp : xs) = case _rpType rp of
UsedInLink{} -> _rpDir rp + snd (_rmShift rm) UsedInLink{} -> _rpDir rp + snd (_rmShift rm)
_ -> getDir xs _ -> getDir xs
getDir _ = 0 -- fallback getDir _ = 0 -- fallback
+5 -2
View File
@@ -126,7 +126,8 @@ placeSpotID rid ps pt w = case pt of
w w
PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w
PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w
PutPPlate pp -> plNewUpID (gwWorld . cWorld . lWorld . pressPlates) ppID (mvPP p rot pp) w PutPPlate pp
-> plNewUpID (gwWorld . cWorld . lWorld . pressPlates) ppID (mvPP p rot pp) w
RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w
PutDoor col eo f pss -> plDoor col eo f (map (bimap doShift doShift) pss) w PutDoor col eo f pss -> plDoor col eo f (map (bimap doShift doShift) pss) w
PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w
@@ -143,7 +144,9 @@ placeSpotID rid ps pt w = case pt of
PutNothing -> (0, w) PutNothing -> (0, w)
PutID i -> (i, w) PutID i -> (i, w)
PutWorldUpdate f -> (0, w & f rid ps) PutWorldUpdate f -> (0, w & f rid ps)
PutChasm ps' -> (0, w & gwWorld . cWorld . chasms .:~ map doShift ps') PutChasm ps' -> (0, w & gwWorld . cWorld . chasms .:~ map doShift ps'
& genRooms . ix rid . rmPos %~ filter (\rp -> not $ pointInPoly (_rpPos rp) ps')
)
PutLabel{} -> (0, w) PutLabel{} -> (0, w)
where where
p@(V2 px py) = _psPos ps p@(V2 px py) = _psPos ps
+24 -24
View File
@@ -1,9 +1,9 @@
--{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
module Dodge.PlacementSpot ( module Dodge.PlacementSpot (
atFstLnkOut, atFstLnkOut,
atNthLnkOutShiftBy, atNthLnkOutShiftBy,
rpIsOnGrid, rpIsOnGrid,
rpIsOffPath, rpIsOffGrid,
rpOffPathFromEdge, rpOffPathFromEdge,
useUnusedLnk, useUnusedLnk,
psRandRanges, psRandRanges,
@@ -59,35 +59,35 @@ randDirPS ps = do
return $ setDirPS a ps return $ setDirPS a ps
isUnusedLnk :: RoomPos -> Room -> Bool isUnusedLnk :: RoomPos -> Room -> Bool
isUnusedLnk rp _ = case _rpLinkStatus rp of isUnusedLnk rp _ = case _rpType rp of
UnusedLink{} -> null $ _rpPlacementUse rp UnusedLink{} -> null $ _rpPlacementUse rp
_ -> False _ -> False
anyUnusedSpot :: PlacementSpot anyUnusedSpot :: PlacementSpot
anyUnusedSpot = rprBool $ \rp _ -> _rpLinkStatus rp == NotLink && null (_rpPlacementUse rp) anyUnusedSpot = rprBool $ \rp _ -> notLink (_rpType rp) && null (_rpPlacementUse rp)
psposAddLabel :: RoomPosType -> PlacementSpot -> PlacementSpot psposAddLabel :: RoomPosFlag -> PlacementSpot -> PlacementSpot
psposAddLabel lab = psSelect %~ (\f rp r -> f rp r & _Just . _2 . rpType %~ S.insert lab) psposAddLabel lab = psSelect %~ (\f rp r -> f rp r & _Just . _2 . rpFlags %~ S.insert lab)
rprBool :: (RoomPos -> Room -> Bool) -> PlacementSpot rprBool :: (RoomPos -> Room -> Bool) -> PlacementSpot
rprBool t = PSPos (useRoomPosRoomCond (S.singleton UsedPosLow) t) (const id) Nothing rprBool t = PSPos (useRoomPosRoomCond (S.singleton UsedPosLow) t) (const id) Nothing
rpIsOnGrid :: RoomPos -> Bool rpIsOnGrid :: RoomPos -> Bool
rpIsOnGrid = any f . _rpType rpIsOnGrid = any f . _rpFlags
where where
f RoomPosOnGrid{} = True f RoomPosOnGrid{} = True
f _ = False f _ = False
rpIsOffPath :: RoomPos -> Bool rpIsOffGrid :: RoomPos -> Bool
rpIsOffPath = any f . _rpType rpIsOffGrid = any f . _rpFlags
where where
f RoomPosOffGrid{} = True f RoomPosOffGrid{} = True
f _ = False f _ = False
rpOffPathFromEdge :: PathFromEdge -> RoomPos -> Bool rpOffPathFromEdge :: PathFromEdge -> RoomPos -> Bool
rpOffPathFromEdge pe = any f . _rpType rpOffPathFromEdge pe = any f . _rpFlags
where where
f rt = maybe False (pe `elem`) (rt ^? offPathFromEdges) f rt = maybe False (pe `elem`) (rt ^? offGridFromEdges)
resetPLUse :: PlacementSpot -> PlacementSpot resetPLUse :: PlacementSpot -> PlacementSpot
resetPLUse (PSPos f g fallback) = PSPos f' g fallback resetPLUse (PSPos f g fallback) = PSPos f' g fallback
@@ -118,7 +118,7 @@ rprBoolShift t shift = PSPos f (const id) Nothing
unusedSpotAwayFromLink :: Float -> PlacementSpot unusedSpotAwayFromLink :: Float -> PlacementSpot
unusedSpotAwayFromLink x = rprBool $ \rp r -> unusedSpotAwayFromLink x = rprBool $ \rp r ->
_rpLinkStatus rp == NotLink notLink (_rpType rp)
&& null (_rpPlacementUse rp) && null (_rpPlacementUse rp)
&& all ((> x) . dist (_rpPos rp)) (usedRoomLinkPoss r) && all ((> x) . dist (_rpPos rp)) (usedRoomLinkPoss r)
@@ -132,11 +132,11 @@ unusedOffPathAwayFromLink :: Float -> PlacementSpot
unusedOffPathAwayFromLink x = rprBool $ \rp r -> unusedOffPathAwayFromLink x = rprBool $ \rp r ->
null (_rpPlacementUse rp) null (_rpPlacementUse rp)
&& all ((> x) . dist (_rpPos rp)) (usedRoomLinkPoss r) && all ((> x) . dist (_rpPos rp)) (usedRoomLinkPoss r)
&& rpIsOffPath rp && rpIsOffGrid rp
unusedSpotAwayFromInLink :: Float -> PlacementSpot unusedSpotAwayFromInLink :: Float -> PlacementSpot
unusedSpotAwayFromInLink x = rprBool $ \rp r -> unusedSpotAwayFromInLink x = rprBool $ \rp r ->
_rpLinkStatus rp == NotLink notLink (_rpType rp)
&& null (_rpPlacementUse rp) && null (_rpPlacementUse rp)
&& all ((> x) . dist (_rpPos rp)) (usedRoomInLinkPoss r) && all ((> x) . dist (_rpPos rp)) (usedRoomInLinkPoss r)
@@ -159,12 +159,12 @@ twoRoomPoss cond1 cond2 f = Placement (rprBool cond1) PutNothing Nothing Nothing
-- _ -> False -- _ -> False
isInLnk :: RoomPos -> Bool isInLnk :: RoomPos -> Bool
isInLnk rp = case _rpLinkStatus rp of isInLnk rp = case _rpType rp of
UsedInLink{} -> null $ _rpPlacementUse rp UsedInLink{} -> null $ _rpPlacementUse rp
_ -> False _ -> False
isOutLnk :: RoomPos -> Bool isOutLnk :: RoomPos -> Bool
isOutLnk rp = case _rpLinkStatus rp of isOutLnk rp = case _rpType rp of
UsedOutLink{} -> null $ _rpPlacementUse rp UsedOutLink{} -> null $ _rpPlacementUse rp
_ -> False _ -> False
@@ -172,7 +172,7 @@ useUnusedLnk :: PlacementSpot
useUnusedLnk = rprBool isUnusedLnk useUnusedLnk = rprBool isUnusedLnk
isUsedLnkUnplaced :: RoomPos -> Bool isUsedLnkUnplaced :: RoomPos -> Bool
isUsedLnkUnplaced rp = case _rpLinkStatus rp of isUsedLnkUnplaced rp = case _rpType rp of
UsedOutLink{} -> null (_rpPlacementUse rp) UsedOutLink{} -> null (_rpPlacementUse rp)
UsedInLink{} -> null (_rpPlacementUse rp) UsedInLink{} -> null (_rpPlacementUse rp)
_ -> False _ -> False
@@ -188,28 +188,28 @@ useRoomPosRoomCond xs t rp r
| otherwise = Nothing | otherwise = Nothing
isUnusedLnkType :: RoomLinkType -> RoomPos -> Room -> Bool isUnusedLnkType :: RoomLinkType -> RoomPos -> Room -> Bool
isUnusedLnkType rlt rp _ = case _rpLinkStatus rp of isUnusedLnkType rlt rp _ = case _rpType rp of
UnusedLink{_rplsType = rlts} -> rlt `S.member` rlts UnusedLink{_rplsType = rlts} -> rlt `S.member` rlts
&& null (_rpPlacementUse rp) && null (_rpPlacementUse rp)
_ -> False _ -> False
unusedSpotNearInLink :: Float -> PlacementSpot unusedSpotNearInLink :: Float -> PlacementSpot
unusedSpotNearInLink x = rprBool $ \rp r -> unusedSpotNearInLink x = rprBool $ \rp r ->
_rpLinkStatus rp == NotLink notLink (_rpType rp)
&& null (_rpPlacementUse rp) && null (_rpPlacementUse rp)
&& any ((< x) . dist (_rpPos rp)) (usedRoomInLinkPoss r) && any ((< x) . dist (_rpPos rp)) (usedRoomInLinkPoss r)
usedRoomInLinkPoss :: Room -> [Point2] usedRoomInLinkPoss :: Room -> [Point2]
usedRoomInLinkPoss r = mapMaybe f $ _rmPos r usedRoomInLinkPoss r = mapMaybe f $ _rmPos r
where where
f rp = case _rpLinkStatus rp of f rp = case _rpType rp of
UsedInLink{} -> Just $ _rpPos rp UsedInLink{} -> Just $ _rpPos rp
_ -> Nothing _ -> Nothing
usedRoomLinkPoss :: Room -> [Point2] usedRoomLinkPoss :: Room -> [Point2]
usedRoomLinkPoss r = mapMaybe f $ _rmPos r usedRoomLinkPoss r = mapMaybe f $ _rmPos r
where where
f rp = case _rpLinkStatus rp of f rp = case _rpType rp of
UsedInLink{} -> Just $ _rpPos rp UsedInLink{} -> Just $ _rpPos rp
UsedOutLink{} -> Just $ _rpPos rp UsedOutLink{} -> Just $ _rpPos rp
_ -> Nothing _ -> Nothing
@@ -218,12 +218,12 @@ atFstLnkOut :: PlacementSpot
atFstLnkOut = atNthLinkOut 0 atFstLnkOut = atNthLinkOut 0
atNthLinkOut :: Int -> PlacementSpot atNthLinkOut :: Int -> PlacementSpot
atNthLinkOut n = rprBool $ \rp _ -> rp ^? rpLinkStatus . rplsChildNum == Just n atNthLinkOut n = rprBool $ \rp _ -> rp ^? rpType . rplsChildNum == Just n
atNthLnkOutShiftBy :: Int -> ((Point2, Float) -> ((Point2, Float),S.Set UsedPos)) atNthLnkOutShiftBy :: Int -> ((Point2, Float) -> ((Point2, Float),S.Set UsedPos))
-> PlacementSpot -> PlacementSpot
atNthLnkOutShiftBy n = rprBoolShift $ atNthLnkOutShiftBy n = rprBoolShift $
\rp _ -> rp ^? rpLinkStatus . rplsChildNum == Just n \rp _ -> rp ^? rpType . rplsChildNum == Just n
--atNthLnkOutShiftBy n theshift = PSPos f (const id) Nothing --atNthLnkOutShiftBy n theshift = PSPos f (const id) Nothing
-- where -- where
@@ -253,7 +253,7 @@ shiftByV2 x (p, a) = (p +.+ rotateV a x, a)
-- this should probably check the placement use, but so should others: should -- this should probably check the placement use, but so should others: should
-- unify these -- unify these
useLnkRoomPos :: S.Set UsedPos -> RoomPos -> Room -> Maybe (PlacementSpot, RoomPos) useLnkRoomPos :: S.Set UsedPos -> RoomPos -> Room -> Maybe (PlacementSpot, RoomPos)
useLnkRoomPos xs rp _ = case _rpLinkStatus rp of useLnkRoomPos xs rp _ = case _rpType rp of
UnusedLink{} -> Just (PS (_rpPos rp) (_rpDir rp), rp & rpPlacementUse <>~ xs) UnusedLink{} -> Just (PS (_rpPos rp) (_rpDir rp), rp & rpPlacementUse <>~ xs)
_ -> Nothing _ -> Nothing
+3
View File
@@ -25,6 +25,7 @@ roomNgon n x = do
, _rmBound = [poly] , _rmBound = [poly]
, _rmFloor = Tiled [makeTileFromPoly poly 2] , _rmFloor = Tiled [makeTileFromPoly poly 2]
, _rmName = show n ++ "gon" , _rmName = show n ++ "gon"
, _rmPos = poss
} }
where where
rot = 2 * pi / fromIntegral n rot = 2 * pi / fromIntegral n
@@ -34,6 +35,8 @@ roomNgon n x = do
path2 = concat $ zipWith g path1 (tail path1 <> [head path1]) path2 = concat $ zipWith g path1 (tail path1 <> [head path1])
path3 = loopPairs path2 <> fmap (,V2 0 0) path2 path3 = loopPairs path2 <> fmap (,V2 0 0) path2
path4 = concatMap doublePair path3 path4 = concatMap doublePair path3
poss = map (\p -> RoomPos p 0 mempty (NotLink True) mempty)
(V2 0 0 : path1)
g z y = [z, 0.5 * (z + y)] g z y = [z, 0.5 * (z + y)]
lnks = lnks =
sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd) sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd)
+5 -5
View File
@@ -87,8 +87,8 @@ roomPillarsSquare = do
++ concatMap (replicate nlns . makepill) [East, West] ++ concatMap (replicate nlns . makepill) [East, West]
where where
makepill edge = sps (rprBool $ \rp _ -> t edge rp) smallPillar makepill edge = sps (rprBool $ \rp _ -> t edge rp) smallPillar
t edge rp = any (f edge) (_rpType rp) && null (_rpPlacementUse rp) t edge rp = any (f edge) (_rpFlags rp) && null (_rpPlacementUse rp)
f edge rpt = maybe False (PathFromEdge edge 0 `S.member`) (rpt ^? offPathFromEdges) f edge rpt = maybe False (PathFromEdge edge 0 `S.member`) (rpt ^? offGridFromEdges)
roomPillarsPassage :: RandomGen g => State g Room roomPillarsPassage :: RandomGen g => State g Room
roomPillarsPassage = do roomPillarsPassage = do
@@ -106,16 +106,16 @@ roomPillarsPassage = do
roomPillars :: RandomGen g => Float -> Float -> Float -> Int -> Int -> State g Room roomPillars :: RandomGen g => Float -> Float -> Float -> Int -> Int -> State g Room
roomPillars pillarsize w h wn hn = do roomPillars pillarsize w h wn hn = do
let rm = roomRect w h wn hn let rm = roomRect w h wn hn
npillars = length $ filter rpIsOffPath $ _rmPos rm npillars = length $ filter rpIsOffGrid $ _rmPos rm
plmnts = plmnts =
replicate replicate
npillars npillars
( blockPillar (0.5 * pilw) (0.5 * pilh) & plSpot ( blockPillar (0.5 * pilw) (0.5 * pilh) & plSpot
.~ rprBool .~ rprBool
( \rp _ -> ( \rp _ ->
rpIsOffPath rp rpIsOffGrid rp
&& null (_rpPlacementUse rp) && null (_rpPlacementUse rp)
&& _rpLinkStatus rp == NotLink && notLink (_rpType rp)
) )
) )
addGirderLights $ addGirderLights $
+5 -5
View File
@@ -98,7 +98,7 @@ roomRect x y xn yn =
pth = linksGridToPath lnks pth = linksGridToPath lnks
$ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn) $ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
makeonpos (p, a) = RoomPos p 0 (S.singleton $ RoomPosOnGrid $ makerpedges a) makeonpos (p, a) = RoomPos p 0 (S.singleton $ RoomPosOnGrid $ makerpedges a)
NotLink mempty (NotLink True) mempty
makerpedges (a, b) = makerpedges (a, b) =
S.fromList S.fromList
[ PathFromEdge South b [ PathFromEdge South b
@@ -109,7 +109,7 @@ roomRect x y xn yn =
posps = map (over _1 (+.+ V2 20 20)) $ gridPoints'' xd (xn + 1) yd (yn + 1) posps = map (over _1 (+.+ V2 20 20)) $ gridPoints'' xd (xn + 1) yd (yn + 1)
interposps = map (over _1 (+.+ V2 (20 + xd / 2) (20 + yd / 2))) $ gridPoints'' xd xn yd yn interposps = map (over _1 (+.+ V2 (20 + xd / 2) (20 + yd / 2))) $ gridPoints'' xd xn yd yn
makeoffpos (p, a) = RoomPos makeoffpos (p, a) = RoomPos
p 0 (S.singleton $ RoomPosOffGrid $ makerpedges' a) NotLink mempty p 0 (S.singleton $ RoomPosOffGrid $ makerpedges' a) (NotLink False) mempty
makerpedges' (a, b) = makerpedges' (a, b) =
S.fromList S.fromList
[ PathFromEdge South b [ PathFromEdge South b
@@ -206,8 +206,8 @@ quarterRoomTri w = do
] ]
, _rmPmnts = b ++ [mntLS iShape (V2 (w -20) w) (V3 (w -20) (w -20) 70)] , _rmPmnts = b ++ [mntLS iShape (V2 (w -20) w) (V3 (w -20) (w -20) 70)]
, _rmPos = , _rmPos =
[ RoomPos (V2 (w -20) (w -20)) pi S.empty NotLink mempty [ RoomPos (V2 (w -20) (w -20)) pi S.empty (NotLink False) mempty
, RoomPos (V2 (w -15) (w -25)) pi S.empty NotLink mempty , RoomPos (V2 (w -15) (w -25)) pi S.empty (NotLink False) mempty
] ]
, _rmBound = [[V2 0 0, V2 w w, V2 (- w) w]] , _rmBound = [[V2 0 0, V2 w w, V2 (- w) w]]
} }
@@ -255,7 +255,7 @@ quarterRoomSquare w = do
] ]
, _rmPmnts = b ++ [blockLine (V2 (w / 2) (w / 2)) (V2 0 w)] , _rmPmnts = b ++ [blockLine (V2 (w / 2) (w / 2)) (V2 0 w)]
, _rmPos = , _rmPos =
[ RoomPos p pi S.empty NotLink mempty [ RoomPos p pi S.empty (NotLink False) mempty
| p <- [V2 20 (2 * w -40), V2 25 (2 * w -45)] | p <- [V2 20 (2 * w -40), V2 25 (2 * w -45)]
] ]
, --, _rmBound = [map toV2 [(w,w),(0,2*w),(-w,w)]] , --, _rmBound = [map toV2 [(w,w),(0,2*w),(-w,w)]]
+2 -2
View File
@@ -77,7 +77,7 @@ glassSwitchBack = do
l2 <- l2 <-
mntLightLnkCond $ mntLightLnkCond $
rprBool $ \rp _ -> rprBool $ \rp _ ->
rp ^. rpLinkStatus . rplsType . at (OnEdge West) == Just () rp ^. rpType . rplsType . at (OnEdge West) == Just ()
&& null (rp ^. rpPlacementUse) && null (rp ^. rpPlacementUse)
let hf = hgt / 5 let hf = hgt / 5
awindow h xl xr = windowLine (V2 xl h) (V2 xr h) awindow h xl xr = windowLine (V2 xl h) (V2 xr h)
@@ -207,7 +207,7 @@ weaponBetweenPillars = do
and and
[ rpIsOnGrid rp [ rpIsOnGrid rp
, null $ _rpPlacementUse rp , null $ _rpPlacementUse rp
, _rpLinkStatus rp == NotLink , notLink (_rpType rp)
, any ((< 100) . dist (_rpPos rp)) (usedRoomInLinkPoss r) , any ((< 100) . dist (_rpPos rp)) (usedRoomInLinkPoss r)
] ]
ncrits <- state $ randomR (1, 3) ncrits <- state $ randomR (1, 3)
+14 -2
View File
@@ -1,6 +1,5 @@
module Dodge.Room.Tutorial where module Dodge.Room.Tutorial where
import Dodge.Room.Pillar
import Dodge.Item.Held.Utility import Dodge.Item.Held.Utility
import Control.Monad import Control.Monad
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
@@ -39,12 +38,25 @@ import TreeHelp
--import Data.List (intersperse) --import Data.List (intersperse)
testf = PSPos (\x _ -> f x) (\_ -> id) Nothing
where
f x = case _rpType x of
NotLink{} -> Just (PS (_rpPos x) (_rpDir x), x)
_ -> Nothing
tutAnoTree :: State LayoutVars MTRS tutAnoTree :: State LayoutVars MTRS
tutAnoTree = do tutAnoTree = do
foldMTRS foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor , corDoor
, tToBTree "x" . return . cleatOnward <$> roomPillarsSquare , tToBTree "test" . return . cleatOnward <$> (roomRectAutoLinks 100 100
<&> rmPmnts <>~
[sps0 $ PutChasm $ rectNSWE 70 30 30 70
, Placement testf (PutFlIt led) Nothing Nothing (const $ const Nothing)
]
<&> rmPos .~[RoomPos 35 0 mempty (NotLink False) mempty]
-- <&> rmPos .~[]
)
, corDoor , corDoor
, tutHub , tutHub
, tutLight , tutLight
+1 -1
View File
@@ -69,7 +69,7 @@ lineOutputTerminal tls = defaultTerminal & tmBootLines .~ textInputBlurb tls
moveToSideNthOutLink :: S.Set UsedPos moveToSideNthOutLink :: S.Set UsedPos
-> Int -> RoomPos -> Room -> Maybe ((Point2, Float), S.Set UsedPos) -> Int -> RoomPos -> Room -> Maybe ((Point2, Float), S.Set UsedPos)
moveToSideNthOutLink xs i rp rm = do moveToSideNthOutLink xs i rp rm = do
j <- rp ^? rpLinkStatus . rplsChildNum j <- rp ^? rpType . rplsChildNum
guard $ i == j guard $ i == j
let rppos = _rpPos rp let rppos = _rpPos rp
rpdir = _rpDir rp rpdir = _rpDir rp
+6 -6
View File
@@ -92,8 +92,8 @@ posRms prs parenti@(parent, _) ((numChild, t@(Node childi _)) : its) tseq = do
--, _rpDir = snd (lnkPosDir outlnk) --, _rpDir = snd (lnkPosDir outlnk)
{ _rpPos = outlnk ^. rlPos { _rpPos = outlnk ^. rlPos
, _rpDir = outlnk ^. rlDir , _rpDir = outlnk ^. rlDir
, _rpType = S.empty , _rpFlags = S.empty
, _rpLinkStatus = UsedOutLink (_rlType outlnk) numChild (snd childi) , _rpType = UsedOutLink (_rlType outlnk) numChild (snd childi)
, _rpPlacementUse = mempty , _rpPlacementUse = mempty
} }
& rmChildren .:~ snd childi & rmChildren .:~ snd childi
@@ -109,8 +109,8 @@ posRms prs parenti@(parent, _) ((numChild, t@(Node childi _)) : its) tseq = do
--, _rpDir = snd (lnkPosDir outlnk) --, _rpDir = snd (lnkPosDir outlnk)
{ _rpPos = il ^. rlPos { _rpPos = il ^. rlPos
, _rpDir = il ^. rlDir , _rpDir = il ^. rlDir
, _rpType = S.empty , _rpFlags = mempty
, _rpLinkStatus = UsedInLink (_rlType il) (snd parenti) , _rpType = UsedInLink (_rlType il) (snd parenti)
, _rpPlacementUse = mempty , _rpPlacementUse = mempty
} }
shiftedt = shiftedt =
@@ -128,8 +128,8 @@ createUnusedLinkPos rm = rm & rmPos .++~ map f (_rmLinks rm)
RoomPos RoomPos
{ _rpPos = _rlPos rl { _rpPos = _rlPos rl
, _rpDir = _rlDir rl , _rpDir = _rlDir rl
, _rpType = S.empty , _rpFlags = mempty
, _rpLinkStatus = UnusedLink $ _rlType rl , _rpType = UnusedLink $ _rlType rl
, _rpPlacementUse = mempty , _rpPlacementUse = mempty
} }
+197 -197
View File
@@ -143,7 +143,7 @@ BlockDrawMempty src/Dodge/Data/Block.hs 39;" C
BlockDraws src/Dodge/Data/Block.hs 41;" C BlockDraws src/Dodge/Data/Block.hs 41;" C
BlockObstacle src/Dodge/Data/PathGraph.hs 49;" C BlockObstacle src/Dodge/Data/PathGraph.hs 49;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 16;" C BlockPart src/Dodge/Data/Wall/Structure.hs 16;" C
BlockedLink src/Dodge/Data/Room.hs 49;" C BlockedLink src/Dodge/Data/Room.hs 50;" C
BloomLayer src/Picture/Data.hs 25;" C BloomLayer src/Picture/Data.hs 25;" C
BloomNoZWrite src/Picture/Data.hs 26;" C BloomNoZWrite src/Picture/Data.hs 26;" C
Blunt src/Dodge/Data/Damage.hs 21;" C Blunt src/Dodge/Data/Damage.hs 21;" C
@@ -337,7 +337,7 @@ DecorationShape src/Dodge/Data/GenParams.hs 20;" t
DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C
DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C
DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C
DefaultRoomType src/Dodge/Data/Room.hs 31;" C DefaultRoomType src/Dodge/Data/Room.hs 32;" C
DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C
DestroyBullet src/Dodge/Data/Bullet.hs 29;" C DestroyBullet src/Dodge/Data/Bullet.hs 29;" C
DestroyItem src/Dodge/Data/Scenario.hs 7;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C
@@ -479,7 +479,7 @@ FootForward src/Dodge/Data/Creature/Stance.hs 35;" t
FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C
ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t
ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t
FromEdge src/Dodge/Data/Room.hs 48;" C FromEdge src/Dodge/Data/Room.hs 49;" C
FullRes src/Dodge/Data/Config.hs 97;" C FullRes src/Dodge/Data/Config.hs 97;" C
FullShadowFidelity src/Shape/Data.hs 24;" C FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C FullSize src/Dodge/Data/Item/Params.hs 28;" C
@@ -587,7 +587,7 @@ ImpulsesList src/Dodge/Data/ActionPlan.hs 97;" C
InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C
InDream src/Dodge/Data/Scenario.hs 19;" C InDream src/Dodge/Data/Scenario.hs 19;" C
InInv src/Dodge/Data/Item/Location.hs 27;" C InInv src/Dodge/Data/Item/Location.hs 27;" C
InLink src/Dodge/Data/Room.hs 44;" C InLink src/Dodge/Data/Room.hs 45;" C
InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C
InRealWorld src/Dodge/Data/Scenario.hs 18;" C InRealWorld src/Dodge/Data/Scenario.hs 18;" C
InSimulation src/Dodge/Data/Scenario.hs 20;" C InSimulation src/Dodge/Data/Scenario.hs 20;" C
@@ -657,7 +657,7 @@ LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 80;" C
LS src/Dodge/Data/LightSource.hs 23;" C LS src/Dodge/Data/LightSource.hs 23;" C
LSParam src/Dodge/Data/LightSource.hs 16;" t LSParam src/Dodge/Data/LightSource.hs 16;" t
LWorld src/Dodge/Data/LWorld.hs 97;" t LWorld src/Dodge/Data/LWorld.hs 97;" t
LabLink src/Dodge/Data/Room.hs 45;" C LabLink src/Dodge/Data/Room.hs 46;" C
LabSS src/Dodge/Data/Scenario.hs 97;" C LabSS src/Dodge/Data/Scenario.hs 97;" C
LabelAction src/Dodge/Data/ActionPlan.hs 79;" C LabelAction src/Dodge/Data/ActionPlan.hs 79;" C
LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C
@@ -886,33 +886,33 @@ NorthEast src/Dodge/Data/CardinalPoint.hs 13;" C
NorthEast8 src/Dodge/Data/CardinalPoint.hs 21;" C NorthEast8 src/Dodge/Data/CardinalPoint.hs 21;" C
NorthWest src/Dodge/Data/CardinalPoint.hs 16;" C NorthWest src/Dodge/Data/CardinalPoint.hs 16;" C
NorthWest8 src/Dodge/Data/CardinalPoint.hs 27;" C NorthWest8 src/Dodge/Data/CardinalPoint.hs 27;" C
NotLink src/Dodge/Data/Room.hs 67;" C NotLink src/Dodge/Data/Room.hs 69;" C
NotPushed src/Dodge/Data/Door.hs 30;" C NotPushed src/Dodge/Data/Door.hs 30;" C
Nothing' src/MaybeHelp.hs 13;" C Nothing' src/MaybeHelp.hs 13;" C
NothingID src/Dodge/Data/CrWlID.hs 12;" C NothingID src/Dodge/Data/CrWlID.hs 12;" C
NozzleAngle src/Dodge/Data/Item/Params.hs 18;" C NozzleAngle src/Dodge/Data/Item/Params.hs 18;" C
NumLight0 src/Dodge/Data/Config.hs 15;" C
NumLight1 src/Dodge/Data/Config.hs 16;" C
NumLight10 src/Dodge/Data/Config.hs 25;" C
NumLight11 src/Dodge/Data/Config.hs 26;" C
NumLight12 src/Dodge/Data/Config.hs 27;" C
NumLight13 src/Dodge/Data/Config.hs 28;" C
NumLight14 src/Dodge/Data/Config.hs 29;" C
NumLight15 src/Dodge/Data/Config.hs 30;" C
NumLight16 src/Dodge/Data/Config.hs 31;" C
NumLight17 src/Dodge/Data/Config.hs 32;" C
NumLight18 src/Dodge/Data/Config.hs 33;" C
NumLight19 src/Dodge/Data/Config.hs 34;" C
NumLight2 src/Dodge/Data/Config.hs 17;" C
NumLight20 src/Dodge/Data/Config.hs 35;" C
NumLight3 src/Dodge/Data/Config.hs 18;" C
NumLight4 src/Dodge/Data/Config.hs 19;" C
NumLight5 src/Dodge/Data/Config.hs 20;" C
NumLight6 src/Dodge/Data/Config.hs 21;" C
NumLight7 src/Dodge/Data/Config.hs 22;" C
NumLight8 src/Dodge/Data/Config.hs 23;" C
NumLight9 src/Dodge/Data/Config.hs 24;" C
NumShadowCasters src/Dodge/Data/Config.hs 14;" t NumShadowCasters src/Dodge/Data/Config.hs 14;" t
NumShadowCasters0 src/Dodge/Data/Config.hs 15;" C
NumShadowCasters1 src/Dodge/Data/Config.hs 16;" C
NumShadowCasters10 src/Dodge/Data/Config.hs 25;" C
NumShadowCasters11 src/Dodge/Data/Config.hs 26;" C
NumShadowCasters12 src/Dodge/Data/Config.hs 27;" C
NumShadowCasters13 src/Dodge/Data/Config.hs 28;" C
NumShadowCasters14 src/Dodge/Data/Config.hs 29;" C
NumShadowCasters15 src/Dodge/Data/Config.hs 30;" C
NumShadowCasters16 src/Dodge/Data/Config.hs 31;" C
NumShadowCasters17 src/Dodge/Data/Config.hs 32;" C
NumShadowCasters18 src/Dodge/Data/Config.hs 33;" C
NumShadowCasters19 src/Dodge/Data/Config.hs 34;" C
NumShadowCasters2 src/Dodge/Data/Config.hs 17;" C
NumShadowCasters20 src/Dodge/Data/Config.hs 35;" C
NumShadowCasters3 src/Dodge/Data/Config.hs 18;" C
NumShadowCasters4 src/Dodge/Data/Config.hs 19;" C
NumShadowCasters5 src/Dodge/Data/Config.hs 20;" C
NumShadowCasters6 src/Dodge/Data/Config.hs 21;" C
NumShadowCasters7 src/Dodge/Data/Config.hs 22;" C
NumShadowCasters8 src/Dodge/Data/Config.hs 23;" C
NumShadowCasters9 src/Dodge/Data/Config.hs 24;" C
OChasmWall src/Dodge/Data/Object.hs 15;" C OChasmWall src/Dodge/Data/Object.hs 15;" C
OCreature src/Dodge/Data/Object.hs 12;" C OCreature src/Dodge/Data/Object.hs 12;" C
OFloor src/Dodge/Data/Object.hs 14;" C OFloor src/Dodge/Data/Object.hs 14;" C
@@ -936,7 +936,7 @@ Object src/Dodge/Data/Object.hs 10;" t
ObjectType src/Dodge/Data/ObjectType.hs 11;" t ObjectType src/Dodge/Data/ObjectType.hs 11;" t
OnBack src/Dodge/Data/Equipment/Misc.hs 24;" C OnBack src/Dodge/Data/Equipment/Misc.hs 24;" C
OnChest src/Dodge/Data/Equipment/Misc.hs 23;" C OnChest src/Dodge/Data/Equipment/Misc.hs 23;" C
OnEdge src/Dodge/Data/Room.hs 47;" C OnEdge src/Dodge/Data/Room.hs 48;" C
OnFloor src/Dodge/Data/Item/Location.hs 36;" C OnFloor src/Dodge/Data/Item/Location.hs 36;" C
OnHead src/Dodge/Data/Equipment/Misc.hs 22;" C OnHead src/Dodge/Data/Equipment/Misc.hs 22;" C
OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 27;" C OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 27;" C
@@ -953,7 +953,7 @@ OpticScope src/Dodge/Data/Item/Scope.hs 14;" C
OptionScreen src/Dodge/Data/Universe.hs 82;" C OptionScreen src/Dodge/Data/Universe.hs 82;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t
OutAction src/Dodge/Creature/Action.hs 46;" t OutAction src/Dodge/Creature/Action.hs 46;" t
OutLink src/Dodge/Data/Room.hs 43;" C OutLink src/Dodge/Data/Room.hs 44;" C
OutsideTerminal src/Dodge/Data/Input.hs 29;" C OutsideTerminal src/Dodge/Data/Input.hs 29;" C
OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C
OverCombCombine src/Dodge/Data/Input.hs 25;" C OverCombCombine src/Dodge/Data/Input.hs 25;" C
@@ -992,7 +992,7 @@ PUMP src/Dodge/Data/Item/Combine.hs 63;" C
PaletteColor src/Color/Data.hs 14;" t PaletteColor src/Color/Data.hs 14;" t
PathEdge src/Dodge/Data/PathGraph.hs 40;" t PathEdge src/Dodge/Data/PathGraph.hs 40;" t
PathEdgeNodes src/Dodge/Data/PathGraph.hs 33;" t PathEdgeNodes src/Dodge/Data/PathGraph.hs 33;" t
PathFromEdge src/Dodge/Data/Room.hs 70;" t PathFromEdge src/Dodge/Data/Room.hs 77;" t
PathTo src/Dodge/Data/ActionPlan.hs 88;" C PathTo src/Dodge/Data/ActionPlan.hs 88;" C
Pathing src/Dodge/Data/Config.hs 76;" C Pathing src/Dodge/Data/Config.hs 76;" C
Patrol src/Dodge/Data/ActionPlan.hs 180;" C Patrol src/Dodge/Data/ActionPlan.hs 180;" C
@@ -1019,7 +1019,7 @@ Point3Q src/Geometry/Data.hs 52;" t
Point4 src/Geometry/Data.hs 41;" t Point4 src/Geometry/Data.hs 41;" t
Poison src/Dodge/Data/Damage.hs 30;" C Poison src/Dodge/Data/Damage.hs 30;" C
PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C
PolyEdge src/Dodge/Data/Room.hs 46;" C PolyEdge src/Dodge/Data/Room.hs 47;" C
PolyShad src/Picture/Data.hs 36;" C PolyShad src/Picture/Data.hs 36;" C
Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedra src/Polyhedra/Data.hs 13;" t
Polyhedron src/Polyhedra/Data.hs 13;" C Polyhedron src/Polyhedra/Data.hs 13;" C
@@ -1113,7 +1113,7 @@ RIFLE src/Dodge/Data/Item/Combine.hs 153;" C
RLAUNCHER src/Dodge/Data/Item/Combine.hs 170;" C RLAUNCHER src/Dodge/Data/Item/Combine.hs 170;" C
RLAUNCHERX src/Dodge/Data/Item/Combine.hs 171;" C RLAUNCHERX src/Dodge/Data/Item/Combine.hs 171;" C
ROSE src/Color/Data.hs 21;" C ROSE src/Color/Data.hs 21;" C
RPLinkStatus src/Dodge/Data/Room.hs 56;" t RPLinkStatus src/Dodge/Data/Room.hs 58;" t
RProps src/Dodge/Layout/Generate.hs 13;" C RProps src/Dodge/Layout/Generate.hs 13;" C
RadarBlip src/Dodge/Data/RadarBlip.hs 14;" t RadarBlip src/Dodge/Data/RadarBlip.hs 14;" t
RadarSweep src/Dodge/Data/RadarSweep.hs 19;" t RadarSweep src/Dodge/Data/RadarSweep.hs 19;" t
@@ -1126,7 +1126,7 @@ RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C
RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C
ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C
RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RecRoomSS src/Dodge/Data/Scenario.hs 103;" C
RectRoomType src/Dodge/Data/Room.hs 32;" C RectRoomType src/Dodge/Data/Room.hs 33;" C
ReducedRocketSmoke src/Dodge/Data/Projectile.hs 55;" C ReducedRocketSmoke src/Dodge/Data/Projectile.hs 55;" C
ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C Religion src/Dodge/Data/Scenario.hs 47;" C
@@ -1160,17 +1160,15 @@ RocketSmoke src/Dodge/Data/Cloud.hs 24;" C
Room src/Dodge/Data/GenWorld.hs 125;" t Room src/Dodge/Data/GenWorld.hs 125;" t
RoomClipping src/Dodge/Data/Config.hs 107;" t RoomClipping src/Dodge/Data/Config.hs 107;" t
RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t
RoomLink src/Dodge/Data/Room.hs 23;" t RoomLink src/Dodge/Data/Room.hs 24;" t
RoomLinkType src/Dodge/Data/Room.hs 42;" t RoomLinkType src/Dodge/Data/Room.hs 43;" t
RoomPos src/Dodge/Data/Room.hs 14;" t RoomPos src/Dodge/Data/Room.hs 15;" t
RoomPosExLink src/Dodge/Data/Room.hs 76;" C RoomPosFlag src/Dodge/Data/Room.hs 80;" t
RoomPosLab src/Dodge/Data/Room.hs 77;" C RoomPosOffGrid src/Dodge/Data/Room.hs 82;" C
RoomPosOffPath src/Dodge/Data/Room.hs 75;" C RoomPosOnGrid src/Dodge/Data/Room.hs 81;" C
RoomPosOnPath src/Dodge/Data/Room.hs 74;" C
RoomPosType src/Dodge/Data/Room.hs 73;" t
RoomProperties src/Dodge/Layout/Generate.hs 13;" t RoomProperties src/Dodge/Layout/Generate.hs 13;" t
RoomType src/Dodge/Data/Room.hs 30;" t RoomType src/Dodge/Data/Room.hs 31;" t
RoomWire src/Dodge/Data/Room.hs 52;" t RoomWire src/Dodge/Data/Room.hs 53;" t
RoundedFaces src/Shape/Data.hs 18;" C RoundedFaces src/Shape/Data.hs 18;" C
RunningSideEffect src/Dodge/Data/Universe.hs 69;" C RunningSideEffect src/Dodge/Data/Universe.hs 69;" C
SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C
@@ -1424,7 +1422,7 @@ Unimportant src/Shape/Data.hs 37;" C
Universe src/Dodge/Data/Universe.hs 31;" t Universe src/Dodge/Data/Universe.hs 31;" t
UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C
UnlockInv src/Dodge/Data/WorldEffect.hs 28;" C UnlockInv src/Dodge/Data/WorldEffect.hs 28;" C
UnusedLink src/Dodge/Data/Room.hs 66;" C UnusedLink src/Dodge/Data/Room.hs 68;" C
UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C
UseAttach src/Dodge/Data/Item/Use.hs 32;" C UseAttach src/Dodge/Data/Item/Use.hs 32;" C
UseBulletMod src/Dodge/Data/Item/Use.hs 37;" C UseBulletMod src/Dodge/Data/Item/Use.hs 37;" C
@@ -1450,13 +1448,13 @@ UseValue src/Dodge/Data/Item/Use.hs 35;" C
UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C
UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C
UseableWhenHeld src/Dodge/Data/UseCondition.hs 6;" C UseableWhenHeld src/Dodge/Data/UseCondition.hs 6;" C
UsedInLink src/Dodge/Data/Room.hs 62;" C UsedInLink src/Dodge/Data/Room.hs 64;" C
UsedOutLink src/Dodge/Data/Room.hs 57;" C UsedOutLink src/Dodge/Data/Room.hs 59;" C
UsedPos src/Dodge/Data/Room.hs 80;" t UsedPos src/Dodge/Data/Room.hs 85;" t
UsedPosFloor src/Dodge/Data/Room.hs 84;" C UsedPosFloor src/Dodge/Data/Room.hs 89;" C
UsedPosHigh src/Dodge/Data/Room.hs 83;" C UsedPosHigh src/Dodge/Data/Room.hs 88;" C
UsedPosLow src/Dodge/Data/Room.hs 81;" C UsedPosLow src/Dodge/Data/Room.hs 86;" C
UsedPosMid src/Dodge/Data/Room.hs 82;" C UsedPosMid src/Dodge/Data/Room.hs 87;" C
VAO src/Shader/Data.hs 64;" t VAO src/Shader/Data.hs 64;" t
VBO src/Shader/Data.hs 81;" t VBO src/Shader/Data.hs 81;" t
VF src/Polyhedra/Data.hs 21;" t VF src/Polyhedra/Data.hs 21;" t
@@ -1488,7 +1486,7 @@ 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 12;" t WallStructure src/Dodge/Data/Wall/Structure.hs 12;" t
WallWire src/Dodge/Data/Room.hs 54;" C WallWire src/Dodge/Data/Room.hs 55;" C
Walls_info src/Dodge/Data/Config.hs 75;" C Walls_info src/Dodge/Data/Config.hs 75;" C
War src/Dodge/Data/Scenario.hs 28;" C War src/Dodge/Data/Scenario.hs 28;" C
WarmTime src/Dodge/Data/Item/Params.hs 21;" C WarmTime src/Dodge/Data/Item/Params.hs 21;" C
@@ -1988,8 +1986,8 @@ _lightingWallShadShader src/Data/Preload/Render.hs 14;" f
_lights src/Dodge/Data/LWorld.hs 140;" f _lights src/Dodge/Data/LWorld.hs 140;" f
_lightsUBO src/Data/Preload/Render.hs 40;" f _lightsUBO src/Data/Preload/Render.hs 40;" f
_linearShockwaves src/Dodge/Data/LWorld.hs 120;" f _linearShockwaves src/Dodge/Data/LWorld.hs 120;" f
_linkGapEW src/Dodge/Data/Room.hs 35;" f _linkGapEW src/Dodge/Data/Room.hs 36;" f
_linkGapNS src/Dodge/Data/Room.hs 36;" f _linkGapNS src/Dodge/Data/Room.hs 37;" f
_locDT src/Dodge/Data/DoubleTree.hs 103;" f _locDT src/Dodge/Data/DoubleTree.hs 103;" f
_locDtContext src/Dodge/Data/DoubleTree.hs 102;" f _locDtContext src/Dodge/Data/DoubleTree.hs 102;" f
_locLDT src/Dodge/Data/DoubleTree.hs 63;" f _locLDT src/Dodge/Data/DoubleTree.hs 63;" f
@@ -2091,17 +2089,17 @@ _nodeMetaTree src/Dodge/Data/MetaTree.hs 16;" f
_nodeTree src/Dodge/Data/MetaTree.hs 15;" f _nodeTree src/Dodge/Data/MetaTree.hs 15;" f
_nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f
_nonInf src/Dodge/Data/CardinalPoint.hs 36;" f _nonInf src/Dodge/Data/CardinalPoint.hs 36;" f
_numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkEW src/Dodge/Data/Room.hs 34;" f
_numLinkNS src/Dodge/Data/Room.hs 34;" f _numLinkNS src/Dodge/Data/Room.hs 35;" f
_numberChasmVerxs src/Dodge/Data/CWorld.hs 31;" f _numberChasmVerxs src/Dodge/Data/CWorld.hs 31;" f
_numberFloorVerxs src/Dodge/Data/CWorld.hs 29;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 29;" f
_nzAngle src/Dodge/Data/Item/Params.hs 18;" f _nzAngle src/Dodge/Data/Item/Params.hs 18;" f
_nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f _nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f
_nzPressure src/Dodge/Data/Muzzle.hs 48;" f _nzPressure src/Dodge/Data/Muzzle.hs 48;" f
_nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f _nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f
_offPathFromEdges src/Dodge/Data/Room.hs 75;" f _offGridFromEdges src/Dodge/Data/Room.hs 82;" f
_oldMagnets src/Dodge/Data/LWorld.hs 127;" f _oldMagnets src/Dodge/Data/LWorld.hs 127;" f
_onPathFromEdges src/Dodge/Data/Room.hs 74;" f _onGridFromEdges src/Dodge/Data/Room.hs 81;" f
_opDraw src/Dodge/Data/Wall.hs 43;" f _opDraw src/Dodge/Data/Wall.hs 43;" f
_opSel src/Dodge/Data/RightButtonOptions.hs 17;" f _opSel src/Dodge/Data/RightButtonOptions.hs 17;" f
_opTexture src/Dodge/Data/Wall.hs 44;" f _opTexture src/Dodge/Data/Wall.hs 44;" f
@@ -2238,16 +2236,16 @@ _reverseAmount src/Dodge/Data/World.hs 72;" f
_reverseAmount src/Dodge/Data/World.hs 76;" f _reverseAmount src/Dodge/Data/World.hs 76;" f
_rkHoming src/Dodge/Data/Projectile.hs 35;" f _rkHoming src/Dodge/Data/Projectile.hs 35;" f
_rkSmoke src/Dodge/Data/Projectile.hs 36;" f _rkSmoke src/Dodge/Data/Projectile.hs 36;" f
_rlDir src/Dodge/Data/Room.hs 26;" f _rlDir src/Dodge/Data/Room.hs 27;" f
_rlPos src/Dodge/Data/Room.hs 25;" f _rlPos src/Dodge/Data/Room.hs 26;" f
_rlType src/Dodge/Data/Room.hs 24;" f _rlType src/Dodge/Data/Room.hs 25;" f
_rmBound src/Dodge/Data/GenWorld.hs 140;" f _rmBound src/Dodge/Data/GenWorld.hs 140;" f
_rmChildren src/Dodge/Data/GenWorld.hs 151;" f _rmChildren src/Dodge/Data/GenWorld.hs 151;" f
_rmClusterStatus src/Dodge/Data/GenWorld.hs 153;" f _rmClusterStatus src/Dodge/Data/GenWorld.hs 153;" f
_rmConnectsTo src/Dodge/Data/GenWorld.hs 148;" f _rmConnectsTo src/Dodge/Data/GenWorld.hs 148;" f
_rmEndWires src/Dodge/Data/GenWorld.hs 147;" f _rmEndWires src/Dodge/Data/GenWorld.hs 147;" f
_rmFloor src/Dodge/Data/GenWorld.hs 141;" f _rmFloor src/Dodge/Data/GenWorld.hs 141;" f
_rmHeight src/Dodge/Data/Room.hs 38;" f _rmHeight src/Dodge/Data/Room.hs 39;" f
_rmInPmnt src/Dodge/Data/GenWorld.hs 139;" f _rmInPmnt src/Dodge/Data/GenWorld.hs 139;" f
_rmLinkEff src/Dodge/Data/GenWorld.hs 129;" f _rmLinkEff src/Dodge/Data/GenWorld.hs 129;" f
_rmLinks src/Dodge/Data/GenWorld.hs 127;" f _rmLinks src/Dodge/Data/GenWorld.hs 127;" f
@@ -2263,18 +2261,19 @@ _rmShift src/Dodge/Data/GenWorld.hs 143;" f
_rmStartWires src/Dodge/Data/GenWorld.hs 146;" f _rmStartWires src/Dodge/Data/GenWorld.hs 146;" f
_rmType src/Dodge/Data/GenWorld.hs 152;" f _rmType src/Dodge/Data/GenWorld.hs 152;" f
_rmViewpoints src/Dodge/Data/GenWorld.hs 144;" f _rmViewpoints src/Dodge/Data/GenWorld.hs 144;" f
_rmWidth src/Dodge/Data/Room.hs 37;" f _rmWidth src/Dodge/Data/Room.hs 38;" f
_rpDir src/Dodge/Data/Room.hs 16;" f _rpDir src/Dodge/Data/Room.hs 17;" f
_rpLinkStatus src/Dodge/Data/Room.hs 18;" f _rpFlags src/Dodge/Data/Room.hs 18;" f
_rpPlacementUse src/Dodge/Data/Room.hs 19;" f _rpOnPath src/Dodge/Data/Room.hs 69;" f
_rpPos src/Dodge/Data/Room.hs 15;" f _rpPlacementUse src/Dodge/Data/Room.hs 20;" f
_rpType src/Dodge/Data/Room.hs 17;" f _rpPos src/Dodge/Data/Room.hs 16;" f
_rplsChildNum src/Dodge/Data/Room.hs 59;" f _rpType src/Dodge/Data/Room.hs 19;" f
_rplsInRoomID src/Dodge/Data/Room.hs 64;" f _rplsChildNum src/Dodge/Data/Room.hs 61;" f
_rplsOutRoomID src/Dodge/Data/Room.hs 60;" f _rplsInRoomID src/Dodge/Data/Room.hs 66;" f
_rplsType src/Dodge/Data/Room.hs 58;" f _rplsOutRoomID src/Dodge/Data/Room.hs 62;" f
_rplsType src/Dodge/Data/Room.hs 63;" f _rplsType src/Dodge/Data/Room.hs 60;" f
_rplsType src/Dodge/Data/Room.hs 66;" f _rplsType src/Dodge/Data/Room.hs 65;" f
_rplsType src/Dodge/Data/Room.hs 68;" f
_rsAR src/Dodge/Data/RadarSweep.hs 25;" f _rsAR src/Dodge/Data/RadarSweep.hs 25;" f
_rsMapper src/Dodge/Data/RadarSweep.hs 24;" f _rsMapper src/Dodge/Data/RadarSweep.hs 24;" f
_rsObject src/Dodge/Data/RadarSweep.hs 22;" f _rsObject src/Dodge/Data/RadarSweep.hs 22;" f
@@ -2588,7 +2587,7 @@ addIndefiniteArticle src/StringHelp.hs 17;" f
addNodes src/Dodge/Path.hs 115;" f addNodes src/Dodge/Path.hs 115;" f
addPane src/Dodge/Placement/PlaceSpot.hs 169;" f addPane src/Dodge/Placement/PlaceSpot.hs 169;" f
addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f
addPointPolygon src/Geometry/Polygon.hs 120;" f addPointPolygon src/Geometry/Polygon.hs 133;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
addRandomGirderEW src/Dodge/Room/Girder.hs 9;" f addRandomGirderEW src/Dodge/Room/Girder.hs 9;" f
@@ -2631,7 +2630,7 @@ andOrRegex src/Dodge/DisplayInventory.hs 78;" f
angleBetween src/Geometry.hs 161;" f angleBetween src/Geometry.hs 161;" f
angleVV src/Geometry/Vector.hs 57;" f angleVV src/Geometry/Vector.hs 57;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f angleVV3 src/Geometry/Vector3D.hs 122;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 67;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 338;" f anythingHitCirc src/Dodge/Base/Collide.hs 338;" f
applyCME src/Dodge/HeldUse.hs 361;" f applyCME src/Dodge/HeldUse.hs 361;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f
@@ -2676,12 +2675,12 @@ arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 9;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f
assignPushDoors src/Dodge/LevelGen.hs 35;" f assignPushDoors src/Dodge/LevelGen.hs 35;" f
atFstLnkOut src/Dodge/PlacementSpot.hs 224;" f atFstLnkOut src/Dodge/PlacementSpot.hs 217;" f
atFstLnkOutShiftBy src/Dodge/PlacementSpot.hs 244;" f atFstLnkOutShiftBy src/Dodge/PlacementSpot.hs 237;" f
atFstLnkOutShiftInward src/Dodge/PlacementSpot.hs 247;" f atFstLnkOutShiftInward src/Dodge/PlacementSpot.hs 240;" f
atNthLinkOut src/Dodge/PlacementSpot.hs 227;" f atNthLinkOut src/Dodge/PlacementSpot.hs 220;" f
atNthLnkOutShiftBy src/Dodge/PlacementSpot.hs 230;" f atNthLnkOutShiftBy src/Dodge/PlacementSpot.hs 223;" f
atNthLnkOutShiftInward src/Dodge/PlacementSpot.hs 250;" f atNthLnkOutShiftInward src/Dodge/PlacementSpot.hs 243;" f
attachBranch src/Dodge/Tree/Compose.hs 83;" f attachBranch src/Dodge/Tree/Compose.hs 83;" f
attachInfo src/Dodge/Item/Info.hs 58;" f attachInfo src/Dodge/Item/Info.hs 58;" f
attachList src/Dodge/Tree/Compose.hs 80;" f attachList src/Dodge/Tree/Compose.hs 80;" f
@@ -2697,7 +2696,7 @@ autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f
autoPistol src/Dodge/Item/Held/Stick.hs 49;" f autoPistol src/Dodge/Item/Held/Stick.hs 49;" f
autoRifle src/Dodge/Item/Held/Cane.hs 27;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f
awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f
axisInt src/Geometry/Intersect.hs 257;" f axisInt src/Geometry/Intersect.hs 262;" f
azure src/Color.hs 22;" f azure src/Color.hs 22;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
@@ -2706,7 +2705,7 @@ backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 202;" f backpackShape src/Dodge/Item/Draw/SPic.hs 202;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f
bangConeShape src/Dodge/Item/Draw/SPic.hs 317;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 319;" f
bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
@@ -2714,18 +2713,18 @@ bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 70;" f barrelShape src/Dodge/Render/ShapePicture.hs 70;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 420;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 422;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 158;" f baseCI src/Dodge/Item/Grammar.hs 158;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 337;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 339;" f
baseFloorTileSize src/Tile.hs 45;" f baseFloorTileSize src/Tile.hs 45;" f
baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 340;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 342;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 417;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 419;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 405;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 407;" f
baseShoulder src/Dodge/Creature/Picture.hs 116;" f baseShoulder src/Dodge/Creature/Picture.hs 116;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 314;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 316;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 306;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 308;" f
baseStickSpread src/Dodge/HeldUse.hs 311;" f baseStickSpread src/Dodge/HeldUse.hs 311;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f
basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f
@@ -2810,7 +2809,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f buttonFlip src/Dodge/Button/Event.hs 17;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
cChasm src/Dodge/Room/Tutorial.hs 108;" f cChasm src/Dodge/Room/Tutorial.hs 109;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f 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
@@ -2829,8 +2828,8 @@ cenLasTur src/Dodge/Room/LasTurret.hs 25;" f
centerText src/Picture/Base.hs 184;" f centerText src/Picture/Base.hs 184;" f
centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f
centerVaultRoom src/Dodge/Room/Procedural.hs 291;" f centerVaultRoom src/Dodge/Room/Procedural.hs 291;" f
centroid src/Geometry/Polygon.hs 154;" f centroid src/Geometry/Polygon.hs 167;" f
centroidNum src/Geometry/Polygon.hs 157;" f centroidNum src/Geometry/Polygon.hs 170;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainPairs src/Geometry.hs 363;" f chainPairs src/Geometry.hs 363;" f
changeSwapOther src/Dodge/Inventory.hs 140;" f changeSwapOther src/Dodge/Inventory.hs 140;" f
@@ -2844,7 +2843,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 176;" f
chasmTest src/Dodge/Creature/Update.hs 131;" f chasmTest src/Dodge/Creature/Update.hs 131;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2872,7 +2871,7 @@ chooseMovementPistol src/Dodge/Humanoid.hs 203;" f
chooseMovementPistol' src/Dodge/Humanoid.hs 208;" f chooseMovementPistol' src/Dodge/Humanoid.hs 208;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f
circHitWall src/Dodge/Base/Collide.hs 232;" f circHitWall src/Dodge/Base/Collide.hs 232;" f
circInPolygon src/Geometry/Polygon.hs 88;" f circInPolygon src/Geometry/Polygon.hs 101;" f
circOnAnyCr src/Dodge/Base/Collide.hs 287;" f circOnAnyCr src/Dodge/Base/Collide.hs 287;" f
circOnSeg src/Geometry.hs 102;" f circOnSeg src/Geometry.hs 102;" f
circOnSegNoEndpoints src/Geometry.hs 92;" f circOnSegNoEndpoints src/Geometry.hs 92;" f
@@ -2908,9 +2907,9 @@ closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
closeObjectInfo src/Dodge/Render/HUD.hs 226;" f closeObjectInfo src/Dodge/Render/HUD.hs 226;" f
closestCreatureID src/Dodge/Debug.hs 118;" f closestCreatureID src/Dodge/Debug.hs 118;" f
closestPointOnLine src/Geometry/Intersect.hs 281;" f closestPointOnLine src/Geometry/Intersect.hs 286;" f
closestPointOnLineParam src/Geometry/Intersect.hs 297;" f closestPointOnLineParam src/Geometry/Intersect.hs 302;" f
closestPointOnSeg src/Geometry/Intersect.hs 312;" f closestPointOnSeg src/Geometry/Intersect.hs 317;" f
cloudEffect src/Dodge/Update.hs 779;" f cloudEffect src/Dodge/Update.hs 779;" f
cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f
clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f
@@ -2970,8 +2969,8 @@ constructEdges src/Polyhedra.hs 34;" f
constructEdgesList src/Polyhedra.hs 43;" f constructEdgesList src/Polyhedra.hs 43;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 402;" f continueTerminal src/Dodge/Update/Input/InGame.hs 402;" f
convexHull src/Geometry/Polygon.hs 128;" f convexHull src/Geometry/Polygon.hs 141;" f
convexHullSafe src/Geometry/Polygon.hs 135;" f convexHullSafe src/Geometry/Polygon.hs 148;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f
coolMachinePistol src/Dodge/Creature/State.hs 101;" f coolMachinePistol src/Dodge/Creature/State.hs 101;" f
coolMinigun src/Dodge/Creature/State.hs 94;" f coolMinigun src/Dodge/Creature/State.hs 94;" f
@@ -3144,7 +3143,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f
dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
defDamageMaterial src/Dodge/Material/Damage.hs 22;" f defDamageMaterial src/Dodge/Material/Damage.hs 22;" f
defLSPic src/Dodge/LightSource/Draw.hs 10;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f
defSPic src/Dodge/Item/Draw/SPic.hs 323;" f defSPic src/Dodge/Item/Draw/SPic.hs 325;" f
defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f
defaultAimingCrit src/Dodge/Default/Creature.hs 107;" f defaultAimingCrit src/Dodge/Default/Creature.hs 107;" f
defaultAudition src/Dodge/Default/Creature.hs 92;" f defaultAudition src/Dodge/Default/Creature.hs 92;" f
@@ -3215,7 +3214,7 @@ destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 160;" f destroyProjectile src/Dodge/Projectile/Update.hs 160;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 467;" f detectorColor src/Dodge/Item/Draw/SPic.hs 469;" f
detectorInfo src/Dodge/Item/Info.hs 224;" f detectorInfo src/Dodge/Item/Info.hs 224;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1228;" f determineProjectileTracking src/Dodge/HeldUse.hs 1228;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
@@ -3588,12 +3587,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f
flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 408;" f flamerPic src/Dodge/Item/Draw/SPic.hs 410;" f
flareCircleAt src/Dodge/HeldUse.hs 687;" f flareCircleAt src/Dodge/HeldUse.hs 687;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f
flatLookupItems src/Dodge/Combine.hs 38;" f flatLookupItems src/Dodge/Combine.hs 38;" f
flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f
flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 454;" f flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 456;" f
fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f
fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f
flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f
@@ -3613,7 +3612,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" f
floorWire src/Dodge/Wire.hs 13;" f floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldMTRS src/Dodge/Room/Tutorial.hs 53;" f foldMTRS src/Dodge/Room/Tutorial.hs 54;" f
foldPairs src/ListHelp.hs 37;" f foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 39;" f followImpulse src/Dodge/Creature/Impulse.hs 39;" f
@@ -3678,8 +3677,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 310;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 311;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 297;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 298;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3694,7 +3693,7 @@ getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1283;" f getPJStabiliser src/Dodge/HeldUse.hs 1283;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 293;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 294;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3719,12 +3718,12 @@ glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f
glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f
glassSwitchBack src/Dodge/Room/Room.hs 72;" f glassSwitchBack src/Dodge/Room/Room.hs 72;" f
glassSwitchBackCrits src/Dodge/Room/Room.hs 106;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 106;" f
glauncherPic src/Dodge/Item/Draw/SPic.hs 414;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 416;" f
glushortSize src/Shader/Parameters.hs 25;" f glushortSize src/Shader/Parameters.hs 25;" f
goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f
goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f
grahamEliminate src/Geometry/Polygon.hs 149;" f grahamEliminate src/Geometry/Polygon.hs 162;" f
grahamScan src/Geometry/Polygon.hs 140;" f grahamScan src/Geometry/Polygon.hs 153;" f
grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f
graphToEdges src/Dodge/Graph.hs 35;" f graphToEdges src/Dodge/Graph.hs 35;" f
graphToIncidence src/Dodge/Graph.hs 40;" f graphToIncidence src/Dodge/Graph.hs 40;" f
@@ -3772,7 +3771,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 310;" 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
headLampShape src/Dodge/Item/Draw/SPic.hs 457;" f headLampShape src/Dodge/Item/Draw/SPic.hs 459;" f
headMap src/Dodge/DoubleTree.hs 249;" f headMap src/Dodge/DoubleTree.hs 249;" f
headPQ src/Dodge/Creature/HandPos.hs 115;" f headPQ src/Dodge/Creature/HandPos.hs 115;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f
@@ -3820,7 +3819,8 @@ icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ildtPropagate src/Dodge/DoubleTree.hs 111;" f ildtPropagate src/Dodge/DoubleTree.hs 111;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f
inLink src/Dodge/RoomLink.hs 128;" f inLink src/Dodge/RoomLink.hs 128;" f
inSegArea src/Geometry/Intersect.hs 328;" f inSegArea src/Geometry/Intersect.hs 333;" f
inSimplePoly src/Geometry/Polygon.hs 89;" f
inTextInputFocus src/Dodge/InputFocus.hs 8;" f inTextInputFocus src/Dodge/InputFocus.hs 8;" f
incidenceToFunction src/Dodge/Graph.hs 26;" f incidenceToFunction src/Dodge/Graph.hs 26;" f
indefiniteExceptions src/StringHelp.hs 29;" f indefiniteExceptions src/StringHelp.hs 29;" f
@@ -3851,25 +3851,25 @@ insertWithNewKeys src/IntMapHelp.hs 70;" f
intAnno src/Dodge/Floor.hs 111;" f intAnno src/Dodge/Floor.hs 111;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
interpWith src/Dodge/Creature/Boid.hs 11;" f interpWith src/Dodge/Creature/Boid.hs 11;" f
intersectCircSeg src/Geometry/Intersect.hs 335;" f intersectCircSeg src/Geometry/Intersect.hs 340;" f
intersectCircSegFirst src/Geometry/Intersect.hs 353;" f intersectCircSegFirst src/Geometry/Intersect.hs 358;" f
intersectCircSegTest src/Geometry/Intersect.hs 346;" f intersectCircSegTest src/Geometry/Intersect.hs 351;" f
intersectLineLine src/Geometry/Intersect.hs 18;" f intersectLineLine src/Geometry/Intersect.hs 18;" f
intersectLinePlane src/Geometry/Intersect.hs 28;" f intersectLinePlane src/Geometry/Intersect.hs 28;" f
intersectLinefromScreen src/Dodge/Debug/Picture.hs 95;" f intersectLinefromScreen src/Dodge/Debug/Picture.hs 95;" f
intersectSegBezquad src/Geometry/Intersect.hs 266;" f intersectSegBezquad src/Geometry/Intersect.hs 271;" f
intersectSegLine src/Geometry/Intersect.hs 117;" f intersectSegLine src/Geometry/Intersect.hs 122;" f
intersectSegLineFrom src/Geometry/Intersect.hs 87;" f intersectSegLineext src/Geometry/Intersect.hs 105;" f
intersectSegLineext src/Geometry/Intersect.hs 102;" f
intersectSegPlane src/Geometry/Intersect.hs 34;" f intersectSegPlane src/Geometry/Intersect.hs 34;" f
intersectSegPolyFirst src/Geometry/Intersect.hs 273;" f intersectSegPolyFirst src/Geometry/Intersect.hs 278;" f
intersectSegRay src/Geometry/Intersect.hs 90;" f
intersectSegSeg src/Geometry/Intersect.hs 69;" f intersectSegSeg src/Geometry/Intersect.hs 69;" f
intersectSegSegErrorTest src/Geometry/Intersect.hs 54;" f intersectSegSegErrorTest src/Geometry/Intersect.hs 54;" f
intersectSegSegFullTest src/Geometry/Intersect.hs 133;" f intersectSegSegFullTest src/Geometry/Intersect.hs 138;" f
intersectSegSegPreTest src/Geometry/Intersect.hs 166;" f intersectSegSegPreTest src/Geometry/Intersect.hs 171;" f
intersectSegSegTest src/Geometry/Intersect.hs 152;" f intersectSegSegTest src/Geometry/Intersect.hs 157;" f
intersectSegSurface src/Geometry/Intersect.hs 43;" f intersectSegSurface src/Geometry/Intersect.hs 43;" f
intersectSegsSeg src/Geometry/Intersect.hs 262;" f intersectSegsSeg src/Geometry/Intersect.hs 267;" f
intervalList src/Geometry.hs 315;" f intervalList src/Geometry.hs 315;" f
interweave src/Justify.hs 17;" f interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 57;" f introScan src/Dodge/Item/Scope.hs 57;" f
@@ -3910,23 +3910,23 @@ isConnected src/Dodge/Inventory/Swap.hs 76;" f
isCornerLink src/Dodge/RoomLink.hs 65;" f isCornerLink src/Dodge/RoomLink.hs 65;" f
isElectrical src/Dodge/Machine/Update.hs 83;" f isElectrical src/Dodge/Machine/Update.hs 83;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 168;" f isInLnk src/Dodge/PlacementSpot.hs 161;" f
isJust' src/MaybeHelp.hs 29;" f isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f isLHS src/Geometry/LHS.hs 11;" f
isLeftOf src/Geometry.hs 202;" f isLeftOf src/Geometry.hs 202;" f
isLeftOfA src/Geometry.hs 196;" f isLeftOfA src/Geometry.hs 196;" f
isMidEdgeLink src/Dodge/RoomLink.hs 56;" f isMidEdgeLink src/Dodge/RoomLink.hs 56;" f
isNHS src/Geometry/Intersect.hs 51;" f isNHS src/Geometry/Intersect.hs 51;" f
isNothing' src/MaybeHelp.hs 33;" f isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f isOnSeg src/Geometry.hs 240;" f
isOutLnk src/Dodge/PlacementSpot.hs 173;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f
isOverTerminalScreen src/Dodge/Update.hs 383;" f isOverTerminalScreen src/Dodge/Update.hs 383;" f
isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f
isRHS src/Geometry/LHS.hs 24;" f isRHS src/Geometry/LHS.hs 32;" f
isUnusedLnk src/Dodge/PlacementSpot.hs 62;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f
isUnusedLnkType src/Dodge/PlacementSpot.hs 197;" f isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 181;" 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/Base/Collide.hs 317;" f isWalkable src/Dodge/Base/Collide.hs 317;" f
@@ -3997,10 +3997,10 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 78;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 78;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 66;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 66;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 473;" f keyPic src/Dodge/Item/Draw/SPic.hs 475;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 117;" f lChasm src/Dodge/Room/Tutorial.hs 118;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f
@@ -4009,7 +4009,7 @@ lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 75;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 75;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 426;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 428;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 134;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 134;" f
lasTunnel src/Dodge/Room/LasTurret.hs 153;" f lasTunnel src/Dodge/Room/LasTurret.hs 153;" f
@@ -4041,7 +4041,7 @@ leftLegPQ src/Dodge/Creature/HandPos.hs 84;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 197;" f leftRightCombine src/Dodge/Item/Grammar.hs 197;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 482;" f legsSPic src/Dodge/Item/Draw/SPic.hs 484;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 112;" f liShape src/Dodge/Placement/Instance/LightSource.hs 112;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 51;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 51;" f
@@ -4049,7 +4049,7 @@ lightSensInsideDoor src/Dodge/Room/LasTurret.hs 39;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 42;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 42;" f
lightsToRender src/Dodge/Render/Lights.hs 14;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f
lightx4 src/Color.hs 145;" f lightx4 src/Color.hs 145;" f
linGrad src/Geometry/Intersect.hs 250;" f linGrad src/Geometry/Intersect.hs 255;" f
line src/Picture/Base.hs 226;" f line src/Picture/Base.hs 226;" f
lineCol src/Picture/Base.hs 230;" f lineCol src/Picture/Base.hs 230;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
@@ -4251,7 +4251,7 @@ mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 138;" f midChasm src/Dodge/Room/Tutorial.hs 139;" f
midPad src/Padding.hs 27;" f midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 84;" f midPoint src/Geometry.hs 84;" f
@@ -4262,8 +4262,8 @@ minOn src/FoldableHelp.hs 35;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f
miniGunCrit src/Dodge/Creature.hs 63;" f miniGunCrit src/Dodge/Creature.hs 63;" f
miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 386;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 388;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 383;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 385;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f
miniTree2 src/Dodge/Room/Room.hs 113;" f miniTree2 src/Dodge/Room/Room.hs 113;" f
minimumOn src/FoldlHelp.hs 14;" f minimumOn src/FoldlHelp.hs 14;" f
@@ -4324,8 +4324,8 @@ mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 174;" f mvProp src/Dodge/Placement/PlaceSpot.hs 174;" f
mvPs src/Dodge/Wall/Move.hs 58;" f mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 207;" f myIntersectLineLine src/Geometry/Intersect.hs 212;" f
myIntersectSegSeg src/Geometry/Intersect.hs 185;" f myIntersectSegSeg src/Geometry/Intersect.hs 190;" f
myParams src/Dodge/Combine/Graph.hs 103;" f myParams src/Dodge/Combine/Graph.hs 103;" f
nRays src/Geometry.hs 185;" f nRays src/Geometry.hs 185;" f
nRaysRad src/Geometry.hs 189;" f nRaysRad src/Geometry.hs 189;" f
@@ -4353,6 +4353,7 @@ normalizeAnglePi src/Dodge/Base.hs 154;" f
normalizeColor src/Color.hs 76;" f normalizeColor src/Color.hs 76;" f
normalizeV src/Geometry/Vector.hs 43;" f normalizeV src/Geometry/Vector.hs 43;" f
normalizeV3 src/Geometry/Vector3D.hs 84;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f
notLink src/Dodge/Data/Room.hs 72;" f
nulgate src/Dodge/Item/Scope.hs 95;" f nulgate src/Dodge/Item/Scope.hs 95;" f
numColor src/Color.hs 128;" f numColor src/Color.hs 128;" f
numDrawableVertices src/Shader/Parameters.hs 34;" f numDrawableVertices src/Shader/Parameters.hs 34;" f
@@ -4382,14 +4383,14 @@ optionsToSelections src/Dodge/Menu/Option.hs 47;" f
orRegex src/Dodge/DisplayInventory.hs 81;" f orRegex src/Dodge/DisplayInventory.hs 81;" f
orange src/Color.hs 25;" f orange src/Color.hs 25;" f
orderAround3 src/Geometry/Vector3D.hs 105;" f orderAround3 src/Geometry/Vector3D.hs 105;" f
orderAroundFirst src/Geometry/Polygon.hs 106;" f orderAroundFirst src/Geometry/Polygon.hs 119;" f
orderAroundFirstReverse src/Geometry/Polygon.hs 102;" f orderAroundFirstReverse src/Geometry/Polygon.hs 115;" f
orderPolygon src/Geometry/Polygon.hs 111;" f orderPolygon src/Geometry/Polygon.hs 124;" f
orderPolygonAround src/Geometry/Polygon.hs 94;" f orderPolygonAround src/Geometry/Polygon.hs 107;" f
orientAttachment src/Dodge/Item/Orientation.hs 31;" f orientAttachment src/Dodge/Item/Orientation.hs 31;" f
orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f
orientChild src/Dodge/Item/Orientation.hs 13;" f orientChild src/Dodge/Item/Orientation.hs 13;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 321;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 326;" f
outLink src/Dodge/RoomLink.hs 120;" f outLink src/Dodge/RoomLink.hs 120;" f
outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f
outwardIntegers src/Dodge/Base.hs 181;" f outwardIntegers src/Dodge/Base.hs 181;" f
@@ -4503,7 +4504,7 @@ pnsNearSeg src/Dodge/Zoning/Pathing.hs 15;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 212;" f pointInCircle src/Geometry.hs 212;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 77;" f pointInOrOnPolygon src/Geometry/Polygon.hs 77;" f
pointInPoly src/Geometry/Polygon.hs 84;" f pointInPoly src/Geometry/Polygon.hs 85;" f
pointIsInCone src/Geometry.hs 378;" f pointIsInCone src/Geometry.hs 378;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 63;" f pointTowardsImpulse src/Dodge/Path.hs 63;" f
@@ -4551,8 +4552,8 @@ pokeWall src/Shader/Poke.hs 78;" f
pokeWallsWindows src/Shader/Poke.hs 50;" f pokeWallsWindows src/Shader/Poke.hs 50;" f
poly3 src/Picture/Base.hs 84;" f poly3 src/Picture/Base.hs 84;" f
poly3Col src/Picture/Base.hs 88;" f poly3Col src/Picture/Base.hs 88;" f
polyChasm src/Dodge/Room/Tutorial.hs 159;" f polyChasm src/Dodge/Room/Tutorial.hs 160;" f
polyChasmC src/Dodge/Room/Tutorial.hs 168;" f polyChasmC src/Dodge/Room/Tutorial.hs 169;" f
polyCirc src/Shape.hs 46;" f polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 60;" f polyCornerDist src/Geometry/Polygon.hs 60;" f
@@ -4622,9 +4623,9 @@ psPt src/Dodge/LevelGen/PlacementHelper.hs 24;" f
psPtCont src/Dodge/LevelGen/PlacementHelper.hs 18;" f psPtCont src/Dodge/LevelGen/PlacementHelper.hs 18;" f
psPtJpl src/Dodge/LevelGen/PlacementHelper.hs 12;" f psPtJpl src/Dodge/LevelGen/PlacementHelper.hs 12;" f
psPtPl src/Dodge/LevelGen/PlacementHelper.hs 9;" f psPtPl src/Dodge/LevelGen/PlacementHelper.hs 9;" f
psRandRanges src/Dodge/PlacementSpot.hs 267;" f psRandRanges src/Dodge/PlacementSpot.hs 260;" f
psj src/Dodge/LevelGen/PlacementHelper.hs 70;" f psj src/Dodge/LevelGen/PlacementHelper.hs 70;" f
psposAddLabel src/Dodge/PlacementSpot.hs 70;" f psposAddLabel src/Dodge/PlacementSpot.hs 69;" f
pt0 src/Dodge/LevelGen/PlacementHelper.hs 54;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 54;" f
ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f
pulseChecker src/Dodge/Item/Equipment.hs 103;" f pulseChecker src/Dodge/Item/Equipment.hs 103;" f
@@ -4674,7 +4675,7 @@ radBounds src/Dodge/Room/Foreground.hs 154;" f
radToDeg src/Geometry/Vector.hs 122;" f radToDeg src/Geometry/Vector.hs 122;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
randDirPS src/Dodge/PlacementSpot.hs 57;" f randDirPS src/Dodge/PlacementSpot.hs 56;" f
randDirSpark src/Dodge/Spark.hs 55;" f randDirSpark src/Dodge/Spark.hs 55;" f
randEdgeTank src/Dodge/Room/Tanks.hs 33;" f randEdgeTank src/Dodge/Room/Tanks.hs 33;" f
randEdgeTanks src/Dodge/Room/Tanks.hs 63;" f randEdgeTanks src/Dodge/Room/Tanks.hs 63;" f
@@ -4708,7 +4709,7 @@ randomTank src/Dodge/Room/Tanks.hs 19;" f
randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f
randsOnCirc src/RandomHelp.hs 127;" f randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 225;" f ratIntersectLineLine src/Geometry/Intersect.hs 230;" f
readSaveSlot src/Dodge/Save.hs 45;" f readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 459;" f recoilAmount src/Dodge/HeldUse.hs 459;" f
rectNSWE src/Geometry/Polygon.hs 14;" f rectNSWE src/Geometry/Polygon.hs 14;" f
@@ -4743,7 +4744,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f
removeDot src/ShortShow.hs 40;" f removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 211;" f removeLights src/Dodge/Room/Tutorial.hs 212;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4757,7 +4758,7 @@ renderShadows src/Render.hs 117;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 162;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 162;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f
resetPLUse src/Dodge/PlacementSpot.hs 99;" f resetPLUse src/Dodge/PlacementSpot.hs 92;" f
resetStride src/Dodge/Creature/State/WalkCycle.hs 24;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 24;" f
resetTerminal src/Dodge/WorldEffect.hs 104;" f resetTerminal src/Dodge/WorldEffect.hs 104;" f
resizeFBOTO src/Framebuffer/Update.hs 203;" f resizeFBOTO src/Framebuffer/Update.hs 203;" f
@@ -4795,7 +4796,7 @@ rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f
rlPosDir src/Dodge/RoomLink.hs 112;" f rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 411;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 413;" f
rmInLinks src/Dodge/RoomLink.hs 153;" f rmInLinks src/Dodge/RoomLink.hs 153;" f
rmInvItem src/Dodge/Inventory.hs 73;" f rmInvItem src/Dodge/Inventory.hs 73;" f
rmLinksOfType src/Dodge/RoomLink.hs 150;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f
@@ -4842,16 +4843,15 @@ rotateToZ src/Quaternion.hs 39;" f
rotateV src/Geometry/Vector.hs 105;" f rotateV src/Geometry/Vector.hs 105;" f
rotateVAround src/Geometry/Vector.hs 112;" f rotateVAround src/Geometry/Vector.hs 112;" f
rotateXY src/Polyhedra.hs 31;" f rotateXY src/Polyhedra.hs 31;" f
roundPoint2 src/Geometry/Intersect.hs 246;" f roundPoint2 src/Geometry/Intersect.hs 251;" f
roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f
roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f
rpIsOffPath src/Dodge/PlacementSpot.hs 82;" f rpIsOffGrid src/Dodge/PlacementSpot.hs 81;" f
rpIsOnPath src/Dodge/PlacementSpot.hs 76;" f rpIsOnGrid src/Dodge/PlacementSpot.hs 75;" f
rpOffPathFromEdge src/Dodge/PlacementSpot.hs 88;" f rpOffPathFromEdge src/Dodge/PlacementSpot.hs 87;" f
rpOnPathFromEdge src/Dodge/PlacementSpot.hs 94;" f rprBool src/Dodge/PlacementSpot.hs 72;" f
rprBool src/Dodge/PlacementSpot.hs 73;" f rprBoolShift src/Dodge/PlacementSpot.hs 107;" f
rprBoolShift src/Dodge/PlacementSpot.hs 114;" f rprShift src/Dodge/PlacementSpot.hs 98;" f
rprShift src/Dodge/PlacementSpot.hs 105;" f
rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f
runPastStart src/Dodge/Room/Start.hs 72;" f runPastStart src/Dodge/Room/Start.hs 72;" f
runStateWorld src/Dodge/Randify.hs 17;" f runStateWorld src/Dodge/Randify.hs 17;" f
@@ -4928,7 +4928,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 196;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 319;" f sensorTut src/Dodge/Room/Tutorial.hs 320;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f
@@ -4938,8 +4938,8 @@ setChannelPos src/Sound.hs 150;" f
setClickWorldPos src/Dodge/Update.hs 99;" f setClickWorldPos src/Dodge/Update.hs 99;" f
setClusterID src/Dodge/Combine/Graph.hs 116;" f setClusterID src/Dodge/Combine/Graph.hs 116;" f
setDepth src/Picture/Base.hs 128;" f setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 50;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f
setFallback src/Dodge/PlacementSpot.hs 132;" f setFallback src/Dodge/PlacementSpot.hs 125;" f
setInLinks src/Dodge/RoomLink.hs 53;" f setInLinks src/Dodge/RoomLink.hs 53;" f
setInLinksByType src/Dodge/RoomLink.hs 72;" f setInLinksByType src/Dodge/RoomLink.hs 72;" f
setInLinksPD src/Dodge/RoomLink.hs 92;" f setInLinksPD src/Dodge/RoomLink.hs 92;" f
@@ -4954,7 +4954,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f
setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f
setOutLinksPD src/Dodge/RoomLink.hs 95;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f
setRoomInt src/Dodge/Room/Tutorial.hs 60;" f setRoomInt src/Dodge/Room/Tutorial.hs 61;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f setShaderSource src/Shader/Compile.hs 290;" f
@@ -4964,7 +4964,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 66;" f setTile src/Dodge/Layout.hs 66;" f
setTiles src/Dodge/Layout.hs 63;" f setTiles src/Dodge/Layout.hs 63;" f
setToggle src/Dodge/Prop/Update.hs 44;" f setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 68;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f setViewport src/Dodge/Render.hs 440;" f
@@ -4995,7 +4995,7 @@ shapePoints src/Dodge/Room/Foreground.hs 145;" f
shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxAttributes src/Shape/Parameters.hs 13;" f
shapeVerxSize src/Shape/Parameters.hs 10;" f shapeVerxSize src/Shape/Parameters.hs 10;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 326;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 328;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 56;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 56;" f
shellHitCreature src/Dodge/Projectile/Update.hs 84;" f shellHitCreature src/Dodge/Projectile/Update.hs 84;" f
@@ -5005,10 +5005,10 @@ shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" f shellModule src/Dodge/Item/Scope.hs 123;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f
shiftByV2 src/Dodge/PlacementSpot.hs 257;" f shiftByV2 src/Dodge/PlacementSpot.hs 250;" f
shiftChildren src/Dodge/Tree/Compose.hs 44;" f shiftChildren src/Dodge/Tree/Compose.hs 44;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 80;" f shiftDraw src/Dodge/Render/ShapePicture.hs 80;" f
shiftInBy src/Dodge/PlacementSpot.hs 254;" f shiftInBy src/Dodge/PlacementSpot.hs 247;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 344;" f shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 344;" f
@@ -5054,8 +5054,8 @@ showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 45;" f showManObj src/Dodge/TestString.hs 45;" f
showTerminalError src/Dodge/Debug/Terminal.hs 80;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f
showTimeFlow src/Dodge/TestString.hs 68;" f showTimeFlow src/Dodge/TestString.hs 68;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 160;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 173;" f
shrinkVert src/Geometry/Polygon.hs 164;" f shrinkVert src/Geometry/Polygon.hs 177;" f
shuffle src/RandomHelp.hs 49;" f shuffle src/RandomHelp.hs 49;" f
shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 76;" f shuffleRoomPos src/Dodge/Layout.hs 76;" f
@@ -5247,7 +5247,7 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 39;" f
terminalShape src/Dodge/Machine/Draw.hs 43;" f terminalShape src/Dodge/Machine/Draw.hs 43;" f
terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 423;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 425;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
testCrossWalls src/Dodge/Room/Path.hs 41;" f testCrossWalls src/Dodge/Room/Path.hs 41;" f
testEvent src/Dodge/Event/Test.hs 9;" f testEvent src/Dodge/Event/Test.hs 9;" f
@@ -5333,7 +5333,7 @@ tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
tractorBeamAt src/Dodge/HeldUse.hs 806;" f tractorBeamAt src/Dodge/HeldUse.hs 806;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 451;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 453;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
tranRot src/Picture/Base.hs 124;" f tranRot src/Picture/Base.hs 124;" f
@@ -5398,13 +5398,13 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f turret src/Dodge/Placement/Instance/Turret.hs 37;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 40;" f tutAnoTree src/Dodge/Room/Tutorial.hs 41;" f
tutDrop src/Dodge/Room/Tutorial.hs 72;" f tutDrop src/Dodge/Room/Tutorial.hs 73;" f
tutHub src/Dodge/Room/Tutorial.hs 218;" f tutHub src/Dodge/Room/Tutorial.hs 219;" f
tutLight src/Dodge/Room/Tutorial.hs 196;" f tutLight src/Dodge/Room/Tutorial.hs 197;" f
tutRezBox src/Dodge/Room/Tutorial.hs 330;" f tutRezBox src/Dodge/Room/Tutorial.hs 331;" f
tutRoomTree src/Dodge/Floor.hs 21;" f tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 354;" f tutorialMessage1 src/Dodge/Room/Tutorial.hs 355;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5412,7 +5412,7 @@ twists src/Dodge/Creature/Test.hs 99;" f
twoFlat src/Dodge/Creature/Test.hs 96;" f twoFlat src/Dodge/Creature/Test.hs 96;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 153;" f twoRoomPoss src/Dodge/PlacementSpot.hs 146;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f
twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f
twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f
@@ -5431,10 +5431,10 @@ unsafeSwapKeys src/IntMapHelp.hs 74;" f
unshadowBlock src/Dodge/Block.hs 39;" f unshadowBlock src/Dodge/Block.hs 39;" f
untilJust src/MonadHelp.hs 7;" f untilJust src/MonadHelp.hs 7;" f
untilJustCount src/MonadHelp.hs 14;" f untilJustCount src/MonadHelp.hs 14;" f
unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 138;" f unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 131;" f
unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 144;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 137;" f
unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 126;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 119;" f
unusedSpotNearInLink src/Dodge/PlacementSpot.hs 203;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 196;" f
updateAimPos src/Dodge/Update.hs 302;" f updateAimPos src/Dodge/Update.hs 302;" f
updateAllNodes src/TreeHelp.hs 86;" f updateAllNodes src/TreeHelp.hs 86;" f
updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla.hs 44;" f
@@ -5576,19 +5576,19 @@ useHotkey src/Dodge/Creature/YourControl.hs 76;" f
useInventoryPath src/Dodge/HeldUse.hs 1427;" f useInventoryPath src/Dodge/HeldUse.hs 1427;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f
useLoadedAmmo src/Dodge/HeldUse.hs 716;" f useLoadedAmmo src/Dodge/HeldUse.hs 716;" f
useMagShield src/Dodge/Euse.hs 27;" f useMagShield src/Dodge/Euse.hs 27;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1387;" f useRewindGun src/Dodge/HeldUse.hs 1387;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 187;" f useRoomPosCond src/Dodge/PlacementSpot.hs 180;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 190;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f
useStopWatch src/Dodge/HeldUse.hs 1368;" f useStopWatch src/Dodge/HeldUse.hs 1368;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1376;" f useTimeScrollGun src/Dodge/HeldUse.hs 1376;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 178;" f useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 216;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f
v2z src/Geometry/Vector3D.hs 93;" f v2z src/Geometry/Vector3D.hs 93;" f
vCen3 src/Geometry/Vector3D.hs 115;" f vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 153;" f vInverse src/Geometry/Vector.hs 153;" f
@@ -5618,7 +5618,7 @@ visibleWalls src/Dodge/Base/Collide.hs 207;" f
visionCheck src/Dodge/Creature/Perception.hs 153;" f visionCheck src/Dodge/Creature/Perception.hs 153;" 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 371;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 373;" f
walkNozzle src/Dodge/HeldUse.hs 782;" f walkNozzle src/Dodge/HeldUse.hs 782;" f
walkableNodeNear src/Dodge/Path.hs 48;" f walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 98;" f wallBlips src/Dodge/RadarSweep.hs 98;" f
@@ -5715,7 +5715,7 @@ yourInv src/Dodge/Base/You.hs 28;" f
yourRootItem src/Dodge/Base/You.hs 22;" f yourRootItem src/Dodge/Base/You.hs 22;" f
yourSelectedItem src/Dodge/Base/You.hs 16;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f
yourStatsInfo src/Dodge/Creature/Info.hs 27;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f
zChasm src/Dodge/Room/Tutorial.hs 126;" f zChasm src/Dodge/Room/Tutorial.hs 127;" f
zConnect src/Dodge/Render/Connectors.hs 17;" f zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f