From ac09ed66290ae9d4bfdf58a2dd79e86259c9177d Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 27 Mar 2026 00:33:19 +0000 Subject: [PATCH] Improve carriage/stride when falling down pit --- src/Dodge/Creature/HandPos.hs | 8 ++ src/Dodge/Creature/Update.hs | 10 +- src/Dodge/Data/Creature/Stance.hs | 1 + src/Dodge/Inventory.hs | 6 +- src/Dodge/TestString.hs | 4 +- src/Dodge/Update.hs | 35 +++---- tags | 164 +++++++++++++++--------------- 7 files changed, 119 insertions(+), 109 deletions(-) diff --git a/src/Dodge/Creature/HandPos.hs b/src/Dodge/Creature/HandPos.hs index c8c1b8710..4f70b3524 100644 --- a/src/Dodge/Creature/HandPos.hs +++ b/src/Dodge/Creature/HandPos.hs @@ -45,6 +45,8 @@ rightHandPQ cr | otherwise = case cr ^? crStance . carriage of Just (Walking sa LeftForward) -> (V3 (- f sa) (- off) 10, Q.qID) Just (Walking sa RightForward) -> (V3 (- g sa) (- off) 10, Q.qID) + Just (Falling sa LeftForward) -> (V3 (- f sa) (- off) 10, Q.qID) + Just (Falling sa RightForward) -> (V3 (- g sa) (- off) 10, Q.qID) _ -> (V3 0 (- off) 10, Q.qID) where off = 8 @@ -66,6 +68,8 @@ leftHandPQ cr | otherwise = case cr ^? crStance . carriage of Just (Walking sa RightForward) -> (V3 (- f sa) off 10 , Q.qID) Just (Walking sa LeftForward) -> (V3 (- g sa) off 10 , Q.qID) + Just (Falling sa RightForward) -> (V3 (- f sa) off 10 , Q.qID) + Just (Falling sa LeftForward) -> (V3 (- g sa) off 10 , Q.qID) _ -> (V3 0 off 10, Q.qID) where off = 8 @@ -89,6 +93,8 @@ leftLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr)) x = case cr ^? crStance . carriage of Just (Walking sa LeftForward) -> f sa Just (Walking sa RightForward) -> - f sa + Just (Falling sa LeftForward) -> f sa + Just (Falling sa RightForward) -> - f sa _ -> 0 off = 5 sLen = _strideLength $ _crStance cr @@ -105,6 +111,8 @@ rightLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr)) x = case cr ^? crStance . carriage of Just (Walking sa LeftForward) -> -f sa Just (Walking sa RightForward) -> f sa + Just (Falling sa LeftForward) -> -f sa + Just (Falling sa RightForward) -> f sa _ -> 0 off = -5 sLen = _strideLength $ _crStance cr diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 0ffaabe4f..b36fdb9d1 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -136,7 +136,7 @@ dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys . _unNIntMap $ chasmTestLiving :: Creature -> World -> World chasmTestLiving cr w - | _crZVel cr < 0 = + | Falling {} <- cr ^. crStance . carriage = w & tocr . crZVel -~ 0.5 & tocr . crPos . _z +~ _crZVel cr @@ -145,13 +145,19 @@ chasmTestLiving cr w & soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100) & tocr . crPos . _xy -~ normalizeV (vNormal (x - y)) & chasmRotate cr (x - y) - | any f (w ^. cWorld . chasms) = w & tocr . crZVel -~ 0.5 + | any f (w ^. cWorld . chasms) = w & tocr %~ startFalling | otherwise = w where tocr = cWorld . lWorld . creatures . ix (_crID cr) g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType) f = pointInPoly (cr ^. crPos . _xy) +startFalling :: Creature -> Creature +startFalling cr = case cr ^. crStance . carriage of + Walking a b -> cr & crZVel -~ 0.5 + & crStance . carriage .~ Falling a b + _ -> cr + chasmTestCorpse :: Creature -> World -> World chasmTestCorpse cr w | _crZVel cr < 0 = diff --git a/src/Dodge/Data/Creature/Stance.hs b/src/Dodge/Data/Creature/Stance.hs index 3b8543da8..03c3d8d20 100644 --- a/src/Dodge/Data/Creature/Stance.hs +++ b/src/Dodge/Data/Creature/Stance.hs @@ -24,6 +24,7 @@ data Carriage | Floating | Flying | Boosting Point2 + | Falling {_fallFlail :: Float, _fallFoot :: FootForward} deriving (Eq, Ord, Show, Read) --Generic, Flat) data FootForward = LeftForward | RightForward diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 8b29b35a8..b2a4edf92 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -20,6 +20,7 @@ module Dodge.Inventory ( collectInvItems, shiftInvItemsUp, shiftInvItemsDown, + closeItemDist, ) where import Control.Monad @@ -142,9 +143,12 @@ updateCloseObjects w = x <- lw ^? terminals . ix tid . tmStatus return (x /= TerminalDeactivated) _ -> True - isclose x = dist y x < 30 && hasButtonLOS y x w + isclose x = dist y x < closeItemDist && hasButtonLOS y x w y = you w ^. crPos . _xy +closeItemDist :: Float +closeItemDist = 30 + changeSwapSelSet :: Int -> World -> World changeSwapSelSet yi w | yi >= 0 = foldl' (&) w $ replicate yi (swapSelSet shiftSetUp) diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index fb044d179..740886d79 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -34,8 +34,8 @@ import Data.Monoid import RandomHelp testStringInit :: Universe -> [String] -testStringInit _ = [] --- a (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crWallTouch) +testStringInit u = + (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crStance . carriage . strideAmount) -- a <> fromMaybe [] (do -- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18 -- a w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index adadfa055..04f8943b3 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -368,10 +368,10 @@ muzzleWallCheck w cr = fromMaybe cr $ do _ -> Nothing updateCreatureStrides :: World -> World -updateCreatureStrides w = foldl' updateCreatureStride w $ w ^. cWorld . lWorld . creatures +updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride -updateCreatureStride :: World -> Creature -> World -updateCreatureStride w cr = w & cWorld . lWorld . creatures . ix (cr ^. crID) . crStance . carriage . strideAmount +~ d +updateCreatureStride :: Creature -> Creature +updateCreatureStride cr = cr & crStance . carriage . strideAmount +~ d where s = fromMaybe 0 $ crMvType cr ^? mvSpeed d = min s . norm $ cr ^. crPos - cr ^. crOldPos @@ -394,7 +394,7 @@ checkTermDist w = fromMaybe w $ do tmid <- w ^? hud . subInventory . termID btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos - guard $ dist btpos (you w ^. crPos . _xy) > 40 + guard $ dist btpos (you w ^. crPos . _xy) > closeItemDist return $ w & hud . subInventory .~ NoSubInventory updateMouseContext :: Config -> Universe -> Universe @@ -408,15 +408,9 @@ updateMouseContextGame cfig u = \case x@OverInvDragSelect{} -> x MouseGameRotate x | ButtonRight `M.member` (w ^. input . mouseButtons) -> MouseGameRotate x - --_ -> fromMaybe aimcontext (isrotatedrag <|> overterm <|> overinv <|> overcomb) _ -> fromMaybe aimcontext (overterm <|> overinv <|> overcomb) where w = u ^. uvWorld - -- isrotatedrag = do - -- t1 <- w ^. input . mouseButtons . at ButtonLeft - -- t2 <- w ^. input . mouseButtons . at ButtonRight - -- guard $ t1 > t2 - -- return $ MouseGameRotate (dist (mouseWorldPosW w) (w ^. wCam . camCenter)) aimcontext | ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming | Display_debug `S.member` (cfig ^. debug_booleans) = getDebugMouseOver u @@ -513,8 +507,7 @@ updatePulseLasers w = f w & cWorld . lWorld . pulseLasers .~ pzs updatePlasmaBall :: World -> PlasmaBall -> (World, Maybe PlasmaBall) updatePlasmaBall w pb | Just (_, ecrwl) <- thit = - ( w - & cWorld . lWorld %~ dodam ecrwl + ( w & cWorld . lWorld %~ dodam ecrwl , Nothing ) | norm (pb ^. pbVel) <= 0 = (w, Nothing) @@ -576,11 +569,8 @@ updateTerminal tm w = fromMaybe w $ do return $ case tl of _ | _tlPause tl > 0 -> w & pointTermParams . tmFutureLines . ix 0 . tlPause -~ 1 (TLine _ tls g) -> - w & pointTermParams - %~ ( (tmFutureLines %~ tail) - . (tmDisplayedLines %~ take getMaxLinesTM . (map displayTerminalLineString tls ++)) - -- . (tmDisplayedLines %~ (map displayTerminalLineString tls ++)) - ) + w & pointTermParams . tmFutureLines %~ tail + & pointTermParams . tmDisplayedLines %~ take getMaxLinesTM . (map displayTerminalLineString tls ++) & doTmWdWd g tm where pointTermParams = cWorld . lWorld . terminals . ix (_tmID tm) @@ -976,11 +966,12 @@ crSpring c w = crsNearCirc (c ^. crPos . _xy) (crRad $ c ^. crType) w canSpring :: Creature -> Bool -canSpring cr = cr ^. crPos . _z >= 0 && case cr ^. crHP of - HP{} -> True - CrIsCorpse{} -> True - CrIsGibs -> False - CrIsPitted -> False +canSpring cr = + cr ^. crPos . _z >= 0 && case cr ^. crHP of + HP{} -> True + CrIsCorpse{} -> True + CrIsGibs -> False + CrIsPitted -> False crCrSpring :: Creature -> Creature -> World -> World crCrSpring c1 c2 diff --git a/tags b/tags index b32dd006c..2f1a55bc3 100644 --- a/tags +++ b/tags @@ -2567,7 +2567,7 @@ addToTrunk src/TreeHelp.hs 157;" f addWarningTerminal src/Dodge/Room/Warning.hs 94;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 483;" f +advanceScrollAmount src/Dodge/Update.hs 477;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f @@ -2604,7 +2604,7 @@ applyGravityPU src/Dodge/Projectile/Update.hs 41;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f applyInvLock src/Dodge/HeldUse.hs 455;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f -applyPastDamages src/Dodge/Creature/State.hs 48;" f +applyPastDamages src/Dodge/Creature/State.hs 49;" f applyPosition src/Sound.hs 113;" f applyRecoil src/Dodge/HeldUse.hs 486;" f applyResFactor src/Dodge/Data/Config.hs 126;" f @@ -2701,7 +2701,7 @@ basicMuzFlare src/Dodge/HeldUse.hs 731;" f battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f beltMag src/Dodge/Item/Ammo.hs 38;" f -bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f +bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 227;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f bgunSound src/Dodge/HeldUse.hs 540;" f bingate src/Dodge/Item/Scope.hs 115;" f @@ -2779,7 +2779,7 @@ calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcTexCoord src/Tile.hs 19;" f canSee src/Dodge/Base/Collide.hs 321;" f canSeeIndirect src/Dodge/Base/Collide.hs 328;" f -canSpring src/Dodge/Update.hs 978;" f +canSpring src/Dodge/Update.hs 968;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f capacitor src/Dodge/Item/Ammo.hs 67;" f card8Vec src/Dodge/Base/CardinalPoint.hs 17;" f @@ -2806,7 +2806,7 @@ chartreuse src/Color.hs 51;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 65;" f chaseCritInternal src/Dodge/Humanoid.hs 8;" f -chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f +chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 122;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f chasmRotate src/Dodge/Creature/Update.hs 172;" f @@ -2819,7 +2819,7 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 78;" f checkDeath' src/Dodge/Creature/Update.hs 81;" f -checkEndGame src/Dodge/Update.hs 864;" f +checkEndGame src/Dodge/Update.hs 854;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -2931,10 +2931,10 @@ convexHull src/Geometry/Polygon.hs 150;" f convexHullSafe src/Geometry/Polygon.hs 172;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f convexPolysOverlapWitness src/Geometry/ConvexPoly.hs 55;" f -coolMachinePistol src/Dodge/Creature/State.hs 101;" f -coolMinigun src/Dodge/Creature/State.hs 94;" f +coolMachinePistol src/Dodge/Creature/State.hs 102;" f +coolMinigun src/Dodge/Creature/State.hs 95;" f copier src/Dodge/Item/Scope.hs 94;" f -copierItemUpdate src/Dodge/Creature/State.hs 130;" f +copierItemUpdate src/Dodge/Creature/State.hs 131;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 405;" f cornerList src/Preload/Render.hs 236;" f @@ -2948,7 +2948,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 86;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 53;" f -crCrSpring src/Dodge/Update.hs 985;" f +crCrSpring src/Dodge/Update.hs 976;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 45;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f @@ -2979,7 +2979,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 75;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 973;" f +crSpring src/Dodge/Update.hs 963;" f crStratConMatches src/Dodge/Creature/Test.hs 81;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 71;" f @@ -3205,7 +3205,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f -displayTerminalLineString src/Dodge/Update.hs 569;" f +displayTerminalLineString src/Dodge/Update.hs 562;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 149;" f @@ -3219,7 +3219,7 @@ divideLineExact src/Geometry.hs 276;" f divideLineOddNumPoints src/Geometry.hs 261;" f dmType src/Dodge/Damage.hs 38;" f doAimTwist src/Dodge/Creature/YourControl.hs 154;" f -doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" f +doAnyEquipmentEffect src/Dodge/Creature/State.hs 141;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBarrelSpin src/Dodge/Projectile/Update.hs 168;" f doBlBl src/Dodge/BlBl.hs 5;" f @@ -3232,7 +3232,7 @@ doCrBl src/Dodge/CreatureEffect.hs 30;" f doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f doCrImp src/Dodge/CreatureEffect.hs 13;" f doCrWdAc src/Dodge/CreatureEffect.hs 48;" f -doDamage src/Dodge/Creature/State.hs 42;" f +doDamage src/Dodge/Creature/State.hs 43;" f doDeathToggle src/Dodge/WorldEffect.hs 98;" f doDeathTriggers src/Dodge/WorldEffect.hs 91;" f doDebugGet src/Dodge/Debug.hs 145;" f @@ -3272,7 +3272,7 @@ doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f -doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 172;" f +doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 173;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3285,7 +3285,7 @@ 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 34;" f -doWorldEvents src/Dodge/Update.hs 492;" f +doWorldEvents src/Dodge/Update.hs 486;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 14;" f doorBetween src/Dodge/Placement/Instance/Door.hs 34;" f @@ -3299,7 +3299,7 @@ doublePair src/Geometry.hs 162;" f doublePairSet src/Geometry.hs 166;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 28;" f doubleV2 src/Geometry.hs 169;" f -drawARHUD src/Dodge/Creature/State.hs 192;" f +drawARHUD src/Dodge/Creature/State.hs 193;" f drawAimSweep src/Dodge/Render/Picture.hs 292;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f @@ -3605,7 +3605,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 153;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f -gasEffect src/Dodge/Update.hs 889;" f +gasEffect src/Dodge/Update.hs 879;" f gasType src/Dodge/HeldUse.hs 1135;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3631,7 +3631,7 @@ getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 505;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 492;" f -getDebugMouseOver src/Dodge/Update.hs 453;" f +getDebugMouseOver src/Dodge/Update.hs 447;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1284;" f @@ -3641,7 +3641,7 @@ getLaserDamage src/Dodge/HeldUse.hs 728;" f getLaserPhaseV src/Dodge/HeldUse.hs 725;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f -getMenuMouseContext src/Dodge/Update.hs 465;" f +getMenuMouseContext src/Dodge/Update.hs 459;" f getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f @@ -3676,7 +3676,7 @@ glassSwitchBackCrits src/Dodge/Room/Room.hs 117;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 402;" f gluintSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f -goToTarget src/Dodge/Creature/ReaderUpdate.hs 150;" f +goToTarget src/Dodge/Creature/ReaderUpdate.hs 151;" f grahamEliminate src/Geometry/Polygon.hs 186;" f grahamScan src/Geometry/Polygon.hs 177;" f grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f @@ -3840,8 +3840,8 @@ invDimColor src/Dodge/DisplayInventory.hs 190;" f invHead src/Dodge/Render/HUD.hs 421;" f invIMDT src/Dodge/Item/Grammar.hs 254;" f invIndents src/Dodge/Item/Grammar.hs 261;" f -invItemEffs src/Dodge/Creature/State.hs 62;" f -invItemLocUpdate src/Dodge/Creature/State.hs 70;" f +invItemEffs src/Dodge/Creature/State.hs 63;" f +invItemLocUpdate src/Dodge/Creature/State.hs 71;" f invRootMap src/Dodge/Item/Grammar.hs 235;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 284;" f @@ -3878,7 +3878,7 @@ isNothing' src/MaybeHelp.hs 31;" f isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 168;" f isOutLnkNum src/Dodge/PlacementSpot.hs 173;" f -isOverTerminalScreen src/Dodge/Update.hs 473;" f +isOverTerminalScreen src/Dodge/Update.hs 467;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f isRHS src/Geometry/LHS.hs 44;" f @@ -4023,7 +4023,7 @@ linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 232;" f listControls src/Dodge/Menu.hs 244;" f listCursor src/Dodge/Render/List.hs 120;" f -listGuard src/Dodge/Creature/ReaderUpdate.hs 196;" f +listGuard src/Dodge/Creature/ReaderUpdate.hs 197;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f @@ -4271,7 +4271,7 @@ muzzleWallCheck src/Dodge/Update.hs 346;" f mvButton src/Dodge/Placement/PlaceSpot.hs 182;" f mvCr src/Dodge/Placement/PlaceSpot.hs 185;" f mvFS src/Dodge/Placement/PlaceSpot.hs 188;" f -mvGust src/Dodge/Update.hs 880;" f +mvGust src/Dodge/Update.hs 870;" f mvLS src/Dodge/Placement/PlaceSpot.hs 235;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4363,7 +4363,7 @@ overlapCircWalls src/Dodge/Base/Collide.hs 233;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 272;" f overlapSegCrs src/Dodge/Base/Collide.hs 60;" f overlapSegWalls src/Dodge/Base/Collide.hs 213;" f -overrideInternal src/Dodge/Creature/ReaderUpdate.hs 180;" f +overrideInternal src/Dodge/Creature/ReaderUpdate.hs 181;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f p src/ShortShow.hs 48;" f @@ -4385,7 +4385,7 @@ pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 217;" f -pbFlicker src/Dodge/Update.hs 554;" f +pbFlicker src/Dodge/Update.hs 547;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 112;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4592,7 +4592,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToDeg src/Geometry/Vector.hs 123;" f -radiusSpring src/Dodge/Update.hs 962;" f +radiusSpring src/Dodge/Update.hs 952;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randDirPS src/Dodge/PlacementSpot.hs 58;" f @@ -4614,7 +4614,7 @@ randPeakedParam src/RandomHelp.hs 149;" f randProb src/RandomHelp.hs 87;" f randSpark src/Dodge/Spark.hs 70;" f randSparkExtraVel src/Dodge/Spark.hs 93;" f -randWallReflect src/Dodge/Update.hs 736;" f +randWallReflect src/Dodge/Update.hs 726;" f randomChallenges src/Dodge/Room/Start.hs 64;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 247;" f @@ -4681,7 +4681,7 @@ renderLayer src/Render.hs 206;" f renderLightingNoShadows src/Render.hs 49;" f renderListAt src/Dodge/Render/List.hs 177;" f renderShadows src/Render.hs 116;" f -replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f +replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 169;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 67;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f @@ -4832,7 +4832,7 @@ seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 681;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f -searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 213;" f +searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 214;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsSizes src/Dodge/DisplayInventory.hs 205;" f @@ -4877,11 +4877,11 @@ setLinkType src/Dodge/RoomLink.hs 79;" f setLinkTypePD src/Dodge/RoomLink.hs 86;" f setMusicVolume src/Sound.hs 164;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f -setOldPos src/Dodge/Update.hs 588;" f +setOldPos src/Dodge/Update.hs 578;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f -setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 289;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 326;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f setShaderSource src/Shader/Compile.hs 121;" f @@ -4941,8 +4941,8 @@ shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftSetDown src/Dodge/Inventory.hs 170;" f shiftSetUp src/Dodge/Inventory.hs 164;" f -shineTargetLaser src/Dodge/Creature/State.hs 200;" f -shineTorch src/Dodge/Creature/State.hs 236;" f +shineTargetLaser src/Dodge/Creature/State.hs 201;" f +shineTorch src/Dodge/Creature/State.hs 237;" f shootBullet src/Dodge/HeldUse.hs 995;" f shootBullets src/Dodge/HeldUse.hs 989;" f shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f @@ -4980,7 +4980,7 @@ shufflePair src/RandomHelp.hs 166;" f shuffleRoomPos src/Dodge/Layout.hs 86;" f shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 967;" f +simpleCrSprings src/Dodge/Update.hs 957;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f @@ -5170,7 +5170,7 @@ targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f -targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 202;" f +targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 203;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f @@ -5325,7 +5325,7 @@ trunkDepth src/TreeHelp.hs 162;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryClickUse src/Dodge/Creature/YourControl.hs 236;" f tryCombine src/Dodge/Update/Input/InGame.hs 521;" f -tryDrawToCapacitor src/Dodge/Creature/State.hs 150;" f +tryDrawToCapacitor src/Dodge/Creature/State.hs 151;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 140;" f tryGetChannel src/Sound.hs 99;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 22;" f @@ -5336,9 +5336,9 @@ tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 54;" f trySeedFromClipboard src/Dodge/Menu.hs 94;" f trySpin src/Dodge/Projectile/Update.hs 120;" f -trySynthBullet src/Dodge/Creature/State.hs 166;" f +trySynthBullet src/Dodge/Creature/State.hs 167;" f tryThrust src/Dodge/Projectile/Update.hs 126;" f -tryUseParent src/Dodge/Creature/State.hs 144;" f +tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" f tutAnoTree src/Dodge/Room/Tutorial.hs 53;" f @@ -5388,52 +5388,52 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBounds src/Dodge/Update/Camera.hs 262;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 651;" f +updateBullets src/Dodge/Update.hs 641;" f updateCamera src/Dodge/Update/Camera.hs 33;" f updateCloseObjects src/Dodge/Inventory.hs 125;" f -updateCloud src/Dodge/Update.hs 893;" f -updateClouds src/Dodge/Update.hs 762;" f +updateCloud src/Dodge/Update.hs 883;" f +updateClouds src/Dodge/Update.hs 752;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 37;" f -updateCreatureGroups src/Dodge/Update.hs 623;" f -updateCreatureSoundPositions src/Dodge/Update.hs 602;" f +updateCreatureGroups src/Dodge/Update.hs 613;" f +updateCreatureSoundPositions src/Dodge/Update.hs 592;" f updateCreatureStride src/Dodge/Update.hs 373;" f updateCreatureStrides src/Dodge/Update.hs 370;" f -updateDebris src/Dodge/Update.hs 665;" f +updateDebris src/Dodge/Update.hs 655;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 102;" f -updateDelayedEvents src/Dodge/Update.hs 1005;" f +updateDelayedEvents src/Dodge/Update.hs 996;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 644;" f +updateDistortions src/Dodge/Update.hs 634;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 384;" f -updateDust src/Dodge/Update.hs 941;" f -updateDusts src/Dodge/Update.hs 768;" f +updateDust src/Dodge/Update.hs 931;" f +updateDusts src/Dodge/Update.hs 758;" f updateEdge src/Dodge/Path.hs 43;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 753;" f +updateEnergyBalls src/Dodge/Update.hs 743;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 481;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 750;" f +updateFlames src/Dodge/Update.hs 740;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 338;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 334;" f -updateGas src/Dodge/Update.hs 915;" f -updateGasses src/Dodge/Update.hs 765;" f -updateGusts src/Dodge/Update.hs 877;" f -updateIMl src/Dodge/Update.hs 617;" f -updateIMl' src/Dodge/Update.hs 620;" f +updateGas src/Dodge/Update.hs 905;" f +updateGasses src/Dodge/Update.hs 755;" f +updateGusts src/Dodge/Update.hs 867;" f +updateIMl src/Dodge/Update.hs 607;" f +updateIMl' src/Dodge/Update.hs 610;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 404;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f -updateItemTargeting src/Dodge/Creature/State.hs 258;" f +updateItemTargeting src/Dodge/Creature/State.hs 259;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 371;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 398;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 85;" f @@ -5441,7 +5441,7 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 357;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 380;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 12;" f -updateLasers src/Dodge/Update.hs 499;" f +updateLasers src/Dodge/Update.hs 493;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 47;" f @@ -5454,22 +5454,22 @@ updateMouseContextGame src/Dodge/Update.hs 405;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 98;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 168;" f -updateObjCatMaybes src/Dodge/Update.hs 635;" f -updateObjMapMaybe src/Dodge/Update.hs 628;" f -updatePastWorlds src/Dodge/Update.hs 488;" f -updatePlasmaBall src/Dodge/Update.hs 513;" f -updatePlasmaBalls src/Dodge/Update.hs 658;" f +updateObjCatMaybes src/Dodge/Update.hs 625;" f +updateObjMapMaybe src/Dodge/Update.hs 618;" f +updatePastWorlds src/Dodge/Update.hs 482;" f +updatePlasmaBall src/Dodge/Update.hs 507;" f +updatePlasmaBalls src/Dodge/Update.hs 648;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 179;" f -updatePulseBall src/Dodge/Update.hs 534;" f -updatePulseLaser src/Dodge/Update.hs 705;" f -updatePulseLasers src/Dodge/Update.hs 508;" f +updatePulseBall src/Dodge/Update.hs 527;" f +updatePulseLaser src/Dodge/Update.hs 695;" f +updatePulseLasers src/Dodge/Update.hs 502;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 647;" f +updateRadarBlips src/Dodge/Update.hs 637;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 756;" f +updateRadarSweeps src/Dodge/Update.hs 746;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 188;" f @@ -5479,17 +5479,17 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 262;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 747;" f +updateShockwaves src/Dodge/Update.hs 737;" f updateSingleNodes src/TreeHelp.hs 98;" f updateSound src/Sound.hs 73;" f updateSounds src/Sound.hs 68;" f updateSpark src/Dodge/Spark.hs 20;" f -updateSparks src/Dodge/Update.hs 759;" f -updateTerminal src/Dodge/Update.hs 572;" f -updateTeslaArc src/Dodge/Update.hs 675;" f -updateTeslaArcs src/Dodge/Update.hs 672;" f +updateSparks src/Dodge/Update.hs 749;" f +updateTerminal src/Dodge/Update.hs 565;" f +updateTeslaArc src/Dodge/Update.hs 665;" f +updateTeslaArcs src/Dodge/Update.hs 662;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 744;" f +updateTractorBeams src/Dodge/Update.hs 734;" f updateTurret src/Dodge/Machine/Update.hs 56;" f updateUniverse src/Dodge/Update.hs 81;" f updateUniverseFirst src/Dodge/Update.hs 92;" f @@ -5500,7 +5500,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f -updateWheelEvents src/Dodge/Update.hs 478;" f +updateWheelEvents src/Dodge/Update.hs 472;" f updateWorldEventFlag src/Dodge/Update.hs 127;" f updateWorldEventFlags src/Dodge/Update.hs 115;" f upperBody src/Dodge/Creature/Picture.hs 118;" f @@ -5563,7 +5563,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f -viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f +viewTarget src/Dodge/Creature/ReaderUpdate.hs 156;" f violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 218;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f @@ -5587,7 +5587,7 @@ wasdM src/Dodge/WASD.hs 9;" f wasdMovement src/Dodge/Creature/YourControl.hs 169;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 126;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f -watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 185;" f +watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 186;" f weaponBehindPillar src/Dodge/Room/Room.hs 197;" f weaponBetweenPillars src/Dodge/Room/Room.hs 213;" f weaponEmptyRoom src/Dodge/Room/Room.hs 158;" f @@ -5678,11 +5678,11 @@ zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 142;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f -zoneClouds src/Dodge/Update.hs 561;" f +zoneClouds src/Dodge/Update.hs 554;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 598;" f +zoneCreatures src/Dodge/Update.hs 588;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 566;" f +zoneDusts src/Dodge/Update.hs 559;" f zoneExtract src/Dodge/Zoning/Base.hs 58;" f zoneGas src/Dodge/Zoning/Cloud.hs 36;" f zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f