diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 05eb7ef6c..9217dfa5f 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -207,6 +207,7 @@ doDrawing' win pdata u = do glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboHalf1 pdata))) glDepthFunc GL_ALWAYS glBindTextureUnit 0 (pdata ^. fboBloom . _2 . unTO) + glGenerateTextureMipmap (pdata ^. fboBloom . _2 . unTO) glDisable GL_BLEND -- this all needs more tuning + more thought -- a fade effect would be cool, so not to fully reset last frames bloom diff --git a/src/Framebuffer/Update.hs b/src/Framebuffer/Update.hs index c45a120cc..d5eaff4d6 100644 --- a/src/Framebuffer/Update.hs +++ b/src/Framebuffer/Update.hs @@ -21,17 +21,6 @@ import Unsafe.Coerce sizeFBOs :: Config -> RenderData -> IO RenderData sizeFBOs cfig rdata = uncurryV (resizeRBO (_rboBaseBloom rdata)) (getWindowSize _gr_world_res cfig) --- >> updateFBOTO3 --- (getWindowSize _gr_world_res cfig) --- GL_NEAREST --- GL_NEAREST --- GL_RGB16F -- RGBAF not sure if the alpha is necessary here --- GL_RGB16F -- could possibly recover using depth in a clever way --- -- but probably not, because the projection matrix is --- -- not always on-center --- GL_RGBA8_SNORM --- rdata --- fboBase >> fboBase (resizeFBOTO3' (getWindowSize _gr_world_res cfig) GL_NEAREST @@ -61,12 +50,20 @@ sizeFBOs cfig rdata = GL_NEAREST GL_RGBA8 [fboLighting] - >>= foldUpdateFBOTO - _gr_world_res + >>= fboBloom (resizeFBOTO' + (getWindowSize _gr_world_res cfig) + 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F - [fboBloom, fboPos] -- fboPos probably doesn't need the alpha channel +-- [fboBloom] -- fboPos probably doesn't need the alpha channel + ) + >>= foldUpdateFBOTO + _gr_world_res + GL_NEAREST + GL_NEAREST + GL_RGBA16F + [fboPos] -- fboPos probably doesn't need the alpha channel >>= foldUpdateFBOTO _gr_downsize_res GL_LINEAR_MIPMAP_LINEAR @@ -104,8 +101,8 @@ updateFBOTO :: RenderData -> ALens' RenderData (FBO, TO) -> IO RenderData -updateFBOTO (V2 xsize ysize) minfilt magfilt form pdata target = do - newfbo2 <- resizeFBOTO (pdata ^# target) xsize ysize minfilt magfilt form +updateFBOTO wsize minfilt magfilt form pdata target = do + newfbo2 <- resizeFBOTO (pdata ^# target) wsize minfilt magfilt form return $ storing target newfbo2 pdata -- note that the ordering of arguments is different to the other update @@ -123,8 +120,8 @@ updateFBOTO2 :: RenderData -> ALens' RenderData (FBO, (TO, TO)) -> IO RenderData -updateFBOTO2 (V2 xsize ysize) minfilt magfilt form1 form2 pdata target = do - newfbo2 <- resizeFBOTO2 (pdata ^# target) xsize ysize minfilt magfilt form1 form2 +updateFBOTO2 wsize minfilt magfilt form1 form2 pdata target = do + newfbo2 <- resizeFBOTO2 (pdata ^# target) wsize minfilt magfilt form1 form2 return $ storing target newfbo2 pdata updateFBOTO3 :: @@ -142,14 +139,13 @@ updateFBOTO3 :: RenderData -> ALens' RenderData (FBO, (TO, TO, TO)) -> IO RenderData -updateFBOTO3 (V2 xsize ysize) minfilt magfilt form1 form2 form3 pdata target = do - newfbo2 <- resizeFBOTO3 (pdata ^# target) xsize ysize minfilt magfilt form1 form2 form3 +updateFBOTO3 wsize minfilt magfilt form1 form2 form3 pdata target = do + newfbo2 <- resizeFBOTO3 (pdata ^# target) wsize minfilt magfilt form1 form2 form3 return $ storing target newfbo2 pdata resizeFBOTO2 :: (FBO, (TO, TO)) -> - Int -> - Int -> + V2 Int -> -- | minification filter GLenum -> -- | magnification filter @@ -159,12 +155,12 @@ resizeFBOTO2 :: -- | internal color format2 GLenum -> IO (FBO, (TO, TO)) -resizeFBOTO2 (fbo, (told1, told2)) xsize ysize minfilt magfilt form1 form2 = do +resizeFBOTO2 (fbo, (told1, told2)) wsize minfilt magfilt form1 form2 = do glBindFramebuffer GL_FRAMEBUFFER (_unFBO fbo) mglDelete glDeleteTextures $ _unTO told1 mglDelete glDeleteTextures $ _unTO told2 - to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 xsize ysize minfilt magfilt form1 - to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 xsize ysize minfilt magfilt form2 + to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 wsize 1 minfilt magfilt form1 + to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 wsize 1 minfilt magfilt form2 withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1] $ glNamedFramebufferDrawBuffers (_unFBO fbo) 2 checkFBO fbo @@ -172,8 +168,7 @@ resizeFBOTO2 (fbo, (told1, told2)) xsize ysize minfilt magfilt form1 form2 = do resizeFBOTO3 :: (FBO, (TO, TO, TO)) -> - Int -> - Int -> + V2 Int -> -- | minification filter GLenum -> -- | magnification filter @@ -185,14 +180,14 @@ resizeFBOTO3 :: -- | internal color format3 GLenum -> IO (FBO, (TO, TO, TO)) -resizeFBOTO3 (fbo, (told1, told2, told3)) xsize ysize minfilt magfilt form1 form2 form3 = do +resizeFBOTO3 (fbo, (told1, told2, told3)) wsize minfilt magfilt form1 form2 form3 = do glBindFramebuffer GL_FRAMEBUFFER (_unFBO fbo) mglDelete glDeleteTextures $ _unTO told1 mglDelete glDeleteTextures $ _unTO told2 mglDelete glDeleteTextures $ _unTO told3 - to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 xsize ysize minfilt magfilt form1 - to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 xsize ysize minfilt magfilt form2 - to3 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT2 xsize ysize minfilt magfilt form3 + to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 wsize 1 minfilt magfilt form1 + to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 wsize 1 minfilt magfilt form2 + to3 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT2 wsize 1 minfilt magfilt form3 withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $ glNamedFramebufferDrawBuffers (_unFBO fbo) 3 checkFBO fbo @@ -216,14 +211,14 @@ resizeFBOTO3' :: GLenum -> (FBO, (TO, TO, TO)) -> IO (FBO, (TO, TO, TO)) -resizeFBOTO3' (V2 xsize ysize) min1 mag1 minfilt magfilt form1 form2 form3 (fbo, (told1, told2, told3)) = do +resizeFBOTO3' wsize min1 mag1 minfilt magfilt form1 form2 form3 (fbo, (told1, told2, told3)) = do glBindFramebuffer GL_FRAMEBUFFER (_unFBO fbo) mglDelete glDeleteTextures $ _unTO told1 mglDelete glDeleteTextures $ _unTO told2 mglDelete glDeleteTextures $ _unTO told3 - to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 xsize ysize min1 mag1 form1 - to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 xsize ysize minfilt magfilt form2 - to3 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT2 xsize ysize minfilt magfilt form3 + to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 wsize 1 min1 mag1 form1 + to2 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT1 wsize 1 minfilt magfilt form2 + to3 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT2 wsize 1 minfilt magfilt form3 withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $ glNamedFramebufferDrawBuffers (_unFBO fbo) 3 checkFBO fbo @@ -231,8 +226,7 @@ resizeFBOTO3' (V2 xsize ysize) min1 mag1 minfilt magfilt form1 form2 form3 (fbo, resizeFBOTO :: (FBO, TO) -> - Int -> - Int -> + V2 Int -> -- | minification filter GLenum -> -- | magnification filter @@ -240,20 +234,38 @@ resizeFBOTO :: -- | internal color format GLenum -> IO (FBO, TO) -resizeFBOTO (fbo, oldto) xsize ysize minfilt magfilt form = do +resizeFBOTO (fbo, oldto) wsize minfilt magfilt form = do glBindFramebuffer GL_FRAMEBUFFER (_unFBO fbo) mglDelete glDeleteTextures $ _unTO oldto - to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 xsize ysize minfilt magfilt form + to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 wsize 1 minfilt magfilt form checkFBO fbo return (fbo, TO to1) -initializeTexture2D :: - FBO -> GLenum -> Int -> Int -> GLenum -> GLenum -> GLenum -> IO GLuint -initializeTexture2D fbo attachpoint x y minfilt magfilt form = do +resizeFBOTO' :: + V2 Int -> + Int -> + -- | minification filter + GLenum -> + -- | magnification filter + GLenum -> + -- | internal color format + GLenum -> + (FBO, TO) -> + IO (FBO, TO) +resizeFBOTO' wsize nlevels minfilt magfilt form (fbo, oldto) = do + glBindFramebuffer GL_FRAMEBUFFER (_unFBO fbo) + mglDelete glDeleteTextures $ _unTO oldto + to1 <- initializeTexture2D fbo GL_COLOR_ATTACHMENT0 wsize nlevels minfilt magfilt form + checkFBO fbo + return (fbo, TO to1) + +initializeTexture2D :: FBO -> GLenum -> V2 Int -> Int + -> GLenum -> GLenum -> GLenum -> IO GLuint +initializeTexture2D fbo attachpoint (V2 x y) nlevels minfilt magfilt form = do let xsize' = fromIntegral x ysize' = fromIntegral y to1 <- mglCreate (glCreateTextures GL_TEXTURE_2D) - glTextureStorage2D to1 1 form xsize' ysize' + glTextureStorage2D to1 (fromIntegral nlevels) form xsize' ysize' glTextureParameteri to1 GL_TEXTURE_MIN_FILTER (unsafeCoerce minfilt) glTextureParameteri to1 GL_TEXTURE_MAG_FILTER (unsafeCoerce magfilt) glTextureParameteri to1 GL_TEXTURE_WRAP_S (unsafeCoerce GL_CLAMP_TO_EDGE) diff --git a/tags b/tags index 139912a99..27bfcf274 100644 --- a/tags +++ b/tags @@ -1161,7 +1161,7 @@ Shader src/Shader/Data.hs 51;" t ShaderTexture src/Shader/Data.hs 102;" t ShadowFidelity src/Shape/Data.hs 19;" t ShadowRendering src/Dodge/Data/Config.hs 113;" t -Shape src/Shape/Data.hs 48;" t +Shape src/Shape/Data.hs 49;" t ShapeProp src/Dodge/Data/Prop.hs 14;" C ShapeType src/Shape/Data.hs 11;" t Shattering src/Dodge/Data/Damage.hs 20;" C @@ -1243,7 +1243,7 @@ Strategy src/Dodge/Data/ActionPlan.hs 128;" t StrategyActions src/Dodge/Data/ActionPlan.hs 140;" C SubInventory src/Dodge/Data/HUD.hs 14;" t Superfluous src/Shape/Data.hs 33;" C -Surface src/Shape/Data.hs 36;" t +Surface src/Shape/Data.hs 37;" t Survive src/Dodge/Data/Scenario.hs 5;" C Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C SwapEquipment src/Dodge/Data/RightButtonOptions.hs 24;" C @@ -1362,6 +1362,7 @@ UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 15;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderSea src/Dodge/Data/Scenario.hs 77;" C +Undesired src/Shape/Data.hs 34;" C UniRandFloat src/Dodge/Data/GenFloat.hs 10;" C Unimportant src/Shape/Data.hs 32;" C Universe src/Dodge/Data/Universe.hs 30;" t @@ -1512,7 +1513,7 @@ _avMoveSpeed src/Dodge/Data/Creature/Misc.hs 65;" f _avStrength src/Dodge/Data/Creature/Misc.hs 62;" f _avatarMaterial src/Dodge/Data/Creature/Misc.hs 61;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 60;" f -_barrelShader src/Data/Preload/Render.hs 25;" f +_barrelShader src/Data/Preload/Render.hs 26;" f _barrelType src/Dodge/Data/Creature/Misc.hs 71;" f _bdColor src/Dodge/Data/Prop.hs 23;" f _bdMaxX src/Dodge/Data/Bounds.hs 12;" f @@ -1530,7 +1531,7 @@ _blPos src/Dodge/Data/Block.hs 26;" f _blShadows src/Dodge/Data/Block.hs 24;" f _blWallIDs src/Dodge/Data/Block.hs 22;" f _blocks src/Dodge/Data/LWorld.hs 125;" f -_bloomBlurShader src/Data/Preload/Render.hs 24;" f +_bloomBlurShader src/Data/Preload/Render.hs 25;" f _bmColor src/Dodge/Data/Beam.hs 21;" f _bmDamage src/Dodge/Data/Beam.hs 20;" f _bmDir src/Dodge/Data/Beam.hs 19;" f @@ -1596,8 +1597,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f _ceSideEffect src/Dodge/Data/Universe.hs 66;" f _ceString src/Dodge/Data/Universe.hs 67;" f _ceilingStencilShader src/Data/Preload/Render.hs 19;" f -_chasmShader src/Data/Preload/Render.hs 45;" f -_chasmVBO src/Data/Preload/Render.hs 44;" f +_chasmShader src/Data/Preload/Render.hs 46;" f +_chasmVBO src/Data/Preload/Render.hs 45;" f _chasms src/Dodge/Data/CWorld.hs 33;" f _ciFilter src/Dodge/Data/HUD.hs 25;" f _ciInvIDs src/Dodge/Data/Combine.hs 9;" f @@ -1626,8 +1627,8 @@ _clickPos src/Dodge/Data/Input.hs 42;" f _clickWorldPos src/Dodge/Data/Input.hs 44;" f _closeButtons src/Dodge/Data/HUD.hs 36;" f _closeItems src/Dodge/Data/HUD.hs 35;" f -_cloudShader src/Data/Preload/Render.hs 49;" f -_cloudVBO src/Data/Preload/Render.hs 48;" f +_cloudShader src/Data/Preload/Render.hs 50;" f +_cloudVBO src/Data/Preload/Render.hs 49;" f _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 @@ -1756,7 +1757,6 @@ _dsZoning src/Dodge/Data/World.hs 48;" 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 -_dummyVAO src/Data/Preload/Render.hs 50;" f _dusts src/Dodge/Data/LWorld.hs 97;" f _ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f _ebPos src/Dodge/Data/EnergyBall.hs 17;" f @@ -1766,14 +1766,14 @@ _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f _energyBalls src/Dodge/Data/LWorld.hs 104;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f -_fboBase src/Data/Preload/Render.hs 32;" f -_fboBloom src/Data/Preload/Render.hs 35;" f -_fboCloud src/Data/Preload/Render.hs 33;" f -_fboHalf1 src/Data/Preload/Render.hs 30;" f -_fboHalf2 src/Data/Preload/Render.hs 31;" f -_fboLighting src/Data/Preload/Render.hs 37;" f -_fboPos src/Data/Preload/Render.hs 36;" f -_fboWindow src/Data/Preload/Render.hs 34;" f +_fboBase src/Data/Preload/Render.hs 33;" f +_fboBloom src/Data/Preload/Render.hs 36;" f +_fboCloud src/Data/Preload/Render.hs 34;" f +_fboHalf1 src/Data/Preload/Render.hs 31;" f +_fboHalf2 src/Data/Preload/Render.hs 32;" f +_fboLighting src/Data/Preload/Render.hs 38;" f +_fboPos src/Data/Preload/Render.hs 37;" f +_fboWindow src/Data/Preload/Render.hs 35;" f _flItPos src/Dodge/Data/FloorItem.hs 11;" f _flItRot src/Dodge/Data/FloorItem.hs 11;" f _flPos src/Dodge/Data/Flame.hs 13;" f @@ -1787,8 +1787,8 @@ _flboName src/Shader/Data.hs 86;" f _flboPtr src/Shader/Data.hs 87;" f _flboStride src/Shader/Data.hs 88;" f _floorItems src/Dodge/Data/LWorld.hs 127;" f -_floorShader src/Data/Preload/Render.hs 43;" f -_floorVBO src/Data/Preload/Render.hs 42;" f +_floorShader src/Data/Preload/Render.hs 44;" f +_floorVBO src/Data/Preload/Render.hs 43;" f _foreShapes src/Dodge/Data/LWorld.hs 132;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f @@ -1909,7 +1909,7 @@ _ldtRight src/Dodge/Data/DoubleTree.hs 35;" f _ldtValue src/Dodge/Data/DoubleTree.hs 33;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 115;" f _lightSources src/Dodge/Data/LWorld.hs 133;" f -_lightUBO src/Data/Preload/Render.hs 40;" f +_lightUBO src/Data/Preload/Render.hs 41;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingCloudShader src/Data/Preload/Render.hs 18;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f @@ -1946,7 +1946,7 @@ _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f _mapInvOffset src/Dodge/Data/HUD.hs 18;" f _mapInvZoom src/Dodge/Data/HUD.hs 19;" f -_matUBO src/Data/Preload/Render.hs 39;" f +_matUBO src/Data/Preload/Render.hs 40;" f _mbAttach src/Dodge/Data/MetaTree.hs 18;" f _mbTree src/Dodge/Data/MetaTree.hs 18;" f _mcColor src/Dodge/Data/Machine.hs 34;" f @@ -2049,7 +2049,7 @@ _phRemoteID src/Dodge/Data/Projectile.hs 41;" f _phTargetingID src/Dodge/Data/Projectile.hs 42;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f -_pictureShaders src/Data/Preload/Render.hs 29;" f +_pictureShaders src/Data/Preload/Render.hs 30;" f _piercedPoints src/Dodge/Data/Creature/Misc.hs 87;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f @@ -2131,7 +2131,7 @@ _rbPos src/Dodge/Data/RadarBlip.hs 17;" f _rbRad src/Dodge/Data/RadarBlip.hs 16;" f _rbState src/Dodge/Data/World.hs 43;" f _rbTime src/Dodge/Data/RadarBlip.hs 14;" f -_rboBaseBloom src/Data/Preload/Render.hs 38;" f +_rboBaseBloom src/Data/Preload/Render.hs 39;" f _rdDist1 src/Dodge/Data/Distortion.hs 13;" f _rdDist2 src/Dodge/Data/Distortion.hs 14;" f _rdPos src/Dodge/Data/Distortion.hs 12;" f @@ -2222,17 +2222,17 @@ _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f _sentinelDir src/Dodge/Data/ActionPlan.hs 152;" f _sentinelPos src/Dodge/Data/ActionPlan.hs 152;" f -_sfColor src/Shape/Data.hs 39;" f -_sfShadowImportance src/Shape/Data.hs 40;" f -_sfSize src/Shape/Data.hs 41;" f -_sfType src/Shape/Data.hs 37;" f -_sfVs src/Shape/Data.hs 38;" f +_sfColor src/Shape/Data.hs 40;" f +_sfShadowImportance src/Shape/Data.hs 41;" f +_sfSize src/Shape/Data.hs 42;" f +_sfType src/Shape/Data.hs 38;" f +_sfVs src/Shape/Data.hs 39;" f _shadWallShader src/Data/Preload/Render.hs 14;" f _shaderUINT src/Shader/Data.hs 52;" f _shaderVAO src/Shader/Data.hs 54;" f -_shapeEBO src/Data/Preload/Render.hs 27;" f +_shapeEBO src/Data/Preload/Render.hs 28;" f _shapeHalfSize src/Shape/Data.hs 13;" f -_shapeShader src/Data/Preload/Render.hs 26;" f +_shapeShader src/Data/Preload/Render.hs 27;" f _shellPayload src/Dodge/Data/Item/Combine.hs 101;" f _shockwaves src/Dodge/Data/LWorld.hs 112;" f _siColor src/Dodge/Data/SelectionList.hs 47;" f @@ -2244,7 +2244,7 @@ _siPictures src/Dodge/Data/SelectionList.hs 43;" f _siWidth src/Dodge/Data/SelectionList.hs 45;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 122;" f -_silhouetteEBO src/Data/Preload/Render.hs 28;" f +_silhouetteEBO src/Data/Preload/Render.hs 29;" f _skOldPos src/Dodge/Data/Spark.hs 14;" f _skPos src/Dodge/Data/Spark.hs 13;" f _skType src/Dodge/Data/Spark.hs 15;" f @@ -2311,6 +2311,7 @@ _terminals src/Dodge/Data/LWorld.hs 122;" f _teslaArcs src/Dodge/Data/LWorld.hs 110;" f _testFloat src/Dodge/Data/World.hs 42;" f _textInput src/Dodge/Data/Input.hs 46;" f +_textureAntiaShader src/Data/Preload/Render.hs 24;" f _textureObject src/Shader/Data.hs 103;" f _tiText src/Dodge/Data/Terminal/Status.hs 14;" f _tileArrayZ src/Data/Tile.hs 24;" f @@ -2407,7 +2408,7 @@ _vaOffset src/Shader/Data.hs 70;" f _vaType src/Shader/Data.hs 68;" f _vboName src/Shader/Data.hs 80;" f _vboPtr src/Shader/Data.hs 81;" f -_vboShapes src/Data/Preload/Render.hs 41;" f +_vboShapes src/Data/Preload/Render.hs 42;" f _vboVertexBytes src/Shader/Data.hs 82;" f _vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f @@ -2430,13 +2431,13 @@ _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 _wallDamages src/Dodge/Data/LWorld.hs 119;" f -_wallVBO src/Data/Preload/Render.hs 47;" f +_wallVBO src/Data/Preload/Render.hs 48;" f _walls src/Dodge/Data/LWorld.hs 118;" f _wanID src/Dodge/Data/LWorld.hs 158;" f _wanPos src/Dodge/Data/LWorld.hs 157;" f _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f -_winVBO src/Data/Preload/Render.hs 46;" f +_winVBO src/Data/Preload/Render.hs 47;" f _windowPosX src/Dodge/Data/Config.hs 63;" f _windowPosY src/Dodge/Data/Config.hs 64;" f _windowPullShader src/Data/Preload/Render.hs 21;" f @@ -2576,7 +2577,7 @@ arcTest src/Picture/Test.hs 9;" f arcTest' src/Picture/Test.hs 21;" f argV src/Geometry/Vector.hs 81;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f -armouredChasers src/Dodge/Room/Boss.hs 61;" f +armouredChasers src/Dodge/Room/Boss.hs 58;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f arms src/Dodge/Creature/Picture.hs 72;" f arrow src/Picture/Composite.hs 19;" f @@ -2598,9 +2599,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 488;" f +autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f -autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f +autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" 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 @@ -2614,9 +2615,9 @@ 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 516;" f +bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f -bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f +bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" 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 @@ -2649,7 +2650,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgunSound src/Dodge/HeldUse.hs 514;" f -bindFBO src/Render.hs 233;" f +bindFBO src/Render.hs 234;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f blank src/Picture/Base.hs 59;" f @@ -2665,28 +2666,28 @@ 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 632;" f -blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 490;" f -blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 660;" f -blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 550;" f -blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f -blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 700;" f -blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f -blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f -bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f -bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f -bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 578;" f -bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 616;" f -bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f -bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f -bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f -bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" 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 blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f blue src/Color.hs 16;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f boolOption src/Dodge/Menu/OptionType.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 12;" f -bossRoom src/Dodge/Room/Boss.hs 58;" f +bossRoom src/Dodge/Room/Boss.hs 55;" f bounceDir src/Dodge/Bullet.hs 111;" f bouncePoint src/Dodge/Base/Collide.hs 86;" f bounceSound src/Dodge/Projectile/Update.hs 74;" f @@ -2706,7 +2707,7 @@ brightX src/Color.hs 116;" f btSPic src/Dodge/Render/ShapePicture.hs 131;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 397;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 407;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2717,7 +2718,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 702;" f +buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f cChasm src/Dodge/Room/Tutorial.hs 114;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f @@ -2793,9 +2794,9 @@ clClSpringVel src/Dodge/Update.hs 836;" f clColor src/Shader/Poke/Cloud.hs 37;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 146;" f -clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f -clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f -clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" 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 cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f cleanUpPreload src/Preload.hs 10;" f cleanUpSoundPreload src/Preload.hs 15;" f @@ -2803,7 +2804,7 @@ cleanupHalted src/Sound.hs 117;" 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 582;" f +click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 235;" f @@ -2842,7 +2843,7 @@ collidePointTestFilter src/Dodge/Base/Collide.hs 188;" f collidePointWallsFilter src/Dodge/Base/Collide.hs 202;" f color src/Picture/Base.hs 108;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f -colorSH src/Shape.hs 237;" f +colorSH src/Shape.hs 232;" f combinationsDotGraph src/Dodge/Combine/Graph.hs 93;" f combinationsGraph src/Dodge/Combine/Graph.hs 72;" f combinationsOf src/Multiset.hs 46;" f @@ -2853,7 +2854,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 480;" f +combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f combineTree src/Dodge/Tree/Compose.hs 67;" f commandColor src/Dodge/Terminal.hs 114;" f commonPrefix src/Dodge/Debug/Terminal.hs 149;" f @@ -2865,11 +2866,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 640;" f +computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 658;" 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 722;" f +connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f constructEdges src/Polyhedra.hs 34;" f constructEdgesList src/Polyhedra.hs 43;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f @@ -2883,7 +2884,7 @@ copier src/Dodge/Item/Scope.hs 88;" f copierItemUpdate src/Dodge/Creature/State.hs 131;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 385;" f -cornerList src/Preload/Render.hs 227;" f +cornerList src/Preload/Render.hs 232;" f corpseOrGib src/Dodge/Creature/Update.hs 88;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -2937,7 +2938,7 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 57;" 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 590;" f +crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 58;" f @@ -2990,18 +2991,22 @@ cycleOptions src/Dodge/Menu/Option.hs 75;" f cycleR src/DoubleStack.hs 32;" f cylinderIndices src/Shader/Poke.hs 381;" f cylinderOnSeg src/Geometry.hs 122;" f -cylinderPoly src/Shape.hs 87;" f +cylinderPoly src/Shape.hs 82;" f cylinderRoundIndices src/Shader/Poke.hs 388;" f dShadCol src/Dodge/Render/List.hs 222;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 53;" f +damageBlock src/Dodge/Wall/Damage.hs 44;" f damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f +damageCrystal src/Dodge/Material/Damage.hs 220;" f damageDirection src/Dodge/Damage.hs 35;" f damageDirt src/Dodge/Material/Damage.hs 129;" f damageFlesh src/Dodge/Material/Damage.hs 96;" f +damageGlass src/Dodge/Material/Damage.hs 154;" f +damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMetal src/Dodge/Material/Damage.hs 64;" f @@ -3023,7 +3028,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 684;" f +debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f debrisSPic src/Dodge/Prop/Draw.hs 16;" f debrisSize src/Dodge/Block/Debris.hs 83;" f debugEvent src/Dodge/Debug.hs 37;" f @@ -3047,10 +3052,10 @@ 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 672;" f -dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 454;" f -dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f -dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" 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 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 @@ -3106,15 +3111,15 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f denormalEdges src/Polyhedra.hs 136;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyBlock src/Dodge/Block.hs 17;" f -destroyDoor src/Dodge/Wall/Damage.hs 54;" f +destroyDoor src/Dodge/Wall/Damage.hs 68;" f destroyInvItem src/Dodge/Inventory.hs 40;" f destroyItem src/Dodge/Inventory.hs 62;" f destroyLSFlashAt src/Dodge/LightSource.hs 44;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f -destroyMount src/Dodge/Wall/Damage.hs 75;" f -destroyMounts src/Dodge/Wall/Damage.hs 72;" f +destroyMount src/Dodge/Wall/Damage.hs 89;" f +destroyMounts src/Dodge/Wall/Damage.hs 86;" f destroyProjectile src/Dodge/Projectile/Update.hs 109;" f detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f @@ -3129,7 +3134,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 650;" f +disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f displayConfig src/Dodge/Menu.hs 224;" f displayControls src/Dodge/Menu.hs 240;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f @@ -3388,8 +3393,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 656;" f -elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f +ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f +elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f elephantGun src/Dodge/Item/Held/Rod.hs 27;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 22;" f emptyTrie src/SimpleTrie.hs 17;" f @@ -3400,7 +3405,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 592;" f +energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f enterCombineInv src/Dodge/DisplayInventory.hs 317;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f @@ -3434,7 +3439,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 556;" f +explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" 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 @@ -3447,7 +3452,7 @@ facesToVF src/Polyhedra/Geodesic.hs 69;" f farWallDistDirection src/Dodge/Update/Camera.hs 246;" f fdiv src/ShortShow.hs 41;" f feet src/Dodge/Creature/Picture.hs 51;" f -ffoldM src/Framebuffer/Update.hs 78;" f +ffoldM src/Framebuffer/Update.hs 86;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3460,9 +3465,9 @@ 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 123;" f -fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f -fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f -fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" 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 firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f firstWorldLoad appDodge/Main.hs 77;" f @@ -3494,15 +3499,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 558;" f -foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f +foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f +foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f foldMTRS src/Dodge/Room/Tutorial.hs 59;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 110;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f -foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f -foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f -foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 622;" 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 forbidFlee src/Dodge/Creature/Boid.hs 45;" f forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 6;" f @@ -3512,7 +3517,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 500;" f +fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f fromJust' src/MaybeHelp.hs 22;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f @@ -3559,7 +3564,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 332;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 319;" f getDebugMouseOver src/Dodge/Update.hs 374;" f -getDistortions src/Dodge/Render.hs 409;" f +getDistortions src/Dodge/Render.hs 419;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3594,10 +3599,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 648;" f -glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f -glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f -glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" 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 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 @@ -3618,13 +3623,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 678;" f -gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 726;" f -gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 524;" f -gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 494;" f -gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 468;" f -gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 686;" f -gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 644;" 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 gyroscope src/Dodge/Item/Scope.hs 156;" f hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f @@ -3655,7 +3660,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 492;" f +healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" 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 @@ -3683,9 +3688,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 580;" f +hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f hitEffFromBul src/Dodge/Bullet.hs 156;" f -hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f +hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" 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 @@ -3711,22 +3716,22 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f initialRoomTree src/Dodge/Floor.hs 24;" f initialWorld src/Dodge/Initialisation.hs 15;" f initialisePlaying src/Sound.hs 77;" f -initializeGLState src/Preload/Render.hs 248;" f +initializeGLState src/Preload/Render.hs 251;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f -initializeTexture2D src/Framebuffer/Update.hs 207;" f +initializeTexture2D src/Framebuffer/Update.hs 263;" f inorderNumberTree src/TreeHelp.hs 190;" f 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 514;" f +insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f insertOver src/ListHelp.hs 47;" f -insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f -insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 40;" f -insertWall src/Dodge/Placement/PlaceSpot/Block.hs 129;" f +insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" 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 -insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 126;" f +insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 131;" f insertWithNewKeys src/IntMapHelp.hs 71;" f intAnno src/Dodge/Floor.hs 111;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f @@ -3888,16 +3893,16 @@ 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 638;" f +knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f lChasm src/Dodge/Room/Tutorial.hs 123;" f lConnect src/Dodge/Render/Connectors.hs 42;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f -lamp src/Dodge/Creature/Lamp.hs 21;" f +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 526;" f +lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" 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 @@ -3999,7 +4004,7 @@ lookupTrie src/SimpleTrie.hs 30;" f loopPairs src/ListHelp.hs 30;" f lootRoom src/Dodge/Room/Treasure.hs 58;" f lorem src/Lorem.hs 3;" f -lowBlock src/Dodge/Placement/Instance/Block.hs 26;" f +lowBlock src/Dodge/Placement/Instance/Block.hs 25;" f lsColPos src/Dodge/LightSource.hs 24;" f lsColPosID src/Dodge/LightSource.hs 21;" f lsColPosRad src/Dodge/LightSource.hs 30;" f @@ -4068,6 +4073,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 materialColor src/Dodge/Material/Color.hs 8;" f materialPenetrable src/Dodge/Bullet.hs 211;" f maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f @@ -4076,8 +4085,8 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f maxShowX src/Dodge/Combine/Graph.hs 48;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f -maybeDestroyBlock src/Dodge/Wall/Damage.hs 44;" f -maybeDestroyDoor src/Dodge/Wall/Damage.hs 49;" f +maybeDestroyBlock src/Dodge/Wall/Damage.hs 58;" f +maybeDestroyDoor src/Dodge/Wall/Damage.hs 63;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 562;" f maybeOpenConsole src/Dodge/Update.hs 126;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f @@ -4117,13 +4126,13 @@ merge src/ListHelp.hs 83;" f mergeBy src/ListHelp.hs 86;" f mergeOn src/ListHelp.hs 93;" f mergeSound src/Sound.hs 59;" f -metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 620;" f -metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 682;" f -metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 608;" f -metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 636;" f -metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 652;" f -metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 692;" f -metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" 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 metalPlate src/Dodge/Item/Craftable.hs 35;" f mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f @@ -4137,18 +4146,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 452;" f +mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" 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 716;" f +miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 736;" 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 674;" f +missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f mixColors src/Color.hs 86;" f mixColorsFrac src/Color.hs 82;" f mixColorsLinear src/Color.hs 95;" f @@ -4248,7 +4257,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 698;" f +oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f @@ -4275,14 +4284,14 @@ outLink src/Dodge/RoomLink.hs 120;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outwardIntegers src/Dodge/Base.hs 181;" f overCol src/Picture/Base.hs 308;" f -overColObj src/Shape.hs 273;" f -overColSH src/Shape.hs 241;" f +overColObj src/Shape.hs 268;" f +overColSH src/Shape.hs 236;" f overDebugEvent src/Dodge/Debug.hs 31;" f overLnkPosDir src/Dodge/RoomLink.hs 115;" f overLnkType src/Dodge/RoomLink.hs 105;" f overPos src/Picture/Base.hs 303;" f -overPosObj src/Shape.hs 277;" f -overPosSH src/Shape.hs 261;" f +overPosObj src/Shape.hs 272;" f +overPosSH src/Shape.hs 256;" f overPosSP src/ShapePicture.hs 41;" f overlapCircWalls src/Dodge/Base/Collide.hs 230;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 272;" f @@ -4326,19 +4335,19 @@ 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 624;" f +pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" 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 pincerP''' src/Dodge/Creature/Boid.hs 77;" f -pingPongBetween src/Render.hs 208;" f +pingPongBetween src/Render.hs 209;" f pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 173;" f -plBlock src/Dodge/Placement/PlaceSpot/Block.hs 23;" f +plBlock src/Dodge/Placement/PlaceSpot/Block.hs 24;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f -plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 56;" f +plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 57;" f plMachine src/Dodge/Placement/PlaceSpot.hs 188;" f plNew src/Dodge/Base/NewID.hs 19;" f plNewID src/Dodge/Base/NewID.hs 7;" f @@ -4447,7 +4456,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 594;" f +primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" 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 @@ -4546,7 +4555,7 @@ randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f randomFourCornerRoomCrsIts src/Dodge/Room/Procedural.hs 258;" f randomLightPositions src/Dodge/Room/Modify/Girder.hs 152;" f -randomMediumRoom src/Dodge/Room/Boss.hs 73;" f +randomMediumRoom src/Dodge/Room/Boss.hs 70;" f randomPath src/TreeHelp.hs 145;" f randomPoints bench/Bench.hs 37;" f randomRanges src/RandomHelp.hs 16;" f @@ -4556,7 +4565,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 216;" f -rdToVec2s src/Dodge/Render.hs 392;" f +rdToVec2s src/Dodge/Render.hs 402;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4580,9 +4589,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 602;" f +reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f reloadLevelStart src/Dodge/Save.hs 71;" f -reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f +reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" 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 @@ -4597,7 +4606,7 @@ renderDataResizeUpdate src/Preload/Update.hs 27;" f renderFlatLighting src/Render.hs 104;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f -renderLayer src/Render.hs 222;" f +renderLayer src/Render.hs 223;" f renderLightingNoShadows src/Render.hs 51;" f renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 119;" f @@ -4607,10 +4616,12 @@ resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetPLUse src/Dodge/PlacementSpot.hs 92;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f resetTerminal src/Dodge/WorldEffect.hs 109;" f -resizeFBOTO src/Framebuffer/Update.hs 189;" f -resizeFBOTO2 src/Framebuffer/Update.hs 137;" f -resizeFBOTO3 src/Framebuffer/Update.hs 161;" f -resizeRBO src/Framebuffer/Update.hs 81;" f +resizeFBOTO src/Framebuffer/Update.hs 228;" f +resizeFBOTO' src/Framebuffer/Update.hs 246;" f +resizeFBOTO2 src/Framebuffer/Update.hs 145;" f +resizeFBOTO3 src/Framebuffer/Update.hs 169;" f +resizeFBOTO3' src/Framebuffer/Update.hs 197;" f +resizeRBO src/Framebuffer/Update.hs 89;" f respawn src/Dodge/SpawnAt.hs 12;" f restrictInLinks src/Dodge/RoomLink.hs 44;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f @@ -4650,7 +4661,7 @@ roomC src/Dodge/Room/Room.hs 40;" f roomCCrits src/Dodge/Room/Room.hs 271;" f roomCenterPillar src/Dodge/Room/Room.hs 126;" f roomCritLS src/Dodge/Room/RunPast.hs 24;" f -roomCross src/Dodge/Room/Boss.hs 82;" f +roomCross src/Dodge/Room/Boss.hs 79;" f roomGlassOctogon src/Dodge/Room/Boss.hs 22;" f roomMiniIntro src/Dodge/Room/Room.hs 121;" f roomNgon src/Dodge/Room/Ngon.hs 16;" f @@ -4661,8 +4672,8 @@ roomPillarsPassage src/Dodge/Room/Pillar.hs 93;" f roomPillarsSquare src/Dodge/Room/Pillar.hs 49;" f roomRect src/Dodge/Room/Procedural.hs 42;" f roomRectAutoLinks src/Dodge/Room/Procedural.hs 119;" f -roomShuriken src/Dodge/Room/Boss.hs 120;" f -roomTwistCross src/Dodge/Room/Boss.hs 151;" f +roomShuriken src/Dodge/Room/Boss.hs 117;" f +roomTwistCross src/Dodge/Room/Boss.hs 148;" f roomsContaining src/Dodge/Room/Containing.hs 20;" f roomsContaining' src/Dodge/Room/Containing.hs 25;" f rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 28;" f @@ -4677,9 +4688,9 @@ rotate3y src/Geometry/Vector3D.hs 66;" f rotate3z src/Geometry/Vector3D.hs 54;" f rotateCamera src/Dodge/Update/Camera.hs 202;" f rotateList src/Padding.hs 49;" f -rotateSH src/Shape.hs 257;" f -rotateSHq src/Shape.hs 166;" f -rotateSHx src/Shape.hs 265;" f +rotateSH src/Shape.hs 252;" f +rotateSHq src/Shape.hs 161;" f +rotateSHx src/Shape.hs 260;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 214;" f @@ -4717,13 +4728,13 @@ 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 714;" f +sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 734;" f scToTS src/Dodge/Event/Input.hs 34;" f scale src/Picture/Base.hs 149;" f scale3 src/Picture/Base.hs 145;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f -scaleSH src/Shape.hs 269;" f +scaleSH src/Shape.hs 264;" f scalp src/Dodge/Creature/Picture.hs 93;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f @@ -4739,15 +4750,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 570;" f -seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 654;" f -seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 666;" f -seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f -seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f -seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 576;" f -seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 588;" f -seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f -seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" 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 searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 213;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 43;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f @@ -4809,7 +4820,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 73;" f setViewDistance src/Dodge/Update/Camera.hs 241;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 414;" f +setViewport src/Dodge/Render.hs 424;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -4874,7 +4885,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 708;" f +shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 728;" 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 @@ -4894,8 +4905,8 @@ shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f simpleCrSprings src/Dodge/Update.hs 856;" f simpleTermMessage src/Dodge/Terminal.hs 164;" f -sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f -sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f +sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 700;" f +sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f singleDT src/Dodge/DoubleTree.hs 10;" f singleLDT src/Dodge/DoubleTree.hs 13;" f @@ -4903,10 +4914,10 @@ singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 20;" f sizeFBOs src/Framebuffer/Update.hs 21;" f skColor src/Dodge/Spark/Draw.hs 14;" f -skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f -slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f -slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f -slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" 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 slideWindow src/ListHelp.hs 80;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f @@ -4914,10 +4925,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 470;" f -smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f -smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f -smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" 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 smallPillar src/Dodge/Room/Pillar.hs 37;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smallSnailInt2 src/Dodge/Path.hs 81;" f @@ -4937,10 +4948,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 296;" f +soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 304;" f soundPic src/Dodge/Debug/Picture.hs 363;" f soundStart src/Dodge/SoundLogic.hs 118;" f -soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" f +soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 154;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f @@ -5010,14 +5021,14 @@ startSeedGameConc src/Dodge/StartNewGame.hs 27;" 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 540;" f -stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 662;" f -stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f -stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f -stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" 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 stopBulletAt src/Dodge/Bullet.hs 200;" f -stopPushing src/Dodge/Wall/Damage.hs 80;" f +stopPushing src/Dodge/Wall/Damage.hs 94;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f @@ -5056,11 +5067,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 630;" f -tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f -tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f -tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 706;" f -tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" 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 targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f @@ -5068,7 +5079,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 528;" f +teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 43;" f termTextColor src/Dodge/Terminal.hs 46;" f @@ -5119,13 +5130,13 @@ timeFlowUpdate src/Dodge/Update.hs 169;" 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 442;" f -ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f -ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 658;" f -ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f -ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f -tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f -tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" 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 titleOptionsMenu src/Dodge/Menu.hs 106;" f titleOptionsNoWrite src/Dodge/Menu.hs 109;" f tlDoEffect src/Dodge/Terminal.hs 102;" f @@ -5149,10 +5160,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 642;" f -tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f -tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f -tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" 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 topInvW src/Dodge/ListDisplayParams.hs 49;" f topPrismEdgeIndices src/Shader/Poke.hs 334;" f topPrismIndices src/Shader/Poke.hs 409;" f @@ -5178,9 +5189,9 @@ translateFloatingCameraKeys src/Dodge/Update/Camera.hs 66;" f translateH src/Picture/Base.hs 112;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 36;" f -translateSH src/Shape.hs 245;" f -translateSHxy src/Shape.hs 249;" f -translateSHz src/Shape.hs 253;" f +translateSH src/Shape.hs 240;" f +translateSHxy src/Shape.hs 244;" f +translateSHz src/Shape.hs 248;" f translateSP src/ShapePicture.hs 53;" f translateSPxy src/ShapePicture.hs 45;" f translateSPz src/ShapePicture.hs 49;" f @@ -5244,9 +5255,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 544;" f -twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f -twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" 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 ubyteSize src/Shader/Parameters.hs 13;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 112;" f uncurryV src/Geometry/Data.hs 66;" f @@ -5306,9 +5317,9 @@ updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 655;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f -updateFBOTO src/Framebuffer/Update.hs 84;" f -updateFBOTO2 src/Framebuffer/Update.hs 101;" f -updateFBOTO3 src/Framebuffer/Update.hs 118;" f +updateFBOTO src/Framebuffer/Update.hs 92;" f +updateFBOTO2 src/Framebuffer/Update.hs 109;" f +updateFBOTO3 src/Framebuffer/Update.hs 126;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 652;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f @@ -5388,23 +5399,23 @@ updateWheelEvents src/Dodge/Update.hs 409;" f updateWorldEventFlag src/Dodge/Update.hs 120;" f updateWorldEventFlags src/Dodge/Update.hs 108;" f upperBody src/Dodge/Creature/Picture.hs 121;" f -upperBox src/Shape.hs 156;" f -upperBoxHalf src/Shape.hs 222;" f -upperBoxMT src/Shape.hs 147;" f -upperBoxST src/Shape.hs 150;" f -upperBoxSU src/Shape.hs 153;" f -upperCylinder src/Shape.hs 169;" f -upperPrismPoly src/Shape.hs 123;" f -upperPrismPolyHalf src/Shape.hs 207;" f -upperPrismPolyHalfMI src/Shape.hs 201;" f -upperPrismPolyHalfST src/Shape.hs 204;" f -upperPrismPolyMT src/Shape.hs 102;" f -upperPrismPolySE src/Shape.hs 105;" f -upperPrismPolySI src/Shape.hs 111;" f -upperPrismPolyST src/Shape.hs 108;" f -upperPrismPolySU src/Shape.hs 114;" f -upperPrismPolyTS src/Shape.hs 120;" f -upperRounded src/Shape.hs 185;" f +upperBox src/Shape.hs 151;" f +upperBoxHalf src/Shape.hs 217;" f +upperBoxMT src/Shape.hs 142;" f +upperBoxST src/Shape.hs 145;" f +upperBoxSU src/Shape.hs 148;" f +upperCylinder src/Shape.hs 164;" f +upperPrismPoly src/Shape.hs 118;" f +upperPrismPolyHalf src/Shape.hs 202;" f +upperPrismPolyHalfMI src/Shape.hs 196;" f +upperPrismPolyHalfST src/Shape.hs 199;" f +upperPrismPolyMT src/Shape.hs 97;" f +upperPrismPolySE src/Shape.hs 100;" f +upperPrismPolySI src/Shape.hs 106;" f +upperPrismPolyST src/Shape.hs 103;" f +upperPrismPolySU src/Shape.hs 109;" f +upperPrismPolyTS src/Shape.hs 115;" f +upperRounded src/Shape.hs 180;" f useBulletPayload src/Dodge/Bullet.hs 117;" f useGasParams src/Dodge/HeldUse.hs 1091;" f useHotkey src/Dodge/Creature/YourControl.hs 77;" f @@ -5479,22 +5490,22 @@ 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 712;" f -whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 450;" f -whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f -whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 690;" f -whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 564;" f -whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 720;" f -whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f -whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f -whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f -whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 506;" f -whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 696;" f -whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 456;" f -whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" 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 white src/Color.hs 26;" f -whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f -whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f +whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f +whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f winConfig appDodge/Main.hs 56;" f windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f @@ -5525,13 +5536,13 @@ 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 546;" f +wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f writeConfig src/Dodge/Menu.hs 182;" f writeSaveSlot src/Dodge/Save.hs 36;" f -xCylinder src/Shape.hs 137;" f -xCylinderST src/Shape.hs 134;" f +xCylinder src/Shape.hs 132;" f +xCylinderST src/Shape.hs 129;" f xIntercepts src/Dodge/Zoning/Base.hs 66;" f xSwitch src/Dodge/Room/Airlock.hs 33;" f xV2 src/Geometry/Vector.hs 201;" f