Commit before potential Door refactor

This commit is contained in:
2025-10-21 19:56:48 +01:00
parent fcffbd5f43
commit 2f3a00a971
8 changed files with 118 additions and 258 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ doCrAc ca = case ca of
doCrWdAc :: CrWdAc -> Creature -> World -> Action
doCrWdAc cw = case cw of
CrWdBFSThenReturn _ -> undefined
CrWdBFSThenReturn _ -> const $ const NoAction
-- CrWdBFSThenReturn t -> \cr w -> fromMaybe NoAction $ do
-- n <- walkableNodeNear w (cr ^. crPos . _xy)
-- let as = take 20 $ map PathTo $ bfsNodePoints n w
-1
View File
@@ -28,7 +28,6 @@ data Block = Block
, _blHeight :: Float
, _blMaterial :: Material
, _blDraw :: BlockDraw --Block -> SPic
-- , _blObstructs :: Set PathEdgeNodes
, _blObstructs :: [(Int,Int)]
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
-1
View File
@@ -25,7 +25,6 @@ data CWorld = CWorld
, _cwGen :: CWGen
, _cClock :: Int
, _cwTiles :: [Tile]
-- , _pathGraph :: Gr Point2 PathEdge
, _incGraph :: V.Vector [(Int,SimpleEdge)]
, _incNode :: UV.Vector Point2
, _incEdges :: [(Int,Int)]
-4
View File
@@ -45,17 +45,13 @@ generateLevelFromRoomList gr' w =
. worldToGenWorld rs'
$ w & cWorld . lWorld . walls .~ wallsFromRooms rs
& cWorld . cwGen . cwgGameRooms .~ gameRoomsFromRooms (IM.elems rs')
-- & cWorld . pathGraph .~ path
& cWorld . incNode .~ inodes
& cWorld . incGraph .~ igraph
& cWorld . incEdges .~ ipairs
-- & pnZoning .~ foldl' (flip zonePn) mempty (labNodes path)
-- & peZoning .~ foldl' (flip zonePe) mempty (map fromEdgeTuple $ labEdges path)
& incNodeZoning .~ UV.ifoldl' (\m i p -> zonePn (i,p) m) mempty inodes
& incEdgeZoning .~ foldl' (flip (zoneIncPe inodes)) mempty ipairs
where
pairs = snapToGrid $ foldMap _rmPath rs
-- (_, path) = pairsToGraph pairs
(inodes,igraph,ipairs) = pairsToIncGraph pairs
rs = map doRoomShift $ IM.elems rs'
rs' = mapM shuffleRoomPos gr' & evalState $ _randGen w
+12 -113
View File
@@ -61,9 +61,8 @@ makePathUsing :: (Set.Set EdgeObstacle -> Bool) -> Point2 -> Point2 -> World ->
makePathUsing t s e w = do
na <- walkableNodeNear w s
nb <- walkableNodeNear w e
let f i = getes i
h i = distance (getn nb) (getn i)
(na :) . snd <$> AS.aStarAssoc f h (== nb) na
let h i = distance (getn nb) (getn i)
(na :) . snd <$> AS.aStarAssoc getes h (== nb) na
where
g (i, SimpleEdge c o)
| t o = Just (i, c)
@@ -71,22 +70,11 @@ makePathUsing t s e w = do
getes i = mapMaybe g $ w ^?! cWorld . incGraph . ix i
getn i = w ^?! cWorld . incNode . ix i
-- sp na nb . second _peDist . efilter (^. _3 . to t) $ w ^. cWorld . pathGraph
makePathBetween :: Point2 -> Point2 -> World -> Maybe [Int]
makePathBetween = makePathUsing $ not . pathEdgeObstructed
--pathEdgeObstructed' :: PathEdge -> Bool
--pathEdgeObstructed' pe =
-- any
-- (`Set.member` _peObstacles pe)
-- [DoorObstacle, BlockObstacle, ChasmObstacle]
pathEdgeObstructed :: Set.Set EdgeObstacle -> Bool
pathEdgeObstructed pe =
any
(`Set.member` pe)
[DoorObstacle, BlockObstacle, ChasmObstacle]
pathEdgeObstructed pe = any (`Set.member` pe) [DoorObstacle, BlockObstacle, ChasmObstacle]
walkableNodeNear :: World -> Point2 -> Maybe Int
{-# INLINE walkableNodeNear #-}
@@ -94,12 +82,6 @@ walkableNodeNear w p = fmap fst . find (flip (isWalkable p) w . snd) $ nodesNear
where
nodesNear = zonesExtract (w ^. incNodeZoning) . snailAround $ zoneOfPoint pnZoneSize p
--walkableNodeNear' :: World -> Point2 -> Maybe Int
--{-# INLINE walkableNodeNear' #-}
--walkableNodeNear' w p = fmap fst . find (flip (isWalkable p) w . snd) $ nodesNear
-- where
-- nodesNear = zonesExtract (w ^. pnZoning) . snailAround $ zoneOfPoint pnZoneSize p
snailAround :: Int2 -> [Int2]
snailAround x = (x +) <$> smallSnailInt2
@@ -110,64 +92,11 @@ smallSnailInt2 =
[V2 x y | x <- [-2 .. 2], y <- [-2 .. 2]]
makePathBetweenPs :: Point2 -> Point2 -> World -> Maybe [Point2]
--makePathBetweenPs a b w = mapMaybe (lab $ w ^. cWorld . pathGraph) <$> makePathBetween a b w
makePathBetweenPs a b w = mapMaybe (flip getNodePos w) <$> makePathBetween a b w
--bfsNodePoints :: Int -> World -> [Point2]
--bfsNodePoints n w = mapMaybe (lab g) $ bfs n g
-- where
-- g = w ^. cWorld . pathGraph
makePathBetweenPs a b w = traverse (flip getNodePos w) =<< makePathBetween a b w
-- assumes that pathfinding is symmetric
pointTowardsImpulse :: Point2 -> Point2 -> World -> Maybe Point2
pointTowardsImpulse a b w =
-- (find (flip (isWalkable a) w) . reverse)
-- =<< (makePathBetweenPs a b w <&> (<> [b]))
(find (flip (isWalkable a) w) . reverse)
=<< makePathBetweenPs a b w -- <&> (<> [b]))
------ continues a walk from a list of points, without repetitions
------ supposes that the list is non-empty
--randomGraphWalk :: RandomGen g => [Int] -> Gr a b -> State g [Int]
--randomGraphWalk (n:ns) g = do
-- next' <- randomGraphStepRestricted n ns g
-- case next' of
-- Nothing -> return (n:ns)
-- Just n' -> randomGraphWalk (n':n:ns) g
--randomGraphWalk _ _ = error "Trying to walk in an empty list"
--
--randomPointXStepsFrom :: Int -> Point2 -> World -> Point2
--randomPointXStepsFrom i p w =
-- let g = _pathGraph w
-- ns = labNodes g
-- mp = listToMaybe $ sortBy (compare `on` dist p . snd) $ filter (flip (isWalkable p) w . snd) ns
-- in case mp of
-- Nothing -> p
-- Just (n,_) -> fromJust
-- $ lab g (last $ take i $ randomGraphWalk [n] g Data.Function.& evalState $ _randGen w)
--
--randomPointsXStepsFrom :: Int -> Point2 -> World -> [Point2]
--randomPointsXStepsFrom i p w =
-- let g = _pathGraph w
-- ns = labNodes g
-- mp = listToMaybe $ sortBy (compare `on` dist p . snd) $ filter (flip (isWalkable p) w . snd) ns
-- in case mp of
-- Nothing -> [p]
-- Just (n,_) -> mapMaybe (lab g) (take i $ randomGraphWalk [n] g Data.Function.& evalState $ _randGen w)
--
--randomGraphStep :: RandomGen g => Int -> Gr a b -> State g (Maybe Int)
--randomGraphStep n g =
-- do let ns = neighbors g n
-- i <- state $ randomR (0,length ns - 1)
-- case ns of [] -> return Nothing
-- _ -> return $ Just $ ns !! i
--randomGraphStepRestricted :: RandomGen g => Int -> [Int] -> Gr a b -> State g (Maybe Int)
--randomGraphStepRestricted n notns g = do
-- let ns = neighbors g n \\ notns
-- i <- state $ randomR (0,length ns - 1)
-- case ns of
-- [] -> return Nothing
-- _ -> return $ Just $ ns !! i
--
pointTowardsImpulse a b w = (find $ flip (isWalkable a) w) =<< makePathBetweenPs b a w
pairsToIncGraph ::
Set.Set (Point2, Point2) ->
@@ -178,49 +107,19 @@ pairsToIncGraph ::
pairsToIncGraph pairs =
( inodes
, incgraph
, Set.toList pairs & each . each %~ (\i -> pstons ^?! ix i . _head)
, Set.toList pairs & each . each %~ (\i -> pToNode ^?! ix i)
)
where
incgraph = V.generate (length im) (\i -> im ^?! ix i)
im = IM.fromListWith (<>) . fmap toedge $ Set.toList pairs
incgraph = V.generate (length im) (im IM.!)
im = IM.fromListWith (++) . fmap toedge $ Set.toList pairs
toedge (x, y) =
( pstons ^?! ix x . _head
, [(pstons ^?! ix y . _head, SimpleEdge (distance x y) mempty)]
( pToNode ^?! ix x
, [(pToNode ^?! ix y, SimpleEdge (distance x y) mempty)]
)
pstons = IM.invertIntMap . IM.fromList $ zip [0 ..] ps
pToNode = IM.invertIntMapUnique . IM.fromDistinctAscList $ zip [0 ..] ps
inodes = UV.generate (length ps) (ps !!)
ps = Set.toList $ Set.map fst pairs <> Set.map snd pairs
--pairsToGraph ::
-- Set.Set (Point2, Point2) ->
-- (Map (V2 Point2) PathEdgeNodes, Gr Point2 PathEdge)
--pairsToGraph pairs = addEdges nodemap gr pairs
-- where
-- (nodemap, _, gr) = addNodes $ Set.toList $ Set.map fst pairs <> Set.map snd pairs
--addNodes :: [Point2] -> (Map Point2 Int, Int, Gr Point2 PathEdge)
--addNodes = foldl' f (mempty, 0, Data.Graph.Inductive.empty)
-- where
-- f (nodemap, i, gr) p = case nodemap M.!? p of
-- Just _ -> (nodemap, i, gr)
-- Nothing -> (nodemap & at p ?~ i, i + 1, insNode (i, p) gr)
--addEdges ::
-- Map Point2 Int ->
-- Gr Point2 PathEdge ->
-- Set.Set (Point2, Point2) ->
-- (Map (V2 Point2) PathEdgeNodes, Gr Point2 PathEdge)
--addEdges nodemap gr = foldl' f (mempty, gr)
-- where
-- f (edgemap, gr') (a, b) =
-- ( M.insert (V2 a b) theedgedata edgemap
-- , insEdge theedgetup gr'
-- )
-- where
-- theedgetup = (g a, g b, PathEdge a b (dist a b) mempty)
-- theedgedata = PathEdgeNodes (g a) (g b) (PathEdge a b (dist a b) mempty)
-- g a = nodemap M.! a
obstructPathsCrossing ::
EdgeObstacle ->
Point2 ->
+28 -35
View File
@@ -3,44 +3,42 @@ module Dodge.Save (
loadSaveSlot,
doQuicksave,
doQuickload,
-- saveLevelStartSlot,
-- saveLevelStartSlot,
writeSaveSlot,
readSaveSlot,
reloadLevelStart,
) where
import Dodge.Zoning.Pathing
import qualified Data.Vector.Unboxed as UV
import Control.Monad
import Data.Maybe
import Dodge.WorldLoad
--import Dodge.Path.Translate
--import Data.Graph.Inductive (labEdges, labNodes)
--import Dodge.Zoning.Pathing
import Data.Foldable
import Dodge.Wall.Zone
import Dodge.Concurrent
import Control.Lens
import Dodge.Data.SaveSlot
import Control.Monad
import Data.Aeson
--import qualified Data.Aeson.Encode.Pretty as AEP
import qualified Data.ByteString.Lazy as BS
import Data.Foldable
import Data.Maybe
import qualified Data.Vector.Unboxed as UV
import Dodge.Concurrent
import Dodge.Data.SaveSlot
--import qualified Data.ByteString as BSS
import Dodge.Data.Universe
import Dodge.Wall.Zone
import Dodge.WorldLoad
import Dodge.Zoning.Pathing
--import qualified Data.Set as S
import System.Directory
--import Data.Sequence ((|>))
--import Data.Sequence ((|>))
writeSaveSlot :: SaveSlot -> Universe -> IO (Universe -> Maybe Universe)
writeSaveSlot ss u = do
putStrLn $ "Saving " ++ saveSlotPath ss
createDirectoryIfMissing True "generated/saves"
BS.writeFile (saveSlotPath ss) $
--AEP.encodePretty'
-- (AEP.Config (AEP.Spaces 2) compare AEP.Generic False)
encode
(u ^. uvWorld . cWorld)
BS.writeFile (saveSlotPath ss) $ encode (u ^. uvWorld . cWorld)
--AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False)
return Just
readSaveSlot :: SaveSlot -> IO (Universe -> Maybe Universe)
@@ -49,23 +47,17 @@ readSaveSlot ss = do
unless fExists $ error "Tried to read non-existant save file"
mcw <- decodeFileStrict $ saveSlotPath ss
flip (maybe (error "Tried to read incorrectly encoded save file")) mcw $ \cw -> do
let inodes = cw ^. incNode
return $ \uv -> Just
$ uv & uvWorld . cWorld .~ cw
let inodes = cw ^. incNode
return $ \uv ->
Just $
uv & uvWorld . cWorld .~ cw
& uvWorld %~ initWallZoning
& uvWorld . incNodeZoning
.~ UV.ifoldl' (\m i p -> zonePn (i,p) m) mempty inodes
& uvWorld . incEdgeZoning
.~ foldl' (flip (zoneIncPe inodes)) mempty
(cw ^. incEdges)
-- & uvWorld . pnZoning .~ foldl' (flip zonePn) mempty
-- (labNodes $ path uv)
-- & uvWorld . peZoning .~ foldl' (flip zonePe) mempty
-- (map fromEdgeTuple $ labEdges $ path uv)
& uvWorld . incNodeZoning
.~ UV.ifoldl' (\m i p -> zonePn (i, p) m) mempty inodes
& uvWorld . incEdgeZoning
.~ foldl' (flip (zoneIncPe inodes)) mempty (cw ^. incEdges)
& uvScreenLayers .~ []
& postUniverseLoadSideEffect
-- where
-- path uv = uv ^. uvWorld . cWorld . pathGraph
saveSlotPath :: SaveSlot -> String
saveSlotPath (SaveSlotNum i) = "generated/saves/" ++ show i
@@ -74,17 +66,18 @@ saveSlotPath (LevelStartSlot i) = "generated/saves/LevelStart" ++ show i
saveWorldInSlot :: SaveSlot -> Universe -> Universe
saveWorldInSlot slot u = u & addSideEffect (writeSaveSlot slot u) "SAVING"
reloadLevelStart :: Universe -> Universe
reloadLevelStart = loadSaveSlot (LevelStartSlot 0)
loadSaveSlot :: SaveSlot -> Universe -> Universe
loadSaveSlot slot = blockingLoad ("DESERIALISING "++ show slot) $ readSaveSlot slot
loadSaveSlot slot = blockingLoad ("DESERIALISING " ++ show slot) $ readSaveSlot slot
doQuicksave :: Universe -> Universe
doQuicksave u = u
& uvRAMSave ?~ _uvWorld u
& saveWorldInSlot QuicksaveSlot
doQuicksave u =
u
& uvRAMSave ?~ _uvWorld u
& saveWorldInSlot QuicksaveSlot
doQuickload :: Universe -> Universe
doQuickload u = fromMaybe (loadSaveSlot QuicksaveSlot u) $ do
+5 -4
View File
@@ -18,6 +18,7 @@ module IntMapHelp
cycleGT,
cycleLT,
invertIntMap,
invertIntMapUnique,
) where
import Control.Applicative
@@ -97,7 +98,7 @@ cycleLT :: Int -> IntMap a -> Maybe (Int, a)
cycleLT i m = lookupLT i m <|> lookupMax m
invertIntMap :: Ord a => IntMap a -> M.Map a [Int]
invertIntMap =
foldrWithKey
(\k xs -> M.insertWith (++) xs [k])
mempty
invertIntMap = foldrWithKey (\k x -> M.insertWith (++) x [k]) mempty
invertIntMapUnique :: Ord a => IntMap a -> M.Map a Int
invertIntMapUnique = foldlWithKey' (\m k x -> M.insert x k m) mempty
+72 -99
View File
@@ -231,10 +231,10 @@ Color8 src/Color/Data.hs 32;" t
ColorFaction src/Dodge/Data/Creature/State.hs 19;" C
Comatose src/Dodge/Data/Creature/Perception.hs 51;" C
CombAmount src/Dodge/Data/CombAmount.hs 10;" t
CombClust src/Dodge/Combine/Graph.hs 19;" t
CombEdge src/Dodge/Combine/Graph.hs 32;" t
CombClust src/Dodge/Combine/Graph.hs 17;" t
CombEdge src/Dodge/Combine/Graph.hs 30;" t
CombItem src/Dodge/Data/Combine.hs 8;" t
CombNode src/Dodge/Combine/Graph.hs 25;" t
CombNode src/Dodge/Combine/Graph.hs 23;" t
CombineInventory src/Dodge/Data/HUD.hs 22;" C
CombineInventoryChange src/Dodge/Data/World.hs 31;" C
ComsSS src/Dodge/Data/Scenario.hs 98;" C
@@ -282,7 +282,7 @@ CrWeaponSound src/Dodge/Data/SoundOrigin.hs 18;" C
CrWlID src/Dodge/Data/CrWlID.hs 10;" t
Cr_awareness src/Dodge/Data/Config.hs 72;" C
Cr_status src/Dodge/Data/Config.hs 71;" C
CraftClust src/Dodge/Combine/Graph.hs 20;" C
CraftClust src/Dodge/Combine/Graph.hs 18;" C
CraftType src/Dodge/Data/Item/Combine.hs 49;" t
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
@@ -607,7 +607,7 @@ ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 17;" C
ItCrWdWd src/Dodge/Data/WorldEffect.hs 16;" t
ItTargeting src/Dodge/Data/Item.hs 45;" C
Item src/Dodge/Data/Item.hs 26;" t
ItemClust src/Dodge/Combine/Graph.hs 21;" C
ItemClust src/Dodge/Combine/Graph.hs 19;" C
ItemDimension src/Dodge/Data/Item/Misc.hs 11;" t
ItemLocation src/Dodge/Data/Item/Location.hs 28;" t
ItemParamID src/Dodge/Data/Item/Params.hs 24;" C
@@ -624,7 +624,7 @@ ItemUse src/Dodge/Data/Item/Use.hs 28;" t
ItmInt src/Dodge/Data/Item/Location.hs 25;" t
JOYSTICK src/Dodge/Data/Item/Combine.hs 94;" C
JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C
JoinClust src/Dodge/Combine/Graph.hs 22;" C
JoinClust src/Dodge/Combine/Graph.hs 20;" C
JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C
Just' src/MaybeHelp.hs 11;" C
JustStartedPlaying src/Sound/Data.hs 22;" C
@@ -966,8 +966,6 @@ PUMP src/Dodge/Data/Item/Combine.hs 62;" C
PaletteColor src/Color/Data.hs 11;" t
PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C
PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C
PathEdge src/Dodge/Data/PathGraph.hs 34;" t
PathEdgeNodes src/Dodge/Data/PathGraph.hs 27;" t
PathFromEdge src/Dodge/Data/Room.hs 77;" t
PathShowType src/Dodge/Data/Universe.hs 52;" t
PathTo src/Dodge/Data/ActionPlan.hs 70;" C
@@ -1898,8 +1896,9 @@ _immediateUpdate src/Loop/Data.hs 12;" f
_impulseUseTarget src/Dodge/Data/ActionPlan.hs 45;" f
_impulsesListList src/Dodge/Data/ActionPlan.hs 72;" f
_incEdgeZoning src/Dodge/Data/World.hs 53;" f
_incGraph src/Dodge/Data/CWorld.hs 29;" f
_incNode src/Dodge/Data/CWorld.hs 30;" f
_incEdges src/Dodge/Data/CWorld.hs 30;" f
_incGraph src/Dodge/Data/CWorld.hs 28;" f
_incNode src/Dodge/Data/CWorld.hs 29;" f
_incNodeZoning src/Dodge/Data/World.hs 52;" f
_input src/Dodge/Data/World.hs 41;" f
_isWarming src/Dodge/Data/Item/Params.hs 21;" f
@@ -2074,20 +2073,11 @@ _opticPos src/Dodge/Data/Item/Scope.hs 14;" f
_opticZoom src/Dodge/Data/Item/Scope.hs 17;" f
_partialAction src/Dodge/Data/ActionPlan.hs 111;" f
_pastWorlds src/Dodge/Data/World.hs 36;" f
_pathGraph src/Dodge/Data/CWorld.hs 28;" f
_pathToPoint src/Dodge/Data/ActionPlan.hs 70;" f
_pbID src/Dodge/Data/PulseLaser.hs 24;" f
_pbPos src/Dodge/Data/PulseLaser.hs 22;" f
_pbTimer src/Dodge/Data/PulseLaser.hs 23;" f
_pbVel src/Dodge/Data/PulseLaser.hs 21;" f
_peDist src/Dodge/Data/PathGraph.hs 37;" f
_peEnd src/Dodge/Data/PathGraph.hs 36;" f
_peObstacles src/Dodge/Data/PathGraph.hs 38;" f
_peStart src/Dodge/Data/PathGraph.hs 35;" f
_peZoning src/Dodge/Data/World.hs 51;" f
_penEnd src/Dodge/Data/PathGraph.hs 29;" f
_penPathEdge src/Dodge/Data/PathGraph.hs 30;" f
_penStart src/Dodge/Data/PathGraph.hs 28;" f
_phRemoteID src/Dodge/Data/Projectile.hs 41;" f
_phTargetingID src/Dodge/Data/Projectile.hs 42;" f
_pickUpLevel src/Dodge/Layout/Generate.hs 14;" f
@@ -2112,7 +2102,6 @@ _plSpot src/Dodge/Data/GenWorld.hs 109;" f
_plType src/Dodge/Data/GenWorld.hs 110;" f
_playStatus src/Sound/Data.hs 15;" f
_playingSounds src/Dodge/Data/World.hs 40;" f
_pnZoning src/Dodge/Data/World.hs 50;" f
_posture src/Dodge/Data/Creature/Stance.hs 17;" f
_prBounds src/Dodge/Tree/Shift.hs 29;" f
_prColor src/Dodge/Data/Prop.hs 28;" f
@@ -2406,8 +2395,8 @@ _uScope src/Dodge/Data/Item/Use.hs 34;" f
_uValue src/Dodge/Data/Item/Use.hs 33;" f
_uaParams src/Dodge/Data/Item/Use.hs 30;" f
_ubMod src/Dodge/Data/Item/Use.hs 35;" f
_unCombEdge src/Dodge/Combine/Graph.hs 32;" f
_unCombNode src/Dodge/Combine/Graph.hs 25;" f
_unCombEdge src/Dodge/Combine/Graph.hs 30;" f
_unCombNode src/Dodge/Combine/Graph.hs 23;" f
_unFBO src/Shader/Data.hs 57;" f
_unNInt src/NewInt.hs 16;" f
_unNIntMap src/NewInt.hs 22;" f
@@ -2530,7 +2519,6 @@ addDepth src/Picture/Base.hs 133;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 40;" f
addDoorToggleTerminal src/Dodge/Room/Warning.hs 37;" f
addDoorWall src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 49;" f
addEdges src/Dodge/Path.hs 207;" f
addGib4 src/Dodge/Prop/Gib.hs 52;" f
addGibAt src/Dodge/Prop/Gib.hs 63;" f
addGibAtDir src/Dodge/Prop/Gib.hs 69;" f
@@ -2545,7 +2533,6 @@ addGirderNS' src/Dodge/Room/Modify/Girder.hs 55;" f
addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f
addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f
addIndefiniteArticle src/StringHelp.hs 17;" f
addNodes src/Dodge/Path.hs 200;" f
addPane src/Dodge/Placement/PlaceSpot.hs 183;" f
addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f
addPointPolygon src/Geometry/Polygon.hs 134;" f
@@ -2699,9 +2686,8 @@ basicMachineUpdate src/Dodge/Machine.hs 14;" f
basicMuzFlare src/Dodge/HeldUse.hs 710;" f
battery src/Dodge/Item/Ammo.hs 63;" f
batteryPack src/Dodge/Item/Equipment.hs 46;" f
belowNumX src/Dodge/Combine/Graph.hs 86;" f
belowNumX src/Dodge/Combine/Graph.hs 84;" f
beltMag src/Dodge/Item/Ammo.hs 39;" f
bfsNodePoints src/Dodge/Path.hs 115;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 225;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
bgunSound src/Dodge/HeldUse.hs 514;" f
@@ -2830,8 +2816,8 @@ chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f
chooseMovementLtAuto src/Dodge/CreatureEffect.hs 76;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 59;" f
chooseMovementLtAuto src/Dodge/CreatureEffect.hs 77;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 60;" f
circHitWall src/Dodge/Base/Collide.hs 242;" f
circInPolygon src/Geometry/Polygon.hs 102;" f
circOnAnyCr src/Dodge/Base/Collide.hs 293;" f
@@ -2876,8 +2862,8 @@ clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f
clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f
clsNearRect src/Dodge/Zoning/Cloud.hs 15;" f
clsNearSeg src/Dodge/Zoning/Cloud.hs 12;" f
clusterFormatting src/Dodge/Combine/Graph.hs 125;" f
clusterFunc src/Dodge/Combine/Graph.hs 119;" f
clusterFormatting src/Dodge/Combine/Graph.hs 123;" f
clusterFunc src/Dodge/Combine/Graph.hs 117;" f
cogRaised src/Dodge/Creature/Perception.hs 101;" f
colCrWall src/Dodge/WallCreatureCollisions.hs 29;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f
@@ -2898,8 +2884,8 @@ collidePointWallsFilter src/Dodge/Base/Collide.hs 204;" f
color src/Picture/Base.hs 108;" f
colorLamp src/Dodge/Creature/Lamp.hs 10;" f
colorSH src/Shape.hs 237;" f
combinationsDotGraph src/Dodge/Combine/Graph.hs 95;" f
combinationsGraph src/Dodge/Combine/Graph.hs 74;" f
combinationsDotGraph src/Dodge/Combine/Graph.hs 93;" f
combinationsGraph src/Dodge/Combine/Graph.hs 72;" f
combinationsOf src/Multiset.hs 46;" f
combinationsTrie src/Dodge/Combine.hs 43;" f
combineAwareness src/Dodge/Creature/Perception.hs 109;" f
@@ -3131,13 +3117,13 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
defaultEquipment src/Dodge/Default.hs 24;" f
defaultFlIt src/Dodge/Default.hs 27;" f
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
defaultHUD src/Dodge/Default/World.hs 162;" f
defaultHUD src/Dodge/Default/World.hs 163;" f
defaultHeldItem src/Dodge/Default/Item.hs 9;" f
defaultInanimate src/Dodge/Default/Creature.hs 62;" f
defaultInput src/Dodge/Default/World.hs 11;" f
defaultIntention src/Dodge/Default/Creature.hs 98;" f
defaultInvSize src/Dodge/Default/Creature.hs 72;" f
defaultLWorld src/Dodge/Default/World.hs 99;" f
defaultLWorld src/Dodge/Default/World.hs 100;" f
defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f
defaultMachine src/Dodge/Default.hs 30;" f
defaultMachineWall src/Dodge/Default/Wall.hs 55;" f
@@ -3237,8 +3223,8 @@ doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1158;" f
doGravityPU src/Dodge/Projectile/Update.hs 34;" f
doHeldUseEffect src/Dodge/HeldUse.hs 351;" f
doInPlacements src/Dodge/Layout.hs 90;" f
doIndividualPlacements src/Dodge/Layout.hs 104;" f
doInPlacements src/Dodge/Layout.hs 87;" f
doIndividualPlacements src/Dodge/Layout.hs 101;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f
doItemTimeScroll src/Dodge/Update.hs 193;" f
doLoop src/Loop.hs 60;" f
@@ -3248,10 +3234,10 @@ doPrWdLsLs src/Dodge/PrWdLsLs.hs 8;" f
doPreload appDodge/Main.hs 139;" f
doPropUpdates src/Dodge/Prop/Update.hs 34;" f
doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f
doQuicksave src/Dodge/Save.hs 76;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 447;" f
doRoomPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 104;" f
doRoomShift src/Dodge/Room/Link.hs 33;" f
doScopeZoom src/Dodge/Update/Scroll.hs 91;" f
doSectionSize src/Dodge/DisplayInventory.hs 211;" f
@@ -3295,7 +3281,7 @@ drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBlock src/Dodge/Block/Draw.hs 7;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 357;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 355;" f
drawBullet src/Dodge/Render/ShapePicture.hs 133;" f
drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
@@ -3306,7 +3292,7 @@ drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 269;" f
drawCombineInventory src/Dodge/Render/HUD.hs 182;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f
drawCoord src/Dodge/Debug/Picture.hs 385;" f
drawCoord src/Dodge/Debug/Picture.hs 383;" f
drawCrInfo src/Dodge/Debug.hs 135;" f
drawCrInfo' src/Dodge/Debug.hs 130;" f
drawCreature src/Dodge/Render/ShapePicture.hs 69;" f
@@ -3315,7 +3301,7 @@ drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f
drawCursorAt src/Dodge/Render/List.hs 72;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f
drawDDATest src/Dodge/Debug/Picture.hs 312;" f
drawDDATest src/Dodge/Debug/Picture.hs 310;" f
drawDamSensor src/Dodge/Machine/Draw.hs 27;" f
drawDebug src/Dodge/Debug.hs 173;" f
drawDoubleLampCover src/Dodge/Prop/Draw.hs 95;" f
@@ -3330,7 +3316,7 @@ drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 127;" f
drawExamineInventory src/Dodge/Render/HUD.hs 198;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 279;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 277;" f
drawFlame src/Dodge/Flame/Draw.hs 8;" f
drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f
drawForceField src/Dodge/Wall/Draw.hs 11;" f
@@ -3363,14 +3349,13 @@ drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f
drawMouseCursor src/Dodge/Render/Picture.hs 85;" f
drawMouseOver src/Dodge/Render/HUD.hs 109;" f
drawMousePosition src/Dodge/Debug/Picture.hs 375;" f
drawMousePosition src/Dodge/Debug/Picture.hs 373;" f
drawMovingShape src/Dodge/Prop/Draw.hs 81;" f
drawMovingShapeCol src/Dodge/Prop/Draw.hs 87;" f
drawOptions src/Dodge/Render/MenuScreen.hs 22;" f
drawPathBetween src/Dodge/Debug/Picture.hs 201;" f
drawPathEdge src/Dodge/Debug/Picture.hs 266;" f
drawPathing src/Dodge/Debug/Picture.hs 416;" f
drawPathing' src/Dodge/Debug/Picture.hs 407;" f
drawPathing src/Dodge/Debug/Picture.hs 404;" f
drawPlus src/Dodge/Render/Picture.hs 165;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
@@ -3411,15 +3396,15 @@ drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 212;" f
drawVerticalLampCover src/Dodge/Prop/Draw.hs 71;" f
drawWall src/Dodge/Wall/Draw.hs 7;" f
drawWallFace src/Dodge/Debug/Picture.hs 73;" f
drawWallSearchRays src/Dodge/Debug/Picture.hs 321;" f
drawWallSearchRays src/Dodge/Debug/Picture.hs 319;" f
drawWallsNearCursor src/Dodge/Debug/Picture.hs 230;" f
drawWallsNearSegment src/Dodge/Debug/Picture.hs 130;" f
drawWallsNearYou src/Dodge/Debug/Picture.hs 221;" f
drawWeapon src/Dodge/Creature/Volition.hs 15;" f
drawWlIDs src/Dodge/Debug/Picture.hs 393;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 301;" f
drawWlIDs src/Dodge/Debug/Picture.hs 391;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 299;" f
drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 294;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 292;" f
dropAll src/Dodge/Creature/Update.hs 129;" f
dropInventoryPath src/Dodge/HeldUse.hs 1351;" f
dropItem src/Dodge/Creature/Action.hs 154;" f
@@ -3449,8 +3434,8 @@ ebDamage src/Dodge/EnergyBall.hs 85;" f
ebEffect src/Dodge/EnergyBall.hs 45;" f
ebFlicker src/Dodge/EnergyBall.hs 70;" f
ebtToDamage src/Dodge/EnergyBall.hs 93;" f
edgeFormatting src/Dodge/Combine/Graph.hs 131;" f
edgeToPic src/Dodge/Debug/Picture.hs 425;" f
edgeFormatting src/Dodge/Combine/Graph.hs 129;" f
edgeToPic src/Dodge/Debug/Picture.hs 413;" f
effectOnEquip src/Dodge/Equipment.hs 32;" f
effectOnRemove src/Dodge/Equipment.hs 19;" f
eitType src/Dodge/Data/EquipType.hs 15;" f
@@ -3547,7 +3532,7 @@ flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f
flatLookupItems src/Dodge/Combine.hs 38;" f
flatShield src/Dodge/Item/Held/Utility.hs 17;" f
flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 440;" f
fleeFrom src/Dodge/CreatureEffect.hs 91;" f
fleeFrom src/Dodge/CreatureEffect.hs 92;" f
flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f
flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f
floatSize src/Shader/Parameters.hs 17;" f
@@ -3578,7 +3563,6 @@ fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 145;" f
frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
fromEdgeTuple src/Dodge/Path/Translate.hs 5;" f
fromJust' src/MaybeHelp.hs 22;" f
fromListL src/DoubleStack.hs 7;" f
fromTopLeft src/Dodge/ScreenPos.hs 9;" f
@@ -3595,9 +3579,9 @@ gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f
gRandify src/Dodge/Randify.hs 11;" f
gadgetEffect src/Dodge/HeldUse.hs 47;" f
gameOverMenu src/Dodge/Menu.hs 207;" f
gameRoomFromRoom src/Dodge/Layout.hs 155;" f
gameRoomFromRoom src/Dodge/Layout.hs 152;" f
gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 152;" f
gameRoomsFromRooms src/Dodge/Layout.hs 149;" f
gameplayMenu src/Dodge/Menu.hs 154;" f
gameplayMenuOptions src/Dodge/Menu.hs 157;" f
gasType src/Dodge/HeldUse.hs 1115;" f
@@ -3646,7 +3630,7 @@ getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 129;" f
getTiles src/Dodge/Layout.hs 202;" f
getTiles src/Dodge/Layout.hs 199;" f
getViewpoints src/Dodge/Viewpoints.hs 29;" f
getVolleyBurst src/Dodge/HeldUse.hs 126;" f
getWallSPic src/Dodge/Render/Walls.hs 51;" f
@@ -3894,7 +3878,7 @@ itemBelowAttachables src/Dodge/Item/Grammar.hs 50;" f
itemBlips src/Dodge/RadarSweep.hs 94;" f
itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f
itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 59;" f
itemDetectorEffect src/Dodge/HeldUse.hs 794;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f
itemEquipPict src/Dodge/Item/Draw.hs 18;" f
@@ -4026,7 +4010,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f
loadDodgeConfig src/Dodge/Config.hs 30;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
loadMuzzle src/Dodge/HeldUse.hs 630;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSaveSlot src/Dodge/Save.hs 73;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
loadSounds src/Dodge/SoundLogic/LoadSound.hs 18;" f
@@ -4116,8 +4100,8 @@ makeIntInterval src/Dodge/Zoning/Base.hs 35;" f
makeMovingEB src/Dodge/EnergyBall.hs 60;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 656;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 76;" f
makePathBetweenPs src/Dodge/Path.hs 112;" f
makePathBetween src/Dodge/Path.hs 73;" f
makePathBetweenPs src/Dodge/Path.hs 94;" f
makePathUsing src/Dodge/Path.hs 60;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" f
@@ -4145,7 +4129,7 @@ materialColor src/Dodge/Material/Color.hs 8;" f
maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f
maxDamageType src/Dodge/Damage.hs 58;" f
maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f
maxShowX src/Dodge/Combine/Graph.hs 50;" f
maxShowX src/Dodge/Combine/Graph.hs 48;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearPath src/Dodge/Block.hs 72;" f
@@ -4279,7 +4263,7 @@ mvProp src/Dodge/Placement/PlaceSpot.hs 188;" f
mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 198;" f
myIntersectSegSeg src/Geometry/Intersect.hs 176;" f
myParams src/Dodge/Combine/Graph.hs 103;" f
myParams src/Dodge/Combine/Graph.hs 101;" f
nRays src/Geometry.hs 182;" f
nRaysRad src/Geometry.hs 186;" f
nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f
@@ -4299,7 +4283,7 @@ nextLayoutInt src/Dodge/Data/MetaTree.hs 43;" f
noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 23;" f
nodeFormatting src/Dodge/Combine/Graph.hs 147;" f
nodeFormatting src/Dodge/Combine/Graph.hs 145;" f
normalGait src/Dodge/Creature/State/WalkCycle.hs 30;" f
normalizeAngle src/Geometry/Vector.hs 128;" f
normalizeAnglePi src/Dodge/Base.hs 154;" f
@@ -4319,8 +4303,8 @@ numSelfTree' src/Dodge/Tree/Compose.hs 110;" f
numShads src/Picture/Data.hs 40;" f
numSubElements src/Shader/Parameters.hs 39;" f
numTraversable src/TreeHelp.hs 184;" f
obstacleColor src/Dodge/Debug/Picture.hs 271;" f
obstructPathsCrossing src/Dodge/Path.hs 223;" f
obstacleColor src/Dodge/Debug/Picture.hs 269;" f
obstructPathsCrossing src/Dodge/Path.hs 200;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
onEquipWristShield src/Dodge/Equipment.hs 37;" f
onRemoveWristShield src/Dodge/Equipment.hs 24;" f
@@ -4368,8 +4352,7 @@ p src/ShortShow.hs 48;" f
pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f
pairInPolys src/Dodge/Room/Path.hs 45;" f
pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 68;" f
pairsToGraph src/Dodge/Path.hs 193;" f
pairsToIncGraph src/Dodge/Path.hs 171;" f
pairsToIncGraph src/Dodge/Path.hs 148;" f
pairsToIncidence src/Dodge/Graph.hs 20;" f
pairsToSCC src/Dodge/Graph.hs 32;" f
paletteToColor src/Color.hs 58;" f
@@ -4377,7 +4360,7 @@ parseItem src/Dodge/Debug/Terminal.hs 62;" f
parseNum src/Dodge/Debug/Terminal.hs 77;" f
passthroughLockKeyLists src/Dodge/Floor.hs 120;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 85;" f
pathEdgeObstructed src/Dodge/Path.hs 76;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 525;" f
pauseMenu src/Dodge/Menu.hs 59;" f
@@ -4397,10 +4380,6 @@ performAimAt src/Dodge/Creature/Action.hs 102;" f
performPathTo src/Dodge/Creature/Action.hs 115;" f
performTurnToA src/Dodge/Creature/Action.hs 127;" f
perspectiveMatrixb src/MatrixHelper.hs 11;" f
pesNearCirc src/Dodge/Zoning/Pathing.hs 46;" f
pesNearPoint src/Dodge/Zoning/Pathing.hs 35;" f
pesNearRect src/Dodge/Zoning/Pathing.hs 43;" f
pesNearSeg src/Dodge/Zoning/Pathing.hs 40;" f
picFormat src/Polyhedra.hs 23;" f
picMap src/Picture/Base.hs 67;" f
pickUpItem src/Dodge/Inventory/Add.hs 69;" f
@@ -4453,17 +4432,13 @@ pmTriangleFan src/Shader/Data.hs 107;" f
pmTriangleStrip src/Shader/Data.hs 107;" f
pmTriangles src/Shader/Data.hs 107;" f
pnZoneSize src/Dodge/Zoning/Pathing.hs 26;" f
pnsNearCirc src/Dodge/Zoning/Pathing.hs 23;" f
pnsNearPoint src/Dodge/Zoning/Pathing.hs 14;" f
pnsNearRect src/Dodge/Zoning/Pathing.hs 20;" f
pnsNearSeg src/Dodge/Zoning/Pathing.hs 17;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 209;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 78;" f
pointInPoly src/Geometry/Polygon.hs 86;" f
pointIsInCone src/Geometry.hs 375;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 120;" f
pointTowardsImpulse src/Dodge/Path.hs 97;" f
pointerToItem src/Dodge/Item/Location.hs 39;" f
pointerToItemID src/Dodge/Item/Location.hs 42;" f
pointerYourRootItem src/Dodge/Item/Location.hs 33;" f
@@ -4649,7 +4624,7 @@ randSpark src/Dodge/Spark.hs 69;" f
randSparkExtraVel src/Dodge/Spark.hs 92;" f
randWallReflect src/Dodge/Update.hs 643;" f
randomChallenges src/Dodge/Room/Start.hs 63;" f
randomCompass src/Dodge/Layout.hs 63;" f
randomCompass src/Dodge/Layout.hs 60;" f
randomFourCornerRoom src/Dodge/Room/Procedural.hs 268;" f
randomFourCornerRoomCrsIts src/Dodge/Room/Procedural.hs 280;" f
randomLightPositions src/Dodge/Room/Modify/Girder.hs 152;" f
@@ -4663,7 +4638,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f
randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 216;" f
readSaveSlot src/Dodge/Save.hs 45;" f
readSaveSlot src/Dodge/Save.hs 44;" f
recoilAmount src/Dodge/HeldUse.hs 467;" f
rectNSWE src/Geometry/Polygon.hs 15;" f
rectVV src/Geometry/Polygon.hs 40;" f
@@ -4688,7 +4663,7 @@ refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f
regexCombs src/Dodge/DisplayInventory.hs 71;" f
regexList src/Dodge/DisplayInventory.hs 308;" f
reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f
reloadLevelStart src/Dodge/Save.hs 71;" f
reloadLevelStart src/Dodge/Save.hs 70;" f
reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f
rememberSounds src/Dodge/Creature/Perception.hs 176;" f
remoteDetonator src/Dodge/Item/Scope.hs 144;" f
@@ -4821,8 +4796,8 @@ safeUpdateSingleNode src/TreeHelp.hs 116;" f
saveConfig src/Dodge/Config.hs 23;" f
saveQuit src/Dodge/Menu.hs 79;" f
saveQuitConc src/Dodge/Menu.hs 82;" f
saveSlotPath src/Dodge/Save.hs 63;" f
saveWorldInSlot src/Dodge/Save.hs 68;" f
saveSlotPath src/Dodge/Save.hs 62;" f
saveWorldInSlot src/Dodge/Save.hs 67;" f
sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f
scToTS src/Dodge/Event/Input.hs 34;" f
scale src/Picture/Base.hs 149;" f
@@ -4885,7 +4860,7 @@ setAimPosture src/Dodge/Creature/YourControl.hs 145;" f
setChannelPos src/Sound.hs 150;" f
setClickWorldPos src/Dodge/Update.hs 101;" f
setClip src/Dodge/Debug.hs 159;" f
setClusterID src/Dodge/Combine/Graph.hs 116;" f
setClusterID src/Dodge/Combine/Graph.hs 114;" f
setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 49;" f
setFallback src/Dodge/PlacementSpot.hs 125;" f
@@ -4910,8 +4885,8 @@ setShaderSource src/Shader/Compile.hs 290;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
setSoundVolume src/Sound.hs 157;" f
setTargetMv src/Dodge/Creature/ReaderUpdate.hs 82;" f
setTile src/Dodge/Layout.hs 73;" f
setTiles src/Dodge/Layout.hs 70;" f
setTile src/Dodge/Layout.hs 70;" f
setTiles src/Dodge/Layout.hs 67;" f
setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 72;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
@@ -4935,7 +4910,7 @@ setupVBOStatic src/Shader/Compile.hs 116;" f
setupVBOVAO src/Shader/Compile.hs 200;" f
setupVertexAttribPointer src/Shader/Compile.hs 224;" f
setupVertexAttribs src/Shader/Compile.hs 218;" f
setupWorldBounds src/Dodge/Layout.hs 119;" f
setupWorldBounds src/Dodge/Layout.hs 116;" f
sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f
shadVBOptr src/Shader.hs 40;" f
shaderTypeExt src/Shader/Compile.hs 172;" f
@@ -5006,7 +4981,7 @@ shrinkPolyOnEdges src/Geometry/Polygon.hs 174;" f
shrinkVert src/Geometry/Polygon.hs 178;" f
shuffle src/RandomHelp.hs 49;" f
shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 85;" f
shuffleRoomPos src/Dodge/Layout.hs 82;" f
shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 151;" f
simpleCrSprings src/Dodge/Update.hs 861;" f
@@ -5038,11 +5013,11 @@ smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f
smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f
smallPillar src/Dodge/Room/Pillar.hs 37;" f
smallRoom src/Dodge/Room/RunPast.hs 31;" f
smallSnailInt2 src/Dodge/Path.hs 106;" f
smallSnailInt2 src/Dodge/Path.hs 88;" f
smg src/Dodge/Item/Held/Stick.hs 58;" f
smokeReducer src/Dodge/Item/Scope.hs 162;" f
snailAround src/Dodge/Path.hs 103;" f
snapToGrid src/Dodge/Path.hs 246;" f
snailAround src/Dodge/Path.hs 85;" f
snapToGrid src/Dodge/Path.hs 223;" f
sndV2 src/Geometry/Data.hs 73;" f
sniperRifle src/Dodge/Item/Held/Rod.hs 44;" f
someCrits src/Dodge/LockAndKey.hs 120;" f
@@ -5056,7 +5031,7 @@ soundMultiFrom src/Dodge/SoundLogic.hs 187;" f
soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f
soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f
soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 296;" f
soundPic src/Dodge/Debug/Picture.hs 362;" f
soundPic src/Dodge/Debug/Picture.hs 360;" f
soundStart src/Dodge/SoundLogic.hs 118;" f
soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" f
soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
@@ -5234,7 +5209,7 @@ thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 44;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwItem src/Dodge/Creature/Action.hs 190;" f
tileTexCoords src/Tile.hs 11;" f
tilesFromRooms src/Dodge/Layout.hs 199;" f
tilesFromRooms src/Dodge/Layout.hs 196;" f
tilesToLine src/Shader/AuxAddition.hs 66;" f
timeFlowUpdate src/Dodge/Update.hs 169;" f
timeScroller src/Dodge/Item/Held/Utility.hs 42;" f
@@ -5564,8 +5539,8 @@ verticalPipe src/Dodge/Picture.hs 19;" f
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
verticalWire src/Dodge/Wire.hs 24;" f
vgunMuzzles src/Dodge/HeldUse.hs 341;" f
viewBoundaries src/Dodge/Debug/Picture.hs 330;" f
viewClipBounds src/Dodge/Debug/Picture.hs 339;" f
viewBoundaries src/Dodge/Debug/Picture.hs 328;" f
viewClipBounds src/Dodge/Debug/Picture.hs 337;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 154;" f
violet src/Color.hs 21;" f
@@ -5575,13 +5550,13 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f
walkNozzle src/Dodge/HeldUse.hs 809;" f
walkableNodeNear src/Dodge/Path.hs 91;" f
walkableNodeNear src/Dodge/Path.hs 79;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 53;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallToSurface src/Dodge/Base/Collide.hs 182;" f
wallsFromRooms src/Dodge/Layout.hs 140;" f
wallsFromRooms src/Dodge/Layout.hs 137;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1376;" f
warningRooms src/Dodge/Room/Warning.hs 30;" f
@@ -5650,7 +5625,7 @@ wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
wristArmour src/Dodge/Item/Equipment.hs 43;" f
wristInvisibility src/Dodge/Item/Equipment.hs 96;" f
writeConfig src/Dodge/Menu.hs 182;" f
writeSaveSlot src/Dodge/Save.hs 34;" f
writeSaveSlot src/Dodge/Save.hs 36;" f
xCylinder src/Shape.hs 137;" f
xCylinderST src/Shape.hs 134;" f
xIntercepts src/Dodge/Zoning/Base.hs 60;" f
@@ -5692,14 +5667,12 @@ zoneOfCl src/Dodge/Zoning/Cloud.hs 24;" f
zoneOfCr src/Dodge/Zoning/Creature.hs 45;" f
zoneOfDs src/Dodge/Zoning/Cloud.hs 45;" f
zoneOfIncPe src/Dodge/Zoning/Pathing.hs 52;" f
zoneOfPe src/Dodge/Zoning/Pathing.hs 55;" f
zoneOfPn src/Dodge/Zoning/Pathing.hs 29;" f
zoneOfPoint src/Dodge/Zoning/Base.hs 44;" f
zoneOfRect src/Dodge/Zoning/Base.hs 28;" f
zoneOfSeg src/Dodge/Zoning/Base.hs 47;" f
zoneOfSight src/Dodge/Zoning/World.hs 9;" f
zoneOfWl src/Dodge/Zoning/Wall.hs 55;" f
zonePe src/Dodge/Zoning/Pathing.hs 58;" f
zonePn src/Dodge/Zoning/Pathing.hs 32;" f
zoneWall src/Dodge/Zoning/Wall.hs 65;" f
zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f