diff --git a/src/Dodge/Cloud.hs b/src/Dodge/Cloud.hs index db8615028..8625c2266 100644 --- a/src/Dodge/Cloud.hs +++ b/src/Dodge/Cloud.hs @@ -7,7 +7,6 @@ clAlt cl = case _clType cl of Smoke -> 90 RocketSmoke -> 30 CryoReleaseCloud -> 50 - GasCloud -> 20 --clRad :: Cloud -> Float --clRad cl = case _clType cl of diff --git a/src/Dodge/Data/Cloud.hs b/src/Dodge/Data/Cloud.hs index d88ce796b..20f1198aa 100644 --- a/src/Dodge/Data/Cloud.hs +++ b/src/Dodge/Data/Cloud.hs @@ -21,7 +21,6 @@ data CloudType = Smoke | RocketSmoke | CryoReleaseCloud - | GasCloud deriving (Eq, Ord, Show, Read) --Generic, Flat) data Dust = Dust @@ -32,8 +31,22 @@ data Dust = Dust } deriving (Eq, Ord, Show, Read) --Generic, Flat) +data Gas = Gas + { _gsPos :: Point3 + , _gsVel :: Point3 + , _gsTimer :: Int + , _gsType :: GasType + } + deriving (Eq, Ord, Show, Read) --Generic, Flat) + +data GasType = PoisonGas + deriving (Eq, Ord, Show, Read) --Generic, Flat) + makeLenses ''Cloud deriveJSON defaultOptions ''CloudType deriveJSON defaultOptions ''Cloud makeLenses ''Dust deriveJSON defaultOptions ''Dust +makeLenses ''Gas +deriveJSON defaultOptions ''GasType +deriveJSON defaultOptions ''Gas diff --git a/src/Dodge/Data/LWorld.hs b/src/Dodge/Data/LWorld.hs index 22dce910e..33c14afbe 100644 --- a/src/Dodge/Data/LWorld.hs +++ b/src/Dodge/Data/LWorld.hs @@ -95,6 +95,7 @@ data LWorld = LWorld , _items :: IM.IntMap Item , _clouds :: [Cloud] , _dusts :: [Dust] + , _gasses :: [Gas] , _gusts :: IM.IntMap Gust , _props :: IM.IntMap Prop , _debris :: [Debris] diff --git a/src/Dodge/Data/World.hs b/src/Dodge/Data/World.hs index 5c987e273..36cca6113 100644 --- a/src/Dodge/Data/World.hs +++ b/src/Dodge/Data/World.hs @@ -45,6 +45,7 @@ data World = World , _worldEventFlags :: Set WorldEventFlag , _crZoning :: IntMap (IntMap IntSet) , _clZoning :: IntMap (IntMap [Cloud]) + , _gasZoning :: IntMap (IntMap [Gas]) , _dsZoning :: IntMap (IntMap [Dust]) , _wlZoning :: IntMap (IntMap IntSet) -- Zoning IM.IntMap Wall -- , _pnZoning :: IntMap (IntMap [(Int, Point2)]) --Zoning IM.IntMap Creature diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index f396f1905..d413a22b5 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -45,6 +45,7 @@ defaultWorld = , _worldEventFlags = mempty , _crZoning = mempty , _clZoning = mempty + , _gasZoning = mempty , _dsZoning = mempty , _wlZoning = mempty -- , _pnZoning = mempty @@ -106,6 +107,7 @@ defaultLWorld = , _creatures = IM.empty , _creatureGroups = IM.empty , _clouds = mempty + , _gasses = mempty , _dusts = mempty , _gusts = IM.empty -- , _itemLocations = IM.empty diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 86025ce03..a60daad57 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -276,6 +276,7 @@ functionalUpdate = (updateIMl' (_linearShockwaves . _lWorld . _cWorld) updateLinearShockwave) . over uvWorld (updateIMl' (_projectiles . _lWorld . _cWorld) updateProjectile) . over uvWorld updateClouds + . over uvWorld updateGasses . over uvWorld updateDusts . over uvWorld updateGusts . over uvWorld (updateIMl' (_terminals . _lWorld . _cWorld) tmUpdate) @@ -471,6 +472,7 @@ pbFlicker pt = zoneClouds :: World -> World zoneClouds w = w & clZoning .~ foldl' (flip zoneCloud) mempty (w ^. cWorld . lWorld . clouds) + & gasZoning .~ foldl' (flip zoneGas) mempty (w ^. cWorld . lWorld . gasses) zoneDusts :: World -> World zoneDusts w = w & dsZoning .~ foldl' (flip zoneDust) mempty (w ^. cWorld . lWorld . dusts) @@ -664,6 +666,9 @@ updateSparks = updateObjCatMaybes sparks updateSpark updateClouds :: World -> World updateClouds = updateObjCatMaybes clouds updateCloud +updateGasses :: World -> World +updateGasses = updateObjCatMaybes gasses updateGas + updateDusts :: World -> World updateDusts w = updateObjMapMaybe dusts (updateDust w) w @@ -785,16 +790,15 @@ mvGust _ gu & guPos .+.+~ _guVel gu & guTime -~ 1 -cloudEffect :: Cloud -> World -> World -cloudEffect cl = case _clType cl of - GasCloud -> cloudPoisonDamage cl - _ -> id +gasEffect :: Gas -> World -> World +gasEffect cl = case _gsType cl of + PoisonGas -> cloudPoisonDamage cl updateCloud :: World -> Cloud -> (World, Maybe Cloud) updateCloud w c | _clTimer c < 1 = (w, Nothing) | otherwise = - ( cloudEffect c w + ( w , Just $ c & clPos .~ finalPos @@ -814,6 +818,30 @@ updateCloud w c finalPos = addZ (min 90 npz) $ maybe newPos2 fst hitWl finalVel = addZ nvz $ maybe newVel2 snd hitWl +updateGas :: World -> Gas -> (World, Maybe Gas) +updateGas w c + | _gsTimer c < 1 = (w, Nothing) + | otherwise = + ( gasEffect c w + , Just $ + c + & gsPos .~ finalPos + & gsVel .~ finalVel + & gsTimer -~ 1 + ) + where + newVel@(V3 _ _ nvz) = (0.95 *^ springVels) + V3 0 0 (0.01 * vertVel) + newVel2 = stripZ newVel + vertVel = min 5 $ 20 - opz + springVels = foldl' (gasGasSpringVel c) (_gsVel c) (gassesNearPoint oldPos2 w) + oldPos@(V3 _ _ opz) = _gsPos c + oldPos2 = stripZ oldPos + newPos@(V3 _ _ npz) = oldPos + newVel + newPos2 = stripZ newPos + hitWl = bouncePoint (const True) 1 oldPos2 newPos2 w + finalPos = addZ (min 90 npz) $ maybe newPos2 fst hitWl + finalVel = addZ nvz $ maybe newVel2 snd hitWl + updateDust :: World -> Dust -> Maybe Dust updateDust w c | _dsTimer c < 1 = Nothing @@ -842,6 +870,15 @@ clClSpringVel a v b pb = _clPos b radDist = 10 +gasGasSpringVel :: Gas -> Point3 -> Gas -> Point3 +gasGasSpringVel a v b + | dist3 pa pb < radDist = v + 0.1 *^ normalizeV3 (pa - pb) + | otherwise = v + where + pa = _gsPos a + pb = _gsPos b + radDist = 10 + --radDist = (_clRad a + _clRad b) / 2 dustSpringVel :: Dust -> Point3 -> Dust -> Point3 diff --git a/src/Dodge/Update/Cloud.hs b/src/Dodge/Update/Cloud.hs index 8ed2a98aa..ae8ba0983 100644 --- a/src/Dodge/Update/Cloud.hs +++ b/src/Dodge/Update/Cloud.hs @@ -8,10 +8,10 @@ import Geometry.Vector3D import LensHelp import Linear -cloudPoisonDamage :: Cloud -> World -> World +cloudPoisonDamage :: Gas -> World -> World cloudPoisonDamage c w = foldl' (flip doDam) w (filter f $ crsNearPoint clpos w) where doDam cr = cWorld . lWorld . creatures . ix (_crID cr) . crDamage .:~ Poison 1 - f cr = dist3 (_crPos cr & _z +~ 20) (_clPos c) < crRad (cr ^. crType) + 20 - clpos = stripZ $ _clPos c + f cr = dist3 (_crPos cr & _z +~ 20) (_gsPos c) < crRad (cr ^. crType) + 20 + clpos = stripZ $ _gsPos c diff --git a/src/Dodge/WorldEvent/SpawnParticle.hs b/src/Dodge/WorldEvent/SpawnParticle.hs index c38f44c5e..a679ada55 100644 --- a/src/Dodge/WorldEvent/SpawnParticle.hs +++ b/src/Dodge/WorldEvent/SpawnParticle.hs @@ -15,14 +15,11 @@ makeGasCloud :: Point2 -> World -> World -makeGasCloud pos vel = cWorld . lWorld . clouds .:~ theCloud - where - theCloud = - Cloud - { _clPos = addZ 20 pos - , _clVel = addZ 0 vel - , _clTimer = 400 - , _clType = GasCloud +makeGasCloud pos vel = cWorld . lWorld . gasses .:~ Gas + { _gsPos = addZ 20 pos + , _gsVel = addZ 0 vel + , _gsTimer = 400 + , _gsType = PoisonGas } {- Attach poison cloud damage to creatures near cloud. -} diff --git a/src/Dodge/Zoning/Cloud.hs b/src/Dodge/Zoning/Cloud.hs index 22651ff24..0b2a24a52 100644 --- a/src/Dodge/Zoning/Cloud.hs +++ b/src/Dodge/Zoning/Cloud.hs @@ -9,6 +9,9 @@ import Dodge.Zoning.Common clsNearPoint :: Point2 -> World -> [Cloud] clsNearPoint = nearPoint clZoneSize _clZoning +gassesNearPoint :: Point2 -> World -> [Gas] +gassesNearPoint = nearPoint clZoneSize _gasZoning + clsNearSeg :: Point2 -> Point2 -> World -> [Cloud] clsNearSeg = nearSeg clZoneSize _clZoning @@ -24,9 +27,15 @@ clZoneSize = 20 zoneOfCl :: Cloud -> Int2 zoneOfCl = zoneOfPoint clZoneSize . xyV3 . _clPos +zoneOfGas :: Gas -> Int2 +zoneOfGas = zoneOfPoint clZoneSize . xyV3 . _gsPos + zoneCloud :: Cloud -> IM.IntMap (IM.IntMap [Cloud]) -> IM.IntMap (IM.IntMap [Cloud]) zoneCloud cl = zoneMonoid (zoneOfCl cl) [cl] +zoneGas :: Gas -> IM.IntMap (IM.IntMap [Gas]) -> IM.IntMap (IM.IntMap [Gas]) +zoneGas cl = zoneMonoid (zoneOfGas cl) [cl] + dssNearPoint :: Point2 -> World -> [Dust] dssNearPoint = nearPoint dsZoneSize _dsZoning diff --git a/src/Shader/Poke/Cloud.hs b/src/Shader/Poke/Cloud.hs index 5d7344f99..75dd092f8 100644 --- a/src/Shader/Poke/Cloud.hs +++ b/src/Shader/Poke/Cloud.hs @@ -41,7 +41,6 @@ clColor = \case Smoke -> greyN 0.7 RocketSmoke -> greyN 0.5 CryoReleaseCloud -> white - GasCloud -> green dustColor :: Dust -> Color dustColor = materialColor . _dsType diff --git a/tags b/tags index bdcb91d92..141036da0 100644 --- a/tags +++ b/tags @@ -16,7 +16,7 @@ <$> src/Dodge/Data/CWorld.hs 50;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 89;" o -<$> src/Dodge/Data/LWorld.hs 175;" o +<$> src/Dodge/Data/LWorld.hs 176;" o <$> src/Dodge/Data/Terminal.hs 68;" 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 5;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 119;" C -ArcNodeType src/Dodge/Data/LWorld.hs 155;" t +ArcNodeType src/Dodge/Data/LWorld.hs 156;" t ArcShad src/Picture/Data.hs 34;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t Arcing src/Dodge/Data/Item/Params.hs 15;" C @@ -186,7 +186,7 @@ CamOnPlayer src/Dodge/Data/Camera.hs 12;" C CamOpticScope src/Dodge/Data/Camera.hs 13;" C CamRemoteScope src/Dodge/Data/Camera.hs 14;" C Camera src/Dodge/Data/Camera.hs 22;" t -CameraScrollTimeFlow src/Dodge/Data/World.hs 70;" C +CameraScrollTimeFlow src/Dodge/Data/World.hs 71;" C CamouflageStatus src/Dodge/Data/CamouflageStatus.hs 5;" t CapacitorBelow src/Dodge/Data/Muzzle.hs 23;" C CapacitorSF src/Dodge/Data/ComposedItem.hs 42;" C @@ -241,7 +241,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 160;" C +CrArcNode src/Dodge/Data/LWorld.hs 161;" 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 @@ -353,7 +353,7 @@ DroneAmmo src/Dodge/Data/AmmoType.hs 10;" C DropItem src/Dodge/Data/ActionPlan.hs 38;" C DudPayload src/Dodge/Data/Payload.hs 11;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C -Dust src/Dodge/Data/Cloud.hs 27;" t +Dust src/Dodge/Data/Cloud.hs 26;" t EBSound src/Dodge/Data/SoundOrigin.hs 39;" C ECW src/Dodge/Material/Damage.hs 14;" t ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 157;" C @@ -471,11 +471,12 @@ GYROSCOPE src/Dodge/Data/Item/Combine.hs 96;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameRoom src/Dodge/GameRoom.hs 12;" t +Gas src/Dodge/Data/Cloud.hs 34;" t GasAmmo src/Dodge/Data/AmmoType.hs 11;" C -GasCloud src/Dodge/Data/Cloud.hs 24;" C GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" t GasParams src/Dodge/Data/Item/Use.hs 52;" C +GasType src/Dodge/Data/Cloud.hs 42;" t GenFloat src/Dodge/Data/GenFloat.hs 9;" t GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 23;" t @@ -599,7 +600,7 @@ ItemSF src/Dodge/Data/ComposedItem.hs 12;" t ItemScroll src/Dodge/Data/Item.hs 38;" t ItemScrollInt src/Dodge/Data/Item.hs 40;" C ItemScrollIntRange src/Dodge/Data/Item.hs 41;" C -ItemScrollTimeFlow src/Dodge/Data/World.hs 64;" C +ItemScrollTimeFlow src/Dodge/Data/World.hs 65;" C ItemSound src/Dodge/Data/SoundOrigin.hs 19;" C ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t @@ -842,7 +843,7 @@ NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 82;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C NormalOptions src/Dodge/Data/Universe.hs 72;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C -NormalTimeFlow src/Dodge/Data/World.hs 63;" C +NormalTimeFlow src/Dodge/Data/World.hs 64;" C North src/Dodge/Data/CardinalPoint.hs 7;" C North8 src/Dodge/Data/CardinalPoint.hs 28;" C NorthEast src/Dodge/Data/CardinalPoint.hs 21;" C @@ -965,7 +966,7 @@ PathShowType src/Dodge/Data/Universe.hs 54;" t PathTo src/Dodge/Data/ActionPlan.hs 70;" C Pathing src/Dodge/Data/Config.hs 89;" C Patrol src/Dodge/Data/ActionPlan.hs 132;" C -PausedTimeFlow src/Dodge/Data/World.hs 79;" C +PausedTimeFlow src/Dodge/Data/World.hs 80;" C Payload src/Dodge/Data/Payload.hs 9;" t PenetrateBullet src/Dodge/Data/Bullet.hs 29;" C Perception src/Dodge/Data/Creature/Perception.hs 30;" t @@ -989,6 +990,7 @@ Point3Q src/Geometry/Data.hs 52;" t Point4 src/Geometry/Data.hs 41;" t Poison src/Dodge/Data/Damage.hs 26;" C PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C +PoisonGas src/Dodge/Data/Cloud.hs 42;" C PolyEdge src/Dodge/Data/Room.hs 47;" C PolyShad src/Picture/Data.hs 32;" C Polyhedra src/Polyhedra/Data.hs 13;" t @@ -1083,11 +1085,11 @@ RequireHealth src/Dodge/Data/Machine/Sensor.hs 35;" C ResFactor src/Dodge/Data/Config.hs 111;" t ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C -RespawnDelay src/Dodge/Data/World.hs 61;" C +RespawnDelay src/Dodge/Data/World.hs 62;" C RetailFacility src/Dodge/Data/Scenario.hs 67;" C RetiredProjectile src/Dodge/Data/Projectile.hs 36;" C Revenge src/Dodge/Data/Scenario.hs 6;" C -RewindLeftClick src/Dodge/Data/World.hs 75;" C +RewindLeftClick src/Dodge/Data/World.hs 76;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C RightButtonState src/Dodge/Data/RightButtonOptions.hs 13;" t RightForward src/Dodge/Data/Creature/Stance.hs 30;" C @@ -1308,7 +1310,7 @@ TextShad src/Picture/Data.hs 33;" C ThermalSensor src/Dodge/Data/Machine/Sensor.hs 15;" C Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C -TimeFlowStatus src/Dodge/Data/World.hs 60;" t +TimeFlowStatus src/Dodge/Data/World.hs 61;" t Tiny src/Shape/Data.hs 27;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 60;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 61;" C @@ -1422,7 +1424,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 156;" C +WallArcNode src/Dodge/Data/LWorld.hs 157;" 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 @@ -1502,7 +1504,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 111;" f +_arcNode src/Dodge/Data/LWorld.hs 112;" 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 @@ -1530,7 +1532,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 125;" f +_blocks src/Dodge/Data/LWorld.hs 126;" 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 @@ -1566,10 +1568,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 102;" f +_bullets src/Dodge/Data/LWorld.hs 103;" f _burstFrames src/Dodge/Data/TriggerType.hs 12;" f _burstRate src/Dodge/Data/TriggerType.hs 12;" f -_buttons src/Dodge/Data/LWorld.hs 131;" f +_buttons src/Dodge/Data/LWorld.hs 132;" f _cClock src/Dodge/Data/CWorld.hs 26;" f _cWorld src/Dodge/Data/World.hs 35;" f _camBoundBox src/Dodge/Data/Camera.hs 30;" f @@ -1582,7 +1584,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 161;" f +_canID src/Dodge/Data/LWorld.hs 162;" 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 @@ -1633,7 +1635,7 @@ _clouds src/Dodge/Data/LWorld.hs 96;" 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 -_coordinates src/Dodge/Data/World.hs 57;" f +_coordinates src/Dodge/Data/World.hs 58;" f _cpAttention src/Dodge/Data/Creature/Perception.hs 32;" f _cpAudition src/Dodge/Data/Creature/Perception.hs 35;" f _cpAwareness src/Dodge/Data/Creature/Perception.hs 33;" f @@ -1690,12 +1692,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 100;" f +_debris src/Dodge/Data/LWorld.hs 101;" f _debugFunction src/Dodge/Data/Universe.hs 61;" f _debugMessage src/Dodge/Data/Universe.hs 60;" 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 130;" f +_delayedEvents src/Dodge/Data/LWorld.hs 131;" 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 @@ -1703,7 +1705,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 137;" f +_distortions src/Dodge/Data/LWorld.hs 138;" 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 @@ -1736,7 +1738,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 120;" f +_doors src/Dodge/Data/LWorld.hs 121;" 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 @@ -1749,11 +1751,11 @@ _drPushes src/Dodge/Data/Door.hs 39;" f _drTrigger src/Dodge/Data/Door.hs 31;" f _drUpdate src/Dodge/Data/Door.hs 32;" f _drZeroPos src/Dodge/Data/Door.hs 33;" f -_dsPos src/Dodge/Data/Cloud.hs 28;" f -_dsTimer src/Dodge/Data/Cloud.hs 30;" f -_dsType src/Dodge/Data/Cloud.hs 31;" f -_dsVel src/Dodge/Data/Cloud.hs 29;" f -_dsZoning src/Dodge/Data/World.hs 48;" f +_dsPos src/Dodge/Data/Cloud.hs 27;" f +_dsTimer src/Dodge/Data/Cloud.hs 29;" f +_dsType src/Dodge/Data/Cloud.hs 30;" f +_dsVel src/Dodge/Data/Cloud.hs 28;" f +_dsZoning src/Dodge/Data/World.hs 49;" 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 @@ -1764,7 +1766,7 @@ _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 104;" f +_energyBalls src/Dodge/Data/LWorld.hs 105;" 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 @@ -1780,24 +1782,26 @@ _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 105;" f +_flames src/Dodge/Data/LWorld.hs 106;" f _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f -_flares src/Dodge/Data/LWorld.hs 108;" f +_flares src/Dodge/Data/LWorld.hs 109;" 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 127;" f +_floorItems src/Dodge/Data/LWorld.hs 128;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f -_foreShapes src/Dodge/Data/LWorld.hs 132;" f +_foreShapes src/Dodge/Data/LWorld.hs 133;" 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 _fullscreenShader src/Data/Preload/Render.hs 23;" f -_futureWorlds src/Dodge/Data/World.hs 67;" f -_futureWorlds src/Dodge/Data/World.hs 73;" f +_futureWorlds src/Dodge/Data/World.hs 68;" f +_futureWorlds src/Dodge/Data/World.hs 74;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 66;" f +_gasZoning src/Dodge/Data/World.hs 48;" f +_gasses src/Dodge/Data/LWorld.hs 98;" f _genInts src/Dodge/Data/GenWorld.hs 27;" f _genPmnt src/Dodge/Data/GenWorld.hs 26;" f _genRooms src/Dodge/Data/GenWorld.hs 25;" f @@ -1827,16 +1831,20 @@ _gr_shadow_size src/Dodge/Data/Config.hs 58;" f _gr_shadows_on_clouds src/Dodge/Data/Config.hs 57;" f _gr_upscale_filter src/Dodge/Data/Config.hs 52;" f _gr_world_res src/Dodge/Data/Config.hs 60;" f -_gsZoning src/Dodge/Data/World.hs 54;" f +_gsPos src/Dodge/Data/Cloud.hs 35;" f +_gsTimer src/Dodge/Data/Cloud.hs 37;" f +_gsType src/Dodge/Data/Cloud.hs 38;" f +_gsVel src/Dodge/Data/Cloud.hs 36;" f +_gsZoning src/Dodge/Data/World.hs 55;" f _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 98;" f +_gusts src/Dodge/Data/LWorld.hs 99;" f _gwWorld src/Dodge/Data/GenWorld.hs 24;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f -_hotkeys src/Dodge/Data/LWorld.hs 141;" f +_hotkeys src/Dodge/Data/LWorld.hs 142;" f _hud src/Dodge/Data/World.hs 44;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 79;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f @@ -1857,18 +1865,18 @@ _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 142;" f +_imHotkeys src/Dodge/Data/LWorld.hs 143;" 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 _immediateUpdate src/Loop/Data.hs 12;" f _impulseUseTarget src/Dodge/Data/ActionPlan.hs 45;" f _impulsesListList src/Dodge/Data/ActionPlan.hs 72;" f -_incEdgeZoning src/Dodge/Data/World.hs 53;" f +_incEdgeZoning src/Dodge/Data/World.hs 54;" f _incEdges src/Dodge/Data/CWorld.hs 31;" f _incGraph src/Dodge/Data/CWorld.hs 29;" f _incNode src/Dodge/Data/CWorld.hs 30;" f -_incNodeZoning src/Dodge/Data/World.hs 52;" f +_incNodeZoning src/Dodge/Data/World.hs 53;" f _input src/Dodge/Data/World.hs 41;" f _isWarming src/Dodge/Data/Item/Params.hs 21;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f @@ -1891,18 +1899,18 @@ _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 143;" f -_lClock src/Dodge/Data/LWorld.hs 138;" f -_lInvLock src/Dodge/Data/LWorld.hs 144;" f -_lTestInt src/Dodge/Data/LWorld.hs 140;" f -_lTestString src/Dodge/Data/LWorld.hs 139;" 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 _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 113;" f +_lasers src/Dodge/Data/LWorld.hs 114;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f @@ -1910,14 +1918,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 133;" f +_lightSources src/Dodge/Data/LWorld.hs 134;" 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 134;" f -_linearShockwaves src/Dodge/Data/LWorld.hs 116;" f +_lights src/Dodge/Data/LWorld.hs 135;" f +_linearShockwaves src/Dodge/Data/LWorld.hs 117;" 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 @@ -1940,9 +1948,9 @@ _lwPos src/Dodge/Data/LinearShockwave.hs 12;" f _lwTimer src/Dodge/Data/LinearShockwave.hs 15;" f _lyCounter src/Dodge/Data/MetaTree.hs 31;" f _lyGen src/Dodge/Data/MetaTree.hs 30;" f -_machines src/Dodge/Data/LWorld.hs 121;" f +_machines src/Dodge/Data/LWorld.hs 122;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f -_magnets src/Dodge/Data/LWorld.hs 124;" f +_magnets src/Dodge/Data/LWorld.hs 125;" 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 @@ -1997,7 +2005,7 @@ _moString src/Dodge/Data/Universe.hs 102;" f _moString src/Dodge/Data/Universe.hs 107;" f _modOption src/Dodge/Data/Universe.hs 97;" f _modString src/Dodge/Data/Universe.hs 95;" f -_modifications src/Dodge/Data/LWorld.hs 128;" f +_modifications src/Dodge/Data/LWorld.hs 129;" 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 @@ -2032,7 +2040,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 123;" f +_oldMagnets src/Dodge/Data/LWorld.hs 124;" 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 @@ -2080,8 +2088,8 @@ _prRooms src/Dodge/Tree/Shift.hs 30;" f _prRot src/Dodge/Data/Prop.hs 18;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressedKeys src/Dodge/Data/Input.hs 37;" f -_projectiles src/Dodge/Data/LWorld.hs 101;" f -_props src/Dodge/Data/LWorld.hs 99;" f +_projectiles src/Dodge/Data/LWorld.hs 102;" f +_props src/Dodge/Data/LWorld.hs 100;" f _proxReqDead src/Dodge/Data/Machine/Sensor.hs 37;" f _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 36;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 35;" f @@ -2095,8 +2103,8 @@ _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 100;" f _psRot src/Dodge/Data/GenWorld.hs 92;" f _psSelect src/Dodge/Data/GenWorld.hs 95;" f _pullWallShader src/Data/Preload/Render.hs 22;" f -_pulseBalls src/Dodge/Data/LWorld.hs 115;" f -_pulseLasers src/Dodge/Data/LWorld.hs 114;" f +_pulseBalls src/Dodge/Data/LWorld.hs 116;" f +_pulseLasers src/Dodge/Data/LWorld.hs 115;" 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 @@ -2124,8 +2132,8 @@ _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 -_radarBlips src/Dodge/Data/LWorld.hs 107;" f -_radarSweeps src/Dodge/Data/LWorld.hs 103;" f +_radarBlips src/Dodge/Data/LWorld.hs 108;" f +_radarSweeps src/Dodge/Data/LWorld.hs 104;" f _randGen src/Dodge/Data/World.hs 38;" f _rbColor src/Dodge/Data/RadarBlip.hs 13;" f _rbMaxTime src/Dodge/Data/RadarBlip.hs 15;" f @@ -2142,11 +2150,11 @@ _rdTG src/Dodge/Data/Distortion.hs 17;" f _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 62;" f -_respawnPos src/Dodge/Data/LWorld.hs 145;" f -_reverseAmount src/Dodge/Data/World.hs 66;" f -_reverseAmount src/Dodge/Data/World.hs 72;" f -_reverseAmount src/Dodge/Data/World.hs 76;" f +_respawnDelay src/Dodge/Data/World.hs 63;" f +_respawnPos src/Dodge/Data/LWorld.hs 146;" f +_reverseAmount src/Dodge/Data/World.hs 67;" f +_reverseAmount src/Dodge/Data/World.hs 73;" f +_reverseAmount src/Dodge/Data/World.hs 77;" f _rkHoming src/Dodge/Data/Projectile.hs 33;" f _rkSmoke src/Dodge/Data/Projectile.hs 34;" f _rlDir src/Dodge/Data/Room.hs 27;" f @@ -2204,11 +2212,11 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f _scTitle src/Dodge/Data/Universe.hs 83;" f _scrollAmount src/Dodge/Data/Input.hs 40;" f -_scrollItemID src/Dodge/Data/World.hs 68;" f -_scrollItemID src/Dodge/Data/World.hs 77;" f -_scrollItemID src/Dodge/Data/World.hs 81;" f -_scrollSmoothing src/Dodge/Data/World.hs 65;" f -_scrollSmoothing src/Dodge/Data/World.hs 71;" f +_scrollItemID src/Dodge/Data/World.hs 69;" f +_scrollItemID src/Dodge/Data/World.hs 78;" f +_scrollItemID src/Dodge/Data/World.hs 82;" f +_scrollSmoothing src/Dodge/Data/World.hs 66;" f +_scrollSmoothing src/Dodge/Data/World.hs 72;" f _scrollTestFloat src/Dodge/Data/Input.hs 47;" f _scrollTestInt src/Dodge/Data/Input.hs 48;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f @@ -2216,8 +2224,8 @@ _scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f -_seenLocations src/Dodge/Data/LWorld.hs 135;" f -_selLocation src/Dodge/Data/LWorld.hs 136;" f +_seenLocations src/Dodge/Data/LWorld.hs 136;" f +_selLocation src/Dodge/Data/LWorld.hs 137;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensThreshold src/Dodge/Data/Machine/Sensor.hs 22;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f @@ -2236,7 +2244,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 112;" f +_shockwaves src/Dodge/Data/LWorld.hs 113;" f _siColor src/Dodge/Data/SelectionList.hs 47;" f _siHeight src/Dodge/Data/SelectionList.hs 44;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 46;" f @@ -2271,7 +2279,7 @@ _soundVolumeFraction src/Sound/Data.hs 50;" f _soundsToInvestigate src/Dodge/Data/Creature.hs 76;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f -_sparks src/Dodge/Data/LWorld.hs 106;" f +_sparks src/Dodge/Data/LWorld.hs 107;" f _spawnEBT src/Dodge/Data/Bullet.hs 33;" f _ssIndent src/Dodge/Data/SelectionList.hs 34;" f _ssItems src/Dodge/Data/SelectionList.hs 30;" f @@ -2307,10 +2315,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 109;" f +_tempSPic src/Dodge/Data/LWorld.hs 110;" f _termID src/Dodge/Data/HUD.hs 27;" f -_terminals src/Dodge/Data/LWorld.hs 122;" f -_teslaArcs src/Dodge/Data/LWorld.hs 110;" f +_terminals src/Dodge/Data/LWorld.hs 123;" f +_teslaArcs src/Dodge/Data/LWorld.hs 111;" f _testFloat src/Dodge/Data/World.hs 42;" f _textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f @@ -2322,7 +2330,7 @@ _tileTangentPos src/Data/Tile.hs 23;" f _tileZero src/Data/Tile.hs 19;" f _tiles src/Data/Tile.hs 14;" f _timeFlow src/Dodge/Data/World.hs 37;" f -_timeFlowCharge src/Dodge/Data/World.hs 80;" f +_timeFlowCharge src/Dodge/Data/World.hs 81;" f _tlEffect src/Dodge/Data/Terminal.hs 39;" f _tlPause src/Dodge/Data/Terminal.hs 37;" f _tlString src/Dodge/Data/Terminal.hs 38;" f @@ -2347,10 +2355,10 @@ _toPlaySoundVolumeFraction src/Sound/Data.hs 38;" f _toPlaySounds src/Dodge/Data/World.hs 39;" f _topBoxSize src/Shape/Data.hs 12;" f _tptString src/Dodge/Data/Terminal/Status.hs 15;" f -_tractorBeams src/Dodge/Data/LWorld.hs 117;" f +_tractorBeams src/Dodge/Data/LWorld.hs 118;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f -_triggers src/Dodge/Data/LWorld.hs 126;" f +_triggers src/Dodge/Data/LWorld.hs 127;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 44;" f _ttTriggerID src/Dodge/Data/Terminal.hs 43;" f _tuDir src/Dodge/Data/Machine.hs 53;" f @@ -2376,7 +2384,7 @@ _unST src/Dodge/Data/MetaTree.hs 20;" f _unTO src/Shader/Data.hs 59;" f _unVAO src/Shader/Data.hs 64;" f _unfiredBarrels src/Dodge/Data/Item/Params.hs 17;" f -_unpauseClock src/Dodge/Data/World.hs 56;" f +_unpauseClock src/Dodge/Data/World.hs 57;" f _unputTerminal src/Dodge/Data/GenWorld.hs 42;" f _upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 62;" f @@ -2429,15 +2437,15 @@ _vxExt src/Picture/Data.hs 14;" f _vxLayer src/Picture/Data.hs 15;" f _vxPos src/Picture/Data.hs 12;" f _vxShadNum src/Picture/Data.hs 16;" f -_wCam src/Dodge/Data/World.hs 55;" f +_wCam src/Dodge/Data/World.hs 56;" 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 119;" f +_wallDamages src/Dodge/Data/LWorld.hs 120;" f _wallVBO src/Data/Preload/Render.hs 50;" f -_walls src/Dodge/Data/LWorld.hs 118;" f -_wanID src/Dodge/Data/LWorld.hs 158;" f -_wanPos src/Dodge/Data/LWorld.hs 157;" 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 _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _winVBO src/Data/Preload/Render.hs 49;" f @@ -2456,9 +2464,9 @@ _wlStCreature src/Dodge/Data/Wall/Structure.hs 15;" f _wlStructure src/Dodge/Data/Wall.hs 24;" f _wlTouchThrough src/Dodge/Data/Wall.hs 21;" f _wlUnshadowed src/Dodge/Data/Wall.hs 22;" f -_wlZoning src/Dodge/Data/World.hs 49;" f +_wlZoning src/Dodge/Data/World.hs 50;" f _worldEventFlags src/Dodge/Data/World.hs 45;" f -_worldEvents src/Dodge/Data/LWorld.hs 129;" f +_worldEvents src/Dodge/Data/LWorld.hs 130;" 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 @@ -2511,7 +2519,7 @@ addToTrunk src/TreeHelp.hs 157;" f addWarningTerminal src/Dodge/Room/Warning.hs 61;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 414;" f +advanceScrollAmount src/Dodge/Update.hs 415;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 60;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f @@ -2764,13 +2772,13 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 70;" f checkDeath' src/Dodge/Creature/Update.hs 73;" f -checkEndGame src/Dodge/Update.hs 763;" f +checkEndGame src/Dodge/Update.hs 767;" 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 316;" f +checkTermDist src/Dodge/Update.hs 317;" 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 @@ -2793,9 +2801,9 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f -clClSpringVel src/Dodge/Update.hs 836;" f +clClSpringVel src/Dodge/Update.hs 863;" f clColor src/Shader/Poke/Cloud.hs 39;" f -clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f +clZoneSize src/Dodge/Zoning/Cloud.hs 24;" f clampPath src/Dodge/Room/Procedural.hs 146;" f clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 696;" f @@ -2819,12 +2827,11 @@ closeObjectInfo src/Dodge/Render/HUD.hs 227;" f closestPointOnLine src/Geometry/Intersect.hs 272;" f closestPointOnLineParam src/Geometry/Intersect.hs 288;" f closestPointOnSeg src/Geometry/Intersect.hs 303;" f -cloudEffect src/Dodge/Update.hs 788;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 11;" f -clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f +clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f -clsNearRect src/Dodge/Zoning/Cloud.hs 15;" f -clsNearSeg src/Dodge/Zoning/Cloud.hs 12;" f +clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f +clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f clusterFormatting src/Dodge/Combine/Graph.hs 123;" f clusterFunc src/Dodge/Combine/Graph.hs 117;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f @@ -2898,7 +2905,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 865;" f +crCrSpring src/Dodge/Update.hs 901;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f @@ -2929,7 +2936,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 862;" f +crSpring src/Dodge/Update.hs 898;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 63;" f @@ -3000,7 +3007,7 @@ dShadCol src/Dodge/Render/List.hs 222;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 53;" f -damageBlock src/Dodge/Wall/Damage.hs 44;" f +damageBlock src/Dodge/Wall/Damage.hs 45;" f damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f @@ -3009,7 +3016,7 @@ damageDirection src/Dodge/Damage.hs 35;" f damageDirt src/Dodge/Material/Damage.hs 129;" f damageFlesh src/Dodge/Material/Damage.hs 96;" f damageGlass src/Dodge/Material/Damage.hs 154;" f -damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f +damageGlassBlock src/Dodge/Wall/Damage.hs 50;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMetal src/Dodge/Material/Damage.hs 64;" f @@ -3017,7 +3024,7 @@ damageSensor src/Dodge/Placement/Instance/Sensor.hs 14;" f damageStone src/Dodge/Material/Damage.hs 33;" f damageThingHit src/Dodge/Bullet.hs 180;" f damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 34;" f -damageWall src/Dodge/Wall/Damage.hs 28;" f +damageWall src/Dodge/Wall/Damage.hs 29;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f dark src/Color.hs 108;" f darkenBackground src/Dodge/Render/MenuScreen.hs 32;" f @@ -3070,9 +3077,9 @@ defaultBlock src/Dodge/Default/Block.hs 5;" f defaultBounds src/Dodge/Data/Bounds.hs 18;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultButton src/Dodge/Default.hs 46;" f -defaultCWCam src/Dodge/Default/World.hs 69;" f -defaultCWGen src/Dodge/Default/World.hs 59;" f -defaultCWorld src/Dodge/Default/World.hs 84;" f +defaultCWCam src/Dodge/Default/World.hs 70;" f +defaultCWGen src/Dodge/Default/World.hs 60;" f +defaultCWorld src/Dodge/Default/World.hs 85;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 150;" f @@ -3088,13 +3095,13 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultEquipment src/Dodge/Default.hs 24;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 164;" f +defaultHUD src/Dodge/Default/World.hs 166;" f defaultHeldItem src/Dodge/Default/Item.hs 9;" f defaultInanimate src/Dodge/Default/Creature.hs 62;" f defaultInput src/Dodge/Default/World.hs 11;" f defaultIntention src/Dodge/Default/Creature.hs 98;" f defaultInvSize src/Dodge/Default/Creature.hs 72;" f -defaultLWorld src/Dodge/Default/World.hs 100;" f +defaultLWorld src/Dodge/Default/World.hs 101;" f defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f @@ -3114,15 +3121,15 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f denormalEdges src/Polyhedra.hs 136;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyBlock src/Dodge/Block.hs 17;" f -destroyDoor src/Dodge/Wall/Damage.hs 68;" f +destroyDoor src/Dodge/Wall/Damage.hs 70;" f destroyInvItem src/Dodge/Inventory.hs 40;" f destroyItem src/Dodge/Inventory.hs 62;" f destroyLSFlashAt src/Dodge/LightSource.hs 44;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f -destroyMount src/Dodge/Wall/Damage.hs 89;" f -destroyMounts src/Dodge/Wall/Damage.hs 86;" f +destroyMount src/Dodge/Wall/Damage.hs 91;" f +destroyMounts src/Dodge/Wall/Damage.hs 88;" f destroyProjectile src/Dodge/Projectile/Update.hs 109;" f detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f @@ -3144,7 +3151,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f -displayTerminalLineString src/Dodge/Update.hs 478;" f +displayTerminalLineString src/Dodge/Update.hs 479;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 8;" f @@ -3219,7 +3226,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 28;" f -doWorldEvents src/Dodge/Update.hs 423;" f +doWorldEvents src/Dodge/Update.hs 424;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 38;" f @@ -3367,11 +3374,11 @@ dropInventoryPath src/Dodge/HeldUse.hs 1351;" f dropItem src/Dodge/Creature/Action.hs 155;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 34;" f -dsZoneSize src/Dodge/Zoning/Cloud.hs 42;" f -dssNearCirc src/Dodge/Zoning/Cloud.hs 39;" f -dssNearPoint src/Dodge/Zoning/Cloud.hs 30;" f -dssNearRect src/Dodge/Zoning/Cloud.hs 36;" f -dssNearSeg src/Dodge/Zoning/Cloud.hs 33;" f +dsZoneSize src/Dodge/Zoning/Cloud.hs 45;" f +dssNearCirc src/Dodge/Zoning/Cloud.hs 42;" f +dssNearPoint src/Dodge/Zoning/Cloud.hs 33;" f +dssNearRect src/Dodge/Zoning/Cloud.hs 39;" f +dssNearSeg src/Dodge/Zoning/Cloud.hs 36;" f dtIL src/Dodge/DoubleTree.hs 132;" f dtPropagate' src/Dodge/DoubleTree.hs 45;" f dtStartPropagate src/Dodge/DoubleTree.hs 38;" f @@ -3384,8 +3391,8 @@ dtToLRAdjEither src/Dodge/DoubleTree.hs 181;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 72;" f -dustColor src/Shader/Poke/Cloud.hs 46;" f -dustSpringVel src/Dodge/Update.hs 847;" f +dustColor src/Shader/Poke/Cloud.hs 45;" f +dustSpringVel src/Dodge/Update.hs 883;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3541,7 +3548,10 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f gameplayMenu src/Dodge/Menu.hs 154;" f gameplayMenuOptions src/Dodge/Menu.hs 157;" f +gasEffect src/Dodge/Update.hs 792;" f +gasGasSpringVel src/Dodge/Update.hs 872;" f gasType src/Dodge/HeldUse.hs 1115;" f +gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f generateGraphs src/Dodge/Menu.hs 149;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -3565,7 +3575,7 @@ getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 338;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 325;" f -getDebugMouseOver src/Dodge/Update.hs 374;" f +getDebugMouseOver src/Dodge/Update.hs 375;" f getDistortions src/Dodge/Render.hs 433;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f @@ -3576,7 +3586,7 @@ getLaserDamage src/Dodge/HeldUse.hs 704;" f getLaserPhaseV src/Dodge/HeldUse.hs 701;" f getLinksOfType src/Dodge/RoomLink.hs 41;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f -getMenuMouseContext src/Dodge/Update.hs 386;" f +getMenuMouseContext src/Dodge/Update.hs 387;" f getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f @@ -3811,7 +3821,7 @@ isNHS src/Geometry/Intersect.hs 53;" f isNothing' src/MaybeHelp.hs 31;" f isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f -isOverTerminalScreen src/Dodge/Update.hs 394;" f +isOverTerminalScreen src/Dodge/Update.hs 395;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f isRHS src/Geometry/LHS.hs 32;" f @@ -4087,8 +4097,8 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f maxShowX src/Dodge/Combine/Graph.hs 48;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f -maybeDestroyBlock src/Dodge/Wall/Damage.hs 58;" f -maybeDestroyDoor src/Dodge/Wall/Damage.hs 63;" f +maybeDestroyBlock src/Dodge/Wall/Damage.hs 60;" f +maybeDestroyDoor src/Dodge/Wall/Damage.hs 65;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 562;" f maybeOpenConsole src/Dodge/Update.hs 126;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f @@ -4206,7 +4216,7 @@ muzzleRandPos src/Dodge/HeldUse.hs 778;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 179;" f mvFS src/Dodge/Placement/PlaceSpot.hs 185;" f -mvGust src/Dodge/Update.hs 779;" f +mvGust src/Dodge/Update.hs 783;" f mvLS src/Dodge/Placement/PlaceSpot.hs 220;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4320,7 +4330,7 @@ pauseMenu src/Dodge/Menu.hs 59;" f pauseMenuOptions src/Dodge/Menu.hs 66;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 182;" f -pbFlicker src/Dodge/Update.hs 464;" f +pbFlicker src/Dodge/Update.hs 465;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4551,7 +4561,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f -randWallReflect src/Dodge/Update.hs 638;" f +randWallReflect src/Dodge/Update.hs 639;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f @@ -4805,7 +4815,7 @@ setLinkType src/Dodge/RoomLink.hs 78;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f -setOldPos src/Dodge/Update.hs 497;" f +setOldPos src/Dodge/Update.hs 498;" f setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f @@ -4905,7 +4915,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 856;" f +simpleCrSprings src/Dodge/Update.hs 892;" f simpleTermMessage src/Dodge/Terminal.hs 164;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 700;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f @@ -5030,7 +5040,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f stopAllSounds src/Sound.hs 125;" f stopBulletAt src/Dodge/Bullet.hs 200;" f -stopPushing src/Dodge/Wall/Damage.hs 94;" f +stopPushing src/Dodge/Wall/Damage.hs 96;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f @@ -5143,7 +5153,7 @@ titleOptionsMenu src/Dodge/Menu.hs 106;" f titleOptionsNoWrite src/Dodge/Menu.hs 109;" f tlDoEffect src/Dodge/Terminal.hs 102;" f tlSetStatus src/Dodge/Terminal.hs 99;" f -tmUpdate src/Dodge/Update.hs 481;" f +tmUpdate src/Dodge/Update.hs 482;" f toBinary src/Dodge/Inventory/SelectionList.hs 141;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -5279,7 +5289,7 @@ unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 131;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 137;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 119;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 196;" f -updateAimPos src/Dodge/Update.hs 303;" f +updateAimPos src/Dodge/Update.hs 304;" f updateAllNodes src/TreeHelp.hs 86;" f updateArc src/Dodge/Tesla.hs 44;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f @@ -5289,44 +5299,46 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 263;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 560;" f +updateBullets src/Dodge/Update.hs 561;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f -updateCloud src/Dodge/Update.hs 793;" f -updateClouds src/Dodge/Update.hs 664;" f +updateCloud src/Dodge/Update.hs 796;" f +updateClouds src/Dodge/Update.hs 665;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 32;" f updateCreature' src/Dodge/Creature/Update.hs 41;" f -updateCreatureGroups src/Dodge/Update.hs 532;" f -updateCreatureSoundPositions src/Dodge/Update.hs 511;" f -updateDebris src/Dodge/Update.hs 567;" f +updateCreatureGroups src/Dodge/Update.hs 533;" f +updateCreatureSoundPositions src/Dodge/Update.hs 512;" f +updateDebris src/Dodge/Update.hs 568;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f -updateDelayedEvents src/Dodge/Update.hs 885;" f +updateDelayedEvents src/Dodge/Update.hs 921;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 553;" f +updateDistortions src/Dodge/Update.hs 554;" f updateDoor src/Dodge/Door.hs 22;" f -updateDoors src/Dodge/Update.hs 308;" f -updateDust src/Dodge/Update.hs 817;" f -updateDusts src/Dodge/Update.hs 667;" f +updateDoors src/Dodge/Update.hs 309;" f +updateDust src/Dodge/Update.hs 844;" f +updateDusts src/Dodge/Update.hs 671;" 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 655;" f +updateEnergyBalls src/Dodge/Update.hs 656;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 652;" f +updateFlames src/Dodge/Update.hs 653;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f -updateGusts src/Dodge/Update.hs 776;" f -updateIMl src/Dodge/Update.hs 526;" f -updateIMl' src/Dodge/Update.hs 529;" f +updateGas src/Dodge/Update.hs 820;" f +updateGasses src/Dodge/Update.hs 668;" f +updateGusts src/Dodge/Update.hs 780;" f +updateIMl src/Dodge/Update.hs 527;" f +updateIMl' src/Dodge/Update.hs 530;" f updateInGameCamera src/Dodge/Update/Camera.hs 84;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5339,32 +5351,32 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 405;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 430;" f +updateLasers src/Dodge/Update.hs 431;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 441;" f updateMachine src/Dodge/Machine/Update.hs 24;" f -updateMagnets src/Dodge/Update.hs 311;" f +updateMagnets src/Dodge/Update.hs 312;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 203;" f -updateMouseContext src/Dodge/Update.hs 324;" f -updateMouseContextGame src/Dodge/Update.hs 329;" f +updateMouseContext src/Dodge/Update.hs 325;" f +updateMouseContextGame src/Dodge/Update.hs 330;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 166;" f -updateObjCatMaybes src/Dodge/Update.hs 544;" f -updateObjMapMaybe src/Dodge/Update.hs 537;" f -updatePastWorlds src/Dodge/Update.hs 419;" f +updateObjCatMaybes src/Dodge/Update.hs 545;" f +updateObjMapMaybe src/Dodge/Update.hs 538;" f +updatePastWorlds src/Dodge/Update.hs 420;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 123;" f -updatePulseBall src/Dodge/Update.hs 444;" f -updatePulseLaser src/Dodge/Update.hs 607;" f -updatePulseLasers src/Dodge/Update.hs 439;" f +updatePulseBall src/Dodge/Update.hs 445;" f +updatePulseLaser src/Dodge/Update.hs 608;" f +updatePulseLasers src/Dodge/Update.hs 440;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 556;" f +updateRadarBlips src/Dodge/Update.hs 557;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 658;" f +updateRadarSweeps src/Dodge/Update.hs 659;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 113;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f @@ -5374,16 +5386,16 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 258;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 237;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 649;" f +updateShockwaves src/Dodge/Update.hs 650;" f updateSingleNodes src/TreeHelp.hs 98;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 661;" f -updateTeslaArc src/Dodge/Update.hs 577;" f -updateTeslaArcs src/Dodge/Update.hs 574;" f +updateSparks src/Dodge/Update.hs 662;" f +updateTeslaArc src/Dodge/Update.hs 578;" f +updateTeslaArcs src/Dodge/Update.hs 575;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 646;" f +updateTractorBeams src/Dodge/Update.hs 647;" f updateTurret src/Dodge/Machine/Update.hs 49;" f updateUniverse src/Dodge/Update.hs 74;" f updateUniverseFirst src/Dodge/Update.hs 85;" f @@ -5394,7 +5406,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f -updateWheelEvents src/Dodge/Update.hs 409;" f +updateWheelEvents src/Dodge/Update.hs 410;" f updateWorldEventFlag src/Dodge/Update.hs 120;" f updateWorldEventFlags src/Dodge/Update.hs 108;" f upperBody src/Dodge/Creature/Picture.hs 121;" f @@ -5567,19 +5579,19 @@ zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 136;" f -zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 471;" f +zoneCloud src/Dodge/Zoning/Cloud.hs 30;" f +zoneClouds src/Dodge/Update.hs 472;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 507;" f -zoneDust src/Dodge/Zoning/Cloud.hs 48;" f -zoneDusts src/Dodge/Update.hs 475;" f +zoneCreatures src/Dodge/Update.hs 508;" f +zoneDust src/Dodge/Zoning/Cloud.hs 51;" f +zoneDusts src/Dodge/Update.hs 476;" f zoneExtract src/Dodge/Zoning/Base.hs 58;" f zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f zoneMonoid src/Dodge/Zoning/Base.hs 85;" f zoneOfCirc src/Dodge/Zoning/Base.hs 26;" f -zoneOfCl src/Dodge/Zoning/Cloud.hs 24;" f +zoneOfCl src/Dodge/Zoning/Cloud.hs 27;" f zoneOfCr src/Dodge/Zoning/Creature.hs 46;" f -zoneOfDs src/Dodge/Zoning/Cloud.hs 45;" f +zoneOfDs src/Dodge/Zoning/Cloud.hs 48;" f zoneOfIncPe src/Dodge/Zoning/Pathing.hs 52;" f zoneOfPn src/Dodge/Zoning/Pathing.hs 29;" f zoneOfPoint src/Dodge/Zoning/Base.hs 46;" f