Fix angled recoil

This commit is contained in:
2025-07-05 23:18:37 +01:00
parent 7b9c1678f1
commit d6bdd0098b
2 changed files with 104 additions and 100 deletions
+11 -7
View File
@@ -127,7 +127,7 @@ getVolleyBurst i g =
heldEffectMuzzles :: LocationLDT ItemLink OItem -> Creature -> World -> World
heldEffectMuzzles loc cr w =
setusetime . doHeldUseEffect t cr
. uncurry (applyCME (_ldtValue t ^. _1) cr)
. uncurry (applyCME loc cr)
. foldl' (useLoadedAmmo loc cr) (False, w)
$ loadedmuzzles
where
@@ -393,14 +393,14 @@ doHeldUseEffect t cr w = case t ^. ldtValue . _1 . itType of
-- & ldtValue . itUse . heldFrame .~ x
-- should probably unify failure with time use check in some way...
applyCME :: Item -> Creature -> Bool -> World -> World
applyCME itm cr cme
applyCME :: LocationLDT ItemLink OItem -> Creature -> Bool -> World -> World
applyCME loc cr cme
| cme =
applyInvLock itm cr
. applySoundCME itm cr
. applySidePush spush cr
. applyTorqueCME itm cr
. applyRecoil itm cr
. applyRecoil loc cr
| otherwise = case itm ^. itType of
HELD MACHINEPISTOL ->
cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itParams
@@ -408,6 +408,7 @@ applyCME itm cr cme
-- the above is quite hacky for now
_ -> failsound
where
itm = loc ^. locLDT . ldtValue . _1
coolstart = fromMaybe 0 $ baseItemTriggerType itm ^? coolStart
itid = itm ^?! itLocation . ilInvID -- unsafe
spush = maybe 0 itemSidePush $ itm ^? itType . ibtHeld
@@ -491,10 +492,13 @@ applySoundCME itm cr = fromMaybe id $ do
where
cid = _crID cr
applyRecoil :: Item -> Creature -> World -> World
applyRecoil itm cr =
applyRecoil :: LocationLDT ItemLink OItem -> Creature -> World -> World
applyRecoil loc cr =
cWorld . lWorld . creatures . ix (_crID cr) . crPos
+~ rotateV (_crDir cr) (V2 ((- recoilAmount itm) / crMass (_crType cr)) 0)
+~ rotateV (_crDir cr + Q.qToAng q) (V2 ((- recoilAmount itm) / crMass (_crType cr)) 0)
where
itm = loc ^. locLDT . ldtValue . _1
(_,q) = locOrient loc cr
recoilAmount :: Item -> Float
recoilAmount itm
+93 -93
View File
@@ -2807,6 +2807,7 @@ _mzEffect src/Dodge/Data/Muzzle.hs 15;" f
_mzFlareType src/Dodge/Data/Muzzle.hs 14;" f
_mzInaccuracy src/Dodge/Data/Muzzle.hs 12;" f
_mzPos src/Dodge/Data/Muzzle.hs 10;" f
_mzRandomOffset src/Dodge/Data/Muzzle.hs 17;" f
_mzRot src/Dodge/Data/Muzzle.hs 11;" f
_nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f
_nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f
@@ -3354,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 110;" f
aimStanceHandlePos src/Dodge/Item/HeldOffset.hs 107;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f
aimTurn src/Dodge/Creature/YourControl.hs 165;" f
aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 106;" f
aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 103;" 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
@@ -3383,21 +3384,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 393;" f
applyCME src/Dodge/HeldUse.hs 396;" 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 459;" f
applyInvLock src/Dodge/HeldUse.hs 462;" 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 491;" f
applyRecoil src/Dodge/HeldUse.hs 494;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f
applySidePush src/Dodge/HeldUse.hs 590;" f
applySoundCME src/Dodge/HeldUse.hs 481;" f
applySidePush src/Dodge/HeldUse.hs 593;" f
applySoundCME src/Dodge/HeldUse.hs 484;" 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 +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 601;" f
applyTorqueCME src/Dodge/HeldUse.hs 604;" 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 +3480,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 289;" f
baseStickSpread src/Dodge/HeldUse.hs 291;" 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 +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 742;" f
basicMuzFlare src/Dodge/HeldUse.hs 744;" 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 +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 544;" f
bgunSound src/Dodge/HeldUse.hs 547;" f
bindFBO src/Render.hs 244;" f
bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f
@@ -3587,7 +3588,7 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 289;" f
centroid src/Geometry/Polygon.hs 130;" f
centroidNum src/Geometry/Polygon.hs 133;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainLinkOrientation src/Dodge/Creature/State.hs 294;" f
chainLinkOrientation src/Dodge/Creature/State.hs 293;" f
chainPairs src/Geometry.hs 359;" f
changeSwapOther src/Dodge/Inventory.hs 144;" f
changeSwapSel src/Dodge/Inventory.hs 137;" f
@@ -3700,7 +3701,7 @@ commandColor src/Dodge/Terminal.hs 132;" f
commandFutureLines src/Dodge/Terminal.hs 256;" f
commandsCommand src/Dodge/Terminal.hs 93;" f
commonPrefix src/Dodge/Debug/Terminal.hs 146;" f
comp src/Quaternion.hs 58;" f
comp src/Quaternion.hs 63;" f
compactDraw src/Dodge/LevelGen.hs 91;" f
compactDraw' src/Dodge/LevelGen.hs 102;" f
compactDrawTree src/Dodge/LevelGen.hs 85;" f
@@ -3785,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 1306;" f
createProjectileR src/Dodge/HeldUse.hs 1269;" f
createProjectile src/Dodge/HeldUse.hs 1265;" f
createProjectileR src/Dodge/HeldUse.hs 1228;" 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 857;" f
creatureShootLaser src/Dodge/HeldUse.hs 859;" 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
@@ -3863,7 +3864,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 292;" f
dbwMuzzles src/Dodge/HeldUse.hs 294;" 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
@@ -3981,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 1255;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1214;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 204;" f
@@ -4046,9 +4047,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 1213;" f
doGenFloat src/Dodge/HeldUse.hs 1172;" f
doGravityPU src/Dodge/Projectile/Update.hs 50;" f
doHeldUseEffect src/Dodge/HeldUse.hs 322;" f
doHeldUseEffect src/Dodge/HeldUse.hs 325;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f
@@ -4111,7 +4112,7 @@ doublePair src/Geometry.hs 161;" f
doublePairSet src/Geometry.hs 165;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 95;" f
doubleV2 src/Geometry.hs 168;" f
drawARHUD src/Dodge/Creature/State.hs 322;" f
drawARHUD src/Dodge/Creature/State.hs 321;" f
drawAimSweep src/Dodge/Render/Picture.hs 271;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f
@@ -4240,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 1386;" f
dropInventoryPath src/Dodge/HeldUse.hs 1345;" 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
@@ -4355,7 +4356,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 295;" f
flameMuzzles src/Dodge/HeldUse.hs 297;" 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
@@ -4363,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 723;" f
flareCircleAt src/Dodge/HeldUse.hs 725;" 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
@@ -4430,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 1169;" f
gasType src/Dodge/HeldUse.hs 1128;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4445,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 795;" f
getAttachedSFLink src/Dodge/HeldUse.hs 797;" 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 916;" f
getBulletType src/Dodge/HeldUse.hs 918;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f
getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f
@@ -4457,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 1299;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1258;" f
getInventoryPath src/Dodge/Inventory/Path.hs 8;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f
getLaserColor src/Dodge/HeldUse.hs 739;" f
getLaserDamage src/Dodge/HeldUse.hs 736;" f
getLaserPhaseV src/Dodge/HeldUse.hs 733;" f
getLaserColor src/Dodge/HeldUse.hs 741;" f
getLaserDamage src/Dodge/HeldUse.hs 738;" f
getLaserPhaseV src/Dodge/HeldUse.hs 735;" 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 1291;" f
getPJStabiliser src/Dodge/HeldUse.hs 1250;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 8;" f
getRootItemBounds src/Dodge/Render/HUD.hs 95;" f
@@ -4528,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 122;" f
handOrient src/Dodge/Item/HeldOffset.hs 79;" f
handHandleOrient src/Dodge/Item/HeldOffset.hs 119;" f
handOrient src/Dodge/Item/HeldOffset.hs 76;" 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 75;" f
handlePos src/Dodge/Item/HeldOffset.hs 142;" f
handleOrient src/Dodge/Item/HeldOffset.hs 72;" f
handlePos src/Dodge/Item/HeldOffset.hs 139;" f
handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 18;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f
@@ -4562,22 +4563,22 @@ 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 147;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 144;" 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 474;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1055;" f
heldItemInvLock src/Dodge/HeldUse.hs 477;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1014;" f
heldItemMuzzles src/Dodge/HeldUse.hs 156;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 117;" f
heldItemOrient2D src/Dodge/Item/HeldOffset.hs 38;" f
heldItemOrient2D' src/Dodge/Item/HeldOffset.hs 43;" f
heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 48;" f
heldItemRifling src/Dodge/HeldUse.hs 1099;" 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
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 617;" f
heldTorqueAmount src/Dodge/HeldUse.hs 620;" f
heldTriggerType src/Dodge/BaseTriggerType.hs 23;" f
helpCommand src/Dodge/Terminal.hs 66;" f
helpPoly3D src/Polyhedra.hs 125;" f
@@ -4693,7 +4694,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 749;" f
isAmmoIntLink src/Dodge/HeldUse.hs 751;" 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
@@ -4730,7 +4731,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 801;" f
itemDetectorEffect src/Dodge/HeldUse.hs 803;" 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
@@ -4742,10 +4743,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 469;" f
itemInvLock src/Dodge/HeldUse.hs 472;" f
itemMuzzles src/Dodge/HeldUse.hs 141;" f
itemRandomOffset src/Dodge/HeldUse.hs 992;" f
itemRelativeOrient src/Dodge/Item/HeldOffset.hs 191;" 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 +4752,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 415;" f
itemSidePush src/Dodge/HeldUse.hs 418;" 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
@@ -4855,7 +4854,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 662;" f
loadMuzzle src/Dodge/HeldUse.hs 665;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4867,7 +4866,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
locOrientation src/Dodge/Item/HeldOffset.hs 98;" f
locOrient src/Dodge/Item/HeldOffset.hs 95;" f
locRightmost src/Dodge/DoubleTree.hs 258;" f
locToTop src/Dodge/DoubleTree.hs 250;" f
locUp src/Dodge/DoubleTree.hs 237;" f
@@ -4899,7 +4898,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 937;" f
magAmmoParams src/Dodge/HeldUse.hs 939;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f
magShield src/Dodge/Item/Equipment.hs 27;" f
magV src/Geometry/Vector.hs 171;" f
@@ -4914,7 +4913,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 1036;" f
makeBullet src/Dodge/HeldUse.hs 995;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
@@ -4940,7 +4939,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 683;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 686;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4995,11 +4994,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 1224;" f
mcShootLaser src/Dodge/HeldUse.hs 1217;" f
mcShootAuto src/Dodge/HeldUse.hs 1183;" f
mcShootLaser src/Dodge/HeldUse.hs 1176;" f
mcTriggerVal src/Dodge/Machine/Update.hs 99;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f
mcUseHeld src/Dodge/HeldUse.hs 1143;" f
mcUseHeld src/Dodge/HeldUse.hs 1102;" 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
@@ -5092,7 +5091,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 709;" f
muzFlareAt src/Dodge/HeldUse.hs 711;" 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
@@ -5437,9 +5436,10 @@ putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f
putWireStart src/Dodge/Wire.hs 34;" f
qID src/Quaternion.hs 55;" f
qToV2 src/Quaternion.hs 52;" f
qToV3 src/Quaternion.hs 49;" f
qID src/Quaternion.hs 60;" f
qToAng src/Quaternion.hs 57;" f
qToV2 src/Quaternion.hs 54;" f
qToV3 src/Quaternion.hs 51;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f
quitCommand src/Dodge/Terminal.hs 57;" f
@@ -5487,7 +5487,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 496;" f
recoilAmount src/Dodge/HeldUse.hs 499;" f
rectNSWE src/Geometry/Polygon.hs 13;" f
rectVV src/Geometry/Polygon.hs 38;" f
rectWH src/Geometry/Polygon.hs 17;" f
@@ -5514,7 +5514,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 904;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 906;" f
removeDot src/ShortShow.hs 29;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
@@ -5608,7 +5608,7 @@ rotateSHx src/Shape.hs 265;" f
rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 64;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 201;" f
rotateToZ src/Quaternion.hs 35;" f
rotateToZ src/Quaternion.hs 37;" f
rotateV src/Geometry/Vector.hs 105;" f
rotateVAround src/Geometry/Vector.hs 112;" f
rotateXY src/Polyhedra.hs 31;" f
@@ -5726,7 +5726,7 @@ setOldPos src/Dodge/Update.hs 475;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 467;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 466;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 334;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f
@@ -5793,17 +5793,17 @@ shiftRoomBy src/Dodge/Room/Link.hs 37;" f
shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f
shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 330;" f
shineTorch src/Dodge/Creature/State.hs 410;" f
shootBullet src/Dodge/HeldUse.hs 979;" f
shootBullets src/Dodge/HeldUse.hs 969;" 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
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 883;" f
shootLaser src/Dodge/HeldUse.hs 885;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 1243;" f
shootTeslaArc src/Dodge/HeldUse.hs 1202;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 834;" f
shootTractorBeam src/Dodge/HeldUse.hs 836;" 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 +5811,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 127;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 124;" 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 +5961,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 130;" f
strideRot src/Dodge/Item/HeldOffset.hs 127;" f
stringToList src/Picture/Base.hs 313;" f
stringToListGrad src/Picture/Text.hs 12;" f
stripZ src/Geometry/Vector3D.hs 97;" f
@@ -6101,19 +6101,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 612;" f
torqueAmount src/Dodge/HeldUse.hs 615;" 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 846;" f
tractorBeamAt src/Dodge/HeldUse.hs 848;" 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 33;" f
transToHandle src/Dodge/Item/HeldOffset.hs 30;" 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 +6179,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 28;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 25;" 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 139;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 136;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f
@@ -6262,8 +6262,8 @@ updateInGameCamera src/Dodge/Update/Camera.hs 78;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f
updateInt2Map src/Dodge/Zoning/Base.hs 92;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
updateItemTargeting src/Dodge/Creature/State.hs 436;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 304;" f
updateItemTargeting src/Dodge/Creature/State.hs 435;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 303;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 394;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f
updateLampoid src/Dodge/Lampoid.hs 12;" 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 1148;" f
useGasParams src/Dodge/HeldUse.hs 1107;" f
useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1417;" f
useInventoryPath src/Dodge/HeldUse.hs 1376;" 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 753;" f
useLoadedAmmo src/Dodge/HeldUse.hs 755;" 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 1377;" f
useRewindGun src/Dodge/HeldUse.hs 1336;" 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 1358;" f
useStopWatch src/Dodge/HeldUse.hs 1317;" f
useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1366;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1325;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
@@ -6375,7 +6375,7 @@ vNormal src/Geometry/Vector.hs 148;" f
vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f
vToL src/MatrixHelper.hs 46;" f
vToQuat src/Quaternion.hs 42;" f
vToQuat src/Quaternion.hs 44;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 134;" f
vasTightStride src/Shader/Compile.hs 297;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" 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 311;" f
vgunMuzzles src/Dodge/HeldUse.hs 314;" 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 816;" f
walkNozzle src/Dodge/HeldUse.hs 818;" 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 1411;" f
warmupSound src/Dodge/HeldUse.hs 1370;" f
warningRooms src/Dodge/Room/Warning.hs 28;" f
wasdAim src/Dodge/Creature/YourControl.hs 126;" f
wasdDir src/Dodge/WASD.hs 17;" f