diff --git a/shader/upscale/cloud.frag b/shader/upscale/cloud.frag new file mode 100644 index 000000000..38bfb1a93 --- /dev/null +++ b/shader/upscale/cloud.frag @@ -0,0 +1,106 @@ +#version 450 core +in vec2 vTexPos; +out vec4 fColor; +layout (location = 0) uniform vec2 screensize; +layout(binding = 0) uniform sampler2D screenTexture; +vec3 f (float x, float y) +//{ return texture(screenTexture, vTexPos + vec2((x+0.5)/screensize.x,(y+0.5)/screensize.y)).xyz; +{ return texture(screenTexture, vTexPos + vec2(x/screensize.x,y/screensize.y)).xyz; +} +bool t (vec3 x, vec3 y) +{ return dot(x-y,x-y) < 0.005; +} +bool t3 (vec3 x, vec3 y, vec3 z) +{ return t(x,y) && t(y,z); +} +vec3 c = f(0,0); +bool bt (vec3 x, vec3 y) +{ return x.x+x.y+x.z > y.x+y.y+y.z;} +bool t4 (vec3 x, vec3 y, vec3 z) +{ return t(x,z) && (t(x,y) || bt(x,c)) ; } +bool incenter (int x) { return x > 0 && x < 3; } +int three = int(( floor(vTexPos.y * screensize.y))) % 3; +int i = int(( floor(vTexPos.x * screensize.x))) % 4; +int j = int(( floor(vTexPos.y * screensize.y))) % 4; +vec4 edgecase (vec3 e1, vec3 e2) +{ return vec4((t(e1,e2) && bt(e1,c) ? e1 : c),1); } +vec4 ttlcase (vec3 tt, vec3 tr, vec3 mr, vec3 br, vec3 bb, vec3 bl, vec3 ml, vec3 tl) +{ + if (t(tl,tt) && t(tl,mr)) + {return vec4(tl,1);} + if (t(tl,tt) && t(tl,ml)) + {return vec4(tt,1);} +// if (t(tt,mr) && bt(tt,c)) +// {return vec4(tt,1);} + return vec4(c,1); +} +vec4 corncase (vec3 e1, vec3 e2, vec3 corn) +{ return vec4( (t(e1,e2) && false == (t(corn,c)) ? e1 : c) , 1);} +//{ return vec4( (t(e1,e2) ? e1 : c) , 1);} +void main() +{ +vec3 tl = f(-4, 4); +vec3 tt = f( 0, 4); +vec3 tr = f( 4, 4); +vec3 mr = f( 4, 0); +vec3 br = f( 4,-4); +vec3 bb = f( 0,-4); +vec3 bl = f(-4,-4); +vec3 ml = f(-4, 0); +vec3 tlc = f(-1, 1); +vec3 trc = f( 1, 1); +vec3 brc = f( 1,-1); +vec3 blc = f(-1,-1); +// if (t4(tl,tr,br)) +// { fColor = vec4(tl,1);} +// else if (t4(tr,br,bl)) +// { fColor = vec4(tr,1);} +// else if (t4(br,bl,tl)) +// { fColor = vec4(br,1);} +// else if (t4(bl,tl,tr)) +// { fColor = vec4(bl,1);} +if (incenter(i) && incenter(j)) + {fColor = vec4(c,1); } +else + { fColor = vec4(0,0,0,1); + switch (i * 10 + j) { + case 10: + fColor = ttlcase(bb,br,mr,tr,tt,tl,ml,bl); + break; + case 01: + fColor = ttlcase(ml,tl,tt,tr,mr,br,bb,bl); + break; + case 13: + fColor = ttlcase(tt,tr,mr,br,bb,bl,ml,tl); + break; + case 02: + fColor = ttlcase(ml,bl,bb,br,mr,tr,tt,tl); + break; + case 23: + fColor = ttlcase(tt,tl,ml,bl,bb,br,mr,tr); + break; + case 32: + fColor = ttlcase(mr,br,bb,bl,ml,tl,tt,tr); + break; + case 20: + fColor = ttlcase(bb,bl,ml,tl,tt,tr,mr,br); + break; + case 31: + fColor = ttlcase(mr,tr,tt,tl,ml,bl,bb,br); + break; + case 00: + fColor = corncase(ml,bb,bl); + break; + case 03: + fColor = corncase(ml,tt,tl); + break; + case 33: + fColor = corncase(mr,tt,tr); + break; + case 30: + fColor = corncase(mr,bb,br); + break; + } + } + fColor.a = texture(screenTexture, vTexPos).a; +} diff --git a/shader/upscale/cloud.vert b/shader/upscale/cloud.vert new file mode 100644 index 000000000..71b7184d1 --- /dev/null +++ b/shader/upscale/cloud.vert @@ -0,0 +1,7 @@ +#version 450 core +layout (std140, binding = 2) uniform PosTex { vec4 posTex[3]; }; +out vec2 vTexPos; +void main() { + gl_Position = vec4(posTex[gl_VertexID].xy,0,1); + vTexPos = posTex[gl_VertexID].zw ; +} diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index 95e151305..d9b87db4c 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -22,6 +22,7 @@ data RenderData = RenderData , _pullWallShader :: GLuint , _fullscreenShader :: GLuint , _textureAntiaShader :: GLuint + , _upscaleCloudShader :: GLuint , _bloomBlurShader :: GLuint , _barrelShader :: (GLuint,VBO) , _shapeShader :: GLuint diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 6676b8c0a..750009dbf 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -251,7 +251,7 @@ doDrawing' win pdata u = do when (_gr_cloud_shadows cfig) $ do ----render transparency depths -- glDepthMask GL_TRUE --- glDepthMask GL_TRUE + glDepthMask GL_TRUE glDepthFunc GL_ALWAYS withArray [GL_NONE, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $ glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 3 @@ -305,7 +305,7 @@ doDrawing' win pdata u = do glClearNamedFramebufferfv (pdata ^. fboWindow . _1 . unFBO) GL_COLOR 0 withArray [0, 0, 0, 0] $ glClearNamedFramebufferfv (pdata ^. fboWindow . _1 . unFBO) GL_COLOR 1 --- glEnable GL_CULL_FACE + glEnable GL_CULL_FACE glEnable GL_DEPTH_CLAMP glDepthFunc GL_LEQUAL glDepthMask GL_FALSE @@ -335,19 +335,26 @@ doDrawing' win pdata u = do glDrawArrays GL_TRIANGLES 0 3 glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -- bind base buffer for drawing clouds and bloom - glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) + --glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) + glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboFullscreen . _1 . unFBO) + setViewport (const FullRes) cfig glUseProgram (pdata ^. fullscreenShader) + glBindTextureUnit 0 (pdata ^. fboBase . _2 . _1 . unTO) + glDisable GL_BLEND + glDrawArrays GL_TRIANGLES 0 3 + glEnable GL_BLEND glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _2 . unTO) glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA --glDrawArrays GL_TRIANGLES 0 6 glDrawArrays GL_TRIANGLES 0 3 glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO) + glUseProgram (pdata ^. upscaleCloudShader) + glUniform2f 0 (windowXFloat cfig) (windowYFloat cfig) glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - --glDrawArrays GL_TRIANGLES 0 6 glDrawArrays GL_TRIANGLES 0 3 + glUseProgram (pdata ^. fullscreenShader) glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _1 . unTO) glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA - --glDrawArrays GL_TRIANGLES 0 6 glDrawArrays GL_TRIANGLES 0 3 --Draw blurred bloom onto base buffer @@ -367,7 +374,8 @@ doDrawing' win pdata u = do -- perform distortions case getDistortions cfig w of [] -> do - glBindTextureUnit 0 $ pdata ^. fboBase . _2 . _1 . unTO +-- glBindTextureUnit 0 $ pdata ^. fboBase . _2 . _1 . unTO + glBindTextureUnit 0 $ pdata ^. fboFullscreen . _2 . unTO glBindFramebuffer GL_FRAMEBUFFER 0 if (cfig ^. gr_upscale_filter) then do glUseProgram (pdata ^. textureAntiaShader) @@ -382,7 +390,8 @@ doDrawing' win pdata u = do withArray (concatMap rdToVec2s rs) $ glNamedBufferSubData (pdata ^. barrelShader . _2 . vboName) 0 (24 * fromIntegral (length rs * sizeOf (0 :: Float))) - glBindTextureUnit 1 $ pdata ^. fboBase . _2 . _1 . unTO +-- glBindTextureUnit 1 $ pdata ^. fboBase . _2 . _1 . unTO + glBindTextureUnit 1 $ pdata ^. fboFullscreen . _2 . unTO glUseProgram (pdata ^. barrelShader . _1) glUniform1i 0 (fromIntegral (length rs)) --glDrawArrays GL_TRIANGLES 0 6 diff --git a/src/Dodge/Wall/Damage.hs b/src/Dodge/Wall/Damage.hs index 1ec13afe7..3535364b8 100644 --- a/src/Dodge/Wall/Damage.hs +++ b/src/Dodge/Wall/Damage.hs @@ -7,6 +7,7 @@ module Dodge.Wall.Damage ( damageWall, ) where +import Control.Monad import Data.Foldable import qualified Data.IntMap.Strict as IM import Data.Maybe @@ -48,6 +49,7 @@ damageBlock = \case damageGlassBlock :: Int -> Int -> World -> (S.Set Int2, World) damageGlassBlock x i w = fromMaybe (mempty,w) $ do + guard $ x > 0 bl <- w ^? cWorld . lWorld . blocks . ix i return $ case bl ^. blHP - x of y | y > 0 -> (mempty, w diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 18093333a..234a685a0 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -134,6 +134,7 @@ preloadRender = do alphadivideshader <- makeSourcedShader "texture2D/alphaDivide" [vert, frag] fsShad <- makeSourcedShader "texture/simple" [vert, frag] textureantiashad <- makeSourcedShader "texture/antia" [vert,frag] + upscalecloud <- makeSourcedShader "upscale/cloud" [vert, frag] bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag] lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag] lightingCloudShad <- makeSourcedShader "lighting/cloud" [vert, frag] @@ -201,6 +202,7 @@ preloadRender = do , _pullWallShader = wallpull , _textureAntiaShader = textureantiashad , _fullscreenShader = fsShad + , _upscaleCloudShader = upscalecloud , _alphaDivideShader = alphadivideshader , _lightingTextureShader = lightingTextureShad , _lightingCloudShader = lightingCloudShad diff --git a/tags b/tags index 4a2d35295..bdcb91d92 100644 --- a/tags +++ b/tags @@ -1513,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 26;" f +_barrelShader src/Data/Preload/Render.hs 27;" 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 @@ -1531,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 25;" f +_bloomBlurShader src/Data/Preload/Render.hs 26;" 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 @@ -1597,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 47;" f -_chasmVBO src/Data/Preload/Render.hs 46;" f +_chasmShader src/Data/Preload/Render.hs 48;" f +_chasmVBO src/Data/Preload/Render.hs 47;" 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 @@ -1627,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 51;" f -_cloudVBO src/Data/Preload/Render.hs 50;" f +_cloudShader src/Data/Preload/Render.hs 52;" f +_cloudVBO src/Data/Preload/Render.hs 51;" 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 @@ -1766,15 +1766,15 @@ _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 34;" f -_fboBloom src/Data/Preload/Render.hs 37;" f -_fboCloud src/Data/Preload/Render.hs 35;" f -_fboFullscreen src/Data/Preload/Render.hs 31;" f -_fboHalf src/Data/Preload/Render.hs 32;" f -_fboLighting src/Data/Preload/Render.hs 39;" f -_fboPos src/Data/Preload/Render.hs 38;" f -_fboQuarter src/Data/Preload/Render.hs 33;" f -_fboWindow src/Data/Preload/Render.hs 36;" f +_fboBase src/Data/Preload/Render.hs 35;" f +_fboBloom src/Data/Preload/Render.hs 38;" f +_fboCloud src/Data/Preload/Render.hs 36;" f +_fboFullscreen src/Data/Preload/Render.hs 32;" f +_fboHalf src/Data/Preload/Render.hs 33;" f +_fboLighting src/Data/Preload/Render.hs 40;" f +_fboPos src/Data/Preload/Render.hs 39;" f +_fboQuarter src/Data/Preload/Render.hs 34;" f +_fboWindow src/Data/Preload/Render.hs 37;" 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 @@ -1788,8 +1788,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 45;" f -_floorVBO src/Data/Preload/Render.hs 44;" f +_floorShader src/Data/Preload/Render.hs 46;" f +_floorVBO src/Data/Preload/Render.hs 45;" 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 @@ -1911,7 +1911,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 42;" f +_lightUBO src/Data/Preload/Render.hs 43;" 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 @@ -1948,7 +1948,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 41;" f +_matUBO src/Data/Preload/Render.hs 42;" 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 @@ -2051,7 +2051,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 30;" f +_pictureShaders src/Data/Preload/Render.hs 31;" 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 @@ -2133,7 +2133,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 40;" f +_rboBaseBloom src/Data/Preload/Render.hs 41;" 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 @@ -2232,9 +2232,9 @@ _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 28;" f +_shapeEBO src/Data/Preload/Render.hs 29;" f _shapeHalfSize src/Shape/Data.hs 13;" f -_shapeShader src/Data/Preload/Render.hs 27;" f +_shapeShader src/Data/Preload/Render.hs 28;" 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 @@ -2246,7 +2246,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 29;" f +_silhouetteEBO src/Data/Preload/Render.hs 30;" 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 @@ -2378,6 +2378,7 @@ _unVAO src/Shader/Data.hs 64;" f _unfiredBarrels src/Dodge/Data/Item/Params.hs 17;" f _unpauseClock src/Dodge/Data/World.hs 56;" f _unputTerminal src/Dodge/Data/GenWorld.hs 42;" f +_upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 62;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f @@ -2410,7 +2411,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 43;" f +_vboShapes src/Data/Preload/Render.hs 44;" 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 @@ -2433,13 +2434,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 49;" f +_wallVBO src/Data/Preload/Render.hs 50;" 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 48;" f +_winVBO src/Data/Preload/Render.hs 49;" f _windowPosX src/Dodge/Data/Config.hs 64;" f _windowPosY src/Dodge/Data/Config.hs 65;" f _windowPullShader src/Data/Preload/Render.hs 21;" f @@ -2709,7 +2710,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 411;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 421;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2886,7 +2887,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 234;" f +cornerList src/Preload/Render.hs 236;" f corpseOrGib src/Dodge/Creature/Update.hs 88;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -3565,7 +3566,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 338;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 325;" f getDebugMouseOver src/Dodge/Update.hs 374;" f -getDistortions src/Dodge/Render.hs 423;" f +getDistortions src/Dodge/Render.hs 433;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3717,7 +3718,7 @@ 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 253;" f +initializeGLState src/Preload/Render.hs 255;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f initializeTexture2D src/Framebuffer/Update.hs 220;" f @@ -4566,7 +4567,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 406;" f +rdToVec2s src/Dodge/Render.hs 416;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4821,7 +4822,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 79;" f setViewDistance src/Dodge/Update/Camera.hs 241;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 428;" f +setViewport src/Dodge/Render.hs 438;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f