diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 84298d1cb..3d43100c3 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -44,7 +44,6 @@ doTestDrawing _ _ = do doDrawing' :: SDL.Window -> RenderData -> Universe -> IO () doDrawing' win pdata u = do --sTicks <- SDL.ticks - checkGLError "during drawing" let w = _uvWorld u cfig = _uvConfig u (windowPoints, wallSPics, wallsToPoke) = wallsToDraw w @@ -383,6 +382,7 @@ doDrawing' win pdata u = do glDepthMask GL_TRUE with (-1) $ glClearNamedFramebufferfv 0 GL_DEPTH 0 renderLayer FixedCoordLayer shadV pokeCounts + checkGLError "during doDrawing'" SDL.glSwapWindow win rdToVec2s :: Distortion -> [Point2] diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index 074ec2837..b8ad7e187 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -57,7 +57,7 @@ drawCliff x y = noPic . translateSHz (-500.01) . colorSH (dark orange) - $ upperPrismPoly Large Important 500 + $ upperPrismPoly Large Superfluous 500 [x, 0.5 * (x + y) + normalizeV (vNormal (y - x)), y] drawPulseBall :: PulseBall -> SPic diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index f47ff0f91..5063c49c6 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -48,31 +48,6 @@ tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor - , return . tToBTree "asdf" . return . cleatOnward $ airlockCrystal --- , tToBTree "x" . return . cleatOnward <$> airlockSimple --- , tToBTree "lastun" . return . cleatOnward <$> tanksRoom [] [] - , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , tToBTree "lastun" . return . cleatOnward <$> cenLasTur --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward airlockSimple --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , tToBTree "asdf" . return . cleatOnward <$> airlockZ --- , return $ tToBTree "cor" $ return $ cleatOnward corridor --- , return $ tToBTree "cor" $ return $ cleatOnward corridor - , tToBTree "t" . return . cleatOnward <$> slowDoorRoom - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , corDoor - , return $ tToBTree "cor" $ return $ cleatOnward corridor , tutHub , tutLight , tutDrop diff --git a/src/Dodge/WorldLoad.hs b/src/Dodge/WorldLoad.hs index dbdeb72b5..3287482c7 100644 --- a/src/Dodge/WorldLoad.hs +++ b/src/Dodge/WorldLoad.hs @@ -1,5 +1,6 @@ module Dodge.WorldLoad (postUniverseLoadSideEffect) where +import GLHelp import Control.Lens import Control.Monad import Data.Preload.Render @@ -8,26 +9,32 @@ import Graphics.GL.Core45 import Shader.Data import Shader.Parameters import Shader.Poke.Floor +import Foreign.Marshal postUniverseLoadSideEffect :: Universe -> Universe postUniverseLoadSideEffect = uvIOEffects - %~ (\f uv -> (uvWorld . cWorld) (postWorldLoad (uv ^. preloadData . renderData)) uv >>= f) + %~ (\f uv -> (postWorldLoad (uv ^. preloadData . renderData) uv) >>= f) -postWorldLoad :: RenderData -> CWorld -> IO CWorld +postWorldLoad :: RenderData -> Universe -> IO Universe postWorldLoad rdata cw = do let floorbo = (rdata ^. floorVBO . vboName) floorptr = (rdata ^. floorVBO . vboPtr) - nfloorvxs <- foldM (pokeTile floorptr) 0 (cw ^. cwTiles) - glInvalidateBufferData floorbo - glNamedBufferStorage floorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0 - glBindBufferBase GL_SHADER_STORAGE_BUFFER 8 floorbo - let chbo = rdata ^. chasmVBO . vboName + chbo = rdata ^. chasmVBO . vboName chptr = rdata ^. chasmVBO . vboPtr - nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. chasms) + glInvalidateBufferData floorbo glInvalidateBufferData chbo - glNamedBufferStorage chbo (fromIntegral $ 2 * nchasmvxs * floatSize) chptr 0 - glBindBufferBase GL_SHADER_STORAGE_BUFFER 7 chbo + withArray [floorbo,chbo] $ glDeleteBuffers 2 + [newfloorbo,newchbo] <- glCreate glGenBuffers 2 + nfloorvxs <- foldM (pokeTile floorptr) 0 (cw ^. uvWorld . cWorld . cwTiles) + glBindBufferBase GL_SHADER_STORAGE_BUFFER 8 newfloorbo + glNamedBufferStorage newfloorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0 + nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. uvWorld . cWorld . chasms) + glBindBufferBase GL_SHADER_STORAGE_BUFFER 7 newchbo + glNamedBufferStorage newchbo (fromIntegral $ 2 * nchasmvxs * floatSize) chptr 0 + checkGLError "during postWorldLoad" return $ - cw & numberFloorVerxs .~ nfloorvxs - & numberChasmVerxs .~ nchasmvxs + cw & uvWorld . cWorld . numberFloorVerxs .~ nfloorvxs + & uvWorld . cWorld . numberChasmVerxs .~ nchasmvxs + & preloadData . renderData . floorVBO . vboName .~ newfloorbo + & preloadData . renderData . chasmVBO . vboName .~ newchbo diff --git a/src/GLHelp.hs b/src/GLHelp.hs index e06d4630a..0a089a411 100644 --- a/src/GLHelp.hs +++ b/src/GLHelp.hs @@ -1,4 +1,4 @@ -module GLHelp (mglCreate,mglDelete,checkGLError) where +module GLHelp (mglCreate,mglDelete,checkGLError,glCreate) where import Foreign.Marshal import Foreign.Ptr @@ -8,6 +8,9 @@ import Graphics.GL.Core45 mglCreate :: (GLsizei -> Ptr GLuint -> IO ()) -> IO GLuint mglCreate f = alloca $ \ptr -> f 1 ptr >> peek ptr +glCreate :: (GLsizei -> Ptr GLuint -> IO ()) -> Int -> IO [GLuint] +glCreate f n = alloca $ \ptr -> f (fromIntegral n) ptr >> peekArray n ptr + mglDelete :: (GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> IO () mglDelete f i = with i $ f 1 diff --git a/tags b/tags index 35eae559c..1a6667f61 100644 --- a/tags +++ b/tags @@ -45,7 +45,7 @@ AimStance src/Dodge/Data/AimStance.hs 10;" t Aiming src/Dodge/Data/Creature/Stance.hs 34;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C -AllRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C +AllRoomClipBoundaries src/Dodge/Data/Config.hs 120;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C Ambush src/Dodge/Data/ActionPlan.hs 130;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C @@ -136,7 +136,7 @@ Blunt src/Dodge/Data/Damage.hs 17;" C Boosting src/Dodge/Data/Creature/Stance.hs 27;" C BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 28;" C -Bound_box_screen src/Dodge/Data/Config.hs 94;" C +Bound_box_screen src/Dodge/Data/Config.hs 93;" C BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C Bounds src/Dodge/Data/Bounds.hs 10;" t BrigSS src/Dodge/Data/Scenario.hs 102;" C @@ -205,16 +205,16 @@ ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 29;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 28;" C -Circ_collision_test src/Dodge/Data/Config.hs 98;" C +Circ_collision_test src/Dodge/Data/Config.hs 97;" C Climate src/Dodge/Data/Scenario.hs 32;" C CloseToMelee src/Dodge/Data/ActionPlan.hs 139;" C -Close_shape_culling src/Dodge/Data/Config.hs 92;" C +Close_shape_culling src/Dodge/Data/Config.hs 91;" C Cloud src/Dodge/Data/Cloud.hs 12;" t CloudType src/Dodge/Data/Cloud.hs 20;" t ClusterLink src/Dodge/Data/RoomCluster.hs 13;" t ClusterStatus src/Dodge/Data/RoomCluster.hs 9;" t Cognizant src/Dodge/Data/Creature/Perception.hs 65;" C -Collision_test src/Dodge/Data/Config.hs 97;" C +Collision_test src/Dodge/Data/Config.hs 96;" C Color src/Color/Data.hs 30;" t Color8 src/Color/Data.hs 32;" t ColorFaction src/Dodge/Data/Creature/State.hs 19;" C @@ -269,8 +269,8 @@ CrWdBFSThenReturn src/Dodge/Data/CreatureEffect.hs 27;" C CrWeaponFailSound src/Dodge/Data/SoundOrigin.hs 20;" C CrWeaponSound src/Dodge/Data/SoundOrigin.hs 18;" C CrWlID src/Dodge/Data/CrWlID.hs 10;" t -Cr_awareness src/Dodge/Data/Config.hs 85;" C -Cr_status src/Dodge/Data/Config.hs 84;" C +Cr_awareness src/Dodge/Data/Config.hs 84;" C +Cr_status src/Dodge/Data/Config.hs 83;" C CraftClust src/Dodge/Combine/Graph.hs 18;" C CraftType src/Dodge/Data/Item/Combine.hs 49;" t CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C @@ -283,7 +283,7 @@ Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C CryostatisSS src/Dodge/Data/Scenario.hs 91;" C Crystal src/Dodge/Data/Material.hs 16;" C -Cull_more_lights src/Dodge/Data/Config.hs 91;" C +Cull_more_lights src/Dodge/Data/Config.hs 90;" C CursorDisplay src/Dodge/Data/SelectionList.hs 19;" t Cylinder src/Shape/Data.hs 14;" C DETECTOR src/Dodge/Data/Item/Combine.hs 33;" C @@ -307,11 +307,11 @@ DamageType src/Dodge/Data/Damage/Type.hs 3;" t Debris src/Dodge/Data/Prop.hs 25;" t DebrisChunk src/Dodge/Data/Prop.hs 25;" C DebrisType src/Dodge/Data/Prop.hs 21;" t -DebugBool src/Dodge/Data/Config.hs 77;" t +DebugBool src/Dodge/Data/Config.hs 76;" t DebugItem src/Dodge/Data/Universe.hs 59;" t DebugLayer src/Picture/Data.hs 23;" C -Debug_get src/Dodge/Data/Config.hs 80;" C -Debug_put src/Dodge/Data/Config.hs 81;" C +Debug_get src/Dodge/Data/Config.hs 79;" C +Debug_put src/Dodge/Data/Config.hs 80;" C DecorationShape src/Dodge/Data/GenParams.hs 18;" t DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 20;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C @@ -324,7 +324,7 @@ Detector src/Dodge/Data/Item/Combine.hs 181;" t Dirt src/Dodge/Data/Material.hs 12;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t DisplayTerminal src/Dodge/Data/HUD.hs 27;" C -Display_debug src/Dodge/Data/Config.hs 79;" C +Display_debug src/Dodge/Data/Config.hs 78;" C Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C DoActionIf src/Dodge/Data/ActionPlan.hs 87;" C @@ -345,7 +345,7 @@ DoorDoNothing src/Dodge/Data/Door.hs 43;" C DoorLerp src/Dodge/Data/Door.hs 43;" C DoorPart src/Dodge/Data/Wall/Structure.hs 12;" C DoorUpdate src/Dodge/Data/Door.hs 43;" t -DoubleRes src/Dodge/Data/Config.hs 111;" C +DoubleRes src/Dodge/Data/Config.hs 110;" C DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 14;" t DrawForceField src/Dodge/Data/Wall.hs 37;" C DrawnWall src/Dodge/Data/Wall.hs 33;" C @@ -363,7 +363,7 @@ Ears src/Dodge/Data/Creature/Perception.hs 45;" C East src/Dodge/Data/CardinalPoint.hs 8;" C East8 src/Dodge/Data/CardinalPoint.hs 30;" C EdgeObstacle src/Dodge/Data/PathGraph.hs 49;" t -EighthRes src/Dodge/Data/Config.hs 111;" C +EighthRes src/Dodge/Data/Config.hs 110;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C ElectricSensor src/Dodge/Data/Machine/Sensor.hs 14;" C ElectricSpark src/Dodge/Data/Spark.hs 19;" C @@ -452,7 +452,7 @@ ForceField src/Dodge/Data/Material.hs 19;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 12;" t FromEdge src/Dodge/Data/Room.hs 49;" C -FullRes src/Dodge/Data/Config.hs 111;" C +FullRes src/Dodge/Data/Config.hs 110;" C FullShadowFidelity src/Shape/Data.hs 19;" C FullSize src/Dodge/Data/Item/Params.hs 26;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C @@ -480,7 +480,7 @@ GenFloat src/Dodge/Data/GenFloat.hs 9;" t GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 23;" t GenericFaction src/Dodge/Data/Creature/State.hs 13;" C -GeoObjShads src/Dodge/Data/Config.hs 115;" C +GeoObjShads src/Dodge/Data/Config.hs 114;" C GetTo src/Dodge/Data/ActionPlan.hs 141;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C @@ -510,7 +510,7 @@ HOMINGMODULE src/Dodge/Data/Item/Combine.hs 100;" C HOSE src/Dodge/Data/Item/Combine.hs 54;" C HP src/Dodge/Data/Creature.hs 63;" C HUD src/Dodge/Data/HUD.hs 29;" t -HalfRes src/Dodge/Data/Config.hs 111;" C +HalfRes src/Dodge/Data/Config.hs 110;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HardQuit src/Dodge/Data/Universe.hs 70;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C @@ -568,12 +568,12 @@ IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C InheritFloor src/Data/Tile.hs 12;" C Input src/Dodge/Data/Input.hs 33;" t InputScreen src/Dodge/Data/Universe.hs 92;" C -Inspect_wall src/Dodge/Data/Config.hs 105;" C +Inspect_wall src/Dodge/Data/Config.hs 104;" C Institution src/Dodge/Data/Scenario.hs 42;" t Int2 src/Geometry/Data.hs 21;" t IntID src/Dodge/Data/Universe.hs 110;" t Intention src/Dodge/Data/Creature.hs 68;" t -IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C +IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 120;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t InvInt src/Dodge/Data/Item/Location.hs 16;" t @@ -762,7 +762,7 @@ MouseGameRotate src/Dodge/Data/Input.hs 29;" C MouseInGame src/Dodge/Data/Input.hs 16;" C MouseMenuClick src/Dodge/Data/Input.hs 17;" C MouseMenuCursor src/Dodge/Data/Input.hs 18;" C -Mouse_position src/Dodge/Data/Config.hs 86;" C +Mouse_position src/Dodge/Data/Config.hs 85;" C Move src/Dodge/Data/ActionPlan.hs 26;" C MoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C MoveForward src/Dodge/Data/ActionPlan.hs 27;" C @@ -822,20 +822,20 @@ NoItTargeting src/Dodge/Data/Item.hs 44;" C NoItemScroll src/Dodge/Data/Item.hs 39;" C NoItemZone src/Dodge/Data/Machine/Sensor.hs 32;" C NoLightFlare src/Dodge/Data/Muzzle.hs 31;" C -NoLighting src/Dodge/Data/Config.hs 118;" C +NoLighting src/Dodge/Data/Config.hs 117;" C NoMouseContext src/Dodge/Data/Input.hs 14;" C NoMvType src/Dodge/Data/Creature/Misc.hs 27;" C -NoObjShads src/Dodge/Data/Config.hs 116;" C +NoObjShads src/Dodge/Data/Config.hs 115;" C NoParams src/Dodge/Data/Item/Params.hs 13;" C NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 14;" C -NoRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C +NoRoomClipBoundaries src/Dodge/Data/Config.hs 120;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C NoShadowFidelity src/Shape/Data.hs 20;" C -NoShadows src/Dodge/Data/Config.hs 117;" C +NoShadows src/Dodge/Data/Config.hs 116;" C NoSubInventory src/Dodge/Data/HUD.hs 15;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 21;" C -Noclip src/Dodge/Data/Config.hs 83;" C +Noclip src/Dodge/Data/Config.hs 82;" C NodeMTree src/Dodge/Data/MetaTree.hs 16;" C NodeTree src/Dodge/Data/MetaTree.hs 15;" C NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 82;" C @@ -963,7 +963,7 @@ PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 55;" C PathFromEdge src/Dodge/Data/Room.hs 77;" t PathShowType src/Dodge/Data/Universe.hs 54;" t PathTo src/Dodge/Data/ActionPlan.hs 70;" C -Pathing src/Dodge/Data/Config.hs 89;" C +Pathing src/Dodge/Data/Config.hs 88;" C Patrol src/Dodge/Data/ActionPlan.hs 132;" C PausedTimeFlow src/Dodge/Data/World.hs 79;" C Payload src/Dodge/Data/Payload.hs 9;" t @@ -1039,7 +1039,7 @@ PutTrigger src/Dodge/Data/GenWorld.hs 47;" C PutWall src/Dodge/Data/GenWorld.hs 54;" C PutWorldUpdate src/Dodge/Data/GenWorld.hs 58;" C QFloat src/Geometry/Data.hs 50;" t -QuarterRes src/Dodge/Data/Config.hs 111;" C +QuarterRes src/Dodge/Data/Config.hs 110;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C RAM src/Dodge/Data/Item/Combine.hs 73;" C RED src/Color/Data.hs 12;" C @@ -1074,13 +1074,13 @@ Reload src/Dodge/Data/ActionPlan.hs 142;" C RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 27;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 25;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 33;" C -Remove_LOS src/Dodge/Data/Config.hs 90;" C +Remove_LOS src/Dodge/Data/Config.hs 89;" C RenderData src/Data/Preload/Render.hs 13;" t ReplaceEquipment src/Dodge/Data/RightButtonOptions.hs 29;" C RequireDeadCreatures src/Dodge/Data/Machine/Sensor.hs 37;" C RequireEquipment src/Dodge/Data/Machine/Sensor.hs 36;" C RequireHealth src/Dodge/Data/Machine/Sensor.hs 35;" C -ResFactor src/Dodge/Data/Config.hs 111;" t +ResFactor src/Dodge/Data/Config.hs 110;" t ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C RespawnDelay src/Dodge/Data/World.hs 61;" C @@ -1098,7 +1098,7 @@ RocketHoming src/Dodge/Data/Projectile.hs 39;" t RocketSmoke src/Dodge/Data/Projectile.hs 52;" t RocketSmoke src/Dodge/Data/Cloud.hs 22;" C Room src/Dodge/Data/GenWorld.hs 120;" t -RoomClipping src/Dodge/Data/Config.hs 121;" t +RoomClipping src/Dodge/Data/Config.hs 120;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomLink src/Dodge/Data/Room.hs 24;" t RoomLinkType src/Dodge/Data/Room.hs 43;" t @@ -1160,7 +1160,7 @@ ShadNum src/Picture/Data.hs 31;" t 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 114;" t +ShadowRendering src/Dodge/Data/Config.hs 113;" t Shape src/Shape/Data.hs 48;" t ShapeProp src/Dodge/Data/Prop.hs 14;" C ShapeType src/Shape/Data.hs 11;" t @@ -1173,27 +1173,27 @@ ShockwaveDirection src/Dodge/Data/Shockwave.hs 12;" t ShootAt src/Dodge/Data/ActionPlan.hs 133;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t -Show_bound_box src/Dodge/Data/Config.hs 93;" C -Show_dda_test src/Dodge/Data/Config.hs 96;" C -Show_far_wall_detect src/Dodge/Data/Config.hs 99;" C -Show_mouse_click_pos src/Dodge/Data/Config.hs 108;" C -Show_ms_frame src/Dodge/Data/Config.hs 78;" C -Show_path_between src/Dodge/Data/Config.hs 106;" C -Show_sound src/Dodge/Data/Config.hs 82;" C -Show_wall_search_rays src/Dodge/Data/Config.hs 95;" C -Show_walls_near_point_cursor src/Dodge/Data/Config.hs 100;" C -Show_walls_near_point_you src/Dodge/Data/Config.hs 101;" C -Show_walls_near_segment src/Dodge/Data/Config.hs 102;" C -Show_writable_values src/Dodge/Data/Config.hs 107;" C -Show_zone_circ src/Dodge/Data/Config.hs 104;" C -Show_zone_near_point_cursor src/Dodge/Data/Config.hs 103;" C +Show_bound_box src/Dodge/Data/Config.hs 92;" C +Show_dda_test src/Dodge/Data/Config.hs 95;" C +Show_far_wall_detect src/Dodge/Data/Config.hs 98;" C +Show_mouse_click_pos src/Dodge/Data/Config.hs 107;" C +Show_ms_frame src/Dodge/Data/Config.hs 77;" C +Show_path_between src/Dodge/Data/Config.hs 105;" C +Show_sound src/Dodge/Data/Config.hs 81;" C +Show_wall_search_rays src/Dodge/Data/Config.hs 94;" C +Show_walls_near_point_cursor src/Dodge/Data/Config.hs 99;" C +Show_walls_near_point_you src/Dodge/Data/Config.hs 100;" C +Show_walls_near_segment src/Dodge/Data/Config.hs 101;" C +Show_writable_values src/Dodge/Data/Config.hs 106;" C +Show_zone_circ src/Dodge/Data/Config.hs 103;" C +Show_zone_near_point_cursor src/Dodge/Data/Config.hs 102;" C ShrapnelBomb src/Dodge/Data/Payload.hs 10;" C ShrinkGunStatus src/Dodge/Data/Item/Params.hs 26;" t Shrunk src/Dodge/Data/Item/Params.hs 26;" C SideCluster src/Dodge/Data/RoomCluster.hs 13;" C SideEffect src/Dodge/Data/Universe.hs 64;" t SimpleEdge src/Dodge/Data/PathGraph.hs 43;" t -SixteenthRes src/Dodge/Data/Config.hs 111;" C +SixteenthRes src/Dodge/Data/Config.hs 110;" C Size src/Shape/Data.hs 23;" t SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C @@ -1404,7 +1404,7 @@ VIOLET src/Color/Data.hs 19;" C VOLLEYGUN src/Dodge/Data/Item/Combine.hs 151;" C VertexAttribute src/Shader/Data.hs 66;" t Verx src/Picture/Data.hs 11;" t -View_boundaries src/Dodge/Data/Config.hs 87;" C +View_boundaries src/Dodge/Data/Config.hs 86;" C ViewingDeckSS src/Dodge/Data/Scenario.hs 106;" C Vigilance src/Dodge/Data/Creature/Perception.hs 50;" t Vigilant src/Dodge/Data/Creature/Perception.hs 54;" C @@ -1433,7 +1433,7 @@ WallP src/Dodge/LevelGen/StaticWalls/Deprecated.hs 11;" t WallSound src/Dodge/Data/SoundOrigin.hs 24;" C WallStructure src/Dodge/Data/Wall/Structure.hs 10;" t WallWire src/Dodge/Data/Room.hs 55;" C -Walls_info src/Dodge/Data/Config.hs 88;" C +Walls_info src/Dodge/Data/Config.hs 87;" C War src/Dodge/Data/Scenario.hs 28;" C WarmTime src/Dodge/Data/Item/Params.hs 19;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C @@ -1692,8 +1692,8 @@ _dbVel src/Dodge/Data/Prop.hs 28;" f _debris src/Dodge/Data/LWorld.hs 100;" f _debugFunction src/Dodge/Data/Universe.hs 61;" f _debugMessage src/Dodge/Data/Universe.hs 60;" f -_debug_booleans src/Dodge/Data/Config.hs 68;" f -_debug_view_clip_bounds src/Dodge/Data/Config.hs 67;" f +_debug_booleans src/Dodge/Data/Config.hs 67;" f +_debug_view_clip_bounds src/Dodge/Data/Config.hs 66;" f _delayedEvents src/Dodge/Data/LWorld.hs 130;" f _diCloseFilter src/Dodge/Data/HUD.hs 34;" f _diInvFilter src/Dodge/Data/HUD.hs 33;" f @@ -1766,7 +1766,6 @@ _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 -_fbo2 src/Data/Preload/Render.hs 30;" 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 @@ -1797,7 +1796,7 @@ _fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f _fullscreenShader src/Data/Preload/Render.hs 23;" 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 66;" f +_gameplay_rotate_to_wall src/Dodge/Data/Config.hs 65;" f _genInts src/Dodge/Data/GenWorld.hs 27;" f _genPmnt src/Dodge/Data/GenWorld.hs 26;" f _genRooms src/Dodge/Data/GenWorld.hs 25;" f @@ -1819,10 +1818,9 @@ _grViewpoints src/Dodge/GameRoom.hs 13;" f _grViewpointsEx src/Dodge/GameRoom.hs 14;" f _gr_bloom src/Dodge/Data/Config.hs 54;" f _gr_cloud_shadows src/Dodge/Data/Config.hs 52;" f -_gr_distortion_res src/Dodge/Data/Config.hs 60;" f _gr_distortions src/Dodge/Data/Config.hs 53;" f _gr_downsize_res src/Dodge/Data/Config.hs 58;" f -_gr_num_shadow_casters src/Dodge/Data/Config.hs 61;" f +_gr_num_shadow_casters src/Dodge/Data/Config.hs 60;" f _gr_shadow_rendering src/Dodge/Data/Config.hs 55;" f _gr_shadow_size src/Dodge/Data/Config.hs 57;" f _gr_shadows_on_clouds src/Dodge/Data/Config.hs 56;" f @@ -2439,11 +2437,11 @@ _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 47;" f -_windowPosX src/Dodge/Data/Config.hs 64;" f -_windowPosY src/Dodge/Data/Config.hs 65;" 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 -_windowX src/Dodge/Data/Config.hs 62;" f -_windowY src/Dodge/Data/Config.hs 63;" f +_windowX src/Dodge/Data/Config.hs 61;" f +_windowY src/Dodge/Data/Config.hs 62;" f _wlHeight src/Dodge/Data/Wall.hs 25;" f _wlID src/Dodge/Data/Wall.hs 19;" f _wlLine src/Dodge/Data/Wall.hs 18;" f @@ -2512,7 +2510,7 @@ adjustIMZone src/Dodge/Base.hs 81;" f advanceScrollAmount src/Dodge/Update.hs 417;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 60;" f -aimDelaySweep src/Dodge/Render/Picture.hs 287;" f +aimDelaySweep src/Dodge/Render/Picture.hs 285;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimTurn src/Dodge/Creature/YourControl.hs 181;" f airlock src/Dodge/Room/Airlock.hs 28;" f @@ -2552,8 +2550,8 @@ applyMagnetsToBul src/Dodge/Bullet.hs 32;" f applyPastDamages src/Dodge/Creature/State.hs 49;" f applyPosition src/Sound.hs 111;" f applyRecoil src/Dodge/HeldUse.hs 459;" f -applyResFactor src/Dodge/Data/Config.hs 124;" f -applyResFactorF src/Dodge/Data/Config.hs 133;" f +applyResFactor src/Dodge/Data/Config.hs 123;" f +applyResFactorF src/Dodge/Data/Config.hs 132;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 83;" f applySidePush src/Dodge/HeldUse.hs 559;" f applySoundCME src/Dodge/HeldUse.hs 449;" f @@ -2708,7 +2706,7 @@ brightX src/Color.hs 116;" f btSPic src/Dodge/Render/ShapePicture.hs 129;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 394;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 393;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2720,7 +2718,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 139;" f +cChasm src/Dodge/Room/Tutorial.hs 114;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2755,7 +2753,7 @@ chaseCritInternal src/Dodge/Humanoid.hs 8;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 208;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 183;" f chasmTest src/Dodge/Creature/Update.hs 132;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2885,7 +2883,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 229;" f +cornerList src/Preload/Render.hs 227;" f corpseOrGib src/Dodge/Creature/Update.hs 111;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -3035,7 +3033,7 @@ 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 145;" f -debugOn src/Dodge/Data/Config.hs 175;" f +debugOn src/Dodge/Data/Config.hs 173;" f debugPutDraw src/Dodge/Debug.hs 95;" f debugPutItems src/Dodge/Debug.hs 78;" f debugPutN src/Dodge/Debug.hs 84;" f @@ -3069,7 +3067,7 @@ defaultCWGen src/Dodge/Default/World.hs 59;" f defaultCWorld src/Dodge/Default/World.hs 84;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f -defaultConfig src/Dodge/Data/Config.hs 150;" f +defaultConfig src/Dodge/Data/Config.hs 149;" f defaultCraftItem src/Dodge/Default/Item.hs 25;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f @@ -3132,9 +3130,9 @@ 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 -displayConfig src/Dodge/Menu.hs 225;" f -displayControls src/Dodge/Menu.hs 241;" f -displayFrameTicks src/Dodge/Render/Picture.hs 51;" f +displayConfig src/Dodge/Menu.hs 224;" f +displayControls src/Dodge/Menu.hs 240;" f +displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f @@ -3230,10 +3228,10 @@ doublePairSet src/Geometry.hs 166;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 129;" f doubleV2 src/Geometry.hs 169;" f drawARHUD src/Dodge/Creature/State.hs 193;" f -drawAimSweep src/Dodge/Render/Picture.hs 294;" f +drawAimSweep src/Dodge/Render/Picture.hs 292;" f drawAllShadows src/Dodge/Shadows.hs 5;" f -drawAnySelectionBox src/Dodge/Render/Picture.hs 132;" f -drawArrowDown src/Dodge/Render/Picture.hs 221;" f +drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f +drawArrowDown src/Dodge/Render/Picture.hs 219;" f drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBoundingBox src/Dodge/Debug/Picture.hs 358;" f @@ -3244,9 +3242,9 @@ drawChasm src/Dodge/Render/ShapePicture.hs 52;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 55;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombFilter src/Dodge/Render/Picture.hs 269;" f +drawCombFilter src/Dodge/Render/Picture.hs 267;" f drawCombineInventory src/Dodge/Render/HUD.hs 183;" f -drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f +drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f drawCoord src/Dodge/Debug/Picture.hs 386;" f drawCountMod src/Shader.hs 20;" f drawCrInfo src/Dodge/Debug.hs 169;" f @@ -3256,17 +3254,17 @@ drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 72;" f -drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f +drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 137;" f drawDDATest src/Dodge/Debug/Picture.hs 303;" f drawDamSensor src/Dodge/Machine/Draw.hs 27;" 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 -drawDragSelect src/Dodge/Render/Picture.hs 197;" f +drawDrag src/Dodge/Render/Picture.hs 198;" f +drawDragDrop src/Dodge/Render/Picture.hs 227;" f +drawDragPickup src/Dodge/Render/Picture.hs 236;" f +drawDragSelect src/Dodge/Render/Picture.hs 195;" f drawDragSelected src/Dodge/Render/HUD.hs 137;" f drawDragSelecting src/Dodge/Render/HUD.hs 154;" f -drawEmptySet src/Dodge/Render/Picture.hs 153;" f +drawEmptySet src/Dodge/Render/Picture.hs 151;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 128;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f @@ -3275,7 +3273,7 @@ drawFarWallDetect src/Dodge/Debug/Picture.hs 270;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 34;" f drawForceField src/Dodge/Wall/Draw.hs 15;" f -drawGapPlus src/Dodge/Render/Picture.hs 280;" f +drawGapPlus src/Dodge/Render/Picture.hs 278;" f drawGib src/Dodge/Prop/Draw.hs 26;" f drawHUD src/Dodge/Render/HUD.hs 52;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f @@ -3284,7 +3282,7 @@ drawInspectWalls src/Dodge/Debug/Picture.hs 243;" f drawInventory src/Dodge/Render/HUD.hs 59;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 330;" f drawItemConnections src/Dodge/Render/HUD.hs 320;" f -drawJumpDown src/Dodge/Render/Picture.hs 192;" f +drawJumpDown src/Dodge/Render/Picture.hs 190;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLabelledList src/Dodge/Render/List.hs 212;" f drawLaser src/Dodge/Laser/Update.hs 29;" f @@ -3297,31 +3295,31 @@ drawListYoff src/Dodge/Render/List.hs 93;" f drawMachine src/Dodge/Machine/Draw.hs 16;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f drawMapperInventory src/Dodge/Render/HUD.hs 174;" f -drawMenuClick src/Dodge/Render/Picture.hs 168;" f -drawMenuCursor src/Dodge/Render/Picture.hs 180;" f -drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f +drawMenuClick src/Dodge/Render/Picture.hs 166;" f +drawMenuCursor src/Dodge/Render/Picture.hs 178;" f +drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f -drawMouseCursor src/Dodge/Render/Picture.hs 85;" f +drawMouseCursor src/Dodge/Render/Picture.hs 83;" f drawMouseOver src/Dodge/Render/HUD.hs 110;" f drawMousePosition src/Dodge/Debug/Picture.hs 376;" f drawOptions src/Dodge/Render/MenuScreen.hs 22;" f drawPathBetween src/Dodge/Debug/Picture.hs 202;" f drawPathEdge src/Dodge/Debug/Picture.hs 260;" f drawPathing src/Dodge/Debug/Picture.hs 407;" f -drawPlus src/Dodge/Render/Picture.hs 165;" f +drawPlus src/Dodge/Render/Picture.hs 163;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" 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 +drawQuitTerminal src/Dodge/Render/Picture.hs 145;" f drawRBOptions src/Dodge/Render/HUD.hs 252;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f -drawReturn src/Dodge/Render/Picture.hs 156;" f +drawReturn src/Dodge/Render/Picture.hs 154;" f drawRootCursor src/Dodge/Render/HUD.hs 77;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f -drawSelect src/Dodge/Render/Picture.hs 257;" f +drawSelect src/Dodge/Render/Picture.hs 255;" f drawSelectionList src/Dodge/Render/List.hs 36;" f drawSelectionListBackground src/Dodge/Render/List.hs 52;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 16;" f @@ -3342,7 +3340,7 @@ drawTitle src/Dodge/Render/MenuScreen.hs 35;" f drawTitleBackground src/Dodge/Render/List.hs 45;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 76;" f -drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 212;" f +drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 210;" f drawWall src/Dodge/Wall/Draw.hs 11;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f drawWallSearchRays src/Dodge/Debug/Picture.hs 322;" f @@ -3448,7 +3446,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 85;" f +ffoldM src/Framebuffer/Update.hs 78;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3497,7 +3495,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 84;" 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 @@ -3510,7 +3508,7 @@ forceField src/Dodge/Wall/ForceField.hs 6;" f forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f -fpsText src/Dodge/Render/Picture.hs 59;" 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 @@ -3529,7 +3527,7 @@ g src/ShortShow.hs 48;" f gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 11;" f gadgetEffect src/Dodge/HeldUse.hs 47;" f -gameOverMenu src/Dodge/Menu.hs 202;" f +gameOverMenu src/Dodge/Menu.hs 201;" f gameRoomFromRoom src/Dodge/Layout.hs 152;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f @@ -3557,10 +3555,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 357;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" 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 406;" f +getDistortions src/Dodge/Render.hs 405;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3575,7 +3573,7 @@ getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 340;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 315;" f getRootItemBounds src/Dodge/Render/HUD.hs 101;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3711,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 250;" f +initializeGLState src/Preload/Render.hs 248;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f -initializeTexture2D src/Framebuffer/Update.hs 214;" f +initializeTexture2D src/Framebuffer/Update.hs 207;" f inorderNumberTree src/TreeHelp.hs 190;" f insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f @@ -3889,7 +3887,7 @@ 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 -lChasm src/Dodge/Room/Tutorial.hs 148;" 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 @@ -3950,8 +3948,8 @@ lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 150;" f linksDAGToPath src/Dodge/Room/Path.hs 13;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f -listConfig src/Dodge/Menu.hs 234;" f -listControls src/Dodge/Menu.hs 246;" f +listConfig src/Dodge/Menu.hs 233;" f +listControls src/Dodge/Menu.hs 245;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 196;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f @@ -4129,7 +4127,7 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 11;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 171;" f +midChasm src/Dodge/Room/Tutorial.hs 146;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4165,7 +4163,7 @@ mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 143;" f mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 148;" f modTo src/Geometry/Zone.hs 18;" f mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f -mouseCursorType src/Dodge/Render/Picture.hs 92;" f +mouseCursorType src/Dodge/Render/Picture.hs 90;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 37;" f moveBullet src/Dodge/Bullet.hs 197;" f moveCombineSel src/Dodge/Update/Scroll.hs 121;" f @@ -4407,8 +4405,8 @@ pokeWall src/Shader/Poke.hs 79;" f pokeWallsWindows src/Shader/Poke.hs 51;" f poly3 src/Picture/Base.hs 84;" f poly3Col src/Picture/Base.hs 88;" f -polyChasm src/Dodge/Room/Tutorial.hs 192;" f -polyChasmC src/Dodge/Room/Tutorial.hs 201;" f +polyChasm src/Dodge/Room/Tutorial.hs 167;" f +polyChasmC src/Dodge/Room/Tutorial.hs 176;" f polyCirc src/Shape.hs 46;" f polyCircx src/Shape.hs 51;" f polyCornerDist src/Geometry/Polygon.hs 61;" f @@ -4430,8 +4428,8 @@ posRms src/Dodge/Tree/Shift.hs 44;" f posSelSecYint src/Dodge/SelectionSections.hs 147;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 30;" f -postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 12;" f -postWorldLoad src/Dodge/WorldLoad.hs 17;" f +postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 13;" f +postWorldLoad src/Dodge/WorldLoad.hs 18;" f powerFakeout src/Dodge/Room/Start.hs 28;" f powerFakeout' src/Dodge/Room/Start.hs 25;" f powerLegs src/Dodge/Item/Equipment.hs 85;" f @@ -4556,7 +4554,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 389;" f +rdToVec2s src/Dodge/Render.hs 388;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4574,9 +4572,9 @@ reflectAngle src/Geometry.hs 142;" f reflectIn src/Geometry.hs 136;" f reflectInNormal src/Geometry/Vector.hs 217;" f reflectInParam src/Geometry.hs 230;" f -reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 19;" f -reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 62;" f -refract src/Dodge/Item/Weapon/LaserPath.hs 36;" f +reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 20;" f +reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 65;" f +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 @@ -4590,7 +4588,7 @@ 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 257;" f +removeLights src/Dodge/Room/Tutorial.hs 232;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f @@ -4607,10 +4605,10 @@ 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 196;" f -resizeFBOTO2 src/Framebuffer/Update.hs 144;" f -resizeFBOTO3 src/Framebuffer/Update.hs 168;" f -resizeRBO src/Framebuffer/Update.hs 88;" 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 respawn src/Dodge/SpawnAt.hs 12;" f restrictInLinks src/Dodge/RoomLink.hs 44;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f @@ -4770,7 +4768,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 366;" f +sensorTut src/Dodge/Room/Tutorial.hs 341;" f sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4797,7 +4795,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 91;" f +setRoomInt src/Dodge/Room/Tutorial.hs 66;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 121;" f @@ -4806,10 +4804,10 @@ setSoundVolume src/Sound.hs 157;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f -setTreeInts src/Dodge/Room/Tutorial.hs 98;" 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 411;" f +setViewport src/Dodge/Render.hs 410;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -5230,12 +5228,12 @@ 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 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 +tutDrop src/Dodge/Room/Tutorial.hs 78;" f +tutHub src/Dodge/Room/Tutorial.hs 239;" f +tutLight src/Dodge/Room/Tutorial.hs 204;" f +tutRezBox src/Dodge/Room/Tutorial.hs 352;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 401;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 376;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5255,7 +5253,7 @@ unfoldrMID src/MonadHelp.hs 33;" f unigate src/Dodge/Item/Scope.hs 102;" f unitVectorAtAngle src/Geometry/Vector.hs 101;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f -unpause src/Dodge/Menu.hs 207;" f +unpause src/Dodge/Menu.hs 206;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 58;" f unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f unsafeSwapKeys src/IntMapHelp.hs 75;" f @@ -5306,9 +5304,9 @@ updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 658;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f -updateFBOTO src/Framebuffer/Update.hs 91;" f -updateFBOTO2 src/Framebuffer/Update.hs 108;" f -updateFBOTO3 src/Framebuffer/Update.hs 125;" f +updateFBOTO src/Framebuffer/Update.hs 84;" f +updateFBOTO2 src/Framebuffer/Update.hs 101;" f +updateFBOTO3 src/Framebuffer/Update.hs 118;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 655;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f @@ -5498,8 +5496,8 @@ whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f winConfig appDodge/Main.hs 56;" f windowLine src/Dodge/Placement/Instance/Wall.hs 59;" f -windowXFloat src/Dodge/Data/Config.hs 72;" f -windowYFloat src/Dodge/Data/Config.hs 74;" f +windowXFloat src/Dodge/Data/Config.hs 71;" f +windowYFloat src/Dodge/Data/Config.hs 73;" f withAlpha src/Color.hs 10;" f withByteString src/Shader/Compile.hs 157;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f @@ -5550,7 +5548,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 158;" f +zChasm src/Dodge/Room/Tutorial.hs 133;" 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