From 03bc733de9554d47c893f79d075c494db32e4001 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 24 Jun 2025 13:54:14 +0100 Subject: [PATCH] Tweak clouds --- src/Dodge/Cloud.hs | 7 +- src/Dodge/Data/Cloud.hs | 9 +- src/Dodge/Material/Damage.hs | 14 +-- src/Dodge/Update.hs | 4 +- src/Dodge/Wall/Dust.hs | 4 +- src/Shader/Poke/Cloud.hs | 20 +++- tags | 171 +++++++++++++++++------------------ 7 files changed, 115 insertions(+), 114 deletions(-) diff --git a/src/Dodge/Cloud.hs b/src/Dodge/Cloud.hs index f7db36809..f0daf7503 100644 --- a/src/Dodge/Cloud.hs +++ b/src/Dodge/Cloud.hs @@ -4,14 +4,11 @@ import Dodge.Data.Cloud clAlt :: Cloud -> Float clAlt cl = case _clType cl of - SmokeCloud -> 30 - FlamerSmokeCloud -> 30 + FlamerSmokeCloud -> 90 RocketCloud -> 30 - StoneDust -> 1 - DirtDust -> 1 + Dust _ -> 1 CryoReleaseCloud -> 50 GasCloud -> 20 - BloodCloud -> 1 --clRad :: Cloud -> Float --clRad cl = case _clType cl of diff --git a/src/Dodge/Data/Cloud.hs b/src/Dodge/Data/Cloud.hs index 5ca04af2c..b0055c69e 100644 --- a/src/Dodge/Data/Cloud.hs +++ b/src/Dodge/Data/Cloud.hs @@ -5,6 +5,7 @@ module Dodge.Data.Cloud where +import Dodge.Data.Material import Control.Lens import Data.Aeson import Data.Aeson.TH @@ -26,14 +27,12 @@ data Cloud = Cloud deriving (Eq, Ord, Show, Read) --Generic, Flat) data CloudType - = SmokeCloud - | FlamerSmokeCloud + = --SmokeCloud + FlamerSmokeCloud | RocketCloud | CryoReleaseCloud | GasCloud - | StoneDust - | DirtDust - | BloodCloud + | Dust Material deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''Cloud diff --git a/src/Dodge/Material/Damage.hs b/src/Dodge/Material/Damage.hs index 75513348f..cf1c1fdaf 100644 --- a/src/Dodge/Material/Damage.hs +++ b/src/Dodge/Material/Damage.hs @@ -28,10 +28,10 @@ damageStone dm ecw w = Lasering _ p t -> makeSpark FireSpark (outTo p t) (rdir p t) Piercing _ p t -> makeSpark NormalSpark (outTo p t) (rdir p t) - . makeCloudAt StoneDust 200 (addZ 20 (outTo p t)) + . makeCloudAt (Dust Stone) 200 (addZ 20 (outTo p t)) . randsound p [slapS, slap1S] - Blunt _ p t -> makeCloudAt StoneDust 200 (addZ 20 (outTo p t)) - Shattering _ p t -> makeCloudAt StoneDust 200 (addZ 20 (outTo p t)) + Blunt _ p t -> makeCloudAt (Dust Stone) 200 (addZ 20 (outTo p t)) + Shattering _ p t -> makeCloudAt (Dust Stone) 200 (addZ 20 (outTo p t)) Crushing{} -> id Explosive{} -> id Sparking{} -> id @@ -100,7 +100,7 @@ damageFlesh dm _ w = w & case dm of , bloodShort7S , bloodShort8S ] - . makeCloudAt BloodCloud 50 (addZ 20 (outTo p t)) + . makeCloudAt (Dust Flesh) 50 (addZ 20 (outTo p t)) Blunt _ p _ -> randsound p [hitS] Shattering _ _ _ -> id Crushing{} -> id @@ -123,10 +123,10 @@ damageDirt dm ecw w = w & case dm of Lasering _ p t -> makeSpark FireSpark (outTo p t) (rdir p t) Piercing _ p t -> - makeCloudAt DirtDust 200 (addZ 20 (outTo p t)) + makeCloudAt (Dust Dirt) 200 (addZ 20 (outTo p t)) . randsound p [slapS, slap1S] - Blunt _ p t -> makeCloudAt DirtDust 200 (addZ 20 (outTo p t)) - Shattering _ p t -> makeCloudAt DirtDust 200 (addZ 20 (outTo p t)) + Blunt _ p t -> makeCloudAt (Dust Dirt) 200 (addZ 20 (outTo p t)) + Shattering _ p t -> makeCloudAt (Dust Dirt) 200 (addZ 20 (outTo p t)) Crushing{} -> id Explosive{} -> id Sparking{} -> id diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index c5faec93d..30bc49423 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -732,7 +732,6 @@ cloudEffect cl = case _clType cl of GasCloud -> cloudPoisonDamage cl RocketCloud -> id CryoReleaseCloud -> id - SmokeCloud -> id _ -> id updateCloud :: World -> Cloud -> (World, Maybe Cloud) @@ -756,8 +755,9 @@ updateCloud w c newPos@(V3 _ _ npz) = oldPos +.+.+ newVel newPos2 = stripZ newPos hitWl = bouncePoint (const True) 1 oldPos2 newPos2 w - finalPos = addZ (min 74 npz) $ maybe newPos2 fst hitWl + --finalPos = addZ (min 74 npz) $ maybe newPos2 fst hitWl -- allowing clouds at/above height 75 causes graphical glitches 22.05.23 + finalPos = addZ (min 90 npz) $ maybe newPos2 fst hitWl finalVel = addZ nvz $ maybe newVel2 snd hitWl clClSpringVel :: Cloud -> Point3 -> Cloud -> Point3 diff --git a/src/Dodge/Wall/Dust.hs b/src/Dodge/Wall/Dust.hs index 2d0031574..ebe778cc7 100644 --- a/src/Dodge/Wall/Dust.hs +++ b/src/Dodge/Wall/Dust.hs @@ -8,7 +8,7 @@ import Geometry import RandomHelp wlDustAt :: Wall -> Point2 -> World -> World -wlDustAt _ = makeCloudAt StoneDust 200 . addZ 20 +wlDustAt wl = makeCloudAt (Dust (_wlMaterial wl)) 200 . addZ 20 -- where -- dustcol = _wlColor wl & _4 .~ 1 @@ -17,7 +17,7 @@ muchWlDustAt wl p = flip (foldl' f) [10, 20 .. 100] where f w h = w - & makeCloudAt StoneDust 200 (addZ h (p +.+ off)) + & makeCloudAt (Dust (_wlMaterial wl)) 200 (addZ h (p +.+ off)) & randGen .~ g where (off, g) = runState (randInCirc 1) (_randGen w) diff --git a/src/Shader/Poke/Cloud.hs b/src/Shader/Poke/Cloud.hs index 28a999ab1..7ea24e651 100644 --- a/src/Shader/Poke/Cloud.hs +++ b/src/Shader/Poke/Cloud.hs @@ -2,6 +2,7 @@ module Shader.Poke.Cloud (pokeCloud) where +import Dodge.Data.Material import Color import Control.Lens import qualified Data.Vector.Unboxed as UV @@ -33,14 +34,23 @@ pokeCloudVerx ptr cl nv i (dx, dy) = clColor :: CloudType -> Color clColor = \case - SmokeCloud -> white FlamerSmokeCloud -> greyN 0.7 RocketCloud -> greyN 0.5 - CryoReleaseCloud -> mixColorsFrac blue cyan 0.5 + CryoReleaseCloud -> white GasCloud -> green - StoneDust -> white - DirtDust -> dark orange - BloodCloud -> red + Dust mt -> materialColor mt + +materialColor :: Material -> Color +materialColor = \case + Wood -> dark yellow + Dirt -> dark $ dark orange + Stone -> greyN 0.5 + Glass -> white + Metal -> orange + Crystal -> green + Flesh -> red + Electronics-> greyN 0.2 + pokeCloudFloat :: Ptr Float -> Int -> Int -> Float -> IO () {-# INLINE pokeCloudFloat #-} diff --git a/tags b/tags index 0a08ae4d0..c24bf777c 100644 --- a/tags +++ b/tags @@ -197,7 +197,6 @@ BlockDraws src/Dodge/Data/Block.hs 41;" C BlockObstacle src/Dodge/Data/PathGraph.hs 49;" C BlockPart src/Dodge/Data/Wall/Structure.hs 16;" C BlockedLink src/Dodge/Data/Room.hs 48;" C -BloodCloud src/Dodge/Data/Cloud.hs 36;" C BloomLayer src/Picture/Data.hs 25;" C BloomNoZWrite src/Picture/Data.hs 26;" C Blunt src/Dodge/Data/Damage.hs 21;" C @@ -312,16 +311,16 @@ Clock src/Dodge/Clock.hs 1;" m CloseToMelee src/Dodge/Data/ActionPlan.hs 187;" C CloseToggle src/Dodge/Data/Machine/Sensor.hs 44;" t Close_shape_culling src/Dodge/Data/Config.hs 79;" C -Cloud src/Dodge/Data/Cloud.hs 17;" t +Cloud src/Dodge/Data/Cloud.hs 18;" t Cloud src/Dodge/Cloud.hs 1;" m Cloud src/Dodge/Data/Cloud.hs 6;" m Cloud src/Dodge/Update/Cloud.hs 1;" m Cloud src/Dodge/WorldEvent/Cloud.hs 1;" m Cloud src/Dodge/Zoning/Cloud.hs 1;" m Cloud src/Shader/Poke/Cloud.hs 3;" m -CloudColor src/Dodge/Data/Cloud.hs 14;" C -CloudDraw src/Dodge/Data/Cloud.hs 13;" t -CloudType src/Dodge/Data/Cloud.hs 28;" t +CloudColor src/Dodge/Data/Cloud.hs 15;" C +CloudDraw src/Dodge/Data/Cloud.hs 14;" t +CloudType src/Dodge/Data/Cloud.hs 29;" t ClusterLink src/Dodge/Data/RoomCluster.hs 14;" t ClusterStatus src/Dodge/Data/RoomCluster.hs 9;" t Cognizant src/Dodge/Data/Creature/Perception.hs 67;" C @@ -434,7 +433,7 @@ CreaturePart src/Dodge/Data/Wall/Structure.hs 17;" C CreatureShape src/Dodge/Data/Creature/Misc.hs 76;" t CreatureType src/Dodge/Data/Creature/Misc.hs 60;" t Crushing src/Dodge/Data/Damage.hs 23;" C -CryoReleaseCloud src/Dodge/Data/Cloud.hs 32;" C +CryoReleaseCloud src/Dodge/Data/Cloud.hs 33;" C CryostatisSS src/Dodge/Data/Scenario.hs 91;" C Crystal src/Dodge/Data/Material.hs 11;" C Cull_more_lights src/Dodge/Data/Config.hs 78;" C @@ -510,7 +509,6 @@ DestroyBullet src/Dodge/Data/Bullet.hs 31;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C Detector src/Dodge/Data/Item/Combine.hs 182;" t Dirt src/Dodge/Data/Material.hs 11;" C -DirtDust src/Dodge/Data/Cloud.hs 35;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 3;" m DisplayInventory src/Dodge/Data/HUD.hs 19;" C @@ -590,6 +588,7 @@ DroneAmmo src/Dodge/Data/AmmoType.hs 10;" C DropItem src/Dodge/Data/ActionPlan.hs 39;" C DudPayload src/Dodge/Data/Payload.hs 13;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C +Dust src/Dodge/Data/Cloud.hs 35;" C Dust src/Dodge/Wall/Dust.hs 1;" m EBO src/Shader/Data.hs 88;" t EBSound src/Dodge/Data/SoundOrigin.hs 39;" C @@ -690,7 +689,7 @@ FlameBeamCombine src/Dodge/Data/Beam.hs 39;" C FlameSound src/Dodge/Data/SoundOrigin.hs 27;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 14;" C Flamer src/Dodge/Data/SoundOrigin.hs 25;" C -FlamerSmokeCloud src/Dodge/Data/Cloud.hs 30;" C +FlamerSmokeCloud src/Dodge/Data/Cloud.hs 31;" C Flaming src/Dodge/Data/Damage.hs 25;" C Flank src/Dodge/Data/ActionPlan.hs 177;" C FlareType src/Dodge/Data/Muzzle.hs 21;" t @@ -761,7 +760,7 @@ GameRoom src/Dodge/GameRoom.hs 15;" t GameRoom src/Dodge/GameRoom.hs 8;" m Gas src/Dodge/Gas.hs 1;" m GasAmmo src/Dodge/Data/AmmoType.hs 11;" C -GasCloud src/Dodge/Data/Cloud.hs 33;" C +GasCloud src/Dodge/Data/Cloud.hs 34;" 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 56;" C @@ -1658,7 +1657,7 @@ RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m Rocket src/Dodge/Data/Projectile.hs 43;" C -RocketCloud src/Dodge/Data/Cloud.hs 31;" C +RocketCloud src/Dodge/Data/Cloud.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 50;" t RocketSmoke src/Dodge/Data/Projectile.hs 63;" t Rod src/Dodge/Item/Held/Rod.hs 1;" m @@ -1815,7 +1814,6 @@ SizeInvariant src/Dodge/Picture/SizeInvariant.hs 1;" m SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C Small src/Shape/Data.hs 31;" C -SmokeCloud src/Dodge/Data/Cloud.hs 29;" C SmokeReducerLink src/Dodge/Data/ComposedItem.hs 27;" C SmokeReducerSF src/Dodge/Data/ComposedItem.hs 54;" C SmoothScroll src/Dodge/SmoothScroll.hs 1;" m @@ -1877,7 +1875,6 @@ Statistics src/Dodge/Creature/Statistics.hs 2;" m StayInArea src/Dodge/Data/Scenario.hs 13;" C Stick src/Dodge/Item/Held/Stick.hs 1;" m Stone src/Dodge/Data/Material.hs 11;" C -StoneDust src/Dodge/Data/Cloud.hs 34;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C Story src/Dodge/Story.hs 1;" m Strategy src/Dodge/Data/ActionPlan.hs 176;" t @@ -2370,10 +2367,10 @@ _ciItem src/Dodge/Data/Combine.hs 7;" f _ciSections src/Dodge/Data/HUD.hs 37;" f _ciSelection src/Dodge/Data/HUD.hs 38;" f _cigType src/Dodge/Data/Camera.hs 19;" f -_clPos src/Dodge/Data/Cloud.hs 18;" f -_clTimer src/Dodge/Data/Cloud.hs 23;" f -_clType src/Dodge/Data/Cloud.hs 24;" f -_clVel src/Dodge/Data/Cloud.hs 19;" f +_clPos src/Dodge/Data/Cloud.hs 19;" f +_clTimer src/Dodge/Data/Cloud.hs 24;" f +_clType src/Dodge/Data/Cloud.hs 25;" f +_clVel src/Dodge/Data/Cloud.hs 20;" f _clZoning src/Dodge/Data/World.hs 48;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 52;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 61;" f @@ -3349,7 +3346,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 36;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 419;" f +advanceScrollAmount src/Dodge/Update.hs 420;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f aimDelaySweep src/Dodge/Render/Picture.hs 264;" f @@ -3599,13 +3596,13 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 64;" f checkDeath src/Dodge/Creature/State.hs 76;" f -checkEndGame src/Dodge/Update.hs 708;" f +checkEndGame src/Dodge/Update.hs 709;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 17;" f checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f -checkTermDist src/Dodge/Update.hs 317;" f +checkTermDist src/Dodge/Update.hs 318;" 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 @@ -3630,7 +3627,7 @@ 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 762;" f -clColor src/Shader/Poke/Cloud.hs 34;" f +clColor src/Shader/Poke/Cloud.hs 35;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3659,7 +3656,7 @@ closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 729;" f +cloudEffect src/Dodge/Update.hs 730;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3996,7 +3993,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 45;" f displayFreeSlots src/Dodge/DisplayInventory.hs 198;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 175;" f -displayTerminalLineString src/Dodge/Update.hs 446;" f +displayTerminalLineString src/Dodge/Update.hs 447;" f dist src/Geometry/Vector.hs 190;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4049,7 +4046,7 @@ doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f doIntImp src/Dodge/CreatureEffect.hs 24;" f doInvEffect src/Dodge/ItEffect.hs 16;" f -doItemTimeScroll src/Dodge/Update.hs 196;" f +doItemTimeScroll src/Dodge/Update.hs 197;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f @@ -4083,7 +4080,7 @@ doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 149;" f -doTimeScroll src/Dodge/Update.hs 201;" f +doTimeScroll src/Dodge/Update.hs 202;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 106;" f doWallRotate src/Dodge/Update/Camera.hs 212;" f @@ -4092,7 +4089,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 29;" f -doWorldEvents src/Dodge/Update.hs 429;" f +doWorldEvents src/Dodge/Update.hs 430;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4303,7 +4300,7 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 186;" f -explodeShell src/Dodge/Projectile/Update.hs 245;" f +explodeShell src/Dodge/Projectile/Update.hs 244;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 490;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f @@ -4403,7 +4400,7 @@ fromV3 src/Geometry/Data.hs 43;" f frontArmour src/Dodge/Item/Equipment.hs 38;" f fstV2 src/Geometry/Data.hs 50;" f fuelPack src/Dodge/Item/Equipment.hs 53;" f -functionalUpdate src/Dodge/Update.hs 251;" f +functionalUpdate src/Dodge/Update.hs 252;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f @@ -4454,7 +4451,7 @@ getLaserDamage src/Dodge/HeldUse.hs 702;" f getLaserPhaseV src/Dodge/HeldUse.hs 699;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f -getMenuMouseContext src/Dodge/Update.hs 389;" f +getMenuMouseContext src/Dodge/Update.hs 390;" f getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1260;" f getPretty src/AesonHelp.hs 8;" f @@ -4691,7 +4688,7 @@ isLeftOfA src/Geometry.hs 192;" f isNothing' src/MaybeHelp.hs 33;" f isOnSeg src/Geometry.hs 236;" f isOutLnk src/Dodge/PlacementSpot.hs 164;" f -isOverTerminalScreen src/Dodge/Update.hs 400;" f +isOverTerminalScreen src/Dodge/Update.hs 401;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isRHS src/Geometry/LHS.hs 24;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f @@ -4899,7 +4896,7 @@ makeBullet src/Dodge/HeldUse.hs 1004;" f makeBullet' src/Dodge/HeldUse.hs 946;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f -makeCloudAt src/Dodge/WorldEvent/Cloud.hs 16;" f +makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 129;" f makeColorTermPara src/Dodge/Terminal.hs 126;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f @@ -4915,7 +4912,6 @@ makeFlak src/Dodge/Bullet.hs 143;" f makeFlame src/Dodge/Flame.hs 43;" f makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 54;" f makeFlamelet src/Dodge/EnergyBall.hs 21;" f -makeFlamerSmokeAt src/Dodge/WorldEvent/Cloud.hs 29;" f makeFlashBall src/Dodge/EnergyBall.hs 84;" f makeFragBullets src/Dodge/Bullet.hs 128;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f @@ -4951,6 +4947,7 @@ makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 18;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f mapper src/Dodge/Item/Scope.hs 70;" f +materialColor src/Shader/Poke/Cloud.hs 43;" f maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f maxDamageType src/Dodge/Damage.hs 58;" f maxInvSlots src/Dodge/Inventory/CheckSlots.hs 27;" f @@ -4964,7 +4961,7 @@ maybeClearPaths src/Dodge/Block.hs 72;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 536;" f -maybeOpenConsole src/Dodge/Update.hs 125;" f +maybeOpenConsole src/Dodge/Update.hs 126;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f maybeWarmupStatus src/Dodge/Item/Display.hs 44;" f @@ -5056,7 +5053,7 @@ moveHammerUp src/Dodge/Hammer.hs 5;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f movePenBullet src/Dodge/Bullet.hs 201;" f -moveProjectile src/Dodge/Projectile/Update.hs 221;" f +moveProjectile src/Dodge/Projectile/Update.hs 220;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f moveShockwave src/Dodge/Shockwave/Update.hs 15;" f moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" f @@ -5078,7 +5075,7 @@ muzFlareAt src/Dodge/HeldUse.hs 675;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f -mvGust src/Dodge/Update.hs 720;" f +mvGust src/Dodge/Update.hs 721;" f mvLS src/Dodge/Placement/PlaceSpot.hs 217;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f @@ -5136,7 +5133,7 @@ onEquipWristShield src/Dodge/Equipment.hs 37;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 101;" f -openConsole src/Dodge/Update.hs 130;" f +openConsole src/Dodge/Update.hs 131;" f optionMenu src/Dodge/Menu.hs 108;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 43;" f @@ -5190,7 +5187,7 @@ pauseGame src/Dodge/Update/Input/InGame.hs 501;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f -pauseTime src/Dodge/Update.hs 184;" f +pauseTime src/Dodge/Update.hs 185;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 209;" f @@ -5220,7 +5217,7 @@ pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f -pjRemoteSetDirection src/Dodge/Projectile/Update.hs 200;" f +pjRemoteSetDirection src/Dodge/Projectile/Update.hs 199;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f @@ -5284,10 +5281,10 @@ poke34 src/Shader/Poke.hs 506;" f pokeArrayOff src/Shader/Poke.hs 517;" f pokeBox src/Shader/Poke.hs 227;" f pokeBoxSurface src/Shader/Poke.hs 262;" f -pokeCloud src/Shader/Poke/Cloud.hs 13;" f -pokeCloudFloat src/Shader/Poke/Cloud.hs 45;" f -pokeCloudIndex src/Shader/Poke/Cloud.hs 49;" f -pokeCloudVerx src/Shader/Poke/Cloud.hs 19;" f +pokeCloud src/Shader/Poke/Cloud.hs 14;" f +pokeCloudFloat src/Shader/Poke/Cloud.hs 55;" f +pokeCloudIndex src/Shader/Poke/Cloud.hs 59;" f +pokeCloudVerx src/Shader/Poke/Cloud.hs 20;" f pokeCylinder src/Shader/Poke.hs 172;" f pokeCylinderCaps src/Shader/Poke.hs 215;" f pokeF src/Shader/Poke.hs 67;" f @@ -5341,7 +5338,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 96;" f -ppEvents src/Dodge/Update.hs 687;" f +ppEvents src/Dodge/Update.hs 688;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5445,7 +5442,7 @@ randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f randWallReflect src/Dodge/Tesla/Arc.hs 57;" f -randWallReflect src/Dodge/Update.hs 582;" f +randWallReflect src/Dodge/Update.hs 583;" f randomChallenges src/Dodge/Room/Start.hs 62;" f randomCompass src/Dodge/Layout.hs 59;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f @@ -5640,8 +5637,8 @@ scrollCommands src/Dodge/Update/Scroll.hs 159;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f scrollRBOption src/Dodge/Update/Scroll.hs 153;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f -scrollTimeBack src/Dodge/Update.hs 211;" f -scrollTimeForward src/Dodge/Update.hs 234;" f +scrollTimeBack src/Dodge/Update.hs 212;" f +scrollTimeForward src/Dodge/Update.hs 235;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f @@ -5682,7 +5679,7 @@ sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f setAimPosture src/Dodge/Creature/YourControl.hs 137;" f setChannelPos src/Sound.hs 150;" f -setClickWorldPos src/Dodge/Update.hs 100;" f +setClickWorldPos src/Dodge/Update.hs 101;" f setClusterID src/Dodge/Combine/Graph.hs 116;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f @@ -5696,7 +5693,7 @@ setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f -setOldPos src/Dodge/Update.hs 469;" f +setOldPos src/Dodge/Update.hs 470;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5746,7 +5743,6 @@ shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f shellMag src/Dodge/Item/Ammo.hs 48;" f shellModule src/Dodge/Item/Scope.hs 123;" f shellShape src/Dodge/Projectile/Draw.hs 34;" f -shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 26;" f shieldWall' src/Dodge/Item/BackgroundEffect.hs 74;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f @@ -5867,7 +5863,6 @@ sparkToDamage src/Dodge/Spark.hs 39;" f spawnCrNextTo src/Dodge/Item/Weapon/Spawn.hs 20;" f spawnElectricalSparks src/Dodge/PosEvent.hs 19;" f spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f -spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 34;" f spawnerCrit src/Dodge/Creature.hs 57;" f spawnerRoom src/Dodge/Room/Room.hs 360;" f speedLegs src/Dodge/Item/Equipment.hs 90;" f @@ -6031,7 +6026,7 @@ throwItem src/Dodge/Creature/Action.hs 205;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 171;" f +timeFlowUpdate src/Dodge/Update.hs 172;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeScroller src/Dodge/Item/Weapon/Utility.hs 47;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f @@ -6047,7 +6042,7 @@ tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 506;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f -tmUpdate src/Dodge/Update.hs 449;" f +tmUpdate src/Dodge/Update.hs 450;" f toBinary src/Dodge/Inventory/SelectionList.hs 137;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -6152,7 +6147,7 @@ tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f trySeedFromClipboard src/Dodge/Menu.hs 91;" f tryShellBounce src/Dodge/Projectile/Update.hs 103;" f -trySpinByCID src/Dodge/Projectile/Update.hs 178;" f +trySpinByCID src/Dodge/Projectile/Update.hs 177;" f trySynthBullet src/Dodge/Creature/State.hs 192;" f tryUseParent src/Dodge/Creature/State.hs 185;" f turnTo src/Dodge/Movement/Turn.hs 8;" f @@ -6190,7 +6185,7 @@ unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 122;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f upProjectile src/Dodge/Projectile/Update.hs 35;" f -updateAimPos src/Dodge/Update.hs 305;" f +updateAimPos src/Dodge/Update.hs 306;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f @@ -6202,38 +6197,38 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 29;" f updateBounds src/Dodge/Update/Camera.hs 250;" f updateBulVel src/Dodge/Bullet.hs 55;" f updateBullet src/Dodge/Bullet.hs 20;" f -updateBullets src/Dodge/Update.hs 542;" f +updateBullets src/Dodge/Update.hs 543;" f updateCamera src/Dodge/Update/Camera.hs 29;" f updateCloseObjects src/Dodge/Inventory.hs 116;" f updateCloud src/Dodge/Update.hs 737;" f -updateClouds src/Dodge/Update.hs 609;" f +updateClouds src/Dodge/Update.hs 610;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 44;" f updateCreature src/Dodge/Creature/Update.hs 13;" f -updateCreatureGroups src/Dodge/Update.hs 514;" f -updateCreatureSoundPositions src/Dodge/Update.hs 490;" f -updateDebugMessageOffset src/Dodge/Update.hs 94;" f +updateCreatureGroups src/Dodge/Update.hs 515;" f +updateCreatureSoundPositions src/Dodge/Update.hs 491;" f +updateDebugMessageOffset src/Dodge/Update.hs 95;" f updateDelayedEvents src/Dodge/Update.hs 801;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 535;" f -updateDoor src/Dodge/Update.hs 309;" f +updateDistortions src/Dodge/Update.hs 536;" f +updateDoor src/Dodge/Update.hs 310;" f updateEnergyBall src/Dodge/EnergyBall.hs 35;" f -updateEnergyBalls src/Dodge/Update.hs 600;" f +updateEnergyBalls src/Dodge/Update.hs 601;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 480;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 597;" f +updateFlames src/Dodge/Update.hs 598;" f updateFloatingCamera src/Dodge/Update/Camera.hs 34;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 364;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 357;" f -updateGusts src/Dodge/Update.hs 717;" f +updateGusts src/Dodge/Update.hs 718;" f updateHeldRootItem src/Dodge/Creature/State.hs 245;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f -updateIMl src/Dodge/Update.hs 504;" f -updateIMl' src/Dodge/Update.hs 509;" f +updateIMl src/Dodge/Update.hs 505;" f +updateIMl' src/Dodge/Update.hs 510;" f updateInGameCamera src/Dodge/Update/Camera.hs 78;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f @@ -6244,20 +6239,20 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 394;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 436;" f +updateLasers src/Dodge/Update.hs 437;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 413;" f updateMachine src/Dodge/Machine/Update.hs 20;" f -updateMagnets src/Dodge/Update.hs 312;" f +updateMagnets src/Dodge/Update.hs 313;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 197;" f -updateMouseContext src/Dodge/Update.hs 325;" f -updateMouseContextGame src/Dodge/Update.hs 330;" f +updateMouseContext src/Dodge/Update.hs 326;" f +updateMouseContextGame src/Dodge/Update.hs 331;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 95;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 85;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 158;" f -updateObjCatMaybes src/Dodge/Update.hs 526;" f -updateObjMapMaybe src/Dodge/Update.hs 519;" f -updatePastWorlds src/Dodge/Update.hs 424;" f +updateObjCatMaybes src/Dodge/Update.hs 527;" f +updateObjMapMaybe src/Dodge/Update.hs 520;" f +updatePastWorlds src/Dodge/Update.hs 425;" f updatePosEvent src/Dodge/PosEvent.hs 10;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f @@ -6265,9 +6260,9 @@ updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 22;" f updateRBList src/Dodge/Inventory/RBList.hs 18;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 538;" f +updateRadarBlips src/Dodge/Update.hs 539;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f -updateRadarSweeps src/Dodge/Update.hs 603;" f +updateRadarSweeps src/Dodge/Update.hs 604;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f @@ -6276,31 +6271,31 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 264;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f updateShockwave src/Dodge/Shockwave/Update.hs 10;" f -updateShockwaves src/Dodge/Update.hs 594;" f +updateShockwaves src/Dodge/Update.hs 595;" f updateSingleNodes src/TreeHelp.hs 97;" 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 606;" f +updateSparks src/Dodge/Update.hs 607;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 23;" f -updateTeslaArc src/Dodge/Update.hs 552;" f -updateTeslaArcs src/Dodge/Update.hs 549;" f +updateTeslaArc src/Dodge/Update.hs 553;" f +updateTeslaArcs src/Dodge/Update.hs 550;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 591;" f +updateTractorBeams src/Dodge/Update.hs 592;" f updateTurret src/Dodge/Machine/Update.hs 50;" f -updateUniverse src/Dodge/Update.hs 73;" f -updateUniverseFirst src/Dodge/Update.hs 84;" f -updateUniverseLast src/Dodge/Update.hs 135;" f -updateUniverseMid src/Dodge/Update.hs 157;" f +updateUniverse src/Dodge/Update.hs 74;" f +updateUniverseFirst src/Dodge/Update.hs 85;" f +updateUniverseLast src/Dodge/Update.hs 136;" f +updateUniverseMid src/Dodge/Update.hs 158;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 42;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 414;" f -updateWorldEventFlag src/Dodge/Update.hs 119;" f -updateWorldEventFlags src/Dodge/Update.hs 107;" f +updateWheelEvents src/Dodge/Update.hs 415;" f +updateWorldEventFlag src/Dodge/Update.hs 120;" f +updateWorldEventFlags src/Dodge/Update.hs 108;" f upperBody src/Dodge/Creature/Picture.hs 129;" f upperBox src/Shape.hs 156;" f upperBoxHalf src/Shape.hs 222;" f @@ -6471,9 +6466,9 @@ zipArcs src/Dodge/Tesla/Arc.hs 110;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 443;" f +zoneClouds src/Dodge/Update.hs 444;" f zoneCreature src/Dodge/Zoning/Creature.hs 54;" f -zoneCreatures src/Dodge/Update.hs 485;" f +zoneCreatures src/Dodge/Update.hs 486;" f zoneExtract src/Dodge/Zoning/Base.hs 52;" f zoneMonoid src/Dodge/Zoning/Base.hs 83;" f zoneOfCirc src/Dodge/Zoning/Base.hs 24;" f