From 6aa3c701bccb4295ecb649dfe6a8922f4446c30a Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 31 Dec 2024 11:15:03 +0000 Subject: [PATCH] Move towards removing item hammers, unifying item use --- src/Dodge/Creature/Impulse/UseItem.hs | 39 ++++ tags | 310 +++++++++++++------------- 2 files changed, 196 insertions(+), 153 deletions(-) diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 696aa94cd..7097fbbc4 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -17,6 +17,45 @@ import Dodge.Item.Grammar import Dodge.Item.Location import qualified IntMapHelp as IM +useItem :: Int -> PressType -> World -> World +useItem invid pt w = (worldEventFlags . at InventoryChange ?~ ()) . fromMaybe w $ do + cr <- w ^? cWorld . lWorld . creatures . ix 0 + itmloc <- allInvLocs (_crInv cr) ^? ix invid . _2 + usedloc <- useLocation' itmloc + useItemLoc cr usedloc pt w + +useItemLoc :: Creature -> LocationLDT ItemLink ComposedItem -> PressType + -> World -> Maybe World +useItemLoc cr loc pt w = case loc ^. locLDT . ldtValue . _2 of + HeldPlatformSF -> + return $ + heldEffect (bimap _iatType (^. _1) ldt) cr w + & pointerToItem itm . itUse . heldHammer .~ HammerDown + GadgetPlatformSF -> + return $ + heldEffect (bimap _iatType (^. _1) ldt) cr w + & pointerToItem itm . itUse . heldHammer .~ HammerDown + RemoteDetonatorSF -> do + return $ activateDetonator ldt w + & pointerToItem itm . itUse . heldHammer .~ HammerDown + _ | isJust $ itm ^? itUse . uequipEffect -> do + invid' <- itm ^? itLocation . ilInvID + return $ toggleEquipmentAt invid' cr w + _ -> Nothing + where + ldt = loc ^. locLDT + itm = ldt ^. ldtValue . _1 + +useLocation' :: LocationLDT ItemLink ComposedItem + -> Maybe (LocationLDT ItemLink ComposedItem) +useLocation' loc + | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uequipEffect = return loc + | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apLinkedProjectile . _Just + = return loc + | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 + = return loc + | otherwise = return $ locToTop loc + useSelectedItem :: Int -> World -> World useSelectedItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMaybe w $ do cr <- w ^? cWorld . lWorld . creatures . ix crid diff --git a/tags b/tags index a01fb30d6..f8c70231f 100644 --- a/tags +++ b/tags @@ -24,10 +24,10 @@ ALTERIFLE src/Dodge/Data/Item/Combine.hs 139;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 22;" C AMR src/Dodge/Data/Item/Combine.hs 144;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 47;" C -APInt src/Dodge/Data/Item/Use.hs 75;" C -APLinkProjectile src/Dodge/Data/Item/Use.hs 71;" C -APNothing src/Dodge/Data/Item/Use.hs 76;" C -APProjectiles src/Dodge/Data/Item/Use.hs 73;" C +APInt src/Dodge/Data/Item/Use.hs 76;" C +APLinkProjectile src/Dodge/Data/Item/Use.hs 72;" C +APNothing src/Dodge/Data/Item/Use.hs 77;" C +APProjectiles src/Dodge/Data/Item/Use.hs 74;" C AQUAMARINE src/Color/Data.hs 24;" C ATTACH src/Dodge/Data/Item/Combine.hs 21;" C AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 81;" C @@ -45,9 +45,9 @@ Add src/Dodge/Inventory/Add.hs 1;" m AddGoal src/Dodge/Data/ActionPlan.hs 45;" C AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C -AimParams src/Dodge/Data/Item/Use.hs 119;" t +AimParams src/Dodge/Data/Item/Use.hs 120;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 188;" t +AimStance src/Dodge/Data/Item/Use.hs 189;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C Airlock src/Dodge/Room/Airlock.hs 4;" m @@ -64,10 +64,10 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 48;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 85;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 54;" C -AmmoParams src/Dodge/Data/Item/Use.hs 112;" t +AmmoParams src/Dodge/Data/Item/Use.hs 113;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 56;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 162;" t +AmmoPerShot src/Dodge/Data/Item/Use.hs 163;" t AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 55;" C AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" t @@ -96,7 +96,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 70;" t +AttachParams src/Dodge/Data/Item/Use.hs 71;" t AttachType src/Dodge/Data/Item/Combine.hs 70;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C @@ -107,7 +107,7 @@ AutoAI src/Dodge/Data/Creature/Misc.hs 56;" C AutoCrit src/Dodge/Creature/AutoCrit.hs 1;" m AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 27;" C -AutoTrigger src/Dodge/Data/Item/Use.hs 67;" C +AutoTrigger src/Dodge/Data/Item/Use.hs 68;" C AuxAddition src/Shader/AuxAddition.hs 1;" m Avatar src/Dodge/Data/Creature/Misc.hs 70;" C Awareness src/Dodge/Data/Creature/Perception.hs 65;" t @@ -147,7 +147,7 @@ Base src/Picture/Base.hs 4;" 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 132;" C +BasicFlare src/Dodge/Data/Item/Use.hs 133;" 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 @@ -157,7 +157,7 @@ BeamCombine src/Dodge/Data/Beam.hs 47;" C BeamCombineType src/Dodge/Data/Beam.hs 38;" t BeamDraw src/Dodge/Data/Beam.hs 33;" t BeamDrawColor src/Dodge/Data/Beam.hs 35;" C -BeamShooterParams src/Dodge/Data/Item/Use.hs 93;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 94;" C BeamSimple src/Dodge/Data/Beam.hs 50;" C BeamType src/Dodge/Data/Beam.hs 46;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C @@ -228,9 +228,9 @@ 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 113;" C +BulletParams src/Dodge/Data/Item/Use.hs 114;" C BulletPayload src/Dodge/Data/Bullet.hs 41;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 97;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 98;" C BulletTrajectory src/Dodge/Data/Bullet.hs 49;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 56;" t Button src/Dodge/Data/Button.hs 48;" t @@ -493,7 +493,7 @@ DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultDrawButton src/Dodge/Data/Button.hs 17;" C DefaultDrawSwitch src/Dodge/Data/Button.hs 18;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 80;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 81;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C DefaultTerminal src/Dodge/Data/Terminal.hs 54;" C @@ -684,7 +684,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 130;" t +FlareType src/Dodge/Data/Item/Use.hs 131;" t FlashBall src/Dodge/Data/Bullet.hs 32;" C FlatFaces src/Shape/Data.hs 17;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 19;" C @@ -752,8 +752,8 @@ GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t -GasParams src/Dodge/Data/Item/Use.hs 115;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 81;" C +GasParams src/Dodge/Data/Item/Use.hs 116;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 82;" 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 @@ -812,23 +812,23 @@ Hammer src/Dodge/Hammer.hs 1;" m HammerDown src/Dodge/Data/Hammer.hs 18;" C HammerPosition src/Dodge/Data/Hammer.hs 17;" t HammerReleased src/Dodge/Data/Hammer.hs 19;" C -HammerTrigger src/Dodge/Data/Item/Use.hs 67;" C +HammerTrigger src/Dodge/Data/Item/Use.hs 68;" C HammerType src/Dodge/Data/Hammer.hs 12;" t HammerUp src/Dodge/Data/Hammer.hs 20;" C HandPos src/Dodge/Creature/HandPos.hs 1;" m HardQuit src/Dodge/Data/Universe.hs 68;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 135;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 136;" 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 124;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 79;" t +HeldParams src/Dodge/Data/Item/Use.hs 80;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 39;" C HeldScroll src/Dodge/HeldScroll.hs 1;" m HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/HeldUse.hs 4;" m -HeldUseEffect src/Dodge/Data/Item/Use.hs 51;" t +HeldUseEffect src/Dodge/Data/Item/Use.hs 52;" t HelpNum src/HelpNum.hs 1;" m HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 47;" C @@ -928,7 +928,7 @@ ItEffect src/Dodge/ItEffect.hs 2;" m ItID src/Dodge/Data/Item.hs 29;" t ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t ItTargeting src/Dodge/Data/Item.hs 56;" C -ItZoom src/Dodge/Data/Item/Use.hs 195;" t +ItZoom src/Dodge/Data/Item/Use.hs 196;" t Item src/Dodge/Data/Item.hs 41;" t Item src/Dodge/Data/Item.hs 4;" m Item src/Dodge/Default/Item.hs 1;" m @@ -990,7 +990,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 136;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 137;" C LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 30;" t @@ -1160,7 +1160,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 134;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 135;" 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 @@ -1193,23 +1193,23 @@ 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 167;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 155;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 154;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 140;" t +Muzzle src/Dodge/Data/Item/Use.hs 168;" t +MuzzleBlink src/Dodge/Data/Item/Use.hs 156;" C +MuzzleDetector src/Dodge/Data/Item/Use.hs 155;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 141;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleGLauncher src/Dodge/Data/Item/Use.hs 146;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 142;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 147;" C -MuzzleRLauncher src/Dodge/Data/Item/Use.hs 145;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 157;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 159;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 153;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 141;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 158;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 143;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 144;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 156;" C +MuzzleGLauncher src/Dodge/Data/Item/Use.hs 147;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 143;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 148;" C +MuzzleRLauncher src/Dodge/Data/Item/Use.hs 146;" C +MuzzleRewind src/Dodge/Data/Item/Use.hs 158;" C +MuzzleScroller src/Dodge/Data/Item/Use.hs 160;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 154;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 142;" C +MuzzleStopper src/Dodge/Data/Item/Use.hs 159;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 144;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 145;" C +MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 157;" 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 @@ -1232,7 +1232,7 @@ NewSideEffect src/Dodge/Data/Universe.hs 63;" C NextArcStep src/Dodge/Data/ArcStep.hs 21;" t Ngon src/Dodge/Room/Ngon.hs 1;" m NoAction src/Dodge/Data/ActionPlan.hs 152;" C -NoAmmoParams src/Dodge/Data/Item/Use.hs 116;" C +NoAmmoParams src/Dodge/Data/Item/Use.hs 117;" C NoArguments src/Dodge/Data/Terminal.hs 95;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -1247,14 +1247,14 @@ NoDropEffect src/Dodge/Data/Item/Effect.hs 28;" C NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" C NoEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C NoFaction src/Dodge/Data/Creature/State.hs 40;" C -NoFlare src/Dodge/Data/Item/Use.hs 131;" C +NoFlare src/Dodge/Data/Item/Use.hs 132;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C -NoHeldUseEffect src/Dodge/Data/Item/Use.hs 52;" C +NoHeldUseEffect src/Dodge/Data/Item/Use.hs 53;" C NoHoming src/Dodge/Data/Projectile.hs 46;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C NoItTargeting src/Dodge/Data/Item.hs 55;" C -NoLightFlare src/Dodge/Data/Item/Use.hs 133;" C +NoLightFlare src/Dodge/Data/Item/Use.hs 134;" C NoLighting src/Dodge/Data/Config.hs 104;" C NoMouseContext src/Dodge/Data/Input.hs 20;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C @@ -1335,7 +1335,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C OneArgument src/Dodge/Data/Terminal.hs 96;" C -OneHand src/Dodge/Data/Item/Use.hs 192;" C +OneHand src/Dodge/Data/Item/Use.hs 193;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 16;" C Opacity src/Dodge/Data/Wall.hs 38;" t @@ -1474,7 +1474,7 @@ Procedural src/Dodge/Room/Procedural.hs 2;" m Projectile src/Dodge/Data/Projectile.hs 16;" t Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Projectile.hs 1;" m -ProjectileParams src/Dodge/Data/Item/Use.hs 114;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 115;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 32;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 60;" C ProjectileType src/Dodge/Data/Projectile.hs 34;" t @@ -1574,7 +1574,7 @@ RandomHelp src/RandomHelp.hs 3;" m RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C RandomPlacement src/Dodge/Data/GenWorld.hs 84;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C -RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 53;" C +RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 54;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m RecRoomSS src/Dodge/Data/Scenario.hs 103;" C @@ -1849,7 +1849,7 @@ SwarmAI src/Dodge/Data/Creature/Misc.hs 55;" C SwarmCrit src/Dodge/Creature/SwarmCrit.hs 1;" m SwarmPlacement src/Dodge/LevelGen/SwarmPlacement.hs 1;" m Switch src/Dodge/LevelGen/Switch.hs 1;" m -SwitchAlteRifle src/Dodge/Data/Item/Use.hs 54;" C +SwitchAlteRifle src/Dodge/Data/Item/Use.hs 55;" C SwitchToItem src/Dodge/Data/ActionPlan.hs 38;" C TAPE src/Dodge/Data/Item/Combine.hs 34;" C TARGETING src/Dodge/Data/Item/Combine.hs 23;" C @@ -1929,7 +1929,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 15;" 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 137;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 138;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -1986,7 +1986,7 @@ Trie src/SimpleTrie.hs 9;" t TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m TriggerLink src/Dodge/Data/ComposedItem.hs 18;" C TriggerSF src/Dodge/Data/ComposedItem.hs 46;" C -TriggerType src/Dodge/Data/Item/Use.hs 67;" t +TriggerType src/Dodge/Data/Item/Use.hs 68;" t TriggerType src/Dodge/Item/Weapon/TriggerType.hs 6;" m TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C Turn src/Dodge/Data/ActionPlan.hs 30;" C @@ -1999,9 +1999,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t Turret src/Dodge/Placement/Instance/Turret.hs 1;" m TurretInt src/Dodge/Data/Item/Location.hs 21;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 191;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 190;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 189;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 192;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 191;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 190;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Type src/Dodge/Terminal/Type.hs 1;" m Typical src/Shape/Data.hs 36;" C @@ -2038,26 +2038,27 @@ 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 45;" C -UseBulletMod src/Dodge/Data/Item/Use.hs 48;" C -UseCondition src/Dodge/Data/Item/Use.hs 62;" t +UseBulletMod src/Dodge/Data/Item/Use.hs 49;" C +UseCondition src/Dodge/Data/Item/Use.hs 63;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseEquip src/Dodge/Data/Item/Use.hs 44;" C -UseExactly src/Dodge/Data/Item/Use.hs 163;" C -UseFocus src/Dodge/Data/Item/Use.hs 57;" t -UseFromLocation src/Dodge/Data/Item/Use.hs 59;" C -UseFromRoot src/Dodge/Data/Item/Use.hs 58;" C +UseExactly src/Dodge/Data/Item/Use.hs 164;" C +UseFocus src/Dodge/Data/Item/Use.hs 58;" t +UseFromLocation src/Dodge/Data/Item/Use.hs 60;" C +UseFromRoot src/Dodge/Data/Item/Use.hs 59;" C +UseHammer src/Dodge/Data/Item/Use.hs 46;" C UseHeld src/Dodge/Data/Item/Use.hs 35;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C -UseNothing src/Dodge/Data/Item/Use.hs 46;" C -UseScope src/Dodge/Data/Item/Use.hs 47;" C +UseNothing src/Dodge/Data/Item/Use.hs 47;" C +UseScope src/Dodge/Data/Item/Use.hs 48;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C -UseUpTo src/Dodge/Data/Item/Use.hs 164;" C -UseableAnytime src/Dodge/Data/Item/Use.hs 64;" C -UseableWhenAimed src/Dodge/Data/Item/Use.hs 63;" C +UseUpTo src/Dodge/Data/Item/Use.hs 165;" C +UseableAnytime src/Dodge/Data/Item/Use.hs 65;" C +UseableWhenAimed src/Dodge/Data/Item/Use.hs 64;" 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 @@ -2178,13 +2179,13 @@ Zoning src/Dodge/Zoning.hs 1;" m __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 125;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 126;" f -_aimRange src/Dodge/Data/Item/Use.hs 122;" f -_aimStance src/Dodge/Data/Item/Use.hs 124;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 121;" f -_aimWeight src/Dodge/Data/Item/Use.hs 120;" f -_aimZoom src/Dodge/Data/Item/Use.hs 123;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 126;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 127;" f +_aimRange src/Dodge/Data/Item/Use.hs 123;" f +_aimStance src/Dodge/Data/Item/Use.hs 125;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 122;" f +_aimWeight src/Dodge/Data/Item/Use.hs 121;" f +_aimZoom src/Dodge/Data/Item/Use.hs 124;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 21;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 24;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 28;" f @@ -2196,15 +2197,15 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 34;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 113;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 115;" f -_ampPayload src/Dodge/Data/Item/Use.hs 114;" f +_ampBullet src/Dodge/Data/Item/Use.hs 114;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 116;" f +_ampPayload src/Dodge/Data/Item/Use.hs 115;" 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 75;" f -_apLinkedProjectile src/Dodge/Data/Item/Use.hs 72;" f -_apProjectiles src/Dodge/Data/Item/Use.hs 74;" f +_apInt src/Dodge/Data/Item/Use.hs 76;" f +_apLinkedProjectile src/Dodge/Data/Item/Use.hs 73;" f +_apProjectiles src/Dodge/Data/Item/Use.hs 75;" 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 @@ -2279,9 +2280,9 @@ _buPayload src/Dodge/Data/Bullet.hs 19;" f _buPos src/Dodge/Data/Bullet.hs 23;" f _buVel src/Dodge/Data/Bullet.hs 21;" f _buWidth src/Dodge/Data/Bullet.hs 25;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 87;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 94;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 104;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 88;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 95;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 105;" f _bullets src/Dodge/Data/LWorld.hs 106;" f _buttons src/Dodge/Data/LWorld.hs 135;" f _cClock src/Dodge/Data/CWorld.hs 28;" f @@ -2369,7 +2370,6 @@ _crGroupIDs src/Dodge/Data/CrGroupParams.hs 16;" f _crGroupParamID src/Dodge/Data/CrGroupParams.hs 15;" f _crGroupUpdate src/Dodge/Data/CrGroupParams.hs 18;" f _crHP src/Dodge/Data/Creature.hs 48;" f -_crHammerPosition src/Dodge/Data/Creature.hs 69;" f _crID src/Dodge/Data/Creature.hs 45;" f _crIntention src/Dodge/Data/Creature.hs 67;" f _crInv src/Dodge/Data/Creature.hs 50;" f @@ -2545,7 +2545,7 @@ _fullscreenShader src/Data/Preload/Render.hs 20;" f _futureWorlds src/Dodge/Data/World.hs 65;" f _futureWorlds src/Dodge/Data/World.hs 71;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f -_gasCreation src/Dodge/Data/Item/Use.hs 82;" f +_gasCreation src/Dodge/Data/Item/Use.hs 83;" f _genPlacements src/Dodge/Data/GenWorld.hs 25;" f _genRooms src/Dodge/Data/GenWorld.hs 26;" f _getAttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" f @@ -2584,6 +2584,7 @@ _heldAim src/Dodge/Data/Item/Use.hs 38;" f _heldDelay src/Dodge/Data/Item/Use.hs 36;" f _heldFrame src/Dodge/Data/Item/Use.hs 41;" f _heldHammer src/Dodge/Data/Item/Use.hs 37;" f +_heldHammer src/Dodge/Data/Item/Use.hs 46;" f _heldParams src/Dodge/Data/Item/Use.hs 39;" f _heldPos src/Dodge/Data/Input.hs 51;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 40;" f @@ -2646,9 +2647,9 @@ _itType src/Dodge/Data/Item.hs 46;" f _itUse src/Dodge/Data/Item.hs 42;" f _itUseCondition src/Dodge/Data/Item.hs 43;" f _itemLocations src/Dodge/Data/LWorld.hs 100;" f -_izFac src/Dodge/Data/Item/Use.hs 198;" f -_izMax src/Dodge/Data/Item/Use.hs 196;" f -_izMin src/Dodge/Data/Item/Use.hs 197;" f +_izFac src/Dodge/Data/Item/Use.hs 199;" f +_izMax src/Dodge/Data/Item/Use.hs 197;" f +_izMin src/Dodge/Data/Item/Use.hs 198;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 143;" f _lTestInt src/Dodge/Data/LWorld.hs 145;" f @@ -2774,20 +2775,20 @@ _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Data/MetaTree.hs 10;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f _musicData src/Data/Preload.hs 13;" f -_muzVel src/Dodge/Data/Item/Use.hs 98;" f +_muzVel src/Dodge/Data/Item/Use.hs 99;" f _mvAimSpeed src/Dodge/Data/Creature/Misc.hs 44;" f _mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f _mvToPoint src/Dodge/Data/Creature.hs 81;" 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 174;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 171;" f -_mzEffect src/Dodge/Data/Item/Use.hs 173;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 172;" f -_mzFrame src/Dodge/Data/Item/Use.hs 175;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 170;" f -_mzPos src/Dodge/Data/Item/Use.hs 168;" f -_mzRot src/Dodge/Data/Item/Use.hs 169;" f +_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 175;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 172;" f +_mzEffect src/Dodge/Data/Item/Use.hs 174;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 173;" f +_mzFrame src/Dodge/Data/Item/Use.hs 176;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 171;" f +_mzPos src/Dodge/Data/Item/Use.hs 169;" f +_mzRot src/Dodge/Data/Item/Use.hs 170;" f _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f @@ -2797,10 +2798,10 @@ _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f -_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 150;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 149;" f -_nzPressure src/Dodge/Data/Item/Use.hs 148;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 151;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 151;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 150;" f +_nzPressure src/Dodge/Data/Item/Use.hs 149;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 152;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _oldMagnets src/Dodge/Data/LWorld.hs 125;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f @@ -2927,8 +2928,8 @@ _pyFaces src/Polyhedra/Data.hs 14;" f _radarBlips src/Dodge/Data/LWorld.hs 112;" f _radarSweeps src/Dodge/Data/LWorld.hs 107;" f _randGen src/Dodge/Data/World.hs 41;" f -_randomOffset src/Dodge/Data/Item/Use.hs 85;" f -_randomOffset src/Dodge/Data/Item/Use.hs 102;" f +_randomOffset src/Dodge/Data/Item/Use.hs 86;" f +_randomOffset src/Dodge/Data/Item/Use.hs 103;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f _rateTime src/Dodge/Data/Item/HeldDelay.hs 17;" f _rbColor src/Dodge/Data/RadarBlip.hs 15;" f @@ -2938,13 +2939,13 @@ _rbPos src/Dodge/Data/RadarBlip.hs 19;" f _rbRad src/Dodge/Data/RadarBlip.hs 18;" f _rbTime src/Dodge/Data/RadarBlip.hs 16;" f _rboBaseBloom src/Data/Preload/Render.hs 38;" f -_recoil src/Dodge/Data/Item/Use.hs 83;" f -_recoil src/Dodge/Data/Item/Use.hs 100;" f +_recoil src/Dodge/Data/Item/Use.hs 84;" f +_recoil src/Dodge/Data/Item/Use.hs 101;" f _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 64;" f _reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 74;" f -_rifling src/Dodge/Data/Item/Use.hs 99;" f +_rifling src/Dodge/Data/Item/Use.hs 100;" f _rkHoming src/Dodge/Data/Projectile.hs 39;" f _rkSmoke src/Dodge/Data/Projectile.hs 40;" f _rlDir src/Dodge/Data/Room.hs 26;" f @@ -3053,8 +3054,8 @@ _siWidth src/Dodge/Data/SelectionList.hs 47;" f _siWidth src/Dodge/Data/SelectionList.hs 56;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f -_sidePush src/Dodge/Data/Item/Use.hs 86;" f -_sidePush src/Dodge/Data/Item/Use.hs 103;" f +_sidePush src/Dodge/Data/Item/Use.hs 87;" f +_sidePush src/Dodge/Data/Item/Use.hs 104;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f _skColor src/Dodge/Data/Spark.hs 17;" f _skDamageType src/Dodge/Data/Spark.hs 21;" f @@ -3163,8 +3164,8 @@ _toPlaySoundVolume src/Sound/Data.hs 43;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 42;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 84;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 101;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 85;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 102;" f _tractorBeams src/Dodge/Data/LWorld.hs 119;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f @@ -3178,9 +3179,9 @@ _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 -_uScope src/Dodge/Data/Item/Use.hs 47;" f +_uScope src/Dodge/Data/Item/Use.hs 48;" f _uaParams src/Dodge/Data/Item/Use.hs 45;" f -_ubMod src/Dodge/Data/Item/Use.hs 48;" f +_ubMod src/Dodge/Data/Item/Use.hs 49;" f _uequipEffect src/Dodge/Data/Item/Use.hs 44;" f _unCombEdge src/Dodge/Combine/Graph.hs 31;" f _unCombNode src/Dodge/Combine/Graph.hs 24;" f @@ -3195,11 +3196,11 @@ _unST src/Dodge/Tree/Compose/Data.hs 12;" f _unTO src/Shader/Data.hs 59;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f -_useExactly src/Dodge/Data/Item/Use.hs 163;" f +_useExactly src/Dodge/Data/Item/Use.hs 164;" 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 -_useUpTo src/Dodge/Data/Item/Use.hs 164;" f +_useUpTo src/Dodge/Data/Item/Use.hs 165;" f _uvCanContinue src/Dodge/Data/Universe.hs 38;" f _uvConfig src/Dodge/Data/Universe.hs 36;" f _uvDebug src/Dodge/Data/Universe.hs 43;" f @@ -3251,10 +3252,10 @@ _walls src/Dodge/Data/LWorld.hs 120;" f _warmMax src/Dodge/Data/Item/HeldDelay.hs 27;" f _warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f _warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 90;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 107;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 91;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 108;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 91;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 108;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 92;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 109;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Data/Config.hs 54;" f _windowShader src/Data/Preload/Render.hs 19;" f @@ -3299,7 +3300,7 @@ aSound src/Dodge/SoundLogic.hs 68;" f aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f accessTerminal src/Dodge/WorldEffect.hs 48;" f -activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 49;" f +activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 87;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f addArmour src/Dodge/Creature.hs 83;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f @@ -3343,7 +3344,7 @@ advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/Picture.hs 239;" f aimStanceInfo src/Dodge/Item/Info.hs 199;" f -aimTurn src/Dodge/Creature/YourControl.hs 156;" f +aimTurn src/Dodge/Creature/YourControl.hs 154;" f aimingWeaponHandlePos src/Dodge/Item/HeldOffset.hs 69;" f aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 63;" f airlock src/Dodge/Room/Airlock.hs 19;" f @@ -3354,7 +3355,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 -allHotkeys src/Dodge/Creature/YourControl.hs 62;" f +allHotkeys src/Dodge/Creature/YourControl.hs 60;" f allInvLocs src/Dodge/Item/Grammar.hs 295;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f @@ -3619,7 +3620,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f clickGetCreature src/Dodge/Debug.hs 107;" f clipV src/Geometry/Vector.hs 47;" f -clipZoom src/Dodge/Update/Camera.hs 176;" f +clipZoom src/Dodge/Update/Camera.hs 184;" f clockCycle src/Dodge/Clock.hs 9;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 72;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 57;" f @@ -4058,7 +4059,7 @@ doThrust src/Dodge/Projectile/Update.hs 125;" f doTimeScroll src/Dodge/Update.hs 205;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 101;" f -doWallRotate src/Dodge/Update/Camera.hs 149;" f +doWallRotate src/Dodge/Update/Camera.hs 154;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f @@ -4277,14 +4278,14 @@ fadeTLS src/Dodge/LightSource/Update.hs 14;" f fallSmallBounce src/Dodge/Prop/Moving.hs 28;" f fallSmallBounce' src/Dodge/Prop/Moving.hs 33;" f fallSmallBounceDamage src/Dodge/Prop/Moving.hs 11;" f -farWallDistDirection src/Dodge/Update/Camera.hs 187;" f +farWallDistDirection src/Dodge/Update/Camera.hs 195;" f fdiv src/ShortShow.hs 27;" f feet src/Dodge/Creature/Picture.hs 53;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 197;" f findBlips src/Dodge/RadarSweep.hs 44;" f -findBoundDists src/Dodge/Update/Camera.hs 196;" f +findBoundDists src/Dodge/Update/Camera.hs 204;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findIndex src/IntMapHelp.hs 85;" f @@ -4418,7 +4419,7 @@ getTiles src/Dodge/Layout.hs 208;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f getWallSPic src/Dodge/Render/Walls.hs 51;" f getWindowSize src/Dodge/WindowSize.hs 5;" f -gimbal src/Dodge/Item/Scope.hs 82;" f +gimbal src/Dodge/Item/Scope.hs 83;" f girder src/Dodge/Room/Foreground.hs 211;" f girderV src/Dodge/Room/Foreground.hs 182;" f girderV' src/Dodge/Room/Foreground.hs 157;" f @@ -4462,14 +4463,14 @@ gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 368;" f gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 348;" f gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f -gyroscope src/Dodge/Item/Scope.hs 85;" f +gyroscope src/Dodge/Item/Scope.hs 86;" f 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 37;" f hammerCheck src/Dodge/HeldUse.hs 52;" f handleEvent src/Dodge/Event.hs 27;" f -handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f +handleHotkeys src/Dodge/Creature/YourControl.hs 40;" 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 @@ -4517,13 +4518,13 @@ holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 40;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f -hotkeyToScancode src/Dodge/Creature/YourControl.hs 65;" f +hotkeyToScancode src/Dodge/Creature/YourControl.hs 63;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 42;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f -ifConfigWallRotate src/Dodge/Update/Camera.hs 132;" f +ifConfigWallRotate src/Dodge/Update/Camera.hs 137;" f ildtPropagate src/Dodge/DoubleTree.hs 57;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 22;" f inLink src/Dodge/RoomLink.hs 113;" f @@ -4676,7 +4677,7 @@ itmUsageInfo src/Dodge/Item/Info.hs 186;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f joinItemsInList src/Dodge/Item/Grammar.hs 246;" f -joystick src/Dodge/Item/Scope.hs 78;" f +joystick src/Dodge/Item/Scope.hs 79;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f @@ -4971,7 +4972,7 @@ mntLSOn src/Dodge/Placement/Instance/LightSource.hs 54;" f mntLight src/Dodge/Placement/Instance/LightSource.hs 158;" f mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 163;" f modTo src/Geometry/Zone.hs 10;" f -mouseActionsCr src/Dodge/Creature/YourControl.hs 166;" f +mouseActionsCr src/Dodge/Creature/YourControl.hs 164;" f mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 58;" f mouseCursorType src/Dodge/Render/Picture.hs 80;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f @@ -4988,7 +4989,7 @@ moveWall src/Dodge/Wall/Move.hs 29;" f moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f -moveZoomCamera src/Dodge/Update/Camera.hs 80;" f +moveZoomCamera src/Dodge/Update/Camera.hs 85;" f mtTopLabels src/Dodge/Tree/Compose.hs 49;" f mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f @@ -5272,7 +5273,7 @@ preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f premapMaybe src/FoldlHelp.hs 24;" f prependTwo src/Geometry.hs 179;" f -pressedMBEffectsTopInventory src/Dodge/Creature/YourControl.hs 176;" f +pressedMBEffectsTopInventory src/Dodge/Creature/YourControl.hs 174;" f prettyDT src/Dodge/DoubleTree.hs 179;" f prettyLDT src/Dodge/DoubleTree.hs 183;" f prettyShort src/AesonHelp.hs 11;" f @@ -5494,14 +5495,14 @@ rotate3 src/Geometry/Vector3D.hs 48;" f rotate3x src/Geometry/Vector3D.hs 60;" f rotate3y src/Geometry/Vector3D.hs 66;" f rotate3z src/Geometry/Vector3D.hs 54;" f -rotateCamera src/Dodge/Update/Camera.hs 163;" f +rotateCamera src/Dodge/Update/Camera.hs 165;" f rotateProp src/Dodge/Prop/Update.hs 49;" f rotateSH src/Shape.hs 256;" f rotateSHq src/Shape.hs 165;" f rotateSHx src/Shape.hs 264;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f -rotateToOverlappingWall src/Dodge/Update/Camera.hs 138;" f +rotateToOverlappingWall src/Dodge/Update/Camera.hs 143;" f rotateToZ src/Quaternion.hs 34;" f rotateV src/Geometry/Vector.hs 105;" f rotateVAround src/Geometry/Vector.hs 112;" f @@ -5543,7 +5544,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 80;" f +scancodeToHotkey src/Dodge/Creature/YourControl.hs 78;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 117;" f screenBox src/Dodge/Base/Window.hs 53;" f @@ -5629,7 +5630,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 74;" f setTile src/Dodge/Layout.hs 68;" f setTiles src/Dodge/Layout.hs 65;" f setToggle src/Dodge/Prop/Update.hs 46;" f -setViewDistance src/Dodge/Update/Camera.hs 182;" f +setViewDistance src/Dodge/Update/Camera.hs 190;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 61;" f setViewport src/Dodge/Render.hs 388;" f setVol src/Dodge/Config/Update.hs 30;" f @@ -5750,7 +5751,7 @@ smallPillar src/Dodge/Room/Pillar.hs 32;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smg src/Dodge/Item/Held/Stick.hs 72;" f smokeCloudAt src/Dodge/WorldEvent/Cloud.hs 41;" f -smokeReducer src/Dodge/Item/Scope.hs 91;" f +smokeReducer src/Dodge/Item/Scope.hs 92;" f sndV2 src/Geometry/Data.hs 52;" f sniperRifle src/Dodge/Item/Held/Rod.hs 54;" f someCrits src/Dodge/LockAndKey.hs 120;" f @@ -5966,7 +5967,7 @@ toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 66;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 104;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 556;" f toggleTweakInv src/Dodge/Update/Input/InGame.hs 569;" f @@ -5995,7 +5996,7 @@ transToHandle src/Dodge/Item/HeldOffset.hs 21;" f translate src/Picture/Base.hs 116;" f translate3 src/Picture/Base.hs 120;" f translateFloatingCamera src/Dodge/Update/Camera.hs 47;" f -translateFloatingCameraKeys src/Dodge/Update/Camera.hs 59;" f +translateFloatingCameraKeys src/Dodge/Update/Camera.hs 64;" f translateH src/Picture/Base.hs 112;" f translatePointToHead src/Dodge/Creature/HandPos.hs 147;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f @@ -6037,7 +6038,7 @@ 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 -tryAssignHotkey src/Dodge/Creature/YourControl.hs 96;" f +tryAssignHotkey src/Dodge/Creature/YourControl.hs 94;" f tryAttachItems src/Dodge/Item/Grammar.hs 22;" f tryCombine src/Dodge/Update/Input/InGame.hs 578;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 115;" f @@ -6071,7 +6072,7 @@ twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 438;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f ubyteSize src/Shader/Parameters.hs 13;" f uncurryV src/Geometry/Data.hs 46;" f -underBarrelSlot src/Dodge/Item/Scope.hs 88;" f +underBarrelSlot src/Dodge/Item/Scope.hs 89;" f unfoldrMID src/MonadHelp.hs 33;" f unitVectorAtAngle src/Geometry/Vector.hs 100;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f @@ -6096,7 +6097,7 @@ updateAttachedItems src/Dodge/Creature/State.hs 266;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 464;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f -updateBounds src/Dodge/Update/Camera.hs 206;" f +updateBounds src/Dodge/Update/Camera.hs 214;" f updateBulVel src/Dodge/Bullet.hs 61;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 545;" f @@ -6130,7 +6131,7 @@ updateHeldRootItem src/Dodge/Creature/State.hs 260;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 507;" f updateIMl' src/Dodge/Update.hs 512;" f -updateInGameCamera src/Dodge/Update/Camera.hs 71;" f +updateInGameCamera src/Dodge/Update/Camera.hs 76;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 408;" f updateInv src/Dodge/Creature/State.hs 162;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f @@ -6228,10 +6229,13 @@ useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 34;" f useGasParams src/Dodge/HeldUse.hs 507;" f -useHotkey src/Dodge/Creature/YourControl.hs 55;" f +useHotkey src/Dodge/Creature/YourControl.hs 53;" 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 289;" f -useLocation src/Dodge/Creature/Impulse/UseItem.hs 57;" f +useLocation src/Dodge/Creature/Impulse/UseItem.hs 95;" f +useLocation' src/Dodge/Creature/Impulse/UseItem.hs 48;" f useMagShield src/Dodge/Euse.hs 46;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 17;" f @@ -6239,7 +6243,7 @@ useRewindGun src/Dodge/HeldUse.hs 704;" f useRewindGun src/Dodge/Luse.hs 40;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f +useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 58;" f useStopWatch src/Dodge/HeldUse.hs 685;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/HeldUse.hs 63;" f @@ -6271,7 +6275,7 @@ verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalWire src/Dodge/Wire.hs 24;" f viewBoundaries src/Dodge/Debug/Picture.hs 298;" f viewClipBounds src/Dodge/Debug/Picture.hs 307;" f -viewDistanceFromItems src/Dodge/Update/Camera.hs 129;" f +viewDistanceFromItems src/Dodge/Update/Camera.hs 134;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 144;" f violet src/Color.hs 21;" f visibleWalls src/Dodge/Base/Collide.hs 123;" f @@ -6289,12 +6293,12 @@ 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 29;" f -wasdAim src/Dodge/Creature/YourControl.hs 118;" f +wasdAim src/Dodge/Creature/YourControl.hs 116;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f -wasdMovement src/Dodge/Creature/YourControl.hs 144;" f -wasdTwist src/Dodge/Creature/YourControl.hs 126;" f -wasdWithAiming src/Dodge/Creature/YourControl.hs 108;" f +wasdMovement src/Dodge/Creature/YourControl.hs 142;" f +wasdTwist src/Dodge/Creature/YourControl.hs 124;" f +wasdWithAiming src/Dodge/Creature/YourControl.hs 106;" 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 @@ -6394,8 +6398,8 @@ zonePn src/Dodge/Zoning/Pathing.hs 30;" f zoneWall src/Dodge/Zoning/Wall.hs 65;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 89;" f zonesExtract src/Dodge/Zoning/Base.hs 54;" f -zoomFloatingCamera src/Dodge/Update/Camera.hs 64;" f -zoomFromItem src/Dodge/Update/Camera.hs 172;" f +zoomFloatingCamera src/Dodge/Update/Camera.hs 69;" f +zoomFromItem src/Dodge/Update/Camera.hs 180;" f zoomInLongGun src/Dodge/Update/Scroll.hs 104;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 112;" f zoomScope src/Dodge/Item/Scope.hs 25;" f