Continue work on chasm rooms

This commit is contained in:
2025-10-03 11:52:49 +01:00
parent 7e3614c9c8
commit 5c22ca6662
11 changed files with 426 additions and 326 deletions
+12 -4
View File
@@ -8,7 +8,7 @@ Room layout (compact):
|
+- 8,9,10
|
11,12,13,14,15,16,17
11,12,13,14,15,16,17,18,19,20,21
Layout with room names:
tutRezBox-0
@@ -35,15 +35,23 @@ doorToggle-6gon-3
|
triggerDoorRoom-11
|
autoRect-12
6gon-12
|
Corridor-13
|
6gon-14
autoRect-14
|
defaultRoom-15
Corridor-15
|
autoRect-16
|
Corridor-17
|
6gon-18
|
defaultRoom-19
|
autoRect-20
|
Corridor-21
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727
18 rooms in total
22 rooms in total
+9 -1
View File
@@ -43,9 +43,17 @@ Seed: 7114951007332849727
3:0:TutLight
3:0:0:autoRect
3:0:0:6gon
|
3:0:1:Corridor
|
3:0:2:autoRect
|
3:0:3:Corridor
|
3:0:4:autoRect
|
3:0:5:Corridor
4:0:TutDrop
+1 -1
View File
File diff suppressed because one or more lines are too long
+4
View File
@@ -62,6 +62,9 @@ data PSType
| PutNothing
| PutID {_putID :: Int}
| PutChasm {_putChasmPoly :: [Point2]}
| PutLabel {_putLabel :: String} -- currently not actually put anywhere
-- just used for later inspection as top level
-- of a continuing placement in a room placement list
instance ShortShow PSType where
shortShow PutCrit {} = "PutCrit"
@@ -86,6 +89,7 @@ instance ShortShow PSType where
shortShow PutNothing = "PutNothing"
shortShow PutID {} = "PutID"
shortShow PutChasm {} = "PutChasm"
shortShow PutLabel {} = "PutLabel"
-- maybe there is a monadic implementation of this?
-- add room effect for any placement spot?
+1
View File
@@ -43,6 +43,7 @@ data RoomLinkType
= OutLink
| InLink
| LabLink Int
| PolyEdge Int
| OnEdge CardinalPoint
| FromEdge CardinalPoint Int
| BlockedLink
+45 -31
View File
@@ -1,4 +1,17 @@
module Dodge.Placement.Instance.LightSource where
module Dodge.Placement.Instance.LightSource (
mntLSOn,
aShape,
mntLightLnkCond,
mntLS,
vShape,
iShape,
putLamp,
spanColLightBlackI,
moveLSThen,
spanLightI,
mntLightLnkCond',
spanLS,
) where
import Color
import Control.Lens
@@ -62,6 +75,7 @@ mntLSOn ::
(Placement -> Maybe Placement) ->
Placement
mntLSOn shapeF mcol ls wallp lsp@(V3 lx ly _) =
ps0jPushPS (PutLabel "light") .
ps0jPushPS (putShape . setCol $ shapeF wallp lsp)
. pt0 (PutLS $ ls & lsParam . lsPos .~ lsp')
where
@@ -125,23 +139,23 @@ mntLS shp wallp lampp = mntLSOn shp Nothing defaultLS wallp lampp (const Nothing
where
defaultLS = LS 0 $ LSParam 0 300 0.6
mntLSCol :: (Point2 -> Point3 -> Shape) -> Color -> Point2 -> Point3 -> Placement
mntLSCol shp col wallp lampp = mntLSOn shp (Just col) defaultLS wallp lampp (const Nothing)
where
defaultLS = LS 0 $ LSParam 0 200 0.6
--mntLSCol :: (Point2 -> Point3 -> Shape) -> Color -> Point2 -> Point3 -> Placement
--mntLSCol shp col wallp lampp = mntLSOn shp (Just col) defaultLS wallp lampp (const Nothing)
-- where
-- defaultLS = LS 0 $ LSParam 0 200 0.6
mntLSLampCol :: (Point2 -> Point3 -> Shape) -> Color -> Point2 -> Point3 -> Placement
mntLSLampCol shp (V4 x y z _) wallp lampp =
mntLSOn
shp
Nothing
(defaultLS & lsParam . lsCol .~ col)
wallp
lampp
(const Nothing)
where
col = V3 x y z
defaultLS = LS 0 $ LSParam 0 200 0.6
--mntLSLampCol :: (Point2 -> Point3 -> Shape) -> Color -> Point2 -> Point3 -> Placement
--mntLSLampCol shp (V4 x y z _) wallp lampp =
-- mntLSOn
-- shp
-- Nothing
-- (defaultLS & lsParam . lsCol .~ col)
-- wallp
-- lampp
-- (const Nothing)
-- where
-- col = V3 x y z
-- defaultLS = LS 0 $ LSParam 0 200 0.6
mntLSCond ::
(Point2 -> Point3 -> Shape) ->
@@ -155,10 +169,10 @@ mntLSCond shp ps =
-- note that this perhaps pushes the vshape light out too far
mntLight :: RandomGen g => Point2 -> Point2 -> State g Placement
mntLight a b = do
shp <- takeOne [vShape, iShape, lShape, jShape, liShape]
return $ mntLS shp a (addZ 90 b)
--mntLight :: RandomGen g => Point2 -> Point2 -> State g Placement
--mntLight a b = do
-- shp <- takeOne [vShape, iShape, lShape, jShape, liShape]
-- return $ mntLS shp a (addZ 90 b)
mntLightLnkCond :: RandomGen g => PlacementSpot -> State g Placement
mntLightLnkCond ps = do
@@ -168,12 +182,12 @@ mntLightLnkCond ps = do
mntLightLnkCond' :: PlacementSpot -> Placement
mntLightLnkCond' = mntLSCond (fmap (fmap $ colorSH black) vShape)
spanLSLightI :: LightSource -> Float -> Point2 -> Point2 -> Placement
spanLSLightI ls h a b =
ps0j (PutLS $ ls & lsParam . lsPos .~ V3 x y h) $
sps0 $ putShape $ thinHighBar h a b
where
V2 x y = 0.5 *.* (a +.+ b)
--spanLSLightI :: LightSource -> Float -> Point2 -> Point2 -> Placement
--spanLSLightI ls h a b =
-- ps0j (PutLS $ ls & lsParam . lsPos .~ V3 x y h) $
-- sps0 $ putShape $ thinHighBar h a b
-- where
-- V2 x y = 0.5 *.* (a +.+ b)
spanLS :: LightSource -> Point2 -> Point2 -> Placement
spanLS ls a b =
@@ -200,11 +214,11 @@ spanColLightBlackI col h a b =
spanLightI :: Point2 -> Point2 -> Placement
spanLightI = spanColLightI 0.75 50
extendAway :: Point2 -> Point2 -> Point2
extendAway p x = p +.+ squashNormalizeV (p -.- x)
--extendAway :: Point2 -> Point2 -> Point2
--extendAway p x = p +.+ squashNormalizeV (p -.- x)
putColorLamp :: Point3 -> PSType
putColorLamp col = PutCrit (colorLamp col 90)
--putColorLamp :: Point3 -> PSType
--putColorLamp col = PutCrit (colorLamp col 90)
putLamp :: PSType
putLamp = PutCrit (lamp 90)
+1
View File
@@ -129,6 +129,7 @@ placeSpotID rid ps pt w = case pt of
PutID i -> (i, w)
PutWorldUpdate f -> (0, w & f rid ps)
PutChasm ps' -> (0, w & gwWorld . cWorld . chasms .:~ map doShift ps')
PutLabel {} -> (0, w)
where
p@(V2 px py) = _psPos ps
p' = V3 px py 0
+23 -18
View File
@@ -1,36 +1,41 @@
module Dodge.Room.Ngon where
import RandomHelp
import Data.List
import qualified Data.Set as S
--import Data.Maybe
import Data.Tile
import Dodge.Data.GenWorld
import Dodge.Default.Room
import Dodge.Placement.Instance
import Dodge.PlacementSpot
import Dodge.RoomLink
import Geometry
import RandomHelp
import Tile
roomNgon :: RandomGen g => Int -> Float -> State g Room
roomNgon n x = do
thelight <-mntLightLnkCond $ resetPLUse $ rprBool $ const . isInLnk
return defaultRoom
{ _rmPolys = [poly]
, _rmLinks = map toBothLnk lnks -- muout (init lnks) ++ muin[last lnks]
, _rmPath = mempty -- TODO
, _rmPmnts = [thelight]
, _rmBound = [poly]
, _rmFloor = Tiled [makeTileFromPoly poly 2]
, _rmName = show n ++ "gon"
}
thelight <- mntLightLnkCond $ resetPLUse $ rprBool $ const . isInLnk
return
defaultRoom
{ _rmPolys = [poly]
, _rmLinks = map f lnks -- muout (init lnks) ++ muin[last lnks]
, _rmPath = mempty -- TODO
, _rmPmnts = [thelight]
, _rmBound = [poly]
, _rmFloor = Tiled [makeTileFromPoly poly 2]
, _rmName = show n ++ "gon"
}
where
rot = 2 * pi / fromIntegral n
rots = map ((rot *) . fromIntegral) [0 .. n -1]
poly = polyOrthDist n x
-- mapMaybe
-- (\(ra, rb) -> intersectLineLine (rotateV ra bl) (rotateV ra br) (rotateV rb bl) (rotateV rb br))
-- $ loopPairs rots
-- bl = V2 x x
-- br = V2 (- x) x
lnks = sortOn ((\(V2 a b) -> (negate b, a)) . fst) $ map (\r -> (rotateV r (V2 0 x), r)) rots
lnks =
sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd)
. zip [0 ..]
$ map (\r -> (rotateV r (V2 0 x), r)) rots
f (i, (p, a)) =
RoomLink
{ _rlType = S.fromList [OutLink, InLink, PolyEdge i]
, _rlPos = p
, _rlDir = a
}
+179 -120
View File
@@ -1,12 +1,23 @@
module Dodge.Room.Tutorial where
import Control.Monad
--import Dodge.Room.Corridor
--import Dodge.Room.Door
--import Dodge.Room.Link
--import Dodge.Room.RoadBlock
--import Dodge.Tree
--import Padding
import qualified Data.IntMap.Strict as IM
import qualified Data.IntSet as IS
import Data.Maybe (mapMaybe)
import qualified Data.Set as S
import ShortShow
import Dodge.Data.MTRS
import Dodge.Room.Room
import Dodge.Cleat
import Dodge.Data.GenWorld
import Dodge.Data.MTRS
import Dodge.Default.Terminal
import Dodge.Item.Ammo
import Dodge.Item.Held.Cane
@@ -19,25 +30,20 @@ import Dodge.Room.Door
import Dodge.Room.LasTurret
import Dodge.Room.Link
import Dodge.Room.Ngon
--import Dodge.Room.Corridor
--import Dodge.Room.Door
--import Dodge.Room.Link
import Dodge.Room.Procedural
import Dodge.Room.RezBox
import Dodge.Room.RoadBlock
import Dodge.Room.Room
import Dodge.Room.Warning
--import Dodge.Room.RoadBlock
import Dodge.RoomLink
import Dodge.Terminal
import Dodge.Tree.Compose
--import Dodge.Tree
import Geometry
import LensHelp
--import Padding
import Linear
import RandomHelp
import ShortShow
import TreeHelp
import qualified Data.IntSet as IS
import qualified Data.IntMap.Strict as IM
--import Data.List (intersperse)
@@ -54,141 +60,188 @@ tutAnoTree = do
---- , AnTree $ weaponTut
]
foldMTRS :: [State LayoutVars (MetaTree Room String)]
-> State LayoutVars (MetaTree Room String)
foldMTRS xs = do
foldMTRS ::
[State LayoutVars (MetaTree Room String)] ->
State LayoutVars (MetaTree Room String)
foldMTRS xs = do
ys <- sequence xs
return $ foldr1 attachOnward' ys
setRoomInt :: Room -> State LayoutVars (Int,Room)
setRoomInt :: Room -> State LayoutVars (Int, Room)
setRoomInt x = do
i <- nextLayoutInt
return (i,x & rmPmnts .:~ sps0 (PutWorldUpdate (f i)))
return (i, x & rmPmnts .:~ sps0 (PutWorldUpdate (f i)))
where
f i rid _ gw = gw & genInts . at i ?~ (gw ^?! genRooms . ix rid . rmMID . _Just)
setTreeInts :: Tree Room -> State LayoutVars ([Int],Tree Room)
setTreeInts :: Tree Room -> State LayoutVars ([Int], Tree Room)
setTreeInts x = do
y <- traverse setRoomInt x
return (foldMap ((:[]) . fst) y, fmap snd y)
return (foldMap ((: []) . fst) y, fmap snd y)
tutDrop :: State LayoutVars (MetaTree Room String)
tutDrop = do
x <- shuffleLinks =<< roomNgon 6 100
i <- nextLayoutInt
--let y = decontamRoom i
(j,y) <- setRoomInt (decontamRoom i)
(j, y) <- setRoomInt (decontamRoom i)
rm <- roomRectAutoLinks 40 100
return $
tToBTree "TutDrop" $
treePost
[x & rmInPmnt .:~ (0,t j), y, cleatOnward rm]
[x & rmInPmnt .:~ (0, t j), y, cleatOnward rm]
where
t j = \ gw -> let x = gw ^? genInts . ix j
in putMessageTerminal
terminalColor
(defaultTerminal & tmBootLines .~ ss <> tlSetStatus (TerminalPressTo $ show x <>"QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
& plSpot .~ rprBoolShift isUnusedLnk
(\(p, a) -> ((p + 10 *.* unitVectorAtAngle (a - pi/2), a), S.singleton UsedPosLow))
t j = \gw ->
let x = gw ^? genInts . ix j
in putMessageTerminal
terminalColor
(defaultTerminal & tmBootLines .~ ss <> tlSetStatus (TerminalPressTo $ show x <> "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
& plSpot
.~ rprBoolShift
isUnusedLnk
(\(p, a) -> ((p + 10 *.* unitVectorAtAngle (a - pi / 2), a), S.singleton UsedPosLow))
ss =
[makeTermLine "--------------------------------------------"
,makeTermLine "YOU CAN ONLY CARRY A LIMITED AMOUNT OF ITEMS"
,makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
[ makeTermLine "USE [F] TO DROP SINGLE ITEMS"
,makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
[ makeTermLine "YOU CAN SELECT AND MOVE MULTIPLE ITEMS"
, makeTermLine " WITH THE MOUSE"
, makeTermLine "-------------------------------------------"
[ makeTermLine "--------------------------------------------"
, makeTermLine "YOU CAN ONLY CARRY A LIMITED AMOUNT OF ITEMS"
, makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
<> [ makeTermLine "USE [F] TO DROP SINGLE ITEMS"
, makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
<> [ makeTermLine "YOU CAN SELECT AND MOVE MULTIPLE ITEMS"
, makeTermLine " WITH THE MOUSE"
, makeTermLine "-------------------------------------------"
]
cChasm :: State LayoutVars Room
cChasm = do
x <- state $ randomR (150,300)
y <- state $ randomR (150,300)
x <- state $ randomR (150, 300)
y <- state $ randomR (150, 300)
roomRectAutoLinks x y
<&> rmLinks %~ setOutLinks (isCornerLink NorthWest)
<&> rmLinks %~ setInLinks (isCornerLink SouthWest)
<&> rmPmnts <>~ [sps0 $ PutChasm (rectNSWE (y-50) 50 0 (x-50))]
<&> rmPmnts <>~ [sps0 $ PutChasm (rectNSWE (y -50) 50 0 (x -50))]
lChasm :: State LayoutVars Room
lChasm = do
x <- state $ randomR (150,300)
y <- state $ randomR (150,300)
x <- state $ randomR (150, 300)
y <- state $ randomR (150, 300)
roomRectAutoLinks x y
<&> rmLinks %~ setOutLinks (isCornerLink NorthWest)
<&> rmLinks %~ setInLinks (isCornerLink SouthEast)
<&> rmPmnts <>~ [sps0 $ PutChasm (rectNSWE (y-50) 0 0 (x-50))]
<&> rmPmnts <>~ [sps0 $ PutChasm (rectNSWE (y -50) 0 0 (x -50))]
zChasm :: Float -> State LayoutVars Room
zChasm z = do
x <- state $ randomR (150,300)
y <- state $ randomR (150,300)
x <- state $ randomR (150, 300)
y <- state $ randomR (150, 300)
roomRectAutoLinks x y
<&> rmLinks %~ setOutLinks (isCornerLink NorthWest)
<&> rmLinks %~ setInLinks (isCornerLink SouthEast)
<&> rmPmnts <>~
[sps0 $ PutChasm (rectNSWE (y/2-z) 0 0 (x-50))
,sps0 $ PutChasm (rectNSWE y (y/2+z) 50 x)
<&> rmPmnts
<>~ [ sps0 $ PutChasm (rectNSWE (y / 2 - z) 0 0 (x -50))
, sps0 $ PutChasm (rectNSWE y (y / 2 + z) 50 x)
]
midChasm :: State LayoutVars Room
midChasm = do
x <- state $ randomR (200,300)
y <- state $ randomR (200,300)
x <- state $ randomR (200, 300)
y <- state $ randomR (200, 300)
r <- roomRectAutoLinks x y
cs <- join $ takeOne [cenoct x y,censquare x y]
shuffleLinks $ r
& rmLinks %~ setOutLinks (isMidEdgeLink r North)
& rmLinks %~ setInLinks (isMidEdgeLink r South)
& rmPmnts <>~ cs
cs <- join $ takeOne [cenoct x y, censquare x y]
shuffleLinks $
r
& rmLinks %~ setOutLinks (isMidEdgeLink r North)
& rmLinks %~ setInLinks (isMidEdgeLink r South)
& rmPmnts <>~ cs
where
censquare x y = do
z <- state $ randomR (40,60)
return [sps0 $ PutChasm (rectNSWE (y-z) z z (x-z))]
cenoct x y = return
[sps0 $ PutChasm $ (V2 (x/2) (y/2) +) <$> polyOrthDist 8 (min x y/2 - 25)]
z <- state $ randomR (40, 60)
return [sps0 $ PutChasm (rectNSWE (y - z) z z (x - z))]
cenoct x y =
return
[sps0 $ PutChasm $ (V2 (x / 2) (y / 2) +) <$> polyOrthDist 8 (min x y / 2 - 25)]
-- dia x y = [sps0 $ PutChasm [V2 ]
polyChasm :: Int -> Float -> State LayoutVars Room
polyChasm n x = roomNgon n x
polyChasm n x =
shuffleLinks
=<< ( roomNgon n x
<&> rmPmnts <>~ [sps0 $ PutChasm $ polyOrthDist n (x -30)]
<&> rmLinks %~ setOutLinks (\rl -> rl ^. rlPos . _y > 0)
<&> rmLinks %~ setInLinks (\rl -> rl ^. rlPos . _y < (5 - x))
)
polyChasmC :: Int -> Float -> State LayoutVars Room
polyChasmC n x =
roomNgon n x
<&> rmPmnts <>~ [sps0 $ PutChasm $ rectNSWE x (60 - x) (-40) 40]
<&> rmLinks %~ setInLinks (\rl -> PolyEdge 1 `S.member` (rl ^. rlType))
<&> rmLinks %~ setOutLinks (\rl -> PolyEdge (n -1) `S.member` (rl ^. rlType))
chasmSimpleMaze :: State LayoutVars Room
chasmSimpleMaze = join $ takeOne
[midChasm
,zChasm 25
,lChasm
,cChasm
]
chasmSimpleMaze =
join $
takeOne
[ midChasm
, zChasm 25
, lChasm
, cChasm
, pc1
, pc2
]
where
pc1 = do
i <- takeOne [6, 8]
x <- state $ randomR (100, 150)
polyChasm i x
pc2 = do
i <- takeOne [6, 8]
x <- state $ randomR (100, 150)
polyChasmC i x
tutLight :: State LayoutVars (MetaTree Room String)
tutLight = do
-- x <- roomRectAutoLinks 200 400
-- let y = x & rmLinks %~ setOutLinks (\rl -> OnEdge North `S.member` _rlType rl)
-- -- & rmLinks %~ setInLinks (\rl -> OnEdge South `S.member` _rlType rl)
-- -- & rmLinks %~ setLinkType InLink (isCornerLink SouthEast)
-- & rmLinks %~ setLinkType InLink (isMidEdgeLink x South)
x <- chasmSimpleMaze
return $ tToBTree "TutLight" $ treePost [x,cleatOnward corridor]
y <- chasmSimpleMaze
return $
tToBTree "TutLight" $
treePost
[ x
, corridor & rmPmnts .~ mempty
, removeLights y
, corridor & rmPmnts .~ mempty
, removeLights y
, cleatOnward corridor & rmPmnts .~ mempty
]
removeLights :: Room -> Room
removeLights = rmPmnts %~ mapMaybe f
where
f x = case x ^. plType of
PutLabel "light" -> Nothing
_ -> Just x
tutHub :: State LayoutVars (MetaTree Room String)
tutHub = do
(is,wbp) <- setTreeInts =<< critsRoom 2
(is, wbp) <- setTreeInts =<< critsRoom 2
i <- nextLayoutInt
j <- nextLayoutInt
k <- nextLayoutInt
let a gw = analyserByNthLinkWithPrompt
3 --(makeTermPara $ show is <> show (getRoomsFromInts is gw)
-- <> getCrsFromRooms' is gw)
let a gw =
analyserByNthLinkWithPrompt
3 --(makeTermPara $ show is <> show (getRoomsFromInts is gw)
-- <> getCrsFromRooms' is gw)
[]
(RequireDeadCreatures $ getCrsFromRooms is gw) k
(RequireDeadCreatures $ getCrsFromRooms is gw)
k
x <-
shuffleLinks
shuffleLinks
. analyserByDoorWithPrompt [] (RequireEquipment (AMMOMAG DRUMMAG)) i
. (rmInPmnt .:~ (0,a))
. (rmInPmnt .:~ (0, a))
. addDoorAtNthLinkToggleTerminal 1 ss j
=<< roomNgon 6 100
bcor <- treeAttachDeep (return door) <$> blockedCorridor
@@ -200,7 +253,7 @@ tutHub = do
x
[ treeFromPost [triggerDoorRoom i] r1
, treeFromPost [triggerDoorRoom j] r2
, (rmClusterStatus . csLinks . at OnwardCluster .~ Nothing)
, (rmClusterStatus . csLinks . at OnwardCluster .~ Nothing)
<$> treeAttachDeep wbp bcor
, treeFromPost [] (cleatOnward $ triggerDoorRoom k & rmInPmnt . ix 0 . _1 .~ 1)
]
@@ -218,12 +271,14 @@ tutHub = do
, makeTermLine ""
]
r x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x)
t =
t =
putMessageTerminal
terminalColor
(defaultTerminal & tmBootLines .~ ss' <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
& plSpot .~ rprBoolShift isUnusedLnk
(\(p, a) -> ((p + 10 *.* unitVectorAtAngle (a - pi/2), a),S.singleton UsedPosLow))
& plSpot
.~ rprBoolShift
isUnusedLnk
(\(p, a) -> ((p + 10 *.* unitVectorAtAngle (a - pi / 2), a), S.singleton UsedPosLow))
ss' =
[ makeTermLine "---------------------------------------------"
, makeTermLine "HOLD [CAPS] AND SCROLL"
@@ -231,22 +286,22 @@ tutHub = do
, makeTermLine " TO REARRANGE INVENTORY ITEMS"
, makeTermLine "---------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
[ makeTermLine "AMMO MAGS ARE NORMALLY LOADED BENEATH WEAPONS"
, makeTermLine " .-------."
, makeTermLine " BURSTRIFLE |DRUMMAG|"
, makeTermLine " <------^-------^"
, makeTermLine "---------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
[ makeTermLine "HOLD [RMB] TO AIM"
, makeTermLine " THEN CLICK [LMB] TO FIRE LOADED WEAPONS"
, makeTermLine "---------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
<> [ makeTermLine "AMMO MAGS ARE NORMALLY LOADED BENEATH WEAPONS"
, makeTermLine " .-------."
, makeTermLine " BURSTRIFLE |DRUMMAG|"
, makeTermLine " <------^-------^"
, makeTermLine "---------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
<> [ makeTermLine "HOLD [RMB] TO AIM"
, makeTermLine " THEN CLICK [LMB] TO FIRE LOADED WEAPONS"
, makeTermLine "---------------------------------------------"
]
getRoomsFromInts :: [Int] -> GenWorld -> IS.IntSet
getRoomsFromInts is gw
= foldMap IS.singleton $ IM.restrictKeys (gw ^. genInts) (IS.fromList is)
getRoomsFromInts is gw =
foldMap IS.singleton $ IM.restrictKeys (gw ^. genInts) (IS.fromList is)
getCrsFromRooms' :: [Int] -> GenWorld -> String
getCrsFromRooms' is gw = fmap h $ show $ foldMap f (IM.restrictKeys (gw ^. genRooms) js)
@@ -255,10 +310,11 @@ getCrsFromRooms' is gw = fmap h $ show $ foldMap f (IM.restrictKeys (gw ^. genRo
h x = x
js = getRoomsFromInts is gw
f rm = shortShow <$> rm ^.. rmPmnts . each . plType
--f rm = foldMap g $ rm ^. rmPmnts
--g x = case x ^. plType of
-- PutCrit _ -> [x ^?! plMID . _Just]
-- _ -> []
--f rm = foldMap g $ rm ^. rmPmnts
--g x = case x ^. plType of
-- PutCrit _ -> [x ^?! plMID . _Just]
-- _ -> []
getCrsFromRooms :: [Int] -> GenWorld -> [Int]
getCrsFromRooms is gw = foldMap f (IM.restrictKeys (gw ^. genRooms) js)
@@ -271,12 +327,13 @@ getCrsFromRooms is gw = foldMap f (IM.restrictKeys (gw ^. genRooms) js)
sensorTut :: [TerminalLine]
sensorTut =
[ makeTermLine "--------------------------------------------"
, makeTermLine "SOME TERMINALS DETECT EXTERNAL CONDITIONS"
, makeTermLine "WHILE ACTIVE THESE DISPLAY A SPINNING SYMBOL"
, makeTermLine " | / - \\"
, makeTermLine "--------------------------------------------"
]
[ makeTermLine "--------------------------------------------"
, makeTermLine "SOME TERMINALS DETECT EXTERNAL CONDITIONS"
, makeTermLine "WHILE ACTIVE THESE DISPLAY A SPINNING SYMBOL"
, makeTermLine " | / - \\"
, makeTermLine "--------------------------------------------"
]
-- <> tlSetStatus (TerminalPressTo "CONTINUE")
tutRezBox :: RandomGen g => State g Room
@@ -286,14 +343,16 @@ tutRezBox = do
roomRect 40 60 1 1
& rmPmnts
.~ [ sPS (V2 20 1) 0 $ PutLS ls
, Placement (PS 0 0) PutNothing Nothing Nothing $ \w _ -> Just $ putImmediateMessageTerminal
terminalColor
( defaultTerminal & tmBootLines .~ s w
<> tlSetStatus (TerminalPressTo "QUIT")
<> tlDoEffect TmWdWdPowerDownTerminal
-- <> tlDoEffect (TmWdWdLeaveTerminal "QUIT")
)
& plSpot .~ PS (V2 20 0) 0
, Placement (PS 0 0) PutNothing Nothing Nothing $ \w _ ->
Just $
putImmediateMessageTerminal
terminalColor
( defaultTerminal & tmBootLines .~ s w
<> tlSetStatus (TerminalPressTo "QUIT")
<> tlDoEffect TmWdWdPowerDownTerminal
-- <> tlDoEffect (TmWdWdLeaveTerminal "QUIT")
)
& plSpot .~ PS (V2 20 0) 0
]
& restrictInLinks (\(V2 _ h, _) -> h < 1)
& restrictOutLinks (\(V2 _ h, _) -> h > 59)
@@ -313,10 +372,10 @@ tutorialMessage1 i =
<> [ makeTermLine "USE [W]"
, makeTermLine " [A] [S]"
, makeTermLine " [D] TO MOVE"
, makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
[ makeTermLine "AFTER EXITING THIS TERMINAL YOUR INVENTORY"
, makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
<> [ makeTermLine "AFTER EXITING THIS TERMINAL YOUR INVENTORY"
, makeTermLine " AND NEARBY OBJECTS WILL BE DISPLAYED"
, makeTermLine "--------------------------------------------"
]
+150 -150
View File
@@ -143,7 +143,7 @@ BlockDrawMempty src/Dodge/Data/Block.hs 39;" C
BlockDraws src/Dodge/Data/Block.hs 41;" C
BlockObstacle src/Dodge/Data/PathGraph.hs 49;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 16;" C
BlockedLink src/Dodge/Data/Room.hs 48;" C
BlockedLink src/Dodge/Data/Room.hs 49;" C
BloomLayer src/Picture/Data.hs 25;" C
BloomNoZWrite src/Picture/Data.hs 26;" C
Blunt src/Dodge/Data/Damage.hs 21;" C
@@ -479,7 +479,7 @@ FootForward src/Dodge/Data/Creature/Stance.hs 35;" t
FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C
ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t
ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t
FromEdge src/Dodge/Data/Room.hs 47;" C
FromEdge src/Dodge/Data/Room.hs 48;" C
FullRes src/Dodge/Data/Config.hs 97;" C
FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C
@@ -886,7 +886,7 @@ NorthEast src/Dodge/Data/CardinalPoint.hs 13;" C
NorthEast8 src/Dodge/Data/CardinalPoint.hs 21;" C
NorthWest src/Dodge/Data/CardinalPoint.hs 16;" C
NorthWest8 src/Dodge/Data/CardinalPoint.hs 27;" C
NotLink src/Dodge/Data/Room.hs 66;" C
NotLink src/Dodge/Data/Room.hs 67;" C
NotPushed src/Dodge/Data/Door.hs 30;" C
Nothing' src/MaybeHelp.hs 13;" C
NothingID src/Dodge/Data/CrWlID.hs 12;" C
@@ -936,7 +936,7 @@ Object src/Dodge/Data/Object.hs 10;" t
ObjectType src/Dodge/Data/ObjectType.hs 11;" t
OnBack src/Dodge/Data/Equipment/Misc.hs 24;" C
OnChest src/Dodge/Data/Equipment/Misc.hs 23;" C
OnEdge src/Dodge/Data/Room.hs 46;" C
OnEdge src/Dodge/Data/Room.hs 47;" C
OnFloor src/Dodge/Data/Item/Location.hs 36;" C
OnHead src/Dodge/Data/Equipment/Misc.hs 22;" C
OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 27;" C
@@ -983,16 +983,16 @@ PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 89;" C
POWERLEGS src/Dodge/Data/Item/Combine.hs 130;" C
PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C
PRISM src/Dodge/Data/Item/Combine.hs 66;" C
PS src/Dodge/Data/GenWorld.hs 93;" C
PSNoShiftCont src/Dodge/Data/GenWorld.hs 94;" C
PSPos src/Dodge/Data/GenWorld.hs 95;" C
PSRoomRand src/Dodge/Data/GenWorld.hs 100;" C
PS src/Dodge/Data/GenWorld.hs 95;" C
PSNoShiftCont src/Dodge/Data/GenWorld.hs 96;" C
PSPos src/Dodge/Data/GenWorld.hs 97;" C
PSRoomRand src/Dodge/Data/GenWorld.hs 102;" C
PSType src/Dodge/Data/GenWorld.hs 32;" t
PUMP src/Dodge/Data/Item/Combine.hs 63;" C
PaletteColor src/Color/Data.hs 14;" t
PathEdge src/Dodge/Data/PathGraph.hs 40;" t
PathEdgeNodes src/Dodge/Data/PathGraph.hs 33;" t
PathFromEdge src/Dodge/Data/Room.hs 69;" t
PathFromEdge src/Dodge/Data/Room.hs 70;" t
PathTo src/Dodge/Data/ActionPlan.hs 88;" C
Pathing src/Dodge/Data/Config.hs 76;" C
Patrol src/Dodge/Data/ActionPlan.hs 180;" C
@@ -1005,8 +1005,8 @@ PhysicalSensor src/Dodge/Data/Machine/Sensor.hs 18;" C
Picture src/Picture/Data.hs 46;" t
Piercing src/Dodge/Data/Damage.hs 20;" C
PistolAI src/Dodge/Data/Creature/Misc.hs 43;" C
Placement src/Dodge/Data/GenWorld.hs 106;" t
PlacementSpot src/Dodge/Data/GenWorld.hs 92;" t
Placement src/Dodge/Data/GenWorld.hs 108;" t
PlacementSpot src/Dodge/Data/GenWorld.hs 94;" t
PlainBarrel src/Dodge/Data/Creature/Misc.hs 88;" C
PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C
PlayStatus src/Sound/Data.hs 23;" t
@@ -1019,6 +1019,7 @@ Point3Q src/Geometry/Data.hs 52;" t
Point4 src/Geometry/Data.hs 41;" t
Poison src/Dodge/Data/Damage.hs 30;" C
PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C
PolyEdge src/Dodge/Data/Room.hs 46;" C
PolyShad src/Picture/Data.hs 36;" C
Polyhedra src/Polyhedra/Data.hs 13;" t
Polyhedron src/Polyhedra/Data.hs 13;" C
@@ -1084,6 +1085,7 @@ PutFlIt src/Dodge/Data/GenWorld.hs 44;" C
PutForeground src/Dodge/Data/GenWorld.hs 60;" C
PutID src/Dodge/Data/GenWorld.hs 63;" C
PutLS src/Dodge/Data/GenWorld.hs 40;" C
PutLabel src/Dodge/Data/GenWorld.hs 65;" C
PutLineBlock src/Dodge/Data/GenWorld.hs 50;" C
PutMachine src/Dodge/Data/GenWorld.hs 34;" C
PutMod src/Dodge/Data/GenWorld.hs 48;" C
@@ -1111,7 +1113,7 @@ RIFLE src/Dodge/Data/Item/Combine.hs 154;" C
RLAUNCHER src/Dodge/Data/Item/Combine.hs 171;" C
RLAUNCHERX src/Dodge/Data/Item/Combine.hs 172;" C
ROSE src/Color/Data.hs 21;" C
RPLinkStatus src/Dodge/Data/Room.hs 55;" t
RPLinkStatus src/Dodge/Data/Room.hs 56;" t
RProps src/Dodge/Layout/Generate.hs 13;" C
RadarBlip src/Dodge/Data/RadarBlip.hs 14;" t
RadarSweep src/Dodge/Data/RadarSweep.hs 19;" t
@@ -1155,20 +1157,20 @@ Rocket src/Dodge/Data/Projectile.hs 34;" C
RocketHoming src/Dodge/Data/Projectile.hs 41;" t
RocketSmoke src/Dodge/Data/Projectile.hs 54;" t
RocketSmoke src/Dodge/Data/Cloud.hs 24;" C
Room src/Dodge/Data/GenWorld.hs 121;" t
Room src/Dodge/Data/GenWorld.hs 123;" t
RoomClipping src/Dodge/Data/Config.hs 107;" t
RoomInt src/Dodge/Tree/Shift.hs 26;" t
RoomLink src/Dodge/Data/Room.hs 23;" t
RoomLinkType src/Dodge/Data/Room.hs 42;" t
RoomPos src/Dodge/Data/Room.hs 14;" t
RoomPosExLink src/Dodge/Data/Room.hs 75;" C
RoomPosLab src/Dodge/Data/Room.hs 76;" C
RoomPosOffPath src/Dodge/Data/Room.hs 74;" C
RoomPosOnPath src/Dodge/Data/Room.hs 73;" C
RoomPosType src/Dodge/Data/Room.hs 72;" t
RoomPosExLink src/Dodge/Data/Room.hs 76;" C
RoomPosLab src/Dodge/Data/Room.hs 77;" C
RoomPosOffPath src/Dodge/Data/Room.hs 75;" 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
RoomType src/Dodge/Data/Room.hs 30;" t
RoomWire src/Dodge/Data/Room.hs 51;" t
RoomWire src/Dodge/Data/Room.hs 52;" t
RoundedFaces src/Shape/Data.hs 18;" C
RunningSideEffect src/Dodge/Data/Universe.hs 69;" C
SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C
@@ -1423,7 +1425,7 @@ Unimportant src/Shape/Data.hs 37;" C
Universe src/Dodge/Data/Universe.hs 31;" t
UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C
UnlockInv src/Dodge/Data/WorldEffect.hs 28;" C
UnusedLink src/Dodge/Data/Room.hs 65;" C
UnusedLink src/Dodge/Data/Room.hs 66;" C
UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C
UseAttach src/Dodge/Data/Item/Use.hs 32;" C
UseBulletMod src/Dodge/Data/Item/Use.hs 37;" C
@@ -1449,13 +1451,13 @@ UseValue src/Dodge/Data/Item/Use.hs 35;" C
UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C
UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C
UseableWhenHeld src/Dodge/Data/UseCondition.hs 6;" C
UsedInLink src/Dodge/Data/Room.hs 61;" C
UsedOutLink src/Dodge/Data/Room.hs 56;" C
UsedPos src/Dodge/Data/Room.hs 79;" t
UsedPosFloor src/Dodge/Data/Room.hs 83;" C
UsedPosHigh src/Dodge/Data/Room.hs 82;" C
UsedPosLow src/Dodge/Data/Room.hs 80;" C
UsedPosMid src/Dodge/Data/Room.hs 81;" C
UsedInLink src/Dodge/Data/Room.hs 62;" C
UsedOutLink src/Dodge/Data/Room.hs 57;" C
UsedPos src/Dodge/Data/Room.hs 80;" t
UsedPosFloor src/Dodge/Data/Room.hs 84;" C
UsedPosHigh src/Dodge/Data/Room.hs 83;" C
UsedPosLow src/Dodge/Data/Room.hs 81;" C
UsedPosMid src/Dodge/Data/Room.hs 82;" C
VAO src/Shader/Data.hs 64;" t
VBO src/Shader/Data.hs 81;" t
VF src/Polyhedra/Data.hs 21;" t
@@ -1487,7 +1489,7 @@ WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t
WallP src/Dodge/LevelGen/StaticWalls/Deprecated.hs 11;" t
WallSound src/Dodge/Data/SoundOrigin.hs 25;" C
WallStructure src/Dodge/Data/Wall/Structure.hs 12;" t
WallWire src/Dodge/Data/Room.hs 53;" C
WallWire src/Dodge/Data/Room.hs 54;" C
Walls_info src/Dodge/Data/Config.hs 75;" C
War src/Dodge/Data/Scenario.hs 28;" C
WarmTime src/Dodge/Data/Item/Params.hs 21;" C
@@ -2098,9 +2100,9 @@ _nzAngle src/Dodge/Data/Item/Params.hs 18;" f
_nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f
_nzPressure src/Dodge/Data/Muzzle.hs 48;" f
_nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f
_offPathFromEdges src/Dodge/Data/Room.hs 74;" f
_offPathFromEdges src/Dodge/Data/Room.hs 75;" f
_oldMagnets src/Dodge/Data/LWorld.hs 127;" f
_onPathFromEdges src/Dodge/Data/Room.hs 73;" f
_onPathFromEdges src/Dodge/Data/Room.hs 74;" f
_opDraw src/Dodge/Data/Wall.hs 43;" f
_opSel src/Dodge/Data/RightButtonOptions.hs 17;" f
_opTexture src/Dodge/Data/Wall.hs 44;" f
@@ -2140,11 +2142,11 @@ _pjSpin src/Dodge/Data/Projectile.hs 21;" f
_pjTimer src/Dodge/Data/Projectile.hs 24;" f
_pjType src/Dodge/Data/Projectile.hs 26;" f
_pjVel src/Dodge/Data/Projectile.hs 19;" f
_plExternalID src/Dodge/Data/GenWorld.hs 110;" f
_plIDCont src/Dodge/Data/GenWorld.hs 111;" f
_plMID src/Dodge/Data/GenWorld.hs 109;" f
_plSpot src/Dodge/Data/GenWorld.hs 107;" f
_plType src/Dodge/Data/GenWorld.hs 108;" f
_plExternalID src/Dodge/Data/GenWorld.hs 112;" f
_plIDCont src/Dodge/Data/GenWorld.hs 113;" f
_plMID src/Dodge/Data/GenWorld.hs 111;" f
_plSpot src/Dodge/Data/GenWorld.hs 109;" f
_plType src/Dodge/Data/GenWorld.hs 110;" f
_playStatus src/Sound/Data.hs 17;" f
_playingSounds src/Dodge/Data/World.hs 42;" f
_pnZoning src/Dodge/Data/World.hs 52;" f
@@ -2184,13 +2186,13 @@ _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 38;" f
_proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 37;" f
_proxSensorType src/Dodge/Data/Machine/Sensor.hs 28;" f
_proxToggle src/Dodge/Data/Machine/Sensor.hs 29;" f
_psFallback src/Dodge/Data/GenWorld.hs 98;" f
_psPos src/Dodge/Data/GenWorld.hs 93;" f
_psRandShift src/Dodge/Data/GenWorld.hs 102;" f
_psRoomEff src/Dodge/Data/GenWorld.hs 97;" f
_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 101;" f
_psRot src/Dodge/Data/GenWorld.hs 93;" f
_psSelect src/Dodge/Data/GenWorld.hs 96;" f
_psFallback src/Dodge/Data/GenWorld.hs 100;" f
_psPos src/Dodge/Data/GenWorld.hs 95;" f
_psRandShift src/Dodge/Data/GenWorld.hs 104;" f
_psRoomEff src/Dodge/Data/GenWorld.hs 99;" f
_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 103;" f
_psRot src/Dodge/Data/GenWorld.hs 95;" f
_psSelect src/Dodge/Data/GenWorld.hs 98;" f
_pulseBalls src/Dodge/Data/LWorld.hs 119;" f
_pulseLasers src/Dodge/Data/LWorld.hs 118;" f
_pulseProgress src/Dodge/Data/Creature/Misc.hs 56;" f
@@ -2201,6 +2203,7 @@ _putChasmPoly src/Dodge/Data/GenWorld.hs 64;" f
_putEndPoint src/Dodge/Data/GenWorld.hs 54;" f
_putID src/Dodge/Data/GenWorld.hs 63;" f
_putItem src/Dodge/Data/GenWorld.hs 44;" f
_putLabel src/Dodge/Data/GenWorld.hs 65;" f
_putMachineMachine src/Dodge/Data/GenWorld.hs 36;" f
_putMachineMaybeItem src/Dodge/Data/GenWorld.hs 38;" f
_putMachinePoly src/Dodge/Data/GenWorld.hs 35;" f
@@ -2239,40 +2242,40 @@ _rkSmoke src/Dodge/Data/Projectile.hs 36;" f
_rlDir src/Dodge/Data/Room.hs 26;" f
_rlPos src/Dodge/Data/Room.hs 25;" f
_rlType src/Dodge/Data/Room.hs 24;" f
_rmBound src/Dodge/Data/GenWorld.hs 136;" f
_rmChildren src/Dodge/Data/GenWorld.hs 147;" f
_rmClusterStatus src/Dodge/Data/GenWorld.hs 149;" f
_rmConnectsTo src/Dodge/Data/GenWorld.hs 144;" f
_rmEndWires src/Dodge/Data/GenWorld.hs 143;" f
_rmFloor src/Dodge/Data/GenWorld.hs 137;" f
_rmBound src/Dodge/Data/GenWorld.hs 138;" f
_rmChildren src/Dodge/Data/GenWorld.hs 149;" f
_rmClusterStatus src/Dodge/Data/GenWorld.hs 151;" f
_rmConnectsTo src/Dodge/Data/GenWorld.hs 146;" f
_rmEndWires src/Dodge/Data/GenWorld.hs 145;" f
_rmFloor src/Dodge/Data/GenWorld.hs 139;" f
_rmHeight src/Dodge/Data/Room.hs 38;" f
_rmInPmnt src/Dodge/Data/GenWorld.hs 135;" f
_rmLinkEff src/Dodge/Data/GenWorld.hs 125;" f
_rmLinks src/Dodge/Data/GenWorld.hs 123;" f
_rmMID src/Dodge/Data/GenWorld.hs 145;" f
_rmMParent src/Dodge/Data/GenWorld.hs 146;" f
_rmName src/Dodge/Data/GenWorld.hs 138;" f
_rmPath src/Dodge/Data/GenWorld.hs 133;" f
_rmPmnts src/Dodge/Data/GenWorld.hs 134;" f
_rmPolys src/Dodge/Data/GenWorld.hs 122;" f
_rmPos src/Dodge/Data/GenWorld.hs 132;" f
_rmRandPSs src/Dodge/Data/GenWorld.hs 141;" f
_rmShift src/Dodge/Data/GenWorld.hs 139;" f
_rmStartWires src/Dodge/Data/GenWorld.hs 142;" f
_rmType src/Dodge/Data/GenWorld.hs 148;" f
_rmViewpoints src/Dodge/Data/GenWorld.hs 140;" f
_rmInPmnt src/Dodge/Data/GenWorld.hs 137;" f
_rmLinkEff src/Dodge/Data/GenWorld.hs 127;" f
_rmLinks src/Dodge/Data/GenWorld.hs 125;" f
_rmMID src/Dodge/Data/GenWorld.hs 147;" f
_rmMParent src/Dodge/Data/GenWorld.hs 148;" f
_rmName src/Dodge/Data/GenWorld.hs 140;" f
_rmPath src/Dodge/Data/GenWorld.hs 135;" f
_rmPmnts src/Dodge/Data/GenWorld.hs 136;" f
_rmPolys src/Dodge/Data/GenWorld.hs 124;" f
_rmPos src/Dodge/Data/GenWorld.hs 134;" f
_rmRandPSs src/Dodge/Data/GenWorld.hs 143;" f
_rmShift src/Dodge/Data/GenWorld.hs 141;" f
_rmStartWires src/Dodge/Data/GenWorld.hs 144;" f
_rmType src/Dodge/Data/GenWorld.hs 150;" f
_rmViewpoints src/Dodge/Data/GenWorld.hs 142;" f
_rmWidth src/Dodge/Data/Room.hs 37;" f
_rpDir src/Dodge/Data/Room.hs 16;" f
_rpLinkStatus src/Dodge/Data/Room.hs 18;" f
_rpPlacementUse src/Dodge/Data/Room.hs 19;" f
_rpPos src/Dodge/Data/Room.hs 15;" f
_rpType src/Dodge/Data/Room.hs 17;" f
_rplsChildNum src/Dodge/Data/Room.hs 58;" f
_rplsInRoomID src/Dodge/Data/Room.hs 63;" f
_rplsOutRoomID src/Dodge/Data/Room.hs 59;" f
_rplsType src/Dodge/Data/Room.hs 57;" f
_rplsType src/Dodge/Data/Room.hs 62;" f
_rplsType src/Dodge/Data/Room.hs 65;" f
_rplsChildNum src/Dodge/Data/Room.hs 59;" f
_rplsInRoomID src/Dodge/Data/Room.hs 64;" f
_rplsOutRoomID src/Dodge/Data/Room.hs 60;" f
_rplsType src/Dodge/Data/Room.hs 58;" f
_rplsType src/Dodge/Data/Room.hs 63;" f
_rplsType src/Dodge/Data/Room.hs 66;" f
_rsAR src/Dodge/Data/RadarSweep.hs 25;" f
_rsMapper src/Dodge/Data/RadarSweep.hs 24;" f
_rsObject src/Dodge/Data/RadarSweep.hs 22;" f
@@ -2554,7 +2557,7 @@ _xNum src/Dodge/Data/Item/Combine.hs 172;" f
aFlame src/Dodge/Gas.hs 18;" f
aGasCloud src/Dodge/Gas.hs 13;" f
aRadarPulse src/Dodge/RadarSweep.hs 19;" f
aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f
aShape src/Dodge/Placement/Instance/LightSource.hs 120;" f
aSound src/Dodge/SoundLogic.hs 74;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 54;" f
@@ -2584,9 +2587,9 @@ 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 115;" f
addPane src/Dodge/Placement/PlaceSpot.hs 153;" f
addPane src/Dodge/Placement/PlaceSpot.hs 154;" f
addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f
addPointPolygon src/Geometry/Polygon.hs 115;" f
addPointPolygon src/Geometry/Polygon.hs 120;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
addRandomGirderEW src/Dodge/Room/Girder.hs 9;" f
@@ -2808,7 +2811,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
cChasm src/Dodge/Room/Tutorial.hs 108;" f
cChasm src/Dodge/Room/Tutorial.hs 118;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2827,8 +2830,8 @@ cenLasTur src/Dodge/Room/LasTurret.hs 25;" f
centerText src/Picture/Base.hs 184;" f
centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f
centerVaultRoom src/Dodge/Room/Procedural.hs 290;" f
centroid src/Geometry/Polygon.hs 149;" f
centroidNum src/Geometry/Polygon.hs 152;" f
centroid src/Geometry/Polygon.hs 154;" f
centroidNum src/Geometry/Polygon.hs 157;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainPairs src/Geometry.hs 363;" f
changeSwapOther src/Dodge/Inventory.hs 140;" f
@@ -2842,7 +2845,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 154;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 185;" f
chasmTest src/Dodge/Creature/Update.hs 131;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2870,7 +2873,7 @@ chooseMovementPistol src/Dodge/Humanoid.hs 203;" f
chooseMovementPistol' src/Dodge/Humanoid.hs 208;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f
circHitWall src/Dodge/Base/Collide.hs 232;" f
circInPolygon src/Geometry/Polygon.hs 83;" f
circInPolygon src/Geometry/Polygon.hs 88;" f
circOnAnyCr src/Dodge/Base/Collide.hs 287;" f
circOnSeg src/Geometry.hs 102;" f
circOnSegNoEndpoints src/Geometry.hs 92;" f
@@ -2968,8 +2971,8 @@ constructEdges src/Polyhedra.hs 34;" f
constructEdgesList src/Polyhedra.hs 43;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 402;" f
convexHull src/Geometry/Polygon.hs 123;" f
convexHullSafe src/Geometry/Polygon.hs 130;" f
convexHull src/Geometry/Polygon.hs 128;" f
convexHullSafe src/Geometry/Polygon.hs 135;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f
coolMachinePistol src/Dodge/Creature/State.hs 101;" f
coolMinigun src/Dodge/Creature/State.hs 94;" f
@@ -3547,7 +3550,6 @@ explodeShell src/Dodge/Projectile/Update.hs 282;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendAway src/Dodge/Placement/Instance/LightSource.hs 203;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 81;" f
extraPics src/Dodge/Render/ShapePicture.hs 91;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f
@@ -3612,7 +3614,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldMTRS src/Dodge/Room/Tutorial.hs 57;" f
foldMTRS src/Dodge/Room/Tutorial.hs 63;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 39;" f
@@ -3677,8 +3679,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 253;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 241;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 314;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 301;" f
getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3693,7 +3695,7 @@ getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1283;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 237;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 297;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3722,8 +3724,8 @@ glauncherPic src/Dodge/Item/Draw/SPic.hs 412;" f
glushortSize src/Shader/Parameters.hs 25;" f
goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f
goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f
grahamEliminate src/Geometry/Polygon.hs 144;" f
grahamScan src/Geometry/Polygon.hs 135;" f
grahamEliminate src/Geometry/Polygon.hs 149;" f
grahamScan src/Geometry/Polygon.hs 140;" f
grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f
graphToEdges src/Dodge/Graph.hs 35;" f
graphToIncidence src/Dodge/Graph.hs 40;" f
@@ -3813,7 +3815,7 @@ hotkeyToChar src/Dodge/Inventory/SelectionList.hs 188;" f
hotkeyToScancode src/Dodge/Creature/YourControl.hs 81;" f
hotkeyToString src/Dodge/Inventory/SelectionList.hs 185;" f
humanoidAIList src/Dodge/Humanoid.hs 182;" f
iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f
iShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ildtPropagate src/Dodge/DoubleTree.hs 111;" f
@@ -3930,7 +3932,7 @@ isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 317;" f
isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 20;" f
isotriBWH src/Geometry/Polygon.hs 21;" f
itDim src/Dodge/Item/InvSize.hs 21;" f
itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 67;" f
itEffectOnPickup src/Dodge/Item/BackgroundEffect.hs 64;" f
@@ -3979,7 +3981,7 @@ itmBaseInfo src/Dodge/Item/Info.hs 30;" f
itmEquipSiteInfo src/Dodge/Item/Info.hs 251;" f
itmSpaceInfo src/Dodge/Item/Info.hs 25;" f
itmUsageInfo src/Dodge/Item/Info.hs 231;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
joinItemsInList src/Dodge/Item/Grammar.hs 206;" f
joystick src/Dodge/Item/Scope.hs 149;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
@@ -3999,10 +4001,10 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 471;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 117;" f
lChasm src/Dodge/Room/Tutorial.hs 127;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 89;" f
lamp src/Dodge/Creature/Lamp.hs 21;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
@@ -4040,7 +4042,7 @@ leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 197;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 111;" f
light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 51;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 39;" f
@@ -4249,7 +4251,7 @@ mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 138;" f
midChasm src/Dodge/Room/Tutorial.hs 148;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 84;" f
@@ -4265,7 +4267,7 @@ miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 381;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f
miniTree2 src/Dodge/Room/Room.hs 113;" f
minimumOn src/FoldlHelp.hs 14;" f
mirrorXAxis src/Geometry/Polygon.hs 62;" f
mirrorXAxis src/Geometry/Polygon.hs 67;" f
mirrorxz src/Picture/Base.hs 335;" f
mirroryz src/Picture/Base.hs 340;" f
missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f
@@ -4275,14 +4277,11 @@ mixColorsLinear src/Color.hs 95;" f
mkCustomLenses src/ThirdPartyLens.hs 7;" f
mkGraphFromEdges src/GraphHelp.hs 4;" f
mkNode src/Dodge/Graph.hs 29;" f
mntLS src/Dodge/Placement/Instance/LightSource.hs 123;" f
mntLSCol src/Dodge/Placement/Instance/LightSource.hs 128;" f
mntLSCond src/Dodge/Placement/Instance/LightSource.hs 146;" f
mntLSLampCol src/Dodge/Placement/Instance/LightSource.hs 133;" f
mntLSOn src/Dodge/Placement/Instance/LightSource.hs 54;" f
mntLight src/Dodge/Placement/Instance/LightSource.hs 158;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 163;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 168;" f
mntLS src/Dodge/Placement/Instance/LightSource.hs 136;" f
mntLSCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
mntLSOn src/Dodge/Placement/Instance/LightSource.hs 67;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 176;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 181;" f
modTo src/Geometry/Zone.hs 10;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f
mouseCursorType src/Dodge/Render/Picture.hs 86;" f
@@ -4290,7 +4289,7 @@ mouseWorldPos src/Dodge/Base/Coordinate.hs 25;" f
moveBullet src/Dodge/Bullet.hs 194;" f
moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 43;" f
movePenBullet src/Dodge/Bullet.hs 200;" f
moveProjectile src/Dodge/Projectile/Update.hs 260;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f
@@ -4312,18 +4311,18 @@ multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 148;" f
muzFlareAt src/Dodge/HeldUse.hs 674;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 161;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 167;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 170;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 162;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 168;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 171;" f
mvGust src/Dodge/Update.hs 770;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 228;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 229;" f
mvP src/Dodge/Wall/Move.hs 54;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 164;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 165;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 314;" f
mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 158;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 159;" f
mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 207;" f
myIntersectSegSeg src/Geometry/Intersect.hs 185;" f
@@ -4383,10 +4382,10 @@ optionsToSelections src/Dodge/Menu/Option.hs 47;" f
orRegex src/Dodge/DisplayInventory.hs 81;" f
orange src/Color.hs 25;" f
orderAround3 src/Geometry/Vector3D.hs 105;" f
orderAroundFirst src/Geometry/Polygon.hs 101;" f
orderAroundFirstReverse src/Geometry/Polygon.hs 97;" f
orderPolygon src/Geometry/Polygon.hs 106;" f
orderPolygonAround src/Geometry/Polygon.hs 89;" f
orderAroundFirst src/Geometry/Polygon.hs 106;" f
orderAroundFirstReverse src/Geometry/Polygon.hs 102;" f
orderPolygon src/Geometry/Polygon.hs 111;" f
orderPolygonAround src/Geometry/Polygon.hs 94;" f
orientAttachment src/Dodge/Item/Orientation.hs 31;" f
orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f
orientChild src/Dodge/Item/Orientation.hs 13;" f
@@ -4463,22 +4462,22 @@ pjRemoteSetDirection src/Dodge/Projectile/Update.hs 225;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 173;" f
plMachine' src/Dodge/Placement/PlaceSpot.hs 203;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 174;" f
plMachine' src/Dodge/Placement/PlaceSpot.hs 204;" f
plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 27;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f
plTurret src/Dodge/Placement/PlaceSpot.hs 179;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 217;" f
plTurret src/Dodge/Placement/PlaceSpot.hs 180;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 218;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 41;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 31;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 91;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 78;" f
placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 59;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 147;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 148;" f
plainRegex src/Dodge/DisplayInventory.hs 189;" f
playIfFree src/Sound.hs 137;" f
playPositionalSoundQueue src/Sound.hs 145;" f
@@ -4503,8 +4502,8 @@ pnsNearRect src/Dodge/Zoning/Pathing.hs 18;" f
pnsNearSeg src/Dodge/Zoning/Pathing.hs 15;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 212;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 72;" f
pointInPoly src/Geometry/Polygon.hs 79;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 77;" f
pointInPoly src/Geometry/Polygon.hs 84;" f
pointIsInCone src/Geometry.hs 378;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 63;" f
@@ -4552,10 +4551,12 @@ pokeWall src/Shader/Poke.hs 78;" f
pokeWallsWindows src/Shader/Poke.hs 50;" f
poly3 src/Picture/Base.hs 84;" f
poly3Col src/Picture/Base.hs 88;" f
polyChasm src/Dodge/Room/Tutorial.hs 169;" f
polyChasmC src/Dodge/Room/Tutorial.hs 178;" f
polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 59;" f
polyOrthDist src/Geometry/Polygon.hs 49;" f
polyCornerDist src/Geometry/Polygon.hs 60;" f
polyOrthDist src/Geometry/Polygon.hs 50;" f
polyPointsIntersect src/Geometry/ConvexPoly.hs 62;" f
polyPointsOverlap src/Geometry/ConvexPoly.hs 55;" f
polyToEdges src/Polyhedra.hs 133;" f
@@ -4606,7 +4607,7 @@ prismPoly src/Shape.hs 59;" f
projV src/Geometry/Vector.hs 182;" f
projV3 src/Geometry/Vector3D.hs 127;" f
propDrawToggle src/Dodge/Prop/Draw.hs 50;" f
propLSThen src/Dodge/Placement/Instance/LightSource.hs 16;" f
propLSThen src/Dodge/Placement/Instance/LightSource.hs 29;" f
propSPic src/Dodge/Prop/Draw.hs 17;" f
propSetToggleAnd src/Dodge/Prop/Update.hs 39;" f
propUpdateIf src/Dodge/Prop/Update.hs 23;" f
@@ -4641,11 +4642,10 @@ putBlockN src/Dodge/Placement/Instance/Wall.hs 166;" f
putBlockRect src/Dodge/Placement/Instance/Wall.hs 145;" f
putBlockRect' src/Dodge/Placement/Instance/Wall.hs 132;" f
putBlockV src/Dodge/Placement/Instance/Wall.hs 153;" f
putColorLamp src/Dodge/Placement/Instance/LightSource.hs 206;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 66;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 209;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 222;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 24;" f
putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f
putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f
@@ -4711,11 +4711,11 @@ randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 225;" f
readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 459;" f
rectNSWE src/Geometry/Polygon.hs 13;" f
rectVV src/Geometry/Polygon.hs 38;" f
rectWH src/Geometry/Polygon.hs 17;" f
rectXH src/Geometry/Polygon.hs 32;" f
rectXY src/Geometry/Polygon.hs 35;" f
rectNSWE src/Geometry/Polygon.hs 14;" f
rectVV src/Geometry/Polygon.hs 39;" f
rectWH src/Geometry/Polygon.hs 18;" f
rectXH src/Geometry/Polygon.hs 33;" f
rectXY src/Geometry/Polygon.hs 36;" f
rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f
red src/Color.hs 14;" f
reduceLocDT src/Dodge/DoubleTree.hs 398;" f
@@ -4743,6 +4743,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f
removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 218;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4927,7 +4928,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 196;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 262;" f
sensorTut src/Dodge/Room/Tutorial.hs 323;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f
@@ -4953,7 +4954,7 @@ setOutLinks src/Dodge/RoomLink.hs 51;" f
setOutLinksByType src/Dodge/RoomLink.hs 76;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f
setRoomInt src/Dodge/Room/Tutorial.hs 63;" f
setRoomInt src/Dodge/Room/Tutorial.hs 70;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f
@@ -4963,7 +4964,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 66;" f
setTiles src/Dodge/Layout.hs 63;" f
setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 70;" f
setTreeInts src/Dodge/Room/Tutorial.hs 77;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f
@@ -5053,8 +5054,8 @@ showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 45;" f
showTerminalError src/Dodge/Debug/Terminal.hs 80;" f
showTimeFlow src/Dodge/TestString.hs 68;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 155;" f
shrinkVert src/Geometry/Polygon.hs 159;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 160;" f
shrinkVert src/Geometry/Polygon.hs 164;" f
shuffle src/RandomHelp.hs 49;" f
shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 76;" f
@@ -5112,11 +5113,10 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 87;" f
spaceAction src/Dodge/Update/Input/InGame.hs 528;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 193;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 186;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 178;" f
spanLSLightI src/Dodge/Placement/Instance/LightSource.hs 171;" f
spanLightI src/Dodge/Placement/Instance/LightSource.hs 200;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 206;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 199;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 191;" f
spanLightI src/Dodge/Placement/Instance/LightSource.hs 213;" f
sparkDam src/Dodge/Spark.hs 36;" f
sparkGun src/Dodge/Item/Held/BatteryGuns.hs 13;" f
sparkRandDir src/Dodge/Spark.hs 116;" f
@@ -5141,7 +5141,7 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f
spreadOut src/Dodge/Creature/Boid.hs 158;" f
sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f
sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f
square src/Geometry/Polygon.hs 46;" f
square src/Geometry/Polygon.hs 47;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 112;" f
squashNormalizeV src/Geometry/Vector.hs 157;" f
@@ -5361,7 +5361,7 @@ translateToRightHand src/Dodge/Creature/HandPos.hs 54;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 112;" f
translateWallID src/Dodge/Wall/Move.hs 37;" f
translateXY src/Polyhedra.hs 26;" f
trapezionBWHW src/Geometry/Polygon.hs 24;" f
trapezionBWHW src/Geometry/Polygon.hs 25;" f
treeAttachDeep src/TreeHelp.hs 193;" f
treeChildNums src/TreeHelp.hs 130;" f
treeFromPost src/TreeHelp.hs 40;" f
@@ -5399,13 +5399,13 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 44;" f
tutDrop src/Dodge/Room/Tutorial.hs 75;" f
tutHub src/Dodge/Room/Tutorial.hs 167;" f
tutLight src/Dodge/Room/Tutorial.hs 157;" f
tutRezBox src/Dodge/Room/Tutorial.hs 272;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 50;" f
tutDrop src/Dodge/Room/Tutorial.hs 82;" f
tutHub src/Dodge/Room/Tutorial.hs 223;" f
tutLight src/Dodge/Room/Tutorial.hs 206;" f
tutRezBox src/Dodge/Room/Tutorial.hs 334;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 294;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 358;" f
tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5595,7 +5595,7 @@ vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 153;" f
vNormal src/Geometry/Vector.hs 148;" f
vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 126;" f
vToL src/MatrixHelper.hs 46;" f
vToQuat src/Quaternion.hs 46;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
@@ -5716,7 +5716,7 @@ yourInv src/Dodge/Base/You.hs 28;" f
yourRootItem src/Dodge/Base/You.hs 22;" f
yourSelectedItem src/Dodge/Base/You.hs 16;" f
yourStatsInfo src/Dodge/Creature/Info.hs 27;" f
zChasm src/Dodge/Room/Tutorial.hs 126;" f
zChasm src/Dodge/Room/Tutorial.hs 136;" f
zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f