diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index af4b4c9c5..c46e9db45 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -309,8 +309,7 @@ updateItemWithOrientation :: updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w = case (ci ^. _1 . itType, ci ^. _2) of (HELD TORCH, _) -> shineTorch cr itmtree m w - --(HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr itmtree m w - (HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr loc w + (HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr loc m w (TARGETING tt, _) -> updateItemTargeting tt cr itm w (ARHUD, _) -> drawARHUD loc w _ -> w @@ -326,8 +325,8 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do <>~ fold (drawTargetingAR itm w <|> drawMapperAR itm w) -shineTargetLaser :: Creature -> LocationLDT ItemLink CItem -> World -> World -shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do +shineTargetLaser :: Creature -> LocationLDT ItemLink CItem -> Point3Q -> World -> World +shineTargetLaser cr loc o w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do guard (crIsAiming cr) (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) i <- mag ^. ldtValue . _1 . itConsumables @@ -352,8 +351,10 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d } where itmtree = loc ^. locLDT - (p,q) = heldItemRelativeOrient (locToTop loc ^. locLDT . ldtValue . _1) cr - $ orientLocation (V3 0 0 0,Q.qID) (fmap fst loc) (V3 5 0 0,Q.qID) + --(p,q) = heldItemRelativeOrient (locToTop loc ^. locLDT . ldtValue . _1) cr + -- $ orientLocation (V3 0 0 0,Q.qID) (fmap fst loc) (V3 5 0 0,Q.qID) + (p,q) = o `Q.comp` (V3 5 0 0,Q.qID) +-- $ orientLocation (V3 0 0 0,Q.qID) (fmap fst loc) (V3 5 0 0,Q.qID) x = 1 isammolink AmmoInLink{} = True isammolink _ = False @@ -406,12 +407,7 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d -- invid = _ilInvID $ _itLocation itm -- col = blue -- mixColors reloadFrac (1-reloadFrac) blue red -shineTorch :: - Creature -> - LDTree ItemLink CItem -> - (Point3, Q.Quaternion Float) -> - World -> - World +shineTorch :: Creature -> LDTree ItemLink CItem -> Point3Q -> World -> World shineTorch cr itmtree (p, q) = fromMaybe id $ do (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) i <- mag ^. ldtValue . _1 . itConsumables @@ -419,16 +415,14 @@ shineTorch cr itmtree (p, q) = fromMaybe id $ do guard $ i >= x invid <- mag ^? ldtValue . _1 . itLocation . ilInvID return $ - (cWorld . lWorld . lights .:~ LSParam pos'' 250 0.7) + (cWorld . lWorld . lights .:~ LSParam pos 250 0.7) . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itConsumables . _Just -~ x) where x = 10 isammolink AmmoInLink{} = True isammolink _ = False - pos = _crPos cr `v2z` 0 + rotate3 cdir p - pos'' = pos + rotate3 d (V3 8 0 1.5) + pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5)) cdir = _crDir cr - d = _crDir cr + argV (Q.qToV2 q) -- this probably needs to be set to null when dropped as well? -- does this need to be updated if it is not attached to the used root item? diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index c903ae22a..3f1d8716e 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -4,12 +4,10 @@ module Dodge.Item.HeldOffset ( turretItemOffset, twoFlatHRot, heldItemOffset, - heldItemRelativeOrient, locOrient, handHandleOrient, ) where -import Dodge.Creature.Radius import Dodge.Data.AimStance import Dodge.Data.ComposedItem import Dodge.Data.Creature @@ -30,32 +28,6 @@ transToHandle itm = (-.-.- V3 x y 0) where V2 x y = handlePos itm -heldItemRelativeOrient :: Item -> Creature -> Point3Q -> Point3Q -heldItemRelativeOrient itm cr (p, q) - | Aiming{} <- _posture (_crStance cr) = - (p + aimingWeaponZeroPos cr itm `v2z` shoulderHeight, Q.qID * q) - | TwoHandFlat <- itemBaseStance itm = - ( V3 (crRad $ cr ^. crType) 0 handD + rotate3 (twoFlatHRot cr) (transToHandle itm p) - , Q.axisAngle (V3 0 0 1) (twoFlatHRot cr) * q - ) - | OneHand <- itemBaseStance itm = - ( V3 (crRad (cr ^. crType) * 0.7 + handPos) (crRad (cr ^. crType) * negate 0.7) handD - + transToHandle itm p - , Q.qID * q - ) - | otherwise = - ( V3 (crRad $ cr ^. crType) 0 handD - + rotate3 (strideRot cr + 1.2) (V3 (-8) 0 0 + transToHandle itm p) - , Q.axisAngle (V3 0 0 1) (strideRot cr + 1.2) * q - ) - where - handD = 15 - handPos = case cr ^? crStance . carriage of - Just (Walking x LeftForward) -> f x * 50 -2 - _ -> 0 - 2 - f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen - sLen = _strideLength $ _crStance cr - handleOrient :: LocationLDT ItemLink CItem -> Point3Q handleOrient loc = case loc ^. locLDT . ldtValue . _1 . itType of HELD FLAMETHROWER -> (V3 (-1) 0 0, Q.qID) @@ -86,22 +58,6 @@ locOrient loc cr = handHandleOrient (fmap (\(x, y, _) -> (x, y)) loc) cr `Q.comp` (loc ^. locLDT . ldtValue . _3) --- heldItemRelativeOrient --- (locToTop loc ^. locLDT . ldtValue . _1) --- cr --- (loc ^. locLDT . ldtValue . _3) - -aimingWeaponZeroPos :: Creature -> Item -> Point2 -aimingWeaponZeroPos cr it = aimStanceHandlePos cr it - handlePos it - --- the position of a weapon handle -aimStanceHandlePos :: Creature -> Item -> Point2 -aimStanceHandlePos _ it = case itemBaseStance it of - TwoHandUnder -> V2 (-2) 0 - TwoHandOver -> V2 (-7) 0 - OneHand -> V2 10 (-2) - TwoHandFlat -> V2 10 0 - heldItemOffset :: LocationLDT ItemLink CItem -> Creature -> Point3 -> Point3 heldItemOffset loc cr p = x + Q.rotate q p where diff --git a/tags b/tags index a07b5d70f..76f6739cf 100644 --- a/tags +++ b/tags @@ -3355,10 +3355,10 @@ advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f aimDelaySweep src/Dodge/Render/Picture.hs 264;" f aimStance src/Dodge/Item/AimStance.hs 13;" f -aimStanceHandlePos src/Dodge/Item/HeldOffset.hs 107;" f +aimStanceHandlePos src/Dodge/Item/HeldOffset.hs 98;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimTurn src/Dodge/Creature/YourControl.hs 165;" f -aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 103;" f +aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 94;" f airlock src/Dodge/Room/Airlock.hs 19;" f airlock0 src/Dodge/Room/Airlock.hs 25;" f airlock90 src/Dodge/Room/Airlock.hs 122;" f @@ -3389,16 +3389,16 @@ 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 462;" f +applyInvLock src/Dodge/HeldUse.hs 463;" 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 494;" f +applyRecoil src/Dodge/HeldUse.hs 495;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 593;" f -applySoundCME src/Dodge/HeldUse.hs 484;" f +applySidePush src/Dodge/HeldUse.hs 597;" f +applySoundCME src/Dodge/HeldUse.hs 485;" 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 @@ -3406,7 +3406,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 604;" f +applyTorqueCME src/Dodge/HeldUse.hs 608;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 134;" f @@ -3490,7 +3490,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 744;" f +basicMuzFlare src/Dodge/HeldUse.hs 749;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 62;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f @@ -3499,7 +3499,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 547;" f +bgunSound src/Dodge/HeldUse.hs 551;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f @@ -3786,14 +3786,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 1265;" f -createProjectileR src/Dodge/HeldUse.hs 1228;" f +createProjectile src/Dodge/HeldUse.hs 1293;" f +createProjectileR src/Dodge/HeldUse.hs 1256;" 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 859;" f +creatureShootLaser src/Dodge/HeldUse.hs 864;" 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 @@ -3982,7 +3982,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 1214;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1242;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4047,7 +4047,7 @@ 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 1172;" f +doGenFloat src/Dodge/HeldUse.hs 1193;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f doHeldUseEffect src/Dodge/HeldUse.hs 325;" f doInPlacements src/Dodge/Layout.hs 92;" f @@ -4241,7 +4241,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 1345;" f +dropInventoryPath src/Dodge/HeldUse.hs 1373;" 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 @@ -4364,7 +4364,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 725;" f +flareCircleAt src/Dodge/HeldUse.hs 730;" 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 @@ -4431,7 +4431,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 1128;" f +gasType src/Dodge/HeldUse.hs 1149;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4446,11 +4446,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 797;" f +getAttachedSFLink src/Dodge/HeldUse.hs 802;" 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 918;" f +getBulletType src/Dodge/HeldUse.hs 927;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4458,17 +4458,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 1258;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1286;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f -getLaserColor src/Dodge/HeldUse.hs 741;" f -getLaserDamage src/Dodge/HeldUse.hs 738;" f -getLaserPhaseV src/Dodge/HeldUse.hs 735;" f +getLaserColor src/Dodge/HeldUse.hs 746;" f +getLaserDamage src/Dodge/HeldUse.hs 743;" f +getLaserPhaseV src/Dodge/HeldUse.hs 740;" 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 1250;" f +getPJStabiliser src/Dodge/HeldUse.hs 1278;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f @@ -4529,16 +4529,16 @@ 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 63;" f -handHandleOrient src/Dodge/Item/HeldOffset.hs 119;" f -handOrient src/Dodge/Item/HeldOffset.hs 76;" f +handHandleOrient src/Dodge/Item/HeldOffset.hs 110;" f +handOrient src/Dodge/Item/HeldOffset.hs 65;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 45;" 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 handleMouseWheelEvent src/Dodge/Event/Input.hs 58;" f -handleOrient src/Dodge/Item/HeldOffset.hs 72;" f -handlePos src/Dodge/Item/HeldOffset.hs 139;" f +handleOrient src/Dodge/Item/HeldOffset.hs 59;" f +handlePos src/Dodge/Item/HeldOffset.hs 130;" f handleResizeEvent src/Dodge/Event.hs 53;" f handleTextInput src/Dodge/Event/Input.hs 18;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f @@ -4563,22 +4563,20 @@ heldAimStance src/Dodge/Item/AimStance.hs 22;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f heldEffect src/Dodge/HeldUse.hs 60;" f heldEffectMuzzles src/Dodge/HeldUse.hs 127;" f -heldHandlePos src/Dodge/Item/HeldOffset.hs 144;" f +heldHandlePos src/Dodge/Item/HeldOffset.hs 135;" 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 477;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1014;" f +heldItemInvLock src/Dodge/HeldUse.hs 478;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1024;" f heldItemMuzzles src/Dodge/HeldUse.hs 156;" f -heldItemOffset src/Dodge/Item/HeldOffset.hs 114;" f -heldItemOrient2D src/Dodge/Item/HeldOffset.hs 35;" f -heldItemOrient2D' src/Dodge/Item/HeldOffset.hs 40;" f -heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 45;" f -heldItemRifling src/Dodge/HeldUse.hs 1058;" f +heldItemOffset src/Dodge/Item/HeldOffset.hs 105;" f +heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 33;" f +heldItemRifling src/Dodge/HeldUse.hs 1068;" 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 620;" f +heldTorqueAmount src/Dodge/HeldUse.hs 624;" f heldTriggerType src/Dodge/BaseTriggerType.hs 23;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4694,7 +4692,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 751;" f +isAmmoIntLink src/Dodge/HeldUse.hs 756;" f isAnimate src/Dodge/Creature/Test.hs 144;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4731,7 +4729,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 803;" f +itemDetectorEffect src/Dodge/HeldUse.hs 808;" 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 @@ -4743,7 +4741,7 @@ 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 472;" f +itemInvLock src/Dodge/HeldUse.hs 473;" f itemMuzzles src/Dodge/HeldUse.hs 141;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f @@ -4752,7 +4750,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 418;" f +itemSidePush src/Dodge/HeldUse.hs 419;" 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 @@ -4854,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 665;" f +loadMuzzle src/Dodge/HeldUse.hs 669;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4866,7 +4864,7 @@ locGoHelp src/Dodge/DoubleTree.hs 273;" f locGoLeft src/Dodge/DoubleTree.hs 262;" f locGoRight src/Dodge/DoubleTree.hs 267;" f locLeftmost src/Dodge/DoubleTree.hs 255;" f -locOrient src/Dodge/Item/HeldOffset.hs 95;" f +locOrient src/Dodge/Item/HeldOffset.hs 84;" f locRightmost src/Dodge/DoubleTree.hs 258;" f locToTop src/Dodge/DoubleTree.hs 250;" f locUp src/Dodge/DoubleTree.hs 237;" f @@ -4898,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 939;" f +magAmmoParams src/Dodge/HeldUse.hs 948;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magShield src/Dodge/Item/Equipment.hs 27;" f magV src/Geometry/Vector.hs 171;" f @@ -4913,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 995;" f +makeBullet src/Dodge/HeldUse.hs 1005;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f @@ -4939,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 686;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 690;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4994,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 1183;" f -mcShootLaser src/Dodge/HeldUse.hs 1176;" f +mcShootAuto src/Dodge/HeldUse.hs 1204;" f +mcShootLaser src/Dodge/HeldUse.hs 1197;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f -mcUseHeld src/Dodge/HeldUse.hs 1102;" f +mcUseHeld src/Dodge/HeldUse.hs 1112;" 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 @@ -5091,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 711;" f +muzFlareAt src/Dodge/HeldUse.hs 716;" 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 @@ -5487,7 +5485,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 499;" f +recoilAmount src/Dodge/HeldUse.hs 503;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5514,7 +5512,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 906;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 915;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f @@ -5795,15 +5793,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 981;" f -shootBullets src/Dodge/HeldUse.hs 971;" f +shootBullet src/Dodge/HeldUse.hs 990;" f +shootBullets src/Dodge/HeldUse.hs 980;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 885;" f +shootLaser src/Dodge/HeldUse.hs 894;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 1202;" f +shootTeslaArc src/Dodge/HeldUse.hs 1223;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 836;" f +shootTractorBeam src/Dodge/HeldUse.hs 841;" 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 @@ -5811,7 +5809,7 @@ shootingRange src/Dodge/Room/Room.hs 332;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 9;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f -shoulderHeight src/Dodge/Item/HeldOffset.hs 124;" f +shoulderHeight src/Dodge/Item/HeldOffset.hs 115;" f shoulderSH src/Dodge/Creature/Picture.hs 133;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f showAttachItem src/Dodge/Item/Display.hs 91;" f @@ -5961,7 +5959,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 48;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 60;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 35;" f strictify src/MaybeHelp.hs 37;" f -strideRot src/Dodge/Item/HeldOffset.hs 127;" f +strideRot src/Dodge/Item/HeldOffset.hs 118;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f @@ -6101,19 +6099,19 @@ topPrismIndices src/Shader/Poke.hs 410;" 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 615;" f +torqueAmount src/Dodge/HeldUse.hs 619;" 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 848;" f +tractorBeamAt src/Dodge/HeldUse.hs 853;" 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 tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f transMat src/MatrixHelper.hs 73;" f -transToHandle src/Dodge/Item/HeldOffset.hs 30;" f +transToHandle src/Dodge/Item/HeldOffset.hs 28;" f translate src/Picture/Base.hs 116;" f translate3 src/Picture/Base.hs 120;" f translateFloatingCamera src/Dodge/Update/Camera.hs 45;" f @@ -6179,13 +6177,13 @@ trySynthBullet src/Dodge/Creature/State.hs 224;" 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 25;" f +turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tweenAngles src/Geometry/Vector.hs 195;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twists src/Dodge/Creature/Test.hs 109;" f twoFlat src/Dodge/Creature/Test.hs 106;" f -twoFlatHRot src/Dodge/Item/HeldOffset.hs 136;" f +twoFlatHRot src/Dodge/Item/HeldOffset.hs 127;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f @@ -6346,24 +6344,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 1107;" f +useGasParams src/Dodge/HeldUse.hs 1117;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f -useInventoryPath src/Dodge/HeldUse.hs 1376;" f +useInventoryPath src/Dodge/HeldUse.hs 1404;" 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 755;" f +useLoadedAmmo src/Dodge/HeldUse.hs 760;" 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 1336;" f +useRewindGun src/Dodge/HeldUse.hs 1364;" 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 1317;" f +useStopWatch src/Dodge/HeldUse.hs 1345;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1325;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1353;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6399,7 +6397,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 818;" f +walkNozzle src/Dodge/HeldUse.hs 823;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f @@ -6407,7 +6405,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 1370;" f +warmupSound src/Dodge/HeldUse.hs 1398;" f warningRooms src/Dodge/Room/Warning.hs 28;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f