diff --git a/appDodge/Main.hs b/appDodge/Main.hs index b64124b82..a66e9880d 100644 --- a/appDodge/Main.hs +++ b/appDodge/Main.hs @@ -1,13 +1,9 @@ -module Main ( - main, -) where +module Main (main) where -import Dodge.StartNewGame import Control.Lens import Control.Monad import Control.Parallel import qualified Data.Map.Strict as M ---import Data.Preload.Render import qualified Data.Text as T import Dodge.Concurrent import Dodge.Config @@ -15,25 +11,19 @@ import Dodge.Data import Dodge.Event import Dodge.Initialisation import Dodge.LoadSeed ---import Dodge.Menu import Dodge.Render import Dodge.SoundLogic.LoadSound +import Dodge.StartNewGame import Dodge.TestString import Dodge.Update ---import qualified IntMapHelp as IM import Loop ---import Picture import Preload import Preload.Render ---import Render - import SDL (($=)) import qualified SDL ---import qualified SDL.Mixer as Mix import Sound import System.Directory - main :: IO () main = do -- load the config to get the window size and position @@ -112,7 +102,8 @@ theUpdateStep win = doSideEffects <=< updateRenderSplit win updateRenderSplit :: SDL.Window -> Universe -> IO Universe updateRenderSplit win u = do - updateUniverse u `par` void (doDrawing win u) + --updateUniverse u `par` void (doDrawing win u) + updateUniverse u `par` doDrawing win u return $! updateUniverse u playSoundUnlessRewinding :: Universe -> IO (M.Map SoundOrigin Sound) @@ -144,13 +135,13 @@ doPreload = do putStrLn "Start sound preload" lChunks <- loadSounds putStrLn "Skip music preload!" --- lMusic <- loadMusic --- Mix.playMusic Mix.Forever (lMusic IM.! 0) + -- lMusic <- loadMusic + -- Mix.playMusic Mix.Forever (lMusic IM.! 0) putStrLn "Return PreloadData" return PreloadData { _renderData = rData , _soundData = lChunks - --, _musicData = MusicData{_loadedMusic = lMusic} - , _musicData = mempty + , --, _musicData = MusicData{_loadedMusic = lMusic} + _musicData = mempty } diff --git a/data/terminalConversations/aiInterface b/data/terminalConversations/aiInterface new file mode 100644 index 000000000..04dc78bfe --- /dev/null +++ b/data/terminalConversations/aiInterface @@ -0,0 +1,40 @@ +The cortical interface is an incredible interdisciplinary breakthrough +in neurophysiology and computer science. +It allows clients to directly receive information transmitted wirelessly. +We expect this to allow for better, faster learning, allowing +humans to reach unheard of levels of knowledge and ability. + +Non-human animal trials did not appear to reduce lifespans significantly. +Human trials are now in progress. + +I hate the way the interface just dumps information on you. +The way time just seems to stop... +makes me feel sick. + +I heard @name downloaded War and Peace, +but didn't expect it to be in russian. +Took him a week to recover. + +What's the deal with the cortical interface? +So, like, what happens if I constantly request info dumps? +Does that mean I live forever? + +Temporal distortion is a common side effect when using the cortical interface. +Information is processed near instantaneously, causing other +external events to appear paused. + +The cortical interface has some neat uses. +I set up a timer to remind me of our anniversary. +It's great, the AI even suggested the perfect present! + +Mood disorders. + +Anxiety. + +Epilepsy. + +Dizzyness, nauseau, tinitus. + +Autism. + +Schizoprenia. diff --git a/data/terminalConversations/tutScenarioStart b/data/terminalConversations/tutScenarioStart new file mode 100644 index 000000000..e81f71885 --- /dev/null +++ b/data/terminalConversations/tutScenarioStart @@ -0,0 +1,9 @@ +Something has gone wrong. + +My last memory is entering the reconstitution scanner. +Though experimental, +this techology theoretically allows for perfect duplication. +But there are strict rules, this would only happen if my old body is... +non-functional. + +Hopefully I can take better care of this one. diff --git a/src/Dodge/Concurrent.hs b/src/Dodge/Concurrent.hs index 9239d6b23..1088f68f5 100644 --- a/src/Dodge/Concurrent.hs +++ b/src/Dodge/Concurrent.hs @@ -32,9 +32,10 @@ addSideEffect f s = uvSideEffects %~ (|> NewSideEffect f s) hardQuit :: Universe -> Universe hardQuit = uvSideEffects %~ (HardQuit <|) -blockingLoad :: String -> IO (Universe -> Maybe Universe) -> Universe -> Universe -blockingLoad str f u = - u & uvScreenLayers .:~ loadingScreen str +blockingLoad + :: [String] -> String -> IO (Universe -> Maybe Universe) -> Universe -> Universe +blockingLoad p str f u = + u & uvScreenLayers .:~ LoadingScreen p LoadWaiting & addSideEffect f str --hardQuit = addSideEffect (return $ const Nothing) "QUITTING" @@ -53,15 +54,3 @@ blockingLoad str f u = -- f <- eff -- return (f . (uvConcEffects .~ NoConcEffect)) -loadingScreen :: String -> ScreenLayer -loadingScreen str = - OptionScreen - { _scTitle = str - , _scOptions = mempty - , _scOffset = 0 - , _scPositionedMenuOption = NoExtraMenuOption - , _scOptionFlag = LoadingScreen - , _scSelectionList = mempty - , _scAvailableLines = 0 - , _scDisplayTime = 0 - } diff --git a/src/Dodge/Data/GenWorld.hs b/src/Dodge/Data/GenWorld.hs index d62725d13..b018b8b25 100644 --- a/src/Dodge/Data/GenWorld.hs +++ b/src/Dodge/Data/GenWorld.hs @@ -33,7 +33,6 @@ data PSType | PutMachine { _putMachinePoly :: [Point2] , _putMachineMachine :: Machine --- , _putMachineWall :: Wall , _putMachineMaybeItem :: Maybe Item } | PutLS LightSource diff --git a/src/Dodge/Data/Universe.hs b/src/Dodge/Data/Universe.hs index 784f648bf..044fb5d33 100644 --- a/src/Dodge/Data/Universe.hs +++ b/src/Dodge/Data/Universe.hs @@ -11,20 +11,21 @@ module Dodge.Data.Universe ( module Loop.Data, ) where -import qualified Data.IntMap.Strict as IM -import Geometry.Data -import Sound.Data -import qualified Data.Map.Strict as M -import GHC.Word (Word32) -import Dodge.Data.SelectionList import Control.Lens +import qualified Data.IntMap.Strict as IM +import qualified Data.Map.Strict as M --import qualified Data.Map.Strict as M import Data.Preload import Data.Sequence (Seq (..)) import Dodge.Data.Config +import Dodge.Data.SelectionList import Dodge.Data.World +import GHC.Word (Word32) +import Geometry.Data import Loop.Data import Picture.Data +import Sound.Data + --import SDL (Scancode) data Universe = Universe @@ -48,13 +49,13 @@ data Universe = Universe , _uvDebugPut :: IM.IntMap String , _uvDebugPathShowType :: PathShowType , _uvDebugMessageOffset :: Int - , _uvSoundQueue :: [SoundID] -- sounds without a position, to be played once + , _uvSoundQueue :: [SoundID] -- sounds without a position, to be played once } data PathShowType = PathBetweenLeftRightClick | PathBetweenDebugV2s - deriving (Show,Eq,Ord,Enum,Bounded) + deriving (Show, Eq, Ord, Enum, Bounded) data DebugItem = DebugItem { _debugMessage :: String @@ -69,13 +70,15 @@ data SideEffect | RunningSideEffect {_ceString :: String} | HardQuit -data OptionScreenFlag = NormalOptions | GameOverOptions | SplashOptions - | LoadingScreen +data OptionScreenFlag + = NormalOptions + | GameOverOptions + | SplashOptions deriving (Eq, Ord, Show, Read) --Generic, Flat) data ExtraMenuOption - = BottomMenuOption { _emoMenuOption :: MenuOption } - | TopMenuOption { _emoMenuOption :: MenuOption } + = BottomMenuOption {_emoMenuOption :: MenuOption} + | TopMenuOption {_emoMenuOption :: MenuOption} | NoExtraMenuOption data ScreenLayer @@ -85,11 +88,21 @@ data ScreenLayer , _scOffset :: Int , _scPositionedMenuOption :: ExtraMenuOption , _scOptionFlag :: OptionScreenFlag - , _scSelectionList :: [SelectionItem (Universe -> Universe,Universe->Universe)] + , _scSelectionList :: [SelectionItem (Universe -> Universe, Universe -> Universe)] , _scAvailableLines :: Int , _scDisplayTime :: Int } - | InputScreen { _scInput :: String } + | InputScreen {_scInput :: String} + | LoadingScreen + { _scPara :: [String] + , _scBlockStatus :: BlockStatus + } + +data BlockStatus + = LoadWaitingClicked + | LoadWaiting + | LoadReady + deriving (Show) data MenuOptionDisplay = MODString {_modString :: String} diff --git a/src/Dodge/Data/World.hs b/src/Dodge/Data/World.hs index 36cca6113..49d897788 100644 --- a/src/Dodge/Data/World.hs +++ b/src/Dodge/Data/World.hs @@ -10,6 +10,7 @@ module Dodge.Data.World ( module Dodge.Data.Input, ) where +import Color.Data import qualified Data.IntMap.Strict as IM import NewInt import Control.Lens @@ -81,6 +82,10 @@ data TimeFlowStatus { _timeFlowCharge :: Int , _scrollItemID :: NewInt ItmInt } + | PauseTimeMessage + { _pauseTimeMesage :: String + , _pauseTimeMesageColor :: Color + } makeLenses ''TimeFlowStatus makeLenses ''World diff --git a/src/Dodge/Initialisation.hs b/src/Dodge/Initialisation.hs index b286a384e..3826b79c6 100644 --- a/src/Dodge/Initialisation.hs +++ b/src/Dodge/Initialisation.hs @@ -8,9 +8,7 @@ import qualified IntMapHelp as IM import Dodge.SpawnAt splashScreen :: World -splashScreen = - defaultWorld - & cWorld . lWorld . creatures .~ IM.fromList [(0, startCr)] +splashScreen = defaultWorld & cWorld . lWorld . creatures .~ IM.fromList [(0, startCr)] initialWorld :: World initialWorld = respawn defaultWorld diff --git a/src/Dodge/Placement/Instance/Analyser.hs b/src/Dodge/Placement/Instance/Analyser.hs index a4302b3bc..bca08ee65 100644 --- a/src/Dodge/Placement/Instance/Analyser.hs +++ b/src/Dodge/Placement/Instance/Analyser.hs @@ -28,5 +28,5 @@ analyserWithPrompt l pst pslight psmc = extTrigLitPos pslight $ \tp -> themachine = defaultMachine & mcColor .~ aquamarine & mcType .~ McTerminal - & mcHP .~ 100 + & mcHP .~ 10000 & mcType .~ McProxSensor (ProxSensor pst Nothing) diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 750009dbf..7199eb19a 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -201,10 +201,10 @@ doDrawing' win pdata u = do --setup downscale viewport for blurring bloom setViewport _gr_downsize_res cfig - glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboHalf pdata))) + glBindFramebuffer GL_FRAMEBUFFER $ pdata ^. fboHalf . _1 . unFBO glDepthFunc GL_ALWAYS - glBindTextureUnit 0 (pdata ^. fboBloom . _2 . unTO) glGenerateTextureMipmap (pdata ^. fboBloom . _2 . unTO) + glBindTextureUnit 0 (pdata ^. fboBloom . _2 . unTO) glDisable GL_BLEND -- this all needs more tuning + more thought -- a fade effect would be cool, so not to fully reset last frames bloom @@ -398,7 +398,8 @@ doDrawing' win pdata u = do glDrawArrays GL_TRIANGLES 0 6 glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -- draw the overlay - glDepthFunc GL_ALWAYS + glDepthFunc GL_LEQUAL + --glDepthFunc GL_ALWAYS glDepthMask GL_FALSE glEnable GL_BLEND --glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA @@ -406,9 +407,8 @@ doDrawing' win pdata u = do renderLayer DebugLayer shadV pokeCounts withArray (scaleMatrix (2 / windowXFloat cfig) (2 / windowYFloat cfig)) $ glNamedBufferSubData (pdata ^. matUBO) 0 64 - glDepthFunc GL_GEQUAL glDepthMask GL_TRUE - with (-1) $ glClearNamedFramebufferfv 0 GL_DEPTH 0 + with 1 $ glClearNamedFramebufferfv 0 GL_DEPTH 0 renderLayer FixedCoordLayer shadV pokeCounts checkGLError "during doDrawing'" SDL.glSwapWindow win diff --git a/src/Dodge/Render/MenuScreen.hs b/src/Dodge/Render/MenuScreen.hs index 4b3a3d53b..bca027352 100644 --- a/src/Dodge/Render/MenuScreen.hs +++ b/src/Dodge/Render/MenuScreen.hs @@ -1,6 +1,9 @@ {-# LANGUAGE LambdaCase #-} module Dodge.Render.MenuScreen (drawMenuScreen) where +import Geometry.Polygon +import Linear +import Dodge.Data.ScreenPos import Control.Lens import Dodge.Base.Window import Dodge.Data.CardinalPoint @@ -15,6 +18,15 @@ drawMenuScreen :: Maybe Int -> ScreenLayer -> Config -> Picture drawMenuScreen mi = \case OptionScreen{_scTitle = s, _scSelectionList = l} -> drawOptions s mi l InputScreen inputstr -> drawInputMenu ('>' : inputstr) + LoadingScreen ss t -> drawLoadingScreen ss t + +drawLoadingScreen :: [String] -> BlockStatus -> Config -> Picture +drawLoadingScreen s _ cfig = + polygon (rectWH (fromIntegral (cfig ^.windowX)) (fromIntegral (cfig ^. windowY))) <> + translateScreenPos cfig + (ScreenPos (V2 0 0.2) (V2 (-300) (10 * fromIntegral (length s)))) + (drawList $ map text s -- <> [text $ show t]) + ) drawInputMenu :: String -> Config -> Picture drawInputMenu s cf = darkenBackground cf <> drawTitle cf s diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index e559e969f..277d81085 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -263,8 +263,8 @@ tutHub = do =<< roomNgon 6 100 bcor <- treeAttachDeep (return door) <$> blockedCorridor --bcor <- treeAttachDeep (return door) <$> return (return $ cleatOnward door) - r1 <- r burstRifle <&> rmPmnts .:~ t - r2 <- r (drumMag & itConsumables ?~ 90) + r1 <- r burstRifle <&> rmPmnts .:~ itemshiftterminal + r2 <- ammoroom (drumMag & itConsumables ?~ 90) -- <&> rmPmnts .:~ tutorialterminal --r2 <- r (tinMag & itConsumables ?~ 500) return $ tToBTree "DoorTest" $ @@ -290,7 +290,8 @@ tutHub = do , makeTermLine "" ] r x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x) - t = + ammoroom x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x) + itemshiftterminal = putMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ ss' <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal) diff --git a/src/Dodge/Save.hs b/src/Dodge/Save.hs index 14aa053a0..ead2dfff9 100644 --- a/src/Dodge/Save.hs +++ b/src/Dodge/Save.hs @@ -72,7 +72,7 @@ reloadLevelStart :: Universe -> Universe reloadLevelStart = loadSaveSlot (LevelStartSlot 0) loadSaveSlot :: SaveSlot -> Universe -> Universe -loadSaveSlot slot = blockingLoad ("DESERIALISING " ++ show slot) $ readSaveSlot slot +loadSaveSlot slot = blockingLoad [] ("DESERIALISING " ++ show slot) $ readSaveSlot slot doQuicksave :: Universe -> Universe doQuicksave u = diff --git a/src/Dodge/StartNewGame.hs b/src/Dodge/StartNewGame.hs index a8bec6cbb..11d078aa4 100644 --- a/src/Dodge/StartNewGame.hs +++ b/src/Dodge/StartNewGame.hs @@ -8,9 +8,10 @@ import Dodge.Data.Universe import Dodge.LevelGen import Dodge.Save import Dodge.WorldLoad +import Justify import LensHelp -import System.Random import System.Directory +import System.Random startNewGameInSlot :: Int -> Universe -> Universe startNewGameInSlot slot u = startSeedGame slot i u @@ -20,10 +21,28 @@ startNewGameInSlot slot u = startSeedGame slot i u startSeedGame :: Int -> Int -> Universe -> Universe startSeedGame _ i u = blockingLoad + startPara ("GENERATING FROM SEED " ++ show i) (startSeedGameConc i $ u ^. preloadData) u +startPara :: [String] +startPara = + [ "Something has gone wrong." + , "" + , "" + , "" + ] + <> makeParagraph + 55 + ( "My last memory is the reconstitution scan. " + <> "Though experimental, this techology allows for perfect duplication. " + <> "At least in theory, " + <> "it hasn't been tested on humans. " + <> "I'd only be duplicated if my original body was... non-functional." + ) + <> ["", "","", "Hopefully I can take better care of this one."] + startSeedGameConc :: Int -> PreloadData -> IO (Universe -> Maybe Universe) startSeedGameConc seed pdata = do w <- generateWorldFromSeed (pdata ^?! renderData) seed @@ -32,6 +51,11 @@ startSeedGameConc seed pdata = do return $ Just . saveWorldInSlot (LevelStartSlot 0) - . (uvScreenLayers .~ []) + . maybeClearLoadingScreen . (uvWorld .~ w) . postUniverseLoadSideEffect + +maybeClearLoadingScreen :: Universe -> Universe +maybeClearLoadingScreen u = case u ^? uvScreenLayers . ix 0 . scBlockStatus of + Just LoadWaitingClicked -> u & uvScreenLayers .~ [] + _ -> u & uvScreenLayers . ix 0 . scBlockStatus .~ LoadReady diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 9cb9d03c6..900577e07 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -32,12 +32,7 @@ import Data.Foldable import Data.Monoid testStringInit :: Universe -> [String] -testStringInit u = [ show (u ^. uvConfig . windowX) - , show (u ^. uvConfig . windowY) - ,show $ fmap ( - worldPosToScreen (u ^. uvWorld . wCam) ) - $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crPos . _xy - ] +testStringInit _ = [] -- [show $ foldMap (foldMap (Sum . length . (^. seObstacles))) -- $ u ^. uvWorld . cWorld . incGraph] -- foldMap prettyShort $ u ^? uvWorld . cWorld . lWorld . machines . ix 0 . mcType . _McProxSensor @@ -81,3 +76,4 @@ showTimeFlow tfs = case tfs of CameraScrollTimeFlow {_reverseAmount = ra } -> "CameraScrollTimeFlow" ++ show ra RewindLeftClick {_reverseAmount = ra } -> "RewindLeftClick" ++ show ra PausedTimeFlow {_timeFlowCharge = ra } -> "PausedTimeFlow" ++ show ra + PauseTimeMessage {} -> "PausedTimeMessage" diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 2186fe245..968f5a49f 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -136,7 +136,7 @@ openConsole = \case updateUniverseLast :: Universe -> Universe updateUniverseLast u = u - & over (uvWorld . input . textInput) (const mempty) + & uvWorld . input . textInput .~ mempty & maybeOpenConsole & advanceScrollAmount & updateWorldEventFlags @@ -155,7 +155,6 @@ updateUniverseLast u = {- For most menus the only way to change the world is using event handling. -} updateUniverseMid :: Universe -> Universe updateUniverseMid u = case _uvScreenLayers u of - (OptionScreen{_scOptionFlag = LoadingScreen} : _) -> u (sl : _) -> u & uvWorld . unpauseClock .~ 0 & updateUseInputOnScreen sl [] -> (uvWorld . unpauseClock +~ 1) @@ -178,6 +177,7 @@ timeFlowUpdate u = case u ^. uvWorld . timeFlow of RewindLeftClick _ _ -> over uvWorld scrollTimeBack u RespawnDelay{} -> functionalUpdate u PausedTimeFlow _ itmloc -> over uvWorld (pauseTime itmloc) u + PauseTimeMessage {} -> u pauseTime :: NewInt ItmInt -> World -> World pauseTime _ w diff --git a/src/Dodge/Update/Input/ScreenLayer.hs b/src/Dodge/Update/Input/ScreenLayer.hs index 6847c2ea7..456b32043 100644 --- a/src/Dodge/Update/Input/ScreenLayer.hs +++ b/src/Dodge/Update/Input/ScreenLayer.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE LambdaCase #-} module Dodge.Update.Input.ScreenLayer ( updateUseInputOnScreen, ldpSelection, @@ -21,9 +22,18 @@ import Linear import SDL updateUseInputOnScreen :: ScreenLayer -> Universe -> Universe -updateUseInputOnScreen sl = case sl of - InputScreen{} -> doInputScreenInput (sl ^. scInput) - _ -> optionScreenUpdate +updateUseInputOnScreen = \case + InputScreen{_scInput = s} -> doInputScreenInput s + OptionScreen{} -> optionScreenUpdate + LoadingScreen{} -> loadingScreenUpdate + +loadingScreenUpdate :: Universe -> Universe +loadingScreenUpdate u + | isJust $ u ^. uvWorld . input . pressedKeys . at ScancodeSpace + = case u ^? uvScreenLayers . ix 0 . scBlockStatus of + Just LoadReady -> u & uvScreenLayers .~ [] + _ -> u & uvScreenLayers . ix 0 . scBlockStatus .~ LoadWaitingClicked + | otherwise = u doInputScreenInput :: String -> Universe -> Universe doInputScreenInput s u = diff --git a/src/Dodge/Wall/Damage.hs b/src/Dodge/Wall/Damage.hs index 3535364b8..f5bc4ca7f 100644 --- a/src/Dodge/Wall/Damage.hs +++ b/src/Dodge/Wall/Damage.hs @@ -34,8 +34,7 @@ damageWall wlid dt w = fromMaybe (mempty,w) $ do MachinePart mcid -> (,) mempty $ w' & cWorld . lWorld . machines . ix mcid . mcDamage .:~ dt BlockPart blid -> - w' & damageBlock (wl ^. wlMaterial) dmam blid -- cWorld . lWorld . blocks . ix blid . blHP -~ dmam --- & maybeDestroyBlock blid + w' & damageBlock (wl ^. wlMaterial) dmam blid DoorPart drid _ -> w' & cWorld . lWorld . doors . ix drid . drHP -~ dmam & maybeDestroyDoor drid diff --git a/src/Loop.hs b/src/Loop.hs index 3c8c6240e..709d0d724 100644 --- a/src/Loop.hs +++ b/src/Loop.hs @@ -242,7 +242,8 @@ doConLoop' :: -- | Current simulation state. world -> IO () -doConLoop' themvar spf window coneffs worldSideEffects eventFn !startWorld = go startWorld +--doConLoop' themvar spf window coneffs worldSideEffects eventFn !startWorld = go startWorld +doConLoop' themvar spf window coneffs worldSideEffects eventFn = go where worldSideEffectsWindow = worldSideEffects window go sw = do diff --git a/tags b/tags index 2a8d38890..38f01b8ea 100644 --- a/tags +++ b/tags @@ -134,7 +134,7 @@ BlockedLink src/Dodge/Data/Room.hs 50;" C BloomLayer src/Picture/Data.hs 21;" C Blunt src/Dodge/Data/Damage.hs 17;" C Boosting src/Dodge/Data/Creature/Stance.hs 27;" C -BottomMenuOption src/Dodge/Data/Universe.hs 77;" C +BottomMenuOption src/Dodge/Data/Universe.hs 80;" C BounceBullet src/Dodge/Data/Bullet.hs 28;" C Bound_box_screen src/Dodge/Data/Config.hs 94;" C BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C @@ -186,7 +186,7 @@ CamOnPlayer src/Dodge/Data/Camera.hs 12;" C CamOpticScope src/Dodge/Data/Camera.hs 13;" C CamRemoteScope src/Dodge/Data/Camera.hs 14;" C Camera src/Dodge/Data/Camera.hs 22;" t -CameraScrollTimeFlow src/Dodge/Data/World.hs 71;" C +CameraScrollTimeFlow src/Dodge/Data/World.hs 72;" C CamouflageStatus src/Dodge/Data/CamouflageStatus.hs 5;" t CapacitorBelow src/Dodge/Data/Muzzle.hs 23;" C CapacitorSF src/Dodge/Data/ComposedItem.hs 42;" C @@ -225,7 +225,7 @@ CombEdge src/Dodge/Combine/Graph.hs 30;" t CombItem src/Dodge/Data/Combine.hs 8;" t CombNode src/Dodge/Combine/Graph.hs 23;" t CombineInventory src/Dodge/Data/HUD.hs 22;" C -CombineInventoryChange src/Dodge/Data/World.hs 31;" C +CombineInventoryChange src/Dodge/Data/World.hs 32;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 11;" C @@ -308,7 +308,7 @@ Debris src/Dodge/Data/Prop.hs 25;" t DebrisChunk src/Dodge/Data/Prop.hs 25;" C DebrisType src/Dodge/Data/Prop.hs 21;" t DebugBool src/Dodge/Data/Config.hs 77;" t -DebugItem src/Dodge/Data/Universe.hs 59;" t +DebugItem src/Dodge/Data/Universe.hs 60;" t DebugLayer src/Picture/Data.hs 23;" C Debug_get src/Dodge/Data/Config.hs 80;" C Debug_put src/Dodge/Data/Config.hs 81;" C @@ -394,7 +394,7 @@ Explosive src/Dodge/Data/Damage.hs 25;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 14;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 87;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 13;" C -ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t +ExtraMenuOption src/Dodge/Data/Universe.hs 79;" t Eyes src/Dodge/Data/Creature/Perception.hs 39;" C FBO src/Shader/Data.hs 57;" t FLAMESHIELD src/Dodge/Data/Item/Combine.hs 121;" C @@ -469,7 +469,7 @@ GStuckCreature src/Dodge/Data/Projectile.hs 48;" C GStuckWall src/Dodge/Data/Projectile.hs 49;" C GYROSCOPE src/Dodge/Data/Item/Combine.hs 96;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C -GameOverOptions src/Dodge/Data/Universe.hs 72;" C +GameOverOptions src/Dodge/Data/Universe.hs 75;" C GameRoom src/Dodge/GameRoom.hs 12;" t Gas src/Dodge/Data/Cloud.hs 34;" t GasAmmo src/Dodge/Data/AmmoType.hs 11;" C @@ -513,7 +513,7 @@ HP src/Dodge/Data/Creature.hs 63;" C HUD src/Dodge/Data/HUD.hs 29;" t HalfRes src/Dodge/Data/Config.hs 111;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C -HardQuit src/Dodge/Data/Universe.hs 70;" C +HardQuit src/Dodge/Data/Universe.hs 71;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeldItemType src/Dodge/Data/Item/Combine.hs 138;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C @@ -568,17 +568,17 @@ InanimateAI src/Dodge/Data/Creature/Misc.hs 39;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C InheritFloor src/Data/Tile.hs 12;" C Input src/Dodge/Data/Input.hs 33;" t -InputScreen src/Dodge/Data/Universe.hs 92;" C +InputScreen src/Dodge/Data/Universe.hs 95;" C Inspect_wall src/Dodge/Data/Config.hs 105;" C Institution src/Dodge/Data/Scenario.hs 42;" t Int2 src/Geometry/Data.hs 21;" t -IntID src/Dodge/Data/Universe.hs 110;" t +IntID src/Dodge/Data/Universe.hs 117;" t Intention src/Dodge/Data/Creature.hs 68;" t IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t InvInt src/Dodge/Data/Item/Location.hs 16;" t -InventoryChange src/Dodge/Data/World.hs 30;" C +InventoryChange src/Dodge/Data/World.hs 31;" C InventoryConnectSound src/Dodge/Data/SoundOrigin.hs 12;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C @@ -600,7 +600,7 @@ ItemSF src/Dodge/Data/ComposedItem.hs 12;" t ItemScroll src/Dodge/Data/Item.hs 38;" t ItemScrollInt src/Dodge/Data/Item.hs 40;" C ItemScrollIntRange src/Dodge/Data/Item.hs 41;" C -ItemScrollTimeFlow src/Dodge/Data/World.hs 65;" C +ItemScrollTimeFlow src/Dodge/Data/World.hs 66;" C ItemSound src/Dodge/Data/SoundOrigin.hs 19;" C ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t @@ -667,7 +667,7 @@ ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 150;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C -LoadingScreen src/Dodge/Data/Universe.hs 73;" C +LoadingScreen src/Dodge/Data/Universe.hs 96;" C LocDT src/Dodge/Data/DoubleTree.hs 99;" C LocLDT src/Dodge/Data/DoubleTree.hs 59;" C LocationDT src/Dodge/Data/DoubleTree.hs 99;" t @@ -689,9 +689,9 @@ MICROCHIP src/Dodge/Data/Item/Combine.hs 71;" C MICROPHONE src/Dodge/Data/Item/Combine.hs 82;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 76;" C MINIGUNX src/Dodge/Data/Item/Combine.hs 150;" C -MODBlockedString src/Dodge/Data/Universe.hs 96;" C -MODString src/Dodge/Data/Universe.hs 95;" C -MODStringOption src/Dodge/Data/Universe.hs 97;" C +MODBlockedString src/Dodge/Data/Universe.hs 103;" C +MODString src/Dodge/Data/Universe.hs 102;" C +MODStringOption src/Dodge/Data/Universe.hs 104;" C MOTOR src/Dodge/Data/Item/Combine.hs 63;" C MPO src/Dodge/Base/Collide.hs 96;" t MTRS src/Dodge/Data/MTRS.hs 6;" t @@ -740,8 +740,8 @@ Medium src/Shape/Data.hs 25;" C Melee src/Dodge/Data/ActionPlan.hs 40;" C MeleeStrike src/Dodge/Data/ActionPlan.hs 144;" C Memory src/Dodge/Data/Creature.hs 75;" t -MenuOption src/Dodge/Data/Universe.hs 99;" t -MenuOptionDisplay src/Dodge/Data/Universe.hs 94;" t +MenuOption src/Dodge/Data/Universe.hs 106;" t +MenuOptionDisplay src/Dodge/Data/Universe.hs 101;" t MetaBranch src/Dodge/Data/MetaTree.hs 18;" t MetaNode src/Dodge/Data/MetaTree.hs 14;" t MetaTree src/Dodge/Data/MetaTree.hs 11;" t @@ -809,13 +809,13 @@ NeverUsable src/Dodge/Data/UseCondition.hs 8;" C NewInt src/NewInt.hs 16;" t NewIntMap src/NewInt.hs 22;" t NewIntSet src/NewInt.hs 19;" t -NewSideEffect src/Dodge/Data/Universe.hs 65;" C +NewSideEffect src/Dodge/Data/Universe.hs 66;" C NoAction src/Dodge/Data/ActionPlan.hs 116;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 9;" C -NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" C +NoExtraMenuOption src/Dodge/Data/Universe.hs 82;" C NoFaction src/Dodge/Data/Creature/State.hs 18;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C NoHoming src/Dodge/Data/Projectile.hs 40;" C @@ -841,9 +841,9 @@ NodeMTree src/Dodge/Data/MetaTree.hs 16;" C NodeTree src/Dodge/Data/MetaTree.hs 15;" C NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 82;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C -NormalOptions src/Dodge/Data/Universe.hs 72;" C +NormalOptions src/Dodge/Data/Universe.hs 74;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C -NormalTimeFlow src/Dodge/Data/World.hs 64;" C +NormalTimeFlow src/Dodge/Data/World.hs 65;" C North src/Dodge/Data/CardinalPoint.hs 7;" C North8 src/Dodge/Data/CardinalPoint.hs 28;" C NorthEast src/Dodge/Data/CardinalPoint.hs 21;" C @@ -924,8 +924,8 @@ OnwardCluster src/Dodge/Data/RoomCluster.hs 13;" C Opacity src/Dodge/Data/Wall.hs 30;" t Opaque src/Dodge/Data/Wall.hs 34;" C OpticScope src/Dodge/Data/Item/Scope.hs 12;" C -OptionScreen src/Dodge/Data/Universe.hs 82;" C -OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t +OptionScreen src/Dodge/Data/Universe.hs 85;" C +OptionScreenFlag src/Dodge/Data/Universe.hs 73;" t OutLink src/Dodge/Data/Room.hs 44;" C OutsideTerminal src/Dodge/Data/Input.hs 28;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 12;" C @@ -952,21 +952,22 @@ POISONSPRAYER src/Dodge/Data/Item/Combine.hs 172;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C POWERLEGS src/Dodge/Data/Item/Combine.hs 128;" C PRISM src/Dodge/Data/Item/Combine.hs 65;" C -PS src/Dodge/Data/GenWorld.hs 92;" C -PSNoShiftCont src/Dodge/Data/GenWorld.hs 93;" C -PSPos src/Dodge/Data/GenWorld.hs 94;" C -PSRoomRand src/Dodge/Data/GenWorld.hs 99;" C +PS src/Dodge/Data/GenWorld.hs 91;" C +PSNoShiftCont src/Dodge/Data/GenWorld.hs 92;" C +PSPos src/Dodge/Data/GenWorld.hs 93;" C +PSRoomRand src/Dodge/Data/GenWorld.hs 98;" C PSType src/Dodge/Data/GenWorld.hs 31;" t PUMP src/Dodge/Data/Item/Combine.hs 62;" C PaletteColor src/Color/Data.hs 11;" t -PathBetweenDebugV2s src/Dodge/Data/Universe.hs 56;" C -PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 55;" C +PathBetweenDebugV2s src/Dodge/Data/Universe.hs 57;" C +PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 56;" C PathFromEdge src/Dodge/Data/Room.hs 77;" t -PathShowType src/Dodge/Data/Universe.hs 54;" t +PathShowType src/Dodge/Data/Universe.hs 55;" t PathTo src/Dodge/Data/ActionPlan.hs 70;" C Pathing src/Dodge/Data/Config.hs 89;" C Patrol src/Dodge/Data/ActionPlan.hs 132;" C -PausedTimeFlow src/Dodge/Data/World.hs 80;" C +PauseTimeMessage src/Dodge/Data/World.hs 85;" C +PausedTimeFlow src/Dodge/Data/World.hs 81;" C Payload src/Dodge/Data/Payload.hs 9;" t PenetrateBullet src/Dodge/Data/Bullet.hs 29;" C Perception src/Dodge/Data/Creature/Perception.hs 30;" t @@ -975,8 +976,8 @@ PhysicalSensor src/Dodge/Data/Machine/Sensor.hs 16;" C Picture src/Picture/Data.hs 42;" t Piercing src/Dodge/Data/Damage.hs 16;" C PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C -Placement src/Dodge/Data/GenWorld.hs 105;" t -PlacementSpot src/Dodge/Data/GenWorld.hs 91;" t +Placement src/Dodge/Data/GenWorld.hs 104;" t +PlacementSpot src/Dodge/Data/GenWorld.hs 90;" t PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlayStatus src/Sound/Data.hs 21;" t @@ -1019,27 +1020,27 @@ PulseStatus src/Dodge/Data/Creature/Misc.hs 52;" C PushSource src/Dodge/Data/Door.hs 23;" t PushedBy src/Dodge/Data/Door.hs 25;" C PushesItself src/Dodge/Data/Door.hs 24;" C -PutBlock src/Dodge/Data/GenWorld.hs 44;" C -PutButton src/Dodge/Data/GenWorld.hs 40;" C -PutChasm src/Dodge/Data/GenWorld.hs 61;" C -PutCoord src/Dodge/Data/GenWorld.hs 45;" C +PutBlock src/Dodge/Data/GenWorld.hs 43;" C +PutButton src/Dodge/Data/GenWorld.hs 39;" C +PutChasm src/Dodge/Data/GenWorld.hs 60;" C +PutCoord src/Dodge/Data/GenWorld.hs 44;" C PutCrit src/Dodge/Data/GenWorld.hs 32;" C -PutDoor src/Dodge/Data/GenWorld.hs 55;" C -PutFlIt src/Dodge/Data/GenWorld.hs 43;" C -PutForeground src/Dodge/Data/GenWorld.hs 57;" C -PutID src/Dodge/Data/GenWorld.hs 60;" C -PutLS src/Dodge/Data/GenWorld.hs 39;" C -PutLabel src/Dodge/Data/GenWorld.hs 62;" C -PutLineBlock src/Dodge/Data/GenWorld.hs 48;" C +PutDoor src/Dodge/Data/GenWorld.hs 54;" C +PutFlIt src/Dodge/Data/GenWorld.hs 42;" C +PutForeground src/Dodge/Data/GenWorld.hs 56;" C +PutID src/Dodge/Data/GenWorld.hs 59;" C +PutLS src/Dodge/Data/GenWorld.hs 38;" C +PutLabel src/Dodge/Data/GenWorld.hs 61;" C +PutLineBlock src/Dodge/Data/GenWorld.hs 47;" C PutMachine src/Dodge/Data/GenWorld.hs 33;" C -PutMod src/Dodge/Data/GenWorld.hs 46;" C -PutNothing src/Dodge/Data/GenWorld.hs 59;" C +PutMod src/Dodge/Data/GenWorld.hs 45;" C +PutNothing src/Dodge/Data/GenWorld.hs 58;" C PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 19;" C -PutProp src/Dodge/Data/GenWorld.hs 41;" C -PutTerminal src/Dodge/Data/GenWorld.hs 42;" C -PutTrigger src/Dodge/Data/GenWorld.hs 47;" C -PutWall src/Dodge/Data/GenWorld.hs 54;" C -PutWorldUpdate src/Dodge/Data/GenWorld.hs 58;" C +PutProp src/Dodge/Data/GenWorld.hs 40;" C +PutTerminal src/Dodge/Data/GenWorld.hs 41;" C +PutTrigger src/Dodge/Data/GenWorld.hs 46;" C +PutWall src/Dodge/Data/GenWorld.hs 53;" C +PutWorldUpdate src/Dodge/Data/GenWorld.hs 57;" C QFloat src/Geometry/Data.hs 50;" t QuarterRes src/Dodge/Data/Config.hs 111;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C @@ -1063,7 +1064,7 @@ RadialDistortion src/Dodge/Data/Distortion.hs 11;" C RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C -RandPS src/Dodge/Data/GenWorld.hs 56;" C +RandPS src/Dodge/Data/GenWorld.hs 55;" C RandomImpulse src/Dodge/Data/ActionPlan.hs 31;" C RandomTurn src/Dodge/Data/ActionPlan.hs 30;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C @@ -1085,11 +1086,11 @@ RequireHealth src/Dodge/Data/Machine/Sensor.hs 35;" C ResFactor src/Dodge/Data/Config.hs 111;" t ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C -RespawnDelay src/Dodge/Data/World.hs 62;" C +RespawnDelay src/Dodge/Data/World.hs 63;" C RetailFacility src/Dodge/Data/Scenario.hs 67;" C RetiredProjectile src/Dodge/Data/Projectile.hs 36;" C Revenge src/Dodge/Data/Scenario.hs 6;" C -RewindLeftClick src/Dodge/Data/World.hs 76;" C +RewindLeftClick src/Dodge/Data/World.hs 77;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C RightButtonState src/Dodge/Data/RightButtonOptions.hs 13;" t RightForward src/Dodge/Data/Creature/Stance.hs 30;" C @@ -1099,7 +1100,7 @@ Rocket src/Dodge/Data/Projectile.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 39;" t RocketSmoke src/Dodge/Data/Projectile.hs 52;" t RocketSmoke src/Dodge/Data/Cloud.hs 22;" C -Room src/Dodge/Data/GenWorld.hs 120;" t +Room src/Dodge/Data/GenWorld.hs 119;" t RoomClipping src/Dodge/Data/Config.hs 121;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomLink src/Dodge/Data/Room.hs 24;" t @@ -1112,7 +1113,7 @@ RoomProperties src/Dodge/Layout/Generate.hs 13;" t RoomType src/Dodge/Data/Room.hs 31;" t RoomWire src/Dodge/Data/Room.hs 53;" t RoundedFaces src/Shape/Data.hs 13;" C -RunningSideEffect src/Dodge/Data/Universe.hs 69;" C +RunningSideEffect src/Dodge/Data/Universe.hs 70;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C SHATTERGUN src/Dodge/Data/Item/Combine.hs 173;" C SHELLMAG src/Dodge/Data/Item/Combine.hs 109;" C @@ -1134,7 +1135,7 @@ STICKYMOD src/Dodge/Data/Item/Combine.hs 23;" C SaveSlot src/Dodge/Data/SaveSlot.hs 7;" t SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C Scope src/Dodge/Data/Item/Scope.hs 11;" t -ScreenLayer src/Dodge/Data/Universe.hs 81;" t +ScreenLayer src/Dodge/Data/Universe.hs 84;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t Search src/Dodge/Data/ActionPlan.hs 145;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C @@ -1193,7 +1194,7 @@ ShrapnelBomb src/Dodge/Data/Payload.hs 10;" C ShrinkGunStatus src/Dodge/Data/Item/Params.hs 26;" t Shrunk src/Dodge/Data/Item/Params.hs 26;" C SideCluster src/Dodge/Data/RoomCluster.hs 13;" C -SideEffect src/Dodge/Data/Universe.hs 64;" t +SideEffect src/Dodge/Data/Universe.hs 65;" t SimpleEdge src/Dodge/Data/PathGraph.hs 43;" t SixteenthRes src/Dodge/Data/Config.hs 111;" C Size src/Shape/Data.hs 23;" t @@ -1229,7 +1230,7 @@ Sparking src/Dodge/Data/Damage.hs 18;" C Spatial src/Dodge/Data/Scenario.hs 73;" C SpatialInfluence src/Dodge/Data/Scenario.hs 81;" t SpawnedBy src/Dodge/Data/Creature/State.hs 17;" C -SplashOptions src/Dodge/Data/Universe.hs 72;" C +SplashOptions src/Dodge/Data/Universe.hs 76;" C SplitBeamCombine src/Dodge/Data/Beam.hs 40;" C SpreadGunAI src/Dodge/Data/Creature/Misc.hs 40;" C StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C @@ -1310,7 +1311,7 @@ TextShad src/Picture/Data.hs 33;" C ThermalSensor src/Dodge/Data/Machine/Sensor.hs 15;" C Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C -TimeFlowStatus src/Dodge/Data/World.hs 61;" t +TimeFlowStatus src/Dodge/Data/World.hs 62;" t Tiny src/Shape/Data.hs 27;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 60;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 61;" C @@ -1327,12 +1328,12 @@ ToPlaySound src/Sound/Data.hs 33;" t ToStart src/Sound/Data.hs 24;" C ToStartMenu src/Sound/Data.hs 27;" C ToStop src/Sound/Data.hs 26;" C -Toggle src/Dodge/Data/Universe.hs 100;" C -Toggle2 src/Dodge/Data/Universe.hs 104;" C +Toggle src/Dodge/Data/Universe.hs 107;" C +Toggle2 src/Dodge/Data/Universe.hs 111;" C ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C TopDT src/Dodge/Data/DoubleTree.hs 83;" C TopLDT src/Dodge/Data/DoubleTree.hs 41;" C -TopMenuOption src/Dodge/Data/Universe.hs 78;" C +TopMenuOption src/Dodge/Data/Universe.hs 81;" C TorchSF src/Dodge/Data/ComposedItem.hs 45;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorqueCr src/Dodge/Data/WorldEffect.hs 29;" C @@ -1367,7 +1368,7 @@ UnderSea src/Dodge/Data/Scenario.hs 77;" C Undesired src/Shape/Data.hs 34;" C UniRandFloat src/Dodge/Data/GenFloat.hs 10;" C Unimportant src/Shape/Data.hs 32;" C -Universe src/Dodge/Data/Universe.hs 30;" t +Universe src/Dodge/Data/Universe.hs 31;" t UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C UnlockInv src/Dodge/Data/WorldEffect.hs 26;" C UnusedLink src/Dodge/Data/Room.hs 68;" C @@ -1471,9 +1472,9 @@ West src/Dodge/Data/CardinalPoint.hs 10;" C West8 src/Dodge/Data/CardinalPoint.hs 34;" C WlID src/Dodge/Data/CrWlID.hs 10;" C Wood src/Dodge/Data/Material.hs 11;" C -World src/Dodge/Data/World.hs 34;" t +World src/Dodge/Data/World.hs 35;" t WorldEffects src/Dodge/Data/WorldEffect.hs 23;" C -WorldEventFlag src/Dodge/Data/World.hs 29;" t +WorldEventFlag src/Dodge/Data/World.hs 30;" t WorldGovernment src/Dodge/Data/Scenario.hs 52;" C XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t YELLOW src/Color/Data.hs 15;" C @@ -1573,7 +1574,7 @@ _burstFrames src/Dodge/Data/TriggerType.hs 12;" f _burstRate src/Dodge/Data/TriggerType.hs 12;" f _buttons src/Dodge/Data/LWorld.hs 132;" f _cClock src/Dodge/Data/CWorld.hs 26;" f -_cWorld src/Dodge/Data/World.hs 35;" f +_cWorld src/Dodge/Data/World.hs 36;" f _camBoundBox src/Dodge/Data/Camera.hs 30;" f _camBoundDist src/Dodge/Data/Camera.hs 31;" f _camCenter src/Dodge/Data/Camera.hs 23;" f @@ -1596,8 +1597,8 @@ _cdtParent src/Dodge/Data/DoubleTree.hs 87;" f _cdtParent src/Dodge/Data/DoubleTree.hs 95;" f _cdtUp src/Dodge/Data/DoubleTree.hs 85;" f _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f -_ceSideEffect src/Dodge/Data/Universe.hs 66;" f -_ceString src/Dodge/Data/Universe.hs 67;" f +_ceSideEffect src/Dodge/Data/Universe.hs 67;" f +_ceString src/Dodge/Data/Universe.hs 68;" f _ceilingStencilShader src/Data/Preload/Render.hs 19;" f _chasmShader src/Data/Preload/Render.hs 48;" f _chasmVBO src/Data/Preload/Render.hs 47;" f @@ -1612,7 +1613,7 @@ _clPos src/Dodge/Data/Cloud.hs 13;" f _clTimer src/Dodge/Data/Cloud.hs 15;" f _clType src/Dodge/Data/Cloud.hs 16;" f _clVel src/Dodge/Data/Cloud.hs 14;" f -_clZoning src/Dodge/Data/World.hs 47;" f +_clZoning src/Dodge/Data/World.hs 48;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 44;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 53;" f _cldtCloseRight src/Dodge/Data/DoubleTree.hs 47;" f @@ -1635,7 +1636,7 @@ _clouds src/Dodge/Data/LWorld.hs 96;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 22;" f _coolStart src/Dodge/Data/TriggerType.hs 16;" f -_coordinates src/Dodge/Data/World.hs 58;" f +_coordinates src/Dodge/Data/World.hs 59;" f _cpAttention src/Dodge/Data/Creature/Perception.hs 32;" f _cpAudition src/Dodge/Data/Creature/Perception.hs 35;" f _cpAwareness src/Dodge/Data/Creature/Perception.hs 33;" f @@ -1673,7 +1674,7 @@ _crStance src/Dodge/Data/Creature.hs 50;" f _crType src/Dodge/Data/Creature.hs 42;" f _crVocalization src/Dodge/Data/Creature.hs 54;" f _crZVel src/Dodge/Data/Creature.hs 38;" f -_crZoning src/Dodge/Data/World.hs 46;" f +_crZoning src/Dodge/Data/World.hs 47;" f _creatureGroups src/Dodge/Data/LWorld.hs 94;" f _creatures src/Dodge/Data/LWorld.hs 93;" f _csLinks src/Dodge/Data/RoomCluster.hs 10;" f @@ -1693,8 +1694,8 @@ _dbSpin src/Dodge/Data/Prop.hs 30;" f _dbType src/Dodge/Data/Prop.hs 27;" f _dbVel src/Dodge/Data/Prop.hs 28;" f _debris src/Dodge/Data/LWorld.hs 101;" f -_debugFunction src/Dodge/Data/Universe.hs 61;" f -_debugMessage src/Dodge/Data/Universe.hs 60;" f +_debugFunction src/Dodge/Data/Universe.hs 62;" f +_debugMessage src/Dodge/Data/Universe.hs 61;" f _debug_booleans src/Dodge/Data/Config.hs 68;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 67;" f _delayedEvents src/Dodge/Data/LWorld.hs 131;" f @@ -1755,7 +1756,7 @@ _dsPos src/Dodge/Data/Cloud.hs 27;" f _dsTimer src/Dodge/Data/Cloud.hs 29;" f _dsType src/Dodge/Data/Cloud.hs 30;" f _dsVel src/Dodge/Data/Cloud.hs 28;" f -_dsZoning src/Dodge/Data/World.hs 49;" f +_dsZoning src/Dodge/Data/World.hs 50;" f _dtLeft src/Dodge/Data/DoubleTree.hs 29;" f _dtRight src/Dodge/Data/DoubleTree.hs 29;" f _dtValue src/Dodge/Data/DoubleTree.hs 29;" f @@ -1765,7 +1766,7 @@ _ebPos src/Dodge/Data/EnergyBall.hs 17;" f _ebTimer src/Dodge/Data/EnergyBall.hs 18;" f _ebType src/Dodge/Data/EnergyBall.hs 19;" f _ebVel src/Dodge/Data/EnergyBall.hs 16;" f -_emoMenuOption src/Dodge/Data/Universe.hs 77;" f +_emoMenuOption src/Dodge/Data/Universe.hs 80;" f _energyBalls src/Dodge/Data/LWorld.hs 105;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f @@ -1797,10 +1798,10 @@ _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f _fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f _fullscreenShader src/Data/Preload/Render.hs 23;" f -_futureWorlds src/Dodge/Data/World.hs 68;" f -_futureWorlds src/Dodge/Data/World.hs 74;" f +_futureWorlds src/Dodge/Data/World.hs 69;" f +_futureWorlds src/Dodge/Data/World.hs 75;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 66;" f -_gasZoning src/Dodge/Data/World.hs 48;" f +_gasZoning src/Dodge/Data/World.hs 49;" f _gasses src/Dodge/Data/LWorld.hs 98;" f _genInts src/Dodge/Data/GenWorld.hs 27;" f _genPmnt src/Dodge/Data/GenWorld.hs 26;" f @@ -1835,7 +1836,7 @@ _gsPos src/Dodge/Data/Cloud.hs 35;" f _gsTimer src/Dodge/Data/Cloud.hs 37;" f _gsType src/Dodge/Data/Cloud.hs 38;" f _gsVel src/Dodge/Data/Cloud.hs 36;" f -_gsZoning src/Dodge/Data/World.hs 55;" f +_gsZoning src/Dodge/Data/World.hs 56;" f _guID src/Dodge/Data/Gust.hs 12;" f _guPos src/Dodge/Data/Gust.hs 13;" f _guTime src/Dodge/Data/Gust.hs 15;" f @@ -1845,7 +1846,7 @@ _gwWorld src/Dodge/Data/GenWorld.hs 24;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f _hotkeys src/Dodge/Data/LWorld.hs 142;" f -_hud src/Dodge/Data/World.hs 44;" f +_hud src/Dodge/Data/World.hs 45;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 79;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 19;" f @@ -1872,12 +1873,12 @@ _immediateEffect src/Loop/Data.hs 9;" f _immediateUpdate src/Loop/Data.hs 12;" f _impulseUseTarget src/Dodge/Data/ActionPlan.hs 45;" f _impulsesListList src/Dodge/Data/ActionPlan.hs 72;" f -_incEdgeZoning src/Dodge/Data/World.hs 54;" f +_incEdgeZoning src/Dodge/Data/World.hs 55;" f _incEdges src/Dodge/Data/CWorld.hs 31;" f _incGraph src/Dodge/Data/CWorld.hs 29;" f _incNode src/Dodge/Data/CWorld.hs 30;" f -_incNodeZoning src/Dodge/Data/World.hs 53;" f -_input src/Dodge/Data/World.hs 41;" f +_incNodeZoning src/Dodge/Data/World.hs 54;" f +_input src/Dodge/Data/World.hs 42;" f _isWarming src/Dodge/Data/Item/Params.hs 21;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" f @@ -1998,13 +1999,13 @@ _meleeCooldown src/Dodge/Data/Creature/Misc.hs 68;" f _meleeTarget src/Dodge/Data/ActionPlan.hs 139;" f _mgField src/Dodge/Data/Magnet.hs 23;" f _mgPos src/Dodge/Data/Magnet.hs 22;" f -_moEff src/Dodge/Data/Universe.hs 101;" f -_moEff1 src/Dodge/Data/Universe.hs 105;" f -_moEff2 src/Dodge/Data/Universe.hs 106;" f -_moString src/Dodge/Data/Universe.hs 102;" f -_moString src/Dodge/Data/Universe.hs 107;" f -_modOption src/Dodge/Data/Universe.hs 97;" f -_modString src/Dodge/Data/Universe.hs 95;" f +_moEff src/Dodge/Data/Universe.hs 108;" f +_moEff1 src/Dodge/Data/Universe.hs 112;" f +_moEff2 src/Dodge/Data/Universe.hs 113;" f +_moString src/Dodge/Data/Universe.hs 109;" f +_moString src/Dodge/Data/Universe.hs 114;" f +_modOption src/Dodge/Data/Universe.hs 104;" f +_modString src/Dodge/Data/Universe.hs 102;" f _modifications src/Dodge/Data/LWorld.hs 129;" f _mouseButtons src/Dodge/Data/Input.hs 38;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f @@ -2049,8 +2050,10 @@ _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 18;" f _opticPos src/Dodge/Data/Item/Scope.hs 14;" f _opticZoom src/Dodge/Data/Item/Scope.hs 17;" f _partialAction src/Dodge/Data/ActionPlan.hs 111;" f -_pastWorlds src/Dodge/Data/World.hs 36;" f +_pastWorlds src/Dodge/Data/World.hs 37;" f _pathToPoint src/Dodge/Data/ActionPlan.hs 70;" f +_pauseTimeMesage src/Dodge/Data/World.hs 86;" f +_pauseTimeMesageColor src/Dodge/Data/World.hs 87;" f _pbID src/Dodge/Data/PulseLaser.hs 24;" f _pbPos src/Dodge/Data/PulseLaser.hs 22;" f _pbTimer src/Dodge/Data/PulseLaser.hs 23;" f @@ -2072,13 +2075,13 @@ _pjSpin src/Dodge/Data/Projectile.hs 19;" f _pjTimer src/Dodge/Data/Projectile.hs 22;" f _pjType src/Dodge/Data/Projectile.hs 24;" f _pjVel src/Dodge/Data/Projectile.hs 17;" f -_plExternalID src/Dodge/Data/GenWorld.hs 109;" f -_plIDCont src/Dodge/Data/GenWorld.hs 110;" f -_plMID src/Dodge/Data/GenWorld.hs 108;" f -_plSpot src/Dodge/Data/GenWorld.hs 106;" f -_plType src/Dodge/Data/GenWorld.hs 107;" f +_plExternalID src/Dodge/Data/GenWorld.hs 108;" f +_plIDCont src/Dodge/Data/GenWorld.hs 109;" f +_plMID src/Dodge/Data/GenWorld.hs 107;" f +_plSpot src/Dodge/Data/GenWorld.hs 105;" f +_plType src/Dodge/Data/GenWorld.hs 106;" f _playStatus src/Sound/Data.hs 15;" f -_playingSounds src/Dodge/Data/World.hs 40;" f +_playingSounds src/Dodge/Data/World.hs 41;" f _posture src/Dodge/Data/Creature/Stance.hs 17;" f _prBounds src/Dodge/Tree/Shift.hs 29;" f _prDraw src/Dodge/Data/Prop.hs 16;" f @@ -2086,7 +2089,7 @@ _prID src/Dodge/Data/Prop.hs 17;" f _prPos src/Dodge/Data/Prop.hs 15;" f _prRooms src/Dodge/Tree/Shift.hs 30;" f _prRot src/Dodge/Data/Prop.hs 18;" f -_preloadData src/Dodge/Data/Universe.hs 32;" f +_preloadData src/Dodge/Data/Universe.hs 33;" f _pressedKeys src/Dodge/Data/Input.hs 37;" f _projectiles src/Dodge/Data/LWorld.hs 102;" f _props src/Dodge/Data/LWorld.hs 100;" f @@ -2095,37 +2098,37 @@ _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 36;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 35;" f _proxSensorType src/Dodge/Data/Machine/Sensor.hs 26;" f _proxToggle src/Dodge/Data/Machine/Sensor.hs 27;" f -_psFallback src/Dodge/Data/GenWorld.hs 97;" f -_psPos src/Dodge/Data/GenWorld.hs 92;" f -_psRandShift src/Dodge/Data/GenWorld.hs 101;" f -_psRoomEff src/Dodge/Data/GenWorld.hs 96;" f -_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 100;" f -_psRot src/Dodge/Data/GenWorld.hs 92;" f -_psSelect src/Dodge/Data/GenWorld.hs 95;" f +_psFallback src/Dodge/Data/GenWorld.hs 96;" f +_psPos src/Dodge/Data/GenWorld.hs 91;" f +_psRandShift src/Dodge/Data/GenWorld.hs 100;" f +_psRoomEff src/Dodge/Data/GenWorld.hs 95;" f +_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 99;" f +_psRot src/Dodge/Data/GenWorld.hs 91;" f +_psSelect src/Dodge/Data/GenWorld.hs 94;" f _pullWallShader src/Data/Preload/Render.hs 22;" f _pulseBalls src/Dodge/Data/LWorld.hs 116;" f _pulseLasers src/Dodge/Data/LWorld.hs 115;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f -_putBlock src/Dodge/Data/GenWorld.hs 44;" f -_putButton src/Dodge/Data/GenWorld.hs 40;" f -_putChasmPoly src/Dodge/Data/GenWorld.hs 61;" f -_putDoorDoor src/Dodge/Data/GenWorld.hs 55;" f -_putDoorWall src/Dodge/Data/GenWorld.hs 55;" f -_putEndPoint src/Dodge/Data/GenWorld.hs 52;" f -_putID src/Dodge/Data/GenWorld.hs 60;" f -_putItem src/Dodge/Data/GenWorld.hs 43;" f -_putLabel src/Dodge/Data/GenWorld.hs 62;" f +_putBlock src/Dodge/Data/GenWorld.hs 43;" f +_putButton src/Dodge/Data/GenWorld.hs 39;" f +_putChasmPoly src/Dodge/Data/GenWorld.hs 60;" f +_putDoorDoor src/Dodge/Data/GenWorld.hs 54;" f +_putDoorWall src/Dodge/Data/GenWorld.hs 54;" f +_putEndPoint src/Dodge/Data/GenWorld.hs 51;" f +_putID src/Dodge/Data/GenWorld.hs 59;" f +_putItem src/Dodge/Data/GenWorld.hs 42;" f +_putLabel src/Dodge/Data/GenWorld.hs 61;" f _putMachineMachine src/Dodge/Data/GenWorld.hs 35;" f -_putMachineMaybeItem src/Dodge/Data/GenWorld.hs 37;" f +_putMachineMaybeItem src/Dodge/Data/GenWorld.hs 36;" f _putMachinePoly src/Dodge/Data/GenWorld.hs 34;" f -_putPoly src/Dodge/Data/GenWorld.hs 44;" f -_putStartPoint src/Dodge/Data/GenWorld.hs 51;" f -_putWall src/Dodge/Data/GenWorld.hs 44;" f -_putWall src/Dodge/Data/GenWorld.hs 49;" f -_putWidth src/Dodge/Data/GenWorld.hs 50;" f -_pwPoly src/Dodge/Data/GenWorld.hs 54;" f -_pwWall src/Dodge/Data/GenWorld.hs 54;" f +_putPoly src/Dodge/Data/GenWorld.hs 43;" f +_putStartPoint src/Dodge/Data/GenWorld.hs 50;" f +_putWall src/Dodge/Data/GenWorld.hs 43;" f +_putWall src/Dodge/Data/GenWorld.hs 48;" f +_putWidth src/Dodge/Data/GenWorld.hs 49;" f +_pwPoly src/Dodge/Data/GenWorld.hs 53;" f +_pwWall src/Dodge/Data/GenWorld.hs 53;" f _pyFaces src/Polyhedra/Data.hs 14;" f _pzDamage src/Dodge/Data/PulseLaser.hs 15;" f _pzDir src/Dodge/Data/PulseLaser.hs 14;" f @@ -2134,12 +2137,12 @@ _pzPos src/Dodge/Data/PulseLaser.hs 13;" f _pzTimer src/Dodge/Data/PulseLaser.hs 16;" f _radarBlips src/Dodge/Data/LWorld.hs 108;" f _radarSweeps src/Dodge/Data/LWorld.hs 104;" f -_randGen src/Dodge/Data/World.hs 38;" f +_randGen src/Dodge/Data/World.hs 39;" f _rbColor src/Dodge/Data/RadarBlip.hs 13;" f _rbMaxTime src/Dodge/Data/RadarBlip.hs 15;" f _rbPos src/Dodge/Data/RadarBlip.hs 17;" f _rbRad src/Dodge/Data/RadarBlip.hs 16;" f -_rbState src/Dodge/Data/World.hs 43;" f +_rbState src/Dodge/Data/World.hs 44;" f _rbTime src/Dodge/Data/RadarBlip.hs 14;" f _rboBaseBloom src/Data/Preload/Render.hs 41;" f _rdDist1 src/Dodge/Data/Distortion.hs 13;" f @@ -2150,38 +2153,38 @@ _rdTG src/Dodge/Data/Distortion.hs 17;" f _rdTR src/Dodge/Data/Distortion.hs 15;" f _rdTime src/Dodge/Data/Distortion.hs 27;" f _renderData src/Data/Preload.hs 11;" f -_respawnDelay src/Dodge/Data/World.hs 63;" f +_respawnDelay src/Dodge/Data/World.hs 64;" f _respawnPos src/Dodge/Data/LWorld.hs 146;" f -_reverseAmount src/Dodge/Data/World.hs 67;" f -_reverseAmount src/Dodge/Data/World.hs 73;" f -_reverseAmount src/Dodge/Data/World.hs 77;" f +_reverseAmount src/Dodge/Data/World.hs 68;" f +_reverseAmount src/Dodge/Data/World.hs 74;" f +_reverseAmount src/Dodge/Data/World.hs 78;" f _rkHoming src/Dodge/Data/Projectile.hs 33;" f _rkSmoke src/Dodge/Data/Projectile.hs 34;" f _rlDir src/Dodge/Data/Room.hs 27;" f _rlPos src/Dodge/Data/Room.hs 26;" f _rlType src/Dodge/Data/Room.hs 25;" f -_rmBound src/Dodge/Data/GenWorld.hs 135;" f -_rmChildren src/Dodge/Data/GenWorld.hs 146;" f -_rmClusterStatus src/Dodge/Data/GenWorld.hs 148;" f -_rmConnectsTo src/Dodge/Data/GenWorld.hs 143;" f -_rmEndWires src/Dodge/Data/GenWorld.hs 142;" f -_rmFloor src/Dodge/Data/GenWorld.hs 136;" f +_rmBound src/Dodge/Data/GenWorld.hs 134;" f +_rmChildren src/Dodge/Data/GenWorld.hs 145;" f +_rmClusterStatus src/Dodge/Data/GenWorld.hs 147;" f +_rmConnectsTo src/Dodge/Data/GenWorld.hs 142;" f +_rmEndWires src/Dodge/Data/GenWorld.hs 141;" f +_rmFloor src/Dodge/Data/GenWorld.hs 135;" f _rmHeight src/Dodge/Data/Room.hs 39;" f -_rmInPmnt src/Dodge/Data/GenWorld.hs 134;" f -_rmLinkEff src/Dodge/Data/GenWorld.hs 124;" f -_rmLinks src/Dodge/Data/GenWorld.hs 122;" f -_rmMID src/Dodge/Data/GenWorld.hs 144;" f -_rmMParent src/Dodge/Data/GenWorld.hs 145;" f -_rmName src/Dodge/Data/GenWorld.hs 137;" f -_rmPath src/Dodge/Data/GenWorld.hs 132;" f -_rmPmnts src/Dodge/Data/GenWorld.hs 133;" f -_rmPolys src/Dodge/Data/GenWorld.hs 121;" f -_rmPos src/Dodge/Data/GenWorld.hs 131;" f -_rmRandPSs src/Dodge/Data/GenWorld.hs 140;" f -_rmShift src/Dodge/Data/GenWorld.hs 138;" f -_rmStartWires src/Dodge/Data/GenWorld.hs 141;" f -_rmType src/Dodge/Data/GenWorld.hs 147;" f -_rmViewpoints src/Dodge/Data/GenWorld.hs 139;" f +_rmInPmnt src/Dodge/Data/GenWorld.hs 133;" f +_rmLinkEff src/Dodge/Data/GenWorld.hs 123;" f +_rmLinks src/Dodge/Data/GenWorld.hs 121;" f +_rmMID src/Dodge/Data/GenWorld.hs 143;" f +_rmMParent src/Dodge/Data/GenWorld.hs 144;" f +_rmName src/Dodge/Data/GenWorld.hs 136;" f +_rmPath src/Dodge/Data/GenWorld.hs 131;" f +_rmPmnts src/Dodge/Data/GenWorld.hs 132;" f +_rmPolys src/Dodge/Data/GenWorld.hs 120;" f +_rmPos src/Dodge/Data/GenWorld.hs 130;" f +_rmRandPSs src/Dodge/Data/GenWorld.hs 139;" f +_rmShift src/Dodge/Data/GenWorld.hs 137;" f +_rmStartWires src/Dodge/Data/GenWorld.hs 140;" f +_rmType src/Dodge/Data/GenWorld.hs 146;" f +_rmViewpoints src/Dodge/Data/GenWorld.hs 138;" f _rmWidth src/Dodge/Data/Room.hs 38;" f _rpDir src/Dodge/Data/Room.hs 17;" f _rpFlags src/Dodge/Data/Room.hs 18;" f @@ -2202,21 +2205,23 @@ _rsPos src/Dodge/Data/RadarSweep.hs 18;" f _rsRad src/Dodge/Data/RadarSweep.hs 19;" f _rsSource src/Dodge/Data/RadarSweep.hs 24;" f _rsTimer src/Dodge/Data/RadarSweep.hs 21;" f -_scAvailableLines src/Dodge/Data/Universe.hs 89;" f -_scDisplayTime src/Dodge/Data/Universe.hs 90;" f -_scInput src/Dodge/Data/Universe.hs 92;" f -_scOffset src/Dodge/Data/Universe.hs 85;" f -_scOptionFlag src/Dodge/Data/Universe.hs 87;" f -_scOptions src/Dodge/Data/Universe.hs 84;" f -_scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f -_scSelectionList src/Dodge/Data/Universe.hs 88;" f -_scTitle src/Dodge/Data/Universe.hs 83;" f +_scAvailableLines src/Dodge/Data/Universe.hs 92;" f +_scContinue src/Dodge/Data/Universe.hs 98;" f +_scDisplayTime src/Dodge/Data/Universe.hs 93;" f +_scInput src/Dodge/Data/Universe.hs 95;" f +_scOffset src/Dodge/Data/Universe.hs 88;" f +_scOptionFlag src/Dodge/Data/Universe.hs 90;" f +_scOptions src/Dodge/Data/Universe.hs 87;" f +_scPara src/Dodge/Data/Universe.hs 97;" f +_scPositionedMenuOption src/Dodge/Data/Universe.hs 89;" f +_scSelectionList src/Dodge/Data/Universe.hs 91;" f +_scTitle src/Dodge/Data/Universe.hs 86;" f _scrollAmount src/Dodge/Data/Input.hs 40;" f -_scrollItemID src/Dodge/Data/World.hs 69;" f -_scrollItemID src/Dodge/Data/World.hs 78;" f -_scrollItemID src/Dodge/Data/World.hs 82;" f -_scrollSmoothing src/Dodge/Data/World.hs 66;" f -_scrollSmoothing src/Dodge/Data/World.hs 72;" f +_scrollItemID src/Dodge/Data/World.hs 70;" f +_scrollItemID src/Dodge/Data/World.hs 79;" f +_scrollItemID src/Dodge/Data/World.hs 83;" f +_scrollSmoothing src/Dodge/Data/World.hs 67;" f +_scrollSmoothing src/Dodge/Data/World.hs 73;" f _scrollTestFloat src/Dodge/Data/Input.hs 47;" f _scrollTestInt src/Dodge/Data/Input.hs 48;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f @@ -2319,7 +2324,7 @@ _tempSPic src/Dodge/Data/LWorld.hs 110;" f _termID src/Dodge/Data/HUD.hs 27;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 111;" f -_testFloat src/Dodge/Data/World.hs 42;" f +_testFloat src/Dodge/Data/World.hs 43;" f _textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f _textureObject src/Shader/Data.hs 103;" f @@ -2329,8 +2334,8 @@ _tilePoly src/Data/Tile.hs 17;" f _tileTangentPos src/Data/Tile.hs 23;" f _tileZero src/Data/Tile.hs 19;" f _tiles src/Data/Tile.hs 14;" f -_timeFlow src/Dodge/Data/World.hs 37;" f -_timeFlowCharge src/Dodge/Data/World.hs 81;" f +_timeFlow src/Dodge/Data/World.hs 38;" f +_timeFlowCharge src/Dodge/Data/World.hs 82;" f _tlEffect src/Dodge/Data/Terminal.hs 39;" f _tlPause src/Dodge/Data/Terminal.hs 37;" f _tlString src/Dodge/Data/Terminal.hs 38;" f @@ -2352,7 +2357,7 @@ _toPlaySoundStatus src/Sound/Data.hs 35;" f _toPlaySoundTime src/Sound/Data.hs 34;" f _toPlaySoundVolume src/Sound/Data.hs 37;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 38;" f -_toPlaySounds src/Dodge/Data/World.hs 39;" f +_toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 12;" f _tptString src/Dodge/Data/Terminal/Status.hs 15;" f _tractorBeams src/Dodge/Data/LWorld.hs 118;" f @@ -2384,8 +2389,8 @@ _unST src/Dodge/Data/MetaTree.hs 20;" f _unTO src/Shader/Data.hs 59;" f _unVAO src/Shader/Data.hs 64;" f _unfiredBarrels src/Dodge/Data/Item/Params.hs 17;" f -_unpauseClock src/Dodge/Data/World.hs 57;" f -_unputTerminal src/Dodge/Data/GenWorld.hs 42;" f +_unpauseClock src/Dodge/Data/World.hs 58;" f +_unputTerminal src/Dodge/Data/GenWorld.hs 41;" f _upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 62;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f @@ -2393,26 +2398,26 @@ _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f _useSelf src/Dodge/Data/ActionPlan.hs 118;" f _useToggle src/Dodge/Data/Item/Use.hs 36;" f _useUpTo src/Dodge/Data/Muzzle.hs 63;" f -_uvCanContinue src/Dodge/Data/Universe.hs 38;" f -_uvConfig src/Dodge/Data/Universe.hs 36;" f -_uvDebug src/Dodge/Data/Universe.hs 43;" f -_uvDebugFloat1 src/Dodge/Data/Universe.hs 44;" f -_uvDebugFloat2 src/Dodge/Data/Universe.hs 45;" f -_uvDebugMessageOffset src/Dodge/Data/Universe.hs 50;" f -_uvDebugPathShowType src/Dodge/Data/Universe.hs 49;" f -_uvDebugPut src/Dodge/Data/Universe.hs 48;" f -_uvDebugV2_1 src/Dodge/Data/Universe.hs 46;" f -_uvDebugV2_2 src/Dodge/Data/Universe.hs 47;" f -_uvFrameTicks src/Dodge/Data/Universe.hs 41;" f -_uvIOEffects src/Dodge/Data/Universe.hs 34;" f -_uvLastFrameTicks src/Dodge/Data/Universe.hs 40;" f -_uvMSeed src/Dodge/Data/Universe.hs 39;" f -_uvRAMSave src/Dodge/Data/Universe.hs 42;" f -_uvScreenLayers src/Dodge/Data/Universe.hs 33;" f -_uvSideEffects src/Dodge/Data/Universe.hs 35;" f -_uvSoundQueue src/Dodge/Data/Universe.hs 51;" f -_uvTestString src/Dodge/Data/Universe.hs 37;" f -_uvWorld src/Dodge/Data/Universe.hs 31;" f +_uvCanContinue src/Dodge/Data/Universe.hs 39;" f +_uvConfig src/Dodge/Data/Universe.hs 37;" f +_uvDebug src/Dodge/Data/Universe.hs 44;" f +_uvDebugFloat1 src/Dodge/Data/Universe.hs 45;" f +_uvDebugFloat2 src/Dodge/Data/Universe.hs 46;" f +_uvDebugMessageOffset src/Dodge/Data/Universe.hs 51;" f +_uvDebugPathShowType src/Dodge/Data/Universe.hs 50;" f +_uvDebugPut src/Dodge/Data/Universe.hs 49;" f +_uvDebugV2_1 src/Dodge/Data/Universe.hs 47;" f +_uvDebugV2_2 src/Dodge/Data/Universe.hs 48;" f +_uvFrameTicks src/Dodge/Data/Universe.hs 42;" f +_uvIOEffects src/Dodge/Data/Universe.hs 35;" f +_uvLastFrameTicks src/Dodge/Data/Universe.hs 41;" f +_uvMSeed src/Dodge/Data/Universe.hs 40;" f +_uvRAMSave src/Dodge/Data/Universe.hs 43;" f +_uvScreenLayers src/Dodge/Data/Universe.hs 34;" f +_uvSideEffects src/Dodge/Data/Universe.hs 36;" f +_uvSoundQueue src/Dodge/Data/Universe.hs 52;" f +_uvTestString src/Dodge/Data/Universe.hs 38;" f +_uvWorld src/Dodge/Data/Universe.hs 32;" f _vaCount src/Shader/Data.hs 67;" f _vaNormalize src/Shader/Data.hs 69;" f _vaOffset src/Shader/Data.hs 70;" f @@ -2437,7 +2442,7 @@ _vxExt src/Picture/Data.hs 14;" f _vxLayer src/Picture/Data.hs 15;" f _vxPos src/Picture/Data.hs 12;" f _vxShadNum src/Picture/Data.hs 16;" f -_wCam src/Dodge/Data/World.hs 56;" f +_wCam src/Dodge/Data/World.hs 57;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f _waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f @@ -2464,8 +2469,8 @@ _wlStCreature src/Dodge/Data/Wall/Structure.hs 15;" f _wlStructure src/Dodge/Data/Wall.hs 24;" f _wlTouchThrough src/Dodge/Data/Wall.hs 21;" f _wlUnshadowed src/Dodge/Data/Wall.hs 22;" f -_wlZoning src/Dodge/Data/World.hs 50;" f -_worldEventFlags src/Dodge/Data/World.hs 45;" f +_wlZoning src/Dodge/Data/World.hs 51;" f +_worldEventFlags src/Dodge/Data/World.hs 46;" f _worldEvents src/Dodge/Data/LWorld.hs 130;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 14;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 12;" f @@ -2801,7 +2806,6 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f -clClSpringVel src/Dodge/Update.hs 864;" f clColor src/Shader/Poke/Cloud.hs 39;" f clZoneSize src/Dodge/Zoning/Cloud.hs 24;" f clampPath src/Dodge/Room/Procedural.hs 146;" f @@ -2905,7 +2909,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f -crCrSpring src/Dodge/Update.hs 900;" f +crCrSpring src/Dodge/Update.hs 878;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f @@ -2936,7 +2940,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 897;" f +crSpring src/Dodge/Update.hs 875;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 63;" f @@ -3007,7 +3011,7 @@ dShadCol src/Dodge/Render/List.hs 222;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 53;" f -damageBlock src/Dodge/Wall/Damage.hs 45;" f +damageBlock src/Dodge/Wall/Damage.hs 44;" f damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f @@ -3016,7 +3020,7 @@ damageDirection src/Dodge/Damage.hs 35;" f damageDirt src/Dodge/Material/Damage.hs 129;" f damageFlesh src/Dodge/Material/Damage.hs 96;" f damageGlass src/Dodge/Material/Damage.hs 154;" f -damageGlassBlock src/Dodge/Wall/Damage.hs 50;" f +damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMetal src/Dodge/Material/Damage.hs 64;" f @@ -3027,7 +3031,7 @@ damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 34;" f damageWall src/Dodge/Wall/Damage.hs 29;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f dark src/Color.hs 108;" f -darkenBackground src/Dodge/Render/MenuScreen.hs 32;" f +darkenBackground src/Dodge/Render/MenuScreen.hs 40;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 322;" f @@ -3121,15 +3125,15 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f denormalEdges src/Polyhedra.hs 136;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyBlock src/Dodge/Block.hs 17;" f -destroyDoor src/Dodge/Wall/Damage.hs 70;" f +destroyDoor src/Dodge/Wall/Damage.hs 69;" f destroyInvItem src/Dodge/Inventory.hs 40;" f destroyItem src/Dodge/Inventory.hs 62;" f destroyLSFlashAt src/Dodge/LightSource.hs 44;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f -destroyMount src/Dodge/Wall/Damage.hs 91;" f -destroyMounts src/Dodge/Wall/Damage.hs 88;" f +destroyMount src/Dodge/Wall/Damage.hs 90;" f +destroyMounts src/Dodge/Wall/Damage.hs 87;" f destroyProjectile src/Dodge/Projectile/Update.hs 109;" f detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f @@ -3199,12 +3203,12 @@ doGravityPU src/Dodge/Projectile/Update.hs 35;" f doHeldUseEffect src/Dodge/HeldUse.hs 351;" f doInPlacements src/Dodge/Layout.hs 87;" f doIndividualPlacements src/Dodge/Layout.hs 101;" f -doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f +doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 29;" f doItemTimeScroll src/Dodge/Update.hs 193;" f doLoop src/Loop.hs 60;" f doMagnetBuBu src/Dodge/Bullet.hs 35;" f doModificationEffect src/Dodge/ModificationEffect.hs 7;" f -doPreload appDodge/Main.hs 140;" f +doPreload appDodge/Main.hs 131;" f doQuickload src/Dodge/Save.hs 83;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f @@ -3213,7 +3217,7 @@ doRoomPlacements src/Dodge/Layout.hs 104;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 91;" f doSectionSize src/Dodge/DisplayInventory.hs 211;" f -doSideEffects appDodge/Main.hs 125;" f +doSideEffects appDodge/Main.hs 116;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 172;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3292,7 +3296,7 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 278;" f drawGib src/Dodge/Prop/Draw.hs 26;" f drawHUD src/Dodge/Render/HUD.hs 52;" f -drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f +drawInputMenu src/Dodge/Render/MenuScreen.hs 27;" f drawInspectWall src/Dodge/Debug/Picture.hs 255;" f drawInspectWalls src/Dodge/Debug/Picture.hs 243;" f drawInventory src/Dodge/Render/HUD.hs 59;" f @@ -3308,17 +3312,18 @@ drawList src/Dodge/Render/List.hs 209;" f drawListElement src/Dodge/Render/List.hs 187;" f drawListYgapScaleYoff src/Dodge/Render/List.hs 96;" f drawListYoff src/Dodge/Render/List.hs 93;" f +drawLoadingScreen src/Dodge/Render/MenuScreen.hs 22;" f drawMachine src/Dodge/Machine/Draw.hs 16;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f drawMapperInventory src/Dodge/Render/HUD.hs 174;" f drawMenuClick src/Dodge/Render/Picture.hs 166;" f drawMenuCursor src/Dodge/Render/Picture.hs 178;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f -drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f +drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f drawMouseCursor src/Dodge/Render/Picture.hs 83;" f drawMouseOver src/Dodge/Render/HUD.hs 110;" f drawMousePosition src/Dodge/Debug/Picture.hs 376;" f -drawOptions src/Dodge/Render/MenuScreen.hs 22;" f +drawOptions src/Dodge/Render/MenuScreen.hs 30;" f drawPathBetween src/Dodge/Debug/Picture.hs 202;" f drawPathEdge src/Dodge/Debug/Picture.hs 260;" f drawPathing src/Dodge/Debug/Picture.hs 407;" f @@ -3352,7 +3357,7 @@ drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f -drawTitle src/Dodge/Render/MenuScreen.hs 35;" f +drawTitle src/Dodge/Render/MenuScreen.hs 43;" f drawTitleBackground src/Dodge/Render/List.hs 45;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 76;" f @@ -3392,7 +3397,6 @@ dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 72;" f dustColor src/Shader/Poke/Cloud.hs 45;" f -dustSpringVel src/Dodge/Update.hs 882;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3479,7 +3483,7 @@ fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f -firstWorldLoad appDodge/Main.hs 77;" f +firstWorldLoad appDodge/Main.hs 67;" f fixedCoordPictures src/Dodge/Render/Picture.hs 20;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flFlicker src/Dodge/Flame.hs 39;" f @@ -3549,7 +3553,6 @@ gameRoomsFromRooms src/Dodge/Layout.hs 149;" f gameplayMenu src/Dodge/Menu.hs 154;" f gameplayMenuOptions src/Dodge/Menu.hs 157;" f gasEffect src/Dodge/Update.hs 793;" f -gasGasSpringVel src/Dodge/Update.hs 873;" f gasType src/Dodge/HeldUse.hs 1115;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3573,8 +3576,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 338;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 325;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 339;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 326;" f getDebugMouseOver src/Dodge/Update.hs 375;" f getDistortions src/Dodge/Render.hs 433;" f getEdgesCrossing src/Dodge/Path.hs 37;" f @@ -3591,7 +3594,7 @@ getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 321;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 322;" f getRootItemBounds src/Dodge/Render/HUD.hs 101;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3726,7 +3729,7 @@ initTexture2DArrayData src/Shader/AuxAddition.hs 46;" f initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f initWallZoning src/Dodge/Wall/Zone.hs 12;" f initialRoomTree src/Dodge/Floor.hs 24;" f -initialWorld src/Dodge/Initialisation.hs 15;" f +initialWorld src/Dodge/Initialisation.hs 13;" f initialisePlaying src/Sound.hs 77;" f initializeGLState src/Preload/Render.hs 255;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f @@ -3924,7 +3927,7 @@ lastMap src/Dodge/DoubleTree.hs 253;" f latticeXsYs src/Grid.hs 24;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 40;" f -ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 74;" f +ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 75;" f ldtIL src/Dodge/DoubleTree.hs 225;" f ldtPropagate src/Dodge/DoubleTree.hs 69;" f ldtPropagate' src/Dodge/DoubleTree.hs 60;" f @@ -3982,7 +3985,6 @@ loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f loadSounds src/Dodge/SoundLogic/LoadSound.hs 18;" f -loadingScreen src/Dodge/Concurrent.hs 56;" f loadme src/Dodge/Debug/Terminal.hs 142;" f locDTGoHelp src/Dodge/DoubleTree.hs 348;" f locDTGoLeft src/Dodge/DoubleTree.hs 329;" f @@ -4036,7 +4038,7 @@ magV src/Geometry/Vector.hs 172;" f magV3 src/Geometry/Vector3D.hs 78;" f magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f magenta src/Color.hs 19;" f -main appDodge/Main.hs 37;" f +main appDodge/Main.hs 27;" f main bench/Bench.hs 15;" f main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 157;" f @@ -4097,8 +4099,8 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f maxShowX src/Dodge/Combine/Graph.hs 48;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f -maybeDestroyBlock src/Dodge/Wall/Damage.hs 60;" f -maybeDestroyDoor src/Dodge/Wall/Damage.hs 65;" f +maybeDestroyBlock src/Dodge/Wall/Damage.hs 59;" f +maybeDestroyDoor src/Dodge/Wall/Damage.hs 64;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 562;" f maybeOpenConsole src/Dodge/Update.hs 126;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f @@ -4185,7 +4187,7 @@ mntLSOn src/Dodge/Placement/Instance/LightSource.hs 31;" f mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 143;" f mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 148;" f modTo src/Geometry/Zone.hs 18;" f -mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f +mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 61;" f mouseCursorType src/Dodge/Render/Picture.hs 90;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 37;" f moveBullet src/Dodge/Bullet.hs 197;" f @@ -4276,8 +4278,8 @@ onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 96;" f openConsole src/Dodge/Update.hs 131;" f optionMenu src/Dodge/Menu.hs 112;" f -optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f -optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 43;" f +optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 53;" f +optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 44;" f optionValueOffset src/Dodge/Menu/Option.hs 86;" f optionsOptions src/Dodge/Menu.hs 115;" f optionsToSelections src/Dodge/Menu/Option.hs 47;" f @@ -4379,7 +4381,7 @@ playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f playSoundAndUpdate src/Sound.hs 54;" f playSoundQueue src/Sound.hs 132;" f -playSoundUnlessRewinding appDodge/Main.hs 118;" f +playSoundUnlessRewinding appDodge/Main.hs 109;" f plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f pnZoneSize src/Dodge/Zoning/Pathing.hs 26;" f pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f @@ -4540,6 +4542,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToDeg src/Geometry/Vector.hs 123;" f +radiusSpring src/Dodge/Update.hs 864;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randDirPS src/Dodge/PlacementSpot.hs 56;" f @@ -4793,7 +4796,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 197;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 81;" f -sensorTut src/Dodge/Room/Tutorial.hs 347;" f +sensorTut src/Dodge/Room/Tutorial.hs 348;" f sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4822,7 +4825,7 @@ setOutLinksPD src/Dodge/RoomLink.hs 95;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f setRoomInt src/Dodge/Room/Tutorial.hs 72;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f -setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f +setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 88;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 157;" f @@ -4915,7 +4918,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 891;" f +simpleCrSprings src/Dodge/Update.hs 869;" f simpleTermMessage src/Dodge/Terminal.hs 164;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 700;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f @@ -5026,10 +5029,11 @@ startCrafts src/Dodge/Room/Start.hs 93;" f startDrag src/Dodge/Update/Input/InGame.hs 280;" f startInvList src/Dodge/Creature.hs 105;" f startInventory src/Dodge/Creature.hs 108;" f -startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f +startNewGameInSlot src/Dodge/StartNewGame.hs 17;" f +startPara src/Dodge/StartNewGame.hs 30;" f startRoom src/Dodge/Room/Start.hs 53;" f -startSeedGame src/Dodge/StartNewGame.hs 20;" f -startSeedGameConc src/Dodge/StartNewGame.hs 27;" f +startSeedGame src/Dodge/StartNewGame.hs 22;" f +startSeedGameConc src/Dodge/StartNewGame.hs 38;" f statsModifier src/Dodge/Creature/Info.hs 16;" f stickHitSound src/Dodge/Projectile/Update.hs 77;" f stickyMod src/Dodge/Item/Scope.hs 51;" f @@ -5040,7 +5044,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f stopAllSounds src/Sound.hs 125;" f stopBulletAt src/Dodge/Bullet.hs 200;" f -stopPushing src/Dodge/Wall/Damage.hs 96;" f +stopPushing src/Dodge/Wall/Damage.hs 95;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f @@ -5120,9 +5124,9 @@ textVMirror src/Picture/Base.hs 216;" f tflat2 src/Picture/Data.hs 56;" f tflat3 src/Picture/Data.hs 60;" f tflat4 src/Picture/Data.hs 64;" f -theCleanup appDodge/Main.hs 74;" f +theCleanup appDodge/Main.hs 64;" f theColumns src/Dodge/Tree/Shift.hs 146;" f -theUpdateStep appDodge/Main.hs 110;" f +theUpdateStep appDodge/Main.hs 100;" f thickArc src/Picture/Base.hs 298;" f thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f @@ -5138,7 +5142,7 @@ throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 196;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 169;" f +timeFlowUpdate src/Dodge/Update.hs 168;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f tinMag src/Dodge/Item/Ammo.hs 28;" f @@ -5256,9 +5260,9 @@ tutAnoTree src/Dodge/Room/Tutorial.hs 46;" f tutDrop src/Dodge/Room/Tutorial.hs 84;" f tutHub src/Dodge/Room/Tutorial.hs 245;" f tutLight src/Dodge/Room/Tutorial.hs 210;" f -tutRezBox src/Dodge/Room/Tutorial.hs 358;" f +tutRezBox src/Dodge/Room/Tutorial.hs 359;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 382;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 383;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5313,13 +5317,13 @@ updateCreatureSoundPositions src/Dodge/Update.hs 513;" f updateDebris src/Dodge/Update.hs 569;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f -updateDelayedEvents src/Dodge/Update.hs 920;" f +updateDelayedEvents src/Dodge/Update.hs 898;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 555;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 309;" f -updateDust src/Dodge/Update.hs 845;" f +updateDust src/Dodge/Update.hs 844;" f updateDusts src/Dodge/Update.hs 672;" f updateEdge src/Dodge/Path.hs 43;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f @@ -5334,7 +5338,7 @@ updateFlames src/Dodge/Update.hs 654;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f -updateGas src/Dodge/Update.hs 821;" f +updateGas src/Dodge/Update.hs 819;" f updateGasses src/Dodge/Update.hs 669;" f updateGusts src/Dodge/Update.hs 781;" f updateIMl src/Dodge/Update.hs 528;" f @@ -5378,7 +5382,7 @@ updateRadarBlips src/Dodge/Update.hs 558;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f updateRadarSweeps src/Dodge/Update.hs 660;" f updateRandNode src/TreeHelp.hs 109;" f -updateRenderSplit appDodge/Main.hs 113;" f +updateRenderSplit appDodge/Main.hs 103;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 79;" f @@ -5518,7 +5522,7 @@ white src/Color.hs 26;" f whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f -winConfig appDodge/Main.hs 56;" f +winConfig appDodge/Main.hs 46;" f windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f windowXFloat src/Dodge/Data/Config.hs 72;" f windowYFloat src/Dodge/Data/Config.hs 74;" f