diff --git a/src/AesonHelp.hs b/src/AesonHelp.hs index 8e3322e17..d7bcc945f 100644 --- a/src/AesonHelp.hs +++ b/src/AesonHelp.hs @@ -6,7 +6,8 @@ import Data.ByteString.Lazy.Char8 (unpack) import Data.Maybe getPretty :: ToJSON a => a -> [String] -getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False) +--getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False) +getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) mempty AEP.Generic False) prettyShort :: ToJSON a => a -> [String] prettyShort = mapMaybe cullPretty . getPretty diff --git a/src/Dodge/Base/Collide.hs b/src/Dodge/Base/Collide.hs index 8bec336d6..13b3e3ace 100644 --- a/src/Dodge/Base/Collide.hs +++ b/src/Dodge/Base/Collide.hs @@ -34,6 +34,7 @@ module Dodge.Base.Collide ( collide3WallsFloor, collide3, crHeight, + crMid, ) where import AesonHelp @@ -194,6 +195,22 @@ crHeight cr = case cr ^. crHP of CrIsCorpse{} -> 5 AvatarDestroyed{} -> 0 +crMid :: Creature -> Float +crMid cr = case cr ^. crHP of + HP{} -> case cr ^. crType of + HoverCrit {} -> 2 + ChaseCrit {} -> 20 + Avatar {} -> 20 + CrabCrit {} -> 20 + SlinkCrit {} -> 20 + SlimeCrit {_slimeSlime = r} -> max 3 . min 20 $ 2 * slimeToRad r - 5 + BeeCrit {} -> 2 + HiveCrit {} -> 20 + BarrelCrit{} -> 20 + _ -> error $ "Need to define crHeight for this crType:\n" <> unlines (prettyShort (cr ^. crType)) + CrIsCorpse{} -> 2 + AvatarDestroyed{} -> 0 + wallToSurface :: Wall -> (Point3, Point3, [(Point3, Point3)]) wallToSurface wl = (g x, g $ vNormal (x - y), [(g x, g (y - x)), (g y, g (x - y))]) where diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index b51a80d38..be70397e6 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -60,7 +60,9 @@ type ActionUpdate = ([Impulse], Action) -} performAction :: Creature -> World -> Action -> ActionUpdate performAction cr w ac = case ac of - Eat {} -> ([],NoAction) + Eat i x -> ([],Eat i x) +-- Eat i x | x <= 0 -> ([],NoAction) +-- Eat i x -> ([],Eat i (x-1)) AimAt tcid p -> performAimAt cr w tcid p WaitThen 0 newAc -> ([], newAc) WaitThen t newAc -> ([], WaitThen (t -1) newAc) diff --git a/src/Dodge/Creature/ArmourChase.hs b/src/Dodge/Creature/ArmourChase.hs index 526a5be86..ffbf66a11 100644 --- a/src/Dodge/Creature/ArmourChase.hs +++ b/src/Dodge/Creature/ArmourChase.hs @@ -20,12 +20,12 @@ flockArmourChaseCrit = -- IM.fromList -- [ --(0, frontArmour) -- ] - , _crActionPlan = - ActionPlan - { _apAction = NoAction - , _apStrategy = FollowImpulses - , _apGoal = Kill 0 - } +-- , _crActionPlan = +-- ActionPlan +-- { _apAction = NoAction +---- , _apStrategy = FollowImpulses +-- , _apGoal = Kill 0 +-- } , _crGroup = ShieldGroup -- , _crMvType = defaultChaseMvType } diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index e6bb1fcc8..dd2b8cbc3 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -180,8 +180,8 @@ crabUpperBody _ cr = chaseUpperBody :: World -> Creature -> Shape chaseUpperBody w cr = - colorSH - (_skinUpper cskin) +-- colorSH +-- (_skinUpper cskin) ( overPosSH (Q.apply torsoq) ( upperPrismPolyHalfMI tz $ @@ -189,19 +189,36 @@ chaseUpperBody w cr = & each %~ vNormal & each . _y *~ 0.6 ) - <> overPosSH (Q.apply neckq) (upperPrismPolyHalfMI 3 $ (+ V2 8 0) . vNormal <$> trapTBH 2 5 8) + <> overPosSH (Q.apply neckq) lneckshape + <> overPosSH (Q.apply neckq2) uneckshape ) <> colorSH - (_skinHead cskin) - (overPosSH (Q.apply headq) (upperBox Medium Important 2 [V2 0 (-4), V2 9 0, V2 0 4])) +-- (_skinHead cskin) + yellow headshape where -- time = fromIntegral (mod (w ^. unpauseClock) 100) / 5 tz = 4 cskin = crShape $ _crType cr - torsoq = (V3 0 0 (10 + tz + tbob), Q.qid) + torsoq = (V3 0 0 (10 + tz + tbob), Q.qy (-cr ^?! crType . chaseqy0)) mcool = 1 - min 10 (fromIntegral . _meleeCooldown $ _crType cr) / 10 - neckq = torsoq `Q.comp` (V3 6 0 0, Q.qz aimrot * Q.axisAngle (V3 0 1 0) (-1.8 * mcool)) - headq = neckq `Q.comp` (V3 16 0 0, Q.axisAngle (V3 0 1 0) (2 * mcool + vocaltilt) * Q.qz aimrot) +-- (qy1,qy2,qy3) +---- | CloseToMelee i <- cr ^?!crActionPlan.apStrategy +---- = (0,0,0) +-- | otherwise = (pi/3,-2*pi/3,pi/3) +-- | otherwise = (pi * w^.cWorld.cClock.to ((*0.01).fromIntegral),0,0) +-- | otherwise = (-1.8 * mcool , 0, 2 * mcool + vocaltilt) + qy1 = cr ^?! crType . chaseqy1 + qy2 = cr ^?! crType . chaseqy2 + qy3 = cr ^?! crType . chaseqy3 + lneckshape = colorSH red $ upperPrismPolyHalfMI 4 (vNormal <$> trapTBH 2 5 (nlen/4)) + & each . sfVs . each +~ V3 (nlen/4) 0 (-2) + uneckshape = colorSH green $ upperPrismPolyHalfMI 3 (vNormal <$> trapTBH 3 2 (nlen/4)) + & each . sfVs . each +~ V3 (nlen/4) 0 (-1.5) + headshape = overPosSH (Q.apply headq) (upperBox Medium Important 2 [V2 0 (-4), V2 9 0, V2 0 4]) + neckq = torsoq `Q.comp` (V3 8 0 4, Q.qz aimrot * Q.qy (pi + qy1)) + neckq2 = neckq `Q.comp` (V3 (nlen/2) 0 0, Q.qy qy2) + headq = neckq2 `Q.comp` (V3 (nlen/2) 0 0, Q.qy (pi + qy3) * Q.qz aimrot) + nlen = 16 vocaltilt = case cr ^? crVocalization . vcTime of Just x | x < 20 -> -pi * 0.05 * (10 - abs (fromIntegral x - 10)) _ -> 0 @@ -220,6 +237,29 @@ chaseUpperBody w cr = guard $ hasLOSIndirect cxy tcxy w return . (0.5 *) . nearZeroAngle $ argV (tcxy - cxy) - cr ^. crDir +{- NECK ARTICULATION +Viewed from side, all hinges, torso/lower neck also hinges in Q.qz (not shown) + na1 na2 na3 <- angles, in diagram all == 0, in Q.qy + | | | + ---.---.---.--- z + | | | | ^>x + torso | u.neck| + l.neck head +Rough examples +Flat aim: Resting: + .\\ + \ \\ + . . + / \ / + ---. .--- ---. +a1 = 60 a1 = 60 +a2 = -120 a2 = 60 +a3 = 60 a3 = -160 +-} + +--ikTwoArms :: Point3 -> Point3 -> Point3 -> Point3 -> (QFloat,QFloat) +--ikTwoArms + oneSmooth :: Float -> Float oneSmooth x = sin (pi * x * 0.5) diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 006ff8057..3a7e44d57 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -66,7 +66,7 @@ updateLivingCreature cr = case cr ^. crType of . yourControl LampCrit{} -> updateLampoid cr BarrelCrit bt -> updateBarreloid bt cr - ChaseCrit{} -> crUpdate cid . performActions cid . updateChaseCrit cid cr + ChaseCrit{} -> crUpdate cid . performActions cid . setChaseCritKinematics cid . updateChaseCrit cid cr CrabCrit{} -> crUpdate cid . performActions cid . crabCritInternal cid AutoCrit{} -> crUpdate cid SwarmCrit{} -> crUpdate cid @@ -368,6 +368,66 @@ slinkCritUpdate cid w = . _2 *~ Q.axisAngle (V3 0 1 0) (pi / 1000) +setChaseCritKinematics :: Int -> World -> World +setChaseCritKinematics cid w = w + & cWorld . lWorld . creatures . ix cid %~ setChaseCritKinematics' w + +ccAngles :: World -> Creature -> (Float,Float,Float,Float) +ccAngles w cr + | Eat i _ <- cr^?!crActionPlan.apAction = fromMaybe (0,0,0,0) $ do + tcr <- w ^? cWorld . lWorld . creatures . ix i + let tp = tcr ^. crPos + V3 0 0 (crMid tcr) + (np,_) = (cr ^. crPos, Q.qz (cr ^. crDir)) + `Q.comp` (V3 8 0 14, Q.qid) + v = tp - np + a = angleVV3 v (v & _z .~ 0) + return $ f (-a) 0 0 + | CloseToMelee i<-cr^?!crActionPlan.apStrategy = fromMaybe (0,0,0,0) $ do + tcr <- w ^? cWorld . lWorld . creatures . ix i + let tp = tcr ^. crPos + V3 0 0 (crMid tcr) + (np,_) = (cr ^. crPos, Q.qz (cr ^. crDir)) + `Q.comp` (V3 8 0 14, Q.qid) + v = tp - np + a = angleVV3 v (v & _z .~ 0) + return $ f + (0.45*pi - a) + (-0.9*pi) + (0.45*pi) + | otherwise = f (0.6*pi) (-0.2*pi) (-0.4*pi) + where + f a b c = (0,a,b,c) + +ccKState :: World -> Creature -> ChaseKState +ccKState _ cr + | Eat i _ <- cr^?!crActionPlan.apAction = PeckingCK i + | CloseToMelee i <- cr^?!crActionPlan.apStrategy = AimingCK i + | otherwise = UprightCK + +setChaseCritKinematics' :: World -> Creature -> Creature +setChaseCritKinematics' w = f . g + where + g cr | ccKState w cr == cr ^?! crType . chaseKState = cr + | PeckingCK i <- ccKState w cr = cr + & crType . chaseLerp .~ 3 + & crType . chaseKState .~ PeckingCK i + | otherwise = cr & crType . chaseLerp .~ 20 + & crType . chaseKState .~ ccKState w cr + f cr = + let (a,b,c,d) = ccAngles w cr + x = cr ^?! crType . chaseLerp + in if x <= 1 + then cr & crType . chaseqy0 .~ a + & crType . chaseqy1 .~ b + & crType . chaseqy2 .~ c + & crType . chaseqy3 .~ d + else cr + & crType . chaseqy0 %~ h x a + & crType . chaseqy1 %~ h x b + & crType . chaseqy2 %~ h x c + & crType . chaseqy3 %~ h x d + & crType . chaseLerp -~ 1 + h x a b = 1/fromIntegral x * a + (1-1/fromIntegral x) * b + updateChaseCrit :: Int -> Creature -> World -> World updateChaseCrit cid cr | SearchForFood <- cr ^?! crActionPlan . apGoal = updateFoodSearchChaseCrit cid cr @@ -384,12 +444,21 @@ updateFoodSearchChaseCrit cid cr w = let p = fleePoint cr cxy (20 *^ normalize (cxy - tcr^.crPos._xy)) w in w &tocr.crActionPlan.apAction.~PathTo p NoAction &tocr.crActionPlan.apGoal.~Flee + | Eat i 0 <- cr^?! crActionPlan.apAction = w + & cWorld .lWorld.creatures . at i .~ Nothing + & tocr . crActionPlan.apAction.~NoAction + & tocr . crActionPlan.apStrategy.~Search + | Eat i x <- cr^?! crActionPlan.apAction = w + & tocr .crActionPlan.apAction.acTimer-~1 + | CloseToMelee i<-cr^?!crActionPlan.apStrategy + ,Nothing <- w ^?cWorld.lWorld.creatures.ix i = w & tocr . crActionPlan.apStrategy .~ Search | CloseToMelee i<-cr^?!crActionPlan.apStrategy ,Just tcr <-w^?cWorld.lWorld.creatures.ix i - ,distance cxy (tcr^.crPos._xy) < 11 = w - & tocr.crActionPlan.apAction.~NoAction - & tocr.crActionPlan.apStrategy.~Search - & cWorld.lWorld.creatures.at i.~Nothing + ,distance cxy (tcr^.crPos._xy) < 15 = w + & tocr.crActionPlan.apAction.~Eat i 5 +-- & tocr.crActionPlan.apAction.~NoAction +-- & tocr.crActionPlan.apStrategy.~Search +-- & cWorld.lWorld.creatures.at i.~Nothing | CloseToMelee{}<-cr^?!crActionPlan.apStrategy ,PathTo{}<-cr^?!crActionPlan.apAction= w | xs@(_:_) <- IM.elems . IM.filter istarget $ crsNearCirc cxy 100 w diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index 977bd6bdb..4184fd825 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -132,7 +132,7 @@ data Strategy | Lure Int Point2 | Patrol [Point2] | ShootAt Int - | FollowImpulses +-- | FollowImpulses | WatchAndWait | Investigate | WarningCry diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 30b071544..57ce05377 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -59,6 +59,13 @@ data CreatureType | ChaseCrit {_meleeCooldown :: Int , _footForward :: FootForward , _strideAmount :: Float + , _chaseqy0 :: Float + , _chaseqy1 :: Float + , _chaseqy2 :: Float + , _chaseqy3 :: Float + , _chaseqz :: Float + , _chaseLerp :: Int + , _chaseKState :: ChaseKState } | CrabCrit { _meleeCooldownL :: Int @@ -102,6 +109,12 @@ data CreatureType | BarrelCrit {_barrelType :: BarrelType} | LampCrit {_lampHeight :: Float, _lampColor :: Point3, _lampLSID :: Maybe Int} +data ChaseKState + = UprightCK + | AimingCK Int + | PeckingCK Int + deriving (Eq) + data SlimeShapeDistortion = SlimeDistortion { _sdTime :: Int , _sdShape :: [Point2] @@ -136,6 +149,7 @@ makeLenses ''CrMvType makeLenses ''CreatureType makeLenses ''CreatureShape makeLenses ''SlimeShapeDistortion +deriveJSON defaultOptions ''ChaseKState deriveJSON defaultOptions ''SlimeShapeDistortion deriveJSON defaultOptions ''Pulse deriveJSON defaultOptions ''Vocalization diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index f93b08c5a..198a4e23d 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -5,9 +5,10 @@ import qualified Data.Map.Strict as M import Dodge.Data.Creature import Dodge.Data.FloatFunction import Geometry.Data ---import qualified IntMapHelp as IM ---import Picture ---import MaybeHelp + +-- import qualified IntMapHelp as IM +-- import Picture +-- import MaybeHelp defaultCreature :: Creature defaultCreature = @@ -15,27 +16,27 @@ defaultCreature = { _crPos = V3 0 0 0 , _crOldPos = V3 0 0 0 , _crOldOldPos = V3 0 0 0 --- , _crZ = 0 --- , _crZVel = 0 , _crDir = 0 , _crMvDir = 0 --- , _crMvAim = 0 --- , _crTwist = 0 , _crID = 1 - , _crType = ChaseCrit 0 LeftForward 0 --- , _crRad = 10 + , _crType = + ChaseCrit + { _meleeCooldown = 0 + , _footForward = LeftForward + , _strideAmount = 0 + , _chaseqy0 = 0 + , _chaseqy1 = 0.45 * pi + , _chaseqy2 = -0.9*pi + , _chaseqy3 = 0.45*pi + , _chaseqz = 0 + , _chaseLerp = 0 + , _chaseKState = UprightCK + } , _crHP = HP 100 --- , _crMaxHP = 150 , _crInv = mempty --- , _crInvCapacity = 25 , _crDamage = [] --- , _crCorpse = MakeDefaultCorpse --- , _crMaterial = Flesh , _crPain = 0 --- , _crInvEquipped = mempty , _crEquipment = M.empty --- , _crInvHotkeys = mempty --- , _crHotkeys = M.empty , _crStance = Stance { _carriage = Walking @@ -49,13 +50,12 @@ defaultCreature = , _crIntention = defaultIntention , _crGroup = LoneWolf , _crName = "DEFAULTCRNAME" --- , _crStatistics = CreatureStatistics 50 50 50 , _crDeathTimer = Nothing , _crWallTouch = mempty } ---defaultCreatureSkin :: CreatureType ---defaultCreatureSkin = Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) InanimateAI +-- defaultCreatureSkin :: CreatureType +-- defaultCreatureSkin = Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) InanimateAI defaultInanimate :: Creature defaultInanimate = defaultCreature & crActionPlan .~ Inanimate @@ -101,15 +101,14 @@ defaultIntention = , _viewPoint = Nothing } - defaultAimingCrit :: Creature defaultAimingCrit = defaultCreature yourDefaultStrideLength :: Float yourDefaultStrideLength = 35 ---defaultState :: CreatureState ---defaultState = +-- defaultState :: CreatureState +-- defaultState = -- CrSt -- { _csDamage = [] ---- , _csSpState = GenCr diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 3d32e1368..4ba9d4df3 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -58,7 +58,10 @@ crs :: Universe -> [Creature] crs u = u ^.. uvWorld . cWorld . lWorld . creatures . each testStringInit :: Universe -> [String] -testStringInit u = [ u ^. uvWorld . testString ] +testStringInit u = [ u ^. uvWorld . testString + ] + <> fold (u ^? uvWorld . cWorld . lWorld . creatures . ix 5 . crActionPlan . to prettyShort) + -- ] <> u ^.. uvWorld . cWorld . lWorld . creatures . each . crType . to (concat . prettyShort) -- <> u ^.. uvWorld . cWorld . lWorld . projectiles . each . pjPos . _z . to show -- <> u ^.. uvWorld . cWorld . lWorld . creatures . each . crType . slimeSlime . to (show . slimeToRad) -- , u ^. uvWorld . input . mouseContext . to show diff --git a/src/Quaternion.hs b/src/Quaternion.hs index 0a8aa4ba4..2c6a2421e 100644 --- a/src/Quaternion.hs +++ b/src/Quaternion.hs @@ -8,6 +8,8 @@ The warnings have been disabled. module Quaternion ( qid, qz, + qx, + qy, qToV3, qToV2, qToAng, @@ -81,4 +83,10 @@ apply (p,q) p1 = p + Q.rotate q p1 qz :: Float -> Q.Quaternion Float qz = Q.axisAngle (V3 0 0 1) +qx :: Float -> Q.Quaternion Float +qx = Q.axisAngle (V3 1 0 0) + +qy :: Float -> Q.Quaternion Float +qy = Q.axisAngle (V3 0 1 0) + --deriving instance (Flat a => Flat (Quaternion a)) diff --git a/tags b/tags index e9d5af220..30541908e 100644 --- a/tags +++ b/tags @@ -12,7 +12,7 @@ .++~ src/LensHelp.hs 33;" o .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o -<$> src/Dodge/Data/ActionPlan.hs 167;" o +<$> src/Dodge/Data/ActionPlan.hs 160;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 100;" o @@ -43,11 +43,12 @@ ActionUpdate src/Dodge/Creature/Action.hs 56;" t AimAt src/Dodge/Data/ActionPlan.hs 72;" C AimStance src/Dodge/Data/AimStance.hs 10;" t Aiming src/Dodge/Data/Creature/Stance.hs 38;" C +AimingCK src/Dodge/Data/Creature/Misc.hs 114;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 125;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C -Ambush src/Dodge/Data/ActionPlan.hs 138;" C +Ambush src/Dodge/Data/ActionPlan.hs 131;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 34;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 25;" C @@ -72,12 +73,12 @@ AttachType src/Dodge/Data/Item/Combine.hs 92;" 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 101;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 108;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 115;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 128;" C Avatar src/Dodge/Data/Creature/Misc.hs 49;" C AvatarDestroyed src/Dodge/Data/Creature.hs 66;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 115;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 128;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t BANGCONE src/Dodge/Data/Item/Combine.hs 150;" C BANGROD src/Dodge/Data/Item/Combine.hs 159;" C @@ -104,10 +105,10 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 158;" C BackdropCurs src/Dodge/Data/SelectionList.hs 24;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 41;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 102;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 109;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 127;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 123;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 140;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 136;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 42;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 49;" C @@ -121,7 +122,7 @@ BeamSimple src/Dodge/Data/Beam.hs 48;" C BeamSplitterSF src/Dodge/Data/ComposedItem.hs 50;" C BeamType src/Dodge/Data/Beam.hs 44;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C -BeeCrit src/Dodge/Data/Creature/Misc.hs 86;" C +BeeCrit src/Dodge/Data/Creature/Misc.hs 93;" C BeeMvType src/Dodge/Data/Creature/Misc.hs 35;" C BeePheremone src/Dodge/Data/Cloud.hs 47;" t BeltBulletAmmo src/Dodge/Data/AmmoType.hs 11;" C @@ -208,12 +209,13 @@ ChangePosture src/Dodge/Data/ActionPlan.hs 45;" C ChangeStrategy src/Dodge/Data/ActionPlan.hs 47;" C ChaseCrit src/Dodge/Data/Creature/Misc.hs 59;" C ChaseCritters src/Dodge/Data/Creature/State.hs 16;" C +ChaseKState src/Dodge/Data/Creature/Misc.hs 112;" t ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C Circ_collision_test src/Dodge/Data/Config.hs 99;" C Climate src/Dodge/Data/Scenario.hs 32;" C Clipboard_cr src/Dodge/Data/Config.hs 112;" C -CloseToMelee src/Dodge/Data/ActionPlan.hs 148;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 141;" C Close_shape_culling src/Dodge/Data/Config.hs 93;" C Cloud src/Dodge/Data/Cloud.hs 13;" t CloudType src/Dodge/Data/Cloud.hs 21;" t @@ -277,14 +279,14 @@ 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 -CrabCrit src/Dodge/Data/Creature/Misc.hs 63;" C +CrabCrit src/Dodge/Data/Creature/Misc.hs 70;" C CraftType src/Dodge/Data/Item/Combine.hs 50;" t Crawling src/Dodge/Data/Creature/Stance.hs 25;" C 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 117;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 130;" t CreatureType src/Dodge/Data/Creature/Misc.hs 48;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 24;" C @@ -337,16 +339,16 @@ DisplayTerminal src/Dodge/Data/HUD.hs 28;" C Display_debug src/Dodge/Data/Config.hs 79;" C Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C -DoActionIf src/Dodge/Data/ActionPlan.hs 95;" C -DoActionIfElse src/Dodge/Data/ActionPlan.hs 99;" C -DoActionThen src/Dodge/Data/ActionPlan.hs 110;" C -DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 104;" C -DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 90;" C +DoActionIf src/Dodge/Data/ActionPlan.hs 91;" C +DoActionIfElse src/Dodge/Data/ActionPlan.hs 95;" C +DoActionThen src/Dodge/Data/ActionPlan.hs 106;" C +DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 100;" C +DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 86;" C DoImpulses src/Dodge/Data/ActionPlan.hs 81;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 129;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 122;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 18;" C -DoReplicate src/Dodge/Data/ActionPlan.hs 114;" C -DoReplicatePartial src/Dodge/Data/ActionPlan.hs 118;" C +DoReplicate src/Dodge/Data/ActionPlan.hs 110;" C +DoReplicatePartial src/Dodge/Data/ActionPlan.hs 114;" C DockingBaySS src/Dodge/Data/Scenario.hs 92;" C Door src/Dodge/Data/Door.hs 29;" t DoorDoNothing src/Dodge/Data/Door.hs 45;" C @@ -404,7 +406,7 @@ 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 -ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 129;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 142;" 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 @@ -436,7 +438,7 @@ FlameSound src/Dodge/Data/SoundOrigin.hs 29;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 12;" C Flamer src/Dodge/Data/SoundOrigin.hs 27;" C Flaming src/Dodge/Data/Damage.hs 21;" C -Flank src/Dodge/Data/ActionPlan.hs 137;" C +Flank src/Dodge/Data/ActionPlan.hs 130;" C FlareType src/Dodge/Data/Muzzle.hs 28;" t FlashBall src/Dodge/Data/EnergyBall/Type.hs 15;" C Flashing src/Dodge/Data/Damage.hs 23;" C @@ -444,7 +446,7 @@ FlatFaces src/Shape/Data.hs 12;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 14;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 44;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 51;" C -Flee src/Dodge/Data/ActionPlan.hs 161;" C +Flee src/Dodge/Data/ActionPlan.hs 154;" C Flesh src/Dodge/Data/Material.hs 17;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C FloatBO src/Shader/Data.hs 85;" t @@ -458,7 +460,7 @@ Floating src/Dodge/Data/Creature/Stance.hs 26;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 27;" C -FollowImpulses src/Dodge/Data/ActionPlan.hs 142;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 135;" C FootForward src/Dodge/Data/Creature/Stance.hs 35;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C ForceField src/Dodge/Data/Material.hs 19;" C @@ -494,7 +496,7 @@ GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 24;" t GenericFaction src/Dodge/Data/Creature/State.hs 13;" C GeoObjShads src/Dodge/Data/Config.hs 119;" C -GetTo src/Dodge/Data/ActionPlan.hs 149;" C +GetTo src/Dodge/Data/ActionPlan.hs 142;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C Gibbed src/Dodge/Data/Creature.hs 75;" C @@ -502,7 +504,7 @@ GibsDeath src/Dodge/Data/Creature.hs 77;" C Glass src/Dodge/Data/Material.hs 14;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 35;" C GlassDebris src/Dodge/Data/Prop.hs 25;" C -Goal src/Dodge/Data/ActionPlan.hs 158;" t +Goal src/Dodge/Data/ActionPlan.hs 151;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 11;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 10;" C @@ -530,14 +532,14 @@ HalfRes src/Dodge/Data/Config.hs 115;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HandsFree src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" C HardQuit src/Dodge/Data/Universe.hs 68;" C -HarvestFrom src/Dodge/Data/ActionPlan.hs 153;" C +HarvestFrom src/Dodge/Data/ActionPlan.hs 146;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeldItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C HeldItemType src/Dodge/Data/Item/Combine.hs 141;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 15;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HighlightSI src/Dodge/Data/SelectionList.hs 60;" C -HiveCrit src/Dodge/Data/Creature/Misc.hs 95;" C +HiveCrit src/Dodge/Data/Creature/Misc.hs 102;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 43;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 44;" C Hospital src/Dodge/Data/Scenario.hs 69;" C @@ -559,9 +561,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 70;" C +HoverCrit src/Dodge/Data/Creature/Misc.hs 77;" C Huge src/Shape/Data.hs 24;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 118;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 131;" C IMSI src/Dodge/Data/SelectionList.hs 43;" t IMSS src/Dodge/Data/SelectionList.hs 41;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -606,7 +608,7 @@ InventoryHeadFilterSI src/Dodge/Data/SelectionList.hs 63;" C InventoryHeadSI src/Dodge/Data/SelectionList.hs 62;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 39;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C -Investigate src/Dodge/Data/ActionPlan.hs 144;" C +Investigate src/Dodge/Data/ActionPlan.hs 137;" C InwardShockwave src/Dodge/Data/Shockwave.hs 13;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 17;" C @@ -635,7 +637,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 27;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 178;" C -Kill src/Dodge/Data/ActionPlan.hs 162;" C +Kill src/Dodge/Data/ActionPlan.hs 155;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 15;" C LDParams src/Dodge/Data/SelectionList.hs 15;" t @@ -649,7 +651,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 103;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 110;" C Large src/Shape/Data.hs 25;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -664,7 +666,7 @@ LaundrySS src/Dodge/Data/Scenario.hs 115;" C LayVars src/Dodge/Data/MetaTree.hs 30;" C Layer src/Picture/Data.hs 20;" t LayoutVars src/Dodge/Data/MetaTree.hs 30;" t -LeadTarget src/Dodge/Data/ActionPlan.hs 123;" C +LeadTarget src/Dodge/Data/ActionPlan.hs 119;" C LeftForward src/Dodge/Data/Creature/Stance.hs 35;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C @@ -678,7 +680,7 @@ LimitedBreathableAtmosphere src/Dodge/Data/Scenario.hs 38;" C LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t -LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 159;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 152;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadReady src/Dodge/Data/Universe.hs 101;" C LoadWaiting src/Dodge/Data/Universe.hs 100;" C @@ -688,8 +690,8 @@ LoadingScreen src/Dodge/Data/Universe.hs 93;" C LocDT src/Dodge/Data/DoubleTree.hs 42;" C LocationDT src/Dodge/Data/DoubleTree.hs 42;" t LoneWolf src/Dodge/Data/Creature/State.hs 24;" C -LookAround src/Dodge/Data/ActionPlan.hs 146;" C -Lure src/Dodge/Data/ActionPlan.hs 139;" C +LookAround src/Dodge/Data/ActionPlan.hs 139;" C +Lure src/Dodge/Data/ActionPlan.hs 132;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 147;" C MAGENTA src/Color/Data.hs 17;" C MAGNET src/Dodge/Data/Item/Combine.hs 69;" C @@ -706,7 +708,7 @@ MODBlockedString src/Dodge/Data/Universe.hs 106;" C MODString src/Dodge/Data/Universe.hs 105;" C MODStringOption src/Dodge/Data/Universe.hs 107;" C MOTOR src/Dodge/Data/Item/Combine.hs 64;" C -MPO src/Dodge/Base/Collide.hs 110;" t +MPO src/Dodge/Base/Collide.hs 111;" 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 @@ -828,12 +830,12 @@ NewInt src/NewInt.hs 16;" t NewIntMap src/NewInt.hs 22;" t NewIntSet src/NewInt.hs 19;" t NewSideEffect src/Dodge/Data/Universe.hs 63;" C -NoAction src/Dodge/Data/ActionPlan.hs 124;" C +NoAction src/Dodge/Data/ActionPlan.hs 120;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 9;" C -NoCreatureShape src/Dodge/Data/Creature/Misc.hs 124;" C +NoCreatureShape src/Dodge/Data/Creature/Misc.hs 137;" C NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" C NoFaction src/Dodge/Data/Creature/State.hs 18;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C @@ -853,7 +855,7 @@ NoSF src/Dodge/Data/ComposedItem.hs 30;" C NoSIDisplayMod src/Dodge/Data/SelectionList.hs 59;" C NoShadowFidelity src/Shape/Data.hs 21;" C NoShadows src/Dodge/Data/Config.hs 121;" C -NoSlimeDistortion src/Dodge/Data/Creature/Misc.hs 110;" C +NoSlimeDistortion src/Dodge/Data/Creature/Misc.hs 123;" C NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C NoSubInventory src/Dodge/Data/HUD.hs 16;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C @@ -989,10 +991,11 @@ PathFromEdge src/Dodge/Data/Room.hs 81;" t PathShowType src/Dodge/Data/Universe.hs 52;" t PathTo src/Dodge/Data/ActionPlan.hs 76;" C Pathing src/Dodge/Data/Config.hs 90;" C -Patrol src/Dodge/Data/ActionPlan.hs 140;" C +Patrol src/Dodge/Data/ActionPlan.hs 133;" C PauseTimeMessage src/Dodge/Data/World.hs 89;" C PausedTimeFlow src/Dodge/Data/World.hs 85;" C Payload src/Dodge/Data/Payload.hs 9;" t +PeckingCK src/Dodge/Data/Creature/Misc.hs 115;" C PenetrateBullet src/Dodge/Data/Bullet.hs 30;" C Perception src/Dodge/Data/Creature/Perception.hs 30;" t Photovoltaic src/Dodge/Data/Material.hs 20;" C @@ -1004,7 +1007,7 @@ Piezoelectric src/Dodge/Data/Material.hs 23;" C Pitted src/Dodge/Data/Creature.hs 75;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 128;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 141;" C PlainDeath src/Dodge/Data/Creature.hs 77;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 12;" t @@ -1123,7 +1126,7 @@ ResourceFailure src/Dodge/Data/Scenario.hs 29;" C RespawnDelay src/Dodge/Data/World.hs 67;" C RetailFacility src/Dodge/Data/Scenario.hs 67;" C RetiredProjectile src/Dodge/Data/Projectile.hs 38;" C -ReturnToHive src/Dodge/Data/ActionPlan.hs 152;" C +ReturnToHive src/Dodge/Data/ActionPlan.hs 145;" C Revenge src/Dodge/Data/Scenario.hs 6;" C RewindLeftClick src/Dodge/Data/World.hs 81;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C @@ -1174,9 +1177,9 @@ SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C Scope src/Dodge/Data/Item/Scope.hs 11;" t ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 150;" C -SearchForFood src/Dodge/Data/ActionPlan.hs 160;" C -SearchTimed src/Dodge/Data/ActionPlan.hs 151;" C +Search src/Dodge/Data/ActionPlan.hs 143;" C +SearchForFood src/Dodge/Data/ActionPlan.hs 153;" C +SearchTimed src/Dodge/Data/ActionPlan.hs 144;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 26;" t SeeAbove src/Dodge/Data/Wall.hs 32;" C @@ -1191,7 +1194,7 @@ SelfTree src/Dodge/Data/MetaTree.hs 21;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C -SentinelAt src/Dodge/Data/ActionPlan.hs 163;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 156;" C SetBeeRandomMovement src/Dodge/Data/ActionPlan.hs 52;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C @@ -1210,7 +1213,7 @@ ShellSound src/Dodge/Data/SoundOrigin.hs 28;" C ShieldGroup src/Dodge/Data/Creature/State.hs 30;" C Shockwave src/Dodge/Data/Shockwave.hs 16;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 13;" t -ShootAt src/Dodge/Data/ActionPlan.hs 141;" C +ShootAt src/Dodge/Data/ActionPlan.hs 134;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 94;" C @@ -1238,11 +1241,11 @@ SixteenthRes src/Dodge/Data/Config.hs 115;" C Size src/Shape/Data.hs 24;" t SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C -SlimeCrit src/Dodge/Data/Creature/Misc.hs 76;" C -SlimeDistortion src/Dodge/Data/Creature/Misc.hs 105;" C +SlimeCrit src/Dodge/Data/Creature/Misc.hs 83;" C +SlimeDistortion src/Dodge/Data/Creature/Misc.hs 118;" C SlimeIntelligence src/Dodge/Data/ActionPlan.hs 16;" C -SlimeShapeDistortion src/Dodge/Data/Creature/Misc.hs 105;" t -SlinkCrit src/Dodge/Data/Creature/Misc.hs 71;" C +SlimeShapeDistortion src/Dodge/Data/Creature/Misc.hs 118;" t +SlinkCrit src/Dodge/Data/Creature/Misc.hs 78;" C Small src/Shape/Data.hs 27;" C Smoke src/Dodge/Data/Cloud.hs 22;" C SmokeReducerSF src/Dodge/Data/ComposedItem.hs 29;" C @@ -1282,8 +1285,8 @@ StartStopMvType src/Dodge/Data/Creature/Misc.hs 30;" C StayInArea src/Dodge/Data/Scenario.hs 13;" C Stone src/Dodge/Data/Material.hs 13;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C -Strategy src/Dodge/Data/ActionPlan.hs 136;" t -StrategyInt src/Dodge/Data/ActionPlan.hs 154;" C +Strategy src/Dodge/Data/ActionPlan.hs 129;" t +StrategyInt src/Dodge/Data/ActionPlan.hs 147;" C SubInventory src/Dodge/Data/HUD.hs 15;" t Superfluous src/Shape/Data.hs 34;" C Surface src/Shape/Data.hs 38;" t @@ -1292,7 +1295,7 @@ Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C Swallowed src/Dodge/Data/Creature.hs 75;" 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 100;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 107;" C TAPE src/Dodge/Data/Item/Combine.hs 56;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C TCBase src/Dodge/Data/Terminal.hs 49;" C @@ -1418,6 +1421,7 @@ UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 14;" C UnlockInv src/Dodge/Data/WorldEffect.hs 31;" C UnusedLink src/Dodge/Data/Room.hs 72;" C UpdateRandGen src/Dodge/Data/ActionPlan.hs 51;" C +UprightCK src/Dodge/Data/Creature/Misc.hs 113;" C UseAttach src/Dodge/Data/Item/Use.hs 30;" C UseBulletMod src/Dodge/Data/Item/Use.hs 35;" C UseCondition src/Dodge/Data/UseCondition.hs 4;" t @@ -1487,15 +1491,15 @@ 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 -Wander src/Dodge/Data/ActionPlan.hs 147;" C +Wander src/Dodge/Data/ActionPlan.hs 140;" C War src/Dodge/Data/Scenario.hs 28;" C WarmTime src/Dodge/Data/Item/Params.hs 19;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C -WarningCry src/Dodge/Data/ActionPlan.hs 145;" C +WarningCry src/Dodge/Data/ActionPlan.hs 138;" C WasMouseGameRotating src/Dodge/Data/Input.hs 54;" C WasNotMouseGameRotating src/Dodge/Data/Input.hs 55;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 143;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 136;" C WdBl src/Dodge/Data/WorldEffect.hs 56;" t WdBlBtOn src/Dodge/Data/WorldEffect.hs 62;" C WdBlConst src/Dodge/Data/WorldEffect.hs 59;" C @@ -1546,7 +1550,7 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 31;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 27;" f _alphaDivideShader src/Data/Preload/Render.hs 20;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" f -_ambushTarget src/Dodge/Data/ActionPlan.hs 138;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 131;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 52;" f _ampPayload src/Dodge/Data/Item/Use.hs 51;" f @@ -1570,7 +1574,7 @@ _avStrength src/Dodge/Data/Creature/Misc.hs 52;" f _avatarMaterial src/Dodge/Data/Creature/Misc.hs 51;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 50;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 102;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 109;" 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 @@ -1578,12 +1582,12 @@ _bdMinX src/Dodge/Data/Bounds.hs 11;" f _bdMinY src/Dodge/Data/Bounds.hs 13;" f _bdsTrigger src/Dodge/Data/Button.hs 26;" f _beamCombine src/Dodge/Data/Beam.hs 46;" f -_beeAggro src/Dodge/Data/Creature/Misc.hs 90;" f -_beeHive src/Dodge/Data/Creature/Misc.hs 88;" f -_beeLifespan src/Dodge/Data/Creature/Misc.hs 93;" f +_beeAggro src/Dodge/Data/Creature/Misc.hs 97;" f +_beeHive src/Dodge/Data/Creature/Misc.hs 95;" f +_beeLifespan src/Dodge/Data/Creature/Misc.hs 100;" f _beePheremones src/Dodge/Data/LWorld.hs 99;" f -_beeRandomMovement src/Dodge/Data/Creature/Misc.hs 92;" f -_beeSlime src/Dodge/Data/Creature/Misc.hs 87;" f +_beeRandomMovement src/Dodge/Data/Creature/Misc.hs 99;" f +_beeSlime src/Dodge/Data/Creature/Misc.hs 94;" f _blDir src/Dodge/Data/Block.hs 27;" f _blDraw src/Dodge/Data/Block.hs 29;" f _blFootprint src/Dodge/Data/Block.hs 25;" f @@ -1665,6 +1669,13 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 35;" f _ceSideEffect src/Dodge/Data/Universe.hs 64;" f _ceString src/Dodge/Data/Universe.hs 65;" f _ceilingStencilShader src/Data/Preload/Render.hs 19;" f +_chaseKState src/Dodge/Data/Creature/Misc.hs 68;" f +_chaseLerp src/Dodge/Data/Creature/Misc.hs 67;" f +_chaseqy0 src/Dodge/Data/Creature/Misc.hs 62;" f +_chaseqy1 src/Dodge/Data/Creature/Misc.hs 63;" f +_chaseqy2 src/Dodge/Data/Creature/Misc.hs 64;" f +_chaseqy3 src/Dodge/Data/Creature/Misc.hs 65;" f +_chaseqz src/Dodge/Data/Creature/Misc.hs 66;" f _chasmShader src/Data/Preload/Render.hs 48;" f _chasmVBO src/Data/Preload/Render.hs 47;" f _chasms src/Dodge/Data/CWorld.hs 33;" f @@ -1780,27 +1791,27 @@ _dmVector src/Dodge/Data/Damage.hs 16;" f _dmVector src/Dodge/Data/Damage.hs 19;" f _dmVector src/Dodge/Data/Damage.hs 22;" f _dmVector src/Dodge/Data/Damage.hs 28;" f -_doActionIfAction src/Dodge/Data/ActionPlan.hs 97;" f -_doActionIfCondition src/Dodge/Data/ActionPlan.hs 96;" f -_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 101;" f -_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 102;" f -_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 100;" f -_doActionThenFirst src/Dodge/Data/ActionPlan.hs 111;" f -_doActionThenSecond src/Dodge/Data/ActionPlan.hs 112;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 93;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 92;" f -_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 91;" f -_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 106;" f -_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 105;" f -_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 107;" f +_doActionIfAction src/Dodge/Data/ActionPlan.hs 93;" f +_doActionIfCondition src/Dodge/Data/ActionPlan.hs 92;" f +_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 97;" f +_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 98;" f +_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 96;" f +_doActionThenFirst src/Dodge/Data/ActionPlan.hs 107;" f +_doActionThenSecond src/Dodge/Data/ActionPlan.hs 108;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 89;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 88;" f +_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 87;" f +_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 102;" f +_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 101;" f +_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 103;" f _doCID src/Dodge/Data/Damage.hs 32;" f _doImpulsesList src/Dodge/Data/ActionPlan.hs 81;" f _doMID src/Dodge/Data/Damage.hs 35;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 116;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 121;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 115;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 120;" f -_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 66;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 112;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 117;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 111;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 116;" f +_dodgeCooldown src/Dodge/Data/Creature/Misc.hs 73;" f _doors src/Dodge/Data/LWorld.hs 125;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f _drHP src/Dodge/Data/Door.hs 38;" f @@ -1851,7 +1862,7 @@ _flPos src/Dodge/Data/Flame.hs 14;" f _flTimer src/Dodge/Data/Flame.hs 13;" f _flVel src/Dodge/Data/Flame.hs 15;" f _flames src/Dodge/Data/LWorld.hs 110;" f -_flankTarget src/Dodge/Data/ActionPlan.hs 137;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 130;" f _flares src/Dodge/Data/LWorld.hs 113;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _flboName src/Shader/Data.hs 86;" f @@ -1913,16 +1924,16 @@ _guTime src/Dodge/Data/Gust.hs 15;" f _guVel src/Dodge/Data/Gust.hs 14;" f _gusts src/Dodge/Data/LWorld.hs 102;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f -_harvestTarget src/Dodge/Data/ActionPlan.hs 153;" f +_harvestTarget src/Dodge/Data/ActionPlan.hs 146;" f _heldPos src/Dodge/Data/Input.hs 44;" f _heldWorldPos src/Dodge/Data/Input.hs 46;" f _hiAimStance src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f _hiAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 18;" f _hiRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f -_hiveChildren src/Dodge/Data/Creature/Misc.hs 96;" f -_hiveGestation src/Dodge/Data/Creature/Misc.hs 97;" f -_hiveSlime src/Dodge/Data/Creature/Misc.hs 98;" f +_hiveChildren src/Dodge/Data/Creature/Misc.hs 103;" f +_hiveGestation src/Dodge/Data/Creature/Misc.hs 104;" f +_hiveSlime src/Dodge/Data/Creature/Misc.hs 105;" f _hotkeys src/Dodge/Data/LWorld.hs 146;" f _hud src/Dodge/Data/World.hs 48;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f @@ -1969,17 +1980,17 @@ _items src/Dodge/Data/LWorld.hs 97;" f _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f -_killTarget src/Dodge/Data/ActionPlan.hs 162;" f +_killTarget src/Dodge/Data/ActionPlan.hs 155;" f _lAimPos src/Dodge/Data/LWorld.hs 148;" f _lClock src/Dodge/Data/LWorld.hs 143;" f -_lFootPos src/Dodge/Data/Creature/Misc.hs 67;" f +_lFootPos src/Dodge/Data/Creature/Misc.hs 74;" f _lInvLock src/Dodge/Data/LWorld.hs 149;" f _lTestInt src/Dodge/Data/LWorld.hs 145;" f _lTestString src/Dodge/Data/LWorld.hs 144;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f -_lampColor src/Dodge/Data/Creature/Misc.hs 103;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 103;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 103;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 110;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 110;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 110;" f _lasWepXSF src/Dodge/Data/ComposedItem.hs 42;" f _laserEmmiter src/Dodge/Data/Laser.hs 17;" f _laserTypeDamage src/Dodge/Data/Laser.hs 16;" f @@ -1988,7 +1999,7 @@ _ldpPos src/Dodge/Data/SelectionList.hs 16;" f _ldpScale src/Dodge/Data/SelectionList.hs 17;" f _ldpSize src/Dodge/Data/SelectionList.hs 19;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 18;" f -_leadTargetBy src/Dodge/Data/ActionPlan.hs 123;" f +_leadTargetBy src/Dodge/Data/ActionPlan.hs 119;" f _lightSources src/Dodge/Data/LWorld.hs 138;" f _lightUBO src/Data/Preload/Render.hs 43;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f @@ -2020,7 +2031,7 @@ _lyGen src/Dodge/Data/MetaTree.hs 31;" f _machines src/Dodge/Data/LWorld.hs 126;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f _magnets src/Dodge/Data/LWorld.hs 129;" f -_mainAction src/Dodge/Data/ActionPlan.hs 131;" f +_mainAction src/Dodge/Data/ActionPlan.hs 124;" f _manObject src/Dodge/Data/HUD.hs 38;" f _mapInvItmID src/Dodge/Data/HUD.hs 21;" f _mapInvOffset src/Dodge/Data/HUD.hs 19;" f @@ -2068,11 +2079,11 @@ _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 59;" f -_meleeCooldown src/Dodge/Data/Creature/Misc.hs 70;" f -_meleeCooldown src/Dodge/Data/Creature/Misc.hs 91;" f -_meleeCooldownL src/Dodge/Data/Creature/Misc.hs 64;" f -_meleeCooldownR src/Dodge/Data/Creature/Misc.hs 65;" f -_meleeTarget src/Dodge/Data/ActionPlan.hs 148;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 77;" f +_meleeCooldown src/Dodge/Data/Creature/Misc.hs 98;" f +_meleeCooldownL src/Dodge/Data/Creature/Misc.hs 71;" f +_meleeCooldownR src/Dodge/Data/Creature/Misc.hs 72;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 141;" f _mgField src/Dodge/Data/Magnet.hs 23;" f _mgPos src/Dodge/Data/Magnet.hs 22;" f _moEff src/Dodge/Data/Universe.hs 111;" f @@ -2133,7 +2144,7 @@ _opTexture src/Dodge/Data/Wall.hs 34;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 18;" f _opticPos src/Dodge/Data/Item/Scope.hs 14;" f _opticZoom src/Dodge/Data/Item/Scope.hs 17;" f -_partialAction src/Dodge/Data/ActionPlan.hs 119;" f +_partialAction src/Dodge/Data/ActionPlan.hs 115;" f _pastWorlds src/Dodge/Data/World.hs 38;" f _pathFailAction src/Dodge/Data/ActionPlan.hs 76;" f _pathToPoint src/Dodge/Data/ActionPlan.hs 76;" f @@ -2148,7 +2159,7 @@ _phTargetingID src/Dodge/Data/Projectile.hs 44;" 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 129;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 142;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 24;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 26;" f _pjDir src/Dodge/Data/Projectile.hs 19;" f @@ -2230,7 +2241,7 @@ _pzbPos src/Dodge/Data/PulseLaser.hs 24;" f _pzbTimer src/Dodge/Data/PulseLaser.hs 25;" f _pzbVel src/Dodge/Data/PulseLaser.hs 23;" f _rCommands src/Dodge/Terminal.hs 165;" f -_rFootPos src/Dodge/Data/Creature/Misc.hs 68;" f +_rFootPos src/Dodge/Data/Creature/Misc.hs 75;" f _radarBlips src/Dodge/Data/LWorld.hs 112;" f _radarSweeps src/Dodge/Data/LWorld.hs 108;" f _randGen src/Dodge/Data/World.hs 40;" f @@ -2325,19 +2336,19 @@ _scrollTestInt src/Dodge/Data/Input.hs 49;" f _scurColor src/Dodge/Data/SelectionList.hs 29;" f _scurPos src/Dodge/Data/SelectionList.hs 27;" f _scurSize src/Dodge/Data/SelectionList.hs 28;" f -_sdIsSplit src/Dodge/Data/Creature/Misc.hs 108;" f -_sdShape src/Dodge/Data/Creature/Misc.hs 107;" f -_sdTime src/Dodge/Data/Creature/Misc.hs 106;" f +_sdIsSplit src/Dodge/Data/Creature/Misc.hs 121;" f +_sdShape src/Dodge/Data/Creature/Misc.hs 120;" f +_sdTime src/Dodge/Data/Creature/Misc.hs 119;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f -_searchTimer src/Dodge/Data/ActionPlan.hs 151;" f +_searchTimer src/Dodge/Data/ActionPlan.hs 144;" f _seenLocations src/Dodge/Data/LWorld.hs 140;" f _selLocation src/Dodge/Data/LWorld.hs 141;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 163;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 163;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 156;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 156;" f _sfColor src/Shape/Data.hs 41;" f _sfShadowImportance src/Shape/Data.hs 42;" f _sfSize src/Shape/Data.hs 43;" f @@ -2360,25 +2371,25 @@ _siPayload src/Dodge/Data/SelectionList.hs 54;" f _siPictures src/Dodge/Data/SelectionList.hs 48;" f _siWidth src/Dodge/Data/SelectionList.hs 50;" f _sideEffect src/Loop/Data.hs 13;" f -_sideImpulses src/Dodge/Data/ActionPlan.hs 130;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 123;" f _silhouetteEBO src/Data/Preload/Render.hs 30;" f _skOldPos src/Dodge/Data/Spark.hs 14;" f _skPos src/Dodge/Data/Spark.hs 13;" f _skType src/Dodge/Data/Spark.hs 15;" f _skVel src/Dodge/Data/Spark.hs 12;" f -_skinHead src/Dodge/Data/Creature/Misc.hs 119;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 121;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 120;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 132;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 134;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 133;" f _slInt src/Dodge/Data/HUD.hs 42;" f _slSec src/Dodge/Data/HUD.hs 42;" f -_slimeCompression src/Dodge/Data/Creature/Misc.hs 82;" f -_slimeDistortion src/Dodge/Data/Creature/Misc.hs 81;" f -_slimeEngulfProgress src/Dodge/Data/Creature/Misc.hs 84;" f -_slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 83;" f -_slimeSlime src/Dodge/Data/Creature/Misc.hs 77;" f -_slimeSlimeChange src/Dodge/Data/Creature/Misc.hs 78;" f -_slinkHeadPos src/Dodge/Data/Creature/Misc.hs 74;" f -_slinkSpine src/Dodge/Data/Creature/Misc.hs 73;" f +_slimeCompression src/Dodge/Data/Creature/Misc.hs 89;" f +_slimeDistortion src/Dodge/Data/Creature/Misc.hs 88;" f +_slimeEngulfProgress src/Dodge/Data/Creature/Misc.hs 91;" f +_slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 90;" f +_slimeSlime src/Dodge/Data/Creature/Misc.hs 84;" f +_slimeSlimeChange src/Dodge/Data/Creature/Misc.hs 85;" f +_slinkHeadPos src/Dodge/Data/Creature/Misc.hs 81;" f +_slinkSpine src/Dodge/Data/Creature/Misc.hs 80;" f _smoothScrollAmount src/Dodge/Data/Input.hs 42;" f _soundAngDist src/Sound/Data.hs 47;" f _soundChannel src/Sound/Data.hs 46;" f @@ -2403,8 +2414,8 @@ _ssShownLength src/Dodge/Data/SelectionList.hs 36;" f _ssYOffset src/Dodge/Data/SelectionList.hs 34;" f _ssboName src/Shader/Data.hs 97;" f _ssboPtr src/Shader/Data.hs 98;" f -_startStopMv src/Dodge/Data/Creature/Misc.hs 89;" f -_strategyInt src/Dodge/Data/ActionPlan.hs 154;" f +_startStopMv src/Dodge/Data/Creature/Misc.hs 96;" f +_strategyInt src/Dodge/Data/ActionPlan.hs 147;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 57;" f _strideAmount src/Dodge/Data/Creature/Misc.hs 61;" f _stuckCrID src/Dodge/Data/Projectile.hs 50;" f @@ -2655,7 +2666,7 @@ airlockCrystal src/Dodge/Room/Airlock.hs 251;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 104;" f airlockSimple src/Dodge/Room/Airlock.hs 129;" f airlockZ src/Dodge/Room/Airlock.hs 166;" f -allVisibleWalls src/Dodge/Base/Collide.hs 242;" f +allVisibleWalls src/Dodge/Base/Collide.hs 259;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f @@ -2673,8 +2684,8 @@ angleVV src/Geometry/Vector.hs 58;" f angleVV3 src/Geometry/Vector3D.hs 123;" f angleVVTests test/Spec.hs 67;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 68;" f -anythingHitCirc src/Dodge/Base/Collide.hs 347;" f -apply src/Quaternion.hs 78;" f +anythingHitCirc src/Dodge/Base/Collide.hs 364;" f +apply src/Quaternion.hs 80;" f applyCME src/Dodge/HeldUse.hs 397;" f applyClip src/Dodge/Debug.hs 191;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 15;" f @@ -2684,12 +2695,12 @@ applyIndividualDamage src/Dodge/Creature/Damage.hs 18;" f applyInvLock src/Dodge/HeldUse.hs 455;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f applyPosition src/Sound.hs 113;" f -applyRecoil src/Dodge/HeldUse.hs 486;" f +applyRecoil src/Dodge/HeldUse.hs 485;" f applyResFactor src/Dodge/Data/Config.hs 128;" f applyResFactorF src/Dodge/Data/Config.hs 137;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 83;" f -applySidePush src/Dodge/HeldUse.hs 584;" f -applySoundCME src/Dodge/HeldUse.hs 476;" f +applySidePush src/Dodge/HeldUse.hs 583;" f +applySoundCME src/Dodge/HeldUse.hs 475;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 44;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -2697,7 +2708,7 @@ applyToNode src/TreeHelp.hs 61;" f applyToRandomNode src/TreeHelp.hs 153;" f applyToSubforest src/TreeHelp.hs 80;" f applyToSubtree src/TreeHelp.hs 67;" f -applyTorqueCME src/Dodge/HeldUse.hs 595;" f +applyTorqueCME src/Dodge/HeldUse.hs 594;" f applyWorldConfig src/Dodge/Config.hs 55;" f aquamarine src/Color.hs 50;" f arHUD src/Dodge/Item/Scope.hs 140;" f @@ -2713,7 +2724,7 @@ argV src/Geometry/Vector.hs 89;" 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 378;" f +arms src/Dodge/Creature/Picture.hs 418;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2756,7 +2767,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 890;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Creature/Picture.hs 430;" f +barrelShape src/Dodge/Creature/Picture.hs 470;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 411;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f baseCI src/Dodge/Item/Grammar.hs 167;" f @@ -2765,7 +2776,7 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 325;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 408;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 396;" f -baseShoulder src/Dodge/Creature/Picture.hs 417;" f +baseShoulder src/Dodge/Creature/Picture.hs 457;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 302;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 294;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f @@ -2775,7 +2786,7 @@ basicCrPict src/Dodge/Creature/Picture.hs 70;" f basicCrShape src/Dodge/Creature/Picture.hs 73;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f -basicMuzFlare src/Dodge/HeldUse.hs 731;" f +basicMuzFlare src/Dodge/HeldUse.hs 730;" f battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f beeCrit src/Dodge/Creature/ChaseCrit.hs 92;" f @@ -2783,7 +2794,7 @@ beeLifespanCheck src/Dodge/Creature/Update.hs 120;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f beltMag src/Dodge/Item/Ammo.hs 38;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 130;" f -bgunSound src/Dodge/HeldUse.hs 540;" f +bgunSound src/Dodge/HeldUse.hs 539;" f bingate src/Dodge/Item/Scope.hs 115;" f blColor src/Dodge/Block/Debris.hs 54;" f black src/Color.hs 54;" f @@ -2824,7 +2835,7 @@ boolOption src/Dodge/Menu/OptionType.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 13;" f bossRoom src/Dodge/Room/Boss.hs 55;" f bounceDir src/Dodge/Bullet.hs 111;" f -bouncePoint src/Dodge/Base/Collide.hs 100;" f +bouncePoint src/Dodge/Base/Collide.hs 101;" f bounceSound src/Dodge/Projectile/Update.hs 75;" f boundPoints src/Bound.hs 9;" f boundPointsRect src/Bound.hs 23;" f @@ -2862,8 +2873,8 @@ cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcTexCoord src/Tile.hs 19;" f -canSee src/Dodge/Base/Collide.hs 333;" f -canSeeIndirect src/Dodge/Base/Collide.hs 340;" f +canSee src/Dodge/Base/Collide.hs 350;" f +canSeeIndirect src/Dodge/Base/Collide.hs 357;" f canSpring src/Dodge/Update.hs 1004;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 26;" f capacitor src/Dodge/Item/Ammo.hs 67;" f @@ -2874,6 +2885,8 @@ cardVec src/Dodge/Base/CardinalPoint.hs 17;" f cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 43;" f cardinalVectors src/Dodge/FloorItem.hs 26;" f carvePoly src/Dodge/LevelGen/StaticWalls.hs 77;" f +ccAngles src/Dodge/Creature/Update.hs 375;" f +ccKState src/Dodge/Creature/Update.hs 392;" f cdtPropagateFold src/Dodge/DoubleTree.hs 189;" f ceilingTo src/Geometry/Zone.hs 15;" f cenLasTur src/Dodge/Room/LasTurret.hs 52;" f @@ -2890,7 +2903,7 @@ changeSwapWith src/Dodge/Inventory.hs 250;" f charToTuple src/Picture/Base.hs 312;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 51;" f -chaseCorpse src/Dodge/Creature/Picture.hs 316;" f +chaseCorpse src/Dodge/Creature/Picture.hs 356;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 35;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 193;" f chaseUpperBody src/Dodge/Creature/Picture.hs 181;" f @@ -2898,11 +2911,11 @@ chasmRotate src/Dodge/Creature/State/WalkCycle.hs 149;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 417;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 348;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 126;" f -chasmWallToSurface src/Dodge/Base/Collide.hs 133;" f +chasmWallToSurface src/Dodge/Base/Collide.hs 134;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f checkConnection src/Dodge/Inventory/Swap.hs 63;" f -checkDeath src/Dodge/Creature/Update.hs 461;" f -checkDeath' src/Dodge/Creature/Update.hs 464;" f +checkDeath src/Dodge/Creature/Update.hs 512;" f +checkDeath' src/Dodge/Creature/Update.hs 515;" f checkEndGame src/Dodge/Update.hs 890;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2920,12 +2933,12 @@ chooseEquipPosition src/Dodge/Inventory/RBList.hs 42;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 178;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 48;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 69;" f -circHitWall src/Dodge/Base/Collide.hs 255;" f +circHitWall src/Dodge/Base/Collide.hs 272;" f circInPolygon src/Geometry/Polygon.hs 110;" f -circOnAnyCr src/Dodge/Base/Collide.hs 297;" f +circOnAnyCr src/Dodge/Base/Collide.hs 314;" f circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f -circOnSomeWall src/Dodge/Base/Collide.hs 291;" f +circOnSomeWall src/Dodge/Base/Collide.hs 308;" f circSegsInside src/Dodge/Creature/State/WalkCycle.hs 112;" f circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 101;" f circle src/Picture/Base.hs 172;" f @@ -2970,18 +2983,18 @@ colCrWall src/Dodge/WallCreatureCollisions.hs 27;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f collectDamageTypes src/Dodge/Damage.hs 54;" f collectInvItems src/Dodge/Inventory.hs 179;" f -collide3 src/Dodge/Base/Collide.hs 142;" f -collide3Chasm src/Dodge/Base/Collide.hs 126;" f -collide3Chasms src/Dodge/Base/Collide.hs 118;" f -collide3Creature src/Dodge/Base/Collide.hs 175;" f -collide3Floors src/Dodge/Base/Collide.hs 156;" f -collide3Wall src/Dodge/Base/Collide.hs 170;" f -collide3Walls src/Dodge/Base/Collide.hs 151;" f -collide3WallsFloor src/Dodge/Base/Collide.hs 112;" f -collideCircWalls src/Dodge/Base/Collide.hs 267;" f -collidePoint src/Dodge/Base/Collide.hs 57;" f -collidePointTestFilter src/Dodge/Base/Collide.hs 205;" f -collidePointWallsFilter src/Dodge/Base/Collide.hs 219;" f +collide3 src/Dodge/Base/Collide.hs 143;" f +collide3Chasm src/Dodge/Base/Collide.hs 127;" f +collide3Chasms src/Dodge/Base/Collide.hs 119;" f +collide3Creature src/Dodge/Base/Collide.hs 176;" f +collide3Floors src/Dodge/Base/Collide.hs 157;" f +collide3Wall src/Dodge/Base/Collide.hs 171;" f +collide3Walls src/Dodge/Base/Collide.hs 152;" f +collide3WallsFloor src/Dodge/Base/Collide.hs 113;" f +collideCircWalls src/Dodge/Base/Collide.hs 284;" f +collidePoint src/Dodge/Base/Collide.hs 58;" f +collidePointTestFilter src/Dodge/Base/Collide.hs 222;" f +collidePointWallsFilter src/Dodge/Base/Collide.hs 236;" f color src/Picture/Base.hs 100;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorSH src/Shape.hs 239;" f @@ -2997,7 +3010,7 @@ combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 800;" f combineTree src/Dodge/Tree/Compose.hs 68;" f commandColor src/Dodge/Terminal.hs 127;" f commonPrefix src/Dodge/Debug/Terminal.hs 149;" f -comp src/Quaternion.hs 75;" f +comp src/Quaternion.hs 77;" f compP2A src/Dodge/ShiftPoint.hs 11;" f compactDraw src/Dodge/LevelGen.hs 96;" f compactDraw' src/Dodge/LevelGen.hs 107;" f @@ -3028,7 +3041,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 164;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 411;" f cornerList src/Preload/Render.hs 236;" f -corpseOrGib src/Dodge/Creature/Update.hs 508;" f +corpseOrGib src/Dodge/Creature/Update.hs 559;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -3039,14 +3052,14 @@ crBlips src/Dodge/RadarSweep.hs 88;" f crCanSeeCr src/Dodge/Creature/Test.hs 49;" f crCrSpring src/Dodge/Update.hs 1011;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 68;" f -crDeathEffects src/Dodge/Creature/Update.hs 483;" f +crDeathEffects src/Dodge/Creature/Update.hs 534;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 40;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crHasTarget src/Dodge/Creature/Test.hs 62;" f crHasTargetLOS src/Dodge/Creature/Test.hs 65;" f -crHeight src/Dodge/Base/Collide.hs 181;" f +crHeight src/Dodge/Base/Collide.hs 182;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 168;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f @@ -3058,7 +3071,8 @@ 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 -crMoveImpulses src/Dodge/Creature/Action.hs 143;" f +crMid src/Dodge/Base/Collide.hs 198;" f +crMoveImpulses src/Dodge/Creature/Action.hs 144;" f crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 39;" f crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 56;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 28;" f @@ -3071,7 +3085,7 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crOnSeg src/Dodge/WorldEvent/ThingsHit.hs 249;" f crOnSeg' src/Dodge/Creature/State/WalkCycle.hs 145;" f crPainEffect src/Dodge/Creature/State.hs 51;" f -crPathing src/Dodge/Creature/Action.hs 127;" f +crPathing src/Dodge/Creature/Action.hs 128;" f crRad src/Dodge/Creature/Radius.hs 7;" f crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 71;" f @@ -3079,7 +3093,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 999;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f -crUpdate src/Dodge/Creature/Update.hs 454;" f +crUpdate src/Dodge/Creature/Update.hs 505;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 34;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 28;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 69;" f @@ -3090,10 +3104,10 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 72;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 82;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 123;" f -crabCorpse src/Dodge/Creature/Picture.hs 338;" f +crabCorpse src/Dodge/Creature/Picture.hs 378;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 44;" f crabCritInternal src/Dodge/Humanoid.hs 11;" f -crabFeet src/Dodge/Creature/Picture.hs 240;" f +crabFeet src/Dodge/Creature/Picture.hs 280;" f crabRoom src/Dodge/Room/Tutorial.hs 471;" f crabUpperBody src/Dodge/Creature/Picture.hs 152;" f craftInfo src/Dodge/Item/Info.hs 168;" f @@ -3104,15 +3118,15 @@ createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 64;" f createItemYou src/Dodge/Inventory/Add.hs 72;" f createLightMap src/Render.hs 26;" f -createProjectile src/Dodge/HeldUse.hs 1305;" f -createProjectileR src/Dodge/HeldUse.hs 1254;" f +createProjectile src/Dodge/HeldUse.hs 1304;" f +createProjectileR src/Dodge/HeldUse.hs 1253;" f createShell src/Dodge/Projectile/Create.hs 21;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 69;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 130;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f -creatureShootLaser src/Dodge/HeldUse.hs 860;" f -creatureShootPulseLaser src/Dodge/HeldUse.hs 891;" f +creatureShootLaser src/Dodge/HeldUse.hs 859;" f +creatureShootPulseLaser src/Dodge/HeldUse.hs 890;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 91;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 112;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 101;" f @@ -3196,10 +3210,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 374;" f -deadRot src/Dodge/Creature/Picture.hs 392;" f -deadScalp src/Dodge/Creature/Picture.hs 387;" f -deadUpperBody src/Dodge/Creature/Picture.hs 414;" f +deadFeet src/Dodge/Creature/Picture.hs 414;" f +deadRot src/Dodge/Creature/Picture.hs 432;" f +deadScalp src/Dodge/Creature/Picture.hs 427;" f +deadUpperBody src/Dodge/Creature/Picture.hs 454;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 778;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f @@ -3236,7 +3250,7 @@ defHeldItem src/Dodge/Default/Item.hs 9;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 311;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 24;" f -defaultAimingCrit src/Dodge/Default/Creature.hs 105;" f +defaultAimingCrit src/Dodge/Default/Creature.hs 104;" f defaultAudition src/Dodge/Default/Creature.hs 90;" f defaultAutoWall src/Dodge/Default/Wall.hs 32;" f defaultBlock src/Dodge/Default/Block.hs 5;" f @@ -3249,7 +3263,7 @@ defaultCWorld src/Dodge/Default/World.hs 91;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 33;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 154;" f -defaultCreature src/Dodge/Default/Creature.hs 12;" f +defaultCreature src/Dodge/Default/Creature.hs 13;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 63;" f defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f defaultDeathSounds src/Dodge/Creature/Vocalization.hs 55;" f @@ -3301,7 +3315,7 @@ detV src/Geometry/Vector.hs 102;" f detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 436;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1225;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1224;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 205;" f @@ -3335,7 +3349,7 @@ doAnyEquipmentEffect src/Dodge/Creature/State.hs 174;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBarrelSpin src/Dodge/Projectile/Update.hs 188;" f doBlBl src/Dodge/BlBl.hs 5;" f -doBounce src/Dodge/Base/Collide.hs 81;" f +doBounce src/Dodge/Base/Collide.hs 82;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f doConLoop src/Loop.hs 138;" f doConLoop' src/Loop.hs 230;" f @@ -3362,7 +3376,7 @@ doDragSelect src/Dodge/Update/Input/InGame.hs 193;" f doDrawing src/Dodge/Render.hs 33;" f doDrawing' src/Dodge/Render.hs 44;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f -doGenFloat src/Dodge/HeldUse.hs 1186;" f +doGenFloat src/Dodge/HeldUse.hs 1185;" f doGravityPU src/Dodge/Projectile/Update.hs 36;" f doHeldUseEffect src/Dodge/HeldUse.hs 379;" f doInPlacements src/Dodge/Layout.hs 106;" f @@ -3377,7 +3391,7 @@ doPreload appDodge/Main.hs 133;" f doQuickload src/Dodge/Save.hs 83;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 8;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 473;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 494;" f doRoomPlacements src/Dodge/Layout.hs 121;" f doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 90;" f @@ -3454,7 +3468,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 153;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 158;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 426;" f +drawEquipment src/Dodge/Creature/Picture.hs 466;" f drawExamineInventory src/Dodge/Render/HUD.hs 198;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f @@ -3546,9 +3560,9 @@ 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 546;" f -dropInventoryPath src/Dodge/HeldUse.hs 1380;" f -dropItem src/Dodge/Creature/Action.hs 163;" f +dropAll src/Dodge/Creature/Update.hs 597;" f +dropInventoryPath src/Dodge/HeldUse.hs 1379;" f +dropItem src/Dodge/Creature/Action.hs 164;" f dropper src/Dodge/Item/Scope.hs 82;" f drumMag src/Dodge/Item/Ammo.hs 31;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f @@ -3636,8 +3650,8 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 246;" f fdiv src/ShortShow.hs 41;" f -feedSlime src/Dodge/Update.hs 1079;" f -feet src/Dodge/Creature/Picture.hs 226;" f +feedSlime src/Dodge/Update.hs 1080;" f +feet src/Dodge/Creature/Picture.hs 266;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 161;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3667,12 +3681,12 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flamerPic src/Dodge/Item/Draw/SPic.hs 399;" f -flareCircleAt src/Dodge/HeldUse.hs 715;" f +flareCircleAt src/Dodge/HeldUse.hs 714;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatLookupItems src/Dodge/Combine.hs 39;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 423;" f -fleePoint src/Dodge/Creature/Update.hs 414;" f +fleePoint src/Dodge/Creature/Update.hs 465;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f floatSize src/Shader/Parameters.hs 17;" f @@ -3715,7 +3729,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 277;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f -fuseSlimes src/Dodge/Update.hs 1093;" f +fuseSlimes src/Dodge/Update.hs 1094;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3729,7 +3743,7 @@ gameRoomsFromRooms src/Dodge/Layout.hs 170;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f gasEffect src/Dodge/Update.hs 915;" f -gasType src/Dodge/HeldUse.hs 1144;" f +gasType src/Dodge/HeldUse.hs 1143;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f generateGraphs src/Dodge/Menu.hs 147;" f @@ -3743,12 +3757,12 @@ geometryUnitTests test/Spec.hs 25;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 153;" f getAmmoLinks src/Dodge/Item/Grammar.hs 109;" f -getAttachedSFLink src/Dodge/HeldUse.hs 806;" f +getAttachedSFLink src/Dodge/HeldUse.hs 805;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 175;" f -getBulletType src/Dodge/HeldUse.hs 945;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 562;" f +getBulletType src/Dodge/HeldUse.hs 944;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 583;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f @@ -3757,16 +3771,16 @@ getCrsFromRooms' src/Dodge/Room/Tutorial.hs 615;" f getDebugMouseOver src/Dodge/Update.hs 475;" f getDistortions src/Dodge/Render.hs 448;" f getEdgesCrossing src/Dodge/Path.hs 39;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 1293;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1292;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getItemValue src/Dodge/Inventory/SelectionList.hs 159;" f -getLaserDamage src/Dodge/HeldUse.hs 728;" f -getLaserPhaseV src/Dodge/HeldUse.hs 725;" f +getLaserDamage src/Dodge/HeldUse.hs 727;" f +getLaserPhaseV src/Dodge/HeldUse.hs 724;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMenuMouseContext src/Dodge/Update.hs 487;" f getNodePos src/Dodge/Path.hs 36;" f -getPJStabiliser src/Dodge/HeldUse.hs 1280;" f +getPJStabiliser src/Dodge/HeldUse.hs 1279;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f @@ -3844,10 +3858,10 @@ handleTextInput src/Dodge/Event/Input.hs 19;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f hardQuit src/Dodge/Concurrent.hs 32;" f hasAutoDoorBody src/Dodge/Creature/Test.hs 135;" f -hasButtonLOS src/Dodge/Base/Collide.hs 316;" f +hasButtonLOS src/Dodge/Base/Collide.hs 333;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f -hasLOS src/Dodge/Base/Collide.hs 309;" f -hasLOSIndirect src/Dodge/Base/Collide.hs 325;" f +hasLOS src/Dodge/Base/Collide.hs 326;" f +hasLOSIndirect src/Dodge/Base/Collide.hs 342;" f hat src/Dodge/Item/Equipment.hs 65;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 68;" f @@ -3866,14 +3880,14 @@ heldHandlePos src/Dodge/Item/HeldOffset.hs 96;" f heldInfo src/Dodge/Item/Info.hs 92;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 20;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 163;" f -heldItemInvLock src/Dodge/HeldUse.hs 469;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1031;" f +heldItemInvLock src/Dodge/HeldUse.hs 468;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1030;" f heldItemMuzzles src/Dodge/HeldUse.hs 198;" f -heldItemRifling src/Dodge/HeldUse.hs 1073;" f +heldItemRifling src/Dodge/HeldUse.hs 1072;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 236;" f heldItemWeight src/Dodge/Creature/Statistics.hs 86;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f -heldTorqueAmount src/Dodge/HeldUse.hs 611;" f +heldTorqueAmount src/Dodge/HeldUse.hs 610;" f heldTriggerType src/Dodge/BaseTriggerType.hs 28;" f heron src/Geometry.hs 218;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f @@ -3892,7 +3906,7 @@ hotkeyToChar src/Dodge/Inventory/SelectionList.hs 200;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 197;" f hoverCrit src/Dodge/Creature/ChaseCrit.hs 83;" f -hoverCritHoverSound src/Dodge/Creature/Update.hs 437;" f +hoverCritHoverSound src/Dodge/Creature/Update.hs 488;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 62;" f hoverPainEffect src/Dodge/Creature/State.hs 58;" f @@ -3979,11 +3993,11 @@ invSetSelectionPos src/Dodge/Inventory.hs 264;" f invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f inventoryX src/Dodge/Creature.hs 101;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 238;" f -inverseSelNumPosFixedWidth src/Dodge/SelectionSections.hs 242;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 178;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 191;" f -inverseSelSecYintXPosCheckFixedWidth src/Dodge/SelectionSections.hs 210;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 245;" f +inverseSelNumPosFixedWidth src/Dodge/SelectionSections.hs 249;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 185;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 198;" f +inverseSelSecYintXPosCheckFixedWidth src/Dodge/SelectionSections.hs 217;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 44;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 16;" f invertIntMap src/IntMapHelp.hs 100;" f @@ -3992,7 +4006,7 @@ invertIntMapUnique src/IntMapHelp.hs 103;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 29;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f -isAmmoIntLink src/Dodge/HeldUse.hs 738;" f +isAmmoIntLink src/Dodge/HeldUse.hs 737;" f isAnimate src/Dodge/Creature/Test.hs 128;" f isBee src/Dodge/TestString.hs 45;" f isCognizant src/Dodge/Creature/Perception.hs 115;" f @@ -4035,7 +4049,7 @@ itemBelowAttachables src/Dodge/Item/Grammar.hs 54;" f itemBlips src/Dodge/RadarSweep.hs 94;" f itemBulkiness src/Dodge/Creature/YourControl.hs 157;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f -itemDetectorEffect src/Dodge/HeldUse.hs 812;" f +itemDetectorEffect src/Dodge/HeldUse.hs 811;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 54;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 82;" f @@ -4047,7 +4061,7 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 20;" f itemInternalValue src/Dodge/Item/Display.hs 34;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvLock src/Dodge/HeldUse.hs 464;" f +itemInvLock src/Dodge/HeldUse.hs 463;" f itemMuzzles src/Dodge/HeldUse.hs 173;" f itemRooms src/Dodge/LockAndKey.hs 40;" f itemRotTreeSPic src/Dodge/Item/Draw/SPicTree.hs 16;" f @@ -4099,7 +4113,7 @@ lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f lShape src/Dodge/Placement/Instance/LightSource.hs 61;" f lamp src/Dodge/Creature/Lamp.hs 18;" f -lampCrSPic src/Dodge/Creature/Picture.hs 435;" f +lampCrSPic src/Dodge/Creature/Picture.hs 475;" f lasCenRunClose' src/Dodge/Room/LasTurret.hs 308;" f lasCenRunClose1 src/Dodge/Room/LasTurret.hs 397;" f lasCenRunClose2 src/Dodge/Room/LasTurret.hs 470;" f @@ -4164,7 +4178,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 416;" f loadAmmoTut src/Dodge/Room/Tutorial.hs 475;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f -loadMuzzle src/Dodge/HeldUse.hs 654;" f +loadMuzzle src/Dodge/HeldUse.hs 653;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4208,7 +4222,7 @@ ltToCol src/Dodge/Laser/Update.hs 37;" f m src/ShortShow.hs 48;" f mAT src/Dodge/Item/MagAmmoType.hs 17;" f machinePistol src/Dodge/Item/Held/Stick.hs 24;" f -magAmmoParams src/Dodge/HeldUse.hs 965;" f +magAmmoParams src/Dodge/HeldUse.hs 964;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 9;" f magShield src/Dodge/Item/Equipment.hs 26;" f magV src/Geometry/Vector.hs 180;" f @@ -4221,12 +4235,12 @@ main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 149;" f makeBlip src/Dodge/RadarSweep.hs 70;" f makeBlockDebris src/Dodge/Block/Debris.hs 57;" f -makeBullet src/Dodge/HeldUse.hs 1010;" f +makeBullet src/Dodge/HeldUse.hs 1009;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 124;" f makeColorTermPara src/Dodge/Terminal.hs 121;" f -makeCorpse src/Dodge/Creature/Picture.hs 297;" f +makeCorpse src/Dodge/Creature/Picture.hs 337;" f makeCrGibs src/Dodge/Prop/Gib.hs 19;" f makeDebris src/Dodge/Block/Debris.hs 75;" f makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f @@ -4245,7 +4259,7 @@ makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f makeIntInterval src/Dodge/Zoning/Base.hs 37;" f makeMachineDebris src/Dodge/Block/Debris.hs 29;" f makeMovingEB src/Dodge/EnergyBall.hs 61;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 680;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 679;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 80;" f makePathBetween' src/Dodge/Path.hs 83;" f @@ -4287,7 +4301,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 584;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 605;" f maybeOpenConsole src/Dodge/Update.hs 136;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f @@ -4307,10 +4321,10 @@ mcProxSensorUpdate src/Dodge/Machine/Update.hs 165;" f mcProxTest src/Dodge/Machine/Update.hs 246;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 207;" f mcSPic src/Dodge/Render/ShapePicture.hs 153;" f -mcShootAuto src/Dodge/HeldUse.hs 1198;" f -mcShootLaser src/Dodge/HeldUse.hs 1190;" f +mcShootAuto src/Dodge/HeldUse.hs 1197;" f +mcShootLaser src/Dodge/HeldUse.hs 1189;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f -mcUseHeld src/Dodge/HeldUse.hs 1115;" f +mcUseHeld src/Dodge/HeldUse.hs 1114;" f mcUseItem src/Dodge/Machine/Update.hs 107;" f megaBattery src/Dodge/Item/Ammo.hs 54;" f megaShellMag src/Dodge/Item/Ammo.hs 44;" f @@ -4385,7 +4399,7 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 70;" f mouseCursorType src/Dodge/Render/Picture.hs 94;" f mouseInvHeight src/Dodge/Update/Input/InGame.hs 204;" f mouseInvPos src/Dodge/Update/Input/InGame.hs 212;" f -mouseInvPosFixWidth src/Dodge/SelectionSections.hs 230;" f +mouseInvPosFixWidth src/Dodge/SelectionSections.hs 237;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 39;" f mouseWorldPosW src/Dodge/Base/Coordinate.hs 42;" f moveBullet src/Dodge/Bullet.hs 200;" f @@ -4412,9 +4426,9 @@ multiLookupTrieI src/SimpleTrie.hs 66;" f multiSelScroll src/Dodge/Inventory.hs 197;" f multiSelScroll' src/Dodge/Inventory.hs 204;" f muout src/Dodge/RoomLink.hs 144;" f -muzFlareAt src/Dodge/HeldUse.hs 702;" f -muzzlePos src/Dodge/HeldUse.hs 787;" f -muzzleRandPos src/Dodge/HeldUse.hs 796;" f +muzFlareAt src/Dodge/HeldUse.hs 701;" f +muzzlePos src/Dodge/HeldUse.hs 786;" f +muzzleRandPos src/Dodge/HeldUse.hs 795;" f muzzleWallCheck src/Dodge/Update.hs 350;" f mvButton src/Dodge/Placement/PlaceSpot.hs 170;" f mvCr src/Dodge/Placement/PlaceSpot.hs 173;" f @@ -4444,7 +4458,7 @@ newSounds src/Dodge/Creature/Perception.hs 175;" f newSoundsToPlay src/Dodge/SoundSelection.hs 8;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f nextArc src/Dodge/Tesla.hs 61;" f -nextInSectionSS src/Dodge/SelectionSections.hs 39;" f +nextInSectionSS src/Dodge/SelectionSections.hs 40;" f nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f @@ -4478,7 +4492,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 91;" f -oneSmooth src/Dodge/Creature/Picture.hs 223;" f +oneSmooth src/Dodge/Creature/Picture.hs 263;" f openConsole src/Dodge/Update.hs 141;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4510,11 +4524,11 @@ overPos src/Picture/Base.hs 298;" f overPosObj src/Shape.hs 279;" f overPosSH src/Shape.hs 263;" f overPosSP src/ShapePicture.hs 41;" f -overlapCircWalls src/Dodge/Base/Collide.hs 248;" f -overlapCircWallsClosest src/Dodge/Base/Collide.hs 284;" f -overlapSegCrs src/Dodge/Base/Collide.hs 64;" f -overlapSegCrs' src/Dodge/Base/Collide.hs 72;" f -overlapSegWalls src/Dodge/Base/Collide.hs 228;" f +overlapCircWalls src/Dodge/Base/Collide.hs 265;" f +overlapCircWallsClosest src/Dodge/Base/Collide.hs 301;" f +overlapSegCrs src/Dodge/Base/Collide.hs 65;" f +overlapSegCrs' src/Dodge/Base/Collide.hs 73;" f +overlapSegWalls src/Dodge/Base/Collide.hs 245;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 271;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 37;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f @@ -4532,7 +4546,7 @@ passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 693;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 554;" f +pauseGame src/Dodge/Update/Input/InGame.hs 575;" f pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4546,9 +4560,9 @@ perMat src/MatrixHelper.hs 60;" f perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f performAction src/Dodge/Creature/Action.hs 61;" f performActions src/Dodge/Creature/Action.hs 44;" f -performAimAt src/Dodge/Creature/Action.hs 111;" f -performPathTo src/Dodge/Creature/Action.hs 132;" f -performTurnToA src/Dodge/Creature/Action.hs 152;" f +performAimAt src/Dodge/Creature/Action.hs 112;" f +performPathTo src/Dodge/Creature/Action.hs 133;" f +performTurnToA src/Dodge/Creature/Action.hs 153;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pickUpItem src/Dodge/Inventory/Add.hs 80;" f pickUpItemAt src/Dodge/Inventory/Add.hs 85;" f @@ -4594,12 +4608,10 @@ pointIsInCone src/Geometry.hs 375;" f pointIsOnScreen src/Dodge/Base/Window.hs 60;" f pointTowardsImpulse src/Dodge/Path.hs 120;" f pointTowardsImpulse' src/Dodge/Path.hs 123;" f -pointerToItem src/Dodge/Item/Location.hs 38;" f -pointerToItemID src/Dodge/Item/Location.hs 41;" f -pointerYourRootItem src/Dodge/Item/Location.hs 32;" f -pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f +pointerToItem src/Dodge/Item/Location.hs 36;" f +pointerToItemID src/Dodge/Item/Location.hs 39;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f -poisonSPic src/Dodge/Creature/Update.hs 542;" f +poisonSPic src/Dodge/Creature/Update.hs 593;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 518;" f pokeArrayOff src/Shader/Poke.hs 530;" f @@ -4662,7 +4674,7 @@ pop3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 838;" f popS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posRms src/Dodge/Tree/Shift.hs 46;" f -posSelSecYint src/Dodge/SelectionSections.hs 160;" f +posSelSecYint src/Dodge/SelectionSections.hs 167;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 36;" f postGenerationProcessing src/Dodge/LevelGen.hs 31;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 14;" f @@ -4741,17 +4753,19 @@ putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 21;" f putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 16;" f putWireEnd src/Dodge/Wire.hs 29;" f putWireStart src/Dodge/Wire.hs 32;" f -qNoRoll src/Quaternion.hs 52;" f -qNoRoll1 src/Quaternion.hs 57;" f -qNoRoll2 src/Quaternion.hs 60;" f -qToAng src/Quaternion.hs 69;" f -qToV2 src/Quaternion.hs 66;" f -qToV3 src/Quaternion.hs 63;" f -qid src/Quaternion.hs 72;" f +qNoRoll src/Quaternion.hs 54;" f +qNoRoll1 src/Quaternion.hs 59;" f +qNoRoll2 src/Quaternion.hs 62;" f +qToAng src/Quaternion.hs 71;" f +qToV2 src/Quaternion.hs 68;" f +qToV3 src/Quaternion.hs 65;" f +qid src/Quaternion.hs 74;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 195;" f quarterRoomTri src/Dodge/Room/Procedural.hs 159;" f quitCommand src/Dodge/Terminal.hs 106;" f -qz src/Quaternion.hs 81;" f +qx src/Quaternion.hs 86;" f +qy src/Quaternion.hs 89;" f +qz src/Quaternion.hs 83;" f 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 @@ -4803,7 +4817,7 @@ recComFindPredecessor src/Dodge/Terminal.hs 200;" f recComFindSuccessor src/Dodge/Terminal.hs 190;" f recComLookup src/Dodge/Terminal.hs 180;" f recTabComplete src/Dodge/Terminal.hs 227;" f -recoilAmount src/Dodge/HeldUse.hs 494;" f +recoilAmount src/Dodge/HeldUse.hs 493;" f rectNSWE src/Geometry/Polygon.hs 15;" f rectVV src/Geometry/Polygon.hs 48;" f rectWH src/Geometry/Polygon.hs 19;" f @@ -4831,7 +4845,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f rememberSounds src/Dodge/Creature/Perception.hs 182;" f remoteDetonator src/Dodge/Item/Scope.hs 152;" f remoteScreen src/Dodge/Item/Scope.hs 146;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 941;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 940;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeLights src/Dodge/Room/Modify.hs 34;" f @@ -4930,7 +4944,7 @@ rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 65;" f rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 220;" f -rotateToZ src/Quaternion.hs 38;" f +rotateToZ src/Quaternion.hs 40;" f rotateV src/Geometry/Vector.hs 114;" f rotateVAround src/Geometry/Vector.hs 121;" f rotateXY src/Polyhedra.hs 28;" f @@ -4971,10 +4985,10 @@ scale3 src/Picture/Base.hs 137;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f scaleSH src/Shape.hs 271;" f -scalp src/Dodge/Creature/Picture.hs 401;" f +scalp src/Dodge/Creature/Picture.hs 441;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 539;" f +scorchSPic src/Dodge/Creature/Update.hs 590;" 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 @@ -4983,7 +4997,7 @@ screenToWorldPos src/Dodge/Base/Coordinate.hs 45;" f scrollAugInvSel src/Dodge/Inventory.hs 267;" f scrollAugNextInSection src/Dodge/Inventory.hs 282;" f scrollRBOption src/Dodge/Update/Scroll.hs 140;" f -scrollSelectionSections src/Dodge/SelectionSections.hs 33;" f +scrollSelectionSections src/Dodge/SelectionSections.hs 34;" f scrollTimeBack src/Dodge/Update.hs 244;" f scrollTimeForward src/Dodge/Update.hs 261;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f @@ -5008,8 +5022,8 @@ selNumPosCardinal src/Dodge/Render/HUD.hs 493;" f selSecDrawCursor src/Dodge/Render/List.hs 102;" f selSecDrawCursorFixWidth src/Dodge/Render/List.hs 120;" f selSecSelCol src/Dodge/Render/HUD.hs 513;" f -selSecSelSize src/Dodge/SelectionSections.hs 156;" f -selSecYint src/Dodge/SelectionSections.hs 165;" f +selSecSelSize src/Dodge/SelectionSections.hs 163;" f +selSecYint src/Dodge/SelectionSections.hs 172;" f selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f selectionSet src/Dodge/Update/Input/InGame.hs 149;" f semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f @@ -5026,6 +5040,8 @@ sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f setBeeRandomMovement src/Dodge/Creature/Impulse.hs 110;" f setChannelPos src/Sound.hs 152;" f +setChaseCritKinematics src/Dodge/Creature/Update.hs 371;" f +setChaseCritKinematics' src/Dodge/Creature/Update.hs 398;" f setClickWorldPos src/Dodge/Update.hs 110;" f setClip src/Dodge/Debug.hs 254;" f setDepth src/Picture/Base.hs 120;" f @@ -5108,15 +5124,15 @@ shiftSetUp src/Dodge/Inventory.hs 142;" f shiftTile src/Dodge/Room/Link.hs 49;" f shineTargetLaser src/Dodge/Creature/State.hs 234;" f shineTorch src/Dodge/Creature/State.hs 271;" f -shootBullet src/Dodge/HeldUse.hs 1004;" f -shootBullets src/Dodge/HeldUse.hs 997;" f -shootLaser src/Dodge/HeldUse.hs 870;" f -shootPlasmaBall src/Dodge/HeldUse.hs 913;" f -shootPulseBall src/Dodge/HeldUse.hs 926;" f -shootPulseLaser src/Dodge/HeldUse.hs 899;" f +shootBullet src/Dodge/HeldUse.hs 1003;" f +shootBullets src/Dodge/HeldUse.hs 996;" f +shootLaser src/Dodge/HeldUse.hs 869;" f +shootPlasmaBall src/Dodge/HeldUse.hs 912;" f +shootPulseBall src/Dodge/HeldUse.hs 925;" f +shootPulseLaser src/Dodge/HeldUse.hs 898;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f -shootTeslaArc src/Dodge/HeldUse.hs 1215;" f -shootTractorBeam src/Dodge/HeldUse.hs 839;" f +shootTeslaArc src/Dodge/HeldUse.hs 1214;" f +shootTractorBeam src/Dodge/HeldUse.hs 838;" 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 @@ -5130,10 +5146,10 @@ showEquipItem src/Dodge/Item/Display.hs 109;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 87;" f -showManObj src/Dodge/TestString.hs 136;" f +showManObj src/Dodge/TestString.hs 139;" f showMuzzlePositions src/Dodge/Debug.hs 320;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 152;" f +showTimeFlow src/Dodge/TestString.hs 155;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5172,10 +5188,10 @@ slideWindow src/ListHelp.hs 81;" f slimeBulge src/Dodge/Projectile/Update.hs 110;" f slimeCrit src/Dodge/Creature/ChaseCrit.hs 70;" f slimeEatSound src/Dodge/Projectile/Update.hs 85;" f -slimeFood src/Dodge/Update.hs 1071;" f +slimeFood src/Dodge/Update.hs 1072;" f slimeOutline src/Dodge/Creature/Slime.hs 9;" f -slimeSuck src/Dodge/Update.hs 1055;" f -slimeToRad src/Dodge/Data/Creature/Misc.hs 112;" f +slimeSuck src/Dodge/Update.hs 1056;" f +slimeToRad src/Dodge/Data/Creature/Misc.hs 125;" f slinkCrit src/Dodge/Creature/ChaseCrit.hs 58;" f slinkCritUpdate src/Dodge/Creature/Update.hs 358;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f @@ -5223,7 +5239,7 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f spPos src/ShapePicture/Data.hs 11;" f -spaceAction src/Dodge/Update/Input/InGame.hs 557;" f +spaceAction src/Dodge/Update/Input/InGame.hs 578;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f @@ -5237,7 +5253,7 @@ spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 45;" f spawnerRoom src/Dodge/Room/Room.hs 390;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f -spiderJoint src/Dodge/Creature/Picture.hs 278;" f +spiderJoint src/Dodge/Creature/Picture.hs 318;" f splashMenu src/Dodge/Menu.hs 31;" f splashMenuOptions src/Dodge/Menu.hs 36;" f splashScreen src/Dodge/Initialisation.hs 10;" f @@ -5261,32 +5277,34 @@ square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 127;" f squashNormalizeV src/Geometry/Vector.hs 166;" f -ssLookupDown src/Dodge/SelectionSections.hs 79;" f -ssLookupGE src/Dodge/SelectionSections.hs 133;" f -ssLookupGE' src/Dodge/SelectionSections.hs 149;" f -ssLookupGT src/Dodge/SelectionSections.hs 120;" f -ssLookupGT' src/Dodge/SelectionSections.hs 126;" f -ssLookupLE src/Dodge/SelectionSections.hs 141;" f -ssLookupLE' src/Dodge/SelectionSections.hs 108;" f -ssLookupLT src/Dodge/SelectionSections.hs 95;" f -ssLookupLT' src/Dodge/SelectionSections.hs 101;" f -ssLookupMax src/Dodge/SelectionSections.hs 69;" f -ssLookupMaxInSection src/Dodge/SelectionSections.hs 89;" f -ssLookupMin src/Dodge/SelectionSections.hs 115;" f -ssLookupNextMax src/Dodge/SelectionSections.hs 84;" f -ssLookupUp src/Dodge/SelectionSections.hs 74;" f -ssScrollMinOnFail src/Dodge/SelectionSections.hs 49;" f -ssScrollUsing src/Dodge/SelectionSections.hs 42;" f -ssSetCursor src/Dodge/SelectionSections.hs 60;" f +ssLookupDown src/Dodge/SelectionSections.hs 80;" f +ssLookupGE src/Dodge/SelectionSections.hs 140;" f +ssLookupGE' src/Dodge/SelectionSections.hs 156;" f +ssLookupGT src/Dodge/SelectionSections.hs 124;" f +ssLookupLE src/Dodge/SelectionSections.hs 148;" f +ssLookupLE' src/Dodge/SelectionSections.hs 112;" f +ssLookupLT src/Dodge/SelectionSections.hs 96;" f +ssLookupMax src/Dodge/SelectionSections.hs 70;" f +ssLookupMaxInSection src/Dodge/SelectionSections.hs 90;" f +ssLookupMin src/Dodge/SelectionSections.hs 119;" f +ssLookupNextMax src/Dodge/SelectionSections.hs 85;" f +ssLookupSecGT src/Dodge/SelectionSections.hs 130;" f +ssLookupSecGTLoop src/Dodge/SelectionSections.hs 137;" f +ssLookupSecLT src/Dodge/SelectionSections.hs 105;" f +ssLookupSecLTLoop src/Dodge/SelectionSections.hs 102;" f +ssLookupUp src/Dodge/SelectionSections.hs 75;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 50;" f +ssScrollUsing src/Dodge/SelectionSections.hs 43;" f +ssSetCursor src/Dodge/SelectionSections.hs 61;" f ssfold src/FoldableHelp.hs 105;" f -sssSelectionSlice src/Dodge/SelectionSections.hs 246;" f +sssSelectionSlice src/Dodge/SelectionSections.hs 253;" f stackPicturesAt src/Dodge/Render/List.hs 96;" f stackPicturesAtOff src/Dodge/Render/List.hs 99;" f stackText src/Picture/Base.hs 180;" f stackedInventory src/Dodge/Creature.hs 316;" f startCr src/Dodge/Creature.hs 81;" f startCrafts src/Dodge/Room/Start.hs 94;" f -startDeathTimer src/Dodge/Creature/Update.hs 495;" f +startDeathTimer src/Dodge/Creature/Update.hs 546;" f startDrag src/Dodge/Update/Input/InGame.hs 302;" f startInvList src/Dodge/Creature.hs 95;" f startInventory src/Dodge/Creature.hs 98;" f @@ -5413,7 +5431,7 @@ thingsHitZ' src/Dodge/WorldEvent/ThingsHit.hs 65;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 862;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 820;" f -throwItem src/Dodge/Creature/Action.hs 207;" f +throwItem src/Dodge/Creature/Action.hs 208;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 221;" f tilesToLine src/Shader/AuxAddition.hs 66;" f @@ -5440,7 +5458,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 153;" 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 501;" f +toDeathCarriage src/Dodge/Creature/Update.hs 552;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5464,14 +5482,14 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f topPrismEdgeIndices src/Shader/Poke.hs 344;" f topPrismIndices src/Shader/Poke.hs 419;" f -topTestPart src/Dodge/TestString.hs 131;" f +topTestPart src/Dodge/TestString.hs 134;" f torchShape src/Dodge/Item/Draw/SPic.hs 278;" f -torqueAmount src/Dodge/HeldUse.hs 606;" f +torqueAmount src/Dodge/HeldUse.hs 605;" f torqueCr src/Dodge/WorldEffect.hs 85;" f -torso src/Dodge/Creature/Picture.hs 407;" f +torso src/Dodge/Creature/Picture.hs 447;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 851;" f +tractorBeamAt src/Dodge/HeldUse.hs 850;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 42;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 420;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -5518,10 +5536,10 @@ truncate src/Polyhedra/Geodesic.hs 39;" f trunkDepth src/TreeHelp.hs 164;" f tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryClickUse src/Dodge/Creature/YourControl.hs 205;" f -tryCombine src/Dodge/Update/Input/InGame.hs 574;" f +tryCombine src/Dodge/Update/Input/InGame.hs 595;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 184;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 134;" f -tryEvadeSideways src/Dodge/Creature/Action.hs 104;" f +tryEvadeSideways src/Dodge/Creature/Action.hs 105;" f tryGetChannel src/Sound.hs 99;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 18;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f @@ -5578,7 +5596,7 @@ updateAggroBee src/Dodge/Creature/Update.hs 129;" f updateAimPos src/Dodge/Update.hs 399;" f updateAllNodes src/TreeHelp.hs 88;" f updateArc src/Dodge/Tesla.hs 44;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 502;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 523;" f updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f @@ -5590,11 +5608,11 @@ updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 672;" f updateCalmBee src/Dodge/Creature/Update.hs 170;" f -updateCalmChaseCrit src/Dodge/Creature/Update.hs 422;" f +updateCalmChaseCrit src/Dodge/Creature/Update.hs 473;" f updateCamera src/Dodge/Update/Camera.hs 34;" f updateCarriage src/Dodge/Creature/State/WalkCycle.hs 22;" f updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 27;" f -updateChaseCrit src/Dodge/Creature/Update.hs 371;" f +updateChaseCrit src/Dodge/Creature/Update.hs 420;" f updateCloseObjects src/Dodge/Inventory.hs 99;" f updateCloud src/Dodge/Update.hs 919;" f updateClouds src/Dodge/Update.hs 783;" f @@ -5608,7 +5626,7 @@ updateCreatureStrides src/Dodge/Update.hs 375;" f updateDebris src/Dodge/Update.hs 686;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1110;" f +updateDelayedEvents src/Dodge/Update.hs 1111;" f updateDisplaySections src/Dodge/DisplayInventory.hs 117;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 665;" f @@ -5622,12 +5640,12 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 32;" f updateEnergyBalls src/Dodge/Update.hs 774;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 533;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 554;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 771;" f updateFloatingCamera src/Dodge/Update/Camera.hs 39;" f -updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f +updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 430;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 365;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 361;" f updateGas src/Dodge/Update.hs 941;" f @@ -5652,7 +5670,7 @@ updateLasers src/Dodge/Update.hs 516;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 61;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 467;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 488;" f updateMachine src/Dodge/Machine/Update.hs 24;" f updateMagnets src/Dodge/Update.hs 407;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 219;" f @@ -5668,7 +5686,7 @@ updatePlasmaBall src/Dodge/Update.hs 530;" f updatePlasmaBalls src/Dodge/Update.hs 679;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f -updatePulse src/Dodge/Creature/Update.hs 549;" f +updatePulse src/Dodge/Creature/Update.hs 600;" f updatePulseBall src/Dodge/Update.hs 550;" f updatePulseLaser src/Dodge/Update.hs 726;" f updatePulseLasers src/Dodge/Update.hs 525;" f @@ -5710,7 +5728,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 495;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f -upperBody src/Dodge/Creature/Picture.hs 422;" f +upperBody src/Dodge/Creature/Picture.hs 462;" f upperBox src/Shape.hs 149;" f upperBoxHalf src/Shape.hs 224;" f upperBoxMT src/Shape.hs 140;" f @@ -5730,21 +5748,21 @@ upperPrismPolyScale src/Shape.hs 209;" f upperPrismPolyTS src/Shape.hs 112;" f upperRounded src/Shape.hs 178;" f useBulletPayload src/Dodge/Bullet.hs 117;" f -useGasParams src/Dodge/HeldUse.hs 1120;" f +useGasParams src/Dodge/HeldUse.hs 1119;" f useHotkey src/Dodge/Creature/YourControl.hs 57;" f -useInventoryPath src/Dodge/HeldUse.hs 1411;" f +useInventoryPath src/Dodge/HeldUse.hs 1410;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 22;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 29;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f -useLoadedAmmo src/Dodge/HeldUse.hs 741;" f +useLoadedAmmo src/Dodge/HeldUse.hs 740;" f useMagShield src/Dodge/Euse.hs 33;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1371;" f +useRewindGun src/Dodge/HeldUse.hs 1370;" f useRoomPosCond src/Dodge/PlacementSpot.hs 187;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 190;" f -useStopWatch src/Dodge/HeldUse.hs 1352;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1360;" f +useStopWatch src/Dodge/HeldUse.hs 1351;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1359;" f useUnusedLnk src/Dodge/PlacementSpot.hs 178;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 216;" f @@ -5755,7 +5773,7 @@ vNormal src/Geometry/Vector.hs 157;" f vNormaly src/Geometry/Vector3D.hs 73;" f vShape src/Dodge/Placement/Instance/LightSource.hs 100;" f vToL src/MatrixHelper.hs 56;" f -vToQuat src/Quaternion.hs 45;" f +vToQuat src/Quaternion.hs 47;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f vasTightStride src/Shader/Compile.hs 128;" f vecBetweenSpeed src/Dodge/Base.hs 146;" f @@ -5774,21 +5792,21 @@ viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 253;" f violet src/Color.hs 48;" f -visibleWalls src/Dodge/Base/Collide.hs 233;" f +visibleWalls src/Dodge/Base/Collide.hs 250;" f visionCheck src/Dodge/Creature/Perception.hs 158;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 356;" f walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 86;" f -walkNozzle src/Dodge/HeldUse.hs 827;" f +walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 90;" f walkablePoint src/Dodge/WorldEvent/ThingsHit.hs 239;" f wallBlips src/Dodge/RadarSweep.hs 99;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallMovement src/Dodge/WallCreatureCollisions.hs 70;" f -wallToSurface src/Dodge/Base/Collide.hs 197;" f +wallToSurface src/Dodge/Base/Collide.hs 214;" f wallsFromRooms src/Dodge/Layout.hs 158;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f -warmupSound src/Dodge/HeldUse.hs 1405;" f +warmupSound src/Dodge/HeldUse.hs 1404;" f warningRooms src/Dodge/Room/Warning.hs 34;" f warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 910;" f wasdAim src/Dodge/Creature/YourControl.hs 116;" f @@ -5872,10 +5890,10 @@ yIntercepts src/Dodge/Zoning/Base.hs 78;" f yV2 src/Geometry/Vector.hs 213;" f yellow src/Color.hs 44;" f you src/Dodge/Base/You.hs 17;" f -youDropItem src/Dodge/Creature/Action.hs 192;" f +youDropItem src/Dodge/Creature/Action.hs 193;" f yourAugmentedItem src/Dodge/Render/HUD.hs 239;" f yourControl src/Dodge/Creature/YourControl.hs 26;" f -yourDefaultStrideLength src/Dodge/Default/Creature.hs 108;" f +yourDefaultStrideLength src/Dodge/Default/Creature.hs 107;" 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