diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index e7654b1dc..78e9aaab4 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -106,7 +106,7 @@ tryEvadeSideways :: Creature -> World -> ActionUpdate tryEvadeSideways _ w = jumpleft -- (mv,mempty) where jumpleft = (mv,DoReplicate 5 (DoImpulses mv)) - mv = [Walk (V2 0 d)] + mv = [Walk (V2 0 d),UpdateRandGen] d = evalState (takeOne [3,-3]) (w ^. randGen) performAimAt :: Creature -> World -> Int -> Point2 -> ActionUpdate diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index f66e1c4ca..7259bc293 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -41,8 +41,6 @@ crabCrit = defaultCreature & crType .~ CrabCrit { _meleeCooldownL = 0 , _meleeCooldownR = 0 - , _footForward = LeftForward - , _strideAmount = 0 , _dodgeCooldown = 0 , _lFootPos = 0 , _rFootPos = 0 diff --git a/src/Dodge/Creature/Impulse.hs b/src/Dodge/Creature/Impulse.hs index ccfd0ea08..5e5103f4e 100644 --- a/src/Dodge/Creature/Impulse.hs +++ b/src/Dodge/Creature/Impulse.hs @@ -23,6 +23,7 @@ import System.Random -- note SwitchToItem doesn't necessarily update the root item correctly followImpulse :: Int -> World -> Impulse -> World followImpulse cid w = \case + UpdateRandGen -> w & randGen %~ (snd . (randomR (0::Int,0))) ImpulseNothing -> w RandomImpulse rimp -> let (newimp, newgen) = runState (doRandImpulse rimp) (_randGen w) diff --git a/src/Dodge/Creature/MoveType.hs b/src/Dodge/Creature/MoveType.hs index 09c0098e2..7fc11c587 100644 --- a/src/Dodge/Creature/MoveType.hs +++ b/src/Dodge/Creature/MoveType.hs @@ -9,6 +9,7 @@ crMvType cr = case _crType cr of Avatar {} -> MvWalking 1.5 ChaseCrit {} -> defaultChaseMvType & mvSpeed .~ 1.8 CrabCrit {} -> defaultChaseMvType & mvSpeed .~ 0.5 + & mvTurnJit .~ 0.01 HoverCrit {} -> defaultChaseMvType & mvSpeed .~ 0.16 SwarmCrit -> defaultChaseMvType AutoCrit -> defaultAimMvType diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 47a048cf9..74dddda60 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -85,12 +85,15 @@ drawChaseCrit w cr = mconcat crabUpperBody :: World -> Creature -> Shape crabUpperBody _ cr = colorSH (_skinUpper cskin) - $ - (overPosSH (Q.apply torsoq) (upperPrismPolyHalfMI 5 $ polyCirc 4 12 + ( + overPosSH (Q.apply torsoq) (upperPrismPolyHalfMI 5 $ polyCirc 4 10 & each . _x *~ 0.6) - ) <> overPosSH (Q.apply lclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 20 0 (-2) 2) <> overPosSH (Q.apply rclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 0 (-20) (-2) 2) + ) + <> colorSH (_skinHead cskin) + --(overPosSH (Q.apply headq) (upperPrismPolyHalfMI 2 $ [V2 0 (-4), V2 2 (-2), 2, V2 0 4])) + (overPosSH (Q.apply headq) (upperPrismPolyHalfMI 1 $ square 2)) where -- i = fromIntegral (mod (w ^. cWorld . cClock) 100) / 100 torsoq = (V3 0 0 10,Q.qid) @@ -104,6 +107,14 @@ crabUpperBody _ cr = colorSH (_skinUpper cskin) ratck = Q.axisAngle (V3 0 0 1) (0.5 * pi) rrest = Q.axisAngle (V3 1 0 0) (-1) rcool = 1 - min 10 (fromIntegral . _meleeCooldownR $ _crType cr) / 10 + headq = torsoq `Q.comp` (V3 0 0 5, Q.qid) +-- headq = torsoq `Q.comp` (V3 0 0 5, (Q.qz aimrot )) +-- cxy = cr ^. crPos . _xy +-- aimrot = fromMaybe pi $ do +-- i <- cr ^. crIntention . targetCr +-- tcxy <- w ^? cWorld . lWorld . creatures . ix i . crPos . _xy +-- guard $ hasLOSIndirect cxy tcxy w +-- return $ argV (tcxy - cxy) - cr ^. crDir chaseUpperBody :: World -> Creature -> Shape @@ -178,12 +189,7 @@ crabFeet cr = f p q = q + 2 *^ (p - q) cdir = -cr ^. crDir cxy = cr ^. crPos . _xy --- sh x = translateSHxy x off aFoot <> translateSHxy (- x) (- off) aFoot afoot = upperPrismPolyST 10 $ polyCirc 3 2 - off = 10 - sLen = strideLength cr --- f i = 8 * (sLen - 2*i) / sLen --- f i = 8 * oneSmooth ((sLen - 2*i) / sLen) deadFeet :: Creature -> Shape {-# INLINE deadFeet #-} diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index 2a936fc4e..f62a43ca6 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -121,32 +121,33 @@ flockACC w cr = fromMaybe cr $ do else negate r *.* horDir in cr & crIntention . mvToPoint ?~ tpos +.+ horShift -crabActionUpdate :: World -> Creature -> Creature -crabActionUpdate w cr = case _apStrategy (_crActionPlan cr) of - _ | Just tid <- meleel -> cr & crActionPlan . apAction +crabActionUpdate :: Int -> World -> World +crabActionUpdate cid w = case _apStrategy (_crActionPlan cr) of + _ | Just tid <- meleel -> w & tocr . crActionPlan . apAction .~ DoImpulses [MeleeL tid] `DoActionThen` DoReplicate 10 NoAction --- & crType . meleeCooldownL .~ 20 - _ | Just tid <- meleer -> cr & crActionPlan . apAction + _ | Just tid <- meleer -> w & tocr . crActionPlan . apAction .~ DoImpulses [MeleeR tid] `DoActionThen` DoReplicate 10 NoAction --- & crType . meleeCooldownR .~ 20 - WarningCry -> cr - CloseToMelee tid | aimi tid -> cr & crActionPlan . apAction .~ EvadeAim - & crType . dodgeCooldown .~ dc - CloseToMelee _ | ma <- cr ^? crActionPlan . apAction , notpath ma -> cr + WarningCry -> w + CloseToMelee tid | aimi tid -> w & tocr . crActionPlan . apAction .~ EvadeAim + & tocr . crType . dodgeCooldown .~ dc + & randGen .~ g + CloseToMelee _ | ma <- cr ^? crActionPlan . apAction , notpath ma -> w Wander | Just tid <- cr ^? crIntention . targetCr . _Just - , canSee tid (cr ^. crID) w -> cr & crActionPlan . apStrategy .~ CloseToMelee tid + , canSee tid (cr ^. crID) w -> w & tocr . crActionPlan . apStrategy .~ CloseToMelee tid _ -> case cr ^? crIntention . mvToPoint . _Just of Just p | dist (cr ^. crPos . _xy) p > crRad (cr ^. crType) -> - cr & crActionPlan . apAction .~ PathTo p (DoImpulses [ChangeStrategy Wander]) + w & tocr . crActionPlan . apAction .~ PathTo p (DoImpulses [ChangeStrategy Wander]) | otherwise -> - cr & crActionPlan . apAction .~ bfsThenReturn 500 `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] - & crActionPlan . apStrategy .~ Search - & crIntention . mvToPoint .~ Nothing - _ -> viewTarget w cr + w & tocr . crActionPlan . apAction .~ bfsThenReturn 500 `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] + & tocr . crActionPlan . apStrategy .~ Search + & tocr . crIntention . mvToPoint .~ Nothing + _ -> w & tocr %~ viewTarget w where + cr = w ^?! cWorld . lWorld . creatures . ix cid + tocr = cWorld . lWorld . creatures . ix cid meleel = do tid <- cr ^? crIntention . targetCr . _Just tcr <- w ^? cWorld . lWorld . creatures . ix tid @@ -171,8 +172,7 @@ crabActionUpdate w cr = case _apStrategy (_crActionPlan cr) of && (_crDir cr - argV (tpos -.- cpos)) >= 0 && cr ^?! crType . meleeCooldownL < 15 return tid - --dc = fst $ randomR (15,25) (w ^. randGen) - dc = fst $ randomR (15,50) (w ^. randGen) + (dc,g) = randomR (15,50) (w ^. randGen) notpath = \case Just NoAction -> False Just PathTo {} -> False @@ -180,6 +180,7 @@ crabActionUpdate w cr = case _apStrategy (_crActionPlan cr) of _ -> True aimi tid = fromMaybe False $ do tcr <- w ^? cWorld . lWorld . creatures . ix tid + hp <- cr ^? crHP . _HP Aiming <- tcr ^? crStance . posture let txy = tcr ^. crPos . _xy cxy = cr ^. crPos . _xy @@ -188,6 +189,7 @@ crabActionUpdate w cr = case _apStrategy (_crActionPlan cr) of && abs (nearZeroAngle (tcr^.crDir - argV (cxy - txy))) < 0.3 && isWalkable txy cxy w && diffAngles (cr ^. crDir) (argV (txy - cxy)) < 0.1 + && hp > 0 chaseCritMv :: World -> Creature -> Creature chaseCritMv w cr = case _apStrategy (_crActionPlan cr) of diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index a4e98539a..def120299 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -56,7 +56,7 @@ updateLivingCreature cr = over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w CrabCrit{} -> \w -> crUpdate cid . performActions cid $ - over (cWorld . lWorld . creatures . ix cid) (crabCritInternal w) w + (crabCritInternal cid) w AutoCrit {} -> crUpdate cid SwarmCrit {} -> crUpdate cid HoverCrit {} -> \w -> diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index 6eccda14c..8c502b93a 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -47,6 +47,7 @@ data Impulse | AddGoal Goal | ImpulseUseTarget { _impulseUseTarget :: CrImp } | ImpulseNothing + | UpdateRandGen deriving (Eq, Ord, Show) --Generic, Flat) data RandImpulse diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 9a1173399..31f2092fa 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -61,8 +61,6 @@ data CreatureType | CrabCrit { _meleeCooldownL :: Int , _meleeCooldownR :: Int - , _footForward :: FootForward - , _strideAmount :: Float , _dodgeCooldown :: Int , _lFootPos :: Point2 , _rFootPos :: Point2 diff --git a/src/Dodge/Data/SoundOrigin.hs b/src/Dodge/Data/SoundOrigin.hs index 00c820777..bd882534e 100644 --- a/src/Dodge/Data/SoundOrigin.hs +++ b/src/Dodge/Data/SoundOrigin.hs @@ -13,6 +13,7 @@ data SoundOrigin | BackgroundSound | OnceSound | CrSound Int + | CrFootSound Int Int | CrMouth Int | CrChasm Int | CrWeaponSound Int Int diff --git a/src/Dodge/Humanoid.hs b/src/Dodge/Humanoid.hs index 31487eb95..c59dd6a23 100644 --- a/src/Dodge/Humanoid.hs +++ b/src/Dodge/Humanoid.hs @@ -26,20 +26,22 @@ chaseCritInternal w cr = , const (crVocalization %~ updateVocTimer) ] -crabCritInternal :: World -> Creature -> Creature -crabCritInternal w = - (crVocalization %~ updateVocTimer) - . (crType . meleeCooldownL %~ max 0 . subtract 1) - . (crType . meleeCooldownR %~ max 0 . subtract 1) - . (crType . dodgeCooldown %~ max 0 . subtract 1) - . searchIfDamaged - . targetYouWhenCognizant w - . perceptionUpdate [0] w - . crabActionUpdate w - . setMvPosToTargetCr w - . setViewPos w +crabCritInternal :: Int -> World -> World +crabCritInternal cid w = +-- (crVocalization %~ updateVocTimer) + (tocr %~ ((crType . meleeCooldownL %~ max 0 . subtract 1))) + . (tocr %~ ((crType . meleeCooldownR %~ max 0 . subtract 1))) + . (tocr %~ ((crType . dodgeCooldown %~ max 0 . subtract 1))) + . (tocr %~ (searchIfDamaged)) + . (tocr %~ (targetYouWhenCognizant w)) + . (tocr %~ (perceptionUpdate [0] w)) + . crabActionUpdate cid + . (tocr %~ (setMvPosToTargetCr w)) + . (tocr %~ (setViewPos w)) -- . overrideMeleeCloseTarget w - . doStrategyActions + $ (tocr %~ doStrategyActions) w + where + tocr = cWorld . lWorld . creatures . ix cid hoverCritInternal :: World -> Creature -> Creature hoverCritInternal w cr = diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 60da2bdd0..eecf4410a 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -57,8 +57,8 @@ tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor --- , chasmSpitTerminal --- , corDoor + , chasmSpitTerminal + , corDoor , loadAmmoTut , corDoor , chasmSpitTerminal @@ -343,10 +343,10 @@ chasmSpitTerminal = do tToBTree "chasmTerm" $ Node (addDoorToggleTerminal' i1 (PS 150 0) y') - [ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit chaseCrit)] + [ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit crabCrit)] --[ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit hoverCrit)] --[ treePost [triggerDoorRoom i1, deadEndRoom] - , treePost [triggerDoorRoom i1, deadEndPSType (PutCrit chaseCrit)] + , treePost [triggerDoorRoom i1, deadEndPSType (PutCrit crabCrit)] , return $ cleatOnward $ triggerDoorRoom i1 ] where diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index d3359b6ea..9210dde6c 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -371,20 +371,24 @@ muzzleWallCheck w cr = fromMaybe cr $ do _ -> Nothing updateCreatureStrides :: World -> World -updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride +updateCreatureStrides w = foldl' updateCreatureStride w (w ^. cWorld . lWorld . creatures) -updateCreatureStride :: Creature -> Creature -updateCreatureStride cr +updateCreatureStride :: World -> Creature -> World +updateCreatureStride w cr | Walking <- cr ^. crStance . carriage , CrabCrit {} <- cr ^. crType - = cr & crType . lFootPos %~ f (g 10) - & crType . rFootPos %~ f (g (-10)) + = w & f (g 10) (cr ^?! crType . lFootPos) lFootPos + & f (g (-10)) (cr ^?! crType . rFootPos) rFootPos | Walking <- cr ^. crStance . carriage - , isJust $ cr ^? crType . strideAmount = cr & crType . strideAmount +~ d - | otherwise = cr + , isJust $ cr ^? crType . strideAmount = w & tocr . crType . strideAmount +~ d + | otherwise = w where - f p q | distance p q > 10 = p - 9 *^ signorm (q - p) - | otherwise = q + tocr = cWorld . lWorld . creatures . ix cid + cid = cr ^. crID + f p q fp + | distance p q > 10 = (tocr . crType . fp .~ (p - 9 *^ signorm (q - p))) + . soundStart (CrFootSound cid 0) (p - 9 *^ signorm (q - p)) foot1S Nothing + | otherwise = id g x = cr ^. crPos . _xy + x *^ vNormal (unitVectorAtAngle (cr ^. crDir)) s = 2 * fromMaybe 1 (crMvType cr ^? mvSpeed) -- d = min s . norm $ cr ^. crPos - cr ^. crOldPos diff --git a/tags b/tags index 7c6a59d8f..c01e19d1b 100644 --- a/tags +++ b/tags @@ -104,7 +104,7 @@ BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 40;" C BarrelCrit src/Dodge/Data/Creature/Misc.hs 71;" C -BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C +BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C BarrelType src/Dodge/Data/Creature/Misc.hs 86;" t Barreloid src/Dodge/Data/Creature/Misc.hs 82;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C @@ -130,7 +130,7 @@ BlId src/Dodge/Data/BlBl.hs 12;" C BlNegate src/Dodge/Data/BlBl.hs 10;" C Block src/Dodge/Data/Block.hs 20;" t BlockDebris src/Dodge/Data/Prop.hs 23;" C -BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 31;" C +BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 32;" C BlockPart src/Dodge/Data/Wall/Structure.hs 15;" C BlockStatus src/Dodge/Data/Universe.hs 98;" t BlockedLink src/Dodge/Data/Room.hs 54;" C @@ -165,7 +165,7 @@ ButtonAccessTerminal src/Dodge/Data/Button.hs 27;" C ButtonDumbSwitch src/Dodge/Data/Button.hs 26;" C ButtonEvent src/Dodge/Data/Button.hs 13;" t ButtonPress src/Dodge/Data/Button.hs 14;" C -ButtonSound src/Dodge/Data/SoundOrigin.hs 37;" C +ButtonSound src/Dodge/Data/SoundOrigin.hs 38;" C ButtonSwitch src/Dodge/Data/Button.hs 19;" C CAMERA src/Dodge/Data/Item/Combine.hs 76;" C CAN src/Dodge/Data/Item/Combine.hs 56;" C @@ -245,22 +245,23 @@ CrAc src/Dodge/Data/CreatureEffect.hs 24;" t CrArcNode src/Dodge/Data/LWorld.hs 164;" C CrBl src/Dodge/Data/CreatureEffect.hs 20;" t CrCanShoot src/Dodge/Data/CreatureEffect.hs 20;" C -CrChasm src/Dodge/Data/SoundOrigin.hs 17;" C +CrChasm src/Dodge/Data/SoundOrigin.hs 18;" C CrDestroyed src/Dodge/Data/Creature.hs 66;" C CrDestructionType src/Dodge/Data/Creature.hs 68;" t +CrFootstep src/Dodge/Data/SoundOrigin.hs 16;" C 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 -CrHitSound src/Dodge/Data/SoundOrigin.hs 32;" C +CrHitSound src/Dodge/Data/SoundOrigin.hs 33;" 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 -CrMouth src/Dodge/Data/SoundOrigin.hs 16;" C +CrMouth src/Dodge/Data/SoundOrigin.hs 17;" C CrMvType src/Dodge/Data/Creature/Misc.hs 24;" t CrMvType src/Dodge/Data/Creature/Misc.hs 28;" C CrOpenAutoDoor src/Dodge/Data/CreatureEffect.hs 21;" C @@ -268,8 +269,8 @@ CrSound src/Dodge/Data/SoundOrigin.hs 15;" C CrTurnAround src/Dodge/Data/CreatureEffect.hs 24;" C CrWdAc src/Dodge/Data/CreatureEffect.hs 27;" t CrWdBFSThenReturn src/Dodge/Data/CreatureEffect.hs 28;" C -CrWeaponFailSound src/Dodge/Data/SoundOrigin.hs 20;" C -CrWeaponSound src/Dodge/Data/SoundOrigin.hs 18;" C +CrWeaponFailSound src/Dodge/Data/SoundOrigin.hs 21;" C +CrWeaponSound src/Dodge/Data/SoundOrigin.hs 19;" C CrWlID src/Dodge/Data/CrWlID.hs 10;" t Cr_awareness src/Dodge/Data/Config.hs 85;" C Cr_status src/Dodge/Data/Config.hs 84;" C @@ -302,7 +303,7 @@ DTTopNode src/Dodge/Data/DoubleTree.hs 11;" C DTree src/Dodge/Data/DoubleTree.hs 16;" t DamSensor src/Dodge/Data/Machine/Sensor.hs 19;" C Damage src/Dodge/Data/Damage.hs 15;" t -DamageHitSound src/Dodge/Data/SoundOrigin.hs 41;" C +DamageHitSound src/Dodge/Data/SoundOrigin.hs 42;" 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 @@ -359,7 +360,7 @@ DropShadowSI src/Dodge/Data/SelectionList.hs 59;" C DudPayload src/Dodge/Data/Payload.hs 11;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C Dust src/Dodge/Data/Cloud.hs 26;" t -EBSound src/Dodge/Data/SoundOrigin.hs 40;" C +EBSound src/Dodge/Data/SoundOrigin.hs 41;" C ECW src/Dodge/Material/Damage.hs 14;" t ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 159;" C EQUIP src/Dodge/Data/Item/Combine.hs 17;" C @@ -394,7 +395,7 @@ Essential src/Shape/Data.hs 29;" C EvadeAim src/Dodge/Data/ActionPlan.hs 74;" C ExamineInventory src/Dodge/Data/HUD.hs 16;" C Explore src/Dodge/Data/Scenario.hs 4;" C -Explosion src/Dodge/Data/SoundOrigin.hs 38;" C +Explosion src/Dodge/Data/SoundOrigin.hs 39;" 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 @@ -426,9 +427,9 @@ FixedSelectionWidth src/Dodge/Data/SelectionList.hs 43;" C FlIt src/Dodge/Data/FloorItem.hs 11;" C Flame src/Dodge/Data/Flame.hs 11;" t FlameBeamCombine src/Dodge/Data/Beam.hs 37;" C -FlameSound src/Dodge/Data/SoundOrigin.hs 28;" C +FlameSound src/Dodge/Data/SoundOrigin.hs 29;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 12;" C -Flamer src/Dodge/Data/SoundOrigin.hs 26;" C +Flamer src/Dodge/Data/SoundOrigin.hs 27;" C Flaming src/Dodge/Data/Damage.hs 21;" C Flank src/Dodge/Data/ActionPlan.hs 133;" C FlareType src/Dodge/Data/Muzzle.hs 28;" t @@ -454,7 +455,7 @@ FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 24;" C FollowImpulses src/Dodge/Data/ActionPlan.hs 138;" C FootForward src/Dodge/Data/Creature/Stance.hs 30;" t -FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C +FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C ForceField src/Dodge/Data/Material.hs 19;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 12;" t @@ -495,7 +496,7 @@ Gib src/Dodge/Data/Prop.hs 22;" C Gibbed src/Dodge/Data/Creature.hs 68;" 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 +GlassBreakSound src/Dodge/Data/SoundOrigin.hs 35;" C GlassDebris src/Dodge/Data/Prop.hs 25;" C Goal src/Dodge/Data/ActionPlan.hs 154;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C @@ -615,7 +616,7 @@ ItemScroll src/Dodge/Data/Item.hs 38;" t ItemScrollInt src/Dodge/Data/Item.hs 40;" C ItemScrollIntRange src/Dodge/Data/Item.hs 41;" C ItemScrollTimeFlow src/Dodge/Data/World.hs 69;" C -ItemSound src/Dodge/Data/SoundOrigin.hs 19;" C +ItemSound src/Dodge/Data/SoundOrigin.hs 20;" C ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 28;" t @@ -644,7 +645,7 @@ LampCrit src/Dodge/Data/Creature/Misc.hs 72;" C Large src/Shape/Data.hs 24;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C -LasSound src/Dodge/Data/SoundOrigin.hs 29;" C +LasSound src/Dodge/Data/SoundOrigin.hs 30;" C Laser src/Dodge/Data/Laser.hs 19;" t LaserSensor src/Dodge/Data/Machine/Sensor.hs 13;" C LaserType src/Dodge/Data/Laser.hs 14;" t @@ -701,10 +702,10 @@ MPO src/Dodge/Base/Collide.hs 98;" t MTRS src/Dodge/Data/MTRS.hs 6;" t MTree src/Dodge/Data/MetaTree.hs 12;" C Machine src/Dodge/Data/Machine.hs 30;" t -MachineAltSound src/Dodge/Data/SoundOrigin.hs 23;" C -MachineBackgroundSound src/Dodge/Data/SoundOrigin.hs 22;" C +MachineAltSound src/Dodge/Data/SoundOrigin.hs 24;" C +MachineBackgroundSound src/Dodge/Data/SoundOrigin.hs 23;" C MachinePart src/Dodge/Data/Wall/Structure.hs 14;" C -MachinePrimarySound src/Dodge/Data/SoundOrigin.hs 21;" C +MachinePrimarySound src/Dodge/Data/SoundOrigin.hs 22;" C MachineType src/Dodge/Data/Machine.hs 44;" t MagBelow src/Dodge/Data/Muzzle.hs 22;" C Magnet src/Dodge/Data/Magnet.hs 21;" t @@ -728,7 +729,7 @@ Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" C MapperInventory src/Dodge/Data/HUD.hs 17;" C MapperSF src/Dodge/Data/ComposedItem.hs 39;" C Material src/Dodge/Data/Material.hs 10;" t -MaterialSound src/Dodge/Data/SoundOrigin.hs 35;" C +MaterialSound src/Dodge/Data/SoundOrigin.hs 36;" C Maybe' src/MaybeHelp.hs 11;" t McDamSensor src/Dodge/Data/Machine.hs 46;" C McDistributer src/Dodge/Data/Machine.hs 50;" C @@ -952,7 +953,7 @@ OverTerminal src/Dodge/Data/Input.hs 26;" C OverTerminalBar src/Dodge/Data/Input.hs 27;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C -PBSound src/Dodge/Data/SoundOrigin.hs 42;" C +PBSound src/Dodge/Data/SoundOrigin.hs 43;" C PBall src/Dodge/Data/PlasmaBall.hs 13;" C PIPE src/Dodge/Data/Item/Combine.hs 50;" C PISTOL src/Dodge/Data/Item/Combine.hs 145;" C @@ -1193,7 +1194,7 @@ ShapeProp src/Dodge/Data/Prop.hs 14;" C ShapeType src/Shape/Data.hs 11;" t Shattering src/Dodge/Data/Damage.hs 20;" C Shell src/Dodge/Data/Projectile.hs 15;" C -ShellSound src/Dodge/Data/SoundOrigin.hs 27;" C +ShellSound src/Dodge/Data/SoundOrigin.hs 28;" C ShieldGroup src/Dodge/Data/Creature/State.hs 30;" C Shockwave src/Dodge/Data/Shockwave.hs 15;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 12;" t @@ -1254,7 +1255,7 @@ SparkType src/Dodge/Data/Spark.hs 19;" t Sparking src/Dodge/Data/Damage.hs 18;" C Spatial src/Dodge/Data/Scenario.hs 73;" C SpatialInfluence src/Dodge/Data/Scenario.hs 81;" t -SpawnSound src/Dodge/Data/SoundOrigin.hs 43;" C +SpawnSound src/Dodge/Data/SoundOrigin.hs 44;" C SpawnedBy src/Dodge/Data/Creature/State.hs 17;" C SplashOptions src/Dodge/Data/Universe.hs 73;" C SplitBeamCombine src/Dodge/Data/Beam.hs 40;" C @@ -1310,13 +1311,13 @@ TabCompletion src/Dodge/Terminal.hs 158;" t TabFail src/Dodge/Terminal.hs 162;" C TabMatch src/Dodge/Terminal.hs 159;" C TabMultiComplete src/Dodge/Terminal.hs 161;" C -Tap src/Dodge/Data/SoundOrigin.hs 39;" C +Tap src/Dodge/Data/SoundOrigin.hs 40;" C TargetCursor src/Dodge/Data/Item/Targeting.hs 12;" C TargetRBCreature src/Dodge/Data/Item/Targeting.hs 11;" C TargetRBPress src/Dodge/Data/Item/Targeting.hs 10;" C TargetingLaser src/Dodge/Data/Laser.hs 16;" C TargetingType src/Dodge/Data/Item/Targeting.hs 9;" t -TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C +TeleSound src/Dodge/Data/SoundOrigin.hs 37;" C TermSignal src/Dodge/Data/Input.hs 56;" t Terminal src/Dodge/Data/Terminal.hs 19;" t TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C @@ -1326,7 +1327,7 @@ TerminalLineRead src/Dodge/Data/Terminal/Status.hs 13;" C TerminalLineString src/Dodge/Data/Terminal.hs 34;" t TerminalOff src/Dodge/Data/Terminal/Status.hs 11;" C TerminalPressTo src/Dodge/Data/Terminal/Status.hs 15;" C -TerminalSound src/Dodge/Data/SoundOrigin.hs 24;" C +TerminalSound src/Dodge/Data/SoundOrigin.hs 25;" C TerminalStatus src/Dodge/Data/Terminal/Status.hs 10;" t TerminalTextInput src/Dodge/Data/Terminal/Status.hs 14;" C TerminalToggle src/Dodge/Data/Terminal.hs 42;" t @@ -1465,7 +1466,7 @@ WallNotDestrucable src/Dodge/Data/Wall/Structure.hs 22;" C WallObstacle src/Dodge/Data/PathGraph.hs 50;" C WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t WallP src/Dodge/LevelGen/StaticWalls/Deprecated.hs 11;" t -WallSound src/Dodge/Data/SoundOrigin.hs 25;" C +WallSound src/Dodge/Data/SoundOrigin.hs 26;" C WallStructure src/Dodge/Data/Wall/Structure.hs 11;" t WallWire src/Dodge/Data/Room.hs 59;" C Walls_info src/Dodge/Data/Config.hs 89;" C @@ -1764,7 +1765,7 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 112;" f _doReplicateAction src/Dodge/Data/ActionPlan.hs 117;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 111;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 116;" f -_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 66;" f +_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 64;" f _doors src/Dodge/Data/LWorld.hs 124;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f _drHP src/Dodge/Data/Door.hs 38;" f @@ -1824,7 +1825,6 @@ _floorVBO src/Data/Preload/Render.hs 45;" f _flyInertia src/Dodge/Data/Creature/Stance.hs 24;" f _footForward src/Dodge/Data/Creature/Misc.hs 54;" f _footForward src/Dodge/Data/Creature/Misc.hs 58;" f -_footForward src/Dodge/Data/Creature/Misc.hs 64;" f _foreShapes src/Dodge/Data/LWorld.hs 136;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f @@ -1936,6 +1936,7 @@ _itsRangeInt src/Dodge/Data/Item.hs 41;" f _killTarget src/Dodge/Data/ActionPlan.hs 156;" f _lAimPos src/Dodge/Data/LWorld.hs 147;" f _lClock src/Dodge/Data/LWorld.hs 142;" f +_lFootPos src/Dodge/Data/Creature/Misc.hs 65;" f _lInvLock src/Dodge/Data/LWorld.hs 148;" f _lTestInt src/Dodge/Data/LWorld.hs 144;" f _lTestString src/Dodge/Data/LWorld.hs 143;" f @@ -2182,6 +2183,7 @@ _pzbPos src/Dodge/Data/PulseLaser.hs 22;" f _pzbTimer src/Dodge/Data/PulseLaser.hs 23;" f _pzbVel src/Dodge/Data/PulseLaser.hs 21;" f _rCommands src/Dodge/Terminal.hs 165;" f +_rFootPos src/Dodge/Data/Creature/Misc.hs 66;" f _radarBlips src/Dodge/Data/LWorld.hs 111;" f _radarSweeps src/Dodge/Data/LWorld.hs 107;" f _randGen src/Dodge/Data/World.hs 40;" f @@ -2344,7 +2346,6 @@ _ssboName src/Shader/Data.hs 97;" f _ssboPtr src/Shader/Data.hs 98;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 55;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 59;" f -_strideAmount src/Dodge/Data/Creature/Misc.hs 65;" f _stuckCrID src/Dodge/Data/Projectile.hs 48;" f _stuckCrOffset src/Dodge/Data/Projectile.hs 48;" f _stuckCrRot src/Dodge/Data/Projectile.hs 48;" f @@ -2578,7 +2579,7 @@ addToTrunk src/TreeHelp.hs 159;" f addWarningTerminal src/Dodge/Room/Warning.hs 98;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 485;" f +advanceScrollAmount src/Dodge/Update.hs 497;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f aimDelaySweep src/Dodge/Render/Picture.hs 291;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f @@ -2648,7 +2649,7 @@ argV src/Geometry/Vector.hs 83;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f armouredChasers src/Dodge/Room/Boss.hs 58;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f -arms src/Dodge/Creature/Picture.hs 179;" f +arms src/Dodge/Creature/Picture.hs 198;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2700,7 +2701,7 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 407;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 395;" f -baseShoulder src/Dodge/Creature/Picture.hs 217;" f +baseShoulder src/Dodge/Creature/Picture.hs 236;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f @@ -2715,7 +2716,7 @@ battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f beltMag src/Dodge/Item/Ammo.hs 38;" f -bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 323;" f +bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 326;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f bgunSound src/Dodge/HeldUse.hs 540;" f bingate src/Dodge/Item/Scope.hs 115;" f @@ -2797,7 +2798,7 @@ calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcTexCoord src/Tile.hs 19;" f canSee src/Dodge/Base/Collide.hs 326;" f canSeeIndirect src/Dodge/Base/Collide.hs 333;" f -canSpring src/Dodge/Update.hs 977;" f +canSpring src/Dodge/Update.hs 989;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f capacitor src/Dodge/Item/Ammo.hs 67;" f card8Vec src/Dodge/Base/CardinalPoint.hs 24;" f @@ -2825,8 +2826,8 @@ chartreuse src/Color.hs 51;" f chaseCorpse src/Dodge/Corpse/Make.hs 33;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f -chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 190;" f -chaseUpperBody src/Dodge/Creature/Picture.hs 109;" f +chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 193;" f +chaseUpperBody src/Dodge/Creature/Picture.hs 120;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 117;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f @@ -2836,13 +2837,13 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 98;" f checkDeath' src/Dodge/Creature/Update.hs 101;" f -checkEndGame src/Dodge/Update.hs 863;" f +checkEndGame src/Dodge/Update.hs 875;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f -checkTermDist src/Dodge/Update.hs 398;" f +checkTermDist src/Dodge/Update.hs 410;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f @@ -2968,7 +2969,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 41;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f -crCrSpring src/Dodge/Update.hs 985;" f +crCrSpring src/Dodge/Update.hs 997;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 65;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 36;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f @@ -3004,7 +3005,7 @@ 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 972;" f +crSpring src/Dodge/Update.hs 984;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f crUpdate src/Dodge/Creature/Update.hs 91;" f @@ -3020,7 +3021,7 @@ crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f -crabFeet src/Dodge/Creature/Picture.hs 161;" f +crabFeet src/Dodge/Creature/Picture.hs 172;" f crabRoom src/Dodge/Room/Tutorial.hs 433;" f crabUpperBody src/Dodge/Creature/Picture.hs 86;" f craftInfo src/Dodge/Item/Info.hs 168;" f @@ -3119,10 +3120,10 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f deadEndPSType src/Dodge/Room/Room.hs 264;" f deadEndRoom src/Dodge/Room/Room.hs 267;" f -deadFeet src/Dodge/Creature/Picture.hs 175;" f -deadRot src/Dodge/Creature/Picture.hs 193;" f -deadScalp src/Dodge/Creature/Picture.hs 188;" f -deadUpperBody src/Dodge/Creature/Picture.hs 214;" f +deadFeet src/Dodge/Creature/Picture.hs 194;" f +deadRot src/Dodge/Creature/Picture.hs 212;" f +deadScalp src/Dodge/Creature/Picture.hs 207;" f +deadUpperBody src/Dodge/Creature/Picture.hs 233;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f @@ -3158,7 +3159,7 @@ defEquipment src/Dodge/Default.hs 24;" f 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 18;" f +defaultAimMvType src/Dodge/Creature/MoveType.hs 19;" 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 @@ -3169,7 +3170,7 @@ defaultButton src/Dodge/Default.hs 45;" f defaultCWCam src/Dodge/Default/World.hs 75;" f defaultCWGen src/Dodge/Default/World.hs 65;" f defaultCWorld src/Dodge/Default/World.hs 90;" f -defaultChaseMvType src/Dodge/Creature/MoveType.hs 27;" f +defaultChaseMvType src/Dodge/Creature/MoveType.hs 28;" 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 @@ -3239,7 +3240,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f -displayTerminalLineString src/Dodge/Update.hs 570;" f +displayTerminalLineString src/Dodge/Update.hs 582;" f dist src/Geometry/Vector.hs 187;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 150;" f @@ -3306,7 +3307,7 @@ doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f -doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 268;" f +doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 271;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3319,7 +3320,7 @@ doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f doWdWd src/Dodge/WorldEffect.hs 35;" f -doWorldEvents src/Dodge/Update.hs 494;" f +doWorldEvents src/Dodge/Update.hs 506;" 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 @@ -3375,7 +3376,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 226;" f +drawEquipment src/Dodge/Creature/Picture.hs 245;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f @@ -3555,7 +3556,7 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f -feet src/Dodge/Creature/Picture.hs 147;" f +feet src/Dodge/Creature/Picture.hs 158;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3641,7 +3642,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 165;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f -gasEffect src/Dodge/Update.hs 888;" f +gasEffect src/Dodge/Update.hs 900;" f gasType src/Dodge/HeldUse.hs 1135;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3667,7 +3668,7 @@ getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 53;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 590;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 577;" f -getDebugMouseOver src/Dodge/Update.hs 460;" f +getDebugMouseOver src/Dodge/Update.hs 472;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1284;" f @@ -3677,7 +3678,7 @@ getLaserDamage src/Dodge/HeldUse.hs 728;" f getLaserPhaseV src/Dodge/HeldUse.hs 725;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f -getMenuMouseContext src/Dodge/Update.hs 472;" f +getMenuMouseContext src/Dodge/Update.hs 484;" f getNodePos src/Dodge/Path.hs 36;" f getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f @@ -3808,7 +3809,7 @@ hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f hoverCrit src/Dodge/Creature/ChaseCrit.hs 51;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 68;" f hoverCritInternal src/Dodge/Humanoid.hs 44;" f -hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 225;" f +hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f @@ -4065,7 +4066,7 @@ linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 232;" f listControls src/Dodge/Menu.hs 244;" f listCursor src/Dodge/Render/List.hs 120;" f -listGuard src/Dodge/Creature/ReaderUpdate.hs 293;" f +listGuard src/Dodge/Creature/ReaderUpdate.hs 296;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f @@ -4324,7 +4325,7 @@ muzzleWallCheck src/Dodge/Update.hs 348;" f mvButton src/Dodge/Placement/PlaceSpot.hs 170;" f mvCr src/Dodge/Placement/PlaceSpot.hs 173;" f mvFS src/Dodge/Placement/PlaceSpot.hs 176;" f -mvGust src/Dodge/Update.hs 879;" f +mvGust src/Dodge/Update.hs 891;" f mvLS src/Dodge/Placement/PlaceSpot.hs 215;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4382,7 +4383,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 95;" f -oneSmooth src/Dodge/Creature/Picture.hs 144;" f +oneSmooth src/Dodge/Creature/Picture.hs 155;" f openConsole src/Dodge/Update.hs 140;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4418,7 +4419,7 @@ overlapCircWalls src/Dodge/Base/Collide.hs 238;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f overlapSegWalls src/Dodge/Base/Collide.hs 218;" f -overrideInternal src/Dodge/Creature/ReaderUpdate.hs 277;" f +overrideInternal src/Dodge/Creature/ReaderUpdate.hs 280;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 38;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f p src/ShortShow.hs 48;" f @@ -4440,7 +4441,7 @@ pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 219;" f -pbFlicker src/Dodge/Update.hs 555;" f +pbFlicker src/Dodge/Update.hs 567;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 114;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4652,7 +4653,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToDeg src/Geometry/Vector.hs 125;" f -radiusSpring src/Dodge/Update.hs 961;" f +radiusSpring src/Dodge/Update.hs 973;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randDirPS src/Dodge/PlacementSpot.hs 58;" f @@ -4674,7 +4675,7 @@ randPeakedParam src/RandomHelp.hs 149;" f randProb src/RandomHelp.hs 87;" f randSpark src/Dodge/Spark.hs 70;" f randSparkExtraVel src/Dodge/Spark.hs 93;" f -randWallReflect src/Dodge/Update.hs 735;" f +randWallReflect src/Dodge/Update.hs 747;" f randomChallenges src/Dodge/Room/Start.hs 64;" f randomCompass src/Dodge/Layout.hs 61;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 248;" f @@ -4866,7 +4867,7 @@ scale3 src/Picture/Base.hs 137;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f scaleSH src/Shape.hs 266;" f -scalp src/Dodge/Creature/Picture.hs 202;" f +scalp src/Dodge/Creature/Picture.hs 221;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/Update.hs 164;" f @@ -4890,7 +4891,7 @@ seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 310;" f +searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 313;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsSizes src/Dodge/DisplayInventory.hs 205;" f @@ -4935,7 +4936,7 @@ setLinkType src/Dodge/RoomLink.hs 79;" f setLinkTypePD src/Dodge/RoomLink.hs 86;" f setMusicVolume src/Sound.hs 164;" f setMvPosToTargetCr src/Dodge/Creature/ReaderUpdate.hs 60;" f -setOldPos src/Dodge/Update.hs 586;" f +setOldPos src/Dodge/Update.hs 598;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f @@ -5026,10 +5027,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 100;" f +showManObj src/Dodge/TestString.hs 101;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 117;" f +showTimeFlow src/Dodge/TestString.hs 118;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5038,7 +5039,7 @@ shufflePair src/RandomHelp.hs 166;" f shuffleRoomPos src/Dodge/Layout.hs 98;" f shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 966;" f +simpleCrSprings src/Dodge/Update.hs 978;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 765;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f @@ -5234,7 +5235,7 @@ targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f -targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 299;" f +targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 302;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f @@ -5308,7 +5309,7 @@ tlSetStatus src/Dodge/Terminal.hs 112;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 118;" f tmDistributeLines src/Dodge/Room/Room.hs 474;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f -tmScreenMousePos src/Dodge/Update.hs 452;" f +tmScreenMousePos src/Dodge/Update.hs 464;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -5337,11 +5338,11 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 95;" f +topTestPart src/Dodge/TestString.hs 96;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f -torso src/Dodge/Creature/Picture.hs 207;" f +torso src/Dodge/Creature/Picture.hs 226;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f @@ -5447,7 +5448,7 @@ unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 133;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 121;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 203;" f -updateAimPos src/Dodge/Update.hs 385;" f +updateAimPos src/Dodge/Update.hs 397;" f updateAllNodes src/TreeHelp.hs 88;" f updateArc src/Dodge/Tesla.hs 43;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 488;" f @@ -5457,49 +5458,49 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBounds src/Dodge/Update/Camera.hs 262;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 650;" f +updateBullets src/Dodge/Update.hs 662;" f updateCamera src/Dodge/Update/Camera.hs 33;" f updateCarriage src/Dodge/Creature/State/WalkCycle.hs 18;" f updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 23;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f -updateCloud src/Dodge/Update.hs 892;" f -updateClouds src/Dodge/Update.hs 761;" f +updateCloud src/Dodge/Update.hs 904;" f +updateClouds src/Dodge/Update.hs 773;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 36;" f -updateCreatureGroups src/Dodge/Update.hs 622;" f -updateCreatureSoundPositions src/Dodge/Update.hs 601;" f +updateCreatureGroups src/Dodge/Update.hs 634;" f +updateCreatureSoundPositions src/Dodge/Update.hs 613;" f updateCreatureStride src/Dodge/Update.hs 376;" f updateCreatureStrides src/Dodge/Update.hs 373;" f -updateDebris src/Dodge/Update.hs 664;" f +updateDebris src/Dodge/Update.hs 676;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1009;" f +updateDelayedEvents src/Dodge/Update.hs 1021;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 643;" f +updateDistortions src/Dodge/Update.hs 655;" f updateDoor src/Dodge/Door.hs 22;" f -updateDoors src/Dodge/Update.hs 390;" f -updateDust src/Dodge/Update.hs 940;" f -updateDusts src/Dodge/Update.hs 767;" f +updateDoors src/Dodge/Update.hs 402;" f +updateDust src/Dodge/Update.hs 952;" f +updateDusts src/Dodge/Update.hs 779;" f updateEdge src/Dodge/Path.hs 45;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 752;" f +updateEnergyBalls src/Dodge/Update.hs 764;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 515;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 749;" f +updateFlames src/Dodge/Update.hs 761;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 372;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 368;" f -updateGas src/Dodge/Update.hs 914;" f -updateGasses src/Dodge/Update.hs 764;" f -updateGusts src/Dodge/Update.hs 876;" f -updateIMl src/Dodge/Update.hs 616;" f -updateIMl' src/Dodge/Update.hs 619;" f +updateGas src/Dodge/Update.hs 926;" f +updateGasses src/Dodge/Update.hs 776;" f +updateGusts src/Dodge/Update.hs 888;" f +updateIMl src/Dodge/Update.hs 628;" f +updateIMl' src/Dodge/Update.hs 631;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 438;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5512,35 +5513,35 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 391;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 414;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 12;" f -updateLasers src/Dodge/Update.hs 501;" f +updateLasers src/Dodge/Update.hs 513;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 45;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f updateMachine src/Dodge/Machine/Update.hs 24;" f -updateMagnets src/Dodge/Update.hs 393;" f +updateMagnets src/Dodge/Update.hs 405;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 238;" f -updateMouseContext src/Dodge/Update.hs 406;" f -updateMouseContextGame src/Dodge/Update.hs 411;" f +updateMouseContext src/Dodge/Update.hs 418;" f +updateMouseContextGame src/Dodge/Update.hs 423;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 100;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 90;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 201;" f -updateObjCatMaybes src/Dodge/Update.hs 634;" f -updateObjMapMaybe src/Dodge/Update.hs 627;" f -updatePastWorlds src/Dodge/Update.hs 490;" f -updatePlasmaBall src/Dodge/Update.hs 515;" f -updatePlasmaBalls src/Dodge/Update.hs 657;" f +updateObjCatMaybes src/Dodge/Update.hs 646;" f +updateObjMapMaybe src/Dodge/Update.hs 639;" f +updatePastWorlds src/Dodge/Update.hs 502;" f +updatePlasmaBall src/Dodge/Update.hs 527;" f +updatePlasmaBalls src/Dodge/Update.hs 669;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 179;" f -updatePulseBall src/Dodge/Update.hs 535;" f -updatePulseLaser src/Dodge/Update.hs 704;" f -updatePulseLasers src/Dodge/Update.hs 510;" f +updatePulseBall src/Dodge/Update.hs 547;" f +updatePulseLaser src/Dodge/Update.hs 716;" f +updatePulseLasers src/Dodge/Update.hs 522;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 646;" f +updateRadarBlips src/Dodge/Update.hs 658;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 755;" f +updateRadarSweeps src/Dodge/Update.hs 767;" f updateRandNode src/TreeHelp.hs 111;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 188;" f @@ -5550,17 +5551,17 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 262;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 746;" f +updateShockwaves src/Dodge/Update.hs 758;" f updateSingleNodes src/TreeHelp.hs 100;" f updateSound src/Sound.hs 73;" f updateSounds src/Sound.hs 68;" f updateSpark src/Dodge/Spark.hs 20;" f -updateSparks src/Dodge/Update.hs 758;" f -updateTerminal src/Dodge/Update.hs 573;" f -updateTeslaArc src/Dodge/Update.hs 674;" f -updateTeslaArcs src/Dodge/Update.hs 671;" f +updateSparks src/Dodge/Update.hs 770;" f +updateTerminal src/Dodge/Update.hs 585;" f +updateTeslaArc src/Dodge/Update.hs 686;" f +updateTeslaArcs src/Dodge/Update.hs 683;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 743;" f +updateTractorBeams src/Dodge/Update.hs 755;" f updateTurret src/Dodge/Machine/Update.hs 55;" f updateUniverse src/Dodge/Update.hs 83;" f updateUniverseFirst src/Dodge/Update.hs 94;" f @@ -5571,10 +5572,10 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f updateVocTimer src/Dodge/Humanoid.hs 61;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f -updateWheelEvents src/Dodge/Update.hs 480;" f +updateWheelEvents src/Dodge/Update.hs 492;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f -upperBody src/Dodge/Creature/Picture.hs 222;" f +upperBody src/Dodge/Creature/Picture.hs 241;" f upperBox src/Shape.hs 153;" f upperBoxHalf src/Shape.hs 219;" f upperBoxMT src/Shape.hs 144;" f @@ -5634,7 +5635,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f -viewTarget src/Dodge/Creature/ReaderUpdate.hs 250;" f +viewTarget src/Dodge/Creature/ReaderUpdate.hs 253;" f violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 223;" f visionCheck src/Dodge/Creature/Perception.hs 162;" f @@ -5659,7 +5660,7 @@ wasdM src/Dodge/WASD.hs 9;" f wasdMovement src/Dodge/Creature/YourControl.hs 140;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 106;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f -watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 282;" f +watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 285;" 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 @@ -5752,11 +5753,11 @@ zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f zipCount src/Dodge/Tree/Shift.hs 142;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f -zoneClouds src/Dodge/Update.hs 562;" f +zoneClouds src/Dodge/Update.hs 574;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 597;" f +zoneCreatures src/Dodge/Update.hs 609;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 567;" f +zoneDusts src/Dodge/Update.hs 579;" f zoneExtract src/Dodge/Zoning/Base.hs 58;" f zoneGas src/Dodge/Zoning/Cloud.hs 36;" f zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f