From 4cacb45252d4da91fbbb7e7acb837aeb25bda9e9 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 17 Mar 2026 15:16:24 +0000 Subject: [PATCH] Allow for pump attachment to flamethrower --- src/Dodge/BaseTriggerType.hs | 3 +- src/Dodge/Creature.hs | 1 + src/Dodge/Creature/Impulse/UseItem.hs | 1 + src/Dodge/Data/ComposedItem.hs | 2 + src/Dodge/Data/Item/Combine.hs | 1 + src/Dodge/Data/Muzzle.hs | 1 + src/Dodge/Debug.hs | 3 +- src/Dodge/HeldUse.hs | 41 +- src/Dodge/Item.hs | 1 + src/Dodge/Item/Ammo.hs | 8 + src/Dodge/Item/Display.hs | 1 + src/Dodge/Item/Grammar.hs | 12 +- src/Dodge/Item/InventoryColor.hs | 2 + src/Dodge/Material/Damage.hs | 5 +- src/Dodge/Room/LasTurret.hs | 6 +- src/Dodge/Room/Tutorial.hs | 2 +- src/Dodge/Update.hs | 3 +- tags | 614 +++++++++++++------------- 18 files changed, 384 insertions(+), 323 deletions(-) diff --git a/src/Dodge/BaseTriggerType.hs b/src/Dodge/BaseTriggerType.hs index f211dda3d..882eecd50 100644 --- a/src/Dodge/BaseTriggerType.hs +++ b/src/Dodge/BaseTriggerType.hs @@ -21,7 +21,8 @@ itemTriggerType loc baseItemTriggerType :: Item -> TriggerType baseItemTriggerType itm = case itm ^. itType of HELD hit -> heldTriggerType hit - ATTACH CAPACITOR -> AutoTrigger 10 + ATTACH CAPACITOR -> AutoTrigger 0 +-- ATTACH CAPACITOR -> AutoTrigger 10 _ -> NoTrigger heldTriggerType :: HeldItemType -> TriggerType diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 6f5739ced..126736773 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -114,6 +114,7 @@ inventoryX c = case c of [introScan t | t <- [minBound..maxBound]] <> [ flameThrower , chemFuelPouch + , makeTypeCraft PUMP , fuelPack , copier ABSOLUTE , nulgate diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 820ff5eb6..a535f224d 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -53,6 +53,7 @@ useItemLoc cr loc pt w | LaserWeaponSF <- sf = True | HeldPlatformSF <- sf = True | PulseBallSF <- sf = True + | PlasmaSF <- sf = True | UnderBarrelPlatformSF <- sf = True | otherwise = False sf = loc ^. locDT . dtValue . _2 diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 9fc31b9b3..90f586b37 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -42,7 +42,9 @@ data ItemSF -- Structural Function | CapacitorSF | TransformerSF | PulseBallSF + | PlasmaSF | TorchSF + | PumpSF deriving (Eq, Ord, Show, Read) type CItem = (Item, ItemSF) diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index db0a20f30..973dd014f 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -100,6 +100,7 @@ data AttachType | HOMINGMODULE | SHELLPAYLOAD {_shellPayload :: Payload} | CAPACITOR + | COMPRESSOR deriving (Eq, Ord, Show, Read) data AmmoMagType diff --git a/src/Dodge/Data/Muzzle.hs b/src/Dodge/Data/Muzzle.hs index 77ea5aa6b..0e363eb8d 100644 --- a/src/Dodge/Data/Muzzle.hs +++ b/src/Dodge/Data/Muzzle.hs @@ -40,6 +40,7 @@ data MuzzleEffect | MuzzleLaser | MuzzlePulseLaser | MuzzlePulseBall + | MuzzlePlasmaBall | MuzzleTesla | MuzzleTractor | MuzzleRLauncher diff --git a/src/Dodge/Debug.hs b/src/Dodge/Debug.hs index ce6362f9d..b04f3d2bd 100644 --- a/src/Dodge/Debug.hs +++ b/src/Dodge/Debug.hs @@ -4,7 +4,6 @@ module Dodge.Debug (debugEvents, drawDebug) where import Geometry.Data import Dodge.Render.Label -import Dodge.Data.DoubleTree import Dodge.HeldUse import Dodge.DoubleTree import Dodge.Item.Grammar @@ -260,7 +259,7 @@ showMuzzlePositions u = fold $ do ^? ix invid . _2 return . color red $ setLayer DebugLayer $ reduceLocDT (f cr) loc where - f cr loc = foldMap (g . muzzlePos loc cr) (itemMuzzles $ loc ^. locDT . dtValue . _1) + f cr loc = foldMap (g . muzzlePos loc cr) (itemMuzzles $ loc) where g :: Point3Q -> Picture g pq = translate3 (pq ^. _1) $ crossPic 5 diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 837ec1279..51bd9b677 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -50,6 +50,7 @@ gadgetEffect :: Int -> LocationDT OItem -> Creature -> World -> World gadgetEffect pt loc | UseHeld{} <- loc ^. locDT . dtValue . _1 . itUse = heldEffect pt loc | PulseBallSF <- loc ^. locDT . dtValue . _2 = heldEffect pt loc + | PlasmaSF <- loc ^. locDT . dtValue . _2 = heldEffect pt loc | DROPPER x <- loc ^. locDT . dtValue . _1 . itType , Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt , pt == 0 = @@ -153,17 +154,24 @@ locMuzzles loc & ix 0 . mzFlareType .~ TeslaGunFlare & ix 0 . mzEffect .~ MuzzlePulseLaser & ix 0 . mzAmmoSlot .~ CapacitorBelow (UseExactly 200) + | PlasmaSF <- loc ^. locDT . dtValue . _2 = + dbwMuzzles + & ix 0 . mzEffect .~ MuzzlePlasmaBall + & ix 0 . mzAmmoSlot .~ CapacitorSelf (UseExactly 1) + & ix 0 . mzInaccuracy .~ 0 + & ix 0 . mzFlareType .~ TeslaGunFlare | PulseBallSF <- loc ^. locDT . dtValue . _2 = dbwMuzzles & ix 0 . mzEffect .~ MuzzlePulseBall & ix 0 . mzAmmoSlot .~ CapacitorSelf (UseExactly 200) & ix 0 . mzInaccuracy .~ 0 & ix 0 . mzFlareType .~ TeslaGunFlare - | otherwise = itemMuzzles $ loc ^. locDT . dtValue . _1 +-- | otherwise = itemMuzzles $ loc ^. locDT . dtValue . _1 + | otherwise = itemMuzzles $ loc -itemMuzzles :: Item -> [Muzzle] -itemMuzzles itm = case itm ^. itType of - HELD hit -> heldItemMuzzles itm hit +itemMuzzles :: LocationDT OItem -> [Muzzle] +itemMuzzles loc = case itm ^. itType of + HELD hit -> heldItemMuzzles loc hit DETECTOR{} -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector & ix 0 . mzAmmoSlot . aps .~ UseExactly 100 @@ -174,9 +182,11 @@ itemMuzzles itm = case itm ^. itType of & ix 0 . mzFlareType .~ LasGunFlare & ix 0 . mzEffect .~ MuzzleLaser _ -> [] + where + itm = loc ^. locDT . dtValue . _1 -heldItemMuzzles :: Item -> HeldItemType -> [Muzzle] -heldItemMuzzles itm = \case +heldItemMuzzles :: LocationDT OItem -> HeldItemType -> [Muzzle] +heldItemMuzzles loc = \case ALTERIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzAmmoSlot .~ MagBelow (_alteRifleSwitch (_itParams itm)) (UseExactly 1) @@ -246,6 +256,8 @@ heldItemMuzzles itm = \case BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 magupto15 BasicFlare MuzzleShootBullet 12] GRAPECANNON i -> [Muzzle (V2 30 0) 0 0.5 magupto15 BasicFlare MuzzleShootBullet (12 + 4 * fromIntegral i)] LED -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0 + FLAMETHROWER | Just PumpSF <- loc ^? locDT. dtRight . ix 0 . dtValue ._2 + -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 2 8 FLAMETHROWER -> flameMuzzles FLAMESPITTER -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 3 4 RLAUNCHER -> @@ -318,6 +330,7 @@ heldItemMuzzles itm = \case where maguse1 = MagBelow 0 (UseExactly 1) magupto15 = MagBelow 0 (UseUpTo 15) + itm = loc ^. locDT . dtValue . _1 baseStickSpread :: Float baseStickSpread = 0.2 @@ -334,7 +347,8 @@ flameMuzzles = (MagBelow 0 (UseExactly 1)) NoFlare MuzzleNozzle - { _nzPressure = ConstFloat 4 + --{ _nzPressure = ConstFloat 4 + { _nzPressure = UniRandFloat 3.5 4 , _nzMaxWalkAngle = 0.2 , _nzWalkSpeed = 0.01 } @@ -728,6 +742,7 @@ useLoadedAmmo loc cr mz m w = MuzzleLaser -> creatureShootLaser pq' loc (w & randGen .~ g) MuzzlePulseLaser -> creatureShootPulseLaser pq' cr (w & randGen .~ g) MuzzlePulseBall -> shootPulseBall pq' (w & randGen .~ g) + MuzzlePlasmaBall -> shootPlasmaBall pq' (w & randGen .~ g) MuzzleTesla -> shootTeslaArc pq' loc (w & randGen .~ g) MuzzleTractor -> shootTractorBeam cr w MuzzleRLauncher -> createProjectileR pq loc magtree cr w @@ -888,6 +903,18 @@ shootPulseLaser so p dir w = } & soundStart so p lasPulseS Nothing +shootPlasmaBall :: Point3Q -> World -> World +shootPlasmaBall (p, q) w = + w + & cWorld . lWorld . plasmaBalls .:~ + PBall + { _pbPos = p ^. _xy + , _pbVel = 6 * unitVectorAtAngle (Q.qToAng q) + , _pbType = DefaultPlasma + } +-- & soundStart (PBSound i) (p ^. _xy) energyReleaseS Nothing + + shootPulseBall :: Point3Q -> World -> World shootPulseBall (p, q) w = w diff --git a/src/Dodge/Item.hs b/src/Dodge/Item.hs index 25b8f9c67..749891616 100644 --- a/src/Dodge/Item.hs +++ b/src/Dodge/Item.hs @@ -62,6 +62,7 @@ itemFromAttachType = \case HOMINGMODULE -> homingModule SHELLPAYLOAD p -> shellModule p CAPACITOR -> capacitor + COMPRESSOR -> compressor itemFromEquipType :: EquipItemType -> Item itemFromEquipType et = case et of diff --git a/src/Dodge/Item/Ammo.hs b/src/Dodge/Item/Ammo.hs index 359b9bf69..8a0e57c6b 100644 --- a/src/Dodge/Item/Ammo.hs +++ b/src/Dodge/Item/Ammo.hs @@ -11,6 +11,7 @@ module Dodge.Item.Ammo ( megaTinMag, megaBattery, capacitor, + compressor, ) where import Control.Lens @@ -70,6 +71,13 @@ capacitor = & itUse .~ UseNothing & itConsumables ?~ 0 +compressor :: Item +compressor = + defHeldItem + & itType .~ ATTACH COMPRESSOR + & itUse .~ UseNothing + & itConsumables ?~ 0 + chemFuelPouch :: Item chemFuelPouch = defHeldItem diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 20c6051ab..834e34dd3 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -103,6 +103,7 @@ showAttachItem = \case GIMBAL -> "GIMBAL" GYROSCOPE -> "GYROSCOPE" CAPACITOR -> "CAPACITOR" + COMPRESSOR -> "COMPRESSOR" showEquipItem :: EquipItemType -> String showEquipItem eit = case eit of diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 7786eb891..b3253cca2 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -36,16 +36,19 @@ tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine itemAboveAttachables :: CItem -> [ItemSF] itemAboveAttachables (itm,sf) = case (itm ^. itType, sf) of - (_, HeldPlatformSF) -> - [WeaponTargetingSF, WeaponScopeSF,TorchSF] - <> getAutoSpringLinks itm - <> extraWeaponLinks itm + (HELD FLAMETHROWER,_) -> PumpSF:helddefaults + (_, HeldPlatformSF) -> helddefaults (DETECTOR {}, _) -> [ARHUDSF,TriggerSF,MapperSF] --(CRAFT TRANSFORMER, _) -> [LaserWeaponSF] (LASER, _) -> [TransformerSF] (MAPPER, _) -> [ARHUDSF] (_, GadgetPlatformSF) -> [TriggerSF, WeaponTargetingSF, WeaponScopeSF] _ -> [] + where + helddefaults = + [WeaponTargetingSF, WeaponScopeSF,TorchSF] + <> getAutoSpringLinks itm + <> extraWeaponLinks itm itemBelowAttachables :: CItem -> [ItemSF] itemBelowAttachables (itm,sf) = case (itm ^. itType, sf) of @@ -138,6 +141,7 @@ itemToFunction itm = case itm ^. itType of CLICKER{} -> GadgetPlatformSF ATTACH CAPACITOR -> CapacitorSF CRAFT TRANSFORMER -> TransformerSF + CRAFT PUMP -> PumpSF _ -> NoSF treeToPotentialFunction :: DTree CItem -> S.Set ItemSF diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index e13adc8ca..4807f3272 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -42,7 +42,9 @@ sfInvColor = \case PulseLaserSF -> white CapacitorSF -> yellow PulseBallSF -> white + PlasmaSF -> white TransformerSF -> yellow + PumpSF -> yellow TorchSF{} -> green --ammoTypeColor :: AmmoType -> Color diff --git a/src/Dodge/Material/Damage.hs b/src/Dodge/Material/Damage.hs index ce71035a4..78a58ddd0 100644 --- a/src/Dodge/Material/Damage.hs +++ b/src/Dodge/Material/Damage.hs @@ -30,8 +30,9 @@ damMatSideEffect dm = \case defDamageMaterial :: Damage -> ECW -> World -> (Int,World) defDamageMaterial dm _ = (dm ^. dmAmount,) -laserSpark x y -- = makeSpark FireSpark x y - = id +laserSpark :: Point2 -> Float -> World -> World +--laserSpark x y = makeSpark FireSpark x y +laserSpark = makeSpark FireSpark damageStone :: Damage -> ECW -> World -> (Int,World) damageStone dm ecw w = case dm of diff --git a/src/Dodge/Room/LasTurret.hs b/src/Dodge/Room/LasTurret.hs index 481ae707a..b58214b83 100644 --- a/src/Dodge/Room/LasTurret.hs +++ b/src/Dodge/Room/LasTurret.hs @@ -13,8 +13,10 @@ module Dodge.Room.LasTurret ( lasCenRunClose', lasCenRunClose1, lasCenRunCloseLongCor, + lasRunRand, ) where +import Control.Monad import Data.Foldable (fold) import Dodge.Room.Path import Dodge.Room.Procedural @@ -314,7 +316,6 @@ lasCenRunCloseLongCor = do llinks = memtest (FromEdge South 1) (OnEdge West) rlinks = memtest (FromEdge South 1) (OnEdge East) awall x v = heightWallPS (PS x 0) 30 v - etest f g x = f x || g x memtest a b x = let y = _rlType x in a `S.member` y && b `S.member` y @@ -370,6 +371,9 @@ lasCenRunClose1 = do memtest a b x = let y = _rlType x in a `S.member` y && b `S.member` y +lasRunRand :: (RandomGen g) => State g (MetaTree Room String) +lasRunRand = join $ takeOne [lasCenRunClose2,lasCenRunClose1] + lasCenRunClose2 :: (RandomGen g) => State g (MetaTree Room String) lasCenRunClose2 = do (alinks,blinks) <- shufflePair (bllinks,trlinks) diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 169ecd1e2..efa5643e2 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -55,7 +55,7 @@ tutAnoTree = do -- , return . tToBTree "door" $ treePost [corridor, cleatOnward door] , corDoor -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) - , lasRunYinYang + , lasRunRand -- , passthroughLockKeyLists lockRoomKeyItems itemRooms , tToBTree "door" . return <$> return (cleatOnward door) , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 998c51824..780aa8ea9 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -6,7 +6,6 @@ module Dodge.Update (updateUniverse) where import Data.Function (on) import Dodge.Zoning.Wall import Bound -import Dodge.Data.DoubleTree import Dodge.HeldUse import Dodge.DoubleTree import Dodge.Item.Grammar @@ -337,7 +336,7 @@ muzzleWallCheck w cr = fromMaybe cr $ do else let v = minimumBy (compare `on` norm) vs in cr & crPos . _xy +~ normalize v where - f loc = map (muzzlePos loc cr) (itemMuzzles $ loc ^. locDT . dtValue . _1) + f loc = map (muzzlePos loc cr) (itemMuzzles $ loc) g cp wls p = case collidePoint cp p wls of (ep,Just _) -> Just (ep - p) _ -> Nothing diff --git a/tags b/tags index 6ce85168b..327459bcb 100644 --- a/tags +++ b/tags @@ -20,9 +20,9 @@ <$> src/Dodge/Data/Terminal.hs 69;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C AIUNIT src/Dodge/Data/Item/Combine.hs 74;" C -ALTERIFLE src/Dodge/Data/Item/Combine.hs 153;" C +ALTERIFLE src/Dodge/Data/Item/Combine.hs 154;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 20;" C -AMR src/Dodge/Data/Item/Combine.hs 158;" C +AMR src/Dodge/Data/Item/Combine.hs 159;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 68;" C APInt src/Dodge/Data/Item/Use.hs 45;" C APNothing src/Dodge/Data/Item/Use.hs 46;" C @@ -31,9 +31,9 @@ AQUAMARINE src/Color/Data.hs 21;" C ARHUD src/Dodge/Data/Item/Combine.hs 34;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 23;" C ATTACH src/Dodge/Data/Item/Combine.hs 19;" C -AUTOAMR src/Dodge/Data/Item/Combine.hs 159;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 145;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 154;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 160;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 146;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 155;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C Action src/Dodge/Data/ActionPlan.hs 65;" t @@ -51,11 +51,11 @@ Ambush src/Dodge/Data/ActionPlan.hs 130;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C -AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t +AmmoMagType src/Dodge/Data/Item/Combine.hs 106;" t AmmoModifierSF src/Dodge/Data/ComposedItem.hs 30;" C AmmoParams src/Dodge/Data/Item/Use.hs 49;" t AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C -AmmoPerShot src/Dodge/Data/Muzzle.hs 61;" t +AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 119;" C @@ -79,26 +79,26 @@ AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C Avatar src/Dodge/Data/Creature/Misc.hs 59;" C AvatarDead src/Dodge/Data/Creature/Misc.hs 67;" C Awareness src/Dodge/Data/Creature/Perception.hs 63;" t -BANGCONE src/Dodge/Data/Item/Combine.hs 147;" C -BANGROD src/Dodge/Data/Item/Combine.hs 156;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 139;" C -BATTERY src/Dodge/Data/Item/Combine.hs 110;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 134;" C -BELTMAG src/Dodge/Data/Item/Combine.hs 108;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 148;" C +BANGROD src/Dodge/Data/Item/Combine.hs 157;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 140;" C +BATTERY src/Dodge/Data/Item/Combine.hs 111;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 135;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 109;" C BINGATE src/Dodge/Data/Item/Combine.hs 31;" C BLACK src/Color/Data.hs 25;" C -BLINKER src/Dodge/Data/Item/Combine.hs 177;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 178;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 165;" 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 166;" C BLUE src/Color/Data.hs 14;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 148;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 149;" C BQuad src/Geometry/Bezier.hs 9;" t -BRAINHAT src/Dodge/Data/Item/Combine.hs 125;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 133;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 132;" C +BRAINHAT src/Dodge/Data/Item/Combine.hs 126;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 134;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 133;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 22;" C BULLETSYNTH src/Dodge/Data/Item/Combine.hs 92;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 155;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 156;" C BackdropCurs src/Dodge/Data/SelectionList.hs 22;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 39;" C @@ -168,13 +168,14 @@ CAMERA src/Dodge/Data/Item/Combine.hs 75;" C CAN src/Dodge/Data/Item/Combine.hs 56;" C CAPACITOR src/Dodge/Data/Item/Combine.hs 102;" C CHARTREUSE src/Color/Data.hs 22;" C -CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C +CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 112;" C CIRCLE src/Dodge/Data/GenParams.hs 18;" C -CItem src/Dodge/Data/ComposedItem.hs 48;" t +CItem src/Dodge/Data/ComposedItem.hs 50;" t CLICKER src/Dodge/Data/Item/Combine.hs 27;" C +COMPRESSOR src/Dodge/Data/Item/Combine.hs 103;" 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 183;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 184;" C CREATURESENSOR src/Dodge/Data/Item/Combine.hs 84;" C CWGen src/Dodge/Data/CWorld.hs 39;" t CWorld src/Dodge/Data/CWorld.hs 23;" t @@ -229,7 +230,7 @@ ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 11;" C Config src/Dodge/Data/Config.hs 48;" t ConstFloat src/Dodge/Data/GenFloat.hs 9;" C -ConsumableItemType src/Dodge/Data/Item/Combine.hs 114;" t +ConsumableItemType src/Dodge/Data/Item/Combine.hs 115;" t ContextDT src/Dodge/Data/DoubleTree.hs 82;" t ContextLDT src/Dodge/Data/DoubleTree.hs 40;" t ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C @@ -286,11 +287,11 @@ CursorDisplay src/Dodge/Data/SelectionList.hs 20;" 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 107;" C +DRUMMAG src/Dodge/Data/Item/Combine.hs 108;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 29;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 19;" C -DTComb src/Dodge/Item/Grammar.hs 161;" t +DTComb src/Dodge/Item/Grammar.hs 165;" t DTMidAboveNode src/Dodge/Data/DoubleTree.hs 17;" C DTMidBelowNode src/Dodge/Data/DoubleTree.hs 18;" C DTRootNode src/Dodge/Data/DoubleTree.hs 15;" C @@ -320,7 +321,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 181;" t +Detector src/Dodge/Data/Item/Combine.hs 182;" 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 @@ -357,9 +358,9 @@ Dungeon src/Dodge/Data/Scenario.hs 66;" C Dust src/Dodge/Data/Cloud.hs 26;" t EBSound src/Dodge/Data/SoundOrigin.hs 40;" C ECW src/Dodge/Material/Damage.hs 14;" t -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 157;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 158;" C EQUIP src/Dodge/Data/Item/Combine.hs 17;" C -EXPLOSIVES src/Dodge/Data/Item/Combine.hs 116;" C +EXPLOSIVES src/Dodge/Data/Item/Combine.hs 117;" 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 @@ -379,7 +380,7 @@ 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 119;" t +EquipItemType src/Dodge/Data/Item/Combine.hs 120;" 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 @@ -398,15 +399,15 @@ 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 121;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 161;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 162;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 163;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 164;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 175;" C -FRONTARMOUR src/Dodge/Data/Item/Combine.hs 122;" C +FLAMESHIELD src/Dodge/Data/Item/Combine.hs 122;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 162;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 163;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 164;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 165;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 176;" C +FRONTARMOUR src/Dodge/Data/Item/Combine.hs 123;" C FUELCELL src/Dodge/Data/Item/Combine.hs 86;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 131;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 132;" 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 @@ -463,8 +464,8 @@ GBounce src/Dodge/Data/Projectile.hs 46;" C GEqC src/SameConstr.hs 20;" c GIMBAL src/Dodge/Data/Item/Combine.hs 95;" C GLASSSHARD src/Dodge/Data/Item/Combine.hs 60;" C -GLAUNCHER src/Dodge/Data/Item/Combine.hs 171;" C -GRAPECANNON src/Dodge/Data/Item/Combine.hs 149;" C +GLAUNCHER src/Dodge/Data/Item/Combine.hs 172;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 150;" C GREEN src/Color/Data.hs 13;" C GStick src/Dodge/Data/Projectile.hs 47;" C GStuckCreature src/Dodge/Data/Projectile.hs 48;" C @@ -505,8 +506,8 @@ Gust src/Dodge/Data/Gust.hs 11;" t GymSS src/Dodge/Data/Scenario.hs 104;" C HARDDRIVE src/Dodge/Data/Item/Combine.hs 72;" C HARDWARE src/Dodge/Data/Item/Combine.hs 52;" C -HAT src/Dodge/Data/Item/Combine.hs 126;" C -HEADLAMP src/Dodge/Data/Item/Combine.hs 127;" C +HAT src/Dodge/Data/Item/Combine.hs 127;" C +HEADLAMP src/Dodge/Data/Item/Combine.hs 128;" C HEALTH src/Dodge/Data/Item/Combine.hs 45;" C HEATSENSOR src/Dodge/Data/Item/Combine.hs 81;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C @@ -518,7 +519,7 @@ 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 138;" t +HeldItemType src/Dodge/Data/Item/Combine.hs 139;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HighlightSI src/Dodge/Data/SelectionList.hs 57;" C @@ -549,9 +550,9 @@ HumanoidAI src/Dodge/Data/Creature/Misc.hs 37;" t IMSI src/Dodge/Data/SelectionList.hs 40;" t IMSS src/Dodge/Data/SelectionList.hs 38;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C -INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 124;" C +INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 125;" C IRONBAR src/Dodge/Data/Item/Combine.hs 78;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 182;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 29;" t @@ -613,11 +614,11 @@ 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 94;" C -JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C +JUMPLEGS src/Dodge/Data/Item/Combine.hs 131;" C JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C -KEYCARD src/Dodge/Data/Item/Combine.hs 176;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C Kill src/Dodge/Data/ActionPlan.hs 151;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 13;" C @@ -629,7 +630,7 @@ LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C LDTTopNode src/Dodge/Data/DoubleTree.hs 24;" C LDTree src/Dodge/Data/DoubleTree.hs 32;" t -LED src/Dodge/Data/Item/Combine.hs 174;" C +LED src/Dodge/Data/Item/Combine.hs 175;" C LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 79;" C LS src/Dodge/Data/LightSource.hs 21;" C @@ -686,18 +687,18 @@ LongAI src/Dodge/Data/Creature/Misc.hs 48;" C LookAround src/Dodge/Data/ActionPlan.hs 138;" C LtAutoAI src/Dodge/Data/Creature/Misc.hs 42;" C Lure src/Dodge/Data/ActionPlan.hs 131;" C -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 144;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 145;" C MAGENTA src/Color/Data.hs 17;" C MAGNET src/Dodge/Data/Item/Combine.hs 67;" C -MAGSHIELD src/Dodge/Data/Item/Combine.hs 120;" C +MAGSHIELD src/Dodge/Data/Item/Combine.hs 121;" C MAPPER src/Dodge/Data/Item/Combine.hs 25;" C MAXHEALTH src/Dodge/Data/Item/Combine.hs 46;" C MBranch src/Dodge/Data/MetaTree.hs 19;" C -MEDKIT src/Dodge/Data/Item/Combine.hs 115;" C +MEDKIT src/Dodge/Data/Item/Combine.hs 116;" C MICROCHIP src/Dodge/Data/Item/Combine.hs 71;" C MICROPHONE src/Dodge/Data/Item/Combine.hs 82;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 76;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 150;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 151;" 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 @@ -784,23 +785,24 @@ MoveNoStride src/Dodge/Data/ActionPlan.hs 28;" C MultGunAI src/Dodge/Data/Creature/Misc.hs 49;" C Mute src/Dodge/Data/Creature/Misc.hs 19;" C Muzzle src/Dodge/Data/Muzzle.hs 9;" t -MuzzleBlink src/Dodge/Data/Muzzle.hs 54;" C -MuzzleDetector src/Dodge/Data/Muzzle.hs 53;" C +MuzzleBlink src/Dodge/Data/Muzzle.hs 55;" C +MuzzleDetector src/Dodge/Data/Muzzle.hs 54;" C MuzzleEffect src/Dodge/Data/Muzzle.hs 38;" t -MuzzleGLauncher src/Dodge/Data/Muzzle.hs 46;" C +MuzzleGLauncher src/Dodge/Data/Muzzle.hs 47;" C MuzzleLaser src/Dodge/Data/Muzzle.hs 40;" C -MuzzleNozzle src/Dodge/Data/Muzzle.hs 47;" C +MuzzleNozzle src/Dodge/Data/Muzzle.hs 48;" C +MuzzlePlasmaBall src/Dodge/Data/Muzzle.hs 43;" C MuzzlePulseBall src/Dodge/Data/Muzzle.hs 42;" C MuzzlePulseLaser src/Dodge/Data/Muzzle.hs 41;" C -MuzzleRLauncher src/Dodge/Data/Muzzle.hs 45;" C -MuzzleRewind src/Dodge/Data/Muzzle.hs 56;" C -MuzzleScroller src/Dodge/Data/Muzzle.hs 58;" C -MuzzleShatter src/Dodge/Data/Muzzle.hs 52;" C +MuzzleRLauncher src/Dodge/Data/Muzzle.hs 46;" C +MuzzleRewind src/Dodge/Data/Muzzle.hs 57;" C +MuzzleScroller src/Dodge/Data/Muzzle.hs 59;" C +MuzzleShatter src/Dodge/Data/Muzzle.hs 53;" C MuzzleShootBullet src/Dodge/Data/Muzzle.hs 39;" C -MuzzleStopper src/Dodge/Data/Muzzle.hs 57;" C -MuzzleTesla src/Dodge/Data/Muzzle.hs 43;" C -MuzzleTractor src/Dodge/Data/Muzzle.hs 44;" C -MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 55;" C +MuzzleStopper src/Dodge/Data/Muzzle.hs 58;" C +MuzzleTesla src/Dodge/Data/Muzzle.hs 44;" C +MuzzleTractor src/Dodge/Data/Muzzle.hs 45;" C +MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 56;" C Muzzle_positions src/Dodge/Data/Config.hs 110;" C MvForward src/Dodge/Data/ActionPlan.hs 34;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 33;" C @@ -906,7 +908,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 50;" t +OItem src/Dodge/Data/ComposedItem.hs 52;" t OPulseBall src/Dodge/Data/Object.hs 11;" C ORANGE src/Color/Data.hs 23;" C OTButton src/Dodge/Data/ObjectType.hs 15;" C @@ -960,14 +962,14 @@ Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C PBSound src/Dodge/Data/SoundOrigin.hs 42;" 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 143;" C +PISTOL src/Dodge/Data/Item/Combine.hs 144;" 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 69;" C PLUS src/Dodge/Data/GenParams.hs 18;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 172;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 173;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C -POWERLEGS src/Dodge/Data/Item/Combine.hs 128;" C +POWERLEGS src/Dodge/Data/Item/Combine.hs 129;" C PRISM src/Dodge/Data/Item/Combine.hs 65;" C PS src/Dodge/Data/GenWorld.hs 99;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 100;" C @@ -1000,6 +1002,7 @@ PlainDeath src/Dodge/Data/Creature.hs 68;" 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 45;" 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 @@ -1038,6 +1041,7 @@ PulseBallSF src/Dodge/Data/ComposedItem.hs 44;" C PulseLaser src/Dodge/Data/PulseLaser.hs 11;" t PulseLaserSF src/Dodge/Data/ComposedItem.hs 41;" C PulseStatus src/Dodge/Data/Creature/Misc.hs 52;" C +PumpSF src/Dodge/Data/ComposedItem.hs 47;" 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 @@ -1072,11 +1076,11 @@ 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 98;" C REMOTESCREEN src/Dodge/Data/Item/Combine.hs 93;" C -REWINDER src/Dodge/Data/Item/Combine.hs 140;" C +REWINDER src/Dodge/Data/Item/Combine.hs 141;" C RGBA src/Color/Data.hs 28;" t -RIFLE src/Dodge/Data/Item/Combine.hs 152;" C -RLAUNCHER src/Dodge/Data/Item/Combine.hs 169;" C -RLAUNCHERX src/Dodge/Data/Item/Combine.hs 170;" C +RIFLE src/Dodge/Data/Item/Combine.hs 153;" C +RLAUNCHER src/Dodge/Data/Item/Combine.hs 170;" C +RLAUNCHERX src/Dodge/Data/Item/Combine.hs 171;" C ROSE src/Color/Data.hs 18;" C RPLinkStatus src/Dodge/Data/Room.hs 58;" t RProps src/Dodge/Layout/Generate.hs 14;" C @@ -1138,16 +1142,16 @@ RoomWire src/Dodge/Data/Room.hs 53;" 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 173;" C -SHELLMAG src/Dodge/Data/Item/Combine.hs 109;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C +SHELLMAG src/Dodge/Data/Item/Combine.hs 110;" C SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 101;" C SIDisplayMod src/Dodge/Data/SelectionList.hs 55;" t -SMG src/Dodge/Data/Item/Combine.hs 146;" C +SMG src/Dodge/Data/Item/Combine.hs 147;" C SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 99;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 160;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 161;" C SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 80;" C -SPARKGUN src/Dodge/Data/Item/Combine.hs 166;" C -SPEEDLEGS src/Dodge/Data/Item/Combine.hs 129;" C +SPARKGUN src/Dodge/Data/Item/Combine.hs 167;" C +SPEEDLEGS src/Dodge/Data/Item/Combine.hs 130;" C SPRING src/Dodge/Data/Item/Combine.hs 53;" C SPic src/ShapePicture/Data.hs 7;" t SQUARE src/Dodge/Data/GenParams.hs 18;" C @@ -1286,16 +1290,16 @@ 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 -TESLAGUN src/Dodge/Data/Item/Combine.hs 167;" C +TESLAGUN src/Dodge/Data/Item/Combine.hs 168;" C THERMOMETER src/Dodge/Data/Item/Combine.hs 83;" C THREELINES src/Dodge/Data/GenParams.hs 18;" C -TIMESCROLLER src/Dodge/Data/Item/Combine.hs 142;" C -TIMESTOPPER src/Dodge/Data/Item/Combine.hs 141;" C +TIMESCROLLER src/Dodge/Data/Item/Combine.hs 143;" C +TIMESTOPPER src/Dodge/Data/Item/Combine.hs 142;" C TIN src/Dodge/Data/Item/Combine.hs 57;" C -TINMAG src/Dodge/Data/Item/Combine.hs 106;" C +TINMAG src/Dodge/Data/Item/Combine.hs 107;" C TLine src/Dodge/Data/Terminal.hs 36;" C TO src/Shader/Data.hs 59;" t -TRACTORGUN src/Dodge/Data/Item/Combine.hs 168;" C +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 70;" C TSbackspace src/Dodge/Data/Input.hs 54;" C @@ -1366,7 +1370,7 @@ ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C TopDT src/Dodge/Data/DoubleTree.hs 83;" C TopLDT src/Dodge/Data/DoubleTree.hs 41;" C TopMenuOption src/Dodge/Data/Universe.hs 78;" C -TorchSF src/Dodge/Data/ComposedItem.hs 45;" C +TorchSF src/Dodge/Data/ComposedItem.hs 46;" 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 @@ -1407,7 +1411,7 @@ UnusedLink src/Dodge/Data/Room.hs 68;" C UseAttach src/Dodge/Data/Item/Use.hs 30;" C UseBulletMod src/Dodge/Data/Item/Use.hs 35;" C UseCondition src/Dodge/Data/UseCondition.hs 4;" t -UseExactly src/Dodge/Data/Muzzle.hs 62;" C +UseExactly src/Dodge/Data/Muzzle.hs 63;" C UseFocus src/Dodge/Data/UseCondition.hs 11;" t UseFromLocation src/Dodge/Data/UseCondition.hs 13;" C UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C @@ -1421,7 +1425,7 @@ UseNothing src/Dodge/Data/Item/Use.hs 32;" C UseScope src/Dodge/Data/Item/Use.hs 34;" C UseSelf src/Dodge/Data/ActionPlan.hs 118;" C UseToggle src/Dodge/Data/Item/Use.hs 36;" C -UseUpTo src/Dodge/Data/Muzzle.hs 63;" C +UseUpTo src/Dodge/Data/Muzzle.hs 64;" C UseValue src/Dodge/Data/Item/Use.hs 33;" C UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C @@ -1437,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 151;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 152;" 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 @@ -1450,11 +1454,11 @@ Vision src/Dodge/Data/Creature/Perception.hs 39;" t Vocalization src/Dodge/Data/Creature/Misc.hs 18;" 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 184;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C WHITE src/Color/Data.hs 24;" C WIRE src/Dodge/Data/Item/Combine.hs 85;" C -WRISTARMOUR src/Dodge/Data/Item/Combine.hs 123;" C -WRIST_ECG src/Dodge/Data/Item/Combine.hs 135;" C +WRISTARMOUR src/Dodge/Data/Item/Combine.hs 124;" C +WRIST_ECG src/Dodge/Data/Item/Combine.hs 136;" C WaitThen src/Dodge/Data/ActionPlan.hs 74;" C Walking src/Dodge/Data/Creature/Stance.hs 23;" C Wall src/Dodge/Data/Wall.hs 17;" t @@ -2077,9 +2081,9 @@ _numLinkNS src/Dodge/Data/Room.hs 35;" f _numberChasmVerxs src/Dodge/Data/CWorld.hs 35;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f _nzAngle src/Dodge/Data/Item/Params.hs 16;" f -_nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f -_nzPressure src/Dodge/Data/Muzzle.hs 48;" f -_nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f +_nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 50;" f +_nzPressure src/Dodge/Data/Muzzle.hs 49;" f +_nzWalkSpeed src/Dodge/Data/Muzzle.hs 51;" f _offGridFromEdges src/Dodge/Data/Room.hs 82;" f _oldMagnets src/Dodge/Data/LWorld.hs 127;" f _onGridFromEdges src/Dodge/Data/Room.hs 81;" f @@ -2436,12 +2440,12 @@ _unfiredBarrels src/Dodge/Data/Item/Params.hs 17;" f _unpauseClock src/Dodge/Data/World.hs 59;" f _unputTerminal src/Dodge/Data/GenWorld.hs 42;" f _upscaleCloudShader src/Data/Preload/Render.hs 25;" f -_useExactly src/Dodge/Data/Muzzle.hs 62;" f +_useExactly src/Dodge/Data/Muzzle.hs 63;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f _useSelf src/Dodge/Data/ActionPlan.hs 118;" f _useToggle src/Dodge/Data/Item/Use.hs 36;" f -_useUpTo src/Dodge/Data/Muzzle.hs 63;" f +_useUpTo src/Dodge/Data/Muzzle.hs 64;" f _uvCanContinue src/Dodge/Data/Universe.hs 36;" f _uvConfig src/Dodge/Data/Universe.hs 34;" f _uvDebug src/Dodge/Data/Universe.hs 41;" f @@ -2521,9 +2525,9 @@ _wsBlock src/Dodge/Data/Wall/Structure.hs 14;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsMachine src/Dodge/Data/Wall/Structure.hs 13;" f -_xNum src/Dodge/Data/Item/Combine.hs 139;" f -_xNum src/Dodge/Data/Item/Combine.hs 149;" f -_xNum src/Dodge/Data/Item/Combine.hs 170;" f +_xNum src/Dodge/Data/Item/Combine.hs 140;" f +_xNum src/Dodge/Data/Item/Combine.hs 150;" f +_xNum src/Dodge/Data/Item/Combine.hs 171;" f aBar src/Dodge/Placement/Instance/LightSource.hs 63;" f aFlame src/Dodge/Gas.hs 20;" f aGasCloud src/Dodge/Gas.hs 15;" f @@ -2532,7 +2536,7 @@ aShape src/Dodge/Placement/Instance/LightSource.hs 88;" f aSound src/Dodge/SoundLogic.hs 74;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f accessTerminal src/Dodge/WorldEffect.hs 66;" f -activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 62;" 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 addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f @@ -2593,30 +2597,30 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" 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 -analyserByDoor src/Dodge/Room/LasTurret.hs 117;" f -analyserByNthLink src/Dodge/Room/LasTurret.hs 101;" f +analyserByDoor src/Dodge/Room/LasTurret.hs 119;" f +analyserByNthLink src/Dodge/Room/LasTurret.hs 103;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 158;" f angleVV src/Geometry/Vector.hs 58;" f angleVV3 src/Geometry/Vector3D.hs 122;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 68;" f anythingHitCirc src/Dodge/Base/Collide.hs 342;" f -applyCME src/Dodge/HeldUse.hs 372;" f -applyClip src/Dodge/Debug.hs 139;" f +applyCME src/Dodge/HeldUse.hs 384;" f +applyClip src/Dodge/Debug.hs 138;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyEventIO src/Loop.hs 90;" f applyGravityPU src/Dodge/Projectile/Update.hs 41;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f -applyInvLock src/Dodge/HeldUse.hs 431;" f +applyInvLock src/Dodge/HeldUse.hs 443;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f applyPastDamages src/Dodge/Creature/State.hs 49;" f applyPosition src/Sound.hs 113;" f -applyRecoil src/Dodge/HeldUse.hs 462;" f +applyRecoil src/Dodge/HeldUse.hs 474;" f applyResFactor src/Dodge/Data/Config.hs 126;" f applyResFactorF src/Dodge/Data/Config.hs 135;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 83;" f -applySidePush src/Dodge/HeldUse.hs 562;" f -applySoundCME src/Dodge/HeldUse.hs 452;" f +applySidePush src/Dodge/HeldUse.hs 574;" f +applySoundCME src/Dodge/HeldUse.hs 464;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 44;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -2624,7 +2628,7 @@ applyToNode src/TreeHelp.hs 65;" f applyToRandomNode src/TreeHelp.hs 151;" f applyToSubforest src/TreeHelp.hs 78;" f applyToSubtree src/TreeHelp.hs 71;" f -applyTorqueCME src/Dodge/HeldUse.hs 573;" f +applyTorqueCME src/Dodge/HeldUse.hs 585;" f applyWorldConfig src/Dodge/Config.hs 55;" f aquamarine src/Color.hs 50;" f arHUD src/Dodge/Item/Scope.hs 140;" f @@ -2686,7 +2690,7 @@ barrel src/Dodge/Creature/Inanimate.hs 17;" f barrelShape src/Dodge/Render/ShapePicture.hs 120;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 408;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f -baseCI src/Dodge/Item/Grammar.hs 158;" f +baseCI src/Dodge/Item/Grammar.hs 162;" f baseFloorTileSize src/Tile.hs 45;" f baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f @@ -2695,20 +2699,20 @@ baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f baseShoulder src/Dodge/Creature/Picture.hs 114;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f -baseStickSpread src/Dodge/HeldUse.hs 322;" f +baseStickSpread src/Dodge/HeldUse.hs 334;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 39;" f basicCrPict src/Dodge/Creature/Picture.hs 30;" f basicCrShape src/Dodge/Creature/Picture.hs 36;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f -basicMuzFlare src/Dodge/HeldUse.hs 713;" f -battery src/Dodge/Item/Ammo.hs 59;" f +basicMuzFlare src/Dodge/HeldUse.hs 725;" f +battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f -beltMag src/Dodge/Item/Ammo.hs 37;" f +beltMag src/Dodge/Item/Ammo.hs 38;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f -bgunSound src/Dodge/HeldUse.hs 517;" f +bgunSound src/Dodge/HeldUse.hs 529;" f bingate src/Dodge/Item/Scope.hs 115;" f black src/Color.hs 54;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 15;" f @@ -2772,7 +2776,7 @@ bulletBeltBracer src/Dodge/Item/Equipment.hs 56;" f bulletBeltPack src/Dodge/Item/Equipment.hs 50;" f bulletModule src/Dodge/Item/Scope.hs 122;" f bulletPayloadModule src/Dodge/Item/Scope.hs 137;" f -bulletSynthesizer src/Dodge/Item/Ammo.hs 81;" f +bulletSynthesizer src/Dodge/Item/Ammo.hs 89;" f bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 17;" f @@ -2785,7 +2789,7 @@ calcTexCoord src/Tile.hs 19;" f canSee src/Dodge/Base/Collide.hs 328;" f canSeeIndirect src/Dodge/Base/Collide.hs 335;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f -capacitor src/Dodge/Item/Ammo.hs 66;" f +capacitor src/Dodge/Item/Ammo.hs 67;" f card8Vec src/Dodge/Base/CardinalPoint.hs 17;" f cardList src/Dodge/Base/CardinalPoint.hs 7;" f cardVec src/Dodge/Base/CardinalPoint.hs 10;" f @@ -2793,7 +2797,7 @@ cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 28;" f cardinalVectors src/Dodge/FloorItem.hs 24;" f cdtPropagateFold src/Dodge/DoubleTree.hs 407;" f ceilingTo src/Geometry/Zone.hs 15;" f -cenLasTur src/Dodge/Room/LasTurret.hs 41;" f +cenLasTur src/Dodge/Room/LasTurret.hs 43;" f centerText src/Picture/Base.hs 176;" f centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f centerVaultRoom src/Dodge/Room/Procedural.hs 269;" f @@ -2822,7 +2826,7 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 78;" f checkDeath' src/Dodge/Creature/Update.hs 81;" f -checkEndGame src/Dodge/Update.hs 823;" f +checkEndGame src/Dodge/Update.hs 830;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -2832,7 +2836,7 @@ checkTermDist src/Dodge/Update.hs 366;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f -chemFuelPouch src/Dodge/Item/Ammo.hs 73;" f +chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f chestPQ src/Dodge/Creature/HandPos.hs 125;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f @@ -2922,6 +2926,7 @@ compareLHS src/Geometry/LHS.hs 30;" f compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 77;" f composeTree src/Dodge/Tree/Compose.hs 48;" f +compressor src/Dodge/Item/Ammo.hs 74;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f @@ -2952,7 +2957,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f -crCrSpring src/Dodge/Update.hs 935;" f +crCrSpring src/Dodge/Update.hs 942;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 45;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f @@ -2984,7 +2989,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 930;" f +crSpring src/Dodge/Update.hs 937;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 71;" f @@ -3002,15 +3007,15 @@ createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 64;" f createItemYou src/Dodge/Inventory/Add.hs 62;" f createLightMap src/Render.hs 26;" f -createProjectile src/Dodge/HeldUse.hs 1272;" f -createProjectileR src/Dodge/HeldUse.hs 1221;" f +createProjectile src/Dodge/HeldUse.hs 1297;" f +createProjectileR src/Dodge/HeldUse.hs 1246;" f createShell src/Dodge/Projectile/Create.hs 21;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 53;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 129;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f -creatureShootLaser src/Dodge/HeldUse.hs 840;" f -creatureShootPulseLaser src/Dodge/HeldUse.hs 871;" f +creatureShootLaser src/Dodge/HeldUse.hs 853;" f +creatureShootPulseLaser src/Dodge/HeldUse.hs 884;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 60;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 81;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 70;" f @@ -3060,18 +3065,18 @@ damageBlock src/Dodge/Wall/Damage.hs 120;" f damageCodeCommand src/Dodge/Terminal.hs 67;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f -damageCrystal src/Dodge/Material/Damage.hs 225;" f +damageCrystal src/Dodge/Material/Damage.hs 226;" f damageDirection src/Dodge/Damage.hs 35;" f -damageDirt src/Dodge/Material/Damage.hs 133;" f -damageFlesh src/Dodge/Material/Damage.hs 100;" f -damageGlass src/Dodge/Material/Damage.hs 159;" f +damageDirt src/Dodge/Material/Damage.hs 134;" f +damageFlesh src/Dodge/Material/Damage.hs 101;" f +damageGlass src/Dodge/Material/Damage.hs 160;" f damageGlassBlock src/Dodge/Wall/Damage.hs 125;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMachine src/Dodge/Wall/Damage.hs 46;" f -damageMetal src/Dodge/Material/Damage.hs 68;" f +damageMetal src/Dodge/Material/Damage.hs 69;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f -damageStone src/Dodge/Material/Damage.hs 36;" f +damageStone src/Dodge/Material/Damage.hs 37;" f damageThingHit src/Dodge/Bullet.hs 180;" f damageTypeThreshold src/Dodge/Machine/Update.hs 129;" f damageTypeThreshold' src/Dodge/Wall/Damage.hs 84;" f @@ -3081,7 +3086,7 @@ dark src/Color.hs 135;" f darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f -dbwMuzzles src/Dodge/HeldUse.hs 325;" f +dbwMuzzles src/Dodge/HeldUse.hs 337;" f deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 260;" f @@ -3092,19 +3097,19 @@ deadUpperBody src/Dodge/Creature/Picture.hs 111;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f debrisSPic src/Dodge/Prop/Draw.hs 16;" f debrisSize src/Dodge/Block/Debris.hs 83;" f -debugEvent src/Dodge/Debug.hs 44;" f -debugEvents src/Dodge/Debug.hs 29;" f -debugGet src/Dodge/Debug.hs 83;" f -debugItem src/Dodge/Debug.hs 47;" f +debugEvent src/Dodge/Debug.hs 43;" f +debugEvents src/Dodge/Debug.hs 28;" f +debugGet src/Dodge/Debug.hs 82;" f +debugItem src/Dodge/Debug.hs 46;" f debugMenu src/Dodge/Menu.hs 122;" f debugMenuOptions src/Dodge/Menu.hs 128;" f -debugMouseClickPos src/Dodge/Debug.hs 154;" f +debugMouseClickPos src/Dodge/Debug.hs 153;" f debugOn src/Dodge/Data/Config.hs 177;" f -debugPutDraw src/Dodge/Debug.hs 104;" f -debugPutItems src/Dodge/Debug.hs 87;" f -debugPutN src/Dodge/Debug.hs 93;" f -debugShowPath src/Dodge/Debug.hs 114;" f -debugWritableValues src/Dodge/Debug.hs 127;" f +debugPutDraw src/Dodge/Debug.hs 103;" f +debugPutItems src/Dodge/Debug.hs 86;" f +debugPutN src/Dodge/Debug.hs 92;" f +debugShowPath src/Dodge/Debug.hs 113;" f +debugWritableValues src/Dodge/Debug.hs 126;" f decodeSensorType src/Dodge/Terminal.hs 81;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 62;" f decomposeTree src/Dodge/Tree/Compose.hs 59;" f @@ -3188,7 +3193,7 @@ detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 433;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1192;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1217;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 205;" f @@ -3234,8 +3239,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 47;" f doDamage src/Dodge/Creature/State.hs 43;" f doDeathToggle src/Dodge/WorldEffect.hs 101;" f doDeathTriggers src/Dodge/WorldEffect.hs 94;" f -doDebugGet src/Dodge/Debug.hs 107;" f -doDebugPut src/Dodge/Debug.hs 96;" f +doDebugGet src/Dodge/Debug.hs 106;" f +doDebugPut src/Dodge/Debug.hs 95;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 38;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 66;" f @@ -3250,13 +3255,13 @@ doDrag src/Dodge/Update/Input/InGame.hs 128;" f doDrawing src/Dodge/Render.hs 33;" f doDrawing' src/Dodge/Render.hs 44;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f -doGenFloat src/Dodge/HeldUse.hs 1153;" f +doGenFloat src/Dodge/HeldUse.hs 1178;" f doGravityPU src/Dodge/Projectile/Update.hs 35;" f -doHeldUseEffect src/Dodge/HeldUse.hs 354;" f +doHeldUseEffect src/Dodge/HeldUse.hs 366;" f doInPlacements src/Dodge/Layout.hs 87;" f doIndividualPlacements src/Dodge/Layout.hs 101;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 38;" f -doItemTimeScroll src/Dodge/Update.hs 207;" f +doItemTimeScroll src/Dodge/Update.hs 206;" f doLoop src/Loop.hs 60;" f doMagnetBuBu src/Dodge/Bullet.hs 35;" f doModificationEffect src/Dodge/ModificationEffect.hs 7;" f @@ -3276,7 +3281,7 @@ doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 132;" f -doTimeScroll src/Dodge/Update.hs 212;" f +doTimeScroll src/Dodge/Update.hs 211;" f doTmWdWd src/Dodge/WorldEffect.hs 104;" f doWallRotate src/Dodge/Update/Camera.hs 229;" f doWdBl src/Dodge/WorldBool.hs 10;" f @@ -3316,8 +3321,8 @@ drawCombineInventory src/Dodge/Render/HUD.hs 190;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f drawCoord src/Dodge/Debug/Picture.hs 396;" f drawCountMod src/Render.hs 231;" f -drawCrInfo src/Dodge/Debug.hs 178;" f -drawCrInfo' src/Dodge/Debug.hs 173;" f +drawCrInfo src/Dodge/Debug.hs 177;" f +drawCrInfo' src/Dodge/Debug.hs 172;" f drawCreature src/Dodge/Render/ShapePicture.hs 111;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 25;" f @@ -3326,7 +3331,7 @@ drawCursorAt src/Dodge/Render/List.hs 73;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 137;" f drawDDATest src/Dodge/Debug/Picture.hs 304;" f drawDamSensor src/Dodge/Machine/Draw.hs 38;" f -drawDebug src/Dodge/Debug.hs 216;" f +drawDebug src/Dodge/Debug.hs 215;" f drawDrag src/Dodge/Render/Picture.hs 198;" f drawDragDrop src/Dodge/Render/Picture.hs 227;" f drawDragPickup src/Dodge/Render/Picture.hs 236;" f @@ -3424,10 +3429,10 @@ drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f dropAll src/Dodge/Creature/Update.hs 134;" f -dropInventoryPath src/Dodge/HeldUse.hs 1347;" f +dropInventoryPath src/Dodge/HeldUse.hs 1372;" f dropItem src/Dodge/Creature/Action.hs 155;" f dropper src/Dodge/Item/Scope.hs 82;" f -drumMag src/Dodge/Item/Ammo.hs 30;" f +drumMag src/Dodge/Item/Ammo.hs 31;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f dssNearCirc src/Dodge/Zoning/Cloud.hs 48;" f dssNearPoint src/Dodge/Zoning/Cloud.hs 39;" f @@ -3506,8 +3511,8 @@ explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 80;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 141;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 93;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 102;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f @@ -3535,7 +3540,7 @@ firstWorldLoad appDodge/Main.hs 68;" f fixedCoordPictures src/Dodge/Render/Picture.hs 20;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flFlicker src/Dodge/Flame.hs 39;" f -flameMuzzles src/Dodge/HeldUse.hs 328;" f +flameMuzzles src/Dodge/HeldUse.hs 340;" f flameShield src/Dodge/Item/Equipment.hs 29;" f flameSize src/Dodge/Flame/Size.hs 5;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f @@ -3543,7 +3548,7 @@ 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 396;" f -flareCircleAt src/Dodge/HeldUse.hs 694;" f +flareCircleAt src/Dodge/HeldUse.hs 706;" 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 @@ -3586,7 +3591,7 @@ fromV3 src/Geometry/Data.hs 63;" f frontArmour src/Dodge/Item/Equipment.hs 32;" f fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f -functionalUpdate src/Dodge/Update.hs 255;" f +functionalUpdate src/Dodge/Update.hs 254;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f @@ -3600,8 +3605,8 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f gameplayMenu src/Dodge/Menu.hs 152;" f gameplayMenuOptions src/Dodge/Menu.hs 155;" f -gasEffect src/Dodge/Update.hs 848;" f -gasType src/Dodge/HeldUse.hs 1110;" f +gasEffect src/Dodge/Update.hs 855;" f +gasType src/Dodge/HeldUse.hs 1135;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f generateGraphs src/Dodge/Menu.hs 147;" f @@ -3614,12 +3619,12 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 151;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f -getAttachedSFLink src/Dodge/HeldUse.hs 786;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 107;" f +getAttachedSFLink src/Dodge/HeldUse.hs 799;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 88;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 173;" f -getBulletType src/Dodge/HeldUse.hs 909;" f +getBulletType src/Dodge/HeldUse.hs 934;" f getCloseObj src/Dodge/Update/Input/InGame.hs 539;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f @@ -3629,17 +3634,17 @@ getCrsFromRooms' src/Dodge/Room/Tutorial.hs 450;" f getDebugMouseOver src/Dodge/Update.hs 424;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 1260;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1285;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getItemValue src/Dodge/Inventory/SelectionList.hs 144;" f -getLaserColor src/Dodge/HeldUse.hs 710;" f -getLaserDamage src/Dodge/HeldUse.hs 707;" f -getLaserPhaseV src/Dodge/HeldUse.hs 704;" f +getLaserColor src/Dodge/HeldUse.hs 722;" f +getLaserDamage src/Dodge/HeldUse.hs 719;" f +getLaserPhaseV src/Dodge/HeldUse.hs 716;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMenuMouseContext src/Dodge/Update.hs 436;" f getNodePos src/Dodge/Path.hs 34;" f -getPJStabiliser src/Dodge/HeldUse.hs 1247;" f +getPJStabiliser src/Dodge/HeldUse.hs 1272;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 446;" f @@ -3650,7 +3655,7 @@ getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 129;" f getTiles src/Dodge/Layout.hs 200;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f -getVolleyBurst src/Dodge/HeldUse.hs 128;" f +getVolleyBurst src/Dodge/HeldUse.hs 129;" f getWallPathing src/Dodge/Wall/Pathing.hs 7;" f getWallSPic src/Dodge/Render/Walls.hs 61;" f getWindowSize src/Dodge/WindowSize.hs 6;" f @@ -3701,7 +3706,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 49;" f halfWidth src/Dodge/Base/Window.hs 49;" f haltSound src/Dodge/SoundLogic.hs 38;" f -hammerCheck src/Dodge/HeldUse.hs 65;" f +hammerCheck src/Dodge/HeldUse.hs 66;" f handHandleOrient src/Dodge/Item/HeldOffset.hs 57;" f handOrient src/Dodge/Item/HeldOffset.hs 39;" f handleEvent src/Dodge/Event.hs 27;" f @@ -3727,26 +3732,26 @@ headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f headMap src/Dodge/DoubleTree.hs 249;" f headPQ src/Dodge/Creature/HandPos.hs 116;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 98;" f -healthTest src/Dodge/Room/LasTurret.hs 120;" f +healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 100;" f +healthTest src/Dodge/Room/LasTurret.hs 122;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimZoom src/Dodge/Update/Camera.hs 157;" f -heldEffect src/Dodge/HeldUse.hs 62;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 133;" f +heldEffect src/Dodge/HeldUse.hs 63;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 134;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 84;" f heldInfo src/Dodge/Item/Info.hs 92;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 20;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f -heldItemInvLock src/Dodge/HeldUse.hs 445;" f -heldItemMuzVel src/Dodge/HeldUse.hs 995;" f -heldItemMuzzles src/Dodge/HeldUse.hs 178;" f -heldItemRifling src/Dodge/HeldUse.hs 1038;" f +heldItemInvLock src/Dodge/HeldUse.hs 457;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1020;" f +heldItemMuzzles src/Dodge/HeldUse.hs 188;" f +heldItemRifling src/Dodge/HeldUse.hs 1063;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 234;" f heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f -heldTorqueAmount src/Dodge/HeldUse.hs 589;" f -heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f +heldTorqueAmount src/Dodge/HeldUse.hs 601;" f +heldTriggerType src/Dodge/BaseTriggerType.hs 28;" f heron src/Geometry.hs 218;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f highBar src/Dodge/Room/Foreground.hs 89;" f @@ -3826,18 +3831,18 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 62;" f introScanValue src/Dodge/Inventory/SelectionList.hs 77;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 236;" f +invAdj src/Dodge/Item/Grammar.hs 240;" f invCursorParams src/Dodge/ListDisplayParams.hs 35;" f invDP src/Dodge/ListDisplayParams.hs 32;" f -invDT src/Dodge/Item/Grammar.hs 217;" f -invDT' src/Dodge/Item/Grammar.hs 222;" f +invDT src/Dodge/Item/Grammar.hs 221;" f +invDT' src/Dodge/Item/Grammar.hs 226;" f invDimColor src/Dodge/DisplayInventory.hs 190;" f invHead src/Dodge/Render/HUD.hs 421;" f -invIMDT src/Dodge/Item/Grammar.hs 246;" f -invIndents src/Dodge/Item/Grammar.hs 253;" f +invIMDT src/Dodge/Item/Grammar.hs 250;" f +invIndents src/Dodge/Item/Grammar.hs 257;" f invItemEffs src/Dodge/Creature/State.hs 63;" f invItemLocUpdate src/Dodge/Creature/State.hs 71;" f -invRootMap src/Dodge/Item/Grammar.hs 227;" f +invRootMap src/Dodge/Item/Grammar.hs 231;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 180;" f invSetSelectionPos src/Dodge/Inventory.hs 188;" f @@ -3855,7 +3860,7 @@ invertIntMapUnique src/IntMapHelp.hs 103;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f -isAmmoIntLink src/Dodge/HeldUse.hs 720;" f +isAmmoIntLink src/Dodge/HeldUse.hs 732;" f isAnimate src/Dodge/Creature/Test.hs 134;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f @@ -3895,24 +3900,24 @@ itemAimStance src/Dodge/Item/AimStance.hs 10;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 13;" f itemBaseName src/Dodge/Item/Display.hs 60;" f itemBaseStance src/Dodge/Item/AimStance.hs 18;" f -itemBelowAttachables src/Dodge/Item/Grammar.hs 50;" f +itemBelowAttachables src/Dodge/Item/Grammar.hs 53;" f itemBlips src/Dodge/RadarSweep.hs 94;" f itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f -itemDetectorEffect src/Dodge/HeldUse.hs 792;" f +itemDetectorEffect src/Dodge/HeldUse.hs 805;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 53;" 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 itemFromBase src/Dodge/Item.hs 18;" f -itemFromEquipType src/Dodge/Item.hs 66;" f +itemFromEquipType src/Dodge/Item.hs 67;" 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 itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvLock src/Dodge/HeldUse.hs 440;" f -itemMuzzles src/Dodge/HeldUse.hs 164;" f +itemInvLock src/Dodge/HeldUse.hs 452;" f +itemMuzzles src/Dodge/HeldUse.hs 172;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPicTree.hs 16;" f itemSPic src/Dodge/Item/Draw/SPic.hs 17;" f @@ -3925,9 +3930,9 @@ itemShapeMaxX src/Dodge/Item/Orientation.hs 59;" f itemShapeMaxY src/Dodge/Item/Orientation.hs 62;" f itemShapeMaxZ src/Dodge/Item/Orientation.hs 65;" f itemShapeMin src/Dodge/Item/Orientation.hs 74;" f -itemSidePush src/Dodge/HeldUse.hs 388;" f +itemSidePush src/Dodge/HeldUse.hs 400;" f itemString src/Dodge/Item/Display.hs 56;" f -itemToFunction src/Dodge/Item/Grammar.hs 107;" f +itemToFunction src/Dodge/Item/Grammar.hs 110;" f itemTreeSPic src/Dodge/Item/Draw/SPicTree.hs 13;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f itemWeight src/Dodge/Creature/Statistics.hs 74;" f @@ -3938,7 +3943,7 @@ itmEquipSiteInfo src/Dodge/Item/Info.hs 250;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 66;" f -joinItemsInList src/Dodge/Item/Grammar.hs 207;" f +joinItemsInList src/Dodge/Item/Grammar.hs 211;" f joystick src/Dodge/Item/Scope.hs 158;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 64;" f @@ -3951,8 +3956,8 @@ justify src/Justify.hs 9;" f k src/ShortShow.hs 48;" f k' src/ShortShow.hs 48;" f keyCard src/Dodge/Item/Held/Utility.hs 20;" f -keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 95;" f -keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 83;" f +keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 97;" f +keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 85;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 439;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f @@ -3964,18 +3969,19 @@ lConnectMulti src/Dodge/Render/Connectors.hs 51;" f lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f lamp src/Dodge/Creature/Lamp.hs 18;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 125;" f -lasCenRunClose' src/Dodge/Room/LasTurret.hs 244;" f -lasCenRunClose1 src/Dodge/Room/LasTurret.hs 321;" f -lasCenRunClose2 src/Dodge/Room/LasTurret.hs 373;" f -lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 290;" f -lasCenSensEdge src/Dodge/Room/LasTurret.hs 139;" f +lasCenRunClose' src/Dodge/Room/LasTurret.hs 246;" f +lasCenRunClose1 src/Dodge/Room/LasTurret.hs 322;" f +lasCenRunClose2 src/Dodge/Room/LasTurret.hs 377;" f +lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 292;" f +lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f -lasRunYinYang src/Dodge/Room/LasTurret.hs 151;" f -lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 199;" f -lasSensorTurretTest src/Dodge/Room/LasTurret.hs 132;" f -lasTunnel src/Dodge/Room/LasTurret.hs 403;" f -lasTunnelRunPast src/Dodge/Room/LasTurret.hs 444;" f +lasRunRand src/Dodge/Room/LasTurret.hs 374;" f +lasRunYinYang src/Dodge/Room/LasTurret.hs 153;" f +lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 201;" f +lasSensorTurretTest src/Dodge/Room/LasTurret.hs 134;" f +lasTunnel src/Dodge/Room/LasTurret.hs 407;" f +lasTunnelRunPast src/Dodge/Room/LasTurret.hs 448;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f laserSpark src/Dodge/Material/Damage.hs 33;" f @@ -3999,19 +4005,19 @@ ldtToLoc src/Dodge/DoubleTree.hs 268;" f leaveResetQuitTerminal src/Dodge/WorldEffect.hs 166;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f -leftChildList src/Dodge/Item/Grammar.hs 185;" f +leftChildList src/Dodge/Item/Grammar.hs 189;" f leftHandPQ src/Dodge/Creature/HandPos.hs 61;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 163;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 167;" f leftLegPQ src/Dodge/Creature/HandPos.hs 85;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 197;" f +leftRightCombine src/Dodge/Item/Grammar.hs 201;" f leftWristPQ src/Dodge/Creature/HandPos.hs 82;" f legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f light src/Color.hs 131;" f -lightSensByDoor src/Dodge/Room/LasTurret.hs 68;" f -lightSensInsideDoor src/Dodge/Room/LasTurret.hs 56;" f +lightSensByDoor src/Dodge/Room/LasTurret.hs 70;" f +lightSensInsideDoor src/Dodge/Room/LasTurret.hs 58;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 26;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f lightx4 src/Color.hs 155;" f @@ -4036,7 +4042,7 @@ lmt src/MatrixHelper.hs 53;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 410;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f -loadMuzzle src/Dodge/HeldUse.hs 633;" f +loadMuzzle src/Dodge/HeldUse.hs 645;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4053,7 +4059,7 @@ locGoLeft src/Dodge/DoubleTree.hs 319;" f locGoRight src/Dodge/DoubleTree.hs 324;" f locLDTToLocDT src/Dodge/DoubleTree.hs 19;" f locLeftmost src/Dodge/DoubleTree.hs 306;" f -locMuzzles src/Dodge/HeldUse.hs 147;" f +locMuzzles src/Dodge/HeldUse.hs 148;" f locOrient src/Dodge/Item/HeldOffset.hs 52;" f locRightmost src/Dodge/DoubleTree.hs 309;" f locToTop src/Dodge/DoubleTree.hs 301;" f @@ -4086,7 +4092,7 @@ ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 12;" f m src/ShortShow.hs 48;" f mAT src/Dodge/Item/MagAmmoType.hs 20;" f machinePistol src/Dodge/Item/Held/Stick.hs 24;" f -magAmmoParams src/Dodge/HeldUse.hs 930;" f +magAmmoParams src/Dodge/HeldUse.hs 955;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 12;" f magMax src/Dodge/Item/MagAmmoType.hs 29;" f magShield src/Dodge/Item/Equipment.hs 26;" f @@ -4100,7 +4106,7 @@ main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 149;" f makeBlip src/Dodge/RadarSweep.hs 70;" f makeBlockDebris src/Dodge/Block/Debris.hs 36;" f -makeBullet src/Dodge/HeldUse.hs 974;" f +makeBullet src/Dodge/HeldUse.hs 999;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 124;" f @@ -4119,7 +4125,7 @@ makeFragBullets src/Dodge/Bullet.hs 132;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f makeIntInterval src/Dodge/Zoning/Base.hs 37;" f makeMovingEB src/Dodge/EnergyBall.hs 60;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 659;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 671;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 63;" f makePathBetweenPs src/Dodge/Path.hs 87;" f @@ -4157,7 +4163,7 @@ maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 135;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 140;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 568;" f -maybeOpenConsole src/Dodge/Update.hs 134;" f +maybeOpenConsole src/Dodge/Update.hs 133;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 118;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f @@ -4175,14 +4181,14 @@ mcProxSensorUpdate src/Dodge/Machine/Update.hs 167;" f mcProxTest src/Dodge/Machine/Update.hs 248;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 209;" f mcSPic src/Dodge/Render/ShapePicture.hs 172;" f -mcShootAuto src/Dodge/HeldUse.hs 1165;" f -mcShootLaser src/Dodge/HeldUse.hs 1157;" f +mcShootAuto src/Dodge/HeldUse.hs 1190;" f +mcShootLaser src/Dodge/HeldUse.hs 1182;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f -mcUseHeld src/Dodge/HeldUse.hs 1081;" f +mcUseHeld src/Dodge/HeldUse.hs 1106;" f mcUseItem src/Dodge/Machine/Update.hs 108;" f -megaBattery src/Dodge/Item/Ammo.hs 53;" f -megaShellMag src/Dodge/Item/Ammo.hs 43;" f -megaTinMag src/Dodge/Item/Ammo.hs 20;" f +megaBattery src/Dodge/Item/Ammo.hs 54;" f +megaShellMag src/Dodge/Item/Ammo.hs 44;" f +megaTinMag src/Dodge/Item/Ammo.hs 21;" f meleeHeadingMove src/Dodge/Creature/Boid.hs 295;" f memoBoxEdgeIndices src/Shader/Poke.hs 352;" f memoBoxSurfaces src/Shader/Poke.hs 286;" f @@ -4270,14 +4276,14 @@ multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrieI src/SimpleTrie.hs 66;" f muout src/Dodge/RoomLink.hs 144;" f -muzFlareAt src/Dodge/HeldUse.hs 681;" f -muzzlePos src/Dodge/HeldUse.hs 767;" f -muzzleRandPos src/Dodge/HeldUse.hs 776;" f +muzFlareAt src/Dodge/HeldUse.hs 693;" f +muzzlePos src/Dodge/HeldUse.hs 780;" f +muzzleRandPos src/Dodge/HeldUse.hs 789;" f muzzleWallCheck src/Dodge/Update.hs 323;" f mvButton src/Dodge/Placement/PlaceSpot.hs 179;" f mvCr src/Dodge/Placement/PlaceSpot.hs 182;" f mvFS src/Dodge/Placement/PlaceSpot.hs 188;" f -mvGust src/Dodge/Update.hs 839;" f +mvGust src/Dodge/Update.hs 846;" f mvLS src/Dodge/Placement/PlaceSpot.hs 223;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4333,7 +4339,7 @@ onEquipWristShield src/Dodge/Euse.hs 94;" f onRemoveWristShield src/Dodge/Euse.hs 84;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 96;" f -openConsole src/Dodge/Update.hs 139;" f +openConsole src/Dodge/Update.hs 138;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 53;" f @@ -4357,7 +4363,7 @@ outwardIntegers src/Dodge/Base.hs 181;" f overCol src/Picture/Base.hs 303;" f overColObj src/Shape.hs 270;" f overColSH src/Shape.hs 238;" f -overDebugEvent src/Dodge/Debug.hs 38;" f +overDebugEvent src/Dodge/Debug.hs 37;" f overLnkPosDir src/Dodge/RoomLink.hs 115;" f overLnkType src/Dodge/RoomLink.hs 106;" f overPos src/Picture/Base.hs 298;" f @@ -4389,7 +4395,7 @@ pauseGame src/Dodge/Update/Input/InGame.hs 531;" f pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f -pauseTime src/Dodge/Update.hs 196;" f +pauseTime src/Dodge/Update.hs 195;" f pbFlicker src/Dodge/Update.hs 520;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 97;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f @@ -4600,7 +4606,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToDeg src/Geometry/Vector.hs 123;" f -radiusSpring src/Dodge/Update.hs 919;" f +radiusSpring src/Dodge/Update.hs 926;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randDirPS src/Dodge/PlacementSpot.hs 58;" f @@ -4622,7 +4628,7 @@ randPeakedParam src/RandomHelp.hs 132;" f randProb src/RandomHelp.hs 70;" f randSpark src/Dodge/Spark.hs 70;" f randSparkExtraVel src/Dodge/Spark.hs 93;" f -randWallReflect src/Dodge/Update.hs 695;" f +randWallReflect src/Dodge/Update.hs 702;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f @@ -4646,7 +4652,7 @@ recComFindPredecessor src/Dodge/Terminal.hs 200;" f recComFindSuccessor src/Dodge/Terminal.hs 190;" f recComLookup src/Dodge/Terminal.hs 180;" f recTabComplete src/Dodge/Terminal.hs 227;" f -recoilAmount src/Dodge/HeldUse.hs 470;" f +recoilAmount src/Dodge/HeldUse.hs 482;" f rectNSWE src/Geometry/Polygon.hs 15;" f rectVV src/Geometry/Polygon.hs 48;" f rectWH src/Geometry/Polygon.hs 19;" f @@ -4676,7 +4682,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 176;" f remoteDetonator src/Dodge/Item/Scope.hs 152;" f remoteScreen src/Dodge/Item/Scope.hs 146;" f removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 905;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 930;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeLights src/Dodge/Room/Tutorial.hs 361;" f @@ -4725,9 +4731,9 @@ 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 191;" f +rightChildList src/Dodge/Item/Grammar.hs 195;" f rightHandPQ src/Dodge/Creature/HandPos.hs 40;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 174;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 178;" f rightLegPQ src/Dodge/Creature/HandPos.hs 101;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f @@ -4831,8 +4837,8 @@ scrollAugInvSel src/Dodge/Inventory.hs 191;" f scrollAugNextInSection src/Dodge/Inventory.hs 204;" f scrollRBOption src/Dodge/Update/Scroll.hs 137;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f -scrollTimeBack src/Dodge/Update.hs 222;" f -scrollTimeForward src/Dodge/Update.hs 239;" f +scrollTimeBack src/Dodge/Update.hs 221;" f +scrollTimeForward src/Dodge/Update.hs 238;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f @@ -4873,8 +4879,8 @@ sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setAimPosture src/Dodge/Creature/YourControl.hs 145;" f setChannelPos src/Sound.hs 152;" f -setClickWorldPos src/Dodge/Update.hs 109;" f -setClip src/Dodge/Debug.hs 202;" f +setClickWorldPos src/Dodge/Update.hs 108;" f +setClip src/Dodge/Debug.hs 201;" f setDepth src/Picture/Base.hs 120;" f setDirPS src/Dodge/PlacementSpot.hs 51;" f setFallback src/Dodge/PlacementSpot.hs 127;" f @@ -4928,7 +4934,7 @@ shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f shellHitCreature src/Dodge/Projectile/Update.hs 84;" f shellHitFloor src/Dodge/Projectile/Update.hs 98;" f shellHitWall src/Dodge/Projectile/Update.hs 60;" f -shellMag src/Dodge/Item/Ammo.hs 46;" f +shellMag src/Dodge/Item/Ammo.hs 47;" f shellModule src/Dodge/Item/Scope.hs 128;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 91;" f @@ -4952,16 +4958,17 @@ shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shineTargetLaser src/Dodge/Creature/State.hs 201;" f shineTorch src/Dodge/Creature/State.hs 238;" f -shootBullet src/Dodge/HeldUse.hs 968;" f -shootBullets src/Dodge/HeldUse.hs 962;" f +shootBullet src/Dodge/HeldUse.hs 993;" f +shootBullets src/Dodge/HeldUse.hs 987;" f shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f -shootLaser src/Dodge/HeldUse.hs 850;" f -shootPulseBall src/Dodge/HeldUse.hs 891;" f -shootPulseLaser src/Dodge/HeldUse.hs 878;" f +shootLaser src/Dodge/HeldUse.hs 863;" f +shootPlasmaBall src/Dodge/HeldUse.hs 904;" f +shootPulseBall src/Dodge/HeldUse.hs 916;" f +shootPulseLaser src/Dodge/HeldUse.hs 891;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f -shootTeslaArc src/Dodge/HeldUse.hs 1182;" f +shootTeslaArc src/Dodge/HeldUse.hs 1207;" f shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f -shootTractorBeam src/Dodge/HeldUse.hs 819;" f +shootTractorBeam src/Dodge/HeldUse.hs 832;" f shootersRoom src/Dodge/Room/Room.hs 338;" f shootersRoom' src/Dodge/Room/Room.hs 305;" f shootersRoom1 src/Dodge/Room/Room.hs 328;" f @@ -4972,12 +4979,12 @@ shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 63;" f shoulderSH src/Dodge/Creature/Picture.hs 122;" f showAttachItem src/Dodge/Item/Display.hs 92;" f -showEquipItem src/Dodge/Item/Display.hs 107;" f +showEquipItem src/Dodge/Item/Display.hs 108;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f showManObj src/Dodge/TestString.hs 55;" f -showMuzzlePositions src/Dodge/Debug.hs 255;" f +showMuzzlePositions src/Dodge/Debug.hs 254;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f showTimeFlow src/Dodge/TestString.hs 78;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 183;" f @@ -4988,7 +4995,7 @@ shufflePair src/RandomHelp.hs 148;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 61;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 924;" f +simpleCrSprings src/Dodge/Update.hs 931;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f @@ -5018,7 +5025,7 @@ slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f slideWindow src/ListHelp.hs 81;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f -smallBattery src/Dodge/Item/Ammo.hs 56;" f +smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallDrawTree src/Dodge/LevelGen.hs 92;" f @@ -5107,7 +5114,7 @@ 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 323;" f +stackedInventory src/Dodge/Creature.hs 324;" f startCr src/Dodge/Creature.hs 90;" f startCrafts src/Dodge/Room/Start.hs 93;" f startDrag src/Dodge/Update/Input/InGame.hs 285;" f @@ -5142,7 +5149,7 @@ stripZ src/Geometry/Vector3D.hs 97;" f subInvX src/Dodge/ListDisplayParams.hs 51;" f subMap src/TreeHelp.hs 119;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 94;" f -succB src/Dodge/Debug.hs 122;" f +succB src/Dodge/Debug.hs 121;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 57;" f swapInOutLinks src/Dodge/RoomLink.hs 99;" f swapIndices src/ListHelp.hs 50;" f @@ -5194,7 +5201,7 @@ teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 411;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f testEvent src/Dodge/Event/Test.hs 11;" f -testInventory src/Dodge/Creature.hs 304;" f +testInventory src/Dodge/Creature.hs 305;" f testPic src/Dodge/Render/ShapePicture.hs 57;" f testSPic src/Dodge/Render/ShapePicture.hs 54;" f testStringInit src/Dodge/TestString.hs 34;" f @@ -5231,10 +5238,10 @@ throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 197;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 182;" f +timeFlowUpdate src/Dodge/Update.hs 181;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f -tinMag src/Dodge/Item/Ammo.hs 23;" f +tinMag src/Dodge/Item/Ammo.hs 24;" f ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 675;" f ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 717;" f @@ -5263,10 +5270,10 @@ toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f toggleCombineInv src/Dodge/DisplayInventory.hs 315;" f toggleCommands src/Dodge/Terminal.hs 86;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 67;" f -toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 105;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f +toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f toggleJust src/MaybeHelp.hs 39;" f -toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 110;" f +toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 111;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 691;" f tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 633;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f @@ -5277,12 +5284,12 @@ topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 51;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f -torqueAmount src/Dodge/HeldUse.hs 584;" f +torqueAmount src/Dodge/HeldUse.hs 596;" f torqueCr src/Dodge/WorldEffect.hs 87;" f torso src/Dodge/Creature/Picture.hs 100;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 831;" f +tractorBeamAt src/Dodge/HeldUse.hs 844;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 46;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 417;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -5320,7 +5327,7 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 22;" f treePath src/Dodge/Tree/GenerateStructure.hs 13;" f treePaths src/TreeHelp.hs 139;" f treePost src/TreeHelp.hs 46;" f -treeToPotentialFunction src/Dodge/Item/Grammar.hs 143;" f +treeToPotentialFunction src/Dodge/Item/Grammar.hs 147;" f triLootRoom src/Dodge/Room/Treasure.hs 23;" f triggerDoorRoom src/Dodge/Room/Door.hs 31;" f triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f @@ -5398,8 +5405,8 @@ updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 617;" f updateCamera src/Dodge/Update/Camera.hs 32;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f -updateCloud src/Dodge/Update.hs 852;" f -updateClouds src/Dodge/Update.hs 721;" f +updateCloud src/Dodge/Update.hs 859;" f +updateClouds src/Dodge/Update.hs 728;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 37;" f @@ -5407,33 +5414,33 @@ updateCreatureGroups src/Dodge/Update.hs 589;" f updateCreatureSoundPositions src/Dodge/Update.hs 568;" f updateCreatureStride src/Dodge/Update.hs 347;" f updateCreatureStrides src/Dodge/Update.hs 344;" f -updateDebris src/Dodge/Update.hs 624;" f +updateDebris src/Dodge/Update.hs 631;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f -updateDebugMessageOffset src/Dodge/Update.hs 103;" f -updateDelayedEvents src/Dodge/Update.hs 955;" f +updateDebugMessageOffset src/Dodge/Update.hs 102;" f +updateDelayedEvents src/Dodge/Update.hs 962;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 610;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 358;" f -updateDust src/Dodge/Update.hs 899;" f -updateDusts src/Dodge/Update.hs 727;" f +updateDust src/Dodge/Update.hs 906;" f +updateDusts src/Dodge/Update.hs 734;" f updateEdge src/Dodge/Path.hs 43;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 712;" f +updateEnergyBalls src/Dodge/Update.hs 719;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 511;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 709;" f +updateFlames src/Dodge/Update.hs 716;" f updateFloatingCamera src/Dodge/Update/Camera.hs 37;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f -updateGas src/Dodge/Update.hs 874;" f -updateGasses src/Dodge/Update.hs 724;" f -updateGusts src/Dodge/Update.hs 836;" f +updateGas src/Dodge/Update.hs 881;" f +updateGasses src/Dodge/Update.hs 731;" f +updateGusts src/Dodge/Update.hs 843;" f updateIMl src/Dodge/Update.hs 583;" f updateIMl' src/Dodge/Update.hs 586;" f updateInGameCamera src/Dodge/Update/Camera.hs 85;" f @@ -5449,7 +5456,7 @@ updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 410;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 11;" f updateLasers src/Dodge/Update.hs 470;" f -updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f +updateLeftParentSF src/Dodge/Item/Grammar.hs 174;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 47;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 447;" f @@ -5465,50 +5472,51 @@ updateObjCatMaybes src/Dodge/Update.hs 601;" f updateObjMapMaybe src/Dodge/Update.hs 594;" f updatePastWorlds src/Dodge/Update.hs 459;" f updatePlasmaBall src/Dodge/Update.hs 484;" f +updatePlasmaBalls src/Dodge/Update.hs 624;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 180;" f updatePulseBall src/Dodge/Update.hs 500;" f -updatePulseLaser src/Dodge/Update.hs 664;" f +updatePulseLaser src/Dodge/Update.hs 671;" f updatePulseLasers src/Dodge/Update.hs 479;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f updateRadarBlips src/Dodge/Update.hs 613;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 715;" f +updateRadarSweeps src/Dodge/Update.hs 722;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f -updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f +updateRightParentSF src/Dodge/Item/Grammar.hs 185;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 75;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 262;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 706;" f +updateShockwaves src/Dodge/Update.hs 713;" f updateSingleNodes src/TreeHelp.hs 98;" f updateSound src/Sound.hs 73;" f updateSounds src/Sound.hs 68;" f updateSpark src/Dodge/Spark.hs 20;" f -updateSparks src/Dodge/Update.hs 718;" f +updateSparks src/Dodge/Update.hs 725;" f updateTerminal src/Dodge/Update.hs 538;" f -updateTeslaArc src/Dodge/Update.hs 634;" f -updateTeslaArcs src/Dodge/Update.hs 631;" f +updateTeslaArc src/Dodge/Update.hs 641;" f +updateTeslaArcs src/Dodge/Update.hs 638;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 703;" f +updateTractorBeams src/Dodge/Update.hs 710;" f updateTurret src/Dodge/Machine/Update.hs 56;" f -updateUniverse src/Dodge/Update.hs 82;" f -updateUniverseFirst src/Dodge/Update.hs 93;" f -updateUniverseLast src/Dodge/Update.hs 144;" f -updateUniverseMid src/Dodge/Update.hs 164;" f +updateUniverse src/Dodge/Update.hs 81;" f +updateUniverseFirst src/Dodge/Update.hs 92;" f +updateUniverseLast src/Dodge/Update.hs 143;" f +updateUniverseMid src/Dodge/Update.hs 163;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 46;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 449;" f -updateWorldEventFlag src/Dodge/Update.hs 128;" f -updateWorldEventFlags src/Dodge/Update.hs 116;" f +updateWorldEventFlag src/Dodge/Update.hs 127;" f +updateWorldEventFlags src/Dodge/Update.hs 115;" f upperBody src/Dodge/Creature/Picture.hs 118;" f upperBox src/Shape.hs 153;" f upperBoxHalf src/Shape.hs 219;" f @@ -5528,21 +5536,21 @@ upperPrismPolySU src/Shape.hs 110;" f upperPrismPolyTS src/Shape.hs 116;" f upperRounded src/Shape.hs 182;" f useBulletPayload src/Dodge/Bullet.hs 117;" f -useGasParams src/Dodge/HeldUse.hs 1086;" f +useGasParams src/Dodge/HeldUse.hs 1111;" f useHotkey src/Dodge/Creature/YourControl.hs 77;" f -useInventoryPath src/Dodge/HeldUse.hs 1378;" f +useInventoryPath src/Dodge/HeldUse.hs 1403;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f -useLoadedAmmo src/Dodge/HeldUse.hs 723;" f +useLoadedAmmo src/Dodge/HeldUse.hs 735;" f useMagShield src/Dodge/Euse.hs 33;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1338;" f +useRewindGun src/Dodge/HeldUse.hs 1363;" f useRoomPosCond src/Dodge/PlacementSpot.hs 187;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 190;" f -useStopWatch src/Dodge/HeldUse.hs 1319;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1327;" f +useStopWatch src/Dodge/HeldUse.hs 1344;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1352;" f useUnusedLnk src/Dodge/PlacementSpot.hs 178;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 216;" f @@ -5564,7 +5572,7 @@ vertTrans src/MatrixHelper.hs 103;" f verticalPipe src/Dodge/Picture.hs 19;" f verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalWire src/Dodge/Wire.hs 23;" f -vgunMuzzles src/Dodge/HeldUse.hs 344;" f +vgunMuzzles src/Dodge/HeldUse.hs 356;" f viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f @@ -5576,7 +5584,7 @@ visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 62;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f -walkNozzle src/Dodge/HeldUse.hs 807;" f +walkNozzle src/Dodge/HeldUse.hs 820;" f walkableNodeNear src/Dodge/Path.hs 69;" f wallBlips src/Dodge/RadarSweep.hs 99;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" f @@ -5584,7 +5592,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallToSurface src/Dodge/Base/Collide.hs 180;" f wallsFromRooms src/Dodge/Layout.hs 137;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f -warmupSound src/Dodge/HeldUse.hs 1372;" f +warmupSound src/Dodge/HeldUse.hs 1397;" f warningRooms src/Dodge/Room/Warning.hs 33;" f warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f