Start creating explicit tutorial map

This commit is contained in:
2025-08-21 16:31:04 +01:00
parent 21460ceaa8
commit befe24e038
15 changed files with 272 additions and 161 deletions
+17 -1
View File
@@ -1,4 +1,20 @@
Seed: 7114951007332849727Layout with room names: Seed: 7114951007332849727
Room layout (compact):
0,1,2,3,4,5,6
|
+- 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
| |
| +- 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
Layout with room names:
rezBox-0 rezBox-0
| |
autoDoor-1 autoDoor-1
+2 -2
View File
@@ -11,7 +11,7 @@ Seed: 7114951007332849727
| |
5:corDoor 5:corDoor
| |
6:SingleRoom 6:sdr
| |
7:corDoor 7:corDoor
| |
@@ -111,7 +111,7 @@ Seed: 7114951007332849727
| |
5:0:1:Corridor 5:0:1:Corridor
6:0:SingleRoom 6:0:sdr
6:0:0:autoRect 6:0:0:autoRect
+20 -20
View File
@@ -1,37 +1,37 @@
--{-# LANGUAGE TupleSections #-} --{-# LANGUAGE TupleSections #-}
{- | Annotating tree structures with desired properties for rooms. -}
module Dodge.Annotation
( module Dodge.Annotation.Data
, module Dodge.Annotation
) where
import Dodge.Cleat
import RandomHelp
import Dodge.Tree
import Dodge.Data.GenWorld
import Dodge.Annotation.Data
import LensHelp
--import Control.Lens -- | Annotating tree structures with desired properties for rooms.
module Dodge.Annotation (
module Dodge.Annotation.Data,
module Dodge.Annotation,
) where
import Data.Maybe import Data.Maybe
import Dodge.Annotation.Data
import Dodge.Cleat
--import Dodge.Data.GenWorld
import Dodge.Tree
import LensHelp
import RandomHelp
annoToRoomTree :: Annotation -> State (StdGen,Int) MTRS annoToRoomTree :: Annotation -> State (StdGen, Int) MTRS
annoToRoomTree an = case an of annoToRoomTree an = case an of
AnTree t -> zoom _1 t AnTree t -> zoom _1 t
AnRoom r -> MTree "SingleRoom" . NodeTree . pure . (rmClusterStatus . csLinks . at OnwardCluster ?~ ()) <$> zoom _1 r <*> return [] -- AnRoom r -> MTree "SingleRoom" . NodeTree . pure . (rmClusterStatus . csLinks . at OnwardCluster ?~ ()) <$> zoom _1 r <*> return []
OnwardList ans -> do OnwardList ans -> do
mts <- mapM annoToRoomTree ans mts <- mapM annoToRoomTree ans
return $ foldr1 attachOnward' mts return $ foldr1 attachOnward' mts
IntAnno f -> do IntAnno f -> do
(g,i) <- get (g, i) <- get
put (g,i+1) put (g, i + 1)
annoToRoomTree (f i) annoToRoomTree (f i)
ModifyTree f a -> f <$> annoToRoomTree a
PassthroughLockKeyLists ls ks i -> zoom _1 $ do PassthroughLockKeyLists ls ks i -> zoom _1 $ do
(functionlockroom,randomitemidentity) <- takeOne ls (functionlockroom, randomitemidentity) <- takeOne ls
lr <- functionlockroom i lr <- functionlockroom i
ii <- randomitemidentity ii <- randomitemidentity
keyroom <- fromJust $ lookup ii ks keyroom <- fromJust $ lookup ii ks
return $ MTree ("PassthroughLockKeyLists-"++show ii) return $
MTree
("PassthroughLockKeyLists-" ++ show ii)
(NodeMTree $ MTree "RassThroughLockKeyLists" (NodeMTree lr) [MBranch (toLabel i) keyroom]) (NodeMTree $ MTree "RassThroughLockKeyLists" (NodeMTree lr) [MBranch (toLabel i) keyroom])
[] []
+2 -3
View File
@@ -12,10 +12,9 @@ import System.Random
type MTRS = MetaTree Room String type MTRS = MetaTree Room String
data Annotation data Annotation
= ModifyTree (MetaTree Room String -> MetaTree Room String) Annotation = OnwardList [Annotation]
| OnwardList [Annotation]
| IntAnno (Int -> Annotation) | IntAnno (Int -> Annotation)
| AnRoom (State StdGen Room) -- | AnRoom (State StdGen Room)
| AnTree (State StdGen (MetaTree Room String)) | AnTree (State StdGen (MetaTree Room String))
| PassthroughLockKeyLists | PassthroughLockKeyLists
[(Int -> State StdGen (MetaTree Room String), State StdGen ItemType)] [(Int -> State StdGen (MetaTree Room String), State StdGen ItemType)]
+1 -4
View File
@@ -4,10 +4,7 @@ import LensHelp
-- | generalised way of putting a new item into a lensed intmap, returning the -- | generalised way of putting a new item into a lensed intmap, returning the
-- new index as well -- new index as well
plNewID :: ALens' b (IM.IntMap a) plNewID :: ALens' b (IM.IntMap a) -> a -> b -> (Int,b)
-> a
-> b
-> (Int,b)
plNewID l x w = (i,w & l #%~ IM.insert i x) plNewID l x w = (i,w & l #%~ IM.insert i x)
where where
i = IM.newKey $ w ^# l i = IM.newKey $ w ^# l
+9 -1
View File
@@ -1,8 +1,10 @@
-- | The tree of rooms that make up a level. -- | The tree of rooms that make up a level.
module Dodge.Floor ( module Dodge.Floor (
initialRoomTree, initialRoomTree,
tutRoomTree,
) where ) where
import Dodge.Room.Tutorial
import Data.List (intersperse) import Data.List (intersperse)
import Dodge.Annotation import Dodge.Annotation
import Dodge.Cleat import Dodge.Cleat
@@ -20,6 +22,9 @@ initialRoomTree :: State (StdGen, Int) (MetaTree Room String)
initialRoomTree = annoToRoomTree initialAnoTree initialRoomTree = annoToRoomTree initialAnoTree
--initialRoomTree = annoToRoomTree startWorldTreeTest --initialRoomTree = annoToRoomTree startWorldTreeTest
tutRoomTree :: State (StdGen, Int) (MetaTree Room String)
tutRoomTree = annoToRoomTree tutAnoTree
--startWorldTreeTest :: Annotation --startWorldTreeTest :: Annotation
--startWorldTreeTest = --startWorldTreeTest =
-- OnwardList $ -- OnwardList $
@@ -43,7 +48,7 @@ initialAnoTree =
-- , AnRoom $ tanksRoom [] [] -- , AnRoom $ tanksRoom [] []
-- , AnRoom $ roomCCrits 0 -- , AnRoom $ roomCCrits 0
-- , AnRoom $ return airlock0 -- , AnRoom $ return airlock0
AnRoom slowDoorRoom anRoom slowDoorRoom
, -- , AnRoom $ roomCCrits 10 , -- , AnRoom $ roomCCrits 10
-- , AnTree firstBreather -- , AnTree firstBreather
-- , AnTree $ telRoomLev 1 >>= rToOnward "telRoomLev" . pure . cleatOnward -- , AnTree $ telRoomLev 1 >>= rToOnward "telRoomLev" . pure . cleatOnward
@@ -113,3 +118,6 @@ initialAnoTree =
-- ,[Corridor] -- ,[Corridor]
AnTree $ randomFourCornerRoom [] >>= rToOnward "randomFourCornerRoom" . pure . cleatOnward AnTree $ randomFourCornerRoom [] >>= rToOnward "randomFourCornerRoom" . pure . cleatOnward
] ]
anRoom :: StateT StdGen Identity Room -> Annotation
anRoom t = AnTree $ tToBTree "anRoom" . return . cleatOnward <$> t
+5 -4
View File
@@ -50,16 +50,17 @@ 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 (g, 0) let treecluster = evalState tutRoomTree (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:"
mapM_ (putStrLnAppend "log/treeCluster" . smallDrawTree . fmap showIntsString) labts mapM_ (putStrLnAppend "log/treeCluster" . smallDrawTree . fmap showIntsString) labts
let tc = composeTree treecluster let tc = composeTree treecluster
let rmtree = inorderNumberTree tc let rmtree = inorderNumberTree tc
putStrLn "Room layout (compact): " appendFile "log/aGeneratedRoomLayout" ("Seed: " ++ show seed ++ "\n")
putStrLn $ compactDrawTree $ fmap (show . snd) rmtree putStrLnAppend "log/aGeneratedRoomLayout" "Room layout (compact): "
putStrLnAppend "log/aGeneratedRoomLayout" $ compactDrawTree $ fmap (show . snd) rmtree
let nameshow (r, rid) = _rmName r ++ "-" ++ show rid let nameshow (r, rid) = _rmName r ++ "-" ++ show rid
appendFile "log/aGeneratedRoomLayout" ("Seed: " ++ show seed)
putStrLnAppend "log/aGeneratedRoomLayout" "Layout with room names:" putStrLnAppend "log/aGeneratedRoomLayout" "Layout with room names:"
putStrLnAppend "log/aGeneratedRoomLayout" $ smallDrawTree $ fmap nameshow rmtree putStrLnAppend "log/aGeneratedRoomLayout" $ smallDrawTree $ fmap nameshow rmtree
mrs <- positionRoomsFromTree rmtree mrs <- positionRoomsFromTree rmtree
+22 -3
View File
@@ -1,9 +1,11 @@
module Dodge.Placement.Instance.Terminal ( module Dodge.Placement.Instance.Terminal (
putMessageTerminal, putMessageTerminal,
putImmediateMessageTerminal,
putTerminal, putTerminal,
terminalColor, terminalColor,
) where ) where
import Dodge.WorldEffect
import Color import Color
import Data.Maybe import Data.Maybe
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
@@ -13,8 +15,14 @@ import Dodge.SoundLogic
import Geometry import Geometry
import LensHelp import LensHelp
putTerminal :: Color -> Machine -> Terminal -> Placement putTerminalImediateAccess :: Color -> Machine -> Terminal -> Placement
putTerminal col mc tm = putTerminalImediateAccess = putTerminalFull f
where
f tmpl _ _ = Just $ sps0 $ PutWorldUpdate $ const $ accessTerminal (tmpl ^?! plMID . _Just)
putTerminalFull ::(Placement -> Placement -> Placement -> Maybe Placement) -> Color -> Machine -> Terminal ->
Placement
putTerminalFull f col mc tm =
ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $ ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $
\tmpl -> Just $ \tmpl -> Just $
ps0PushPS (PutButton defaultButton) $ ps0PushPS (PutButton defaultButton) $
@@ -27,7 +35,7 @@ putTerminal col mc tm =
) )
defaultSensorWall defaultSensorWall
) )
$ \mcpl -> Just $ sps0 $ PutWorldUpdate $ const (setids tmpl btpl mcpl) $ \mcpl -> Just $ pt0 (PutWorldUpdate $ const (setids tmpl btpl mcpl)) (\_ -> f tmpl btpl mcpl)
where where
setids tmpl btpl mcpl w = setids tmpl btpl mcpl w =
w w
@@ -40,6 +48,9 @@ putTerminal col mc tm =
btid = fromJust (_plMID btpl) btid = fromJust (_plMID btpl)
mcid = fromJust (_plMID mcpl) mcid = fromJust (_plMID mcpl)
putTerminal :: Color -> Machine -> Terminal -> Placement
putTerminal = putTerminalFull (\_ _ _ -> Nothing)
putMessageTerminal :: Color -> Terminal -> Placement putMessageTerminal :: Color -> Terminal -> Placement
putMessageTerminal col = putMessageTerminal col =
putTerminal col $ putTerminal col $
@@ -48,5 +59,13 @@ putMessageTerminal col =
& mcType .~ McTerminal & mcType .~ McTerminal
& mcHP .~ 100 & mcHP .~ 100
putImmediateMessageTerminal :: Color -> Terminal -> Placement
putImmediateMessageTerminal col =
putTerminalImediateAccess col $
defaultMachine
& mcColor .~ col
& mcType .~ McTerminal
& mcHP .~ 100
terminalColor :: Color terminalColor :: Color
terminalColor = dark magenta terminalColor = dark magenta
+1 -1
View File
@@ -380,7 +380,7 @@ drawTerminalDisplay cfig tm =
TerminalTextInput s -> TerminalTextInput s ->
(++ [(getPromptTM ++ s ++ [cFilledRect], white)]) (++ [(getPromptTM ++ s ++ [cFilledRect], white)])
TerminalPressTo s -> TerminalPressTo s ->
(++ [(getPromptTM ++ "PRESS TO " ++ s, white)]) (++ [("<" ++ s ++ ">", white)])
-- | hasfoc = clockCycle 10 (V.fromList [[cFilledRect] , "."]) w -- | hasfoc = clockCycle 10 (V.fromList [[cFilledRect] , "."]) w
+38 -33
View File
@@ -1,11 +1,16 @@
module Dodge.Room.RezBox where module Dodge.Room.RezBox (
rezBox,
rezBoxesWpCrit,
rezColor,
rezBoxes,
rezBox',
) where
import Dodge.Default.Terminal
import Dodge.Terminal
import Control.Monad import Control.Monad
import qualified Data.Set as S import qualified Data.Set as S
import Dodge.Cleat import Dodge.Cleat
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
import Dodge.Default.Terminal
import Dodge.Item.Random import Dodge.Item.Random
import Dodge.LevelGen.PlacementHelper import Dodge.LevelGen.PlacementHelper
import Dodge.LightSource import Dodge.LightSource
@@ -16,6 +21,7 @@ import Dodge.Room.Link
import Dodge.Room.Procedural import Dodge.Room.Procedural
import Dodge.Room.RoadBlock import Dodge.Room.RoadBlock
import Dodge.RoomLink import Dodge.RoomLink
import Dodge.Terminal
import Dodge.Tree import Dodge.Tree
import Geometry import Geometry
import LensHelp import LensHelp
@@ -25,7 +31,8 @@ import RandomHelp
rezBox :: LightSource -> Room rezBox :: LightSource -> Room
rezBox ls = rezBox ls =
roomRect 40 60 1 1 roomRect 40 60 1 1
& rmPmnts .~ [sPS (V2 20 1) 0 $ PutLS ls & rmPmnts
.~ [ sPS (V2 20 1) 0 $ PutLS ls
, putMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal) , putMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal)
& plSpot .~ PS (V2 20 0) 0 & plSpot .~ PS (V2 20 0) 0
] ]
@@ -35,8 +42,6 @@ rezBox ls =
where where
s = "RESPAWN POINT SET AT THIS LOCATION." s = "RESPAWN POINT SET AT THIS LOCATION."
tutorialMessage1 :: String
tutorialMessage1 = "SYNTHESIS SUCCESSFUL. MOVEMENT TEST 1 INITIATED [WASD]. INTERACTION TEST 1 IN QUEUE [SPACE]."
rezBox' :: RandomGen g => State g (MetaTree Room String) rezBox' :: RandomGen g => State g (MetaTree Room String)
rezBox' = do rezBox' = do
@@ -48,39 +53,39 @@ rezBox' = do
, cleatOnward door , cleatOnward door
] ]
rezBoxesWp :: RandomGen g => State g (Tree Room) --rezBoxesWp :: RandomGen g => State g (Tree Room)
rezBoxesWp = do --rezBoxesWp = do
w <- state $ randomR (100, 400) -- w <- state $ randomR (100, 400)
h <- state $ randomR (40, 40) -- h <- state $ randomR (40, 40)
theweapon <- randBlockBreakWeapon -- theweapon <- randBlockBreakWeapon
thecol <- rezColor -- thecol <- rezColor
let aroom = rezInvBox thecol -- & rmConnectsTo .~ S.singleton (OnEdge North) -- let aroom = rezInvBox thecol -- & rmConnectsTo .~ S.singleton (OnEdge North)
let isnorth = S.member (OnEdge North) . _rlType -- let isnorth = S.member (OnEdge North) . _rlType
centralRoom <- -- centralRoom <-
shuffleLinks $ -- shuffleLinks $
(roomRectAutoLinks w h){_rmPmnts = []} -- (roomRectAutoLinks w h){_rmPmnts = []}
& rmLinks %~ setLinkType InLink isnorth -- & rmLinks %~ setLinkType InLink isnorth
onwardpassage <- shootOutPassage -- onwardpassage <- shootOutPassage
let n = length $ getLinksOfType (OnEdge North) $ _rmLinks centralRoom -- let n = length $ getLinksOfType (OnEdge North) $ _rmLinks centralRoom
let rezrooms = -- let rezrooms =
map adddoor $ -- map adddoor $
wpAdd theweapon aroom : replicate (n -2) aroom -- wpAdd theweapon aroom : replicate (n -2) aroom
return $ -- return $
treeFromTrunk [rezBox thecol, door] $ -- treeFromTrunk [rezBox thecol, door] $
Node centralRoom (rezrooms ++ [onwardpassage]) -- Node centralRoom (rezrooms ++ [onwardpassage])
where -- where
adddoor rm = treeFromPost [connectsToNorth door] rm -- adddoor rm = treeFromPost [connectsToNorth door] rm
connectsToNorth = rmConnectsTo .~ S.member (OnEdge North) -- connectsToNorth = rmConnectsTo .~ S.member (OnEdge North)
maybeBlockedPassage :: RandomGen g => State g (Tree Room) maybeBlockedPassage :: RandomGen g => State g (Tree Room)
maybeBlockedPassage = maybeBlockedPassage =
fmap (pure . cleatOnward) $ fmap (pure . cleatOnward) $
join $ takeOne [return corridor, blockedCorridorCloseBlocks] join $ takeOne [return corridor, blockedCorridorCloseBlocks]
shootOutPassage :: RandomGen g => State g (Tree Room) --shootOutPassage :: RandomGen g => State g (Tree Room)
shootOutPassage = --shootOutPassage =
fmap (pure . cleatOnward) $ -- fmap (pure . cleatOnward) $
join $ takeOne [blockedCorridorCloseBlocks] -- join $ takeOne [blockedCorridorCloseBlocks]
rezBoxesWpCrit :: RandomGen g => State g (Tree Room) rezBoxesWpCrit :: RandomGen g => State g (Tree Room)
rezBoxesWpCrit = do rezBoxesWpCrit = do
+2 -1
View File
@@ -5,6 +5,7 @@ module Dodge.Room.Start (
randomChallenges, randomChallenges,
) where ) where
import Dodge.Room.RezBox
import Dodge.Item.Held.Cane import Dodge.Item.Held.Cane
import Dodge.Item.Held.Launcher import Dodge.Item.Held.Launcher
import Dodge.Cleat import Dodge.Cleat
@@ -14,7 +15,7 @@ import Dodge.Room.Containing
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.RezBox --import Dodge.Room.RezBox
import Dodge.Room.Room import Dodge.Room.Room
import Dodge.Room.RunPast import Dodge.Room.RunPast
import Dodge.Tree import Dodge.Tree
+68
View File
@@ -0,0 +1,68 @@
module Dodge.Room.Tutorial (tutAnoTree) where
import Dodge.Room.Room
import Dodge.Annotation.Data
import Dodge.Room.Link
import Dodge.Room.Ngon
import Dodge.Room.Door
import TreeHelp
import Dodge.Tree.Compose
import Dodge.Room.RezBox
--import Control.Monad
--import qualified Data.Set as S
--import Dodge.Cleat
import Dodge.Data.GenWorld
import Dodge.Default.Terminal
--import Dodge.Item.Random
import Dodge.LevelGen.PlacementHelper
--import Dodge.LightSource
import Dodge.Placement.Instance
--import Dodge.Room.Corridor
--import Dodge.Room.Door
--import Dodge.Room.Link
import Dodge.Room.Procedural
--import Dodge.Room.RoadBlock
import Dodge.RoomLink
import Dodge.Terminal
--import Dodge.Tree
import Geometry
import LensHelp
--import Padding
import RandomHelp
import Data.List (intersperse)
tutAnoTree :: Annotation
tutAnoTree = OnwardList $
intersperse
(AnTree corDoor)
[AnTree tutRooms]
tutRooms :: State StdGen (MetaTree Room String)
tutRooms = do
x <- tutRezBox
ys <- toggleDoorTest
return $ tToBTree "TutStartRez" $ treePost $ [x,door] <> ys
tutRezBox :: State StdGen Room
tutRezBox = do
ls <- rezColor
return $
roomRect 40 60 1 1
& rmPmnts
.~ [ sPS (V2 20 1) 0 $ PutLS ls
, putImmediateMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal)
& plSpot .~ PS (V2 20 0) 0
]
& restrictInLinks (\(V2 _ h, _) -> h < 1)
& restrictOutLinks (\(V2 _ h, _) -> h > 59)
& rmName .~ "tutRezBox"
where
s = tutorialMessage1
tutorialMessage1 :: String
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]
+2 -12
View File
@@ -9,7 +9,6 @@ module Dodge.Terminal (
sensorCommand, sensorCommand,
makeColorTermLine, makeColorTermLine,
makeTermPara, makeTermPara,
-- toggleCommand,
terminalReturnEffect, terminalReturnEffect,
getCommands, getCommands,
tabComplete, tabComplete,
@@ -59,7 +58,6 @@ getCommand :: World
-> Terminal -> TCom -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) -> Terminal -> TCom -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine])
getCommand w tm = \case getCommand w tm = \case
TCInfo x z -> PTE.singleton x (PTE.singleton "" (makeTermPara z)) TCInfo x z -> PTE.singleton x (PTE.singleton "" (makeTermPara z))
--TCBase -> helpCommand <> quitCommand <> toggleCommands tm
TCBase -> quitCommand <> toggleCommands tm TCBase -> quitCommand <> toggleCommands tm
TCDamageCommand -> damageCodeCommand w TCDamageCommand -> damageCodeCommand w
TCSensorInfo -> sensorCommand w tm TCSensorInfo -> sensorCommand w tm
@@ -95,7 +93,7 @@ sensorCommand w tm = PTE.singleton "SENSOR" $ fromMaybe mempty $ do
toggleCommands :: Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) toggleCommands :: Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine])
toggleCommands tm toggleCommands tm
| null ts = mempty | null ts = mempty
| otherwise = PTE.singleton "TOGGLE" $ PTE.fromList $ fmap f $ M.toList ts | otherwise = PTE.singleton "TOGGLE" $ PTE.fromList $ f <$> M.toList ts
where where
ts = tm ^. tmToggles ts = tm ^. tmToggles
f (s,x) = (s, f (s,x) = (s,
@@ -105,15 +103,6 @@ toggleCommands tm
(TmWdWdfromWdWd (WdWdNegateTrig $ x ^. ttTriggerID)) (TmWdWdfromWdWd (WdWdNegateTrig $ x ^. ttTriggerID))
]) ])
--helpCommand :: PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine])
--helpCommand = PTE.singleton "" (fmap makeTermPara helpStrings)
--
--helpStrings :: PTE.TrieMap Char String
--helpStrings =
-- PTE.fromList
-- [ ("", "THIS TERMINAL PROCESSES KEYBOARD INPUT. USE [RETURN] OR [LMB] TO REGISTER YOUR INPUT. AVAILABLE COMMANDS CAN BE SCROLLED THROUGH, HOLD [RMB] TO SCROLL THROUGH ARGUMENTS. USE [TAB] FOR AUTOCOMPLETE.")
-- ]
helpPara :: [TerminalLine] helpPara :: [TerminalLine]
helpPara = makeTermPara "THIS TERMINAL PROCESSES KEYBOARD INPUT. USE [RETURN] OR [LMB] TO REGISTER YOUR INPUT. AVAILABLE COMMANDS CAN BE SCROLLED THROUGH, HOLD [RMB] TO SCROLL THROUGH ARGUMENTS. USE [TAB] FOR AUTOCOMPLETE." helpPara = makeTermPara "THIS TERMINAL PROCESSES KEYBOARD INPUT. USE [RETURN] OR [LMB] TO REGISTER YOUR INPUT. AVAILABLE COMMANDS CAN BE SCROLLED THROUGH, HOLD [RMB] TO SCROLL THROUGH ARGUMENTS. USE [TAB] FOR AUTOCOMPLETE."
@@ -191,6 +180,7 @@ tabComplete' s' w tm = case PTE.lookup s $ getCommands w tm of
simpleTermMessage :: [String] -> Terminal simpleTermMessage :: [String] -> Terminal
simpleTermMessage strs = defaultTerminal & tmBootLines .~ map makeTermLine strs simpleTermMessage strs = defaultTerminal & tmBootLines .~ map makeTermLine strs
-- list available arguments on function input?
terminalReturnEffect :: Int -> World -> World terminalReturnEffect :: Int -> World -> World
terminalReturnEffect tmid w = fromMaybe w $ do terminalReturnEffect tmid w = fromMaybe w $ do
tm' <- w ^? cWorld . lWorld . terminals . ix tmid tm' <- w ^? cWorld . lWorld . terminals . ix tmid
+1 -1
View File
@@ -1,4 +1,4 @@
{-# LANGUAGE LambdaCase #-} --{-# LANGUAGE LambdaCase #-}
module Dodge.WorldEffect ( module Dodge.WorldEffect (
doWdWd, doWdWd,
+75 -68
View File
@@ -2953,12 +2953,12 @@ combineList src/Dodge/Combine.hs 20;" f
combineRooms src/Dodge/Room/Procedural.hs 152;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f
combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f
combineTree src/Dodge/Tree/Compose.hs 66;" f combineTree src/Dodge/Tree/Compose.hs 66;" f
commandColor src/Dodge/Terminal.hs 141;" f commandColor src/Dodge/Terminal.hs 130;" f
commonPrefix src/Dodge/Debug/Terminal.hs 146;" f commonPrefix src/Dodge/Debug/Terminal.hs 146;" f
comp src/Quaternion.hs 65;" f comp src/Quaternion.hs 65;" f
compactDraw src/Dodge/LevelGen.hs 91;" f compactDraw src/Dodge/LevelGen.hs 92;" f
compactDraw' src/Dodge/LevelGen.hs 102;" f compactDraw' src/Dodge/LevelGen.hs 103;" f
compactDrawTree src/Dodge/LevelGen.hs 85;" f compactDrawTree src/Dodge/LevelGen.hs 86;" f
compileAndCheckShader src/Shader/Compile.hs 277;" f compileAndCheckShader src/Shader/Compile.hs 277;" f
composeNode src/Dodge/Tree/Compose.hs 76;" f composeNode src/Dodge/Tree/Compose.hs 76;" f
composeTree src/Dodge/Tree/Compose.hs 46;" f composeTree src/Dodge/Tree/Compose.hs 46;" f
@@ -2967,8 +2967,8 @@ conEffects src/Dodge/Concurrent.hs 12;" f
conLDTToConDT src/Dodge/DoubleTree.hs 22;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f
concurrentIS src/Dodge/Update/Input/InGame.hs 281;" f concurrentIS src/Dodge/Update/Input/InGame.hs 281;" f
connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f
connectionBlurb src/Dodge/Terminal.hs 46;" f connectionBlurb src/Dodge/Terminal.hs 45;" f
connectionBlurbLines src/Dodge/Terminal.hs 38;" f connectionBlurbLines src/Dodge/Terminal.hs 37;" f
constructEdges src/Polyhedra.hs 34;" f constructEdges src/Polyhedra.hs 34;" f
constructEdgesList src/Polyhedra.hs 43;" f constructEdgesList src/Polyhedra.hs 43;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f
@@ -2989,7 +2989,7 @@ corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f corridorN src/Dodge/Room/Corridor.hs 52;" f
corridorWallN src/Dodge/Room/Corridor.hs 71;" f corridorWallN src/Dodge/Room/Corridor.hs 71;" f
crAdd src/Dodge/Room/RezBox.hs 110;" f crAdd src/Dodge/Room/RezBox.hs 115;" f
crAwayFromPost src/Dodge/Creature/Test.hs 82;" f crAwayFromPost src/Dodge/Creature/Test.hs 82;" f
crBlips src/Dodge/RadarSweep.hs 87;" f crBlips src/Dodge/RadarSweep.hs 87;" f
crCamouflage src/Dodge/Creature/Picture.hs 31;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f
@@ -3094,7 +3094,7 @@ dShadCol src/Dodge/Render/List.hs 215;" f
damMatSideEffect src/Dodge/Material/Damage.hs 13;" f damMatSideEffect src/Dodge/Material/Damage.hs 13;" f
damThingHitWith src/Dodge/Damage.hs 72;" f damThingHitWith src/Dodge/Damage.hs 72;" f
damToExpBarrel src/Dodge/Barreloid.hs 49;" f damToExpBarrel src/Dodge/Barreloid.hs 49;" f
damageCodeCommand src/Dodge/Terminal.hs 67;" f damageCodeCommand src/Dodge/Terminal.hs 65;" f
damageCrWl src/Dodge/Damage.hs 29;" f damageCrWl src/Dodge/Damage.hs 29;" f
damageCrWlID src/Dodge/Damage.hs 23;" f damageCrWlID src/Dodge/Damage.hs 23;" f
damageDirection src/Dodge/Damage.hs 35;" f damageDirection src/Dodge/Damage.hs 35;" f
@@ -3135,7 +3135,7 @@ debugMenuOptions src/Dodge/Menu.hs 122;" f
debugOn src/Dodge/Data/Config.hs 151;" f debugOn src/Dodge/Data/Config.hs 151;" f
debugSelectCreatureList src/Dodge/Debug.hs 86;" f debugSelectCreatureList src/Dodge/Debug.hs 86;" f
debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f
decodeSensorType src/Dodge/Terminal.hs 79;" f decodeSensorType src/Dodge/Terminal.hs 77;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f
decomposeTree src/Dodge/Tree/Compose.hs 57;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f
decoratedBlock src/Dodge/Placement/Instance/Block.hs 10;" f decoratedBlock src/Dodge/Placement/Instance/Block.hs 10;" f
@@ -3309,7 +3309,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 34;" f
doQuickload src/Dodge/Save.hs 82;" f doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 438;" f doRegexInput src/Dodge/Update/Input/InGame.hs 436;" f
doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomPlacements src/Dodge/Layout.hs 122;" f
@@ -3685,9 +3685,9 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 84;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 169;" f getBulHitDams src/Dodge/Bullet.hs 169;" f
getBulletType src/Dodge/HeldUse.hs 943;" f getBulletType src/Dodge/HeldUse.hs 943;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 529;" f getCloseObj src/Dodge/Update/Input/InGame.hs 527;" f
getCommand src/Dodge/Terminal.hs 58;" f getCommand src/Dodge/Terminal.hs 57;" f
getCommands src/Dodge/Terminal.hs 55;" f getCommands src/Dodge/Terminal.hs 54;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
@@ -3805,7 +3805,7 @@ heldItemWeight src/Dodge/Creature/Statistics.hs 72;" f
heldPositionInfo src/Dodge/Item/Info.hs 241;" f heldPositionInfo src/Dodge/Item/Info.hs 241;" f
heldTorqueAmount src/Dodge/HeldUse.hs 584;" f heldTorqueAmount src/Dodge/HeldUse.hs 584;" f
heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f
helpPara src/Dodge/Terminal.hs 117;" f helpPara src/Dodge/Terminal.hs 106;" f
helpPoly3D src/Polyhedra.hs 125;" f helpPoly3D src/Polyhedra.hs 125;" f
heron src/Geometry.hs 221;" f heron src/Geometry.hs 221;" f
hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f
@@ -3847,8 +3847,8 @@ initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f
initTuItemLocation src/Dodge/Item/Location/Initialize.hs 66;" f initTuItemLocation src/Dodge/Item/Location/Initialize.hs 66;" f
initTusItemLocations src/Dodge/Item/Location/Initialize.hs 25;" f initTusItemLocations src/Dodge/Item/Location/Initialize.hs 25;" f
initWallZoning src/Dodge/Wall/Zone.hs 12;" f initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialAnoTree src/Dodge/Floor.hs 29;" f initialAnoTree src/Dodge/Floor.hs 39;" f
initialRoomTree src/Dodge/Floor.hs 19;" f initialRoomTree src/Dodge/Floor.hs 20;" f
initialWorld src/Dodge/Initialisation.hs 15;" f initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f initialisePlaying src/Sound.hs 77;" f
initializeGLState src/Preload/Render.hs 216;" f initializeGLState src/Preload/Render.hs 216;" f
@@ -4155,8 +4155,8 @@ makeBullet src/Dodge/HeldUse.hs 1021;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
makeColorTermLine src/Dodge/Terminal.hs 138;" f makeColorTermLine src/Dodge/Terminal.hs 127;" f
makeColorTermPara src/Dodge/Terminal.hs 135;" f makeColorTermPara src/Dodge/Terminal.hs 124;" f
makeCorpse src/Dodge/Corpse/Make.hs 13;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f
makeDebris src/Dodge/Block/Debris.hs 45;" f makeDebris src/Dodge/Block/Debris.hs 45;" f
makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f
@@ -4192,8 +4192,8 @@ makeSourcedShader src/Shader/Compile.hs 167;" f
makeSpark src/Dodge/Spark.hs 45;" f makeSpark src/Dodge/Spark.hs 45;" f
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f
makeTermLine src/Dodge/Terminal.hs 123;" f makeTermLine src/Dodge/Terminal.hs 112;" f
makeTermPara src/Dodge/Terminal.hs 132;" f makeTermPara src/Dodge/Terminal.hs 121;" f
makeTeslaArc src/Dodge/Tesla.hs 29;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f
makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f
makeTileFromPoly src/Tile.hs 34;" f makeTileFromPoly src/Tile.hs 34;" f
@@ -4206,14 +4206,14 @@ maxDamageType src/Dodge/Damage.hs 58;" f
maxInvSlots src/Dodge/Inventory/CheckSlots.hs 27;" f maxInvSlots src/Dodge/Inventory/CheckSlots.hs 27;" f
maxShowX src/Dodge/Combine/Graph.hs 50;" f maxShowX src/Dodge/Combine/Graph.hs 50;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f
maybeBlockedPassage src/Dodge/Room/RezBox.hs 75;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearDoorPath src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 71;" f maybeClearDoorPath src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 71;" f
maybeClearDoorPaths src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 68;" f maybeClearDoorPaths src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 68;" f
maybeClearPath src/Dodge/Block.hs 72;" f maybeClearPath src/Dodge/Block.hs 72;" f
maybeClearPaths src/Dodge/Block.hs 69;" f maybeClearPaths src/Dodge/Block.hs 69;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 551;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 549;" f
maybeOpenConsole src/Dodge/Update.hs 131;" f maybeOpenConsole src/Dodge/Update.hs 131;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f maybeTakeOne src/RandomHelp.hs 116;" f
@@ -4432,7 +4432,7 @@ parseNum src/Dodge/Debug/Terminal.hs 75;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 515;" f pauseGame src/Dodge/Update/Input/InGame.hs 513;" f
pauseMenu src/Dodge/Menu.hs 56;" f pauseMenu src/Dodge/Menu.hs 56;" f
pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f pauseSound src/Dodge/SoundLogic.hs 42;" f
@@ -4473,10 +4473,10 @@ plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 193;" f plMachine src/Dodge/Placement/PlaceSpot.hs 193;" f
plNew src/Dodge/Base/NewID.hs 26;" f plNew src/Dodge/Base/NewID.hs 23;" f
plNewID src/Dodge/Base/NewID.hs 7;" f plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 16;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 34;" f plNewUsing src/Dodge/Base/NewID.hs 31;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 208;" f placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 208;" f
@@ -4586,8 +4586,8 @@ positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f
postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f
postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f
postWorldLoad src/Dodge/WorldLoad.hs 15;" f postWorldLoad src/Dodge/WorldLoad.hs 15;" f
powerFakeout src/Dodge/Room/Start.hs 27;" f powerFakeout src/Dodge/Room/Start.hs 29;" f
powerFakeout' src/Dodge/Room/Start.hs 24;" f powerFakeout' src/Dodge/Room/Start.hs 26;" f
powerLegs src/Dodge/Item/Equipment.hs 85;" f powerLegs src/Dodge/Item/Equipment.hs 85;" f
powlist src/Multiset.hs 61;" f powlist src/Multiset.hs 61;" f
powlistUpToN src/Multiset.hs 23;" f powlistUpToN src/Multiset.hs 23;" f
@@ -4596,7 +4596,7 @@ powlistUpToN'' src/Multiset.hs 31;" f
ppDraw src/Dodge/Render/ShapePicture.hs 118;" f ppDraw src/Dodge/Render/ShapePicture.hs 118;" f
ppEvents src/Dodge/Update.hs 769;" f ppEvents src/Dodge/Update.hs 769;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f preCritStart src/Dodge/Room/Start.hs 84;" f
prePos src/Quaternion.hs 68;" f prePos src/Quaternion.hs 68;" f
preloadRender src/Preload/Render.hs 30;" f preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 26;" f premapMaybe src/FoldlHelp.hs 26;" f
@@ -4655,15 +4655,18 @@ putBlockV src/Dodge/Placement/Instance/Wall.hs 153;" f
putColorLamp src/Dodge/Placement/Instance/LightSource.hs 203;" f putColorLamp src/Dodge/Placement/Instance/LightSource.hs 203;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 62;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 206;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 206;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f
putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f
putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f
putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 43;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f
putShape src/Dodge/Room/Foreground.hs 134;" f putShape src/Dodge/Room/Foreground.hs 134;" f
putStrLnAppend src/Dodge/LevelGen.hs 79;" f putStrLnAppend src/Dodge/LevelGen.hs 80;" f
putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 51;" f
putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 23;" f
putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 18;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f putWireEnd src/Dodge/Wire.hs 31;" f
putWireStart src/Dodge/Wire.hs 34;" f putWireStart src/Dodge/Wire.hs 34;" f
@@ -4673,7 +4676,7 @@ qToV2 src/Quaternion.hs 56;" f
qToV3 src/Quaternion.hs 53;" f qToV3 src/Quaternion.hs 53;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f
quitCommand src/Dodge/Terminal.hs 120;" f quitCommand src/Dodge/Terminal.hs 109;" f
qz src/Quaternion.hs 71;" f qz src/Quaternion.hs 71;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
@@ -4702,7 +4705,7 @@ randProb src/RandomHelp.hs 68;" f
randSpark src/Dodge/Spark.hs 69;" f randSpark src/Dodge/Spark.hs 69;" f
randSparkExtraVel src/Dodge/Spark.hs 92;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f
randWallReflect src/Dodge/Update.hs 662;" f randWallReflect src/Dodge/Update.hs 662;" f
randomChallenges src/Dodge/Room/Start.hs 62;" f randomChallenges src/Dodge/Room/Start.hs 64;" f
randomCompass src/Dodge/Layout.hs 59;" f randomCompass src/Dodge/Layout.hs 59;" f
randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f
randomFourCornerRoomCrsIts src/Dodge/Room/Procedural.hs 278;" f randomFourCornerRoomCrsIts src/Dodge/Room/Procedural.hs 278;" f
@@ -4780,16 +4783,15 @@ resumeSound src/Dodge/SoundLogic.hs 48;" f
retreatActionsPistol src/Dodge/Humanoid.hs 249;" f retreatActionsPistol src/Dodge/Humanoid.hs 249;" f
retreatFireLauncher src/Dodge/Humanoid.hs 270;" f retreatFireLauncher src/Dodge/Humanoid.hs 270;" f
retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 7;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 7;" f
reversePair src/Dodge/LevelGen.hs 82;" f reversePair src/Dodge/LevelGen.hs 83;" f
rewinder src/Dodge/Item/Held/Utility.hs 36;" f rewinder src/Dodge/Item/Held/Utility.hs 36;" f
rezBox src/Dodge/Room/RezBox.hs 25;" f rezBox src/Dodge/Room/RezBox.hs 31;" f
rezBox' src/Dodge/Room/RezBox.hs 41;" f rezBox' src/Dodge/Room/RezBox.hs 46;" f
rezBoxStart src/Dodge/Room/Start.hs 77;" f rezBoxStart src/Dodge/Room/Start.hs 79;" f
rezBoxes src/Dodge/Room/RezBox.hs 113;" f rezBoxes src/Dodge/Room/RezBox.hs 118;" f
rezBoxesWp src/Dodge/Room/RezBox.hs 51;" f rezBoxesWpCrit src/Dodge/Room/RezBox.hs 90;" f
rezBoxesWpCrit src/Dodge/Room/RezBox.hs 85;" f rezColor src/Dodge/Room/RezBox.hs 138;" f
rezColor src/Dodge/Room/RezBox.hs 133;" f rezInvBox src/Dodge/Room/RezBox.hs 145;" f
rezInvBox src/Dodge/Room/RezBox.hs 140;" f
rezText src/Dodge/Story.hs 4;" f rezText src/Dodge/Story.hs 4;" f
rezText' src/Dodge/Story.hs 17;" f rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f rhombus src/Polyhedra.hs 72;" f
@@ -4860,7 +4862,7 @@ rprBool src/Dodge/PlacementSpot.hs 72;" f
rprBoolShift src/Dodge/PlacementSpot.hs 111;" f rprBoolShift src/Dodge/PlacementSpot.hs 111;" f
rprShift src/Dodge/PlacementSpot.hs 102;" f rprShift src/Dodge/PlacementSpot.hs 102;" f
rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f
runPastStart src/Dodge/Room/Start.hs 71;" f runPastStart src/Dodge/Room/Start.hs 73;" f
runStateWorld src/Dodge/Randify.hs 17;" f runStateWorld src/Dodge/Randify.hs 17;" f
sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f
safeAngleVV src/Geometry/Vector.hs 68;" f safeAngleVV src/Geometry/Vector.hs 68;" f
@@ -4931,7 +4933,7 @@ selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 52;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 52;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 58;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 58;" f
senseDamage src/Dodge/Machine/Update.hs 160;" f senseDamage src/Dodge/Machine/Update.hs 160;" f
sensorCommand src/Dodge/Terminal.hs 85;" f sensorCommand src/Dodge/Terminal.hs 83;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 25;" f sensorRoom src/Dodge/Room/SensorDoor.hs 25;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 45;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 45;" f
sensorSPic src/Dodge/Machine/Draw.hs 70;" f sensorSPic src/Dodge/Machine/Draw.hs 70;" f
@@ -5035,7 +5037,6 @@ shootBullet src/Dodge/HeldUse.hs 1006;" f
shootBullets src/Dodge/HeldUse.hs 996;" f shootBullets src/Dodge/HeldUse.hs 996;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 847;" f shootLaser src/Dodge/HeldUse.hs 847;" f
shootOutPassage src/Dodge/Room/RezBox.hs 80;" f
shootPulseBall src/Dodge/HeldUse.hs 915;" f shootPulseBall src/Dodge/HeldUse.hs 915;" f
shootPulseLaser src/Dodge/HeldUse.hs 888;" f shootPulseLaser src/Dodge/HeldUse.hs 888;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
@@ -5067,7 +5068,7 @@ shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/RandomHelp.hs 59;" f shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 151;" f sigmoid src/Dodge/Base.hs 151;" f
simpleCrSprings src/Dodge/Update.hs 883;" f simpleCrSprings src/Dodge/Update.hs 883;" f
simpleTermMessage src/Dodge/Terminal.hs 186;" f simpleTermMessage src/Dodge/Terminal.hs 180;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f
singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f
@@ -5088,7 +5089,7 @@ slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 171;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f smallBattery src/Dodge/Item/Ammo.hs 60;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
smallDrawTree src/Dodge/LevelGen.hs 88;" f smallDrawTree src/Dodge/LevelGen.hs 89;" f
smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f
smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f
smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f
@@ -5117,7 +5118,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f
spaceAction src/Dodge/Update/Input/InGame.hs 519;" f spaceAction src/Dodge/Update/Input/InGame.hs 517;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f
@@ -5172,12 +5173,12 @@ stackPicturesAtOff src/Dodge/Render/List.hs 101;" f
stackText src/Picture/Base.hs 188;" f stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 311;" f stackedInventory src/Dodge/Creature.hs 311;" f
startCr src/Dodge/Creature.hs 93;" f startCr src/Dodge/Creature.hs 93;" f
startCrafts src/Dodge/Room/Start.hs 92;" f startCrafts src/Dodge/Room/Start.hs 94;" f
startDrag src/Dodge/Update/Input/InGame.hs 270;" f startDrag src/Dodge/Update/Input/InGame.hs 270;" f
startInvList src/Dodge/Creature.hs 108;" f startInvList src/Dodge/Creature.hs 108;" f
startInventory src/Dodge/Creature.hs 111;" f startInventory src/Dodge/Creature.hs 111;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f
startRoom src/Dodge/Room/Start.hs 52;" f startRoom src/Dodge/Room/Start.hs 54;" f
startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f
startSeedGameConc src/Dodge/StartNewGame.hs 27;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f
statsModifier src/Dodge/Creature/Info.hs 16;" f statsModifier src/Dodge/Creature/Info.hs 16;" f
@@ -5215,7 +5216,8 @@ t src/ShortShow.hs 33;" f
tEast src/Dodge/Room/Corridor.hs 90;" f tEast src/Dodge/Room/Corridor.hs 90;" f
tToBTree src/Dodge/Tree/Compose.hs 92;" f tToBTree src/Dodge/Tree/Compose.hs 92;" f
tWest src/Dodge/Room/Corridor.hs 115;" f tWest src/Dodge/Room/Corridor.hs 115;" f
tabComplete src/Dodge/Terminal.hs 145;" f tabComplete src/Dodge/Terminal.hs 133;" f
tabComplete' src/Dodge/Terminal.hs 139;" f
takeN src/RandomHelp.hs 44;" f takeN src/RandomHelp.hs 44;" f
takeNMore src/RandomHelp.hs 41;" f takeNMore src/RandomHelp.hs 41;" f
takeOne src/RandomHelp.hs 22;" f takeOne src/RandomHelp.hs 22;" f
@@ -5243,10 +5245,10 @@ targetingScope src/Dodge/Item/Scope.hs 38;" f
telRoomLev src/Dodge/Room/Teleport.hs 14;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f
teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f
termScreenColor src/Dodge/Terminal/Color.hs 10;" f termScreenColor src/Dodge/Terminal/Color.hs 10;" f
termSoundLine src/Dodge/Terminal.hs 49;" f termSoundLine src/Dodge/Terminal.hs 48;" f
termTextColor src/Dodge/Terminal.hs 52;" f termTextColor src/Dodge/Terminal.hs 51;" f
terminalColor src/Dodge/Placement/Instance/Terminal.hs 51;" f terminalColor src/Dodge/Placement/Instance/Terminal.hs 70;" f
terminalReturnEffect src/Dodge/Terminal.hs 189;" f terminalReturnEffect src/Dodge/Terminal.hs 184;" f
terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f
terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f
@@ -5265,7 +5267,7 @@ textJustifyCenter src/Picture/Base.hs 212;" f
textJustifyLeft src/Picture/Base.hs 208;" f textJustifyLeft src/Picture/Base.hs 208;" f
textJustifyRight src/Picture/Base.hs 198;" f textJustifyRight src/Picture/Base.hs 198;" f
textRight src/Picture/Base.hs 203;" f textRight src/Picture/Base.hs 203;" f
textTerminal src/Dodge/Terminal.hs 35;" f textTerminal src/Dodge/Terminal.hs 34;" f
textVMirror src/Picture/Base.hs 216;" f textVMirror src/Picture/Base.hs 216;" f
tflat2 src/Picture/Data.hs 60;" f tflat2 src/Picture/Data.hs 60;" f
tflat3 src/Picture/Data.hs 64;" f tflat3 src/Picture/Data.hs 64;" f
@@ -5300,8 +5302,8 @@ tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f
tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f
titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsMenu src/Dodge/Menu.hs 102;" f
titleOptionsNoWrite src/Dodge/Menu.hs 105;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f
tlDoEffect src/Dodge/Terminal.hs 129;" f tlDoEffect src/Dodge/Terminal.hs 118;" f
tlSetStatus src/Dodge/Terminal.hs 126;" f tlSetStatus src/Dodge/Terminal.hs 115;" f
tmUpdate src/Dodge/Update.hs 499;" f tmUpdate src/Dodge/Update.hs 499;" f
toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f
toBothLnk src/Dodge/RoomLink.hs 121;" f toBothLnk src/Dodge/RoomLink.hs 121;" f
@@ -5316,11 +5318,12 @@ toV2 src/Geometry/Data.hs 54;" f
toV3 src/Geometry/Data.hs 57;" f 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 95;" f toggleCommands src/Dodge/Terminal.hs 93;" 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
toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 108;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 108;" f
toggleTest src/Dodge/Room/Tutorial.hs 53;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f
tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f
@@ -5388,7 +5391,7 @@ truncate src/Polyhedra/Geodesic.hs 38;" f
trunkDepth src/TreeHelp.hs 161;" f trunkDepth src/TreeHelp.hs 161;" f
tryAttachItems src/Dodge/Item/Grammar.hs 33;" f tryAttachItems src/Dodge/Item/Grammar.hs 33;" f
tryClickUse src/Dodge/Creature/YourControl.hs 221;" f tryClickUse src/Dodge/Creature/YourControl.hs 221;" f
tryCombine src/Dodge/Update/Input/InGame.hs 541;" f tryCombine src/Dodge/Update/Input/InGame.hs 539;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 149;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 149;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 122;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 122;" f
tryGetChannel src/Sound.hs 97;" f tryGetChannel src/Sound.hs 97;" f
@@ -5408,7 +5411,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
tutorialMessage1 src/Dodge/Room/RezBox.hs 38;" f tutAnoTree src/Dodge/Floor.hs 33;" f
tutRezBox src/Dodge/Room/Tutorial.hs 34;" f
tutRoomTree src/Dodge/Floor.hs 24;" f
tutRooms src/Dodge/Room/Tutorial.hs 28;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 50;" 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
@@ -5442,7 +5449,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" 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
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 472;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 470;" f
updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarrel src/Dodge/Barreloid.hs 41;" f
updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 33;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 33;" f
@@ -5472,7 +5479,7 @@ updateDust src/Dodge/Update.hs 844;" f
updateDusts src/Dodge/Update.hs 691;" f updateDusts src/Dodge/Update.hs 691;" f
updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f
updateEnergyBalls src/Dodge/Update.hs 679;" f updateEnergyBalls src/Dodge/Update.hs 679;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 497;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 495;" f
updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f
updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f
@@ -5486,12 +5493,12 @@ updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 544;" f updateIMl src/Dodge/Update.hs 544;" f
updateIMl' src/Dodge/Update.hs 549;" f updateIMl' src/Dodge/Update.hs 549;" f
updateInGameCamera src/Dodge/Update/Camera.hs 79;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 419;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 417;" f
updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
updateItemTargeting src/Dodge/Creature/State.hs 259;" f updateItemTargeting src/Dodge/Creature/State.hs 259;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 386;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 386;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 413;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 411;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 373;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 373;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 395;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 395;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f updateLampoid src/Dodge/Lampoid.hs 12;" f
@@ -5499,7 +5506,7 @@ updateLaser src/Dodge/Laser/Update.hs 11;" f
updateLasers src/Dodge/Update.hs 450;" f updateLasers src/Dodge/Update.hs 450;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 169;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 169;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 432;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 430;" f
updateMachine src/Dodge/Machine/Update.hs 20;" f updateMachine src/Dodge/Machine/Update.hs 20;" f
updateMagnets src/Dodge/Update.hs 329;" f updateMagnets src/Dodge/Update.hs 329;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 194;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 194;" f
@@ -5693,7 +5700,7 @@ wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f
worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 143;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
wristArmour src/Dodge/Item/Equipment.hs 43;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f
wristInvisibility src/Dodge/Item/Equipment.hs 96;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f