diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index a006bffc8..dcefddc59 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -99,7 +99,7 @@ startCr = & crInv .~ mempty & crFaction .~ PlayerFaction -- & crMvType .~ MvWalking yourDefaultSpeed - & crType .~ Avatar (PulseStatus 55 0) Flesh 50 50 50 3 AvPosture + & crType .~ Avatar (PulseStatus 55 0) Flesh 50 50 50 3 AvPosture LeftForward 0 -- | Items you start with. startInvList :: [Item] diff --git a/src/Dodge/Creature/HandPos.hs b/src/Dodge/Creature/HandPos.hs index ed67b3e54..0ebca91f6 100644 --- a/src/Dodge/Creature/HandPos.hs +++ b/src/Dodge/Creature/HandPos.hs @@ -49,23 +49,14 @@ strideLength cr = case cr ^. crType of _ -> 30 handWalkingPos :: FootForward -> Float -> Creature -> Point3 -handWalkingPos b off cr = case cr ^. crStance . carriage of - Walking sa ff -> +handWalkingPos b off cr = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just sa,Just ff) -> let slen = strideLength cr f i | ff == b = 8 * zeroOneSmooth ((slen - i) / slen) | otherwise = 8 * zeroOneSmooth (i / slen) in V3 (f sa) off 12 - Falling sa ff -> - let slen = strideLength cr - f i - | ff == b = 8 * zeroOneSmooth ((slen - i) / slen) - | otherwise = 8 * zeroOneSmooth (i / slen) - in V3 (f sa) off 20 - Floating -> V3 0 off 12 - Flying {} -> V3 0 off 12 - Boosting _ -> V3 0 off 12 - OnGround -> V3 0 off 12 + _ -> V3 0 off 12 zeroOneSmooth :: Float -> Float zeroOneSmooth x = (1 - cos (pi * x)) / 2 @@ -137,14 +128,8 @@ leftHandPQ cr | otherwise = (handWalkingPos RightForward 8 cr, Q.qid) twoHandOffY :: Creature -> Float -twoHandOffY cr = zeroOneSmooth $ case cr ^. crStance . carriage of - Walking sa ff -> - let slen = strideLength cr - f i - | ff == RightForward = (slen - i) / slen - | otherwise = i / slen - in f sa - Falling sa ff -> +twoHandOffY cr = zeroOneSmooth $ case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just sa,Just ff) -> let slen = strideLength cr f i | ff == RightForward = (slen - i) / slen @@ -175,11 +160,9 @@ legPQ' g cr = (0, Q.qz (_crMvDir cr - _crDir cr)) (V3 x (g off) 0, Q.qid) where - x = case cr ^? crStance . carriage of - Just (Walking sa LeftForward) -> -f sa - Just (Walking sa RightForward) -> f sa - Just (Falling sa LeftForward) -> -f sa - Just (Falling sa RightForward) -> f sa + x = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just sa,Just LeftForward) -> -f sa + (Just sa,Just RightForward) -> f sa _ -> 0 off = -5 sLen = strideLength cr diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 99c506e9c..03b589597 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -91,9 +91,9 @@ chaseUpperBody cr = colorSH (_skinUpper cskin) _ -> 0 sLen = strideLength cr tbob = 5 * (1 - oneSmooth (abs llegpos)) - llegpos = case cr ^? crStance . carriage of - Just (Walking sa LeftForward) -> f sa - Just (Walking sa RightForward) -> -f sa + llegpos = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just sa, Just LeftForward) -> f sa + (Just sa, Just RightForward) -> -f sa _ -> 0 --tbob = 2 * oneSmooth ((sLen - 2*i) / sLen) f i = (sLen - 2*i) / sLen @@ -104,9 +104,9 @@ oneSmooth x = sin (pi * x * 0.5) feet :: Creature -> Shape {-# INLINE feet #-} -feet cr = case cr ^? crStance . carriage of - Just (Walking sa LeftForward) -> sh (f sa) - Just (Walking sa RightForward) -> sh (-f sa) +feet cr = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just sa,Just LeftForward) -> sh (f sa) + (Just sa,Just RightForward) -> sh (-f sa) _ -> sh 0 where sh x = translateSHxy x off aFoot <> translateSHxy (- x) (- off) aFoot diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index b1ac7aa76..5f1dcd644 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -18,14 +18,15 @@ updateCarriage cid w = fromMaybe w $ do updateCarriage' :: Int -> Creature -> World -> Carriage -> World updateCarriage' cid cr w = \case - Walking x ff | x >= strideLength cr -> w + Walking -> case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just x,Just ff) | x >= strideLength cr -> w & soundMultiFrom [FootstepSound i | i <- [0 .. 10]] (cr ^. crPos . _xy) (chooseFootSound ff) Nothing - & over (cWorld . lWorld . creatures . ix cid . crStance . carriage) resetStride - Walking {} -> w + & over (cWorld . lWorld . creatures . ix cid . crType) resetStride + _ -> w Floating -> w Flying {_zSpeed = dz, _flyInertia = x} -> w & cWorld . lWorld . creatures . ix cid . crPos . _xy +~ x *^ f (cr ^. crOldPos . _xy - oop ^. _xy) @@ -33,7 +34,7 @@ updateCarriage' cid cr w = \case & cWorld . lWorld . creatures . ix cid . crStance . carriage . zSpeed %~ if cr ^. crPos . _z < 17 then min 0.05 . (+0.001) else max (-0.05) . subtract 0.001 Boosting {} -> w - Falling _ _ -> + Falling {} -> let v = 0.9 *^ (cr ^. crOldPos - oop & _z -~ 0.5) ep = cr ^. crPos + v in if ep ^. _z < 0 && not (any (pointInPoly (ep ^. _xy)) (w ^. cWorld . chasms)) @@ -47,10 +48,10 @@ updateCarriage' cid cr w = \case | otherwise = v -resetStride :: Carriage -> Carriage -resetStride = \case - Walking _ ff -> Walking 0 (normalGait ff) - x -> x +resetStride :: CreatureType -> CreatureType +resetStride ct = case ct ^? footForward of + Just _ -> ct & strideAmount .~ 0 & footForward %~ normalGait + _ -> ct normalGait :: FootForward -> FootForward normalGait = \case diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 194a46f6b..1c318f2d4 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -101,7 +101,7 @@ checkDeath' cr w = case cr ^. crHP of toDeathCarriage :: Carriage -> Carriage toDeathCarriage = \case - Flying {} -> Falling 0 RightForward + Flying {} -> Falling x -> x -- could look at the amount of damage here (given by maxDamage) too @@ -165,8 +165,8 @@ chasmTestLiving cr w startFalling :: Creature -> Creature startFalling cr = case cr ^. crStance . carriage of - Walking a b -> cr & crStance . carriage .~ Falling a b - _ -> cr & crStance . carriage .~ Falling 0 RightForward + Walking -> cr & crStance . carriage .~ Falling + _ -> cr & crStance . carriage .~ Falling chasmTestCorpse :: Creature -> World -> World chasmTestCorpse cr w diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 93b3db4f3..c82e60bf8 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -6,6 +6,7 @@ module Dodge.Data.Creature.Misc ( module Dodge.Data.CamouflageStatus, ) where +import Dodge.Data.Creature.Stance import Color import Control.Lens import Data.Aeson @@ -50,8 +51,13 @@ data CreatureType , _avIntelligence :: Int , _avMoveSpeed :: Float , _avPosture :: AvatarPosture + , _footForward :: FootForward + , _strideAmount :: Float + } + | ChaseCrit {_meleeCooldown :: Int + , _footForward :: FootForward + , _strideAmount :: Float } - | ChaseCrit {_meleeCooldown :: Int} | HoverCrit {_meleeCooldown :: Int} | SwarmCrit | AutoCrit diff --git a/src/Dodge/Data/Creature/Stance.hs b/src/Dodge/Data/Creature/Stance.hs index b861333c8..20e07e15b 100644 --- a/src/Dodge/Data/Creature/Stance.hs +++ b/src/Dodge/Data/Creature/Stance.hs @@ -19,11 +19,11 @@ data Stance = Stance deriving (Eq, Ord, Show, Read) --Generic, Flat) data Carriage - = Walking {_strideAmount :: Float, _footForward :: FootForward} + = Walking | Floating | Flying {_zSpeed :: Float, _flyInertia :: Float} | Boosting Point2 - | Falling {_fallFlail :: Float, _fallFoot :: FootForward} + | Falling | OnGround deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index 6ef3221f9..fbcf65a78 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -22,7 +22,7 @@ defaultCreature = , _crMvAim = 0 -- , _crTwist = 0 , _crID = 1 - , _crType = ChaseCrit {_meleeCooldown = 0} + , _crType = ChaseCrit 0 LeftForward 0 -- , _crRad = 10 , _crHP = HP 100 -- , _crMaxHP = 150 @@ -39,7 +39,7 @@ defaultCreature = -- , _crHotkeys = M.empty , _crStance = Stance - { _carriage = Walking 0 LeftForward + { _carriage = Walking , _posture = AtEase } , _crVocalization = VocReady diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index 2a999a0db..64d148eaa 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -78,11 +78,9 @@ shoulderHeight :: Float shoulderHeight = 18 strideRot :: Creature -> Float -strideRot cr = case cr ^? crStance . carriage of - Just (Walking x LeftForward) -> f x - Just (Walking x RightForward) -> - f x - Just (Falling x LeftForward) -> f x - Just (Falling x RightForward) -> - f x +strideRot cr = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of + (Just x, Just LeftForward) -> f x + (Just x, Just RightForward) -> - f x _ -> 0 where f i = 0.1 * (sLen - i) / sLen diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 97303477c..7e16ee78a 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -35,12 +35,12 @@ import Data.Monoid import RandomHelp testStringInit :: Universe -> [String] -testStringInit u = u ^.. uvWorld . cWorld . lWorld . creatures . ix 2 . crPos . _z . to show +testStringInit u = u ^.. uvWorld . cWorld . lWorld . creatures . ix 0 . crPos . _z . to show <> [show v] where v = x - y - x = fromMaybe 0 $ u ^? uvWorld . cWorld . lWorld . creatures . ix 2 . crOldPos - y = fromMaybe 0 $ u ^? uvWorld . cWorld . lWorld . creatures . ix 2 . crOldOldPos + x = fromMaybe 0 $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crOldPos + y = fromMaybe 0 $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crOldOldPos -- u = [show p, show op, show oop, show (op - oop), show . norm $ op - oop, show d] -- where -- f = fromMaybe 0 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index cdccea50f..fe2cfd765 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -372,7 +372,7 @@ updateCreatureStrides :: World -> World updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride updateCreatureStride :: Creature -> Creature -updateCreatureStride cr = cr & crStance . carriage . strideAmount +~ d +updateCreatureStride cr = cr & crType . strideAmount +~ d where s = fromMaybe 0 $ crMvType cr ^? mvSpeed -- d = min s . norm $ cr ^. crPos - cr ^. crOldPos diff --git a/tags b/tags index 692b718b5..44b0c57ab 100644 --- a/tags +++ b/tags @@ -15,7 +15,7 @@ <$> src/Dodge/Data/ActionPlan.hs 156;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o -<$> src/Dodge/Data/Creature.hs 92;" o +<$> src/Dodge/Data/Creature.hs 93;" o <$> src/Dodge/Data/LWorld.hs 179;" o <$> src/Dodge/Data/Terminal.hs 69;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C @@ -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 57;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 63;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 61;" C -Avatar src/Dodge/Data/Creature/Misc.hs 45;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 61;" t +AvPosture src/Dodge/Data/Creature/Misc.hs 67;" C +Avatar src/Dodge/Data/Creature/Misc.hs 46;" C +AvatarPosture src/Dodge/Data/Creature/Misc.hs 67;" 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 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 58;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 64;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 73;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 69;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 79;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 75;" 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 @@ -203,7 +203,7 @@ CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 21;" t ChangePosture src/Dodge/Data/ActionPlan.hs 41;" C ChangeStrategy src/Dodge/Data/ActionPlan.hs 43;" C -ChaseCrit src/Dodge/Data/Creature/Misc.hs 54;" 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 ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C @@ -237,7 +237,7 @@ ContextDT src/Dodge/Data/DoubleTree.hs 25;" t ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C ConvexPoly src/Geometry/ConvexPoly.hs 25;" t -CookDeath src/Dodge/Data/Creature.hs 69;" C +CookDeath src/Dodge/Data/Creature.hs 70;" C CookingDamage src/Dodge/Data/Damage/Type.hs 5;" C Corporation src/Dodge/Data/Scenario.hs 46;" C Cosmic src/Dodge/Data/Scenario.hs 74;" C @@ -250,19 +250,19 @@ CrGroup src/Dodge/Data/Creature/State.hs 23;" t CrGroupID src/Dodge/Data/Creature/State.hs 29;" C CrGroupParams src/Dodge/Data/CrGroupParams.hs 12;" t CrGroupUpdate src/Dodge/Data/CrGroupParams.hs 20;" t -CrHP src/Dodge/Data/Creature.hs 63;" t +CrHP src/Dodge/Data/Creature.hs 64;" t CrHitSound src/Dodge/Data/SoundOrigin.hs 32;" C CrID src/Dodge/Data/CrWlID.hs 10;" C CrImp src/Dodge/Data/CreatureEffect.hs 9;" t CrInt src/Dodge/Data/Item/Location.hs 22;" t CrIsAiming src/Dodge/Data/CreatureEffect.hs 20;" C CrIsAnimate src/Dodge/Data/CreatureEffect.hs 20;" C -CrIsCorpse src/Dodge/Data/Creature.hs 65;" C -CrIsGibs src/Dodge/Data/Creature.hs 66;" C -CrIsPitted src/Dodge/Data/Creature.hs 67;" C +CrIsCorpse src/Dodge/Data/Creature.hs 66;" C +CrIsGibs src/Dodge/Data/Creature.hs 67;" C +CrIsPitted src/Dodge/Data/Creature.hs 68;" C CrMouth src/Dodge/Data/SoundOrigin.hs 16;" C -CrMvType src/Dodge/Data/Creature/Misc.hs 23;" t -CrMvType src/Dodge/Data/Creature/Misc.hs 26;" C +CrMvType src/Dodge/Data/Creature/Misc.hs 24;" t +CrMvType src/Dodge/Data/Creature/Misc.hs 27;" 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 @@ -278,8 +278,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 63;" t -CreatureType src/Dodge/Data/Creature/Misc.hs 44;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 69;" t +CreatureType src/Dodge/Data/Creature/Misc.hs 45;" 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 @@ -305,7 +305,7 @@ DamageHitSound src/Dodge/Data/SoundOrigin.hs 41;" C 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 +DeathType src/Dodge/Data/Creature.hs 70;" t Debris src/Dodge/Data/Prop.hs 27;" t DebrisChunk src/Dodge/Data/Prop.hs 27;" C DebrisType src/Dodge/Data/Prop.hs 21;" t @@ -397,7 +397,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 75;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 81;" 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 @@ -491,7 +491,7 @@ GeoObjShads src/Dodge/Data/Config.hs 117;" C GetTo src/Dodge/Data/ActionPlan.hs 141;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C -GibsDeath src/Dodge/Data/Creature.hs 69;" C +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 @@ -517,7 +517,7 @@ HEATSENSOR src/Dodge/Data/Item/Combine.hs 82;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C HOSE src/Dodge/Data/Item/Combine.hs 54;" C -HP src/Dodge/Data/Creature.hs 64;" C +HP src/Dodge/Data/Creature.hs 65;" C HUD src/Dodge/Data/HUD.hs 29;" t HalfRes src/Dodge/Data/Config.hs 113;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C @@ -548,9 +548,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 55;" C +HoverCrit src/Dodge/Data/Creature/Misc.hs 61;" C Huge src/Shape/Data.hs 23;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 64;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 70;" C 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 @@ -584,7 +584,7 @@ Inspect_wall src/Dodge/Data/Config.hs 106;" C Institution src/Dodge/Data/Scenario.hs 42;" t Int2 src/Geometry/Data.hs 21;" t IntID src/Dodge/Data/Universe.hs 120;" t -Intention src/Dodge/Data/Creature.hs 71;" t +Intention src/Dodge/Data/Creature.hs 72;" t IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t @@ -638,7 +638,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 59;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 65;" C Large src/Shape/Data.hs 24;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -744,7 +744,7 @@ MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 25;" C Melee src/Dodge/Data/ActionPlan.hs 40;" C MeleeStrike src/Dodge/Data/ActionPlan.hs 144;" C -Memory src/Dodge/Data/Creature.hs 78;" t +Memory src/Dodge/Data/Creature.hs 79;" t MenuOption src/Dodge/Data/Universe.hs 109;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t MetaBranch src/Dodge/Data/MetaTree.hs 19;" t @@ -795,7 +795,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 25;" C +MvWalking src/Dodge/Data/Creature/Misc.hs 26;" C NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C NInt src/NewInt.hs 16;" C NIntMap src/NewInt.hs 22;" C @@ -830,7 +830,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 24;" C +NoMvType src/Dodge/Data/Creature/Misc.hs 25;" 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 @@ -846,7 +846,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 70;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 76;" 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 @@ -988,8 +988,8 @@ Piercing src/Dodge/Data/Damage.hs 16;" C Piezoelectric src/Dodge/Data/Material.hs 23;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 74;" C -PlainDeath src/Dodge/Data/Creature.hs 69;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 80;" 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 PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t @@ -1005,7 +1005,7 @@ Point3Q src/Geometry/Data.hs 52;" t Point4 src/Geometry/Data.hs 41;" t Poison src/Dodge/Data/Damage.hs 26;" C PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C -PoisonDeath src/Dodge/Data/Creature.hs 69;" C +PoisonDeath src/Dodge/Data/Creature.hs 70;" C PoisonGas src/Dodge/Data/Cloud.hs 42;" C PolyEdge src/Dodge/Data/Room.hs 51;" C PolyShad src/Picture/Data.hs 31;" C @@ -1026,12 +1026,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 38;" t +Pulse src/Dodge/Data/Creature/Misc.hs 39;" 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 38;" C +PulseStatus src/Dodge/Data/Creature/Misc.hs 39;" 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 @@ -1272,7 +1272,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 56;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 62;" 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 @@ -1439,9 +1439,9 @@ Vigilance src/Dodge/Data/Creature/Perception.hs 50;" t Vigilant src/Dodge/Data/Creature/Perception.hs 54;" C Virus src/Dodge/Data/Scenario.hs 25;" C Vision src/Dodge/Data/Creature/Perception.hs 39;" t -VocReady src/Dodge/Data/Creature/Misc.hs 20;" C -VocTimer src/Dodge/Data/Creature/Misc.hs 19;" C -Vocalization src/Dodge/Data/Creature/Misc.hs 18;" t +VocReady src/Dodge/Data/Creature/Misc.hs 21;" C +VocTimer src/Dodge/Data/Creature/Misc.hs 20;" C +Vocalization src/Dodge/Data/Creature/Misc.hs 19;" t VolleyGunTrigger src/Dodge/Data/TriggerType.hs 13;" C VolleyUnfiredBarrels src/Dodge/Data/Item/Params.hs 17;" C WALLDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C @@ -1538,15 +1538,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 49;" f -_avIntelligence src/Dodge/Data/Creature/Misc.hs 50;" f -_avMoveSpeed src/Dodge/Data/Creature/Misc.hs 51;" f -_avPosture src/Dodge/Data/Creature/Misc.hs 52;" f -_avStrength src/Dodge/Data/Creature/Misc.hs 48;" f -_avatarMaterial src/Dodge/Data/Creature/Misc.hs 47;" f -_avatarPulse src/Dodge/Data/Creature/Misc.hs 46;" f +_avDexterity src/Dodge/Data/Creature/Misc.hs 50;" f +_avIntelligence src/Dodge/Data/Creature/Misc.hs 51;" f +_avMoveSpeed src/Dodge/Data/Creature/Misc.hs 52;" f +_avPosture src/Dodge/Data/Creature/Misc.hs 53;" f +_avStrength src/Dodge/Data/Creature/Misc.hs 49;" f +_avatarMaterial src/Dodge/Data/Creature/Misc.hs 48;" f +_avatarPulse src/Dodge/Data/Creature/Misc.hs 47;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 58;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 64;" 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 @@ -1664,36 +1664,37 @@ _cpPoints src/Geometry/ConvexPoly.hs 26;" f _cpRad src/Geometry/ConvexPoly.hs 28;" f _cpVigilance src/Dodge/Data/Creature/Perception.hs 31;" f _cpVision src/Dodge/Data/Creature/Perception.hs 34;" f -_crActionPlan src/Dodge/Data/Creature.hs 51;" f -_crDamage src/Dodge/Data/Creature.hs 48;" f -_crDeathTimer src/Dodge/Data/Creature.hs 59;" f -_crDir src/Dodge/Data/Creature.hs 39;" f -_crEquipment src/Dodge/Data/Creature.hs 47;" f -_crFaction src/Dodge/Data/Creature.hs 55;" f -_crGroup src/Dodge/Data/Creature.hs 56;" f +_crActionPlan src/Dodge/Data/Creature.hs 52;" f +_crDamage src/Dodge/Data/Creature.hs 49;" f +_crDeathTimer src/Dodge/Data/Creature.hs 60;" f +_crDir src/Dodge/Data/Creature.hs 40;" f +_crEquipment src/Dodge/Data/Creature.hs 48;" f +_crFaction src/Dodge/Data/Creature.hs 56;" f +_crGroup src/Dodge/Data/Creature.hs 57;" f _crGroupCenter src/Dodge/Data/CrGroupParams.hs 15;" f _crGroupID src/Dodge/Data/Creature/State.hs 27;" f _crGroupIDs src/Dodge/Data/CrGroupParams.hs 14;" f _crGroupParamID src/Dodge/Data/CrGroupParams.hs 13;" f _crGroupUpdate src/Dodge/Data/CrGroupParams.hs 16;" f -_crHP src/Dodge/Data/Creature.hs 44;" f -_crID src/Dodge/Data/Creature.hs 43;" f -_crIntention src/Dodge/Data/Creature.hs 57;" f -_crInv src/Dodge/Data/Creature.hs 45;" f -_crManipulation src/Dodge/Data/Creature.hs 46;" f -_crMemory src/Dodge/Data/Creature.hs 53;" f -_crMvAim src/Dodge/Data/Creature.hs 41;" f -_crMvDir src/Dodge/Data/Creature.hs 40;" f -_crName src/Dodge/Data/Creature.hs 58;" f +_crHP src/Dodge/Data/Creature.hs 45;" f +_crID src/Dodge/Data/Creature.hs 44;" f +_crIntention src/Dodge/Data/Creature.hs 58;" f +_crInv src/Dodge/Data/Creature.hs 46;" f +_crManipulation src/Dodge/Data/Creature.hs 47;" f +_crMemory src/Dodge/Data/Creature.hs 54;" f +_crMvAim src/Dodge/Data/Creature.hs 42;" f +_crMvDir src/Dodge/Data/Creature.hs 41;" f +_crName src/Dodge/Data/Creature.hs 59;" f +_crOldOldPos src/Dodge/Data/Creature.hs 38;" f _crOldPos src/Dodge/Data/Creature.hs 37;" f -_crPain src/Dodge/Data/Creature.hs 49;" f -_crPerception src/Dodge/Data/Creature.hs 52;" f +_crPain src/Dodge/Data/Creature.hs 50;" f +_crPerception src/Dodge/Data/Creature.hs 53;" f _crPos src/Dodge/Data/Creature.hs 36;" f -_crStance src/Dodge/Data/Creature.hs 50;" f -_crType src/Dodge/Data/Creature.hs 42;" f -_crVocalization src/Dodge/Data/Creature.hs 54;" f -_crWallTouch src/Dodge/Data/Creature.hs 60;" f -_crZVel src/Dodge/Data/Creature.hs 38;" f +_crStance src/Dodge/Data/Creature.hs 51;" f +_crType src/Dodge/Data/Creature.hs 43;" f +_crVocalization src/Dodge/Data/Creature.hs 55;" f +_crWallTouch src/Dodge/Data/Creature.hs 61;" f +_crZVel src/Dodge/Data/Creature.hs 39;" f _crZoning src/Dodge/Data/World.hs 48;" f _creatureGroups src/Dodge/Data/LWorld.hs 96;" f _creatures src/Dodge/Data/LWorld.hs 95;" f @@ -1792,8 +1793,6 @@ _ebType src/Dodge/Data/EnergyBall.hs 19;" f _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f _energyBalls src/Dodge/Data/LWorld.hs 108;" f -_fallFlail src/Dodge/Data/Creature/Stance.hs 26;" f -_fallFoot src/Dodge/Data/Creature/Stance.hs 26;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f _fboBloom src/Data/Preload/Render.hs 38;" f @@ -1820,7 +1819,8 @@ _floorItems src/Dodge/Data/LWorld.hs 131;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f _flyInertia src/Dodge/Data/Creature/Stance.hs 24;" f -_footForward src/Dodge/Data/Creature/Stance.hs 22;" f +_footForward src/Dodge/Data/Creature/Misc.hs 54;" f +_footForward src/Dodge/Data/Creature/Misc.hs 58;" 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 @@ -1936,9 +1936,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 59;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 59;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 59;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 65;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 65;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 65;" 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 @@ -2026,7 +2026,8 @@ _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 54;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 57;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 61;" 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 @@ -2047,11 +2048,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 30;" f -_mvSpeed src/Dodge/Data/Creature/Misc.hs 25;" f -_mvToPoint src/Dodge/Data/Creature.hs 73;" f -_mvTurnJit src/Dodge/Data/Creature/Misc.hs 29;" f -_mvTurnRad src/Dodge/Data/Creature/Misc.hs 28;" f +_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 31;" f +_mvSpeed src/Dodge/Data/Creature/Misc.hs 26;" f +_mvToPoint src/Dodge/Data/Creature.hs 74;" f +_mvTurnJit src/Dodge/Data/Creature/Misc.hs 30;" f +_mvTurnRad src/Dodge/Data/Creature/Misc.hs 29;" 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 @@ -2061,7 +2062,7 @@ _mzRandomOffset src/Dodge/Data/Muzzle.hs 17;" f _mzRot src/Dodge/Data/Muzzle.hs 11;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 17;" f _nodeTree src/Dodge/Data/MetaTree.hs 16;" f -_nodesSearched src/Dodge/Data/Creature.hs 80;" f +_nodesSearched src/Dodge/Data/Creature.hs 81;" f _nonInf src/Dodge/Data/CardinalPoint.hs 44;" f _numLinkEW src/Dodge/Data/Room.hs 34;" f _numLinkNS src/Dodge/Data/Room.hs 35;" f @@ -2073,7 +2074,6 @@ _nzPressure src/Dodge/Data/Muzzle.hs 49;" f _nzWalkSpeed src/Dodge/Data/Muzzle.hs 51;" f _offGridFromEdges src/Dodge/Data/Room.hs 86;" f _oldMagnets src/Dodge/Data/LWorld.hs 127;" f -_oldOldPos src/Dodge/Data/Creature/Stance.hs 24;" f _onGridFromEdges src/Dodge/Data/Room.hs 85;" f _opDraw src/Dodge/Data/Wall.hs 33;" f _opSel src/Dodge/Data/RightButtonOptions.hs 15;" f @@ -2094,7 +2094,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 75;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 81;" 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 @@ -2140,8 +2140,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 40;" f -_pulseRate src/Dodge/Data/Creature/Misc.hs 39;" f +_pulseProgress src/Dodge/Data/Creature/Misc.hs 41;" f +_pulseRate src/Dodge/Data/Creature/Misc.hs 40;" 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 @@ -2304,9 +2304,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 65;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 67;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 66;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 71;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 73;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 72;" 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 @@ -2321,7 +2321,7 @@ _soundStatus src/Sound/Data.hs 45;" f _soundTime src/Sound/Data.hs 44;" f _soundVolume src/Sound/Data.hs 49;" f _soundVolumeFraction src/Sound/Data.hs 50;" f -_soundsToInvestigate src/Dodge/Data/Creature.hs 79;" f +_soundsToInvestigate src/Dodge/Data/Creature.hs 80;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f _sparks src/Dodge/Data/LWorld.hs 110;" f @@ -2333,7 +2333,8 @@ _ssShownItems src/Dodge/Data/SelectionList.hs 33;" f _ssShownLength src/Dodge/Data/SelectionList.hs 34;" f _ssboName src/Shader/Data.hs 97;" f _ssboPtr src/Shader/Data.hs 98;" f -_strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f +_strideAmount src/Dodge/Data/Creature/Misc.hs 55;" f +_strideAmount src/Dodge/Data/Creature/Misc.hs 59;" 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 @@ -2352,7 +2353,7 @@ _swarm src/Dodge/Data/Creature/State.hs 26;" f _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 72;" f +_targetCr src/Dodge/Data/Creature.hs 73;" f _targetID src/Dodge/Data/ActionPlan.hs 67;" f _targetSeenAt src/Dodge/Data/ActionPlan.hs 68;" f _tbPos src/Dodge/Data/TractorBeam.hs 12;" f @@ -2464,12 +2465,12 @@ _vboName src/Shader/Data.hs 80;" f _vboPtr src/Shader/Data.hs 81;" f _vboShapes src/Data/Preload/Render.hs 44;" f _vboVertexBytes src/Shader/Data.hs 82;" f -_vcMaxTime src/Dodge/Data/Creature/Misc.hs 19;" f -_vcTime src/Dodge/Data/Creature/Misc.hs 19;" f +_vcMaxTime src/Dodge/Data/Creature/Misc.hs 20;" f +_vcTime src/Dodge/Data/Creature/Misc.hs 20;" 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 -_viewPoint src/Dodge/Data/Creature.hs 74;" f +_viewPoint src/Dodge/Data/Creature.hs 75;" f _volleyNumBarrels src/Dodge/Data/TriggerType.hs 13;" f _volleyRate src/Dodge/Data/TriggerType.hs 13;" f _volume_master src/Dodge/Data/Config.hs 49;" f @@ -2668,7 +2669,7 @@ axisInt src/Geometry/Intersect.hs 246;" f azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f -backPQ src/Dodge/Creature/HandPos.hs 200;" f +backPQ src/Dodge/Creature/HandPos.hs 183;" f backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 734;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f @@ -2760,7 +2761,7 @@ boxXYZ src/Polyhedra.hs 91;" f boxXYZnobase src/Polyhedra.hs 77;" f brainHat src/Dodge/Item/Equipment.hs 62;" f branchRectWith src/Dodge/Room/Branch.hs 16;" f -branchWith src/Dodge/Room/Room.hs 82;" f +branchWith src/Dodge/Room/Room.hs 83;" f bright src/Color.hs 147;" f brightX src/Color.hs 143;" f btSPic src/Dodge/Render/ShapePicture.hs 173;" f @@ -2817,16 +2818,16 @@ chaseCritInternal src/Dodge/Humanoid.hs 11;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 123;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseUpperBody src/Dodge/Creature/Picture.hs 73;" f -chasmRotate src/Dodge/Creature/Update.hs 198;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 373;" f +chasmRotate src/Dodge/Creature/Update.hs 203;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 375;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 307;" f -chasmTestCorpse src/Dodge/Creature/Update.hs 166;" f -chasmTestLiving src/Dodge/Creature/Update.hs 140;" f +chasmTestCorpse src/Dodge/Creature/Update.hs 171;" f +chasmTestLiving src/Dodge/Creature/Update.hs 147;" f chasmWallToSurface src/Dodge/Base/Collide.hs 120;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f -checkDeath src/Dodge/Creature/Update.hs 81;" f -checkDeath' src/Dodge/Creature/Update.hs 84;" f +checkDeath src/Dodge/Creature/Update.hs 82;" f +checkDeath' src/Dodge/Creature/Update.hs 85;" f checkEndGame src/Dodge/Update.hs 857;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2838,10 +2839,10 @@ 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 chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f -chestPQ src/Dodge/Creature/HandPos.hs 197;" 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 77;" f +chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 61;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f circHitWall src/Dodge/Base/Collide.hs 240;" f @@ -2944,9 +2945,9 @@ coolMinigun src/Dodge/Creature/State.hs 100;" f copier src/Dodge/Item/Scope.hs 94;" f copierItemUpdate src/Dodge/Creature/State.hs 136;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f -corDoor src/Dodge/Room/Room.hs 410;" f +corDoor src/Dodge/Room/Room.hs 411;" f cornerList src/Preload/Render.hs 236;" f -corpseOrGib src/Dodge/Creature/Update.hs 101;" f +corpseOrGib src/Dodge/Creature/Update.hs 108;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -2972,7 +2973,7 @@ crInAimStance src/Dodge/Creature/Test.hs 91;" f crIntelligence src/Dodge/Creature/Statistics.hs 39;" f crIsAiming src/Dodge/Creature/Test.hs 58;" f crIsArmouredFrom src/Dodge/Creature/Test.hs 107;" f -crLeftHandWall src/Dodge/Creature/HandPos.hs 103;" f +crLeftHandWall src/Dodge/Creature/HandPos.hs 94;" f crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f @@ -2986,14 +2987,14 @@ crNearPoint src/Dodge/Creature/Test.hs 129;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crPathing src/Dodge/Creature/Action.hs 117;" f crRad src/Dodge/Creature/Radius.hs 7;" f -crRightHandWall src/Dodge/Creature/HandPos.hs 85;" f +crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f crSetRoots src/Dodge/Inventory/Location.hs 56;" f crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 966;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f -crUpdate src/Dodge/Creature/Update.hs 74;" f +crUpdate src/Dodge/Creature/Update.hs 75;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 62;" f @@ -3022,10 +3023,10 @@ creatureShootPulseLaser src/Dodge/HeldUse.hs 887;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 60;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 81;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 70;" f -critDeadEnd src/Dodge/Room/Room.hs 260;" f -critInDeadEnd src/Dodge/Room/Room.hs 256;" f -critsPillarRoom src/Dodge/Room/Room.hs 416;" f -critsRoom src/Dodge/Room/Room.hs 424;" 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 +critsRoom src/Dodge/Room/Room.hs 425;" f crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f crossPic src/Dodge/Render/Label.hs 28;" f crossProd src/Geometry/Vector3D.hs 41;" f @@ -3096,8 +3097,8 @@ dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 349;" f deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f -deadEndPSType src/Dodge/Room/Room.hs 263;" f -deadEndRoom src/Dodge/Room/Room.hs 266;" f +deadEndPSType src/Dodge/Room/Room.hs 264;" f +deadEndRoom src/Dodge/Room/Room.hs 267;" f deadFeet src/Dodge/Creature/Picture.hs 119;" f deadRot src/Dodge/Creature/Picture.hs 137;" f deadScalp src/Dodge/Creature/Picture.hs 132;" f @@ -3138,8 +3139,8 @@ defHeldItem src/Dodge/Default/Item.hs 9;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 310;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 17;" f -defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f -defaultAudition src/Dodge/Default/Creature.hs 93;" f +defaultAimingCrit src/Dodge/Default/Creature.hs 109;" f +defaultAudition src/Dodge/Default/Creature.hs 94;" f defaultAutoWall src/Dodge/Default/Wall.hs 32;" f defaultBlock src/Dodge/Default/Block.hs 5;" f defaultBounds src/Dodge/Data/Bounds.hs 18;" f @@ -3152,7 +3153,7 @@ defaultChaseMvType src/Dodge/Creature/MoveType.hs 26;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 152;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f -defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" f +defaultCreatureMemory src/Dodge/Default/Creature.hs 67;" f defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f defaultDeathSounds src/Dodge/Creature/Vocalization.hs 55;" f defaultDirtBlock src/Dodge/Default/Block.hs 17;" f @@ -3163,19 +3164,19 @@ defaultDrawButton src/Dodge/Button/Draw.hs 44;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultHUD src/Dodge/Default/World.hs 172;" f -defaultInanimate src/Dodge/Default/Creature.hs 63;" f +defaultInanimate src/Dodge/Default/Creature.hs 64;" f defaultInput src/Dodge/Default/World.hs 12;" f -defaultIntention src/Dodge/Default/Creature.hs 99;" f -defaultInvSize src/Dodge/Default/Creature.hs 73;" f +defaultIntention src/Dodge/Default/Creature.hs 100;" f +defaultInvSize src/Dodge/Default/Creature.hs 74;" f defaultLDP src/Dodge/ListDisplayParams.hs 19;" f defaultLWorld src/Dodge/Default/World.hs 106;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f -defaultPerceptionState src/Dodge/Default/Creature.hs 76;" f +defaultPerceptionState src/Dodge/Default/Creature.hs 77;" f defaultProximitySensor src/Dodge/Default.hs 53;" f defaultRoom src/Dodge/Default/Room.hs 9;" f defaultTerminal src/Dodge/Default/Terminal.hs 8;" f -defaultVision src/Dodge/Default/Creature.hs 86;" f +defaultVision src/Dodge/Default/Creature.hs 87;" f defaultWall src/Dodge/Default/Wall.hs 15;" f defaultWindow src/Dodge/Default/Wall.hs 54;" f defaultWorld src/Dodge/Default/World.hs 33;" f @@ -3223,7 +3224,7 @@ dist src/Geometry/Vector.hs 187;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 150;" f distributeAmmoToYou src/Dodge/WorldEffect.hs 138;" f -distributerRoom src/Dodge/Room/Room.hs 433;" f +distributerRoom src/Dodge/Room/Room.hs 434;" f divTo src/Geometry/Zone.hs 8;" f divideCircle src/Geometry.hs 321;" f divideDoorPane src/Dodge/Placement/Instance/Door.hs 47;" f @@ -3302,12 +3303,12 @@ doWorldEvents src/Dodge/Update.hs 488;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 14;" f doorBetween src/Dodge/Placement/Instance/Door.hs 34;" f -doorCor src/Dodge/Room/Room.hs 405;" f +doorCor src/Dodge/Room/Room.hs 406;" f doorLerp src/Dodge/Door.hs 43;" f doorLerpWithTimer src/Dodge/Door.hs 76;" f dotV src/Geometry/Vector.hs 78;" f dotV3 src/Geometry/Vector3D.hs 119;" f -doubleCorridorBarrels src/Dodge/Room/Room.hs 296;" f +doubleCorridorBarrels src/Dodge/Room/Room.hs 297;" f doublePair src/Geometry.hs 162;" f doublePairSet src/Geometry.hs 166;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 28;" f @@ -3443,7 +3444,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f -dropAll src/Dodge/Creature/Update.hs 137;" f +dropAll src/Dodge/Creature/Update.hs 144;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 161;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3643,8 +3644,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 509;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 578;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 565;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 580;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 567;" f getDebugMouseOver src/Dodge/Update.hs 449;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3661,7 +3662,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 561;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 563;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3685,8 +3686,8 @@ glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 712;" f glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 692;" f -glassSwitchBack src/Dodge/Room/Room.hs 85;" f -glassSwitchBackCrits src/Dodge/Room/Room.hs 119;" f +glassSwitchBack src/Dodge/Room/Room.hs 86;" f +glassSwitchBackCrits src/Dodge/Room/Room.hs 120;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 404;" f gluintSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f @@ -3746,7 +3747,7 @@ head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 68;" f headLampShape src/Dodge/Item/Draw/SPic.hs 425;" f headMap src/Dodge/DoubleTree.hs 118;" f -headPQ src/Dodge/Creature/HandPos.hs 191;" f +headPQ src/Dodge/Creature/HandPos.hs 174;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 109;" f healthTest src/Dodge/Room/LasTurret.hs 129;" f @@ -4012,13 +4013,13 @@ leaveResetQuitTerminal src/Dodge/WorldEffect.hs 164;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f leftChildList src/Dodge/Item/Grammar.hs 193;" f -leftHandPQ src/Dodge/Creature/HandPos.hs 127;" f +leftHandPQ src/Dodge/Creature/HandPos.hs 118;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f leftPad src/Padding.hs 15;" f leftRightCombine src/Dodge/Item/Grammar.hs 205;" f -leftWristPQ src/Dodge/Creature/HandPos.hs 161;" f -legPQ src/Dodge/Creature/HandPos.hs 167;" f -legPQ' src/Dodge/Creature/HandPos.hs 172;" f +leftWristPQ src/Dodge/Creature/HandPos.hs 146;" f +legPQ src/Dodge/Creature/HandPos.hs 152;" f +legPQ' src/Dodge/Creature/HandPos.hs 157;" f legsSPic src/Dodge/Item/Draw/SPic.hs 450;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 86;" f @@ -4047,7 +4048,7 @@ listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 410;" f -loadAmmoTut src/Dodge/Room/Tutorial.hs 427;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 429;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4240,7 +4241,7 @@ miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 375;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 367;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f -miniTree2 src/Dodge/Room/Room.hs 126;" f +miniTree2 src/Dodge/Room/Room.hs 127;" f minimumOn src/FoldlHelp.hs 14;" f mirrorXAxis src/Geometry/Polygon.hs 76;" f mirrorxz src/Picture/Base.hs 330;" f @@ -4331,7 +4332,7 @@ nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 265;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f -normalGait src/Dodge/Creature/State/WalkCycle.hs 72;" f +normalGait src/Dodge/Creature/State/WalkCycle.hs 56;" f normalTo8 src/Shader/Poke.hs 466;" f normalizeAngle src/Geometry/Vector.hs 130;" f normalizeAnglePi src/Dodge/Base.hs 154;" f @@ -4405,7 +4406,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 643;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 645;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4436,7 +4437,7 @@ pincerP'' src/Dodge/Creature/Boid.hs 106;" f pincerP''' src/Dodge/Creature/Boid.hs 77;" f pipe src/Dodge/Item/Craftable.hs 29;" f pistol src/Dodge/Item/Held/Stick.hs 18;" f -pistolerRoom src/Dodge/Room/Room.hs 350;" f +pistolerRoom src/Dodge/Room/Room.hs 351;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 196;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 24;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f @@ -4476,7 +4477,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f -poisonSPic src/Dodge/Creature/Update.hs 133;" f +poisonSPic src/Dodge/Creature/Update.hs 140;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 509;" f pokeArrayOff src/Shader/Poke.hs 521;" f @@ -4510,8 +4511,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 351;" f -polyChasmC src/Dodge/Room/Tutorial.hs 363;" f +polyChasm src/Dodge/Room/Tutorial.hs 353;" f +polyChasmC src/Dodge/Room/Tutorial.hs 365;" f polyCirc src/Shape.hs 47;" f polyCircx src/Shape.hs 52;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4602,7 +4603,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 100;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f putShape src/Dodge/Room/Foreground.hs 134;" f -putSingleLight src/Dodge/Room/Tutorial.hs 461;" f +putSingleLight src/Dodge/Room/Tutorial.hs 463;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 84;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f @@ -4718,7 +4719,7 @@ replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 184;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 66;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f -resetStride src/Dodge/Creature/State/WalkCycle.hs 67;" f +resetStride src/Dodge/Creature/State/WalkCycle.hs 51;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f @@ -4750,26 +4751,26 @@ rhombus src/Polyhedra.hs 69;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f right src/DoubleStack.hs 16;" f rightChildList src/Dodge/Item/Grammar.hs 199;" f -rightHandPQ src/Dodge/Creature/HandPos.hs 73;" f +rightHandPQ src/Dodge/Creature/HandPos.hs 64;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f -rightWristPQ src/Dodge/Creature/HandPos.hs 124;" f +rightWristPQ src/Dodge/Creature/HandPos.hs 115;" f rlPosDir src/Dodge/RoomLink.hs 112;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 401;" f rmInLinks src/Dodge/RoomLink.hs 153;" f rmInvItem src/Dodge/Inventory.hs 84;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f rmOutLinks src/Dodge/RoomLink.hs 153;" f -roomC src/Dodge/Room/Room.hs 53;" f -roomCCrits src/Dodge/Room/Room.hs 291;" f -roomCenterPillar src/Dodge/Room/Room.hs 139;" f +roomC src/Dodge/Room/Room.hs 54;" f +roomCCrits src/Dodge/Room/Room.hs 292;" f +roomCenterPillar src/Dodge/Room/Room.hs 140;" f roomCritLS src/Dodge/Room/RunPast.hs 24;" f roomCross src/Dodge/Room/Boss.hs 79;" f roomGlassOctogon src/Dodge/Room/Boss.hs 22;" f -roomMiniIntro src/Dodge/Room/Room.hs 134;" f +roomMiniIntro src/Dodge/Room/Room.hs 135;" f roomNgon src/Dodge/Room/Ngon.hs 16;" f -roomPadCut src/Dodge/Room/Room.hs 74;" f +roomPadCut src/Dodge/Room/Room.hs 75;" f roomPillars src/Dodge/Room/Pillar.hs 107;" f roomPillarsContaining src/Dodge/Room/Containing.hs 39;" f roomPillarsPassage src/Dodge/Room/Pillar.hs 94;" f @@ -4844,7 +4845,7 @@ scaleSH src/Shape.hs 266;" f scalp src/Dodge/Creature/Picture.hs 146;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 130;" f +scorchSPic src/Dodge/Creature/Update.hs 137;" f screenBox src/Dodge/Base/Window.hs 54;" f screenPolygon src/Dodge/Base/Window.hs 18;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f @@ -4888,7 +4889,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f sensorSPic src/Dodge/Machine/Draw.hs 97;" f -sensorTut src/Dodge/Room/Tutorial.hs 587;" f +sensorTut src/Dodge/Room/Tutorial.hs 589;" f sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4988,10 +4989,10 @@ shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f shootTeslaArc src/Dodge/HeldUse.hs 1206;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f shootTractorBeam src/Dodge/HeldUse.hs 838;" f -shootersRoom src/Dodge/Room/Room.hs 344;" f -shootersRoom' src/Dodge/Room/Room.hs 311;" f -shootersRoom1 src/Dodge/Room/Room.hs 334;" f -shootingRange src/Dodge/Room/Room.hs 361;" f +shootersRoom src/Dodge/Room/Room.hs 345;" f +shootersRoom' src/Dodge/Room/Room.hs 312;" f +shootersRoom1 src/Dodge/Room/Room.hs 335;" f +shootingRange src/Dodge/Room/Room.hs 362;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f @@ -5001,10 +5002,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 85;" f +showManObj src/Dodge/TestString.hs 90;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 95;" f +showTimeFlow src/Dodge/TestString.hs 100;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5092,7 +5093,7 @@ sparkRandDir src/Dodge/Spark.hs 117;" f sparkToDamage src/Dodge/Spark.hs 40;" f spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 54;" f -spawnerRoom src/Dodge/Room/Room.hs 389;" f +spawnerRoom src/Dodge/Room/Room.hs 390;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f splashMenu src/Dodge/Menu.hs 31;" f splashMenuOptions src/Dodge/Menu.hs 36;" f @@ -5138,7 +5139,7 @@ stackedInventory src/Dodge/Creature.hs 326;" f startCr src/Dodge/Creature.hs 90;" f startCrafts src/Dodge/Room/Start.hs 94;" f startDrag src/Dodge/Update/Input/InGame.hs 286;" f -startFalling src/Dodge/Creature/Update.hs 159;" f +startFalling src/Dodge/Creature/Update.hs 166;" f startInvList src/Dodge/Creature.hs 105;" f startInventory src/Dodge/Creature.hs 108;" f startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f @@ -5281,12 +5282,13 @@ titleOptionsNoWrite src/Dodge/Menu.hs 107;" f tlDoEffect src/Dodge/Terminal.hs 115;" f tlSetStatus src/Dodge/Terminal.hs 112;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 118;" f -tmDistributeLines src/Dodge/Room/Room.hs 473;" f +tmDistributeLines src/Dodge/Room/Room.hs 474;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f +toDeathCarriage src/Dodge/Creature/Update.hs 102;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5309,7 +5311,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" 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 81;" f +topTestPart src/Dodge/TestString.hs 86;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f @@ -5329,7 +5331,7 @@ translate3 src/Picture/Base.hs 112;" f translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f translateH src/Picture/Base.hs 104;" f -translatePointToLeftHand src/Dodge/Creature/HandPos.hs 155;" f +translatePointToLeftHand src/Dodge/Creature/HandPos.hs 140;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 43;" f translateSH src/Shape.hs 242;" f translateSHxy src/Shape.hs 246;" f @@ -5339,10 +5341,10 @@ translateSPxy src/ShapePicture.hs 45;" f translateSPz src/ShapePicture.hs 49;" f translateScreenPos src/Dodge/ScreenPos.hs 12;" f translateToES src/Dodge/Creature/HandPos.hs 30;" f -translateToLeftHand src/Dodge/Creature/HandPos.hs 158;" f -translateToLeftLeg src/Dodge/Creature/HandPos.hs 164;" f -translateToRightHand src/Dodge/Creature/HandPos.hs 121;" f -translateToRightLeg src/Dodge/Creature/HandPos.hs 188;" f +translateToLeftHand src/Dodge/Creature/HandPos.hs 143;" f +translateToLeftLeg src/Dodge/Creature/HandPos.hs 149;" f +translateToRightHand src/Dodge/Creature/HandPos.hs 112;" f +translateToRightLeg src/Dodge/Creature/HandPos.hs 171;" f translateXY src/Polyhedra.hs 23;" f trapTBH src/Geometry/Polygon.hs 22;" f trapezionBWHW src/Geometry/Polygon.hs 34;" f @@ -5382,18 +5384,18 @@ turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 54;" f tutDrop src/Dodge/Room/Tutorial.hs 103;" f -tutHub src/Dodge/Room/Tutorial.hs 485;" f -tutLight src/Dodge/Room/Tutorial.hs 395;" f -tutRezBox src/Dodge/Room/Tutorial.hs 598;" f +tutHub src/Dodge/Room/Tutorial.hs 487;" f +tutLight src/Dodge/Room/Tutorial.hs 397;" f +tutRezBox src/Dodge/Room/Tutorial.hs 600;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 623;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 625;" f tweenAngles src/Geometry/Vector.hs 192;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f twists src/Dodge/Creature/Test.hs 101;" f twoFlat src/Dodge/Creature/Test.hs 98;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 91;" f -twoHandOffY src/Dodge/Creature/HandPos.hs 139;" f +twoHandOffY src/Dodge/Creature/HandPos.hs 130;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 142;" f twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f @@ -5430,14 +5432,14 @@ updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 644;" f updateCamera src/Dodge/Update/Camera.hs 33;" f -updateCarriage src/Dodge/Creature/State/WalkCycle.hs 13;" f -updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 41;" f +updateCarriage src/Dodge/Creature/State/WalkCycle.hs 14;" f +updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 19;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f updateCloud src/Dodge/Update.hs 886;" f updateClouds src/Dodge/Update.hs 755;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f -updateCreature src/Dodge/Creature/Update.hs 37;" f +updateCreature src/Dodge/Creature/Update.hs 38;" f updateCreatureGroups src/Dodge/Update.hs 616;" f updateCreatureSoundPositions src/Dodge/Update.hs 595;" f updateCreatureStride src/Dodge/Update.hs 374;" f @@ -5486,7 +5488,7 @@ updateLaser src/Dodge/Laser/Update.hs 12;" f updateLasers src/Dodge/Update.hs 495;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLivingCreature src/Dodge/Creature/Update.hs 47;" f +updateLivingCreature src/Dodge/Creature/Update.hs 48;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 417;" f updateMachine src/Dodge/Machine/Update.hs 24;" f updateMagnets src/Dodge/Update.hs 389;" f @@ -5503,7 +5505,7 @@ updatePlasmaBall src/Dodge/Update.hs 509;" f updatePlasmaBalls src/Dodge/Update.hs 651;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f -updatePulse src/Dodge/Creature/Update.hs 205;" f +updatePulse src/Dodge/Creature/Update.hs 210;" f updatePulseBall src/Dodge/Update.hs 529;" f updatePulseLaser src/Dodge/Update.hs 698;" f updatePulseLasers src/Dodge/Update.hs 504;" f @@ -5630,12 +5632,12 @@ wasdMovement src/Dodge/Creature/YourControl.hs 145;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 106;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 201;" f -weaponBehindPillar src/Dodge/Room/Room.hs 199;" f -weaponBetweenPillars src/Dodge/Room/Room.hs 215;" f -weaponEmptyRoom src/Dodge/Room/Room.hs 160;" f -weaponLongCorridor src/Dodge/Room/Room.hs 240;" f -weaponRoom src/Dodge/Room/Room.hs 280;" f -weaponUnderCrits src/Dodge/Room/Room.hs 178;" 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 +weaponLongCorridor src/Dodge/Room/Room.hs 241;" f +weaponRoom src/Dodge/Room/Room.hs 281;" f +weaponUnderCrits src/Dodge/Room/Room.hs 179;" f wedgeGeom src/Dodge/Base.hs 42;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f @@ -5706,7 +5708,7 @@ you src/Dodge/Base/You.hs 17;" f youDropItem src/Dodge/Creature/Action.hs 183;" 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 +yourDefaultStrideLength src/Dodge/Default/Creature.hs 112;" f yourInfo src/Dodge/Creature/Info.hs 10;" f yourInv src/Dodge/Base/You.hs 37;" f yourRootItem src/Dodge/Base/You.hs 26;" f @@ -5717,7 +5719,7 @@ zChasm src/Dodge/Room/Tutorial.hs 162;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f -zeroOneSmooth src/Dodge/Creature/HandPos.hs 70;" f +zeroOneSmooth src/Dodge/Creature/HandPos.hs 61;" f zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 142;" f