diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 2c5ff0dee..ccaffc608 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -29,7 +29,6 @@ import Geometry.Data data ItemUse = UseHeld - | UseEquip | UseAttach {_uaParams :: AttachParams} | UseInt {_uInt :: Int} | UseNothing diff --git a/src/Dodge/Default.hs b/src/Dodge/Default.hs index df4dbebd0..e8af56f78 100644 --- a/src/Dodge/Default.hs +++ b/src/Dodge/Default.hs @@ -22,7 +22,7 @@ import Geometry import Picture defaultEquipment :: Item -defaultEquipment = defaultHeldItem & itUse .~ UseEquip +defaultEquipment = defaultHeldItem & itUse .~ UseNothing defaultFlIt :: FloorItem defaultFlIt = FlIt{_flItRot = 0, _flIt = defaultHeldItem, _flItPos = V2 0 0, _flItID = 0} diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 44527b916..e63dcf104 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -82,13 +82,15 @@ hammerCheck :: World hammerCheck f pt it cr w | BurstTrigger is <- itemTriggerType (it ^. ldtValue) - , pt == InitialPress = w & f it cr & cWorld . lWorld . delayedEvents .++~ map g is + , pt == InitialPress = + w & f it cr & cWorld . lWorld . delayedEvents .++~ map g is | BurstTrigger{} <- itemTriggerType (it ^. ldtValue) = w | VolleyGunTrigger i <- itemTriggerType (it ^. ldtValue) - , pt == InitialPress = let (is,gen) = getVolleyBurst i (w ^. randGen) - in w & f it cr - & cWorld . lWorld . delayedEvents .++~ map g is - & randGen .~ gen + , pt == InitialPress = + let (is, gen) = getVolleyBurst i (w ^. randGen) + in w & f it cr + & cWorld . lWorld . delayedEvents .++~ map g is + & randGen .~ gen | VolleyGunTrigger{} <- itemTriggerType (it ^. ldtValue) = w | t <- itemTriggerType (it ^. ldtValue) , t == HammerTrigger || t == AlwaysSingleTrigger @@ -99,10 +101,10 @@ hammerCheck f pt it cr w where g x = (x, WdWdBurstFireRepetition (_crID cr) (it ^?! ldtValue . itLocation . ilInvID)) - 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') +getVolleyBurst i g = + let (is, g') = runState (replicateM (i -1) (state $ randomR (0, 6))) g + in (scanl1 (+) is, g') {- | Applies a world effect after an item use cooldown check. input buffering? @@ -224,7 +226,7 @@ heldItemMuzzles = \case BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15)] GRAPECANNON _ -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15)] TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0 - VOLLEYGUN {} -> error "should get volleygun muzzles earlier" + VOLLEYGUN{} -> error "should get volleygun muzzles earlier" FLAMETHROWER -> flameMuzzles FLAMESPITTER -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 3 4 RLAUNCHER -> @@ -340,15 +342,21 @@ doHeldUseEffect t cr w = case t ^. ldtValue . itType of Just [_] -> fromMaybe w $ do let (is, g) = runState (shuffle [0 .. j -1]) $ w ^. randGen i <- itm ^? itLocation . ilInvID - return $ w - & randGen .~ g - & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i - . itParams . unfiredBarrels %~ const is - Just (_:_:_) -> fromMaybe w $ do + return $ + w + & randGen .~ g + & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i + . itParams + . unfiredBarrels + %~ const is + Just (_ : _ : _) -> fromMaybe w $ do i <- itm ^? itLocation . ilInvID - return $ w - & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i - . itParams . unfiredBarrels %~ tail + return $ + w + & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i + . itParams + . unfiredBarrels + %~ tail _ -> w HELD ALTERIFLE -> fromMaybe w $ do i <- t ^? ldtValue . itLocation . ilInvID diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index fb17c2318..e9fea5bb0 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -233,9 +233,7 @@ closeButtonToSelectionItem w i = do btText :: Button -> String btText bt = case _btEvent bt of ButtonPress {} -> "BUTTON" - ButtonSwitch {_btOn = t} -> case t of - True -> "SWITCH\\" - False -> "SWITCH/" + ButtonSwitch {_btOn = t} -> if t then "SWITCH\\" else "SWITCH/" ButtonAccessTerminal -> "TERMINAL" closeItemToTextPictures :: FloorItem -> ([String], Color) diff --git a/src/Dodge/LevelGen/Switch.hs b/src/Dodge/LevelGen/Switch.hs index 3fad68b18..c53eb6216 100644 --- a/src/Dodge/LevelGen/Switch.hs +++ b/src/Dodge/LevelGen/Switch.hs @@ -1,7 +1,6 @@ module Dodge.LevelGen.Switch ( makeSwitch, makeButton, - makeSwitchSPic, drawSwitchWire, ) where @@ -21,9 +20,7 @@ makeButton :: Button makeButton col eff = defaultButton - { -- { _btEvent = ButtonPress BtInactive ButtonDoNothing click1S eff col - _btEvent = ButtonPress False eff col --- , _btState = BtOff + { _btEvent = ButtonPress False eff col } -- TODO remove duplication @@ -41,23 +38,6 @@ drawSwitchWire col1 col2 bt ] ) -makeSwitchSPic :: - Color -> - Color -> - -- | Switch on effect - WdWd -> - -- | Switch off effect - WdWd -> - Button -makeSwitchSPic c1 c2 effOn effOff = - defaultButton & btEvent .~ ButtonSwitch effOn effOff c1 c2 False - -makeSwitch :: - Color -> - Color -> - -- | Switch on effect - WdWd -> - -- | Switch off effect - WdWd -> - Button -makeSwitch col1 col2 = makeSwitchSPic col1 col2 +makeSwitch :: Color -> Color -> WdWd -> WdWd -> Button +makeSwitch c1 c2 fon foff = + defaultButton & btEvent .~ ButtonSwitch fon foff c1 c2 False diff --git a/src/Dodge/Material/Damage.hs b/src/Dodge/Material/Damage.hs index dff59ac52..d21f10e55 100644 --- a/src/Dodge/Material/Damage.hs +++ b/src/Dodge/Material/Damage.hs @@ -100,7 +100,7 @@ damageFlesh dm _ w = w & case dm of ] . makeDustAt Flesh 50 (addZ 20 (outTo p t)) Blunt _ p _ -> randsound p [hitS] - Shattering _ _ _ -> id + Shattering {} -> id Crushing{} -> id Explosive{} -> id Sparking{} -> id diff --git a/src/Dodge/Placement/Instance/Button.hs b/src/Dodge/Placement/Instance/Button.hs index 0cc732131..4ff12d843 100644 --- a/src/Dodge/Placement/Instance/Button.hs +++ b/src/Dodge/Placement/Instance/Button.hs @@ -18,7 +18,7 @@ triggerSwitchSPic c1 c2 ps = psPtCont ps (PutTrigger False) $ pContID ps ( PutButton - ( makeSwitchSPic + ( makeSwitch c1 c2 (SetTrigger True $ trigid tp) (SetTrigger False $ trigid tp) @@ -36,7 +36,7 @@ triggerSwitchSPicLight c1 c2 ps = psPtCont ps (PutTrigger False) $ Just $ pContID ps - (PutButton (makeSwitchSPic c1 c2 (oneff lsid $ trigid tp) (offeff lsid $ trigid tp))) + (PutButton (makeSwitch c1 c2 (oneff lsid $ trigid tp) (offeff lsid $ trigid tp))) (const Nothing) where thels = lsColPosRad (V3 0.5 0 0) (V3 0 0 78) 75 diff --git a/src/Dodge/WorldBool.hs b/src/Dodge/WorldBool.hs index b7bccae00..aa5d0021a 100644 --- a/src/Dodge/WorldBool.hs +++ b/src/Dodge/WorldBool.hs @@ -15,6 +15,5 @@ doWdBl wb w = case wb of dr <- w ^? cWorld . lWorld . doors . ix i return (DoorHalfway == _drStatus dr) WdBlCrFilterNearPoint r p t -> any (crNearPoint r p) (IM.filter (doCrBl t) (w ^. cWorld . lWorld . creatures)) - WdBlBtOn btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btEvent . btOn) -- unsafe --- WdBlBtNotOff btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btState) /= BtOff -- unsafe + WdBlBtOn btid -> w ^?! cWorld . lWorld . buttons . ix btid . btEvent . btOn -- unsafe WdBlNegate x -> not $ doWdBl x w diff --git a/tags b/tags index 9dc22b445..ec41644b0 100644 --- a/tags +++ b/tags @@ -2130,6 +2130,7 @@ Vision src/Dodge/Data/Creature/Perception.hs 41;" t Vocalization src/Dodge/Data/Creature/Misc.hs 20;" t Vocalization src/Dodge/Creature/Vocalization.hs 1;" m Volition src/Dodge/Creature/Volition.hs 2;" m +VolleyGunTrigger src/Dodge/Data/TriggerType.hs 15;" C VolleyUnfiredBarrels src/Dodge/Data/Item/Params.hs 19;" C WALLDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C WASD src/Dodge/WASD.hs 1;" m @@ -3372,21 +3373,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 392;" f +applyCME src/Dodge/HeldUse.hs 410;" 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 458;" f +applyInvLock src/Dodge/HeldUse.hs 476;" f applyMagnetsToBul src/Dodge/Bullet.hs 30;" f applyPastDamages src/Dodge/Creature/State.hs 132;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f applyPosition src/Sound.hs 111;" f -applyRecoil src/Dodge/HeldUse.hs 490;" f +applyRecoil src/Dodge/HeldUse.hs 508;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 589;" f -applySoundCME src/Dodge/HeldUse.hs 480;" f +applySidePush src/Dodge/HeldUse.hs 607;" f +applySoundCME src/Dodge/HeldUse.hs 498;" 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 @@ -3394,7 +3395,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 600;" f +applyTorqueCME src/Dodge/HeldUse.hs 618;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 134;" f @@ -3467,7 +3468,7 @@ baseSMGShape src/Dodge/Item/Draw/SPic.hs 383;" f baseShoulder src/Dodge/Creature/Picture.hs 125;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 289;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 282;" f -baseStickSpread src/Dodge/HeldUse.hs 294;" f +baseStickSpread src/Dodge/HeldUse.hs 306;" 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 @@ -3477,7 +3478,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 740;" f +basicMuzFlare src/Dodge/HeldUse.hs 758;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 62;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f @@ -3486,7 +3487,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 543;" f +bgunSound src/Dodge/HeldUse.hs 561;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f @@ -3772,14 +3773,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 1302;" f -createProjectileR src/Dodge/HeldUse.hs 1267;" f +createProjectile src/Dodge/HeldUse.hs 1320;" f +createProjectileR src/Dodge/HeldUse.hs 1285;" f createShell src/Dodge/Projectile/Create.hs 23;" 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 853;" f +creatureShootLaser src/Dodge/HeldUse.hs 871;" 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 @@ -3850,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 297;" f +dbwMuzzles src/Dodge/HeldUse.hs 309;" 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 @@ -3968,7 +3969,7 @@ detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 452;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1250;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1268;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4033,9 +4034,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 1208;" f +doGenFloat src/Dodge/HeldUse.hs 1226;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 327;" f +doHeldUseEffect src/Dodge/HeldUse.hs 339;" 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 +4228,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropAll src/Dodge/Creature/State.hs 125;" f dropExcept src/Dodge/Creature/Action.hs 166;" f -dropInventoryPath src/Dodge/HeldUse.hs 1381;" f +dropInventoryPath src/Dodge/HeldUse.hs 1399;" 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 @@ -4342,7 +4343,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 300;" f +flameMuzzles src/Dodge/HeldUse.hs 312;" 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 @@ -4350,7 +4351,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 386;" f -flareCircleAt src/Dodge/HeldUse.hs 721;" f +flareCircleAt src/Dodge/HeldUse.hs 739;" 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 @@ -4417,7 +4418,7 @@ 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 1164;" f +gasType src/Dodge/HeldUse.hs 1182;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4432,11 +4433,11 @@ getAimZoom src/Dodge/Update/Camera.hs 135;" f getAmmoLinks src/Dodge/Item/Grammar.hs 142;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f -getAttachedSFLink src/Dodge/HeldUse.hs 791;" f +getAttachedSFLink src/Dodge/HeldUse.hs 809;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 121;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f -getBulletType src/Dodge/HeldUse.hs 910;" f +getBulletType src/Dodge/HeldUse.hs 928;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4444,17 +4445,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 1295;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1313;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f -getLaserColor src/Dodge/HeldUse.hs 737;" f -getLaserDamage src/Dodge/HeldUse.hs 734;" f -getLaserPhaseV src/Dodge/HeldUse.hs 731;" f +getLaserColor src/Dodge/HeldUse.hs 755;" f +getLaserDamage src/Dodge/HeldUse.hs 752;" f +getLaserPhaseV src/Dodge/HeldUse.hs 749;" 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 1287;" f +getPJStabiliser src/Dodge/HeldUse.hs 1305;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f @@ -4464,6 +4465,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 104;" f getWallSPic src/Dodge/Render/Walls.hs 51;" f getWindowSize src/Dodge/WindowSize.hs 5;" f gimbal src/Dodge/Item/Scope.hs 153;" f @@ -4544,23 +4546,23 @@ heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldAimStance src/Dodge/Item/AimStance.hs 17;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f heldEffect src/Dodge/HeldUse.hs 63;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 133;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 145;" f heldEffectNoHammerCheck src/Dodge/HeldUse.hs 66;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 95;" 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 473;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1050;" f -heldItemMuzzles src/Dodge/HeldUse.hs 161;" f +heldItemInvLock src/Dodge/HeldUse.hs 491;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1068;" f +heldItemMuzzles src/Dodge/HeldUse.hs 173;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 72;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 29;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 34;" f -heldItemRifling src/Dodge/HeldUse.hs 1094;" f +heldItemRifling src/Dodge/HeldUse.hs 1112;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 224;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f -heldTorqueAmount src/Dodge/HeldUse.hs 616;" f +heldTorqueAmount src/Dodge/HeldUse.hs 634;" f heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f heldUseDelay src/Dodge/Item/UseDelay.hs 18;" f helpCommand src/Dodge/Terminal.hs 66;" f @@ -4675,7 +4677,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 747;" f +isAmmoIntLink src/Dodge/HeldUse.hs 765;" f isAnimate src/Dodge/Creature/Test.hs 142;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4712,7 +4714,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 797;" f +itemDetectorEffect src/Dodge/HeldUse.hs 815;" 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 @@ -4724,9 +4726,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 468;" f -itemMuzzles src/Dodge/HeldUse.hs 146;" f -itemRandomOffset src/Dodge/HeldUse.hs 987;" f +itemInvLock src/Dodge/HeldUse.hs 486;" f +itemMuzzles src/Dodge/HeldUse.hs 158;" f +itemRandomOffset src/Dodge/HeldUse.hs 1005;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 28;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f @@ -4734,7 +4736,7 @@ 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 414;" f +itemSidePush src/Dodge/HeldUse.hs 432;" f itemString src/Dodge/Item/Display.hs 55;" f itemToBreakLists src/Dodge/Item/Grammar.hs 68;" f itemToFunction src/Dodge/Item/Grammar.hs 148;" f @@ -4836,7 +4838,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 661;" f +loadMuzzle src/Dodge/HeldUse.hs 679;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4879,7 +4881,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 931;" f +magAmmoParams src/Dodge/HeldUse.hs 949;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magShield src/Dodge/Item/Equipment.hs 27;" f magV src/Geometry/Vector.hs 171;" f @@ -4894,8 +4896,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 1031;" f -makeBullet' src/Dodge/HeldUse.hs 973;" f +makeBullet src/Dodge/HeldUse.hs 1049;" f +makeBullet' src/Dodge/HeldUse.hs 991;" f makeButton src/Dodge/LevelGen/Switch.hs 17;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f @@ -4921,7 +4923,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 682;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 700;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4977,11 +4979,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 1219;" f -mcShootLaser src/Dodge/HeldUse.hs 1212;" f +mcShootAuto src/Dodge/HeldUse.hs 1237;" f +mcShootLaser src/Dodge/HeldUse.hs 1230;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f -mcUseHeld src/Dodge/HeldUse.hs 1138;" f +mcUseHeld src/Dodge/HeldUse.hs 1156;" 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 @@ -5074,7 +5076,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 707;" f +muzFlareAt src/Dodge/HeldUse.hs 725;" 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 @@ -5466,7 +5468,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 495;" f +recoilAmount src/Dodge/HeldUse.hs 513;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5493,7 +5495,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 898;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 916;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f @@ -5773,14 +5775,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 326;" f shineTorch src/Dodge/Creature/State.hs 367;" f -shootBullet src/Dodge/HeldUse.hs 963;" f +shootBullet src/Dodge/HeldUse.hs 981;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 877;" f +shootLaser src/Dodge/HeldUse.hs 895;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 1238;" f +shootTeslaArc src/Dodge/HeldUse.hs 1256;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 830;" f +shootTractorBeam src/Dodge/HeldUse.hs 848;" 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 @@ -6081,12 +6083,12 @@ topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 58;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 268;" f -torqueAmount src/Dodge/HeldUse.hs 611;" f +torqueAmount src/Dodge/HeldUse.hs 629;" f torqueCr src/Dodge/WorldEffect.hs 69;" 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 842;" f +tractorBeamAt src/Dodge/HeldUse.hs 860;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 436;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -6329,26 +6331,26 @@ useBulletPayload src/Dodge/Bullet.hs 113;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useDelay src/Dodge/Item/UseDelay.hs 12;" f -useGasParams src/Dodge/HeldUse.hs 1143;" f +useGasParams src/Dodge/HeldUse.hs 1161;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f -useInventoryPath src/Dodge/HeldUse.hs 1412;" f +useInventoryPath src/Dodge/HeldUse.hs 1430;" 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 751;" f +useLoadedAmmo src/Dodge/HeldUse.hs 769;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 65;" 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 1372;" f +useRewindGun src/Dodge/HeldUse.hs 1390;" 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 1353;" f +useStopWatch src/Dodge/HeldUse.hs 1371;" f useStopWatch src/Dodge/Luse.hs 21;" f -useTimeCheck src/Dodge/HeldUse.hs 100;" f +useTimeCheck src/Dodge/HeldUse.hs 112;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1361;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1379;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6372,7 +6374,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 316;" f +vgunMuzzles src/Dodge/HeldUse.hs 328;" 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 @@ -6384,7 +6386,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 346;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 812;" f +walkNozzle src/Dodge/HeldUse.hs 830;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f @@ -6392,7 +6394,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 1406;" f +warmupSound src/Dodge/HeldUse.hs 1424;" f warningRooms src/Dodge/Room/Warning.hs 28;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f