diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index e84afb12f..055b449bc 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -31,12 +31,11 @@ chaseCrit = & crName .~ "chaseCrit" & crHP .~ HP 150 & crFaction .~ ColorFaction green - & crStance . strideLength .~ 30 hoverCrit :: Creature hoverCrit = defaultCreature - & crName .~ "chaseCrit" - & crHP .~ HP 150 - & crFaction .~ ColorFaction green - & crStance . strideLength .~ 30 + & crName .~ "hoverCrit" + & crHP .~ HP 100 + & crFaction .~ ColorFaction blue + & crStance . carriage .~ Flying diff --git a/src/Dodge/Creature/HandPos.hs b/src/Dodge/Creature/HandPos.hs index 6b381c079..c2a24f733 100644 --- a/src/Dodge/Creature/HandPos.hs +++ b/src/Dodge/Creature/HandPos.hs @@ -13,6 +13,7 @@ module Dodge.Creature.HandPos ( translateToES, rightHandPQ, leftHandPQ, + strideLength, ) where import Control.Monad @@ -42,16 +43,21 @@ equipSitePQ = \case translatePointToRightHand :: Creature -> Point3 -> Point3 translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p, Q.qid)) +strideLength :: Creature -> Float +strideLength cr = case cr ^. crType of + Avatar{} -> 35 + _ -> 30 + handWalkingPos :: FootForward -> Float -> Creature -> Point3 handWalkingPos b off cr = case cr ^. crStance . carriage of Walking sa ff -> - let slen = cr ^. crStance . strideLength + 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 = cr ^. crStance . strideLength + let slen = strideLength cr f i | ff == b = 8 * zeroOneSmooth ((slen - i) / slen) | otherwise = 8 * zeroOneSmooth (i / slen) @@ -132,13 +138,13 @@ leftHandPQ cr twoHandOffY :: Creature -> Float twoHandOffY cr = zeroOneSmooth $ case cr ^. crStance . carriage of Walking sa ff -> - let slen = cr ^. crStance . strideLength + let slen = strideLength cr f i | ff == RightForward = (slen - i) / slen | otherwise = i / slen in f sa Falling sa ff -> - let slen = cr ^. crStance . strideLength + let slen = strideLength cr f i | ff == RightForward = (slen - i) / slen | otherwise = i / slen @@ -175,7 +181,7 @@ legPQ' g cr = Just (Falling sa RightForward) -> f sa _ -> 0 off = -5 - sLen = _strideLength $ _crStance cr + sLen = strideLength cr f i = g 8 * (sLen - i) / sLen translateToRightLeg :: Creature -> SPic -> SPic diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 24c33293e..ef0be1139 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -78,7 +78,7 @@ chaseUpperBody cr = colorSH (_skinUpper cskin) vocaltilt = case cr ^? crVocalization . vcTime of Just x | x < 20 -> -pi * 0.05 * (10 - abs (fromIntegral x - 10)) _ -> 0 - sLen = _strideLength $ _crStance cr + sLen = strideLength cr tbob = 5 * (1 - oneSmooth (abs llegpos)) llegpos = case cr ^? crStance . carriage of Just (Walking sa LeftForward) -> f sa @@ -101,7 +101,7 @@ feet cr = case cr ^? crStance . carriage of sh x = translateSHxy x off aFoot <> translateSHxy (- x) (- off) aFoot aFoot = upperPrismPolyST 10 $ polyCirc 3 4 off = 5 - sLen = _strideLength $ _crStance cr + sLen = strideLength cr -- f i = 8 * (sLen - 2*i) / sLen f i = 8 * oneSmooth ((sLen - 2*i) / sLen) diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index 947a8a3c7..956f4c794 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -2,6 +2,7 @@ module Dodge.Creature.State.WalkCycle (updateWalkCycle) where +import Dodge.Creature.HandPos import Linear import Control.Lens import Dodge.Data.World @@ -12,7 +13,7 @@ updateWalkCycle :: Int -> World -> World updateWalkCycle cid w | Just cr <- w ^? cWorld . lWorld . creatures . ix cid , Walking x ff <- cr ^. crStance . carriage - , x >= cr ^. crStance . strideLength = + , x >= strideLength cr = w & soundMultiFrom [FootstepSound i | i <- [0 .. 10]] diff --git a/src/Dodge/Data/Creature/Stance.hs b/src/Dodge/Data/Creature/Stance.hs index 52f36be46..1cf03e6b1 100644 --- a/src/Dodge/Data/Creature/Stance.hs +++ b/src/Dodge/Data/Creature/Stance.hs @@ -15,7 +15,6 @@ import Geometry.Data data Stance = Stance { _carriage :: Carriage , _posture :: Posture - , _strideLength :: Float } deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index 7ebd4a894..4a16015ce 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -40,7 +40,6 @@ defaultCreature = Stance { _carriage = Walking 0 LeftForward , _posture = AtEase - , _strideLength = yourDefaultStrideLength } , _crVocalization = VocReady , _crActionPlan = ActionPlan [] (StrategyActions WatchAndWait [StartSentinelPost]) [LiveLongAndProsper] diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index 0e43dbe16..2a999a0db 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -7,8 +7,8 @@ module Dodge.Item.HeldOffset ( handHandleOrient, ) where -import Linear import Dodge.Creature.HandPos +import Linear import Dodge.Data.AimStance import Dodge.Data.ComposedItem import Dodge.Data.Creature @@ -86,7 +86,7 @@ strideRot cr = case cr ^? crStance . carriage of _ -> 0 where f i = 0.1 * (sLen - i) / sLen - sLen = _strideLength $ _crStance cr + sLen = strideLength cr twoFlatHRot :: Creature -> Float twoFlatHRot = (2 *) . strideRot diff --git a/tags b/tags index 6aff265eb..7a176ff37 100644 --- a/tags +++ b/tags @@ -42,7 +42,7 @@ ActionUpdate src/Dodge/Creature/Action.hs 49;" t AddGoal src/Dodge/Data/ActionPlan.hs 44;" C AimAt src/Dodge/Data/ActionPlan.hs 66;" C AimStance src/Dodge/Data/AimStance.hs 10;" t -Aiming src/Dodge/Data/Creature/Stance.hs 33;" C +Aiming src/Dodge/Data/Creature/Stance.hs 32;" 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 @@ -66,7 +66,7 @@ Arcing src/Dodge/Data/Item/Params.hs 15;" C ArmourySS src/Dodge/Data/Scenario.hs 112;" C Asleep src/Dodge/Data/Creature/Perception.hs 52;" C AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C -AtEase src/Dodge/Data/Creature/Stance.hs 33;" C +AtEase src/Dodge/Data/Creature/Stance.hs 32;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AttachParams src/Dodge/Data/Item/Use.hs 43;" t AttachType src/Dodge/Data/Item/Combine.hs 91;" t @@ -136,7 +136,7 @@ BlockStatus src/Dodge/Data/Universe.hs 98;" t BlockedLink src/Dodge/Data/Room.hs 54;" C BloomLayer src/Picture/Data.hs 21;" C Blunt src/Dodge/Data/Damage.hs 17;" C -Boosting src/Dodge/Data/Creature/Stance.hs 26;" C +Boosting src/Dodge/Data/Creature/Stance.hs 25;" C BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 28;" C BoundCurs src/Dodge/Data/SelectionList.hs 21;" C @@ -200,7 +200,7 @@ Cardinal8 src/Dodge/Data/CardinalPoint.hs 27;" t 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 22;" 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 50;" C @@ -416,7 +416,7 @@ FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 12;" t Factory src/Dodge/Data/Scenario.hs 56;" C FailedResource src/Dodge/Data/Scenario.hs 37;" t -Falling src/Dodge/Data/Creature/Stance.hs 27;" C +Falling src/Dodge/Data/Creature/Stance.hs 26;" C FetchItem src/Dodge/Data/Scenario.hs 11;" C FilterBySoundOrigin src/Dodge/Data/WorldEffect.hs 22;" C FireSpark src/Dodge/Data/Spark.hs 19;" C @@ -448,12 +448,12 @@ FloatFOV src/Dodge/Data/FloatFunction.hs 11;" C FloatFloat src/Dodge/Data/FloatFunction.hs 9;" t FloatID src/Dodge/Data/FloatFunction.hs 10;" C FloatLessCheck src/Dodge/Data/FloatFunction.hs 12;" C -Floating src/Dodge/Data/Creature/Stance.hs 24;" C +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 25;" C +Flying src/Dodge/Data/Creature/Stance.hs 24;" C FollowImpulses src/Dodge/Data/ActionPlan.hs 134;" C -FootForward src/Dodge/Data/Creature/Stance.hs 30;" t +FootForward src/Dodge/Data/Creature/Stance.hs 29;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C ForceField src/Dodge/Data/Material.hs 19;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t @@ -654,7 +654,7 @@ 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 115;" C -LeftForward src/Dodge/Data/Creature/Stance.hs 30;" C +LeftForward src/Dodge/Data/Creature/Stance.hs 29;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C LevelStartSlot src/Dodge/Data/SaveSlot.hs 9;" C @@ -1012,7 +1012,7 @@ Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedron src/Polyhedra/Data.hs 13;" C PosInf src/Dodge/Data/CardinalPoint.hs 44;" C PosRooms src/Dodge/Tree/Shift.hs 29;" t -Posture src/Dodge/Data/Creature/Stance.hs 33;" t +Posture src/Dodge/Data/Creature/Stance.hs 32;" t PreloadData src/Data/Preload.hs 10;" t PrintMaterial src/Dodge/Data/AmmoType.hs 15;" C Prison src/Dodge/Data/Scenario.hs 65;" C @@ -1111,7 +1111,7 @@ Revenge src/Dodge/Data/Scenario.hs 6;" C RewindLeftClick src/Dodge/Data/World.hs 78;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C RightButtonState src/Dodge/Data/RightButtonOptions.hs 13;" t -RightForward src/Dodge/Data/Creature/Stance.hs 30;" C +RightForward src/Dodge/Data/Creature/Stance.hs 29;" C RightwardDT src/Dodge/Data/DoubleTree.hs 34;" C Rocket src/Dodge/Data/Projectile.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 39;" t @@ -1449,7 +1449,7 @@ 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 74;" C -Walking src/Dodge/Data/Creature/Stance.hs 23;" C +Walking src/Dodge/Data/Creature/Stance.hs 22;" C Wall src/Dodge/Data/Wall.hs 17;" t WallArcNode src/Dodge/Data/LWorld.hs 160;" C WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 20;" C @@ -1788,8 +1788,8 @@ _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 27;" f -_fallFoot src/Dodge/Data/Creature/Stance.hs 27;" 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 @@ -1815,7 +1815,7 @@ _flboStride src/Shader/Data.hs 88;" f _floorItems src/Dodge/Data/LWorld.hs 131;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f -_footForward src/Dodge/Data/Creature/Stance.hs 23;" f +_footForward src/Dodge/Data/Creature/Stance.hs 22;" 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 @@ -2327,8 +2327,7 @@ _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 23;" f -_strideLength src/Dodge/Data/Creature/Stance.hs 18;" f +_strideAmount src/Dodge/Data/Creature/Stance.hs 22;" 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 @@ -2657,12 +2656,12 @@ autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f autoPistol src/Dodge/Item/Held/Stick.hs 21;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f -awakeLevelPerception src/Dodge/Creature/Perception.hs 162;" f +awakeLevelPerception src/Dodge/Creature/Perception.hs 161;" f 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 193;" f +backPQ src/Dodge/Creature/HandPos.hs 198;" f backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f @@ -2688,8 +2687,8 @@ baseShoulder src/Dodge/Creature/Picture.hs 150;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f -basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f -basicAwarenessUpdate src/Dodge/Creature/Perception.hs 40;" f +basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f +basicAwarenessUpdate src/Dodge/Creature/Perception.hs 39;" f basicCrPict src/Dodge/Creature/Picture.hs 32;" f basicCrShape src/Dodge/Creature/Picture.hs 38;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f @@ -2805,10 +2804,10 @@ charToTuple src/Picture/Base.hs 312;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 51;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 28;" f -chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 66;" f +chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 65;" f chaseCritInternal src/Dodge/Humanoid.hs 8;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 122;" f -chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 33;" f +chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseUpperBody src/Dodge/Creature/Picture.hs 62;" f chasmRotate src/Dodge/Creature/Update.hs 177;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 372;" f @@ -2831,7 +2830,7 @@ 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 190;" f +chestPQ src/Dodge/Creature/HandPos.hs 195;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f @@ -2879,7 +2878,7 @@ clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f -cogRaised src/Dodge/Creature/Perception.hs 102;" f +cogRaised src/Dodge/Creature/Perception.hs 101;" f colCrWall src/Dodge/WallCreatureCollisions.hs 27;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f collectDamageTypes src/Dodge/Damage.hs 53;" f @@ -2901,7 +2900,7 @@ colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorSH src/Shape.hs 234;" f combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 44;" f -combineAwareness src/Dodge/Creature/Perception.hs 110;" f +combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 154;" f combineInventoryExtra src/Dodge/Render/HUD.hs 340;" f combineItemListYouX src/Dodge/Combine.hs 36;" f @@ -2966,7 +2965,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 96;" f +crLeftHandWall src/Dodge/Creature/HandPos.hs 101;" 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 @@ -2979,7 +2978,7 @@ crMvType src/Dodge/Creature/MoveType.hs 6;" f crNearPoint src/Dodge/Creature/Test.hs 129;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crRad src/Dodge/Creature/Radius.hs 7;" f -crRightHandWall src/Dodge/Creature/HandPos.hs 78;" f +crRightHandWall src/Dodge/Creature/HandPos.hs 83;" 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 @@ -2989,7 +2988,7 @@ crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 70;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f -crVocalResetTime src/Dodge/Creature/Vocalization.hs 67;" f +crVocalResetTime src/Dodge/Creature/Vocalization.hs 62;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 16;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 26;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 60;" f @@ -3117,7 +3116,7 @@ decomposeTree src/Dodge/Tree/Compose.hs 59;" f decontamRoom src/Dodge/Room/Airlock.hs 37;" f decoratedBlock src/Dodge/Placement/Instance/Block.hs 14;" f decorationToShape src/Dodge/Placement/TopDecoration.hs 16;" f -decreaseAwareness src/Dodge/Creature/Perception.hs 119;" f +decreaseAwareness src/Dodge/Creature/Perception.hs 118;" f decrementTimer src/Sound.hs 104;" f dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f @@ -3130,8 +3129,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 16;" f -defaultAimingCrit src/Dodge/Default/Creature.hs 109;" f -defaultAudition src/Dodge/Default/Creature.hs 94;" f +defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f +defaultAudition src/Dodge/Default/Creature.hs 93;" 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 @@ -3144,7 +3143,7 @@ defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" 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 67;" f +defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" 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 @@ -3155,19 +3154,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 64;" f +defaultInanimate src/Dodge/Default/Creature.hs 63;" f defaultInput src/Dodge/Default/World.hs 12;" f -defaultIntention src/Dodge/Default/Creature.hs 100;" f -defaultInvSize src/Dodge/Default/Creature.hs 74;" f +defaultIntention src/Dodge/Default/Creature.hs 99;" f +defaultInvSize src/Dodge/Default/Creature.hs 73;" 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 77;" f +defaultPerceptionState src/Dodge/Default/Creature.hs 76;" 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 87;" f +defaultVision src/Dodge/Default/Creature.hs 86;" 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 @@ -3715,7 +3714,7 @@ haltSound src/Dodge/SoundLogic.hs 38;" f hammerCheck src/Dodge/HeldUse.hs 67;" f handHandleOrient src/Dodge/Item/HeldOffset.hs 71;" f handOrient src/Dodge/Item/HeldOffset.hs 52;" f -handWalkingPos src/Dodge/Creature/HandPos.hs 45;" f +handWalkingPos src/Dodge/Creature/HandPos.hs 50;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 37;" f handleKeyboardEvent src/Dodge/Event/Input.hs 23;" f @@ -3738,7 +3737,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 184;" f +headPQ src/Dodge/Creature/HandPos.hs 189;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 109;" f healthTest src/Dodge/Room/LasTurret.hs 129;" f @@ -3775,7 +3774,7 @@ 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 36;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 35;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f @@ -3870,7 +3869,7 @@ invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 22;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f isAmmoIntLink src/Dodge/HeldUse.hs 738;" f isAnimate src/Dodge/Creature/Test.hs 132;" f -isCognizant src/Dodge/Creature/Perception.hs 106;" f +isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f isCornerLink src/Dodge/RoomLink.hs 66;" f isFlyable src/Dodge/WorldEvent/ThingsHit.hs 191;" f @@ -4002,13 +4001,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 120;" f +leftHandPQ src/Dodge/Creature/HandPos.hs 125;" 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 154;" f -legPQ src/Dodge/Creature/HandPos.hs 160;" f -legPQ' src/Dodge/Creature/HandPos.hs 165;" f +leftWristPQ src/Dodge/Creature/HandPos.hs 159;" f +legPQ src/Dodge/Creature/HandPos.hs 165;" f +legPQ' src/Dodge/Creature/HandPos.hs 170;" 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 @@ -4303,9 +4302,9 @@ nearRect src/Dodge/Zoning/Common.hs 16;" f nearSeg src/Dodge/Zoning/Common.hs 12;" f nearZeroAngle src/Geometry/Vector.hs 140;" f nearestAngleRep src/Geometry.hs 148;" f -newExtraAwareness src/Dodge/Creature/Perception.hs 138;" f +newExtraAwareness src/Dodge/Creature/Perception.hs 137;" f newKey src/IntMapHelp.hs 61;" f -newSounds src/Dodge/Creature/Perception.hs 170;" f +newSounds src/Dodge/Creature/Perception.hs 169;" f newSoundsToPlay src/Dodge/SoundSelection.hs 8;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f nextArc src/Dodge/Tesla.hs 60;" f @@ -4406,7 +4405,7 @@ peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 214;" f perMat src/MatrixHelper.hs 60;" f -perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f +perceptionUpdate src/Dodge/Creature/Perception.hs 24;" f performAction src/Dodge/Creature/Action.hs 54;" f performActions src/Dodge/Creature/Action.hs 39;" f performAimAt src/Dodge/Creature/Action.hs 103;" f @@ -4681,7 +4680,7 @@ reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 799;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f -rememberSounds src/Dodge/Creature/Perception.hs 177;" f +rememberSounds src/Dodge/Creature/Perception.hs 176;" f remoteDetonator src/Dodge/Item/Scope.hs 152;" f remoteScreen src/Dodge/Item/Scope.hs 146;" f removeAimPosture src/Dodge/Creature/YourControl.hs 136;" f @@ -4701,7 +4700,7 @@ renderListAt src/Dodge/Render/List.hs 177;" f renderShadows src/Render.hs 116;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 169;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f -resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 71;" f +resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 66;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f @@ -4735,11 +4734,11 @@ 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 66;" f +rightHandPQ src/Dodge/Creature/HandPos.hs 71;" 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 117;" f +rightWristPQ src/Dodge/Creature/HandPos.hs 122;" f rlPosDir src/Dodge/RoomLink.hs 112;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 401;" f rmInLinks src/Dodge/RoomLink.hs 153;" f @@ -5050,7 +5049,7 @@ someCrits src/Dodge/LockAndKey.hs 122;" f soundAngle src/Dodge/SoundLogic.hs 163;" f soundContinue src/Dodge/SoundLogic.hs 131;" f soundContinueVol src/Dodge/SoundLogic.hs 145;" f -soundIsClose src/Dodge/Creature/Perception.hs 183;" f +soundIsClose src/Dodge/Creature/Perception.hs 182;" f soundMenu src/Dodge/Menu.hs 158;" f soundMenuOptions src/Dodge/Menu.hs 161;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f @@ -5149,6 +5148,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 51;" f strictify src/MaybeHelp.hs 35;" f +strideLength src/Dodge/Creature/HandPos.hs 45;" f strideRot src/Dodge/Item/HeldOffset.hs 80;" f stringToList src/Picture/Base.hs 308;" f stringToListGrad src/Picture/Text.hs 12;" f @@ -5313,7 +5313,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 148;" f +translatePointToLeftHand src/Dodge/Creature/HandPos.hs 153;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 42;" f translateSH src/Shape.hs 242;" f translateSHxy src/Shape.hs 246;" f @@ -5323,10 +5323,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 29;" f -translateToLeftHand src/Dodge/Creature/HandPos.hs 151;" f -translateToLeftLeg src/Dodge/Creature/HandPos.hs 157;" f -translateToRightHand src/Dodge/Creature/HandPos.hs 114;" f -translateToRightLeg src/Dodge/Creature/HandPos.hs 181;" f +translateToLeftHand src/Dodge/Creature/HandPos.hs 156;" f +translateToLeftLeg src/Dodge/Creature/HandPos.hs 162;" f +translateToRightHand src/Dodge/Creature/HandPos.hs 119;" f +translateToRightLeg src/Dodge/Creature/HandPos.hs 186;" f translateXY src/Polyhedra.hs 23;" f trapTBH src/Geometry/Polygon.hs 22;" f trapezionBWHW src/Geometry/Polygon.hs 34;" f @@ -5377,7 +5377,7 @@ 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 132;" f +twoHandOffY src/Dodge/Creature/HandPos.hs 137;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 142;" f twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 519;" f @@ -5521,6 +5521,7 @@ updateUniverseLast src/Dodge/Update.hs 143;" f updateUniverseMid src/Dodge/Update.hs 185;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 47;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f +updateVocTimer src/Dodge/Humanoid.hs 25;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f @@ -5590,7 +5591,7 @@ viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 156;" f violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 218;" f -visionCheck src/Dodge/Creature/Perception.hs 153;" f +visionCheck src/Dodge/Creature/Perception.hs 152;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f walkNozzle src/Dodge/HeldUse.hs 826;" f @@ -5688,7 +5689,7 @@ you src/Dodge/Base/You.hs 17;" f youDropItem src/Dodge/Creature/Action.hs 177;" f yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f yourControl src/Dodge/Creature/YourControl.hs 26;" f -yourDefaultStrideLength src/Dodge/Default/Creature.hs 112;" f +yourDefaultStrideLength src/Dodge/Default/Creature.hs 111;" 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 @@ -5699,7 +5700,7 @@ zChasm src/Dodge/Room/Tutorial.hs 161;" 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 63;" f +zeroOneSmooth src/Dodge/Creature/HandPos.hs 68;" f zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 142;" f