diff --git a/src/Dodge/BaseTriggerType.hs b/src/Dodge/BaseTriggerType.hs index eb94d5e15..a82f95ba6 100644 --- a/src/Dodge/BaseTriggerType.hs +++ b/src/Dodge/BaseTriggerType.hs @@ -2,15 +2,21 @@ module Dodge.BaseTriggerType ( itemTriggerType, + baseItemTriggerType, module Dodge.Data.TriggerType, ) where +import Dodge.Data.ComposedItem +import Dodge.Data.DoubleTree import Control.Lens import Dodge.Data.Item import Dodge.Data.TriggerType -itemTriggerType :: Item -> TriggerType -itemTriggerType itm = case itm ^. itType of +itemTriggerType :: LocationLDT ItemLink OItem -> TriggerType +itemTriggerType loc = baseItemTriggerType $ loc ^. locLDT . ldtValue . _1 + +baseItemTriggerType :: Item -> TriggerType +baseItemTriggerType itm = case itm ^. itType of HELD hit -> heldTriggerType hit _ -> NoTrigger diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 323824c92..94aa846d1 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -165,27 +165,28 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of | otherwise -> w & pointerToItem itm . itParams . wTime %~ (max 0 . subtract 1) + -- hard code values? HELD MACHINEPISTOL{} - | fromMaybe 0 (itm ^? itParams . wTime) >= _coolEnd (itemTriggerType itm) -> + | fromMaybe 0 (itm ^? itParams . wTime) >= _coolEnd (baseItemTriggerType itm) -> w & pointerToItem itm . itParams . wTime .~ 0 & pointerToItem itm . itParams . coolSound .~ Nothing - | fromMaybe 0 (itm ^? itParams . wTime) == _coolStart (itemTriggerType itm) -> + | fromMaybe 0 (itm ^? itParams . wTime) == _coolStart (baseItemTriggerType itm) -> w & randGen .~ g & pointerToItem itm . itParams . wTime +~ 1 & pointerToItem itm . itParams . coolSound ?~ sid & soundContinue (CrWeaponSound (_crID cr) (fromIntegral $ _itID itm)) (_crPos cr) sid (Just 1) - | fromMaybe 0 (itm ^? itParams . wTime) > _coolStart (itemTriggerType itm) -> + | fromMaybe 0 (itm ^? itParams . wTime) > _coolStart (baseItemTriggerType itm) -> w & pointerToItem itm . itParams . wTime +~ 1 & soundContinue (CrWeaponSound (_crID cr) (fromIntegral $ _itID itm)) (_crPos cr) (fromMaybe undefined (itm ^? itParams . coolSound . _Just)) (Just 1) | itm ^? itParams . isWarming == Just True -> w & pointerToItem itm . itParams . isWarming .~ False - | fromMaybe 0 (itm ^? itParams . wTime) >= _warmStart (itemTriggerType itm) -> + | fromMaybe 0 (itm ^? itParams . wTime) >= _warmStart (baseItemTriggerType itm) -> w & pointerToItem itm . itParams . wTime - .~ _coolStart (itemTriggerType itm) + .~ _coolStart (baseItemTriggerType itm) | otherwise -> w & pointerToItem itm . itParams . wTime .~ 0 diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 8c311a05b..a9c286704 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -4,7 +4,6 @@ module Dodge.HeldUse ( gadgetEffect, - -- heldEffect, mcUseHeld, heldEffectMuzzles, ) where @@ -48,7 +47,7 @@ gadgetEffect pt loc | UseHeld{} <- loc ^. locLDT . ldtValue . _1 . itUse = heldEffect pt - (loc ^. locLDT) + loc | DROPPER x <- loc ^. locLDT . ldtValue . _1 . itType , Just i <- loc ^? locLDT . ldtValue . _1 . itUse . uInt , pt == InitialPress = @@ -58,79 +57,81 @@ gadgetEffect pt loc useInventoryPath pt i x loc | otherwise = const id -heldEffect :: PressType -> LDTree ItemLink OItem -> Creature -> World -> World +heldEffect :: PressType -> LocationLDT ItemLink OItem -> Creature -> World -> World heldEffect = hammerCheck heldEffectMuzzles hammerCheck :: - (LDTree ItemLink OItem -> Creature -> World -> World) -> + (LocationLDT ItemLink OItem -> Creature -> World -> World) -> PressType -> - LDTree ItemLink OItem -> + LocationLDT ItemLink OItem -> Creature -> World -> World -hammerCheck f pt it cr w = case itemTriggerType $ it ^. ldtValue . _1 of +hammerCheck f pt loc cr w = case itemTriggerType loc of WarmUpNoDelay wm - | _wTime (_itParams $ _ldtValue $ fmap (^. _1) it) < wm -> + | _wTime (_itParams $ _ldtValue $ fmap (^. _1) tree) < wm -> w & setwarming - & soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ it ^. ldtValue . _1 . itType) (Just 2) - & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1 - WarmUpNoDelay{} -> f it cr w & setwarming + & soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ it ^. itType) (Just 2) + & cWorld . lWorld . creatures . ix cid . crInv . ix invid . itParams . wTime +~ 1 + WarmUpNoDelay{} -> f loc cr w & setwarming WarmUpCoolDown ws _ _ - | _wTime (_itParams $ _ldtValue $ fmap (^. _1) it) < ws -> + -- UNSAFE: + | _wTime (_itParams $ it) < ws -> w & setwarming - & soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ it ^. ldtValue . _1 . itType) (Just 2) - & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1 + & soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ it ^. itType) (Just 2) + & cWorld . lWorld . creatures . ix cid . crInv . ix invid . itParams . wTime +~ 1 WarmUpCoolDown _ cs _ - | _wTime (_itParams $ _ldtValue $ fmap (^. _1) it) < cs -> - f it cr w & setwarming - & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1 + | _wTime (_itParams $ it) < cs -> + f loc cr w & setwarming + & cWorld . lWorld . creatures . ix cid . crInv . ix invid . itParams . wTime +~ 1 WarmUpCoolDown{} -> w & setwarming BurstTrigger is t | w ^. cWorld . lWorld . lClock - t > timelastused , pt == InitialPress -> - w & f it cr & cWorld . lWorld . delayedEvents .++~ map g is - BurstTrigger{} -> w + w & f loc cr & cWorld . lWorld . delayedEvents .++~ map g is VolleyGunTrigger i t | w ^. cWorld . lWorld . lClock - t > timelastused , pt == InitialPress -> let (is, gen) = getVolleyBurst i (w ^. randGen) - in w & f it cr + in w & f loc cr & cWorld . lWorld . delayedEvents .++~ map g is & randGen .~ gen - VolleyGunTrigger{} -> w HammerTrigger t | w ^. cWorld . lWorld . lClock - t > timelastused - , isNothing $ lookup MakeAutoLink (it ^. ldtRight) + , isNothing $ lookup MakeAutoLink (tree ^. ldtRight) , pt == InitialPress -> - f it cr w + f loc cr w AutoTrigger t | w ^. cWorld . lWorld . lClock - t > timelastused -> - f it cr w - NoTrigger -> f it cr w + f loc cr w + NoTrigger -> f loc cr w _ -> w where + tree = loc ^. locLDT + it = loc ^. locLDT . ldtValue . _1 cid = _crID cr -- the following is unsafe, but if ilInvID isn't correctly set we probably -- will have problems elsewhere also - itRef = it ^?! ldtValue . _1 . itLocation . ilInvID + invid = it ^?! itLocation . ilInvID setwarming = - cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . isWarming + cWorld . lWorld . creatures . ix cid . crInv . ix invid . itParams . isWarming %~ const True - timelastused = it ^. ldtValue . _1 . itTimeLastUsed - g x = (x, WdWdBurstFireRepetition (_crID cr) (it ^?! ldtValue . _1 . itLocation . ilInvID)) + timelastused = it ^. itTimeLastUsed + g x = (x, WdWdBurstFireRepetition (_crID cr) invid) getVolleyBurst :: (Random a, RandomGen b, Num a) => Int -> b -> ([a], b) getVolleyBurst i g = let (is, g') = runState (replicateM (i -1) (state $ randomR (0, 6))) g in (scanl1 (+) is, g') -heldEffectMuzzles :: LDTree ItemLink OItem -> Creature -> World -> World -heldEffectMuzzles t cr w = +heldEffectMuzzles :: LocationLDT ItemLink OItem -> Creature -> World -> World +heldEffectMuzzles loc cr w = setusetime . doHeldUseEffect t cr . uncurry (applyCME (_ldtValue t ^. _1) cr) . foldl' (useLoadedAmmo t cr) (False, w) $ loadedmuzzles where + t = loc ^. locLDT (_, loadedmuzzles) = mapAccumR loadMuzzle t . itemMuzzles $ t ^. ldtValue . _1 setusetime = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itTimeLastUsed @@ -404,7 +405,7 @@ applyCME itm cr cme -- the above is quite hacky for now _ -> failsound where - coolstart = fromMaybe 0 $ itemTriggerType itm ^? coolStart + coolstart = fromMaybe 0 $ baseItemTriggerType itm ^? coolStart itid = itm ^?! itLocation . ilInvID -- unsafe spush = maybe 0 itemSidePush $ itm ^? itType . ibtHeld failsound w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of @@ -1218,7 +1219,7 @@ mcShootLaser _ mc = mcShootAuto :: Item -> Machine -> World -> World mcShootAuto itm mc w - | Just (AutoTrigger rate) <- itemTriggerType <$> mc ^? mcType . mctTurret . tuWeapon -- . itUse . heldDelay + | Just (AutoTrigger rate) <- baseItemTriggerType <$> mc ^? mcType . mctTurret . tuWeapon -- . itUse . heldDelay , w ^. cWorld . lWorld . lClock - rate > lastused = w & cWorld . lWorld . machines . ix (_mcID mc) . mcType . mctTurret . tuWeapon diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 945fde6ad..fa2b96853 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -43,7 +43,7 @@ itemInternalValue itm maybeWarmupStatus :: Item -> Maybe String -maybeWarmupStatus it = case itemTriggerType it ^? warmMax of +maybeWarmupStatus it = case baseItemTriggerType it ^? warmMax of Nothing -> Nothing --Just m -> case m - (_warmTime . _heldDelay $ _itUse it) of Just m -> case m - _wTime (_itParams it) of diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 4d06a52cf..3dd768060 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -91,7 +91,7 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of _ -> ([], []) getAutoSpringLinks :: Item -> [(ItemStructuralFunction, ItemLink)] -getAutoSpringLinks itm = case itemTriggerType itm of +getAutoSpringLinks itm = case baseItemTriggerType itm of HammerTrigger _ -> [(MakeAutoSF, MakeAutoLink)] _ -> [] diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index 905b8601c..d616b467e 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -9,7 +9,6 @@ import Dodge.Item.Grammar import Dodge.Creature.Impulse.UseItem import Dodge.BlBl import Dodge.HeldUse -import Dodge.Data.DoubleTree import Data.Foldable import qualified Data.Map.Strict as M import Data.Maybe @@ -45,8 +44,9 @@ doWdWd we = case we of UseInvItem invid pt -> \w -> fromMaybe w (useItem invid pt w) WdWdBurstFireRepetition cid invid -> \w -> fromMaybe w $ do cr <- w ^? cWorld . lWorld . creatures . ix cid - itree <- allInvLocs (cr ^. crInv) ^? ix invid . _2 . locLDT - return $ heldEffectMuzzles itree cr w + --itree <- allInvLocs (cr ^. crInv) ^? ix invid . _2 . locLDT + loc <- allInvLocs (cr ^. crInv) ^? ix invid . _2 + return $ heldEffectMuzzles loc cr w accessTerminal :: Maybe Int -> World -> World accessTerminal mtmid w = fromMaybe w $ do diff --git a/tags b/tags index 87f693219..d9f7f72a4 100644 --- a/tags +++ b/tags @@ -3383,21 +3383,21 @@ 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 247;" f -applyCME src/Dodge/HeldUse.hs 435;" f +applyCME src/Dodge/HeldUse.hs 393;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f applyEventIO src/Loop.hs 89;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f -applyInvLock src/Dodge/HeldUse.hs 501;" f +applyInvLock src/Dodge/HeldUse.hs 459;" f applyMagnetsToBul src/Dodge/Bullet.hs 30;" f applyPastDamages src/Dodge/Creature/State.hs 134;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f applyPosition src/Sound.hs 111;" f -applyRecoil src/Dodge/HeldUse.hs 533;" f +applyRecoil src/Dodge/HeldUse.hs 491;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 632;" f -applySoundCME src/Dodge/HeldUse.hs 523;" f +applySidePush src/Dodge/HeldUse.hs 590;" f +applySoundCME src/Dodge/HeldUse.hs 481;" 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 @@ -3405,7 +3405,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 643;" f +applyTorqueCME src/Dodge/HeldUse.hs 601;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 134;" f @@ -3472,13 +3472,14 @@ baseCI src/Dodge/Item/Grammar.hs 164;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f +baseItemTriggerType src/Dodge/BaseTriggerType.hs 18;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 314;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 402;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 382;" f baseShoulder src/Dodge/Creature/Picture.hs 125;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 288;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 281;" f -baseStickSpread src/Dodge/HeldUse.hs 331;" f +baseStickSpread src/Dodge/HeldUse.hs 289;" f baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f @@ -3488,7 +3489,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 783;" f +basicMuzFlare src/Dodge/HeldUse.hs 741;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 62;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f @@ -3497,7 +3498,7 @@ beltMag src/Dodge/Item/Ammo.hs 38;" f bfsNodePoints src/Dodge/Path.hs 58;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 114;" f -bgunSound src/Dodge/HeldUse.hs 586;" f +bgunSound src/Dodge/HeldUse.hs 544;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f @@ -3719,7 +3720,7 @@ convexHull src/Geometry/Polygon.hs 104;" f convexHullSafe src/Geometry/Polygon.hs 111;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f copier src/Dodge/Item/Scope.hs 88;" f -copierItemUpdate src/Dodge/Creature/State.hs 200;" f +copierItemUpdate src/Dodge/Creature/State.hs 201;" f copierItemUpdate src/Dodge/ItEffect.hs 37;" f copyItemToFloor src/Dodge/FloorItem.hs 18;" f copyItemToFloorID src/Dodge/FloorItem.hs 22;" f @@ -3784,14 +3785,14 @@ 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 1343;" f -createProjectileR src/Dodge/HeldUse.hs 1307;" f +createProjectile src/Dodge/HeldUse.hs 1301;" f +createProjectileR src/Dodge/HeldUse.hs 1265;" f createShell src/Dodge/Projectile/Create.hs 22;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f -creatureShootLaser src/Dodge/HeldUse.hs 897;" f +creatureShootLaser src/Dodge/HeldUse.hs 855;" 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 @@ -3862,7 +3863,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 334;" f +dbwMuzzles src/Dodge/HeldUse.hs 292;" f deZoneIX src/Dodge/Zoning/Base.hs 89;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f @@ -3980,7 +3981,7 @@ detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 451;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1293;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1251;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4013,7 +4014,7 @@ dmType src/Dodge/Damage.hs 38;" f doAfterPlacement src/Dodge/Layout.hs 86;" f doAfterPlacements src/Dodge/Layout.hs 83;" f doAimTwist src/Dodge/Creature/YourControl.hs 140;" f -doAnyEquipmentEffect src/Dodge/Creature/State.hs 210;" f +doAnyEquipmentEffect src/Dodge/Creature/State.hs 211;" f doArcStep src/Dodge/Tesla/Arc.hs 135;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBlBl src/Dodge/BlBl.hs 5;" f @@ -4045,9 +4046,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 1251;" f +doGenFloat src/Dodge/HeldUse.hs 1209;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 364;" f +doHeldUseEffect src/Dodge/HeldUse.hs 322;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f @@ -4239,7 +4240,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropAll src/Dodge/Creature/State.hs 127;" f dropExcept src/Dodge/Creature/Action.hs 166;" f -dropInventoryPath src/Dodge/HeldUse.hs 1423;" f +dropInventoryPath src/Dodge/HeldUse.hs 1381;" f dropItem src/Dodge/Creature/Action.hs 172;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 33;" f @@ -4354,7 +4355,7 @@ firstWorldLoad appDodge/Main.hs 77;" f fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flFlicker src/Dodge/Flame.hs 38;" f -flameMuzzles src/Dodge/HeldUse.hs 337;" f +flameMuzzles src/Dodge/HeldUse.hs 295;" f flameShield src/Dodge/Item/Equipment.hs 33;" f flameSize src/Dodge/Flame/Size.hs 5;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f @@ -4362,7 +4363,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flamerPic src/Dodge/Item/Draw/SPic.hs 385;" f -flareCircleAt src/Dodge/HeldUse.hs 764;" f +flareCircleAt src/Dodge/HeldUse.hs 722;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatLookupItems src/Dodge/Combine.hs 39;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f @@ -4422,14 +4423,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 48;" f +gadgetEffect src/Dodge/HeldUse.hs 45;" 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 1207;" f +gasType src/Dodge/HeldUse.hs 1165;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4444,11 +4445,11 @@ getAimZoom src/Dodge/Update/Camera.hs 135;" f getAmmoLinks src/Dodge/Item/Grammar.hs 114;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f -getAttachedSFLink src/Dodge/HeldUse.hs 835;" f +getAttachedSFLink src/Dodge/HeldUse.hs 793;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 93;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f -getBulletType src/Dodge/HeldUse.hs 955;" f +getBulletType src/Dodge/HeldUse.hs 913;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4456,17 +4457,17 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f getDamageCoding src/Dodge/Terminal.hs 177;" f getDistortions src/Dodge/Render.hs 411;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 1336;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1294;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f -getLaserColor src/Dodge/HeldUse.hs 780;" f -getLaserDamage src/Dodge/HeldUse.hs 777;" f -getLaserPhaseV src/Dodge/HeldUse.hs 774;" f +getLaserColor src/Dodge/HeldUse.hs 738;" f +getLaserDamage src/Dodge/HeldUse.hs 735;" f +getLaserPhaseV src/Dodge/HeldUse.hs 732;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 392;" f getNodePos src/Dodge/Path.hs 31;" f -getPJStabiliser src/Dodge/HeldUse.hs 1328;" f +getPJStabiliser src/Dodge/HeldUse.hs 1286;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f @@ -4476,7 +4477,7 @@ getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f getTiles src/Dodge/Layout.hs 208;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f -getVolleyBurst src/Dodge/HeldUse.hs 123;" f +getVolleyBurst src/Dodge/HeldUse.hs 122;" f getWallSPic src/Dodge/Render/Walls.hs 51;" f getWindowSize src/Dodge/WindowSize.hs 5;" f gimbal src/Dodge/Item/Scope.hs 153;" f @@ -4526,7 +4527,7 @@ 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 69;" f +hammerCheck src/Dodge/HeldUse.hs 63;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f @@ -4556,26 +4557,25 @@ healthTest src/Dodge/Room/LasTurret.hs 95;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldAimStance src/Dodge/Item/AimStance.hs 22;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f -heldEffect src/Dodge/HeldUse.hs 63;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 170;" f -heldEffectNoHammerCheck src/Dodge/HeldUse.hs 66;" f +heldEffect src/Dodge/HeldUse.hs 60;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 127;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 115;" f heldInfo src/Dodge/Item/Info.hs 90;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f -heldItemInvLock src/Dodge/HeldUse.hs 516;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1093;" f -heldItemMuzzles src/Dodge/HeldUse.hs 198;" f +heldItemInvLock src/Dodge/HeldUse.hs 474;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1051;" f +heldItemMuzzles src/Dodge/HeldUse.hs 156;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 92;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 37;" f heldItemOrient2D' src/Dodge/Item/HeldOffset.hs 42;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 47;" f -heldItemRifling src/Dodge/HeldUse.hs 1137;" f +heldItemRifling src/Dodge/HeldUse.hs 1095;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f -heldTorqueAmount src/Dodge/HeldUse.hs 659;" f -heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f +heldTorqueAmount src/Dodge/HeldUse.hs 617;" f +heldTriggerType src/Dodge/BaseTriggerType.hs 23;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f heron src/Geometry.hs 217;" f @@ -4690,7 +4690,7 @@ invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 790;" f +isAmmoIntLink src/Dodge/HeldUse.hs 748;" f isAnimate src/Dodge/Creature/Test.hs 143;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4727,7 +4727,7 @@ itemBlips src/Dodge/RadarSweep.hs 93;" f itemBulkiness src/Dodge/Creature/YourControl.hs 172;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f -itemDetectorEffect src/Dodge/HeldUse.hs 841;" f +itemDetectorEffect src/Dodge/HeldUse.hs 799;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f @@ -4739,9 +4739,9 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 20;" f itemInternalValue src/Dodge/Item/Display.hs 34;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvLock src/Dodge/HeldUse.hs 511;" f -itemMuzzles src/Dodge/HeldUse.hs 183;" f -itemRandomOffset src/Dodge/HeldUse.hs 1030;" f +itemInvLock src/Dodge/HeldUse.hs 469;" f +itemMuzzles src/Dodge/HeldUse.hs 141;" f +itemRandomOffset src/Dodge/HeldUse.hs 988;" f itemRelativeOrient src/Dodge/Item/HeldOffset.hs 159;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f @@ -4750,12 +4750,12 @@ itemScan src/Dodge/Item/Scope.hs 63;" f itemScroll src/Dodge/Update/Scroll.hs 52;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f -itemSidePush src/Dodge/HeldUse.hs 457;" f +itemSidePush src/Dodge/HeldUse.hs 415;" f itemString src/Dodge/Item/Display.hs 56;" f itemToBreakLists src/Dodge/Item/Grammar.hs 38;" f itemToFunction src/Dodge/Item/Grammar.hs 120;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f -itemTriggerType src/Dodge/BaseTriggerType.hs 12;" f +itemTriggerType src/Dodge/BaseTriggerType.hs 15;" f itemWeight src/Dodge/Creature/Statistics.hs 66;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f @@ -4852,7 +4852,7 @@ 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 30;" f -loadMuzzle src/Dodge/HeldUse.hs 704;" f +loadMuzzle src/Dodge/HeldUse.hs 662;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4896,7 +4896,7 @@ machineAddSound src/Dodge/Machine.hs 49;" f machinePistol src/Dodge/Item/Held/Stick.hs 52;" f machineUpdateDeathEff src/Dodge/Machine.hs 34;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f -magAmmoParams src/Dodge/HeldUse.hs 976;" f +magAmmoParams src/Dodge/HeldUse.hs 934;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magShield src/Dodge/Item/Equipment.hs 27;" f magV src/Geometry/Vector.hs 171;" f @@ -4911,7 +4911,7 @@ 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 1074;" f +makeBullet src/Dodge/HeldUse.hs 1032;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f @@ -4937,7 +4937,7 @@ makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 35;" f makeMovingEB src/Dodge/EnergyBall.hs 74;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 725;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 683;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4992,11 +4992,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 130;" f mcSPic src/Dodge/Render/ShapePicture.hs 111;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f -mcShootAuto src/Dodge/HeldUse.hs 1262;" f -mcShootLaser src/Dodge/HeldUse.hs 1255;" f +mcShootAuto src/Dodge/HeldUse.hs 1220;" f +mcShootLaser src/Dodge/HeldUse.hs 1213;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f -mcUseHeld src/Dodge/HeldUse.hs 1181;" f +mcUseHeld src/Dodge/HeldUse.hs 1139;" f mcUseItem src/Dodge/Machine/Update.hs 85;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 54;" f @@ -5089,7 +5089,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 750;" f +muzFlareAt src/Dodge/HeldUse.hs 708;" 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 @@ -5484,7 +5484,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 538;" f +recoilAmount src/Dodge/HeldUse.hs 496;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5511,7 +5511,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 178;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f removeAimPosture src/Dodge/Creature/YourControl.hs 147;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 943;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 901;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f @@ -5792,15 +5792,15 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 329;" f shineTorch src/Dodge/Creature/State.hs 409;" f -shootBullet src/Dodge/HeldUse.hs 1018;" f -shootBullets src/Dodge/HeldUse.hs 1008;" f +shootBullet src/Dodge/HeldUse.hs 976;" f +shootBullets src/Dodge/HeldUse.hs 966;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 922;" f +shootLaser src/Dodge/HeldUse.hs 880;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 1281;" f +shootTeslaArc src/Dodge/HeldUse.hs 1239;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 874;" f +shootTractorBeam src/Dodge/HeldUse.hs 832;" 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 @@ -5816,9 +5816,9 @@ showEquipItem src/Dodge/Item/Display.hs 105;" f showInt src/Dodge/Item/Info.hs 73;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showInventoryPathing src/Dodge/Item/Display.hs 85;" f -showManObj src/Dodge/TestString.hs 62;" f +showManObj src/Dodge/TestString.hs 59;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f -showTimeFlow src/Dodge/TestString.hs 85;" f +showTimeFlow src/Dodge/TestString.hs 82;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -6022,7 +6022,7 @@ teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f testInventory src/Dodge/Creature.hs 292;" f -testStringInit src/Dodge/TestString.hs 29;" f +testStringInit src/Dodge/TestString.hs 28;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f textInputFocus src/Dodge/InputFocus.hs 16;" f @@ -6095,15 +6095,15 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 439;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 58;" f +topTestPart src/Dodge/TestString.hs 55;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 267;" f -torqueAmount src/Dodge/HeldUse.hs 654;" f +torqueAmount src/Dodge/HeldUse.hs 612;" f torqueCr src/Dodge/WorldEffect.hs 66;" f torso src/Dodge/Creature/Picture.hs 99;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 886;" f +tractorBeamAt src/Dodge/HeldUse.hs 844;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 435;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -6173,7 +6173,7 @@ trySeedFromClipboard src/Dodge/Menu.hs 91;" f tryShellBounce src/Dodge/Projectile/Update.hs 103;" f trySpinByCID src/Dodge/Projectile/Update.hs 177;" f trySynthBullet src/Dodge/Creature/State.hs 224;" f -tryUseParent src/Dodge/Creature/State.hs 217;" f +tryUseParent src/Dodge/Creature/State.hs 218;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 27;" f @@ -6343,25 +6343,24 @@ upperRounded src/Shape.hs 185;" f useBulletPayload src/Dodge/Bullet.hs 113;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f -useGasParams src/Dodge/HeldUse.hs 1186;" f +useGasParams src/Dodge/HeldUse.hs 1144;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f -useInventoryPath src/Dodge/HeldUse.hs 1454;" f +useInventoryPath src/Dodge/HeldUse.hs 1412;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 794;" f +useLoadedAmmo src/Dodge/HeldUse.hs 752;" f useMagShield src/Dodge/Euse.hs 26;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1414;" f +useRewindGun src/Dodge/HeldUse.hs 1372;" 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 1395;" f +useStopWatch src/Dodge/HeldUse.hs 1353;" f useStopWatch src/Dodge/Luse.hs 21;" f -useTimeCheck src/Dodge/HeldUse.hs 131;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1403;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1361;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6385,7 +6384,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 353;" f +vgunMuzzles src/Dodge/HeldUse.hs 311;" f viewBoundaries src/Dodge/Debug/Picture.hs 304;" f viewClipBounds src/Dodge/Debug/Picture.hs 313;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 186;" f @@ -6397,7 +6396,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 345;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 856;" f +walkNozzle src/Dodge/HeldUse.hs 814;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f @@ -6405,7 +6404,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallsFromRooms src/Dodge/Layout.hs 146;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f -warmupSound src/Dodge/HeldUse.hs 1448;" f +warmupSound src/Dodge/HeldUse.hs 1406;" f warningRooms src/Dodge/Room/Warning.hs 28;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f