diff --git a/appDodge/Main.hs b/appDodge/Main.hs index a66e9880d..4b98acea3 100644 --- a/appDodge/Main.hs +++ b/appDodge/Main.hs @@ -1,5 +1,6 @@ module Main (main) where +import Dodge.SoundSelection import Control.Lens import Control.Monad import Control.Parallel @@ -108,7 +109,7 @@ updateRenderSplit win u = do playSoundUnlessRewinding :: Universe -> IO (M.Map SoundOrigin Sound) playSoundUnlessRewinding u = case w ^. timeFlow of - NormalTimeFlow -> playSoundAndUpdate (_soundData $ _preloadData u) (_playingSounds w) (_toPlaySounds w) + NormalTimeFlow -> playSoundAndUpdate (_soundData $ _preloadData u) (_playingSounds w) (newSoundsToPlay u) _ -> stopAllSounds >> return M.empty where w = _uvWorld u diff --git a/data/sound/backgroundSpace.WHHH.50.wav b/data/sound/backgroundSpace.WHHH.50.wav new file mode 100644 index 000000000..0dc04e2df Binary files /dev/null and b/data/sound/backgroundSpace.WHHH.50.wav differ diff --git a/data/sound/reverseCymbal1.VHHP.100.wav b/data/sound/reverseCymbal1.VHHP.100.wav new file mode 100644 index 000000000..d1d4fce8a Binary files /dev/null and b/data/sound/reverseCymbal1.VHHP.100.wav differ diff --git a/data/sound/throbC4.WHUMWHUM.100.wav b/data/sound/throbC4.WHUMWHUM.100.wav new file mode 100644 index 000000000..f669571bc Binary files /dev/null and b/data/sound/throbC4.WHUMWHUM.100.wav differ diff --git a/data/sound/warp1.WHUAWUH.500.wav b/data/sound/warp1.WHUAWUH.500.wav new file mode 100644 index 000000000..744251473 Binary files /dev/null and b/data/sound/warp1.WHUAWUH.500.wav differ diff --git a/src/Dodge/Concurrent.hs b/src/Dodge/Concurrent.hs index 1088f68f5..4e15c20c7 100644 --- a/src/Dodge/Concurrent.hs +++ b/src/Dodge/Concurrent.hs @@ -53,4 +53,3 @@ blockingLoad p str f u = --clearConcEff eff = do -- f <- eff -- return (f . (uvConcEffects .~ NoConcEffect)) - diff --git a/src/Dodge/Data/SoundOrigin.hs b/src/Dodge/Data/SoundOrigin.hs index 726bb26fb..8ed0edada 100644 --- a/src/Dodge/Data/SoundOrigin.hs +++ b/src/Dodge/Data/SoundOrigin.hs @@ -39,6 +39,7 @@ data SoundOrigin | EBSound Int | DamageHitSound Int | PBSound Int + | SpawnSound deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Data/Universe.hs b/src/Dodge/Data/Universe.hs index 044fb5d33..3bdf9864f 100644 --- a/src/Dodge/Data/Universe.hs +++ b/src/Dodge/Data/Universe.hs @@ -14,7 +14,6 @@ module Dodge.Data.Universe ( 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 @@ -26,8 +25,6 @@ import Loop.Data import Picture.Data import Sound.Data ---import SDL (Scancode) - data Universe = Universe { _uvWorld :: World , _preloadData :: PreloadData diff --git a/src/Dodge/Data/World.hs b/src/Dodge/Data/World.hs index 49d897788..550226f5d 100644 --- a/src/Dodge/Data/World.hs +++ b/src/Dodge/Data/World.hs @@ -39,6 +39,7 @@ data World = World , _randGen :: StdGen , _toPlaySounds :: M.Map SoundOrigin Sound , _playingSounds :: M.Map SoundOrigin Sound + , _wSoundFilter :: SoundFilter , _input :: Input , _testFloat :: Float , _rbState :: RightButtonState diff --git a/src/Dodge/Data/WorldEffect.hs b/src/Dodge/Data/WorldEffect.hs index 6e4295ef5..dce636865 100644 --- a/src/Dodge/Data/WorldEffect.hs +++ b/src/Dodge/Data/WorldEffect.hs @@ -3,6 +3,7 @@ module Dodge.Data.WorldEffect where +import qualified Data.Set as S import Dodge.Data.Item.Location import NewInt import Dodge.Data.LightSource @@ -17,6 +18,10 @@ data ItCrWdWd = ItCrWdItemHeldEffect | ItCrWdItemHeldEffectNoHammer --deriving (Eq, Ord, Show, Read) --Generic, Flat) +data SoundFilter + = FilterBySoundOrigin (S.Set SoundOrigin) + | NoSoundFilter + data WdWd = NoWorldEffect | SetTrigger Bool Int @@ -33,6 +38,7 @@ data WdWd | MakeTempLightFade Float LSParam Int | UseInvItem Int Int -- invid presstime | WdWdBurstFireRepetition Int (NewInt InvInt) + | WdWdSetSoundFilter SoundFilter --deriving (Eq, Show, Read) --, Generic) --h--deriving (Eq, Show, Read) --Generic, Flat) @@ -61,6 +67,7 @@ data WdP2f = WdP2f0 | WdP2fDoorPosition Int +deriveJSON defaultOptions ''SoundFilter deriveJSON defaultOptions ''ItCrWdWd deriveJSON defaultOptions ''WdWd deriveJSON defaultOptions ''WdP2 diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index d413a22b5..cafdc3067 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -1,6 +1,7 @@ module Dodge.Default.World (defaultWorld) where --import Data.Graph.Inductive.Graph hiding ((&)) +import qualified Data.Set as S import qualified Data.Map as M import Dodge.Data.World import Geometry.Data @@ -55,6 +56,7 @@ defaultWorld = , _gsZoning = mempty --Zoning IM.empty clZoneSize (zonePos _guPos) , _unpauseClock = 0 , _coordinates = mempty + , _wSoundFilter = FilterBySoundOrigin $ S.singleton SpawnSound } defaultCWGen :: CWGen diff --git a/src/Dodge/Render/MenuScreen.hs b/src/Dodge/Render/MenuScreen.hs index bca027352..0e53be65f 100644 --- a/src/Dodge/Render/MenuScreen.hs +++ b/src/Dodge/Render/MenuScreen.hs @@ -1,17 +1,18 @@ {-# 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 +import Dodge.Data.ScreenPos import Dodge.Data.SelectionList import Dodge.Data.Universe import Dodge.ListDisplayParams import Dodge.Render.List import Dodge.ScreenPos +import Geometry.Polygon +import Linear import Picture drawMenuScreen :: Maybe Int -> ScreenLayer -> Config -> Picture @@ -21,12 +22,12 @@ drawMenuScreen mi = \case 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]) - ) +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) drawInputMenu :: String -> Config -> Picture drawInputMenu s cf = darkenBackground cf <> drawTitle cf s diff --git a/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs index 7542f9e6d..89e239f32 100644 --- a/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs +++ b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs @@ -1,4 +1,4 @@ --- generated at 2025-11-23 19:28:30.076047705 UTC +-- generated at 2025-12-05 22:38:12.419955631 UTC module Dodge.SoundLogic.ExternallyGeneratedSounds where import Sound.Data soundToVol :: SoundID -> Float @@ -37,119 +37,123 @@ soundToVol v = case _getSoundID v of 31 -> 200 32 -> 200 33 -> 200 - 34 -> 40 - 35 -> 300 - 36 -> 500 - 37 -> 2000 - 38 -> 500 - 39 -> 200 - 40 -> 100 - 41 -> 200 - 42 -> 500 - 43 -> 1000 - 44 -> 200 - 45 -> 100 + 34 -> 100 + 35 -> 40 + 36 -> 300 + 37 -> 500 + 38 -> 2000 + 39 -> 500 + 40 -> 200 + 41 -> 100 + 42 -> 200 + 43 -> 500 + 44 -> 1000 + 45 -> 200 46 -> 100 - 47 -> 1000 - 48 -> 200 - 49 -> 1000 - 50 -> 500 - 51 -> 40 - 52 -> 400 - 53 -> 2000 - 54 -> 100 - 55 -> 300 - 56 -> 50 - 57 -> 2000 - 58 -> 50 - 59 -> 500 - 60 -> 1000 - 61 -> 200 - 62 -> 8000 - 63 -> 2000 - 64 -> 2000 - 65 -> 1000 - 66 -> 200 + 47 -> 100 + 48 -> 1000 + 49 -> 200 + 50 -> 1000 + 51 -> 500 + 52 -> 40 + 53 -> 400 + 54 -> 2000 + 55 -> 100 + 56 -> 300 + 57 -> 50 + 58 -> 100 + 59 -> 2000 + 60 -> 50 + 61 -> 50 + 62 -> 500 + 63 -> 1000 + 64 -> 200 + 65 -> 8000 + 66 -> 2000 67 -> 2000 - 68 -> 100 - 69 -> 100 - 70 -> 40 + 68 -> 1000 + 69 -> 200 + 70 -> 2000 71 -> 100 - 72 -> 40 - 73 -> 2000 - 74 -> 100 - 75 -> 250 - 76 -> 500 - 77 -> 40 + 72 -> 500 + 73 -> 100 + 74 -> 40 + 75 -> 100 + 76 -> 40 + 77 -> 2000 78 -> 100 - 79 -> 300 - 80 -> 300 - 81 -> 200 + 79 -> 250 + 80 -> 500 + 81 -> 40 82 -> 100 - 83 -> 2000 - 84 -> 1000 - 85 -> 1000 - 86 -> 1000 - 87 -> 100 - 88 -> 100 + 83 -> 300 + 84 -> 300 + 85 -> 200 + 86 -> 100 + 87 -> 2000 + 88 -> 1000 89 -> 1000 90 -> 1000 - 91 -> 40 - 92 -> 200 - 93 -> 50 + 91 -> 100 + 92 -> 100 + 93 -> 1000 94 -> 1000 - 95 -> 500 - 96 -> 500 - 97 -> 100 - 98 -> 100 - 99 -> 200 - 100 -> 1000 - 101 -> 20 - 102 -> 500 - 103 -> 300 - 104 -> 200 - 105 -> 500 - 106 -> 1000 - 107 -> 200 - 108 -> 1000 - 109 -> 2000 - 110 -> 500 + 95 -> 40 + 96 -> 200 + 97 -> 50 + 98 -> 1000 + 99 -> 500 + 100 -> 500 + 101 -> 100 + 102 -> 100 + 103 -> 200 + 104 -> 1000 + 105 -> 20 + 106 -> 500 + 107 -> 300 + 108 -> 200 + 109 -> 500 + 110 -> 1000 111 -> 200 - 112 -> 200 - 113 -> 100 - 114 -> 1000 - 115 -> 300 - 116 -> 2000 - 117 -> 2000 - 118 -> 100 - 119 -> 500 + 112 -> 1000 + 113 -> 2000 + 114 -> 500 + 115 -> 200 + 116 -> 200 + 117 -> 100 + 118 -> 1000 + 119 -> 300 120 -> 2000 - 121 -> 500 + 121 -> 2000 122 -> 100 - 123 -> 300 - 124 -> 1000 - 125 -> 50 - 126 -> 200 - 127 -> 100 - 128 -> 200 - 129 -> 1000 - 130 -> 2000 - 131 -> 200 - 132 -> 1000 - 133 -> 100 - 134 -> 200 - 135 -> 500 - 136 -> 100 - 137 -> 2000 + 123 -> 500 + 124 -> 2000 + 125 -> 500 + 126 -> 100 + 127 -> 300 + 128 -> 1000 + 129 -> 50 + 130 -> 200 + 131 -> 100 + 132 -> 200 + 133 -> 1000 + 134 -> 2000 + 135 -> 200 + 136 -> 1000 + 137 -> 100 138 -> 200 - 139 -> 300 - 140 -> 1000 + 139 -> 500 + 140 -> 100 141 -> 2000 - 142 -> 2000 - 143 -> 250 - 144 -> 200 - 145 -> 100 - 146 -> 200 + 142 -> 200 + 143 -> 300 + 144 -> 1000 + 145 -> 2000 + 146 -> 2000 + 147 -> 250 + 148 -> 200 + 149 -> 100 + 150 -> 200 _ -> 50 soundToOnomato :: SoundID -> String soundToOnomato v = case _getSoundID v of @@ -187,119 +191,123 @@ soundToOnomato v = case _getSoundID v of 31 -> "WH" 32 -> "WH" 33 -> "CRAKLE" - 34 -> "TAP" - 35 -> "DWAAH" - 36 -> "PRUM" - 37 -> "BANGG" - 38 -> "CRTINK" - 39 -> "WH" - 40 -> "PHF" - 41 -> "CRNCH" - 42 -> "PLH" - 43 -> "ZHM" - 44 -> "TING" - 45 -> "CLCLH" - 46 -> "THUD" - 47 -> "TRWNG" - 48 -> "TING" - 49 -> "CRASH" - 50 -> "CLANG" - 51 -> "TAPTIP" - 52 -> "CRNKCRNKCRNK" - 53 -> "CHUGUGUG" - 54 -> "SKWLL" - 55 -> "WRRR" - 56 -> "HSSS" - 57 -> "BOOM" - 58 -> "HSS" - 59 -> "CLANG" - 60 -> "TAKH" - 61 -> "WHH" - 62 -> "RINGGG" - 63 -> "CRH" - 64 -> "UGGAUGGA" - 65 -> "CRUMPLE" - 66 -> "TING" - 67 -> "CREUH" - 68 -> "KKSQWL" - 69 -> "SMACK" - 70 -> "CLICK" - 71 -> "SPRT" - 72 -> "TIPTOP" - 73 -> "CRUH" - 74 -> "CHNKCHNKCHUNK" - 75 -> "DMP" - 76 -> "CLKCLK" - 77 -> "TIPTAP" - 78 -> "SKWLCH" - 79 -> "TNKTNKTNK" - 80 -> "CHPCHPCHP" - 81 -> "DING" - 82 -> "SLP" - 83 -> "SCREE" - 84 -> "DHDHL" - 85 -> "BRAP" - 86 -> "CRSK" - 87 -> "SPLRT" - 88 -> "SKWLL" - 89 -> "CRNKL" - 90 -> "TRNKL" - 91 -> "TAPP" - 92 -> "DING" - 93 -> "SHUHP" - 94 -> "CRUMBL" - 95 -> "DEDEDUM" - 96 -> "TAK" - 97 -> "SPLRT" - 98 -> "SQLEE" - 99 -> "DING" - 100 -> "CRISH" - 101 -> "SWSH" - 102 -> "BIPBIPBIP" - 103 -> "BEP" - 104 -> "CRSKRL" - 105 -> "KRTNKL" - 106 -> "CRSNK" - 107 -> "SHTCK" - 108 -> "TTRKL" - 109 -> "UGGAUGGA" - 110 -> "DUDURAH" - 111 -> "TING" - 112 -> "DING" - 113 -> "KKSQWL" - 114 -> "CRMPL" - 115 -> "BWEP" - 116 -> "CHUGUGUG" - 117 -> "BANG" - 118 -> "SLPP" - 119 -> "DEDA" - 120 -> "WHSSH" - 121 -> "CLANG" - 122 -> "HNH" - 123 -> "BWAH" - 124 -> "CRUNK" - 125 -> "FHFH" - 126 -> "SQWLTCH" - 127 -> "DRR" - 128 -> "WHH" - 129 -> "TRNKL" - 130 -> "BRAP" - 131 -> "WHR" - 132 -> "BLPCHCH" - 133 -> "SKLE" - 134 -> "ZMM" - 135 -> "WRRR" - 136 -> "FWUMP" - 137 -> "BRAHCHCH" - 138 -> "TING" - 139 -> "WHRR" - 140 -> "BWMP" - 141 -> "BRPBRPBRP" - 142 -> "WE-OH" - 143 -> "WHRHH" - 144 -> "THCK" - 145 -> "FHP" - 146 -> "QWLPH" + 34 -> "WHUMWHUM" + 35 -> "TAP" + 36 -> "DWAAH" + 37 -> "PRUM" + 38 -> "BANGG" + 39 -> "CRTINK" + 40 -> "WH" + 41 -> "PHF" + 42 -> "CRNCH" + 43 -> "PLH" + 44 -> "ZHM" + 45 -> "TING" + 46 -> "CLCLH" + 47 -> "THUD" + 48 -> "TRWNG" + 49 -> "TING" + 50 -> "CRASH" + 51 -> "CLANG" + 52 -> "TAPTIP" + 53 -> "CRNKCRNKCRNK" + 54 -> "CHUGUGUG" + 55 -> "SKWLL" + 56 -> "WRRR" + 57 -> "HSSS" + 58 -> "VHHP" + 59 -> "BOOM" + 60 -> "HSS" + 61 -> "WHHH" + 62 -> "CLANG" + 63 -> "TAKH" + 64 -> "WHH" + 65 -> "RINGGG" + 66 -> "CRH" + 67 -> "UGGAUGGA" + 68 -> "CRUMPLE" + 69 -> "TING" + 70 -> "CREUH" + 71 -> "KKSQWL" + 72 -> "WHUAWUH" + 73 -> "SMACK" + 74 -> "CLICK" + 75 -> "SPRT" + 76 -> "TIPTOP" + 77 -> "CRUH" + 78 -> "CHNKCHNKCHUNK" + 79 -> "DMP" + 80 -> "CLKCLK" + 81 -> "TIPTAP" + 82 -> "SKWLCH" + 83 -> "TNKTNKTNK" + 84 -> "CHPCHPCHP" + 85 -> "DING" + 86 -> "SLP" + 87 -> "SCREE" + 88 -> "DHDHL" + 89 -> "BRAP" + 90 -> "CRSK" + 91 -> "SPLRT" + 92 -> "SKWLL" + 93 -> "CRNKL" + 94 -> "TRNKL" + 95 -> "TAPP" + 96 -> "DING" + 97 -> "SHUHP" + 98 -> "CRUMBL" + 99 -> "DEDEDUM" + 100 -> "TAK" + 101 -> "SPLRT" + 102 -> "SQLEE" + 103 -> "DING" + 104 -> "CRISH" + 105 -> "SWSH" + 106 -> "BIPBIPBIP" + 107 -> "BEP" + 108 -> "CRSKRL" + 109 -> "KRTNKL" + 110 -> "CRSNK" + 111 -> "SHTCK" + 112 -> "TTRKL" + 113 -> "UGGAUGGA" + 114 -> "DUDURAH" + 115 -> "TING" + 116 -> "DING" + 117 -> "KKSQWL" + 118 -> "CRMPL" + 119 -> "BWEP" + 120 -> "CHUGUGUG" + 121 -> "BANG" + 122 -> "SLPP" + 123 -> "DEDA" + 124 -> "WHSSH" + 125 -> "CLANG" + 126 -> "HNH" + 127 -> "BWAH" + 128 -> "CRUNK" + 129 -> "FHFH" + 130 -> "SQWLTCH" + 131 -> "DRR" + 132 -> "WHH" + 133 -> "TRNKL" + 134 -> "BRAP" + 135 -> "WHR" + 136 -> "BLPCHCH" + 137 -> "SKLE" + 138 -> "ZMM" + 139 -> "WRRR" + 140 -> "FWUMP" + 141 -> "BRAHCHCH" + 142 -> "TING" + 143 -> "WHRR" + 144 -> "BWMP" + 145 -> "BRPBRPBRP" + 146 -> "WE-OH" + 147 -> "WHRHH" + 148 -> "THCK" + 149 -> "FHP" + 150 -> "QWLPH" _ -> error "unitialised sound" soundPathList :: [String] soundPathList = @@ -337,6 +345,7 @@ soundPathList = , "whirdownShort2.WH.200.wav" , "whirdownShort4.WH.200.wav" , "elecCrackle.CRAKLE.200.wav" + , "throbC4.WHUMWHUM.100.wav" , "foot2.TAP.40.wav" , "skwareFadeTwoSec.DWAAH.300.wav" , "insertOne.PRUM.500.wav" @@ -360,8 +369,10 @@ soundPathList = , "blood4.SKWLL.100.wav" , "fireFade.WRRR.300.wav" , "foamSprayLoop.HSSS.50.wav" + , "reverseCymbal1.VHHP.100.wav" , "explosion.BOOM.2000.wav" , "foamSprayFadeOut.HSS.50.wav" + , "backgroundSpace.WHHH.50.wav" , "clang1.CLANG.500.wav" , "tap2.TAKH.1000.wav" , "whirdown3.WHH.200.wav" @@ -372,6 +383,7 @@ soundPathList = , "ting.TING.200.wav" , "seagullCry2.CREUH.2000.wav" , "bloodShort3.KKSQWL.100.wav" + , "warp1.WHUAWUH.500.wav" , "hit1.SMACK.100.wav" , "click1.CLICK.40.wav" , "bloodShort2.SPRT.100.wav" @@ -519,229 +531,237 @@ whirdownShort4S :: SoundID whirdownShort4S = SoundID 32 elecCrackleS :: SoundID elecCrackleS = SoundID 33 +throbC4S :: SoundID +throbC4S = SoundID 34 foot2S :: SoundID -foot2S = SoundID 34 +foot2S = SoundID 35 skwareFadeTwoSecS :: SoundID -skwareFadeTwoSecS = SoundID 35 +skwareFadeTwoSecS = SoundID 36 insertOneS :: SoundID -insertOneS = SoundID 36 +insertOneS = SoundID 37 bangEchoS :: SoundID -bangEchoS = SoundID 37 +bangEchoS = SoundID 38 smallGlass3S :: SoundID -smallGlass3S = SoundID 38 +smallGlass3S = SoundID 39 whirdownShort3S :: SoundID -whirdownShort3S = SoundID 39 +whirdownShort3S = SoundID 40 whiteNoiseFadeOutS :: SoundID -whiteNoiseFadeOutS = SoundID 40 +whiteNoiseFadeOutS = SoundID 41 gut2S :: SoundID -gut2S = SoundID 41 +gut2S = SoundID 42 lasPulseS :: SoundID -lasPulseS = SoundID 42 +lasPulseS = SoundID 43 teleS :: SoundID -teleS = SoundID 43 +teleS = SoundID 44 ting2S :: SoundID -ting2S = SoundID 44 +ting2S = SoundID 45 blood5S :: SoundID -blood5S = SoundID 45 +blood5S = SoundID 46 hitS :: SoundID -hitS = SoundID 46 +hitS = SoundID 47 metal7S :: SoundID -metal7S = SoundID 47 +metal7S = SoundID 48 ting4S :: SoundID -ting4S = SoundID 48 +ting4S = SoundID 49 stone1S :: SoundID -stone1S = SoundID 49 +stone1S = SoundID 50 clangS :: SoundID -clangS = SoundID 50 +clangS = SoundID 51 twoStep1S :: SoundID -twoStep1S = SoundID 51 +twoStep1S = SoundID 52 wrench1S :: SoundID -wrench1S = SoundID 52 +wrench1S = SoundID 53 seagullChatterS :: SoundID -seagullChatterS = SoundID 53 +seagullChatterS = SoundID 54 blood4S :: SoundID -blood4S = SoundID 54 +blood4S = SoundID 55 fireFadeS :: SoundID -fireFadeS = SoundID 55 +fireFadeS = SoundID 56 foamSprayLoopS :: SoundID -foamSprayLoopS = SoundID 56 +foamSprayLoopS = SoundID 57 +reverseCymbal1S :: SoundID +reverseCymbal1S = SoundID 58 explosionS :: SoundID -explosionS = SoundID 57 +explosionS = SoundID 59 foamSprayFadeOutS :: SoundID -foamSprayFadeOutS = SoundID 58 +foamSprayFadeOutS = SoundID 60 +backgroundSpaceS :: SoundID +backgroundSpaceS = SoundID 61 clang1S :: SoundID -clang1S = SoundID 59 +clang1S = SoundID 62 tap2S :: SoundID -tap2S = SoundID 60 +tap2S = SoundID 63 whirdown3S :: SoundID -whirdown3S = SoundID 61 +whirdown3S = SoundID 64 tinitusS :: SoundID -tinitusS = SoundID 62 +tinitusS = SoundID 65 seagullCry1S :: SoundID -seagullCry1S = SoundID 63 +seagullCry1S = SoundID 66 seagullBarkS :: SoundID -seagullBarkS = SoundID 64 +seagullBarkS = SoundID 67 stone3S :: SoundID -stone3S = SoundID 65 +stone3S = SoundID 68 tingS :: SoundID -tingS = SoundID 66 +tingS = SoundID 69 seagullCry2S :: SoundID -seagullCry2S = SoundID 67 +seagullCry2S = SoundID 70 bloodShort3S :: SoundID -bloodShort3S = SoundID 68 +bloodShort3S = SoundID 71 +warp1S :: SoundID +warp1S = SoundID 72 hit1S :: SoundID -hit1S = SoundID 69 +hit1S = SoundID 73 click1S :: SoundID -click1S = SoundID 70 +click1S = SoundID 74 bloodShort2S :: SoundID -bloodShort2S = SoundID 71 +bloodShort2S = SoundID 75 twoStepSlowS :: SoundID -twoStepSlowS = SoundID 72 +twoStepSlowS = SoundID 76 seagullCryS :: SoundID -seagullCryS = SoundID 73 +seagullCryS = SoundID 77 crankSlowS :: SoundID -crankSlowS = SoundID 74 +crankSlowS = SoundID 78 energyReleaseS :: SoundID -energyReleaseS = SoundID 75 +energyReleaseS = SoundID 79 primeS :: SoundID -primeS = SoundID 76 +primeS = SoundID 80 twoStepS :: SoundID -twoStepS = SoundID 77 +twoStepS = SoundID 81 bloodShort8S :: SoundID -bloodShort8S = SoundID 78 +bloodShort8S = SoundID 82 reloadS :: SoundID -reloadS = SoundID 79 +reloadS = SoundID 83 reload1S :: SoundID -reload1S = SoundID 80 +reload1S = SoundID 84 marimbaC5S :: SoundID -marimbaC5S = SoundID 81 +marimbaC5S = SoundID 85 slapS :: SoundID -slapS = SoundID 82 +slapS = SoundID 86 tone440sawtoothS :: SoundID -tone440sawtoothS = SoundID 83 +tone440sawtoothS = SoundID 87 metal3S :: SoundID -metal3S = SoundID 84 +metal3S = SoundID 88 tap3S :: SoundID -tap3S = SoundID 85 +tap3S = SoundID 89 glassShat4S :: SoundID -glassShat4S = SoundID 86 +glassShat4S = SoundID 90 bloodShort1S :: SoundID -bloodShort1S = SoundID 87 +bloodShort1S = SoundID 91 bloodShort4S :: SoundID -bloodShort4S = SoundID 88 +bloodShort4S = SoundID 92 glassShat2S :: SoundID -glassShat2S = SoundID 89 +glassShat2S = SoundID 93 metal1S :: SoundID -metal1S = SoundID 90 +metal1S = SoundID 94 foot3S :: SoundID -foot3S = SoundID 91 +foot3S = SoundID 95 marimbaG5S :: SoundID -marimbaG5S = SoundID 92 +marimbaG5S = SoundID 96 pickUpS :: SoundID -pickUpS = SoundID 93 +pickUpS = SoundID 97 stone5S :: SoundID -stone5S = SoundID 94 +stone5S = SoundID 98 dededumS :: SoundID -dededumS = SoundID 95 +dededumS = SoundID 99 tap1S :: SoundID -tap1S = SoundID 96 +tap1S = SoundID 100 blood1S :: SoundID -blood1S = SoundID 97 +blood1S = SoundID 101 bloodShort7S :: SoundID -bloodShort7S = SoundID 98 +bloodShort7S = SoundID 102 marimbaB6S :: SoundID -marimbaB6S = SoundID 99 +marimbaB6S = SoundID 103 metal4S :: SoundID -metal4S = SoundID 100 +metal4S = SoundID 104 knifeS :: SoundID -knifeS = SoundID 101 +knifeS = SoundID 105 computerBeepingS :: SoundID -computerBeepingS = SoundID 102 +computerBeepingS = SoundID 106 tone440S :: SoundID -tone440S = SoundID 103 +tone440S = SoundID 107 gut6S :: SoundID -gut6S = SoundID 104 +gut6S = SoundID 108 smallGlass2S :: SoundID -smallGlass2S = SoundID 105 +smallGlass2S = SoundID 109 glassShat1S :: SoundID -glassShat1S = SoundID 106 +glassShat1S = SoundID 110 disconnectItemS :: SoundID -disconnectItemS = SoundID 107 +disconnectItemS = SoundID 111 metal5S :: SoundID -metal5S = SoundID 108 +metal5S = SoundID 112 seagullBarkTransformedS :: SoundID -seagullBarkTransformedS = SoundID 109 +seagullBarkTransformedS = SoundID 113 ejectS :: SoundID -ejectS = SoundID 110 +ejectS = SoundID 114 ting3S :: SoundID -ting3S = SoundID 111 +ting3S = SoundID 115 marimbaE5S :: SoundID -marimbaE5S = SoundID 112 +marimbaE5S = SoundID 116 blood3S :: SoundID -blood3S = SoundID 113 +blood3S = SoundID 117 stone2S :: SoundID -stone2S = SoundID 114 +stone2S = SoundID 118 tone440raiseS :: SoundID -tone440raiseS = SoundID 115 +tone440raiseS = SoundID 119 seagullChatter1S :: SoundID -seagullChatter1S = SoundID 116 +seagullChatter1S = SoundID 120 bangS :: SoundID -bangS = SoundID 117 +bangS = SoundID 121 slap1S :: SoundID -slap1S = SoundID 118 +slap1S = SoundID 122 dedaS :: SoundID -dedaS = SoundID 119 +dedaS = SoundID 123 missileLaunchS :: SoundID -missileLaunchS = SoundID 120 +missileLaunchS = SoundID 124 clang2S :: SoundID -clang2S = SoundID 121 +clang2S = SoundID 125 gruntS :: SoundID -gruntS = SoundID 122 +gruntS = SoundID 126 sineRaisePitchOneSecS :: SoundID -sineRaisePitchOneSecS = SoundID 123 +sineRaisePitchOneSecS = SoundID 127 metal2S :: SoundID -metal2S = SoundID 124 +metal2S = SoundID 128 debrisS :: SoundID -debrisS = SoundID 125 +debrisS = SoundID 129 gut5S :: SoundID -gut5S = SoundID 126 +gut5S = SoundID 130 slideDoorS :: SoundID -slideDoorS = SoundID 127 +slideDoorS = SoundID 131 whirdown2S :: SoundID -whirdown2S = SoundID 128 +whirdown2S = SoundID 132 metal6S :: SoundID -metal6S = SoundID 129 +metal6S = SoundID 133 autoGunS :: SoundID -autoGunS = SoundID 130 +autoGunS = SoundID 134 whirdownSmall1S :: SoundID -whirdownSmall1S = SoundID 131 +whirdownSmall1S = SoundID 135 oldMachineBootS :: SoundID -oldMachineBootS = SoundID 132 +oldMachineBootS = SoundID 136 blood6S :: SoundID -blood6S = SoundID 133 +blood6S = SoundID 137 buzzS :: SoundID -buzzS = SoundID 134 +buzzS = SoundID 138 fireLoudS :: SoundID -fireLoudS = SoundID 135 +fireLoudS = SoundID 139 tap4S :: SoundID -tap4S = SoundID 136 +tap4S = SoundID 140 shotgunS :: SoundID -shotgunS = SoundID 137 +shotgunS = SoundID 141 ting5S :: SoundID -ting5S = SoundID 138 +ting5S = SoundID 142 whirS :: SoundID -whirS = SoundID 139 +whirS = SoundID 143 sawtoothFailS :: SoundID -sawtoothFailS = SoundID 140 +sawtoothFailS = SoundID 144 miniS :: SoundID -miniS = SoundID 141 +miniS = SoundID 145 seagullWhistleS :: SoundID -seagullWhistleS = SoundID 142 +seagullWhistleS = SoundID 146 whirdownS :: SoundID -whirdownS = SoundID 143 +whirdownS = SoundID 147 connectItemS :: SoundID -connectItemS = SoundID 144 +connectItemS = SoundID 148 whiteNoiseFadeInS :: SoundID -whiteNoiseFadeInS = SoundID 145 +whiteNoiseFadeInS = SoundID 149 gut1S :: SoundID -gut1S = SoundID 146 +gut1S = SoundID 150 diff --git a/src/Dodge/SoundSelection.hs b/src/Dodge/SoundSelection.hs new file mode 100644 index 000000000..ec01248b0 --- /dev/null +++ b/src/Dodge/SoundSelection.hs @@ -0,0 +1,12 @@ +module Dodge.SoundSelection (newSoundsToPlay) where + +import Sound.Data +import Dodge.Data.Universe +import qualified Data.Map.Strict as M +import Control.Lens + +newSoundsToPlay :: Universe -> M.Map SoundOrigin Sound +newSoundsToPlay u = case u ^. uvWorld . wSoundFilter of + NoSoundFilter -> u ^. uvWorld . toPlaySounds + FilterBySoundOrigin ks -> (u ^. uvWorld . toPlaySounds) `M.restrictKeys` ks + diff --git a/src/Dodge/SpawnAt.hs b/src/Dodge/SpawnAt.hs index 361daba21..277478556 100644 --- a/src/Dodge/SpawnAt.hs +++ b/src/Dodge/SpawnAt.hs @@ -1,13 +1,12 @@ module Dodge.SpawnAt (respawn) where +import qualified Data.Set as S +import LensHelp +import Dodge.SoundLogic import Linear ---import Dodge.SoundLogic.ExternallyGeneratedSounds import Dodge.Creature import Geometry.Data import Dodge.Data.World -import Control.Lens ---import Control.Applicative ---import Linear.V3 respawn :: World -> World respawn w = w & uncurry spawnAt (w ^. cWorld . lWorld . respawnPos) @@ -15,8 +14,13 @@ respawn w = w & uncurry spawnAt (w ^. cWorld . lWorld . respawnPos) spawnAt :: Point2 -> Float -> World -> World spawnAt p d w = w & wCam . camZoom .~ 1000 + & wSoundFilter .~ FilterBySoundOrigin (S.singleton SpawnSound) -- & cWorld . lWorld . creatures . at 0 %~ (fmap f . (<|> Just startCr)) & cWorld . lWorld . creatures . at 0 ?~ f startCr + & cWorld . lWorld . delayedEvents <>~ + [ (0,SoundStart SpawnSound 0 reverseCymbal1S Nothing) + , (10,WdWdSetSoundFilter NoSoundFilter) + ] -- & cWorld . lWorld . worldEvents <>~ ---- SoundStart BackgroundSound p foamSprayFadeOutS Nothing : -- [MakeStartCloudAt (V3 x y 20 & _xy +~ p) | x <- [-5, -4 .. 5], y <- [-5, -4 .. 5]] diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index 14ada905b..af14f9257 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -37,6 +37,7 @@ doWdWd we = case we of TorqueCr x cid -> torqueCr x cid SoundStart so p sid mi -> soundStart so p sid mi WdWdNegateTrig trid -> cWorld . lWorld . triggers . ix trid %~ not + WdWdSetSoundFilter x -> wSoundFilter .~ x -- WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do -- cr <- w ^? cWorld . lWorld . creatures . ix crid -- return $ doItCrWdWd f it cr w diff --git a/src/Dodge/WorldEvent/Explosion.hs b/src/Dodge/WorldEvent/Explosion.hs index f50decd3b..cdde18472 100644 --- a/src/Dodge/WorldEvent/Explosion.hs +++ b/src/Dodge/WorldEvent/Explosion.hs @@ -8,7 +8,6 @@ module Dodge.WorldEvent.Explosion ( makeTeslaExplosionAt, ) where -import Linear import Control.Monad import Data.List import Dodge.Data.World @@ -18,6 +17,7 @@ import Dodge.WorldEvent.Shockwave import Dodge.WorldEvent.SpawnParticle import Geometry import LensHelp +import Linear import Picture import RandomHelp @@ -70,12 +70,11 @@ makeExplosionAt p vel w = w & soundStart (Explosion (w ^. cWorld . lWorld . lClock)) (p ^. _xy) bangS Nothing & addFlames - & cWorld . lWorld . worldEvents - .:~ MakeTempLight (LSParam p 150 (V3 1 0.5 0)) 20 + & cWorld . lWorld . worldEvents .:~ MakeTempLight (LSParam p 150 (V3 1 0.5 0)) 20 & makeShockwaveAt [] p 50 100 1 white where fVs = fmap (`v2z` 0) $ replicateM 100 (randInCirc 8) & evalState $ _randGen w - fdamps = replicateM 100 (state $ randomR (0,1)) & evalState $ _randGen w + fdamps = replicateM 100 (state $ randomR (0, 1)) & evalState $ _randGen w sizes = randomRs (2, 9) $ _randGen w times = randomRs (15, 20) $ _randGen w mF v damp size time = makeFlamelet p (v + damp *^ vel) size time diff --git a/src/Sound.hs b/src/Sound.hs index 9a7ae1701..f5e60f7d7 100644 --- a/src/Sound.hs +++ b/src/Sound.hs @@ -91,7 +91,8 @@ tryPlay sd s = do & soundChannel ?~ i & soundStatus . playStatus .~ JustStartedPlaying where - timesToPlay | _soundIsLooping (_soundStatus s) = Mix.Forever + timesToPlay + | _soundIsLooping (_soundStatus s) = Mix.Forever | otherwise = Mix.Once tryGetChannel :: Sound -> MaybeT IO Mix.Channel diff --git a/tags b/tags index 54b5e5766..c84a4c2e3 100644 --- a/tags +++ b/tags @@ -35,7 +35,7 @@ AUTOAMR src/Dodge/Data/Item/Combine.hs 159;" C AUTOPISTOL src/Dodge/Data/Item/Combine.hs 145;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 154;" C AZURE src/Color/Data.hs 20;" C -AccessTerminal src/Dodge/Data/WorldEffect.hs 25;" C +AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C Action src/Dodge/Data/ActionPlan.hs 65;" t ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t ActionUpdate src/Dodge/Creature/Action.hs 49;" t @@ -130,12 +130,12 @@ Block src/Dodge/Data/Block.hs 20;" t BlockDebris src/Dodge/Data/Prop.hs 23;" C BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 30;" C BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C -BlockStatus src/Dodge/Data/Universe.hs 101;" t +BlockStatus src/Dodge/Data/Universe.hs 98;" t 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 80;" C +BottomMenuOption src/Dodge/Data/Universe.hs 77;" 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 @@ -187,7 +187,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 72;" C +CameraScrollTimeFlow src/Dodge/Data/World.hs 74;" 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 @@ -226,7 +226,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 32;" C +CombineInventoryChange src/Dodge/Data/World.hs 33;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 11;" C @@ -309,7 +309,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 60;" t +DebugItem src/Dodge/Data/Universe.hs 57;" 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 @@ -395,7 +395,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 79;" t +ExtraMenuOption src/Dodge/Data/Universe.hs 76;" 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 @@ -412,6 +412,7 @@ Faction src/Dodge/Data/Creature/State.hs 12;" t Factory src/Dodge/Data/Scenario.hs 56;" C FailedResource src/Dodge/Data/Scenario.hs 37;" t FetchItem src/Dodge/Data/Scenario.hs 11;" C +FilterBySoundOrigin src/Dodge/Data/WorldEffect.hs 22;" C FireSpark src/Dodge/Data/Spark.hs 19;" C Fixated src/Dodge/Data/Creature/Perception.hs 60;" C FixedCoordLayer src/Picture/Data.hs 24;" C @@ -470,7 +471,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 75;" C +GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameRoom src/Dodge/GameRoom.hs 12;" t Gas src/Dodge/Data/Cloud.hs 34;" t GasAmmo src/Dodge/Data/AmmoType.hs 11;" C @@ -514,7 +515,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 71;" C +HardQuit src/Dodge/Data/Universe.hs 68;" 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 @@ -569,17 +570,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 95;" C +InputScreen src/Dodge/Data/Universe.hs 92;" 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 123;" t +IntID src/Dodge/Data/Universe.hs 120;" 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 31;" C +InventoryChange src/Dodge/Data/World.hs 32;" 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 @@ -587,9 +588,9 @@ Investigate src/Dodge/Data/ActionPlan.hs 136;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 12;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C -ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 16;" C -ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 17;" C -ItCrWdWd src/Dodge/Data/WorldEffect.hs 16;" t +ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 17;" C +ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 18;" C +ItCrWdWd src/Dodge/Data/WorldEffect.hs 17;" t ItTargeting src/Dodge/Data/Item.hs 45;" C Item src/Dodge/Data/Item.hs 26;" t ItemClust src/Dodge/Combine/Graph.hs 19;" C @@ -601,7 +602,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 66;" C +ItemScrollTimeFlow src/Dodge/Data/World.hs 68;" 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,11 +668,11 @@ LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 150;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C -LoadReady src/Dodge/Data/Universe.hs 104;" C -LoadWaiting src/Dodge/Data/Universe.hs 103;" C -LoadWaitingClicked src/Dodge/Data/Universe.hs 102;" C +LoadReady src/Dodge/Data/Universe.hs 101;" C +LoadWaiting src/Dodge/Data/Universe.hs 100;" C +LoadWaitingClicked src/Dodge/Data/Universe.hs 99;" C LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C -LoadingScreen src/Dodge/Data/Universe.hs 96;" C +LoadingScreen src/Dodge/Data/Universe.hs 93;" 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 @@ -693,9 +694,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 109;" C -MODString src/Dodge/Data/Universe.hs 108;" C -MODStringOption src/Dodge/Data/Universe.hs 110;" C +MODBlockedString src/Dodge/Data/Universe.hs 106;" C +MODString src/Dodge/Data/Universe.hs 105;" C +MODStringOption src/Dodge/Data/Universe.hs 107;" 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 @@ -718,9 +719,9 @@ MagnetUpdate src/Dodge/Data/Magnet.hs 11;" t MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C MakeSound src/Dodge/Data/ActionPlan.hs 42;" C -MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 28;" C -MakeTempLight src/Dodge/Data/WorldEffect.hs 32;" C -MakeTempLightFade src/Dodge/Data/WorldEffect.hs 33;" C +MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C +MakeTempLight src/Dodge/Data/WorldEffect.hs 37;" C +MakeTempLightFade src/Dodge/Data/WorldEffect.hs 38;" C ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 19;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C @@ -734,18 +735,18 @@ McProxSensor src/Dodge/Data/Machine.hs 46;" C McStatic src/Dodge/Data/Machine.hs 43;" C McTerminal src/Dodge/Data/Machine.hs 44;" C McTurret src/Dodge/Data/Machine.hs 47;" C -MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 48;" C -MdSetLSCol src/Dodge/Data/WorldEffect.hs 47;" C -MdTrigIf src/Dodge/Data/WorldEffect.hs 46;" C -MdWdId src/Dodge/Data/WorldEffect.hs 45;" C -MdWdWd src/Dodge/Data/WorldEffect.hs 44;" t +MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 54;" C +MdSetLSCol src/Dodge/Data/WorldEffect.hs 53;" C +MdTrigIf src/Dodge/Data/WorldEffect.hs 52;" C +MdWdId src/Dodge/Data/WorldEffect.hs 51;" C +MdWdWd src/Dodge/Data/WorldEffect.hs 50;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C 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 112;" t -MenuOptionDisplay src/Dodge/Data/Universe.hs 107;" t +MenuOption src/Dodge/Data/Universe.hs 109;" t +MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" 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 @@ -813,13 +814,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 66;" C +NewSideEffect src/Dodge/Data/Universe.hs 63;" 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 82;" C +NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" 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 @@ -837,17 +838,18 @@ NoRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C NoShadowFidelity src/Shape/Data.hs 20;" C NoShadows src/Dodge/Data/Config.hs 117;" C +NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C NoSubInventory src/Dodge/Data/HUD.hs 15;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C -NoWorldEffect src/Dodge/Data/WorldEffect.hs 21;" C +NoWorldEffect src/Dodge/Data/WorldEffect.hs 26;" C Noclip src/Dodge/Data/Config.hs 83;" C 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 74;" C +NormalOptions src/Dodge/Data/Universe.hs 71;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C -NormalTimeFlow src/Dodge/Data/World.hs 65;" C +NormalTimeFlow src/Dodge/Data/World.hs 67;" 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 @@ -928,8 +930,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 85;" C -OptionScreenFlag src/Dodge/Data/Universe.hs 73;" t +OptionScreen src/Dodge/Data/Universe.hs 82;" C +OptionScreenFlag src/Dodge/Data/Universe.hs 70;" 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 @@ -963,15 +965,15 @@ 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 57;" C -PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 56;" C +PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C +PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C PathFromEdge src/Dodge/Data/Room.hs 77;" t -PathShowType src/Dodge/Data/Universe.hs 55;" t +PathShowType src/Dodge/Data/Universe.hs 52;" 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 -PauseTimeMessage src/Dodge/Data/World.hs 85;" C -PausedTimeFlow src/Dodge/Data/World.hs 81;" C +PauseTimeMessage src/Dodge/Data/World.hs 87;" C +PausedTimeFlow src/Dodge/Data/World.hs 83;" 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 @@ -1090,11 +1092,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 63;" C +RespawnDelay src/Dodge/Data/World.hs 65;" 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 77;" C +RewindLeftClick src/Dodge/Data/World.hs 79;" 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 @@ -1117,7 +1119,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 70;" C +RunningSideEffect src/Dodge/Data/Universe.hs 67;" 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 @@ -1139,7 +1141,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 84;" t +ScreenLayer src/Dodge/Data/Universe.hs 81;" 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 @@ -1161,8 +1163,8 @@ SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 31;" C SentinelAt src/Dodge/Data/ActionPlan.hs 152;" C -SetLSCol src/Dodge/Data/WorldEffect.hs 24;" C -SetTrigger src/Dodge/Data/WorldEffect.hs 22;" C +SetLSCol src/Dodge/Data/WorldEffect.hs 29;" C +SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C ShadNum src/Picture/Data.hs 31;" t Shader src/Shader/Data.hs 51;" t ShaderTexture src/Shader/Data.hs 102;" t @@ -1198,7 +1200,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 65;" t +SideEffect src/Dodge/Data/Universe.hs 62;" t SimpleEdge src/Dodge/Data/PathGraph.hs 43;" t SixteenthRes src/Dodge/Data/Config.hs 111;" C Size src/Shape/Data.hs 23;" t @@ -1213,9 +1215,10 @@ SortCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C SortCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" C SortInventory src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" C Sound src/Sound/Data.hs 43;" t +SoundFilter src/Dodge/Data/WorldEffect.hs 21;" t SoundID src/Sound/Data.hs 30;" t SoundOrigin src/Dodge/Data/SoundOrigin.hs 10;" t -SoundStart src/Dodge/Data/WorldEffect.hs 27;" C +SoundStart src/Dodge/Data/WorldEffect.hs 32;" C SoundStatus src/Sound/Data.hs 14;" t South src/Dodge/Data/CardinalPoint.hs 9;" C South8 src/Dodge/Data/CardinalPoint.hs 32;" C @@ -1233,8 +1236,9 @@ SparkType src/Dodge/Data/Spark.hs 19;" t Sparking src/Dodge/Data/Damage.hs 18;" C Spatial src/Dodge/Data/Scenario.hs 73;" C SpatialInfluence src/Dodge/Data/Scenario.hs 81;" t +SpawnSound src/Dodge/Data/SoundOrigin.hs 42;" C SpawnedBy src/Dodge/Data/Creature/State.hs 17;" C -SplashOptions src/Dodge/Data/Universe.hs 76;" C +SplashOptions src/Dodge/Data/Universe.hs 73;" 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 @@ -1315,7 +1319,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 62;" t +TimeFlowStatus src/Dodge/Data/World.hs 64;" t Tiny src/Shape/Data.hs 27;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 60;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 61;" C @@ -1332,15 +1336,15 @@ 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 113;" C -Toggle2 src/Dodge/Data/Universe.hs 117;" C +Toggle src/Dodge/Data/Universe.hs 110;" C +Toggle2 src/Dodge/Data/Universe.hs 114;" 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 81;" C +TopMenuOption src/Dodge/Data/Universe.hs 78;" 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 +TorqueCr src/Dodge/Data/WorldEffect.hs 34;" C TractorBeam src/Dodge/Data/TractorBeam.hs 11;" t TrainingCamp src/Dodge/Data/Scenario.hs 63;" C TransformerSF src/Dodge/Data/ComposedItem.hs 43;" C @@ -1372,9 +1376,9 @@ 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 31;" t +Universe src/Dodge/Data/Universe.hs 28;" t UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C -UnlockInv src/Dodge/Data/WorldEffect.hs 26;" C +UnlockInv src/Dodge/Data/WorldEffect.hs 31;" C UnusedLink src/Dodge/Data/Room.hs 68;" C UseAttach src/Dodge/Data/Item/Use.hs 30;" C UseBulletMod src/Dodge/Data/Item/Use.hs 35;" C @@ -1385,7 +1389,7 @@ UseFromLocation src/Dodge/Data/UseCondition.hs 13;" C UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C UseHeld src/Dodge/Data/Item/Use.hs 29;" C UseInt src/Dodge/Data/Item/Use.hs 31;" C -UseInvItem src/Dodge/Data/WorldEffect.hs 34;" C +UseInvItem src/Dodge/Data/WorldEffect.hs 39;" C UseItem src/Dodge/Data/ActionPlan.hs 36;" C UseItemWidth src/Dodge/Data/SelectionList.hs 39;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C @@ -1448,37 +1452,38 @@ WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C WarningCry src/Dodge/Data/ActionPlan.hs 137;" C WatchAndWait src/Dodge/Data/ActionPlan.hs 135;" C -WdBl src/Dodge/Data/WorldEffect.hs 51;" t -WdBlBtOn src/Dodge/Data/WorldEffect.hs 57;" C -WdBlConst src/Dodge/Data/WorldEffect.hs 54;" C -WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 56;" C -WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 53;" C -WdBlNegate src/Dodge/Data/WorldEffect.hs 55;" C +WdBl src/Dodge/Data/WorldEffect.hs 57;" t +WdBlBtOn src/Dodge/Data/WorldEffect.hs 63;" C +WdBlConst src/Dodge/Data/WorldEffect.hs 60;" C +WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 62;" C +WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 59;" C +WdBlNegate src/Dodge/Data/WorldEffect.hs 61;" C WdCrBl src/Dodge/Data/CreatureEffect.hs 12;" t WdCrBlfromCrBl src/Dodge/Data/CreatureEffect.hs 14;" C WdCrLOSTarget src/Dodge/Data/CreatureEffect.hs 16;" C WdCrNegate src/Dodge/Data/CreatureEffect.hs 15;" C WdCrSafeDistFromTarget src/Dodge/Data/CreatureEffect.hs 17;" C WdCrTrue src/Dodge/Data/CreatureEffect.hs 13;" C -WdP2 src/Dodge/Data/WorldEffect.hs 39;" t -WdP2Const src/Dodge/Data/WorldEffect.hs 40;" C -WdP2f src/Dodge/Data/WorldEffect.hs 60;" t -WdP2f0 src/Dodge/Data/WorldEffect.hs 61;" C -WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 62;" C -WdTrig src/Dodge/Data/WorldEffect.hs 52;" C -WdWd src/Dodge/Data/WorldEffect.hs 20;" t -WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 35;" C -WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 30;" C -WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C +WdP2 src/Dodge/Data/WorldEffect.hs 45;" t +WdP2Const src/Dodge/Data/WorldEffect.hs 46;" C +WdP2f src/Dodge/Data/WorldEffect.hs 66;" t +WdP2f0 src/Dodge/Data/WorldEffect.hs 67;" C +WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 68;" C +WdTrig src/Dodge/Data/WorldEffect.hs 58;" C +WdWd src/Dodge/Data/WorldEffect.hs 25;" t +WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 40;" C +WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 35;" C +WdWdSetSoundFilter src/Dodge/Data/WorldEffect.hs 41;" C +WdYouPos src/Dodge/Data/WorldEffect.hs 47;" C WeaponScopeSF src/Dodge/Data/ComposedItem.hs 19;" C WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 20;" C 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 35;" t -WorldEffects src/Dodge/Data/WorldEffect.hs 23;" C -WorldEventFlag src/Dodge/Data/World.hs 30;" t +World src/Dodge/Data/World.hs 36;" t +WorldEffects src/Dodge/Data/WorldEffect.hs 28;" C +WorldEventFlag src/Dodge/Data/World.hs 31;" t WorldGovernment src/Dodge/Data/Scenario.hs 52;" C XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t YELLOW src/Color/Data.hs 15;" C @@ -1578,7 +1583,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 36;" f +_cWorld src/Dodge/Data/World.hs 37;" 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 @@ -1601,8 +1606,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 67;" f -_ceString src/Dodge/Data/Universe.hs 68;" f +_ceSideEffect src/Dodge/Data/Universe.hs 64;" f +_ceString src/Dodge/Data/Universe.hs 65;" 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 @@ -1617,7 +1622,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 48;" f +_clZoning src/Dodge/Data/World.hs 50;" 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 @@ -1640,7 +1645,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 59;" f +_coordinates src/Dodge/Data/World.hs 61;" 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 @@ -1678,7 +1683,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 47;" f +_crZoning src/Dodge/Data/World.hs 49;" 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 @@ -1698,8 +1703,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 62;" f -_debugMessage src/Dodge/Data/Universe.hs 61;" f +_debugFunction src/Dodge/Data/Universe.hs 59;" f +_debugMessage src/Dodge/Data/Universe.hs 58;" 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 @@ -1760,7 +1765,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 50;" f +_dsZoning src/Dodge/Data/World.hs 52;" 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 @@ -1770,7 +1775,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 80;" f +_emoMenuOption src/Dodge/Data/Universe.hs 77;" 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 @@ -1802,10 +1807,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 69;" f -_futureWorlds src/Dodge/Data/World.hs 75;" f +_futureWorlds src/Dodge/Data/World.hs 71;" f +_futureWorlds src/Dodge/Data/World.hs 77;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 66;" f -_gasZoning src/Dodge/Data/World.hs 49;" f +_gasZoning src/Dodge/Data/World.hs 51;" 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 @@ -1840,7 +1845,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 56;" f +_gsZoning src/Dodge/Data/World.hs 58;" 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 @@ -1850,7 +1855,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 45;" f +_hud src/Dodge/Data/World.hs 47;" 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 @@ -1877,12 +1882,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 55;" f +_incEdgeZoning src/Dodge/Data/World.hs 57;" 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 54;" f -_input src/Dodge/Data/World.hs 42;" f +_incNodeZoning src/Dodge/Data/World.hs 56;" f +_input src/Dodge/Data/World.hs 44;" 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 @@ -2003,13 +2008,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 114;" f -_moEff1 src/Dodge/Data/Universe.hs 118;" f -_moEff2 src/Dodge/Data/Universe.hs 119;" f -_moString src/Dodge/Data/Universe.hs 115;" f -_moString src/Dodge/Data/Universe.hs 120;" f -_modOption src/Dodge/Data/Universe.hs 110;" f -_modString src/Dodge/Data/Universe.hs 108;" f +_moEff src/Dodge/Data/Universe.hs 111;" f +_moEff1 src/Dodge/Data/Universe.hs 115;" f +_moEff2 src/Dodge/Data/Universe.hs 116;" f +_moString src/Dodge/Data/Universe.hs 112;" f +_moString src/Dodge/Data/Universe.hs 117;" f +_modOption src/Dodge/Data/Universe.hs 107;" f +_modString src/Dodge/Data/Universe.hs 105;" 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 @@ -2054,10 +2059,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 37;" f +_pastWorlds src/Dodge/Data/World.hs 38;" 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 +_pauseTimeMesage src/Dodge/Data/World.hs 88;" f +_pauseTimeMesageColor src/Dodge/Data/World.hs 89;" 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 @@ -2085,7 +2090,7 @@ _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 41;" f +_playingSounds src/Dodge/Data/World.hs 42;" 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 @@ -2093,7 +2098,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 33;" f +_preloadData src/Dodge/Data/Universe.hs 30;" 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 @@ -2141,12 +2146,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 39;" f +_randGen src/Dodge/Data/World.hs 40;" 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 44;" f +_rbState src/Dodge/Data/World.hs 46;" 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 @@ -2157,11 +2162,11 @@ _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 64;" f +_respawnDelay src/Dodge/Data/World.hs 66;" f _respawnPos src/Dodge/Data/LWorld.hs 146;" 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 +_reverseAmount src/Dodge/Data/World.hs 70;" f +_reverseAmount src/Dodge/Data/World.hs 76;" f +_reverseAmount src/Dodge/Data/World.hs 80;" 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 @@ -2209,23 +2214,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 92;" f -_scBlockStatus 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 +_scAvailableLines src/Dodge/Data/Universe.hs 89;" f +_scBlockStatus src/Dodge/Data/Universe.hs 95;" 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 +_scPara src/Dodge/Data/Universe.hs 94;" 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 _scrollAmount src/Dodge/Data/Input.hs 40;" 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 +_scrollItemID src/Dodge/Data/World.hs 72;" f +_scrollItemID src/Dodge/Data/World.hs 81;" f +_scrollItemID src/Dodge/Data/World.hs 85;" f +_scrollSmoothing src/Dodge/Data/World.hs 69;" f +_scrollSmoothing src/Dodge/Data/World.hs 75;" 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 @@ -2328,7 +2333,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 43;" f +_testFloat src/Dodge/Data/World.hs 45;" f _textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f _textureObject src/Shader/Data.hs 103;" f @@ -2338,8 +2343,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 38;" f -_timeFlowCharge src/Dodge/Data/World.hs 82;" f +_timeFlow src/Dodge/Data/World.hs 39;" f +_timeFlowCharge src/Dodge/Data/World.hs 84;" 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 @@ -2361,7 +2366,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 40;" f +_toPlaySounds src/Dodge/Data/World.hs 41;" 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 @@ -2393,7 +2398,7 @@ _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 58;" f +_unpauseClock src/Dodge/Data/World.hs 60;" 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 @@ -2402,26 +2407,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 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 +_uvCanContinue src/Dodge/Data/Universe.hs 36;" f +_uvConfig src/Dodge/Data/Universe.hs 34;" f +_uvDebug src/Dodge/Data/Universe.hs 41;" f +_uvDebugFloat1 src/Dodge/Data/Universe.hs 42;" f +_uvDebugFloat2 src/Dodge/Data/Universe.hs 43;" f +_uvDebugMessageOffset src/Dodge/Data/Universe.hs 48;" f +_uvDebugPathShowType src/Dodge/Data/Universe.hs 47;" f +_uvDebugPut src/Dodge/Data/Universe.hs 46;" f +_uvDebugV2_1 src/Dodge/Data/Universe.hs 44;" f +_uvDebugV2_2 src/Dodge/Data/Universe.hs 45;" f +_uvFrameTicks src/Dodge/Data/Universe.hs 39;" f +_uvIOEffects src/Dodge/Data/Universe.hs 32;" f +_uvLastFrameTicks src/Dodge/Data/Universe.hs 38;" f +_uvMSeed src/Dodge/Data/Universe.hs 37;" f +_uvRAMSave src/Dodge/Data/Universe.hs 40;" f +_uvScreenLayers src/Dodge/Data/Universe.hs 31;" f +_uvSideEffects src/Dodge/Data/Universe.hs 33;" f +_uvSoundQueue src/Dodge/Data/Universe.hs 49;" f +_uvTestString src/Dodge/Data/Universe.hs 35;" f +_uvWorld src/Dodge/Data/Universe.hs 29;" f _vaCount src/Shader/Data.hs 67;" f _vaNormalize src/Shader/Data.hs 69;" f _vaOffset src/Shader/Data.hs 70;" f @@ -2446,7 +2451,8 @@ _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 57;" f +_wCam src/Dodge/Data/World.hs 59;" f +_wSoundFilter src/Dodge/Data/World.hs 43;" 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 @@ -2473,8 +2479,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 51;" f -_worldEventFlags src/Dodge/Data/World.hs 46;" f +_wlZoning src/Dodge/Data/World.hs 53;" f +_worldEventFlags src/Dodge/Data/World.hs 48;" 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 @@ -2569,7 +2575,7 @@ applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f applyInvLock src/Dodge/HeldUse.hs 428;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f applyPastDamages src/Dodge/Creature/State.hs 49;" f -applyPosition src/Sound.hs 111;" f +applyPosition src/Sound.hs 112;" f applyRecoil src/Dodge/HeldUse.hs 459;" f applyResFactor src/Dodge/Data/Config.hs 124;" f applyResFactorF src/Dodge/Data/Config.hs 133;" f @@ -2619,9 +2625,9 @@ attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 75;" f attribSize src/Shader/Compile.hs 139;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f -autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f +autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f -autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f +autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 734;" f autoPistol src/Dodge/Item/Held/Stick.hs 49;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 161;" f @@ -2630,14 +2636,15 @@ azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 127;" f +backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 588;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackShape src/Dodge/Item/Draw/SPic.hs 187;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 304;" f -bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f +bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f -bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f +bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f @@ -2686,22 +2693,22 @@ blockPillar src/Dodge/Room/Pillar.hs 22;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f blockingLoad src/Dodge/Concurrent.hs 35;" f -blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 648;" f -blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f -blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f -blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f -blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f -blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 720;" f -blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f -blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f -bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f -bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f -bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f -bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f -bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f -bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f -bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f -bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f +blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f +blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f +blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 700;" f +blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 576;" f +blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f +blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 740;" f +blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f +blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f +bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 648;" f +bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 616;" f +bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 608;" f +bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f +bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f +bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f +bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f +bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f blue src/Color.hs 16;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f @@ -2738,7 +2745,7 @@ bulletSynthesizer src/Dodge/Item/Ammo.hs 82;" f bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 17;" f -buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f +buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f cChasm src/Dodge/Room/Tutorial.hs 120;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f @@ -2813,17 +2820,17 @@ clAlt src/Dodge/Cloud.hs 5;" 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 -clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f -clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 696;" f -clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f +clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f +clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f +clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f cleanUpPreload src/Preload.hs 10;" f cleanUpSoundPreload src/Preload.hs 15;" f -cleanupHalted src/Sound.hs 117;" f +cleanupHalted src/Sound.hs 118;" f cleatLabel src/Dodge/Cleat.hs 30;" f cleatOnward src/Dodge/Cleat.hs 24;" f cleatSide src/Dodge/Cleat.hs 27;" f -click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f +click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 235;" f @@ -2872,7 +2879,7 @@ combineInventoryExtra src/Dodge/Render/HUD.hs 338;" f combineItemListYouX src/Dodge/Combine.hs 35;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 132;" f -combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f +combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f combineTree src/Dodge/Tree/Compose.hs 67;" f commandColor src/Dodge/Terminal.hs 114;" f commonPrefix src/Dodge/Debug/Terminal.hs 149;" f @@ -2884,11 +2891,11 @@ compactDrawTree src/Dodge/LevelGen.hs 88;" f compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 76;" f composeTree src/Dodge/Tree/Compose.hs 47;" f -computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 658;" f +computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 678;" f conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f concurrentIS src/Dodge/Update/Input/InGame.hs 287;" f -connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f +connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 762;" f constructEdges src/Polyhedra.hs 34;" f constructEdgesList src/Polyhedra.hs 43;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f @@ -2956,7 +2963,7 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f craftInfo src/Dodge/Item/Info.hs 169;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f -crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f +crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 622;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 58;" f @@ -3035,7 +3042,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 44;" f +darkenBackground src/Dodge/Render/MenuScreen.hs 45;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 322;" f @@ -3046,7 +3053,7 @@ deadFeet src/Dodge/Creature/Picture.hs 68;" f deadRot src/Dodge/Creature/Picture.hs 84;" f deadScalp src/Dodge/Creature/Picture.hs 81;" f deadUpperBody src/Dodge/Creature/Picture.hs 114;" f -debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f +debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f debrisSPic src/Dodge/Prop/Draw.hs 16;" f debrisSize src/Dodge/Block/Debris.hs 83;" f debugEvent src/Dodge/Debug.hs 37;" f @@ -3069,11 +3076,11 @@ decontamRoom src/Dodge/Room/Airlock.hs 38;" f decoratedBlock src/Dodge/Placement/Instance/Block.hs 11;" f decorationToShape src/Dodge/Placement/TopDecoration.hs 9;" f decreaseAwareness src/Dodge/Creature/Perception.hs 118;" f -decrementTimer src/Sound.hs 102;" f -dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 692;" f -dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f -dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 644;" f -dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 456;" f +decrementTimer src/Sound.hs 103;" f +dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 712;" f +dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f +dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f +dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 468;" f defDamageMaterial src/Dodge/Material/Damage.hs 30;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 310;" f @@ -3085,9 +3092,9 @@ defaultBlock src/Dodge/Default/Block.hs 5;" f defaultBounds src/Dodge/Data/Bounds.hs 18;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultButton src/Dodge/Default.hs 46;" f -defaultCWCam src/Dodge/Default/World.hs 70;" f -defaultCWGen src/Dodge/Default/World.hs 60;" f -defaultCWorld src/Dodge/Default/World.hs 85;" f +defaultCWCam src/Dodge/Default/World.hs 72;" f +defaultCWGen src/Dodge/Default/World.hs 62;" f +defaultCWorld src/Dodge/Default/World.hs 87;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 150;" f @@ -3103,13 +3110,13 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultEquipment src/Dodge/Default.hs 24;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 166;" f +defaultHUD src/Dodge/Default/World.hs 168;" f defaultHeldItem src/Dodge/Default/Item.hs 9;" f defaultInanimate src/Dodge/Default/Creature.hs 62;" f -defaultInput src/Dodge/Default/World.hs 11;" f +defaultInput src/Dodge/Default/World.hs 12;" f defaultIntention src/Dodge/Default/Creature.hs 98;" f defaultInvSize src/Dodge/Default/Creature.hs 72;" f -defaultLWorld src/Dodge/Default/World.hs 101;" f +defaultLWorld src/Dodge/Default/World.hs 103;" f defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f @@ -3120,7 +3127,7 @@ defaultTerminal src/Dodge/Default/Terminal.hs 10;" f defaultVision src/Dodge/Default/Creature.hs 85;" f defaultWall src/Dodge/Default/Wall.hs 15;" f defaultWindow src/Dodge/Default/Wall.hs 54;" f -defaultWorld src/Dodge/Default/World.hs 31;" f +defaultWorld src/Dodge/Default/World.hs 32;" f degToRad src/Geometry/Vector.hs 118;" f deleteIMInZone src/Dodge/Base.hs 70;" f deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f @@ -3152,7 +3159,7 @@ digitalLine src/Geometry.hs 285;" f digitalRect src/Geometry.hs 302;" f dim src/Color.hs 112;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f -disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f +disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f displayConfig src/Dodge/Menu.hs 225;" f displayControls src/Dodge/Menu.hs 241;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f @@ -3212,7 +3219,7 @@ 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 131;" f +doPreload appDodge/Main.hs 132;" f doQuickload src/Dodge/Save.hs 83;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f @@ -3221,7 +3228,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 116;" f +doSideEffects appDodge/Main.hs 117;" 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 @@ -3300,7 +3307,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 31;" f +drawInputMenu src/Dodge/Render/MenuScreen.hs 32;" 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 @@ -3316,18 +3323,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 23;" f +drawLoadingScreen src/Dodge/Render/MenuScreen.hs 24;" 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 17;" f +drawMenuScreen src/Dodge/Render/MenuScreen.hs 18;" 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 34;" f +drawOptions src/Dodge/Render/MenuScreen.hs 35;" 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 @@ -3361,7 +3368,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 47;" f +drawTitle src/Dodge/Render/MenuScreen.hs 48;" 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 @@ -3411,8 +3418,8 @@ edgeToPic src/Dodge/Debug/Picture.hs 416;" f effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnRemove src/Dodge/Equipment.hs 19;" f eitType src/Dodge/Data/EquipType.hs 15;" f -ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f -elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f +ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f +elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f elephantGun src/Dodge/Item/Held/Rod.hs 27;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 22;" f emptyTrie src/SimpleTrie.hs 17;" f @@ -3423,7 +3430,7 @@ encircleP src/Dodge/Creature/Boid.hs 30;" f endArcPos src/Dodge/Tesla.hs 87;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f endRegex src/Dodge/Update/Input/InGame.hs 265;" f -energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f +energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f enterCombineInv src/Dodge/DisplayInventory.hs 317;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f @@ -3457,7 +3464,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 188;" f explodeShell src/Dodge/Projectile/Update.hs 229;" f -explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f +explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f @@ -3482,12 +3489,12 @@ findReverseEdgeList src/Polyhedra.hs 57;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 27;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWithIx src/ListHelp.hs 124;" f -fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 564;" f -fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f -fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f +fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 578;" f +fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f +fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f -firstWorldLoad appDodge/Main.hs 67;" f +firstWorldLoad appDodge/Main.hs 68;" f fixedCoordPictures src/Dodge/Render/Picture.hs 20;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flFlicker src/Dodge/Flame.hs 39;" f @@ -3516,15 +3523,15 @@ floorItemPickupInfo src/Dodge/Render/HUD.hs 232;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 124;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f -foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f -foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f +foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f +foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 580;" f foldMTRS src/Dodge/Room/Tutorial.hs 65;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f -foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f -foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f -foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 636;" f +foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f +foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f +foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f forbidFlee src/Dodge/Creature/Boid.hs 45;" f forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 6;" f @@ -3534,7 +3541,7 @@ fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fpsText src/Dodge/Render/Picture.hs 57;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 146;" f frag src/Shader/Data.hs 110;" f -fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f +fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 524;" f fromJust' src/MaybeHelp.hs 22;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f @@ -3618,10 +3625,10 @@ girderZ src/Dodge/Room/Foreground.hs 108;" f glCreate src/GLHelp.hs 11;" f glassLesson src/Dodge/Room/GlassLesson.hs 23;" f glassLessonRunPast src/Dodge/Room/GlassLesson.hs 68;" f -glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 666;" f -glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 632;" f -glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f -glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f +glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 686;" f +glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 652;" f +glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f +glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f glassSwitchBack src/Dodge/Room/Room.hs 72;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 106;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 401;" f @@ -3642,13 +3649,13 @@ gridPoints' src/Grid.hs 37;" f gridPointsOff src/Grid.hs 32;" f gridRoomPos src/Dodge/Room/Procedural.hs 90;" f groupSplitItemAmounts src/Dodge/Combine.hs 51;" f -gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f -gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 746;" f -gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f -gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 506;" f -gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f -gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 706;" f -gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 662;" f +gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f +gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 766;" f +gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 550;" f +gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f +gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f +gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 726;" f +gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 682;" f gyroscope src/Dodge/Item/Scope.hs 156;" f hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f @@ -3679,7 +3686,7 @@ headLamp src/Dodge/Item/Equipment.hs 79;" f headLampShape src/Dodge/Item/Draw/SPic.hs 422;" f headMap src/Dodge/DoubleTree.hs 249;" f headPQ src/Dodge/Creature/HandPos.hs 115;" f -healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f +healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 81;" f healthTest src/Dodge/Room/LasTurret.hs 122;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f @@ -3707,9 +3714,9 @@ hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f highBar src/Dodge/Room/Foreground.hs 89;" f highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f highMesh src/Dodge/Room/Foreground.hs 25;" f -hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f +hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f hitEffFromBul src/Dodge/Bullet.hs 156;" f -hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f +hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 15;" f homingModule src/Dodge/Item/Scope.hs 48;" f @@ -3744,9 +3751,9 @@ insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f insertInTrie src/SimpleTrie.hs 24;" f insertNewKey src/IntMapHelp.hs 65;" f -insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f +insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f insertOver src/ListHelp.hs 47;" f -insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f +insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 41;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 134;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f @@ -3912,7 +3919,7 @@ keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 66;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 438;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f -knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f +knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f lChasm src/Dodge/Room/Tutorial.hs 129;" f lConnect src/Dodge/Render/Connectors.hs 42;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f @@ -3921,7 +3928,7 @@ lamp src/Dodge/Creature/Lamp.hs 18;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 87;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f -lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f +lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 134;" f lasTunnel src/Dodge/Room/LasTurret.hs 153;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 194;" f @@ -4043,7 +4050,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 27;" f +main appDodge/Main.hs 28;" f main bench/Bench.hs 15;" f main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 157;" f @@ -4092,10 +4099,10 @@ makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 18;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f mapper src/Dodge/Item/Scope.hs 70;" f -marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 652;" f -marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 616;" f -marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 678;" f -marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f +marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 672;" f +marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 636;" f +marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f +marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 658;" f materialColor src/Dodge/Material/Color.hs 8;" f materialPenetrable src/Dodge/Bullet.hs 211;" f maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f @@ -4146,13 +4153,13 @@ merge src/ListHelp.hs 84;" f mergeBy src/ListHelp.hs 87;" f mergeOn src/ListHelp.hs 94;" f mergeSound src/Sound.hs 59;" f -metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f -metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f -metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 622;" f -metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 654;" f -metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f -metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 712;" f -metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f +metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 654;" f +metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f +metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f +metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f +metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 690;" f +metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 732;" f +metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f metalPlate src/Dodge/Item/Craftable.hs 35;" f mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f @@ -4166,18 +4173,18 @@ midWall src/Dodge/Placement/Instance/Wall.hs 38;" f minAndMax src/FoldableHelp.hs 109;" f minCrIXOn src/Dodge/Zoning/Creature.hs 49;" f minOn src/FoldableHelp.hs 35;" f -mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" f +mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f miniGunCrit src/Dodge/Creature.hs 61;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 373;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 370;" f -miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 736;" f +miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 756;" f miniTree2 src/Dodge/Room/Room.hs 113;" f minimumOn src/FoldlHelp.hs 14;" f mirrorXAxis src/Geometry/Polygon.hs 68;" f mirrorxz src/Picture/Base.hs 335;" f mirroryz src/Picture/Base.hs 340;" f -missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f +missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f mixColors src/Color.hs 86;" f mixColorsFrac src/Color.hs 82;" f mixColorsLinear src/Color.hs 95;" f @@ -4246,6 +4253,7 @@ nearestAngleRep src/Geometry.hs 148;" f newExtraAwareness src/Dodge/Creature/Perception.hs 137;" f newKey src/IntMapHelp.hs 61;" f newSounds src/Dodge/Creature/Perception.hs 169;" f +newSoundsToPlay src/Dodge/SoundSelection.hs 8;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f nextArc src/Dodge/Tesla.hs 61;" f nextInSectionSS src/Dodge/SelectionSections.hs 34;" f @@ -4277,7 +4285,7 @@ numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 184;" f obstacleColor src/Dodge/Debug/Picture.hs 263;" f obstructPathsCrossing src/Dodge/Path.hs 120;" f -oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f +oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 738;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f @@ -4355,7 +4363,7 @@ picFormat src/Polyhedra.hs 23;" f picMap src/Picture/Base.hs 67;" f pickUpItem src/Dodge/Inventory/Add.hs 69;" f pickUpItemAt src/Dodge/Inventory/Add.hs 74;" f -pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f +pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 660;" f pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f @@ -4383,11 +4391,11 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 67;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 163;" f plainRegex src/Dodge/DisplayInventory.hs 189;" f -playIfFree src/Sound.hs 137;" f -playPositionalSoundQueue src/Sound.hs 145;" f +playIfFree src/Sound.hs 138;" f +playPositionalSoundQueue src/Sound.hs 146;" f playSoundAndUpdate src/Sound.hs 54;" f -playSoundQueue src/Sound.hs 132;" f -playSoundUnlessRewinding appDodge/Main.hs 109;" f +playSoundQueue src/Sound.hs 133;" f +playSoundUnlessRewinding appDodge/Main.hs 110;" 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 @@ -4476,7 +4484,7 @@ prependTwo src/Geometry.hs 177;" f prettyDT src/Dodge/DoubleTree.hs 258;" f prettyLDT src/Dodge/DoubleTree.hs 263;" f prettyShort src/AesonHelp.hs 11;" f -primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f +primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f printColumnTitles src/Dodge/Tree/Shift.hs 149;" f printColumns src/Dodge/Tree/Shift.hs 139;" f printInfo src/Dodge/Tree/Shift.hs 152;" f @@ -4610,9 +4618,9 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f regexList src/Dodge/DisplayInventory.hs 308;" f -reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f +reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f reloadLevelStart src/Dodge/Save.hs 71;" f -reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f +reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 632;" f rememberSounds src/Dodge/Creature/Perception.hs 176;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f @@ -4643,7 +4651,7 @@ resizeFBOTO2 src/Framebuffer/Update.hs 104;" f resizeFBOTO3 src/Framebuffer/Update.hs 127;" f resizeFBOTO3' src/Framebuffer/Update.hs 154;" f resizeRBO src/Framebuffer/Update.hs 101;" f -respawn src/Dodge/SpawnAt.hs 12;" f +respawn src/Dodge/SpawnAt.hs 11;" f restrictInLinks src/Dodge/RoomLink.hs 44;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f restrictOutLinks src/Dodge/RoomLink.hs 47;" f @@ -4651,6 +4659,7 @@ restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f resumeSound src/Dodge/SoundLogic.hs 48;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 9;" f revCard src/Dodge/Data/CardinalPoint.hs 13;" f +reverseCymbal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f reversePair src/Dodge/LevelGen.hs 85;" f rewinder src/Dodge/Item/Held/Utility.hs 36;" f rezBox src/Dodge/Room/RezBox.hs 31;" f @@ -4749,7 +4758,7 @@ saveQuit src/Dodge/Menu.hs 79;" f saveQuitConc src/Dodge/Menu.hs 82;" f saveSlotPath src/Dodge/Save.hs 63;" f saveWorldInSlot src/Dodge/Save.hs 68;" f -sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 734;" f +sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 754;" f scToTS src/Dodge/Event/Input.hs 34;" f scale src/Picture/Base.hs 149;" f scale3 src/Picture/Base.hs 145;" f @@ -4771,15 +4780,15 @@ scrollRBOption src/Dodge/Update/Scroll.hs 202;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f scrollTimeBack src/Dodge/Update.hs 208;" f scrollTimeForward src/Dodge/Update.hs 225;" f -seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f -seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 672;" f -seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 686;" f -seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f -seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 580;" f -seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 588;" f -seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f -seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f -seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 738;" f +seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f +seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 692;" f +seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 706;" f +seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f +seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" f +seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f +seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 620;" f +seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f +seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 758;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 213;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 43;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f @@ -4808,7 +4817,7 @@ sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setAimPosture src/Dodge/Creature/YourControl.hs 145;" f -setChannelPos src/Sound.hs 150;" f +setChannelPos src/Sound.hs 151;" f setClickWorldPos src/Dodge/Update.hs 101;" f setClip src/Dodge/Debug.hs 193;" f setClusterID src/Dodge/Combine/Graph.hs 114;" f @@ -4822,7 +4831,7 @@ setInvPosFromSS src/Dodge/Inventory/Location.hs 92;" f setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 78;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f -setMusicVolume src/Sound.hs 162;" f +setMusicVolume src/Sound.hs 163;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f setOldPos src/Dodge/Update.hs 499;" f setOutLinks src/Dodge/RoomLink.hs 50;" f @@ -4834,7 +4843,7 @@ setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f -setSoundVolume src/Sound.hs 157;" f +setSoundVolume src/Sound.hs 158;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f @@ -4906,7 +4915,7 @@ shootersRoom1 src/Dodge/Room/Room.hs 314;" f shootingRange src/Dodge/Room/Room.hs 341;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" f -shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 728;" f +shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 748;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 68;" f shoulderSH src/Dodge/Creature/Picture.hs 125;" f showAttachItem src/Dodge/Item/Display.hs 92;" f @@ -4926,8 +4935,8 @@ shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" 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 +sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 720;" f +sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f singleDT src/Dodge/DoubleTree.hs 10;" f singleLDT src/Dodge/DoubleTree.hs 13;" f @@ -4935,10 +4944,10 @@ singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 20;" f sizeFBOs src/Framebuffer/Update.hs 19;" f skColor src/Dodge/Spark/Draw.hs 14;" f -skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 524;" f -slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 690;" f -slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f -slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f +skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f +slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f +slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f +slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 728;" f slideWindow src/ListHelp.hs 81;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f @@ -4946,10 +4955,10 @@ smallBattery src/Dodge/Item/Ammo.hs 60;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallDrawTree src/Dodge/LevelGen.hs 91;" f -smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f -smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f -smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f -smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f +smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 494;" f +smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f +smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f +smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 490;" f smallPillar src/Dodge/Room/Pillar.hs 37;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smallSnailInt2 src/Dodge/Path.hs 81;" f @@ -4969,10 +4978,10 @@ soundMenuOptions src/Dodge/Menu.hs 163;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f -soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 304;" f +soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 312;" f soundPic src/Dodge/Debug/Picture.hs 363;" f soundStart src/Dodge/SoundLogic.hs 118;" f -soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 154;" f +soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 158;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f @@ -4987,7 +4996,7 @@ sparkDam src/Dodge/Spark.hs 36;" f sparkGun src/Dodge/Item/Held/BatteryGuns.hs 13;" f sparkRandDir src/Dodge/Spark.hs 116;" f sparkToDamage src/Dodge/Spark.hs 39;" f -spawnAt src/Dodge/SpawnAt.hs 15;" f +spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 54;" f spawnerRoom src/Dodge/Room/Room.hs 369;" f speedLegs src/Dodge/Item/Equipment.hs 90;" f @@ -5043,12 +5052,12 @@ startSeedGameConc src/Dodge/StartNewGame.hs 46;" 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 -stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f -stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 682;" f -stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f -stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f -stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f -stopAllSounds src/Sound.hs 125;" f +stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f +stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f +stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f +stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f +stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 662;" f +stopAllSounds src/Sound.hs 126;" f stopBulletAt src/Dodge/Bullet.hs 200;" f stopPushing src/Dodge/Wall/Damage.hs 95;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f @@ -5089,11 +5098,11 @@ tankShape src/Dodge/Placement/Instance/Tank.hs 22;" f tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f tanksRoom src/Dodge/Room/Tanks.hs 77;" f -tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f -tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f -tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f -tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 726;" f -tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f +tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 666;" f +tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f +tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 644;" f +tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 746;" f +tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f @@ -5101,7 +5110,7 @@ targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 202;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f -teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f +teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 43;" f termTextColor src/Dodge/Terminal.hs 46;" f @@ -5130,9 +5139,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 64;" f +theCleanup appDodge/Main.hs 65;" f theColumns src/Dodge/Tree/Shift.hs 146;" f -theUpdateStep appDodge/Main.hs 100;" f +theUpdateStep appDodge/Main.hs 101;" f thickArc src/Picture/Base.hs 298;" f thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f @@ -5144,6 +5153,7 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 44;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 127;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 52;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f +throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 196;" f @@ -5152,13 +5162,13 @@ 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 -ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 454;" f -ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f -ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f -ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 550;" f -ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 730;" f -tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f -tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 578;" f +ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f +ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f +ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 696;" f +ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 564;" f +ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 750;" f +tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f +tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f titleOptionsMenu src/Dodge/Menu.hs 106;" f titleOptionsNoWrite src/Dodge/Menu.hs 109;" f tlDoEffect src/Dodge/Terminal.hs 102;" f @@ -5182,10 +5192,10 @@ toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 67;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 105;" f toggleJust src/MaybeHelp.hs 39;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 110;" f -tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 660;" f -tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f -tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 620;" f -tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f +tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f +tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f +tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f +tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f topInvW src/Dodge/ListDisplayParams.hs 49;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f @@ -5247,7 +5257,7 @@ tryClickUse src/Dodge/Creature/YourControl.hs 237;" f tryCombine src/Dodge/Update/Input/InGame.hs 545;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 151;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 138;" f -tryGetChannel src/Sound.hs 97;" f +tryGetChannel src/Sound.hs 98;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 22;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 40;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 145;" f @@ -5277,9 +5287,9 @@ twoFlat src/Dodge/Creature/Test.hs 99;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 80;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 166;" f twoRoomPoss src/Dodge/PlacementSpot.hs 146;" f -twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f -twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 608;" f -twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" f +twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f +twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f +twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f ubyteSize src/Shader/Parameters.hs 13;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 112;" f uncurryV src/Geometry/Data.hs 66;" f @@ -5388,7 +5398,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 103;" f +updateRenderSplit appDodge/Main.hs 104;" 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 @@ -5495,6 +5505,7 @@ wallsFromRooms src/Dodge/Layout.hs 137;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1376;" f warningRooms src/Dodge/Room/Warning.hs 30;" f +warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f @@ -5511,24 +5522,24 @@ weaponRoom src/Dodge/Room/Room.hs 260;" f weaponUnderCrits src/Dodge/Room/Room.hs 165;" f wedgeGeom src/Dodge/Base.hs 42;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f -whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 732;" f -whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f -whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 490;" f -whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f -whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 576;" f -whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 740;" f -whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 494;" f -whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f -whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f -whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f -whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f -whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 468;" f -whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f +whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 752;" f +whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f +whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f +whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 730;" f +whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f +whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 760;" f +whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 506;" f +whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f +whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f +whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f +whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 736;" f +whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f +whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f white src/Color.hs 26;" f -whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f -whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f +whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 764;" f +whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f -winConfig appDodge/Main.hs 46;" f +winConfig appDodge/Main.hs 47;" 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 @@ -5558,7 +5569,7 @@ worldPosToScreen src/Dodge/Base/Coordinate.hs 22;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f -wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f +wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f writeConfig src/Dodge/Menu.hs 182;" f