diff --git a/src/Dodge/Base/CardinalPoint.hs b/src/Dodge/Base/CardinalPoint.hs index f825d8f1a..06774d856 100644 --- a/src/Dodge/Base/CardinalPoint.hs +++ b/src/Dodge/Base/CardinalPoint.hs @@ -21,6 +21,9 @@ cardVec = \case East -> V2 1 0 West -> V2 (-1) 0 +vecCard :: Point2 -> CardinalPoint +vecCard (V2 x y) = undefined + card8Vec :: Cardinal8 -> Point2 card8Vec cp = case cp of North8 -> V2 0 1 diff --git a/src/Dodge/Base/Collide.hs b/src/Dodge/Base/Collide.hs index dbefdc932..288e1b2bd 100644 --- a/src/Dodge/Base/Collide.hs +++ b/src/Dodge/Base/Collide.hs @@ -180,6 +180,8 @@ crHeight cr = case cr ^. crHP of ChaseCrit {} -> 25 Avatar {} -> 25 CrabCrit {} -> 25 + SlinkCrit {} -> 25 + SlimeCrit {_slimeRad = r} -> r _ -> error "Need to define crHeight for this crType" CrIsCorpse{} -> Just 5 CrDestroyed{} -> Nothing diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index 7259bc293..1f3937340 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -4,9 +4,12 @@ module Dodge.Creature.ChaseCrit ( crabCrit, chaseCrit, hoverCrit, + slinkCrit, + slimeCrit, ) where ---import Dodge.Data.Equipment.Misc +import qualified Quaternion as Q +import Linear import Dodge.Data.FloatFunction import Control.Lens import Dodge.Data.Creature @@ -48,6 +51,25 @@ crabCrit = defaultCreature & crFaction .~ ColorFaction red & crPerception . cpVision . viFOV .~ FloatFOV pi +slinkCrit :: Creature +slinkCrit = defaultCreature + & crName .~ "slinkCrit" + & crHP .~ HP 1000 + & crType .~ SlinkCrit + { _meleeCooldown = 0 + , _slinkSpine = replicate 15 (V3 0 0 2, Q.axisAngle (V3 0 1 0) (pi/15)) + } + & crFaction .~ ColorFaction red + & crPerception . cpVision . viFOV .~ FloatFOV pi + +slimeCrit :: Creature +slimeCrit = defaultCreature + & crName .~ "slimeCrit" + & crHP .~ HP 1000 + & crType .~ SlimeCrit 40 (V2 30 0) False + & crFaction .~ ColorFaction (light green) + & crPerception . cpVision . viFOV .~ FloatFOV pi + hoverCrit :: Creature hoverCrit = defaultCreature diff --git a/src/Dodge/Creature/Mass.hs b/src/Dodge/Creature/Mass.hs index 4a9ba73e8..d4af76fe3 100644 --- a/src/Dodge/Creature/Mass.hs +++ b/src/Dodge/Creature/Mass.hs @@ -11,4 +11,6 @@ crMass = \case SwarmCrit -> 2 AutoCrit -> 10 BarrelCrit{} -> 10 + SlinkCrit{} -> 100 LampCrit {} -> 3 + SlimeCrit {_slimeRad = r} -> r diff --git a/src/Dodge/Creature/Material.hs b/src/Dodge/Creature/Material.hs index 990a5efe5..9d54341ed 100644 --- a/src/Dodge/Creature/Material.hs +++ b/src/Dodge/Creature/Material.hs @@ -13,5 +13,7 @@ crMaterial = \case HoverCrit {} -> Metal SwarmCrit -> Flesh AutoCrit -> Flesh + SlinkCrit{} -> Flesh BarrelCrit{} -> Metal LampCrit{} -> Glass + SlimeCrit{} -> Flesh diff --git a/src/Dodge/Creature/MaxHP.hs b/src/Dodge/Creature/MaxHP.hs index a2304beed..adabe7ab4 100644 --- a/src/Dodge/Creature/MaxHP.hs +++ b/src/Dodge/Creature/MaxHP.hs @@ -13,4 +13,5 @@ crMaxHP = \case AutoCrit -> 100 BarrelCrit{} -> 100 LampCrit {} -> 50 - + SlinkCrit {} -> 1000 + SlimeCrit {} -> 1000 diff --git a/src/Dodge/Creature/MoveType.hs b/src/Dodge/Creature/MoveType.hs index 7fc11c587..5b08c7329 100644 --- a/src/Dodge/Creature/MoveType.hs +++ b/src/Dodge/Creature/MoveType.hs @@ -7,6 +7,7 @@ import Control.Lens crMvType :: Creature -> CrMvType crMvType cr = case _crType cr of Avatar {} -> MvWalking 1.5 + SlinkCrit {} -> NoMvType ChaseCrit {} -> defaultChaseMvType & mvSpeed .~ 1.8 CrabCrit {} -> defaultChaseMvType & mvSpeed .~ 0.5 & mvTurnJit .~ 0.01 @@ -15,6 +16,7 @@ crMvType cr = case _crType cr of AutoCrit -> defaultAimMvType BarrelCrit {} -> defaultAimMvType LampCrit {} -> defaultAimMvType + SlimeCrit {} -> NoMvType defaultAimMvType :: CrMvType defaultAimMvType = diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index dd72171fa..592237f3e 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -3,16 +3,12 @@ Drawing of creatures. Takes into account damage etc. -} module Dodge.Creature.Picture ( - basicCrPict, - deadScalp, - deadUpperBody, - deadFeet, - drawChaseCrit, - drawHoverCrit, - drawCrabCrit, makeCorpse, + drawCreature, ) where +import Data.Foldable +import qualified Data.Strict.Tuple as ST import RandomHelp import Dodge.Base.Collide import Control.Monad @@ -37,6 +33,42 @@ import Shape --import Shape import ShapePicture +drawCreature :: World -> IM.IntMap Item -> Creature -> SPic +drawCreature w m cr = translateSP (_crPos cr) . fallrot . rotateSP (_crDir cr) $ + case cr ^. crType of + _ | CrIsCorpse sp <- cr ^. crHP -> sp + _ | null (cr ^? crHP . _HP) -> mempty + BarrelCrit{} -> barrelShape + LampCrit{_lampHeight = h} -> lampCrSPic h + ChaseCrit {} -> noPic $ drawChaseCrit w cr + Avatar {} -> basicCrPict m cr + SwarmCrit -> basicCrPict m cr + AutoCrit -> basicCrPict m cr + CrabCrit {} -> noPic $ drawCrabCrit w cr + HoverCrit{} -> noPic $ drawHoverCrit cr + SlinkCrit{} -> noPic $ drawSlinkCrit cr + SlimeCrit{} -> noPic $ drawSlimeCrit cr + where + fallrot = case cr ^? crStance . carriage . carDir of + Just q -> _1 . each . sfVs . each %~ Q.rotate q + _ -> id + +drawSlimeCrit :: Creature -> Shape +drawSlimeCrit cr = colorSH green $ upperPrismPolyHalf Medium Undesired r $ polyCirc 6 r + & each %~ scaleAlong d s + & each %~ scaleAlong (vNormal d) (1 / s) + & each %~ rotateV (-cr ^. crDir) + where + r = cr ^?! crType . slimeRad + p = cr ^?! crType . slimeCompression + d = normalize p + s = norm p / r + +-- assumes d is a unit vector +scaleAlong :: Point2 -> Float -> Point2 -> Point2 +scaleAlong d s p = ((s - 1) * dot d p) *^ d + p + + basicCrPict :: IM.IntMap Item -> Creature -> SPic basicCrPict m cr = drawEquipment m cr <> noPic (basicCrShape cr) @@ -58,6 +90,14 @@ basicCrShape cr crsize = 0.1 * crRad (cr ^. crType) rotmdir = rotateSH (_crMvDir cr - _crDir cr) +drawSlinkCrit :: Creature -> Shape +drawSlinkCrit cr = snd (foldl' f ((V3 0 0 0,Q.qid), mempty) $ cr ^?! crType . slinkSpine) + & each . sfColor .~ cskin ^?! skinUpper + where + cskin = crShape $ _crType cr + f ((p,q),sh) (p',q') = ((p,q) `Q.comp` (p',q'), sh <> (g p' & each . sfVs . each %~ Q.apply (p,q))) + g _ = upperPrismPoly Medium Important 2 $ polyCirc 6 10 + drawHoverCrit :: Creature -> Shape drawHoverCrit cr = colorSH (_skinHead cskin) (overPosSH (Q.apply tpq) $ upperBoxHalf Medium Typical 1 $ square 4) @@ -332,3 +372,14 @@ upperBody cr = arms cr <> torso cr drawEquipment :: IM.IntMap Item -> Creature -> SPic {-# INLINE drawEquipment #-} drawEquipment m cr = foldMap (itemEquipPict cr) (invDT . fmap (\i -> m ^?! ix i) $ _crInv cr) + +barrelShape :: SPic +barrelShape = noPic $ cylinderPoly Medium Important (map (addZ 20) ps) (map (addZ 0) ps) + where + ps = polyCirc 3 10 + +lampCrSPic :: Float -> SPic +lampCrSPic h = + colorSH blue (upperBox Small Undesired h $ rectWH 5 5) + ST.:!: setLayer BloomLayer (setDepth h . color white $ circleSolid 3) + diff --git a/src/Dodge/Creature/Radius.hs b/src/Dodge/Creature/Radius.hs index 7d2bdd9af..9bced1cc1 100644 --- a/src/Dodge/Creature/Radius.hs +++ b/src/Dodge/Creature/Radius.hs @@ -15,3 +15,5 @@ crRad = \case AutoCrit -> 10 BarrelCrit{} -> 10 LampCrit {} -> 3 + SlinkCrit {} -> 10 + SlimeCrit {_slimeRad = r} -> r diff --git a/src/Dodge/Creature/Shape.hs b/src/Dodge/Creature/Shape.hs index d430c3587..fa28d4cca 100644 --- a/src/Dodge/Creature/Shape.hs +++ b/src/Dodge/Creature/Shape.hs @@ -13,5 +13,7 @@ crShape = \case HoverCrit {} -> Humanoid (greyN 0.9) (light blue) (greyN 0.3) SwarmCrit -> Humanoid (greyN 0.9) (lightx4 yellow) (greyN 0.3) AutoCrit -> Humanoid (greyN 0.9) (lightx4 red) (greyN 0.3) + SlinkCrit{} -> Humanoid (greyN 0.9) (dark . dark . dark $ orange) (greyN 0.3) BarrelCrit {} -> Barreloid LampCrit {} -> NonDrawnCreature + SlimeCrit {} -> Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) diff --git a/src/Dodge/Creature/Statistics.hs b/src/Dodge/Creature/Statistics.hs index 55faf5f42..a77a51acd 100644 --- a/src/Dodge/Creature/Statistics.hs +++ b/src/Dodge/Creature/Statistics.hs @@ -48,6 +48,8 @@ crIntelligence cr = case cr ^. crType of AutoCrit -> 20 BarrelCrit {} -> 0 LampCrit {} -> 0 + SlinkCrit{} -> 5 + SlimeCrit{} -> 1 getCrMoveSpeed :: LWorld -> Creature -> Int diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 5f7923022..c4bf2b2ba 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -1,16 +1,18 @@ {-# LANGUAGE LambdaCase #-} + module Dodge.Creature.Update (updateCreature) where -import qualified Quaternion as Q -import Dodge.Creature.Picture -import Dodge.Base.You -import Control.Monad +import Dodge.Base.Collide +import Dodge.Creature.Radius import Color +import Control.Monad import qualified Data.IntMap.Strict as IM import Data.Maybe import Dodge.Barreloid +import Dodge.Base.You -- import Dodge.Base.NewID import Dodge.Creature.Action +import Dodge.Creature.Picture import Dodge.Creature.State import Dodge.Creature.State.WalkCycle import Dodge.Creature.Vocalization @@ -28,6 +30,7 @@ import Geometry import LensHelp import Linear import NewInt +import qualified Quaternion as Q import RandomHelp import Shape import ShapePicture.Data @@ -44,27 +47,74 @@ updateCreature cr tocr = cWorld . lWorld . creatures . ix (_crID cr) updateLivingCreature :: Creature -> World -> World -updateLivingCreature cr = - case _crType cr of - Avatar{} -> - (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse) - . crUpdate cid - . yourControl - LampCrit{} -> updateLampoid cr - BarrelCrit bt -> updateBarreloid bt cr - ChaseCrit{} -> \w -> - crUpdate cid . performActions cid $ - over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w - CrabCrit{} -> - crUpdate cid . performActions cid . crabCritInternal cid - AutoCrit {} -> crUpdate cid - SwarmCrit {} -> crUpdate cid - HoverCrit {} -> \w -> - crUpdate cid . performActions cid . hoverCritHoverSound cr $ - over (cWorld . lWorld . creatures . ix cid) (hoverCritInternal w) w +updateLivingCreature cr = case _crType cr of + Avatar{} -> + (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse) + . crUpdate cid + . yourControl + LampCrit{} -> updateLampoid cr + BarrelCrit bt -> updateBarreloid bt cr + ChaseCrit{} -> \w -> + crUpdate cid . performActions cid $ + over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w + CrabCrit{} -> + crUpdate cid . performActions cid . crabCritInternal cid + AutoCrit{} -> crUpdate cid + SwarmCrit{} -> crUpdate cid + HoverCrit{} -> \w -> + crUpdate cid . performActions cid . hoverCritHoverSound cr $ + over (cWorld . lWorld . creatures . ix cid) (hoverCritInternal w) w + SlinkCrit{} -> slinkCritUpdate cid + SlimeCrit{} -> slimeCritUpdate cid where cid = cr ^. crID +slimeCritUpdate :: Int -> World -> World +slimeCritUpdate cid w = w + & cWorld . lWorld . creatures . ix cid .~ mvslime + where + txy = w ^?! cWorld . lWorld . creatures . ix 0 . crPos . _xy + cr = w ^?! cWorld . lWorld . creatures . ix cid + cxy = cr ^. crPos . _xy + mvslime + | hasLOS cxy txy w = mvslime' + | otherwise = cr + mvslime' = cr & crType . slimeCompression .~ p' + x + & crPos . _xy +~ g (0.5*x) + & crType . slimeIsCompressing %~ (f . f') + & crDir .~ argV (txy-cxy) + g | cr ^?! crType . slimeIsCompressing = negate + | otherwise = id + s | cr ^?! crType . slimeIsCompressing = 2/3 + | otherwise = 1.5 + f | abs (norm v - norm p') < 0.1 = not + | otherwise = id + v = (s * r) *^ unitVectorAtAngle (cr ^. crDir) + r = crRad (cr ^. crType) + 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) + | dot p (-v) > dot p (vNormal v) && dot p (-v) > dot p (-vNormal v) = (-p, id) + | dot p (vNormal v) > dot p (-vNormal v) = ((r*r/norm p) *^ normalize (vNormal p), not) + | otherwise = (-(r*r/norm p) *^ normalize (vNormal p), not) + x = 0.1 *^ normalize (v - p') + +slinkCritUpdate :: Int -> World -> World +slinkCritUpdate cid w = + w + & cWorld + . lWorld + . creatures + . ix cid + . crType + . slinkSpine + . each + . _2 + *~ Q.axisAngle (V3 0 1 0) (pi / 1000) + +-- spineWalk :: [Point3Q] +-- spineWalk = replicate 15 (V3 + hoverCritHoverSound :: Creature -> World -> World hoverCritHoverSound cr w = fromMaybe w $ do guard $ d < 100 @@ -93,7 +143,7 @@ crUpdate cid = checkDeath cid . doDamage cid . invItemEffs cid - . updateCarriage cid -- stride appears to be updated elsewhere as well + . updateCarriage cid -- stride appears to be updated elsewhere as well checkDeath :: Int -> World -> World checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix cid) w @@ -101,53 +151,66 @@ checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix c checkDeath' :: Creature -> World -> World checkDeath' cr w = case cr ^. crHP of HP x | x > 0 -> w & tocr . crDamage .~ [] - HP x | x > -200 && null (cr ^. crDeathTimer) - -> w & tocr %~ startDeathTimer - HP x | x > -200 - ,Just y <- cr ^. crDeathTimer + HP x + | x > -200 && null (cr ^. crDeathTimer) -> + w & tocr %~ startDeathTimer + HP x + | x > -200 + , Just y <- cr ^. crDeathTimer , y > 0 -> w - & tocr . crDamage .~ [] - & tocr . crDeathTimer . _Just -~ 1 + & tocr + . crDamage + .~ [] + & tocr + . crDeathTimer + . _Just + -~ 1 HP _ -> w & dropAll cr -- the order of these is possibly important & stopSoundFrom (CrWeaponSound (_crID cr) 0) & corpseOrGib cr - & tocr . crStance . carriage %~ toDeathCarriage + & tocr + . crStance + . carriage + %~ toDeathCarriage _ -> w where tocr = cWorld . lWorld . creatures . ix (_crID cr) startDeathTimer :: Creature -> Creature -startDeathTimer cr = cr - & crDeathTimer ?~ case cr ^. crType of - HoverCrit {} -> 0 - _ -> 5 +startDeathTimer cr = + cr + & crDeathTimer + ?~ case cr ^. crType of + HoverCrit{} -> 0 + _ -> 5 toDeathCarriage :: Carriage -> Carriage toDeathCarriage = \case - Flying {} -> Falling Q.qid Q.qid + Flying{} -> Falling Q.qid Q.qid Walking -> OnGround Q.qid _ -> Falling Q.qid Q.qid -- could look at the amount of damage here (given by maxDamage) too corpseOrGib :: Creature -> World -> World -corpseOrGib cr w = w & case cr ^? crDamage . to maxDamageType . _Just . _1 of - Just CookingDamage -> - sethp (CrIsCorpse $ scorchSPic thecorpse) - . dodeathsound CookDeath - Just PoisonDamage -> - sethp (CrIsCorpse $ poisonSPic thecorpse) - . dodeathsound PoisonDeath - Just PhysicalDamage - | _crPain cr > 300 -> - makeCrGibs cr - . sethp (CrDestroyed Gibbed) - . dodeathsound GibsDeath - _ -> - sethp (CrIsCorpse thecorpse) - . dodeathsound PlainDeath +corpseOrGib cr w = + w & case cr ^? crDamage . to maxDamageType . _Just . _1 of + Just CookingDamage -> + sethp (CrIsCorpse $ scorchSPic thecorpse) + . dodeathsound CookDeath + Just PoisonDamage -> + sethp (CrIsCorpse $ poisonSPic thecorpse) + . dodeathsound PoisonDeath + Just PhysicalDamage + | _crPain cr > 300 -> + makeCrGibs cr + . sethp (CrDestroyed Gibbed) + . dodeathsound GibsDeath + _ -> + sethp (CrIsCorpse thecorpse) + . dodeathsound PlainDeath where dodeathsound dt = f dt . stopSoundFrom (CrMouth cid) f dt w' = fromMaybe w' $ do @@ -156,7 +219,8 @@ corpseOrGib cr w = w & case cr ^? crDamage . to maxDamageType . _Just . _1 of return $ w' & soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing - & randGen .~ g + & randGen + .~ g cid = cr ^. crID sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x thecorpse = makeCorpse (w ^. randGen) cr @@ -171,8 +235,8 @@ poisonSPic = _1 %~ overColSH (mixColors 0.5 0.5 green . normalizeColor) dropAll :: Creature -> World -> World dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys . _unNIntMap $ _crInv cr ---startFalling :: Creature -> Creature ---startFalling cr = case cr ^. crStance . carriage of +-- startFalling :: Creature -> Creature +-- startFalling cr = case cr ^. crStance . carriage of -- Walking -> cr & crStance . carriage .~ Falling -- _ -> cr & crStance . carriage .~ Falling diff --git a/src/Dodge/Creature/Vocalization.hs b/src/Dodge/Creature/Vocalization.hs index 44d220cf0..af43d593e 100644 --- a/src/Dodge/Creature/Vocalization.hs +++ b/src/Dodge/Creature/Vocalization.hs @@ -26,6 +26,8 @@ crWarningSounds cr = case cr ^. crType of , seagullCry1S , seagullCry2S ] + SlinkCrit{} -> mempty + SlimeCrit{} -> mempty CrabCrit {} -> mempty HoverCrit {} -> mempty SwarmCrit -> mempty @@ -39,6 +41,8 @@ crDeathSounds cr dt = case cr ^. crType of ChaseCrit{} -> defaultDeathSounds dt CrabCrit{} -> defaultDeathSounds dt HoverCrit{} -> hoverDeathSounds dt + SlinkCrit{} -> defaultDeathSounds dt + SlimeCrit{} -> defaultDeathSounds dt SwarmCrit -> mempty AutoCrit -> mempty BarrelCrit{} -> mempty diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 31f2092fa..952f7b1a5 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -66,6 +66,15 @@ data CreatureType , _rFootPos :: Point2 } | HoverCrit {_meleeCooldown :: Int} + | SlinkCrit + { _meleeCooldown :: Int + , _slinkSpine :: [Point3Q] + } + | SlimeCrit + { _slimeRad :: Float + , _slimeCompression :: Point2 + , _slimeIsCompressing :: Bool + } | SwarmCrit | AutoCrit | BarrelCrit {_barrelType :: BarrelType} diff --git a/src/Dodge/Machine/Draw.hs b/src/Dodge/Machine/Draw.hs index e77926e89..3c05c144f 100644 --- a/src/Dodge/Machine/Draw.hs +++ b/src/Dodge/Machine/Draw.hs @@ -1,6 +1,5 @@ -module Dodge.Machine.Draw (drawMachine,mcColor) where +module Dodge.Machine.Draw (drawMachine, mcColor) where -import Linear import Control.Lens import qualified Data.Map.Strict as M import Data.Maybe @@ -11,6 +10,7 @@ import Dodge.Placement.TopDecoration import Dodge.Room.Foreground import Dodge.Terminal.Color import Geometry +import Linear import Picture import Shape import ShapePicture @@ -60,23 +60,16 @@ terminalShape lw mc = fold $ do <> screenbackground (getcol term) where tps = [V3 10 10 20, V3 (-10) 10 20, V3 (-10) (-10) 10, V3 10 (-10) 10] + sps = [V3 8 8 20, V3 (-8) 8 20, V3 0 (-8) 10] getcol term = fromMaybe black $ termScreenColor term screenbackground col = colorSH col - $ prismBox - Small - Typical - [V3 8 8 20, V3 (-8) 8 20, V3 0 (-8) 10] - [V3 8 8 19, V3 (-8) 8 19, V3 0 (-8) 9] + $ prismBox Small Typical sps (sps & each . _z -~ 1) drawBaseMachine :: Float -> Machine -> SPic drawBaseMachine h mc = - noPic - . colorSH (mcColor mc) - . upperBox Medium Typical h - . square - $ 10 + noPic . colorSH (mcColor mc) . upperBox Medium Typical h . square $ 10 mcColor :: Machine -> Color mcColor mc = case mc ^. mcType of diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index bf86ba92e..95331be74 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -1,7 +1,6 @@ --{-# LANGUAGE LambdaCase #-} module Dodge.Render.ShapePicture (worldSPic) where -import qualified Quaternion as Q import Dodge.Debug import Control.Lens import Data.Foldable @@ -109,34 +108,6 @@ drawPlasmaBall pb = . setLayer BloomLayer $ circleSolidCol green white 5 -drawCreature :: World -> IM.IntMap Item -> Creature -> SPic -drawCreature w m cr = translateSP (_crPos cr) . fallrot . rotateSP (_crDir cr) $ - case cr ^. crType of - _ | CrIsCorpse sp <- cr ^. crHP -> sp - _ | null (cr ^? crHP . _HP) -> mempty - BarrelCrit{} -> barrelShape - LampCrit{_lampHeight = h} -> lampCrSPic h - ChaseCrit {} -> noPic $ drawChaseCrit w cr - Avatar {} -> basicCrPict m cr - SwarmCrit -> basicCrPict m cr - AutoCrit -> basicCrPict m cr - CrabCrit {} -> noPic $ drawCrabCrit w cr - HoverCrit{} -> noPic $ drawHoverCrit cr - where - fallrot = case cr ^? crStance . carriage . carDir of - Just q -> _1 . each . sfVs . each %~ Q.rotate q - _ -> id - -barrelShape :: SPic -barrelShape = noPic $ cylinderPoly Medium Important (map (addZ 20) ps) (map (addZ 0) ps) - where - ps = polyCirc 3 10 - -lampCrSPic :: Float -> SPic -lampCrSPic h = - colorSH blue (upperBox Small Undesired h $ rectWH 5 5) - :!: setLayer BloomLayer (setDepth h . color white $ circleSolid 3) - shiftDraw :: (a -> Point2) -> (a -> Float) -> (a -> a -> SPic) -> a -> SPic shiftDraw fpos fdir fdraw x = uncurryV translateSPxy (fpos x) diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 55fa3405e..5e67b113a 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -56,8 +56,8 @@ tutAnoTree :: State LayoutVars MTRS tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox - , corDoor - , chasmSpitTerminal +-- , corDoor +-- , chasmSpitTerminal , corDoor , loadAmmoTut , corDoor @@ -431,7 +431,7 @@ tutLight = do crabRoom :: State LayoutVars Room crabRoom = (putSingleLight =<< roomNgon 6 150) - <&> rmPmnts .:~ psPtPl (PS 100 0) (PutCrit crabCrit) + <&> rmPmnts .:~ psPtPl (PS 40 0) (PutCrit slimeCrit) loadAmmoTut :: State LayoutVars (MetaTree Room String) loadAmmoTut = do diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 2b8ddc36c..53283cbfc 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -41,9 +41,10 @@ tocrs :: (IM.IntMap Creature tocrs = uvWorld . cWorld . lWorld . creatures testStringInit :: Universe -> [String] -testStringInit u = u ^.. tocrs . ix 3 . crPos . _xy . to show - <> u ^.. tocrs . ix 3 . crType . lFootPos . to show - <> u ^.. tocrs . ix 3 . crType . rFootPos . to show +testStringInit u = u ^.. tocrs . ix 1 . crPos . _xy . to show + <> u ^.. tocrs . ix 1 . crType . slimeCompression . to show + <> u ^.. tocrs . ix 1 . crType . slimeIsCompressing . to show + <> u ^.. tocrs . ix 1 . crDir . to show -- where -- tocr = uvWorld . cWorld . lWorld . creatures . ix 0 -- f = fromMaybe 0 diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index dac1eccde..5a7461f97 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -133,11 +133,12 @@ pokeShapeObj :: IO (Int, Int, Int) {-# INLINE pokeShapeObj #-} pokeShapeObj shadowtest ptr iptr ieptr counts surf@(Surface shtype shVerts col _ _) = case shtype of - FlatFaces size -> pokeBox blockshadows col size ptr iptr ieptr counts shVerts - RoundedFaces size -> pokeRoundedFaces blockshadows col size ptr iptr ieptr counts shVerts - Cylinder size -> pokeCylinder blockshadows col size ptr iptr ieptr counts shVerts + FlatFaces size -> pokeBox t col size ptr iptr ieptr counts shVerts + RoundedFaces size -> pokeRoundedFaces t col size ptr iptr ieptr counts shVerts + Cylinder size -> pokeCylinder t col size ptr iptr ieptr counts shVerts + Cone n -> pokeCone t col n ptr iptr ieptr counts shVerts where - blockshadows = shadowtest surf + t = shadowtest surf pokeRoundedFaces :: Bool -> @@ -167,7 +168,7 @@ pokeRoundedFaces sfid col size ptr iptr ieptr (nv, nsi, nei) (tc : bc : svs) = d where xdata | sfid = 0 -- this records whether the shadow should be shown or not - -- honestly, I think things where faster without this + -- honestly, I think things were faster without this | otherwise = 1 pokeRoundedFaces _ _ _ _ _ _ _ _ = undefined @@ -211,11 +212,19 @@ pokeRoundedCurve xdata col ptr tc bc = go True go False (x : xs) n = pokeJustV xdata bc col ptr n x >>= go True xs go _ [] n = return n +pokeCone :: Bool -> Color -> Int -> Ptr Float -> Ptr GLuint -> Ptr GLuint + -> (Int,Int,Int) -> [Point3] -> IO (Int,Int,Int) +pokeCone t c n ptr iptr ieptr (nv,nsi,nei) (p:ps) = do + nv' <- undefined t c n ptr iptr ieptr (nv,nsi,nei) (p:ps) + nsi' <- undefined + nei' <- undefined + return (nv', nsi', nei') +pokeCone _ _ _ _ _ _ _ _ = undefined + -- I am not completely sure the normals are correct here -- they assume that we do actually have a cylinder, with normals for the caps -- that can be determined by the first two vertices -pokeCylinderCaps :: Float -> Point4 -> Ptr Float -> [Point3] -> Int - -> IO Int +pokeCylinderCaps :: Float -> Point4 -> Ptr Float -> [Point3] -> Int -> IO Int {-# INLINE pokeCylinderCaps #-} pokeCylinderCaps xdata col ptr (a:b:as) = go True (a:b:as) where diff --git a/src/Shape/Data.hs b/src/Shape/Data.hs index 9a79a8259..cacff9822 100644 --- a/src/Shape/Data.hs +++ b/src/Shape/Data.hs @@ -12,6 +12,7 @@ data ShapeType = FlatFaces { _topBoxSize :: Int } | RoundedFaces { _shapeHalfSize :: Int } | Cylinder { _cylinderSize :: Int } + | Cone {_coneBaseNum :: Int} deriving (Eq, Ord, Show, Read) -- for RoundedFaces, the first vertex in _sfVs should be the center of the top -- plane, the second should be the center of the bottom plane. diff --git a/tags b/tags index b95edcbd3..f290f6efc 100644 --- a/tags +++ b/tags @@ -42,7 +42,7 @@ ActionUpdate src/Dodge/Creature/Action.hs 51;" t AddGoal src/Dodge/Data/ActionPlan.hs 47;" C AimAt src/Dodge/Data/ActionPlan.hs 70;" C AimStance src/Dodge/Data/AimStance.hs 10;" t -Aiming src/Dodge/Data/Creature/Stance.hs 33;" C +Aiming src/Dodge/Data/Creature/Stance.hs 35;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C @@ -66,18 +66,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 33;" C +AtEase src/Dodge/Data/Creature/Stance.hs 35;" 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 70;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 78;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 74;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 82;" C Avatar src/Dodge/Data/Creature/Misc.hs 47;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 74;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 82;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t BANGCONE src/Dodge/Data/Item/Combine.hs 149;" C BANGROD src/Dodge/Data/Item/Combine.hs 158;" C @@ -103,10 +103,10 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 40;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 71;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 79;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 86;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 82;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 94;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 90;" 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 +136,7 @@ BlockStatus src/Dodge/Data/Universe.hs 98;" t BlockedLink src/Dodge/Data/Room.hs 54;" C BloomLayer src/Picture/Data.hs 21;" C Blunt src/Dodge/Data/Damage.hs 17;" C -Boosting src/Dodge/Data/Creature/Stance.hs 25;" C +Boosting src/Dodge/Data/Creature/Stance.hs 27;" 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 @@ -200,7 +200,7 @@ Cardinal8 src/Dodge/Data/CardinalPoint.hs 27;" t CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t CardinalPoint src/Dodge/Data/CardinalPoint.hs 6;" t CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t -Carriage src/Dodge/Data/Creature/Stance.hs 21;" 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 ChaseCrit src/Dodge/Data/Creature/Misc.hs 57;" C @@ -230,6 +230,7 @@ CombineInventoryChange src/Dodge/Data/World.hs 33;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 11;" C +Cone src/Shape/Data.hs 15;" C Config src/Dodge/Data/Config.hs 48;" t ConstFloat src/Dodge/Data/GenFloat.hs 9;" C ConsumableItemType src/Dodge/Data/Item/Combine.hs 116;" t @@ -280,7 +281,7 @@ 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 76;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 84;" 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 @@ -391,7 +392,7 @@ EquipType src/Dodge/Data/Equipment/Misc.hs 9;" t 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 29;" C +Essential src/Shape/Data.hs 30;" C EvadeAim src/Dodge/Data/ActionPlan.hs 75;" C ExamineInventory src/Dodge/Data/HUD.hs 16;" C Explore src/Dodge/Data/Scenario.hs 4;" C @@ -399,7 +400,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 88;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 96;" 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 @@ -417,7 +418,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 26;" C +Falling src/Dodge/Data/Creature/Stance.hs 28;" 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 @@ -449,19 +450,19 @@ 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 23;" C +Floating src/Dodge/Data/Creature/Stance.hs 25;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t -Flying src/Dodge/Data/Creature/Stance.hs 24;" C +Flying src/Dodge/Data/Creature/Stance.hs 26;" C FollowImpulses src/Dodge/Data/ActionPlan.hs 139;" C -FootForward src/Dodge/Data/Creature/Stance.hs 30;" t +FootForward src/Dodge/Data/Creature/Stance.hs 32;" 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 ForegroundShape src/Dodge/Data/ForegroundShape.hs 12;" t FromEdge src/Dodge/Data/Room.hs 53;" C FullRes src/Dodge/Data/Config.hs 113;" C -FullShadowFidelity src/Shape/Data.hs 19;" C +FullShadowFidelity src/Shape/Data.hs 20;" C FullSize src/Dodge/Data/Item/Params.hs 26;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 34;" C @@ -552,8 +553,8 @@ 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 68;" C -Huge src/Shape/Data.hs 23;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C +Huge src/Shape/Data.hs 24;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 85;" 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 @@ -562,8 +563,8 @@ IRONBAR src/Dodge/Data/Item/Combine.hs 79;" C ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C -Importance src/Shape/Data.hs 29;" t -Important src/Shape/Data.hs 30;" 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 @@ -641,8 +642,8 @@ 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 72;" C -Large src/Shape/Data.hs 24;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 80;" C +Large src/Shape/Data.hs 25;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C LasSound src/Dodge/Data/SoundOrigin.hs 30;" C @@ -657,7 +658,7 @@ LayVars src/Dodge/Data/MetaTree.hs 30;" C Layer src/Picture/Data.hs 20;" t LayoutVars src/Dodge/Data/MetaTree.hs 30;" t LeadTarget src/Dodge/Data/ActionPlan.hs 120;" C -LeftForward src/Dodge/Data/Creature/Stance.hs 30;" C +LeftForward src/Dodge/Data/Creature/Stance.hs 32;" 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 @@ -744,7 +745,7 @@ MdTrigIf src/Dodge/Data/WorldEffect.hs 51;" C 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 25;" 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 @@ -840,7 +841,7 @@ NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C NoSIDisplayMod src/Dodge/Data/SelectionList.hs 57;" C -NoShadowFidelity src/Shape/Data.hs 20;" C +NoShadowFidelity src/Shape/Data.hs 21;" C NoShadows src/Dodge/Data/Config.hs 119;" C NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C NoSubInventory src/Dodge/Data/HUD.hs 15;" C @@ -849,7 +850,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 83;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 91;" 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 @@ -922,7 +923,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 27;" C +OnGround src/Dodge/Data/Creature/Stance.hs 29;" 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 @@ -993,7 +994,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 87;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 95;" 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 @@ -1018,7 +1019,7 @@ Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedron src/Polyhedra/Data.hs 13;" C PosInf src/Dodge/Data/CardinalPoint.hs 44;" C PosRooms src/Dodge/Tree/Shift.hs 29;" t -Posture src/Dodge/Data/Creature/Stance.hs 33;" t +Posture src/Dodge/Data/Creature/Stance.hs 35;" t PreloadData src/Data/Preload.hs 10;" t PrintMaterial src/Dodge/Data/AmmoType.hs 15;" C Prison src/Dodge/Data/Scenario.hs 65;" C @@ -1116,7 +1117,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 30;" C +RightForward src/Dodge/Data/Creature/Stance.hs 32;" 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 @@ -1187,9 +1188,9 @@ SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C ShadNum src/Picture/Data.hs 30;" t Shader src/Shader/Data.hs 51;" t ShaderTexture src/Shader/Data.hs 102;" t -ShadowFidelity src/Shape/Data.hs 19;" t +ShadowFidelity src/Shape/Data.hs 20;" t ShadowRendering src/Dodge/Data/Config.hs 116;" t -Shape src/Shape/Data.hs 49;" t +Shape src/Shape/Data.hs 50;" t ShapeProp src/Dodge/Data/Prop.hs 14;" C ShapeType src/Shape/Data.hs 11;" t Shattering src/Dodge/Data/Damage.hs 20;" C @@ -1222,10 +1223,12 @@ SideCluster src/Dodge/Data/RoomCluster.hs 13;" C SideEffect src/Dodge/Data/Universe.hs 62;" t SimpleEdge src/Dodge/Data/PathGraph.hs 43;" t SixteenthRes src/Dodge/Data/Config.hs 113;" C -Size src/Shape/Data.hs 23;" t +Size src/Shape/Data.hs 24;" t SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C -Small src/Shape/Data.hs 26;" C +SlimeCrit src/Dodge/Data/Creature/Misc.hs 73;" 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 SmokeReducerSF src/Dodge/Data/ComposedItem.hs 28;" C SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C @@ -1261,7 +1264,7 @@ SplashOptions src/Dodge/Data/Universe.hs 73;" C SplitBeamCombine src/Dodge/Data/Beam.hs 40;" C StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C -Stance src/Dodge/Data/Creature/Stance.hs 15;" t +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 StayInArea src/Dodge/Data/Scenario.hs 13;" C @@ -1270,13 +1273,13 @@ StorageSS src/Dodge/Data/Scenario.hs 94;" C Strategy src/Dodge/Data/ActionPlan.hs 133;" t StrategyActions src/Dodge/Data/ActionPlan.hs 146;" C SubInventory src/Dodge/Data/HUD.hs 14;" t -Superfluous src/Shape/Data.hs 33;" C -Surface src/Shape/Data.hs 37;" t +Superfluous src/Shape/Data.hs 34;" C +Surface src/Shape/Data.hs 38;" t 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 69;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 77;" 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 @@ -1341,7 +1344,7 @@ ThermalSensor src/Dodge/Data/Machine/Sensor.hs 15;" C Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C TimeFlowStatus src/Dodge/Data/World.hs 65;" t -Tiny src/Shape/Data.hs 27;" C +Tiny src/Shape/Data.hs 28;" C TmDistributeAmmo src/Dodge/Data/Terminal.hs 62;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 60;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 61;" C @@ -1384,7 +1387,7 @@ TurretInt src/Dodge/Data/Item/Location.hs 19;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C TwoHandFlat src/Dodge/Data/AimStance.hs 12;" C TwoHandTwist src/Dodge/Data/AimStance.hs 11;" C -Typical src/Shape/Data.hs 31;" C +Typical src/Shape/Data.hs 32;" C UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C UNIGATE src/Dodge/Data/Item/Combine.hs 30;" C UintBO src/Shader/Data.hs 91;" t @@ -1393,9 +1396,9 @@ UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 15;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderSea src/Dodge/Data/Scenario.hs 77;" C -Undesired src/Shape/Data.hs 34;" C +Undesired src/Shape/Data.hs 35;" C UniRandFloat src/Dodge/Data/GenFloat.hs 10;" C -Unimportant src/Shape/Data.hs 32;" C +Unimportant src/Shape/Data.hs 33;" C Universe src/Dodge/Data/Universe.hs 28;" t UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C UnlockInv src/Dodge/Data/WorldEffect.hs 31;" C @@ -1456,7 +1459,7 @@ 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 -Walking src/Dodge/Data/Creature/Stance.hs 22;" 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 WallBlockVisibility src/Dodge/Data/Wall/Structure.hs 20;" C @@ -1553,7 +1556,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 71;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 79;" 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 @@ -1623,7 +1626,8 @@ _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 -_carriage src/Dodge/Data/Creature/Stance.hs 16;" f +_carDir src/Dodge/Data/Creature/Stance.hs 28;" 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 _cdtCloseRight src/Dodge/Data/DoubleTree.hs 31;" f @@ -1659,6 +1663,7 @@ _closeItems src/Dodge/Data/HUD.hs 35;" f _cloudShader src/Data/Preload/Render.hs 52;" f _cloudVBO src/Data/Preload/Render.hs 51;" f _clouds src/Dodge/Data/LWorld.hs 98;" f +_coneBaseNum src/Shape/Data.hs 15;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 22;" f _coolStart src/Dodge/Data/TriggerType.hs 16;" f @@ -1798,6 +1803,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 _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 @@ -1823,7 +1829,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 24;" f +_flyInertia src/Dodge/Data/Creature/Stance.hs 26;" 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 @@ -1942,9 +1948,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 72;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 72;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 72;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 80;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 80;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 80;" 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 @@ -2105,7 +2111,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 88;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 96;" 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 @@ -2125,7 +2131,7 @@ _plType src/Dodge/Data/GenWorld.hs 115;" f _plasmaBalls src/Dodge/Data/LWorld.hs 106;" f _playStatus src/Sound/Data.hs 15;" f _playingSounds src/Dodge/Data/World.hs 42;" f -_posture src/Dodge/Data/Creature/Stance.hs 17;" f +_posture src/Dodge/Data/Creature/Stance.hs 19;" f _prBounds src/Dodge/Tree/Shift.hs 30;" f _prDraw src/Dodge/Data/Prop.hs 16;" f _prID src/Dodge/Data/Prop.hs 17;" f @@ -2288,11 +2294,11 @@ _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 -_sfColor src/Shape/Data.hs 40;" f -_sfShadowImportance src/Shape/Data.hs 41;" f -_sfSize src/Shape/Data.hs 42;" f -_sfType src/Shape/Data.hs 38;" f -_sfVs src/Shape/Data.hs 39;" f +_sfColor src/Shape/Data.hs 41;" f +_sfShadowImportance src/Shape/Data.hs 42;" f +_sfSize src/Shape/Data.hs 43;" f +_sfType src/Shape/Data.hs 39;" f +_sfVs src/Shape/Data.hs 40;" f _shadWallShader src/Data/Preload/Render.hs 14;" f _shaderUINT src/Shader/Data.hs 52;" f _shaderVAO src/Shader/Data.hs 54;" f @@ -2316,12 +2322,15 @@ _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 78;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 80;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 79;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 86;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 88;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 87;" 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 +_slimeRad src/Dodge/Data/Creature/Misc.hs 74;" 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 _soundChannel src/Sound/Data.hs 46;" f @@ -2532,7 +2541,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 24;" f +_zSpeed src/Dodge/Data/Creature/Stance.hs 26;" f aBar src/Dodge/Placement/Instance/LightSource.hs 70;" f aFlame src/Dodge/Gas.hs 20;" f aGasCloud src/Dodge/Gas.hs 15;" f @@ -2592,7 +2601,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 232;" f +allVisibleWalls src/Dodge/Base/Collide.hs 234;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f @@ -2610,7 +2619,7 @@ 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 340;" f +anythingHitCirc src/Dodge/Base/Collide.hs 342;" f apply src/Quaternion.hs 78;" f applyCME src/Dodge/HeldUse.hs 397;" f applyClip src/Dodge/Debug.hs 176;" f @@ -2651,7 +2660,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 295;" f +arms src/Dodge/Creature/Picture.hs 321;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2671,9 +2680,9 @@ attachTree src/Dodge/Tree/Compose.hs 39;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 77;" f attribSize src/Shader/Compile.hs 139;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f -autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f +autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 755;" f autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f -autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f +autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f autoPistol src/Dodge/Item/Held/Stick.hs 21;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 171;" f @@ -2682,19 +2691,19 @@ azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 183;" f -backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 737;" f +backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 745;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 304;" f -bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 653;" f +bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 659;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f -bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 835;" f +bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" 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/Render/ShapePicture.hs 125;" f +barrelShape src/Dodge/Creature/Picture.hs 372;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 410;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f baseCI src/Dodge/Item/Grammar.hs 165;" f @@ -2703,20 +2712,20 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 407;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 395;" f -baseShoulder src/Dodge/Creature/Picture.hs 333;" f +baseShoulder src/Dodge/Creature/Picture.hs 359;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 137;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 31;" f -basicCrPict src/Dodge/Creature/Picture.hs 40;" f -basicCrShape src/Dodge/Creature/Picture.hs 46;" f +basicCrPict src/Dodge/Creature/Picture.hs 68;" f +basicCrShape src/Dodge/Creature/Picture.hs 74;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMuzFlare src/Dodge/HeldUse.hs 731;" f battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f -beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f +beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 673;" f beltMag src/Dodge/Item/Ammo.hs 38;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 327;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f @@ -2737,22 +2746,22 @@ blockPillar src/Dodge/Room/Pillar.hs 23;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f blockingLoad src/Dodge/Concurrent.hs 35;" f -blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 723;" f -blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 817;" f -blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 649;" f -blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f -blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 565;" f -blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f -blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 569;" f -blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 555;" f -bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f -bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f -bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 843;" f -bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 849;" f -bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f -bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 759;" f -bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f -bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 545;" f +blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f +blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f +blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f +blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 855;" f +blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f +blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 787;" f +blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 575;" f +blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 561;" f +bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f +bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f +bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 853;" f +bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 859;" f +bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f +bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f +bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 607;" f +bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f blue src/Color.hs 43;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f @@ -2766,9 +2775,9 @@ boundPoints src/Bound.hs 9;" f boundPointsRect src/Bound.hs 23;" f boundedGrid src/Grid.hs 17;" f boxABC src/Polyhedra.hs 105;" f -boxEdgeIndices src/Shader/Poke.hs 358;" f -boxSurfaces src/Shader/Poke.hs 277;" f -boxSurfacesIndices src/Shader/Poke.hs 290;" f +boxEdgeIndices src/Shader/Poke.hs 367;" f +boxSurfaces src/Shader/Poke.hs 286;" f +boxSurfacesIndices src/Shader/Poke.hs 299;" f boxXYZ src/Polyhedra.hs 91;" f boxXYZnobase src/Polyhedra.hs 77;" f brainHat src/Dodge/Item/Equipment.hs 62;" f @@ -2776,7 +2785,7 @@ branchRectWith src/Dodge/Room/Branch.hs 16;" f branchWith src/Dodge/Room/Room.hs 83;" f bright src/Color.hs 147;" f brightX src/Color.hs 143;" f -btSPic src/Dodge/Render/ShapePicture.hs 174;" f +btSPic src/Dodge/Render/ShapePicture.hs 150;" f btText src/Dodge/Inventory/SelectionList.hs 236;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPerspectiveMatrixUBO src/Dodge/Render.hs 431;" f @@ -2790,16 +2799,16 @@ bulletSynthesizer src/Dodge/Item/Ammo.hs 89;" f bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 18;" f -buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f -buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" 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 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 326;" f -canSeeIndirect src/Dodge/Base/Collide.hs 333;" f +canSee src/Dodge/Base/Collide.hs 328;" f +canSeeIndirect src/Dodge/Base/Collide.hs 335;" f canSpring src/Dodge/Update.hs 989;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f capacitor src/Dodge/Item/Ammo.hs 67;" f @@ -2825,20 +2834,20 @@ changeSwapWith src/Dodge/Inventory.hs 283;" 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 244;" f -chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f +chaseCorpse src/Dodge/Creature/Picture.hs 270;" f +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 122;" f -chasmRotate src/Dodge/Creature/State/WalkCycle.hs 117;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f +chaseUpperBody src/Dodge/Creature/Picture.hs 148;" 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 102;" f +chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 105;" 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 99;" f -checkDeath' src/Dodge/Creature/Update.hs 102;" f +checkDeath src/Dodge/Creature/Update.hs 119;" f +checkDeath' src/Dodge/Creature/Update.hs 122;" f checkEndGame src/Dodge/Update.hs 875;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2853,17 +2862,17 @@ 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 146;" f +chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 152;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f -circHitWall src/Dodge/Base/Collide.hs 245;" f +circHitWall src/Dodge/Base/Collide.hs 247;" f circInPolygon src/Geometry/Polygon.hs 110;" f -circOnAnyCr src/Dodge/Base/Collide.hs 290;" f +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 284;" f -circSegsInside src/Dodge/Creature/State/WalkCycle.hs 88;" f -circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 77;" 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 circle src/Picture/Base.hs 172;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f @@ -2872,16 +2881,16 @@ clAlt src/Dodge/Cloud.hs 5;" f clColor src/Shader/Poke/Cloud.hs 39;" f clZoneSize src/Dodge/Zoning/Cloud.hs 24;" f clampPath src/Dodge/Room/Procedural.hs 148;" f -clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 825;" f -clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f -clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f +clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 835;" f +clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f +clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 589;" f cleanUpPreload src/Preload.hs 10;" f cleanUpSoundPreload src/Preload.hs 15;" f cleanupHalted src/Sound.hs 119;" f cleatLabel src/Dodge/Cleat.hs 30;" f cleatOnward src/Dodge/Cleat.hs 24;" f cleatSide src/Dodge/Cleat.hs 27;" f -click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 791;" f +click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f clicker src/Dodge/Item/Scope.hs 88;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 234;" f @@ -2913,13 +2922,13 @@ collide3Floors src/Dodge/Base/Collide.hs 144;" f collide3Wall src/Dodge/Base/Collide.hs 158;" f collide3Walls src/Dodge/Base/Collide.hs 139;" f collide3WallsFloor src/Dodge/Base/Collide.hs 100;" f -collideCircWalls src/Dodge/Base/Collide.hs 257;" f +collideCircWalls src/Dodge/Base/Collide.hs 259;" f collidePoint src/Dodge/Base/Collide.hs 54;" f -collidePointTestFilter src/Dodge/Base/Collide.hs 195;" f -collidePointWallsFilter src/Dodge/Base/Collide.hs 209;" f +collidePointTestFilter src/Dodge/Base/Collide.hs 197;" f +collidePointWallsFilter src/Dodge/Base/Collide.hs 211;" f color src/Picture/Base.hs 100;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f -colorSH src/Shape.hs 234;" f +colorSH src/Shape.hs 239;" f combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 44;" f combineAwareness src/Dodge/Creature/Perception.hs 119;" f @@ -2928,7 +2937,7 @@ combineInventoryExtra src/Dodge/Render/HUD.hs 340;" f combineItemListYouX src/Dodge/Combine.hs 36;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 134;" f -combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 751;" f +combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 759;" f combineTree src/Dodge/Tree/Compose.hs 68;" f commandColor src/Dodge/Terminal.hs 127;" f commonPrefix src/Dodge/Debug/Terminal.hs 149;" f @@ -2942,10 +2951,10 @@ compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 77;" f composeTree src/Dodge/Tree/Compose.hs 48;" f compressor src/Dodge/Item/Ammo.hs 74;" f -computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 673;" f +computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f conEffects src/Dodge/Concurrent.hs 12;" f concurrentIS src/Dodge/Inventory.hs 197;" f -connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 753;" f +connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 761;" f constructEdges src/Polyhedra.hs 31;" f constructEdgesList src/Polyhedra.hs 40;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f @@ -2961,7 +2970,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 136;" f +corpseOrGib src/Dodge/Creature/Update.hs 168;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -2969,11 +2978,11 @@ corridorWallN src/Dodge/Room/Corridor.hs 77;" f crAdd src/Dodge/Room/RezBox.hs 116;" f crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 88;" f -crCamouflage src/Dodge/Creature/Picture.hs 43;" f +crCamouflage src/Dodge/Creature/Picture.hs 71;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f crCrSpring src/Dodge/Update.hs 997;" f -crCurrentEquipment src/Dodge/Creature/Statistics.hs 65;" f -crDeathSounds src/Dodge/Creature/Vocalization.hs 36;" f +crCurrentEquipment src/Dodge/Creature/Statistics.hs 67;" f +crDeathSounds src/Dodge/Creature/Vocalization.hs 38;" 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 @@ -3010,10 +3019,10 @@ 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 92;" f +crUpdate src/Dodge/Creature/Update.hs 112;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f -crVocalResetTime src/Dodge/Creature/Vocalization.hs 61;" f +crVocalResetTime src/Dodge/Creature/Vocalization.hs 65;" f crWalk src/Dodge/Creature/Impulse/Movement.hs 31;" f crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 55;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 16;" f @@ -3021,15 +3030,15 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 72;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f -crabCorpse src/Dodge/Creature/Picture.hs 263;" f -crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f +crabCorpse src/Dodge/Creature/Picture.hs 289;" f +crabCrit src/Dodge/Creature/ChaseCrit.hs 40;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f -crabFeet src/Dodge/Creature/Picture.hs 174;" f -crabRoom src/Dodge/Room/Tutorial.hs 433;" f -crabUpperBody src/Dodge/Creature/Picture.hs 88;" f +crabFeet src/Dodge/Creature/Picture.hs 200;" f +crabRoom src/Dodge/Room/Tutorial.hs 432;" f +crabUpperBody src/Dodge/Creature/Picture.hs 124;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f -crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f +crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 64;" f @@ -3064,7 +3073,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 40;" f crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 58;" f cubeShape src/Dodge/Block/Debris.hs 162;" f -cullPoint src/Dodge/Render/ShapePicture.hs 141;" f +cullPoint src/Dodge/Render/ShapePicture.hs 117;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f @@ -3081,10 +3090,10 @@ cycleL src/DoubleStack.hs 28;" f cycleLT src/IntMapHelp.hs 97;" f cycleOptions src/Dodge/Menu/Option.hs 75;" f cycleR src/DoubleStack.hs 32;" f -cylinderIndices src/Shader/Poke.hs 382;" f +cylinderIndices src/Shader/Poke.hs 391;" f cylinderOnSeg src/Geometry.hs 122;" f -cylinderPoly src/Shape.hs 83;" f -cylinderRoundIndices src/Shader/Poke.hs 389;" f +cylinderPoly src/Shape.hs 79;" f +cylinderRoundIndices src/Shader/Poke.hs 398;" f dShadCol src/Dodge/Render/List.hs 208;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 73;" f @@ -3123,11 +3132,11 @@ 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 291;" f -deadRot src/Dodge/Creature/Picture.hs 309;" f -deadScalp src/Dodge/Creature/Picture.hs 304;" f -deadUpperBody src/Dodge/Creature/Picture.hs 330;" f -debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f +deadFeet src/Dodge/Creature/Picture.hs 317;" f +deadRot src/Dodge/Creature/Picture.hs 335;" f +deadScalp src/Dodge/Creature/Picture.hs 330;" f +deadUpperBody src/Dodge/Creature/Picture.hs 356;" f +debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f debugEvent src/Dodge/Debug.hs 43;" f @@ -3152,17 +3161,17 @@ decoratedBlock src/Dodge/Placement/Instance/Block.hs 14;" f decorationToShape src/Dodge/Placement/TopDecoration.hs 16;" f decreaseAwareness src/Dodge/Creature/Perception.hs 128;" f decrementTimer src/Sound.hs 104;" f -dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f -dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 685;" f -dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 767;" f -dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 797;" f +dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 569;" f +dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 691;" f +dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f +dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 807;" f defCraftItem src/Dodge/Default/Item.hs 25;" f defDamageMaterial src/Dodge/Material/Damage.hs 34;" f defEquipment src/Dodge/Default.hs 24;" f defHeldItem src/Dodge/Default/Item.hs 9;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 310;" f -defaultAimMvType src/Dodge/Creature/MoveType.hs 19;" f +defaultAimMvType src/Dodge/Creature/MoveType.hs 21;" f defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f defaultAudition src/Dodge/Default/Creature.hs 93;" f defaultAutoWall src/Dodge/Default/Wall.hs 32;" f @@ -3173,13 +3182,13 @@ defaultButton src/Dodge/Default.hs 45;" f defaultCWCam src/Dodge/Default/World.hs 75;" f defaultCWGen src/Dodge/Default/World.hs 65;" f defaultCWorld src/Dodge/Default/World.hs 90;" f -defaultChaseMvType src/Dodge/Creature/MoveType.hs 28;" f +defaultChaseMvType src/Dodge/Creature/MoveType.hs 30;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 152;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" f defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f -defaultDeathSounds src/Dodge/Creature/Vocalization.hs 47;" f +defaultDeathSounds src/Dodge/Creature/Vocalization.hs 51;" f defaultDirtBlock src/Dodge/Default/Block.hs 17;" f defaultDirtWall src/Dodge/Default/Wall.hs 47;" f defaultDoor src/Dodge/Default/Door.hs 5;" f @@ -3236,7 +3245,7 @@ digitalLine src/Geometry.hs 285;" f digitalRect src/Geometry.hs 302;" f dim src/Color.hs 139;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f -disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 795;" f +disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 805;" f displayConfig src/Dodge/Menu.hs 223;" f displayControls src/Dodge/Menu.hs 239;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f @@ -3342,14 +3351,14 @@ drawAimSweep src/Dodge/Render/Picture.hs 298;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawAnySelectionBox src/Dodge/Render/Picture.hs 132;" f drawArrowDown src/Dodge/Render/Picture.hs 225;" f -drawBaseMachine src/Dodge/Machine/Draw.hs 74;" f +drawBaseMachine src/Dodge/Machine/Draw.hs 70;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Render/ShapePicture.hs 81;" f drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f -drawBullet src/Dodge/Render/ShapePicture.hs 180;" f +drawBullet src/Dodge/Render/ShapePicture.hs 156;" f drawButton src/Dodge/Button/Draw.hs 11;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChaseCrit src/Dodge/Creature/Picture.hs 79;" f +drawChaseCrit src/Dodge/Creature/Picture.hs 115;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f @@ -3360,15 +3369,15 @@ drawCoord src/Dodge/Debug/Picture.hs 396;" f drawCountMod src/Render.hs 231;" f drawCrInfo src/Dodge/Debug.hs 215;" f drawCrInfo' src/Dodge/Debug.hs 210;" f -drawCrabCrit src/Dodge/Creature/Picture.hs 71;" f -drawCreature src/Dodge/Render/ShapePicture.hs 111;" f +drawCrabCrit src/Dodge/Creature/Picture.hs 107;" f +drawCreature src/Dodge/Creature/Picture.hs 36;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 25;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 73;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f drawDDATest src/Dodge/Debug/Picture.hs 304;" f -drawDamSensor src/Dodge/Machine/Draw.hs 37;" f +drawDamSensor src/Dodge/Machine/Draw.hs 38;" f drawDebug src/Dodge/Debug.hs 253;" f drawDrag src/Dodge/Render/Picture.hs 204;" f drawDragDrop src/Dodge/Render/Picture.hs 233;" f @@ -3379,7 +3388,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 342;" f +drawEquipment src/Dodge/Creature/Picture.hs 368;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f @@ -3389,7 +3398,7 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 284;" f drawGib src/Dodge/Prop/Draw.hs 31;" f drawHUD src/Dodge/Render/HUD.hs 53;" f -drawHoverCrit src/Dodge/Creature/Picture.hs 61;" f +drawHoverCrit src/Dodge/Creature/Picture.hs 97;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInspectWall src/Dodge/Debug/Picture.hs 256;" f drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f @@ -3407,7 +3416,7 @@ drawListElement src/Dodge/Render/List.hs 172;" f drawListYgapScaleYoff src/Dodge/Render/List.hs 92;" f drawListYoff src/Dodge/Render/List.hs 89;" f drawLoadingScreen src/Dodge/Render/MenuScreen.hs 24;" f -drawMachine src/Dodge/Machine/Draw.hs 17;" f +drawMachine src/Dodge/Machine/Draw.hs 18;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f drawMapperInventory src/Dodge/Render/HUD.hs 181;" f drawMenuClick src/Dodge/Render/Picture.hs 168;" f @@ -3442,6 +3451,8 @@ drawShaderLay src/Render.hs 218;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f +drawSlimeCrit src/Dodge/Creature/Picture.hs 56;" f +drawSlinkCrit src/Dodge/Creature/Picture.hs 89;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f drawSubInventory src/Dodge/Render/HUD.hs 173;" f @@ -3455,7 +3466,7 @@ drawText src/Picture/Base.hs 224;" f drawTitle src/Dodge/Render/MenuScreen.hs 49;" f drawTitleBackground src/Dodge/Render/List.hs 60;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f -drawTurret src/Dodge/Machine/Draw.hs 92;" f +drawTurret src/Dodge/Machine/Draw.hs 84;" f drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 216;" f drawWall src/Dodge/Wall/Draw.hs 11;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f @@ -3469,7 +3480,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 172;" f +dropAll src/Dodge/Creature/Update.hs 206;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 169;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3501,8 +3512,8 @@ edgeToPic src/Dodge/Debug/Picture.hs 426;" f effectOnEquip src/Dodge/Euse.hs 84;" f effectOnRemove src/Dodge/Euse.hs 74;" f eitType src/Dodge/Data/EquipType.hs 15;" f -ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 847;" f -elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 829;" f +ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 857;" f +elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 839;" f elephantGun src/Dodge/Item/Held/Rod.hs 27;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 23;" f emptyTrie src/SimpleTrie.hs 17;" f @@ -3513,7 +3524,7 @@ encircleP src/Dodge/Creature/Boid.hs 30;" f endArcPos src/Dodge/Tesla.hs 86;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 310;" f endRegex src/Dodge/Update/Input/InGame.hs 304;" f -energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 697;" f +energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 705;" f enterCombineInv src/Dodge/DisplayInventory.hs 321;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f epText src/Dodge/Inventory/SelectionList.hs 73;" f @@ -3530,7 +3541,7 @@ equipSiteInfo src/Dodge/Item/Info.hs 252;" f equipSitePQ src/Dodge/Creature/HandPos.hs 33;" f equipType src/Dodge/Data/EquipType.hs 10;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f -equipmentStrValue src/Dodge/Creature/Statistics.hs 59;" f +equipmentStrValue src/Dodge/Creature/Statistics.hs 61;" f errorAngleVV src/Geometry.hs 59;" f errorClosestPointOnLine src/Geometry.hs 71;" f errorClosestPointOnLineParam src/Geometry.hs 77;" f @@ -3547,11 +3558,11 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 189;" f explodeShell src/Dodge/Projectile/Update.hs 274;" f -explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f +explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 709;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 79;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f -extraPics src/Dodge/Render/ShapePicture.hs 146;" f +extraPics src/Dodge/Render/ShapePicture.hs 122;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 94;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 103;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f @@ -3559,7 +3570,7 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f -feet src/Dodge/Creature/Picture.hs 160;" f +feet src/Dodge/Creature/Picture.hs 186;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3572,9 +3583,9 @@ findReverseEdgeList src/Polyhedra.hs 54;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 27;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWithIx src/ListHelp.hs 124;" f -fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 861;" f -fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 669;" f -fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 717;" f +fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 871;" f +fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 675;" f +fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f firstWorldLoad appDodge/Main.hs 68;" f @@ -3602,18 +3613,20 @@ flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f flockPointTarget src/Dodge/Creature/Boid.hs 204;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 233;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 167;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 143;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f -foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f -foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" 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 foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f -foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f -foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 713;" f -foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 841;" f +foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f +foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 721;" f +foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 851;" f +footPin1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 703;" f +footPin2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 765;" f forbidFlee src/Dodge/Creature/Boid.hs 45;" f forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 6;" f @@ -3623,7 +3636,7 @@ fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 37;" f fpsText src/Dodge/Render/Picture.hs 57;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 147;" f frag src/Shader/Data.hs 110;" f -fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f +fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f fromJust' src/MaybeHelp.hs 22;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f @@ -3668,9 +3681,9 @@ getBulletType src/Dodge/HeldUse.hs 937;" f 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 53;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 590;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 577;" 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 getDebugMouseOver src/Dodge/Update.hs 472;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3687,7 +3700,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 573;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 572;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3707,10 +3720,10 @@ girderZ src/Dodge/Room/Foreground.hs 108;" f glCreate src/GLHelp.hs 11;" f glassLesson src/Dodge/Room/GlassLesson.hs 23;" f glassLessonRunPast src/Dodge/Room/GlassLesson.hs 68;" f -glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 705;" f -glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 715;" f -glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 719;" f -glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 695;" f +glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 713;" f +glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 723;" f +glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 727;" f +glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f glassSwitchBack src/Dodge/Room/Room.hs 86;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 120;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 404;" f @@ -3729,15 +3742,15 @@ 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 68;" f +groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 71;" f groupSplitItemAmounts src/Dodge/Combine.hs 52;" f -gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f -gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 859;" f -gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f -gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 691;" f -gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 703;" f -gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 681;" f -gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f +gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f +gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 869;" f +gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f +gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 697;" f +gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 711;" f +gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 687;" f +gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 737;" f gyroscope src/Dodge/Item/Scope.hs 170;" f hackBoldText src/Picture/Base.hs 193;" f hackDropShadow src/Picture/Base.hs 196;" f @@ -3763,17 +3776,17 @@ 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 -hasButtonLOS src/Dodge/Base/Collide.hs 309;" f +hasButtonLOS src/Dodge/Base/Collide.hs 311;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f -hasLOS src/Dodge/Base/Collide.hs 302;" f -hasLOSIndirect src/Dodge/Base/Collide.hs 318;" f +hasLOS src/Dodge/Base/Collide.hs 304;" f +hasLOSIndirect src/Dodge/Base/Collide.hs 320;" f hat src/Dodge/Item/Equipment.hs 65;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 68;" f headLampShape src/Dodge/Item/Draw/SPic.hs 425;" f headMap src/Dodge/DoubleTree.hs 118;" f headPQ src/Dodge/Creature/HandPos.hs 174;" f -healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 633;" f +healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 639;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 109;" f healthTest src/Dodge/Room/LasTurret.hs 129;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f @@ -3790,7 +3803,7 @@ heldItemMuzVel src/Dodge/HeldUse.hs 1022;" f heldItemMuzzles src/Dodge/HeldUse.hs 198;" f heldItemRifling src/Dodge/HeldUse.hs 1064;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 235;" f -heldItemWeight src/Dodge/Creature/Statistics.hs 83;" f +heldItemWeight src/Dodge/Creature/Statistics.hs 85;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldTorqueAmount src/Dodge/HeldUse.hs 611;" f heldTriggerType src/Dodge/BaseTriggerType.hs 28;" f @@ -3799,9 +3812,9 @@ hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f highBar src/Dodge/Room/Foreground.hs 89;" f highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f highMesh src/Dodge/Room/Foreground.hs 25;" f -hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 619;" f +hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f hitEffFromBul src/Dodge/Bullet.hs 156;" f -hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 761;" f +hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 771;" f holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 50;" f @@ -3809,11 +3822,11 @@ 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 51;" f -hoverCritHoverSound src/Dodge/Creature/Update.hs 69;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 73;" f +hoverCritHoverSound src/Dodge/Creature/Update.hs 89;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f -hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f +hoverDeathSounds src/Dodge/Creature/Vocalization.hs 58;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f @@ -3840,9 +3853,9 @@ insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f insertInTrie src/SimpleTrie.hs 24;" f insertNewKey src/IntMapHelp.hs 65;" f -insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 819;" f +insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 829;" f insertOver src/ListHelp.hs 47;" f -insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 721;" f +insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 41;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 134;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f @@ -3904,7 +3917,7 @@ invertIntMap src/IntMapHelp.hs 100;" f invertIntMap src/Multiset.hs 67;" f invertIntMapUnique src/IntMapHelp.hs 103;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f -invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 24;" f +invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f isAmmoIntLink src/Dodge/HeldUse.hs 738;" f isAnimate src/Dodge/Creature/Test.hs 132;" f @@ -3980,7 +3993,7 @@ itemString src/Dodge/Item/Display.hs 56;" f itemToFunction src/Dodge/Item/Grammar.hs 111;" f itemTreeSPic src/Dodge/Item/Draw/SPicTree.hs 13;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f -itemWeight src/Dodge/Creature/Statistics.hs 77;" f +itemWeight src/Dodge/Creature/Statistics.hs 79;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 30;" f @@ -4005,21 +4018,21 @@ keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 94;" f 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 749;" f +knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f lChasm src/Dodge/Room/Tutorial.hs 153;" 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 lShape src/Dodge/Placement/Instance/LightSource.hs 61;" f lamp src/Dodge/Creature/Lamp.hs 18;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 130;" f +lampCrSPic src/Dodge/Creature/Picture.hs 377;" 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 lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 362;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 164;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 416;" f -lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 739;" f +lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f lasRunRand src/Dodge/Room/LasTurret.hs 467;" f lasRunYinYang src/Dodge/Room/LasTurret.hs 185;" f lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 248;" f @@ -4074,7 +4087,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 437;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 436;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4111,7 +4124,7 @@ loopPairs src/ListHelp.hs 30;" f lootRoom src/Dodge/Room/Treasure.hs 59;" f lorem src/Lorem.hs 3;" f lowBlock src/Dodge/Placement/Instance/Block.hs 28;" f -lowWhirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f +lowWhirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 553;" f lsColPos src/Dodge/LightSource.hs 24;" f lsColPosID src/Dodge/LightSource.hs 21;" f lsColPosRad src/Dodge/LightSource.hs 30;" f @@ -4140,7 +4153,7 @@ 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 226;" f +makeCorpse src/Dodge/Creature/Picture.hs 252;" 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 @@ -4186,10 +4199,10 @@ makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 15;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f mapper src/Dodge/Item/Scope.hs 76;" f -marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f -marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 591;" f -marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f -marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 617;" f +marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f +marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f +marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f +marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 623;" f materialColor src/Dodge/Material/Color.hs 8;" f materialGib src/Dodge/Prop/Gib.hs 95;" f materialPenetrable src/Dodge/Bullet.hs 212;" f @@ -4205,10 +4218,10 @@ 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 124;" f +maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 130;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f mcBackgroundSound src/Dodge/Machine/Update.hs 152;" f -mcColor src/Dodge/Machine/Draw.hs 82;" f +mcColor src/Dodge/Machine/Draw.hs 74;" f mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 116;" f mcDamSensorUpdate src/Dodge/Machine/Update.hs 162;" f mcDamSensorUpdate' src/Dodge/Wall/Damage.hs 58;" f @@ -4220,7 +4233,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 122;" f 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 177;" f +mcSPic src/Dodge/Render/ShapePicture.hs 153;" f mcShootAuto src/Dodge/HeldUse.hs 1189;" f mcShootLaser src/Dodge/HeldUse.hs 1181;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f @@ -4230,25 +4243,25 @@ megaBattery src/Dodge/Item/Ammo.hs 54;" f megaShellMag src/Dodge/Item/Ammo.hs 44;" f megaTinMag src/Dodge/Item/Ammo.hs 21;" f meleeHeadingMove src/Dodge/Creature/Boid.hs 295;" f -memoBoxEdgeIndices src/Shader/Poke.hs 352;" f -memoBoxSurfaces src/Shader/Poke.hs 286;" f -memoCylinderIndices src/Shader/Poke.hs 323;" f -memoFlatIndices src/Shader/Poke.hs 311;" f -memoTopPrismEdgeIndices src/Shader/Poke.hs 329;" f -memoTopPrismIndices src/Shader/Poke.hs 317;" f +memoBoxEdgeIndices src/Shader/Poke.hs 361;" f +memoBoxSurfaces src/Shader/Poke.hs 295;" f +memoCylinderIndices src/Shader/Poke.hs 332;" f +memoFlatIndices src/Shader/Poke.hs 320;" f +memoTopPrismEdgeIndices src/Shader/Poke.hs 338;" f +memoTopPrismIndices src/Shader/Poke.hs 326;" f menuLDP src/Dodge/ListDisplayParams.hs 59;" f menuOptionToSelectionItem src/Dodge/Menu/Option.hs 91;" f merge src/ListHelp.hs 84;" f mergeBy src/ListHelp.hs 87;" f mergeOn src/ListHelp.hs 94;" f mergeSound src/Sound.hs 60;" f -metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 851;" f -metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 743;" f -metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f -metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 529;" f -metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 661;" f -metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 787;" f -metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f +metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 861;" f +metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 751;" f +metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 585;" f +metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 535;" f +metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f +metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 797;" f +metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 699;" f metalPlate src/Dodge/Item/Craftable.hs 32;" f mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f @@ -4264,18 +4277,18 @@ midWall src/Dodge/Placement/Instance/Wall.hs 38;" f minAndMax src/FoldableHelp.hs 109;" f minCrIXOn src/Dodge/Zoning/Creature.hs 49;" f minOn src/FoldableHelp.hs 35;" f -mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 589;" f +mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 595;" f miniGunCrit src/Dodge/Creature.hs 61;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 375;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 367;" f -miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 659;" f +miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f miniTree2 src/Dodge/Room/Room.hs 127;" f minimumOn src/FoldlHelp.hs 14;" f mirrorXAxis src/Geometry/Polygon.hs 76;" f mirrorxz src/Picture/Base.hs 330;" f mirroryz src/Picture/Base.hs 335;" f -missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f +missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 631;" f mixColors src/Color.hs 113;" f mixColorsFrac src/Color.hs 109;" f mixColorsLinear src/Color.hs 122;" f @@ -4361,8 +4374,8 @@ nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 269;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f -normalGait src/Dodge/Creature/State/WalkCycle.hs 141;" f -normalTo8 src/Shader/Poke.hs 466;" f +normalGait src/Dodge/Creature/State/WalkCycle.hs 147;" f +normalTo8 src/Shader/Poke.hs 475;" f normalizeAngle src/Geometry/Vector.hs 136;" f normalizeAnglePi src/Dodge/Base.hs 154;" f normalizeColor src/Color.hs 103;" f @@ -4382,11 +4395,11 @@ numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 186;" f obstacleColor src/Dodge/Debug/Picture.hs 264;" f obstructPathsCrossing src/Dodge/Path.hs 153;" f -oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f +oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 647;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 95;" f -oneSmooth src/Dodge/Creature/Picture.hs 157;" f +oneSmooth src/Dodge/Creature/Picture.hs 183;" f openConsole src/Dodge/Update.hs 140;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4409,19 +4422,19 @@ outLink src/Dodge/RoomLink.hs 120;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outwardIntegers src/Dodge/Base.hs 181;" f overCol src/Picture/Base.hs 303;" f -overColObj src/Shape.hs 270;" f -overColSH src/Shape.hs 238;" f +overColObj src/Shape.hs 275;" f +overColSH src/Shape.hs 243;" f overDebugEvent src/Dodge/Debug.hs 37;" f overLnkPosDir src/Dodge/RoomLink.hs 115;" f overLnkType src/Dodge/RoomLink.hs 106;" f overPos src/Picture/Base.hs 298;" f -overPosObj src/Shape.hs 274;" f -overPosSH src/Shape.hs 258;" 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 238;" f -overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f +overlapCircWalls src/Dodge/Base/Collide.hs 240;" f +overlapCircWallsClosest src/Dodge/Base/Collide.hs 279;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f -overlapSegWalls src/Dodge/Base/Collide.hs 218;" f +overlapSegWalls src/Dodge/Base/Collide.hs 220;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 281;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 38;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f @@ -4435,7 +4448,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 655;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 654;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4459,7 +4472,7 @@ performTurnToA src/Dodge/Creature/Action.hs 142;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pickUpItem src/Dodge/Inventory/Add.hs 70;" f pickUpItemAt src/Dodge/Inventory/Add.hs 75;" f -pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 779;" f +pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 789;" f pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f @@ -4506,31 +4519,32 @@ 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 168;" f +poisonSPic src/Dodge/Creature/Update.hs 202;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f -poke34 src/Shader/Poke.hs 509;" f -pokeArrayOff src/Shader/Poke.hs 521;" f -pokeBox src/Shader/Poke.hs 229;" f -pokeBoxSurface src/Shader/Poke.hs 262;" f +poke34 src/Shader/Poke.hs 518;" f +pokeArrayOff src/Shader/Poke.hs 530;" f +pokeBox src/Shader/Poke.hs 238;" f +pokeBoxSurface src/Shader/Poke.hs 271;" f pokeChasm src/Shader/Poke/Floor.hs 25;" f pokeChasmVerx src/Shader/Poke/Floor.hs 28;" f pokeCloud src/Shader/Poke/Cloud.hs 13;" f pokeCloudLike src/Shader/Poke/Cloud.hs 33;" f -pokeCylinder src/Shader/Poke.hs 174;" f -pokeCylinderCaps src/Shader/Poke.hs 217;" f +pokeCone src/Shader/Poke.hs 215;" f +pokeCylinder src/Shader/Poke.hs 175;" f +pokeCylinderCaps src/Shader/Poke.hs 227;" f pokeDust src/Shader/Poke/Cloud.hs 17;" f pokeF src/Shader/Poke.hs 69;" f -pokeFlatV src/Shader/Poke.hs 448;" f +pokeFlatV src/Shader/Poke.hs 457;" f pokeFloors src/Shader/Poke.hs 63;" f -pokeIndex src/Shader/Poke.hs 297;" f -pokeJustV src/Shader/Poke.hs 437;" f -pokeLayVerx src/Shader/Poke.hs 479;" f -pokeLayVerxs src/Shader/Poke.hs 471;" f -pokeRoundedCurve src/Shader/Poke.hs 206;" f -pokeRoundedFaces src/Shader/Poke.hs 142;" f +pokeIndex src/Shader/Poke.hs 306;" f +pokeJustV src/Shader/Poke.hs 446;" f +pokeLayVerx src/Shader/Poke.hs 488;" f +pokeLayVerxs src/Shader/Poke.hs 480;" f +pokeRoundedCurve src/Shader/Poke.hs 207;" f +pokeRoundedFaces src/Shader/Poke.hs 143;" f pokeShape src/Shader/Poke.hs 113;" f pokeShapeObj src/Shader/Poke.hs 126;" f -pokeStride src/Shader/Poke.hs 502;" f +pokeStride src/Shader/Poke.hs 511;" f pokeTile src/Shader/Poke/Floor.hs 13;" f pokeTileVerx src/Shader/Poke/Floor.hs 19;" f pokeVerx src/Shader/Poke.hs 40;" f @@ -4540,10 +4554,10 @@ 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 357;" f -polyChasmC src/Dodge/Room/Tutorial.hs 369;" f -polyCirc src/Shape.hs 47;" f -polyCircx src/Shape.hs 52;" f +polyChasm src/Dodge/Room/Tutorial.hs 356;" f +polyChasmC src/Dodge/Room/Tutorial.hs 368;" f +polyCirc src/Shape.hs 48;" f +polyCircx src/Shape.hs 53;" f polyCornerDist src/Geometry/Polygon.hs 69;" f polyOrthDist src/Geometry/Polygon.hs 59;" f polyPointsIntersect src/Geometry/ConvexPoly.hs 77;" f @@ -4580,7 +4594,7 @@ premapMaybe src/FoldlHelp.hs 26;" f prependTwo src/Geometry.hs 177;" f prettyDT src/Dodge/DoubleTree.hs 127;" f prettyShort src/AesonHelp.hs 11;" f -primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 651;" f +primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f printColumnTitles src/Dodge/Tree/Shift.hs 155;" f printColumns src/Dodge/Tree/Shift.hs 145;" f printInfo src/Dodge/Tree/Shift.hs 158;" f @@ -4588,8 +4602,8 @@ printInfoCheckNum src/Dodge/Tree/Shift.hs 167;" f printPartialColumns src/Dodge/Tree/Shift.hs 148;" f printPoint src/Dodge/Debug/Picture.hs 35;" f printRotPoint src/Dodge/Debug/Picture.hs 38;" f -prismBox src/Shape.hs 74;" f -prismPoly src/Shape.hs 60;" f +prismBox src/Shape.hs 70;" f +prismPoly src/Shape.hs 61;" f projV src/Geometry/Vector.hs 185;" f propSPic src/Dodge/Prop/Draw.hs 27;" f propagateOrientation src/Dodge/Item/Orientation.hs 92;" f @@ -4608,7 +4622,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 53;" f +pushAgainst src/Dodge/Creature/State/WalkCycle.hs 56;" f pushCaverns src/Dodge/Room/LongDoor.hs 192;" f pushCr src/Dodge/WallCreatureCollisions.hs 42;" f pushL src/DoubleStack.hs 20;" f @@ -4633,7 +4647,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 471;" f +putSingleLight src/Dodge/Room/Tutorial.hs 470;" 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 @@ -4723,10 +4737,10 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f regexList src/Dodge/DisplayInventory.hs 312;" f -reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 709;" f -reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 807;" f +reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 717;" f +reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 817;" f reloadLevelStart src/Dodge/Save.hs 71;" f -reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 537;" f +reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f rememberSounds src/Dodge/Creature/Perception.hs 186;" f remoteDetonator src/Dodge/Item/Scope.hs 152;" f remoteScreen src/Dodge/Item/Scope.hs 146;" f @@ -4745,9 +4759,9 @@ renderLightingNoShadows src/Render.hs 49;" f renderListAt src/Dodge/Render/List.hs 177;" f renderShadows src/Render.hs 116;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f -resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 65;" f +resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 69;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f -resetStride src/Dodge/Creature/State/WalkCycle.hs 136;" f +resetStride src/Dodge/Creature/State/WalkCycle.hs 142;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f @@ -4763,7 +4777,7 @@ restrictRMInLinksPD src/Dodge/Room/Link.hs 26;" f resumeSound src/Dodge/SoundLogic.hs 48;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 9;" f revCard src/Dodge/Data/CardinalPoint.hs 13;" f -reverseCymbal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 815;" f +reverseCymbal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 825;" f reversePair src/Dodge/LevelGen.hs 87;" f rewinder src/Dodge/Item/Held/Utility.hs 36;" f rezBox src/Dodge/Room/RezBox.hs 31;" f @@ -4822,9 +4836,9 @@ rotate3y src/Geometry/Vector3D.hs 67;" f rotate3z src/Geometry/Vector3D.hs 55;" f rotateCamera src/Dodge/Update/Camera.hs 205;" f rotateList src/Padding.hs 49;" f -rotateSH src/Shape.hs 254;" f -rotateSHq src/Shape.hs 163;" f -rotateSHx src/Shape.hs 262;" f +rotateSH src/Shape.hs 259;" f +rotateSHq src/Shape.hs 159;" f +rotateSHx src/Shape.hs 267;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 65;" f rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f @@ -4863,17 +4877,18 @@ saveQuit src/Dodge/Menu.hs 77;" f saveQuitConc src/Dodge/Menu.hs 80;" f saveSlotPath src/Dodge/Save.hs 63;" f saveWorldInSlot src/Dodge/Save.hs 68;" f -sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 799;" f +sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f scToTS src/Dodge/Event/Input.hs 34;" f scale src/Picture/Base.hs 141;" f scale3 src/Picture/Base.hs 137;" f +scaleAlong src/Dodge/Creature/Picture.hs 64;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f -scaleSH src/Shape.hs 266;" f -scalp src/Dodge/Creature/Picture.hs 318;" f +scaleSH src/Shape.hs 271;" f +scalp src/Dodge/Creature/Picture.hs 344;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 165;" f +scorchSPic src/Dodge/Creature/Update.hs 199;" 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 @@ -4885,15 +4900,15 @@ scrollRBOption src/Dodge/Update/Scroll.hs 139;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f scrollTimeBack src/Dodge/Update.hs 245;" f scrollTimeForward src/Dodge/Update.hs 262;" f -seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 585;" f -seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 539;" f -seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f -seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 839;" f -seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 637;" f -seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f -seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f -seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f -seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f +seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 591;" f +seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 545;" f +seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 611;" f +seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 849;" f +seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 643;" f +seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 685;" f +seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 695;" f +seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 767;" f +seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 633;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 314;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f @@ -4909,7 +4924,7 @@ selSecSelSize src/Dodge/SelectionSections.hs 157;" f selSecYint src/Dodge/SelectionSections.hs 166;" f selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f selectionSet src/Dodge/Update/Input/InGame.hs 171;" f -semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f +semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 803;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f senseDamage src/Dodge/Machine/Update.hs 262;" f @@ -4917,8 +4932,8 @@ senseDamage' src/Dodge/Wall/Damage.hs 61;" f sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f -sensorSPic src/Dodge/Machine/Draw.hs 97;" f -sensorTut src/Dodge/Room/Tutorial.hs 599;" f +sensorSPic src/Dodge/Machine/Draw.hs 89;" f +sensorTut src/Dodge/Room/Tutorial.hs 598;" 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 @@ -4985,7 +5000,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 91;" f shiftByV2 src/Dodge/PlacementSpot.hs 257;" f shiftChildren src/Dodge/Tree/Compose.hs 45;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 135;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f shiftInBy src/Dodge/PlacementSpot.hs 254;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 328;" f shiftInvItemsDown src/Dodge/Inventory.hs 181;" f @@ -5023,7 +5038,7 @@ shootersRoom1 src/Dodge/Room/Room.hs 335;" f shootingRange src/Dodge/Room/Room.hs 362;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" f -shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f +shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 539;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 77;" f showAttachItem src/Dodge/Item/Display.hs 92;" f showEquipItem src/Dodge/Item/Display.hs 108;" f @@ -5044,43 +5059,47 @@ shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f simpleCrSprings src/Dodge/Update.hs 978;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f -sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 765;" f -sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f +sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 775;" f +sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 811;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 63;" f singleDT src/Dodge/DoubleTree.hs 8;" f singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 20;" f sizeFBOs src/Framebuffer/Update.hs 19;" f skColor src/Dodge/Spark/Draw.hs 14;" f -skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 805;" f -slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 821;" f -slap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 781;" f -slap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 707;" f -slap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 803;" f -slap5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 811;" f -slap6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 577;" f -slap7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 575;" f -slapClean2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 631;" f -slapClean3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 711;" f -slapClean4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 561;" f -slapClean5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 853;" f -slapClean6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 587;" f -slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 755;" f -slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 675;" f -slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f +skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 815;" f +slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" f +slap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 791;" f +slap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 715;" f +slap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 813;" f +slap5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 821;" f +slap6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f +slap7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f +slapClean2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 637;" f +slapClean3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 719;" f +slapClean4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f +slapClean5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 863;" f +slapClean6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f +slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 763;" f +slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 681;" f +slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f slideWindow src/ListHelp.hs 81;" f +slimeCrit src/Dodge/Creature/ChaseCrit.hs 65;" f +slimeCritUpdate src/Dodge/Creature/Update.hs 70;" f +slinkCrit src/Dodge/Creature/ChaseCrit.hs 54;" f +slinkCritUpdate src/Dodge/Creature/Update.hs 73;" 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 slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 326;" f smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f -smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 17;" f +smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 20;" f smallDrawTree src/Dodge/LevelGen.hs 93;" f -smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 833;" f -smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 541;" f -smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 813;" f -smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 613;" f +smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 843;" f +smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f +smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f +smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 619;" f smallPillar src/Dodge/Room/Pillar.hs 38;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smallSnailInt2 src/Dodge/Path.hs 106;" f @@ -5100,10 +5119,10 @@ soundMenuOptions src/Dodge/Menu.hs 161;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f -soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 350;" f +soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f soundPic src/Dodge/Debug/Picture.hs 373;" f soundStart src/Dodge/SoundLogic.hs 118;" f -soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 177;" f +soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 179;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f @@ -5123,8 +5142,7 @@ spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 54;" f spawnerRoom src/Dodge/Room/Room.hs 390;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f -spiderJoint src/Dodge/Creature/Picture.hs 208;" f -spiderJoint' src/Dodge/Creature/Picture.hs 217;" f +spiderJoint src/Dodge/Creature/Picture.hs 234;" f splashMenu src/Dodge/Menu.hs 31;" f splashMenuOptions src/Dodge/Menu.hs 36;" f splashScreen src/Dodge/Initialisation.hs 10;" f @@ -5168,7 +5186,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 123;" f +startDeathTimer src/Dodge/Creature/Update.hs 153;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f startInvList src/Dodge/Creature.hs 105;" f startInventory src/Dodge/Creature.hs 108;" f @@ -5180,19 +5198,19 @@ startSeedGameConc src/Dodge/StartNewGame.hs 46;" f statsModifier src/Dodge/Creature/Info.hs 16;" f stickHitSound src/Dodge/Projectile/Update.hs 77;" f stickyMod src/Dodge/Item/Scope.hs 56;" f -stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 595;" f -stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 775;" f -stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f -stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f -stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f +stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f +stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f +stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f +stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 555;" f +stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 669;" f stopAllSounds src/Sound.hs 127;" f stopBulletAt src/Dodge/Bullet.hs 201;" f stopPushing src/Dodge/Wall/Damage.hs 172;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f -storageShape src/Dodge/Machine/Draw.hs 30;" f +storageShape src/Dodge/Machine/Draw.hs 31;" f storeRoomID src/Dodge/Room/Modify.hs 23;" f -strFromEquipment src/Dodge/Creature/Statistics.hs 56;" f -strFromHeldItem src/Dodge/Creature/Statistics.hs 70;" f +strFromEquipment src/Dodge/Creature/Statistics.hs 58;" f +strFromHeldItem src/Dodge/Creature/Statistics.hs 72;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 69;" f strictify src/MaybeHelp.hs 35;" f strideLength src/Dodge/Creature/HandPos.hs 46;" f @@ -5231,11 +5249,11 @@ tankShape src/Dodge/Placement/Instance/Tank.hs 23;" f tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f tanksRoom src/Dodge/Room/Tanks.hs 77;" f -tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 789;" f -tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 523;" f -tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 735;" f -tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f -tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 643;" f +tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 799;" f +tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 529;" f +tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 743;" f +tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 833;" f +tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 649;" f targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f @@ -5244,16 +5262,16 @@ targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 303;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f -teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f +teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 587;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 49;" f termTextColor src/Dodge/Terminal.hs 52;" f terminalLDP src/Dodge/ListDisplayParams.hs 48;" f terminalReturnEffect src/Dodge/Terminal.hs 279;" f terminalReturnLocal src/Dodge/Terminal.hs 283;" f -terminalSPic src/Dodge/Machine/Draw.hs 46;" f +terminalSPic src/Dodge/Machine/Draw.hs 44;" f terminalScreenGlow src/Dodge/Machine/Update.hs 42;" f -terminalShape src/Dodge/Machine/Draw.hs 49;" f +terminalShape src/Dodge/Machine/Draw.hs 47;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 129;" f teslaCoil src/Dodge/Item/Held/BatteryGuns.hs 12;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 413;" f @@ -5290,8 +5308,8 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 47;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 144;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 55;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f -throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f -throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f +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 @@ -5300,13 +5318,13 @@ timeFlowUpdate src/Dodge/Update.hs 205;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f tinMag src/Dodge/Item/Ammo.hs 24;" f -ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f -ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f -ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f -ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f -ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 773;" f -tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 745;" f -tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 857;" f +ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f +ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f +ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f +ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f +ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f +tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 753;" f +tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 867;" f titleOptionsMenu src/Dodge/Menu.hs 104;" f titleOptionsNoWrite src/Dodge/Menu.hs 107;" f tlDoEffect src/Dodge/Terminal.hs 115;" f @@ -5319,7 +5337,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 129;" f +toDeathCarriage src/Dodge/Creature/Update.hs 161;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5335,19 +5353,19 @@ toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f toggleJust src/MaybeHelp.hs 39;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 111;" f -tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 699;" f -tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 639;" f -tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 607;" f -tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f -tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" f +tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 707;" f +tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 645;" f +tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 613;" f +tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" f +tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f -topPrismEdgeIndices src/Shader/Poke.hs 335;" f -topPrismIndices src/Shader/Poke.hs 410;" f +topPrismEdgeIndices src/Shader/Poke.hs 344;" f +topPrismIndices src/Shader/Poke.hs 419;" f topTestPart src/Dodge/TestString.hs 96;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f -torso src/Dodge/Creature/Picture.hs 323;" f +torso src/Dodge/Creature/Picture.hs 349;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f @@ -5365,9 +5383,9 @@ translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f translateH src/Picture/Base.hs 104;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 140;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 43;" f -translateSH src/Shape.hs 242;" f -translateSHxy src/Shape.hs 246;" f -translateSHz src/Shape.hs 250;" f +translateSH src/Shape.hs 247;" f +translateSHxy src/Shape.hs 251;" f +translateSHz src/Shape.hs 255;" f translateSP src/ShapePicture.hs 53;" f translateSPxy src/ShapePicture.hs 45;" f translateSPz src/ShapePicture.hs 49;" f @@ -5417,11 +5435,11 @@ 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 497;" f -tutLight src/Dodge/Room/Tutorial.hs 401;" f -tutRezBox src/Dodge/Room/Tutorial.hs 610;" 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 tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 635;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 634;" f tweenAngles src/Geometry/Vector.hs 198;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5431,9 +5449,9 @@ twoFlatHRot src/Dodge/Item/HeldOffset.hs 89;" f twoHandOffY src/Dodge/Creature/HandPos.hs 130;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 137;" f twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f -twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 525;" f -twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 573;" f -twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f +twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f +twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f +twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 661;" f ubyteSize src/Shader/Parameters.hs 13;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 109;" f uncurryV src/Geometry/Data.hs 66;" f @@ -5465,14 +5483,14 @@ updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 662;" f updateCamera src/Dodge/Update/Camera.hs 33;" f -updateCarriage src/Dodge/Creature/State/WalkCycle.hs 18;" f -updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 23;" f +updateCarriage src/Dodge/Creature/State/WalkCycle.hs 19;" f +updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 24;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f updateCloud src/Dodge/Update.hs 904;" f updateClouds src/Dodge/Update.hs 773;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f -updateCreature src/Dodge/Creature/Update.hs 37;" f +updateCreature src/Dodge/Creature/Update.hs 38;" f updateCreatureGroups src/Dodge/Update.hs 634;" f updateCreatureSoundPositions src/Dodge/Update.hs 613;" f updateCreatureStride src/Dodge/Update.hs 376;" f @@ -5521,7 +5539,7 @@ updateLaser src/Dodge/Laser/Update.hs 12;" f updateLasers src/Dodge/Update.hs 513;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLivingCreature src/Dodge/Creature/Update.hs 46;" f +updateLivingCreature src/Dodge/Creature/Update.hs 47;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f updateMachine src/Dodge/Machine/Update.hs 24;" f updateMagnets src/Dodge/Update.hs 405;" f @@ -5538,7 +5556,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 180;" f +updatePulse src/Dodge/Creature/Update.hs 214;" f updatePulseBall src/Dodge/Update.hs 547;" f updatePulseLaser src/Dodge/Update.hs 716;" f updatePulseLasers src/Dodge/Update.hs 522;" f @@ -5580,24 +5598,25 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 492;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f -upperBody src/Dodge/Creature/Picture.hs 338;" f -upperBox src/Shape.hs 153;" f -upperBoxHalf src/Shape.hs 219;" f -upperBoxMT src/Shape.hs 144;" f -upperBoxST src/Shape.hs 147;" f -upperBoxSU src/Shape.hs 150;" f -upperCylinder src/Shape.hs 166;" f -upperPrismPoly src/Shape.hs 119;" f -upperPrismPolyHalf src/Shape.hs 204;" f -upperPrismPolyHalfMI src/Shape.hs 198;" f -upperPrismPolyHalfST src/Shape.hs 201;" f -upperPrismPolyMT src/Shape.hs 98;" f -upperPrismPolySE src/Shape.hs 101;" f -upperPrismPolySI src/Shape.hs 107;" f -upperPrismPolyST src/Shape.hs 104;" f -upperPrismPolySU src/Shape.hs 110;" f -upperPrismPolyTS src/Shape.hs 116;" f -upperRounded src/Shape.hs 182;" f +upperBody src/Dodge/Creature/Picture.hs 364;" f +upperBox src/Shape.hs 149;" f +upperBoxHalf src/Shape.hs 224;" f +upperBoxMT src/Shape.hs 140;" f +upperBoxST src/Shape.hs 143;" f +upperBoxSU src/Shape.hs 146;" f +upperCylinder src/Shape.hs 162;" f +upperPrismPoly src/Shape.hs 115;" f +upperPrismPolyHalf src/Shape.hs 200;" f +upperPrismPolyHalfMI src/Shape.hs 194;" f +upperPrismPolyHalfST src/Shape.hs 197;" f +upperPrismPolyMT src/Shape.hs 94;" f +upperPrismPolySE src/Shape.hs 97;" f +upperPrismPolySI src/Shape.hs 103;" f +upperPrismPolyST src/Shape.hs 100;" f +upperPrismPolySU src/Shape.hs 106;" f +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 1111;" f useHotkey src/Dodge/Creature/YourControl.hs 57;" f @@ -5642,23 +5661,23 @@ viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 254;" f violet src/Color.hs 48;" f -visibleWalls src/Dodge/Base/Collide.hs 223;" f +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 62;" f +walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 65;" f walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 90;" f wallBlips src/Dodge/RadarSweep.hs 99;" f 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 187;" f +wallToSurface src/Dodge/Base/Collide.hs 189;" f wallsFromRooms src/Dodge/Layout.hs 153;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1396;" f warningRooms src/Dodge/Room/Warning.hs 34;" f -warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 855;" f +warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 865;" f wasdAim src/Dodge/Creature/YourControl.hs 116;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f @@ -5674,22 +5693,22 @@ weaponRoom src/Dodge/Room/Room.hs 281;" f weaponUnderCrits src/Dodge/Room/Room.hs 179;" f wedgeGeom src/Dodge/Base.hs 42;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f -whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 645;" f -whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 771;" f -whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f -whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 623;" f -whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f -whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 727;" f -whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f -whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 553;" f -whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f -whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 763;" f -whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 535;" f -whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 687;" f -whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 647;" f +whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 651;" f +whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 781;" f +whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f +whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f +whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 577;" f +whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 735;" f +whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 573;" f +whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 559;" f +whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 739;" f +whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 773;" f +whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 541;" f +whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f +whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 653;" f white src/Color.hs 53;" f -whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 611;" f -whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 559;" f +whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 617;" f +whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 565;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f winConfig appDodge/Main.hs 47;" f windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f @@ -5723,13 +5742,13 @@ worldPosToScreen src/Dodge/Base/Coordinate.hs 24;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f -wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f +wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 537;" f wristArmour src/Dodge/Item/Equipment.hs 35;" f wristInvisibility src/Dodge/Item/Equipment.hs 80;" f writeConfig src/Dodge/Menu.hs 180;" f writeSaveSlot src/Dodge/Save.hs 36;" f -xCylinder src/Shape.hs 133;" f -xCylinderST src/Shape.hs 130;" f +xCylinder src/Shape.hs 129;" f +xCylinderST src/Shape.hs 126;" f xIntercepts src/Dodge/Zoning/Base.hs 66;" f xSwitch src/Dodge/Room/Airlock.hs 32;" f xV2 src/Geometry/Vector.hs 209;" f