From d06660fd06e62715d78743e65c594aa16ba842fb Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 23 Apr 2026 10:30:43 +0100 Subject: [PATCH] Add bee pheremones --- src/Dodge/Creature/Update.hs | 10 +- src/Dodge/Data/Cloud.hs | 7 + src/Dodge/Data/LWorld.hs | 1 + src/Dodge/Default/World.hs | 1 + src/Dodge/Render.hs | 7 +- src/Dodge/Update.hs | 10 ++ src/Shader/Poke/Cloud.hs | 12 +- tags | 331 ++++++++++++++++++----------------- 8 files changed, 212 insertions(+), 167 deletions(-) diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 7e3f71795..1c0057a5a 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -331,18 +331,20 @@ checkDeath' cr w = case cr ^. crHP of & dropAll cr -- the order of these is possibly important & stopSoundFrom (CrWeaponSound (_crID cr) 0) & corpseOrGib cr - & crEffectsOnDeath cr + & crDeathEffects cr & tocr . crStance . carriage %~ toDeathCarriage _ -> w where tocr = cWorld . lWorld . creatures . ix (_crID cr) -crEffectsOnDeath :: Creature -> World -> World -crEffectsOnDeath cr w = case cr ^. crType of - BeeCrit {_beeHive = mhid} -> fromMaybe w $ do +crDeathEffects :: Creature -> World -> World +crDeathEffects cr w = case cr ^. crType of + BeeCrit {_beeHive = mhid} -> beepheremone $ fromMaybe w $ do hid <- mhid return $ w & cWorld . lWorld . creatures . ix hid . crType . hiveChildren %~ IS.delete (cr ^. crID) _ -> w + where + beepheremone = cWorld . lWorld . beePheremones .:~ BPheremone (cr ^. crPos . _xy) 200 startDeathTimer :: Creature -> Creature startDeathTimer cr = cr & crDeathTimer ?~ case cr ^. crType of diff --git a/src/Dodge/Data/Cloud.hs b/src/Dodge/Data/Cloud.hs index 20f1198aa..46c40aa5b 100644 --- a/src/Dodge/Data/Cloud.hs +++ b/src/Dodge/Data/Cloud.hs @@ -42,9 +42,16 @@ data Gas = Gas data GasType = PoisonGas deriving (Eq, Ord, Show, Read) --Generic, Flat) +data BeePheremone = BPheremone + { _bpPos :: Point2 + , _bpTimer :: Int + } + makeLenses ''Cloud +makeLenses ''BeePheremone deriveJSON defaultOptions ''CloudType deriveJSON defaultOptions ''Cloud +deriveJSON defaultOptions ''BeePheremone makeLenses ''Dust deriveJSON defaultOptions ''Dust makeLenses ''Gas diff --git a/src/Dodge/Data/LWorld.hs b/src/Dodge/Data/LWorld.hs index 8821b56ff..0b274b1a9 100644 --- a/src/Dodge/Data/LWorld.hs +++ b/src/Dodge/Data/LWorld.hs @@ -96,6 +96,7 @@ data LWorld = LWorld , _creatureGroups :: IM.IntMap CrGroupParams , _items :: IM.IntMap Item , _clouds :: [Cloud] + , _beePheremones :: [BeePheremone] , _dusts :: [Dust] , _gasses :: [Gas] , _gusts :: IM.IntMap Gust diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 63c15b74d..9fdaac840 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -114,6 +114,7 @@ defaultLWorld = , _creatures = IM.empty , _creatureGroups = IM.empty , _clouds = mempty + , _beePheremones = mempty , _gasses = mempty , _dusts = mempty , _gusts = IM.empty diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 39b8cacff..350436cb1 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -77,10 +77,15 @@ doDrawing' win pdata u = do (0, 0, 0) ws ) + ncvs'' <- -- foldM (pokeCloud $ pdata ^. cloudVBO . vboPtr) 0 (w ^. cWorld . lWorld . clouds) + V.foldM' + (pokeBeePheremone (pdata ^. cloudVBO . vboPtr)) + 0 + (V.fromList $ w ^. cWorld . lWorld . beePheremones) nCloudVs' <- -- foldM (pokeCloud $ pdata ^. cloudVBO . vboPtr) 0 (w ^. cWorld . lWorld . clouds) V.foldM' (pokeCloud (pdata ^. cloudVBO . vboPtr)) - 0 + ncvs'' (V.fromList $ w ^. cWorld . lWorld . clouds) nCloudVs <- V.foldM' diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index e3bd1cb1c..020dd21fd 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -316,6 +316,7 @@ functionalUpdate = (updateIMl' (_linearShockwaves . _lWorld . _cWorld) updateLinearShockwave) . over uvWorld (updateIMl' (_projectiles . _lWorld . _cWorld) updateProjectile) . over uvWorld updateClouds + . over uvWorld updateBeePheremones . over uvWorld updateGasses . over uvWorld updateDusts . over uvWorld updateGusts @@ -779,6 +780,15 @@ updateSparks = updateObjCatMaybes sparks updateSpark updateClouds :: World -> World updateClouds w = updateObjMapMaybe clouds (updateCloud w) w +updateBeePheremones :: World -> World +updateBeePheremones w = updateObjMapMaybe beePheremones updateBeePheremone w + +updateBeePheremone :: BeePheremone -> Maybe BeePheremone +updateBeePheremone bp + | x <- bp ^. bpTimer + , x <= 0 = Nothing + | otherwise = Just $ bp & bpTimer -~ 1 + updateGasses :: World -> World updateGasses = updateObjCatMaybes gasses updateGas diff --git a/src/Shader/Poke/Cloud.hs b/src/Shader/Poke/Cloud.hs index 75dd092f8..c38068b3c 100644 --- a/src/Shader/Poke/Cloud.hs +++ b/src/Shader/Poke/Cloud.hs @@ -1,7 +1,8 @@ {-# LANGUAGE LambdaCase #-} -module Shader.Poke.Cloud (pokeCloud, pokeDust) where +module Shader.Poke.Cloud (pokeCloud, pokeDust, pokeBeePheremone) where +import Linear import Shader.Parameters import Color import Control.Lens @@ -18,6 +19,15 @@ pokeDust :: Ptr Float -> Int -> Dust -> IO Int {-# INLINE pokeDust #-} pokeDust vptr nv = pokeCloudLike vptr nv . mkDustCloudLike +pokeBeePheremone :: Ptr Float -> Int -> BeePheremone -> IO Int +{-# INLINE pokeBeePheremone #-} +pokeBeePheremone vptr nv = pokeCloudLike vptr nv . mkBeePheremoneCloudLike + +mkBeePheremoneCloudLike :: BeePheremone -> (Point3, Point4) +mkBeePheremoneCloudLike x = (20 & _xy .~ (x ^. bpPos), V4 1 1 0 a) + where + a = 0.8 * min 1 (fromIntegral (_bpTimer x) / 100) + mkCloudCloudLike :: Cloud -> (Point3, Point4) mkCloudCloudLike x = (x ^. clPos, V4 r g b a) where diff --git a/tags b/tags index 85ee06643..3e1ef9b2c 100644 --- a/tags +++ b/tags @@ -16,7 +16,7 @@ <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 93;" o -<$> src/Dodge/Data/LWorld.hs 179;" o +<$> src/Dodge/Data/LWorld.hs 180;" o <$> src/Dodge/Data/Terminal.hs 69;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C AIUNIT src/Dodge/Data/Item/Combine.hs 76;" C @@ -60,7 +60,7 @@ AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 125;" C -ArcNodeType src/Dodge/Data/LWorld.hs 159;" t +ArcNodeType src/Dodge/Data/LWorld.hs 160;" t ArcShad src/Picture/Data.hs 33;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t Arcing src/Dodge/Data/Item/Params.hs 15;" C @@ -94,6 +94,7 @@ BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 180;" C BLOWTORCH src/Dodge/Data/Item/Combine.hs 168;" C BLUE src/Color/Data.hs 14;" C BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 151;" C +BPheremone src/Dodge/Data/Cloud.hs 45;" C BQuad src/Geometry/Bezier.hs 9;" t BRAINHAT src/Dodge/Data/Item/Combine.hs 128;" C BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 136;" C @@ -122,6 +123,7 @@ BeamSplitterSF src/Dodge/Data/ComposedItem.hs 50;" C BeamType src/Dodge/Data/Beam.hs 44;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C BeeCrit src/Dodge/Data/Creature/Misc.hs 83;" C +BeePheremone src/Dodge/Data/Cloud.hs 45;" t BeltBulletAmmo src/Dodge/Data/AmmoType.hs 11;" C BezierTrajectory src/Dodge/Data/Bullet.hs 42;" C BezierTrajectoryType src/Dodge/Data/Bullet.hs 49;" C @@ -246,7 +248,7 @@ CookingDamage src/Dodge/Data/Damage/Type.hs 5;" C Corporation src/Dodge/Data/Scenario.hs 46;" C Cosmic src/Dodge/Data/Scenario.hs 74;" C CrAc src/Dodge/Data/CreatureEffect.hs 24;" t -CrArcNode src/Dodge/Data/LWorld.hs 164;" C +CrArcNode src/Dodge/Data/LWorld.hs 165;" C CrBl src/Dodge/Data/CreatureEffect.hs 20;" t CrCanShoot src/Dodge/Data/CreatureEffect.hs 20;" C CrChasm src/Dodge/Data/SoundOrigin.hs 18;" C @@ -1472,7 +1474,7 @@ WaitThen src/Dodge/Data/ActionPlan.hs 80;" C Walk src/Dodge/Data/ActionPlan.hs 28;" C Walking src/Dodge/Data/Creature/Stance.hs 24;" C Wall src/Dodge/Data/Wall.hs 17;" t -WallArcNode src/Dodge/Data/LWorld.hs 160;" C +WallArcNode src/Dodge/Data/LWorld.hs 161;" C WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 20;" C WallDraw src/Dodge/Data/Wall.hs 37;" t WallFlag src/Dodge/Data/Wall/Structure.hs 19;" t @@ -1556,7 +1558,7 @@ _apProjectiles src/Dodge/Data/Item/Use.hs 44;" f _apStrategy src/Dodge/Data/ActionPlan.hs 20;" f _aps src/Dodge/Data/Muzzle.hs 22;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 125;" f -_arcNode src/Dodge/Data/LWorld.hs 115;" f +_arcNode src/Dodge/Data/LWorld.hs 116;" f _asDir src/Dodge/Data/ArcStep.hs 14;" f _asObject src/Dodge/Data/ArcStep.hs 15;" f _asPos src/Dodge/Data/ArcStep.hs 13;" f @@ -1577,6 +1579,7 @@ _bdMinY src/Dodge/Data/Bounds.hs 13;" f _bdsTrigger src/Dodge/Data/Button.hs 26;" f _beamCombine src/Dodge/Data/Beam.hs 46;" f _beeHive src/Dodge/Data/Creature/Misc.hs 85;" f +_beePheremones src/Dodge/Data/LWorld.hs 99;" f _beeSlime src/Dodge/Data/Creature/Misc.hs 84;" f _blDir src/Dodge/Data/Block.hs 27;" f _blDraw src/Dodge/Data/Block.hs 29;" f @@ -1587,7 +1590,7 @@ _blID src/Dodge/Data/Block.hs 21;" f _blPos src/Dodge/Data/Block.hs 26;" f _blShadows src/Dodge/Data/Block.hs 24;" f _blWallIDs src/Dodge/Data/Block.hs 22;" f -_blocks src/Dodge/Data/LWorld.hs 129;" f +_blocks src/Dodge/Data/LWorld.hs 130;" f _bloomBlurShader src/Data/Preload/Render.hs 26;" f _bmColor src/Dodge/Data/Beam.hs 21;" f _bmDamage src/Dodge/Data/Beam.hs 20;" f @@ -1607,6 +1610,8 @@ _bonEff src/Dodge/Data/Button.hs 20;" f _bounceTolerance src/Dodge/Data/Projectile.hs 46;" f _bpColor src/Dodge/Data/Button.hs 17;" f _bpEff src/Dodge/Data/Button.hs 16;" f +_bpPos src/Dodge/Data/Cloud.hs 46;" f +_bpTimer src/Dodge/Data/Cloud.hs 47;" f _bsColor1 src/Dodge/Data/Button.hs 22;" f _bsColor2 src/Dodge/Data/Button.hs 23;" f _btEvent src/Dodge/Data/Button.hs 32;" f @@ -1623,10 +1628,10 @@ _buOldPos src/Dodge/Data/Bullet.hs 22;" f _buPayload src/Dodge/Data/Bullet.hs 18;" f _buPos src/Dodge/Data/Bullet.hs 21;" f _buVel src/Dodge/Data/Bullet.hs 19;" f -_bullets src/Dodge/Data/LWorld.hs 105;" f +_bullets src/Dodge/Data/LWorld.hs 106;" f _burstFrames src/Dodge/Data/TriggerType.hs 12;" f _burstRate src/Dodge/Data/TriggerType.hs 12;" f -_buttons src/Dodge/Data/LWorld.hs 135;" f +_buttons src/Dodge/Data/LWorld.hs 136;" f _cClock src/Dodge/Data/CWorld.hs 26;" f _cWorld src/Dodge/Data/World.hs 37;" f _camBoundBox src/Dodge/Data/Camera.hs 30;" f @@ -1639,7 +1644,7 @@ _camRot src/Dodge/Data/Camera.hs 24;" f _camViewDistance src/Dodge/Data/Camera.hs 29;" f _camViewFrom src/Dodge/Data/Camera.hs 28;" f _camZoom src/Dodge/Data/Camera.hs 25;" f -_canID src/Dodge/Data/LWorld.hs 165;" f +_canID src/Dodge/Data/LWorld.hs 166;" f _carDir src/Dodge/Data/Creature/Stance.hs 29;" f _carriage src/Dodge/Data/Creature/Stance.hs 18;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 29;" f @@ -1737,12 +1742,12 @@ _dbRot src/Dodge/Data/Prop.hs 31;" f _dbSpin src/Dodge/Data/Prop.hs 32;" f _dbType src/Dodge/Data/Prop.hs 29;" f _dbVel src/Dodge/Data/Prop.hs 30;" f -_debris src/Dodge/Data/LWorld.hs 103;" f +_debris src/Dodge/Data/LWorld.hs 104;" f _debugFunction src/Dodge/Data/Universe.hs 59;" f _debugMessage src/Dodge/Data/Universe.hs 58;" f _debug_booleans src/Dodge/Data/Config.hs 68;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 67;" f -_delayedEvents src/Dodge/Data/LWorld.hs 134;" f +_delayedEvents src/Dodge/Data/LWorld.hs 135;" f _diCloseFilter src/Dodge/Data/HUD.hs 34;" f _diInvFilter src/Dodge/Data/HUD.hs 33;" f _diSections src/Dodge/Data/HUD.hs 31;" f @@ -1750,7 +1755,7 @@ _diSelection src/Dodge/Data/HUD.hs 32;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 14;" f _dimCenter src/Dodge/Data/Item/Misc.hs 13;" f _dimRad src/Dodge/Data/Item/Misc.hs 12;" f -_distortions src/Dodge/Data/LWorld.hs 141;" f +_distortions src/Dodge/Data/LWorld.hs 142;" f _dmAmount src/Dodge/Data/Damage.hs 16;" f _dmAmount src/Dodge/Data/Damage.hs 19;" f _dmAmount src/Dodge/Data/Damage.hs 22;" f @@ -1786,7 +1791,7 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 119;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 113;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 118;" f _dodgeCooldown src/Dodge/Data/Creature/Misc.hs 65;" f -_doors src/Dodge/Data/LWorld.hs 124;" f +_doors src/Dodge/Data/LWorld.hs 125;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f _drHP src/Dodge/Data/Door.hs 38;" f _drID src/Dodge/Data/Door.hs 30;" f @@ -1809,14 +1814,14 @@ _dsZoning src/Dodge/Data/World.hs 52;" f _dtLeft src/Dodge/Data/DoubleTree.hs 16;" f _dtRight src/Dodge/Data/DoubleTree.hs 16;" f _dtValue src/Dodge/Data/DoubleTree.hs 16;" f -_dusts src/Dodge/Data/LWorld.hs 99;" f +_dusts src/Dodge/Data/LWorld.hs 100;" f _ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f _ebPos src/Dodge/Data/EnergyBall.hs 17;" f _ebTimer src/Dodge/Data/EnergyBall.hs 18;" f _ebType src/Dodge/Data/EnergyBall.hs 19;" f _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f -_energyBalls src/Dodge/Data/LWorld.hs 108;" f +_energyBalls src/Dodge/Data/LWorld.hs 109;" f _fallRot src/Dodge/Data/Creature/Stance.hs 29;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f @@ -1833,19 +1838,19 @@ _flItRot src/Dodge/Data/FloorItem.hs 11;" f _flPos src/Dodge/Data/Flame.hs 13;" f _flTimer src/Dodge/Data/Flame.hs 12;" f _flVel src/Dodge/Data/Flame.hs 14;" f -_flames src/Dodge/Data/LWorld.hs 109;" f +_flames src/Dodge/Data/LWorld.hs 110;" f _flankTarget src/Dodge/Data/ActionPlan.hs 135;" f -_flares src/Dodge/Data/LWorld.hs 112;" f +_flares src/Dodge/Data/LWorld.hs 113;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _flboName src/Shader/Data.hs 86;" f _flboPtr src/Shader/Data.hs 87;" f _flboStride src/Shader/Data.hs 88;" f -_floorItems src/Dodge/Data/LWorld.hs 131;" f +_floorItems src/Dodge/Data/LWorld.hs 132;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f _footForward src/Dodge/Data/Creature/Misc.hs 55;" f _footForward src/Dodge/Data/Creature/Misc.hs 59;" f -_foreShapes src/Dodge/Data/LWorld.hs 136;" f +_foreShapes src/Dodge/Data/LWorld.hs 137;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f _fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f @@ -1854,7 +1859,7 @@ _futureWorlds src/Dodge/Data/World.hs 72;" f _futureWorlds src/Dodge/Data/World.hs 78;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 66;" f _gasZoning src/Dodge/Data/World.hs 51;" f -_gasses src/Dodge/Data/LWorld.hs 100;" f +_gasses src/Dodge/Data/LWorld.hs 101;" f _genInts src/Dodge/Data/GenWorld.hs 28;" f _genPmnt src/Dodge/Data/GenWorld.hs 27;" f _genRooms src/Dodge/Data/GenWorld.hs 26;" f @@ -1893,7 +1898,7 @@ _guID src/Dodge/Data/Gust.hs 12;" f _guPos src/Dodge/Data/Gust.hs 13;" f _guTime src/Dodge/Data/Gust.hs 15;" f _guVel src/Dodge/Data/Gust.hs 14;" f -_gusts src/Dodge/Data/LWorld.hs 101;" f +_gusts src/Dodge/Data/LWorld.hs 102;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f _harvestTarget src/Dodge/Data/ActionPlan.hs 153;" f _heldPos src/Dodge/Data/Input.hs 43;" f @@ -1901,7 +1906,7 @@ _heldWorldPos src/Dodge/Data/Input.hs 45;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f _hiveChildren src/Dodge/Data/Creature/Misc.hs 89;" f _hiveGestation src/Dodge/Data/Creature/Misc.hs 90;" f -_hotkeys src/Dodge/Data/LWorld.hs 145;" f +_hotkeys src/Dodge/Data/LWorld.hs 146;" f _hud src/Dodge/Data/World.hs 47;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 19;" f @@ -1922,7 +1927,7 @@ _ilIsSelected src/Dodge/Data/Item/Location.hs 33;" f _ilTuID src/Dodge/Data/Item/Location.hs 37;" f _imAimStance src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f _imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" f -_imHotkeys src/Dodge/Data/LWorld.hs 146;" f +_imHotkeys src/Dodge/Data/LWorld.hs 147;" f _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _immediateEffect src/Loop/Data.hs 9;" f @@ -1957,12 +1962,12 @@ _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f _killTarget src/Dodge/Data/ActionPlan.hs 159;" f -_lAimPos src/Dodge/Data/LWorld.hs 147;" f -_lClock src/Dodge/Data/LWorld.hs 142;" f +_lAimPos src/Dodge/Data/LWorld.hs 148;" f +_lClock src/Dodge/Data/LWorld.hs 143;" f _lFootPos src/Dodge/Data/Creature/Misc.hs 66;" f -_lInvLock src/Dodge/Data/LWorld.hs 148;" f -_lTestInt src/Dodge/Data/LWorld.hs 144;" f -_lTestString src/Dodge/Data/LWorld.hs 143;" f +_lInvLock src/Dodge/Data/LWorld.hs 149;" f +_lTestInt src/Dodge/Data/LWorld.hs 145;" f +_lTestString src/Dodge/Data/LWorld.hs 144;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f _lampColor src/Dodge/Data/Creature/Misc.hs 95;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 95;" f @@ -1970,20 +1975,20 @@ _lampLSID src/Dodge/Data/Creature/Misc.hs 95;" f _lasWepXSF src/Dodge/Data/ComposedItem.hs 42;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f -_lasers src/Dodge/Data/LWorld.hs 117;" f +_lasers src/Dodge/Data/LWorld.hs 118;" f _ldpPos src/Dodge/Data/SelectionList.hs 15;" f _ldpScale src/Dodge/Data/SelectionList.hs 16;" f _ldpSize src/Dodge/Data/SelectionList.hs 18;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 17;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 121;" f -_lightSources src/Dodge/Data/LWorld.hs 137;" f +_lightSources src/Dodge/Data/LWorld.hs 138;" f _lightUBO src/Data/Preload/Render.hs 43;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingCloudShader src/Data/Preload/Render.hs 18;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f _lightingTextureShader src/Data/Preload/Render.hs 17;" f -_lights src/Dodge/Data/LWorld.hs 138;" f -_linearShockwaves src/Dodge/Data/LWorld.hs 120;" f +_lights src/Dodge/Data/LWorld.hs 139;" f +_linearShockwaves src/Dodge/Data/LWorld.hs 121;" f _linkGapEW src/Dodge/Data/Room.hs 36;" f _linkGapNS src/Dodge/Data/Room.hs 37;" f _locDT src/Dodge/Data/DoubleTree.hs 44;" f @@ -2003,9 +2008,9 @@ _lwPos src/Dodge/Data/LinearShockwave.hs 12;" f _lwTimer src/Dodge/Data/LinearShockwave.hs 15;" f _lyCounter src/Dodge/Data/MetaTree.hs 32;" f _lyGen src/Dodge/Data/MetaTree.hs 31;" f -_machines src/Dodge/Data/LWorld.hs 125;" f +_machines src/Dodge/Data/LWorld.hs 126;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f -_magnets src/Dodge/Data/LWorld.hs 128;" f +_magnets src/Dodge/Data/LWorld.hs 129;" f _mainAction src/Dodge/Data/ActionPlan.hs 129;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f @@ -2069,7 +2074,7 @@ _moString src/Dodge/Data/Universe.hs 112;" f _moString src/Dodge/Data/Universe.hs 117;" f _modOption src/Dodge/Data/Universe.hs 107;" f _modString src/Dodge/Data/Universe.hs 105;" f -_modifications src/Dodge/Data/LWorld.hs 132;" f +_modifications src/Dodge/Data/LWorld.hs 133;" f _mountID src/Dodge/Data/Creature/Stance.hs 32;" f _mountPos src/Dodge/Data/Creature/Stance.hs 32;" f _mouseButtons src/Dodge/Data/Input.hs 38;" f @@ -2109,7 +2114,7 @@ _nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 50;" f _nzPressure src/Dodge/Data/Muzzle.hs 49;" f _nzWalkSpeed src/Dodge/Data/Muzzle.hs 51;" f _offGridFromEdges src/Dodge/Data/Room.hs 86;" f -_oldMagnets src/Dodge/Data/LWorld.hs 127;" f +_oldMagnets src/Dodge/Data/LWorld.hs 128;" f _onGridFromEdges src/Dodge/Data/Room.hs 85;" f _opDraw src/Dodge/Data/Wall.hs 33;" f _opSel src/Dodge/Data/RightButtonOptions.hs 15;" f @@ -2148,7 +2153,7 @@ _plIDCont src/Dodge/Data/GenWorld.hs 118;" f _plMID src/Dodge/Data/GenWorld.hs 116;" f _plSpot src/Dodge/Data/GenWorld.hs 114;" f _plType src/Dodge/Data/GenWorld.hs 115;" f -_plasmaBalls src/Dodge/Data/LWorld.hs 106;" f +_plasmaBalls src/Dodge/Data/LWorld.hs 107;" f _playStatus src/Sound/Data.hs 15;" f _playingSounds src/Dodge/Data/World.hs 42;" f _posture src/Dodge/Data/Creature/Stance.hs 19;" f @@ -2160,8 +2165,8 @@ _prRooms src/Dodge/Tree/Shift.hs 31;" f _prRot src/Dodge/Data/Prop.hs 18;" f _preloadData src/Dodge/Data/Universe.hs 30;" f _pressedKeys src/Dodge/Data/Input.hs 37;" f -_projectiles src/Dodge/Data/LWorld.hs 104;" f -_props src/Dodge/Data/LWorld.hs 102;" f +_projectiles src/Dodge/Data/LWorld.hs 105;" f +_props src/Dodge/Data/LWorld.hs 103;" f _proxReqDead src/Dodge/Data/Machine/Sensor.hs 36;" f _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 35;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 34;" f @@ -2175,8 +2180,8 @@ _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 108;" f _psRot src/Dodge/Data/GenWorld.hs 98;" f _psSelect src/Dodge/Data/GenWorld.hs 101;" f _pullWallShader src/Data/Preload/Render.hs 22;" f -_pulseBalls src/Dodge/Data/LWorld.hs 119;" f -_pulseLasers src/Dodge/Data/LWorld.hs 118;" f +_pulseBalls src/Dodge/Data/LWorld.hs 120;" f +_pulseLasers src/Dodge/Data/LWorld.hs 119;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 43;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 42;" f _putBlock src/Dodge/Data/GenWorld.hs 43;" f @@ -2211,8 +2216,8 @@ _pzbTimer src/Dodge/Data/PulseLaser.hs 23;" f _pzbVel src/Dodge/Data/PulseLaser.hs 21;" f _rCommands src/Dodge/Terminal.hs 165;" f _rFootPos src/Dodge/Data/Creature/Misc.hs 67;" f -_radarBlips src/Dodge/Data/LWorld.hs 111;" f -_radarSweeps src/Dodge/Data/LWorld.hs 107;" f +_radarBlips src/Dodge/Data/LWorld.hs 112;" f +_radarSweeps src/Dodge/Data/LWorld.hs 108;" f _randGen src/Dodge/Data/World.hs 40;" f _rbColor src/Dodge/Data/RadarBlip.hs 13;" f _rbMaxTime src/Dodge/Data/RadarBlip.hs 15;" f @@ -2230,7 +2235,7 @@ _rdTR src/Dodge/Data/Distortion.hs 15;" f _rdTime src/Dodge/Data/Distortion.hs 27;" f _renderData src/Data/Preload.hs 11;" f _respawnDelay src/Dodge/Data/World.hs 67;" f -_respawnPos src/Dodge/Data/LWorld.hs 149;" f +_respawnPos src/Dodge/Data/LWorld.hs 150;" f _reverseAmount src/Dodge/Data/World.hs 71;" f _reverseAmount src/Dodge/Data/World.hs 77;" f _reverseAmount src/Dodge/Data/World.hs 81;" f @@ -2307,8 +2312,8 @@ _scurPos src/Dodge/Data/SelectionList.hs 26;" f _scurSize src/Dodge/Data/SelectionList.hs 27;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f -_seenLocations src/Dodge/Data/LWorld.hs 139;" f -_selLocation src/Dodge/Data/LWorld.hs 140;" f +_seenLocations src/Dodge/Data/LWorld.hs 140;" f +_selLocation src/Dodge/Data/LWorld.hs 141;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f @@ -2326,7 +2331,7 @@ _shapeEBO src/Data/Preload/Render.hs 29;" f _shapeHalfSize src/Shape/Data.hs 13;" f _shapeShader src/Data/Preload/Render.hs 28;" f _shellPayload src/Dodge/Data/Item/Combine.hs 103;" f -_shockwaves src/Dodge/Data/LWorld.hs 116;" f +_shockwaves src/Dodge/Data/LWorld.hs 117;" f _siColor src/Dodge/Data/SelectionList.hs 50;" f _siDisplayMod src/Dodge/Data/SelectionList.hs 53;" f _siHeight src/Dodge/Data/SelectionList.hs 47;" f @@ -2370,7 +2375,7 @@ _soundVolumeFraction src/Sound/Data.hs 50;" f _soundsToInvestigate src/Dodge/Data/Creature.hs 80;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f -_sparks src/Dodge/Data/LWorld.hs 110;" f +_sparks src/Dodge/Data/LWorld.hs 111;" f _spawnEBT src/Dodge/Data/Bullet.hs 33;" f _ssIndent src/Dodge/Data/SelectionList.hs 36;" f _ssItems src/Dodge/Data/SelectionList.hs 32;" f @@ -2407,10 +2412,10 @@ _tbPos src/Dodge/Data/TractorBeam.hs 12;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 13;" f _tbTime src/Dodge/Data/TractorBeam.hs 15;" f _tbVel src/Dodge/Data/TractorBeam.hs 14;" f -_tempSPic src/Dodge/Data/LWorld.hs 113;" f +_tempSPic src/Dodge/Data/LWorld.hs 114;" f _termID src/Dodge/Data/HUD.hs 27;" f -_terminals src/Dodge/Data/LWorld.hs 126;" f -_teslaArcs src/Dodge/Data/LWorld.hs 114;" f +_terminals src/Dodge/Data/LWorld.hs 127;" f +_teslaArcs src/Dodge/Data/LWorld.hs 115;" f _testFloat src/Dodge/Data/World.hs 45;" f _textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f @@ -2449,10 +2454,10 @@ _toPlaySoundVolumeFraction src/Sound/Data.hs 38;" f _toPlaySounds src/Dodge/Data/World.hs 41;" f _topBoxSize src/Shape/Data.hs 12;" f _tptString src/Dodge/Data/Terminal/Status.hs 15;" f -_tractorBeams src/Dodge/Data/LWorld.hs 121;" f +_tractorBeams src/Dodge/Data/LWorld.hs 122;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f -_triggers src/Dodge/Data/LWorld.hs 130;" f +_triggers src/Dodge/Data/LWorld.hs 131;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 44;" f _ttTriggerID src/Dodge/Data/Terminal.hs 43;" f _tuDir src/Dodge/Data/Machine.hs 68;" f @@ -2534,11 +2539,11 @@ _wSoundFilter src/Dodge/Data/World.hs 43;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f _waitThenAction src/Dodge/Data/ActionPlan.hs 82;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 81;" f -_wallDamages src/Dodge/Data/LWorld.hs 123;" f +_wallDamages src/Dodge/Data/LWorld.hs 124;" f _wallVBO src/Data/Preload/Render.hs 50;" f -_walls src/Dodge/Data/LWorld.hs 122;" f -_wanID src/Dodge/Data/LWorld.hs 162;" f -_wanPos src/Dodge/Data/LWorld.hs 161;" f +_walls src/Dodge/Data/LWorld.hs 123;" f +_wanID src/Dodge/Data/LWorld.hs 163;" f +_wanPos src/Dodge/Data/LWorld.hs 162;" f _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _winVBO src/Data/Preload/Render.hs 49;" f @@ -2559,7 +2564,7 @@ _wlTouchThrough src/Dodge/Data/Wall.hs 21;" f _wlUnshadowed src/Dodge/Data/Wall.hs 22;" f _wlZoning src/Dodge/Data/World.hs 53;" f _worldEventFlags src/Dodge/Data/World.hs 48;" f -_worldEvents src/Dodge/Data/LWorld.hs 133;" f +_worldEvents src/Dodge/Data/LWorld.hs 134;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 15;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 13;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 13;" f @@ -2615,7 +2620,7 @@ addToTrunk src/TreeHelp.hs 159;" f addWarningTerminal src/Dodge/Room/Warning.hs 98;" f addZ src/Geometry/Vector3D.hs 90;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 497;" f +advanceScrollAmount src/Dodge/Update.hs 498;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f aimDelaySweep src/Dodge/Render/Picture.hs 291;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f @@ -2816,7 +2821,7 @@ brightX src/Color.hs 143;" f btSPic src/Dodge/Render/ShapePicture.hs 150;" f btText src/Dodge/Inventory/SelectionList.hs 252;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 431;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 436;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 56;" f @@ -2837,7 +2842,7 @@ calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcTexCoord src/Tile.hs 19;" f canSee src/Dodge/Base/Collide.hs 341;" f canSeeIndirect src/Dodge/Base/Collide.hs 348;" f -canSpring src/Dodge/Update.hs 995;" f +canSpring src/Dodge/Update.hs 1005;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f capacitor src/Dodge/Item/Ammo.hs 67;" f card8Vec src/Dodge/Base/CardinalPoint.hs 32;" f @@ -2877,13 +2882,13 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 316;" f checkDeath' src/Dodge/Creature/Update.hs 319;" f -checkEndGame src/Dodge/Update.hs 881;" f +checkEndGame src/Dodge/Update.hs 891;" 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 410;" f +checkTermDist src/Dodge/Update.hs 411;" 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 @@ -2907,7 +2912,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f circleSolidCol src/Picture/Base.hs 160;" f clAlt src/Dodge/Cloud.hs 5;" f -clColor src/Shader/Poke/Cloud.hs 39;" f +clColor src/Shader/Poke/Cloud.hs 49;" f clZoneSize src/Dodge/Zoning/Cloud.hs 24;" f clampPath src/Dodge/Room/Procedural.hs 148;" f clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 880;" f @@ -3001,7 +3006,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 136;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 411;" f cornerList src/Preload/Render.hs 236;" f -corpseOrGib src/Dodge/Creature/Update.hs 359;" f +corpseOrGib src/Dodge/Creature/Update.hs 361;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -3011,13 +3016,13 @@ crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 79;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f -crCrSpring src/Dodge/Update.hs 1002;" f +crCrSpring src/Dodge/Update.hs 1012;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 68;" f +crDeathEffects src/Dodge/Creature/Update.hs 340;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 40;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f -crEffectsOnDeath src/Dodge/Creature/Update.hs 340;" f crHasTarget src/Dodge/Creature/Test.hs 63;" f crHasTargetLOS src/Dodge/Creature/Test.hs 66;" f crHeight src/Dodge/Base/Collide.hs 187;" f @@ -3033,12 +3038,12 @@ crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f crMoveImpulses src/Dodge/Creature/Action.hs 144;" f -crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 43;" f -crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 60;" f -crMvBy src/Dodge/Creature/Impulse/Movement.hs 24;" f -crMvByNoStride src/Dodge/Creature/Impulse/Movement.hs 35;" f -crMvForward src/Dodge/Creature/Impulse/Movement.hs 74;" f -crMvForward' src/Dodge/Creature/Impulse/Movement.hs 71;" f +crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 45;" f +crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 62;" f +crMvBy src/Dodge/Creature/Impulse/Movement.hs 26;" f +crMvByNoStride src/Dodge/Creature/Impulse/Movement.hs 37;" f +crMvForward src/Dodge/Creature/Impulse/Movement.hs 85;" f +crMvForward' src/Dodge/Creature/Impulse/Movement.hs 73;" f crMvType src/Dodge/Creature/MoveType.hs 7;" f crNearPoint src/Dodge/Creature/Test.hs 129;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f @@ -3049,15 +3054,15 @@ crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f crSetRoots src/Dodge/Inventory/Location.hs 56;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 990;" f +crSpring src/Dodge/Update.hs 1000;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f crUpdate src/Dodge/Creature/Update.hs 309;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 69;" f -crWalk src/Dodge/Creature/Impulse/Movement.hs 27;" f -crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 51;" f +crWalk src/Dodge/Creature/Impulse/Movement.hs 29;" f +crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 53;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 16;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 71;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 81;" f @@ -3086,9 +3091,9 @@ createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureShootLaser src/Dodge/HeldUse.hs 859;" f creatureShootPulseLaser src/Dodge/HeldUse.hs 887;" f -creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 77;" f -creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 98;" f -creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 87;" f +creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 88;" f +creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 109;" f +creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 98;" f critDeadEnd src/Dodge/Room/Room.hs 261;" f critInDeadEnd src/Dodge/Room/Room.hs 257;" f critsPillarRoom src/Dodge/Room/Room.hs 417;" f @@ -3232,7 +3237,7 @@ defaultDoorWall src/Dodge/Default/Wall.hs 29;" f defaultDrawButton src/Dodge/Button/Draw.hs 44;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 174;" f +defaultHUD src/Dodge/Default/World.hs 175;" f defaultInanimate src/Dodge/Default/Creature.hs 61;" f defaultInput src/Dodge/Default/World.hs 13;" f defaultIntention src/Dodge/Default/Creature.hs 97;" f @@ -3288,7 +3293,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 192;" f -displayTerminalLineString src/Dodge/Update.hs 582;" f +displayTerminalLineString src/Dodge/Update.hs 583;" f dist src/Geometry/Vector.hs 193;" f dist3 src/Geometry/Vector3D.hs 102;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 150;" f @@ -3369,7 +3374,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 35;" f -doWorldEvents src/Dodge/Update.hs 506;" f +doWorldEvents src/Dodge/Update.hs 507;" 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 @@ -3519,7 +3524,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f -dropAll src/Dodge/Creature/Update.hs 397;" f +dropAll src/Dodge/Creature/Update.hs 399;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 178;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3541,7 +3546,7 @@ dtToLRAdjEither src/Dodge/DoubleTree.hs 80;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 52;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 57;" f dummyMenuOption src/Dodge/Menu/Option.hs 72;" f -dustColor src/Shader/Poke/Cloud.hs 45;" f +dustColor src/Shader/Poke/Cloud.hs 55;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3609,7 +3614,7 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f -feedSlime src/Dodge/Update.hs 1069;" f +feedSlime src/Dodge/Update.hs 1079;" f feet src/Dodge/Creature/Picture.hs 210;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f @@ -3687,7 +3692,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 278;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f -fuseSlimes src/Dodge/Update.hs 1088;" f +fuseSlimes src/Dodge/Update.hs 1098;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3700,7 +3705,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 170;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f -gasEffect src/Dodge/Update.hs 906;" f +gasEffect src/Dodge/Update.hs 916;" f gasType src/Dodge/HeldUse.hs 1135;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3726,8 +3731,8 @@ getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 620;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 607;" f -getDebugMouseOver src/Dodge/Update.hs 472;" f -getDistortions src/Dodge/Render.hs 443;" f +getDebugMouseOver src/Dodge/Update.hs 473;" f +getDistortions src/Dodge/Render.hs 448;" f getEdgesCrossing src/Dodge/Path.hs 39;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1284;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3736,7 +3741,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 484;" f +getMenuMouseContext src/Dodge/Update.hs 485;" f getNodePos src/Dodge/Path.hs 36;" f getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f @@ -4335,9 +4340,10 @@ missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 666;" f mixColors src/Color.hs 113;" f mixColorsFrac src/Color.hs 109;" f mixColorsLinear src/Color.hs 122;" f -mkCloudCloudLike src/Shader/Poke/Cloud.hs 21;" f +mkBeePheremoneCloudLike src/Shader/Poke/Cloud.hs 26;" f +mkCloudCloudLike src/Shader/Poke/Cloud.hs 31;" f mkCustomLenses src/ThirdPartyLens.hs 7;" f -mkDustCloudLike src/Shader/Poke/Cloud.hs 27;" f +mkDustCloudLike src/Shader/Poke/Cloud.hs 37;" f mkGraphFromEdges src/GraphHelp.hs 4;" f mkNode src/Dodge/Graph.hs 29;" f mkRectangle src/Dodge/LevelGen/DoorPane.hs 7;" f @@ -4380,11 +4386,11 @@ muout src/Dodge/RoomLink.hs 144;" f muzFlareAt src/Dodge/HeldUse.hs 702;" f muzzlePos src/Dodge/HeldUse.hs 786;" f muzzleRandPos src/Dodge/HeldUse.hs 795;" f -muzzleWallCheck src/Dodge/Update.hs 348;" f +muzzleWallCheck src/Dodge/Update.hs 349;" f mvButton src/Dodge/Placement/PlaceSpot.hs 170;" f mvCr src/Dodge/Placement/PlaceSpot.hs 173;" f mvFS src/Dodge/Placement/PlaceSpot.hs 176;" f -mvGust src/Dodge/Update.hs 897;" f +mvGust src/Dodge/Update.hs 907;" f mvLS src/Dodge/Placement/PlaceSpot.hs 215;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4501,7 +4507,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 219;" f -pbFlicker src/Dodge/Update.hs 567;" f +pbFlicker src/Dodge/Update.hs 568;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 143;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4563,20 +4569,21 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f -poisonSPic src/Dodge/Creature/Update.hs 393;" f +poisonSPic src/Dodge/Creature/Update.hs 395;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 518;" f pokeArrayOff src/Shader/Poke.hs 530;" f +pokeBeePheremone src/Shader/Poke/Cloud.hs 22;" f pokeBox src/Shader/Poke.hs 238;" f pokeBoxSurface src/Shader/Poke.hs 271;" f pokeChasm src/Shader/Poke/Floor.hs 25;" f pokeChasmVerx src/Shader/Poke/Floor.hs 28;" f -pokeCloud src/Shader/Poke/Cloud.hs 13;" f -pokeCloudLike src/Shader/Poke/Cloud.hs 33;" f +pokeCloud src/Shader/Poke/Cloud.hs 14;" f +pokeCloudLike src/Shader/Poke/Cloud.hs 43;" f pokeCone src/Shader/Poke.hs 215;" f pokeCylinder src/Shader/Poke.hs 175;" f pokeCylinderCaps src/Shader/Poke.hs 227;" f -pokeDust src/Shader/Poke/Cloud.hs 17;" f +pokeDust src/Shader/Poke/Cloud.hs 18;" f pokeF src/Shader/Poke.hs 69;" f pokeFlatV src/Shader/Poke.hs 457;" f pokeFloors src/Shader/Poke.hs 63;" f @@ -4678,7 +4685,7 @@ pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 126;" f pushOutFromWall' src/Dodge/WallCreatureCollisions.hs 115;" f pushR src/DoubleStack.hs 24;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f -pushYouOutFromWalls src/Dodge/Update.hs 344;" f +pushYouOutFromWalls src/Dodge/Update.hs 345;" f putAutoDoor src/Dodge/Placement/Instance/Door.hs 64;" f putBlockN src/Dodge/Placement/Instance/Wall.hs 120;" f putBlockRect src/Dodge/Placement/Instance/Wall.hs 111;" f @@ -4719,7 +4726,7 @@ rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToCompass src/Dodge/Inventory/SelectionList.hs 111;" f radToDeg src/Geometry/Vector.hs 131;" f -radiusSpring src/Dodge/Update.hs 979;" f +radiusSpring src/Dodge/Update.hs 989;" 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 @@ -4741,7 +4748,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 753;" f +randWallReflect src/Dodge/Update.hs 754;" f randomChallenges src/Dodge/Room/Start.hs 64;" f randomCompass src/Dodge/Layout.hs 61;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 248;" f @@ -4757,7 +4764,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 19;" f randsOnCirc src/RandomHelp.hs 146;" f randsSpread src/RandomHelp.hs 139;" f ratIntersectLineLine src/Geometry/Intersect.hs 215;" f -rdToVec2s src/Dodge/Render.hs 426;" f +rdToVec2s src/Dodge/Render.hs 431;" f readSaveSlot src/Dodge/Save.hs 45;" f recComFindMax src/Dodge/Terminal.hs 174;" f recComFindMin src/Dodge/Terminal.hs 168;" f @@ -4937,7 +4944,7 @@ scaleSH src/Shape.hs 271;" f scalp src/Dodge/Creature/Picture.hs 369;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 390;" f +scorchSPic src/Dodge/Creature/Update.hs 392;" f screenBox src/Dodge/Base/Window.hs 54;" f screenPolygon src/Dodge/Base/Window.hs 18;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f @@ -5001,7 +5008,7 @@ setLinkType src/Dodge/RoomLink.hs 79;" f setLinkTypePD src/Dodge/RoomLink.hs 86;" f setMusicVolume src/Sound.hs 164;" f setMvPosToTargetCr src/Dodge/Creature/ReaderUpdate.hs 60;" f -setOldPos src/Dodge/Update.hs 598;" f +setOldPos src/Dodge/Update.hs 599;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f @@ -5018,7 +5025,7 @@ setTiles src/Dodge/Layout.hs 68;" f setTreeInts src/Dodge/Room/Tutorial.hs 112;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 71;" f -setViewport src/Dodge/Render.hs 448;" f +setViewport src/Dodge/Render.hs 453;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Euse.hs 108;" f @@ -5105,7 +5112,7 @@ shufflePair src/RandomHelp.hs 166;" f shuffleRoomPos src/Dodge/Layout.hs 103;" f shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 984;" f +simpleCrSprings src/Dodge/Update.hs 994;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 816;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 854;" f @@ -5134,9 +5141,9 @@ slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f slideWindow src/ListHelp.hs 81;" f slimeCrit src/Dodge/Creature/ChaseCrit.hs 68;" f slimeCritUpdate src/Dodge/Creature/Update.hs 163;" f -slimeEatSound src/Dodge/Update.hs 1107;" f -slimeFood src/Dodge/Update.hs 1062;" f -slimeSuck src/Dodge/Update.hs 1046;" f +slimeEatSound src/Dodge/Update.hs 1117;" f +slimeFood src/Dodge/Update.hs 1072;" f +slimeSuck src/Dodge/Update.hs 1056;" f slinkCrit src/Dodge/Creature/ChaseCrit.hs 56;" f slinkCritUpdate src/Dodge/Creature/Update.hs 270;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f @@ -5244,7 +5251,7 @@ stackText src/Picture/Base.hs 180;" f stackedInventory src/Dodge/Creature.hs 320;" f startCr src/Dodge/Creature.hs 85;" f startCrafts src/Dodge/Room/Start.hs 94;" f -startDeathTimer src/Dodge/Creature/Update.hs 347;" f +startDeathTimer src/Dodge/Creature/Update.hs 349;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f startInvList src/Dodge/Creature.hs 99;" f startInventory src/Dodge/Creature.hs 102;" f @@ -5269,7 +5276,7 @@ storageShape src/Dodge/Machine/Draw.hs 31;" f storeRoomID src/Dodge/Room/Modify.hs 23;" f strFromEquipment src/Dodge/Creature/Statistics.hs 59;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 73;" f -strengthFactor src/Dodge/Creature/Impulse/Movement.hs 65;" f +strengthFactor src/Dodge/Creature/Impulse/Movement.hs 67;" f strictify src/MaybeHelp.hs 35;" f strideLength src/Dodge/Creature/HandPos.hs 46;" f strideRot src/Dodge/Item/HeldOffset.hs 80;" f @@ -5391,12 +5398,12 @@ tlSetStatus src/Dodge/Terminal.hs 112;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 118;" f tmDistributeLines src/Dodge/Room/Room.hs 474;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f -tmScreenMousePos src/Dodge/Update.hs 464;" f +tmScreenMousePos src/Dodge/Update.hs 465;" f toBinary src/Dodge/Inventory/SelectionList.hs 154;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f -toDeathCarriage src/Dodge/Creature/Update.hs 352;" f +toDeathCarriage src/Dodge/Creature/Update.hs 354;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5530,7 +5537,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 397;" f +updateAimPos src/Dodge/Update.hs 398;" f updateAllNodes src/TreeHelp.hs 88;" f updateArc src/Dodge/Tesla.hs 43;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 488;" f @@ -5538,53 +5545,55 @@ updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBeeCrit src/Dodge/Creature/Update.hs 105;" f +updateBeePheremone src/Dodge/Update.hs 786;" f +updateBeePheremones src/Dodge/Update.hs 783;" 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 668;" f +updateBullets src/Dodge/Update.hs 669;" f updateCamera src/Dodge/Update/Camera.hs 33;" f updateCarriage src/Dodge/Creature/State/WalkCycle.hs 20;" f updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 25;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f -updateCloud src/Dodge/Update.hs 910;" f -updateClouds src/Dodge/Update.hs 779;" f +updateCloud src/Dodge/Update.hs 920;" f +updateClouds src/Dodge/Update.hs 780;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 45;" f -updateCreatureGroups src/Dodge/Update.hs 640;" f -updateCreatureSoundPositions src/Dodge/Update.hs 619;" f -updateCreatureStride src/Dodge/Update.hs 376;" f -updateCreatureStrides src/Dodge/Update.hs 373;" f -updateDebris src/Dodge/Update.hs 682;" f +updateCreatureGroups src/Dodge/Update.hs 641;" f +updateCreatureSoundPositions src/Dodge/Update.hs 620;" f +updateCreatureStride src/Dodge/Update.hs 377;" f +updateCreatureStrides src/Dodge/Update.hs 374;" f +updateDebris src/Dodge/Update.hs 683;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1114;" f +updateDelayedEvents src/Dodge/Update.hs 1124;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 661;" f +updateDistortions src/Dodge/Update.hs 662;" f updateDoor src/Dodge/Door.hs 22;" f -updateDoors src/Dodge/Update.hs 402;" f -updateDust src/Dodge/Update.hs 958;" f -updateDusts src/Dodge/Update.hs 785;" f +updateDoors src/Dodge/Update.hs 403;" f +updateDust src/Dodge/Update.hs 968;" f +updateDusts src/Dodge/Update.hs 795;" f updateEdge src/Dodge/Path.hs 45;" 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 770;" f +updateEnergyBalls src/Dodge/Update.hs 771;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 515;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 767;" f +updateFlames src/Dodge/Update.hs 768;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 372;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 368;" f -updateGas src/Dodge/Update.hs 932;" f -updateGasses src/Dodge/Update.hs 782;" f -updateGusts src/Dodge/Update.hs 894;" f +updateGas src/Dodge/Update.hs 942;" f +updateGasses src/Dodge/Update.hs 792;" f +updateGusts src/Dodge/Update.hs 904;" f updateHiveCrit src/Dodge/Creature/Update.hs 84;" f -updateIMl src/Dodge/Update.hs 634;" f -updateIMl' src/Dodge/Update.hs 637;" f +updateIMl src/Dodge/Update.hs 635;" f +updateIMl' src/Dodge/Update.hs 638;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 438;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5597,35 +5606,35 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 391;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 414;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 12;" f -updateLasers src/Dodge/Update.hs 513;" f +updateLasers src/Dodge/Update.hs 514;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 59;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f updateMachine src/Dodge/Machine/Update.hs 24;" f -updateMagnets src/Dodge/Update.hs 405;" f +updateMagnets src/Dodge/Update.hs 406;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 238;" f -updateMouseContext src/Dodge/Update.hs 418;" f -updateMouseContextGame src/Dodge/Update.hs 423;" f +updateMouseContext src/Dodge/Update.hs 419;" f +updateMouseContextGame src/Dodge/Update.hs 424;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 100;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 90;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 201;" f -updateObjCatMaybes src/Dodge/Update.hs 652;" f -updateObjMapMaybe src/Dodge/Update.hs 645;" f -updatePastWorlds src/Dodge/Update.hs 502;" f -updatePlasmaBall src/Dodge/Update.hs 527;" f -updatePlasmaBalls src/Dodge/Update.hs 675;" f +updateObjCatMaybes src/Dodge/Update.hs 653;" f +updateObjMapMaybe src/Dodge/Update.hs 646;" f +updatePastWorlds src/Dodge/Update.hs 503;" f +updatePlasmaBall src/Dodge/Update.hs 528;" f +updatePlasmaBalls src/Dodge/Update.hs 676;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f -updatePulse src/Dodge/Creature/Update.hs 405;" f -updatePulseBall src/Dodge/Update.hs 547;" f -updatePulseLaser src/Dodge/Update.hs 722;" f -updatePulseLasers src/Dodge/Update.hs 522;" f +updatePulse src/Dodge/Creature/Update.hs 407;" f +updatePulseBall src/Dodge/Update.hs 548;" f +updatePulseLaser src/Dodge/Update.hs 723;" f +updatePulseLasers src/Dodge/Update.hs 523;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 664;" f +updateRadarBlips src/Dodge/Update.hs 665;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 773;" f +updateRadarSweeps src/Dodge/Update.hs 774;" f updateRandNode src/TreeHelp.hs 111;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 190;" f @@ -5635,17 +5644,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 764;" f +updateShockwaves src/Dodge/Update.hs 765;" f updateSingleNodes src/TreeHelp.hs 100;" 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 776;" f -updateTerminal src/Dodge/Update.hs 585;" f -updateTeslaArc src/Dodge/Update.hs 692;" f -updateTeslaArcs src/Dodge/Update.hs 689;" f +updateSparks src/Dodge/Update.hs 777;" f +updateTerminal src/Dodge/Update.hs 586;" f +updateTeslaArc src/Dodge/Update.hs 693;" f +updateTeslaArcs src/Dodge/Update.hs 690;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 761;" f +updateTractorBeams src/Dodge/Update.hs 762;" f updateTurret src/Dodge/Machine/Update.hs 55;" f updateUniverse src/Dodge/Update.hs 83;" f updateUniverseFirst src/Dodge/Update.hs 94;" f @@ -5656,7 +5665,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f updateVocTimer src/Dodge/Humanoid.hs 63;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f -updateWheelEvents src/Dodge/Update.hs 492;" f +updateWheelEvents src/Dodge/Update.hs 493;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f upperBody src/Dodge/Creature/Picture.hs 389;" f @@ -5839,13 +5848,13 @@ zeroOneSmooth src/Dodge/Creature/HandPos.hs 61;" f zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 142;" f -zonableCreature src/Dodge/Update.hs 613;" f +zonableCreature src/Dodge/Update.hs 614;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f -zoneClouds src/Dodge/Update.hs 574;" f +zoneClouds src/Dodge/Update.hs 575;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 609;" f +zoneCreatures src/Dodge/Update.hs 610;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 579;" f +zoneDusts src/Dodge/Update.hs 580;" 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