diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 8eb9796d0..79286b09f 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -3,8 +3,6 @@ module Dodge.Creature ( module Dodge.Creature.ChaseCrit, module Dodge.Creature.Inanimate, launcherCrit, --- pistolCrit, - ltAutoCrit, spreadGunCrit, autoCrit, armourChaseCrit, @@ -13,7 +11,6 @@ module Dodge.Creature ( module Dodge.Creature.Impulse, module Dodge.Creature.Perception, module Dodge.Creature.ReaderUpdate, - module Dodge.Creature.SentinelAI, module Dodge.Creature.State, module Dodge.Creature.Strategy, module Dodge.Creature.Test, @@ -34,10 +31,8 @@ import Dodge.Creature.ChaseCrit import Dodge.Creature.Impulse import Dodge.Creature.Inanimate import Dodge.Creature.LauncherCrit -import Dodge.Creature.LtAutoCrit import Dodge.Creature.Perception import Dodge.Creature.ReaderUpdate -import Dodge.Creature.SentinelAI import Dodge.Creature.SpreadGunCrit import Dodge.Creature.State import Dodge.Creature.Strategy diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index d167b3541..3e16a937b 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -66,11 +66,13 @@ slimeCrit :: Creature slimeCrit = defaultCreature & crName .~ "slimeCrit" & crHP .~ HP 1000 - & crType .~ SlimeCrit 40 0 0 (V2 50 0) False True + & crType .~ SlimeCrit r 0 0 (V2 r 0) False & crFaction .~ ColorFaction (light green) & crPerception . cpVision . viFOV .~ FloatFOV pi & crActionPlan .~ SlimeIntelligence & crStance . carriage .~ Crawling + where + r = 50 hoverCrit :: Creature hoverCrit = diff --git a/src/Dodge/Creature/LtAutoCrit.hs b/src/Dodge/Creature/LtAutoCrit.hs deleted file mode 100644 index 52b548f2b..000000000 --- a/src/Dodge/Creature/LtAutoCrit.hs +++ /dev/null @@ -1,20 +0,0 @@ -module Dodge.Creature.LtAutoCrit ( - ltAutoCrit, -) where - ---import Control.Lens -import Dodge.Data.Creature -import Dodge.Default ---import Dodge.Item.Held.Stick ---import qualified IntMapHelp as IM ---import Picture - -ltAutoCrit :: Creature -ltAutoCrit = - defaultCreature - { --_crInv = IM.fromList [(0, autoPistol)] - _crHP = HP 500 - } --- & crType .~ LtAutoCrit --- & crType . humanoidAI .~ LtAutoAI --- & crType . skinUpper .~ lightx4 red diff --git a/src/Dodge/Creature/SentinelAI.hs b/src/Dodge/Creature/SentinelAI.hs deleted file mode 100644 index 929378361..000000000 --- a/src/Dodge/Creature/SentinelAI.hs +++ /dev/null @@ -1,135 +0,0 @@ -module Dodge.Creature.SentinelAI ( - sentinelAI, - sentinelFireType, - sentinelExtraWatchUpdate, -) where - ---import Control.Lens -import Data.Maybe ---import Dodge.Creature.Action ---import Dodge.Creature.ChainUpdates ---import Dodge.Creature.Perception ---import Dodge.Creature.ReaderUpdate ---import Dodge.Creature.Strategy -import Dodge.Creature.Test -import Dodge.Creature.Volition -import Dodge.Data.CreatureEffect -import Dodge.Data.World -import Geometry.Data - -sentinelAI :: World -> Creature -> Creature ---sentinelAI w = -sentinelAI = - sentinelExtraWatchUpdate - [ - ( crHasTargetLOS - , \_ cr -> - StrategyActions - (ShootAt (fromJust $ tcid cr)) - [ DoActionIf - (WdCrNegate $ WdCrBlfromCrBl CrIsAiming) - (drawWeapon `DoActionThen` (50 `WaitThen` NoAction)) - `DoActionThen` lostest - `DoActionWhile` advanceShoot - `DoActionThen` 75 - `DoReplicate` advanceShoot - `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] - , AimAt{_targetID = fromJust $ tcid cr, _targetSeenAt = V2 0 0} - ] - ) - ] - where - advanceShoot = DoImpulses [UseItem, MoveForward 3] - tcid cr = _targetCr (_crIntention cr) - lostest = WdCrLOSTarget -- w' cr = maybe False (\cid -> canSee (_crID cr) cid w') (tcid cr) - ---chainCreatureUpdates :: [World -> Creature -> Creature] -> World -> Creature -> Creature ---chainCreatureUpdates ls w cr = foldr (\f -> f w) cr ls - -sentinelFireType :: (Int -> Action) -> World -> Creature -> Creature -sentinelFireType _ = undefined ---sentinelFireType f = --- chainCreatureUpdates --- [ watchUpdateStrat --- [ --- ( crHasTargetLOS --- , \_ _ -> --- StrategyActions --- (ShootAt 0) --- [ drawwp `DoActionThen` f 0 `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] --- , aiming --- ] --- ) --- , (const crAwayFromPost, const goToPostStrat) --- ] --- , perceptionUpdate [0] --- , -- , Left $ perceptionUp 0 --- const doStrategyActions --- , targetYouWhenCognizant --- , const $ --- overrideInternal --- (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) --- (crActionPlan . apStrategy .~ WatchAndWait) --- ] --- where --- drawwp = DoActionIfElse NoAction (WdCrBlfromCrBl CrIsAiming) (DoActionThen drawWeapon (WaitThen 50 NoAction)) --- aiming = --- AimAt --- { _targetID = 0 --- , _targetSeenAt = V2 0 0 -- hack --- } - -sentinelExtraWatchUpdate :: - [(World -> Creature -> Bool, World -> Creature -> Strategy)] -> - World -> - Creature -> - Creature -sentinelExtraWatchUpdate _ = undefined ---sentinelExtraWatchUpdate xs = --- chainCreatureUpdates --- [ watchUpdateStrat --- (xs ++ [(const crAwayFromPost, const goToPostStrat)]) --- , perceptionUpdate [0] --- , const doStrategyActions --- , targetYouWhenCognizant --- , const $ --- overrideInternal --- (\cr -> crHasTarget cr && crStratConMatches (GetTo (V2 0 0)) cr) --- (crActionPlan . apStrategy .~ WatchAndWait) --- ] - ---shootAtAdvance :: Int -> [Action] ---shootAtAdvance tcid = --- [ DoActionIfElse NoAction crIsAiming (DoActionThen drawWeapon (WaitThen 50 NoAction)) --- `DoActionThen` --- lostest `DoActionWhile` --- advanceShoot `DoActionThen` --- 75 `DoReplicate` --- advanceShoot `DoActionThen` --- DoImpulses [ChangeStrategy WatchAndWait] --- , AimAt --- { _targetID = tcid --- , _targetSeenAt = V2 0 0 -- hack --- } --- ] --- where --- lostest (w,cr') = canSee (_crID cr') tcid w --- advanceShoot = ImpulsesList [[UseItem, MoveForward 3]] --- ---shootAtWhileContinueTime :: Int -> World -> Creature -> Strategy ---shootAtWhileContinueTime tcid _ _ = StrategyActions (ShootAt tcid) --- [ DoActionIfElse NoAction crIsAiming (DoActionThen drawWeapon (WaitThen 50 NoAction)) --- `DoActionThen` --- lostest `DoActionWhile` --- advanceShoot `DoActionThen` --- 75 `DoReplicate` --- advanceShoot `DoActionThen` --- DoImpulses [ChangeStrategy WatchAndWait] --- , AimAt --- { _targetID = tcid --- , _targetSeenAt = V2 0 0 -- hack --- } --- ] --- where --- lostest (w,cr') = canSee (_crID cr') tcid w --- advanceShoot = ImpulsesList [[UseItem, MoveForward 3]] diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 63be55310..ac10b571d 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -2,7 +2,7 @@ module Dodge.Creature.Update (updateCreature) where -import Dodge.WorldEvent.ThingsHit +--import Dodge.WorldEvent.ThingsHit import Color import Control.Monad import qualified IntMapHelp as IM @@ -78,47 +78,48 @@ slimeCritUpdate cid w let cid' = IM.newKey $ w ^. cWorld . lWorld . creatures in w & cWorld . lWorld . creatures . ix cid .~ cr1 & cWorld . lWorld . creatures . at cid' ?~ (cr2 & crID .~ cid') + | (cr ^?! crType . slimeIsCompressing) && r > norm p + = let (w',g) = runState (setSlimeDir cid (cr & crDamage .~ []) w) (w ^. randGen) + in w' & randGen .~ g | otherwise = updateCarriage cid $ w & cWorld . lWorld . creatures . ix cid .~ mvslime & cWorld . lWorld . creatures . ix cid . crDamage .~ [] - & cWorld . lWorld . creatures . ix cid . crDir .~ d - & cWorld . lWorld . creatures . ix cid . crType . slimeResetDir .~ rb' - & randGen .~ g - & cWorld . lWorld . creatures . ix cid %~ doSlimeRadChange + & tocr %~ doSlimeRadChange + & tocr . crType . slimeSplitTimer %~ (max 0 . subtract 1) where - txy = w ^?! cWorld . lWorld . creatures . ix 0 . crPos . _xy + tocr = cWorld . lWorld . creatures . ix cid cr = w ^?! cWorld . lWorld . creatures . ix cid - cxy = cr ^. crPos . _xy - rb = cr ^?! crType . slimeResetDir - (d,rb',g) - | isWalkable cxy txy w && distance cxy txy < 50 + r - , rb == cr ^?! crType . slimeIsCompressing - = (argV (txy-cxy), rb, w ^. randGen) - | abs (norm p - r) < 0.1 - , rb == cr ^?! crType . slimeIsCompressing - = let (d',g') = randomR (0, 2* pi) (w ^. randGen) - in (d',not rb, g') - | otherwise = (cr ^. crDir, rb, w ^. randGen) - mvslime = cr & crType . slimeCompression .~ p' + x - -- & crPos . _xy +~ 0.1 *^ normalize (txy-cxy) - & crPos . _xy +~ 0.1 *^ unitVectorAtAngle d - & crType . slimeIsCompressing %~ (f . f') --- g | cr ^?! crType . slimeIsCompressing = negate --- | otherwise = id - s | cr ^?! crType . slimeIsCompressing = 2/3 - | otherwise = 1.5 - f | abs (norm v - norm p') < 0.2 = not + v = 0.1 *^ normalize p + mvslime = cr & crType . slimeCompression +~ f v + & crPos . _xy +~ v + & crType . slimeIsCompressing %~ f' + f | t = negate | otherwise = id - v = (s * r) *^ unitVectorAtAngle (cr ^. crDir) - --r = crRad (cr ^. crType) + f' | norm p > 3*r/2 = const True + | otherwise = id + t = cr ^?! crType . slimeIsCompressing r = cr ^?! crType . slimeRad p = cr ^?! crType . slimeCompression - (p',f') - | dot p v > 0 && dot p v > dot p (vNormal v) && dot p v > dot p (-vNormal v) = (p, id) - | 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') + +setSlimeDir :: Int -> Creature -> World -> State StdGen World +setSlimeDir cid cr w = do + i <- state $ randomR (0,1) + d <- state $ randomR (0,2*pi) + if i < (r - 11) / 50 + then do + x <- randInCirc 1 + let (cr1,cr2) = splitSlimeCrit (x + cxy) (unitVectorAtAngle d) cr ^?! _Just + cid' = IM.newKey $ w ^. cWorld . lWorld . creatures + return $ w & tocr .~ cr1 + & tocr' cid' ?~ (cr2 & crID .~ cid') + else return $ w & tocr . crType . slimeCompression .~ r *^ unitVectorAtAngle d + & tocr . crType . slimeIsCompressing .~ False + where + tocr = cWorld . lWorld . creatures . ix cid + tocr' i = cWorld . lWorld . creatures . at i + cxy = cr ^. crPos . _xy + r = cr ^?! crType . slimeRad + doSlimeRadChange :: Creature -> Creature doSlimeRadChange = crType . slimeRadWobble %~ f @@ -136,23 +137,23 @@ splitSlimeCrit p v cr = do a2 = pi*r*r - a1 r1 = sqrt (a1/pi) r2 = sqrt (a2/pi) --- guard $ r1 > 5 && r2 > 5 - return (cr' & crPos . _xy .~ mp + (r1 + 0.5) *^ normalize (mp - cxy) + mvdir = normalize (vNormal v) + return (cr' & crPos . _xy .~ mp + (r1 + 0.51) *^ mvdir & crType . slimeRad .~ r1 - & crType . slimeCompression .~ rotateV (argV (mp-cxy)) (V2 r1 0) - & crDir .~ argV (mp - cxy) - & crType . slimeResetDir .~ not (cr ^?! crType . slimeIsCompressing) - ,cr' & crPos . _xy .~ mp - (r2 + 0.5) *^ normalize (mp - cxy) + & crType . slimeCompression .~ rotateV (argV mvdir) (V2 r1 0) + & crDir .~ argV mvdir + ,cr' & crPos . _xy .~ mp - (r2 + 0.51) *^ normalize mvdir & crType . slimeRad .~ r2 - & crType . slimeCompression .~ rotateV (argV (cxy-mp)) (V2 r2 0) - & crDir .~ argV (cxy - mp) - & crType . slimeResetDir .~ not (cr ^?! crType . slimeIsCompressing) + & crType . slimeCompression .~ rotateV (argV (-mvdir)) (V2 r2 0) + & crDir .~ argV (-mvdir) ) where cxy = cr ^. crPos . _xy r = cr ^?! crType . slimeRad cr' = cr & crDamage .~ [] & crType . slimeRadWobble .~ 0 + & crType . slimeSplitTimer .~ 10 + & crType . slimeIsCompressing .~ False -- h is the height of the segment, ie r - distance to center segmentArea :: Float -> Float -> Float diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 8bfec4faf..fba0f3410 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -76,7 +76,6 @@ data CreatureType , _slimeSplitTimer :: Int , _slimeCompression :: Point2 , _slimeIsCompressing :: Bool - , _slimeResetDir :: Bool } | SwarmCrit | AutoCrit diff --git a/src/Dodge/Item/Held/BatteryGuns.hs b/src/Dodge/Item/Held/BatteryGuns.hs index ee9d2b306..eaf0b43e3 100644 --- a/src/Dodge/Item/Held/BatteryGuns.hs +++ b/src/Dodge/Item/Held/BatteryGuns.hs @@ -2,13 +2,12 @@ module Dodge.Item.Held.BatteryGuns ( teslaCoil, laser, tractorGun, - compass, + compass, -- this should be elsewhere ) where import Control.Lens import Dodge.Data.Item import Dodge.Default.Item ---import Geometry.Data teslaCoil :: Item teslaCoil = diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 573b172f8..b6d2a7cbc 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -57,15 +57,17 @@ tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor - , tToBTree "" . return . cleatOnward <$> xChasm 200 200 + --, tToBTree "" . return . cleatOnward <$> (xChasm 200 200 + , tToBTree "" . return . cleatOnward <$> (roomRectAutoLights 200 200 + <&> rmPmnts .:~ (sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 100 100)) -- , tToBTree "" . return . cleatOnward <$> (cChasm -- <&> rmPmnts .:~ (sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 100 20)) -- , corDoor -- , loadAmmoTut - , corDoor - , chasmSpitTerminal - , corDoor - , tutHub +--a , corDoor +--a , chasmSpitTerminal +--a , corDoor +--a , tutHub --b , corDoor --b , tToBTree "slowCrush" . return . cleatOnward <$> pushCaverns --b , corDoor diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index e281e5acc..313c13521 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -51,6 +51,7 @@ testStringInit u = u ^.. tocrs . ix 1 . crPos . _xy . to show <> u ^.. tocrs . ix 1 . crType . slimeIsCompressing . to show <> u ^.. tocrs . ix 1 . crDir . to show <> u ^.. tocrs . ix 1 . crDamage . to show + <> u ^.. tocrs . each . crType . to crRad . to show -- <> u ^.. tocrs . each . crID . to show -- where -- tocr = uvWorld . cWorld . lWorld . creatures . ix 0 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 3adf77844..fef9fee4b 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -1004,11 +1004,11 @@ crCrSpring c1 c2 , SlimeCrit{} <- c2 ^. crType , id2 > id1 , distance xy1 xy2 < abs (r1 - r2) + 1 = fuseSlimes c1 c2 - | SlimeCrit{} <- c1 ^. crType = - --cWorld . lWorld . creatures %~ (rolap c1 c2 . rolap' c2 c1) + | Just t <- c1 ^? crType . slimeSplitTimer + , t <= 0 = cWorld . lWorld . creatures %~ (rolap . rolap') + | SlimeCrit{} <- c1 ^. crType = id | SlimeCrit{} <- c2 ^. crType = id --- cWorld . lWorld . creatures %~ ( rolap c1 c2 . rolap' c2 c1) | otherwise = cWorld . lWorld . creatures %~ ( olap c1 c2 . olap' c2 c1) where z c = c ^. crPos . _z @@ -1037,20 +1037,19 @@ crCrSpring c1 c2 m2 = crMass $ c2 ^. crType fuseSlimes :: Creature -> Creature -> World -> World -fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix mini .~ (c & crID .~ mini)) +fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix mini .~ c) . (cWorld . lWorld . creatures . at maxi .~ Nothing) where + c' | c1 ^?! crType . slimeRad > c2 ^?! crType . slimeRad = c1 + | otherwise = c2 mini = min i1 i2 maxi = max i1 i2 i1 = c1 ^. crID i2 = c2 ^. crID - c = c1 & crType . slimeRad .~ r + c = c' & crType . slimeRad .~ r & crType . slimeRadWobble +~ r - max r1 r2 - & crType . slimeCompression .~ V2 r 0 --- & crPos . _xy .~ (r1/(r1+r2)) *^ xy1 + (r2/(r1+r2)) *^ xy2 - & crPos . _xy .~ if r1 > r2 then xy1 else xy2 - xy1 = c1 ^. crPos . _xy - xy2 = c2 ^. crPos . _xy + & crType . slimeCompression %~ ((r/max r1 r2) *^) + & crID .~ mini r1 = c1 ^?! crType . slimeRad r2 = c2 ^?! crType . slimeRad r = sqrt (r1*r1 + r2*r2) diff --git a/tags b/tags index 4da74243d..6f8812aba 100644 --- a/tags +++ b/tags @@ -18,22 +18,22 @@ <$> src/Dodge/Data/Creature.hs 93;" o <$> src/Dodge/Data/LWorld.hs 179;" o <$> src/Dodge/Data/Terminal.hs 69;" o -ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C -AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C -ALTERIFLE src/Dodge/Data/Item/Combine.hs 155;" C +ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C +AIUNIT src/Dodge/Data/Item/Combine.hs 76;" C +ALTERIFLE src/Dodge/Data/Item/Combine.hs 156;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 20;" C -AMR src/Dodge/Data/Item/Combine.hs 160;" C -ANTIMATTER src/Dodge/Data/Item/Combine.hs 69;" C +AMR src/Dodge/Data/Item/Combine.hs 161;" C +ANTIMATTER src/Dodge/Data/Item/Combine.hs 70;" C APInt src/Dodge/Data/Item/Use.hs 45;" C APNothing src/Dodge/Data/Item/Use.hs 46;" C APProjectiles src/Dodge/Data/Item/Use.hs 44;" C AQUAMARINE src/Color/Data.hs 21;" C ARHUD src/Dodge/Data/Item/Combine.hs 34;" C -ARHUDSF src/Dodge/Data/ComposedItem.hs 23;" C +ARHUDSF src/Dodge/Data/ComposedItem.hs 24;" C ATTACH src/Dodge/Data/Item/Combine.hs 19;" C -AUTOAMR src/Dodge/Data/Item/Combine.hs 161;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 147;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 156;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 162;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 148;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 157;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C Action src/Dodge/Data/ActionPlan.hs 70;" t @@ -49,15 +49,15 @@ AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C Ambush src/Dodge/Data/ActionPlan.hs 136;" C -AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C +AmmoEffectSF src/Dodge/Data/ComposedItem.hs 34;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t -AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C -AmmoMagType src/Dodge/Data/Item/Combine.hs 107;" t -AmmoModifierSF src/Dodge/Data/ComposedItem.hs 30;" C +AmmoMagSF src/Dodge/Data/ComposedItem.hs 25;" C +AmmoMagType src/Dodge/Data/Item/Combine.hs 108;" t +AmmoModifierSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoParams src/Dodge/Data/Item/Use.hs 49;" t -AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C +AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t -AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C +AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 125;" C ArcNodeType src/Dodge/Data/LWorld.hs 159;" t @@ -70,44 +70,44 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 36;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AttachParams src/Dodge/Data/Item/Use.hs 43;" t -AttachType src/Dodge/Data/Item/Combine.hs 91;" t +AttachType src/Dodge/Data/Item/Combine.hs 92;" t Attention src/Dodge/Data/Creature/Perception.hs 58;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 59;" C Audition src/Dodge/Data/Creature/Perception.hs 45;" t -AutoCrit src/Dodge/Data/Creature/Misc.hs 82;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 81;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 86;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 85;" C Avatar src/Dodge/Data/Creature/Misc.hs 47;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 86;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 85;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t -BANGCONE src/Dodge/Data/Item/Combine.hs 149;" C -BANGROD src/Dodge/Data/Item/Combine.hs 158;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 141;" C -BATTERY src/Dodge/Data/Item/Combine.hs 112;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 136;" C -BEAMSPLITTER src/Dodge/Data/Item/Combine.hs 65;" C -BELTMAG src/Dodge/Data/Item/Combine.hs 110;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 150;" C +BANGROD src/Dodge/Data/Item/Combine.hs 159;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 142;" C +BATTERY src/Dodge/Data/Item/Combine.hs 113;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 137;" C +BEAMSPLITTER src/Dodge/Data/Item/Combine.hs 66;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 111;" C BINGATE src/Dodge/Data/Item/Combine.hs 31;" C BLACK src/Color/Data.hs 25;" C -BLINKER src/Dodge/Data/Item/Combine.hs 178;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 179;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 167;" C +BLINKER src/Dodge/Data/Item/Combine.hs 179;" C +BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 180;" C +BLOWTORCH src/Dodge/Data/Item/Combine.hs 168;" C BLUE src/Color/Data.hs 14;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 150;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 151;" C BQuad src/Geometry/Bezier.hs 9;" t -BRAINHAT src/Dodge/Data/Item/Combine.hs 127;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 135;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 134;" C +BRAINHAT src/Dodge/Data/Item/Combine.hs 128;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 136;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 135;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 22;" C -BULLETSYNTH src/Dodge/Data/Item/Combine.hs 93;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C +BULLETSYNTH src/Dodge/Data/Item/Combine.hs 94;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 158;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 41;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 83;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 82;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 98;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 94;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 97;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 93;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 41;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 48;" C @@ -118,7 +118,7 @@ BeamCombineType src/Dodge/Data/Beam.hs 36;" t BeamDraw src/Dodge/Data/Beam.hs 31;" t BeamDrawColor src/Dodge/Data/Beam.hs 33;" C BeamSimple src/Dodge/Data/Beam.hs 48;" C -BeamSplitterSF src/Dodge/Data/ComposedItem.hs 49;" C +BeamSplitterSF src/Dodge/Data/ComposedItem.hs 50;" C BeamType src/Dodge/Data/Beam.hs 44;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C BeltBulletAmmo src/Dodge/Data/AmmoType.hs 11;" C @@ -168,19 +168,20 @@ ButtonEvent src/Dodge/Data/Button.hs 13;" t ButtonPress src/Dodge/Data/Button.hs 14;" C ButtonSound src/Dodge/Data/SoundOrigin.hs 38;" C ButtonSwitch src/Dodge/Data/Button.hs 19;" C -CAMERA src/Dodge/Data/Item/Combine.hs 76;" C -CAN src/Dodge/Data/Item/Combine.hs 56;" C -CAPACITOR src/Dodge/Data/Item/Combine.hs 103;" C +CAMERA src/Dodge/Data/Item/Combine.hs 77;" C +CAN src/Dodge/Data/Item/Combine.hs 57;" C +CAPACITOR src/Dodge/Data/Item/Combine.hs 104;" C CHARTREUSE src/Color/Data.hs 22;" C -CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 113;" C +CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 114;" C CIRCLE src/Dodge/Data/GenParams.hs 18;" C -CItem src/Dodge/Data/ComposedItem.hs 52;" t +CItem src/Dodge/Data/ComposedItem.hs 53;" t CLICKER src/Dodge/Data/Item/Combine.hs 27;" C -COMPRESSOR src/Dodge/Data/Item/Combine.hs 104;" C +COMPASS src/Dodge/Data/Item/Combine.hs 36;" C +COMPRESSOR src/Dodge/Data/Item/Combine.hs 105;" C COPIER src/Dodge/Data/Item/Combine.hs 28;" C CRAFT src/Dodge/Data/Item/Combine.hs 18;" C -CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 184;" C -CREATURESENSOR src/Dodge/Data/Item/Combine.hs 85;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C +CREATURESENSOR src/Dodge/Data/Item/Combine.hs 86;" C CWGen src/Dodge/Data/CWorld.hs 39;" t CWorld src/Dodge/Data/CWorld.hs 23;" t CYAN src/Color/Data.hs 16;" C @@ -195,7 +196,7 @@ Camera src/Dodge/Data/Camera.hs 22;" t CameraScrollTimeFlow src/Dodge/Data/World.hs 75;" C CamouflageStatus src/Dodge/Data/CamouflageStatus.hs 5;" t CapacitorBelow src/Dodge/Data/Muzzle.hs 23;" C -CapacitorSF src/Dodge/Data/ComposedItem.hs 43;" C +CapacitorSF src/Dodge/Data/ComposedItem.hs 44;" C CapacitorSelf src/Dodge/Data/Muzzle.hs 24;" C Cardinal8 src/Dodge/Data/CardinalPoint.hs 27;" t CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t @@ -234,7 +235,7 @@ 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 +ConsumableItemType src/Dodge/Data/Item/Combine.hs 117;" t ContextDT src/Dodge/Data/DoubleTree.hs 25;" t ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C @@ -277,13 +278,13 @@ CrWlID src/Dodge/Data/CrWlID.hs 10;" t Cr_awareness src/Dodge/Data/Config.hs 85;" C Cr_status src/Dodge/Data/Config.hs 84;" C CrabCrit src/Dodge/Data/Creature/Misc.hs 61;" C -CraftType src/Dodge/Data/Item/Combine.hs 49;" t +CraftType src/Dodge/Data/Item/Combine.hs 50;" t Crawling src/Dodge/Data/Creature/Stance.hs 25;" C CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C Creature src/Dodge/Data/Creature.hs 35;" t CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C -CreatureShape src/Dodge/Data/Creature/Misc.hs 88;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 87;" t CreatureType src/Dodge/Data/Creature/Misc.hs 46;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C @@ -294,11 +295,11 @@ CursorDisplay src/Dodge/Data/SelectionList.hs 21;" t Cylinder src/Shape/Data.hs 14;" C DETECTOR src/Dodge/Data/Item/Combine.hs 33;" C DROPPER src/Dodge/Data/Item/Combine.hs 26;" C -DRUMMAG src/Dodge/Data/Item/Combine.hs 109;" C +DRUMMAG src/Dodge/Data/Item/Combine.hs 110;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 16;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 14;" C -DTComb src/Dodge/Item/Grammar.hs 168;" t +DTComb src/Dodge/Item/Grammar.hs 170;" t DTMidAboveNode src/Dodge/Data/DoubleTree.hs 12;" C DTMidBelowNode src/Dodge/Data/DoubleTree.hs 13;" C DTRootNode src/Dodge/Data/DoubleTree.hs 10;" C @@ -328,7 +329,7 @@ DefaultRoomType src/Dodge/Data/Room.hs 32;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 27;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C -Detector src/Dodge/Data/Item/Combine.hs 182;" t +Detector src/Dodge/Data/Item/Combine.hs 183;" t Dirt src/Dodge/Data/Material.hs 12;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t DisplayTerminal src/Dodge/Data/HUD.hs 27;" C @@ -365,9 +366,9 @@ Dungeon src/Dodge/Data/Scenario.hs 66;" C Dust src/Dodge/Data/Cloud.hs 26;" t EBSound src/Dodge/Data/SoundOrigin.hs 41;" C ECW src/Dodge/Material/Damage.hs 14;" t -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 159;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 160;" C EQUIP src/Dodge/Data/Item/Combine.hs 17;" C -EXPLOSIVES src/Dodge/Data/Item/Combine.hs 118;" C +EXPLOSIVES src/Dodge/Data/Item/Combine.hs 119;" C Ears src/Dodge/Data/Creature/Perception.hs 45;" C East src/Dodge/Data/CardinalPoint.hs 8;" C East8 src/Dodge/Data/CardinalPoint.hs 30;" C @@ -387,12 +388,12 @@ EnergyBallType src/Dodge/Data/EnergyBall/Type.hs 10;" t EnergyGeneratorSS src/Dodge/Data/Scenario.hs 109;" C EngineSS src/Dodge/Data/Scenario.hs 88;" C Enterrement src/Dodge/Data/Damage.hs 27;" C -EquipItemType src/Dodge/Data/Item/Combine.hs 121;" t +EquipItemType src/Dodge/Data/Item/Combine.hs 122;" t EquipOptions src/Dodge/Data/RightButtonOptions.hs 15;" C EquipSite src/Dodge/Data/Equipment/Misc.hs 19;" t 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 +EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C Escape src/Dodge/Data/Scenario.hs 10;" C Essential src/Shape/Data.hs 30;" C EvadeAim src/Dodge/Data/ActionPlan.hs 76;" C @@ -402,20 +403,20 @@ 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 100;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 99;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 16;" C ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 39;" C FBO src/Shader/Data.hs 57;" t -FLAMESHIELD src/Dodge/Data/Item/Combine.hs 123;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 163;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 164;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 165;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 166;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 176;" C -FRONTARMOUR src/Dodge/Data/Item/Combine.hs 124;" C -FUELCELL src/Dodge/Data/Item/Combine.hs 87;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 133;" C +FLAMESHIELD src/Dodge/Data/Item/Combine.hs 124;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 164;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 165;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 166;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 167;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 177;" C +FRONTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C +FUELCELL src/Dodge/Data/Item/Combine.hs 88;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 134;" C 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 @@ -467,19 +468,19 @@ FullRes src/Dodge/Data/Config.hs 113;" 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 +FunctionChangeSF src/Dodge/Data/ComposedItem.hs 35;" C GBounce src/Dodge/Data/Projectile.hs 46;" C GEqC src/SameConstr.hs 20;" c -GIMBAL src/Dodge/Data/Item/Combine.hs 96;" C -GLASSSHARD src/Dodge/Data/Item/Combine.hs 60;" C -GLAUNCHER src/Dodge/Data/Item/Combine.hs 172;" C -GRAPECANNON src/Dodge/Data/Item/Combine.hs 151;" C +GIMBAL src/Dodge/Data/Item/Combine.hs 97;" C +GLASSSHARD src/Dodge/Data/Item/Combine.hs 61;" C +GLAUNCHER src/Dodge/Data/Item/Combine.hs 173;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 152;" C GREEN src/Color/Data.hs 13;" C GStick src/Dodge/Data/Projectile.hs 47;" C GStuckCreature src/Dodge/Data/Projectile.hs 48;" C GStuckWall src/Dodge/Data/Projectile.hs 49;" C -GYROSCOPE src/Dodge/Data/Item/Combine.hs 97;" C -GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C +GYROSCOPE src/Dodge/Data/Item/Combine.hs 98;" C +GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 19;" C GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameRoom src/Dodge/GameRoom.hs 12;" t Gas src/Dodge/Data/Cloud.hs 34;" t @@ -511,26 +512,26 @@ Government src/Dodge/Data/Scenario.hs 43;" C GovernmentScope src/Dodge/Data/Scenario.hs 49;" t Grenade src/Dodge/Data/Projectile.hs 31;" C GrenadeHitEffect src/Dodge/Data/Projectile.hs 45;" t -GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 37;" C +GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 38;" C Gust src/Dodge/Data/Gust.hs 11;" t GymSS src/Dodge/Data/Scenario.hs 104;" C -HARDDRIVE src/Dodge/Data/Item/Combine.hs 73;" C -HARDWARE src/Dodge/Data/Item/Combine.hs 52;" C -HAT src/Dodge/Data/Item/Combine.hs 128;" C -HEADLAMP src/Dodge/Data/Item/Combine.hs 129;" C -HEALTH src/Dodge/Data/Item/Combine.hs 45;" C -HEATSENSOR src/Dodge/Data/Item/Combine.hs 82;" C +HARDDRIVE src/Dodge/Data/Item/Combine.hs 74;" C +HARDWARE src/Dodge/Data/Item/Combine.hs 53;" C +HAT src/Dodge/Data/Item/Combine.hs 129;" C +HEADLAMP src/Dodge/Data/Item/Combine.hs 130;" C +HEALTH src/Dodge/Data/Item/Combine.hs 46;" C +HEATSENSOR src/Dodge/Data/Item/Combine.hs 83;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C -HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C -HOSE src/Dodge/Data/Item/Combine.hs 54;" C +HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C +HOSE src/Dodge/Data/Item/Combine.hs 55;" C HP src/Dodge/Data/Creature.hs 64;" C HUD src/Dodge/Data/HUD.hs 29;" t HalfRes src/Dodge/Data/Config.hs 113;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HardQuit src/Dodge/Data/Universe.hs 68;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C -HeldItemType src/Dodge/Data/Item/Combine.hs 140;" t -HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C +HeldItemType src/Dodge/Data/Item/Combine.hs 141;" t +HeldPlatformSF src/Dodge/Data/ComposedItem.hs 15;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HighlightSI src/Dodge/Data/SelectionList.hs 58;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 41;" C @@ -556,13 +557,13 @@ HotkeyX src/Dodge/Data/Equipment/Misc.hs 36;" C HotkeyZ src/Dodge/Data/Equipment/Misc.hs 35;" C HoverCrit src/Dodge/Data/Creature/Misc.hs 68;" C Huge src/Shape/Data.hs 24;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 89;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 88;" C IMSI src/Dodge/Data/SelectionList.hs 41;" t IMSS src/Dodge/Data/SelectionList.hs 39;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C -INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 126;" C -IRONBAR src/Dodge/Data/Item/Combine.hs 79;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C +INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 127;" C +IRONBAR src/Dodge/Data/Item/Combine.hs 80;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 184;" C ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 30;" t @@ -592,14 +593,14 @@ Int2 src/Geometry/Data.hs 21;" t IntID src/Dodge/Data/Universe.hs 120;" t Intention src/Dodge/Data/Creature.hs 72;" t IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C -IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C -IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t +IntroScanSF src/Dodge/Data/ComposedItem.hs 22;" C +IntroScanType src/Dodge/Data/Item/Combine.hs 45;" t InvInt src/Dodge/Data/Item/Location.hs 16;" t InventoryChange src/Dodge/Data/World.hs 32;" C InventoryConnectSound src/Dodge/Data/SoundOrigin.hs 12;" C InventoryHeadFilterSI src/Dodge/Data/SelectionList.hs 61;" C InventoryHeadSI src/Dodge/Data/SelectionList.hs 60;" C -InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t +InventoryPathing src/Dodge/Data/Item/Combine.hs 39;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C Investigate src/Dodge/Data/ActionPlan.hs 142;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C @@ -614,7 +615,7 @@ ItemDimension src/Dodge/Data/Item/Misc.hs 11;" t ItemLocation src/Dodge/Data/Item/Location.hs 28;" t ItemParamID src/Dodge/Data/Item/Params.hs 24;" C ItemParams src/Dodge/Data/Item/Params.hs 12;" t -ItemSF src/Dodge/Data/ComposedItem.hs 12;" t +ItemSF src/Dodge/Data/ComposedItem.hs 13;" t ItemScroll src/Dodge/Data/Item.hs 38;" t ItemScrollInt src/Dodge/Data/Item.hs 40;" C ItemScrollIntRange src/Dodge/Data/Item.hs 41;" C @@ -624,19 +625,19 @@ ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 28;" t ItmInt src/Dodge/Data/Item/Location.hs 25;" t -JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C -JUMPLEGS src/Dodge/Data/Item/Combine.hs 132;" C -JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C +JOYSTICK src/Dodge/Data/Item/Combine.hs 96;" C +JUMPLEGS src/Dodge/Data/Item/Combine.hs 133;" C +JoystickSF src/Dodge/Data/ComposedItem.hs 27;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C -KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 178;" C Kill src/Dodge/Data/ActionPlan.hs 158;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 14;" C LDParams src/Dodge/Data/SelectionList.hs 14;" t -LED src/Dodge/Data/Item/Combine.hs 175;" C -LIGHTER src/Dodge/Data/Item/Combine.hs 67;" C -LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 80;" C +LED src/Dodge/Data/Item/Combine.hs 176;" C +LIGHTER src/Dodge/Data/Item/Combine.hs 68;" C +LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 81;" C LS src/Dodge/Data/LightSource.hs 21;" C LSParam src/Dodge/Data/LightSource.hs 14;" t LWorld src/Dodge/Data/LWorld.hs 94;" t @@ -644,7 +645,7 @@ LabLink src/Dodge/Data/Room.hs 50;" C LabSS src/Dodge/Data/Scenario.hs 97;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C Laboratory src/Dodge/Data/Scenario.hs 61;" C -LampCrit src/Dodge/Data/Creature/Misc.hs 84;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 83;" C Large src/Shape/Data.hs 25;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -652,7 +653,7 @@ LasSound src/Dodge/Data/SoundOrigin.hs 30;" C Laser src/Dodge/Data/Laser.hs 19;" t LaserSensor src/Dodge/Data/Machine/Sensor.hs 13;" C LaserType src/Dodge/Data/Laser.hs 14;" t -LaserWeaponXSF src/Dodge/Data/ComposedItem.hs 41;" C +LaserWeaponXSF src/Dodge/Data/ComposedItem.hs 42;" C Lasering src/Dodge/Data/Damage.hs 22;" C LauncherAmmo src/Dodge/Data/AmmoType.hs 9;" C LaundrySS src/Dodge/Data/Scenario.hs 115;" C @@ -685,22 +686,22 @@ LocationDT src/Dodge/Data/DoubleTree.hs 42;" t LoneWolf src/Dodge/Data/Creature/State.hs 24;" C LookAround src/Dodge/Data/ActionPlan.hs 144;" C Lure src/Dodge/Data/ActionPlan.hs 137;" C -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 147;" C MAGENTA src/Color/Data.hs 17;" C -MAGNET src/Dodge/Data/Item/Combine.hs 68;" C -MAGSHIELD src/Dodge/Data/Item/Combine.hs 122;" C +MAGNET src/Dodge/Data/Item/Combine.hs 69;" C +MAGSHIELD src/Dodge/Data/Item/Combine.hs 123;" C MAPPER src/Dodge/Data/Item/Combine.hs 25;" C -MAXHEALTH src/Dodge/Data/Item/Combine.hs 46;" C +MAXHEALTH src/Dodge/Data/Item/Combine.hs 47;" C MBranch src/Dodge/Data/MetaTree.hs 19;" C -MEDKIT src/Dodge/Data/Item/Combine.hs 117;" C -MICROCHIP src/Dodge/Data/Item/Combine.hs 72;" C -MICROPHONE src/Dodge/Data/Item/Combine.hs 83;" C -MINIDISPLAY src/Dodge/Data/Item/Combine.hs 77;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 152;" C +MEDKIT src/Dodge/Data/Item/Combine.hs 118;" C +MICROCHIP src/Dodge/Data/Item/Combine.hs 73;" C +MICROPHONE src/Dodge/Data/Item/Combine.hs 84;" C +MINIDISPLAY src/Dodge/Data/Item/Combine.hs 78;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 153;" C MODBlockedString src/Dodge/Data/Universe.hs 106;" C MODString src/Dodge/Data/Universe.hs 105;" C MODStringOption src/Dodge/Data/Universe.hs 107;" C -MOTOR src/Dodge/Data/Item/Combine.hs 63;" C +MOTOR src/Dodge/Data/Item/Combine.hs 64;" C MPO src/Dodge/Base/Collide.hs 109;" t MTRS src/Dodge/Data/MTRS.hs 6;" t MTree src/Dodge/Data/MetaTree.hs 12;" C @@ -721,7 +722,7 @@ MagnetTrajectory src/Dodge/Data/Bullet.hs 44;" C MagnetTrajectoryType src/Dodge/Data/Bullet.hs 51;" C MagnetUpdate src/Dodge/Data/Magnet.hs 11;" t MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C -MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C +MakeAutoSF src/Dodge/Data/ComposedItem.hs 36;" C MakeSound src/Dodge/Data/ActionPlan.hs 46;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C @@ -730,7 +731,7 @@ ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" t Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" C MapperInventory src/Dodge/Data/HUD.hs 17;" C -MapperSF src/Dodge/Data/ComposedItem.hs 39;" C +MapperSF src/Dodge/Data/ComposedItem.hs 40;" C Material src/Dodge/Data/Material.hs 10;" t MaterialSound src/Dodge/Data/SoundOrigin.hs 36;" C Maybe' src/MaybeHelp.hs 11;" t @@ -802,7 +803,7 @@ Muzzle_positions src/Dodge/Data/Config.hs 110;" C MvForward src/Dodge/Data/ActionPlan.hs 36;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 35;" C MvWalking src/Dodge/Data/Creature/Misc.hs 26;" C -NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C +NAILBOX src/Dodge/Data/Item/Combine.hs 79;" C NInt src/NewInt.hs 16;" C NIntMap src/NewInt.hs 22;" C NIntSet src/NewInt.hs 19;" C @@ -841,7 +842,7 @@ NoObjShads src/Dodge/Data/Config.hs 118;" C NoParams src/Dodge/Data/Item/Params.hs 13;" C NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C -NoSF src/Dodge/Data/ComposedItem.hs 29;" C +NoSF src/Dodge/Data/ComposedItem.hs 30;" C NoSIDisplayMod src/Dodge/Data/SelectionList.hs 57;" C NoShadowFidelity src/Shape/Data.hs 21;" C NoShadows src/Dodge/Data/Config.hs 119;" C @@ -852,7 +853,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 95;" C +NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 94;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C NormalOptions src/Dodge/Data/Universe.hs 71;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C @@ -903,7 +904,7 @@ NumShadowCasters src/Dodge/Data/Config.hs 14;" t OChasmWall src/Dodge/Data/Object.hs 15;" C OCreature src/Dodge/Data/Object.hs 12;" C OFloor src/Dodge/Data/Object.hs 14;" C -OItem src/Dodge/Data/ComposedItem.hs 54;" t +OItem src/Dodge/Data/ComposedItem.hs 55;" t OPulseBall src/Dodge/Data/Object.hs 11;" C ORANGE src/Color/Data.hs 23;" C OTButton src/Dodge/Data/ObjectType.hs 15;" C @@ -958,22 +959,22 @@ OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C PBSound src/Dodge/Data/SoundOrigin.hs 43;" C PBall src/Dodge/Data/PlasmaBall.hs 13;" C -PIPE src/Dodge/Data/Item/Combine.hs 50;" C -PISTOL src/Dodge/Data/Item/Combine.hs 145;" C +PIPE src/Dodge/Data/Item/Combine.hs 51;" C +PISTOL src/Dodge/Data/Item/Combine.hs 146;" C PJStabiliser src/Dodge/Projectile/Create.hs 16;" t -PLANK src/Dodge/Data/Item/Combine.hs 59;" C -PLATE src/Dodge/Data/Item/Combine.hs 70;" C +PLANK src/Dodge/Data/Item/Combine.hs 60;" C +PLATE src/Dodge/Data/Item/Combine.hs 71;" C PLUS src/Dodge/Data/GenParams.hs 18;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 173;" C -PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 88;" C -POWERLEGS src/Dodge/Data/Item/Combine.hs 130;" C -PRISM src/Dodge/Data/Item/Combine.hs 66;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 174;" C +PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 89;" C +POWERLEGS src/Dodge/Data/Item/Combine.hs 131;" C +PRISM src/Dodge/Data/Item/Combine.hs 67;" C PS src/Dodge/Data/GenWorld.hs 98;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 99;" C PSPos src/Dodge/Data/GenWorld.hs 100;" C PSRoomRand src/Dodge/Data/GenWorld.hs 107;" C PSType src/Dodge/Data/GenWorld.hs 32;" t -PUMP src/Dodge/Data/Item/Combine.hs 62;" C +PUMP src/Dodge/Data/Item/Combine.hs 63;" C PaletteColor src/Color/Data.hs 11;" t PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C @@ -996,12 +997,12 @@ 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 99;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 98;" C PlainDeath src/Dodge/Data/Creature.hs 70;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t -PlasmaSF src/Dodge/Data/ComposedItem.hs 46;" C +PlasmaSF src/Dodge/Data/ComposedItem.hs 47;" C PlayStatus src/Sound/Data.hs 21;" t PlayerFaction src/Dodge/Data/Creature/State.hs 20;" C PlayerGoal src/Dodge/Data/Scenario.hs 3;" t @@ -1027,7 +1028,7 @@ PrintMaterial src/Dodge/Data/AmmoType.hs 15;" C Prison src/Dodge/Data/Scenario.hs 65;" C Projectile src/Dodge/Data/Projectile.hs 15;" t ProjectileParams src/Dodge/Data/Item/Use.hs 51;" C -ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 36;" C +ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 37;" C ProjectileType src/Dodge/Data/Projectile.hs 30;" t Prop src/Dodge/Data/Prop.hs 14;" t ProxSensor src/Dodge/Data/Machine/Sensor.hs 24;" C @@ -1036,11 +1037,11 @@ ProximitySensor src/Dodge/Data/Machine/Sensor.hs 24;" t ProximitySensorType src/Dodge/Data/Machine/Sensor.hs 29;" t Pulse src/Dodge/Data/Creature/Misc.hs 40;" t PulseBall src/Dodge/Data/PulseLaser.hs 20;" t -PulseBallSF src/Dodge/Data/ComposedItem.hs 45;" C +PulseBallSF src/Dodge/Data/ComposedItem.hs 46;" C PulseLaser src/Dodge/Data/PulseLaser.hs 11;" t -PulseLaserSF src/Dodge/Data/ComposedItem.hs 42;" C +PulseLaserSF src/Dodge/Data/ComposedItem.hs 43;" C PulseStatus src/Dodge/Data/Creature/Misc.hs 40;" C -PumpSF src/Dodge/Data/ComposedItem.hs 48;" C +PumpSF src/Dodge/Data/ComposedItem.hs 49;" C PushSource src/Dodge/Data/Door.hs 23;" t PushedBy src/Dodge/Data/Door.hs 25;" C PushesItself src/Dodge/Data/Door.hs 24;" C @@ -1069,18 +1070,18 @@ Pyroelectric src/Dodge/Data/Material.hs 22;" C QFloat src/Geometry/Data.hs 50;" t QuarterRes src/Dodge/Data/Config.hs 113;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C -RAM src/Dodge/Data/Item/Combine.hs 74;" C +RAM src/Dodge/Data/Item/Combine.hs 75;" C RCommands src/Dodge/Terminal.hs 165;" C RED src/Color/Data.hs 12;" C -RELCURS src/Dodge/Data/Item/Combine.hs 40;" C -RELITEM src/Dodge/Data/Item/Combine.hs 41;" C -REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 99;" C -REMOTESCREEN src/Dodge/Data/Item/Combine.hs 94;" C -REWINDER src/Dodge/Data/Item/Combine.hs 142;" C +RELCURS src/Dodge/Data/Item/Combine.hs 41;" C +RELITEM src/Dodge/Data/Item/Combine.hs 42;" C +REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 100;" C +REMOTESCREEN src/Dodge/Data/Item/Combine.hs 95;" C +REWINDER src/Dodge/Data/Item/Combine.hs 143;" C RGBA src/Color/Data.hs 28;" t -RIFLE src/Dodge/Data/Item/Combine.hs 154;" C -RLAUNCHER src/Dodge/Data/Item/Combine.hs 170;" C -RLAUNCHERX src/Dodge/Data/Item/Combine.hs 171;" C +RIFLE src/Dodge/Data/Item/Combine.hs 155;" C +RLAUNCHER src/Dodge/Data/Item/Combine.hs 171;" C +RLAUNCHERX src/Dodge/Data/Item/Combine.hs 172;" C ROSE src/Color/Data.hs 18;" C RPLinkStatus src/Dodge/Data/Room.hs 62;" t RProps src/Dodge/Layout/Generate.hs 14;" C @@ -1100,8 +1101,8 @@ RectRoomType src/Dodge/Data/Room.hs 33;" C ReducedRocketSmoke src/Dodge/Data/Projectile.hs 52;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C Religion src/Dodge/Data/Scenario.hs 47;" C -RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 27;" C -RemoteScreenSF src/Dodge/Data/ComposedItem.hs 25;" C +RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 28;" C +RemoteScreenSF src/Dodge/Data/ComposedItem.hs 26;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 33;" C Remove_LOS src/Dodge/Data/Config.hs 91;" C RenderData src/Data/Preload/Render.hs 13;" t @@ -1141,23 +1142,23 @@ RoomType src/Dodge/Data/Room.hs 31;" t RoomWire src/Dodge/Data/Room.hs 57;" t RoundedFaces src/Shape/Data.hs 13;" C RunningSideEffect src/Dodge/Data/Universe.hs 67;" C -SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C -SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C -SHELLMAG src/Dodge/Data/Item/Combine.hs 111;" C -SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 102;" C +SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 175;" C +SHELLMAG src/Dodge/Data/Item/Combine.hs 112;" C +SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 103;" C SIDisplayMod src/Dodge/Data/SelectionList.hs 56;" t -SMG src/Dodge/Data/Item/Combine.hs 148;" C -SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 100;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 162;" C -SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 81;" C -SPEEDLEGS src/Dodge/Data/Item/Combine.hs 131;" C -SPRING src/Dodge/Data/Item/Combine.hs 53;" C +SMG src/Dodge/Data/Item/Combine.hs 149;" C +SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 101;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 163;" C +SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 82;" C +SPEEDLEGS src/Dodge/Data/Item/Combine.hs 132;" C +SPRING src/Dodge/Data/Item/Combine.hs 54;" C SPic src/ShapePicture/Data.hs 9;" t SQUARE src/Dodge/Data/GenParams.hs 18;" C SSBO src/Shader/Data.hs 96;" t SString src/ShortShow.hs 16;" C ST src/Dodge/Data/MetaTree.hs 21;" C -STEELDRUM src/Dodge/Data/Item/Combine.hs 58;" C +STEELDRUM src/Dodge/Data/Item/Combine.hs 59;" C STICKYMOD src/Dodge/Data/Item/Combine.hs 23;" C SaveSlot src/Dodge/Data/SaveSlot.hs 7;" t SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C @@ -1233,7 +1234,7 @@ SlimeIntelligence src/Dodge/Data/ActionPlan.hs 16;" C SlinkCrit src/Dodge/Data/Creature/Misc.hs 69;" C Small src/Shape/Data.hs 27;" C Smoke src/Dodge/Data/Cloud.hs 21;" C -SmokeReducerSF src/Dodge/Data/ComposedItem.hs 28;" C +SmokeReducerSF src/Dodge/Data/ComposedItem.hs 29;" C SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C SolarGovernment src/Dodge/Data/Scenario.hs 53;" C SortCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C @@ -1282,26 +1283,26 @@ 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 81;" C -TAPE src/Dodge/Data/Item/Combine.hs 55;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 80;" C +TAPE src/Dodge/Data/Item/Combine.hs 56;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C TCBase src/Dodge/Data/Terminal.hs 49;" C TCDamageCommand src/Dodge/Data/Terminal.hs 50;" C TCInfo src/Dodge/Data/Terminal.hs 48;" C TCom src/Dodge/Data/Terminal.hs 47;" t TCommands src/Dodge/Terminal.hs 56;" t -TESLACOIL src/Dodge/Data/Item/Combine.hs 168;" C -THERMOMETER src/Dodge/Data/Item/Combine.hs 84;" C +TESLACOIL src/Dodge/Data/Item/Combine.hs 169;" C +THERMOMETER src/Dodge/Data/Item/Combine.hs 85;" C THREELINES src/Dodge/Data/GenParams.hs 18;" C -TIMESCROLLER src/Dodge/Data/Item/Combine.hs 144;" C -TIMESTOPPER src/Dodge/Data/Item/Combine.hs 143;" C -TIN src/Dodge/Data/Item/Combine.hs 57;" C -TINMAG src/Dodge/Data/Item/Combine.hs 108;" C +TIMESCROLLER src/Dodge/Data/Item/Combine.hs 145;" C +TIMESTOPPER src/Dodge/Data/Item/Combine.hs 144;" C +TIN src/Dodge/Data/Item/Combine.hs 58;" C +TINMAG src/Dodge/Data/Item/Combine.hs 109;" C TLine src/Dodge/Data/Terminal.hs 36;" C TO src/Shader/Data.hs 59;" t -TRACTORGUN src/Dodge/Data/Item/Combine.hs 169;" C -TRANSFORMER src/Dodge/Data/Item/Combine.hs 64;" C -TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C +TRACTORGUN src/Dodge/Data/Item/Combine.hs 170;" C +TRANSFORMER src/Dodge/Data/Item/Combine.hs 65;" C +TRANSMITTER src/Dodge/Data/Item/Combine.hs 72;" C TSbackspace src/Dodge/Data/Input.hs 59;" C TSdelete src/Dodge/Data/Input.hs 60;" C TSdown src/Dodge/Data/Input.hs 65;" C @@ -1311,7 +1312,7 @@ TSreturn src/Dodge/Data/Input.hs 58;" C TSright src/Dodge/Data/Input.hs 63;" C TStab src/Dodge/Data/Input.hs 61;" C TSup src/Dodge/Data/Input.hs 64;" C -TUBE src/Dodge/Data/Item/Combine.hs 51;" C +TUBE src/Dodge/Data/Item/Combine.hs 52;" C TabComplete src/Dodge/Terminal.hs 160;" C TabCompletion src/Dodge/Terminal.hs 158;" t TabFail src/Dodge/Terminal.hs 162;" C @@ -1366,18 +1367,18 @@ ToStartMenu src/Sound/Data.hs 27;" C ToStop src/Sound/Data.hs 26;" C Toggle src/Dodge/Data/Universe.hs 110;" C Toggle2 src/Dodge/Data/Universe.hs 114;" C -ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C +ToggleSF src/Dodge/Data/ComposedItem.hs 39;" C TopDT src/Dodge/Data/DoubleTree.hs 26;" C TopMenuOption src/Dodge/Data/Universe.hs 78;" C -TorchSF src/Dodge/Data/ComposedItem.hs 47;" C +TorchSF src/Dodge/Data/ComposedItem.hs 48;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorqueCr src/Dodge/Data/WorldEffect.hs 34;" C TractorBeam src/Dodge/Data/TractorBeam.hs 11;" t TrainingCamp src/Dodge/Data/Scenario.hs 63;" C -TransformerSF src/Dodge/Data/ComposedItem.hs 44;" C +TransformerSF src/Dodge/Data/ComposedItem.hs 45;" C TransporterSS src/Dodge/Data/Scenario.hs 114;" C Trie src/SimpleTrie.hs 10;" t -TriggerSF src/Dodge/Data/ComposedItem.hs 22;" C +TriggerSF src/Dodge/Data/ComposedItem.hs 23;" C TriggerType src/Dodge/Data/TriggerType.hs 7;" t TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C Turn src/Dodge/Data/ActionPlan.hs 31;" C @@ -1391,11 +1392,11 @@ 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 32;" C -UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C +UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 99;" C UNIGATE src/Dodge/Data/Item/Combine.hs 30;" C UintBO src/Shader/Data.hs 91;" t -UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 16;" C -UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 15;" C +UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C +UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 16;" 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 @@ -1403,7 +1404,7 @@ Undesired src/Shape/Data.hs 35;" C UniRandFloat src/Dodge/Data/GenFloat.hs 10;" C Unimportant src/Shape/Data.hs 33;" C Universe src/Dodge/Data/Universe.hs 28;" t -UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C +UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 14;" C UnlockInv src/Dodge/Data/WorldEffect.hs 31;" C UnusedLink src/Dodge/Data/Room.hs 72;" C UpdateRandGen src/Dodge/Data/ActionPlan.hs 51;" C @@ -1440,7 +1441,7 @@ VAO src/Shader/Data.hs 64;" t VBO src/Shader/Data.hs 79;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 19;" C -VOLLEYGUN src/Dodge/Data/Item/Combine.hs 153;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 154;" C VertexAttribute src/Shader/Data.hs 66;" t Verx src/Picture/Data.hs 11;" t View_gr_boundaries src/Dodge/Data/Config.hs 87;" C @@ -1455,11 +1456,11 @@ VocTimer src/Dodge/Data/Creature/Misc.hs 20;" C Vocalization src/Dodge/Data/Creature/Misc.hs 19;" t VolleyGunTrigger src/Dodge/Data/TriggerType.hs 13;" C VolleyUnfiredBarrels src/Dodge/Data/Item/Params.hs 17;" C -WALLDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 186;" C WHITE src/Color/Data.hs 24;" C -WIRE src/Dodge/Data/Item/Combine.hs 86;" C -WRISTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C -WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C +WIRE src/Dodge/Data/Item/Combine.hs 87;" C +WRISTARMOUR src/Dodge/Data/Item/Combine.hs 126;" C +WRIST_ECG src/Dodge/Data/Item/Combine.hs 138;" C WaitThen src/Dodge/Data/ActionPlan.hs 80;" C Walk src/Dodge/Data/ActionPlan.hs 28;" C Walking src/Dodge/Data/Creature/Stance.hs 24;" C @@ -1509,8 +1510,8 @@ WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 39;" C WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 35;" C WdWdSetSoundFilter src/Dodge/Data/WorldEffect.hs 40;" C WdYouPos src/Dodge/Data/WorldEffect.hs 46;" C -WeaponScopeSF src/Dodge/Data/ComposedItem.hs 19;" C -WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 20;" C +WeaponScopeSF src/Dodge/Data/ComposedItem.hs 20;" C +WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 21;" C West src/Dodge/Data/CardinalPoint.hs 10;" C West8 src/Dodge/Data/CardinalPoint.hs 34;" C WlID src/Dodge/Data/CrWlID.hs 10;" C @@ -1520,8 +1521,9 @@ WorldEventFlag src/Dodge/Data/World.hs 31;" t WorldGovernment src/Dodge/Data/Scenario.hs 52;" C XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t YELLOW src/Color/Data.hs 15;" C -ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 92;" C +ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 93;" C ZombieFaction src/Dodge/Data/Creature/State.hs 14;" C +\: src/Geometry/Polygon.hs 238;" o __Just' src/MaybeHelp.hs 11;" f _acAction src/Dodge/Data/ActionPlan.hs 78;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 19;" f @@ -1538,8 +1540,8 @@ _ambushTarget src/Dodge/Data/ActionPlan.hs 136;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 52;" f _ampPayload src/Dodge/Data/Item/Use.hs 51;" f -_amsfLink src/Dodge/Data/ComposedItem.hs 24;" f -_amsfType src/Dodge/Data/ComposedItem.hs 24;" f +_amsfLink src/Dodge/Data/ComposedItem.hs 25;" f +_amsfType src/Dodge/Data/ComposedItem.hs 25;" f _apAction src/Dodge/Data/ActionPlan.hs 19;" f _apGoal src/Dodge/Data/ActionPlan.hs 21;" f _apInt src/Dodge/Data/Item/Use.hs 45;" f @@ -1559,7 +1561,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 83;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 82;" f _bdColor src/Dodge/Data/Prop.hs 23;" f _bdMaxX src/Dodge/Data/Bounds.hs 12;" f _bdMaxY src/Dodge/Data/Bounds.hs 14;" f @@ -1951,10 +1953,10 @@ _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 84;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 84;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 84;" f -_lasWepXSF src/Dodge/Data/ComposedItem.hs 41;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 83;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 83;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 83;" f +_lasWepXSF src/Dodge/Data/ComposedItem.hs 42;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f _lasers src/Dodge/Data/LWorld.hs 117;" f @@ -2114,7 +2116,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 100;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 99;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f _pjDir src/Dodge/Data/Projectile.hs 18;" f @@ -2308,7 +2310,7 @@ _shaderVAO src/Shader/Data.hs 54;" f _shapeEBO src/Data/Preload/Render.hs 29;" f _shapeHalfSize src/Shape/Data.hs 13;" f _shapeShader src/Data/Preload/Render.hs 28;" f -_shellPayload src/Dodge/Data/Item/Combine.hs 102;" f +_shellPayload src/Dodge/Data/Item/Combine.hs 103;" f _shockwaves src/Dodge/Data/LWorld.hs 116;" f _siColor src/Dodge/Data/SelectionList.hs 50;" f _siDisplayMod src/Dodge/Data/SelectionList.hs 53;" f @@ -2325,9 +2327,9 @@ _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 90;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 92;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 91;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 89;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 91;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 90;" f _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f @@ -2335,7 +2337,6 @@ _slimeCompression src/Dodge/Data/Creature/Misc.hs 77;" f _slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 78;" f _slimeRad src/Dodge/Data/Creature/Misc.hs 74;" f _slimeRadWobble src/Dodge/Data/Creature/Misc.hs 75;" f -_slimeResetDir src/Dodge/Data/Creature/Misc.hs 79;" f _slimeSplitTimer src/Dodge/Data/Creature/Misc.hs 76;" f _slinkSpine src/Dodge/Data/Creature/Misc.hs 71;" f _smoothScrollAmount src/Dodge/Data/Input.hs 41;" f @@ -2545,9 +2546,9 @@ _wsBlock src/Dodge/Data/Wall/Structure.hs 15;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 13;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 13;" f _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 +_xNum src/Dodge/Data/Item/Combine.hs 142;" f +_xNum src/Dodge/Data/Item/Combine.hs 152;" f +_xNum src/Dodge/Data/Item/Combine.hs 172;" f _zSpeed src/Dodge/Data/Creature/Stance.hs 27;" f aBar src/Dodge/Placement/Instance/LightSource.hs 70;" f aFlame src/Dodge/Gas.hs 20;" f @@ -2559,7 +2560,7 @@ aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f accessTerminal src/Dodge/WorldEffect.hs 64;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 63;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f -addArmour src/Dodge/Creature.hs 82;" f +addArmour src/Dodge/Creature.hs 77;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f addButtonSlowDoor src/Dodge/Room/LongDoor.hs 101;" f addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 47;" f @@ -2613,7 +2614,7 @@ alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 129;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 130;" f amr src/Dodge/Item/Held/Rod.hs 34;" f anRoom src/Dodge/Floor.hs 116;" f analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f @@ -2693,17 +2694,17 @@ 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 -axisInt src/Geometry/Intersect.hs 246;" f +axisInt src/Geometry/Intersect.hs 247;" f azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 183;" 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 +backpackShape src/Dodge/Item/Draw/SPic.hs 189;" 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 +bangConeShape src/Dodge/Item/Draw/SPic.hs 305;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 659;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f @@ -2711,17 +2712,17 @@ bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f barrelShape src/Dodge/Creature/Picture.hs 377;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 410;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 411;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f -baseCI src/Dodge/Item/Grammar.hs 165;" f +baseCI src/Dodge/Item/Grammar.hs 167;" f baseFloorTileSize src/Tile.hs 46;" f 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 +baseRifleShape src/Dodge/Item/Draw/SPic.hs 325;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 408;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 396;" f baseShoulder src/Dodge/Creature/Picture.hs 364;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 302;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 294;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 137;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 31;" f @@ -2735,7 +2736,7 @@ batteryPack src/Dodge/Item/Equipment.hs 38;" 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 +bgateCalc src/Dodge/Inventory/SelectionList.hs 131;" f bgunSound src/Dodge/HeldUse.hs 540;" f bingate src/Dodge/Item/Scope.hs 115;" f blColor src/Dodge/Block/Debris.hs 54;" f @@ -2793,7 +2794,7 @@ 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 150;" f -btText src/Dodge/Inventory/SelectionList.hs 236;" f +btText src/Dodge/Inventory/SelectionList.hs 252;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPerspectiveMatrixUBO src/Dodge/Render.hs 431;" f bufferPokedVBO src/Shader/Bind.hs 19;" f @@ -2809,7 +2810,7 @@ buttonFlip src/Dodge/Button/Event.hs 18;" f buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 847;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f byNthLink src/Dodge/Room/Warning.hs 44;" f -cChasm src/Dodge/Room/Tutorial.hs 161;" f +cChasm src/Dodge/Room/Tutorial.hs 168;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2848,8 +2849,8 @@ chaseCritInternal src/Dodge/Humanoid.hs 12;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f chaseUpperBody src/Dodge/Creature/Picture.hs 153;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 124;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 398;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 331;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 405;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 338;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 106;" f chasmWallToSurface src/Dodge/Base/Collide.hs 132;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2903,14 +2904,14 @@ clicker src/Dodge/Item/Scope.hs 88;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 234;" f clockCycle src/Dodge/Clock.hs 7;" f -closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f +closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 237;" f closeItemDist src/Dodge/Inventory.hs 149;" f -closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 244;" f +closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 260;" f closeObjectInfo src/Dodge/Render/HUD.hs 228;" f -closestPointOnLine src/Geometry/Intersect.hs 270;" f -closestPointOnLineParam src/Geometry/Intersect.hs 286;" f -closestPointOnSeg src/Geometry/Intersect.hs 301;" f +closestPointOnLine src/Geometry/Intersect.hs 279;" f +closestPointOnLineParam src/Geometry/Intersect.hs 295;" f +closestPointOnSeg src/Geometry/Intersect.hs 310;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 11;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -2955,6 +2956,7 @@ compactDraw src/Dodge/LevelGen.hs 96;" f compactDraw' src/Dodge/LevelGen.hs 107;" f compactDrawTree src/Dodge/LevelGen.hs 90;" f compareLHS src/Geometry/LHS.hs 30;" f +compass src/Dodge/Item/Held/BatteryGuns.hs 38;" f compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 77;" f composeTree src/Dodge/Tree/Compose.hs 48;" f @@ -3042,10 +3044,10 @@ crabCorpse src/Dodge/Creature/Picture.hs 294;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 40;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f crabFeet src/Dodge/Creature/Picture.hs 205;" f -crabRoom src/Dodge/Room/Tutorial.hs 452;" f +crabRoom src/Dodge/Room/Tutorial.hs 459;" f crabUpperBody src/Dodge/Creature/Picture.hs 129;" f craftInfo src/Dodge/Item/Info.hs 168;" f -craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f +craftItemSPic src/Dodge/Item/Draw/SPic.hs 41;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f @@ -3084,6 +3086,9 @@ crystalLine src/Dodge/Placement/Instance/Wall.hs 58;" f cubeShape src/Dodge/Block/Debris.hs 162;" f cullPoint src/Dodge/Render/ShapePicture.hs 117;" f cullPretty src/AesonHelp.hs 14;" f +cutPoly src/Geometry/Polygon.hs 210;" f +cutPolyL src/Geometry/Polygon.hs 217;" f +cutPolyR src/Geometry/Polygon.hs 227;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f cutWalls src/Dodge/LevelGen/StaticWalls.hs 33;" f cutWalls'' src/Dodge/LevelGen/StaticWalls/Deprecated.hs 39;" f @@ -3178,7 +3183,7 @@ 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 +defSPic src/Dodge/Item/Draw/SPic.hs 311;" 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 @@ -3242,7 +3247,7 @@ destroyMounts src/Dodge/Wall/Damage.hs 164;" f destroyProjectile src/Dodge/Projectile/Update.hs 112;" f detV src/Geometry/Vector.hs 102;" f detector src/Dodge/Item/Held/Utility.hs 27;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 435;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 436;" f detectorInfo src/Dodge/Item/Info.hs 224;" f determineProjectileTracking src/Dodge/HeldUse.hs 1216;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f @@ -3259,7 +3264,7 @@ displayControls src/Dodge/Menu.hs 239;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f -displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f +displayPulse src/Dodge/Inventory/SelectionList.hs 192;" f displayTerminalLineString src/Dodge/Update.hs 582;" f dist src/Geometry/Vector.hs 193;" f dist3 src/Geometry/Vector3D.hs 102;" f @@ -3536,7 +3541,7 @@ endRegex src/Dodge/Update/Input/InGame.hs 304;" 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 +epText src/Dodge/Inventory/SelectionList.hs 74;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f @@ -3544,7 +3549,7 @@ equipAllocString src/Dodge/Render/HUD.hs 316;" f equipAttachPos src/Dodge/Item/Draw.hs 30;" f equipBackgroundEffect src/Dodge/Euse.hs 22;" f equipInfo src/Dodge/Item/Info.hs 140;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 160;" f equipPosition src/Dodge/Item/Draw.hs 38;" f equipSiteInfo src/Dodge/Item/Info.hs 252;" f equipSitePQ src/Dodge/Creature/HandPos.hs 33;" f @@ -3572,8 +3577,8 @@ 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 122;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 94;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 103;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 95;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 104;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f @@ -3608,12 +3613,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 398;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 399;" f flareCircleAt src/Dodge/HeldUse.hs 715;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatLookupItems src/Dodge/Combine.hs 39;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 422;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 423;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f floatSize src/Shader/Parameters.hs 17;" f @@ -3627,7 +3632,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 795;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 841;" f -foldMTRS src/Dodge/Room/Tutorial.hs 99;" f +foldMTRS src/Dodge/Room/Tutorial.hs 101;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3643,7 +3648,7 @@ forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f 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 +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 148;" f frag src/Shader/Data.hs 110;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f fromJust' src/MaybeHelp.hs 22;" f @@ -3655,7 +3660,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 278;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f -fuseSlimes src/Dodge/Update.hs 1039;" f +fuseSlimes src/Dodge/Update.hs 1040;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3682,9 +3687,9 @@ geometryTests test/Spec.hs 19;" f geometryUnitTests test/Spec.hs 25;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 152;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 108;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 109;" f getAttachedSFLink src/Dodge/HeldUse.hs 805;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 173;" f getBulletType src/Dodge/HeldUse.hs 937;" f @@ -3692,14 +3697,14 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 543;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 55;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 609;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 596;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 616;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 603;" f getDebugMouseOver src/Dodge/Update.hs 472;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1284;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f -getItemValue src/Dodge/Inventory/SelectionList.hs 144;" f +getItemValue src/Dodge/Inventory/SelectionList.hs 160;" f getLaserDamage src/Dodge/HeldUse.hs 728;" f getLaserPhaseV src/Dodge/HeldUse.hs 725;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f @@ -3710,7 +3715,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 592;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 599;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3736,7 +3741,7 @@ 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 +glauncherPic src/Dodge/Item/Draw/SPic.hs 405;" f gluintSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f grahamEliminate src/Geometry/Polygon.hs 186;" f @@ -3793,7 +3798,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 331;" 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 +headLampShape src/Dodge/Item/Draw/SPic.hs 426;" f headMap src/Dodge/DoubleTree.hs 118;" f headPQ src/Dodge/Creature/HandPos.hs 174;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 639;" f @@ -3812,7 +3817,7 @@ heldItemInvLock src/Dodge/HeldUse.hs 469;" f 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 +heldItemSPic src/Dodge/Item/Draw/SPic.hs 236;" f heldItemWeight src/Dodge/Creature/Statistics.hs 85;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldTorqueAmount src/Dodge/HeldUse.hs 611;" f @@ -3829,10 +3834,10 @@ holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 50;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f -hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f +hotkeyToChar src/Dodge/Inventory/SelectionList.hs 201;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f -hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f -hoverCrit src/Dodge/Creature/ChaseCrit.hs 75;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 198;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 77;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 177;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f @@ -3841,7 +3846,7 @@ iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f inLink src/Dodge/RoomLink.hs 128;" f -inSegArea src/Geometry/Intersect.hs 317;" f +inSegArea src/Geometry/Intersect.hs 326;" f inSimplePoly src/Geometry/Polygon.hs 98;" f inTextInputFocus src/Dodge/InputFocus.hs 8;" f incidenceToFunction src/Dodge/Graph.hs 26;" f @@ -3874,50 +3879,51 @@ insertWithNewKeys src/IntMapHelp.hs 71;" f intAnno src/Dodge/Floor.hs 110;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interpWith src/Dodge/Creature/Boid.hs 13;" f -intersectCircLine src/Geometry/Intersect.hs 352;" f -intersectCircLineAlong src/Geometry/Intersect.hs 343;" f -intersectCircSeg src/Geometry/Intersect.hs 322;" f -intersectCircSegFirst src/Geometry/Intersect.hs 393;" f -intersectCircSegTest src/Geometry/Intersect.hs 385;" f -intersectCylSeg src/Geometry/Intersect.hs 361;" f -intersectLineLine src/Geometry/Intersect.hs 18;" f -intersectLinePlaneAlong src/Geometry/Intersect.hs 27;" f +intersectCircLine src/Geometry/Intersect.hs 361;" f +intersectCircLineAlong src/Geometry/Intersect.hs 352;" f +intersectCircSeg src/Geometry/Intersect.hs 331;" f +intersectCircSegFirst src/Geometry/Intersect.hs 402;" f +intersectCircSegTest src/Geometry/Intersect.hs 394;" f +intersectCylSeg src/Geometry/Intersect.hs 370;" f +intersectLineLine src/Geometry/Intersect.hs 19;" f +intersectLinePlaneAlong src/Geometry/Intersect.hs 28;" f +intersectLinePoly src/Geometry/Intersect.hs 269;" f intersectLinefromScreen src/Dodge/Debug/Picture.hs 96;" f -intersectSegBezquad src/Geometry/Intersect.hs 255;" f -intersectSegLine src/Geometry/Intersect.hs 110;" f -intersectSegPlane src/Geometry/Intersect.hs 34;" f -intersectSegPolyFirst src/Geometry/Intersect.hs 262;" f -intersectSegRay src/Geometry/Intersect.hs 92;" f -intersectSegSeg src/Geometry/Intersect.hs 71;" f -intersectSegSegErrorTest src/Geometry/Intersect.hs 56;" f -intersectSegSegFullTest src/Geometry/Intersect.hs 124;" f -intersectSegSegPreTest src/Geometry/Intersect.hs 155;" f -intersectSegSegTest src/Geometry/Intersect.hs 144;" f -intersectSegSurface src/Geometry/Intersect.hs 40;" f -intersectSegsSeg src/Geometry/Intersect.hs 251;" f +intersectSegBezquad src/Geometry/Intersect.hs 256;" f +intersectSegLine src/Geometry/Intersect.hs 111;" f +intersectSegPlane src/Geometry/Intersect.hs 35;" f +intersectSegPolyFirst src/Geometry/Intersect.hs 263;" f +intersectSegRay src/Geometry/Intersect.hs 93;" f +intersectSegSeg src/Geometry/Intersect.hs 72;" f +intersectSegSegErrorTest src/Geometry/Intersect.hs 57;" f +intersectSegSegFullTest src/Geometry/Intersect.hs 125;" f +intersectSegSegPreTest src/Geometry/Intersect.hs 156;" f +intersectSegSegTest src/Geometry/Intersect.hs 145;" f +intersectSegSurface src/Geometry/Intersect.hs 41;" f +intersectSegsSeg src/Geometry/Intersect.hs 252;" f intervalList src/Geometry.hs 312;" f interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 62;" f -introScanValue src/Dodge/Inventory/SelectionList.hs 77;" f +introScanValue src/Dodge/Inventory/SelectionList.hs 78;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 244;" f +invAdj src/Dodge/Item/Grammar.hs 246;" f invCursorParams src/Dodge/ListDisplayParams.hs 35;" f invDP src/Dodge/ListDisplayParams.hs 32;" f -invDT src/Dodge/Item/Grammar.hs 225;" f -invDT' src/Dodge/Item/Grammar.hs 230;" f +invDT src/Dodge/Item/Grammar.hs 227;" f +invDT' src/Dodge/Item/Grammar.hs 232;" f invDimColor src/Dodge/DisplayInventory.hs 190;" f invHead src/Dodge/Render/HUD.hs 426;" f -invIMDT src/Dodge/Item/Grammar.hs 254;" f -invIndents src/Dodge/Item/Grammar.hs 261;" f +invIMDT src/Dodge/Item/Grammar.hs 256;" f +invIndents src/Dodge/Item/Grammar.hs 263;" f invItemEffs src/Dodge/Creature/State.hs 68;" f invItemLocUpdate src/Dodge/Creature/State.hs 76;" f -invRootMap src/Dodge/Item/Grammar.hs 235;" f -invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f +invRootMap src/Dodge/Item/Grammar.hs 237;" f +invSelectionItem src/Dodge/Inventory/SelectionList.hs 33;" f invSetSelection src/Dodge/Inventory.hs 288;" f invSetSelectionPos src/Dodge/Inventory.hs 296;" f invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f -inventoryX src/Dodge/Creature.hs 111;" f +inventoryX src/Dodge/Creature.hs 106;" f inverseSelNumPos src/Dodge/SelectionSections.hs 211;" f inverseSelSecYint src/Dodge/SelectionSections.hs 179;" f inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 192;" f @@ -3942,7 +3948,7 @@ isLHS src/Geometry/LHS.hs 12;" f isLeftOf src/Geometry.hs 199;" f isLeftOfA src/Geometry.hs 193;" f isMidEdgeLink src/Dodge/RoomLink.hs 55;" f -isNHS src/Geometry/Intersect.hs 53;" f +isNHS src/Geometry/Intersect.hs 54;" f isNothing' src/MaybeHelp.hs 31;" f isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 168;" f @@ -3963,23 +3969,23 @@ itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 81;" f itEffectOnPickup src/Dodge/Item/BackgroundEffect.hs 78;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f itUseCondition src/Dodge/ItemUseCondition.hs 6;" f -itemAboveAttachables src/Dodge/Item/Grammar.hs 37;" f +itemAboveAttachables src/Dodge/Item/Grammar.hs 38;" f itemAimStance src/Dodge/Item/AimStance.hs 11;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 13;" f itemBaseName src/Dodge/Item/Display.hs 60;" f itemBaseStance src/Dodge/Item/AimStance.hs 22;" f -itemBelowAttachables src/Dodge/Item/Grammar.hs 53;" f +itemBelowAttachables src/Dodge/Item/Grammar.hs 54;" f itemBlips src/Dodge/RadarSweep.hs 94;" f itemBulkiness src/Dodge/Creature/YourControl.hs 159;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemDetectorEffect src/Dodge/HeldUse.hs 811;" f -itemDisplay src/Dodge/Inventory/SelectionList.hs 53;" f +itemDisplay src/Dodge/Inventory/SelectionList.hs 54;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f -itemExternalValue src/Dodge/Inventory/SelectionList.hs 82;" f -itemFromAmmoMag src/Dodge/Item.hs 42;" f -itemFromAttachType src/Dodge/Item.hs 51;" f +itemExternalValue src/Dodge/Inventory/SelectionList.hs 83;" f +itemFromAmmoMag src/Dodge/Item.hs 43;" f +itemFromAttachType src/Dodge/Item.hs 52;" f itemFromBase src/Dodge/Item.hs 18;" f -itemFromEquipType src/Dodge/Item.hs 67;" f +itemFromEquipType src/Dodge/Item.hs 68;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 20;" f itemInternalValue src/Dodge/Item/Display.hs 34;" f @@ -3991,8 +3997,8 @@ itemRotTreeSPic src/Dodge/Item/Draw/SPicTree.hs 16;" f itemSPic src/Dodge/Item/Draw/SPic.hs 17;" f itemScan src/Dodge/Item/Scope.hs 68;" f itemScroll src/Dodge/Update/Scroll.hs 55;" f -itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 121;" f -itemScrollValue src/Dodge/Inventory/SelectionList.hs 148;" f +itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 137;" f +itemScrollValue src/Dodge/Inventory/SelectionList.hs 164;" f itemShapeMax src/Dodge/Item/Orientation.hs 68;" f itemShapeMaxX src/Dodge/Item/Orientation.hs 59;" f itemShapeMaxY src/Dodge/Item/Orientation.hs 62;" f @@ -4000,7 +4006,7 @@ itemShapeMaxZ src/Dodge/Item/Orientation.hs 65;" f itemShapeMin src/Dodge/Item/Orientation.hs 74;" f itemSidePush src/Dodge/HeldUse.hs 413;" f itemString src/Dodge/Item/Display.hs 56;" f -itemToFunction src/Dodge/Item/Grammar.hs 111;" f +itemToFunction src/Dodge/Item/Grammar.hs 112;" f itemTreeSPic src/Dodge/Item/Draw/SPicTree.hs 13;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f itemWeight src/Dodge/Creature/Statistics.hs 79;" f @@ -4011,7 +4017,7 @@ itmEquipSiteInfo src/Dodge/Item/Info.hs 249;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 73;" f -joinItemsInList src/Dodge/Item/Grammar.hs 215;" f +joinItemsInList src/Dodge/Item/Grammar.hs 217;" f joystick src/Dodge/Item/Scope.hs 158;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f @@ -4026,10 +4032,10 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 106;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 94;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f -keyPic src/Dodge/Item/Draw/SPic.hs 441;" f +keyPic src/Dodge/Item/Draw/SPic.hs 442;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f -lChasm src/Dodge/Room/Tutorial.hs 173;" f +lChasm src/Dodge/Room/Tutorial.hs 180;" 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 @@ -4041,7 +4047,7 @@ 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 +lasGunPic src/Dodge/Item/Draw/SPic.hs 417;" 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 @@ -4061,15 +4067,15 @@ ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 80;" f leaveResetQuitTerminal src/Dodge/WorldEffect.hs 164;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f -leftChildList src/Dodge/Item/Grammar.hs 193;" f +leftChildList src/Dodge/Item/Grammar.hs 195;" f leftHandPQ src/Dodge/Creature/HandPos.hs 118;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 172;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 205;" f +leftRightCombine src/Dodge/Item/Grammar.hs 207;" f leftWristPQ src/Dodge/Creature/HandPos.hs 146;" f legPQ src/Dodge/Creature/HandPos.hs 152;" f legPQ' src/Dodge/Creature/HandPos.hs 157;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 450;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 451;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 86;" f light src/Color.hs 131;" f @@ -4078,7 +4084,7 @@ lightSensInsideDoor src/Dodge/Room/LasTurret.hs 65;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 34;" f lightsToRender src/Dodge/Render/Lights.hs 12;" f lightx4 src/Color.hs 155;" f -linGrad src/Geometry/Intersect.hs 239;" f +linGrad src/Geometry/Intersect.hs 240;" f line src/Picture/Base.hs 230;" f lineCol src/Picture/Base.hs 234;" f lineGeom src/Dodge/Base.hs 32;" f @@ -4097,7 +4103,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 456;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 463;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4125,7 +4131,7 @@ logMenu src/Dodge/Menu.hs 125;" f logOptions src/Dodge/Menu.hs 140;" f logistic src/Dodge/Base.hs 98;" f longBlockedCorridor src/Dodge/Room/RoadBlock.hs 58;" f -longCrit src/Dodge/Creature.hs 68;" f +longCrit src/Dodge/Creature.hs 63;" f longRoom src/Dodge/Room/LongRoom.hs 22;" f longRoomRunPast src/Dodge/Room/LongRoom.hs 48;" f longestCommonPrefix src/Dodge/Debug/Terminal.hs 145;" f @@ -4140,7 +4146,6 @@ lsColPosID src/Dodge/LightSource.hs 21;" f lsColPosRad src/Dodge/LightSource.hs 30;" f lsPosCol src/Dodge/LightSource.hs 27;" f lsPosRad src/Dodge/LightSource.hs 18;" f -ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 12;" f ltToCol src/Dodge/Laser/Update.hs 37;" f m src/ShortShow.hs 48;" f mAT src/Dodge/Item/MagAmmoType.hs 17;" f @@ -4277,9 +4282,9 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 202;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 224;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 292;" f +midChasm src/Dodge/Room/Tutorial.hs 209;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 231;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 299;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4288,10 +4293,10 @@ 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 595;" f -miniGunCrit src/Dodge/Creature.hs 61;" f +miniGunCrit src/Dodge/Creature.hs 56;" 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 +miniGunXPict src/Dodge/Item/Draw/SPic.hs 376;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 368;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f miniTree2 src/Dodge/Room/Room.hs 127;" f minimumOn src/FoldlHelp.hs 14;" f @@ -4337,7 +4342,7 @@ mtTopLabels src/Dodge/Tree/Compose.hs 51;" f mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f muin src/Dodge/RoomLink.hs 147;" f -multGunCrit src/Dodge/Creature.hs 75;" f +multGunCrit src/Dodge/Creature.hs 70;" f multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrieI src/SimpleTrie.hs 66;" f @@ -4358,8 +4363,8 @@ mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointToward src/Dodge/Base.hs 136;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvProp src/Dodge/Placement/PlaceSpot.hs 167;" f -myIntersectLineLine src/Geometry/Intersect.hs 196;" f -myIntersectSegSeg src/Geometry/Intersect.hs 174;" f +myIntersectLineLine src/Geometry/Intersect.hs 197;" f +myIntersectSegSeg src/Geometry/Intersect.hs 175;" f nRays src/Geometry.hs 182;" f nRaysRad src/Geometry.hs 186;" f nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f @@ -4382,7 +4387,7 @@ noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f -nonConvexChasm src/Dodge/Room/Tutorial.hs 289;" f +nonConvexChasm src/Dodge/Room/Tutorial.hs 296;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 148;" f normalTo8 src/Shader/Poke.hs 475;" f @@ -4427,7 +4432,7 @@ orderPolygonAround src/Geometry/Polygon.hs 116;" f orientAttachment src/Dodge/Item/Orientation.hs 80;" f orientByParentChSF src/Dodge/Item/Orientation.hs 35;" f orientChild src/Dodge/Item/Orientation.hs 19;" f -orthogonalPointOnSeg src/Geometry/Intersect.hs 310;" f +orthogonalPointOnSeg src/Geometry/Intersect.hs 319;" f outLink src/Dodge/RoomLink.hs 120;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outwardIntegers src/Dodge/Base.hs 181;" f @@ -4459,7 +4464,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 674;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 681;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4565,8 +4570,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 376;" f -polyChasmC src/Dodge/Room/Tutorial.hs 388;" f +polyChasm src/Dodge/Room/Tutorial.hs 383;" f +polyChasmC src/Dodge/Room/Tutorial.hs 395;" f polyCirc src/Shape.hs 48;" f polyCircx src/Shape.hs 53;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4658,7 +4663,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 490;" f +putSingleLight src/Dodge/Room/Tutorial.hs 497;" 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 @@ -4680,6 +4685,7 @@ qz src/Quaternion.hs 81;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f +radToCompass src/Dodge/Inventory/SelectionList.hs 111;" f radToDeg src/Geometry/Vector.hs 131;" f radiusSpring src/Dodge/Update.hs 973;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f @@ -4718,7 +4724,7 @@ randomTank src/Dodge/Room/Tanks.hs 20;" f randomTreeStructure src/Dodge/Layout/Generate.hs 19;" f randsOnCirc src/RandomHelp.hs 146;" f randsSpread src/RandomHelp.hs 139;" f -ratIntersectLineLine src/Geometry/Intersect.hs 214;" f +ratIntersectLineLine src/Geometry/Intersect.hs 215;" f rdToVec2s src/Dodge/Render.hs 426;" f readSaveSlot src/Dodge/Save.hs 45;" f recComFindMax src/Dodge/Terminal.hs 174;" f @@ -4803,14 +4809,14 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 69;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f right src/DoubleStack.hs 16;" f -rightChildList src/Dodge/Item/Grammar.hs 199;" f +rightChildList src/Dodge/Item/Grammar.hs 201;" f rightHandPQ src/Dodge/Creature/HandPos.hs 64;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 183;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rightWristPQ src/Dodge/Creature/HandPos.hs 115;" f rlPosDir src/Dodge/RoomLink.hs 112;" f -rlauncherPic src/Dodge/Item/Draw/SPic.hs 401;" f +rlauncherPic src/Dodge/Item/Draw/SPic.hs 402;" f rmInLinks src/Dodge/RoomLink.hs 153;" f rmInvItem src/Dodge/Inventory.hs 84;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f @@ -4858,7 +4864,7 @@ rotateToZ src/Quaternion.hs 38;" f rotateV src/Geometry/Vector.hs 114;" f rotateVAround src/Geometry/Vector.hs 121;" f rotateXY src/Polyhedra.hs 28;" f -roundPoint2 src/Geometry/Intersect.hs 235;" f +roundPoint2 src/Geometry/Intersect.hs 236;" f roundTank src/Dodge/Placement/Instance/Tank.hs 26;" f roundTankCross src/Dodge/Placement/Instance/Tank.hs 32;" f rpIsOffGrid src/Dodge/PlacementSpot.hs 83;" f @@ -4945,12 +4951,9 @@ sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f sensorSPic src/Dodge/Machine/Draw.hs 89;" f -sensorTut src/Dodge/Room/Tutorial.hs 618;" f +sensorTut src/Dodge/Room/Tutorial.hs 625;" 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 -sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f -sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setChannelPos src/Sound.hs 152;" f setClickWorldPos src/Dodge/Update.hs 110;" f setClip src/Dodge/Debug.hs 239;" f @@ -4976,10 +4979,11 @@ setSelWhileDragging src/Dodge/Update/Input/InGame.hs 360;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f +setSlimeDir src/Dodge/Creature/Update.hs 104;" f setSoundVolume src/Sound.hs 159;" f setTile src/Dodge/Layout.hs 78;" f setTiles src/Dodge/Layout.hs 68;" f -setTreeInts src/Dodge/Room/Tutorial.hs 106;" f +setTreeInts src/Dodge/Room/Tutorial.hs 108;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 71;" f setViewport src/Dodge/Render.hs 448;" f @@ -5001,7 +5005,7 @@ shapeBounds src/Dodge/Room/Foreground.hs 147;" f shapePoints src/Dodge/Room/Foreground.hs 144;" f shapeVerxSize src/Shape/Parameters.hs 5;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 313;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 314;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f shellHitCreature src/Dodge/Projectile/Update.hs 84;" f shellHitFloor src/Dodge/Projectile/Update.hs 98;" f @@ -5052,15 +5056,15 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" 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 +showAttachItem src/Dodge/Item/Display.hs 93;" f +showEquipItem src/Dodge/Item/Display.hs 109;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f -showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 109;" f +showInventoryPathing src/Dodge/Item/Display.hs 87;" f +showManObj src/Dodge/TestString.hs 110;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 126;" f +showTimeFlow src/Dodge/TestString.hs 127;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5151,7 +5155,7 @@ sparkDam src/Dodge/Spark.hs 37;" f sparkRandDir src/Dodge/Spark.hs 117;" f sparkToDamage src/Dodge/Spark.hs 40;" f spawnAt src/Dodge/SpawnAt.hs 14;" f -spawnerCrit src/Dodge/Creature.hs 54;" f +spawnerCrit src/Dodge/Creature.hs 49;" f spawnerRoom src/Dodge/Room/Room.hs 390;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f spiderJoint src/Dodge/Creature/Picture.hs 239;" f @@ -5171,8 +5175,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 253;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 268;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 260;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 275;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f @@ -5196,13 +5200,13 @@ ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 95;" f stackPicturesAtOff src/Dodge/Render/List.hs 98;" f stackText src/Picture/Base.hs 180;" f -stackedInventory src/Dodge/Creature.hs 326;" f -startCr src/Dodge/Creature.hs 90;" f +stackedInventory src/Dodge/Creature.hs 321;" f +startCr src/Dodge/Creature.hs 85;" f startCrafts src/Dodge/Room/Start.hs 94;" f startDeathTimer src/Dodge/Creature/Update.hs 241;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f -startInvList src/Dodge/Creature.hs 105;" f -startInventory src/Dodge/Creature.hs 108;" f +startInvList src/Dodge/Creature.hs 100;" f +startInventory src/Dodge/Creature.hs 103;" f startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f startPara src/Dodge/StartNewGame.hs 29;" f startRoom src/Dodge/Room/Start.hs 53;" f @@ -5287,10 +5291,10 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 42;" 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 +teslaGunPic src/Dodge/Item/Draw/SPic.hs 414;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 18;" f testEvent src/Dodge/Event/Test.hs 11;" f -testInventory src/Dodge/Creature.hs 307;" f +testInventory src/Dodge/Creature.hs 302;" f testPic src/Dodge/Render/ShapePicture.hs 57;" f testSPic src/Dodge/Render/ShapePicture.hs 54;" f testStringInit src/Dodge/TestString.hs 44;" f @@ -5347,7 +5351,7 @@ tmDistributeAmmo src/Dodge/WorldEffect.hs 118;" f tmDistributeLines src/Dodge/Room/Room.hs 474;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f tmScreenMousePos src/Dodge/Update.hs 464;" f -toBinary src/Dodge/Inventory/SelectionList.hs 138;" f +toBinary src/Dodge/Inventory/SelectionList.hs 154;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f @@ -5375,16 +5379,16 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f topPrismEdgeIndices src/Shader/Poke.hs 344;" f topPrismIndices src/Shader/Poke.hs 419;" f -topTestPart src/Dodge/TestString.hs 104;" f -torchShape src/Dodge/Item/Draw/SPic.hs 277;" f +topTestPart src/Dodge/TestString.hs 105;" f +torchShape src/Dodge/Item/Draw/SPic.hs 278;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f torso src/Dodge/Creature/Picture.hs 354;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f -tractorGun src/Dodge/Item/Held/BatteryGuns.hs 39;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 419;" f +tractorGun src/Dodge/Item/Held/BatteryGuns.hs 42;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 420;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 116;" f @@ -5420,14 +5424,14 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 22;" f treePath src/Dodge/Tree/GenerateStructure.hs 13;" f treePaths src/TreeHelp.hs 141;" f treePost src/TreeHelp.hs 47;" f -treeToPotentialFunction src/Dodge/Item/Grammar.hs 148;" f +treeToPotentialFunction src/Dodge/Item/Grammar.hs 150;" f triLootRoom src/Dodge/Room/Treasure.hs 23;" f triangulateEarClip src/Geometry/Polygon.hs 162;" f triggerDoorRoom src/Dodge/Room/Door.hs 32;" f truncFaces src/Polyhedra/Geodesic.hs 54;" f truncate src/Polyhedra/Geodesic.hs 39;" f trunkDepth src/TreeHelp.hs 164;" f -tryAttachItems src/Dodge/Item/Grammar.hs 34;" f +tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryClickUse src/Dodge/Creature/YourControl.hs 207;" f tryCombine src/Dodge/Update/Input/InGame.hs 555;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 156;" f @@ -5448,12 +5452,12 @@ tryUseParent src/Dodge/Creature/State.hs 150;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f -tutDrop src/Dodge/Room/Tutorial.hs 111;" f -tutHub src/Dodge/Room/Tutorial.hs 516;" f -tutLight src/Dodge/Room/Tutorial.hs 420;" f -tutRezBox src/Dodge/Room/Tutorial.hs 629;" f +tutDrop src/Dodge/Room/Tutorial.hs 113;" f +tutHub src/Dodge/Room/Tutorial.hs 523;" f +tutLight src/Dodge/Room/Tutorial.hs 427;" f +tutRezBox src/Dodge/Room/Tutorial.hs 636;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 654;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 661;" f tweenAngles src/Geometry/Vector.hs 198;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5467,7 +5471,7 @@ 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 +ugateCalc src/Dodge/Inventory/SelectionList.hs 125;" f uncurryV src/Geometry/Data.hs 66;" f underBarrelSlot src/Dodge/Item/Scope.hs 176;" f unfoldrMID src/MonadHelp.hs 33;" f @@ -5551,7 +5555,7 @@ updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 414;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 12;" f updateLasers src/Dodge/Update.hs 513;" f -updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f +updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 48;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f @@ -5581,7 +5585,7 @@ updateRadarSweep src/Dodge/RadarSweep.hs 40;" f updateRadarSweeps src/Dodge/Update.hs 767;" f updateRandNode src/TreeHelp.hs 111;" f updateRenderSplit appDodge/Main.hs 104;" f -updateRightParentSF src/Dodge/Item/Grammar.hs 188;" f +updateRightParentSF src/Dodge/Item/Grammar.hs 190;" f updateRootItemID src/Dodge/Inventory/Location.hs 42;" f updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f @@ -5679,7 +5683,7 @@ violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 236;" 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 +volleyGunShape src/Dodge/Item/Draw/SPic.hs 356;" f walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 66;" f walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 90;" f @@ -5762,7 +5766,7 @@ 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 -xChasm src/Dodge/Room/Tutorial.hs 145;" f +xChasm src/Dodge/Room/Tutorial.hs 147;" f xCylinder src/Shape.hs 129;" f xCylinderST src/Shape.hs 126;" f xIntercepts src/Dodge/Zoning/Base.hs 66;" f @@ -5784,7 +5788,7 @@ yourRootItem src/Dodge/Base/You.hs 26;" f yourRootItemDT src/Dodge/Base/You.hs 32;" f yourSelectedItem src/Dodge/Base/You.hs 20;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 186;" f +zChasm src/Dodge/Room/Tutorial.hs 193;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f