diff --git a/src/Dodge/Data/LWorld.hs b/src/Dodge/Data/LWorld.hs index 33c14afbe..8821b56ff 100644 --- a/src/Dodge/Data/LWorld.hs +++ b/src/Dodge/Data/LWorld.hs @@ -40,8 +40,10 @@ module Dodge.Data.LWorld ( module Dodge.Data.Wall, module Dodge.Data.WorldEffect, module Dodge.Data.PulseLaser, + module Dodge.Data.PlasmaBall, ) where +import Dodge.Data.PlasmaBall import ShapePicture.Data import Dodge.Data.PulseLaser import Dodge.Data.Equipment.Misc @@ -101,6 +103,7 @@ data LWorld = LWorld , _debris :: [Debris] , _projectiles :: IM.IntMap Projectile , _bullets :: [Bullet] + , _plasmaBalls :: [PlasmaBall] , _radarSweeps :: [RadarSweep] , _energyBalls :: [EnergyBall] , _flames :: [Flame] diff --git a/src/Dodge/Data/PlasmaBall.hs b/src/Dodge/Data/PlasmaBall.hs new file mode 100644 index 000000000..511a16cf6 --- /dev/null +++ b/src/Dodge/Data/PlasmaBall.hs @@ -0,0 +1,25 @@ +{-# LANGUAGE StrictData #-} +{-# LANGUAGE TemplateHaskell #-} + +module Dodge.Data.PlasmaBall ( + module Dodge.Data.PlasmaBall +) where + +import Control.Lens +import Data.Aeson +import Data.Aeson.TH +import Geometry.Data + +data PlasmaBall = PBall + { _pbType :: PlasmaBallType + , _pbVel :: Point2 + , _pbPos :: Point2 + } + deriving (Show, Eq, Ord, Read) --Generic, Flat) + +data PlasmaBallType = DefaultPlasma + deriving (Show, Eq, Ord, Read) --Generic, Flat) + +makeLenses ''PlasmaBall +deriveJSON defaultOptions ''PlasmaBallType +deriveJSON defaultOptions ''PlasmaBall diff --git a/src/Dodge/Data/PulseLaser.hs b/src/Dodge/Data/PulseLaser.hs index 019b8cdf2..35393d0a0 100644 --- a/src/Dodge/Data/PulseLaser.hs +++ b/src/Dodge/Data/PulseLaser.hs @@ -18,10 +18,10 @@ data PulseLaser = PulseLaser deriving (Eq, Ord, Show, Read) --Generic, Flat) data PulseBall = PulseBall - { _pbVel :: Point2 - , _pbPos :: Point2 - , _pbTimer :: Int - , _pbID :: Int + { _pzbVel :: Point2 + , _pzbPos :: Point2 + , _pzbTimer :: Int + , _pzbID :: Int } deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 3448707b8..818e1a916 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -120,6 +120,7 @@ defaultLWorld = , _debris = mempty , _projectiles = IM.empty , _bullets = [] + , _plasmaBalls = [] , _flames = [] , _radarSweeps = [] , _sparks = [] diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index f161dc6f0..837ec1279 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -893,10 +893,10 @@ shootPulseBall (p, q) w = w & cWorld . lWorld . pulseBalls . at i ?~ PulseBall - { _pbPos = p ^. _xy - , _pbVel = 3.5 * unitVectorAtAngle (Q.qToAng q) - , _pbTimer = 200 - , _pbID = i + { _pzbPos = p ^. _xy + , _pzbVel = 3.5 * unitVectorAtAngle (Q.qToAng q) + , _pzbTimer = 200 + , _pzbID = i } & soundStart (PBSound i) (p ^. _xy) energyReleaseS Nothing where diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index 7f88272d5..f669fe9fc 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -25,7 +25,8 @@ worldSPic cfig u = <> foldup propSPic (filtOn _prPos _props) <> foldMap' debrisSPic (filtOn' (xyV3 . _dbPos) _debris) <> foldup drawProjectile (filtOn (^. pjPos . _xy) _projectiles) - <> foldup drawPulseBall (filtOn _pbPos _pulseBalls) + <> foldup drawPulseBall (filtOn _pzbPos _pulseBalls) + <> foldMap' drawPlasmaBall (filtOn' _pbPos _plasmaBalls) <> foldup (shiftDraw _blPos _blDir (const drawBlock)) (filtOn _blPos _blocks) <> foldMap' (shiftDraw _fsPos _fsDir (const _fsSPic)) (filtOn' _fsPos _foreShapes) <> foldup (drawCreature (lw ^. items)) (filtOn (^. crPos . _xy) _creatures) @@ -94,11 +95,19 @@ drawCliff x y = drawPulseBall :: PulseBall -> SPic drawPulseBall pb = translateSPz 20 - . uncurryV translateSPxy (pb ^. pbPos) + . uncurryV translateSPxy (pb ^. pzbPos) . noShape . setLayer BloomLayer $ circleSolidCol green white 10 +drawPlasmaBall :: PlasmaBall -> SPic +drawPlasmaBall pb = + translateSPz 20 + . uncurryV translateSPxy (pb ^. pbPos) + . noShape + . setLayer BloomLayer + $ circleSolidCol green white 5 + drawCreature :: IM.IntMap Item -> Creature -> SPic drawCreature m cr = translateSP (_crPos cr) . rotateSP (_crDir cr) $ case cr ^. crType of diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 2ea4f46f0..998c51824 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -277,6 +277,7 @@ functionalUpdate = . over uvWorld updateFlames . over uvWorld updateShockwaves . over uvWorld updateBullets + . over uvWorld updatePlasmaBalls . over uvWorld updateDebris . over uvWorld updateEnergyBalls -- energybs can be created by bullets, -- so should probably be updated before bullets @@ -481,17 +482,13 @@ updatePulseLasers w = f w & cWorld . lWorld . pulseLasers .~ pzs where (Endo f, pzs) = foldMap updatePulseLaser (w ^. cWorld . lWorld . pulseLasers) -updatePulseBall :: PulseBall -> World -> World -updatePulseBall pb w - | Just (_, ecrwl) <- thit = - w & cWorld . lWorld . pulseBalls . at (pb ^. pbID) .~ Nothing - & cWorld . lWorld %~ dodam ecrwl - | pb ^. pbTimer <= 0 = - w & cWorld . lWorld . pulseBalls . at (pb ^. pbID) .~ Nothing - | otherwise = - w & cWorld . lWorld . pulseBalls . ix (pb ^. pbID) . pbTimer -~ 1 - & cWorld . lWorld . pulseBalls . ix (pb ^. pbID) . pbPos .~ ep - & pbFlicker pb +updatePlasmaBall :: World -> PlasmaBall -> (World, Maybe PlasmaBall) +updatePlasmaBall w pb + | Just (_, ecrwl) <- thit = ( w + & cWorld . lWorld %~ dodam ecrwl, Nothing) + | norm (pb ^. pbVel) <= 0 = (w, Nothing) + | otherwise = ( w -- flicker? + , Just $ pb & pbPos .~ ep ) where dodam = \case Left cr -> creatures . ix (_crID cr) . crDamage .:~ thedam @@ -501,12 +498,32 @@ updatePulseBall pb w ep = sp + pb ^. pbVel thit = thingHit sp ep w +updatePulseBall :: PulseBall -> World -> World +updatePulseBall pb w + | Just (_, ecrwl) <- thit = + w & cWorld . lWorld . pulseBalls . at (pb ^. pzbID) .~ Nothing + & cWorld . lWorld %~ dodam ecrwl + | pb ^. pzbTimer <= 0 = + w & cWorld . lWorld . pulseBalls . at (pb ^. pzbID) .~ Nothing + | otherwise = + w & cWorld . lWorld . pulseBalls . ix (pb ^. pzbID) . pzbTimer -~ 1 + & cWorld . lWorld . pulseBalls . ix (pb ^. pzbID) . pzbPos .~ ep + & pbFlicker pb + where + dodam = \case + Left cr -> creatures . ix (_crID cr) . crDamage .:~ thedam + Right wl -> wallDamages . at (_wlID wl) . non mempty .:~ thedam + thedam = Lasering 100 ep (pb ^. pzbVel) + sp = pb ^. pzbPos + ep = sp + pb ^. pzbVel + thit = thingHit sp ep w + pbFlicker :: PulseBall -> World -> World pbFlicker pt = cWorld . lWorld . lights - .:~ LSParam (addZ 5 $ _pbPos pt) d (0.5 * xyzV4 chartreuse) + .:~ LSParam (addZ 5 $ _pzbPos pt) d (0.5 * xyzV4 chartreuse) where - d = 4 * fromIntegral (10 + abs ((_pbTimer pt `mod` 20) - 10)) + d = 4 * fromIntegral (10 + abs ((_pzbTimer pt `mod` 20) - 10)) zoneClouds :: World -> World zoneClouds w = @@ -605,6 +622,13 @@ updateBullets w = w' & cWorld . lWorld . bullets <>~ catMaybes ps mapAccumR updateBullet (w & cWorld . lWorld . bullets .~ []) $ w ^. cWorld . lWorld . bullets +updatePlasmaBalls :: World -> World +updatePlasmaBalls w = w' & cWorld . lWorld . plasmaBalls <>~ catMaybes ps + where + (w', ps) = + mapAccumR updatePlasmaBall (w & cWorld . lWorld . plasmaBalls .~ []) $ + w ^. cWorld . lWorld . plasmaBalls + updateDebris :: World -> World updateDebris w = w' & cWorld . lWorld . debris <>~ catMaybes xs where @@ -665,8 +689,8 @@ updatePulseLaser pz = case pz ^. pzTimer of .:~ Lasering (pz ^. pzDamage) p (xp - sp) ((_, OPulseBall pb) : xs) -> dodam xs - . (cWorld . lWorld . pulseBalls . ix (_pbID pb) . pbTimer .~ 0) - . makeExplosionAt (_pbPos pb `v2z` 20) 0 + . (cWorld . lWorld . pulseBalls . ix (_pzbID pb) . pzbTimer .~ 0) + . makeExplosionAt (_pzbPos pb `v2z` 20) 0 _ -> id phasev = _pzPhaseV pz sp = _pzPos pz diff --git a/src/Dodge/WorldEvent/ThingsHit.hs b/src/Dodge/WorldEvent/ThingsHit.hs index a318159d5..30fe672ff 100644 --- a/src/Dodge/WorldEvent/ThingsHit.hs +++ b/src/Dodge/WorldEvent/ThingsHit.hs @@ -99,7 +99,7 @@ pbsHit sp ep w | sp == ep = mempty | otherwise = sortOn (dist sp . fst) - . mapMaybe (\pb -> (,pb) <$> fst (intersectCircSeg (_pbPos pb) 8 sp ep)) + . mapMaybe (\pb -> (,pb) <$> fst (intersectCircSeg (_pzbPos pb) 8 sp ep)) . IM.elems $ w ^. cWorld . lWorld . pulseBalls diff --git a/tags b/tags index 8e971ac71..6ce85168b 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 91;" o -<$> src/Dodge/Data/LWorld.hs 176;" o +<$> src/Dodge/Data/LWorld.hs 179;" o <$> src/Dodge/Data/Terminal.hs 69;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C AIUNIT src/Dodge/Data/Item/Combine.hs 74;" C @@ -59,7 +59,7 @@ AmmoPerShot src/Dodge/Data/Muzzle.hs 61;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 119;" C -ArcNodeType src/Dodge/Data/LWorld.hs 156;" t +ArcNodeType src/Dodge/Data/LWorld.hs 159;" 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 @@ -240,7 +240,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 23;" t -CrArcNode src/Dodge/Data/LWorld.hs 161;" C +CrArcNode src/Dodge/Data/LWorld.hs 164;" C CrBl src/Dodge/Data/CreatureEffect.hs 20;" t CrCanShoot src/Dodge/Data/CreatureEffect.hs 20;" C CrChasm src/Dodge/Data/SoundOrigin.hs 17;" C @@ -315,6 +315,7 @@ DecorationShape src/Dodge/Data/GenParams.hs 18;" t DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 20;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 11;" C +DefaultPlasma src/Dodge/Data/PlasmaBall.hs 20;" C DefaultRoomType src/Dodge/Data/Room.hs 32;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 27;" C @@ -633,7 +634,7 @@ LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 79;" C LS src/Dodge/Data/LightSource.hs 21;" C LSParam src/Dodge/Data/LightSource.hs 14;" t -LWorld src/Dodge/Data/LWorld.hs 92;" t +LWorld src/Dodge/Data/LWorld.hs 94;" t LabLink src/Dodge/Data/Room.hs 46;" C LabSS src/Dodge/Data/Scenario.hs 97;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C @@ -957,6 +958,7 @@ OverTerminal src/Dodge/Data/Input.hs 27;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C PBSound src/Dodge/Data/SoundOrigin.hs 42;" C +PBall src/Dodge/Data/PlasmaBall.hs 13;" C PIPE src/Dodge/Data/Item/Combine.hs 50;" C PISTOL src/Dodge/Data/Item/Combine.hs 143;" C PJStabiliser src/Dodge/Projectile/Create.hs 16;" t @@ -996,6 +998,8 @@ PlacementSpot src/Dodge/Data/GenWorld.hs 98;" t PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C PlainDeath src/Dodge/Data/Creature.hs 68;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C +PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t +PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t PlayStatus src/Sound/Data.hs 21;" t PlayerFaction src/Dodge/Data/Creature/State.hs 20;" C PlayerGoal src/Dodge/Data/Scenario.hs 3;" t @@ -1454,7 +1458,7 @@ WRIST_ECG src/Dodge/Data/Item/Combine.hs 135;" C WaitThen src/Dodge/Data/ActionPlan.hs 74;" C Walking src/Dodge/Data/Creature/Stance.hs 23;" C Wall src/Dodge/Data/Wall.hs 17;" t -WallArcNode src/Dodge/Data/LWorld.hs 157;" C +WallArcNode src/Dodge/Data/LWorld.hs 160;" C WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 19;" C WallDraw src/Dodge/Data/Wall.hs 37;" t WallFlag src/Dodge/Data/Wall/Structure.hs 18;" t @@ -1535,7 +1539,7 @@ _apProjectiles src/Dodge/Data/Item/Use.hs 44;" f _apStrategy src/Dodge/Data/ActionPlan.hs 19;" f _aps src/Dodge/Data/Muzzle.hs 22;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 119;" f -_arcNode src/Dodge/Data/LWorld.hs 112;" f +_arcNode src/Dodge/Data/LWorld.hs 115;" 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 @@ -1563,7 +1567,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 126;" f +_blocks src/Dodge/Data/LWorld.hs 129;" 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 @@ -1599,10 +1603,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 103;" f +_bullets src/Dodge/Data/LWorld.hs 105;" f _burstFrames src/Dodge/Data/TriggerType.hs 12;" f _burstRate src/Dodge/Data/TriggerType.hs 12;" f -_buttons src/Dodge/Data/LWorld.hs 132;" f +_buttons src/Dodge/Data/LWorld.hs 135;" f _cClock src/Dodge/Data/CWorld.hs 26;" f _cWorld src/Dodge/Data/World.hs 36;" f _camBoundBox src/Dodge/Data/Camera.hs 30;" f @@ -1615,7 +1619,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 162;" f +_canID src/Dodge/Data/LWorld.hs 165;" f _carriage src/Dodge/Data/Creature/Stance.hs 16;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 86;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 94;" f @@ -1663,7 +1667,7 @@ _closeButtons src/Dodge/Data/HUD.hs 36;" f _closeItems src/Dodge/Data/HUD.hs 35;" f _cloudShader src/Data/Preload/Render.hs 52;" f _cloudVBO src/Data/Preload/Render.hs 51;" f -_clouds src/Dodge/Data/LWorld.hs 96;" f +_clouds src/Dodge/Data/LWorld.hs 98;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 22;" f _coolStart src/Dodge/Data/TriggerType.hs 16;" f @@ -1706,8 +1710,8 @@ _crType src/Dodge/Data/Creature.hs 42;" f _crVocalization src/Dodge/Data/Creature.hs 54;" f _crZVel src/Dodge/Data/Creature.hs 38;" f _crZoning src/Dodge/Data/World.hs 48;" f -_creatureGroups src/Dodge/Data/LWorld.hs 94;" f -_creatures src/Dodge/Data/LWorld.hs 93;" f +_creatureGroups src/Dodge/Data/LWorld.hs 96;" f +_creatures src/Dodge/Data/LWorld.hs 95;" f _csLinks src/Dodge/Data/RoomCluster.hs 10;" f _currentArc src/Dodge/Data/Item/Params.hs 15;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f @@ -1724,12 +1728,12 @@ _dbRot src/Dodge/Data/Prop.hs 29;" f _dbSpin src/Dodge/Data/Prop.hs 30;" f _dbType src/Dodge/Data/Prop.hs 27;" f _dbVel src/Dodge/Data/Prop.hs 28;" f -_debris src/Dodge/Data/LWorld.hs 101;" f +_debris src/Dodge/Data/LWorld.hs 103;" 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 131;" f +_delayedEvents src/Dodge/Data/LWorld.hs 134;" 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 @@ -1737,7 +1741,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 138;" f +_distortions src/Dodge/Data/LWorld.hs 141;" 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 @@ -1770,7 +1774,7 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 108;" f _doReplicateAction src/Dodge/Data/ActionPlan.hs 113;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 107;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 112;" f -_doors src/Dodge/Data/LWorld.hs 121;" f +_doors src/Dodge/Data/LWorld.hs 124;" f _drFootPrint src/Dodge/Data/Door.hs 36;" f _drHP src/Dodge/Data/Door.hs 37;" f _drID src/Dodge/Data/Door.hs 30;" f @@ -1791,14 +1795,14 @@ _dsZoning src/Dodge/Data/World.hs 51;" f _dtLeft src/Dodge/Data/DoubleTree.hs 29;" f _dtRight src/Dodge/Data/DoubleTree.hs 29;" f _dtValue src/Dodge/Data/DoubleTree.hs 29;" f -_dusts src/Dodge/Data/LWorld.hs 97;" f +_dusts src/Dodge/Data/LWorld.hs 99;" 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 105;" f +_energyBalls src/Dodge/Data/LWorld.hs 108;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f _fboBloom src/Data/Preload/Render.hs 38;" f @@ -1814,17 +1818,17 @@ _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 106;" f +_flames src/Dodge/Data/LWorld.hs 109;" f _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f -_flares src/Dodge/Data/LWorld.hs 109;" f +_flares src/Dodge/Data/LWorld.hs 112;" 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 128;" f +_floorItems src/Dodge/Data/LWorld.hs 131;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f -_foreShapes src/Dodge/Data/LWorld.hs 133;" f +_foreShapes src/Dodge/Data/LWorld.hs 136;" 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 @@ -1833,7 +1837,7 @@ _futureWorlds src/Dodge/Data/World.hs 70;" f _futureWorlds src/Dodge/Data/World.hs 76;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 66;" f _gasZoning src/Dodge/Data/World.hs 50;" f -_gasses src/Dodge/Data/LWorld.hs 98;" f +_gasses src/Dodge/Data/LWorld.hs 100;" 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 @@ -1872,12 +1876,12 @@ _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 99;" f +_gusts src/Dodge/Data/LWorld.hs 101;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f -_hotkeys src/Dodge/Data/LWorld.hs 142;" f +_hotkeys src/Dodge/Data/LWorld.hs 145;" f _hud src/Dodge/Data/World.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 79;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f @@ -1898,7 +1902,7 @@ _ilIsRoot src/Dodge/Data/Item/Location.hs 32;" f _ilIsSelected src/Dodge/Data/Item/Location.hs 33;" f _ilTuID src/Dodge/Data/Item/Location.hs 37;" f _imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f -_imHotkeys src/Dodge/Data/LWorld.hs 143;" f +_imHotkeys src/Dodge/Data/LWorld.hs 146;" f _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" f _immediateEffect src/Loop/Data.hs 9;" f @@ -1927,23 +1931,23 @@ _itTgPos src/Dodge/Data/Item.hs 46;" f _itTimeLastUsed src/Dodge/Data/Item.hs 35;" f _itType src/Dodge/Data/Item.hs 29;" f _itUse src/Dodge/Data/Item.hs 27;" f -_items src/Dodge/Data/LWorld.hs 95;" f +_items src/Dodge/Data/LWorld.hs 97;" f _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 151;" f -_lAimPos src/Dodge/Data/LWorld.hs 144;" f -_lClock src/Dodge/Data/LWorld.hs 139;" f -_lInvLock src/Dodge/Data/LWorld.hs 145;" f -_lTestInt src/Dodge/Data/LWorld.hs 141;" f -_lTestString src/Dodge/Data/LWorld.hs 140;" f +_lAimPos src/Dodge/Data/LWorld.hs 147;" f +_lClock src/Dodge/Data/LWorld.hs 142;" 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 _lWorld src/Dodge/Data/CWorld.hs 24;" f _lampColor src/Dodge/Data/Creature/Misc.hs 72;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 72;" f _lampLSID src/Dodge/Data/Creature/Misc.hs 72;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f -_lasers src/Dodge/Data/LWorld.hs 114;" f +_lasers src/Dodge/Data/LWorld.hs 117;" f _ldpBorder src/Dodge/Data/SelectionList.hs 17;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f @@ -1952,14 +1956,14 @@ _ldtLeft src/Dodge/Data/DoubleTree.hs 34;" f _ldtRight src/Dodge/Data/DoubleTree.hs 35;" f _ldtValue src/Dodge/Data/DoubleTree.hs 33;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 115;" f -_lightSources src/Dodge/Data/LWorld.hs 134;" f +_lightSources src/Dodge/Data/LWorld.hs 137;" 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 135;" f -_linearShockwaves src/Dodge/Data/LWorld.hs 117;" f +_lights src/Dodge/Data/LWorld.hs 138;" f +_linearShockwaves src/Dodge/Data/LWorld.hs 120;" f _linkGapEW src/Dodge/Data/Room.hs 36;" f _linkGapNS src/Dodge/Data/Room.hs 37;" f _locDT src/Dodge/Data/DoubleTree.hs 101;" f @@ -1982,9 +1986,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 122;" f +_machines src/Dodge/Data/LWorld.hs 125;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f -_magnets src/Dodge/Data/LWorld.hs 125;" f +_magnets src/Dodge/Data/LWorld.hs 128;" f _mainAction src/Dodge/Data/ActionPlan.hs 123;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f @@ -2042,7 +2046,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 129;" f +_modifications src/Dodge/Data/LWorld.hs 132;" f _mouseButtons src/Dodge/Data/Input.hs 38;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f _mouseContext src/Dodge/Data/Input.hs 35;" f @@ -2077,7 +2081,7 @@ _nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f _nzPressure src/Dodge/Data/Muzzle.hs 48;" f _nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f _offGridFromEdges src/Dodge/Data/Room.hs 82;" f -_oldMagnets src/Dodge/Data/LWorld.hs 124;" f +_oldMagnets src/Dodge/Data/LWorld.hs 127;" f _onGridFromEdges src/Dodge/Data/Room.hs 81;" f _opDraw src/Dodge/Data/Wall.hs 33;" f _opSel src/Dodge/Data/RightButtonOptions.hs 15;" f @@ -2090,10 +2094,9 @@ _pastWorlds src/Dodge/Data/World.hs 37;" f _pathToPoint src/Dodge/Data/ActionPlan.hs 70;" f _pauseTimeMesage src/Dodge/Data/World.hs 87;" f _pauseTimeMesageColor src/Dodge/Data/World.hs 88;" f -_pbID src/Dodge/Data/PulseLaser.hs 24;" f -_pbPos src/Dodge/Data/PulseLaser.hs 22;" f -_pbTimer src/Dodge/Data/PulseLaser.hs 23;" f -_pbVel src/Dodge/Data/PulseLaser.hs 21;" f +_pbPos src/Dodge/Data/PlasmaBall.hs 16;" f +_pbType src/Dodge/Data/PlasmaBall.hs 14;" f +_pbVel src/Dodge/Data/PlasmaBall.hs 15;" f _phRemoteID src/Dodge/Data/Projectile.hs 41;" f _phTargetingID src/Dodge/Data/Projectile.hs 42;" f _pickUpLevel src/Dodge/Layout/Generate.hs 15;" f @@ -2116,6 +2119,7 @@ _plIDCont src/Dodge/Data/GenWorld.hs 117;" f _plMID src/Dodge/Data/GenWorld.hs 115;" f _plSpot src/Dodge/Data/GenWorld.hs 113;" f _plType src/Dodge/Data/GenWorld.hs 114;" f +_plasmaBalls src/Dodge/Data/LWorld.hs 106;" f _playStatus src/Sound/Data.hs 15;" f _playingSounds src/Dodge/Data/World.hs 41;" f _posture src/Dodge/Data/Creature/Stance.hs 17;" f @@ -2127,8 +2131,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 102;" f -_props src/Dodge/Data/LWorld.hs 100;" f +_projectiles src/Dodge/Data/LWorld.hs 104;" f +_props src/Dodge/Data/LWorld.hs 102;" 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 @@ -2142,8 +2146,8 @@ _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 107;" f _psRot src/Dodge/Data/GenWorld.hs 99;" f _psSelect src/Dodge/Data/GenWorld.hs 102;" f _pullWallShader src/Data/Preload/Render.hs 22;" f -_pulseBalls src/Dodge/Data/LWorld.hs 116;" f -_pulseLasers src/Dodge/Data/LWorld.hs 115;" f +_pulseBalls src/Dodge/Data/LWorld.hs 119;" f +_pulseLasers src/Dodge/Data/LWorld.hs 118;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f _putBlock src/Dodge/Data/GenWorld.hs 44;" f @@ -2172,9 +2176,13 @@ _pzDir src/Dodge/Data/PulseLaser.hs 14;" f _pzPhaseV src/Dodge/Data/PulseLaser.hs 12;" f _pzPos src/Dodge/Data/PulseLaser.hs 13;" f _pzTimer src/Dodge/Data/PulseLaser.hs 16;" f +_pzbID src/Dodge/Data/PulseLaser.hs 24;" f +_pzbPos src/Dodge/Data/PulseLaser.hs 22;" f +_pzbTimer src/Dodge/Data/PulseLaser.hs 23;" f +_pzbVel src/Dodge/Data/PulseLaser.hs 21;" f _rCommands src/Dodge/Terminal.hs 165;" f -_radarBlips src/Dodge/Data/LWorld.hs 108;" f -_radarSweeps src/Dodge/Data/LWorld.hs 104;" f +_radarBlips src/Dodge/Data/LWorld.hs 111;" f +_radarSweeps src/Dodge/Data/LWorld.hs 107;" f _randGen src/Dodge/Data/World.hs 39;" f _rbColor src/Dodge/Data/RadarBlip.hs 13;" f _rbMaxTime src/Dodge/Data/RadarBlip.hs 15;" f @@ -2192,7 +2200,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 65;" f -_respawnPos src/Dodge/Data/LWorld.hs 146;" f +_respawnPos src/Dodge/Data/LWorld.hs 149;" f _reverseAmount src/Dodge/Data/World.hs 69;" f _reverseAmount src/Dodge/Data/World.hs 75;" f _reverseAmount src/Dodge/Data/World.hs 79;" f @@ -2267,8 +2275,8 @@ _scurPos src/Dodge/Data/SelectionList.hs 25;" f _scurSize src/Dodge/Data/SelectionList.hs 26;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f -_seenLocations src/Dodge/Data/LWorld.hs 136;" f -_selLocation src/Dodge/Data/LWorld.hs 137;" f +_seenLocations src/Dodge/Data/LWorld.hs 139;" f +_selLocation src/Dodge/Data/LWorld.hs 140;" 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 @@ -2286,7 +2294,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 101;" f -_shockwaves src/Dodge/Data/LWorld.hs 113;" f +_shockwaves src/Dodge/Data/LWorld.hs 116;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f _siDisplayMod src/Dodge/Data/SelectionList.hs 52;" f _siHeight src/Dodge/Data/SelectionList.hs 46;" f @@ -2322,7 +2330,7 @@ _soundVolumeFraction src/Sound/Data.hs 50;" f _soundsToInvestigate src/Dodge/Data/Creature.hs 78;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f -_sparks src/Dodge/Data/LWorld.hs 107;" f +_sparks src/Dodge/Data/LWorld.hs 110;" f _spawnEBT src/Dodge/Data/Bullet.hs 33;" f _ssIndent src/Dodge/Data/SelectionList.hs 35;" f _ssItems src/Dodge/Data/SelectionList.hs 31;" f @@ -2358,10 +2366,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 110;" f +_tempSPic src/Dodge/Data/LWorld.hs 113;" f _termID src/Dodge/Data/HUD.hs 27;" f -_terminals src/Dodge/Data/LWorld.hs 123;" f -_teslaArcs src/Dodge/Data/LWorld.hs 111;" f +_terminals src/Dodge/Data/LWorld.hs 126;" f +_teslaArcs src/Dodge/Data/LWorld.hs 114;" f _testFloat src/Dodge/Data/World.hs 44;" f _textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f @@ -2398,10 +2406,10 @@ _toPlaySoundVolumeFraction src/Sound/Data.hs 38;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 12;" f _tptString src/Dodge/Data/Terminal/Status.hs 15;" f -_tractorBeams src/Dodge/Data/LWorld.hs 118;" f +_tractorBeams src/Dodge/Data/LWorld.hs 121;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f -_triggers src/Dodge/Data/LWorld.hs 127;" f +_triggers src/Dodge/Data/LWorld.hs 130;" 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 @@ -2483,11 +2491,11 @@ _wSoundFilter src/Dodge/Data/World.hs 42;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f _waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f -_wallDamages src/Dodge/Data/LWorld.hs 120;" f +_wallDamages src/Dodge/Data/LWorld.hs 123;" f _wallVBO src/Data/Preload/Render.hs 50;" f -_walls src/Dodge/Data/LWorld.hs 119;" f -_wanID src/Dodge/Data/LWorld.hs 159;" f -_wanPos src/Dodge/Data/LWorld.hs 158;" 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 _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _winVBO src/Data/Preload/Render.hs 49;" f @@ -2508,7 +2516,7 @@ _wlTouchThrough src/Dodge/Data/Wall.hs 21;" f _wlUnshadowed src/Dodge/Data/Wall.hs 22;" f _wlZoning src/Dodge/Data/World.hs 52;" f _worldEventFlags src/Dodge/Data/World.hs 47;" f -_worldEvents src/Dodge/Data/LWorld.hs 130;" f +_worldEvents src/Dodge/Data/LWorld.hs 133;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 14;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 12;" f @@ -2675,7 +2683,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Render/ShapePicture.hs 111;" f +barrelShape src/Dodge/Render/ShapePicture.hs 120;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 408;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f baseCI src/Dodge/Item/Grammar.hs 158;" f @@ -2754,7 +2762,7 @@ branchRectWith src/Dodge/Room/Branch.hs 16;" f branchWith src/Dodge/Room/Room.hs 79;" f bright src/Color.hs 147;" f brightX src/Color.hs 143;" f -btSPic src/Dodge/Render/ShapePicture.hs 160;" f +btSPic src/Dodge/Render/ShapePicture.hs 169;" f btText src/Dodge/Inventory/SelectionList.hs 236;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPerspectiveMatrixUBO src/Dodge/Render.hs 431;" f @@ -2814,7 +2822,7 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 78;" f checkDeath' src/Dodge/Creature/Update.hs 81;" f -checkEndGame src/Dodge/Update.hs 807;" f +checkEndGame src/Dodge/Update.hs 823;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -2944,7 +2952,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f -crCrSpring src/Dodge/Update.hs 919;" f +crCrSpring src/Dodge/Update.hs 935;" 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 @@ -2976,7 +2984,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 914;" f +crSpring src/Dodge/Update.hs 930;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 71;" f @@ -3023,7 +3031,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 40;" f crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 58;" f cubeShape src/Dodge/Block/Debris.hs 110;" f -cullPoint src/Dodge/Render/ShapePicture.hs 127;" f +cullPoint src/Dodge/Render/ShapePicture.hs 136;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f @@ -3065,7 +3073,7 @@ damageMetal src/Dodge/Material/Damage.hs 68;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f damageStone src/Dodge/Material/Damage.hs 36;" f damageThingHit src/Dodge/Bullet.hs 180;" f -damageTypeThreshold src/Dodge/Machine/Update.hs 127;" f +damageTypeThreshold src/Dodge/Machine/Update.hs 129;" f damageTypeThreshold' src/Dodge/Wall/Damage.hs 84;" f damageWall src/Dodge/Wall/Damage.hs 31;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f @@ -3140,7 +3148,7 @@ defaultDoorWall src/Dodge/Default/Wall.hs 29;" f defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 170;" f +defaultHUD src/Dodge/Default/World.hs 171;" f defaultInanimate src/Dodge/Default/Creature.hs 63;" f defaultInput src/Dodge/Default/World.hs 12;" f defaultIntention src/Dodge/Default/Creature.hs 99;" f @@ -3196,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 519;" f +displayTerminalLineString src/Dodge/Update.hs 535;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 152;" f @@ -3295,13 +3303,13 @@ drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f drawArrowDown src/Dodge/Render/Picture.hs 219;" f drawBaseMachine src/Dodge/Machine/Draw.hs 75;" f drawBlip src/Dodge/RadarBlip.hs 16;" f -drawBlock src/Dodge/Render/ShapePicture.hs 80;" f +drawBlock src/Dodge/Render/ShapePicture.hs 81;" f drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f -drawBullet src/Dodge/Render/ShapePicture.hs 166;" f +drawBullet src/Dodge/Render/ShapePicture.hs 175;" f drawButton src/Dodge/Button/Draw.hs 10;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f -drawCliff src/Dodge/Render/ShapePicture.hs 86;" f +drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 267;" f drawCombineInventory src/Dodge/Render/HUD.hs 190;" f @@ -3310,7 +3318,7 @@ drawCoord src/Dodge/Debug/Picture.hs 396;" f drawCountMod src/Render.hs 231;" f drawCrInfo src/Dodge/Debug.hs 178;" f drawCrInfo' src/Dodge/Debug.hs 173;" f -drawCreature src/Dodge/Render/ShapePicture.hs 102;" f +drawCreature src/Dodge/Render/ShapePicture.hs 111;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 25;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f @@ -3368,10 +3376,11 @@ drawOptions src/Dodge/Render/MenuScreen.hs 36;" f drawPathBetween src/Dodge/Debug/Picture.hs 202;" f drawPathEdge src/Dodge/Debug/Picture.hs 261;" f drawPathing src/Dodge/Debug/Picture.hs 417;" f +drawPlasmaBall src/Dodge/Render/ShapePicture.hs 103;" f drawPlus src/Dodge/Render/Picture.hs 163;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f -drawPulseBall src/Dodge/Render/ShapePicture.hs 94;" f +drawPulseBall src/Dodge/Render/ShapePicture.hs 95;" f drawQuitTerminal src/Dodge/Render/Picture.hs 145;" f drawRBOptions src/Dodge/Render/HUD.hs 253;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f @@ -3496,7 +3505,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 80;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f -extraPics src/Dodge/Render/ShapePicture.hs 132;" f +extraPics src/Dodge/Render/ShapePicture.hs 141;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f @@ -3548,7 +3557,7 @@ flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f flockPointTarget src/Dodge/Creature/Boid.hs 204;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 233;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 153;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 162;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f @@ -3591,7 +3600,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f -gasEffect src/Dodge/Update.hs 832;" f +gasEffect src/Dodge/Update.hs 848;" f gasType src/Dodge/HeldUse.hs 1110;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3954,18 +3963,19 @@ lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f lamp src/Dodge/Creature/Lamp.hs 18;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 116;" f -lasCenRunClose' src/Dodge/Room/LasTurret.hs 196;" f -lasCenRunClose1 src/Dodge/Room/LasTurret.hs 273;" f -lasCenRunClose2 src/Dodge/Room/LasTurret.hs 325;" f -lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 242;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 125;" f +lasCenRunClose' src/Dodge/Room/LasTurret.hs 244;" f +lasCenRunClose1 src/Dodge/Room/LasTurret.hs 321;" f +lasCenRunClose2 src/Dodge/Room/LasTurret.hs 373;" f +lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 290;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 139;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f -lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 151;" f +lasRunYinYang src/Dodge/Room/LasTurret.hs 151;" f +lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 199;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 132;" f -lasTunnel src/Dodge/Room/LasTurret.hs 355;" f -lasTunnelRunPast src/Dodge/Room/LasTurret.hs 396;" f +lasTunnel src/Dodge/Room/LasTurret.hs 403;" f +lasTunnelRunPast src/Dodge/Room/LasTurret.hs 444;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f laserSpark src/Dodge/Material/Damage.hs 33;" f @@ -4151,25 +4161,25 @@ maybeOpenConsole src/Dodge/Update.hs 134;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 118;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f -mcBackgroundSound src/Dodge/Machine/Update.hs 151;" f +mcBackgroundSound src/Dodge/Machine/Update.hs 153;" f mcColor src/Dodge/Machine/Draw.hs 83;" f -mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 115;" f -mcDamSensorUpdate src/Dodge/Machine/Update.hs 162;" f +mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 117;" f +mcDamSensorUpdate src/Dodge/Machine/Update.hs 164;" f mcDamSensorUpdate' src/Dodge/Wall/Damage.hs 57;" f mcKillBut src/Dodge/Machine/Destroy.hs 38;" f mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f -mcNoItemsTest src/Dodge/Machine/Update.hs 170;" f -mcPlaySound src/Dodge/Machine/Update.hs 135;" f -mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 121;" f -mcProxSensorUpdate src/Dodge/Machine/Update.hs 165;" f -mcProxTest src/Dodge/Machine/Update.hs 246;" f -mcProximitySensorUpdate src/Dodge/Machine/Update.hs 207;" f -mcSPic src/Dodge/Render/ShapePicture.hs 163;" f +mcNoItemsTest src/Dodge/Machine/Update.hs 172;" f +mcPlaySound src/Dodge/Machine/Update.hs 137;" f +mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 123;" f +mcProxSensorUpdate src/Dodge/Machine/Update.hs 167;" f +mcProxTest src/Dodge/Machine/Update.hs 248;" f +mcProximitySensorUpdate src/Dodge/Machine/Update.hs 209;" f +mcSPic src/Dodge/Render/ShapePicture.hs 172;" f mcShootAuto src/Dodge/HeldUse.hs 1165;" f mcShootLaser src/Dodge/HeldUse.hs 1157;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f mcUseHeld src/Dodge/HeldUse.hs 1081;" f -mcUseItem src/Dodge/Machine/Update.hs 106;" f +mcUseItem src/Dodge/Machine/Update.hs 108;" f megaBattery src/Dodge/Item/Ammo.hs 53;" f megaShellMag src/Dodge/Item/Ammo.hs 43;" f megaTinMag src/Dodge/Item/Ammo.hs 20;" f @@ -4267,7 +4277,7 @@ muzzleWallCheck src/Dodge/Update.hs 323;" f mvButton src/Dodge/Placement/PlaceSpot.hs 179;" f mvCr src/Dodge/Placement/PlaceSpot.hs 182;" f mvFS src/Dodge/Placement/PlaceSpot.hs 188;" f -mvGust src/Dodge/Update.hs 823;" f +mvGust src/Dodge/Update.hs 839;" f mvLS src/Dodge/Placement/PlaceSpot.hs 223;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4380,7 +4390,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 196;" f -pbFlicker src/Dodge/Update.hs 504;" f +pbFlicker src/Dodge/Update.hs 520;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 97;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4590,7 +4600,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 903;" f +radiusSpring src/Dodge/Update.hs 919;" 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 @@ -4612,7 +4622,7 @@ randPeakedParam src/RandomHelp.hs 132;" f randProb src/RandomHelp.hs 70;" f randSpark src/Dodge/Spark.hs 70;" f randSparkExtraVel src/Dodge/Spark.hs 93;" f -randWallReflect src/Dodge/Update.hs 679;" f +randWallReflect src/Dodge/Update.hs 695;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f @@ -4849,14 +4859,14 @@ selectedItemScroll src/Dodge/Update/Scroll.hs 47;" f semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f -senseDamage src/Dodge/Machine/Update.hs 262;" f +senseDamage src/Dodge/Machine/Update.hs 264;" f senseDamage' src/Dodge/Wall/Damage.hs 60;" f -sensorReqToString src/Dodge/Machine/Update.hs 240;" f +sensorReqToString src/Dodge/Machine/Update.hs 242;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 99;" f sensorTut src/Dodge/Room/Tutorial.hs 472;" f -sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f +sensorTypeDamages src/Dodge/Machine/Update.hs 288;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 91;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4877,7 +4887,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 538;" f +setOldPos src/Dodge/Update.hs 554;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f @@ -4924,7 +4934,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 91;" f shiftByV2 src/Dodge/PlacementSpot.hs 257;" f shiftChildren src/Dodge/Tree/Compose.hs 45;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 121;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 130;" f shiftInBy src/Dodge/PlacementSpot.hs 254;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 310;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 355;" f @@ -4978,7 +4988,7 @@ shufflePair src/RandomHelp.hs 148;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 61;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 908;" f +simpleCrSprings src/Dodge/Update.hs 924;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f @@ -5185,8 +5195,8 @@ teslaGunPic src/Dodge/Item/Draw/SPic.hs 411;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f testEvent src/Dodge/Event/Test.hs 11;" f testInventory src/Dodge/Creature.hs 304;" f -testPic src/Dodge/Render/ShapePicture.hs 56;" f -testSPic src/Dodge/Render/ShapePicture.hs 53;" f +testPic src/Dodge/Render/ShapePicture.hs 57;" f +testSPic src/Dodge/Render/ShapePicture.hs 54;" f testStringInit src/Dodge/TestString.hs 34;" f text src/Picture/Base.hs 185;" f textGrad src/Picture/Text.hs 5;" f @@ -5385,47 +5395,47 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBounds src/Dodge/Update/Camera.hs 268;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 601;" f +updateBullets src/Dodge/Update.hs 617;" f updateCamera src/Dodge/Update/Camera.hs 32;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f -updateCloud src/Dodge/Update.hs 836;" f -updateClouds src/Dodge/Update.hs 705;" f +updateCloud src/Dodge/Update.hs 852;" f +updateClouds src/Dodge/Update.hs 721;" 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 573;" f -updateCreatureSoundPositions src/Dodge/Update.hs 552;" f +updateCreatureGroups src/Dodge/Update.hs 589;" f +updateCreatureSoundPositions src/Dodge/Update.hs 568;" f updateCreatureStride src/Dodge/Update.hs 347;" f updateCreatureStrides src/Dodge/Update.hs 344;" f -updateDebris src/Dodge/Update.hs 608;" f +updateDebris src/Dodge/Update.hs 624;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 103;" f -updateDelayedEvents src/Dodge/Update.hs 939;" f +updateDelayedEvents src/Dodge/Update.hs 955;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 594;" f +updateDistortions src/Dodge/Update.hs 610;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 358;" f -updateDust src/Dodge/Update.hs 883;" f -updateDusts src/Dodge/Update.hs 711;" f +updateDust src/Dodge/Update.hs 899;" f +updateDusts src/Dodge/Update.hs 727;" 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 696;" f +updateEnergyBalls src/Dodge/Update.hs 712;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 511;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 693;" f +updateFlames src/Dodge/Update.hs 709;" f updateFloatingCamera src/Dodge/Update/Camera.hs 37;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f -updateGas src/Dodge/Update.hs 858;" f -updateGasses src/Dodge/Update.hs 708;" f -updateGusts src/Dodge/Update.hs 820;" f -updateIMl src/Dodge/Update.hs 567;" f -updateIMl' src/Dodge/Update.hs 570;" f +updateGas src/Dodge/Update.hs 874;" f +updateGasses src/Dodge/Update.hs 724;" f +updateGusts src/Dodge/Update.hs 836;" f +updateIMl src/Dodge/Update.hs 583;" f +updateIMl' src/Dodge/Update.hs 586;" f updateInGameCamera src/Dodge/Update/Camera.hs 85;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 434;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5451,20 +5461,21 @@ updateMouseContextGame src/Dodge/Update.hs 379;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 97;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 87;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 167;" f -updateObjCatMaybes src/Dodge/Update.hs 585;" f -updateObjMapMaybe src/Dodge/Update.hs 578;" f +updateObjCatMaybes src/Dodge/Update.hs 601;" f +updateObjMapMaybe src/Dodge/Update.hs 594;" f updatePastWorlds src/Dodge/Update.hs 459;" f +updatePlasmaBall src/Dodge/Update.hs 484;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 180;" f -updatePulseBall src/Dodge/Update.hs 484;" f -updatePulseLaser src/Dodge/Update.hs 648;" f +updatePulseBall src/Dodge/Update.hs 500;" f +updatePulseLaser src/Dodge/Update.hs 664;" f updatePulseLasers src/Dodge/Update.hs 479;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 597;" f +updateRadarBlips src/Dodge/Update.hs 613;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 699;" f +updateRadarSweeps src/Dodge/Update.hs 715;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f @@ -5474,17 +5485,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 690;" f +updateShockwaves src/Dodge/Update.hs 706;" 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 702;" f -updateTerminal src/Dodge/Update.hs 522;" f -updateTeslaArc src/Dodge/Update.hs 618;" f -updateTeslaArcs src/Dodge/Update.hs 615;" f +updateSparks src/Dodge/Update.hs 718;" f +updateTerminal src/Dodge/Update.hs 538;" f +updateTeslaArc src/Dodge/Update.hs 634;" f +updateTeslaArcs src/Dodge/Update.hs 631;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 687;" f +updateTractorBeams src/Dodge/Update.hs 703;" f updateTurret src/Dodge/Machine/Update.hs 56;" f updateUniverse src/Dodge/Update.hs 82;" f updateUniverseFirst src/Dodge/Update.hs 93;" f @@ -5671,11 +5682,11 @@ zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 141;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f -zoneClouds src/Dodge/Update.hs 511;" f +zoneClouds src/Dodge/Update.hs 527;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 548;" f +zoneCreatures src/Dodge/Update.hs 564;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 516;" f +zoneDusts src/Dodge/Update.hs 532;" 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