diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index d219fc2fe..c33648aec 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -66,10 +66,11 @@ slimeCrit :: Creature slimeCrit = defaultCreature & crName .~ "slimeCrit" & crHP .~ HP 1000 - & crType .~ SlimeCrit 40 (V2 30 0) False True + & crType .~ SlimeCrit 40 0 (V2 50 0) False True & crFaction .~ ColorFaction (light green) & crPerception . cpVision . viFOV .~ FloatFOV pi & crActionPlan .~ SlimeIntelligence + & crStance . carriage .~ Crawling hoverCrit :: Creature hoverCrit = diff --git a/src/Dodge/Creature/Mass.hs b/src/Dodge/Creature/Mass.hs index d4af76fe3..709d5a907 100644 --- a/src/Dodge/Creature/Mass.hs +++ b/src/Dodge/Creature/Mass.hs @@ -13,4 +13,4 @@ crMass = \case BarrelCrit{} -> 10 SlinkCrit{} -> 100 LampCrit {} -> 3 - SlimeCrit {_slimeRad = r} -> r + SlimeCrit {_slimeRad = r} -> r * r / 10 diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 4e80bcad5..a0453d330 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -58,6 +58,7 @@ drawSlimeCrit cr = colorSH green $ upperPrismPolyHalf Medium Typical r $ polyCir & each %~ scaleAlong d s & each %~ scaleAlong (vNormal d) (1 / s) & each %~ rotateV (-cr ^. crDir) + & each %~ (((r-cr^?!crType.slimeRadWobble)/r) *^) where r = cr ^?! crType . slimeRad p = cr ^?! crType . slimeCompression diff --git a/src/Dodge/Creature/Radius.hs b/src/Dodge/Creature/Radius.hs index 9bced1cc1..70771ce36 100644 --- a/src/Dodge/Creature/Radius.hs +++ b/src/Dodge/Creature/Radius.hs @@ -16,4 +16,4 @@ crRad = \case BarrelCrit{} -> 10 LampCrit {} -> 3 SlinkCrit {} -> 10 - SlimeCrit {_slimeRad = r} -> r + SlimeCrit {_slimeRad = r,_slimeRadWobble = x} -> r - x diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index 3711cdb85..38fe4c71c 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -26,6 +26,7 @@ updateCarriage' cid cr w = \case Walking -> maybeTakeStep cid cr w & tocr . crPos . _xy +~ 0.5 *^ (cr ^. crOldPos - oop) ^. _xy & chasmTestCliffPush walkCliffPush cr + Crawling -> w & chasmTestCliffPush walkCliffPush cr Floating -> w Flying {_zSpeed = dz, _flyInertia = x} -> w & tocr . crPos . _xy +~ x *^ f (cr ^. crOldPos . _xy - oop ^. _xy) diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 8f8296f93..af8e085f4 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -79,12 +79,13 @@ slimeCritUpdate cid w let cid' = IM.newKey $ w ^. cWorld . lWorld . creatures in w & cWorld . lWorld . creatures . ix cid .~ cr1 & cWorld . lWorld . creatures . at cid' ?~ (cr2 & crID .~ cid') - | otherwise = w + | otherwise = updateCarriage cid $ w & cWorld . lWorld . creatures . ix cid .~ mvslime & cWorld . lWorld . creatures . ix cid . crDamage .~ [] & cWorld . lWorld . creatures . ix cid . crDir .~ d & cWorld . lWorld . creatures . ix cid . crType . slimeResetDir .~ rb' & randGen .~ g + & cWorld . lWorld . creatures . ix cid %~ doSlimeRadChange where txy = w ^?! cWorld . lWorld . creatures . ix 0 . crPos . _xy cr = w ^?! cWorld . lWorld . creatures . ix cid @@ -110,7 +111,8 @@ slimeCritUpdate cid w f | abs (norm v - norm p') < 0.2 = not | otherwise = id v = (s * r) *^ unitVectorAtAngle (cr ^. crDir) - r = crRad (cr ^. crType) + --r = crRad (cr ^. crType) + r = (cr ^?! crType . slimeRad) p = cr ^?! crType . slimeCompression (p',f') | dot p v > 0 && dot p v > dot p (vNormal v) && dot p v > dot p (-vNormal v) = (p, id) @@ -119,6 +121,13 @@ slimeCritUpdate cid w | otherwise = (-(r*r/norm p) *^ normalize (vNormal p), not) x = 0.1 *^ normalize (v - p') +doSlimeRadChange :: Creature -> Creature +doSlimeRadChange = crType . slimeRadWobble %~ f + where + f x | x > 1 = x - 1 + | x < -1 = x + 1 + | otherwise = 0 + splitSlimeCrit :: Point2 -> Point2 -> Creature -> Maybe (Creature, Creature) splitSlimeCrit p v cr = do let mp = closestPointOnLine p (p+v) cxy @@ -129,14 +138,14 @@ splitSlimeCrit p v cr = do r1 = sqrt (a1/pi) r2 = sqrt (a2/pi) -- guard $ r1 > 5 && r2 > 5 - return (cr' & crPos . _xy .~ mp + r1 *^ normalize (mp - cxy) + return (cr' & crPos . _xy .~ mp + (r1 + 0.5) *^ normalize (mp - cxy) & crType . slimeRad .~ r1 - & crType . slimeCompression .~ V2 r1 0 + & crType . slimeCompression .~ rotateV (argV (mp-cxy)) (V2 r1 0) & crDir .~ argV (mp - cxy) & crType . slimeResetDir .~ not (cr ^?! crType . slimeIsCompressing) - ,cr' & crPos . _xy .~ mp - r2 *^ normalize (mp - cxy) + ,cr' & crPos . _xy .~ mp - (r2 + 0.5) *^ normalize (mp - cxy) & crType . slimeRad .~ r2 - & crType . slimeCompression .~ V2 r2 0 + & crType . slimeCompression .~ rotateV (argV (cxy-mp)) (V2 r2 0) & crDir .~ argV (cxy - mp) & crType . slimeResetDir .~ not (cr ^?! crType . slimeIsCompressing) ) @@ -144,6 +153,7 @@ splitSlimeCrit p v cr = do cxy = cr ^. crPos . _xy r = cr ^?! crType . slimeRad cr' = cr & crDamage .~ [] + & crType . slimeRadWobble .~ 0 -- h is the height of the segment, ie r - distance to center segmentArea :: Float -> Float -> Float diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 00b834866..7fa92c980 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -72,6 +72,7 @@ data CreatureType } | SlimeCrit { _slimeRad :: Float + , _slimeRadWobble :: Float , _slimeCompression :: Point2 , _slimeIsCompressing :: Bool , _slimeResetDir :: Bool diff --git a/src/Dodge/Data/Creature/Stance.hs b/src/Dodge/Data/Creature/Stance.hs index 624c31f61..9fbfa36f8 100644 --- a/src/Dodge/Data/Creature/Stance.hs +++ b/src/Dodge/Data/Creature/Stance.hs @@ -22,6 +22,7 @@ data Stance = Stance data Carriage = Walking + | Crawling | Floating | Flying {_zSpeed :: Float, _flyInertia :: Float} | Boosting Point2 diff --git a/src/Dodge/Data/WorldEffect.hs b/src/Dodge/Data/WorldEffect.hs index 8e90584af..6a5639b3a 100644 --- a/src/Dodge/Data/WorldEffect.hs +++ b/src/Dodge/Data/WorldEffect.hs @@ -60,7 +60,6 @@ data WdBl | WdBlNegate WdBl | WdBlCrFilterNearPoint Float Point2 CrBl | WdBlBtOn Int --- | WdBlBtNotOff Int data WdP2f = WdP2f0 diff --git a/src/Dodge/Layout.hs b/src/Dodge/Layout.hs index b6ffd21a1..7e9475b8d 100644 --- a/src/Dodge/Layout.hs +++ b/src/Dodge/Layout.hs @@ -6,13 +6,12 @@ module Dodge.Layout ( shuffleRoomPos, ) where -import Control.Monad -- import Dodge.Path.Translate import qualified Control.Foldl as L import Control.Lens +import Control.Monad import Data.Foldable import Data.Function -import Linear -- import Data.Graph.Inductive (labEdges, labNodes) import Data.List (nubBy, sortOn) import Data.Maybe @@ -33,6 +32,7 @@ import Dodge.Wall.Zone import Dodge.Zoning.Pathing import Geometry import qualified IntMapHelp as IM +import Linear import RandomHelp generateLevelFromRoomList :: IM.IntMap Room -> World -> GenWorld @@ -68,9 +68,12 @@ randomCompass w = setTiles :: GenWorld -> GenWorld setTiles gw = foldr setTile gw . reverse . IM.elems $ _genRooms gw +-- setTiles gw = foldl' (flip setTile) gw . reverse . IM.elems $ _genRooms gw + roomTileZeroShift :: Room -> Point2A -roomTileZeroShift rm = fromMaybe (rm ^. rmShift) - $ rm ^? rmFloor . tiles . ix 0 . tileZeroShift . _Just +roomTileZeroShift rm = + fromMaybe (rm ^. rmShift) $ + rm ^? rmFloor . tiles . ix 0 . tileZeroShift . _Just setTile :: Room -> GenWorld -> GenWorld setTile r gw = case _rmFloor r of @@ -78,16 +81,18 @@ setTile r gw = case _rmFloor r of pid <- r ^. rmMParent rm <- gw ^? genRooms . ix pid guard $ rm ^? rmFloor . tiles . ix 0 . tileArrayZ == xs ^? ix 0 . tileArrayZ - return $ gw & genRooms . ix (fromJust (_rmMID r)) . rmFloor . tiles . ix 0 . tileZeroShift - ?~ roomTileZeroShift rm + return $ + gw + & genRooms . ix (fromJust (_rmMID r)) . rmFloor . tiles . ix 0 . tileZeroShift + ?~ roomTileZeroShift rm InheritFloor -> gw & genRooms . ix (fromJust (_rmMID r)) . rmFloor .~ Tiled [t & tilePoly .~ poly] where t = fromMaybe (Tile poly (V2 0 0) (V2 1 0) 16 Nothing) $ do - pid <- r ^. rmMParent - rm <- gw ^? genRooms . ix pid - (rm ^? rmFloor . tiles . ix 0) - <&> tileZeroShift ?~ roomTileZeroShift rm + pid <- r ^. rmMParent + rm <- gw ^? genRooms . ix pid + (rm ^? rmFloor . tiles . ix 0) + <&> tileZeroShift ?~ roomTileZeroShift rm poly = orderPolygon . convexHullSafe @@ -108,7 +113,7 @@ doInPlacements w = g rm = (rm ^?! rmMID . _Just,) <$> (rm ^. rmInPmnt) rplaceSpot i gw rx = placeSpot i (gw & gwWorld . randGen .~ gen) x where - (x,gen) = runState rx (gw ^. gwWorld . randGen) + (x, gen) = runState rx (gw ^. gwWorld . randGen) doIndividualPlacements :: GenWorld -> GenWorld doIndividualPlacements gw = foldl' doRoomPlacements gw (_genRooms gw) @@ -219,6 +224,7 @@ tilesFromRooms = concatMap (getTiles . _rmFloor . doRoomShift) getTiles :: Floor -> [Tile] getTiles fl = case fl of Tiled xs -> xs + -- _ -> [] _ -> error "tiles not correctly set for some room" -- divideWall :: Wall -> [Wall] diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 5e67b113a..a830c5db3 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -56,8 +56,9 @@ tutAnoTree :: State LayoutVars MTRS tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox --- , corDoor --- , chasmSpitTerminal + , corDoor + , tToBTree "" . return . cleatOnward <$> (cChasm + <&> rmPmnts .:~ (sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 100 20)) , corDoor , loadAmmoTut , corDoor diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index b9829c1ed..e281e5acc 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -46,6 +46,8 @@ testStringInit u = u ^.. tocrs . ix 1 . crPos . _xy . to show <> u ^.. tocrs . ix 1 . crType . slimeCompression . to show <> u ^.. tocrs . ix 1 . crType . slimeCompression . to norm . to show <> u ^.. tocrs . ix 1 . crType . to crRad . to show + <> u ^.. tocrs . ix 1 . crType . slimeRad . to show + <> u ^.. tocrs . ix 1 . crType . slimeRadWobble . to show <> u ^.. tocrs . ix 1 . crType . slimeIsCompressing . to show <> u ^.. tocrs . ix 1 . crDir . to show <> u ^.. tocrs . ix 1 . crDamage . to show diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 161400aba..3adf77844 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -1019,8 +1019,8 @@ crCrSpring c1 c2 return $ z c1 > h2 || z c2 > h1 olap a b = ix (a ^. crID) . crPos . _xy +~ overlap b olap' a b = ix (a ^. crID) . crPos . _xy -~ overlap b - suckx = min 1 (2 * (1 - distance xy1 xy2 / (r1 + r2))) - rolap = ix id1 . crPos . _xy +~ (2*m2 / (m1+m2)) *^ normalize (xy2 - xy1) + suckx = min 1 $ 2 * (1 - distance xy1 xy2 / (r1 + r2)) + rolap = ix id1 . crPos . _xy +~ (suckx * 1.5 * m2 / (m1+m2)) *^ normalize (xy2 - xy1) rolap' = ix id2 . crPos . _xy +~ (suckx * 1.5*m1 / (m1+m2)) *^ normalize (xy1 - xy2) id1 = _crID c1 id2 = _crID c2 @@ -1037,14 +1037,18 @@ crCrSpring c1 c2 m2 = crMass $ c2 ^. crType fuseSlimes :: Creature -> Creature -> World -> World -fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix i1 .~ c) - . (cWorld . lWorld . creatures . at i2 .~ Nothing) +fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix mini .~ (c & crID .~ mini)) + . (cWorld . lWorld . creatures . at maxi .~ Nothing) where + mini = min i1 i2 + maxi = max i1 i2 i1 = c1 ^. crID i2 = c2 ^. crID c = c1 & crType . slimeRad .~ r + & crType . slimeRadWobble +~ r - max r1 r2 & crType . slimeCompression .~ V2 r 0 - & crPos . _xy .~ (r1/(r1+r2)) *^ xy1 + (r2/(r1+r2)) *^ xy2 +-- & crPos . _xy .~ (r1/(r1+r2)) *^ xy1 + (r2/(r1+r2)) *^ xy2 + & crPos . _xy .~ if r1 > r2 then xy1 else xy2 xy1 = c1 ^. crPos . _xy xy2 = c2 ^. crPos . _xy r1 = c1 ^?! crType . slimeRad diff --git a/tags b/tags index 5b643431d..3262294aa 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 162;" o +<$> src/Dodge/Data/ActionPlan.hs 163;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 93;" o @@ -36,18 +36,19 @@ AUTOPISTOL src/Dodge/Data/Item/Combine.hs 147;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 156;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C -Action src/Dodge/Data/ActionPlan.hs 69;" t +Action src/Dodge/Data/ActionPlan.hs 70;" t ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t +ActionPlan src/Dodge/Data/ActionPlan.hs 17;" C ActionUpdate src/Dodge/Creature/Action.hs 51;" t -AddGoal src/Dodge/Data/ActionPlan.hs 47;" C -AimAt src/Dodge/Data/ActionPlan.hs 70;" C +AddGoal src/Dodge/Data/ActionPlan.hs 48;" C +AimAt src/Dodge/Data/ActionPlan.hs 71;" C AimStance src/Dodge/Data/AimStance.hs 10;" t -Aiming src/Dodge/Data/Creature/Stance.hs 35;" C +Aiming src/Dodge/Data/Creature/Stance.hs 36;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C -Ambush src/Dodge/Data/ActionPlan.hs 135;" C +Ambush src/Dodge/Data/ActionPlan.hs 136;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C @@ -58,7 +59,7 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t -ArbitraryAction src/Dodge/Data/ActionPlan.hs 124;" C +ArbitraryAction src/Dodge/Data/ActionPlan.hs 125;" C ArcNodeType src/Dodge/Data/LWorld.hs 159;" t ArcShad src/Picture/Data.hs 33;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t @@ -66,18 +67,18 @@ Arcing src/Dodge/Data/Item/Params.hs 15;" C ArmourySS src/Dodge/Data/Scenario.hs 112;" C Asleep src/Dodge/Data/Creature/Perception.hs 52;" C AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C -AtEase src/Dodge/Data/Creature/Stance.hs 35;" C +AtEase src/Dodge/Data/Creature/Stance.hs 36;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AttachParams src/Dodge/Data/Item/Use.hs 43;" t AttachType src/Dodge/Data/Item/Combine.hs 91;" t 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 79;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 81;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 83;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 85;" C Avatar src/Dodge/Data/Creature/Misc.hs 47;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 83;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 85;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t BANGCONE src/Dodge/Data/Item/Combine.hs 149;" C BANGROD src/Dodge/Data/Item/Combine.hs 158;" C @@ -102,11 +103,11 @@ BULLETSYNTH src/Dodge/Data/Item/Combine.hs 93;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C -Bark src/Dodge/Data/ActionPlan.hs 40;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 80;" C +Bark src/Dodge/Data/ActionPlan.hs 41;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 82;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 95;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 91;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 97;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 93;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 41;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 48;" C @@ -136,7 +137,7 @@ BlockStatus src/Dodge/Data/Universe.hs 98;" t BlockedLink src/Dodge/Data/Room.hs 54;" C BloomLayer src/Picture/Data.hs 21;" C Blunt src/Dodge/Data/Damage.hs 17;" C -Boosting src/Dodge/Data/Creature/Stance.hs 27;" C +Boosting src/Dodge/Data/Creature/Stance.hs 28;" C BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 28;" C BoundCurs src/Dodge/Data/SelectionList.hs 22;" C @@ -201,8 +202,8 @@ CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t CardinalPoint src/Dodge/Data/CardinalPoint.hs 6;" t CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 23;" t -ChangePosture src/Dodge/Data/ActionPlan.hs 44;" C -ChangeStrategy src/Dodge/Data/ActionPlan.hs 46;" C +ChangePosture src/Dodge/Data/ActionPlan.hs 45;" C +ChangeStrategy src/Dodge/Data/ActionPlan.hs 47;" C ChaseCrit src/Dodge/Data/Creature/Misc.hs 57;" C ChaseCritters src/Dodge/Data/Creature/State.hs 16;" C ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C @@ -210,7 +211,7 @@ ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 30;" C Circ_collision_test src/Dodge/Data/Config.hs 99;" C Climate src/Dodge/Data/Scenario.hs 32;" C -CloseToMelee src/Dodge/Data/ActionPlan.hs 145;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 146;" C Close_shape_culling src/Dodge/Data/Config.hs 93;" C Cloud src/Dodge/Data/Cloud.hs 12;" t CloudType src/Dodge/Data/Cloud.hs 20;" t @@ -277,11 +278,12 @@ 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 61;" C CraftType src/Dodge/Data/Item/Combine.hs 49;" 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 85;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 87;" t CreatureType src/Dodge/Data/Creature/Misc.hs 46;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C @@ -333,17 +335,17 @@ DisplayTerminal src/Dodge/Data/HUD.hs 27;" C Display_debug src/Dodge/Data/Config.hs 79;" C Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C -DoActionIf src/Dodge/Data/ActionPlan.hs 92;" C -DoActionIfElse src/Dodge/Data/ActionPlan.hs 96;" C -DoActionThen src/Dodge/Data/ActionPlan.hs 107;" C -DoActionWhile src/Dodge/Data/ActionPlan.hs 83;" C -DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 101;" C -DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 87;" C -DoImpulses src/Dodge/Data/ActionPlan.hs 78;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 126;" C +DoActionIf src/Dodge/Data/ActionPlan.hs 93;" C +DoActionIfElse src/Dodge/Data/ActionPlan.hs 97;" C +DoActionThen src/Dodge/Data/ActionPlan.hs 108;" C +DoActionWhile src/Dodge/Data/ActionPlan.hs 84;" C +DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 102;" C +DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 88;" C +DoImpulses src/Dodge/Data/ActionPlan.hs 79;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 127;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 18;" C -DoReplicate src/Dodge/Data/ActionPlan.hs 111;" C -DoReplicatePartial src/Dodge/Data/ActionPlan.hs 115;" C +DoReplicate src/Dodge/Data/ActionPlan.hs 112;" C +DoReplicatePartial src/Dodge/Data/ActionPlan.hs 116;" 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 @@ -356,7 +358,7 @@ DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 9;" t DrawForceField src/Dodge/Data/Wall.hs 37;" C DrawnWall src/Dodge/Data/Wall.hs 33;" C DroneAmmo src/Dodge/Data/AmmoType.hs 13;" C -DropItem src/Dodge/Data/ActionPlan.hs 39;" C +DropItem src/Dodge/Data/ActionPlan.hs 40;" C DropShadowSI src/Dodge/Data/SelectionList.hs 59;" C DudPayload src/Dodge/Data/Payload.hs 11;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C @@ -393,14 +395,14 @@ EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 17;" t EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C Escape src/Dodge/Data/Scenario.hs 10;" C Essential src/Shape/Data.hs 30;" C -EvadeAim src/Dodge/Data/ActionPlan.hs 75;" C +EvadeAim src/Dodge/Data/ActionPlan.hs 76;" C ExamineInventory src/Dodge/Data/HUD.hs 16;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 39;" C ExplosionPayload src/Dodge/Data/Payload.hs 9;" C Explosive src/Dodge/Data/Damage.hs 25;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 14;" C -ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 97;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 99;" 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 @@ -418,7 +420,7 @@ FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 12;" t Factory src/Dodge/Data/Scenario.hs 56;" C FailedResource src/Dodge/Data/Scenario.hs 37;" t -Falling src/Dodge/Data/Creature/Stance.hs 28;" C +Falling src/Dodge/Data/Creature/Stance.hs 29;" C FetchItem src/Dodge/Data/Scenario.hs 11;" C FilterBySoundOrigin src/Dodge/Data/WorldEffect.hs 22;" C FireSpark src/Dodge/Data/Spark.hs 19;" C @@ -432,7 +434,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 134;" C +Flank src/Dodge/Data/ActionPlan.hs 135;" 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 @@ -440,7 +442,7 @@ FlatFaces src/Shape/Data.hs 12;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 14;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 43;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 50;" C -Flee src/Dodge/Data/ActionPlan.hs 149;" C +Flee src/Dodge/Data/ActionPlan.hs 150;" C Flesh src/Dodge/Data/Material.hs 17;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C FloatBO src/Shader/Data.hs 85;" t @@ -450,12 +452,12 @@ FloatFOV src/Dodge/Data/FloatFunction.hs 11;" C FloatFloat src/Dodge/Data/FloatFunction.hs 9;" t FloatID src/Dodge/Data/FloatFunction.hs 10;" C FloatLessCheck src/Dodge/Data/FloatFunction.hs 12;" C -Floating src/Dodge/Data/Creature/Stance.hs 25;" C +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 26;" C -FollowImpulses src/Dodge/Data/ActionPlan.hs 139;" C -FootForward src/Dodge/Data/Creature/Stance.hs 32;" t +Flying src/Dodge/Data/Creature/Stance.hs 27;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 140;" C +FootForward src/Dodge/Data/Creature/Stance.hs 33;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C ForceField src/Dodge/Data/Material.hs 19;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t @@ -491,7 +493,7 @@ GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 24;" t GenericFaction src/Dodge/Data/Creature/State.hs 13;" C GeoObjShads src/Dodge/Data/Config.hs 117;" C -GetTo src/Dodge/Data/ActionPlan.hs 147;" C +GetTo src/Dodge/Data/ActionPlan.hs 148;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C Gibbed src/Dodge/Data/Creature.hs 68;" C @@ -499,7 +501,7 @@ GibsDeath src/Dodge/Data/Creature.hs 70;" 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 155;" t +Goal src/Dodge/Data/ActionPlan.hs 156;" 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 @@ -554,7 +556,7 @@ 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 68;" C Huge src/Shape/Data.hs 24;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 86;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 88;" C IMSI src/Dodge/Data/SelectionList.hs 41;" t IMSS src/Dodge/Data/SelectionList.hs 39;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -565,10 +567,10 @@ ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 30;" t Important src/Shape/Data.hs 31;" C -Impulse src/Dodge/Data/ActionPlan.hs 25;" t -ImpulseNothing src/Dodge/Data/ActionPlan.hs 49;" C -ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 48;" C -ImpulsesList src/Dodge/Data/ActionPlan.hs 77;" C +Impulse src/Dodge/Data/ActionPlan.hs 26;" t +ImpulseNothing src/Dodge/Data/ActionPlan.hs 50;" C +ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 49;" C +ImpulsesList src/Dodge/Data/ActionPlan.hs 78;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDream src/Dodge/Data/Scenario.hs 19;" C InInv src/Dodge/Data/Item/Location.hs 29;" C @@ -599,7 +601,7 @@ InventoryHeadFilterSI src/Dodge/Data/SelectionList.hs 61;" C InventoryHeadSI src/Dodge/Data/SelectionList.hs 60;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C -Investigate src/Dodge/Data/ActionPlan.hs 141;" C +Investigate src/Dodge/Data/ActionPlan.hs 142;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 12;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C @@ -628,7 +630,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C -Kill src/Dodge/Data/ActionPlan.hs 157;" C +Kill src/Dodge/Data/ActionPlan.hs 158;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 14;" C LDParams src/Dodge/Data/SelectionList.hs 14;" t @@ -642,7 +644,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 81;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 83;" C Large src/Shape/Data.hs 25;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -657,8 +659,8 @@ 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 120;" C -LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C +LeadTarget src/Dodge/Data/ActionPlan.hs 121;" C +LeftForward src/Dodge/Data/Creature/Stance.hs 33;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C LevelStartSlot src/Dodge/Data/SaveSlot.hs 9;" C @@ -671,7 +673,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 156;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 157;" 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 @@ -681,8 +683,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 143;" C -Lure src/Dodge/Data/ActionPlan.hs 136;" C +LookAround src/Dodge/Data/ActionPlan.hs 144;" C +Lure src/Dodge/Data/ActionPlan.hs 137;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C MAGENTA src/Color/Data.hs 17;" C MAGNET src/Dodge/Data/Item/Combine.hs 68;" C @@ -720,7 +722,7 @@ MagnetTrajectoryType src/Dodge/Data/Bullet.hs 51;" C MagnetUpdate src/Dodge/Data/Magnet.hs 11;" t MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C -MakeSound src/Dodge/Data/ActionPlan.hs 45;" C +MakeSound src/Dodge/Data/ActionPlan.hs 46;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C @@ -746,9 +748,9 @@ MdWdId src/Dodge/Data/WorldEffect.hs 50;" C MdWdWd src/Dodge/Data/WorldEffect.hs 49;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 26;" C -Melee src/Dodge/Data/ActionPlan.hs 41;" C -MeleeL src/Dodge/Data/ActionPlan.hs 42;" C -MeleeR src/Dodge/Data/ActionPlan.hs 43;" C +Melee src/Dodge/Data/ActionPlan.hs 42;" C +MeleeL src/Dodge/Data/ActionPlan.hs 43;" C +MeleeR src/Dodge/Data/ActionPlan.hs 44;" C Memory src/Dodge/Data/Creature.hs 79;" t MenuOption src/Dodge/Data/Universe.hs 109;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t @@ -773,10 +775,10 @@ MouseGameRotate src/Dodge/Data/Input.hs 29;" C MouseInGame src/Dodge/Data/Input.hs 16;" C MouseMenu src/Dodge/Data/Input.hs 17;" C Mouse_position src/Dodge/Data/Config.hs 86;" C -Move src/Dodge/Data/ActionPlan.hs 26;" C +Move src/Dodge/Data/ActionPlan.hs 27;" C MoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C -MoveForward src/Dodge/Data/ActionPlan.hs 28;" C -MoveNoStride src/Dodge/Data/ActionPlan.hs 29;" C +MoveForward src/Dodge/Data/ActionPlan.hs 29;" C +MoveNoStride src/Dodge/Data/ActionPlan.hs 30;" C Muzzle src/Dodge/Data/Muzzle.hs 9;" t MuzzleBlink src/Dodge/Data/Muzzle.hs 55;" C MuzzleDetector src/Dodge/Data/Muzzle.hs 54;" C @@ -797,8 +799,8 @@ MuzzleTesla src/Dodge/Data/Muzzle.hs 44;" C MuzzleTractor src/Dodge/Data/Muzzle.hs 45;" C MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 56;" C Muzzle_positions src/Dodge/Data/Config.hs 110;" C -MvForward src/Dodge/Data/ActionPlan.hs 35;" C -MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C +MvForward src/Dodge/Data/ActionPlan.hs 36;" C +MvTurnToward src/Dodge/Data/ActionPlan.hs 35;" C MvWalking src/Dodge/Data/Creature/Misc.hs 26;" C NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C NInt src/NewInt.hs 16;" C @@ -819,7 +821,7 @@ NewInt src/NewInt.hs 16;" t NewIntMap src/NewInt.hs 22;" t NewIntSet src/NewInt.hs 19;" t NewSideEffect src/Dodge/Data/Universe.hs 63;" C -NoAction src/Dodge/Data/ActionPlan.hs 121;" C +NoAction src/Dodge/Data/ActionPlan.hs 122;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -850,7 +852,7 @@ NoWorldEffect src/Dodge/Data/WorldEffect.hs 26;" C Noclip src/Dodge/Data/Config.hs 83;" C NodeMTree src/Dodge/Data/MetaTree.hs 17;" C NodeTree src/Dodge/Data/MetaTree.hs 16;" C -NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 92;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 94;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C NormalOptions src/Dodge/Data/Universe.hs 71;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C @@ -923,7 +925,7 @@ OnBack src/Dodge/Data/Equipment/Misc.hs 22;" C OnChest src/Dodge/Data/Equipment/Misc.hs 21;" C OnEdge src/Dodge/Data/Room.hs 52;" C OnFloor src/Dodge/Data/Item/Location.hs 38;" C -OnGround src/Dodge/Data/Creature/Stance.hs 29;" C +OnGround src/Dodge/Data/Creature/Stance.hs 30;" C OnHead src/Dodge/Data/Equipment/Misc.hs 20;" C OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 25;" C OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 23;" C @@ -977,9 +979,9 @@ PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C PathFromEdge src/Dodge/Data/Room.hs 81;" t PathShowType src/Dodge/Data/Universe.hs 52;" t -PathTo src/Dodge/Data/ActionPlan.hs 74;" C +PathTo src/Dodge/Data/ActionPlan.hs 75;" C Pathing src/Dodge/Data/Config.hs 90;" C -Patrol src/Dodge/Data/ActionPlan.hs 137;" C +Patrol src/Dodge/Data/ActionPlan.hs 138;" C PauseTimeMessage src/Dodge/Data/World.hs 88;" C PausedTimeFlow src/Dodge/Data/World.hs 84;" C Payload src/Dodge/Data/Payload.hs 9;" t @@ -994,7 +996,7 @@ Piezoelectric src/Dodge/Data/Material.hs 23;" C Pitted src/Dodge/Data/Creature.hs 68;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 96;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 98;" C PlainDeath src/Dodge/Data/Creature.hs 70;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t @@ -1019,7 +1021,7 @@ Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedron src/Polyhedra/Data.hs 13;" C PosInf src/Dodge/Data/CardinalPoint.hs 44;" C PosRooms src/Dodge/Tree/Shift.hs 29;" t -Posture src/Dodge/Data/Creature/Stance.hs 35;" t +Posture src/Dodge/Data/Creature/Stance.hs 36;" t PreloadData src/Data/Preload.hs 10;" t PrintMaterial src/Dodge/Data/AmmoType.hs 15;" C Prison src/Dodge/Data/Scenario.hs 65;" C @@ -1085,12 +1087,12 @@ RProps src/Dodge/Layout/Generate.hs 14;" C RadarBlip src/Dodge/Data/RadarBlip.hs 12;" t RadarSweep src/Dodge/Data/RadarSweep.hs 17;" t RadialDistortion src/Dodge/Data/Distortion.hs 11;" C -RandImpulse src/Dodge/Data/ActionPlan.hs 53;" t -RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 55;" C -RandImpulseList src/Dodge/Data/ActionPlan.hs 54;" C +RandImpulse src/Dodge/Data/ActionPlan.hs 54;" t +RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 56;" C +RandImpulseList src/Dodge/Data/ActionPlan.hs 55;" C RandPS src/Dodge/Data/GenWorld.hs 55;" C -RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C -RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C +RandomImpulse src/Dodge/Data/ActionPlan.hs 33;" C +RandomTurn src/Dodge/Data/ActionPlan.hs 32;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C RecCommands src/Dodge/Terminal.hs 164;" t RecRoomSS src/Dodge/Data/Scenario.hs 103;" C @@ -1117,7 +1119,7 @@ Revenge src/Dodge/Data/Scenario.hs 6;" C RewindLeftClick src/Dodge/Data/World.hs 80;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C RightButtonState src/Dodge/Data/RightButtonOptions.hs 13;" t -RightForward src/Dodge/Data/Creature/Stance.hs 32;" C +RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightwardDT src/Dodge/Data/DoubleTree.hs 34;" C Rocket src/Dodge/Data/Projectile.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 39;" t @@ -1162,7 +1164,7 @@ SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C Scope src/Dodge/Data/Item/Scope.hs 11;" t ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 151;" C +Search src/Dodge/Data/ActionPlan.hs 152;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 25;" t SeeAbove src/Dodge/Data/Wall.hs 32;" C @@ -1181,7 +1183,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 158;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 159;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C @@ -1199,7 +1201,7 @@ ShellSound src/Dodge/Data/SoundOrigin.hs 28;" C ShieldGroup src/Dodge/Data/Creature/State.hs 30;" C Shockwave src/Dodge/Data/Shockwave.hs 15;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 12;" t -ShootAt src/Dodge/Data/ActionPlan.hs 138;" C +ShootAt src/Dodge/Data/ActionPlan.hs 139;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 94;" C @@ -1227,6 +1229,7 @@ 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 73;" C +SlimeIntelligence src/Dodge/Data/ActionPlan.hs 16;" C SlinkCrit src/Dodge/Data/Creature/Misc.hs 69;" C Small src/Shape/Data.hs 27;" C Smoke src/Dodge/Data/Cloud.hs 21;" C @@ -1266,12 +1269,12 @@ StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C Stance src/Dodge/Data/Creature/Stance.hs 17;" t StandaloneWall src/Dodge/Data/Wall/Structure.hs 12;" C -StartSentinelPost src/Dodge/Data/ActionPlan.hs 122;" C +StartSentinelPost src/Dodge/Data/ActionPlan.hs 123;" 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 133;" t -StrategyActions src/Dodge/Data/ActionPlan.hs 146;" C +Strategy src/Dodge/Data/ActionPlan.hs 134;" t +StrategyActions src/Dodge/Data/ActionPlan.hs 147;" C SubInventory src/Dodge/Data/HUD.hs 14;" t Superfluous src/Shape/Data.hs 34;" C Surface src/Shape/Data.hs 38;" t @@ -1279,7 +1282,7 @@ Survive src/Dodge/Data/Scenario.hs 5;" C Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C SwapEquipment src/Dodge/Data/RightButtonOptions.hs 24;" C Swarm src/Dodge/Data/Creature/State.hs 25;" C -SwarmCrit src/Dodge/Data/Creature/Misc.hs 78;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 80;" C TAPE src/Dodge/Data/Item/Combine.hs 55;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C TCBase src/Dodge/Data/Terminal.hs 49;" C @@ -1377,10 +1380,10 @@ Trie src/SimpleTrie.hs 10;" t TriggerSF src/Dodge/Data/ComposedItem.hs 22;" C TriggerType src/Dodge/Data/TriggerType.hs 7;" t TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C -Turn src/Dodge/Data/ActionPlan.hs 30;" C -TurnTo src/Dodge/Data/ActionPlan.hs 36;" C -TurnToPoint src/Dodge/Data/ActionPlan.hs 76;" C -TurnToward src/Dodge/Data/ActionPlan.hs 33;" C +Turn src/Dodge/Data/ActionPlan.hs 31;" C +TurnTo src/Dodge/Data/ActionPlan.hs 37;" C +TurnToPoint src/Dodge/Data/ActionPlan.hs 77;" C +TurnToward src/Dodge/Data/ActionPlan.hs 34;" C TurnTowardCr src/Dodge/Data/CreatureEffect.hs 9;" C Turret src/Dodge/Data/Machine.hs 64;" t TurretInt src/Dodge/Data/Item/Location.hs 19;" t @@ -1403,7 +1406,7 @@ Universe src/Dodge/Data/Universe.hs 28;" t UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C UnlockInv src/Dodge/Data/WorldEffect.hs 31;" C UnusedLink src/Dodge/Data/Room.hs 72;" C -UpdateRandGen src/Dodge/Data/ActionPlan.hs 50;" C +UpdateRandGen src/Dodge/Data/ActionPlan.hs 51;" 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 @@ -1414,12 +1417,12 @@ UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C UseHeld src/Dodge/Data/Item/Use.hs 29;" C UseInt src/Dodge/Data/Item/Use.hs 31;" C UseInvItem src/Dodge/Data/WorldEffect.hs 38;" C -UseItem src/Dodge/Data/ActionPlan.hs 37;" C +UseItem src/Dodge/Data/ActionPlan.hs 38;" C UseItemWidth src/Dodge/Data/SelectionList.hs 43;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C UseNothing src/Dodge/Data/Item/Use.hs 32;" C UseScope src/Dodge/Data/Item/Use.hs 34;" C -UseSelf src/Dodge/Data/ActionPlan.hs 123;" C +UseSelf src/Dodge/Data/ActionPlan.hs 124;" C UseToggle src/Dodge/Data/Item/Use.hs 36;" C UseUpTo src/Dodge/Data/Muzzle.hs 64;" C UseValue src/Dodge/Data/Item/Use.hs 33;" C @@ -1457,8 +1460,8 @@ WHITE src/Color/Data.hs 24;" C WIRE src/Dodge/Data/Item/Combine.hs 86;" C WRISTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C -WaitThen src/Dodge/Data/ActionPlan.hs 79;" C -Walk src/Dodge/Data/ActionPlan.hs 27;" C +WaitThen src/Dodge/Data/ActionPlan.hs 80;" C +Walk src/Dodge/Data/ActionPlan.hs 28;" C Walking src/Dodge/Data/Creature/Stance.hs 24;" C Wall src/Dodge/Data/Wall.hs 17;" t WallArcNode src/Dodge/Data/LWorld.hs 160;" C @@ -1474,15 +1477,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 144;" C +Wander src/Dodge/Data/ActionPlan.hs 145;" 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 142;" C +WarningCry src/Dodge/Data/ActionPlan.hs 143;" C WasMouseGameRotating src/Dodge/Data/Input.hs 53;" C WasNotMouseGameRotating src/Dodge/Data/Input.hs 54;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 140;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 141;" 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 @@ -1497,9 +1500,9 @@ WdCrSafeDistFromTarget src/Dodge/Data/CreatureEffect.hs 17;" C WdCrTrue src/Dodge/Data/CreatureEffect.hs 13;" C WdP2 src/Dodge/Data/WorldEffect.hs 44;" t WdP2Const src/Dodge/Data/WorldEffect.hs 45;" C -WdP2f src/Dodge/Data/WorldEffect.hs 65;" t -WdP2f0 src/Dodge/Data/WorldEffect.hs 66;" C -WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 67;" C +WdP2f src/Dodge/Data/WorldEffect.hs 64;" t +WdP2f0 src/Dodge/Data/WorldEffect.hs 65;" C +WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 66;" C WdTrig src/Dodge/Data/WorldEffect.hs 57;" C WdWd src/Dodge/Data/WorldEffect.hs 25;" t WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 39;" C @@ -1520,7 +1523,7 @@ YELLOW src/Color/Data.hs 15;" C ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 92;" C ZombieFaction src/Dodge/Data/Creature/State.hs 14;" C __Just' src/MaybeHelp.hs 11;" f -_acAction src/Dodge/Data/ActionPlan.hs 77;" f +_acAction src/Dodge/Data/ActionPlan.hs 78;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 19;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 25;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 30;" f @@ -1531,19 +1534,19 @@ _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 135;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 136;" 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 _amsfLink src/Dodge/Data/ComposedItem.hs 24;" f _amsfType src/Dodge/Data/ComposedItem.hs 24;" f -_apAction src/Dodge/Data/ActionPlan.hs 18;" f -_apGoal src/Dodge/Data/ActionPlan.hs 20;" f +_apAction src/Dodge/Data/ActionPlan.hs 19;" f +_apGoal src/Dodge/Data/ActionPlan.hs 21;" f _apInt src/Dodge/Data/Item/Use.hs 45;" f _apProjectiles src/Dodge/Data/Item/Use.hs 44;" f -_apStrategy src/Dodge/Data/ActionPlan.hs 19;" f +_apStrategy src/Dodge/Data/ActionPlan.hs 20;" f _aps src/Dodge/Data/Muzzle.hs 22;" f -_arbitraryAction src/Dodge/Data/ActionPlan.hs 124;" f +_arbitraryAction src/Dodge/Data/ActionPlan.hs 125;" f _arcNode src/Dodge/Data/LWorld.hs 115;" f _asDir src/Dodge/Data/ArcStep.hs 14;" f _asObject src/Dodge/Data/ArcStep.hs 15;" f @@ -1556,7 +1559,7 @@ _avStrength src/Dodge/Data/Creature/Misc.hs 50;" f _avatarMaterial src/Dodge/Data/Creature/Misc.hs 49;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 48;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 80;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 82;" 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 @@ -1626,7 +1629,7 @@ _camViewDistance src/Dodge/Data/Camera.hs 29;" f _camViewFrom src/Dodge/Data/Camera.hs 28;" f _camZoom src/Dodge/Data/Camera.hs 25;" f _canID src/Dodge/Data/LWorld.hs 165;" f -_carDir src/Dodge/Data/Creature/Stance.hs 28;" f +_carDir src/Dodge/Data/Creature/Stance.hs 29;" f _carriage src/Dodge/Data/Creature/Stance.hs 18;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 29;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 37;" f @@ -1751,26 +1754,26 @@ _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 94;" f -_doActionIfCondition src/Dodge/Data/ActionPlan.hs 93;" f -_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 98;" f -_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 99;" f -_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 97;" f -_doActionThenFirst src/Dodge/Data/ActionPlan.hs 108;" f -_doActionThenSecond src/Dodge/Data/ActionPlan.hs 109;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 85;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 90;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 84;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 89;" f -_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 88;" f -_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 103;" f -_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 102;" f -_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 104;" f -_doImpulsesList src/Dodge/Data/ActionPlan.hs 78;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 113;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 118;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 112;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 117;" f +_doActionIfAction src/Dodge/Data/ActionPlan.hs 95;" f +_doActionIfCondition src/Dodge/Data/ActionPlan.hs 94;" f +_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 99;" f +_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 100;" f +_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 98;" f +_doActionThenFirst src/Dodge/Data/ActionPlan.hs 109;" f +_doActionThenSecond src/Dodge/Data/ActionPlan.hs 110;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 86;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 91;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 85;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 90;" f +_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 89;" f +_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 104;" f +_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 103;" f +_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 105;" f +_doImpulsesList src/Dodge/Data/ActionPlan.hs 79;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 114;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 119;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 113;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 118;" f _dodgeCooldown src/Dodge/Data/Creature/Misc.hs 64;" f _doors src/Dodge/Data/LWorld.hs 124;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f @@ -1803,7 +1806,7 @@ _ebType src/Dodge/Data/EnergyBall.hs 19;" f _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f _energyBalls src/Dodge/Data/LWorld.hs 108;" f -_fallRot src/Dodge/Data/Creature/Stance.hs 28;" f +_fallRot src/Dodge/Data/Creature/Stance.hs 29;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f _fboBloom src/Data/Preload/Render.hs 38;" f @@ -1820,7 +1823,7 @@ _flPos src/Dodge/Data/Flame.hs 13;" f _flTimer src/Dodge/Data/Flame.hs 12;" f _flVel src/Dodge/Data/Flame.hs 14;" f _flames src/Dodge/Data/LWorld.hs 109;" f -_flankTarget src/Dodge/Data/ActionPlan.hs 134;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 135;" f _flares src/Dodge/Data/LWorld.hs 112;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _flboName src/Shader/Data.hs 86;" f @@ -1829,7 +1832,7 @@ _flboStride src/Shader/Data.hs 88;" f _floorItems src/Dodge/Data/LWorld.hs 131;" f _floorShader src/Data/Preload/Render.hs 46;" f _floorVBO src/Data/Preload/Render.hs 45;" f -_flyInertia src/Dodge/Data/Creature/Stance.hs 26;" f +_flyInertia src/Dodge/Data/Creature/Stance.hs 27;" f _footForward src/Dodge/Data/Creature/Misc.hs 54;" f _footForward src/Dodge/Data/Creature/Misc.hs 58;" f _foreShapes src/Dodge/Data/LWorld.hs 136;" f @@ -1911,8 +1914,8 @@ _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _immediateEffect src/Loop/Data.hs 9;" f _immediateUpdate src/Loop/Data.hs 12;" f -_impulseUseTarget src/Dodge/Data/ActionPlan.hs 48;" f -_impulsesListList src/Dodge/Data/ActionPlan.hs 77;" f +_impulseUseTarget src/Dodge/Data/ActionPlan.hs 49;" f +_impulsesListList src/Dodge/Data/ActionPlan.hs 78;" f _incEdgeZoning src/Dodge/Data/World.hs 57;" f _incEdges src/Dodge/Data/CWorld.hs 31;" f _incGraph src/Dodge/Data/CWorld.hs 29;" f @@ -1940,7 +1943,7 @@ _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 157;" f +_killTarget src/Dodge/Data/ActionPlan.hs 158;" f _lAimPos src/Dodge/Data/LWorld.hs 147;" f _lClock src/Dodge/Data/LWorld.hs 142;" f _lFootPos src/Dodge/Data/Creature/Misc.hs 65;" f @@ -1948,9 +1951,9 @@ _lInvLock src/Dodge/Data/LWorld.hs 148;" f _lTestInt src/Dodge/Data/LWorld.hs 144;" f _lTestString src/Dodge/Data/LWorld.hs 143;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f -_lampColor src/Dodge/Data/Creature/Misc.hs 81;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 81;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 81;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 83;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 83;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 83;" f _lasWepXSF src/Dodge/Data/ComposedItem.hs 41;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f @@ -1959,7 +1962,7 @@ _ldpPos src/Dodge/Data/SelectionList.hs 15;" f _ldpScale src/Dodge/Data/SelectionList.hs 16;" f _ldpSize src/Dodge/Data/SelectionList.hs 18;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 17;" f -_leadTargetBy src/Dodge/Data/ActionPlan.hs 120;" f +_leadTargetBy src/Dodge/Data/ActionPlan.hs 121;" f _lightSources src/Dodge/Data/LWorld.hs 137;" f _lightUBO src/Data/Preload/Render.hs 43;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f @@ -1990,7 +1993,7 @@ _lyGen src/Dodge/Data/MetaTree.hs 31;" f _machines src/Dodge/Data/LWorld.hs 125;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f _magnets src/Dodge/Data/LWorld.hs 128;" f -_mainAction src/Dodge/Data/ActionPlan.hs 128;" f +_mainAction src/Dodge/Data/ActionPlan.hs 129;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f _mapInvOffset src/Dodge/Data/HUD.hs 18;" f @@ -2043,7 +2046,7 @@ _meleeCooldown src/Dodge/Data/Creature/Misc.hs 57;" f _meleeCooldown src/Dodge/Data/Creature/Misc.hs 68;" f _meleeCooldownL src/Dodge/Data/Creature/Misc.hs 62;" f _meleeCooldownR src/Dodge/Data/Creature/Misc.hs 63;" f -_meleeTarget src/Dodge/Data/ActionPlan.hs 145;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 146;" 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 @@ -2097,10 +2100,10 @@ _opTexture src/Dodge/Data/Wall.hs 34;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 18;" f _opticPos src/Dodge/Data/Item/Scope.hs 14;" f _opticZoom src/Dodge/Data/Item/Scope.hs 17;" f -_partialAction src/Dodge/Data/ActionPlan.hs 116;" f +_partialAction src/Dodge/Data/ActionPlan.hs 117;" f _pastWorlds src/Dodge/Data/World.hs 38;" f -_pathFailAction src/Dodge/Data/ActionPlan.hs 74;" f -_pathToPoint src/Dodge/Data/ActionPlan.hs 74;" f +_pathFailAction src/Dodge/Data/ActionPlan.hs 75;" f +_pathToPoint src/Dodge/Data/ActionPlan.hs 75;" f _pauseTimeMesage src/Dodge/Data/World.hs 89;" f _pauseTimeMesageColor src/Dodge/Data/World.hs 90;" f _pbPos src/Dodge/Data/PlasmaBall.hs 16;" f @@ -2111,7 +2114,7 @@ _phTargetingID src/Dodge/Data/Projectile.hs 42;" f _pickUpLevel src/Dodge/Layout/Generate.hs 15;" f _pickUps src/Dodge/Layout/Generate.hs 16;" f _pictureShaders src/Data/Preload/Render.hs 31;" f -_piercedPoints src/Dodge/Data/Creature/Misc.hs 97;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 99;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f _pjDir src/Dodge/Data/Projectile.hs 18;" f @@ -2292,8 +2295,8 @@ _selLocation src/Dodge/Data/LWorld.hs 140;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 158;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 158;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 159;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 159;" f _sfColor src/Shape/Data.hs 41;" f _sfShadowImportance src/Shape/Data.hs 42;" f _sfSize src/Shape/Data.hs 43;" f @@ -2316,21 +2319,23 @@ _siPayload src/Dodge/Data/SelectionList.hs 52;" f _siPictures src/Dodge/Data/SelectionList.hs 46;" f _siWidth src/Dodge/Data/SelectionList.hs 48;" f _sideEffect src/Loop/Data.hs 13;" f -_sideImpulses src/Dodge/Data/ActionPlan.hs 127;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 128;" 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 87;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 89;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 88;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 89;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 91;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 90;" f _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f -_slimeCompression src/Dodge/Data/Creature/Misc.hs 75;" f -_slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 76;" f +_slimeCompression src/Dodge/Data/Creature/Misc.hs 76;" f +_slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 77;" f _slimeRad src/Dodge/Data/Creature/Misc.hs 74;" f +_slimeRadChange src/Dodge/Data/Creature/Misc.hs 75;" f +_slimeResetDir src/Dodge/Data/Creature/Misc.hs 78;" f _slinkSpine src/Dodge/Data/Creature/Misc.hs 71;" f _smoothScrollAmount src/Dodge/Data/Input.hs 41;" f _soundAngDist src/Sound/Data.hs 47;" f @@ -2376,8 +2381,8 @@ _taArcSteps src/Dodge/Data/TeslaArc.hs 17;" f _taColor src/Dodge/Data/TeslaArc.hs 18;" f _taTimer src/Dodge/Data/TeslaArc.hs 16;" f _targetCr src/Dodge/Data/Creature.hs 73;" f -_targetID src/Dodge/Data/ActionPlan.hs 71;" f -_targetSeenAt src/Dodge/Data/ActionPlan.hs 72;" f +_targetID src/Dodge/Data/ActionPlan.hs 72;" f +_targetSeenAt src/Dodge/Data/ActionPlan.hs 73;" f _tbPos src/Dodge/Data/TractorBeam.hs 12;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 13;" f _tbTime src/Dodge/Data/TractorBeam.hs 15;" f @@ -2434,7 +2439,7 @@ _tuDir src/Dodge/Data/Machine.hs 68;" f _tuFireTime src/Dodge/Data/Machine.hs 67;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 66;" f _tuWeapon src/Dodge/Data/Machine.hs 65;" f -_turnToPoint src/Dodge/Data/ActionPlan.hs 76;" f +_turnToPoint src/Dodge/Data/ActionPlan.hs 77;" f _uInt src/Dodge/Data/Item/Use.hs 31;" f _uScope src/Dodge/Data/Item/Use.hs 34;" f _uValue src/Dodge/Data/Item/Use.hs 33;" f @@ -2457,7 +2462,7 @@ _upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 63;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f -_useSelf src/Dodge/Data/ActionPlan.hs 123;" f +_useSelf src/Dodge/Data/ActionPlan.hs 124;" f _useToggle src/Dodge/Data/Item/Use.hs 36;" f _useUpTo src/Dodge/Data/Muzzle.hs 64;" f _uvCanContinue src/Dodge/Data/Universe.hs 36;" f @@ -2507,8 +2512,8 @@ _vxShadNum src/Picture/Data.hs 16;" f _wCam src/Dodge/Data/World.hs 59;" f _wSoundFilter src/Dodge/Data/World.hs 43;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f -_waitThenAction src/Dodge/Data/ActionPlan.hs 81;" f -_waitThenTimer src/Dodge/Data/ActionPlan.hs 80;" f +_waitThenAction src/Dodge/Data/ActionPlan.hs 82;" f +_waitThenTimer src/Dodge/Data/ActionPlan.hs 81;" f _wallDamages src/Dodge/Data/LWorld.hs 123;" f _wallVBO src/Data/Preload/Render.hs 50;" f _walls src/Dodge/Data/LWorld.hs 122;" f @@ -2542,7 +2547,7 @@ _wsMachine src/Dodge/Data/Wall/Structure.hs 14;" f _xNum src/Dodge/Data/Item/Combine.hs 141;" f _xNum src/Dodge/Data/Item/Combine.hs 151;" f _xNum src/Dodge/Data/Item/Combine.hs 171;" f -_zSpeed src/Dodge/Data/Creature/Stance.hs 26;" f +_zSpeed src/Dodge/Data/Creature/Stance.hs 27;" f aBar src/Dodge/Placement/Instance/LightSource.hs 70;" f aFlame src/Dodge/Gas.hs 20;" f aGasCloud src/Dodge/Gas.hs 15;" f @@ -2803,7 +2808,7 @@ buttonFlip src/Dodge/Button/Event.hs 18;" f buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 847;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f byNthLink src/Dodge/Room/Warning.hs 44;" f -cChasm src/Dodge/Room/Tutorial.hs 141;" f +cChasm src/Dodge/Room/Tutorial.hs 142;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2840,15 +2845,15 @@ chaseCrit src/Dodge/Creature/ChaseCrit.hs 33;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f chaseUpperBody src/Dodge/Creature/Picture.hs 152;" f -chasmRotate src/Dodge/Creature/State/WalkCycle.hs 123;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 378;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f -chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 105;" f +chasmRotate src/Dodge/Creature/State/WalkCycle.hs 124;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 312;" f +chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 106;" f chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f -checkDeath src/Dodge/Creature/Update.hs 184;" f -checkDeath' src/Dodge/Creature/Update.hs 187;" f +checkDeath src/Dodge/Creature/Update.hs 209;" f +checkDeath' src/Dodge/Creature/Update.hs 212;" f checkEndGame src/Dodge/Update.hs 875;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2863,7 +2868,7 @@ chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f chestPQ src/Dodge/Creature/HandPos.hs 180;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f -chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 152;" f +chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 153;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f circHitWall src/Dodge/Base/Collide.hs 247;" f @@ -2872,8 +2877,8 @@ circOnAnyCr src/Dodge/Base/Collide.hs 292;" f circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f circOnSomeWall src/Dodge/Base/Collide.hs 286;" f -circSegsInside src/Dodge/Creature/State/WalkCycle.hs 91;" f -circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 80;" f +circSegsInside src/Dodge/Creature/State/WalkCycle.hs 92;" f +circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 81;" f circle src/Picture/Base.hs 172;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f @@ -2971,7 +2976,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 136;" 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 233;" f +corpseOrGib src/Dodge/Creature/Update.hs 258;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -3020,7 +3025,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 984;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f -crUpdate src/Dodge/Creature/Update.hs 177;" f +crUpdate src/Dodge/Creature/Update.hs 202;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 65;" f @@ -3035,7 +3040,7 @@ crabCorpse src/Dodge/Creature/Picture.hs 293;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 40;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f crabFeet src/Dodge/Creature/Picture.hs 204;" f -crabRoom src/Dodge/Room/Tutorial.hs 432;" f +crabRoom src/Dodge/Room/Tutorial.hs 433;" f crabUpperBody src/Dodge/Creature/Picture.hs 128;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f @@ -3302,8 +3307,8 @@ doFloatFloat src/Dodge/FloatFunction.hs 5;" f doGenFloat src/Dodge/HeldUse.hs 1177;" f doGravityPU src/Dodge/Projectile/Update.hs 35;" f doHeldUseEffect src/Dodge/HeldUse.hs 379;" f -doInPlacements src/Dodge/Layout.hs 101;" f -doIndividualPlacements src/Dodge/Layout.hs 113;" f +doInPlacements src/Dodge/Layout.hs 106;" f +doIndividualPlacements src/Dodge/Layout.hs 118;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 38;" f doItemTimeScroll src/Dodge/Update.hs 230;" f doLoop src/Loop.hs 60;" f @@ -3315,11 +3320,12 @@ 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 457;" f -doRoomPlacements src/Dodge/Layout.hs 116;" f +doRoomPlacements src/Dodge/Layout.hs 121;" f doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f +doSlimeRadChange src/Dodge/Creature/Update.hs 123;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 272;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f @@ -3481,7 +3487,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f -dropAll src/Dodge/Creature/Update.hs 271;" f +dropAll src/Dodge/Creature/Update.hs 296;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 169;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3619,7 +3625,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 795;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 841;" f -foldMTRS src/Dodge/Room/Tutorial.hs 95;" f +foldMTRS src/Dodge/Room/Tutorial.hs 96;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3647,6 +3653,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 278;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f +fuseSlimes src/Dodge/Update.hs 1039;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3654,9 +3661,9 @@ gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 12;" f gadgetEffect src/Dodge/HeldUse.hs 50;" f gameOverMenu src/Dodge/Menu.hs 200;" f -gameRoomFromRoom src/Dodge/Layout.hs 168;" f +gameRoomFromRoom src/Dodge/Layout.hs 173;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f -gameRoomsFromRooms src/Dodge/Layout.hs 165;" f +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 900;" f @@ -3683,8 +3690,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 543;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 55;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 589;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 576;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 590;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 577;" f getDebugMouseOver src/Dodge/Update.hs 472;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3701,13 +3708,13 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 572;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 573;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 129;" f -getTiles src/Dodge/Layout.hs 219;" f +getTiles src/Dodge/Layout.hs 224;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f getVolleyBurst src/Dodge/HeldUse.hs 130;" f getWallPathing src/Dodge/Wall/Pathing.hs 7;" f @@ -3743,7 +3750,7 @@ gridInPolygon src/Grid.hs 10;" f gridPoints' src/Grid.hs 37;" f gridPointsOff src/Grid.hs 32;" f gridRoomPos src/Dodge/Room/Procedural.hs 91;" f -groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 71;" f +groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 72;" f groupSplitItemAmounts src/Dodge/Combine.hs 52;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 869;" f @@ -3776,7 +3783,7 @@ handleResizeEvent src/Dodge/Event.hs 53;" f 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 138;" f +hasAutoDoorBody src/Dodge/Creature/Test.hs 139;" f hasButtonLOS src/Dodge/Base/Collide.hs 311;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasLOS src/Dodge/Base/Collide.hs 304;" f @@ -3823,8 +3830,8 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f -hoverCrit src/Dodge/Creature/ChaseCrit.hs 73;" f -hoverCritHoverSound src/Dodge/Creature/Update.hs 154;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 75;" f +hoverCritHoverSound src/Dodge/Creature/Update.hs 179;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 58;" f @@ -4020,7 +4027,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f keyPic src/Dodge/Item/Draw/SPic.hs 441;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f -lChasm src/Dodge/Room/Tutorial.hs 153;" f +lChasm src/Dodge/Room/Tutorial.hs 154;" f lConnect src/Dodge/Render/Connectors.hs 43;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f @@ -4088,7 +4095,7 @@ listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 415;" f -loadAmmoTut src/Dodge/Room/Tutorial.hs 436;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 437;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4219,7 +4226,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 572;" f maybeOpenConsole src/Dodge/Update.hs 135;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f -maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 130;" f +maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 131;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f mcBackgroundSound src/Dodge/Machine/Update.hs 152;" f mcColor src/Dodge/Machine/Draw.hs 74;" f @@ -4268,9 +4275,9 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 182;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 204;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 272;" f +midChasm src/Dodge/Room/Tutorial.hs 183;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 205;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 273;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4373,9 +4380,9 @@ noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f -nonConvexChasm src/Dodge/Room/Tutorial.hs 269;" f +nonConvexChasm src/Dodge/Room/Tutorial.hs 270;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f -normalGait src/Dodge/Creature/State/WalkCycle.hs 147;" f +normalGait src/Dodge/Creature/State/WalkCycle.hs 148;" f normalTo8 src/Shader/Poke.hs 475;" f normalizeAngle src/Geometry/Vector.hs 136;" f normalizeAnglePi src/Dodge/Base.hs 154;" f @@ -4449,7 +4456,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 654;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 655;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4490,7 +4497,7 @@ plNew src/Dodge/Base/NewID.hs 19;" f plNewID src/Dodge/Base/NewID.hs 7;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f -plPriority src/Dodge/Layout.hs 124;" f +plPriority src/Dodge/Layout.hs 129;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f placeChasm src/Dodge/Placement/PlaceSpot.hs 147;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 40;" f @@ -4520,7 +4527,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f -poisonSPic src/Dodge/Creature/Update.hs 267;" f +poisonSPic src/Dodge/Creature/Update.hs 292;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 518;" f pokeArrayOff src/Shader/Poke.hs 530;" f @@ -4555,8 +4562,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 356;" f -polyChasmC src/Dodge/Room/Tutorial.hs 368;" f +polyChasm src/Dodge/Room/Tutorial.hs 357;" f +polyChasmC src/Dodge/Room/Tutorial.hs 369;" f polyCirc src/Shape.hs 48;" f polyCircx src/Shape.hs 53;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4623,7 +4630,7 @@ psposAddLabel src/Dodge/PlacementSpot.hs 71;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f pulseChecker src/Dodge/Item/Equipment.hs 84;" f -pushAgainst src/Dodge/Creature/State/WalkCycle.hs 56;" f +pushAgainst src/Dodge/Creature/State/WalkCycle.hs 57;" f pushCaverns src/Dodge/Room/LongDoor.hs 192;" f pushCr src/Dodge/WallCreatureCollisions.hs 42;" f pushL src/DoubleStack.hs 20;" f @@ -4648,7 +4655,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 100;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f putShape src/Dodge/Room/Foreground.hs 134;" f -putSingleLight src/Dodge/Room/Tutorial.hs 470;" f +putSingleLight src/Dodge/Room/Tutorial.hs 471;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 84;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f @@ -4762,7 +4769,7 @@ renderShadows src/Render.hs 116;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 69;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f -resetStride src/Dodge/Creature/State/WalkCycle.hs 142;" f +resetStride src/Dodge/Creature/State/WalkCycle.hs 143;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f @@ -4821,7 +4828,7 @@ roomPillarsSquare src/Dodge/Room/Pillar.hs 50;" f roomRect src/Dodge/Room/Procedural.hs 42;" f roomRectAutoLights src/Dodge/Room/Procedural.hs 120;" f roomShuriken src/Dodge/Room/Boss.hs 116;" f -roomTileZeroShift src/Dodge/Layout.hs 71;" f +roomTileZeroShift src/Dodge/Layout.hs 73;" f roomTwistCross src/Dodge/Room/Boss.hs 147;" f roomsContaining src/Dodge/Room/Containing.hs 20;" f roomsContaining' src/Dodge/Room/Containing.hs 25;" f @@ -4889,7 +4896,7 @@ scaleSH src/Shape.hs 271;" f scalp src/Dodge/Creature/Picture.hs 348;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 264;" f +scorchSPic src/Dodge/Creature/Update.hs 289;" 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 @@ -4917,7 +4924,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 205;" f seedStartMenu src/Dodge/Menu.hs 85;" f seedStartOptions src/Dodge/Menu.hs 88;" f segOnCirc src/Geometry.hs 113;" f -segmentArea src/Dodge/Creature/Update.hs 135;" f +segmentArea src/Dodge/Creature/Update.hs 160;" f selNumPos src/Dodge/Render/HUD.hs 475;" f selNumPosCardinal src/Dodge/Render/HUD.hs 492;" f selSecDrawCursor src/Dodge/Render/List.hs 101;" f @@ -4935,7 +4942,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f sensorSPic src/Dodge/Machine/Draw.hs 89;" f -sensorTut src/Dodge/Room/Tutorial.hs 598;" f +sensorTut src/Dodge/Room/Tutorial.hs 599;" f sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4967,9 +4974,9 @@ setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 159;" f -setTile src/Dodge/Layout.hs 75;" f +setTile src/Dodge/Layout.hs 78;" f setTiles src/Dodge/Layout.hs 68;" f -setTreeInts src/Dodge/Room/Tutorial.hs 102;" f +setTreeInts src/Dodge/Room/Tutorial.hs 103;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 71;" f setViewport src/Dodge/Render.hs 448;" f @@ -4984,7 +4991,7 @@ setupFramebufferGivenStencil src/Framebuffer/Setup.hs 31;" f setupLoop src/Loop.hs 30;" f setupShadowFramebuffer src/Framebuffer/Setup.hs 24;" f setupVBO src/Shader/Compile.hs 37;" f -setupWorldBounds src/Dodge/Layout.hs 131;" f +setupWorldBounds src/Dodge/Layout.hs 136;" f sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f shaderTypeExt src/Shader/Compile.hs 59;" f shapeBounds src/Dodge/Room/Foreground.hs 147;" f @@ -5047,16 +5054,16 @@ showEquipItem src/Dodge/Item/Display.hs 108;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 104;" f +showManObj src/Dodge/TestString.hs 107;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 121;" f +showTimeFlow src/Dodge/TestString.hs 124;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f shuffleLinks src/Dodge/Room/Link.hs 31;" f shufflePair src/RandomHelp.hs 166;" f -shuffleRoomPos src/Dodge/Layout.hs 98;" f +shuffleRoomPos src/Dodge/Layout.hs 103;" f shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f simpleCrSprings src/Dodge/Update.hs 978;" f @@ -5089,7 +5096,7 @@ slideWindow src/ListHelp.hs 81;" f slimeCrit src/Dodge/Creature/ChaseCrit.hs 65;" f slimeCritUpdate src/Dodge/Creature/Update.hs 72;" f slinkCrit src/Dodge/Creature/ChaseCrit.hs 54;" f -slinkCritUpdate src/Dodge/Creature/Update.hs 138;" f +slinkCritUpdate src/Dodge/Creature/Update.hs 163;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f slowCrushRoom src/Dodge/Room/LongDoor.hs 148;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 309;" f @@ -5151,7 +5158,7 @@ splashScreen src/Dodge/Initialisation.hs 10;" f splitBezierquad src/Geometry/Bezier.hs 15;" f splitExtra src/Justify.hs 21;" f splitLookupTrie src/SimpleTrie.hs 39;" f -splitSlimeCrit src/Dodge/Creature/Update.hs 112;" f +splitSlimeCrit src/Dodge/Creature/Update.hs 133;" f splitTrunk src/TreeHelp.hs 181;" f splitTrunkAt src/TreeHelp.hs 169;" f spreadAroundCenter src/Dodge/Base.hs 173;" f @@ -5161,8 +5168,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 233;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 248;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 234;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 249;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f @@ -5189,7 +5196,7 @@ stackText src/Picture/Base.hs 180;" f stackedInventory src/Dodge/Creature.hs 326;" f startCr src/Dodge/Creature.hs 90;" f startCrafts src/Dodge/Room/Start.hs 94;" f -startDeathTimer src/Dodge/Creature/Update.hs 218;" f +startDeathTimer src/Dodge/Creature/Update.hs 243;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f startInvList src/Dodge/Creature.hs 105;" f startInventory src/Dodge/Creature.hs 108;" f @@ -5283,7 +5290,7 @@ testEvent src/Dodge/Event/Test.hs 11;" f testInventory src/Dodge/Creature.hs 307;" f testPic src/Dodge/Render/ShapePicture.hs 57;" f testSPic src/Dodge/Render/ShapePicture.hs 54;" f -testStringInit src/Dodge/TestString.hs 43;" f +testStringInit src/Dodge/TestString.hs 44;" f text src/Picture/Base.hs 185;" f textGrad src/Picture/Text.hs 5;" f textInputBlurb src/Dodge/Terminal.hs 43;" f @@ -5315,7 +5322,7 @@ throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 819;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 779;" f throwItem src/Dodge/Creature/Action.hs 205;" f tileTexCoords src/Tile.hs 11;" f -tilesFromRooms src/Dodge/Layout.hs 216;" f +tilesFromRooms src/Dodge/Layout.hs 221;" f tilesToLine src/Shader/AuxAddition.hs 66;" f timeFlowUpdate src/Dodge/Update.hs 205;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f @@ -5340,7 +5347,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f -toDeathCarriage src/Dodge/Creature/Update.hs 226;" f +toDeathCarriage src/Dodge/Creature/Update.hs 251;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5349,7 +5356,7 @@ toTopLeft src/Dodge/Render/List.hs 212;" f toV2 src/Geometry/Data.hs 54;" f toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f -tocrs src/Dodge/TestString.hs 38;" f +tocrs src/Dodge/TestString.hs 39;" f toggleCombineInv src/Dodge/DisplayInventory.hs 315;" f toggleCommands src/Dodge/Terminal.hs 86;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f @@ -5364,7 +5371,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" 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 99;" f +topTestPart src/Dodge/TestString.hs 102;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f @@ -5437,12 +5444,12 @@ tryUseParent src/Dodge/Creature/State.hs 150;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f -tutDrop src/Dodge/Room/Tutorial.hs 107;" f -tutHub src/Dodge/Room/Tutorial.hs 496;" f -tutLight src/Dodge/Room/Tutorial.hs 400;" f -tutRezBox src/Dodge/Room/Tutorial.hs 609;" f +tutDrop src/Dodge/Room/Tutorial.hs 108;" f +tutHub src/Dodge/Room/Tutorial.hs 497;" f +tutLight src/Dodge/Room/Tutorial.hs 401;" f +tutRezBox src/Dodge/Room/Tutorial.hs 610;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 634;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 635;" f tweenAngles src/Geometry/Vector.hs 198;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5501,7 +5508,7 @@ updateCreatureStrides src/Dodge/Update.hs 373;" f updateDebris src/Dodge/Update.hs 676;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1021;" f +updateDelayedEvents src/Dodge/Update.hs 1058;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 655;" f @@ -5559,7 +5566,7 @@ updatePlasmaBall src/Dodge/Update.hs 527;" f updatePlasmaBalls src/Dodge/Update.hs 669;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f -updatePulse src/Dodge/Creature/Update.hs 279;" f +updatePulse src/Dodge/Creature/Update.hs 304;" f updatePulseBall src/Dodge/Update.hs 547;" f updatePulseLaser src/Dodge/Update.hs 716;" f updatePulseLasers src/Dodge/Update.hs 522;" f @@ -5669,7 +5676,7 @@ visibleWalls src/Dodge/Base/Collide.hs 225;" f visionCheck src/Dodge/Creature/Perception.hs 162;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f -walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 65;" f +walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 66;" f walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 90;" f wallBlips src/Dodge/RadarSweep.hs 99;" f @@ -5677,7 +5684,7 @@ wallBuffer src/Dodge/WallCreatureCollisions.hs 99;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallMovement src/Dodge/WallCreatureCollisions.hs 68;" f wallToSurface src/Dodge/Base/Collide.hs 189;" f -wallsFromRooms src/Dodge/Layout.hs 153;" f +wallsFromRooms src/Dodge/Layout.hs 158;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1396;" f warningRooms src/Dodge/Room/Warning.hs 34;" f @@ -5772,7 +5779,7 @@ yourRootItem src/Dodge/Base/You.hs 26;" f yourRootItemDT src/Dodge/Base/You.hs 32;" f yourSelectedItem src/Dodge/Base/You.hs 20;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 166;" f +zChasm src/Dodge/Room/Tutorial.hs 167;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f