From 74c02291c13266c92747fdc555849a99c15bd715 Mon Sep 17 00:00:00 2001 From: justin Date: Sun, 23 Nov 2025 00:24:14 +0000 Subject: [PATCH] Quick hack to make window rendering passable Before windows drew even on black backgrounds --- src/Dodge/Material/Color.hs | 2 +- src/Dodge/Placement/Instance/Door.hs | 8 +- src/Dodge/Placement/PlaceSpot.hs | 33 +++---- src/Dodge/Render.hs | 8 +- src/Dodge/Update.hs | 13 +-- src/Dodge/Update/WallDamage.hs | 1 + tags | 134 +++++++++++++-------------- 7 files changed, 93 insertions(+), 106 deletions(-) diff --git a/src/Dodge/Material/Color.hs b/src/Dodge/Material/Color.hs index 1a651b3a2..8d11a84cc 100644 --- a/src/Dodge/Material/Color.hs +++ b/src/Dodge/Material/Color.hs @@ -10,7 +10,7 @@ materialColor = \case Wood -> dark yellow Dirt -> dark $ dark orange Stone -> greyN 0.5 - Glass -> white + Glass -> aquamarine Metal -> orange Crystal -> green Flesh -> red diff --git a/src/Dodge/Placement/Instance/Door.hs b/src/Dodge/Placement/Instance/Door.hs index 4555c52ca..0722efe8f 100644 --- a/src/Dodge/Placement/Instance/Door.hs +++ b/src/Dodge/Placement/Instance/Door.hs @@ -14,13 +14,7 @@ import Dodge.LevelGen.PlacementHelper import Geometry import Linear -putDoubleDoor :: - Wall -> - WdBl -> - Point2 -> - Point2 -> - Float -> - Placement +putDoubleDoor :: Wall -> WdBl -> Point2 -> Point2 -> Float -> Placement putDoubleDoor wl cond a b speed = putDoubleDoorThen wl cond 1 a b speed (const $ const Nothing) diff --git a/src/Dodge/Placement/PlaceSpot.hs b/src/Dodge/Placement/PlaceSpot.hs index 816674394..3e5e45f81 100644 --- a/src/Dodge/Placement/PlaceSpot.hs +++ b/src/Dodge/Placement/PlaceSpot.hs @@ -6,7 +6,6 @@ -} module Dodge.Placement.PlaceSpot (placeSpot) where -import Dodge.Placement.PlaceSpot.Block import Control.Monad.State import Data.Bifunctor import Data.Foldable @@ -17,6 +16,7 @@ import Dodge.Base.NewID import Dodge.Data.GenWorld import Dodge.Default.Wall import Dodge.Path +import Dodge.Placement.PlaceSpot.Block import Dodge.Placement.PlaceSpot.TriggerDoor import Dodge.Placement.Shift import Dodge.ShiftPoint @@ -32,11 +32,10 @@ import NewInt -- to the placement. This id should be associated with the type of placement and -- match up with the created id for the object (creature id, flitid id, etc) placeSpot :: Int -> GenWorld -> Placement -> GenWorld -placeSpot rid w plmnt = case plmnt of - Placement{_plSpot = PSRoomRand i f} -> placeSpotRoomRand rid i f plmnt w - Placement{_plSpot = PSPos extract eff fallback} -> - placeSpotUsingLink w rid plmnt extract eff fallback - Placement{} -> placePlainPSSpot w rid plmnt shift +placeSpot rid w plmnt = case plmnt ^. plSpot of + PSRoomRand i f -> placeSpotRoomRand rid i f plmnt w + PSPos extract eff fallback -> placeSpotUsingLink w rid plmnt extract eff fallback + _ -> placePlainPSSpot w rid plmnt shift where shift = _rmShift $ w ^?! genRooms . ix rid @@ -126,7 +125,7 @@ placeSpotID rid ps pt w = case pt of ) PutCrit cr -> plNewUpID (gwWorld . cWorld . lWorld . creatures) crID (mvCr p rot cr) w PutForeground fs -> - (0, w & gwWorld . cWorld . lWorld . foreShapes .:~ mvFS p rot fs) + (0, w & gwWorld . cWorld . lWorld . foreShapes .:~ mvFS p rot fs) PutMachine pps mc mitm -> plMachine (map doShift pps) mc mitm p rot w PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w @@ -161,15 +160,8 @@ placeChasm gw rid ps shiftps = f w = foldl' g w (loopPairs shiftps) g w (x, y) = obstructPathsCrossing (S.singleton ChasmObstacle) x y w ---evaluateRandPS --- :: Int -> State StdGen PSType -> PlacementSpot -> GenWorld -> (Int, GenWorld) ---evaluateRandPS rid rgen ps w = placeSpotID rid ps evaluatedType --- $ set (gwWorld . randGen) g w --- where --- (evaluatedType, g) = runState rgen (_randGen $ _gwWorld w) - placeWallPoly :: [Point2] -> Wall -> World -> World -placeWallPoly qs wl w +placeWallPoly qs wl w | (p : ps) <- orderPolygon qs = foldl' (addPane wl) w $ zip (ps ++ [p]) (p : ps) | otherwise = error "tried to place wall poly with too few points" @@ -185,11 +177,10 @@ mvButton :: Point2 -> Float -> Button -> Button mvButton p a = (btRot +~ a) . (btPos %~ ((p +.+) . rotateV a)) mvCr :: Point2 -> Float -> Creature -> Creature -mvCr p rot cr = - cr - & crPos . _xy .~ p - & crOldPos . _xy .~ p - & crDir .~ rot +mvCr p rot = + (crPos . _xy .~ p) + . (crOldPos . _xy .~ p) + . (crDir .~ rot) mvFS :: Point2 -> Float -> ForegroundShape -> ForegroundShape mvFS p a = (fsDir +~ a) . (fsPos %~ ((p +.+) . rotateV a)) @@ -227,6 +218,6 @@ placeMachineWalls poly mcid = insertStructureWalls MachinePart baseWall poly mci baseWall = defaultMachineWall & wlStructure . wsMachine .~ mcid mvLS :: Point3 -> Float -> LightSource -> LightSource -mvLS (V3 x y z) rot ls = ls & lsParam . lsPos .~ V3 x y z +.+.+ startPos +mvLS (V3 x y z) rot ls = ls & lsParam . lsPos .~ V3 x y z + startPos where startPos = onXY (rotateV rot) $ _lsPos (_lsParam ls) diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 3d43100c3..d32638e8d 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -301,7 +301,7 @@ doDrawing' win pdata u = do glClearNamedFramebufferfv (pdata ^. fboWindow . _1 . unFBO) GL_COLOR 0 withArray [0, 0, 0, 0] $ glClearNamedFramebufferfv (pdata ^. fboWindow . _1 . unFBO) GL_COLOR 1 - glEnable GL_CULL_FACE +-- glEnable GL_CULL_FACE glEnable GL_DEPTH_CLAMP glDepthFunc GL_LEQUAL glDepthMask GL_FALSE @@ -311,10 +311,11 @@ doDrawing' win pdata u = do -- with all source alphas 0.25, alpha -> 0.5 glBlendFunc GL_ONE_MINUS_DST_ALPHA GL_ONE_MINUS_SRC_ALPHA glUseProgram $ pdata ^. windowPullShader + glDrawArrays GL_TRIANGLES 0 (fromIntegral nWins * 12) -- don't need cloud postions any more withArray [GL_COLOR_ATTACHMENT0] $ glInvalidateNamedFramebufferData (pdata ^. fboPos . _1 . unFBO) 1 - glDrawArrays GL_TRIANGLES 0 (fromIntegral nWins * 12) + glEnable GL_CULL_FACE glDisable GL_DEPTH_CLAMP --apply lightmap to cloud buffer glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboCloud pdata))) @@ -332,10 +333,13 @@ doDrawing' win pdata u = do glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) glUseProgram (pdata ^. fullscreenShader) glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _2 . unTO) + glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA glDrawArrays GL_TRIANGLES 0 6 glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO) + glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA glDrawArrays GL_TRIANGLES 0 6 glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _1 . unTO) + glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA glDrawArrays GL_TRIANGLES 0 6 --Draw blurred bloom onto base buffer diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index b422c9a97..be01bcf3a 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -387,12 +387,9 @@ getMenuMouseContext :: ScreenLayer -> Universe -> MouseContext getMenuMouseContext screen u = case screen ^. scOptions of [] -> NoMouseContext _ -> fromMaybe MouseMenuCursor $ do - ymax <- length <$> screen ^? scSelectionList yi <- ldpSelection (u ^. uvConfig) menuLDP (u ^. uvWorld . input . mousePos) - guard (yi >= 0 && yi < ymax) - return $ case screen ^? scSelectionList . ix yi . siIsSelectable of - Just True -> MouseMenuClick yi - _ -> NoMouseContext + t <- screen ^? scSelectionList . ix yi . siIsSelectable + return $ if t then MouseMenuClick yi else NoMouseContext isOverTerminalScreen :: Config -> Point2 -> Bool isOverTerminalScreen cfig (V2 x y) = @@ -410,9 +407,9 @@ isOverTerminalScreen cfig (V2 x y) = xmax = xmin + 555 -- HACK drawSelectionListBackground updateWheelEvents :: World -> World -updateWheelEvents w - | 0 <- w ^. input . scrollAmount = w - | yi <- w ^. input . scrollAmount = updateWheelEvent yi w +updateWheelEvents w = case w ^. input . scrollAmount of + 0 -> w + yi -> updateWheelEvent yi w advanceScrollAmount :: Universe -> Universe advanceScrollAmount = diff --git a/src/Dodge/Update/WallDamage.hs b/src/Dodge/Update/WallDamage.hs index 590f72323..a6c1a770d 100644 --- a/src/Dodge/Update/WallDamage.hs +++ b/src/Dodge/Update/WallDamage.hs @@ -19,6 +19,7 @@ updateWallDamages w = set (cWorld . lWorld . wallDamages) mempty where f (k,dams) w' = foldrM (damageWall k) w' dams +-- the hack is to force the pathing incidence graph updateEdgesWall :: S.Set Int2 -> World -> World updateEdgesWall is w = hack $ diff --git a/tags b/tags index d11b15305..6715ac755 100644 --- a/tags +++ b/tags @@ -2494,7 +2494,7 @@ addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f addIndefiniteArticle src/StringHelp.hs 17;" f addNodesCrossing src/Dodge/Room/Path.hs 22;" f -addPane src/Dodge/Placement/PlaceSpot.hs 176;" f +addPane src/Dodge/Placement/PlaceSpot.hs 168;" f addPointPolygon src/Geometry/Polygon.hs 134;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f @@ -2507,7 +2507,7 @@ addToTrunk src/TreeHelp.hs 157;" f addWarningTerminal src/Dodge/Room/Warning.hs 61;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 417;" f +advanceScrollAmount src/Dodge/Update.hs 414;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 60;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f @@ -2760,7 +2760,7 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 70;" f checkDeath' src/Dodge/Creature/Update.hs 73;" f -checkEndGame src/Dodge/Update.hs 766;" f +checkEndGame src/Dodge/Update.hs 763;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -2789,7 +2789,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f 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 839;" f +clClSpringVel src/Dodge/Update.hs 836;" f clColor src/Shader/Poke/Cloud.hs 37;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 146;" f @@ -2815,7 +2815,7 @@ closeObjectInfo src/Dodge/Render/HUD.hs 227;" f closestPointOnLine src/Geometry/Intersect.hs 272;" f closestPointOnLineParam src/Geometry/Intersect.hs 288;" f closestPointOnSeg src/Geometry/Intersect.hs 303;" f -cloudEffect src/Dodge/Update.hs 791;" f +cloudEffect src/Dodge/Update.hs 788;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 11;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -2894,7 +2894,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f -crCrSpring src/Dodge/Update.hs 868;" f +crCrSpring src/Dodge/Update.hs 865;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f @@ -2925,7 +2925,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 865;" f +crSpring src/Dodge/Update.hs 862;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 63;" f @@ -3136,12 +3136,12 @@ 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 -displayTerminalLineString src/Dodge/Update.hs 481;" f +displayTerminalLineString src/Dodge/Update.hs 478;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 8;" f divideCircle src/Geometry.hs 321;" f -divideDoorPane src/Dodge/Placement/Instance/Door.hs 71;" f +divideDoorPane src/Dodge/Placement/Instance/Door.hs 65;" f divideLine src/Geometry.hs 248;" f divideLineExact src/Geometry.hs 276;" f divideLineOddNumPoints src/Geometry.hs 261;" f @@ -3211,10 +3211,10 @@ doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f doWdWd src/Dodge/WorldEffect.hs 28;" f -doWorldEvents src/Dodge/Update.hs 426;" f +doWorldEvents src/Dodge/Update.hs 423;" 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 +doorBetween src/Dodge/Placement/Instance/Door.hs 38;" f doorLerp src/Dodge/Door.hs 40;" f dotV src/Geometry/Vector.hs 76;" f dotV3 src/Geometry/Vector3D.hs 119;" f @@ -3376,7 +3376,7 @@ 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 44;" f -dustSpringVel src/Dodge/Update.hs 850;" f +dustSpringVel src/Dodge/Update.hs 847;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3803,7 +3803,7 @@ isNHS src/Geometry/Intersect.hs 53;" f isNothing' src/MaybeHelp.hs 31;" f isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f -isOverTerminalScreen src/Dodge/Update.hs 397;" f +isOverTerminalScreen src/Dodge/Update.hs 394;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 132;" f isRHS src/Geometry/LHS.hs 32;" f @@ -4191,16 +4191,16 @@ muout src/Dodge/RoomLink.hs 144;" f muzFlareAt src/Dodge/HeldUse.hs 678;" f muzzlePos src/Dodge/HeldUse.hs 769;" f muzzleRandPos src/Dodge/HeldUse.hs 778;" f -mvButton src/Dodge/Placement/PlaceSpot.hs 184;" f -mvCr src/Dodge/Placement/PlaceSpot.hs 187;" f -mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f -mvGust src/Dodge/Update.hs 782;" f -mvLS src/Dodge/Placement/PlaceSpot.hs 229;" f +mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f +mvCr src/Dodge/Placement/PlaceSpot.hs 179;" f +mvFS src/Dodge/Placement/PlaceSpot.hs 185;" f +mvGust src/Dodge/Update.hs 779;" f +mvLS src/Dodge/Placement/PlaceSpot.hs 220;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointToward src/Dodge/Base.hs 136;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f -mvProp src/Dodge/Placement/PlaceSpot.hs 181;" f +mvProp src/Dodge/Placement/PlaceSpot.hs 173;" f myIntersectLineLine src/Geometry/Intersect.hs 198;" f myIntersectSegSeg src/Geometry/Intersect.hs 176;" f myParams src/Dodge/Combine/Graph.hs 101;" f @@ -4308,7 +4308,7 @@ pauseMenu src/Dodge/Menu.hs 59;" f pauseMenuOptions src/Dodge/Menu.hs 66;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 182;" f -pbFlicker src/Dodge/Update.hs 467;" f +pbFlicker src/Dodge/Update.hs 464;" 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 @@ -4338,20 +4338,20 @@ pjRemoteSetDirection src/Dodge/Projectile/Update.hs 173;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 53;" f -plMachine src/Dodge/Placement/PlaceSpot.hs 197;" f +plMachine src/Dodge/Placement/PlaceSpot.hs 188;" f plNew src/Dodge/Base/NewID.hs 19;" f plNewID src/Dodge/Base/NewID.hs 7;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f -placeChasm src/Dodge/Placement/PlaceSpot.hs 155;" f -placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 224;" f -placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f +placeChasm src/Dodge/Placement/PlaceSpot.hs 154;" f +placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 215;" f +placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 42;" f placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f -placeSpotID src/Dodge/Placement/PlaceSpot.hs 105;" f -placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f -placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 68;" f -placeWallPoly src/Dodge/Placement/PlaceSpot.hs 171;" f +placeSpotID src/Dodge/Placement/PlaceSpot.hs 104;" f +placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f +placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 67;" f +placeWallPoly src/Dodge/Placement/PlaceSpot.hs 163;" f plainRegex src/Dodge/DisplayInventory.hs 189;" f playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f @@ -4483,13 +4483,13 @@ pushOutFromWall src/Dodge/WallCreatureCollisions.hs 101;" f pushOutFromWalls src/Dodge/WallCreatureCollisions.hs 64;" f pushR src/DoubleStack.hs 24;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f -putAutoDoor src/Dodge/Placement/Instance/Door.hs 93;" f +putAutoDoor src/Dodge/Placement/Instance/Door.hs 87;" f putBlockN src/Dodge/Placement/Instance/Wall.hs 164;" f putBlockRect src/Dodge/Placement/Instance/Wall.hs 148;" f putBlockV src/Dodge/Placement/Instance/Wall.hs 151;" f putDoor src/Dodge/Room/Airlock.hs 114;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f -putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 27;" f +putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 65;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f @@ -4539,7 +4539,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f -randWallReflect src/Dodge/Update.hs 641;" f +randWallReflect src/Dodge/Update.hs 638;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f @@ -4791,7 +4791,7 @@ setLinkType src/Dodge/RoomLink.hs 78;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f -setOldPos src/Dodge/Update.hs 500;" f +setOldPos src/Dodge/Update.hs 497;" f setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f @@ -4891,7 +4891,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 859;" f +simpleCrSprings src/Dodge/Update.hs 856;" f simpleTermMessage src/Dodge/Terminal.hs 164;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f @@ -5129,7 +5129,7 @@ titleOptionsMenu src/Dodge/Menu.hs 106;" f titleOptionsNoWrite src/Dodge/Menu.hs 109;" f tlDoEffect src/Dodge/Terminal.hs 102;" f tlSetStatus src/Dodge/Terminal.hs 99;" f -tmUpdate src/Dodge/Update.hs 484;" f +tmUpdate src/Dodge/Update.hs 481;" f toBinary src/Dodge/Inventory/SelectionList.hs 141;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -5275,47 +5275,47 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 263;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 563;" f +updateBullets src/Dodge/Update.hs 560;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f -updateCloud src/Dodge/Update.hs 796;" f -updateClouds src/Dodge/Update.hs 667;" f +updateCloud src/Dodge/Update.hs 793;" f +updateClouds src/Dodge/Update.hs 664;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 32;" f updateCreature' src/Dodge/Creature/Update.hs 41;" f -updateCreatureGroups src/Dodge/Update.hs 535;" f -updateCreatureSoundPositions src/Dodge/Update.hs 514;" f -updateDebris src/Dodge/Update.hs 570;" f +updateCreatureGroups src/Dodge/Update.hs 532;" f +updateCreatureSoundPositions src/Dodge/Update.hs 511;" f +updateDebris src/Dodge/Update.hs 567;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f -updateDelayedEvents src/Dodge/Update.hs 888;" f +updateDelayedEvents src/Dodge/Update.hs 885;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 556;" f +updateDistortions src/Dodge/Update.hs 553;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 308;" f -updateDust src/Dodge/Update.hs 820;" f -updateDusts src/Dodge/Update.hs 670;" f +updateDust src/Dodge/Update.hs 817;" f +updateDusts src/Dodge/Update.hs 667;" f updateEdge src/Dodge/Path.hs 43;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 38;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 22;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 35;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 658;" f +updateEnergyBalls src/Dodge/Update.hs 655;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFBOTO src/Framebuffer/Update.hs 84;" f updateFBOTO2 src/Framebuffer/Update.hs 101;" f updateFBOTO3 src/Framebuffer/Update.hs 118;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 655;" f +updateFlames src/Dodge/Update.hs 652;" 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 779;" f -updateIMl src/Dodge/Update.hs 529;" f -updateIMl' src/Dodge/Update.hs 532;" f +updateGusts src/Dodge/Update.hs 776;" f +updateIMl src/Dodge/Update.hs 526;" f +updateIMl' src/Dodge/Update.hs 529;" f updateInGameCamera src/Dodge/Update/Camera.hs 84;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5328,7 +5328,7 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 405;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 433;" f +updateLasers src/Dodge/Update.hs 430;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 441;" f @@ -5340,20 +5340,20 @@ updateMouseContextGame src/Dodge/Update.hs 329;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 166;" f -updateObjCatMaybes src/Dodge/Update.hs 547;" f -updateObjMapMaybe src/Dodge/Update.hs 540;" f -updatePastWorlds src/Dodge/Update.hs 422;" f +updateObjCatMaybes src/Dodge/Update.hs 544;" f +updateObjMapMaybe src/Dodge/Update.hs 537;" f +updatePastWorlds src/Dodge/Update.hs 419;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 123;" f -updatePulseBall src/Dodge/Update.hs 447;" f -updatePulseLaser src/Dodge/Update.hs 610;" f -updatePulseLasers src/Dodge/Update.hs 442;" f +updatePulseBall src/Dodge/Update.hs 444;" f +updatePulseLaser src/Dodge/Update.hs 607;" f +updatePulseLasers src/Dodge/Update.hs 439;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 559;" f +updateRadarBlips src/Dodge/Update.hs 556;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 661;" f +updateRadarSweeps src/Dodge/Update.hs 658;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 113;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f @@ -5363,16 +5363,16 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 258;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 237;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 652;" f +updateShockwaves src/Dodge/Update.hs 649;" f updateSingleNodes src/TreeHelp.hs 98;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 664;" f -updateTeslaArc src/Dodge/Update.hs 580;" f -updateTeslaArcs src/Dodge/Update.hs 577;" f +updateSparks src/Dodge/Update.hs 661;" f +updateTeslaArc src/Dodge/Update.hs 577;" f +updateTeslaArcs src/Dodge/Update.hs 574;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 649;" f +updateTractorBeams src/Dodge/Update.hs 646;" f updateTurret src/Dodge/Machine/Update.hs 49;" f updateUniverse src/Dodge/Update.hs 74;" f updateUniverseFirst src/Dodge/Update.hs 85;" f @@ -5383,7 +5383,7 @@ 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 updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f -updateWheelEvents src/Dodge/Update.hs 412;" f +updateWheelEvents src/Dodge/Update.hs 409;" f updateWorldEventFlag src/Dodge/Update.hs 120;" f updateWorldEventFlags src/Dodge/Update.hs 108;" f upperBody src/Dodge/Creature/Picture.hs 121;" f @@ -5557,11 +5557,11 @@ zeroZ src/Geometry/Vector.hs 9;" f 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 474;" f +zoneClouds src/Dodge/Update.hs 471;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 510;" f +zoneCreatures src/Dodge/Update.hs 507;" f zoneDust src/Dodge/Zoning/Cloud.hs 48;" f -zoneDusts src/Dodge/Update.hs 478;" f +zoneDusts src/Dodge/Update.hs 475;" f zoneExtract src/Dodge/Zoning/Base.hs 58;" f zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f zoneMonoid src/Dodge/Zoning/Base.hs 85;" f