Work on placements/room generation

This commit is contained in:
2025-08-22 13:42:51 +01:00
parent e7b52f4487
commit f641805845
14 changed files with 294 additions and 596 deletions
+14 -148
View File
@@ -1,161 +1,27 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
Room layout (compact): Room layout (compact):
0,1,2,3,4,5,6 0,1,2,3
| |
+- 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 +- 4,5,6,7
| |
| +- 22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46
| | |
| | +- 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63
| | |
| | 64,65
| |
| 66,67,68
| |
69,70,71 8
Layout with room names: Layout with room names:
rezBox-0 tutRezBox-0
| |
autoDoor-1 autoDoor-1
| |
rectPillars-2 Corridor-2
| |
autoDoor-3 doorToggle-6gon-3
| |
Corridor-4 +- triggerDoorRoom-4
| |
| 6gon-5
| |
| triggerDoorRoom-6
| |
| 6gon-7
| |
autoDoor-5 triggerDoorRoom-8
|
ElecautoRect-6
|
+- triggerDoorRoom-7
| |
| autoDoor-8
| |
| autoDoor-9
| |
| Corridor-10
| |
| autoDoor-11
| |
| 8gon-12
| |
| triggerDoorRoom-13
| |
| autoDoor-14
| |
| autoDoor-15
| |
| Corridor-16
| |
| autoRect-17
| |
| autoDoor-18
| |
| Corridor-19
| |
| autoDoor-20
| |
| 6gon-21
| |
| +- triggerDoorRoom-22
| | |
| | autoDoor-23
| | |
| | autoDoor-24
| | |
| | Corridor-25
| | |
| | autoDoor-26
| | |
| | warningTerm-8gon-27
| | |
| | triggerDoorRoom-28
| | |
| | autoDoor-29
| | |
| | autoDoor-30
| | |
| | Corridor-31
| | |
| | autoRect-32
| | |
| | autoDoor-33
| | |
| | Corridor-34
| | |
| | autoDoor-35
| | |
| | Corridor-36
| | |
| | 8gon-37
| | |
| | triggerDoorRoom-38
| | |
| | autoDoor-39
| | |
| | autoDoor-40
| | |
| | Corridor-41
| | |
| | tanksRoom-42
| | |
| | autoDoor-43
| | |
| | Corridor-44
| | |
| | autoDoor-45
| | |
| | rect-46
| | |
| | +- autoDoor-47
| | | |
| | | autoDoor-48
| | | |
| | | Corridor-49
| | | |
| | | autoRect-50
| | | |
| | | defaultRoom-51
| | | |
| | | autoRect-52
| | | |
| | | defaultRoom-53
| | | |
| | | autoRect-54
| | | |
| | | autoDoor-55
| | | |
| | | Corridor-56
| | | |
| | | autoDoor-57
| | | |
| | | 8gon-58
| | | |
| | | triggerDoorRoom-59
| | | |
| | | autoDoor-60
| | | |
| | | autoDoor-61
| | | |
| | | Corridor-62
| | | |
| | | defaultRoom-63
| | |
| | Corridor-64
| | |
| | autoDoor-65
| |
| autoDoor-66
| |
| Corridor-67
| |
| autoRect-68
|
autoDoor-69
|
Corridor-70
|
autoRect-71
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727 Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727 After 1 attempt(s), Successful generation of level with seed 7114951007332849727
72 rooms in total 9 rooms in total
+16 -246
View File
@@ -1,65 +1,17 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
0:startThenWeaponRoom 0:TutStartRez
| |
1:corDoor 1:corDoor
| |
2:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN} 2:DoorTest
| |
3:corDoor 3:PickupTest
| |
4:lasSensorTurretTest 4:WeaponTestTest
|
5:corDoor
|
6:anRoom
|
7:corDoor
|
8:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
|
9:corDoor
|
10:warningRooms
|
11:corDoor
|
12:chaseCrit+armourChaseCrit rectRoom
|
13:corDoor
|
14:healthTest
|
15:corDoor
|
16:empty tanksRoom
|
17:corDoor
|
18:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
|
19:corDoor
|
20:shootingRange
|
21:corDoor
|
22:lasSensorTurretTest
|
23:corDoor
|
24:randomFourCornerRoom
0:0:startThenWeaponRoom 0:0:TutStartRez
|
0:1:weaponBetweenPillars_BANGSTICK4
0:0:0:rezBox' 0:0:0:tutRezBox
0:0:0:0:rezBox
|
0:0:0:1:autoDoor
0:1:0:rectPillars
1:0:corDoor 1:0:corDoor
@@ -67,201 +19,19 @@ Seed: 7114951007332849727
| |
1:0:1:Corridor 1:0:1:Corridor
2:0:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN} 2:0:DoorTest
2:0:0:RassThroughLockKeyLists 2:0:0:doorToggle-6gon
| |
2:0:1:roomsContaining chaseCritchaseCritTRANSFORMERCANCAN +- 2:0:1:triggerDoorRoom
2:0:0:0:sensorRoomRunPast
2:0:0:0:0:autoDoor
| |
2:0:0:0:1:ElecautoRect 2:0:2:triggerDoorRoom
3:0:PickupTest
3:0:0:6gon
| |
+- 2:0:0:0:2:triggerDoorRoom 3:0:1:triggerDoorRoom
| |
| 2:0:0:0:3:autoDoor
|
2:0:0:0:4:autoDoor
|
2:0:0:0:5:Corridor
2:0:1:0:autoRect 4:0:6gon
3:0:corDoor
3:0:0:autoDoor
|
3:0:1:Corridor
4:0:lasSensorTurretTest
4:0:0:autoDoor
|
4:0:1:8gon
|
4:0:2:triggerDoorRoom
|
4:0:3:autoDoor
5:0:corDoor
5:0:0:autoDoor
|
5:0:1:Corridor
6:0:anRoom
6:0:0:autoRect
7:0:corDoor
7:0:0:autoDoor
|
7:0:1:Corridor
8:0:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
8:0:0:RassThroughLockKeyLists
|
8:0:1:roomsContaining chaseCritchaseCritchaseCritKEYCARD 0
8:0:0:0:keyCardRoomRunPast
8:0:0:0:0:autoDoor
|
8:0:0:0:1:6gon
|
+- 8:0:0:0:2:triggerDoorRoom
| |
| 8:0:0:0:3:autoDoor
|
8:0:0:0:4:autoDoor
|
8:0:0:0:5:Corridor
8:0:1:0:autoRect
9:0:corDoor
9:0:0:autoDoor
|
9:0:1:Corridor
10:0:warningRooms
10:0:0:autoDoor
|
10:0:1:warningTerm-8gon
|
10:0:2:triggerDoorRoom
|
10:0:3:autoDoor
11:0:corDoor
11:0:0:autoDoor
|
11:0:1:Corridor
12:0:chaseCrit+armourChaseCrit rectRoom
12:0:0:autoRect
13:0:corDoor
13:0:0:autoDoor
|
13:0:1:Corridor
14:0:healthTest
14:0:0:autoDoor
|
14:0:1:Corridor
|
14:0:2:8gon
|
14:0:3:triggerDoorRoom
|
14:0:4:autoDoor
15:0:corDoor
15:0:0:autoDoor
|
15:0:1:Corridor
16:0:empty tanksRoom
16:0:0:tanksRoom
17:0:corDoor
17:0:0:autoDoor
|
17:0:1:Corridor
18:0:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
18:0:0:RassThroughLockKeyLists
|
18:0:1:roomsContaining chaseCritchaseCritSNIPERRIFLE
18:0:0:0:longRoomRunPast
18:0:0:0:0:autoDoor
|
18:0:0:0:1:rect
|
+- 18:0:0:0:2:autoDoor
|
18:0:0:0:3:Corridor
|
18:0:0:0:4:autoDoor
18:0:1:0:rectPillars
19:0:corDoor
19:0:0:autoDoor
|
19:0:1:Corridor
20:0:shootingRange
20:0:0:autoRect
|
20:0:1:defaultRoom
|
20:0:2:autoRect
|
20:0:3:defaultRoom
|
20:0:4:autoRect
21:0:corDoor
21:0:0:autoDoor
|
21:0:1:Corridor
22:0:lasSensorTurretTest
22:0:0:autoDoor
|
22:0:1:8gon
|
22:0:2:triggerDoorRoom
|
22:0:3:autoDoor
23:0:corDoor
23:0:0:autoDoor
|
23:0:1:Corridor
24:0:defaultRoom
+1 -1
View File
File diff suppressed because one or more lines are too long
+5 -1
View File
@@ -29,7 +29,11 @@ data GenWorld = GenWorld
---- ROOM DATATYPES ---- ROOM DATATYPES
data PSType data PSType
= PutCrit {_unPutCrit :: Creature} = PutCrit {_unPutCrit :: Creature}
| PutMachine {_putMachinePoly :: [Point2], _putMachineMachine :: Machine, _putMachineWall :: Wall} | PutMachine
{ _putMachinePoly :: [Point2]
, _putMachineMachine :: Machine
, _putMachineWall :: Wall
}
| PutLS LightSource | PutLS LightSource
| PutButton {_putButton :: Button} | PutButton {_putButton :: Button}
| PutProp Prop | PutProp Prop
+1 -2
View File
@@ -7,8 +7,7 @@ import Control.Lens
import qualified Data.Set as S import qualified Data.Set as S
data ClusterStatus = ClusterStatus data ClusterStatus = ClusterStatus
{ _csName :: String { _csLinks :: S.Set ClusterLink
, _csLinks :: S.Set ClusterLink
} }
data ClusterLink = OnwardCluster | SideCluster | LabelCluster Int data ClusterLink = OnwardCluster | SideCluster | LabelCluster Int
+1 -1
View File
@@ -36,4 +36,4 @@ defaultRoom =
} }
defaultClusterStatus :: ClusterStatus defaultClusterStatus :: ClusterStatus
defaultClusterStatus = ClusterStatus "defRoomClust" S.empty defaultClusterStatus = ClusterStatus S.empty
+1 -1
View File
@@ -51,7 +51,7 @@ layoutLevelFromSeed i seed = do
putStrLnAppend "log/attemptedSeeds" $ "Generating level with seed " ++ show seed putStrLnAppend "log/attemptedSeeds" $ "Generating level with seed " ++ show seed
appendFile "log/attemptedSeeds" "\n" appendFile "log/attemptedSeeds" "\n"
let g = mkStdGen seed let g = mkStdGen seed
let treecluster = evalState initialRoomTree (LayVars g 0) let treecluster = evalState tutRoomTree (LayVars g 0)
let labts = decomposeSelfTree $ numSelfTree $ combineTree _rmName treecluster let labts = decomposeSelfTree $ numSelfTree $ combineTree _rmName treecluster
appendFile "log/treeCluster" ("Seed: " ++ show seed ++ "\n") appendFile "log/treeCluster" ("Seed: " ++ show seed ++ "\n")
putStrLn "MetaTree clusters:" putStrLn "MetaTree clusters:"
+6 -1
View File
@@ -1,6 +1,7 @@
--{-# LANGUAGE LambdaCase #-} --{-# LANGUAGE LambdaCase #-}
module Dodge.PlacementSpot module Dodge.PlacementSpot
( atFstLnkOut ( atFstLnkOut
, atNthLnkOutShiftBy
, rpIsOnPath , rpIsOnPath
, rpIsOffPath , rpIsOffPath
, rpOffPathFromEdge , rpOffPathFromEdge
@@ -34,6 +35,7 @@ module Dodge.PlacementSpot
, shiftByV2 , shiftByV2
, usedRoomLinkPoss , usedRoomLinkPoss
, usedRoomInLinkPoss , usedRoomInLinkPoss
, atNthLinkOut
) where ) where
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
@@ -209,7 +211,10 @@ usedRoomLinkPoss r = mapMaybe f $ _rmPos r
_ -> Nothing _ -> Nothing
atFstLnkOut :: PlacementSpot atFstLnkOut :: PlacementSpot
atFstLnkOut = rprBool $ \rp _ -> rp ^? rpLinkStatus . rplsChildNum == Just 0 atFstLnkOut = atNthLinkOut 0
atNthLinkOut :: Int -> PlacementSpot
atNthLinkOut n = rprBool $ \rp _ -> rp ^? rpLinkStatus . rplsChildNum == Just n
atNthLnkOutShiftBy :: Int -> ((Point2,Float) -> (Point2,Float)) -> PlacementSpot atNthLnkOutShiftBy :: Int -> ((Point2,Float) -> (Point2,Float)) -> PlacementSpot
atNthLnkOutShiftBy n = rprBoolShift atNthLnkOutShiftBy n = rprBoolShift
+18 -15
View File
@@ -22,14 +22,15 @@ import LensHelp
import RandomHelp import RandomHelp
cenLasTur :: Room cenLasTur :: Room
cenLasTur = roomNgon 8 200 & rmPmnts .~ cenLasTur =
[ putLasTurret 0.02 roomNgon 8 200 & rmPmnts
, heightWallPS .~ [ putLasTurret 0.02
(resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100)) , heightWallPS
30 (resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100))
covershape 30
, mntLightLnkCond $ rprBool $ const . isInLnk covershape
] , mntLightLnkCond $ rprBool $ const . isInLnk
]
where where
covershape = rectNSWE 10 (-10) (-20) 20 covershape = rectNSWE 10 (-10) (-20) 20
@@ -74,24 +75,26 @@ keyCardAnalyserByDoor keyid = analyserByDoor (RequireEquipment (HELD (KEYCARD ke
healthAnalyserByDoor :: Int -> Room -> Room healthAnalyserByDoor :: Int -> Room -> Room
healthAnalyserByDoor = analyserByDoor (RequireHealth 1100) healthAnalyserByDoor = analyserByDoor (RequireHealth 1100)
analyserByDoor :: ProximityRequirement -> Int -> Room -> Room analyserByNthLink :: Int -> ProximityRequirement -> Int -> Room -> Room
analyserByDoor proxreq outplid rm = analyserByNthLink n proxreq outplid rm =
rm rm
& rmPmnts & rmPmnts
.++~ [ psPt atFstLnkOut $ PutForeground $ verticalWire (V2 20 0) 0 80 .++~ [ psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
] ]
& rmOutPmnt & rmOutPmnt
.~ [ OutPlacement .:~ OutPlacement
( analyser ( analyser
proxreq proxreq
(atFstLnkOutShiftBy (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a))) (atNthLnkOutShiftBy n (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a)))
(atFstLnkOutShiftBy sensorshift) (atNthLnkOutShiftBy n sensorshift)
) )
outplid outplid
]
where where
sensorshift (p, a) = (p +.+ rotateV a (V2 30 (-10)), a) sensorshift (p, a) = (p +.+ rotateV a (V2 30 (-10)), a)
analyserByDoor :: ProximityRequirement -> Int -> Room -> Room
analyserByDoor = analyserByNthLink 0
healthTest :: RandomGen g => Int -> State g (Tree Room) healthTest :: RandomGen g => Int -> State g (Tree Room)
healthTest n = do healthTest n = do
cenroom <- shuffleLinks $ healthAnalyserByDoor n $ roomNgon 8 200 cenroom <- shuffleLinks $ healthAnalyserByDoor n $ roomNgon 8 200
+1 -1
View File
@@ -373,7 +373,7 @@ spawnerRoom = do
aRoom <- airlock aRoom <- airlock
return $ treeFromTrunk [aRoom, corridor] $ pure $ cleatOnward roomWithSpawner return $ treeFromTrunk [aRoom, corridor] $ pure $ cleatOnward roomWithSpawner
corDoor :: State StdGen (MetaTree Room String) corDoor :: RandomGen g => State g (MetaTree Room String)
corDoor = do corDoor = do
cor <- shuffleLinks (cleatOnward corridor) <&> rmPmnts .~ [] cor <- shuffleLinks (cleatOnward corridor) <&> rmPmnts .~ []
return $ tToBTree "corDoor" $ treePost [door, cor] return $ tToBTree "corDoor" $ treePost [door, cor]
+48 -24
View File
@@ -1,14 +1,9 @@
module Dodge.Room.Tutorial (tutAnoTree) where module Dodge.Room.Tutorial (tutAnoTree) where
import Dodge.Cleat import Dodge.Item.Held.Cane
import Dodge.Room.Room import Dodge.Item.Ammo
import Dodge.Annotation.Data import Dodge.Annotation.Data
import Dodge.Room.Link import Dodge.Cleat
import Dodge.Room.Ngon
import Dodge.Room.Door
import TreeHelp
import Dodge.Tree.Compose
import Dodge.Room.RezBox
--import Control.Monad --import Control.Monad
--import qualified Data.Set as S --import qualified Data.Set as S
--import Dodge.Cleat --import Dodge.Cleat
@@ -18,34 +13,68 @@ import Dodge.Default.Terminal
import Dodge.LevelGen.PlacementHelper import Dodge.LevelGen.PlacementHelper
--import Dodge.LightSource --import Dodge.LightSource
import Dodge.Placement.Instance import Dodge.Placement.Instance
import Dodge.Room.Door
import Dodge.Room.LasTurret
import Dodge.Room.Link
import Dodge.Room.Ngon
--import Dodge.Room.Corridor --import Dodge.Room.Corridor
--import Dodge.Room.Door --import Dodge.Room.Door
--import Dodge.Room.Link --import Dodge.Room.Link
import Dodge.Room.Procedural import Dodge.Room.Procedural
import Dodge.Room.RezBox
import Dodge.Room.Room
import Dodge.Room.Warning
--import Dodge.Room.RoadBlock --import Dodge.Room.RoadBlock
import Dodge.RoomLink import Dodge.RoomLink
import Dodge.Terminal import Dodge.Terminal
import Dodge.Tree.Compose
--import Dodge.Tree --import Dodge.Tree
import Geometry import Geometry
import LensHelp import LensHelp
--import Padding --import Padding
import RandomHelp import RandomHelp
import Data.List (intersperse) import TreeHelp
--import Data.List (intersperse)
tutAnoTree :: Annotation tutAnoTree :: Annotation
tutAnoTree = OnwardList $ tutAnoTree =
intersperse OnwardList $
(AnTree $ zoom lyGen corDoor) [ AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
[AnTree . zoom lyGen $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , AnTree corDoor
,AnTree $ zoom lyGen tutRooms , AnTree $ tutRooms
] , AnTree $ pickupTut
, AnTree $ weaponTut
]
tutRooms :: State StdGen (MetaTree Room String) weaponTut :: State LayoutVars (MetaTree Room String)
weaponTut = do
x <- shuffleLinks $ roomNgon 6 100
& rmPmnts .:~ sps (PS 0 0) (PutFlIt $ burstRifle)
return $ tToBTree "WeaponTestTest" $ treePost $ [x]
pickupTut :: State LayoutVars (MetaTree Room String)
pickupTut = do
i <- nextLayoutInt
x <- shuffleLinks $ analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i $ roomNgon 6 100
& rmPmnts .:~ sps (PS 0 0) (PutFlIt $ drumMag & itConsumables ?~ 100)
return $ tToBTree "PickupTest" $ treePost $ [x, cleatOnward $ triggerDoorRoom i]
tutRooms :: State LayoutVars (MetaTree Room String)
tutRooms = do tutRooms = do
ys <- toggleDoorTest i <- nextLayoutInt
return $ tToBTree "DoorTest" $ treePost $ [] <> ys j <- nextLayoutInt
x <- shuffleLinks $ analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i
$ addDoorAtNthLinkToggleTerminal 1 (makeTermPara s) j
$ roomNgon 6 100
return $ tToBTree "DoorTest" $ Node x
[Node (cleatOnward $ triggerDoorRoom i) []
,Node ( triggerDoorRoom j) []
]
where
s = "INTERACTION TEST 1: USE KEYBOARD OR SCROLL TO ENTER COMMANDS."
tutRezBox :: State StdGen Room tutRezBox :: RandomGen g => State g Room
tutRezBox = do tutRezBox = do
ls <- rezColor ls <- rezColor
return $ return $
@@ -63,8 +92,3 @@ tutRezBox = do
tutorialMessage1 :: String tutorialMessage1 :: String
tutorialMessage1 = "SYNTHESIS SUCCESSFUL. MOVEMENT TEST 1 INITIATED [WASD]. INTERACTION TEST 1 IN QUEUE [SPACE]." tutorialMessage1 = "SYNTHESIS SUCCESSFUL. MOVEMENT TEST 1 INITIATED [WASD]. INTERACTION TEST 1 IN QUEUE [SPACE]."
toggleDoorTest :: State StdGen [Room]
toggleDoorTest = do
x <- shuffleLinks $ roomNgon 6 100
return [x,door]
+34 -10
View File
@@ -1,6 +1,8 @@
--{-# LANGUAGE TupleSections #-} --{-# LANGUAGE TupleSections #-}
module Dodge.Room.Warning (warningRooms) where module Dodge.Room.Warning (warningRooms,addDoorToggleTerminal
, addDoorAtNthLinkToggleTerminal) where
import Control.Monad
import Dodge.Default.Terminal import Dodge.Default.Terminal
import Dodge.Data.BlBl import Dodge.Data.BlBl
import Color import Color
@@ -29,28 +31,36 @@ warningRooms str n = do
cenroom <- shuffleLinks $ addWarningTerminal str n rm cenroom <- shuffleLinks $ addWarningTerminal str n rm
rToOnward "warningRooms" $ treePost [door, cenroom, triggerDoorRoom n, cleatOnward door] rToOnward "warningRooms" $ treePost [door, cenroom, triggerDoorRoom n, cleatOnward door]
addWarningTerminal :: String -> Int -> Room -> Room addDoorToggleTerminal :: [TerminalLine] -> Int -> Room -> Room
addWarningTerminal str outplid = (rmName .++~ "warningTerm-") addDoorToggleTerminal = addDoorAtNthLinkToggleTerminal 0
. (rmOutPmnt .~ [OutPlacement outplace outplid])
addDoorAtNthLinkToggleTerminal :: Int -> [TerminalLine] -> Int -> Room -> Room
addDoorAtNthLinkToggleTerminal j xs i = (rmName .++~ "doorToggle-")
. (rmOutPmnt .:~ OutPlacement outplace i)
where where
outplace = outplace =
extTrigLitPos extTrigLitPos
(atFstLnkOutShiftBy (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a))) (atNthLnkOutShiftBy j (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a)))
( Just . set plSpot (rprShift moveToSideFirstOutLink) ( Just . set plSpot (rprShift (moveToSideNthOutLink j))
. putMessageTerminal terminalColor . putMessageTerminal terminalColor
. termMessages . termMessages
) )
termMessages trpl = termMessages trpl =
lineOutputTerminal (makeColorTermLine red "WARNING" : makeTermPara str) lineOutputTerminal xs --(makeColorTermLine red "WARNING" : makeTermPara str)
& tmToggles .~ M.fromList & tmToggles .~ M.fromList
[("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))] [("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))]
addWarningTerminal :: String -> Int -> Room -> Room
addWarningTerminal str = addDoorToggleTerminal (makeColorTermLine red "WARNING" : makeTermPara str)
lineOutputTerminal :: [TerminalLine] -> Terminal lineOutputTerminal :: [TerminalLine] -> Terminal
lineOutputTerminal tls = defaultTerminal & tmBootLines .~ connectionBlurbLines tls lineOutputTerminal tls = defaultTerminal & tmBootLines .~ connectionBlurbLines tls
moveToSideFirstOutLink :: RoomPos -> Room -> Maybe (Point2, Float) moveToSideNthOutLink :: Int -> RoomPos -> Room -> Maybe (Point2, Float)
moveToSideFirstOutLink rp rm = do moveToSideNthOutLink i rp rm = do
0 <- rp ^? rpLinkStatus . rplsChildNum j <- rp ^? rpLinkStatus . rplsChildNum
guard $ i == j
let rppos = _rpPos rp let rppos = _rpPos rp
rpdir = _rpDir rp rpdir = _rpDir rp
inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5)) inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5))
@@ -61,6 +71,20 @@ moveToSideFirstOutLink rp rm = do
-- complicated, it should really use created walls... -- complicated, it should really use created walls...
(rtpos, rpdir) (rtpos, rpdir)
else (ltpos, rpdir) else (ltpos, rpdir)
--moveToSideFirstOutLink :: RoomPos -> Room -> Maybe (Point2, Float)
--moveToSideFirstOutLink rp rm = do
-- 0 <- rp ^? rpLinkStatus . rplsChildNum
-- let rppos = _rpPos rp
-- rpdir = _rpDir rp
-- inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5))
-- rtpos = inpos +.+ rotateV rpdir (V2 30 0)
-- ltpos = inpos +.+ rotateV rpdir (V2 (-30) 0)
-- return $ if any (isJust . intersectSegPolyFirst inpos ltpos) (_rmPolys rm)
-- then -- the above test may not work properly if the room polys are
-- -- complicated, it should really use created walls...
-- (rtpos, rpdir)
-- else (ltpos, rpdir)
--moveToSideFirstOutLink rp rm = case rp ^? rpLinkStatus . rplsChildNum of --moveToSideFirstOutLink rp rm = case rp ^? rpLinkStatus . rplsChildNum of
-- Just 0 -> -- Just 0 ->
-- let rppos = _rpPos rp -- let rppos = _rpPos rp
+147 -144
View File
@@ -226,7 +226,7 @@ CloseToggle src/Dodge/Data/Machine/Sensor.hs 43;" t
Close_shape_culling src/Dodge/Data/Config.hs 79;" C Close_shape_culling src/Dodge/Data/Config.hs 79;" C
Cloud src/Dodge/Data/Cloud.hs 14;" t Cloud src/Dodge/Data/Cloud.hs 14;" t
CloudType src/Dodge/Data/Cloud.hs 22;" t CloudType src/Dodge/Data/Cloud.hs 22;" t
ClusterLink src/Dodge/Data/RoomCluster.hs 14;" t ClusterLink src/Dodge/Data/RoomCluster.hs 13;" t
ClusterStatus src/Dodge/Data/RoomCluster.hs 9;" t ClusterStatus src/Dodge/Data/RoomCluster.hs 9;" t
Cognizant src/Dodge/Data/Creature/Perception.hs 67;" C Cognizant src/Dodge/Data/Creature/Perception.hs 67;" C
Collision_test src/Dodge/Data/Config.hs 84;" C Collision_test src/Dodge/Data/Config.hs 84;" C
@@ -590,7 +590,7 @@ InDream src/Dodge/Data/Scenario.hs 19;" C
InInv src/Dodge/Data/Item/Location.hs 29;" C InInv src/Dodge/Data/Item/Location.hs 29;" C
InLink src/Dodge/Data/Room.hs 44;" C InLink src/Dodge/Data/Room.hs 44;" C
InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C
InPlacement src/Dodge/Data/GenWorld.hs 132;" t InPlacement src/Dodge/Data/GenWorld.hs 136;" t
InRealWorld src/Dodge/Data/Scenario.hs 18;" C InRealWorld src/Dodge/Data/Scenario.hs 18;" C
InSimulation src/Dodge/Data/Scenario.hs 20;" C InSimulation src/Dodge/Data/Scenario.hs 20;" C
InVoid src/Dodge/Data/Item/Location.hs 39;" C InVoid src/Dodge/Data/Item/Location.hs 39;" C
@@ -603,7 +603,6 @@ InputScreen src/Dodge/Data/Universe.hs 92;" C
Inspect_wall src/Dodge/Data/Config.hs 91;" C Inspect_wall src/Dodge/Data/Config.hs 91;" C
Institution src/Dodge/Data/Scenario.hs 42;" t Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 21;" t Int2 src/Geometry/Data.hs 21;" t
IntAnno src/Dodge/Annotation/Data.hs 21;" C
IntID src/Dodge/Data/Universe.hs 113;" t IntID src/Dodge/Data/Universe.hs 113;" t
IntImp src/Dodge/Data/CreatureEffect.hs 20;" t IntImp src/Dodge/Data/CreatureEffect.hs 20;" t
Intention src/Dodge/Data/Creature.hs 68;" t Intention src/Dodge/Data/Creature.hs 68;" t
@@ -665,7 +664,7 @@ LWorld src/Dodge/Data/LWorld.hs 99;" t
LabLink src/Dodge/Data/Room.hs 45;" C LabLink src/Dodge/Data/Room.hs 45;" C
LabSS src/Dodge/Data/Scenario.hs 97;" C LabSS src/Dodge/Data/Scenario.hs 97;" C
LabelAction src/Dodge/Data/ActionPlan.hs 79;" C LabelAction src/Dodge/Data/ActionPlan.hs 79;" C
LabelCluster src/Dodge/Data/RoomCluster.hs 14;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C
LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 24;" t LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 24;" t
Laboratory src/Dodge/Data/Scenario.hs 61;" C Laboratory src/Dodge/Data/Scenario.hs 61;" C
LampCrit src/Dodge/Data/Creature/Misc.hs 74;" C LampCrit src/Dodge/Data/Creature/Misc.hs 74;" C
@@ -945,7 +944,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C
OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C
OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C
OneHand src/Dodge/Data/AimStance.hs 9;" C OneHand src/Dodge/Data/AimStance.hs 9;" C
OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 13;" C
OnwardList src/Dodge/Annotation/Data.hs 20;" C OnwardList src/Dodge/Annotation/Data.hs 20;" C
Opacity src/Dodge/Data/Wall.hs 40;" t Opacity src/Dodge/Data/Wall.hs 40;" t
Opaque src/Dodge/Data/Wall.hs 44;" C Opaque src/Dodge/Data/Wall.hs 44;" C
@@ -954,7 +953,7 @@ OptionScreen src/Dodge/Data/Universe.hs 82;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t
OutAction src/Dodge/Creature/Action.hs 45;" t OutAction src/Dodge/Creature/Action.hs 45;" t
OutLink src/Dodge/Data/Room.hs 43;" C OutLink src/Dodge/Data/Room.hs 43;" C
OutPlacement src/Dodge/Data/GenWorld.hs 127;" t OutPlacement src/Dodge/Data/GenWorld.hs 131;" t
OutsideTerminal src/Dodge/Data/Input.hs 33;" C OutsideTerminal src/Dodge/Data/Input.hs 33;" C
OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C
OverCombCombine src/Dodge/Data/Input.hs 29;" C OverCombCombine src/Dodge/Data/Input.hs 29;" C
@@ -984,10 +983,10 @@ PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 89;" C
POWERLEGS src/Dodge/Data/Item/Combine.hs 130;" C POWERLEGS src/Dodge/Data/Item/Combine.hs 130;" C
PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C
PRISM src/Dodge/Data/Item/Combine.hs 66;" C PRISM src/Dodge/Data/Item/Combine.hs 66;" C
PS src/Dodge/Data/GenWorld.hs 63;" C PS src/Dodge/Data/GenWorld.hs 67;" C
PSNoShiftCont src/Dodge/Data/GenWorld.hs 64;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 68;" C
PSPos src/Dodge/Data/GenWorld.hs 65;" C PSPos src/Dodge/Data/GenWorld.hs 69;" C
PSRoomRand src/Dodge/Data/GenWorld.hs 70;" C PSRoomRand src/Dodge/Data/GenWorld.hs 74;" C
PSType src/Dodge/Data/GenWorld.hs 30;" t PSType src/Dodge/Data/GenWorld.hs 30;" t
PUMP src/Dodge/Data/Item/Combine.hs 63;" C PUMP src/Dodge/Data/Item/Combine.hs 63;" C
PaletteColor src/Color/Data.hs 14;" t PaletteColor src/Color/Data.hs 14;" t
@@ -1004,13 +1003,13 @@ PenetrateBullet src/Dodge/Data/Bullet.hs 31;" C
Perception src/Dodge/Data/Creature/Perception.hs 32;" t Perception src/Dodge/Data/Creature/Perception.hs 32;" t
PhysicalDamage src/Dodge/Data/Damage/Type.hs 4;" C PhysicalDamage src/Dodge/Data/Damage/Type.hs 4;" C
PhysicalSensor src/Dodge/Data/Machine/Sensor/Type.hs 15;" C PhysicalSensor src/Dodge/Data/Machine/Sensor/Type.hs 15;" C
PickOnePlacement src/Dodge/Data/GenWorld.hs 86;" C PickOnePlacement src/Dodge/Data/GenWorld.hs 90;" C
Picture src/Picture/Data.hs 46;" t Picture src/Picture/Data.hs 46;" t
Piercing src/Dodge/Data/Damage.hs 20;" C Piercing src/Dodge/Data/Damage.hs 20;" C
PistolAI src/Dodge/Data/Creature/Misc.hs 43;" C PistolAI src/Dodge/Data/Creature/Misc.hs 43;" C
Placement src/Dodge/Data/GenWorld.hs 76;" t Placement src/Dodge/Data/GenWorld.hs 80;" t
PlacementSpot src/Dodge/Data/GenWorld.hs 62;" t PlacementSpot src/Dodge/Data/GenWorld.hs 66;" t
PlacementUsingPos src/Dodge/Data/GenWorld.hs 84;" C PlacementUsingPos src/Dodge/Data/GenWorld.hs 88;" C
PlainBarrel src/Dodge/Data/Creature/Misc.hs 88;" C PlainBarrel src/Dodge/Data/Creature/Misc.hs 88;" C
PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C
PlayStatus src/Sound/Data.hs 23;" t PlayStatus src/Sound/Data.hs 23;" t
@@ -1075,29 +1074,29 @@ PulseStatus src/Dodge/Data/Creature/Misc.hs 54;" C
PushSource src/Dodge/Data/Door.hs 27;" t PushSource src/Dodge/Data/Door.hs 27;" t
PushedBy src/Dodge/Data/Door.hs 29;" C PushedBy src/Dodge/Data/Door.hs 29;" C
PushesItself src/Dodge/Data/Door.hs 28;" C PushesItself src/Dodge/Data/Door.hs 28;" C
PutBlock src/Dodge/Data/GenWorld.hs 39;" C PutBlock src/Dodge/Data/GenWorld.hs 43;" C
PutButton src/Dodge/Data/GenWorld.hs 34;" C PutButton src/Dodge/Data/GenWorld.hs 38;" C
PutChasm src/Dodge/Data/GenWorld.hs 58;" C PutChasm src/Dodge/Data/GenWorld.hs 62;" C
PutCoord src/Dodge/Data/GenWorld.hs 40;" C PutCoord src/Dodge/Data/GenWorld.hs 44;" C
PutCrit src/Dodge/Data/GenWorld.hs 31;" C PutCrit src/Dodge/Data/GenWorld.hs 31;" C
PutDoor src/Dodge/Data/GenWorld.hs 51;" C PutDoor src/Dodge/Data/GenWorld.hs 55;" C
PutFlIt src/Dodge/Data/GenWorld.hs 37;" C PutFlIt src/Dodge/Data/GenWorld.hs 41;" C
PutForeground src/Dodge/Data/GenWorld.hs 53;" C PutForeground src/Dodge/Data/GenWorld.hs 57;" C
PutID src/Dodge/Data/GenWorld.hs 57;" C PutID src/Dodge/Data/GenWorld.hs 61;" C
PutLS src/Dodge/Data/GenWorld.hs 33;" C PutLS src/Dodge/Data/GenWorld.hs 37;" C
PutLineBlock src/Dodge/Data/GenWorld.hs 43;" C PutLineBlock src/Dodge/Data/GenWorld.hs 47;" C
PutMachine src/Dodge/Data/GenWorld.hs 32;" C PutMachine src/Dodge/Data/GenWorld.hs 32;" C
PutMod src/Dodge/Data/GenWorld.hs 41;" C PutMod src/Dodge/Data/GenWorld.hs 45;" C
PutNothing src/Dodge/Data/GenWorld.hs 55;" C PutNothing src/Dodge/Data/GenWorld.hs 59;" C
PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C
PutPPlate src/Dodge/Data/GenWorld.hs 38;" C PutPPlate src/Dodge/Data/GenWorld.hs 42;" C
PutProp src/Dodge/Data/GenWorld.hs 35;" C PutProp src/Dodge/Data/GenWorld.hs 39;" C
PutSlideDr src/Dodge/Data/GenWorld.hs 50;" C PutSlideDr src/Dodge/Data/GenWorld.hs 54;" C
PutTerminal src/Dodge/Data/GenWorld.hs 36;" C PutTerminal src/Dodge/Data/GenWorld.hs 40;" C
PutTrigger src/Dodge/Data/GenWorld.hs 42;" C PutTrigger src/Dodge/Data/GenWorld.hs 46;" C
PutUsingGenParams src/Dodge/Data/GenWorld.hs 56;" C PutUsingGenParams src/Dodge/Data/GenWorld.hs 60;" C
PutWall src/Dodge/Data/GenWorld.hs 49;" C PutWall src/Dodge/Data/GenWorld.hs 53;" C
PutWorldUpdate src/Dodge/Data/GenWorld.hs 54;" C PutWorldUpdate src/Dodge/Data/GenWorld.hs 58;" C
QFloat src/Geometry/Data.hs 50;" t QFloat src/Geometry/Data.hs 50;" t
QuarterRes src/Dodge/Data/Config.hs 97;" C QuarterRes src/Dodge/Data/Config.hs 97;" C
QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C
@@ -1121,9 +1120,9 @@ RadialDistortion src/Dodge/Data/Distortion.hs 13;" C
RandImpulse src/Dodge/Data/ActionPlan.hs 62;" t RandImpulse src/Dodge/Data/ActionPlan.hs 62;" t
RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 64;" C RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 64;" C
RandImpulseList src/Dodge/Data/ActionPlan.hs 63;" C RandImpulseList src/Dodge/Data/ActionPlan.hs 63;" C
RandPS src/Dodge/Data/GenWorld.hs 52;" C RandPS src/Dodge/Data/GenWorld.hs 56;" C
RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C
RandomPlacement src/Dodge/Data/GenWorld.hs 85;" C RandomPlacement src/Dodge/Data/GenWorld.hs 89;" C
RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C
ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C
RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RecRoomSS src/Dodge/Data/Scenario.hs 103;" C
@@ -1157,7 +1156,7 @@ Rocket src/Dodge/Data/Projectile.hs 34;" C
RocketHoming src/Dodge/Data/Projectile.hs 41;" t RocketHoming src/Dodge/Data/Projectile.hs 41;" t
RocketSmoke src/Dodge/Data/Projectile.hs 54;" t RocketSmoke src/Dodge/Data/Projectile.hs 54;" t
RocketSmoke src/Dodge/Data/Cloud.hs 24;" C RocketSmoke src/Dodge/Data/Cloud.hs 24;" C
Room src/Dodge/Data/GenWorld.hs 95;" t Room src/Dodge/Data/GenWorld.hs 99;" t
RoomClipping src/Dodge/Data/Config.hs 107;" t RoomClipping src/Dodge/Data/Config.hs 107;" t
RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t
RoomLink src/Dodge/Data/Room.hs 23;" t RoomLink src/Dodge/Data/Room.hs 23;" t
@@ -1245,7 +1244,7 @@ Show_zone_near_point_cursor src/Dodge/Data/Config.hs 90;" C
ShrapnelBomb src/Dodge/Data/Payload.hs 12;" C ShrapnelBomb src/Dodge/Data/Payload.hs 12;" C
ShrinkGunStatus src/Dodge/Data/Item/Params.hs 28;" t ShrinkGunStatus src/Dodge/Data/Item/Params.hs 28;" t
Shrunk src/Dodge/Data/Item/Params.hs 28;" C Shrunk src/Dodge/Data/Item/Params.hs 28;" C
SideCluster src/Dodge/Data/RoomCluster.hs 14;" C SideCluster src/Dodge/Data/RoomCluster.hs 13;" C
SideEffect src/Dodge/Data/Universe.hs 64;" t SideEffect src/Dodge/Data/Universe.hs 64;" t
SixteenthRes src/Dodge/Data/Config.hs 97;" C SixteenthRes src/Dodge/Data/Config.hs 97;" C
Size src/Shape/Data.hs 28;" t Size src/Shape/Data.hs 28;" t
@@ -1735,8 +1734,7 @@ _crZVel src/Dodge/Data/Creature.hs 41;" f
_crZoning src/Dodge/Data/World.hs 47;" f _crZoning src/Dodge/Data/World.hs 47;" f
_creatureGroups src/Dodge/Data/LWorld.hs 101;" f _creatureGroups src/Dodge/Data/LWorld.hs 101;" f
_creatures src/Dodge/Data/LWorld.hs 100;" f _creatures src/Dodge/Data/LWorld.hs 100;" f
_csLinks src/Dodge/Data/RoomCluster.hs 11;" f _csLinks src/Dodge/Data/RoomCluster.hs 10;" f
_csName src/Dodge/Data/RoomCluster.hs 10;" f
_currentArc src/Dodge/Data/Item/Params.hs 17;" f _currentArc src/Dodge/Data/Item/Params.hs 17;" f
_currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f
_cursSides src/Dodge/Data/SelectionList.hs 20;" f _cursSides src/Dodge/Data/SelectionList.hs 20;" f
@@ -1943,8 +1941,8 @@ _impulseUseTarget src/Dodge/Data/ActionPlan.hs 53;" f
_impulseUseTargetCID src/Dodge/Data/ActionPlan.hs 50;" f _impulseUseTargetCID src/Dodge/Data/ActionPlan.hs 50;" f
_impulsesListList src/Dodge/Data/ActionPlan.hs 98;" f _impulsesListList src/Dodge/Data/ActionPlan.hs 98;" f
_input src/Dodge/Data/World.hs 42;" f _input src/Dodge/Data/World.hs 42;" f
_ipPlacement src/Dodge/Data/GenWorld.hs 133;" f _ipPlacement src/Dodge/Data/GenWorld.hs 137;" f
_ipPlacementID src/Dodge/Data/GenWorld.hs 134;" f _ipPlacementID src/Dodge/Data/GenWorld.hs 138;" f
_isWarming src/Dodge/Data/Item/Params.hs 23;" f _isWarming src/Dodge/Data/Item/Params.hs 23;" f
_ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f
_ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" f
@@ -2111,8 +2109,8 @@ _offPathFromEdges src/Dodge/Data/Room.hs 74;" f
_oldMagnets src/Dodge/Data/LWorld.hs 129;" f _oldMagnets src/Dodge/Data/LWorld.hs 129;" f
_onPathFromEdges src/Dodge/Data/Room.hs 73;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f
_opDraw src/Dodge/Data/Wall.hs 43;" f _opDraw src/Dodge/Data/Wall.hs 43;" f
_opPlacement src/Dodge/Data/GenWorld.hs 128;" f _opPlacement src/Dodge/Data/GenWorld.hs 132;" f
_opPlacementID src/Dodge/Data/GenWorld.hs 129;" f _opPlacementID src/Dodge/Data/GenWorld.hs 133;" f
_opSel src/Dodge/Data/RightButtonOptions.hs 15;" f _opSel src/Dodge/Data/RightButtonOptions.hs 15;" f
_opTexture src/Dodge/Data/Wall.hs 44;" f _opTexture src/Dodge/Data/Wall.hs 44;" f
_opticDefaultZoom src/Dodge/Data/Item/Scope.hs 20;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 20;" f
@@ -2151,11 +2149,11 @@ _pjSpin src/Dodge/Data/Projectile.hs 21;" f
_pjTimer src/Dodge/Data/Projectile.hs 24;" f _pjTimer src/Dodge/Data/Projectile.hs 24;" f
_pjType src/Dodge/Data/Projectile.hs 26;" f _pjType src/Dodge/Data/Projectile.hs 26;" f
_pjVel src/Dodge/Data/Projectile.hs 19;" f _pjVel src/Dodge/Data/Projectile.hs 19;" f
_plIDCont src/Dodge/Data/GenWorld.hs 82;" f _plIDCont src/Dodge/Data/GenWorld.hs 86;" f
_plMID src/Dodge/Data/GenWorld.hs 81;" f _plMID src/Dodge/Data/GenWorld.hs 85;" f
_plOrder src/Dodge/Data/GenWorld.hs 78;" f _plOrder src/Dodge/Data/GenWorld.hs 82;" f
_plSpot src/Dodge/Data/GenWorld.hs 79;" f _plSpot src/Dodge/Data/GenWorld.hs 83;" f
_plType src/Dodge/Data/GenWorld.hs 80;" f _plType src/Dodge/Data/GenWorld.hs 84;" f
_playStatus src/Sound/Data.hs 17;" f _playStatus src/Sound/Data.hs 17;" f
_playingSounds src/Dodge/Data/World.hs 41;" f _playingSounds src/Dodge/Data/World.hs 41;" f
_pnZoning src/Dodge/Data/World.hs 51;" f _pnZoning src/Dodge/Data/World.hs 51;" f
@@ -2195,33 +2193,33 @@ _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 38;" f
_proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 37;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 37;" f
_proxRequirement src/Dodge/Data/Machine/Sensor.hs 30;" f _proxRequirement src/Dodge/Data/Machine/Sensor.hs 30;" f
_proxStatus src/Dodge/Data/Machine/Sensor.hs 28;" f _proxStatus src/Dodge/Data/Machine/Sensor.hs 28;" f
_psFallback src/Dodge/Data/GenWorld.hs 68;" f _psFallback src/Dodge/Data/GenWorld.hs 72;" f
_psPos src/Dodge/Data/GenWorld.hs 63;" f _psPos src/Dodge/Data/GenWorld.hs 67;" f
_psRandShift src/Dodge/Data/GenWorld.hs 72;" f _psRandShift src/Dodge/Data/GenWorld.hs 76;" f
_psRoomEff src/Dodge/Data/GenWorld.hs 67;" f _psRoomEff src/Dodge/Data/GenWorld.hs 71;" f
_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 71;" f _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 75;" f
_psRot src/Dodge/Data/GenWorld.hs 63;" f _psRot src/Dodge/Data/GenWorld.hs 67;" f
_psSelect src/Dodge/Data/GenWorld.hs 66;" f _psSelect src/Dodge/Data/GenWorld.hs 70;" f
_pulseBalls src/Dodge/Data/LWorld.hs 121;" f _pulseBalls src/Dodge/Data/LWorld.hs 121;" f
_pulseLasers src/Dodge/Data/LWorld.hs 120;" f _pulseLasers src/Dodge/Data/LWorld.hs 120;" f
_pulseProgress src/Dodge/Data/Creature/Misc.hs 56;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 56;" f
_pulseRate src/Dodge/Data/Creature/Misc.hs 55;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 55;" f
_putBlock src/Dodge/Data/GenWorld.hs 39;" f _putBlock src/Dodge/Data/GenWorld.hs 43;" f
_putButton src/Dodge/Data/GenWorld.hs 34;" f _putButton src/Dodge/Data/GenWorld.hs 38;" f
_putChasmPoly src/Dodge/Data/GenWorld.hs 58;" f _putChasmPoly src/Dodge/Data/GenWorld.hs 62;" f
_putEndPoint src/Dodge/Data/GenWorld.hs 47;" f _putEndPoint src/Dodge/Data/GenWorld.hs 51;" f
_putID src/Dodge/Data/GenWorld.hs 57;" f _putID src/Dodge/Data/GenWorld.hs 61;" f
_putItem src/Dodge/Data/GenWorld.hs 37;" f _putItem src/Dodge/Data/GenWorld.hs 41;" f
_putMachineMachine src/Dodge/Data/GenWorld.hs 32;" f _putMachineMachine src/Dodge/Data/GenWorld.hs 34;" f
_putMachinePoly src/Dodge/Data/GenWorld.hs 32;" f _putMachinePoly src/Dodge/Data/GenWorld.hs 33;" f
_putMachineWall src/Dodge/Data/GenWorld.hs 32;" f _putMachineWall src/Dodge/Data/GenWorld.hs 35;" f
_putPoly src/Dodge/Data/GenWorld.hs 39;" f _putPoly src/Dodge/Data/GenWorld.hs 43;" f
_putStartPoint src/Dodge/Data/GenWorld.hs 46;" f _putStartPoint src/Dodge/Data/GenWorld.hs 50;" f
_putWall src/Dodge/Data/GenWorld.hs 39;" f _putWall src/Dodge/Data/GenWorld.hs 43;" f
_putWall src/Dodge/Data/GenWorld.hs 44;" f _putWall src/Dodge/Data/GenWorld.hs 48;" f
_putWidth src/Dodge/Data/GenWorld.hs 45;" f _putWidth src/Dodge/Data/GenWorld.hs 49;" f
_pwPoly src/Dodge/Data/GenWorld.hs 49;" f _pwPoly src/Dodge/Data/GenWorld.hs 53;" f
_pwWall src/Dodge/Data/GenWorld.hs 49;" f _pwWall src/Dodge/Data/GenWorld.hs 53;" f
_pyFaces src/Polyhedra/Data.hs 14;" f _pyFaces src/Polyhedra/Data.hs 14;" f
_pzDamage src/Dodge/Data/PulseLaser.hs 15;" f _pzDamage src/Dodge/Data/PulseLaser.hs 15;" f
_pzDir src/Dodge/Data/PulseLaser.hs 14;" f _pzDir src/Dodge/Data/PulseLaser.hs 14;" f
@@ -2249,29 +2247,29 @@ _rkSmoke src/Dodge/Data/Projectile.hs 36;" f
_rlDir src/Dodge/Data/Room.hs 26;" f _rlDir src/Dodge/Data/Room.hs 26;" f
_rlPos src/Dodge/Data/Room.hs 25;" f _rlPos src/Dodge/Data/Room.hs 25;" f
_rlType src/Dodge/Data/Room.hs 24;" f _rlType src/Dodge/Data/Room.hs 24;" f
_rmBound src/Dodge/Data/GenWorld.hs 111;" f _rmBound src/Dodge/Data/GenWorld.hs 115;" f
_rmChildren src/Dodge/Data/GenWorld.hs 122;" f _rmChildren src/Dodge/Data/GenWorld.hs 126;" f
_rmClusterStatus src/Dodge/Data/GenWorld.hs 124;" f _rmClusterStatus src/Dodge/Data/GenWorld.hs 128;" f
_rmConnectsTo src/Dodge/Data/GenWorld.hs 119;" f _rmConnectsTo src/Dodge/Data/GenWorld.hs 123;" f
_rmEndWires src/Dodge/Data/GenWorld.hs 118;" f _rmEndWires src/Dodge/Data/GenWorld.hs 122;" f
_rmFloor src/Dodge/Data/GenWorld.hs 112;" f _rmFloor src/Dodge/Data/GenWorld.hs 116;" f
_rmHeight src/Dodge/Data/Room.hs 38;" f _rmHeight src/Dodge/Data/Room.hs 38;" f
_rmInPmnt src/Dodge/Data/GenWorld.hs 109;" f _rmInPmnt src/Dodge/Data/GenWorld.hs 113;" f
_rmLinkEff src/Dodge/Data/GenWorld.hs 99;" f _rmLinkEff src/Dodge/Data/GenWorld.hs 103;" f
_rmLinks src/Dodge/Data/GenWorld.hs 97;" f _rmLinks src/Dodge/Data/GenWorld.hs 101;" f
_rmMID src/Dodge/Data/GenWorld.hs 120;" f _rmMID src/Dodge/Data/GenWorld.hs 124;" f
_rmMParent src/Dodge/Data/GenWorld.hs 121;" f _rmMParent src/Dodge/Data/GenWorld.hs 125;" f
_rmName src/Dodge/Data/GenWorld.hs 113;" f _rmName src/Dodge/Data/GenWorld.hs 117;" f
_rmOutPmnt src/Dodge/Data/GenWorld.hs 110;" f _rmOutPmnt src/Dodge/Data/GenWorld.hs 114;" f
_rmPath src/Dodge/Data/GenWorld.hs 107;" f _rmPath src/Dodge/Data/GenWorld.hs 111;" f
_rmPmnts src/Dodge/Data/GenWorld.hs 108;" f _rmPmnts src/Dodge/Data/GenWorld.hs 112;" f
_rmPolys src/Dodge/Data/GenWorld.hs 96;" f _rmPolys src/Dodge/Data/GenWorld.hs 100;" f
_rmPos src/Dodge/Data/GenWorld.hs 106;" f _rmPos src/Dodge/Data/GenWorld.hs 110;" f
_rmRandPSs src/Dodge/Data/GenWorld.hs 116;" f _rmRandPSs src/Dodge/Data/GenWorld.hs 120;" f
_rmShift src/Dodge/Data/GenWorld.hs 114;" f _rmShift src/Dodge/Data/GenWorld.hs 118;" f
_rmStartWires src/Dodge/Data/GenWorld.hs 117;" f _rmStartWires src/Dodge/Data/GenWorld.hs 121;" f
_rmType src/Dodge/Data/GenWorld.hs 123;" f _rmType src/Dodge/Data/GenWorld.hs 127;" f
_rmViewpoints src/Dodge/Data/GenWorld.hs 115;" f _rmViewpoints src/Dodge/Data/GenWorld.hs 119;" f
_rmWidth src/Dodge/Data/Room.hs 37;" f _rmWidth src/Dodge/Data/Room.hs 37;" f
_rpDir src/Dodge/Data/Room.hs 16;" f _rpDir src/Dodge/Data/Room.hs 16;" f
_rpLinkStatus src/Dodge/Data/Room.hs 18;" f _rpLinkStatus src/Dodge/Data/Room.hs 18;" f
@@ -2463,12 +2461,12 @@ _unNInt src/NewInt.hs 15;" f
_unNIntMap src/NewInt.hs 18;" f _unNIntMap src/NewInt.hs 18;" f
_unPrimitiveMode src/Shader/Data.hs 99;" f _unPrimitiveMode src/Shader/Data.hs 99;" f
_unPutCrit src/Dodge/Data/GenWorld.hs 31;" f _unPutCrit src/Dodge/Data/GenWorld.hs 31;" f
_unRandomPlacement src/Dodge/Data/GenWorld.hs 85;" f _unRandomPlacement src/Dodge/Data/GenWorld.hs 89;" f
_unST src/Dodge/Data/MetaTree.hs 18;" f _unST src/Dodge/Data/MetaTree.hs 18;" f
_unTO src/Shader/Data.hs 59;" f _unTO src/Shader/Data.hs 59;" f
_unfiredBarrels src/Dodge/Data/Item/Params.hs 19;" f _unfiredBarrels src/Dodge/Data/Item/Params.hs 19;" f
_unpauseClock src/Dodge/Data/World.hs 55;" f _unpauseClock src/Dodge/Data/World.hs 55;" f
_unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _unputTerminal src/Dodge/Data/GenWorld.hs 40;" f
_useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f
_useExactly src/Dodge/Data/Muzzle.hs 62;" f _useExactly src/Dodge/Data/Muzzle.hs 62;" f
_useMapperLines src/Dodge/Data/Item/Use.hs 40;" f _useMapperLines src/Dodge/Data/Item/Use.hs 40;" f
@@ -2577,6 +2575,8 @@ addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 97;" f addButtonSlowDoor src/Dodge/Room/LongDoor.hs 97;" f
addCrGibs src/Dodge/Prop/Gib.hs 16;" f addCrGibs src/Dodge/Prop/Gib.hs 16;" f
addDepth src/Picture/Base.hs 133;" f addDepth src/Picture/Base.hs 133;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 37;" f
addDoorToggleTerminal src/Dodge/Room/Warning.hs 33;" f
addDoorWall src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 53;" f addDoorWall src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 53;" f
addEdges src/Dodge/Path.hs 122;" f addEdges src/Dodge/Path.hs 122;" f
addGib4 src/Dodge/Prop/Gib.hs 51;" f addGib4 src/Dodge/Prop/Gib.hs 51;" f
@@ -2605,7 +2605,7 @@ addSideEffect src/Dodge/Concurrent.hs 29;" f
addSouthPillars src/Dodge/Room/LongDoor.hs 89;" f addSouthPillars src/Dodge/Room/LongDoor.hs 89;" f
addTermSignal src/Dodge/Event/Input.hs 31;" f addTermSignal src/Dodge/Event/Input.hs 31;" f
addToTrunk src/TreeHelp.hs 156;" f addToTrunk src/TreeHelp.hs 156;" f
addWarningTerminal src/Dodge/Room/Warning.hs 32;" f addWarningTerminal src/Dodge/Room/Warning.hs 54;" f
addZ src/Geometry/Vector3D.hs 89;" f addZ src/Geometry/Vector3D.hs 89;" f
adjustIMZone src/Dodge/Base.hs 81;" f adjustIMZone src/Dodge/Base.hs 81;" f
advanceScrollAmount src/Dodge/Update.hs 433;" f advanceScrollAmount src/Dodge/Update.hs 433;" f
@@ -2629,7 +2629,7 @@ alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 129;" f anRoom src/Dodge/Floor.hs 130;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f
andOrRegex src/Dodge/DisplayInventory.hs 78;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f
@@ -2637,7 +2637,7 @@ angleBetween src/Geometry.hs 161;" f
angleVV src/Geometry/Vector.hs 57;" f angleVV src/Geometry/Vector.hs 57;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 67;" f
anythingHitCirc src/Dodge/Base/Collide.hs 338;" f anythingHitCirc src/Dodge/Base/Collide.hs 338;" f
applyCME src/Dodge/HeldUse.hs 367;" f applyCME src/Dodge/HeldUse.hs 367;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f
@@ -2682,11 +2682,11 @@ arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 13;" f assignHotkey src/Dodge/AssignHotkey.hs 13;" f
assignPushDoors src/Dodge/LevelGen.hs 43;" f assignPushDoors src/Dodge/LevelGen.hs 43;" f
atFstLnkOut src/Dodge/PlacementSpot.hs 211;" f atFstLnkOut src/Dodge/PlacementSpot.hs 212;" f
atFstLnkOutShiftBy src/Dodge/PlacementSpot.hs 226;" f atFstLnkOutShiftBy src/Dodge/PlacementSpot.hs 227;" f
atFstLnkOutShiftInward src/Dodge/PlacementSpot.hs 229;" f atFstLnkOutShiftInward src/Dodge/PlacementSpot.hs 230;" f
atNthLnkOutShiftBy src/Dodge/PlacementSpot.hs 214;" f atNthLnkOutShiftBy src/Dodge/PlacementSpot.hs 215;" f
atNthLnkOutShiftInward src/Dodge/PlacementSpot.hs 232;" f atNthLnkOutShiftInward src/Dodge/PlacementSpot.hs 233;" f
attachBranch src/Dodge/Tree/Compose.hs 83;" f attachBranch src/Dodge/Tree/Compose.hs 83;" f
attachInfo src/Dodge/Item/Info.hs 58;" f attachInfo src/Dodge/Item/Info.hs 58;" f
attachList' src/Dodge/Tree/Compose.hs 80;" f attachList' src/Dodge/Tree/Compose.hs 80;" f
@@ -3871,7 +3871,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f
insertWithNewKeys src/IntMapHelp.hs 70;" f insertWithNewKeys src/IntMapHelp.hs 70;" f
intAnno src/Dodge/Floor.hs 123;" f intAnno src/Dodge/Floor.hs 124;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
interpWith src/Dodge/Creature/Boid.hs 11;" f interpWith src/Dodge/Creature/Boid.hs 11;" f
intersectCircSeg src/Geometry/Intersect.hs 335;" f intersectCircSeg src/Geometry/Intersect.hs 335;" f
@@ -3932,7 +3932,7 @@ isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 74;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f
isElectrical src/Dodge/Machine/Update.hs 80;" f isElectrical src/Dodge/Machine/Update.hs 80;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 188;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 188;" f
isInLnk src/Dodge/PlacementSpot.hs 160;" f isInLnk src/Dodge/PlacementSpot.hs 161;" f
isJust' src/MaybeHelp.hs 29;" f isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f isLHS src/Geometry/LHS.hs 8;" f
isLeftOf src/Geometry.hs 202;" f isLeftOf src/Geometry.hs 202;" f
@@ -3940,14 +3940,14 @@ isLeftOfA src/Geometry.hs 196;" f
isNHS src/Geometry/Intersect.hs 51;" f isNHS src/Geometry/Intersect.hs 51;" f
isNothing' src/MaybeHelp.hs 33;" f isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f isOnSeg src/Geometry.hs 240;" f
isOutLnk src/Dodge/PlacementSpot.hs 164;" f isOutLnk src/Dodge/PlacementSpot.hs 165;" f
isOverTerminalScreen src/Dodge/Update.hs 414;" f isOverTerminalScreen src/Dodge/Update.hs 414;" f
isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f
isRHS src/Geometry/LHS.hs 24;" f isRHS src/Geometry/LHS.hs 24;" f
isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f isUnusedLnk src/Dodge/PlacementSpot.hs 62;" f
isUnusedLnkType src/Dodge/PlacementSpot.hs 186;" f isUnusedLnkType src/Dodge/PlacementSpot.hs 187;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 172;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 173;" f
isValidCommand src/Dodge/Debug/Terminal.hs 131;" f isValidCommand src/Dodge/Debug/Terminal.hs 131;" f
isVowel src/StringHelp.hs 8;" f isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 317;" f isWalkable src/Dodge/Base/Collide.hs 317;" f
@@ -4071,7 +4071,7 @@ lineCol src/Picture/Base.hs 230;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f
lineOrth src/Dodge/Creature/Boid.hs 126;" f lineOrth src/Dodge/Creature/Boid.hs 126;" f
lineOutputTerminal src/Dodge/Room/Warning.hs 48;" f lineOutputTerminal src/Dodge/Room/Warning.hs 57;" f
lineSplit src/Justify.hs 26;" f lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 234;" f lineThick src/Picture/Base.hs 234;" f
lineUp src/Dodge/Creature/Boid.hs 148;" f lineUp src/Dodge/Creature/Boid.hs 148;" f
@@ -4310,7 +4310,8 @@ moveProjectile src/Dodge/Projectile/Update.hs 262;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 248;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 248;" f
moveToSideFirstOutLink src/Dodge/Room/Warning.hs 51;" f moveToSideFirstOutLink src/Dodge/Room/Warning.hs 74;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 60;" f
moveWall src/Dodge/Wall/Move.hs 29;" f moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallID src/Dodge/Wall/Move.hs 24;" f
moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f
@@ -4357,6 +4358,7 @@ newSounds src/Dodge/Creature/Perception.hs 171;" f
newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f
nextArc src/Dodge/Tesla.hs 61;" f nextArc src/Dodge/Tesla.hs 61;" f
nextInSectionSS src/Dodge/SelectionSections.hs 36;" f nextInSectionSS src/Dodge/SelectionSections.hs 36;" f
nextLayoutInt src/Dodge/Annotation/Data.hs 39;" f
noPic src/ShapePicture.hs 25;" f noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f
@@ -4463,6 +4465,7 @@ picMap src/Picture/Base.hs 67;" f
pickUpItem src/Dodge/Inventory/Add.hs 107;" f pickUpItem src/Dodge/Inventory/Add.hs 107;" f
pickUpItemAt src/Dodge/Inventory/Add.hs 113;" f pickUpItemAt src/Dodge/Inventory/Add.hs 113;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f
pickupTut src/Dodge/Room/Tutorial.hs 56;" f
pincerP src/Dodge/Creature/Boid.hs 61;" f pincerP src/Dodge/Creature/Boid.hs 61;" f
pincerP' src/Dodge/Creature/Boid.hs 94;" f pincerP' src/Dodge/Creature/Boid.hs 94;" f
pincerP'' src/Dodge/Creature/Boid.hs 104;" f pincerP'' src/Dodge/Creature/Boid.hs 104;" f
@@ -4636,9 +4639,9 @@ psPt src/Dodge/LevelGen/PlacementHelper.hs 24;" f
psPtCont src/Dodge/LevelGen/PlacementHelper.hs 18;" f psPtCont src/Dodge/LevelGen/PlacementHelper.hs 18;" f
psPtJpl src/Dodge/LevelGen/PlacementHelper.hs 12;" f psPtJpl src/Dodge/LevelGen/PlacementHelper.hs 12;" f
psPtPl src/Dodge/LevelGen/PlacementHelper.hs 9;" f psPtPl src/Dodge/LevelGen/PlacementHelper.hs 9;" f
psRandRanges src/Dodge/PlacementSpot.hs 249;" f psRandRanges src/Dodge/PlacementSpot.hs 250;" f
psj src/Dodge/LevelGen/PlacementHelper.hs 70;" f psj src/Dodge/LevelGen/PlacementHelper.hs 70;" f
psposAddLabel src/Dodge/PlacementSpot.hs 69;" f psposAddLabel src/Dodge/PlacementSpot.hs 70;" f
pt0 src/Dodge/LevelGen/PlacementHelper.hs 54;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 54;" f
ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f
pulseChecker src/Dodge/Item/Equipment.hs 103;" f pulseChecker src/Dodge/Item/Equipment.hs 103;" f
@@ -4689,7 +4692,7 @@ radBounds src/Dodge/Room/Foreground.hs 154;" f
radToDeg src/Geometry/Vector.hs 122;" f radToDeg src/Geometry/Vector.hs 122;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
randDirPS src/Dodge/PlacementSpot.hs 56;" f randDirPS src/Dodge/PlacementSpot.hs 57;" f
randDirSpark src/Dodge/Spark.hs 55;" f randDirSpark src/Dodge/Spark.hs 55;" f
randEdgeTank src/Dodge/Room/Tanks.hs 33;" f randEdgeTank src/Dodge/Room/Tanks.hs 33;" f
randEdgeTanks src/Dodge/Room/Tanks.hs 63;" f randEdgeTanks src/Dodge/Room/Tanks.hs 63;" f
@@ -4771,7 +4774,7 @@ renderShadows src/Render.hs 117;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 162;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 162;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f
resetPLUse src/Dodge/PlacementSpot.hs 96;" f resetPLUse src/Dodge/PlacementSpot.hs 97;" f
resetStride src/Dodge/Creature/State/WalkCycle.hs 24;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 24;" f
resetTerminal src/Dodge/WorldEffect.hs 101;" f resetTerminal src/Dodge/WorldEffect.hs 101;" f
resizeFBOTO src/Framebuffer/Update.hs 203;" f resizeFBOTO src/Framebuffer/Update.hs 203;" f
@@ -4858,13 +4861,13 @@ rotateXY src/Polyhedra.hs 31;" f
roundPoint2 src/Geometry/Intersect.hs 246;" f roundPoint2 src/Geometry/Intersect.hs 246;" f
roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f
roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f
rpIsOffPath src/Dodge/PlacementSpot.hs 80;" f rpIsOffPath src/Dodge/PlacementSpot.hs 81;" f
rpIsOnPath src/Dodge/PlacementSpot.hs 75;" f rpIsOnPath src/Dodge/PlacementSpot.hs 76;" f
rpOffPathFromEdge src/Dodge/PlacementSpot.hs 85;" f rpOffPathFromEdge src/Dodge/PlacementSpot.hs 86;" f
rpOnPathFromEdge src/Dodge/PlacementSpot.hs 91;" f rpOnPathFromEdge src/Dodge/PlacementSpot.hs 92;" f
rprBool src/Dodge/PlacementSpot.hs 72;" f rprBool src/Dodge/PlacementSpot.hs 73;" f
rprBoolShift src/Dodge/PlacementSpot.hs 111;" f rprBoolShift src/Dodge/PlacementSpot.hs 112;" f
rprShift src/Dodge/PlacementSpot.hs 102;" f rprShift src/Dodge/PlacementSpot.hs 103;" f
rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f
runPastStart src/Dodge/Room/Start.hs 72;" f runPastStart src/Dodge/Room/Start.hs 72;" f
runStateWorld src/Dodge/Randify.hs 17;" f runStateWorld src/Dodge/Randify.hs 17;" f
@@ -4950,8 +4953,8 @@ setChannelPos src/Sound.hs 150;" f
setClickWorldPos src/Dodge/Update.hs 106;" f setClickWorldPos src/Dodge/Update.hs 106;" f
setClusterID src/Dodge/Combine/Graph.hs 116;" f setClusterID src/Dodge/Combine/Graph.hs 116;" f
setDepth src/Picture/Base.hs 128;" f setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 49;" f setDirPS src/Dodge/PlacementSpot.hs 50;" f
setFallback src/Dodge/PlacementSpot.hs 127;" f setFallback src/Dodge/PlacementSpot.hs 128;" f
setInLinks src/Dodge/RoomLink.hs 51;" f setInLinks src/Dodge/RoomLink.hs 51;" f
setInLinksByType src/Dodge/RoomLink.hs 54;" f setInLinksByType src/Dodge/RoomLink.hs 54;" f
setInLinksPD src/Dodge/RoomLink.hs 74;" f setInLinksPD src/Dodge/RoomLink.hs 74;" f
@@ -5015,11 +5018,11 @@ shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" f shellModule src/Dodge/Item/Scope.hs 123;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f
shiftByV2 src/Dodge/PlacementSpot.hs 239;" f shiftByV2 src/Dodge/PlacementSpot.hs 240;" f
shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f
shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f
shiftInBy src/Dodge/PlacementSpot.hs 236;" f shiftInBy src/Dodge/PlacementSpot.hs 237;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 299;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 299;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 338;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 338;" f
shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 332;" f shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 332;" f
@@ -5323,7 +5326,6 @@ toV3 src/Geometry/Data.hs 57;" f
toV4 src/Geometry/Data.hs 60;" f toV4 src/Geometry/Data.hs 60;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 318;" f toggleCombineInv src/Dodge/DisplayInventory.hs 318;" f
toggleCommands src/Dodge/Terminal.hs 93;" f toggleCommands src/Dodge/Terminal.hs 93;" f
toggleDoorTest src/Dodge/Room/Tutorial.hs 67;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 65;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 65;" f
toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 103;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 103;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
@@ -5415,11 +5417,11 @@ tryUseParent src/Dodge/Creature/State.hs 143;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 35;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 35;" f tutAnoTree src/Dodge/Room/Tutorial.hs 40;" f
tutRezBox src/Dodge/Room/Tutorial.hs 48;" f tutRezBox src/Dodge/Room/Tutorial.hs 77;" f
tutRoomTree src/Dodge/Floor.hs 26;" f tutRoomTree src/Dodge/Floor.hs 26;" f
tutRooms src/Dodge/Room/Tutorial.hs 43;" f tutRooms src/Dodge/Room/Tutorial.hs 63;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 64;" f tutorialMessage1 src/Dodge/Room/Tutorial.hs 93;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f
@@ -5427,7 +5429,7 @@ twists src/Dodge/Creature/Test.hs 109;" f
twoFlat src/Dodge/Creature/Test.hs 106;" f twoFlat src/Dodge/Creature/Test.hs 106;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 80;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 80;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f
twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f
twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f
@@ -5446,10 +5448,10 @@ unsafeSwapKeys src/IntMapHelp.hs 74;" f
unshadowBlock src/Dodge/Block.hs 39;" f unshadowBlock src/Dodge/Block.hs 39;" f
untilJust src/MonadHelp.hs 7;" f untilJust src/MonadHelp.hs 7;" f
untilJustCount src/MonadHelp.hs 14;" f untilJustCount src/MonadHelp.hs 14;" f
unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 133;" f unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 134;" f
unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 140;" f
unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 122;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 123;" f
unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 192;" f
updateAimPos src/Dodge/Update.hs 321;" f updateAimPos src/Dodge/Update.hs 321;" f
updateAllNodes src/TreeHelp.hs 85;" f updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla.hs 44;" f
@@ -5590,19 +5592,19 @@ useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1446;" f useInventoryPath src/Dodge/HeldUse.hs 1446;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 245;" f
useLoadedAmmo src/Dodge/HeldUse.hs 719;" f useLoadedAmmo src/Dodge/HeldUse.hs 719;" f
useMagShield src/Dodge/Euse.hs 27;" f useMagShield src/Dodge/Euse.hs 27;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1406;" f useRewindGun src/Dodge/HeldUse.hs 1406;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosCond src/Dodge/PlacementSpot.hs 179;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 182;" f
useStopWatch src/Dodge/HeldUse.hs 1387;" f useStopWatch src/Dodge/HeldUse.hs 1387;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1395;" f useTimeScrollGun src/Dodge/HeldUse.hs 1395;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 170;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 197;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 204;" f
v2z src/Geometry/Vector3D.hs 93;" f v2z src/Geometry/Vector3D.hs 93;" f
vCen3 src/Geometry/Vector3D.hs 115;" f vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 153;" f vInverse src/Geometry/Vector.hs 153;" f
@@ -5643,7 +5645,7 @@ wallToSurface src/Dodge/Base/Collide.hs 172;" f
wallsFromRooms src/Dodge/Layout.hs 146;" f wallsFromRooms src/Dodge/Layout.hs 146;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1440;" f warmupSound src/Dodge/HeldUse.hs 1440;" f
warningRooms src/Dodge/Room/Warning.hs 24;" f warningRooms src/Dodge/Room/Warning.hs 25;" f
wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f
wasdDir src/Dodge/WASD.hs 17;" f wasdDir src/Dodge/WASD.hs 17;" f
wasdM src/Dodge/WASD.hs 9;" f wasdM src/Dodge/WASD.hs 9;" f
@@ -5657,6 +5659,7 @@ weaponBetweenPillars src/Dodge/Room/Room.hs 191;" f
weaponEmptyRoom src/Dodge/Room/Room.hs 137;" f weaponEmptyRoom src/Dodge/Room/Room.hs 137;" f
weaponLongCorridor src/Dodge/Room/Room.hs 216;" f weaponLongCorridor src/Dodge/Room/Room.hs 216;" f
weaponRoom src/Dodge/Room/Room.hs 249;" f weaponRoom src/Dodge/Room/Room.hs 249;" f
weaponTut src/Dodge/Room/Tutorial.hs 50;" f
weaponUnderCrits src/Dodge/Room/Room.hs 154;" f weaponUnderCrits src/Dodge/Room/Room.hs 154;" f
wedgeGeom src/Dodge/Base.hs 42;" f wedgeGeom src/Dodge/Base.hs 42;" f
wedgeOfThickness src/Dodge/Picture.hs 9;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f