diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 76d8d7a9f..fb044d179 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -34,23 +34,24 @@ import Data.Monoid import RandomHelp testStringInit :: Universe -> [String] -testStringInit u = (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crWallTouch) - <> fromMaybe [] (do - w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18 - w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61 - let - f = uncurry (-) . (^. wlLine) - g = argV . f - h = normalizeV . uncurry (-) . (^. wlLine) - a = angleVV (f w1) (f w2) - return [show $ wlWlCrush w1 w2, show a , show (f w1), show (f w2) - , show $ g w1 - , show $ g w2 - , show $ h w1 - , show $ h w2 - , show (norm (h w1 + h w2)) - ] - ) +testStringInit _ = [] +-- a (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crWallTouch) +-- a <> fromMaybe [] (do +-- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18 +-- a w2 <- u ^? uvWorld . cWorld . lWorld . walls . ix 61 +-- a let +-- a f = uncurry (-) . (^. wlLine) +-- a g = argV . f +-- a h = normalizeV . uncurry (-) . (^. wlLine) +-- a a = angleVV (f w1) (f w2) +-- a return [show $ wlWlCrush w1 w2, show a , show (f w1), show (f w2) +-- a , show $ g w1 +-- a , show $ g w2 +-- a , show $ h w1 +-- a , show $ h w2 +-- a , show (norm (h w1 + h w2)) +-- a ] +-- a ) -- <> (fmap show $ u ^.. uvWorld . cWorld . lWorld . machines . each . mcMaterial) --testStringInit u = map show (u ^.. uvWorld . cWorld . lWorld . machines . traverse . mcDir) --testStringInit u = map show diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 3e6e3f1f8..230874c6c 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -3,28 +3,23 @@ module Dodge.Update (updateUniverse) where -import Data.Function (on) -import Dodge.Zoning.Wall import Bound -import Dodge.HeldUse -import Dodge.DoubleTree -import Dodge.Item.Grammar -import Dodge.Creature.MoveType -import Dodge.Render.List -import Data.Foldable -import qualified Data.Set as S import Color import Control.Applicative import Control.Monad +import Data.Foldable +import Data.Function (on) import Data.List import qualified Data.Map.Strict as M import Data.Maybe import Data.Monoid +import qualified Data.Set as S import Dodge.Base import Dodge.Bullet import Dodge.Cloud import Dodge.CrGroupUpdate import Dodge.Creature.Mass +import Dodge.Creature.MoveType import Dodge.Creature.Radius import Dodge.Creature.Update import Dodge.Damage @@ -35,9 +30,12 @@ import Dodge.Debug import Dodge.DisplayInventory import Dodge.Distortion import Dodge.Door +import Dodge.DoubleTree import Dodge.EnergyBall import Dodge.Flame +import Dodge.HeldUse import Dodge.Inventory +import Dodge.Item.Grammar import Dodge.Item.Weapon.LaserPath import Dodge.Laser.Update import Dodge.LinearShockwave.Update @@ -48,6 +46,7 @@ import Dodge.Projectile.Update import Dodge.Prop.Moving import Dodge.RadarBlip import Dodge.RadarSweep +import Dodge.Render.List import Dodge.ScrollValue import Dodge.SelectionSections import Dodge.Shockwave.Update @@ -69,6 +68,7 @@ import Dodge.WorldEvent.Explosion import Dodge.WorldEvent.ThingsHit import Dodge.Zoning.Cloud import Dodge.Zoning.Creature +import Dodge.Zoning.Wall import Geometry import qualified IntMapHelp as IM import LensHelp @@ -175,7 +175,7 @@ doMouseWarping _ = id -- (0.5 * windowYFloat cfig - fromIntegral y) -- p@(V2 x y) = (cwin + (msp & each %~ round)) & each %~ fromIntegral -- cwin :: V2 Int --- cwin = ((getWindowSize _gr_world_res (u' ^. uvConfig))) +-- cwin = ((getWindowSize _gr_world_res (u' ^. uvConfig))) -- mwp = mouseWorldPosW (u' ^. uvWorld) -- msp = u' ^. uvWorld . input . mousePos & _y %~ negate -- cc = u' ^. uvWorld . wCam . camCenter @@ -188,7 +188,7 @@ updateUniverseMid u = case _uvScreenLayers u of [] -> (uvWorld . unpauseClock +~ 1) . (uvWorld . cWorld . highlightItems %~ IM.mapMaybe minusone) --- . (uvWorld . cWorld . highlightItems . filteredBy . non 0 -~ 1) + -- . (uvWorld . cWorld . highlightItems . filteredBy . non 0 -~ 1) . timeFlowUpdate . updateUseInputInGame $ over @@ -196,7 +196,7 @@ updateUniverseMid u = case _uvScreenLayers u of (updateMouseInGame (u ^. uvConfig) . updateCamera (u ^. uvConfig)) u where - minusone x + minusone x | x > 0 = Just $ x - 1 | otherwise = Nothing @@ -212,7 +212,7 @@ timeFlowUpdate u = case u ^. uvWorld . timeFlow of RewindLeftClick _ _ -> over uvWorld scrollTimeBack u RespawnDelay{} -> functionalUpdate u PausedTimeFlow _ itmloc -> over uvWorld (pauseTime itmloc) u - PauseTimeMessage {} -> u + PauseTimeMessage{} -> u pauseTime :: NewInt ItmInt -> World -> World pauseTime _ w @@ -337,7 +337,7 @@ functionalUpdate = . set (uvWorld . cWorld . lWorld . lights) [] . set (uvWorld . cWorld . lWorld . tempSPic) mempty . updateAimPos - . over uvWorld updatePastWorlds -- it might be possible to do this without storing stuff such as the temporary lights/flares etc + . over uvWorld updatePastWorlds -- it might be possible to do this without storing stuff such as the temporary lights/flares etc pushYouOutFromWalls :: World -> World pushYouOutFromWalls w = w & cWorld . lWorld . creatures . ix 0 %~ muzzleWallCheck w @@ -346,22 +346,25 @@ pushYouOutFromWalls w = w & cWorld . lWorld . creatures . ix 0 %~ muzzleWallChec muzzleWallCheck :: World -> Creature -> Creature muzzleWallCheck w cr = fromMaybe cr $ do invid <- cr ^? crManipulation . manObject . imRootSelectedItem . unNInt - loc <- invIndents ((\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr) - ^? ix invid . _2 + loc <- + invIndents ((\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr) + ^? ix invid . _2 let ps = reduceLocDT f loc ^.. each . _1 . _xy cp = cr ^. crPos . _xy --- cop = cr ^. crOldPos . _xy + -- cop = cr ^. crOldPos . _xy r <- boundPointsRect (cp : ps) let wls = uncurry wlsNearRect r w & IM.elems & filter (not . _wlTouchThrough) vs = mapMaybe (g cp wls) ps - return $ if null vs - then cr - else let v = minimumBy (compare `on` norm) vs - in cr & crPos . _xy +~ normalize v + return $ + if null vs + then cr + else + let v = minimumBy (compare `on` norm) vs + in cr & crPos . _xy +~ normalize v where - f loc = map (muzzlePos loc cr) (itemMuzzles loc) + f loc = map (muzzlePos loc cr) (itemMuzzles loc) g cp wls p = case collidePoint cp p wls of - (ep,Just _) -> Just (ep - p) + (ep, Just _) -> Just (ep - p) _ -> Nothing updateCreatureStrides :: World -> World @@ -409,11 +412,11 @@ updateMouseContextGame cfig u = \case _ -> 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)) + -- 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 @@ -449,15 +452,15 @@ updateMouseContextGame cfig u = \case getDebugMouseOver :: Universe -> MouseContext getDebugMouseOver u = fromMaybe MouseInGame $ do - guard $ x >0 && x < 100 - (db,j) <- m ^? ix i + guard $ x > 0 && x < 100 + (db, j) <- m ^? ix i return $ OverDebug db j where - f (a,as) = (a,) <$> [0..length as - 1] + f (a, as) = (a,) <$> [0 .. length as - 1] m = foldMap f . M.toList $ u ^. uvDebug - i = floor (y /20) - y = halfHeight (u^.uvConfig) - y' - V2 x y' = u^.uvWorld.input.mousePos + i = floor (y / 20) + y = halfHeight (u ^. uvConfig) - y' + V2 x y' = u ^. uvWorld . input . mousePos getMenuMouseContext :: ScreenLayer -> Universe -> MouseContext getMenuMouseContext screen u = case screen ^. scOptions of @@ -509,11 +512,16 @@ 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, Nothing) + | Just (_, ecrwl) <- thit = + ( w + & cWorld . lWorld %~ dodam ecrwl + , Nothing + ) | norm (pb ^. pbVel) <= 0 = (w, Nothing) - | otherwise = ( w -- flicker? - , Just $ pb & pbPos .~ ep ) + | otherwise = + ( w -- flicker? + , Just $ pb & pbPos .~ ep + ) where dodam = \case Left cr -> creatures . ix (_crID cr) . crDamage .:~ thedam @@ -553,7 +561,7 @@ pbFlicker pt = zoneClouds :: World -> World zoneClouds w = w & clZoning .~ foldl' (flip zoneCloud) mempty (w ^. cWorld . lWorld . clouds) - & gasZoning .~ foldl' (flip zoneGas) mempty (w ^. cWorld . lWorld . gasses) + & gasZoning .~ foldl' (flip zoneGas) mempty (w ^. cWorld . lWorld . gasses) zoneDusts :: World -> World zoneDusts w = w & dsZoning .~ foldl' (flip zoneDust) mempty (w ^. cWorld . lWorld . dusts) @@ -919,8 +927,9 @@ updateGas w c newVel@(V3 _ _ nvz) = (0.95 *^ springVels) + V3 0 0 (0.01 * vertVel) newVel2 = stripZ newVel vertVel = min 5 $ 20 - opz - springVels = c ^. gsPos - + alaf Sum foldMap (radiusSpring 10 oldPos . _gsPos) (gassesNearPoint oldPos2 w) + springVels = + c ^. gsPos + + alaf Sum foldMap (radiusSpring 10 oldPos . _gsPos) (gassesNearPoint oldPos2 w) oldPos@(V3 _ _ opz) = _gsPos c oldPos2 = stripZ oldPos newPos@(V3 _ _ npz) = oldPos + newVel @@ -940,8 +949,9 @@ updateDust w c & dsVel .~ newvel & dsTimer -~ 1 where - v@(V3 _ _ vz) = c ^. dsVel - + alaf Sum foldMap (radiusSpring 10 oldPos . _dsPos) (dssNearPoint oldPos2 w) + v@(V3 _ _ vz) = + c ^. dsVel + + alaf Sum foldMap (radiusSpring 10 oldPos . _dsPos) (dssNearPoint oldPos2 w) newvel = 0.95 * (maybe v (addZ vz . snd) hitWl - V3 0 0 0.05) oldPos = _dsPos c oldPos2 = stripZ oldPos @@ -956,26 +966,36 @@ radiusSpring r a b simpleCrSprings :: World -> World simpleCrSprings w = - IM.foldl' (flip crSpring) w $ + IM.foldl' (flip crSpring) (w & cWorld . lWorld . lTestString .~ mempty) $ IM.filter (\cr -> cr ^. crPos . _z >= 0) $ w ^. cWorld . lWorld . creatures -- note that this may in rare cases not push creatures away from each other crSpring :: Creature -> World -> World ---crSpring c w = foldl' (flip $ crCrSpring c) w $ crsNearPoint (c ^. crPos . _xy) w -crSpring c w = foldl' (flip $ crCrSpring c) w $ crsNearCirc (c ^. crPos . _xy) - (crRad $ c ^. crType) w +crSpring c w = + foldl' (flip $ crCrSpring c) w $ + crsNearCirc + (c ^. crPos . _xy) + (crRad $ c ^. crType) + w crCrSpring :: Creature -> Creature -> World -> World crCrSpring c1 c2 | id1 == id2 = id | vec == V2 0 0 = id - | diff >= comRad = id + | diff >= comRad || nopush c1 || nopush c2 + = id | otherwise = - cWorld . lWorld . creatures - %~ ( over (ix id1 . crPos . _xy) (+.+ overlap1) - . over (ix id2 . crPos . _xy) (-.- overlap2) - ) + (cWorld . lWorld . creatures + %~ ( (ix id1 . crPos . _xy +~ overlap1) + . (ix id2 . crPos . _xy -~ overlap2) + )) + . (cWorld . lWorld . lTestString .:~ show id1 <> " " <> show id2 ) where + nopush cr = case cr ^. crHP of + HP {} -> False + CrIsCorpse {} -> False + CrIsGibs -> True + CrIsPitted -> True id1 = _crID c1 id2 = _crID c2 vec = c1 ^. crPos . _xy - c2 ^. crPos . _xy diff --git a/tags b/tags index 95e5b45b5..b4a088674 100644 --- a/tags +++ b/tags @@ -699,7 +699,7 @@ MODBlockedString src/Dodge/Data/Universe.hs 106;" C MODString src/Dodge/Data/Universe.hs 105;" C MODStringOption src/Dodge/Data/Universe.hs 107;" C MOTOR src/Dodge/Data/Item/Combine.hs 63;" C -MPO src/Dodge/Base/Collide.hs 96;" t +MPO src/Dodge/Base/Collide.hs 97;" t MTRS src/Dodge/Data/MTRS.hs 6;" t MTree src/Dodge/Data/MetaTree.hs 12;" C Machine src/Dodge/Data/Machine.hs 30;" t @@ -722,8 +722,8 @@ MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C MakeSound src/Dodge/Data/ActionPlan.hs 42;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C -MakeTempLight src/Dodge/Data/WorldEffect.hs 37;" C -MakeTempLightFade src/Dodge/Data/WorldEffect.hs 38;" C +MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C +MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 19;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C @@ -740,11 +740,11 @@ McStorage src/Dodge/Data/Machine.hs 48;" C McTerminal src/Dodge/Data/Machine.hs 44;" C McTrigger src/Dodge/Data/Machine.hs 50;" C McTurret src/Dodge/Data/Machine.hs 47;" C -MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 54;" C -MdSetLSCol src/Dodge/Data/WorldEffect.hs 53;" C -MdTrigIf src/Dodge/Data/WorldEffect.hs 52;" C -MdWdId src/Dodge/Data/WorldEffect.hs 51;" C -MdWdWd src/Dodge/Data/WorldEffect.hs 50;" t +MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 53;" C +MdSetLSCol src/Dodge/Data/WorldEffect.hs 52;" C +MdTrigIf src/Dodge/Data/WorldEffect.hs 51;" C +MdWdId src/Dodge/Data/WorldEffect.hs 50;" C +MdWdWd src/Dodge/Data/WorldEffect.hs 49;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 25;" C Melee src/Dodge/Data/ActionPlan.hs 40;" C @@ -1416,7 +1416,7 @@ UseFromLocation src/Dodge/Data/UseCondition.hs 13;" C UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C UseHeld src/Dodge/Data/Item/Use.hs 29;" C UseInt src/Dodge/Data/Item/Use.hs 31;" C -UseInvItem src/Dodge/Data/WorldEffect.hs 39;" C +UseInvItem src/Dodge/Data/WorldEffect.hs 38;" C UseItem src/Dodge/Data/ActionPlan.hs 36;" C UseItemWidth src/Dodge/Data/SelectionList.hs 42;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C @@ -1482,29 +1482,29 @@ WarningCry src/Dodge/Data/ActionPlan.hs 137;" C WasMouseGameRotating src/Dodge/Data/Input.hs 53;" C WasNotMouseGameRotating src/Dodge/Data/Input.hs 54;" C WatchAndWait src/Dodge/Data/ActionPlan.hs 135;" C -WdBl src/Dodge/Data/WorldEffect.hs 57;" t -WdBlBtOn src/Dodge/Data/WorldEffect.hs 63;" C -WdBlConst src/Dodge/Data/WorldEffect.hs 60;" C -WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 62;" C -WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 59;" C -WdBlNegate src/Dodge/Data/WorldEffect.hs 61;" C +WdBl src/Dodge/Data/WorldEffect.hs 56;" t +WdBlBtOn src/Dodge/Data/WorldEffect.hs 62;" C +WdBlConst src/Dodge/Data/WorldEffect.hs 59;" C +WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 61;" C +WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 58;" C +WdBlNegate src/Dodge/Data/WorldEffect.hs 60;" C WdCrBl src/Dodge/Data/CreatureEffect.hs 12;" t WdCrBlfromCrBl src/Dodge/Data/CreatureEffect.hs 14;" C WdCrLOSTarget src/Dodge/Data/CreatureEffect.hs 16;" C WdCrNegate src/Dodge/Data/CreatureEffect.hs 15;" C WdCrSafeDistFromTarget src/Dodge/Data/CreatureEffect.hs 17;" C WdCrTrue src/Dodge/Data/CreatureEffect.hs 13;" C -WdP2 src/Dodge/Data/WorldEffect.hs 45;" t -WdP2Const src/Dodge/Data/WorldEffect.hs 46;" C -WdP2f src/Dodge/Data/WorldEffect.hs 66;" t -WdP2f0 src/Dodge/Data/WorldEffect.hs 67;" C -WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 68;" C -WdTrig src/Dodge/Data/WorldEffect.hs 58;" C +WdP2 src/Dodge/Data/WorldEffect.hs 44;" t +WdP2Const src/Dodge/Data/WorldEffect.hs 45;" C +WdP2f src/Dodge/Data/WorldEffect.hs 65;" t +WdP2f0 src/Dodge/Data/WorldEffect.hs 66;" C +WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 67;" C +WdTrig src/Dodge/Data/WorldEffect.hs 57;" C WdWd src/Dodge/Data/WorldEffect.hs 25;" t -WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 40;" C +WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 39;" C WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 35;" C -WdWdSetSoundFilter src/Dodge/Data/WorldEffect.hs 41;" C -WdYouPos src/Dodge/Data/WorldEffect.hs 47;" C +WdWdSetSoundFilter src/Dodge/Data/WorldEffect.hs 40;" C +WdYouPos src/Dodge/Data/WorldEffect.hs 46;" C WeaponScopeSF src/Dodge/Data/ComposedItem.hs 19;" C WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 20;" C West src/Dodge/Data/CardinalPoint.hs 10;" C @@ -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 480;" f +advanceScrollAmount src/Dodge/Update.hs 483;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f @@ -2579,7 +2579,7 @@ airlockCrystal src/Dodge/Room/Airlock.hs 251;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 104;" f airlockSimple src/Dodge/Room/Airlock.hs 129;" f airlockZ src/Dodge/Room/Airlock.hs 166;" f -allVisibleWalls src/Dodge/Base/Collide.hs 226;" f +allVisibleWalls src/Dodge/Base/Collide.hs 227;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f @@ -2741,7 +2741,7 @@ boolOption src/Dodge/Menu/OptionType.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 13;" f bossRoom src/Dodge/Room/Boss.hs 55;" f bounceDir src/Dodge/Bullet.hs 111;" f -bouncePoint src/Dodge/Base/Collide.hs 86;" f +bouncePoint src/Dodge/Base/Collide.hs 87;" f bounceSound src/Dodge/Projectile/Update.hs 74;" f boundPoints src/Bound.hs 9;" f boundPointsRect src/Bound.hs 23;" f @@ -2813,18 +2813,18 @@ chasmSimpleMaze src/Dodge/Room/Tutorial.hs 358;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 298;" f chasmTestCorpse src/Dodge/Creature/Update.hs 155;" f chasmTestLiving src/Dodge/Creature/Update.hs 137;" f -chasmWallToSurface src/Dodge/Base/Collide.hs 119;" f +chasmWallToSurface src/Dodge/Base/Collide.hs 120;" f 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 856;" f +checkEndGame src/Dodge/Update.hs 864;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f -checkTermDist src/Dodge/Update.hs 389;" f +checkTermDist src/Dodge/Update.hs 392;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f @@ -2836,12 +2836,12 @@ chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 61;" f -circHitWall src/Dodge/Base/Collide.hs 239;" f +circHitWall src/Dodge/Base/Collide.hs 240;" f circInPolygon src/Geometry/Polygon.hs 110;" f -circOnAnyCr src/Dodge/Base/Collide.hs 284;" f +circOnAnyCr src/Dodge/Base/Collide.hs 285;" f circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f -circOnSomeWall src/Dodge/Base/Collide.hs 278;" f +circOnSomeWall src/Dodge/Base/Collide.hs 279;" f circle src/Picture/Base.hs 172;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f @@ -2866,7 +2866,7 @@ clipZoom src/Dodge/Update/Camera.hs 234;" f clockCycle src/Dodge/Clock.hs 7;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 244;" f closeObjectInfo src/Dodge/Render/HUD.hs 228;" f closestPointOnLine src/Geometry/Intersect.hs 270;" f closestPointOnLineParam src/Geometry/Intersect.hs 286;" f @@ -2877,22 +2877,22 @@ clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f -colCrWall src/Dodge/WallCreatureCollisions.hs 23;" f -colCrsWalls src/Dodge/WallCreatureCollisions.hs 15;" f +colCrWall src/Dodge/WallCreatureCollisions.hs 25;" f +colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f collectDamageTypes src/Dodge/Damage.hs 53;" f collectInvItems src/Dodge/Inventory.hs 201;" f -collide3 src/Dodge/Base/Collide.hs 128;" f -collide3Chasm src/Dodge/Base/Collide.hs 112;" f -collide3Chasms src/Dodge/Base/Collide.hs 104;" f -collide3Creature src/Dodge/Base/Collide.hs 161;" f -collide3Floors src/Dodge/Base/Collide.hs 142;" f -collide3Wall src/Dodge/Base/Collide.hs 156;" f -collide3Walls src/Dodge/Base/Collide.hs 137;" f -collide3WallsFloor src/Dodge/Base/Collide.hs 98;" f -collideCircWalls src/Dodge/Base/Collide.hs 251;" f -collidePoint src/Dodge/Base/Collide.hs 52;" f -collidePointTestFilter src/Dodge/Base/Collide.hs 189;" f -collidePointWallsFilter src/Dodge/Base/Collide.hs 203;" f +collide3 src/Dodge/Base/Collide.hs 129;" f +collide3Chasm src/Dodge/Base/Collide.hs 113;" f +collide3Chasms src/Dodge/Base/Collide.hs 105;" f +collide3Creature src/Dodge/Base/Collide.hs 162;" f +collide3Floors src/Dodge/Base/Collide.hs 143;" f +collide3Wall src/Dodge/Base/Collide.hs 157;" f +collide3Walls src/Dodge/Base/Collide.hs 138;" f +collide3WallsFloor src/Dodge/Base/Collide.hs 99;" f +collideCircWalls src/Dodge/Base/Collide.hs 252;" f +collidePoint src/Dodge/Base/Collide.hs 53;" f +collidePointTestFilter src/Dodge/Base/Collide.hs 190;" f +collidePointWallsFilter src/Dodge/Base/Collide.hs 204;" f color src/Picture/Base.hs 100;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorSH src/Shape.hs 234;" f @@ -2947,7 +2947,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 968;" f +crCrSpring src/Dodge/Update.hs 982;" 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 @@ -2955,7 +2955,7 @@ crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crHasTarget src/Dodge/Creature/Test.hs 66;" f crHasTargetLOS src/Dodge/Creature/Test.hs 69;" f -crHeight src/Dodge/Base/Collide.hs 174;" f +crHeight src/Dodge/Base/Collide.hs 175;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 136;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f @@ -2978,7 +2978,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 963;" f +crSpring src/Dodge/Update.hs 973;" 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 @@ -3204,7 +3204,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 561;" f +displayTerminalLineString src/Dodge/Update.hs 569;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 149;" f @@ -3222,7 +3222,7 @@ doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" 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 -doBounce src/Dodge/Base/Collide.hs 67;" f +doBounce src/Dodge/Base/Collide.hs 68;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f doConLoop src/Loop.hs 138;" f doConLoop' src/Loop.hs 230;" f @@ -3284,7 +3284,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 489;" f +doWorldEvents src/Dodge/Update.hs 492;" 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 @@ -3604,7 +3604,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 881;" f +gasEffect src/Dodge/Update.hs 889;" f gasType src/Dodge/HeldUse.hs 1135;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3630,7 +3630,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 450;" f +getDebugMouseOver src/Dodge/Update.hs 453;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1284;" f @@ -3640,7 +3640,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 462;" f +getMenuMouseContext src/Dodge/Update.hs 465;" f getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f @@ -3723,7 +3723,7 @@ hardQuit src/Dodge/Concurrent.hs 32;" f hasAutoDoorBody src/Dodge/Creature/Test.hs 141;" f hasButtonLOS src/Dodge/Base/Collide.hs 304;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f -hasLOS src/Dodge/Base/Collide.hs 296;" f +hasLOS src/Dodge/Base/Collide.hs 297;" f hasLOSIndirect src/Dodge/Base/Collide.hs 313;" f hat src/Dodge/Item/Equipment.hs 65;" f head src/DoubleStack.hs 14;" f @@ -3877,7 +3877,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 470;" f +isOverTerminalScreen src/Dodge/Update.hs 473;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f isRHS src/Geometry/LHS.hs 44;" f @@ -4270,7 +4270,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 872;" f +mvGust src/Dodge/Update.hs 880;" f mvLS src/Dodge/Placement/PlaceSpot.hs 235;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4298,7 +4298,7 @@ nextInSectionSS src/Dodge/SelectionSections.hs 34;" f nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f -noclipCheck src/Dodge/WallCreatureCollisions.hs 18;" f +noclipCheck src/Dodge/WallCreatureCollisions.hs 20;" f nodesNear src/Dodge/Path.hs 75;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f @@ -4358,10 +4358,10 @@ overPos src/Picture/Base.hs 298;" f overPosObj src/Shape.hs 274;" f overPosSH src/Shape.hs 258;" f overPosSP src/ShapePicture.hs 41;" f -overlapCircWalls src/Dodge/Base/Collide.hs 232;" f -overlapCircWallsClosest src/Dodge/Base/Collide.hs 271;" f -overlapSegCrs src/Dodge/Base/Collide.hs 59;" f -overlapSegWalls src/Dodge/Base/Collide.hs 212;" f +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 overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f @@ -4384,7 +4384,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 546;" f +pbFlicker src/Dodge/Update.hs 554;" 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 @@ -4549,10 +4549,10 @@ psposAddLabel src/Dodge/PlacementSpot.hs 71;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f pulseChecker src/Dodge/Item/Equipment.hs 84;" f -pushCr src/Dodge/WallCreatureCollisions.hs 38;" f +pushCr src/Dodge/WallCreatureCollisions.hs 40;" f pushL src/DoubleStack.hs 20;" f -pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 84;" f -pushOutFromWall src/Dodge/WallCreatureCollisions.hs 73;" f +pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 87;" f +pushOutFromWall src/Dodge/WallCreatureCollisions.hs 76;" f pushR src/DoubleStack.hs 24;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f pushYouOutFromWalls src/Dodge/Update.hs 342;" f @@ -4591,7 +4591,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 952;" f +radiusSpring src/Dodge/Update.hs 962;" 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 @@ -4613,7 +4613,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 728;" f +randWallReflect src/Dodge/Update.hs 736;" f randomChallenges src/Dodge/Room/Start.hs 64;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 247;" f @@ -4876,7 +4876,7 @@ 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 580;" f +setOldPos src/Dodge/Update.hs 588;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f @@ -4967,10 +4967,10 @@ showEquipItem src/Dodge/Item/Display.hs 108;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 57;" f +showManObj src/Dodge/TestString.hs 75;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 66;" f +showTimeFlow src/Dodge/TestString.hs 84;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -4979,7 +4979,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 957;" f +simpleCrSprings src/Dodge/Update.hs 967;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f @@ -5076,7 +5076,7 @@ sqPlatformChasm src/Dodge/Room/Tutorial.hs 225;" f sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f -squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 87;" f +squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 90;" f squashNormalizeV src/Geometry/Vector.hs 158;" f ssLookupDown src/Dodge/SelectionSections.hs 96;" f ssLookupGE' src/Dodge/SelectionSections.hs 150;" f @@ -5191,7 +5191,7 @@ testEvent src/Dodge/Event/Test.hs 11;" f testInventory src/Dodge/Creature.hs 307;" f testPic src/Dodge/Render/ShapePicture.hs 57;" f testSPic src/Dodge/Render/ShapePicture.hs 54;" f -testStringInit src/Dodge/TestString.hs 35;" f +testStringInit src/Dodge/TestString.hs 36;" f text src/Picture/Base.hs 185;" f textGrad src/Picture/Text.hs 5;" f textInputBlurb src/Dodge/Terminal.hs 43;" f @@ -5269,7 +5269,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f topInvW src/Dodge/ListDisplayParams.hs 54;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 53;" f +topTestPart src/Dodge/TestString.hs 71;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 84;" f @@ -5377,7 +5377,7 @@ unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 133;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 121;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 203;" f -updateAimPos src/Dodge/Update.hs 376;" f +updateAimPos src/Dodge/Update.hs 379;" f updateAllNodes src/TreeHelp.hs 86;" f updateArc src/Dodge/Tesla.hs 43;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 454;" f @@ -5387,47 +5387,47 @@ 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 643;" f +updateBullets src/Dodge/Update.hs 651;" f updateCamera src/Dodge/Update/Camera.hs 33;" f updateCloseObjects src/Dodge/Inventory.hs 125;" f -updateCloud src/Dodge/Update.hs 885;" f -updateClouds src/Dodge/Update.hs 754;" f +updateCloud src/Dodge/Update.hs 893;" f +updateClouds src/Dodge/Update.hs 762;" 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 615;" f -updateCreatureSoundPositions src/Dodge/Update.hs 594;" f -updateCreatureStride src/Dodge/Update.hs 370;" f -updateCreatureStrides src/Dodge/Update.hs 367;" f -updateDebris src/Dodge/Update.hs 657;" f +updateCreatureGroups src/Dodge/Update.hs 623;" f +updateCreatureSoundPositions src/Dodge/Update.hs 602;" f +updateCreatureStride src/Dodge/Update.hs 373;" f +updateCreatureStrides src/Dodge/Update.hs 370;" f +updateDebris src/Dodge/Update.hs 665;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 102;" f -updateDelayedEvents src/Dodge/Update.hs 988;" f +updateDelayedEvents src/Dodge/Update.hs 1003;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 636;" f +updateDistortions src/Dodge/Update.hs 644;" f updateDoor src/Dodge/Door.hs 22;" f -updateDoors src/Dodge/Update.hs 381;" f -updateDust src/Dodge/Update.hs 932;" f -updateDusts src/Dodge/Update.hs 760;" f +updateDoors src/Dodge/Update.hs 384;" f +updateDust src/Dodge/Update.hs 941;" f +updateDusts src/Dodge/Update.hs 768;" 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 745;" f +updateEnergyBalls src/Dodge/Update.hs 753;" 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 742;" f +updateFlames src/Dodge/Update.hs 750;" 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 907;" f -updateGasses src/Dodge/Update.hs 757;" f -updateGusts src/Dodge/Update.hs 869;" f -updateIMl src/Dodge/Update.hs 609;" f -updateIMl' src/Dodge/Update.hs 612;" 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 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 @@ -5440,35 +5440,35 @@ 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 496;" f +updateLasers src/Dodge/Update.hs 499;" 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 updateLongPressInGame src/Dodge/Update/Input/InGame.hs 417;" f updateMachine src/Dodge/Machine/Update.hs 24;" f -updateMagnets src/Dodge/Update.hs 384;" f +updateMagnets src/Dodge/Update.hs 387;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 205;" f -updateMouseContext src/Dodge/Update.hs 397;" f -updateMouseContextGame src/Dodge/Update.hs 402;" f +updateMouseContext src/Dodge/Update.hs 400;" f +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 627;" f -updateObjMapMaybe src/Dodge/Update.hs 620;" f -updatePastWorlds src/Dodge/Update.hs 485;" f -updatePlasmaBall src/Dodge/Update.hs 510;" f -updatePlasmaBalls src/Dodge/Update.hs 650;" 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 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 526;" f -updatePulseLaser src/Dodge/Update.hs 697;" f -updatePulseLasers src/Dodge/Update.hs 505;" f +updatePulseBall src/Dodge/Update.hs 534;" f +updatePulseLaser src/Dodge/Update.hs 705;" f +updatePulseLasers src/Dodge/Update.hs 508;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 639;" f +updateRadarBlips src/Dodge/Update.hs 647;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 748;" f +updateRadarSweeps src/Dodge/Update.hs 756;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 188;" f @@ -5478,17 +5478,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 739;" f +updateShockwaves src/Dodge/Update.hs 747;" 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 751;" f -updateTerminal src/Dodge/Update.hs 564;" f -updateTeslaArc src/Dodge/Update.hs 667;" f -updateTeslaArcs src/Dodge/Update.hs 664;" 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 updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 736;" f +updateTractorBeams src/Dodge/Update.hs 744;" f updateTurret src/Dodge/Machine/Update.hs 56;" f updateUniverse src/Dodge/Update.hs 81;" f updateUniverseFirst src/Dodge/Update.hs 92;" f @@ -5499,7 +5499,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 475;" f +updateWheelEvents src/Dodge/Update.hs 478;" f updateWorldEventFlag src/Dodge/Update.hs 127;" f updateWorldEventFlags src/Dodge/Update.hs 115;" f upperBody src/Dodge/Creature/Picture.hs 118;" f @@ -5564,7 +5564,7 @@ viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f violet src/Color.hs 48;" f -visibleWalls src/Dodge/Base/Collide.hs 217;" f +visibleWalls src/Dodge/Base/Collide.hs 218;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 62;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f @@ -5572,9 +5572,9 @@ volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 69;" f wallBlips src/Dodge/RadarSweep.hs 99;" f -wallBuffer src/Dodge/WallCreatureCollisions.hs 68;" f +wallBuffer src/Dodge/WallCreatureCollisions.hs 71;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f -wallToSurface src/Dodge/Base/Collide.hs 181;" f +wallToSurface src/Dodge/Base/Collide.hs 182;" f wallsFromRooms src/Dodge/Layout.hs 141;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1396;" f @@ -5627,9 +5627,9 @@ wlIsOpaque src/Dodge/Base/Wall.hs 6;" f wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f -wlWlCrush src/Dodge/WallCreatureCollisions.hs 62;" f +wlWlCrush src/Dodge/WallCreatureCollisions.hs 65;" f wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f -wlsCrush src/Dodge/WallCreatureCollisions.hs 58;" f +wlsCrush src/Dodge/WallCreatureCollisions.hs 61;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 34;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f @@ -5677,11 +5677,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 553;" f +zoneClouds src/Dodge/Update.hs 561;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 590;" f +zoneCreatures src/Dodge/Update.hs 598;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 558;" f +zoneDusts src/Dodge/Update.hs 566;" 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