Hack together general held item orientation

This commit is contained in:
2025-06-27 21:29:57 +01:00
parent be6ea59d1e
commit 4f0dc64e72
5 changed files with 130 additions and 115 deletions
+10 -6
View File
@@ -310,7 +310,16 @@ testInventory =
stackedInventory :: [Item]
stackedInventory =
[ torch
[ laser
, megaBattery
, burstRifle
, megaTinMag 1000
, underBarrelSlot
, laser
, megaBattery
, gLauncher
, megaShellMag
, torch
, magShield MagnetRepulse
, bangCone
, megaTinMag 1000
@@ -319,11 +328,6 @@ stackedInventory =
, makeTypeCraft TRANSFORMER
, remoteScreen
, megaShellMag
, burstRifle
, megaTinMag 1000
, underBarrelSlot
, gLauncher
, megaShellMag
, laser
, makeTypeCraft TRANSFORMER
, teslaGun
+6 -9
View File
@@ -311,7 +311,7 @@ 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 w
(TARGETING tt, _) -> updateItemTargeting tt cr itm w
(ARHUD, _) -> drawARHUD loc w
_ -> w
@@ -327,12 +327,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 -> World -> World
shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
guard (crIsAiming cr)
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
i <- mag ^. ldtValue . _1 . itConsumables
@@ -357,11 +353,12 @@ shineTargetLaser' cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $
}
where
itmtree = loc ^. locLDT
(p,q) = orientLocation $ fmap fst loc
(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)
x = 1
isammolink AmmoInLink{} = True
isammolink _ = False
pos = _crPos cr + xyV3 (rotate3 cdir (p + V3 5 0 0))
pos = _crPos cr + xyV3 (rotate3 cdir p)
cdir = _crDir cr
itm = itmtree ^. ldtValue . _1
pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting
+2 -1
View File
@@ -114,7 +114,8 @@ instance Functor (LocationLDT b) where
instance Functor (ContextLDT b) where
fmap f = \case
TopLDT -> TopLDT
LeftwardLDT u cl p l cr fr -> LeftwardLDT (fmap f u)
LeftwardLDT u cl p l cr fr -> LeftwardLDT
(fmap f u)
(fmap (fmap (fmap f)) cl)
(f p)
l
+21 -9
View File
@@ -1,19 +1,21 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Item.Orientation (
orientAttachment,
orientLocation,
) where
import Dodge.DoubleTree
import Dodge.Data.DoubleTree
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Dodge.Data.Item
import Dodge.DoubleTree
import Geometry.Data
import qualified Quaternion as Q
orientChild :: Item -> (Point3, Q.Quaternion Float)
orientChild itm = case _itType itm of
HELD TORCH -> (V3 0 5 0, Q.qID)
--HELD LASER -> (V3 15 (-5) 0, Q.qID)
HELD LASER -> (V3 15 (-5) 0, Q.qID)
ATTACH UNDERBARRELSLOT -> (V3 10 (-8) 0, Q.qID)
_ -> (0, Q.qID)
@@ -28,17 +30,27 @@ orientByLink itm lt = case (_itType itm, lt) of
orientAttachment :: Item -> ItemLink -> Item -> (Point3, Q.Quaternion Float)
orientAttachment par lnk ch = case (_itType par, lnk, _itType ch) of
(ATTACH UNDERBARRELSLOT, _, _) -> (V3 (-5) (-8) 0, Q.qID)
-- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2))
-- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4))
-- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2))
-- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4))
_ -> (t1 + Q.rotate q1 t2, q1 * q2)
where
(t1, q1) = orientByLink par lnk
(t2, q2) = orientChild ch
orientLocation :: LocationLDT ItemLink Item -> (Point3, Q.Quaternion Float)
orientLocation = \case
(LocLDT TopLDT _) -> (0, Q.qID)
orientLocation' :: (Point3,Q.Quaternion Float)
-> LocationLDT ItemLink Item
-> (Point3, Q.Quaternion Float)
orientLocation' x = \case
(LocLDT TopLDT _) -> x
(LocLDT c t) -> (p + Q.rotate q p1, q * q1)
where
(p,q) = orientLocation (LocLDT (_cldtUp c) (singleLDT (_cldtParent c)))
(p1,q1) = orientAttachment (_cldtParent c) (_cldtLink c) (_ldtValue t)
(p, q) = orientLocation' x (LocLDT (_cldtUp c) (singleLDT (_cldtParent c)))
(p1, q1) = orientAttachment (_cldtParent c) (_cldtLink c) (_ldtValue t)
orientLocation ::
(Point3, Q.Quaternion Float) ->
LocationLDT ItemLink Item
-> (Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float)
orientLocation x loc (p1, q1) = (p + Q.rotate q p1, q * q1)
where
(p, q) = orientLocation' x loc
+91 -90
View File
@@ -356,8 +356,8 @@ ConsumableItemType src/Dodge/Data/Item/Combine.hs 114;" t
Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m
Consumption src/Dodge/Default/Item/Use/Consumption.hs 1;" m
Containing src/Dodge/Room/Containing.hs 2;" m
ContextDT src/Dodge/Data/DoubleTree.hs 82;" t
ContextLDT src/Dodge/Data/DoubleTree.hs 41;" t
ContextDT src/Dodge/Data/DoubleTree.hs 84;" t
ContextLDT src/Dodge/Data/DoubleTree.hs 42;" t
ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C
ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C
ConvexPoly src/Geometry/ConvexPoly.hs 27;" t
@@ -439,12 +439,12 @@ DPoint2 src/Geometry/Data.hs 34;" t
DROPPER src/Dodge/Data/Item/Combine.hs 27;" C
DRUMMAG src/Dodge/Data/Item/Combine.hs 107;" C
DS src/DoubleStack.hs 3;" t
DT src/Dodge/Data/DoubleTree.hs 30;" C
DTBottomNode src/Dodge/Data/DoubleTree.hs 20;" C
DTMidAboveNode src/Dodge/Data/DoubleTree.hs 18;" C
DTMidBelowNode src/Dodge/Data/DoubleTree.hs 19;" C
DTRootNode src/Dodge/Data/DoubleTree.hs 16;" C
DTTopNode src/Dodge/Data/DoubleTree.hs 17;" C
DT src/Dodge/Data/DoubleTree.hs 31;" C
DTBottomNode src/Dodge/Data/DoubleTree.hs 21;" C
DTMidAboveNode src/Dodge/Data/DoubleTree.hs 19;" C
DTMidBelowNode src/Dodge/Data/DoubleTree.hs 20;" C
DTRootNode src/Dodge/Data/DoubleTree.hs 17;" C
DTTopNode src/Dodge/Data/DoubleTree.hs 18;" C
Damage src/Dodge/Data/Damage.hs 19;" t
Damage src/Dodge/Creature/Damage.hs 1;" m
Damage src/Dodge/Damage.hs 3;" m
@@ -537,10 +537,10 @@ DoorPart src/Dodge/Data/Wall/Structure.hs 14;" C
DoorStatus src/Dodge/Data/Door.hs 23;" t
DoubleRes src/Dodge/Data/Config.hs 97;" C
DoubleStack src/DoubleStack.hs 1;" m
DoubleTree src/Dodge/Data/DoubleTree.hs 30;" t
DoubleTree src/Dodge/Data/DoubleTree.hs 6;" m
DoubleTree src/Dodge/Data/DoubleTree.hs 31;" t
DoubleTree src/Dodge/Data/DoubleTree.hs 7;" m
DoubleTree src/Dodge/DoubleTree.hs 1;" m
DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 15;" t
DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 16;" t
DrWdId src/Dodge/Data/WorldEffect.hs 67;" C
DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 68;" C
DrWdMechanismStepwise src/Dodge/Data/WorldEffect.hs 69;" C
@@ -977,14 +977,14 @@ Justify src/Justify.hs 1;" m
KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C
Kill src/Dodge/Data/ActionPlan.hs 198;" C
LASER src/Dodge/Data/Item/Combine.hs 168;" C
LDT src/Dodge/Data/DoubleTree.hs 33;" C
LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C
LDT src/Dodge/Data/DoubleTree.hs 34;" C
LDTBottomNode src/Dodge/Data/DoubleTree.hs 29;" C
LDTComb src/Dodge/Item/Grammar.hs 162;" t
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C
LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C
LDTTopNode src/Dodge/Data/DoubleTree.hs 25;" C
LDTree src/Dodge/Data/DoubleTree.hs 33;" t
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 27;" C
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 28;" C
LDTRootNode src/Dodge/Data/DoubleTree.hs 25;" C
LDTTopNode src/Dodge/Data/DoubleTree.hs 26;" C
LDTree src/Dodge/Data/DoubleTree.hs 34;" t
LED src/Dodge/Data/Item/Combine.hs 77;" C
LHS src/Geometry/LHS.hs 1;" m
LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C
@@ -998,7 +998,7 @@ LabSS src/Dodge/Data/Scenario.hs 97;" C
Label src/Dodge/Render/Label.hs 1;" m
LabelAction src/Dodge/Data/ActionPlan.hs 79;" C
LabelCluster src/Dodge/Data/RoomCluster.hs 14;" C
LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 23;" t
LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 24;" t
Laboratory src/Dodge/Data/Scenario.hs 61;" C
Lamp src/Dodge/Creature/Lamp.hs 1;" m
LampCrit src/Dodge/Data/Creature/Misc.hs 74;" C
@@ -1025,8 +1025,8 @@ LeadTarget src/Dodge/Data/ActionPlan.hs 149;" C
Left src/Dodge/Item/Left.hs 1;" m
LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 25;" t
LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C
LeftwardDT src/Dodge/Data/DoubleTree.hs 84;" C
LeftwardLDT src/Dodge/Data/DoubleTree.hs 43;" C
LeftwardDT src/Dodge/Data/DoubleTree.hs 86;" C
LeftwardLDT src/Dodge/Data/DoubleTree.hs 44;" C
LensHelp src/LensHelp.hs 1;" m
Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C
LevelGen src/Dodge/LevelGen.hs 1;" m
@@ -1062,13 +1062,13 @@ LoadSound src/Dodge/SoundLogic/LoadSound.hs 1;" m
Loading src/Dodge/Menu/Loading.hs 1;" m
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C
LoadingScreen src/Dodge/Data/Universe.hs 73;" C
LocDT src/Dodge/Data/DoubleTree.hs 99;" C
LocLDT src/Dodge/Data/DoubleTree.hs 60;" C
LocDT src/Dodge/Data/DoubleTree.hs 101;" C
LocLDT src/Dodge/Data/DoubleTree.hs 61;" C
Location src/Dodge/Data/Item/Location.hs 6;" m
Location src/Dodge/Inventory/Location.hs 1;" m
Location src/Dodge/Item/Location.hs 1;" m
LocationDT src/Dodge/Data/DoubleTree.hs 99;" t
LocationLDT src/Dodge/Data/DoubleTree.hs 60;" t
LocationDT src/Dodge/Data/DoubleTree.hs 101;" t
LocationLDT src/Dodge/Data/DoubleTree.hs 61;" t
Lock src/Dodge/Inventory/Lock.hs 1;" m
LockAndKey src/Dodge/LockAndKey.hs 1;" m
LoneWolf src/Dodge/Data/Creature/State.hs 26;" C
@@ -1371,7 +1371,7 @@ Option src/Dodge/Menu/Option.hs 1;" m
OptionScreen src/Dodge/Data/Universe.hs 82;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t
OptionType src/Dodge/Menu/OptionType.hs 2;" m
Orientation src/Dodge/Item/Orientation.hs 2;" m
Orientation src/Dodge/Item/Orientation.hs 3;" m
OutAction src/Dodge/Creature/Action.hs 45;" t
OutLink src/Dodge/Data/Room.hs 43;" C
OutPlacement src/Dodge/Data/GenWorld.hs 126;" t
@@ -1639,8 +1639,8 @@ RezBox src/Dodge/Room/RezBox.hs 1;" m
RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 13;" t
RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m
RightForward src/Dodge/Data/Creature/Stance.hs 33;" C
RightwardDT src/Dodge/Data/DoubleTree.hs 91;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 51;" C
RightwardDT src/Dodge/Data/DoubleTree.hs 93;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 52;" C
RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m
Rocket src/Dodge/Data/Projectile.hs 43;" C
RocketHoming src/Dodge/Data/Projectile.hs 50;" t
@@ -2003,10 +2003,10 @@ Toggle src/Dodge/Data/Universe.hs 103;" C
Toggle2 src/Dodge/Data/Universe.hs 107;" C
ToggleExamine src/Dodge/ToggleExamine.hs 1;" m
ToggleSF src/Dodge/Data/ComposedItem.hs 61;" C
TopDT src/Dodge/Data/DoubleTree.hs 83;" C
TopDT src/Dodge/Data/DoubleTree.hs 85;" C
TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m
TopEscapeMenuOption src/Dodge/Data/Universe.hs 78;" C
TopLDT src/Dodge/Data/DoubleTree.hs 42;" C
TopLDT src/Dodge/Data/DoubleTree.hs 43;" C
TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C
TorqueCr src/Dodge/Data/WorldEffect.hs 30;" C
TractorBeam src/Dodge/Data/TractorBeam.hs 13;" t
@@ -2344,16 +2344,16 @@ _carriage src/Dodge/Data/Creature/Stance.hs 14;" f
_carteCenter src/Dodge/Data/HUD.hs 46;" f
_carteRot src/Dodge/Data/HUD.hs 48;" f
_carteZoom src/Dodge/Data/HUD.hs 47;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 86;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 94;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 88;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 96;" f
_cdtFarLeft src/Dodge/Data/DoubleTree.hs 93;" f
_cdtFarRight src/Dodge/Data/DoubleTree.hs 89;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 87;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 95;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 85;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 92;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 88;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 96;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 90;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 98;" f
_cdtFarLeft src/Dodge/Data/DoubleTree.hs 95;" f
_cdtFarRight src/Dodge/Data/DoubleTree.hs 91;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 89;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 97;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 87;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 94;" f
_ceSideEffect src/Dodge/Data/Universe.hs 66;" f
_ceString src/Dodge/Data/Universe.hs 67;" f
_ciFilter src/Dodge/Data/HUD.hs 39;" f
@@ -2367,18 +2367,18 @@ _clTimer src/Dodge/Data/Cloud.hs 17;" f
_clType src/Dodge/Data/Cloud.hs 18;" f
_clVel src/Dodge/Data/Cloud.hs 16;" f
_clZoning src/Dodge/Data/World.hs 48;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 45;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 54;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 48;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 57;" f
_cldtFarLeft src/Dodge/Data/DoubleTree.hs 53;" f
_cldtFarRight src/Dodge/Data/DoubleTree.hs 49;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 47;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 56;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 46;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 55;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 44;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 52;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 46;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 55;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 49;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 58;" f
_cldtFarLeft src/Dodge/Data/DoubleTree.hs 54;" f
_cldtFarRight src/Dodge/Data/DoubleTree.hs 50;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 48;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 57;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 47;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 56;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 45;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 53;" f
_clickPos src/Dodge/Data/Input.hs 53;" f
_clickWorldPos src/Dodge/Data/Input.hs 55;" f
_closeButtons src/Dodge/Data/HUD.hs 50;" f
@@ -2527,9 +2527,9 @@ _dsTimer src/Dodge/Data/Cloud.hs 32;" f
_dsType src/Dodge/Data/Cloud.hs 33;" f
_dsVel src/Dodge/Data/Cloud.hs 31;" f
_dsZoning src/Dodge/Data/World.hs 49;" f
_dtLeft src/Dodge/Data/DoubleTree.hs 30;" f
_dtRight src/Dodge/Data/DoubleTree.hs 30;" f
_dtValue src/Dodge/Data/DoubleTree.hs 30;" f
_dtLeft src/Dodge/Data/DoubleTree.hs 31;" f
_dtRight src/Dodge/Data/DoubleTree.hs 31;" f
_dtValue src/Dodge/Data/DoubleTree.hs 31;" f
_dusts src/Dodge/Data/LWorld.hs 102;" f
_ebID src/Dodge/Data/EnergyBall/Type.hs 15;" f
_ebPos src/Dodge/Data/EnergyBall.hs 19;" f
@@ -2688,9 +2688,9 @@ _lasers src/Dodge/Data/LWorld.hs 116;" f
_ldpPos src/Dodge/Data/SelectionList.hs 14;" f
_ldpScale src/Dodge/Data/SelectionList.hs 15;" f
_ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f
_ldtLeft src/Dodge/Data/DoubleTree.hs 35;" f
_ldtRight src/Dodge/Data/DoubleTree.hs 36;" f
_ldtValue src/Dodge/Data/DoubleTree.hs 34;" f
_ldtLeft src/Dodge/Data/DoubleTree.hs 36;" f
_ldtRight src/Dodge/Data/DoubleTree.hs 37;" f
_ldtValue src/Dodge/Data/DoubleTree.hs 35;" f
_leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f
_lightSources src/Dodge/Data/LWorld.hs 137;" f
_lightingCapShader src/Data/Preload/Render.hs 16;" f
@@ -2703,10 +2703,10 @@ _linearShockwaves src/Dodge/Data/LWorld.hs 117;" f
_linkGapEW src/Dodge/Data/Room.hs 35;" f
_linkGapNS src/Dodge/Data/Room.hs 36;" f
_loadedMusic src/Music.hs 8;" f
_locDT src/Dodge/Data/DoubleTree.hs 101;" f
_locDtContext src/Dodge/Data/DoubleTree.hs 100;" f
_locLDT src/Dodge/Data/DoubleTree.hs 62;" f
_locLdtContext src/Dodge/Data/DoubleTree.hs 61;" f
_locDT src/Dodge/Data/DoubleTree.hs 103;" f
_locDtContext src/Dodge/Data/DoubleTree.hs 102;" f
_locLDT src/Dodge/Data/DoubleTree.hs 63;" f
_locLdtContext src/Dodge/Data/DoubleTree.hs 62;" f
_lpColor src/Dodge/Data/Laser.hs 25;" f
_lpDir src/Dodge/Data/Laser.hs 24;" f
_lpPhaseV src/Dodge/Data/Laser.hs 22;" f
@@ -3384,7 +3384,7 @@ applyGravityPU src/Dodge/Projectile/Update.hs 56;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f
applyInvLock src/Dodge/HeldUse.hs 476;" f
applyMagnetsToBul src/Dodge/Bullet.hs 30;" f
applyPastDamages src/Dodge/Creature/State.hs 133;" f
applyPastDamages src/Dodge/Creature/State.hs 135;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f
applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 508;" f
@@ -3580,7 +3580,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 292;" f
chainLinkOrientation src/Dodge/Creature/State.hs 294;" f
chainPairs src/Geometry.hs 359;" f
changeSwapOther src/Dodge/Inventory.hs 144;" f
changeSwapSel src/Dodge/Inventory.hs 137;" f
@@ -3595,7 +3595,7 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 64;" f
checkDeath src/Dodge/Creature/State.hs 78;" f
checkDeath src/Dodge/Creature/State.hs 80;" f
checkEndGame src/Dodge/Update.hs 717;" f
checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f
@@ -3712,13 +3712,13 @@ convexHull src/Geometry/Polygon.hs 104;" f
convexHullSafe src/Geometry/Polygon.hs 111;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f
copier src/Dodge/Item/Scope.hs 88;" f
copierItemUpdate src/Dodge/Creature/State.hs 199;" f
copierItemUpdate src/Dodge/Creature/State.hs 201;" f
copierItemUpdate src/Dodge/ItEffect.hs 37;" f
copyItemToFloor src/Dodge/FloorItem.hs 18;" f
copyItemToFloorID src/Dodge/FloorItem.hs 22;" f
corDoor src/Dodge/Room/Room.hs 376;" f
cornerList src/Preload/Render.hs 195;" f
corpseOrGib src/Dodge/Creature/State.hs 107;" f
corpseOrGib src/Dodge/Creature/State.hs 109;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f
@@ -3759,7 +3759,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 809;" f
crStratConMatches src/Dodge/Creature/Test.hs 77;" f
crStrength src/Dodge/Creature/Statistics.hs 24;" f
crUpdate src/Dodge/Creature/State.hs 64;" f
crUpdate src/Dodge/Creature/State.hs 66;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
@@ -4006,7 +4006,7 @@ dmType src/Dodge/Damage.hs 38;" f
doAfterPlacement src/Dodge/Layout.hs 86;" f
doAfterPlacements src/Dodge/Layout.hs 83;" f
doAimTwist src/Dodge/Creature/YourControl.hs 140;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 209;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 211;" f
doArcStep src/Dodge/Tesla/Arc.hs 135;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBlBl src/Dodge/BlBl.hs 5;" f
@@ -4022,7 +4022,7 @@ doCrImp src/Dodge/CreatureEffect.hs 28;" f
doCrWdAc src/Dodge/CreatureEffect.hs 77;" f
doCrWdImp src/Dodge/CreatureEffect.hs 16;" f
doCrWdWd src/Dodge/CreatureEffect.hs 20;" f
doDamage src/Dodge/Creature/State.hs 129;" f
doDamage src/Dodge/Creature/State.hs 131;" f
doDeathToggle src/Dodge/WorldEffect.hs 91;" f
doDeathTriggers src/Dodge/WorldEffect.hs 86;" f
doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f
@@ -4103,7 +4103,7 @@ doublePair src/Geometry.hs 161;" f
doublePairSet src/Geometry.hs 165;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 80;" f
doubleV2 src/Geometry.hs 168;" f
drawARHUD src/Dodge/Creature/State.hs 319;" f
drawARHUD src/Dodge/Creature/State.hs 322;" f
drawAimSweep src/Dodge/Render/Picture.hs 271;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f
@@ -4230,7 +4230,7 @@ drawWlIDs src/Dodge/Debug/Picture.hs 367;" f
drawZoneCol src/Dodge/Debug/Picture.hs 142;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f
droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f
dropAll src/Dodge/Creature/State.hs 126;" f
dropAll src/Dodge/Creature/State.hs 128;" f
dropExcept src/Dodge/Creature/Action.hs 166;" f
dropInventoryPath src/Dodge/HeldUse.hs 1396;" f
dropItem src/Dodge/Creature/Action.hs 172;" f
@@ -4379,7 +4379,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 99;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f
foldCr src/Dodge/Creature/State.hs 50;" f
foldCr src/Dodge/Creature/State.hs 52;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 38;" f
@@ -4660,9 +4660,9 @@ invCursorParams src/Dodge/ListDisplayParams.hs 36;" f
invDP src/Dodge/ListDisplayParams.hs 30;" f
invDimColor src/Dodge/DisplayInventory.hs 192;" f
invHead src/Dodge/Render/HUD.hs 405;" f
invItemLocUpdate src/Dodge/Creature/State.hs 154;" f
invItemLocUpdate src/Dodge/Creature/State.hs 156;" f
invLDT src/Dodge/Item/Grammar.hs 216;" f
invRootItemEffs src/Dodge/Creature/State.hs 147;" f
invRootItemEffs src/Dodge/Creature/State.hs 149;" f
invRootMap src/Dodge/Item/Grammar.hs 225;" f
invRootTrees src/Dodge/Item/Grammar.hs 246;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
@@ -5153,10 +5153,11 @@ orderAroundFirst src/Geometry/Polygon.hs 82;" f
orderAroundFirstReverse src/Geometry/Polygon.hs 78;" f
orderPolygon src/Geometry/Polygon.hs 87;" f
orderPolygonAround src/Geometry/Polygon.hs 70;" f
orientAttachment src/Dodge/Item/Orientation.hs 26;" f
orientByLink src/Dodge/Item/Orientation.hs 19;" f
orientChild src/Dodge/Item/Orientation.hs 12;" f
orientLocation src/Dodge/Item/Orientation.hs 36;" f
orientAttachment src/Dodge/Item/Orientation.hs 35;" f
orientByLink src/Dodge/Item/Orientation.hs 28;" f
orientChild src/Dodge/Item/Orientation.hs 15;" f
orientLocation src/Dodge/Item/Orientation.hs 53;" f
orientLocation' src/Dodge/Item/Orientation.hs 45;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 291;" f
outLink src/Dodge/RoomLink.hs 105;" f
outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f
@@ -5282,7 +5283,7 @@ pointerToItemLocation src/Dodge/Item/Location.hs 14;" f
pointerYourRootItem src/Dodge/Item/Location.hs 31;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 25;" f
pointsToPoly src/Geometry/ConvexPoly.hs 39;" f
poisonSPic src/Dodge/Creature/State.hs 120;" f
poisonSPic src/Dodge/Creature/State.hs 122;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
poke34 src/Shader/Poke.hs 506;" f
pokeArrayOff src/Shader/Poke.hs 517;" f
@@ -5636,7 +5637,7 @@ scaleSH src/Shape.hs 269;" f
scalp src/Dodge/Creature/Picture.hs 90;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 95;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/State.hs 117;" f
scorchSPic src/Dodge/Creature/State.hs 119;" f
screenBox src/Dodge/Base/Window.hs 53;" f
screenPolygon src/Dodge/Base/Window.hs 17;" f
screenPolygonBord src/Dodge/Base/Window.hs 27;" f
@@ -5709,7 +5710,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 425;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 470;" 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
@@ -5776,8 +5777,8 @@ 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 327;" f
shineTorch src/Dodge/Creature/State.hs 368;" f
shineTargetLaser src/Dodge/Creature/State.hs 330;" f
shineTorch src/Dodge/Creature/State.hs 413;" f
shootBullet src/Dodge/HeldUse.hs 981;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 895;" f
@@ -6158,8 +6159,8 @@ tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
trySeedFromClipboard src/Dodge/Menu.hs 91;" f
tryShellBounce src/Dodge/Projectile/Update.hs 103;" f
trySpinByCID src/Dodge/Projectile/Update.hs 177;" f
trySynthBullet src/Dodge/Creature/State.hs 223;" f
tryUseParent src/Dodge/Creature/State.hs 216;" f
trySynthBullet src/Dodge/Creature/State.hs 225;" 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 19;" f
@@ -6199,7 +6200,7 @@ updateAimPos src/Dodge/Update.hs 308;" f
updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla.hs 44;" f
updateArc src/Dodge/Tesla/Arc.hs 100;" f
updateAttachedItems src/Dodge/Creature/State.hs 282;" f
updateAttachedItems src/Dodge/Creature/State.hs 284;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 453;" f
updateBarrel src/Dodge/Barreloid.hs 41;" f
updateBarreloid src/Dodge/Barreloid.hs 15;" f
@@ -6237,7 +6238,7 @@ updateFloatingCamera src/Dodge/Update/Camera.hs 34;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 364;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 357;" f
updateGusts src/Dodge/Update.hs 726;" f
updateHeldRootItem src/Dodge/Creature/State.hs 276;" f
updateHeldRootItem src/Dodge/Creature/State.hs 278;" f
updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 510;" f
updateIMl' src/Dodge/Update.hs 515;" f
@@ -6245,8 +6246,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 394;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 302;" f
updateItemTargeting src/Dodge/Creature/State.hs 439;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 304;" 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