From 816ab4222fd14529787d52207d21e56067efd4bd Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 5 Jun 2025 19:41:33 +0100 Subject: [PATCH] Move UseCondition out of record --- src/Dodge/Cuse.hs | 16 -- src/Dodge/Data/Item.hs | 2 +- src/Dodge/Data/Item/HeldUse.hs | 28 --- src/Dodge/Data/Item/Use.hs | 69 +----- src/Dodge/Data/Muzzle.hs | 59 +++++ src/Dodge/Data/UseCondition.hs | 12 + src/Dodge/Default/Item.hs | 4 +- src/Dodge/Default/Item/Use.hs | 14 -- src/Dodge/Equipment.hs | 22 +- src/Dodge/HeldUse.hs | 1 + src/Dodge/Item/Grammar.hs | 6 +- src/Dodge/Item/Held/Utility.hs | 23 +- src/Dodge/ItemUseCondition.hs | 11 + src/Dodge/Projectile/Create.hs | 1 + tags | 439 +++++++++++++++++---------------- 15 files changed, 325 insertions(+), 382 deletions(-) delete mode 100644 src/Dodge/Cuse.hs delete mode 100644 src/Dodge/Data/Item/HeldUse.hs create mode 100644 src/Dodge/Data/Muzzle.hs create mode 100644 src/Dodge/Data/UseCondition.hs delete mode 100644 src/Dodge/Default/Item/Use.hs create mode 100644 src/Dodge/ItemUseCondition.hs diff --git a/src/Dodge/Cuse.hs b/src/Dodge/Cuse.hs deleted file mode 100644 index 098727512..000000000 --- a/src/Dodge/Cuse.hs +++ /dev/null @@ -1,16 +0,0 @@ -module Dodge.Cuse where - -import Dodge.Inventory -import Control.Lens -import Dodge.Data.World -import Data.Maybe - -useC :: Cuse -> Item -> Creature -> World -> World -useC cu itm cr = fromMaybe id $ do - i <- itm ^? itLocation . ilInvID - return $ rmInvItem (_crID cr) i . useC' cu itm cr - -useC' :: Cuse -> Item -> Creature -> World -> World -useC' cu = case cu of - CDoNothing -> const $ const id - CHeal x -> const $ \cr -> cWorld . lWorld . creatures . ix (_crID cr) . crHP +~ x diff --git a/src/Dodge/Data/Item.hs b/src/Dodge/Data/Item.hs index acb07f5f7..c9178a139 100644 --- a/src/Dodge/Data/Item.hs +++ b/src/Dodge/Data/Item.hs @@ -40,7 +40,7 @@ data Consumables data Item = Item { _itUse :: ItemUse - , _itUseCondition :: UseCondition +-- , _itUseCondition :: UseCondition , _itConsumables :: Consumables , _itType :: ItemType , _itID :: NewInt ItmInt diff --git a/src/Dodge/Data/Item/HeldUse.hs b/src/Dodge/Data/Item/HeldUse.hs deleted file mode 100644 index a5d60a3c5..000000000 --- a/src/Dodge/Data/Item/HeldUse.hs +++ /dev/null @@ -1,28 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE StrictData #-} -{-# LANGUAGE TemplateHaskell #-} - -module Dodge.Data.Item.HeldUse where - ---import Dodge.Data.Item.Use.Consumption.Ammo -import Dodge.Data.Magnet -import Data.Aeson -import Data.Aeson.TH -import Control.Lens - -data Cuse - = CDoNothing - | CHeal Int - deriving (Eq, Ord, Show, Read) --Generic, Flat) - -data Euse - = EDoNothing - | EMagShield MagnetBuBu - | EWristShield - | EHeadLamp - deriving (Eq, Ord, Show, Read) --Generic, Flat) - -makeLenses ''Euse -deriveJSON defaultOptions ''Cuse -deriveJSON defaultOptions ''Euse diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 731dfcac6..fd4839537 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -5,7 +5,6 @@ module Dodge.Data.Item.Use ( module Dodge.Data.Item.Use, - module Dodge.Data.Item.HeldUse, module Dodge.Data.Item.Use.Consumption, module Dodge.Data.Item.Targeting, module Dodge.Data.GenFloat, @@ -19,8 +18,6 @@ import Data.Aeson.TH import qualified Data.Set as S import Dodge.Data.GenFloat import Dodge.Data.Item.BulletMod ---import Dodge.Data.Item.HeldDelay -import Dodge.Data.Item.HeldUse import Dodge.Data.Item.Scope import Dodge.Data.Item.Targeting import Dodge.Data.Item.Use.Consumption @@ -47,11 +44,6 @@ data UseFocus | UseFromLocation deriving (Eq, Show, Read) -data UseCondition - = UseableWhenAimed - | UseableAnytime - deriving (Eq, Show, Read) - data AttachParams = APProjectiles {_apProjectiles :: [Int]} | APInt {_apInt :: Int} @@ -65,68 +57,13 @@ data AmmoParams | NoAmmoParams deriving (Eq, Show, Read) --Generic, Flat) -data FlareType - = NoFlare - | BasicFlare - | NoLightFlare - | MiniGunFlare - | HeavySmokeFlare - | LasGunFlare - | TeslaGunFlare - deriving (Eq, Ord, Show, Read) --Generic, Flat) - -data MuzzleEffect - = MuzzleShootBullet - | MuzzleLaser - | MuzzleTesla - | MuzzleTractor - | MuzzleRLauncher - | MuzzleGLauncher - | MuzzleNozzle - { _nzPressure :: GenFloat - , _nzMaxWalkAngle :: Float - , _nzWalkSpeed :: Float - } - | MuzzleShatter - | MuzzleDetector - | MuzzleBlink - | MuzzleUnsafeBlink - | MuzzleRewind - | MuzzleStopper - | MuzzleScroller - deriving (Eq, Ord, Show, Read) --Generic, Flat) - -data AmmoPerShot - = UseExactly {_useExactly :: Int} - | UseUpTo {_useUpTo :: Int} - deriving (Eq, Ord, Show, Read) --Generic, Flat) - -data Muzzle = Muzzle - { _mzPos :: V2 Float - , _mzRot :: Float - , _mzInaccuracy :: Float - , _mzAmmoSlot :: Int - , _mzFlareType :: FlareType - , _mzEffect :: MuzzleEffect - , _mzAmmoPerShot :: AmmoPerShot - , _mzFrame :: Int - } - deriving (Eq, Ord, Show, Read) --Generic, Flat) - makeLenses ''ItemUse -makeLenses ''Muzzle makeLenses ''AttachParams makeLenses ''AmmoParams -makeLenses ''MuzzleEffect -makeLenses ''AmmoPerShot -makeLenses ''UseCondition +--makeLenses ''UseCondition makeLenses ''UseFocus -deriveJSON defaultOptions ''UseFocus -deriveJSON defaultOptions ''UseCondition -deriveJSON defaultOptions ''MuzzleEffect -deriveJSON defaultOptions ''FlareType +--deriveJSON defaultOptions ''UseFocus +--deriveJSON defaultOptions ''UseCondition deriveJSON defaultOptions ''AmmoParams -deriveJSON defaultOptions ''AmmoPerShot -deriveJSON defaultOptions ''Muzzle deriveJSON defaultOptions ''AttachParams deriveJSON defaultOptions ''ItemUse diff --git a/src/Dodge/Data/Muzzle.hs b/src/Dodge/Data/Muzzle.hs new file mode 100644 index 000000000..d6b5e4c6a --- /dev/null +++ b/src/Dodge/Data/Muzzle.hs @@ -0,0 +1,59 @@ +{-# LANGUAGE StrictData #-} +{-# LANGUAGE TemplateHaskell #-} +module Dodge.Data.Muzzle where + +import Dodge.Data.GenFloat +import Linear +import Control.Lens + +data Muzzle = Muzzle + { _mzPos :: V2 Float + , _mzRot :: Float + , _mzInaccuracy :: Float + , _mzAmmoSlot :: Int + , _mzFlareType :: FlareType + , _mzEffect :: MuzzleEffect + , _mzAmmoPerShot :: AmmoPerShot + , _mzFrame :: Int + } + deriving (Eq, Ord, Show, Read) --Generic, Flat) + +data FlareType + = NoFlare + | BasicFlare + | NoLightFlare + | MiniGunFlare + | HeavySmokeFlare + | LasGunFlare + | TeslaGunFlare + deriving (Eq, Ord, Show, Read) --Generic, Flat) + +data MuzzleEffect + = MuzzleShootBullet + | MuzzleLaser + | MuzzleTesla + | MuzzleTractor + | MuzzleRLauncher + | MuzzleGLauncher + | MuzzleNozzle + { _nzPressure :: GenFloat + , _nzMaxWalkAngle :: Float + , _nzWalkSpeed :: Float + } + | MuzzleShatter + | MuzzleDetector + | MuzzleBlink + | MuzzleUnsafeBlink + | MuzzleRewind + | MuzzleStopper + | MuzzleScroller + deriving (Eq, Ord, Show, Read) --Generic, Flat) + +data AmmoPerShot + = UseExactly {_useExactly :: Int} + | UseUpTo {_useUpTo :: Int} + deriving (Eq, Ord, Show, Read) --Generic, Flat) + +makeLenses ''Muzzle +makeLenses ''MuzzleEffect +makeLenses ''AmmoPerShot diff --git a/src/Dodge/Data/UseCondition.hs b/src/Dodge/Data/UseCondition.hs new file mode 100644 index 000000000..695da453e --- /dev/null +++ b/src/Dodge/Data/UseCondition.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE StrictData #-} +module Dodge.Data.UseCondition + where + +data UseCondition + = UseableWhenAimed + | UseableWhenHeld + | UseableAnytime + | NeverUsable + deriving (Eq, Show, Read) + + diff --git a/src/Dodge/Default/Item.hs b/src/Dodge/Default/Item.hs index e0328d743..efb8ee284 100644 --- a/src/Dodge/Default/Item.hs +++ b/src/Dodge/Default/Item.hs @@ -1,12 +1,10 @@ module Dodge.Default.Item ( defaultHeldItem, defaultCraftItem, - module Dodge.Default.Item.Use, ) where import Control.Lens import Dodge.Data.Item -import Dodge.Default.Item.Use defaultHeldItem :: Item defaultHeldItem = @@ -19,7 +17,7 @@ defaultHeldItem = , _itLocation = InVoid , _itUse = UseHeld , _itParams = NoParams - , _itUseCondition = UseableWhenAimed +-- , _itUseCondition = UseableWhenAimed , _itScroll = NoItemScroll , _itTimeLastUsed = 0 } diff --git a/src/Dodge/Default/Item/Use.hs b/src/Dodge/Default/Item/Use.hs deleted file mode 100644 index 04120425b..000000000 --- a/src/Dodge/Default/Item/Use.hs +++ /dev/null @@ -1,14 +0,0 @@ -module Dodge.Default.Item.Use ( - module Dodge.Default.Item.Use, -) where - -import Dodge.Data.Item.Use - -defaultEquipUse :: ItemUse -defaultEquipUse = UseEquip - ---defaultHeldUse :: ItemUse ---defaultHeldUse = --- UseHeld --- { _heldFrame = 0 --- } diff --git a/src/Dodge/Equipment.hs b/src/Dodge/Equipment.hs index 2edc772ff..b435a69d6 100644 --- a/src/Dodge/Equipment.hs +++ b/src/Dodge/Equipment.hs @@ -3,11 +3,11 @@ module Dodge.Equipment ( effectOnEquip, ) where -import Dodge.Data.Equipment.Misc import Control.Lens import Data.Maybe import Dodge.Creature.HandPos import Dodge.Creature.Test +import Dodge.Data.Equipment.Misc import Dodge.Data.World import Dodge.Item.Location import Dodge.Wall.Delete @@ -18,34 +18,29 @@ import qualified IntMapHelp as IM effectOnRemove :: Item -> Creature -> World -> World effectOnRemove itm = case itm ^. itType of - EQUIP WRISTARMOUR -> onRemoveWristShield' itm + EQUIP WRISTARMOUR -> onRemoveWristShield itm _ -> \_ -> id -onRemoveWristShield' :: Item -> Creature -> World -> World -onRemoveWristShield' itm _ = - --(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall +onRemoveWristShield :: Item -> Creature -> World -> World +onRemoveWristShield itm _ = (pointerToItem itm . itParams .~ NoParams) . mremovewall where mremovewall = fromMaybe id $ do - --i <- itm ^? itUse . uequipEffect . eeParams . eparamID i <- itm ^? itParams . itParamID return $ deleteWallID i effectOnEquip :: Item -> Creature -> World -> World effectOnEquip itm = case itm ^. itType of - EQUIP WRISTARMOUR -> onEquipWristShield' itm + EQUIP WRISTARMOUR -> onEquipWristShield itm _ -> \_ -> id -onEquipWristShield' :: Item -> Creature -> World -> World -onEquipWristShield' itm cr w = +onEquipWristShield :: Item -> Creature -> World -> World +onEquipWristShield itm cr w = w - -- & pointerToItem itm . itUse . uequipEffect . eeParams .~ EquipID i & pointerToItem itm . itParams .~ ItemParamID{_itParamID = i} & cWorld . lWorld . walls . at i ?~ forceField{_wlID = i} & setWristShieldPos - ( itm - -- & itUse . uequipEffect . eeParams .~ EquipID i - & itParams .~ ItemParamID{_itParamID = i} + ( itm & itParams .~ ItemParamID{_itParamID = i} ) cr where @@ -54,7 +49,6 @@ onEquipWristShield' itm cr w = setWristShieldPos :: Item -> Creature -> World -> World setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline where - --i = _eparamID $ _eeParams $ _uequipEffect $ _itUse itm i = _itParamID $ _itParams itm wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) invid = _ilInvID (_itLocation itm) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index eef49fe53..754287786 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -10,6 +10,7 @@ module Dodge.HeldUse ( heldEffectMuzzles, ) where +import Dodge.Data.Muzzle import Dodge.Data.UseDelay import Dodge.Item.UseDelay import Dodge.Base diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index b32ee5a19..f85fe5366 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -7,6 +7,8 @@ module Dodge.Item.Grammar ( allInvLocs, ) where +import Dodge.ItemUseCondition +import Dodge.Data.UseCondition import Dodge.Item.MagAmmoType import Dodge.Data.AmmoType import Dodge.Item.AmmoSlots @@ -150,8 +152,8 @@ itemToFunction itm = case itm ^. itType of ITEMSCAN -> ToggleSF INTROSCAN {} -> IntroScanSF HELD LASER -> WeaponTargetingSF - HELD{} -> case itm ^? itUseCondition of - Just UseableWhenAimed -> HeldPlatformSF + HELD{} -> case itUseCondition itm of + UseableWhenAimed -> HeldPlatformSF --Just MustBeHeld -> UnloadedWeaponSF _ -> GadgetPlatformSF _ diff --git a/src/Dodge/Item/Held/Utility.hs b/src/Dodge/Item/Held/Utility.hs index e221d8421..729fb5ec9 100644 --- a/src/Dodge/Item/Held/Utility.hs +++ b/src/Dodge/Item/Held/Utility.hs @@ -33,30 +33,13 @@ torch = -- | Sends out pulses that display walls. detector :: Detector -> Item -detector dt = - defaultHeldItem - & itUseCondition .~ UseableAnytime --- & itUse . heldDelay . rateMax .~ 20 --- & itAmmoSlots .~ singleAmmo ElectricalAmmo - & itType .~ DETECTOR dt --- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleDetector --- & itUse . heldMuzzles . ix 0 . mzAmmoPerShot .~ UseExactly 100 +detector dt = defaultHeldItem & itType .~ DETECTOR dt blinker :: Item -blinker = - defaultHeldItem - & itUseCondition .~ UseableAnytime --- & itUse . heldDelay . rateMax .~ 20 --- & itAmmoSlots .~ singleAmmo ElectricalAmmo --- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleBlink --- & itUse . heldMuzzles . ix 0 . mzAmmoPerShot .~ UseExactly 10000000 - & itType .~ HELD BLINKER +blinker = defaultHeldItem & itType .~ HELD BLINKER unsafeBlinker :: Item -unsafeBlinker = - blinker --- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleUnsafeBlink - & itType .~ HELD BLINKERUNSAFE +unsafeBlinker = blinker & itType .~ HELD BLINKERUNSAFE rewinder :: Item rewinder = diff --git a/src/Dodge/ItemUseCondition.hs b/src/Dodge/ItemUseCondition.hs new file mode 100644 index 000000000..8aca3068a --- /dev/null +++ b/src/Dodge/ItemUseCondition.hs @@ -0,0 +1,11 @@ +module Dodge.ItemUseCondition (itUseCondition) where + +import Dodge.Data.Item +import Dodge.Data.UseCondition + +itUseCondition :: Item -> UseCondition +itUseCondition itm = case _itType itm of + DETECTOR _ -> UseableAnytime + HELD BLINKER -> UseableAnytime + HELD UNSAFEBLINKER -> UseableAnytime + _ -> UseableWhenAimed diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index 1475dc629..7b494b7cf 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -6,6 +6,7 @@ module Dodge.Projectile.Create ( --import Dodge.Data.ComposedItem --import Dodge.Data.DoubleTree +import Dodge.Data.Muzzle import Data.Maybe import Dodge.Data.World import Dodge.Item.Location diff --git a/tags b/tags index d055550b4..efbc592c0 100644 --- a/tags +++ b/tags @@ -25,9 +25,9 @@ ALTERIFLE src/Dodge/Data/Item/Combine.hs 153;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 21;" C AMR src/Dodge/Data/Item/Combine.hs 158;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 68;" C -APInt src/Dodge/Data/Item/Use.hs 57;" C -APNothing src/Dodge/Data/Item/Use.hs 58;" C -APProjectiles src/Dodge/Data/Item/Use.hs 56;" C +APInt src/Dodge/Data/Item/Use.hs 49;" C +APNothing src/Dodge/Data/Item/Use.hs 50;" C +APProjectiles src/Dodge/Data/Item/Use.hs 48;" C AQUAMARINE src/Color/Data.hs 24;" C ARHUD src/Dodge/Data/Item/Combine.hs 35;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 51;" C @@ -68,10 +68,10 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 52;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 58;" C -AmmoParams src/Dodge/Data/Item/Use.hs 61;" t +AmmoParams src/Dodge/Data/Item/Use.hs 53;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 22;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 60;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 99;" t +AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 59;" C @@ -103,7 +103,7 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 40;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C Attach src/Dodge/Item/Attach.hs 1;" m -AttachParams src/Dodge/Data/Item/Use.hs 55;" t +AttachParams src/Dodge/Data/Item/Use.hs 47;" t AttachType src/Dodge/Data/Item/Combine.hs 91;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C @@ -154,7 +154,7 @@ BaseTriggerType src/Dodge/BaseTriggerType.hs 3;" m BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 50;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" C -BasicFlare src/Dodge/Data/Item/Use.hs 70;" C +BasicFlare src/Dodge/Data/Muzzle.hs 23;" C BatteryGuns src/Dodge/Item/Held/BatteryGuns.hs 1;" m BatteryGuns src/Dodge/Item/Weapon/BatteryGuns.hs 1;" m Beam src/Dodge/Data/Beam.hs 18;" t @@ -235,7 +235,7 @@ BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C -BulletParams src/Dodge/Data/Item/Use.hs 62;" C +BulletParams src/Dodge/Data/Item/Use.hs 54;" C BulletPayload src/Dodge/Data/Bullet.hs 41;" t BulletTrajectory src/Dodge/Data/Bullet.hs 49;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 56;" t @@ -291,7 +291,7 @@ CardinalPoint src/Dodge/Base/CardinalPoint.hs 1;" m CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m Carriage src/Dodge/Data/Creature/Stance.hs 20;" t Carte src/Dodge/Render/HUD/Carte.hs 1;" m -ChainEffect src/Dodge/HeldUse.hs 77;" t +ChainEffect src/Dodge/HeldUse.hs 78;" t ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C @@ -690,7 +690,7 @@ FlameBeamCombine src/Dodge/Data/Beam.hs 39;" C FlameSound src/Dodge/Data/SoundOrigin.hs 27;" C Flamer src/Dodge/Data/SoundOrigin.hs 25;" C Flank src/Dodge/Data/ActionPlan.hs 177;" C -FlareType src/Dodge/Data/Item/Use.hs 68;" t +FlareType src/Dodge/Data/Muzzle.hs 21;" t FlashBall src/Dodge/Data/Bullet.hs 32;" C FlatFaces src/Shape/Data.hs 17;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 15;" C @@ -760,7 +760,7 @@ GasAmmo src/Dodge/Data/AmmoType.hs 15;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" t -GasParams src/Dodge/Data/Item/Use.hs 64;" C +GasParams src/Dodge/Data/Item/Use.hs 56;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenFloat src/Dodge/Data/GenFloat.hs 5;" m @@ -828,7 +828,7 @@ HammerUp src/Dodge/Data/Hammer.hs 20;" C HandPos src/Dodge/Creature/HandPos.hs 1;" m HardQuit src/Dodge/Data/Universe.hs 70;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 73;" C +HeavySmokeFlare src/Dodge/Data/Muzzle.hs 26;" C Held src/Dodge/Item/Held.hs 1;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m HeldItemType src/Dodge/Data/Item/Combine.hs 138;" t @@ -969,7 +969,8 @@ ItemSetWarmTime src/Dodge/Data/Item/Effect.hs 34;" C ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 40;" t ItemTargeting src/Dodge/Data/Item.hs 61;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t -ItemUse src/Dodge/Data/Item/Use.hs 29;" t +ItemUse src/Dodge/Data/Item/Use.hs 26;" t +ItemUseCondition src/Dodge/ItemUseCondition.hs 1;" m ItemUseDelay src/Dodge/Data/UseDelay.hs 11;" t ItemUseToggle src/Dodge/Data/Item/Effect.hs 30;" C ItmCrWdWd src/Dodge/Data/Item/Use/Equipment.hs 26;" t @@ -990,7 +991,7 @@ LASER src/Dodge/Data/Item/Combine.hs 168;" C LASERING src/Dodge/Data/Damage/Type.hs 19;" C LDT src/Dodge/Data/DoubleTree.hs 40;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C -LDTComb src/Dodge/Item/Grammar.hs 237;" t +LDTComb src/Dodge/Item/Grammar.hs 238;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C @@ -1018,7 +1019,7 @@ Lampoid src/Dodge/Data/Creature/Misc.hs 83;" C Lampoid src/Dodge/Lampoid.hs 1;" m Large src/Shape/Data.hs 29;" C LasBeamCombine src/Dodge/Data/Beam.hs 40;" C -LasGunFlare src/Dodge/Data/Item/Use.hs 74;" C +LasGunFlare src/Dodge/Data/Muzzle.hs 27;" C LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 21;" t @@ -1190,7 +1191,7 @@ Metapysics src/Dodge/Data/Scenario.hs 17;" t Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C MiniGunAI src/Dodge/Data/Creature/Misc.hs 58;" C -MiniGunFlare src/Dodge/Data/Item/Use.hs 72;" C +MiniGunFlare src/Dodge/Data/Muzzle.hs 25;" C Misc src/Dodge/Data/Creature/Misc.hs 6;" m Misc src/Dodge/Data/Equipment/Misc.hs 6;" m Misc src/Dodge/Data/Item/Misc.hs 6;" m @@ -1224,23 +1225,24 @@ Multiset src/Multiset.hs 4;" m Music src/Music.hs 1;" m MusicData src/Music.hs 7;" t Mute src/Dodge/Data/Creature/Misc.hs 28;" C -Muzzle src/Dodge/Data/Item/Use.hs 104;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 92;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 91;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 78;" t +Muzzle src/Dodge/Data/Muzzle.hs 9;" t +Muzzle src/Dodge/Data/Muzzle.hs 3;" m +MuzzleBlink src/Dodge/Data/Muzzle.hs 45;" C +MuzzleDetector src/Dodge/Data/Muzzle.hs 44;" C +MuzzleEffect src/Dodge/Data/Muzzle.hs 31;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 6;" m -MuzzleGLauncher src/Dodge/Data/Item/Use.hs 84;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 80;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 85;" C -MuzzleRLauncher src/Dodge/Data/Item/Use.hs 83;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 94;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 96;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 90;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 79;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 95;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 81;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 82;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 93;" C +MuzzleGLauncher src/Dodge/Data/Muzzle.hs 37;" C +MuzzleLaser src/Dodge/Data/Muzzle.hs 33;" C +MuzzleNozzle src/Dodge/Data/Muzzle.hs 38;" C +MuzzleRLauncher src/Dodge/Data/Muzzle.hs 36;" C +MuzzleRewind src/Dodge/Data/Muzzle.hs 47;" C +MuzzleScroller src/Dodge/Data/Muzzle.hs 49;" C +MuzzleShatter src/Dodge/Data/Muzzle.hs 43;" C +MuzzleShootBullet src/Dodge/Data/Muzzle.hs 32;" C +MuzzleStopper src/Dodge/Data/Muzzle.hs 48;" C +MuzzleTesla src/Dodge/Data/Muzzle.hs 34;" C +MuzzleTractor src/Dodge/Data/Muzzle.hs 35;" C +MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 46;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C @@ -1256,6 +1258,7 @@ NearCosmicRays src/Dodge/Data/Scenario.hs 84;" C NearDustBelt src/Dodge/Data/Scenario.hs 85;" C NearGravityFlux src/Dodge/Data/Scenario.hs 83;" C NearSolar src/Dodge/Data/Scenario.hs 82;" C +NeverUsable src/Dodge/Data/UseCondition.hs 9;" C NewID src/Dodge/Base/NewID.hs 1;" m NewInt src/NewInt.hs 15;" t NewInt src/NewInt.hs 7;" m @@ -1263,7 +1266,7 @@ NewIntMap src/NewInt.hs 18;" t NewSideEffect src/Dodge/Data/Universe.hs 65;" C Ngon src/Dodge/Room/Ngon.hs 1;" m NoAction src/Dodge/Data/ActionPlan.hs 152;" C -NoAmmoParams src/Dodge/Data/Item/Use.hs 65;" C +NoAmmoParams src/Dodge/Data/Item/Use.hs 57;" C NoArguments src/Dodge/Data/Terminal.hs 91;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -1278,14 +1281,14 @@ NoDelay src/Dodge/Data/UseDelay.hs 12;" C NoDropEffect src/Dodge/Data/Item/Effect.hs 37;" C NoEscapeMenuOption src/Dodge/Data/Universe.hs 79;" C NoFaction src/Dodge/Data/Creature/State.hs 40;" C -NoFlare src/Dodge/Data/Item/Use.hs 69;" C +NoFlare src/Dodge/Data/Muzzle.hs 22;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C NoHoming src/Dodge/Data/Projectile.hs 48;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 24;" C NoItTargeting src/Dodge/Data/Item.hs 61;" C NoItemScroll src/Dodge/Data/Item.hs 57;" C -NoLightFlare src/Dodge/Data/Item/Use.hs 71;" C +NoLightFlare src/Dodge/Data/Muzzle.hs 24;" C NoLighting src/Dodge/Data/Config.hs 104;" C NoMouseContext src/Dodge/Data/Input.hs 22;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C @@ -1402,7 +1405,7 @@ P2NoAction src/Dodge/Data/CreatureEffect.hs 53;" C PIERCING src/Dodge/Data/Damage/Type.hs 12;" C PIPE src/Dodge/Data/Item/Combine.hs 50;" C PISTOL src/Dodge/Data/Item/Combine.hs 143;" C -PJStabiliser src/Dodge/Projectile/Create.hs 17;" t +PJStabiliser src/Dodge/Projectile/Create.hs 18;" 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 20;" C @@ -1504,7 +1507,7 @@ Procedural src/Dodge/Room/Procedural.hs 2;" m Projectile src/Dodge/Data/Projectile.hs 17;" t Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Projectile.hs 1;" m -ProjectileParams src/Dodge/Data/Item/Use.hs 63;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 55;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 33;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 64;" C ProjectileType src/Dodge/Data/Projectile.hs 36;" t @@ -1844,8 +1847,8 @@ SplitBeamCombine src/Dodge/Data/Beam.hs 42;" C SprayGuns src/Dodge/Item/Held/SprayGuns.hs 1;" m SpreadGunAI src/Dodge/Data/Creature/Misc.hs 51;" C SpreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 1;" m -StabOrthReduce src/Dodge/Projectile/Create.hs 18;" C -StabSpinIncrease src/Dodge/Projectile/Create.hs 19;" C +StabOrthReduce src/Dodge/Projectile/Create.hs 19;" C +StabSpinIncrease src/Dodge/Projectile/Create.hs 20;" C Stance src/Dodge/Data/Creature/Stance.hs 13;" t Stance src/Dodge/Data/Creature/Stance.hs 6;" m StandaloneWall src/Dodge/Data/Wall/Structure.hs 13;" C @@ -1960,7 +1963,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 17;" t TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m TeslaBall src/Dodge/Data/Bullet.hs 31;" C TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C -TeslaGunFlare src/Dodge/Data/Item/Use.hs 75;" C +TeslaGunFlare src/Dodge/Data/Muzzle.hs 28;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2074,34 +2077,36 @@ Update src/Preload/Update.hs 3;" m Use src/Dodge/Data/Item/Use.hs 6;" m Use src/Dodge/Default/Item/Use.hs 1;" m UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C -UseAttach src/Dodge/Data/Item/Use.hs 32;" C -UseBulletMod src/Dodge/Data/Item/Use.hs 37;" C -UseCondition src/Dodge/Data/Item/Use.hs 50;" t +UseAttach src/Dodge/Data/Item/Use.hs 29;" C +UseBulletMod src/Dodge/Data/Item/Use.hs 34;" C +UseCondition src/Dodge/Data/UseCondition.hs 5;" t +UseCondition src/Dodge/Data/UseCondition.hs 2;" m UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseDelay src/Dodge/Data/UseDelay.hs 6;" m UseDelay src/Dodge/Item/UseDelay.hs 3;" m -UseEquip src/Dodge/Data/Item/Use.hs 31;" C -UseExactly src/Dodge/Data/Item/Use.hs 100;" C -UseFocus src/Dodge/Data/Item/Use.hs 45;" t -UseFromLocation src/Dodge/Data/Item/Use.hs 47;" C -UseFromRoot src/Dodge/Data/Item/Use.hs 46;" C -UseHeld src/Dodge/Data/Item/Use.hs 30;" C -UseInt src/Dodge/Data/Item/Use.hs 33;" C +UseEquip src/Dodge/Data/Item/Use.hs 28;" C +UseExactly src/Dodge/Data/Muzzle.hs 53;" C +UseFocus src/Dodge/Data/Item/Use.hs 42;" t +UseFromLocation src/Dodge/Data/Item/Use.hs 44;" C +UseFromRoot src/Dodge/Data/Item/Use.hs 43;" C +UseHeld src/Dodge/Data/Item/Use.hs 27;" C +UseInt src/Dodge/Data/Item/Use.hs 30;" C UseInvItem src/Dodge/Data/WorldEffect.hs 34;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 3;" m UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C -UseMapper src/Dodge/Data/Item/Use.hs 39;" C +UseMapper src/Dodge/Data/Item/Use.hs 36;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C -UseNothing src/Dodge/Data/Item/Use.hs 34;" C -UseScope src/Dodge/Data/Item/Use.hs 36;" C +UseNothing src/Dodge/Data/Item/Use.hs 31;" C +UseScope src/Dodge/Data/Item/Use.hs 33;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C -UseToggle src/Dodge/Data/Item/Use.hs 38;" C -UseUpTo src/Dodge/Data/Item/Use.hs 101;" C -UseValue src/Dodge/Data/Item/Use.hs 35;" C -UseableAnytime src/Dodge/Data/Item/Use.hs 52;" C -UseableWhenAimed src/Dodge/Data/Item/Use.hs 51;" C +UseToggle src/Dodge/Data/Item/Use.hs 35;" C +UseUpTo src/Dodge/Data/Muzzle.hs 54;" C +UseValue src/Dodge/Data/Item/Use.hs 32;" C +UseableAnytime src/Dodge/Data/UseCondition.hs 8;" C +UseableWhenAimed src/Dodge/Data/UseCondition.hs 6;" C +UseableWhenHeld src/Dodge/Data/UseCondition.hs 7;" C UsedInLink src/Dodge/Data/Room.hs 61;" C UsedOutLink src/Dodge/Data/Room.hs 56;" C Utility src/Dodge/Item/Held/Utility.hs 1;" m @@ -2238,14 +2243,14 @@ _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 19;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 62;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 64;" f -_ampPayload src/Dodge/Data/Item/Use.hs 63;" f +_ampBullet src/Dodge/Data/Item/Use.hs 54;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 56;" f +_ampPayload src/Dodge/Data/Item/Use.hs 55;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f -_apInt src/Dodge/Data/Item/Use.hs 57;" f -_apProjectiles src/Dodge/Data/Item/Use.hs 56;" f +_apInt src/Dodge/Data/Item/Use.hs 49;" f +_apProjectiles src/Dodge/Data/Item/Use.hs 48;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _arLoaded src/Dodge/Data/Item/Use/Consumption.hs 28;" f _arMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f @@ -2667,7 +2672,6 @@ _itTgPos src/Dodge/Data/Item.hs 63;" f _itTimeLastUsed src/Dodge/Data/Item.hs 53;" f _itType src/Dodge/Data/Item.hs 45;" f _itUse src/Dodge/Data/Item.hs 42;" f -_itUseCondition src/Dodge/Data/Item.hs 43;" f _itemLocations src/Dodge/Data/LWorld.hs 102;" f _itsInt src/Dodge/Data/Item.hs 58;" f _itsMax src/Dodge/Data/Item.hs 59;" f @@ -2799,14 +2803,14 @@ _mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f _mvToPoint src/Dodge/Data/Creature.hs 79;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f -_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 111;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 108;" f -_mzEffect src/Dodge/Data/Item/Use.hs 110;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 109;" f -_mzFrame src/Dodge/Data/Item/Use.hs 112;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 107;" f -_mzPos src/Dodge/Data/Item/Use.hs 105;" f -_mzRot src/Dodge/Data/Item/Use.hs 106;" f +_mzAmmoPerShot src/Dodge/Data/Muzzle.hs 16;" f +_mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f +_mzEffect src/Dodge/Data/Muzzle.hs 15;" f +_mzFlareType src/Dodge/Data/Muzzle.hs 14;" f +_mzFrame src/Dodge/Data/Muzzle.hs 17;" f +_mzInaccuracy src/Dodge/Data/Muzzle.hs 12;" f +_mzPos src/Dodge/Data/Muzzle.hs 10;" f +_mzRot src/Dodge/Data/Muzzle.hs 11;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Data/MetaTree.hs 13;" f @@ -2816,9 +2820,9 @@ _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 29;" f _nzAngle src/Dodge/Data/Item/Params.hs 17;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 87;" f -_nzPressure src/Dodge/Data/Item/Use.hs 86;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 88;" f +_nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 40;" f +_nzPressure src/Dodge/Data/Muzzle.hs 39;" f +_nzWalkSpeed src/Dodge/Data/Muzzle.hs 41;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _oldMagnets src/Dodge/Data/LWorld.hs 128;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f @@ -3192,11 +3196,11 @@ _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f _tuWeapon src/Dodge/Data/Machine.hs 58;" f _turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f -_uInt src/Dodge/Data/Item/Use.hs 33;" f -_uScope src/Dodge/Data/Item/Use.hs 36;" f -_uValue src/Dodge/Data/Item/Use.hs 35;" f -_uaParams src/Dodge/Data/Item/Use.hs 32;" f -_ubMod src/Dodge/Data/Item/Use.hs 37;" f +_uInt src/Dodge/Data/Item/Use.hs 30;" f +_uScope src/Dodge/Data/Item/Use.hs 33;" f +_uValue src/Dodge/Data/Item/Use.hs 32;" f +_uaParams src/Dodge/Data/Item/Use.hs 29;" f +_ubMod src/Dodge/Data/Item/Use.hs 34;" f _unCombEdge src/Dodge/Combine/Graph.hs 31;" f _unCombNode src/Dodge/Combine/Graph.hs 24;" f _unFBO src/Shader/Data.hs 57;" f @@ -3212,14 +3216,14 @@ _unfiredBarrels src/Dodge/Data/Item/Params.hs 18;" f _unpauseClock src/Dodge/Data/World.hs 54;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f -_useExactly src/Dodge/Data/Item/Use.hs 100;" f -_useMapperLines src/Dodge/Data/Item/Use.hs 40;" f -_useMapperPoints src/Dodge/Data/Item/Use.hs 41;" f +_useExactly src/Dodge/Data/Muzzle.hs 53;" f +_useMapperLines src/Dodge/Data/Item/Use.hs 37;" f +_useMapperPoints src/Dodge/Data/Item/Use.hs 38;" f _useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f _useSelf src/Dodge/Data/ActionPlan.hs 158;" f _useTarget src/Dodge/Data/ActionPlan.hs 155;" f -_useToggle src/Dodge/Data/Item/Use.hs 38;" f -_useUpTo src/Dodge/Data/Item/Use.hs 101;" f +_useToggle src/Dodge/Data/Item/Use.hs 35;" f +_useUpTo src/Dodge/Data/Muzzle.hs 54;" f _uvCanContinue src/Dodge/Data/Universe.hs 39;" f _uvConfig src/Dodge/Data/Universe.hs 37;" f _uvDebug src/Dodge/Data/Universe.hs 44;" f @@ -3366,7 +3370,7 @@ advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f aimDelaySweep src/Dodge/Render/Picture.hs 264;" f aimStanceHandlePos src/Dodge/Item/HeldOffset.hs 64;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f -aimTurn src/Dodge/Creature/YourControl.hs 163;" f +aimTurn src/Dodge/Creature/YourControl.hs 164;" f aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 60;" f airlock src/Dodge/Room/Airlock.hs 19;" f airlock0 src/Dodge/Room/Airlock.hs 25;" f @@ -3376,7 +3380,7 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f -allInvLocs src/Dodge/Item/Grammar.hs 316;" f +allInvLocs src/Dodge/Item/Grammar.hs 317;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 34;" f @@ -3392,24 +3396,24 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 246;" f -applyCME src/Dodge/HeldUse.hs 363;" f +applyCME src/Dodge/HeldUse.hs 364;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyEventIO src/Loop.hs 89;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f -applyInvLock src/Dodge/HeldUse.hs 422;" f +applyInvLock src/Dodge/HeldUse.hs 423;" f applyMagnetsToBul src/Dodge/Bullet.hs 28;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyPastDamages src/Dodge/Creature/State.hs 142;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 111;" f -applyRecoil src/Dodge/HeldUse.hs 454;" f +applyRecoil src/Dodge/HeldUse.hs 455;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 553;" f -applySoundCME src/Dodge/HeldUse.hs 444;" f +applySidePush src/Dodge/HeldUse.hs 554;" f +applySoundCME src/Dodge/HeldUse.hs 445;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -3417,7 +3421,7 @@ applyToNode src/TreeHelp.hs 64;" f applyToRandomNode src/TreeHelp.hs 150;" f applyToSubforest src/TreeHelp.hs 77;" f applyToSubtree src/TreeHelp.hs 70;" f -applyTorqueCME src/Dodge/HeldUse.hs 564;" f +applyTorqueCME src/Dodge/HeldUse.hs 565;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 135;" f @@ -3431,7 +3435,7 @@ arcTest src/Picture/Test.hs 9;" f arcTest' src/Picture/Test.hs 21;" f argV src/Geometry/Vector.hs 80;" f argumentHelp src/Dodge/Terminal.hs 151;" f -armourChaseCrit src/Dodge/Creature/ArmourChase.hs 36;" f +armourChaseCrit src/Dodge/Creature/ArmourChase.hs 37;" f armouredChasers src/Dodge/Room/Boss.hs 63;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f arms src/Dodge/Creature/Picture.hs 75;" f @@ -3479,7 +3483,7 @@ barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 402;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCI src/Dodge/Item/Grammar.hs 191;" f +baseCI src/Dodge/Item/Grammar.hs 192;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 308;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3489,7 +3493,7 @@ baseSMGShape src/Dodge/Item/Draw/SPic.hs 379;" f baseShoulder src/Dodge/Creature/Picture.hs 131;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 285;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 278;" f -baseStickSpread src/Dodge/HeldUse.hs 281;" f +baseStickSpread src/Dodge/HeldUse.hs 282;" f baseTriggerType src/Dodge/BaseTriggerType.hs 12;" f baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f @@ -3501,7 +3505,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 22;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 708;" f +basicMuzFlare src/Dodge/HeldUse.hs 709;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 87;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f @@ -3510,7 +3514,7 @@ beltMag src/Dodge/Item/Ammo.hs 47;" f bfsNodePoints src/Dodge/Path.hs 58;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 216;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 113;" f -bgunSound src/Dodge/HeldUse.hs 507;" f +bgunSound src/Dodge/HeldUse.hs 508;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 110;" f black src/Color.hs 27;" f @@ -3596,11 +3600,11 @@ changeSwapWith src/Dodge/Inventory.hs 178;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 24;" f -chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f +chaseCrit src/Dodge/Creature/ChaseCrit.hs 31;" f chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 69;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f -chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 43;" f +chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 44;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 64;" f checkDeath src/Dodge/Creature/State.hs 78;" f @@ -3767,19 +3771,19 @@ createBarrelSpark src/Dodge/Spark.hs 44;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 8;" f -createHeadLamp src/Dodge/Euse.hs 144;" f +createHeadLamp src/Dodge/Euse.hs 102;" f createItemYou src/Dodge/Inventory/Add.hs 95;" f createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla/Arc.hs 90;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 1257;" f -createProjectileR src/Dodge/HeldUse.hs 1222;" f -createShell src/Dodge/Projectile/Create.hs 22;" f -createShieldWall src/Dodge/Euse.hs 119;" f +createProjectile src/Dodge/HeldUse.hs 1258;" f +createProjectileR src/Dodge/HeldUse.hs 1223;" f +createShell src/Dodge/Projectile/Create.hs 23;" f +createShieldWall src/Dodge/Euse.hs 77;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 10;" f -creatureShootLaser src/Dodge/HeldUse.hs 821;" f +creatureShootLaser src/Dodge/HeldUse.hs 822;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 52;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 73;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 62;" f @@ -3847,7 +3851,7 @@ dark src/Color.hs 108;" f darkenBackground src/Dodge/Render/MenuScreen.hs 52;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f -dbwMuzzles src/Dodge/HeldUse.hs 284;" f +dbwMuzzles src/Dodge/HeldUse.hs 285;" f deZoneIX src/Dodge/Zoning/Base.hs 87;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f @@ -3901,7 +3905,7 @@ defaultChaseMvType src/Dodge/Default/Creature.hs 108;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultConfig src/Dodge/Data/Config.hs 127;" f defaultCorpse src/Dodge/Corpse/Make.hs 29;" f -defaultCraftItem src/Dodge/Default/Item.hs 27;" f +defaultCraftItem src/Dodge/Default/Item.hs 25;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 67;" f defaultCreatureSkin src/Dodge/Default/Creature.hs 61;" f @@ -3918,13 +3922,13 @@ defaultEquipment src/Dodge/Default.hs 25;" f defaultFlIt src/Dodge/Default.hs 28;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultHUD src/Dodge/Default/World.hs 154;" f -defaultHeldItem src/Dodge/Default/Item.hs 11;" f +defaultHeldItem src/Dodge/Default/Item.hs 9;" f defaultImpulsive src/Dodge/Humanoid.hs 190;" f defaultInanimate src/Dodge/Default/Creature.hs 64;" f defaultInput src/Dodge/Default/World.hs 14;" f defaultIntention src/Dodge/Default/Creature.hs 100;" f defaultInvSize src/Dodge/Default/Creature.hs 74;" f -defaultItEffect src/Dodge/Default/Item.hs 30;" f +defaultItEffect src/Dodge/Default/Item.hs 28;" f defaultLS src/Dodge/Default/LightSource.hs 8;" f defaultLWorld src/Dodge/Default/World.hs 95;" f defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f @@ -3969,7 +3973,7 @@ detector src/Dodge/Item/Held/Utility.hs 35;" f detectorColor src/Dodge/Item/Draw/SPic.hs 448;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1205;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1206;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4000,7 +4004,7 @@ divideLineExact src/Geometry.hs 275;" f divideLineOddNumPoints src/Geometry.hs 260;" f doAfterPlacement src/Dodge/Layout.hs 86;" f doAfterPlacements src/Dodge/Layout.hs 83;" f -doAimTwist src/Dodge/Creature/YourControl.hs 138;" f +doAimTwist src/Dodge/Creature/YourControl.hs 139;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 189;" f doArcStep src/Dodge/Tesla/Arc.hs 135;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f @@ -4034,9 +4038,9 @@ doDrag src/Dodge/Update/Input/InGame.hs 107;" f doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f -doGenFloat src/Dodge/HeldUse.hs 1163;" f +doGenFloat src/Dodge/HeldUse.hs 1164;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 309;" f +doHeldUseEffect src/Dodge/HeldUse.hs 310;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f @@ -4227,7 +4231,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropByState src/Dodge/Creature/State.hs 130;" f dropExcept src/Dodge/Creature/Action.hs 167;" f -dropInventoryPath src/Dodge/HeldUse.hs 1335;" f +dropInventoryPath src/Dodge/HeldUse.hs 1336;" f dropItem src/Dodge/Creature/Action.hs 173;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 42;" f @@ -4244,7 +4248,7 @@ dummyMenuOption src/Dodge/Menu/Option.hs 74;" f ebFlicker src/Dodge/EnergyBall.hs 98;" f edgeFormatting src/Dodge/Combine/Graph.hs 130;" f edgeToPic src/Dodge/Debug/Picture.hs 431;" f -effectOnEquip src/Dodge/Equipment.hs 34;" f +effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnRemove src/Dodge/Equipment.hs 19;" f effectWhileAttached src/Dodge/ItEffect.hs 58;" f eitType src/Dodge/Data/EquipType.hs 15;" f @@ -4297,8 +4301,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 82;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 124;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 133;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 125;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 134;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f @@ -4330,14 +4334,14 @@ fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flDamageInArea src/Dodge/Flame.hs 109;" f flFlicker src/Dodge/Flame.hs 123;" f -flameMuzzles src/Dodge/HeldUse.hs 287;" f +flameMuzzles src/Dodge/HeldUse.hs 288;" f flameShield src/Dodge/Item/Equipment.hs 33;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flamerPic src/Dodge/Item/Draw/SPic.hs 382;" f -flareCircleAt src/Dodge/HeldUse.hs 689;" f +flareCircleAt src/Dodge/HeldUse.hs 690;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 18;" f @@ -4349,7 +4353,7 @@ flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f flipSwitch src/Dodge/Button/Event.hs 21;" f floatSize src/Shader/Parameters.hs 17;" f flockACC src/Dodge/Creature/ReaderUpdate.hs 87;" f -flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f +flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 15;" f flockCenterFunc src/Dodge/Creature/Boid.hs 253;" f flockChaseTarget src/Dodge/Creature/Boid.hs 184;" f flockFunc src/Dodge/Creature/Boid.hs 240;" f @@ -4399,14 +4403,14 @@ fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 33;" f gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 11;" f -gadgetEffect src/Dodge/HeldUse.hs 45;" f +gadgetEffect src/Dodge/HeldUse.hs 46;" f gameOverMenu src/Dodge/Menu.hs 187;" f gameRoomFromRoom src/Dodge/Layout.hs 161;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameplayMenu src/Dodge/Menu.hs 134;" f gameplayMenuOptions src/Dodge/Menu.hs 137;" f -gasType src/Dodge/HeldUse.hs 1119;" f +gasType src/Dodge/HeldUse.hs 1120;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4418,13 +4422,13 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 134;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 140;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 141;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f -getAttachedSFLink src/Dodge/HeldUse.hs 759;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 119;" f +getAttachedSFLink src/Dodge/HeldUse.hs 760;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 120;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f -getBulletType src/Dodge/HeldUse.hs 879;" f +getBulletType src/Dodge/HeldUse.hs 880;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4433,17 +4437,17 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 15;" f getDamageCoding src/Dodge/Terminal.hs 177;" f getDistortions src/Dodge/Render.hs 383;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 1250;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1251;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 142;" f -getLaserColor src/Dodge/HeldUse.hs 705;" f -getLaserDamage src/Dodge/HeldUse.hs 702;" f -getLaserPhaseV src/Dodge/HeldUse.hs 699;" f +getLaserColor src/Dodge/HeldUse.hs 706;" f +getLaserDamage src/Dodge/HeldUse.hs 703;" f +getLaserPhaseV src/Dodge/HeldUse.hs 700;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 385;" f getNodePos src/Dodge/Path.hs 31;" f -getPJStabiliser src/Dodge/HeldUse.hs 1242;" f +getPJStabiliser src/Dodge/HeldUse.hs 1243;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f @@ -4502,9 +4506,9 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f haltSound src/Dodge/SoundLogic.hs 38;" f -hammerCheck src/Dodge/HeldUse.hs 84;" f +hammerCheck src/Dodge/HeldUse.hs 85;" f handleEvent src/Dodge/Event.hs 27;" f -handleHotkeys src/Dodge/Creature/YourControl.hs 43;" f +handleHotkeys src/Dodge/Creature/YourControl.hs 44;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f handleMouseButtonEvent src/Dodge/Event/Input.hs 63;" f handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f @@ -4532,24 +4536,24 @@ healthTest src/Dodge/Room/LasTurret.hs 95;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldAimStance src/Dodge/Item/AimStance.hs 17;" f heldAimZoom src/Dodge/Update/Camera.hs 139;" f -heldEffect src/Dodge/HeldUse.hs 65;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 144;" f -heldEffectNoHammerCheck src/Dodge/HeldUse.hs 73;" f +heldEffect src/Dodge/HeldUse.hs 66;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 145;" f +heldEffectNoHammerCheck src/Dodge/HeldUse.hs 74;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 94;" f heldInfo src/Dodge/Item/Info.hs 90;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f -heldItemBulkiness src/Dodge/Creature/YourControl.hs 175;" f -heldItemInvLock src/Dodge/HeldUse.hs 437;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1006;" f -heldItemMuzzles src/Dodge/HeldUse.hs 167;" f +heldItemBulkiness src/Dodge/Creature/YourControl.hs 176;" f +heldItemInvLock src/Dodge/HeldUse.hs 438;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1007;" f +heldItemMuzzles src/Dodge/HeldUse.hs 168;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 71;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 28;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 33;" f -heldItemRifling src/Dodge/HeldUse.hs 1050;" f +heldItemRifling src/Dodge/HeldUse.hs 1051;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 220;" f heldItemWeight src/Dodge/Creature/Statistics.hs 41;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f -heldTorqueAmount src/Dodge/HeldUse.hs 580;" f +heldTorqueAmount src/Dodge/HeldUse.hs 581;" f heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f heldUseDelay src/Dodge/Item/UseDelay.hs 19;" f helpCommand src/Dodge/Terminal.hs 66;" f @@ -4567,7 +4571,7 @@ holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 48;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 183;" f -hotkeyToScancode src/Dodge/Creature/YourControl.hs 73;" f +hotkeyToScancode src/Dodge/Creature/YourControl.hs 74;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 180;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f @@ -4640,16 +4644,16 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f introScanValue src/Dodge/Inventory/SelectionList.hs 78;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 297;" f +invAdj src/Dodge/Item/Grammar.hs 298;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f invHead src/Dodge/Render/HUD.hs 405;" f invItemLocUpdate src/Dodge/Creature/State.hs 178;" f -invLDT src/Dodge/Item/Grammar.hs 277;" f +invLDT src/Dodge/Item/Grammar.hs 278;" f invRootItemEffs src/Dodge/Creature/State.hs 171;" f -invRootMap src/Dodge/Item/Grammar.hs 286;" f -invRootTrees src/Dodge/Item/Grammar.hs 307;" f +invRootMap src/Dodge/Item/Grammar.hs 287;" f +invRootTrees src/Dodge/Item/Grammar.hs 308;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 31;" f invSetSelection src/Dodge/Inventory.hs 185;" f invSetSelectionPos src/Dodge/Inventory.hs 193;" f @@ -4665,9 +4669,9 @@ invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 99;" f invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 56;" f -invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f +invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 24;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 715;" f +isAmmoIntLink src/Dodge/HeldUse.hs 716;" f isAnimate src/Dodge/Creature/Test.hs 141;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4695,14 +4699,15 @@ isoMatrix src/MatrixHelper.hs 30;" f isotriBWH src/Geometry/Polygon.hs 20;" f itDim src/Dodge/Item/InvSize.hs 21;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f +itUseCondition src/Dodge/ItemUseCondition.hs 7;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 12;" f -itemBaseConnections src/Dodge/Item/Grammar.hs 194;" f +itemBaseConnections src/Dodge/Item/Grammar.hs 195;" f itemBaseName src/Dodge/Item/Display.hs 59;" f itemBlips src/Dodge/RadarSweep.hs 93;" f -itemBulkiness src/Dodge/Creature/YourControl.hs 170;" f +itemBulkiness src/Dodge/Creature/YourControl.hs 171;" f itemCombinations src/Dodge/Combine/Combinations.hs 55;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f -itemDetectorEffect src/Dodge/HeldUse.hs 765;" f +itemDetectorEffect src/Dodge/HeldUse.hs 766;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 48;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 83;" f @@ -4714,9 +4719,9 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 20;" f itemInternalValue src/Dodge/Item/Display.hs 33;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvLock src/Dodge/HeldUse.hs 432;" f -itemMuzzles src/Dodge/HeldUse.hs 158;" f -itemRandomOffset src/Dodge/HeldUse.hs 943;" f +itemInvLock src/Dodge/HeldUse.hs 433;" f +itemMuzzles src/Dodge/HeldUse.hs 159;" f +itemRandomOffset src/Dodge/HeldUse.hs 944;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f @@ -4724,10 +4729,10 @@ itemScan src/Dodge/Item/Scope.hs 63;" f itemScroll src/Dodge/Update/Scroll.hs 51;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 119;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 146;" f -itemSidePush src/Dodge/HeldUse.hs 378;" f +itemSidePush src/Dodge/HeldUse.hs 379;" f itemString src/Dodge/Item/Display.hs 55;" f -itemToBreakLists src/Dodge/Item/Grammar.hs 66;" f -itemToFunction src/Dodge/Item/Grammar.hs 146;" f +itemToBreakLists src/Dodge/Item/Grammar.hs 67;" f +itemToFunction src/Dodge/Item/Grammar.hs 147;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f itemWeight src/Dodge/Creature/Statistics.hs 36;" f iterateUntil src/MonadHelp.hs 23;" f @@ -4738,7 +4743,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 267;" f +joinItemsInList src/Dodge/Item/Grammar.hs 268;" f joystick src/Dodge/Item/Scope.hs 150;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f @@ -4772,7 +4777,7 @@ lasTunnel src/Dodge/Room/LasTurret.hs 126;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f laser src/Dodge/Item/Held/BatteryGuns.hs 41;" f -laserLinkTest src/Dodge/Item/Grammar.hs 200;" f +laserLinkTest src/Dodge/Item/Grammar.hs 201;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f @@ -4787,9 +4792,9 @@ ldtToIM src/Dodge/DoubleTree.hs 143;" f ldtToIndentList src/Dodge/DoubleTree.hs 146;" f ldtToLoc src/Dodge/DoubleTree.hs 187;" f left src/DoubleStack.hs 16;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 239;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 240;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 253;" f +leftRightCombine src/Dodge/Item/Grammar.hs 254;" f legsSPic src/Dodge/Item/Draw/SPic.hs 472;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f @@ -4817,15 +4822,15 @@ listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f -llleft src/Dodge/Item/Grammar.hs 203;" f -llright src/Dodge/Item/Grammar.hs 209;" f +llleft src/Dodge/Item/Grammar.hs 204;" f +llright src/Dodge/Item/Grammar.hs 210;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 394;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 27;" f -loadMuzzle src/Dodge/HeldUse.hs 625;" f +loadMuzzle src/Dodge/HeldUse.hs 626;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4882,8 +4887,8 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f makeBlip src/Dodge/RadarSweep.hs 69;" f makeBlockDebris src/Dodge/Block/Debris.hs 28;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f -makeBullet src/Dodge/HeldUse.hs 987;" f -makeBullet' src/Dodge/HeldUse.hs 929;" f +makeBullet src/Dodge/HeldUse.hs 988;" f +makeBullet' src/Dodge/HeldUse.hs 930;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f @@ -4909,7 +4914,7 @@ makeFragBullets src/Dodge/Bullet.hs 122;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 34;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 647;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 648;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4965,11 +4970,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f mcSPic src/Dodge/Render/ShapePicture.hs 120;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f -mcShootAuto src/Dodge/HeldUse.hs 1174;" f -mcShootLaser src/Dodge/HeldUse.hs 1167;" f +mcShootAuto src/Dodge/HeldUse.hs 1175;" f +mcShootLaser src/Dodge/HeldUse.hs 1168;" f mcTriggerVal src/Dodge/Machine/Update.hs 93;" f mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f -mcUseHeld src/Dodge/HeldUse.hs 1094;" f +mcUseHeld src/Dodge/HeldUse.hs 1095;" f mcUseItem src/Dodge/Machine/Update.hs 79;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 76;" f @@ -5062,7 +5067,7 @@ multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 34;" f multiLookupTrieI src/SimpleTrie.hs 43;" f muout src/Dodge/RoomLink.hs 129;" f -muzFlareAt src/Dodge/HeldUse.hs 675;" f +muzFlareAt src/Dodge/HeldUse.hs 676;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f @@ -5120,10 +5125,8 @@ numTraversable src/TreeHelp.hs 183;" f obstacleColor src/Dodge/Debug/Picture.hs 257;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f -onEquipWristShield src/Dodge/Euse.hs 61;" f -onEquipWristShield' src/Dodge/Equipment.hs 39;" f -onRemoveWristShield src/Dodge/Euse.hs 74;" f -onRemoveWristShield' src/Dodge/Equipment.hs 24;" f +onEquipWristShield src/Dodge/Equipment.hs 37;" f +onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 100;" f openConsole src/Dodge/Update.hs 129;" f @@ -5453,7 +5456,7 @@ randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 195;" f readSaveSlot src/Dodge/Save.hs 45;" f -recoilAmount src/Dodge/HeldUse.hs 459;" f +recoilAmount src/Dodge/HeldUse.hs 460;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5479,11 +5482,11 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteDetonator src/Dodge/Item/Scope.hs 145;" f remoteScreen src/Dodge/Item/Scope.hs 140;" f -removeAimPosture src/Dodge/Creature/YourControl.hs 145;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 866;" f +removeAimPosture src/Dodge/Creature/YourControl.hs 146;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 867;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f -removeShieldWall src/Dodge/Euse.hs 137;" f +removeShieldWall src/Dodge/Euse.hs 95;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 26;" f renderFlatLighting src/Render.hs 104;" f @@ -5524,7 +5527,7 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f rifle src/Dodge/Item/Held/Cane.hs 30;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 246;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 247;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5614,7 +5617,7 @@ scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f scaleSH src/Shape.hs 268;" f scalp src/Dodge/Creature/Picture.hs 96;" f -scancodeToHotkey src/Dodge/Creature/YourControl.hs 93;" f +scancodeToHotkey src/Dodge/Creature/YourControl.hs 94;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 118;" f screenBox src/Dodge/Base/Window.hs 53;" f @@ -5668,7 +5671,7 @@ sensorSPic src/Dodge/Machine/Draw.hs 70;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f -setAimPosture src/Dodge/Creature/YourControl.hs 135;" f +setAimPosture src/Dodge/Creature/YourControl.hs 136;" f setChannelPos src/Sound.hs 150;" f setClickWorldPos src/Dodge/Update.hs 99;" f setClusterID src/Dodge/Combine/Graph.hs 115;" f @@ -5704,8 +5707,8 @@ setViewDistance src/Dodge/Update/Camera.hs 227;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 61;" f setViewport src/Dodge/Render.hs 388;" f setVol src/Dodge/Config/Update.hs 30;" f -setWristShieldPos src/Dodge/Equipment.hs 54;" f -setWristShieldPos src/Dodge/Euse.hs 84;" f +setWristShieldPos src/Dodge/Equipment.hs 49;" f +setWristShieldPos src/Dodge/Euse.hs 43;" f setupConLoop src/Loop.hs 102;" f setupConLoop' src/Loop.hs 192;" f setupEBO src/Shader/Compile.hs 188;" f @@ -5737,7 +5740,7 @@ shellMag src/Dodge/Item/Ammo.hs 58;" f shellModule src/Dodge/Item/Scope.hs 124;" f shellShape src/Dodge/Projectile/Draw.hs 34;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f -shieldWall src/Dodge/Euse.hs 99;" f +shieldWall src/Dodge/Euse.hs 57;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 65;" f @@ -5760,14 +5763,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 308;" f shineTorch src/Dodge/Creature/State.hs 350;" f -shootBullet src/Dodge/HeldUse.hs 919;" f +shootBullet src/Dodge/HeldUse.hs 920;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 845;" f +shootLaser src/Dodge/HeldUse.hs 846;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 1193;" f +shootTeslaArc src/Dodge/HeldUse.hs 1194;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 798;" f +shootTractorBeam src/Dodge/HeldUse.hs 799;" f shootersRoom src/Dodge/Room/Room.hs 315;" f shootersRoom' src/Dodge/Room/Room.hs 280;" f shootersRoom1 src/Dodge/Room/Room.hs 305;" f @@ -5815,7 +5818,7 @@ slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f smallBattery src/Dodge/Item/Ammo.hs 81;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f -smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f +smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 15;" f smallDrawTree src/Dodge/LevelGen.hs 88;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 362;" f smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f @@ -5874,7 +5877,7 @@ spreadCenter src/Dodge/Base.hs 187;" f spreadFromCenter src/Dodge/Base.hs 176;" f spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 12;" f spreadOut src/Dodge/Creature/Boid.hs 157;" f -springLinkTest src/Dodge/Item/Grammar.hs 221;" f +springLinkTest src/Dodge/Item/Grammar.hs 222;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f square src/Geometry/Polygon.hs 46;" f @@ -5931,7 +5934,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 77;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -structureToPotentialFunction src/Dodge/Item/Grammar.hs 181;" f +structureToPotentialFunction src/Dodge/Item/Grammar.hs 182;" f structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 78;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 118;" f @@ -6038,7 +6041,7 @@ toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f toFloatVAs src/Shader/Compile.hs 211;" f toLabel src/Dodge/Cleat.hs 16;" f -toLasgunUpdate src/Dodge/Item/Grammar.hs 214;" f +toLasgunUpdate src/Dodge/Item/Grammar.hs 215;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f toTopLeft src/Dodge/Render/List.hs 219;" f @@ -6063,12 +6066,12 @@ topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 62;" f torch src/Dodge/Item/Held/Utility.hs 27;" f torchShape src/Dodge/Item/Draw/SPic.hs 264;" f -torqueAmount src/Dodge/HeldUse.hs 575;" f +torqueAmount src/Dodge/HeldUse.hs 576;" f torqueCr src/Dodge/WorldEffect.hs 74;" f torso src/Dodge/Creature/Picture.hs 105;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 810;" f +tractorBeamAt src/Dodge/HeldUse.hs 811;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 432;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -6121,8 +6124,8 @@ triggerSwitchSPicLight src/Dodge/Placement/Instance/Button.hs 31;" f truncFaces src/Polyhedra/Geodesic.hs 53;" f truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f -tryAttachItems src/Dodge/Item/Grammar.hs 29;" f -tryClickUse src/Dodge/Creature/YourControl.hs 219;" f +tryAttachItems src/Dodge/Item/Grammar.hs 30;" f +tryClickUse src/Dodge/Creature/YourControl.hs 220;" f tryCombine src/Dodge/Update/Input/InGame.hs 526;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 125;" f tryGetChannel src/Sound.hs 97;" f @@ -6148,7 +6151,7 @@ twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twists src/Dodge/Creature/Test.hs 106;" f twoFlat src/Dodge/Creature/Test.hs 103;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 86;" f -twoHandTwistAmount src/Dodge/Creature/YourControl.hs 148;" f +twoHandTwistAmount src/Dodge/Creature/YourControl.hs 149;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 450;" f @@ -6303,33 +6306,33 @@ upperPrismPolyST src/Shape.hs 107;" f upperPrismPolySU src/Shape.hs 113;" f upperPrismPolyTS src/Shape.hs 119;" f upperRounded src/Shape.hs 184;" f -useBreakL src/Dodge/Item/Grammar.hs 35;" f -useBreakListsLinkTest src/Dodge/Item/Grammar.hs 43;" f +useBreakL src/Dodge/Item/Grammar.hs 36;" f +useBreakListsLinkTest src/Dodge/Item/Grammar.hs 44;" f useBulletPayload src/Dodge/Bullet.hs 111;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useDelay src/Dodge/Item/UseDelay.hs 13;" f -useE src/Dodge/Euse.hs 33;" f -useGasParams src/Dodge/HeldUse.hs 1099;" f -useHotkey src/Dodge/Creature/YourControl.hs 68;" f -useInventoryPath src/Dodge/HeldUse.hs 1360;" f +useE src/Dodge/Euse.hs 23;" f +useGasParams src/Dodge/HeldUse.hs 1100;" f +useHotkey src/Dodge/Creature/YourControl.hs 69;" f +useInventoryPath src/Dodge/HeldUse.hs 1361;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 719;" f +useLoadedAmmo src/Dodge/HeldUse.hs 720;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 66;" f -useMagShield src/Dodge/Euse.hs 51;" f +useMagShield src/Dodge/Euse.hs 34;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1326;" f +useRewindGun src/Dodge/HeldUse.hs 1327;" f useRewindGun src/Dodge/Luse.hs 40;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useStopWatch src/Dodge/HeldUse.hs 1307;" f +useStopWatch src/Dodge/HeldUse.hs 1308;" f useStopWatch src/Dodge/Luse.hs 21;" f -useTimeCheck src/Dodge/HeldUse.hs 114;" f +useTimeCheck src/Dodge/HeldUse.hs 115;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1315;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1316;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6353,7 +6356,7 @@ verticalLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 38;" f verticalPipe src/Dodge/Picture.hs 19;" f verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalWire src/Dodge/Wire.hs 24;" f -vgunMuzzles src/Dodge/HeldUse.hs 298;" f +vgunMuzzles src/Dodge/HeldUse.hs 299;" f viewBoundaries src/Dodge/Debug/Picture.hs 304;" f viewClipBounds src/Dodge/Debug/Picture.hs 313;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 185;" f @@ -6365,7 +6368,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 342;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 780;" f +walkNozzle src/Dodge/HeldUse.hs 781;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 51;" f @@ -6374,11 +6377,11 @@ wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallsFromRooms src/Dodge/Layout.hs 146;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f warningRooms src/Dodge/Room/Warning.hs 27;" f -wasdAim src/Dodge/Creature/YourControl.hs 124;" f +wasdAim src/Dodge/Creature/YourControl.hs 125;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f -wasdMovement src/Dodge/Creature/YourControl.hs 151;" f -wasdWithAiming src/Dodge/Creature/YourControl.hs 117;" f +wasdMovement src/Dodge/Creature/YourControl.hs 152;" f +wasdWithAiming src/Dodge/Creature/YourControl.hs 118;" f watchCombinations src/Dodge/Combine/Combinations.hs 15;" f watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 177;" f weakenMatS src/Dodge/Material/Sound.hs 18;" f @@ -6440,7 +6443,7 @@ yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 12;" f youDropItem src/Dodge/Creature/Action.hs 190;" f yourAugmentedItem src/Dodge/Render/HUD.hs 236;" f -yourControl src/Dodge/Creature/YourControl.hs 26;" f +yourControl src/Dodge/Creature/YourControl.hs 27;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 129;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 132;" f yourInfo src/Dodge/Creature/Info.hs 8;" f