diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index b7f9655d7..8a299dfe5 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -135,4 +135,4 @@ shoulderSH = translateSHz 20 drawEquipment :: Creature -> SPic {-# INLINE drawEquipment #-} -drawEquipment cr = foldMap (itemEquipPict cr) (invLDT $ _crInv cr) +drawEquipment cr = foldMap (itemEquipPict cr) (invDT $ _crInv cr) diff --git a/src/Dodge/Item/Draw.hs b/src/Dodge/Item/Draw.hs index 282aba039..9fd85b553 100644 --- a/src/Dodge/Item/Draw.hs +++ b/src/Dodge/Item/Draw.hs @@ -4,7 +4,7 @@ module Dodge.Item.Draw ( itemEquipPict, ) where -import Dodge.DoubleTree +import qualified Quaternion as Q import Dodge.Data.Equipment.Misc import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree @@ -16,18 +16,18 @@ import Dodge.Item.Draw.SPic import Dodge.Item.HeldOffset import ShapePicture -itemEquipPict :: Creature -> LDTree ItemLink CItem -> SPic +itemEquipPict :: Creature -> DTree CItem -> SPic itemEquipPict cr itmtree | Just i <- itm ^? itLocation . ilInvID , Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just , Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip = equipPosition esite cr attachpos (itemSPic itm) | itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem - = overPosSP (heldItemOffset loc cr) (itemTreeSPic $ ldtToDT itmtree) + = overPosSP (Q.prePos $ handHandleOrient (loc) cr) (itemTreeSPic $ itmtree) | otherwise = mempty where - itm = itmtree ^. ldtValue . _1 - loc = LocLDT TopLDT itmtree + itm = itmtree ^. dtValue . _1 + loc = LocDT TopDT itmtree equipAttachPos :: EquipItemType -> Point3 equipAttachPos = \case diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index 4096233cf..525f644bf 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -3,7 +3,7 @@ module Dodge.Item.HeldOffset ( turretItemOffset, twoFlatHRot, - heldItemOffset, +-- heldItemOffset, locOrient, handHandleOrient, ) where @@ -59,11 +59,6 @@ locOrient loc cr = handHandleOrient (fmap (\(x, y, _) -> (x, y)) $ locToTop' loc) cr `Q.comp` (loc ^. locDT . dtValue . _3) -heldItemOffset :: LocationLDT ItemLink CItem -> Creature -> Point3 -> Point3 -heldItemOffset loc cr p = x + Q.rotate q p - where - (x, q) = handHandleOrient (locLDTToLocDT loc) cr - handHandleOrient :: LocationDT CItem -> Creature -> Point3Q handHandleOrient loc cr = handOrient cr (aimStance (loc' ^. locDT)) diff --git a/src/Quaternion.hs b/src/Quaternion.hs index d9b01445e..6424ac90e 100644 --- a/src/Quaternion.hs +++ b/src/Quaternion.hs @@ -17,6 +17,7 @@ module Quaternion ( rotateToZ, vToQuat, comp, + prePos, module Linear.Quaternion, ) where @@ -63,4 +64,7 @@ qID = Q.axisAngle (V3 1 0 0) 0 comp :: Point3Q -> Point3Q -> Point3Q comp (p,q) (p1,q1) = (p + Q.rotate q p1, q * q1) +prePos :: Point3Q -> Point3 -> Point3 +prePos (p,q) p1 = p + Q.rotate q p1 + --deriving instance (Flat a => Flat (Quaternion a)) diff --git a/tags b/tags index 04405dbce..ffc8bcb86 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 396;" f +applyCME src/Dodge/HeldUse.hs 397;" 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 463;" f +applyInvLock src/Dodge/HeldUse.hs 464;" 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 495;" f +applyRecoil src/Dodge/HeldUse.hs 496;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 597;" f -applySoundCME src/Dodge/HeldUse.hs 485;" f +applySidePush src/Dodge/HeldUse.hs 598;" f +applySoundCME src/Dodge/HeldUse.hs 486;" 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 608;" f +applyTorqueCME src/Dodge/HeldUse.hs 609;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 134;" f @@ -3479,7 +3479,7 @@ 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 291;" f +baseStickSpread src/Dodge/HeldUse.hs 292;" 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 @@ -3489,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 749;" f +basicMuzFlare src/Dodge/HeldUse.hs 750;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 62;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f @@ -3498,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 551;" f +bgunSound src/Dodge/HeldUse.hs 552;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f @@ -3734,24 +3734,24 @@ corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f corridorWallN src/Dodge/Room/Corridor.hs 71;" f crAdd src/Dodge/Room/RezBox.hs 104;" f -crAwayFromPost src/Dodge/Creature/Test.hs 82;" f +crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f -crCanSeeCr src/Dodge/Creature/Test.hs 51;" f +crCanSeeCr src/Dodge/Creature/Test.hs 52;" f crCrSpring src/Dodge/Update.hs 814;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 57;" f crDexterity src/Dodge/Creature/Statistics.hs 14;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f -crHasTarget src/Dodge/Creature/Test.hs 64;" f -crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f +crHasTarget src/Dodge/Creature/Test.hs 65;" f +crHasTargetLOS src/Dodge/Creature/Test.hs 68;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 64;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f -crInAimStance src/Dodge/Creature/Test.hs 93;" f +crInAimStance src/Dodge/Creature/Test.hs 94;" f crIntelligence src/Dodge/Creature/Statistics.hs 34;" f -crIsAiming src/Dodge/Creature/Test.hs 59;" f -crIsArmouredFrom src/Dodge/Creature/Test.hs 115;" f +crIsAiming src/Dodge/Creature/Test.hs 60;" f +crIsArmouredFrom src/Dodge/Creature/Test.hs 116;" f crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f @@ -3759,15 +3759,15 @@ crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 27;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f crMvForward src/Dodge/Creature/Impulse/Movement.hs 41;" f crMvType src/Dodge/Creature/MoveType.hs 6;" f -crNearPoint src/Dodge/Creature/Test.hs 141;" f +crNearPoint src/Dodge/Creature/Test.hs 142;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 23;" f crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f crRad src/Dodge/Creature/Radius.hs 7;" f -crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f +crSafeDistFromTarg src/Dodge/Creature/Test.hs 73;" f crSetRoots src/Dodge/Inventory/Location.hs 48;" f crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 809;" f -crStratConMatches src/Dodge/Creature/Test.hs 77;" f +crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 24;" f crUpdate src/Dodge/Creature/State.hs 64;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f @@ -3787,14 +3787,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 1293;" f -createProjectileR src/Dodge/HeldUse.hs 1256;" f +createProjectile src/Dodge/HeldUse.hs 1294;" f +createProjectileR src/Dodge/HeldUse.hs 1257;" 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 864;" f +creatureShootLaser src/Dodge/HeldUse.hs 865;" 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 @@ -3865,7 +3865,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 294;" f +dbwMuzzles src/Dodge/HeldUse.hs 295;" 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 @@ -3983,7 +3983,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 1242;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1243;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4048,9 +4048,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 1193;" f +doGenFloat src/Dodge/HeldUse.hs 1194;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 325;" f +doHeldUseEffect src/Dodge/HeldUse.hs 326;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f @@ -4242,7 +4242,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 1373;" f +dropInventoryPath src/Dodge/HeldUse.hs 1374;" 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 @@ -4359,7 +4359,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 297;" f +flameMuzzles src/Dodge/HeldUse.hs 298;" 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 @@ -4367,7 +4367,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 730;" f +flareCircleAt src/Dodge/HeldUse.hs 731;" 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 @@ -4427,14 +4427,14 @@ fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 33;" f gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 11;" f -gadgetEffect src/Dodge/HeldUse.hs 45;" f +gadgetEffect src/Dodge/HeldUse.hs 46;" f gameOverMenu src/Dodge/Menu.hs 187;" f gameRoomFromRoom src/Dodge/Layout.hs 161;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameplayMenu src/Dodge/Menu.hs 134;" f gameplayMenuOptions src/Dodge/Menu.hs 137;" f -gasType src/Dodge/HeldUse.hs 1149;" f +gasType src/Dodge/HeldUse.hs 1150;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4449,11 +4449,11 @@ getAimZoom src/Dodge/Update/Camera.hs 135;" f getAmmoLinks src/Dodge/Item/Grammar.hs 133;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f -getAttachedSFLink src/Dodge/HeldUse.hs 802;" f +getAttachedSFLink src/Dodge/HeldUse.hs 803;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f -getBulletType src/Dodge/HeldUse.hs 927;" 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 @@ -4461,17 +4461,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 1286;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1287;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f -getLaserColor src/Dodge/HeldUse.hs 746;" f -getLaserDamage src/Dodge/HeldUse.hs 743;" f -getLaserPhaseV src/Dodge/HeldUse.hs 740;" f +getLaserColor src/Dodge/HeldUse.hs 747;" f +getLaserDamage src/Dodge/HeldUse.hs 744;" f +getLaserPhaseV src/Dodge/HeldUse.hs 741;" 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 1278;" f +getPJStabiliser src/Dodge/HeldUse.hs 1279;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f @@ -4481,7 +4481,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 122;" f +getVolleyBurst src/Dodge/HeldUse.hs 123;" f getWallSPic src/Dodge/Render/Walls.hs 51;" f getWindowSize src/Dodge/WindowSize.hs 5;" f gimbal src/Dodge/Item/Scope.hs 153;" f @@ -4531,7 +4531,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 63;" f +hammerCheck src/Dodge/HeldUse.hs 64;" f handHandleOrient src/Dodge/Item/HeldOffset.hs 67;" f handOrient src/Dodge/Item/HeldOffset.hs 38;" f handleEvent src/Dodge/Event.hs 27;" f @@ -4548,7 +4548,7 @@ handleWindowMoveEvent src/Dodge/Event.hs 44;" f hardQuit src/Dodge/Concurrent.hs 32;" f hasButtonLOS src/Dodge/Base/Collide.hs 211;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f -hasFrontArmour src/Dodge/Creature/Test.hs 118;" f +hasFrontArmour src/Dodge/Creature/Test.hs 119;" f hasLOS src/Dodge/Base/Collide.hs 204;" f hasLOSIndirect src/Dodge/Base/Collide.hs 219;" f hat src/Dodge/Item/Equipment.hs 76;" f @@ -4564,21 +4564,21 @@ healthTest src/Dodge/Room/LasTurret.hs 95;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldAimStance src/Dodge/Item/AimStance.hs 23;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f -heldEffect src/Dodge/HeldUse.hs 60;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 127;" f +heldEffect src/Dodge/HeldUse.hs 61;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 128;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 94;" f heldInfo src/Dodge/Item/Info.hs 90;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f -heldItemInvLock src/Dodge/HeldUse.hs 478;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1024;" f -heldItemMuzzles src/Dodge/HeldUse.hs 156;" f +heldItemInvLock src/Dodge/HeldUse.hs 479;" f +heldItemMuzVel src/Dodge/HeldUse.hs 1025;" f +heldItemMuzzles src/Dodge/HeldUse.hs 157;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 62;" f -heldItemRifling src/Dodge/HeldUse.hs 1068;" f +heldItemRifling src/Dodge/HeldUse.hs 1069;" 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 624;" f +heldTorqueAmount src/Dodge/HeldUse.hs 625;" f heldTriggerType src/Dodge/BaseTriggerType.hs 23;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4695,8 +4695,8 @@ 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 756;" f -isAnimate src/Dodge/Creature/Test.hs 144;" f +isAmmoIntLink src/Dodge/HeldUse.hs 757;" f +isAnimate src/Dodge/Creature/Test.hs 145;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f isElectrical src/Dodge/Machine/Update.hs 80;" f @@ -4732,7 +4732,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 808;" f +itemDetectorEffect src/Dodge/HeldUse.hs 809;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f itemEquipPict src/Dodge/Item/Draw.hs 19;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f @@ -4744,8 +4744,8 @@ 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 473;" f -itemMuzzles src/Dodge/HeldUse.hs 141;" f +itemInvLock src/Dodge/HeldUse.hs 474;" f +itemMuzzles src/Dodge/HeldUse.hs 142;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemSPic src/Dodge/Item/Draw/SPic.hs 33;" f @@ -4753,7 +4753,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 419;" f +itemSidePush src/Dodge/HeldUse.hs 420;" f itemString src/Dodge/Item/Display.hs 56;" f itemToBreakLists src/Dodge/Item/Grammar.hs 56;" f itemToFunction src/Dodge/Item/Grammar.hs 139;" f @@ -4855,7 +4855,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 669;" f +loadMuzzle src/Dodge/HeldUse.hs 670;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4902,7 +4902,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 948;" 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 @@ -4917,7 +4917,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 1005;" f +makeBullet src/Dodge/HeldUse.hs 1006;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f @@ -4943,7 +4943,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 690;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 691;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4998,11 +4998,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 1204;" f -mcShootLaser src/Dodge/HeldUse.hs 1197;" f +mcShootAuto src/Dodge/HeldUse.hs 1205;" f +mcShootLaser src/Dodge/HeldUse.hs 1198;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f -mcUseHeld src/Dodge/HeldUse.hs 1112;" f +mcUseHeld src/Dodge/HeldUse.hs 1113;" 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 @@ -5095,7 +5095,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 716;" f +muzFlareAt src/Dodge/HeldUse.hs 717;" 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 @@ -5156,7 +5156,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f -oneH src/Dodge/Creature/Test.hs 103;" f +oneH src/Dodge/Creature/Test.hs 104;" f openConsole src/Dodge/Update.hs 131;" f optionMenu src/Dodge/Menu.hs 108;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f @@ -5490,7 +5490,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 503;" f +recoilAmount src/Dodge/HeldUse.hs 504;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5517,7 +5517,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 915;" 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 @@ -5798,15 +5798,15 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 293;" f shineTorch src/Dodge/Creature/State.hs 332;" f -shootBullet src/Dodge/HeldUse.hs 990;" f -shootBullets src/Dodge/HeldUse.hs 980;" f +shootBullet src/Dodge/HeldUse.hs 991;" f +shootBullets src/Dodge/HeldUse.hs 981;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 894;" 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 1223;" f +shootTeslaArc src/Dodge/HeldUse.hs 1224;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 841;" f +shootTractorBeam src/Dodge/HeldUse.hs 842;" 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 @@ -6103,12 +6103,12 @@ topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 57;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 267;" f -torqueAmount src/Dodge/HeldUse.hs 619;" f +torqueAmount src/Dodge/HeldUse.hs 620;" 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 853;" f +tractorBeamAt src/Dodge/HeldUse.hs 854;" 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 @@ -6186,8 +6186,8 @@ turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" 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 +twists src/Dodge/Creature/Test.hs 110;" f +twoFlat src/Dodge/Creature/Test.hs 107;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 86;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f @@ -6346,24 +6346,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 1117;" f +useGasParams src/Dodge/HeldUse.hs 1118;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f -useInventoryPath src/Dodge/HeldUse.hs 1404;" f +useInventoryPath src/Dodge/HeldUse.hs 1405;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 760;" f +useLoadedAmmo src/Dodge/HeldUse.hs 761;" f useMagShield src/Dodge/Euse.hs 27;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1364;" f +useRewindGun src/Dodge/HeldUse.hs 1365;" 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 1345;" f +useStopWatch src/Dodge/HeldUse.hs 1346;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1353;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1354;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6387,7 +6387,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 314;" f +vgunMuzzles src/Dodge/HeldUse.hs 315;" 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 @@ -6399,7 +6399,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 823;" f +walkNozzle src/Dodge/HeldUse.hs 824;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f @@ -6407,7 +6407,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 1398;" f +warmupSound src/Dodge/HeldUse.hs 1399;" f warningRooms src/Dodge/Room/Warning.hs 28;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f