From 52d389f3423be07dac41b577f07d6d0f1602102f Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 8 Apr 2026 23:47:22 +0100 Subject: [PATCH] Work on crab crit --- src/Dodge/Creature/Impulse.hs | 23 ++ src/Dodge/Creature/ReaderUpdate.hs | 34 ++- src/Dodge/Creature/State/WalkCycle.hs | 1 + src/Dodge/Data/ActionPlan.hs | 2 + src/Dodge/Humanoid.hs | 2 +- tags | 354 +++++++++++++------------- 6 files changed, 230 insertions(+), 186 deletions(-) diff --git a/src/Dodge/Creature/Impulse.hs b/src/Dodge/Creature/Impulse.hs index 8674d4ed2..1be661f49 100644 --- a/src/Dodge/Creature/Impulse.hs +++ b/src/Dodge/Creature/Impulse.hs @@ -45,6 +45,19 @@ followImpulse cid w = \case crup ( crMvAbsolute (w ^. cWorld . lWorld) (10 *.* normalizeV (posFromID cid' -.- cpos)) . (crType . meleeCooldown .~ 20) ) + MeleeL cid' -> + hitCrl cid' $ + crup + -- ( crMvAbsolute (w ^. cWorld . lWorld) (vNormal $ 10 *.* normalizeV (posFromID cid' -.- cpos)) + -- . + (crType . meleeCooldownL .~ 20) + -- ) + MeleeR cid' -> + hitCrr cid' $ + crup + --( crMvAbsolute (w ^. cWorld . lWorld) (vNormal $ (-10) *.* normalizeV (posFromID cid' -.- cpos)) . + (crType . meleeCooldownR .~ 20) + --) RandomTurn a -> let (aa, g) = rr a in (randGen .~ g) (crup (crDir +~ aa)) @@ -74,3 +87,13 @@ followImpulse cid w = \case hitCr i = cWorld . lWorld . creatures . ix i . crDamage .:~ Blunt 100 (posFromID i) (posFromID i - cpos) + hitCrl i = + cWorld . lWorld . creatures . ix i . crDamage + <>~ [Blunt 100 (posFromID i) (posFromID i - cpos) + , Inertial 0 (posFromID i) (50 * unitVectorAtAngle (cr ^. crDir - pi/2)) + ] + hitCrr i = + cWorld . lWorld . creatures . ix i . crDamage + <>~ [Blunt 100 (posFromID i) (posFromID i - cpos) + , Inertial 0 (posFromID i) (50 * unitVectorAtAngle (cr ^. crDir + pi/2)) + ] diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index e63f82314..2a936fc4e 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -9,7 +9,7 @@ module Dodge.Creature.ReaderUpdate ( -- goToTarget, flockACC, chaseCritMv, - crabCritMv, + crabActionUpdate, setMvPosToTargetCr, setViewPos, hoverCritMv, @@ -121,12 +121,16 @@ flockACC w cr = fromMaybe cr $ do else negate r *.* horDir in cr & crIntention . mvToPoint ?~ tpos +.+ horShift -crabCritMv :: World -> Creature -> Creature -crabCritMv w cr = case _apStrategy (_crActionPlan cr) of - _ | Just tid <- melee -> cr & crActionPlan . apAction - .~ DoImpulses [Melee tid] `DoActionThen` +crabActionUpdate :: World -> Creature -> Creature +crabActionUpdate w cr = case _apStrategy (_crActionPlan cr) of + _ | Just tid <- meleel -> cr & crActionPlan . apAction + .~ DoImpulses [MeleeL tid] `DoActionThen` DoReplicate 10 NoAction - & crType . meleeCooldownL .~ 20 +-- & crType . meleeCooldownL .~ 20 + _ | Just tid <- meleer -> cr & crActionPlan . apAction + .~ DoImpulses [MeleeR tid] `DoActionThen` + DoReplicate 10 NoAction +-- & crType . meleeCooldownR .~ 20 WarningCry -> cr CloseToMelee tid | aimi tid -> cr & crActionPlan . apAction .~ EvadeAim & crType . dodgeCooldown .~ dc @@ -143,7 +147,7 @@ crabCritMv w cr = case _apStrategy (_crActionPlan cr) of & crIntention . mvToPoint .~ Nothing _ -> viewTarget w cr where - melee = do + meleel = do tid <- cr ^? crIntention . targetCr . _Just tcr <- w ^? cWorld . lWorld . creatures . ix tid let cpos = cr ^. crPos . _xy @@ -151,7 +155,21 @@ crabCritMv w cr = case _apStrategy (_crActionPlan cr) of guard $ _meleeCooldownL (_crType cr) == 0 && Just (_crID tcr) == cr ^? crActionPlan . apStrategy . meleeTarget && dist tpos cpos < crRad (cr ^. crType) + crRad (tcr ^. crType) + 5 - && abs (_crDir cr - argV (tpos -.- cpos)) < pi / 4 + && (_crDir cr - argV (tpos -.- cpos)) > (-pi / 4) + && (_crDir cr - argV (tpos -.- cpos)) <= 0 + && cr ^?! crType . meleeCooldownR < 15 + return tid + meleer = do + tid <- cr ^? crIntention . targetCr . _Just + tcr <- w ^? cWorld . lWorld . creatures . ix tid + let cpos = cr ^. crPos . _xy + tpos = tcr ^. crPos . _xy + guard $ _meleeCooldownR (_crType cr) == 0 + && Just (_crID tcr) == cr ^? crActionPlan . apStrategy . meleeTarget + && dist tpos cpos < crRad (cr ^. crType) + crRad (tcr ^. crType) + 5 + && (_crDir cr - argV (tpos -.- cpos)) < pi / 4 + && (_crDir cr - argV (tpos -.- cpos)) >= 0 + && cr ^?! crType . meleeCooldownL < 15 return tid --dc = fst $ randomR (15,25) (w ^. randGen) dc = fst $ randomR (15,50) (w ^. randGen) diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index dfcdff1a7..b4143fcbd 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -68,6 +68,7 @@ walkCliffPush cr xs = pushAgainst (cr ^. crOldPos . _xy - cr ^. crOldOldPos . _x groundCliffPush :: Creature -> [(Point2,Point2)] -> Point2 groundCliffPush cr xs = x *^ circSegsInside cxy r xs where + -- at least 0.01 so that corpses don't hang on the edge of a cliff too long x = max 0.01 $ 0.25 * (1 - dist cxy p / (2*r)) ** 2 cxy = cr ^. crPos . _xy r = cr ^. crType . to crRad diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index 5b8de6b9a..6eccda14c 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -39,6 +39,8 @@ data Impulse | DropItem | Bark SoundID -- placeholder for various communication types | Melee Int + | MeleeL Int + | MeleeR Int | ChangePosture Posture | MakeSound SoundID | ChangeStrategy Strategy diff --git a/src/Dodge/Humanoid.hs b/src/Dodge/Humanoid.hs index 8c32b7277..31487eb95 100644 --- a/src/Dodge/Humanoid.hs +++ b/src/Dodge/Humanoid.hs @@ -35,7 +35,7 @@ crabCritInternal w = . searchIfDamaged . targetYouWhenCognizant w . perceptionUpdate [0] w - . crabCritMv w + . crabActionUpdate w . setMvPosToTargetCr w . setViewPos w -- . overrideMeleeCloseTarget w diff --git a/tags b/tags index c1877012d..7c6a59d8f 100644 --- a/tags +++ b/tags @@ -12,7 +12,7 @@ .++~ src/LensHelp.hs 33;" o .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o -<$> src/Dodge/Data/ActionPlan.hs 159;" o +<$> src/Dodge/Data/ActionPlan.hs 161;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 93;" o @@ -36,18 +36,18 @@ AUTOPISTOL src/Dodge/Data/Item/Combine.hs 147;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 156;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C -Action src/Dodge/Data/ActionPlan.hs 66;" t +Action src/Dodge/Data/ActionPlan.hs 68;" t ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t ActionUpdate src/Dodge/Creature/Action.hs 51;" t -AddGoal src/Dodge/Data/ActionPlan.hs 45;" C -AimAt src/Dodge/Data/ActionPlan.hs 67;" C +AddGoal src/Dodge/Data/ActionPlan.hs 47;" C +AimAt src/Dodge/Data/ActionPlan.hs 69;" C AimStance src/Dodge/Data/AimStance.hs 10;" t Aiming src/Dodge/Data/Creature/Stance.hs 33;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C -Ambush src/Dodge/Data/ActionPlan.hs 132;" C +Ambush src/Dodge/Data/ActionPlan.hs 134;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C @@ -58,7 +58,7 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t -ArbitraryAction src/Dodge/Data/ActionPlan.hs 121;" C +ArbitraryAction src/Dodge/Data/ActionPlan.hs 123;" C ArcNodeType src/Dodge/Data/LWorld.hs 159;" t ArcShad src/Picture/Data.hs 33;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t @@ -73,11 +73,11 @@ 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 -AutoCrit src/Dodge/Data/Creature/Misc.hs 68;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 70;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 72;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 74;" C Avatar src/Dodge/Data/Creature/Misc.hs 47;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 72;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 74;" 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 @@ -103,10 +103,10 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 40;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 69;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 71;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 84;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 80;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 86;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 82;" 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 @@ -201,8 +201,8 @@ CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t CardinalPoint src/Dodge/Data/CardinalPoint.hs 6;" t CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 21;" t -ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C -ChangeStrategy src/Dodge/Data/ActionPlan.hs 44;" C +ChangePosture src/Dodge/Data/ActionPlan.hs 44;" C +ChangeStrategy src/Dodge/Data/ActionPlan.hs 46;" C ChaseCrit src/Dodge/Data/Creature/Misc.hs 57;" C ChaseCritters src/Dodge/Data/Creature/State.hs 16;" C ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C @@ -210,7 +210,7 @@ ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 30;" C Circ_collision_test src/Dodge/Data/Config.hs 99;" C Climate src/Dodge/Data/Scenario.hs 32;" C -CloseToMelee src/Dodge/Data/ActionPlan.hs 142;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 144;" C Close_shape_culling src/Dodge/Data/Config.hs 93;" C Cloud src/Dodge/Data/Cloud.hs 12;" t CloudType src/Dodge/Data/Cloud.hs 20;" t @@ -279,7 +279,7 @@ 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 74;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 76;" t CreatureType src/Dodge/Data/Creature/Misc.hs 46;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C @@ -331,17 +331,17 @@ DisplayTerminal src/Dodge/Data/HUD.hs 27;" C Display_debug src/Dodge/Data/Config.hs 79;" C Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C -DoActionIf src/Dodge/Data/ActionPlan.hs 89;" C -DoActionIfElse src/Dodge/Data/ActionPlan.hs 93;" C -DoActionThen src/Dodge/Data/ActionPlan.hs 104;" C -DoActionWhile src/Dodge/Data/ActionPlan.hs 80;" C -DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 98;" C -DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 84;" C -DoImpulses src/Dodge/Data/ActionPlan.hs 75;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 123;" C +DoActionIf src/Dodge/Data/ActionPlan.hs 91;" C +DoActionIfElse src/Dodge/Data/ActionPlan.hs 95;" C +DoActionThen src/Dodge/Data/ActionPlan.hs 106;" C +DoActionWhile src/Dodge/Data/ActionPlan.hs 82;" C +DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 100;" C +DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 86;" C +DoImpulses src/Dodge/Data/ActionPlan.hs 77;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 125;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 18;" C -DoReplicate src/Dodge/Data/ActionPlan.hs 108;" C -DoReplicatePartial src/Dodge/Data/ActionPlan.hs 112;" C +DoReplicate src/Dodge/Data/ActionPlan.hs 110;" C +DoReplicatePartial src/Dodge/Data/ActionPlan.hs 114;" C DockingBaySS src/Dodge/Data/Scenario.hs 92;" C Door src/Dodge/Data/Door.hs 29;" t DoorDoNothing src/Dodge/Data/Door.hs 45;" C @@ -391,14 +391,14 @@ EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 17;" t EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C Escape src/Dodge/Data/Scenario.hs 10;" C Essential src/Shape/Data.hs 29;" C -EvadeAim src/Dodge/Data/ActionPlan.hs 72;" C +EvadeAim src/Dodge/Data/ActionPlan.hs 74;" C ExamineInventory src/Dodge/Data/HUD.hs 16;" C Explore src/Dodge/Data/Scenario.hs 4;" C 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 86;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 88;" 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 @@ -430,7 +430,7 @@ FlameSound src/Dodge/Data/SoundOrigin.hs 28;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 12;" C Flamer src/Dodge/Data/SoundOrigin.hs 26;" C Flaming src/Dodge/Data/Damage.hs 21;" C -Flank src/Dodge/Data/ActionPlan.hs 131;" C +Flank src/Dodge/Data/ActionPlan.hs 133;" C FlareType src/Dodge/Data/Muzzle.hs 28;" t FlashBall src/Dodge/Data/EnergyBall/Type.hs 15;" C Flashing src/Dodge/Data/Damage.hs 23;" C @@ -438,7 +438,7 @@ FlatFaces src/Shape/Data.hs 12;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 14;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 43;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 50;" C -Flee src/Dodge/Data/ActionPlan.hs 146;" C +Flee src/Dodge/Data/ActionPlan.hs 148;" C Flesh src/Dodge/Data/Material.hs 17;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C FloatBO src/Shader/Data.hs 85;" t @@ -452,7 +452,7 @@ Floating src/Dodge/Data/Creature/Stance.hs 23;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 24;" C -FollowImpulses src/Dodge/Data/ActionPlan.hs 136;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 138;" C FootForward src/Dodge/Data/Creature/Stance.hs 30;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C ForceField src/Dodge/Data/Material.hs 19;" C @@ -489,7 +489,7 @@ GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 24;" t GenericFaction src/Dodge/Data/Creature/State.hs 13;" C GeoObjShads src/Dodge/Data/Config.hs 117;" C -GetTo src/Dodge/Data/ActionPlan.hs 144;" C +GetTo src/Dodge/Data/ActionPlan.hs 146;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C Gibbed src/Dodge/Data/Creature.hs 68;" C @@ -497,7 +497,7 @@ GibsDeath src/Dodge/Data/Creature.hs 70;" 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 152;" t +Goal src/Dodge/Data/ActionPlan.hs 154;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 11;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 10;" C @@ -550,9 +550,9 @@ HotkeyR src/Dodge/Data/Equipment/Misc.hs 34;" C 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 -HoverCrit src/Dodge/Data/Creature/Misc.hs 66;" C +HoverCrit src/Dodge/Data/Creature/Misc.hs 68;" C Huge src/Shape/Data.hs 23;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 75;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C IMSI src/Dodge/Data/SelectionList.hs 41;" t IMSS src/Dodge/Data/SelectionList.hs 39;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -564,9 +564,9 @@ ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 29;" t Important src/Shape/Data.hs 30;" C Impulse src/Dodge/Data/ActionPlan.hs 25;" t -ImpulseNothing src/Dodge/Data/ActionPlan.hs 47;" C -ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 46;" C -ImpulsesList src/Dodge/Data/ActionPlan.hs 74;" C +ImpulseNothing src/Dodge/Data/ActionPlan.hs 49;" C +ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 48;" C +ImpulsesList src/Dodge/Data/ActionPlan.hs 76;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDream src/Dodge/Data/Scenario.hs 19;" C InInv src/Dodge/Data/Item/Location.hs 29;" C @@ -597,7 +597,7 @@ InventoryHeadFilterSI src/Dodge/Data/SelectionList.hs 61;" C InventoryHeadSI src/Dodge/Data/SelectionList.hs 60;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C -Investigate src/Dodge/Data/ActionPlan.hs 138;" C +Investigate src/Dodge/Data/ActionPlan.hs 140;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 12;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C @@ -626,7 +626,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C -Kill src/Dodge/Data/ActionPlan.hs 154;" C +Kill src/Dodge/Data/ActionPlan.hs 156;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 14;" C LDParams src/Dodge/Data/SelectionList.hs 14;" t @@ -640,7 +640,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 70;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 72;" C Large src/Shape/Data.hs 24;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -655,7 +655,7 @@ LaundrySS src/Dodge/Data/Scenario.hs 115;" C LayVars src/Dodge/Data/MetaTree.hs 30;" C Layer src/Picture/Data.hs 20;" t LayoutVars src/Dodge/Data/MetaTree.hs 30;" t -LeadTarget src/Dodge/Data/ActionPlan.hs 117;" C +LeadTarget src/Dodge/Data/ActionPlan.hs 119;" C LeftForward src/Dodge/Data/Creature/Stance.hs 30;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C @@ -669,7 +669,7 @@ LimitedBreathableAtmosphere src/Dodge/Data/Scenario.hs 38;" C LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t -LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 153;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 155;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadReady src/Dodge/Data/Universe.hs 101;" C LoadWaiting src/Dodge/Data/Universe.hs 100;" C @@ -679,8 +679,8 @@ 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 -LookAround src/Dodge/Data/ActionPlan.hs 140;" C -Lure src/Dodge/Data/ActionPlan.hs 133;" C +LookAround src/Dodge/Data/ActionPlan.hs 142;" C +Lure src/Dodge/Data/ActionPlan.hs 135;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C MAGENTA src/Color/Data.hs 17;" C MAGNET src/Dodge/Data/Item/Combine.hs 68;" C @@ -718,7 +718,7 @@ MagnetTrajectoryType src/Dodge/Data/Bullet.hs 51;" C MagnetUpdate src/Dodge/Data/Magnet.hs 11;" t MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C -MakeSound src/Dodge/Data/ActionPlan.hs 43;" C +MakeSound src/Dodge/Data/ActionPlan.hs 45;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C @@ -745,6 +745,8 @@ MdWdWd src/Dodge/Data/WorldEffect.hs 49;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 25;" C Melee src/Dodge/Data/ActionPlan.hs 41;" C +MeleeL src/Dodge/Data/ActionPlan.hs 42;" C +MeleeR src/Dodge/Data/ActionPlan.hs 43;" C Memory src/Dodge/Data/Creature.hs 79;" t MenuOption src/Dodge/Data/Universe.hs 109;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t @@ -815,7 +817,7 @@ NewInt src/NewInt.hs 16;" t NewIntMap src/NewInt.hs 22;" t NewIntSet src/NewInt.hs 19;" t NewSideEffect src/Dodge/Data/Universe.hs 63;" C -NoAction src/Dodge/Data/ActionPlan.hs 118;" C +NoAction src/Dodge/Data/ActionPlan.hs 120;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -846,7 +848,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 81;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 83;" 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 @@ -973,9 +975,9 @@ PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C PathFromEdge src/Dodge/Data/Room.hs 81;" t PathShowType src/Dodge/Data/Universe.hs 52;" t -PathTo src/Dodge/Data/ActionPlan.hs 71;" C +PathTo src/Dodge/Data/ActionPlan.hs 73;" C Pathing src/Dodge/Data/Config.hs 90;" C -Patrol src/Dodge/Data/ActionPlan.hs 134;" C +Patrol src/Dodge/Data/ActionPlan.hs 136;" C PauseTimeMessage src/Dodge/Data/World.hs 88;" C PausedTimeFlow src/Dodge/Data/World.hs 84;" C Payload src/Dodge/Data/Payload.hs 9;" t @@ -990,7 +992,7 @@ Piezoelectric src/Dodge/Data/Material.hs 23;" C Pitted src/Dodge/Data/Creature.hs 68;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 85;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 87;" C PlainDeath src/Dodge/Data/Creature.hs 70;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t @@ -1081,9 +1083,9 @@ RProps src/Dodge/Layout/Generate.hs 14;" C RadarBlip src/Dodge/Data/RadarBlip.hs 12;" t RadarSweep src/Dodge/Data/RadarSweep.hs 17;" t RadialDistortion src/Dodge/Data/Distortion.hs 11;" C -RandImpulse src/Dodge/Data/ActionPlan.hs 50;" t -RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 52;" C -RandImpulseList src/Dodge/Data/ActionPlan.hs 51;" C +RandImpulse src/Dodge/Data/ActionPlan.hs 52;" t +RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 54;" C +RandImpulseList src/Dodge/Data/ActionPlan.hs 53;" C RandPS src/Dodge/Data/GenWorld.hs 55;" C RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C @@ -1158,7 +1160,7 @@ SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C Scope src/Dodge/Data/Item/Scope.hs 11;" t ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 148;" C +Search src/Dodge/Data/ActionPlan.hs 150;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 25;" t SeeAbove src/Dodge/Data/Wall.hs 32;" C @@ -1177,7 +1179,7 @@ SelfTree src/Dodge/Data/MetaTree.hs 21;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C -SentinelAt src/Dodge/Data/ActionPlan.hs 155;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 157;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C @@ -1195,7 +1197,7 @@ ShellSound src/Dodge/Data/SoundOrigin.hs 27;" C ShieldGroup src/Dodge/Data/Creature/State.hs 30;" C Shockwave src/Dodge/Data/Shockwave.hs 15;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 12;" t -ShootAt src/Dodge/Data/ActionPlan.hs 135;" C +ShootAt src/Dodge/Data/ActionPlan.hs 137;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 94;" C @@ -1260,12 +1262,12 @@ 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 StandaloneWall src/Dodge/Data/Wall/Structure.hs 12;" C -StartSentinelPost src/Dodge/Data/ActionPlan.hs 119;" C +StartSentinelPost src/Dodge/Data/ActionPlan.hs 121;" C StayInArea src/Dodge/Data/Scenario.hs 13;" C Stone src/Dodge/Data/Material.hs 13;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C -Strategy src/Dodge/Data/ActionPlan.hs 130;" t -StrategyActions src/Dodge/Data/ActionPlan.hs 143;" C +Strategy src/Dodge/Data/ActionPlan.hs 132;" t +StrategyActions src/Dodge/Data/ActionPlan.hs 145;" C SubInventory src/Dodge/Data/HUD.hs 14;" t Superfluous src/Shape/Data.hs 33;" C Surface src/Shape/Data.hs 37;" t @@ -1273,7 +1275,7 @@ 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 -SwarmCrit src/Dodge/Data/Creature/Misc.hs 67;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 69;" 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 @@ -1373,7 +1375,7 @@ TriggerType src/Dodge/Data/TriggerType.hs 7;" t TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C Turn src/Dodge/Data/ActionPlan.hs 30;" C TurnTo src/Dodge/Data/ActionPlan.hs 36;" C -TurnToPoint src/Dodge/Data/ActionPlan.hs 73;" C +TurnToPoint src/Dodge/Data/ActionPlan.hs 75;" C TurnToward src/Dodge/Data/ActionPlan.hs 33;" C TurnTowardCr src/Dodge/Data/CreatureEffect.hs 9;" C Turret src/Dodge/Data/Machine.hs 64;" t @@ -1412,7 +1414,7 @@ UseItemWidth src/Dodge/Data/SelectionList.hs 43;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C UseNothing src/Dodge/Data/Item/Use.hs 32;" C UseScope src/Dodge/Data/Item/Use.hs 34;" C -UseSelf src/Dodge/Data/ActionPlan.hs 120;" C +UseSelf src/Dodge/Data/ActionPlan.hs 122;" C UseToggle src/Dodge/Data/Item/Use.hs 36;" C UseUpTo src/Dodge/Data/Muzzle.hs 64;" C UseValue src/Dodge/Data/Item/Use.hs 33;" C @@ -1450,7 +1452,7 @@ WHITE src/Color/Data.hs 24;" C WIRE src/Dodge/Data/Item/Combine.hs 86;" C WRISTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C -WaitThen src/Dodge/Data/ActionPlan.hs 76;" C +WaitThen src/Dodge/Data/ActionPlan.hs 78;" C Walk src/Dodge/Data/ActionPlan.hs 27;" C Walking src/Dodge/Data/Creature/Stance.hs 22;" C Wall src/Dodge/Data/Wall.hs 17;" t @@ -1467,15 +1469,15 @@ WallSound src/Dodge/Data/SoundOrigin.hs 25;" C WallStructure src/Dodge/Data/Wall/Structure.hs 11;" t WallWire src/Dodge/Data/Room.hs 59;" C Walls_info src/Dodge/Data/Config.hs 89;" C -Wander src/Dodge/Data/ActionPlan.hs 141;" C +Wander src/Dodge/Data/ActionPlan.hs 143;" C War src/Dodge/Data/Scenario.hs 28;" C WarmTime src/Dodge/Data/Item/Params.hs 19;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C -WarningCry src/Dodge/Data/ActionPlan.hs 139;" C +WarningCry src/Dodge/Data/ActionPlan.hs 141;" C WasMouseGameRotating src/Dodge/Data/Input.hs 53;" C WasNotMouseGameRotating src/Dodge/Data/Input.hs 54;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 137;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 139;" C WdBl src/Dodge/Data/WorldEffect.hs 56;" t WdBlBtOn src/Dodge/Data/WorldEffect.hs 62;" C WdBlConst src/Dodge/Data/WorldEffect.hs 59;" C @@ -1513,8 +1515,7 @@ YELLOW src/Color/Data.hs 15;" C ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 92;" C ZombieFaction src/Dodge/Data/Creature/State.hs 14;" C __Just' src/MaybeHelp.hs 11;" f -_acAction src/Dodge/Data/ActionPlan.hs 74;" f -_acTimer src/Dodge/Data/ActionPlan.hs 72;" f +_acAction src/Dodge/Data/ActionPlan.hs 76;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 19;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 25;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 30;" f @@ -1525,7 +1526,7 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 31;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 27;" f _alphaDivideShader src/Data/Preload/Render.hs 20;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" f -_ambushTarget src/Dodge/Data/ActionPlan.hs 132;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 134;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 52;" f _ampPayload src/Dodge/Data/Item/Use.hs 51;" f @@ -1537,7 +1538,7 @@ _apInt src/Dodge/Data/Item/Use.hs 45;" f _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 121;" f +_arbitraryAction src/Dodge/Data/ActionPlan.hs 123;" f _arcNode src/Dodge/Data/LWorld.hs 115;" f _asDir src/Dodge/Data/ArcStep.hs 14;" f _asObject src/Dodge/Data/ArcStep.hs 15;" f @@ -1550,7 +1551,7 @@ _avStrength src/Dodge/Data/Creature/Misc.hs 50;" f _avatarMaterial src/Dodge/Data/Creature/Misc.hs 49;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 48;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 69;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 71;" 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 @@ -1743,27 +1744,27 @@ _dmVector src/Dodge/Data/Damage.hs 16;" f _dmVector src/Dodge/Data/Damage.hs 19;" f _dmVector src/Dodge/Data/Damage.hs 22;" f _dmVector src/Dodge/Data/Damage.hs 28;" f -_doActionIfAction src/Dodge/Data/ActionPlan.hs 91;" f -_doActionIfCondition src/Dodge/Data/ActionPlan.hs 90;" f -_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 95;" f -_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 96;" f -_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 94;" f -_doActionThenFirst src/Dodge/Data/ActionPlan.hs 105;" f -_doActionThenSecond src/Dodge/Data/ActionPlan.hs 106;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 82;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 87;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 81;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 86;" f -_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 85;" f -_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 100;" f -_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 99;" f -_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 101;" f -_doImpulsesList src/Dodge/Data/ActionPlan.hs 75;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 110;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 115;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 109;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 114;" f -_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 64;" f +_doActionIfAction src/Dodge/Data/ActionPlan.hs 93;" f +_doActionIfCondition src/Dodge/Data/ActionPlan.hs 92;" f +_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 97;" f +_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 98;" f +_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 96;" f +_doActionThenFirst src/Dodge/Data/ActionPlan.hs 107;" f +_doActionThenSecond src/Dodge/Data/ActionPlan.hs 108;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 84;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 89;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 83;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 88;" f +_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 87;" f +_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 102;" f +_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 101;" f +_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 103;" f +_doImpulsesList src/Dodge/Data/ActionPlan.hs 77;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 112;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 117;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 111;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 116;" f +_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 66;" f _doors src/Dodge/Data/LWorld.hs 124;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f _drHP src/Dodge/Data/Door.hs 38;" f @@ -1794,8 +1795,6 @@ _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 -_enemyDir src/Dodge/Data/ActionPlan.hs 72;" f -_enemyPos src/Dodge/Data/ActionPlan.hs 72;" f _energyBalls src/Dodge/Data/LWorld.hs 108;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f @@ -1813,7 +1812,7 @@ _flPos src/Dodge/Data/Flame.hs 13;" f _flTimer src/Dodge/Data/Flame.hs 12;" f _flVel src/Dodge/Data/Flame.hs 14;" f _flames src/Dodge/Data/LWorld.hs 109;" f -_flankTarget src/Dodge/Data/ActionPlan.hs 131;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 133;" f _flares src/Dodge/Data/LWorld.hs 112;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _flboName src/Shader/Data.hs 86;" f @@ -1825,7 +1824,7 @@ _floorVBO src/Data/Preload/Render.hs 45;" f _flyInertia src/Dodge/Data/Creature/Stance.hs 24;" f _footForward src/Dodge/Data/Creature/Misc.hs 54;" f _footForward src/Dodge/Data/Creature/Misc.hs 58;" f -_footForward src/Dodge/Data/Creature/Misc.hs 62;" f +_footForward src/Dodge/Data/Creature/Misc.hs 64;" f _foreShapes src/Dodge/Data/LWorld.hs 136;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f @@ -1905,8 +1904,8 @@ _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _immediateEffect src/Loop/Data.hs 9;" f _immediateUpdate src/Loop/Data.hs 12;" f -_impulseUseTarget src/Dodge/Data/ActionPlan.hs 46;" f -_impulsesListList src/Dodge/Data/ActionPlan.hs 74;" f +_impulseUseTarget src/Dodge/Data/ActionPlan.hs 48;" f +_impulsesListList src/Dodge/Data/ActionPlan.hs 76;" f _incEdgeZoning src/Dodge/Data/World.hs 57;" f _incEdges src/Dodge/Data/CWorld.hs 31;" f _incGraph src/Dodge/Data/CWorld.hs 29;" f @@ -1934,16 +1933,16 @@ _items src/Dodge/Data/LWorld.hs 97;" f _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f -_killTarget src/Dodge/Data/ActionPlan.hs 154;" f +_killTarget src/Dodge/Data/ActionPlan.hs 156;" f _lAimPos src/Dodge/Data/LWorld.hs 147;" f _lClock src/Dodge/Data/LWorld.hs 142;" f _lInvLock src/Dodge/Data/LWorld.hs 148;" f _lTestInt src/Dodge/Data/LWorld.hs 144;" f _lTestString src/Dodge/Data/LWorld.hs 143;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f -_lampColor src/Dodge/Data/Creature/Misc.hs 70;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 70;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 70;" 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 _lasWepXSF src/Dodge/Data/ComposedItem.hs 41;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f @@ -1952,7 +1951,7 @@ _ldpPos src/Dodge/Data/SelectionList.hs 15;" f _ldpScale src/Dodge/Data/SelectionList.hs 16;" f _ldpSize src/Dodge/Data/SelectionList.hs 18;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 17;" f -_leadTargetBy src/Dodge/Data/ActionPlan.hs 117;" f +_leadTargetBy src/Dodge/Data/ActionPlan.hs 119;" f _lightSources src/Dodge/Data/LWorld.hs 137;" f _lightUBO src/Data/Preload/Render.hs 43;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f @@ -1983,7 +1982,7 @@ _lyGen src/Dodge/Data/MetaTree.hs 31;" f _machines src/Dodge/Data/LWorld.hs 125;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f _magnets src/Dodge/Data/LWorld.hs 128;" f -_mainAction src/Dodge/Data/ActionPlan.hs 125;" f +_mainAction src/Dodge/Data/ActionPlan.hs 127;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f _mapInvOffset src/Dodge/Data/HUD.hs 18;" f @@ -2033,9 +2032,10 @@ _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 57;" f -_meleeCooldown src/Dodge/Data/Creature/Misc.hs 61;" f -_meleeCooldown src/Dodge/Data/Creature/Misc.hs 66;" f -_meleeTarget src/Dodge/Data/ActionPlan.hs 142;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 68;" f +_meleeCooldownL src/Dodge/Data/Creature/Misc.hs 62;" f +_meleeCooldownR src/Dodge/Data/Creature/Misc.hs 63;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 144;" f _mgField src/Dodge/Data/Magnet.hs 23;" f _mgPos src/Dodge/Data/Magnet.hs 22;" f _moEff src/Dodge/Data/Universe.hs 111;" f @@ -2089,10 +2089,10 @@ _opTexture src/Dodge/Data/Wall.hs 34;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 18;" f _opticPos src/Dodge/Data/Item/Scope.hs 14;" f _opticZoom src/Dodge/Data/Item/Scope.hs 17;" f -_partialAction src/Dodge/Data/ActionPlan.hs 113;" f +_partialAction src/Dodge/Data/ActionPlan.hs 115;" f _pastWorlds src/Dodge/Data/World.hs 38;" f -_pathFailAction src/Dodge/Data/ActionPlan.hs 71;" f -_pathToPoint src/Dodge/Data/ActionPlan.hs 71;" f +_pathFailAction src/Dodge/Data/ActionPlan.hs 73;" f +_pathToPoint src/Dodge/Data/ActionPlan.hs 73;" f _pauseTimeMesage src/Dodge/Data/World.hs 89;" f _pauseTimeMesageColor src/Dodge/Data/World.hs 90;" f _pbPos src/Dodge/Data/PlasmaBall.hs 16;" f @@ -2103,7 +2103,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 86;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 88;" 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 @@ -2283,8 +2283,8 @@ _selLocation src/Dodge/Data/LWorld.hs 140;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 155;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 155;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 157;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 157;" f _sfColor src/Shape/Data.hs 40;" f _sfShadowImportance src/Shape/Data.hs 41;" f _sfSize src/Shape/Data.hs 42;" f @@ -2307,15 +2307,15 @@ _siPayload src/Dodge/Data/SelectionList.hs 52;" f _siPictures src/Dodge/Data/SelectionList.hs 46;" f _siWidth src/Dodge/Data/SelectionList.hs 48;" f _sideEffect src/Loop/Data.hs 13;" f -_sideImpulses src/Dodge/Data/ActionPlan.hs 124;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 126;" f _silhouetteEBO src/Data/Preload/Render.hs 30;" f _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 76;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 78;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 77;" 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 _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f @@ -2344,7 +2344,7 @@ _ssboName src/Shader/Data.hs 97;" f _ssboPtr src/Shader/Data.hs 98;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 55;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 59;" f -_strideAmount src/Dodge/Data/Creature/Misc.hs 63;" f +_strideAmount src/Dodge/Data/Creature/Misc.hs 65;" f _stuckCrID src/Dodge/Data/Projectile.hs 48;" f _stuckCrOffset src/Dodge/Data/Projectile.hs 48;" f _stuckCrRot src/Dodge/Data/Projectile.hs 48;" f @@ -2364,8 +2364,8 @@ _taArcSteps src/Dodge/Data/TeslaArc.hs 17;" f _taColor src/Dodge/Data/TeslaArc.hs 18;" f _taTimer src/Dodge/Data/TeslaArc.hs 16;" f _targetCr src/Dodge/Data/Creature.hs 73;" f -_targetID src/Dodge/Data/ActionPlan.hs 68;" f -_targetSeenAt src/Dodge/Data/ActionPlan.hs 69;" f +_targetID src/Dodge/Data/ActionPlan.hs 70;" f +_targetSeenAt src/Dodge/Data/ActionPlan.hs 71;" f _tbPos src/Dodge/Data/TractorBeam.hs 12;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 13;" f _tbTime src/Dodge/Data/TractorBeam.hs 15;" f @@ -2422,7 +2422,7 @@ _tuDir src/Dodge/Data/Machine.hs 68;" f _tuFireTime src/Dodge/Data/Machine.hs 67;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 66;" f _tuWeapon src/Dodge/Data/Machine.hs 65;" f -_turnToPoint src/Dodge/Data/ActionPlan.hs 73;" f +_turnToPoint src/Dodge/Data/ActionPlan.hs 75;" f _uInt src/Dodge/Data/Item/Use.hs 31;" f _uScope src/Dodge/Data/Item/Use.hs 34;" f _uValue src/Dodge/Data/Item/Use.hs 33;" f @@ -2445,7 +2445,7 @@ _upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 63;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f -_useSelf src/Dodge/Data/ActionPlan.hs 120;" f +_useSelf src/Dodge/Data/ActionPlan.hs 122;" f _useToggle src/Dodge/Data/Item/Use.hs 36;" f _useUpTo src/Dodge/Data/Muzzle.hs 64;" f _uvCanContinue src/Dodge/Data/Universe.hs 36;" f @@ -2495,8 +2495,8 @@ _vxShadNum src/Picture/Data.hs 16;" f _wCam src/Dodge/Data/World.hs 59;" f _wSoundFilter src/Dodge/Data/World.hs 43;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f -_waitThenAction src/Dodge/Data/ActionPlan.hs 78;" f -_waitThenTimer src/Dodge/Data/ActionPlan.hs 77;" f +_waitThenAction src/Dodge/Data/ActionPlan.hs 80;" f +_waitThenTimer src/Dodge/Data/ActionPlan.hs 79;" f _wallDamages src/Dodge/Data/LWorld.hs 123;" f _wallVBO src/Data/Preload/Render.hs 50;" f _walls src/Dodge/Data/LWorld.hs 122;" f @@ -2648,7 +2648,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 166;" f +arms src/Dodge/Creature/Picture.hs 179;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2700,7 +2700,7 @@ 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 204;" f +baseShoulder src/Dodge/Creature/Picture.hs 217;" 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 @@ -2715,7 +2715,7 @@ battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f beltMag src/Dodge/Item/Ammo.hs 38;" f -bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 292;" f +bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 323;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f bgunSound src/Dodge/HeldUse.hs 540;" f bingate src/Dodge/Item/Scope.hs 115;" f @@ -2822,15 +2822,15 @@ changeSwapWith src/Dodge/Inventory.hs 283;" f charToTuple src/Picture/Base.hs 312;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 51;" f -chaseCorpse src/Dodge/Corpse/Make.hs 32;" f +chaseCorpse src/Dodge/Corpse/Make.hs 33;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f -chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 159;" f -chaseUpperBody src/Dodge/Creature/Picture.hs 96;" f -chasmRotate src/Dodge/Creature/State/WalkCycle.hs 116;" f +chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 190;" f +chaseUpperBody src/Dodge/Creature/Picture.hs 109;" f +chasmRotate src/Dodge/Creature/State/WalkCycle.hs 117;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f -chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 101;" f +chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 102;" f chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f @@ -2850,7 +2850,7 @@ chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f chestPQ src/Dodge/Creature/HandPos.hs 180;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f -chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 145;" f +chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 146;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f circHitWall src/Dodge/Base/Collide.hs 245;" f @@ -2859,8 +2859,8 @@ circOnAnyCr src/Dodge/Base/Collide.hs 290;" f circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f circOnSomeWall src/Dodge/Base/Collide.hs 284;" f -circSegsInside src/Dodge/Creature/State/WalkCycle.hs 87;" f -circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 76;" f +circSegsInside src/Dodge/Creature/State/WalkCycle.hs 88;" f +circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 77;" f circle src/Picture/Base.hs 172;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f @@ -2990,15 +2990,15 @@ crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 47;" f -crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 63;" f +crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 64;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 23;" f crMvByNoStride src/Dodge/Creature/Impulse/Movement.hs 39;" f -crMvForward src/Dodge/Creature/Impulse/Movement.hs 74;" f +crMvForward src/Dodge/Creature/Impulse/Movement.hs 75;" f crMvType src/Dodge/Creature/MoveType.hs 7;" f crNearPoint src/Dodge/Creature/Test.hs 129;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crOnSeg src/Dodge/WorldEvent/ThingsHit.hs 206;" f -crPathing src/Dodge/Creature/Action.hs 126;" f +crPathing src/Dodge/Creature/Action.hs 125;" f crRad src/Dodge/Creature/Radius.hs 7;" f crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f @@ -3017,10 +3017,10 @@ crWarningSounds src/Dodge/Creature/Vocalization.hs 16;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 72;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f +crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f -crabCritMv src/Dodge/Creature/ReaderUpdate.hs 124;" f -crabFeet src/Dodge/Creature/Picture.hs 148;" f +crabFeet src/Dodge/Creature/Picture.hs 161;" f crabRoom src/Dodge/Room/Tutorial.hs 433;" f crabUpperBody src/Dodge/Creature/Picture.hs 86;" f craftInfo src/Dodge/Item/Info.hs 168;" f @@ -3040,9 +3040,9 @@ createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureShootLaser src/Dodge/HeldUse.hs 859;" f creatureShootPulseLaser src/Dodge/HeldUse.hs 887;" f -creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 77;" f -creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 98;" f -creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 87;" f +creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 78;" f +creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 99;" f +creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 88;" f critDeadEnd src/Dodge/Room/Room.hs 261;" f critInDeadEnd src/Dodge/Room/Room.hs 257;" f critsPillarRoom src/Dodge/Room/Room.hs 417;" f @@ -3119,10 +3119,10 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f deadEndPSType src/Dodge/Room/Room.hs 264;" f deadEndRoom src/Dodge/Room/Room.hs 267;" f -deadFeet src/Dodge/Creature/Picture.hs 162;" f -deadRot src/Dodge/Creature/Picture.hs 180;" f -deadScalp src/Dodge/Creature/Picture.hs 175;" f -deadUpperBody src/Dodge/Creature/Picture.hs 201;" f +deadFeet src/Dodge/Creature/Picture.hs 175;" f +deadRot src/Dodge/Creature/Picture.hs 193;" f +deadScalp src/Dodge/Creature/Picture.hs 188;" f +deadUpperBody src/Dodge/Creature/Picture.hs 214;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f @@ -3306,7 +3306,7 @@ doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f -doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 237;" f +doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 268;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3375,7 +3375,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 213;" f +drawEquipment src/Dodge/Creature/Picture.hs 226;" 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 @@ -3467,7 +3467,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f dropAll src/Dodge/Creature/Update.hs 171;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f -dropItem src/Dodge/Creature/Action.hs 170;" f +dropItem src/Dodge/Creature/Action.hs 169;" f dropper src/Dodge/Item/Scope.hs 82;" f drumMag src/Dodge/Item/Ammo.hs 31;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f @@ -3555,7 +3555,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 134;" f +feet src/Dodge/Creature/Picture.hs 147;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3805,10 +3805,10 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f -hoverCrit src/Dodge/Creature/ChaseCrit.hs 45;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 51;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 68;" f -hoverCritInternal src/Dodge/Humanoid.hs 43;" f -hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f +hoverCritInternal src/Dodge/Humanoid.hs 44;" f +hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 225;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f @@ -4065,7 +4065,7 @@ linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 232;" f listControls src/Dodge/Menu.hs 244;" f listCursor src/Dodge/Render/List.hs 120;" f -listGuard src/Dodge/Creature/ReaderUpdate.hs 262;" f +listGuard src/Dodge/Creature/ReaderUpdate.hs 293;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f @@ -4136,7 +4136,7 @@ makeButton src/Dodge/LevelGen/Switch.hs 16;" f 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 15;" f +makeCorpse src/Dodge/Corpse/Make.hs 16;" f makeCrGibs src/Dodge/Prop/Gib.hs 19;" f makeDebris src/Dodge/Block/Debris.hs 75;" f makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f @@ -4201,7 +4201,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 572;" f maybeOpenConsole src/Dodge/Update.hs 135;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f -maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 123;" f +maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 124;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f mcBackgroundSound src/Dodge/Machine/Update.hs 152;" f mcColor src/Dodge/Machine/Draw.hs 82;" f @@ -4357,7 +4357,7 @@ nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 269;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f -normalGait src/Dodge/Creature/State/WalkCycle.hs 140;" f +normalGait src/Dodge/Creature/State/WalkCycle.hs 141;" f normalTo8 src/Shader/Poke.hs 466;" f normalizeAngle src/Geometry/Vector.hs 130;" f normalizeAnglePi src/Dodge/Base.hs 154;" f @@ -4382,7 +4382,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" 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 131;" f +oneSmooth src/Dodge/Creature/Picture.hs 144;" f openConsole src/Dodge/Update.hs 140;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4418,7 +4418,7 @@ overlapCircWalls src/Dodge/Base/Collide.hs 238;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f overlapSegWalls src/Dodge/Base/Collide.hs 218;" f -overrideInternal src/Dodge/Creature/ReaderUpdate.hs 246;" f +overrideInternal src/Dodge/Creature/ReaderUpdate.hs 277;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 38;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f p src/ShortShow.hs 48;" f @@ -4449,9 +4449,9 @@ perMat src/MatrixHelper.hs 60;" f perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f performAction src/Dodge/Creature/Action.hs 56;" f performActions src/Dodge/Creature/Action.hs 41;" f -performAimAt src/Dodge/Creature/Action.hs 113;" f -performPathTo src/Dodge/Creature/Action.hs 131;" f -performTurnToA src/Dodge/Creature/Action.hs 143;" f +performAimAt src/Dodge/Creature/Action.hs 112;" f +performPathTo src/Dodge/Creature/Action.hs 130;" f +performTurnToA src/Dodge/Creature/Action.hs 142;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pickUpItem src/Dodge/Inventory/Add.hs 70;" f pickUpItemAt src/Dodge/Inventory/Add.hs 75;" f @@ -4743,7 +4743,7 @@ renderShadows src/Render.hs 116;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 65;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f -resetStride src/Dodge/Creature/State/WalkCycle.hs 135;" f +resetStride src/Dodge/Creature/State/WalkCycle.hs 136;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f @@ -4866,7 +4866,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 189;" f +scalp src/Dodge/Creature/Picture.hs 202;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/Update.hs 164;" f @@ -4890,7 +4890,7 @@ seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 279;" f +searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 310;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsSizes src/Dodge/DisplayInventory.hs 205;" f @@ -5187,7 +5187,7 @@ storageShape src/Dodge/Machine/Draw.hs 30;" f storeRoomID src/Dodge/Room/Modify.hs 23;" f strFromEquipment src/Dodge/Creature/Statistics.hs 56;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 70;" f -strengthFactor src/Dodge/Creature/Impulse/Movement.hs 68;" f +strengthFactor src/Dodge/Creature/Impulse/Movement.hs 69;" f strictify src/MaybeHelp.hs 35;" f strideLength src/Dodge/Creature/HandPos.hs 46;" f strideRot src/Dodge/Item/HeldOffset.hs 80;" f @@ -5234,7 +5234,7 @@ targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f -targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 268;" f +targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 299;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f @@ -5286,7 +5286,7 @@ thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 55;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f -throwItem src/Dodge/Creature/Action.hs 206;" f +throwItem src/Dodge/Creature/Action.hs 205;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 216;" f tilesToLine src/Shader/AuxAddition.hs 66;" f @@ -5341,7 +5341,7 @@ topTestPart src/Dodge/TestString.hs 95;" 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 194;" f +torso src/Dodge/Creature/Picture.hs 207;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f @@ -5394,7 +5394,7 @@ tryClickUse src/Dodge/Creature/YourControl.hs 207;" f tryCombine src/Dodge/Update/Input/InGame.hs 555;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 156;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 159;" f -tryEvadeSideways src/Dodge/Creature/Action.hs 106;" f +tryEvadeSideways src/Dodge/Creature/Action.hs 105;" f tryGetChannel src/Sound.hs 99;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 43;" f @@ -5568,13 +5568,13 @@ updateUniverseLast src/Dodge/Update.hs 145;" f updateUniverseMid src/Dodge/Update.hs 187;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 49;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f -updateVocTimer src/Dodge/Humanoid.hs 60;" f +updateVocTimer src/Dodge/Humanoid.hs 61;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 480;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f -upperBody src/Dodge/Creature/Picture.hs 209;" f +upperBody src/Dodge/Creature/Picture.hs 222;" f upperBox src/Shape.hs 153;" f upperBoxHalf src/Shape.hs 219;" f upperBoxMT src/Shape.hs 144;" f @@ -5634,7 +5634,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f -viewTarget src/Dodge/Creature/ReaderUpdate.hs 219;" f +viewTarget src/Dodge/Creature/ReaderUpdate.hs 250;" f violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 223;" f visionCheck src/Dodge/Creature/Perception.hs 162;" f @@ -5659,7 +5659,7 @@ wasdM src/Dodge/WASD.hs 9;" f wasdMovement src/Dodge/Creature/YourControl.hs 140;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 106;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f -watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 251;" f +watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 282;" f weaponBehindPillar src/Dodge/Room/Room.hs 200;" f weaponBetweenPillars src/Dodge/Room/Room.hs 216;" f weaponEmptyRoom src/Dodge/Room/Room.hs 161;" f @@ -5733,7 +5733,7 @@ yIntercepts src/Dodge/Zoning/Base.hs 78;" f yV2 src/Geometry/Vector.hs 207;" f yellow src/Color.hs 44;" f you src/Dodge/Base/You.hs 17;" f -youDropItem src/Dodge/Creature/Action.hs 192;" f +youDropItem src/Dodge/Creature/Action.hs 191;" f yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f yourControl src/Dodge/Creature/YourControl.hs 26;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 111;" f