From ac32ebba2b0d8955aa5c044203e9c0fe70d620c0 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 1 Apr 2026 17:01:25 +0100 Subject: [PATCH] Improve debris --- src/Dodge/Block/Debris.hs | 14 ++- src/Dodge/Data/Prop.hs | 1 + src/Dodge/Prop/Draw.hs | 1 + tags | 190 +++++++++++++++++++------------------- 4 files changed, 108 insertions(+), 98 deletions(-) diff --git a/src/Dodge/Block/Debris.hs b/src/Dodge/Block/Debris.hs index 47de46bd3..faef09fe5 100644 --- a/src/Dodge/Block/Debris.hs +++ b/src/Dodge/Block/Debris.hs @@ -55,15 +55,21 @@ blColor :: Block -> Color blColor _ = orange makeBlockDebris :: Block -> World -> World -makeBlockDebris bl w = foldl' (flip $ makeDebris (BlockDebris $ blColor bl) mt) w ps +makeBlockDebris bl w = foldl' (flip $ makeDebris (blockDebrisType mwl bl) mt) w ps where dsize = debrisSize mt ps = gridInPolygon dsize $ shrinkPolyOnEdges dsize $ reverse (_blFootprint bl) - mt = fromMaybe Stone $ do + mt = fromMaybe Stone $ mwl ^? _Just . wlMaterial + mwl = do wlids <- w ^? cWorld . lWorld . blocks . ix (_blID bl) . blWallIDs (wlid, _) <- IS.minView wlids - wl <- w ^? cWorld . lWorld . walls . ix wlid - return $ _wlMaterial wl + w ^? cWorld . lWorld . walls . ix wlid + +blockDebrisType :: Maybe Wall -> Block -> DebrisType +blockDebrisType wl bl = case wl ^? _Just . wlMaterial of + Just Glass -> GlassDebris + Just Metal -> MetalDebris red + _ -> BlockDebris $ blColor bl -- makeDebris :: Material -> Color -> Point2 -> World -> World makeDebris :: DebrisType -> Material -> Point2 -> World -> World diff --git a/src/Dodge/Data/Prop.hs b/src/Dodge/Data/Prop.hs index 697313567..4098c7d49 100644 --- a/src/Dodge/Data/Prop.hs +++ b/src/Dodge/Data/Prop.hs @@ -22,6 +22,7 @@ data DebrisType = Gib { _gibSize :: Float , _gibColor :: Color } | BlockDebris {_bdColor :: Color} | MetalDebris {_bdColor :: Color} + | GlassDebris data Debris = DebrisChunk { _dbPos :: Point3 diff --git a/src/Dodge/Prop/Draw.hs b/src/Dodge/Prop/Draw.hs index f3be6f812..6d4bfa878 100644 --- a/src/Dodge/Prop/Draw.hs +++ b/src/Dodge/Prop/Draw.hs @@ -22,6 +22,7 @@ debrisSPic db = translateSP (_dbPos db & _z +~ 1) . overPosSP (Q.rotate (_dbRot --MetalDebris c -> noPic . colorSH c $ upperPrismPolySU 1 $ [0, V2 5 0, V2 4 2] MetalDebris c -> noPic . colorSH c $ upperPrismPolySU 1 $ [0, V2 8 0, V2 6 3] --MetalDebris c -> noPic . colorSH c $ upperPrismPolySU 1 $ [0, V2 10 0, V2 8 4] + GlassDebris -> noPic . colorSH azure $ upperPrismPoly Small Undesired 1 $ [0, V2 8 0, V2 6 3] propSPic :: Prop -> SPic propSPic pr = diff --git a/tags b/tags index c2b57fa7c..73728a238 100644 --- a/tags +++ b/tags @@ -73,12 +73,12 @@ AttachType src/Dodge/Data/Item/Combine.hs 91;" t Attention src/Dodge/Data/Creature/Perception.hs 58;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 59;" C Audition src/Dodge/Data/Creature/Perception.hs 45;" t -AutoAI src/Dodge/Data/Creature/Misc.hs 45;" C -AutoCrit src/Dodge/Data/Creature/Misc.hs 70;" C +AutoAI src/Dodge/Data/Creature/Misc.hs 46;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 71;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 74;" C -Avatar src/Dodge/Data/Creature/Misc.hs 59;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 74;" t +AvPosture src/Dodge/Data/Creature/Misc.hs 75;" C +Avatar src/Dodge/Data/Creature/Misc.hs 60;" C +AvatarPosture src/Dodge/Data/Creature/Misc.hs 75;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t BANGCONE src/Dodge/Data/Item/Combine.hs 149;" C BANGROD src/Dodge/Data/Item/Combine.hs 158;" C @@ -104,10 +104,10 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 22;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 39;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 71;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 72;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 87;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 83;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 88;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 84;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 41;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 48;" C @@ -204,8 +204,8 @@ CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 22;" t ChangePosture src/Dodge/Data/ActionPlan.hs 41;" C ChangeStrategy src/Dodge/Data/ActionPlan.hs 43;" C -ChaseAI src/Dodge/Data/Creature/Misc.hs 38;" C -ChaseCrit src/Dodge/Data/Creature/Misc.hs 68;" C +ChaseAI src/Dodge/Data/Creature/Misc.hs 39;" C +ChaseCrit src/Dodge/Data/Creature/Misc.hs 69;" C ChaseCritters src/Dodge/Data/Creature/State.hs 16;" C ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C @@ -264,8 +264,8 @@ CrIsCorpse src/Dodge/Data/Creature.hs 65;" C CrIsGibs src/Dodge/Data/Creature.hs 66;" C CrIsPitted src/Dodge/Data/Creature.hs 67;" C CrMouth src/Dodge/Data/SoundOrigin.hs 16;" C -CrMvType src/Dodge/Data/Creature/Misc.hs 26;" t -CrMvType src/Dodge/Data/Creature/Misc.hs 29;" C +CrMvType src/Dodge/Data/Creature/Misc.hs 27;" t +CrMvType src/Dodge/Data/Creature/Misc.hs 30;" C CrOpenAutoDoor src/Dodge/Data/CreatureEffect.hs 21;" C CrSound src/Dodge/Data/SoundOrigin.hs 15;" C CrTurnAround src/Dodge/Data/CreatureEffect.hs 24;" C @@ -281,8 +281,8 @@ CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C Creature src/Dodge/Data/Creature.hs 35;" t CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C -CreatureShape src/Dodge/Data/Creature/Misc.hs 76;" t -CreatureType src/Dodge/Data/Creature/Misc.hs 58;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 77;" t +CreatureType src/Dodge/Data/Creature/Misc.hs 59;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C CryostatisSS src/Dodge/Data/Scenario.hs 91;" C @@ -309,8 +309,8 @@ DamageLaser src/Dodge/Data/Laser.hs 15;" C DamageSensor src/Dodge/Data/Machine/Sensor.hs 19;" t DamageType src/Dodge/Data/Damage/Type.hs 3;" t DeathType src/Dodge/Data/Creature.hs 69;" t -Debris src/Dodge/Data/Prop.hs 26;" t -DebrisChunk src/Dodge/Data/Prop.hs 26;" C +Debris src/Dodge/Data/Prop.hs 27;" t +DebrisChunk src/Dodge/Data/Prop.hs 27;" C DebrisType src/Dodge/Data/Prop.hs 21;" t DebugBool src/Dodge/Data/Config.hs 77;" t DebugItem src/Dodge/Data/Universe.hs 57;" t @@ -400,7 +400,7 @@ Explosion src/Dodge/Data/SoundOrigin.hs 38;" C ExplosionPayload src/Dodge/Data/Payload.hs 9;" C Explosive src/Dodge/Data/Damage.hs 25;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 14;" C -ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 89;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 90;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 16;" C ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 39;" C @@ -451,7 +451,7 @@ FloatFloat src/Dodge/Data/FloatFunction.hs 9;" t FloatID src/Dodge/Data/FloatFunction.hs 10;" C FloatLessCheck src/Dodge/Data/FloatFunction.hs 12;" C Floating src/Dodge/Data/Creature/Stance.hs 24;" C -FlockArmourChaseAI src/Dodge/Data/Creature/Misc.hs 46;" C +FlockArmourChaseAI src/Dodge/Data/Creature/Misc.hs 47;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 25;" C @@ -498,6 +498,7 @@ Gib src/Dodge/Data/Prop.hs 22;" C GibsDeath src/Dodge/Data/Creature.hs 69;" C Glass src/Dodge/Data/Material.hs 14;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 34;" C +GlassDebris src/Dodge/Data/Prop.hs 25;" C Goal src/Dodge/Data/ActionPlan.hs 149;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 11;" C @@ -552,8 +553,8 @@ HotkeyV src/Dodge/Data/Equipment/Misc.hs 38;" C HotkeyX src/Dodge/Data/Equipment/Misc.hs 36;" C HotkeyZ src/Dodge/Data/Equipment/Misc.hs 35;" C Huge src/Shape/Data.hs 23;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C -HumanoidAI src/Dodge/Data/Creature/Misc.hs 37;" t +Humanoid src/Dodge/Data/Creature/Misc.hs 78;" C +HumanoidAI src/Dodge/Data/Creature/Misc.hs 38;" t IMSI src/Dodge/Data/SelectionList.hs 40;" t IMSS src/Dodge/Data/SelectionList.hs 38;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -577,7 +578,7 @@ InRealWorld src/Dodge/Data/Scenario.hs 18;" C InSimulation src/Dodge/Data/Scenario.hs 20;" C InVoid src/Dodge/Data/Item/Location.hs 39;" C Inanimate src/Dodge/Data/ActionPlan.hs 15;" C -InanimateAI src/Dodge/Data/Creature/Misc.hs 39;" C +InanimateAI src/Dodge/Data/Creature/Misc.hs 40;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C InheritFloor src/Data/Tile.hs 12;" C Input src/Dodge/Data/Input.hs 33;" t @@ -641,7 +642,7 @@ LabLink src/Dodge/Data/Room.hs 50;" C LabSS src/Dodge/Data/Scenario.hs 97;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C Laboratory src/Dodge/Data/Scenario.hs 61;" C -LampCrit src/Dodge/Data/Creature/Misc.hs 72;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 73;" C Large src/Shape/Data.hs 24;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -651,7 +652,7 @@ LaserSensor src/Dodge/Data/Machine/Sensor.hs 13;" C LaserType src/Dodge/Data/Laser.hs 14;" t LaserWeaponXSF src/Dodge/Data/ComposedItem.hs 41;" C Lasering src/Dodge/Data/Damage.hs 22;" C -LauncherAI src/Dodge/Data/Creature/Misc.hs 43;" C +LauncherAI src/Dodge/Data/Creature/Misc.hs 44;" C LauncherAmmo src/Dodge/Data/AmmoType.hs 9;" C LaundrySS src/Dodge/Data/Scenario.hs 115;" C LayVars src/Dodge/Data/MetaTree.hs 30;" C @@ -681,9 +682,9 @@ LoadingScreen src/Dodge/Data/Universe.hs 93;" C LocDT src/Dodge/Data/DoubleTree.hs 42;" C LocationDT src/Dodge/Data/DoubleTree.hs 42;" t LoneWolf src/Dodge/Data/Creature/State.hs 24;" C -LongAI src/Dodge/Data/Creature/Misc.hs 48;" C +LongAI src/Dodge/Data/Creature/Misc.hs 49;" C LookAround src/Dodge/Data/ActionPlan.hs 138;" C -LtAutoAI src/Dodge/Data/Creature/Misc.hs 42;" C +LtAutoAI src/Dodge/Data/Creature/Misc.hs 43;" C Lure src/Dodge/Data/ActionPlan.hs 131;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C MAGENTA src/Color/Data.hs 17;" C @@ -761,7 +762,7 @@ MetalDebris src/Dodge/Data/Prop.hs 24;" C Metapysics src/Dodge/Data/Scenario.hs 17;" t Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C -MiniGunAI src/Dodge/Data/Creature/Misc.hs 47;" C +MiniGunAI src/Dodge/Data/Creature/Misc.hs 48;" C MiniGunFlare src/Dodge/Data/Muzzle.hs 32;" C ModIDID src/Dodge/Data/Modification.hs 21;" C ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C @@ -780,7 +781,7 @@ Move src/Dodge/Data/ActionPlan.hs 26;" C MoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C MoveForward src/Dodge/Data/ActionPlan.hs 27;" C MoveNoStride src/Dodge/Data/ActionPlan.hs 28;" C -MultGunAI src/Dodge/Data/Creature/Misc.hs 49;" C +MultGunAI src/Dodge/Data/Creature/Misc.hs 50;" C Mute src/Dodge/Data/Creature/Misc.hs 19;" C Muzzle src/Dodge/Data/Muzzle.hs 9;" t MuzzleBlink src/Dodge/Data/Muzzle.hs 55;" C @@ -804,7 +805,7 @@ MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 56;" C Muzzle_positions src/Dodge/Data/Config.hs 110;" C MvForward src/Dodge/Data/ActionPlan.hs 34;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 33;" C -MvWalking src/Dodge/Data/Creature/Misc.hs 28;" C +MvWalking src/Dodge/Data/Creature/Misc.hs 29;" C NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C NInt src/NewInt.hs 16;" C NIntMap src/NewInt.hs 22;" C @@ -839,7 +840,7 @@ NoItemZone src/Dodge/Data/Machine/Sensor.hs 31;" C NoLightFlare src/Dodge/Data/Muzzle.hs 31;" C NoLighting src/Dodge/Data/Config.hs 120;" C NoMouseContext src/Dodge/Data/Input.hs 14;" C -NoMvType src/Dodge/Data/Creature/Misc.hs 27;" C +NoMvType src/Dodge/Data/Creature/Misc.hs 28;" C NoObjShads src/Dodge/Data/Config.hs 118;" C NoParams src/Dodge/Data/Item/Params.hs 13;" C NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 14;" C @@ -855,7 +856,7 @@ NoWorldEffect src/Dodge/Data/WorldEffect.hs 26;" C Noclip src/Dodge/Data/Config.hs 83;" C NodeMTree src/Dodge/Data/MetaTree.hs 17;" C NodeTree src/Dodge/Data/MetaTree.hs 16;" C -NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 84;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 85;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C NormalOptions src/Dodge/Data/Universe.hs 71;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C @@ -994,10 +995,10 @@ PhysicalSensor src/Dodge/Data/Machine/Sensor.hs 16;" C Picture src/Picture/Data.hs 41;" t Piercing src/Dodge/Data/Damage.hs 16;" C Piezoelectric src/Dodge/Data/Material.hs 23;" C -PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C +PistolAI src/Dodge/Data/Creature/Misc.hs 42;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 88;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 89;" C PlainDeath src/Dodge/Data/Creature.hs 69;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t @@ -1035,12 +1036,12 @@ ProxSensor src/Dodge/Data/Machine/Sensor.hs 24;" C ProximityRequirement src/Dodge/Data/Machine/Sensor.hs 33;" t ProximitySensor src/Dodge/Data/Machine/Sensor.hs 24;" t ProximitySensorType src/Dodge/Data/Machine/Sensor.hs 29;" t -Pulse src/Dodge/Data/Creature/Misc.hs 52;" t +Pulse src/Dodge/Data/Creature/Misc.hs 53;" t PulseBall src/Dodge/Data/PulseLaser.hs 20;" t PulseBallSF src/Dodge/Data/ComposedItem.hs 45;" C PulseLaser src/Dodge/Data/PulseLaser.hs 11;" t PulseLaserSF src/Dodge/Data/ComposedItem.hs 42;" C -PulseStatus src/Dodge/Data/Creature/Misc.hs 52;" C +PulseStatus src/Dodge/Data/Creature/Misc.hs 53;" C PumpSF src/Dodge/Data/ComposedItem.hs 48;" C PushSource src/Dodge/Data/Door.hs 23;" t PushedBy src/Dodge/Data/Door.hs 25;" C @@ -1264,7 +1265,7 @@ SpawnSound src/Dodge/Data/SoundOrigin.hs 43;" C SpawnedBy src/Dodge/Data/Creature/State.hs 17;" C SplashOptions src/Dodge/Data/Universe.hs 73;" C SplitBeamCombine src/Dodge/Data/Beam.hs 40;" C -SpreadGunAI src/Dodge/Data/Creature/Misc.hs 40;" C +SpreadGunAI src/Dodge/Data/Creature/Misc.hs 41;" C StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C Stance src/Dodge/Data/Creature/Stance.hs 15;" t @@ -1282,8 +1283,8 @@ Survive src/Dodge/Data/Scenario.hs 5;" C Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C SwapEquipment src/Dodge/Data/RightButtonOptions.hs 24;" C Swarm src/Dodge/Data/Creature/State.hs 25;" C -SwarmAI src/Dodge/Data/Creature/Misc.hs 44;" C -SwarmCrit src/Dodge/Data/Creature/Misc.hs 69;" C +SwarmAI src/Dodge/Data/Creature/Misc.hs 45;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 70;" C TAPE src/Dodge/Data/Item/Combine.hs 55;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C TCBase src/Dodge/Data/Terminal.hs 49;" C @@ -1547,15 +1548,15 @@ _asDir src/Dodge/Data/ArcStep.hs 14;" f _asObject src/Dodge/Data/ArcStep.hs 15;" f _asPos src/Dodge/Data/ArcStep.hs 13;" f _auDist src/Dodge/Data/Creature/Perception.hs 46;" f -_avDexterity src/Dodge/Data/Creature/Misc.hs 63;" f -_avIntelligence src/Dodge/Data/Creature/Misc.hs 64;" f -_avMoveSpeed src/Dodge/Data/Creature/Misc.hs 65;" f -_avPosture src/Dodge/Data/Creature/Misc.hs 66;" f -_avStrength src/Dodge/Data/Creature/Misc.hs 62;" f -_avatarMaterial src/Dodge/Data/Creature/Misc.hs 61;" f -_avatarPulse src/Dodge/Data/Creature/Misc.hs 60;" f +_avDexterity src/Dodge/Data/Creature/Misc.hs 64;" f +_avIntelligence src/Dodge/Data/Creature/Misc.hs 65;" f +_avMoveSpeed src/Dodge/Data/Creature/Misc.hs 66;" f +_avPosture src/Dodge/Data/Creature/Misc.hs 67;" f +_avStrength src/Dodge/Data/Creature/Misc.hs 63;" f +_avatarMaterial src/Dodge/Data/Creature/Misc.hs 62;" f +_avatarPulse src/Dodge/Data/Creature/Misc.hs 61;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 71;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 72;" f _bdColor src/Dodge/Data/Prop.hs 23;" f _bdMaxX src/Dodge/Data/Bounds.hs 12;" f _bdMaxY src/Dodge/Data/Bounds.hs 14;" f @@ -1716,11 +1717,11 @@ _cwgRoomClipping src/Dodge/Data/CWorld.hs 43;" f _cwgSeed src/Dodge/Data/CWorld.hs 44;" f _cwgWorldBounds src/Dodge/Data/CWorld.hs 41;" f _cylinderSize src/Shape/Data.hs 14;" f -_dbPos src/Dodge/Data/Prop.hs 27;" f -_dbRot src/Dodge/Data/Prop.hs 30;" f -_dbSpin src/Dodge/Data/Prop.hs 31;" f -_dbType src/Dodge/Data/Prop.hs 28;" f -_dbVel src/Dodge/Data/Prop.hs 29;" f +_dbPos src/Dodge/Data/Prop.hs 28;" f +_dbRot src/Dodge/Data/Prop.hs 31;" f +_dbSpin src/Dodge/Data/Prop.hs 32;" f +_dbType src/Dodge/Data/Prop.hs 29;" f +_dbVel src/Dodge/Data/Prop.hs 30;" f _debris src/Dodge/Data/LWorld.hs 103;" f _debugFunction src/Dodge/Data/Universe.hs 59;" f _debugMessage src/Dodge/Data/Universe.hs 58;" f @@ -1881,7 +1882,7 @@ _heldWorldPos src/Dodge/Data/Input.hs 45;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f _hotkeys src/Dodge/Data/LWorld.hs 145;" f _hud src/Dodge/Data/World.hs 46;" f -_humanoidAI src/Dodge/Data/Creature/Misc.hs 81;" f +_humanoidAI src/Dodge/Data/Creature/Misc.hs 82;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 19;" f _ibtBulletMod src/Dodge/Data/Item/Combine.hs 22;" f @@ -1942,9 +1943,9 @@ _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 +_lampColor src/Dodge/Data/Creature/Misc.hs 73;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 73;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 73;" f _lasWepXSF src/Dodge/Data/ComposedItem.hs 41;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f @@ -2032,7 +2033,7 @@ _mdPoint3 src/Dodge/Data/Modification.hs 18;" f _mdTimer src/Dodge/Data/Modification.hs 17;" f _mdUpdate src/Dodge/Data/Modification.hs 16;" f _mdUpdate src/Dodge/Data/Modification.hs 25;" f -_meleeCooldown src/Dodge/Data/Creature/Misc.hs 68;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 69;" f _meleeTarget src/Dodge/Data/ActionPlan.hs 139;" f _mgField src/Dodge/Data/Magnet.hs 23;" f _mgPos src/Dodge/Data/Magnet.hs 22;" f @@ -2053,11 +2054,11 @@ _mtBranches src/Dodge/Data/MetaTree.hs 13;" f _mtLabel src/Dodge/Data/MetaTree.hs 13;" f _mtTree src/Dodge/Data/MetaTree.hs 13;" f _musicData src/Data/Preload.hs 13;" f -_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 33;" f -_mvSpeed src/Dodge/Data/Creature/Misc.hs 28;" f +_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 34;" f +_mvSpeed src/Dodge/Data/Creature/Misc.hs 29;" f _mvToPoint src/Dodge/Data/Creature.hs 73;" f -_mvTurnJit src/Dodge/Data/Creature/Misc.hs 32;" f -_mvTurnRad src/Dodge/Data/Creature/Misc.hs 31;" f +_mvTurnJit src/Dodge/Data/Creature/Misc.hs 33;" f +_mvTurnRad src/Dodge/Data/Creature/Misc.hs 32;" f _mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f _mzEffect src/Dodge/Data/Muzzle.hs 15;" f _mzFlareType src/Dodge/Data/Muzzle.hs 14;" f @@ -2099,7 +2100,7 @@ _phTargetingID src/Dodge/Data/Projectile.hs 42;" f _pickUpLevel src/Dodge/Layout/Generate.hs 15;" f _pickUps src/Dodge/Layout/Generate.hs 16;" f _pictureShaders src/Data/Preload/Render.hs 31;" f -_piercedPoints src/Dodge/Data/Creature/Misc.hs 89;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 90;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f _pjDir src/Dodge/Data/Projectile.hs 18;" f @@ -2145,8 +2146,8 @@ _psSelect src/Dodge/Data/GenWorld.hs 101;" f _pullWallShader src/Data/Preload/Render.hs 22;" f _pulseBalls src/Dodge/Data/LWorld.hs 119;" f _pulseLasers src/Dodge/Data/LWorld.hs 118;" f -_pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f -_pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f +_pulseProgress src/Dodge/Data/Creature/Misc.hs 55;" f +_pulseRate src/Dodge/Data/Creature/Misc.hs 54;" f _putBlock src/Dodge/Data/GenWorld.hs 43;" f _putButton src/Dodge/Data/GenWorld.hs 39;" f _putChasmChasms src/Dodge/Data/GenWorld.hs 60;" f @@ -2309,9 +2310,9 @@ _skOldPos src/Dodge/Data/Spark.hs 14;" f _skPos src/Dodge/Data/Spark.hs 13;" f _skType src/Dodge/Data/Spark.hs 15;" f _skVel src/Dodge/Data/Spark.hs 12;" f -_skinHead src/Dodge/Data/Creature/Misc.hs 78;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 80;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 79;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 79;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 81;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 80;" f _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f @@ -2471,6 +2472,7 @@ _vboShapes src/Data/Preload/Render.hs 44;" f _vboVertexBytes src/Shader/Data.hs 82;" f _vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f +_vcTimer src/Dodge/Data/Creature/Misc.hs 23;" f _vertices src/Polyhedra/Data.hs 22;" f _viDist src/Dodge/Data/Creature/Perception.hs 41;" f _viFOV src/Dodge/Data/Creature/Perception.hs 40;" f @@ -2642,7 +2644,7 @@ argV src/Geometry/Vector.hs 83;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f armouredChasers src/Dodge/Room/Boss.hs 58;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f -arms src/Dodge/Creature/Picture.hs 124;" f +arms src/Dodge/Creature/Picture.hs 112;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2694,14 +2696,14 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 407;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 395;" f -baseShoulder src/Dodge/Creature/Picture.hs 162;" f +baseShoulder src/Dodge/Creature/Picture.hs 150;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 39;" f -basicCrPict src/Dodge/Creature/Picture.hs 33;" f -basicCrShape src/Dodge/Creature/Picture.hs 39;" f +basicCrPict src/Dodge/Creature/Picture.hs 32;" f +basicCrShape src/Dodge/Creature/Picture.hs 38;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMuzFlare src/Dodge/HeldUse.hs 731;" f @@ -2721,6 +2723,7 @@ blinkDistortions src/Dodge/Creature/Action/Blink.hs 46;" f blinkShockwave src/Dodge/Creature/Action/Blink.hs 79;" f blinker src/Dodge/Item/Held/Utility.hs 30;" f blipAt src/Dodge/RadarSweep.hs 78;" f +blockDebrisType src/Dodge/Block/Debris.hs 68;" f blockLine src/Dodge/Placement/Instance/Wall.hs 44;" f blockPillar src/Dodge/Room/Pillar.hs 23;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f @@ -2819,7 +2822,7 @@ chaseCritInternal src/Dodge/Humanoid.hs 8;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 122;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f -chaseUpperBody src/Dodge/Creature/Picture.hs 64;" f +chaseUpperBody src/Dodge/Creature/Picture.hs 62;" f chasmRotate src/Dodge/Creature/Update.hs 177;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 371;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 305;" f @@ -2958,7 +2961,7 @@ corridorWallN src/Dodge/Room/Corridor.hs 77;" f crAdd src/Dodge/Room/RezBox.hs 116;" f crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 88;" f -crCamouflage src/Dodge/Creature/Picture.hs 36;" f +crCamouflage src/Dodge/Creature/Picture.hs 35;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f crCrSpring src/Dodge/Update.hs 978;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 59;" f @@ -3040,7 +3043,7 @@ crsNearPoint src/Dodge/Zoning/Creature.hs 18;" f 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 156;" f +cubeShape src/Dodge/Block/Debris.hs 162;" f cullPoint src/Dodge/Render/ShapePicture.hs 137;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f @@ -3099,13 +3102,13 @@ dbwMuzzles src/Dodge/HeldUse.hs 349;" f deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f deadEndRoom src/Dodge/Room/Room.hs 262;" f -deadFeet src/Dodge/Creature/Picture.hs 120;" f -deadRot src/Dodge/Creature/Picture.hs 138;" f -deadScalp src/Dodge/Creature/Picture.hs 133;" f -deadUpperBody src/Dodge/Creature/Picture.hs 159;" f +deadFeet src/Dodge/Creature/Picture.hs 108;" f +deadRot src/Dodge/Creature/Picture.hs 126;" f +deadScalp src/Dodge/Creature/Picture.hs 121;" f +deadUpperBody src/Dodge/Creature/Picture.hs 147;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f -debrisSize src/Dodge/Block/Debris.hs 125;" f +debrisSize src/Dodge/Block/Debris.hs 131;" f debugEvent src/Dodge/Debug.hs 43;" f debugEvent' src/Dodge/Debug.hs 49;" f debugEvents src/Dodge/Debug.hs 28;" f @@ -3325,7 +3328,7 @@ drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f drawBullet src/Dodge/Render/ShapePicture.hs 176;" f drawButton src/Dodge/Button/Draw.hs 11;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChaseCrit src/Dodge/Creature/Picture.hs 54;" f +drawChaseCrit src/Dodge/Creature/Picture.hs 53;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f @@ -3354,7 +3357,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 151;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 171;" f +drawEquipment src/Dodge/Creature/Picture.hs 159;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f @@ -3362,7 +3365,7 @@ drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 34;" f drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 278;" f -drawGib src/Dodge/Prop/Draw.hs 30;" f +drawGib src/Dodge/Prop/Draw.hs 31;" f drawHUD src/Dodge/Render/HUD.hs 53;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInspectWall src/Dodge/Debug/Picture.hs 256;" f @@ -3533,8 +3536,7 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f -feet src/Dodge/Creature/Picture.hs 93;" f -ffeet src/Dodge/Creature/Picture.hs 107;" f +feet src/Dodge/Creature/Picture.hs 94;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -4113,10 +4115,10 @@ makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 124;" f makeColorTermPara src/Dodge/Terminal.hs 121;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f -makeDebris src/Dodge/Block/Debris.hs 69;" f -makeDebrisDirected src/Dodge/Block/Debris.hs 95;" f -makeDebrisDirectedZ src/Dodge/Block/Debris.hs 75;" f -makeDebrisZ src/Dodge/Block/Debris.hs 72;" f +makeDebris src/Dodge/Block/Debris.hs 75;" f +makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f +makeDebrisDirectedZ src/Dodge/Block/Debris.hs 81;" f +makeDebrisZ src/Dodge/Block/Debris.hs 78;" f makeDoorDebris src/Dodge/Block/Debris.hs 41;" f makeDumbSwitch src/Dodge/Room/LongDoor.hs 145;" f makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f @@ -4351,7 +4353,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 95;" f -oneSmooth src/Dodge/Creature/Picture.hs 90;" f +oneSmooth src/Dodge/Creature/Picture.hs 91;" f openConsole src/Dodge/Update.hs 138;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4555,7 +4557,7 @@ printRotPoint src/Dodge/Debug/Picture.hs 38;" f prismBox src/Shape.hs 74;" f prismPoly src/Shape.hs 60;" f projV src/Geometry/Vector.hs 179;" f -propSPic src/Dodge/Prop/Draw.hs 26;" f +propSPic src/Dodge/Prop/Draw.hs 27;" f propagateOrientation src/Dodge/Item/Orientation.hs 92;" f ps0 src/Dodge/LevelGen/PlacementHelper.hs 52;" f ps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 76;" f @@ -4834,7 +4836,7 @@ scale3 src/Picture/Base.hs 137;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f scaleSH src/Shape.hs 266;" f -scalp src/Dodge/Creature/Picture.hs 147;" f +scalp src/Dodge/Creature/Picture.hs 135;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/Update.hs 126;" f @@ -4993,10 +4995,10 @@ showEquipItem src/Dodge/Item/Display.hs 108;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 78;" f +showManObj src/Dodge/TestString.hs 77;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 88;" f +showTimeFlow src/Dodge/TestString.hs 87;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5300,11 +5302,11 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f topInvW src/Dodge/ListDisplayParams.hs 54;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 74;" f +topTestPart src/Dodge/TestString.hs 73;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f -torso src/Dodge/Creature/Picture.hs 152;" f +torso src/Dodge/Creature/Picture.hs 140;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f @@ -5534,7 +5536,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 474;" f updateWorldEventFlag src/Dodge/Update.hs 127;" f updateWorldEventFlags src/Dodge/Update.hs 115;" f -upperBody src/Dodge/Creature/Picture.hs 167;" f +upperBody src/Dodge/Creature/Picture.hs 155;" f upperBox src/Shape.hs 153;" f upperBoxHalf src/Shape.hs 219;" f upperBoxMT src/Shape.hs 144;" f