From 0d0c1a72e0fa886a1705f2c531d1c2b1dfd7e830 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 1 Nov 2025 11:41:08 +0000 Subject: [PATCH] Stencil out windows over ceilings --- src/Dodge/Render.hs | 13 +- src/Render.hs | 3 +- tags | 370 ++++++++++++++++++++++---------------------- 3 files changed, 191 insertions(+), 195 deletions(-) diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 6e3e3769e..879d00580 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -132,8 +132,9 @@ doDrawing' win pdata u = do 0 -- draw wall occlusions from the camera's point of view glDisable GL_CULL_FACE --- glEnable GL_STENCIL_TEST --- glStencilFunc + glEnable GL_STENCIL_TEST + glStencilFunc GL_NOTEQUAL 128 255 + glStencilOp GL_KEEP GL_KEEP GL_REPLACE unless (debugOn Remove_LOS cfig) $ do glUseProgram (pdata ^. ceilingStencilShader . shaderUINT) glProgramUniform3f @@ -151,6 +152,8 @@ doDrawing' win pdata u = do (_unPrimitiveMode $ pdata ^. ceilingStencilShader . shaderPrimitive) 0 (fromIntegral trueNWalls) + glStencilMask 127 -- to alter last seven bits + glStencilOp GL_KEEP GL_KEEP GL_KEEP -- clear color and normals withArray [0, 0, 0, 1] $ glClearNamedFramebufferfv (pdata ^. fboBase . _1 . unFBO) GL_COLOR 0 @@ -168,8 +171,6 @@ doDrawing' win pdata u = do (_unPrimitiveMode $ pdata ^. wallShader . shaderPrimitive) 0 (fromIntegral trueNWalls) - --draw object pictures onto base buffer (are there any?!) - -- renderLayer BottomLayer shadV layerCounts --draw object shapes onto base buffer let fs = _shapeShader pdata glUseProgram (_shaderUINT fs) @@ -184,8 +185,6 @@ doDrawing' win pdata u = do glBindVertexArray $ pdata ^. chasmShader . shaderVAO . vaoName glDepthMask GL_FALSE glDrawBuffer GL_NONE - glEnable GL_STENCIL_TEST - glStencilFunc GL_ALWAYS 0 255 glStencilOp GL_INCR GL_INCR GL_INCR with 0 $ glClearNamedFramebufferiv @@ -210,6 +209,8 @@ doDrawing' win pdata u = do glDisable GL_STENCIL_TEST glDisable GL_CULL_FACE glEnable GL_BLEND + -- reset stencil to not draw on ceilings + glStencilFunc GL_NOTEQUAL 128 255 --draw lightmap into its own buffer createLightMap cfig diff --git a/src/Render.hs b/src/Render.hs index a727df7cf..3a9774f7b 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -158,12 +158,11 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li -- setup stencil glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE glStencilMask 127 -- so we only affect the last 7 bits - with 0 $ \ptr -> + with 0 $ glClearNamedFramebufferiv (pdata ^. fboLighting . _1 . unFBO) GL_STENCIL 0 - ptr glDisable GL_CULL_FACE -- the first bit has been used to stencil out "ceilings" under which we never draw glStencilFunc GL_NOTEQUAL 128 255 diff --git a/tags b/tags index 0ebd1ddb9..f522c80d3 100644 --- a/tags +++ b/tags @@ -1487,7 +1487,7 @@ _allocOldPos src/Dodge/Data/RightButtonOptions.hs 26;" f _allocOldPos src/Dodge/Data/RightButtonOptions.hs 33;" f _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 31;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 27;" f -_alphaDivideShader src/Data/Preload/Render.hs 18;" f +_alphaDivideShader src/Data/Preload/Render.hs 19;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 130;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f @@ -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 23;" f +_barrelShader src/Data/Preload/Render.hs 24;" f _barrelType src/Dodge/Data/Creature/Misc.hs 71;" f _bdColor src/Dodge/Data/Prop.hs 26;" 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 21;" f +_bloomBlurShader src/Data/Preload/Render.hs 22;" 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 +1596,9 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 85;" f _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f _ceSideEffect src/Dodge/Data/Universe.hs 66;" f _ceString src/Dodge/Data/Universe.hs 67;" f -_chasmShader src/Data/Preload/Render.hs 46;" f -_chasmVBO src/Data/Preload/Render.hs 45;" f +_ceilingStencilShader src/Data/Preload/Render.hs 18;" 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 @@ -1626,11 +1627,11 @@ _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 -_cloudEBO src/Data/Preload/Render.hs 51;" f -_cloudShader src/Data/Preload/Render.hs 50;" f -_cloudVBO src/Data/Preload/Render.hs 49;" f +_cloudEBO src/Data/Preload/Render.hs 53;" 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 -_colorBlurShader src/Data/Preload/Render.hs 22;" f +_colorBlurShader src/Data/Preload/Render.hs 23;" 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 @@ -1769,15 +1770,15 @@ _eboPtr src/Shader/Data.hs 90;" 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 -_fbo2 src/Data/Preload/Render.hs 29;" f -_fbo3 src/Data/Preload/Render.hs 30;" f -_fboBase src/Data/Preload/Render.hs 33;" f -_fboBloom src/Data/Preload/Render.hs 35;" 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 37;" f -_fboPos src/Data/Preload/Render.hs 36;" f +_fbo2 src/Data/Preload/Render.hs 30;" f +_fbo3 src/Data/Preload/Render.hs 31;" 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 +_fboHalf1 src/Data/Preload/Render.hs 32;" f +_fboHalf2 src/Data/Preload/Render.hs 33;" f +_fboLighting src/Data/Preload/Render.hs 39;" f +_fboPos src/Data/Preload/Render.hs 38;" 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,13 +1789,13 @@ _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f _flares src/Dodge/Data/LWorld.hs 108;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _floorItems src/Dodge/Data/LWorld.hs 127;" f -_floorShader src/Data/Preload/Render.hs 44;" f -_floorVBO src/Data/Preload/Render.hs 43;" 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 _fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f -_fullscreenShader src/Data/Preload/Render.hs 20;" f +_fullscreenShader src/Data/Preload/Render.hs 21;" f _futureWorlds src/Dodge/Data/World.hs 67;" f _futureWorlds src/Dodge/Data/World.hs 73;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f @@ -1826,7 +1827,7 @@ _graphics_num_shadow_casters src/Dodge/Data/Config.hs 50;" f _graphics_shadow_rendering src/Dodge/Data/Config.hs 45;" f _graphics_shadow_size src/Dodge/Data/Config.hs 46;" f _graphics_world_resolution src/Dodge/Data/Config.hs 48;" f -_grayscaleShader src/Data/Preload/Render.hs 24;" f +_grayscaleShader src/Data/Preload/Render.hs 25;" f _gsZoning src/Dodge/Data/World.hs 54;" f _guID src/Dodge/Data/Gust.hs 12;" f _guPos src/Dodge/Data/Gust.hs 13;" f @@ -1916,7 +1917,7 @@ _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f _lightingTextureShader src/Data/Preload/Render.hs 17;" f _lightingWallShadShader src/Data/Preload/Render.hs 14;" f _lights src/Dodge/Data/LWorld.hs 134;" f -_lightsUBO src/Data/Preload/Render.hs 40;" f +_lightsUBO src/Data/Preload/Render.hs 42;" f _linearShockwaves src/Dodge/Data/LWorld.hs 116;" f _linkGapEW src/Dodge/Data/Room.hs 36;" f _linkGapNS src/Dodge/Data/Room.hs 37;" f @@ -1948,7 +1949,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 41;" 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 +2052,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 28;" f +_pictureShaders src/Data/Preload/Render.hs 29;" 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 +2134,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 40;" f _renderData src/Data/Preload.hs 11;" f _respawnDelay src/Dodge/Data/World.hs 62;" f _respawnPos src/Dodge/Data/LWorld.hs 145;" f @@ -2196,7 +2197,7 @@ _scOptions src/Dodge/Data/Universe.hs 84;" f _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f _scTitle src/Dodge/Data/Universe.hs 83;" f -_screenTextureVAO src/Data/Preload/Render.hs 52;" f +_screenTextureVAO src/Data/Preload/Render.hs 54;" f _scrollAmount src/Dodge/Data/Input.hs 40;" f _scrollItemID src/Dodge/Data/World.hs 68;" f _scrollItemID src/Dodge/Data/World.hs 77;" f @@ -2226,9 +2227,9 @@ _sfVs src/Shape/Data.hs 38;" f _shaderPrimitive src/Shader/Data.hs 53;" f _shaderUINT src/Shader/Data.hs 52;" f _shaderVAO src/Shader/Data.hs 54;" f -_shapeEBO src/Data/Preload/Render.hs 26;" f +_shapeEBO src/Data/Preload/Render.hs 27;" f _shapeHalfSize src/Shape/Data.hs 13;" f -_shapeShader src/Data/Preload/Render.hs 25;" f +_shapeShader src/Data/Preload/Render.hs 26;" 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 @@ -2240,7 +2241,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 27;" f +_silhouetteEBO src/Data/Preload/Render.hs 28;" 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 @@ -2400,9 +2401,9 @@ _vaType src/Shader/Data.hs 70;" f _vaoName src/Shader/Data.hs 65;" f _vboName src/Shader/Data.hs 82;" f _vboPtr src/Shader/Data.hs 83;" f -_vboShapes src/Data/Preload/Render.hs 42;" f +_vboShapes src/Data/Preload/Render.hs 44;" f _vboVertexBytes src/Shader/Data.hs 84;" f -_vboWindows src/Data/Preload/Render.hs 41;" f +_vboWindows src/Data/Preload/Render.hs 43;" f _vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f _vertices src/Polyhedra/Data.hs 22;" f @@ -2424,8 +2425,8 @@ _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 -_wallShader src/Data/Preload/Render.hs 48;" f -_wallVBO src/Data/Preload/Render.hs 47;" f +_wallShader src/Data/Preload/Render.hs 50;" f +_wallVBO src/Data/Preload/Render.hs 49;" 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 @@ -2433,7 +2434,7 @@ _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Data/Config.hs 54;" f -_windowShader src/Data/Preload/Render.hs 19;" f +_windowShader src/Data/Preload/Render.hs 20;" f _windowX src/Dodge/Data/Config.hs 51;" f _windowY src/Dodge/Data/Config.hs 52;" f _wlHeight src/Dodge/Data/Wall.hs 25;" f @@ -2534,10 +2535,10 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 342;" f applyCME src/Dodge/HeldUse.hs 369;" f -applyClip src/Dodge/Debug.hs 170;" f +applyClip src/Dodge/Debug.hs 130;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyEventIO src/Loop.hs 90;" f -applyGravityPU src/Dodge/Projectile/Update.hs 40;" f +applyGravityPU src/Dodge/Projectile/Update.hs 41;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f applyInvLock src/Dodge/HeldUse.hs 428;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f @@ -2643,7 +2644,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 225;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgunSound src/Dodge/HeldUse.hs 514;" f -bindFBO src/Render.hs 245;" f +bindFBO src/Render.hs 247;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f blank src/Picture/Base.hs 59;" f @@ -2682,7 +2683,7 @@ bossKeyItems src/Dodge/LockAndKey.hs 12;" f bossRoom src/Dodge/Room/Boss.hs 58;" f bounceDir src/Dodge/Bullet.hs 111;" f bouncePoint src/Dodge/Base/Collide.hs 86;" f -bounceSound src/Dodge/Projectile/Update.hs 73;" f +bounceSound src/Dodge/Projectile/Update.hs 74;" f boundPoints src/Bound.hs 10;" f boundedGrid src/Grid.hs 17;" f boxABC src/Polyhedra.hs 108;" f @@ -2710,7 +2711,7 @@ 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 -cChasm src/Dodge/Room/Tutorial.hs 140;" f +cChasm src/Dodge/Room/Tutorial.hs 139;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2746,7 +2747,7 @@ chaseCritInternal src/Dodge/Humanoid.hs 7;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 120;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 209;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 208;" f chasmTest src/Dodge/Creature/Update.hs 132;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2783,7 +2784,7 @@ circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f clClSpringVel src/Dodge/Update.hs 842;" f -clColor src/Shader/Poke/Cloud.hs 35;" f +clColor src/Shader/Poke/Cloud.hs 49;" 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 @@ -2791,7 +2792,7 @@ clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f cleanUpPreload src/Preload.hs 10;" f -cleanUpRenderPreload src/Preload/Render.hs 220;" f +cleanUpRenderPreload src/Preload/Render.hs 225;" f cleanUpSoundPreload src/Preload.hs 15;" f cleanupHalted src/Sound.hs 117;" f cleatLabel src/Dodge/Cleat.hs 30;" f @@ -2800,7 +2801,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f -clipZoom src/Dodge/Update/Camera.hs 230;" f +clipZoom src/Dodge/Update/Camera.hs 233;" f clockCycle src/Dodge/Clock.hs 7;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f @@ -2877,7 +2878,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 198;" f +cornerList src/Preload/Render.hs 203;" f corpseOrGib src/Dodge/Creature/Update.hs 111;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -2896,7 +2897,7 @@ crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crHasTarget src/Dodge/Creature/Test.hs 65;" f crHasTargetLOS src/Dodge/Creature/Test.hs 68;" f crHeight src/Dodge/Base/Collide.hs 173;" f -crHit src/Dodge/WorldEvent/ThingsHit.hs 118;" f +crHit src/Dodge/WorldEvent/ThingsHit.hs 119;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f crInAimStance src/Dodge/Creature/Test.hs 93;" f @@ -2927,8 +2928,8 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f -crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 56;" f -crZoneSize src/Dodge/Zoning/Creature.hs 42;" f +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 @@ -2955,16 +2956,16 @@ critsRoom src/Dodge/Room/Room.hs 398;" f crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f crossPic src/Dodge/Render/Label.hs 27;" f crossProd src/Geometry/Vector3D.hs 41;" f -crsHit src/Dodge/WorldEvent/ThingsHit.hs 66;" f -crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 153;" f -crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 77;" f +crsHit src/Dodge/WorldEvent/ThingsHit.hs 67;" f +crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 162;" f +crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 78;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f crsNearPoint src/Dodge/Zoning/Creature.hs 18;" f -crsNearRect src/Dodge/Zoning/Creature.hs 39;" f +crsNearRect src/Dodge/Zoning/Creature.hs 40;" f crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 66;" f -cubeShape src/Dodge/Block/Debris.hs 111;" f +cubeShape src/Dodge/Block/Debris.hs 110;" f cullPoint src/Dodge/Render/ShapePicture.hs 96;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f @@ -2994,13 +2995,13 @@ damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f damageDirection src/Dodge/Damage.hs 35;" f -damageDirt src/Dodge/Material/Damage.hs 128;" f -damageFlesh src/Dodge/Material/Damage.hs 95;" f +damageDirt src/Dodge/Material/Damage.hs 129;" f +damageFlesh src/Dodge/Material/Damage.hs 96;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f -damageMetal src/Dodge/Material/Damage.hs 63;" f +damageMetal src/Dodge/Material/Damage.hs 64;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 14;" f -damageStone src/Dodge/Material/Damage.hs 32;" f +damageStone src/Dodge/Material/Damage.hs 33;" f damageThingHit src/Dodge/Bullet.hs 180;" f damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 34;" f damageWall src/Dodge/Wall/Damage.hs 14;" f @@ -3018,24 +3019,21 @@ deadRot src/Dodge/Creature/Picture.hs 84;" f deadScalp src/Dodge/Creature/Picture.hs 81;" f deadUpperBody src/Dodge/Creature/Picture.hs 113;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f -debrisSPic src/Dodge/Prop/Draw.hs 21;" f -debrisSize src/Dodge/Block/Debris.hs 84;" f -debugEvent src/Dodge/Debug.hs 41;" f -debugEvents src/Dodge/Debug.hs 26;" f -debugGet src/Dodge/Debug.hs 78;" f -debugGet1 src/Dodge/Debug.hs 85;" f -debugGet2 src/Dodge/Debug.hs 93;" f -debugGet3 src/Dodge/Debug.hs 110;" f -debugItem src/Dodge/Debug.hs 44;" f +debrisSPic src/Dodge/Prop/Draw.hs 16;" f +debrisSize src/Dodge/Block/Debris.hs 83;" f +debugEvent src/Dodge/Debug.hs 37;" f +debugEvents src/Dodge/Debug.hs 22;" f +debugGet src/Dodge/Debug.hs 74;" f +debugItem src/Dodge/Debug.hs 40;" f debugMenu src/Dodge/Menu.hs 124;" f debugMenuOptions src/Dodge/Menu.hs 130;" f -debugMouseClickPos src/Dodge/Debug.hs 185;" f +debugMouseClickPos src/Dodge/Debug.hs 145;" f debugOn src/Dodge/Data/Config.hs 154;" f -debugPutDraw src/Dodge/Debug.hs 135;" f -debugPutItems src/Dodge/Debug.hs 118;" f -debugPutN src/Dodge/Debug.hs 124;" f -debugShowPath src/Dodge/Debug.hs 145;" f -debugWritableValues src/Dodge/Debug.hs 158;" f +debugPutDraw src/Dodge/Debug.hs 95;" f +debugPutItems src/Dodge/Debug.hs 78;" f +debugPutN src/Dodge/Debug.hs 84;" f +debugShowPath src/Dodge/Debug.hs 105;" f +debugWritableValues src/Dodge/Debug.hs 118;" f decodeSensorType src/Dodge/Terminal.hs 72;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f decomposeTree src/Dodge/Tree/Compose.hs 58;" f @@ -3048,7 +3046,7 @@ 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 -defDamageMaterial src/Dodge/Material/Damage.hs 29;" f +defDamageMaterial src/Dodge/Material/Damage.hs 30;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 309;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f @@ -3098,23 +3096,22 @@ defaultWindow src/Dodge/Default/Wall.hs 54;" f defaultWorld src/Dodge/Default/World.hs 31;" f degToRad src/Geometry/Vector.hs 118;" f deleteIMInZone src/Dodge/Base.hs 70;" f -deleteWall src/Dodge/Wall/Delete.hs 21;" f deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f deleteWallID src/Dodge/Wall/Delete.hs 13;" f -deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f +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/Door.hs 74;" f +destroyDoor src/Dodge/Door.hs 76;" 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/Door.hs 95;" f -destroyMounts src/Dodge/Door.hs 92;" f -destroyProjectile src/Dodge/Projectile/Update.hs 108;" f +destroyMount src/Dodge/Door.hs 97;" f +destroyMounts src/Dodge/Door.hs 94;" 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 detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f @@ -3162,8 +3159,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 47;" f doDamage src/Dodge/Creature/State.hs 43;" f doDeathToggle src/Dodge/WorldEffect.hs 91;" f doDeathTriggers src/Dodge/WorldEffect.hs 84;" f -doDebugGet src/Dodge/Debug.hs 138;" f -doDebugPut src/Dodge/Debug.hs 127;" f +doDebugGet src/Dodge/Debug.hs 98;" f +doDebugPut src/Dodge/Debug.hs 87;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 38;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 66;" f @@ -3173,13 +3170,13 @@ doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 41;" f doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 51;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f -doDoorMount src/Dodge/Door.hs 34;" f +doDoorMount src/Dodge/Door.hs 35;" f doDrag src/Dodge/Update/Input/InGame.hs 127;" f doDrawing src/Dodge/Render.hs 34;" f doDrawing' src/Dodge/Render.hs 45;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f doGenFloat src/Dodge/HeldUse.hs 1158;" f -doGravityPU src/Dodge/Projectile/Update.hs 34;" f +doGravityPU src/Dodge/Projectile/Update.hs 35;" f doHeldUseEffect src/Dodge/HeldUse.hs 351;" f doInPlacements src/Dodge/Layout.hs 87;" f doIndividualPlacements src/Dodge/Layout.hs 101;" f @@ -3204,10 +3201,10 @@ doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 171;" f doTestDrawing src/Dodge/Render.hs 41;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f -doThrust src/Dodge/Projectile/Update.hs 128;" f +doThrust src/Dodge/Projectile/Update.hs 129;" f doTimeScroll src/Dodge/Update.hs 199;" f doTmWdWd src/Dodge/WorldEffect.hs 94;" f -doWallRotate src/Dodge/Update/Camera.hs 220;" f +doWallRotate src/Dodge/Update/Camera.hs 223;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f @@ -3216,7 +3213,7 @@ doWorldEvents src/Dodge/Update.hs 429;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 44;" f -doorLerp src/Dodge/Door.hs 44;" f +doorLerp src/Dodge/Door.hs 45;" f dotV src/Geometry/Vector.hs 76;" f dotV3 src/Geometry/Vector3D.hs 119;" f doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f @@ -3248,8 +3245,8 @@ drawCombFilter src/Dodge/Render/Picture.hs 269;" f drawCombineInventory src/Dodge/Render/HUD.hs 182;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f drawCoord src/Dodge/Debug/Picture.hs 395;" f -drawCrInfo src/Dodge/Debug.hs 209;" f -drawCrInfo' src/Dodge/Debug.hs 204;" f +drawCrInfo src/Dodge/Debug.hs 169;" f +drawCrInfo' src/Dodge/Debug.hs 164;" f drawCreature src/Dodge/Render/ShapePicture.hs 71;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 24;" f @@ -3258,7 +3255,7 @@ drawCursorAt src/Dodge/Render/List.hs 72;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f drawDDATest src/Dodge/Debug/Picture.hs 311;" f drawDamSensor src/Dodge/Machine/Draw.hs 27;" f -drawDebug src/Dodge/Debug.hs 247;" f +drawDebug src/Dodge/Debug.hs 207;" f drawDrag src/Dodge/Render/Picture.hs 200;" f drawDragDrop src/Dodge/Render/Picture.hs 229;" f drawDragPickup src/Dodge/Render/Picture.hs 238;" f @@ -3275,7 +3272,7 @@ drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f drawForceField src/Dodge/Wall/Draw.hs 13;" f drawGapPlus src/Dodge/Render/Picture.hs 280;" f -drawGib src/Dodge/Prop/Draw.hs 31;" f +drawGib src/Dodge/Prop/Draw.hs 26;" f drawHUD src/Dodge/Render/HUD.hs 51;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f drawInspectWall src/Dodge/Debug/Picture.hs 255;" f @@ -3310,7 +3307,6 @@ drawPathing src/Dodge/Debug/Picture.hs 416;" f drawPlus src/Dodge/Render/Picture.hs 165;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f -drawProp src/Dodge/Prop/Draw.hs 27;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 63;" f drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f @@ -3378,7 +3374,7 @@ dtToLRAdjEither src/Dodge/DoubleTree.hs 181;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 72;" f -dustColor src/Shader/Poke/Cloud.hs 71;" f +dustColor src/Shader/Poke/Cloud.hs 64;" f dustSpringVel src/Dodge/Update.hs 853;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f @@ -3445,14 +3441,14 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f -farWallDistDirection src/Dodge/Update/Camera.hs 241;" f +farWallDistDirection src/Dodge/Update/Camera.hs 244;" f fdiv src/ShortShow.hs 41;" f feet src/Dodge/Creature/Picture.hs 51;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 63;" f -findBoundDists src/Dodge/Update/Camera.hs 248;" f +findBoundDists src/Dodge/Update/Camera.hs 251;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findIndex src/IntMapHelp.hs 86;" f @@ -3497,7 +3493,7 @@ 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 -foldMTRS src/Dodge/Room/Tutorial.hs 85;" f +foldMTRS src/Dodge/Room/Tutorial.hs 84;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 110;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3547,7 +3543,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f -getAimZoom src/Dodge/Update/Camera.hs 143;" f +getAimZoom src/Dodge/Update/Camera.hs 146;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAttachedSFLink src/Dodge/HeldUse.hs 788;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f @@ -3558,10 +3554,10 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 358;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 345;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f getDebugMouseOver src/Dodge/Update.hs 377;" f -getDistortions src/Dodge/Render.hs 435;" f +getDistortions src/Dodge/Render.hs 438;" f getEdgesCrossing src/Dodge/Path.hs 42;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3576,7 +3572,7 @@ getNodePos src/Dodge/Path.hs 39;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 341;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 340;" f getRootItemBounds src/Dodge/Render/HUD.hs 100;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3662,7 +3658,7 @@ 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 heldAimStance src/Dodge/Item/AimStance.hs 24;" f -heldAimZoom src/Dodge/Update/Camera.hs 149;" f +heldAimZoom src/Dodge/Update/Camera.hs 152;" f heldEffect src/Dodge/HeldUse.hs 60;" f heldEffectMuzzles src/Dodge/HeldUse.hs 131;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f @@ -3713,10 +3709,10 @@ 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 216;" f +initializeGLState src/Preload/Render.hs 221;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f -initializeTexture2D src/Framebuffer/Update.hs 221;" f +initializeTexture2D src/Framebuffer/Update.hs 209;" f inorderNumberTree src/TreeHelp.hs 190;" f insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f @@ -3794,7 +3790,7 @@ isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f isCornerLink src/Dodge/RoomLink.hs 65;" f isElectrical src/Dodge/Machine/Update.hs 84;" f -isFlyable src/Dodge/WorldEvent/ThingsHit.hs 161;" f +isFlyable src/Dodge/WorldEvent/ThingsHit.hs 170;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f isInLnk src/Dodge/PlacementSpot.hs 161;" f isJust' src/MaybeHelp.hs 27;" f @@ -3815,7 +3811,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f isValidCommand src/Dodge/Debug/Terminal.hs 134;" f isVowel src/StringHelp.hs 8;" f -isWalkable src/Dodge/WorldEvent/ThingsHit.hs 168;" f +isWalkable src/Dodge/WorldEvent/ThingsHit.hs 177;" f isoMatrix src/MatrixHelper.hs 30;" f isotriBWH src/Geometry/Polygon.hs 22;" f itDim src/Dodge/Item/InvSize.hs 21;" f @@ -3891,7 +3887,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 459;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f -lChasm src/Dodge/Room/Tutorial.hs 149;" f +lChasm src/Dodge/Room/Tutorial.hs 148;" f lConnect src/Dodge/Render/Connectors.hs 42;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lShape src/Dodge/Placement/Instance/LightSource.hs 91;" f @@ -4027,7 +4023,7 @@ main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 157;" f makeAttach src/Dodge/Item/Attach.hs 10;" f makeBlip src/Dodge/RadarSweep.hs 70;" f -makeBlockDebris src/Dodge/Block/Debris.hs 37;" f +makeBlockDebris src/Dodge/Block/Debris.hs 36;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f makeBullet src/Dodge/HeldUse.hs 979;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f @@ -4036,15 +4032,15 @@ makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 111;" f makeColorTermPara src/Dodge/Terminal.hs 108;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f -makeDebris src/Dodge/Block/Debris.hs 49;" f -makeDebrisDirected src/Dodge/Block/Debris.hs 52;" f +makeDebris src/Dodge/Block/Debris.hs 48;" f +makeDebrisDirected src/Dodge/Block/Debris.hs 51;" f makeDoorDebris src/Dodge/Block/Debris.hs 26;" f makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f -makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 73;" f +makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 72;" f makeFlak src/Dodge/Bullet.hs 146;" f makeFlame src/Dodge/Flame.hs 45;" f -makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 56;" f +makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 55;" f makeFlamelet src/Dodge/EnergyBall.hs 21;" f makeFragBullets src/Dodge/Bullet.hs 132;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f @@ -4055,7 +4051,7 @@ makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 68;" f makePathBetweenPs src/Dodge/Path.hs 92;" f makePathUsing src/Dodge/Path.hs 56;" f -makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f +makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 24;" f makeSelectionListPictures src/Dodge/Render/List.hs 66;" f makeShaderEBO src/Shader/Compile.hs 53;" f makeShaderProgram src/Shader/Compile.hs 241;" f @@ -4071,7 +4067,7 @@ makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f makeTermLine src/Dodge/Terminal.hs 96;" f makeTermPara src/Dodge/Terminal.hs 105;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f -makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f +makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 39;" f makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 18;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f @@ -4136,13 +4132,13 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 172;" f +midChasm src/Dodge/Room/Tutorial.hs 171;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f midWall src/Dodge/Placement/Instance/Wall.hs 38;" f minAndMax src/FoldableHelp.hs 109;" f -minCrIXOn src/Dodge/Zoning/Creature.hs 48;" f +minCrIXOn src/Dodge/Zoning/Creature.hs 49;" f minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f miniGunCrit src/Dodge/Creature.hs 63;" f @@ -4159,7 +4155,9 @@ missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f mixColors src/Color.hs 86;" f mixColorsFrac src/Color.hs 82;" f mixColorsLinear src/Color.hs 95;" f +mkCloudCloudLike src/Shader/Poke/Cloud.hs 21;" f mkCustomLenses src/ThirdPartyLens.hs 7;" f +mkDustCloudLike src/Shader/Poke/Cloud.hs 27;" f mkGraphFromEdges src/GraphHelp.hs 4;" f mkNode src/Dodge/Graph.hs 29;" f mkRectangle src/Dodge/LevelGen/DoorPane.hs 7;" f @@ -4174,7 +4172,7 @@ mouseCursorType src/Dodge/Render/Picture.hs 92;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 25;" f moveBullet src/Dodge/Bullet.hs 197;" f moveCombineSel src/Dodge/Update/Scroll.hs 121;" f -moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f +moveInverseShockwave src/Dodge/Shockwave/Update.hs 31;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 47;" f movePenBullet src/Dodge/Bullet.hs 203;" f moveProjectile src/Dodge/Projectile/Update.hs 210;" f @@ -4185,7 +4183,7 @@ moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f moveWall src/Dodge/Wall/Move.hs 23;" f moveWallID src/Dodge/Wall/Move.hs 18;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f -moveZoomCamera src/Dodge/Update/Camera.hs 87;" f +moveZoomCamera src/Dodge/Update/Camera.hs 90;" f mtTopLabels src/Dodge/Tree/Compose.hs 50;" f mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f @@ -4282,7 +4280,7 @@ 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 -overDebugEvent src/Dodge/Debug.hs 35;" 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 @@ -4315,7 +4313,7 @@ pauseMenuOptions src/Dodge/Menu.hs 66;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 183;" f pbFlicker src/Dodge/Update.hs 470;" f -pbsHit src/Dodge/WorldEvent/ThingsHit.hs 94;" f +pbsHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 214;" f @@ -4336,7 +4334,7 @@ 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 221;" f +pingPongBetween src/Render.hs 223;" 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 @@ -4396,16 +4394,14 @@ pokeBox src/Shader/Poke.hs 227;" f pokeBoxSurface src/Shader/Poke.hs 262;" f pokeChasm src/Shader/Poke/Floor.hs 24;" f pokeChasmVerx src/Shader/Poke/Floor.hs 28;" f -pokeCloud src/Shader/Poke/Cloud.hs 14;" f -pokeCloudFloat src/Shader/Poke/Cloud.hs 42;" f -pokeCloudIndex src/Shader/Poke/Cloud.hs 46;" f -pokeCloudVerx src/Shader/Poke/Cloud.hs 20;" f +pokeCloud src/Shader/Poke/Cloud.hs 15;" f +pokeCloudFloat src/Shader/Poke/Cloud.hs 56;" f +pokeCloudIndex src/Shader/Poke/Cloud.hs 60;" f +pokeCloudLike src/Shader/Poke/Cloud.hs 33;" f +pokeCloudLikeVerx src/Shader/Poke/Cloud.hs 41;" f pokeCylinder src/Shader/Poke.hs 172;" f pokeCylinderCaps src/Shader/Poke.hs 215;" f -pokeDust src/Shader/Poke/Cloud.hs 50;" f -pokeDustFloat src/Shader/Poke/Cloud.hs 74;" f -pokeDustIndex src/Shader/Poke/Cloud.hs 78;" f -pokeDustVerx src/Shader/Poke/Cloud.hs 56;" f +pokeDust src/Shader/Poke/Cloud.hs 18;" f pokeF src/Shader/Poke.hs 67;" f pokeFlatV src/Shader/Poke.hs 455;" f pokeFloors src/Shader/Poke.hs 61;" f @@ -4427,8 +4423,8 @@ pokeWall src/Shader/Poke.hs 78;" f pokeWallsWindows src/Shader/Poke.hs 50;" f poly3 src/Picture/Base.hs 84;" f poly3Col src/Picture/Base.hs 88;" f -polyChasm src/Dodge/Room/Tutorial.hs 193;" f -polyChasmC src/Dodge/Room/Tutorial.hs 202;" f +polyChasm src/Dodge/Room/Tutorial.hs 192;" f +polyChasmC src/Dodge/Room/Tutorial.hs 201;" f polyCirc src/Shape.hs 46;" f polyCircx src/Shape.hs 51;" f polyCornerDist src/Geometry/Polygon.hs 61;" f @@ -4480,7 +4476,7 @@ prismPoly src/Shape.hs 59;" f projV src/Geometry/Vector.hs 177;" f projV3 src/Geometry/Vector3D.hs 127;" f propLSThen src/Dodge/Placement/Instance/LightSource.hs 33;" f -propSPic src/Dodge/Prop/Draw.hs 18;" f +propSPic src/Dodge/Prop/Draw.hs 22;" f propUpdateIf src/Dodge/Prop/Update.hs 20;" f propUpdatePosition src/Dodge/Prop/Update.hs 25;" f propagateOrientation src/Dodge/Item/Orientation.hs 80;" f @@ -4612,14 +4608,14 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f removeAmmoFromMag src/Dodge/HeldUse.hs 907;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f -removeLights src/Dodge/Room/Tutorial.hs 258;" f +removeLights src/Dodge/Room/Tutorial.hs 257;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 26;" 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 234;" f +renderLayer src/Render.hs 236;" f renderLightingNoShadows src/Render.hs 48;" f renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 117;" f @@ -4629,9 +4625,9 @@ 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 203;" f -resizeFBOTO3 src/Framebuffer/Update.hs 175;" f -resizeRBO src/Framebuffer/Update.hs 87;" f +resizeFBOTO src/Framebuffer/Update.hs 191;" f +resizeFBOTO3 src/Framebuffer/Update.hs 163;" f +resizeRBO src/Framebuffer/Update.hs 82;" f respawn src/Dodge/SpawnAt.hs 12;" f restrictInLinks src/Dodge/RoomLink.hs 44;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f @@ -4696,14 +4692,14 @@ rotate3 src/Geometry/Vector3D.hs 48;" f rotate3x src/Geometry/Vector3D.hs 60;" f rotate3y src/Geometry/Vector3D.hs 66;" f rotate3z src/Geometry/Vector3D.hs 54;" f -rotateCamera src/Dodge/Update/Camera.hs 197;" f +rotateCamera src/Dodge/Update/Camera.hs 200;" 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 rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f -rotateToOverlappingWall src/Dodge/Update/Camera.hs 209;" f +rotateToOverlappingWall src/Dodge/Update/Camera.hs 212;" f rotateToZ src/Quaternion.hs 35;" f rotateV src/Geometry/Vector.hs 106;" f rotateVAround src/Geometry/Vector.hs 113;" f @@ -4791,7 +4787,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 197;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 81;" f -sensorTut src/Dodge/Room/Tutorial.hs 367;" f +sensorTut src/Dodge/Room/Tutorial.hs 366;" f sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 81;" f @@ -4799,7 +4795,7 @@ sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setAimPosture src/Dodge/Creature/YourControl.hs 145;" f setChannelPos src/Sound.hs 150;" f setClickWorldPos src/Dodge/Update.hs 102;" f -setClip src/Dodge/Debug.hs 233;" f +setClip src/Dodge/Debug.hs 193;" f setClusterID src/Dodge/Combine/Graph.hs 114;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f @@ -4818,7 +4814,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f -setRoomInt src/Dodge/Room/Tutorial.hs 92;" f +setRoomInt src/Dodge/Room/Tutorial.hs 91;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f @@ -4827,10 +4823,10 @@ setSoundVolume src/Sound.hs 157;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 82;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f -setTreeInts src/Dodge/Room/Tutorial.hs 99;" f -setViewDistance src/Dodge/Update/Camera.hs 236;" f +setTreeInts src/Dodge/Room/Tutorial.hs 98;" f +setViewDistance src/Dodge/Update/Camera.hs 239;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 440;" f +setViewport src/Dodge/Render.hs 443;" f setVol src/Dodge/Config.hs 47;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Euse.hs 38;" f @@ -4859,10 +4855,10 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f -shellExplosionCheck src/Dodge/Projectile/Update.hs 49;" f -shellHitCreature src/Dodge/Projectile/Update.hs 80;" f -shellHitFloor src/Dodge/Projectile/Update.hs 94;" f -shellHitWall src/Dodge/Projectile/Update.hs 59;" f +shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f +shellHitCreature src/Dodge/Projectile/Update.hs 81;" f +shellHitFloor src/Dodge/Projectile/Update.hs 95;" f +shellHitWall src/Dodge/Projectile/Update.hs 60;" f shellMag src/Dodge/Item/Ammo.hs 49;" f shellModule src/Dodge/Item/Scope.hs 123;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f @@ -4937,8 +4933,8 @@ slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f slideWindow src/ListHelp.hs 80;" f -slowDoorRoom src/Dodge/Room/LongDoor.hs 141;" f -slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 158;" f +slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f +slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f smallBattery src/Dodge/Item/Ammo.hs 60;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f @@ -5037,7 +5033,7 @@ startRoom src/Dodge/Room/Start.hs 53;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f statsModifier src/Dodge/Creature/Info.hs 16;" f -stickHitSound src/Dodge/Projectile/Update.hs 76;" 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 @@ -5046,7 +5042,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f stopAllSounds src/Sound.hs 125;" f stopBulletAt src/Dodge/Bullet.hs 200;" f -stopPushing src/Dodge/Door.hs 100;" f +stopPushing src/Dodge/Door.hs 102;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f @@ -5059,7 +5055,7 @@ stripZ src/Geometry/Vector3D.hs 97;" f subInvX src/Dodge/ListDisplayParams.hs 46;" f subMap src/TreeHelp.hs 119;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 118;" f -succB src/Dodge/Debug.hs 153;" f +succB src/Dodge/Debug.hs 113;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 57;" f swapInOutLinks src/Dodge/RoomLink.hs 98;" f swapIndices src/ListHelp.hs 50;" f @@ -5134,11 +5130,11 @@ thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f thickLineCol src/Picture/Base.hs 255;" f thinHighBar src/Dodge/Room/Foreground.hs 77;" f -thingHit src/Dodge/WorldEvent/ThingsHit.hs 115;" f -thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 103;" f -thingsHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f -thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 124;" f -thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 49;" f +thingHit src/Dodge/WorldEvent/ThingsHit.hs 116;" f +thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 104;" f +thingsHit src/Dodge/WorldEvent/ThingsHit.hs 42;" f +thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 125;" f +thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 50;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f @@ -5202,8 +5198,8 @@ transMat src/MatrixHelper.hs 73;" f transToHandle src/Dodge/Item/HeldOffset.hs 26;" f translate src/Picture/Base.hs 116;" f translate3 src/Picture/Base.hs 120;" f -translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f -translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f +translateFloatingCamera src/Dodge/Update/Camera.hs 47;" f +translateFloatingCameraKeys src/Dodge/Update/Camera.hs 64;" f translateH src/Picture/Base.hs 112;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 36;" f @@ -5251,20 +5247,20 @@ tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" f trySeedFromClipboard src/Dodge/Menu.hs 96;" f -trySpin src/Dodge/Projectile/Update.hs 116;" f +trySpin src/Dodge/Projectile/Update.hs 117;" f trySynthBullet src/Dodge/Creature/State.hs 167;" f -tryThrust src/Dodge/Projectile/Update.hs 122;" f +tryThrust src/Dodge/Projectile/Update.hs 123;" f tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f tutAnoTree src/Dodge/Room/Tutorial.hs 46;" f -tutDrop src/Dodge/Room/Tutorial.hs 104;" f -tutHub src/Dodge/Room/Tutorial.hs 265;" f -tutLight src/Dodge/Room/Tutorial.hs 230;" f -tutRezBox src/Dodge/Room/Tutorial.hs 378;" f +tutDrop src/Dodge/Room/Tutorial.hs 103;" f +tutHub src/Dodge/Room/Tutorial.hs 264;" f +tutLight src/Dodge/Room/Tutorial.hs 229;" f +tutRezBox src/Dodge/Room/Tutorial.hs 377;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 402;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 401;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5302,11 +5298,11 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f -updateBounds src/Dodge/Update/Camera.hs 258;" f +updateBounds src/Dodge/Update/Camera.hs 261;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 566;" f -updateCamera src/Dodge/Update/Camera.hs 30;" f +updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f updateCloud src/Dodge/Update.hs 799;" f updateClouds src/Dodge/Update.hs 670;" f @@ -5323,29 +5319,29 @@ updateDelayedEvents src/Dodge/Update.hs 891;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 559;" f -updateDoor src/Dodge/Door.hs 25;" f +updateDoor src/Dodge/Door.hs 26;" f updateDoors src/Dodge/Update.hs 311;" f updateDust src/Dodge/Update.hs 823;" f updateDusts src/Dodge/Update.hs 673;" f updateEdge src/Dodge/Path.hs 48;" f -updateEdgeWallObs src/Dodge/Update/WallDamage.hs 33;" f -updateEdgesWall src/Dodge/Update/WallDamage.hs 24;" f -updateEdgesWall' src/Dodge/Update/WallDamage.hs 30;" f +updateEdgeWallObs src/Dodge/Update/WallDamage.hs 41;" f +updateEdgesWall src/Dodge/Update/WallDamage.hs 25;" f +updateEdgesWall' src/Dodge/Update/WallDamage.hs 38;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 661;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f -updateFBOTO src/Framebuffer/Update.hs 97;" f -updateFBOTO3 src/Framebuffer/Update.hs 131;" f +updateFBOTO src/Framebuffer/Update.hs 85;" f +updateFBOTO3 src/Framebuffer/Update.hs 119;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 658;" f -updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f +updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f updateGusts src/Dodge/Update.hs 782;" f updateIMl src/Dodge/Update.hs 532;" f updateIMl' src/Dodge/Update.hs 535;" f -updateInGameCamera src/Dodge/Update/Camera.hs 79;" f +updateInGameCamera src/Dodge/Update/Camera.hs 82;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 119;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f @@ -5373,7 +5369,7 @@ updateObjCatMaybes src/Dodge/Update.hs 550;" f updateObjMapMaybe src/Dodge/Update.hs 543;" f updatePastWorlds src/Dodge/Update.hs 425;" f updatePreload src/Preload/Update.hs 20;" f -updateProjectile src/Dodge/Projectile/Update.hs 25;" f +updateProjectile src/Dodge/Projectile/Update.hs 26;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 146;" f updatePulseBall src/Dodge/Update.hs 450;" f @@ -5411,7 +5407,7 @@ updateUniverseMid src/Dodge/Update.hs 157;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f -updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f +updateWallDamages src/Dodge/Update/WallDamage.hs 16;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f updateWheelEvents src/Dodge/Update.hs 415;" f updateWorldEventFlag src/Dodge/Update.hs 121;" f @@ -5474,7 +5470,7 @@ verticalWire src/Dodge/Wire.hs 23;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f viewBoundaries src/Dodge/Debug/Picture.hs 340;" f viewClipBounds src/Dodge/Debug/Picture.hs 349;" f -viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f +viewDistanceFromItems src/Dodge/Update/Camera.hs 197;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 154;" f violet src/Color.hs 21;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f @@ -5541,9 +5537,9 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 47;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 50;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f -wlsHit src/Dodge/WorldEvent/ThingsHit.hs 138;" f -wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 146;" f -wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 141;" f +wlsHit src/Dodge/WorldEvent/ThingsHit.hs 139;" f +wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 147;" f +wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 142;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f @@ -5580,7 +5576,7 @@ yourInv src/Dodge/Base/You.hs 28;" f yourRootItem src/Dodge/Base/You.hs 22;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 159;" f +zChasm src/Dodge/Room/Tutorial.hs 158;" f zConnect src/Dodge/Render/Connectors.hs 17;" f zConnectCol src/Dodge/Render/Connectors.hs 28;" f zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f @@ -5589,7 +5585,7 @@ zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 136;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f zoneClouds src/Dodge/Update.hs 477;" f -zoneCreature src/Dodge/Zoning/Creature.hs 55;" f +zoneCreature src/Dodge/Zoning/Creature.hs 56;" f zoneCreatures src/Dodge/Update.hs 513;" f zoneDust src/Dodge/Zoning/Cloud.hs 48;" f zoneDusts src/Dodge/Update.hs 481;" f @@ -5598,7 +5594,7 @@ zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f zoneMonoid src/Dodge/Zoning/Base.hs 110;" f zoneOfCirc src/Dodge/Zoning/Base.hs 28;" f zoneOfCl src/Dodge/Zoning/Cloud.hs 24;" f -zoneOfCr src/Dodge/Zoning/Creature.hs 45;" f +zoneOfCr src/Dodge/Zoning/Creature.hs 46;" f zoneOfDs src/Dodge/Zoning/Cloud.hs 45;" f zoneOfIncPe src/Dodge/Zoning/Pathing.hs 52;" f zoneOfPn src/Dodge/Zoning/Pathing.hs 29;" f @@ -5612,7 +5608,7 @@ zonePn src/Dodge/Zoning/Pathing.hs 32;" f zoneWall src/Dodge/Zoning/Wall.hs 65;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 123;" f zonesExtract src/Dodge/Zoning/Base.hs 65;" f -zoomFloatingCamera src/Dodge/Update/Camera.hs 71;" f +zoomFloatingCamera src/Dodge/Update/Camera.hs 74;" f zoomInLongGun src/Dodge/Update/Scroll.hs 105;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 113;" f zoomScope src/Dodge/Item/Scope.hs 33;" f