Add check to cylinder segment collision, break rocket projectiles

This commit is contained in:
2025-10-12 00:26:48 +01:00
parent 8245115763
commit 33de1f79b6
9 changed files with 147 additions and 91 deletions
+1 -1
View File
@@ -1 +1 @@
5641590692396144028
7114951007332849727
+12 -1
View File
@@ -732,7 +732,8 @@ useLoadedAmmo loc cr mz m w =
MuzzleRLauncher -> createProjectileR loc magtree mz cr w
MuzzleGLauncher ->
createProjectile
(itmtree ^. dtValue . _3)
pq
-- (itmtree ^. dtValue . _3)
(Grenade (getGrenadeHitEffect itmtree))
magtree
(getPJStabiliser itmtree)
@@ -754,11 +755,21 @@ useLoadedAmmo loc cr mz m w =
MuzzleStopper -> useStopWatch itm cr w
MuzzleScroller -> useTimeScrollGun itm cr w
where
pq = muzzlePos loc cr mz
itmtree = loc ^. locDT
mitid = magtree ^. dtValue . _1 . itID
itm = itmtree ^. dtValue . _1
(x, magtree) = fromJust m
muzzlePos :: LocationDT OItem -> Creature -> Muzzle -> Point3Q
muzzlePos m cr muz = (p1,q1) `Q.comp` pq `Q.comp` (p3,q3)
where
pq = locOrient m cr
p1 = cr ^. crPos
q1 = Q.qz $ cr ^. crDir
p3 = addZ 0 $ muz ^. mzPos
q3 = Q.qz $ muz ^. mzRot
getAttachedSFLink :: ItemSF -> DTree OItem -> Maybe (NewInt ItmInt)
getAttachedSFLink sf = (^? dtRight . folding (find f) . dtValue . _1 . itID)
where
+2 -3
View File
@@ -61,10 +61,9 @@ locOrient loc cr =
handHandleOrient :: LocationDT CItem -> Creature -> Point3Q
handHandleOrient loc cr =
handOrient cr (itemAimStance (loc' ^. locDT))
`Q.comp` handleOrient loc'
handOrient cr (itemAimStance (l ^. locDT)) `Q.comp` handleOrient l
where
loc' = locToTop loc
l = locToTop loc
shoulderHeight :: Float
shoulderHeight = 18
+7 -3
View File
@@ -36,10 +36,13 @@ createShell (p,q) mdetonator mscreen stab pjtype payload muz cr w =
& updatedetonator
& cWorld . lWorld . projectiles . at i
?~ Shell
{ _pjPos = pos
, _pjVel = (rotateV dir' (V2 speed 0) + crvelcomponent) `v2z` 0
-- { _pjPos = pos
{ _pjPos = p
-- , _pjVel = (rotateV dir' (V2 speed 0) + crvelcomponent) `v2z` 0
, _pjVel = (rotateV ddd (V2 speed 0) + crvelcomponent) `v2z` 0
, _pjID = i
, _pjDir = dir'
-- , _pjDir = dir'
, _pjDir = ddd
, _pjSpin = 0
, _pjPayload = payload
, _pjTimer = lifespan
@@ -49,6 +52,7 @@ createShell (p,q) mdetonator mscreen stab pjtype payload muz cr w =
, _pjScreenID = mscreen
}
where
ddd = Q.qToAng q
crvelcomponent = case stab of
Just StabOrthReduce -> projV (cr ^. crPos . _xy - cr ^. crOldPos . _xy) (unitVectorAtAngle dir)
_ -> (cr ^. crPos - cr ^. crOldPos) ^. _xy
+1 -1
View File
@@ -33,7 +33,7 @@ drawShell mcol pj =
mcol
shellShape :: Shape
shellShape = colorSH black $ upperPrismPoly Small Typical 4 $ map toV2 [(-6, 4), (-6, -4), (6, -4), (8, 0), (6, 4)]
shellShape = colorSH (greyN 0.5) $ upperPrismPoly Small Typical 4 $ map toV2 [(-6, 4), (-6, -4), (6, -4), (8, 0), (6, 4)]
drawRemoteShell :: Projectile -> SPic
drawRemoteShell pj
+44 -5
View File
@@ -2,6 +2,11 @@
--{-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.Projectile.Update (updateProjectile) where
import Linear
import Dodge.Render.List
import Dodge.Render.Label
import ShortShow
import Picture.Base
import Control.Monad
import Data.List (delete)
import Data.Maybe
@@ -18,8 +23,6 @@ import Dodge.WorldEvent.Sound
import Geometry
import qualified IntMapHelp as IM
import LensHelp
import Linear.Metric
import Linear.V3
import NewInt
import RandomHelp
@@ -257,16 +260,28 @@ moveStuckGrenade cid poff d pj w
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick
moveProjectile :: Projectile -> World -> World
moveProjectile pj w
moveProjectile pj w = moveProjectile' pj w
& cWorld . lWorld . flares <>~
(setLayer DebugLayer
$ color red $ line [p, (p +v)]
)
where
p = pj^. pjPos . _xy
v = pj^. pjVel . _xy
moveProjectile' :: Projectile -> World -> World
moveProjectile' pj w
| Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w
| Just (GStuckCreature crid poff d) <- pj ^? pjType . gnHitEffect =
moveStuckGrenade crid poff d pj w
| (p, Just (n, OWall wl)) <- collide3 sp (sp + _pjVel pj) w =
| (p, Just (n, OWall wl)) <- collide3 sp (sp + 2 *^ _pjVel pj) w =
shellHitWall p n wl pj w
| (p, Just (_, OFloor)) <- collide3 sp (sp + _pjVel pj) w =
| (p, Just (_, OFloor)) <- collide3 sp (sp + 2*^ _pjVel pj) w =
shellHitFloor p pj w
| (p, Just (_, OCreature cr)) <- collide3 sp (sp + _pjVel pj) w =
shellHitCreature p cr pj w
& cWorld . lWorld . flares <>~ test p cr w sp (_pjVel pj)
| (_, Just (_, OChasmWall)) <- collide3 sp (sp + _pjVel pj) w =
-- no stick or bounce for now
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjTimer .~ 0
@@ -278,6 +293,30 @@ moveProjectile pj w
where
sp = _pjPos pj
test p cr w sp v =
(setLayer FixedCoordLayer
$ uncurryV translate (worldPosToScreen (w ^. wCam) (p ^. _xy))
$ drawList [text (shortShow p),text $shortShow sp, text $ shortShow $ sp + 2*v, text $ shortShow v]
<> color white (crossPic 5)
) <>
(setLayer DebugLayer
$ uncurryV translate (p ^. _xy)
$ ( scale 0.1 0.1
$ stackPicturesAt
[ text $ shortShow p
, text $ shortShow sp
, text $ shortShow (sp + v)
]
) <> color green (crossPic 5)
) <>
setLayer DebugLayer
(uncurryV translate (cr ^. crPos . _xy)
$ circle 10
) <>
(setLayer DebugLayer
$ color red $ line [sp^. _xy, (sp +v)^._xy]
)
explodeShell :: Projectile -> World -> World
explodeShell pj w =
w
+6 -9
View File
@@ -360,24 +360,21 @@ intersectCircLine c r x y =
f :: Float -> Point2
f a = x + (a *.* (y - x))
intersectCylSeg ::
Point3 ->
Float ->
Float ->
Point3 ->
Point3 ->
intersectCylSeg :: Point3 -> Float -> Float -> Point3 -> Point3 ->
(Maybe (Point3, Point3), Maybe (Point3, Point3))
intersectCylSeg p r h s e = fromMaybe (Nothing, Nothing) $ do
(a, b) <- intersectCircLineAlong (p ^. _xy) r (s ^. _xy) (e ^. _xy)
return (f min a, f max b)
where
mtopx = intersectLinePlaneAlong s e (V3 0 0 h) (V3 0 0 1)
mbotx = intersectLinePlaneAlong s e (V3 0 0 0) (V3 0 0 1)
mtopx = intersectLinePlaneAlong s e (V3 0 0 (h + p ^. _z)) (V3 0 0 1)
mbotx = intersectLinePlaneAlong s e (V3 0 0 (p^._z)) (V3 0 0 1)
v = e - s
f mm a = do
let x = s + a *.*.* v
if x ^. _z < (h + p ^. _z) && x ^. _z > (p ^. _z)
then return (x, v & _xy %~ reflectInNormal (x ^. _xy - p ^. _xy))
then do
guard $ a >= 0 && a < 1
return (x, v & _xy %~ reflectInNormal (x ^. _xy - p ^. _xy))
else do
topx <- mtopx
botx <- mbotx
+4
View File
@@ -9,6 +9,10 @@ class ShortShow a where
instance ShortShow a => ShortShow (V2 a) where
shortShow (V2 x y) = shortShow x ++ "#" ++ shortShow y
instance ShortShow a => ShortShow (V3 a) where
shortShow (V3 x y z) = shortShow x ++ "#" ++ shortShow y
++ "#" ++ shortShow z
newtype ShortString = SString String
instance ShortShow ShortString where
+70 -68
View File
@@ -1184,7 +1184,7 @@ SPEEDLEGS src/Dodge/Data/Item/Combine.hs 130;" C
SPRING src/Dodge/Data/Item/Combine.hs 54;" C
SPic src/ShapePicture/Data.hs 7;" t
SQUARE src/Dodge/Data/GenParams.hs 20;" C
SString src/ShortShow.hs 12;" C
SString src/ShortShow.hs 16;" C
ST src/Dodge/Data/MetaTree.hs 20;" C
STEELDRUM src/Dodge/Data/Item/Combine.hs 59;" C
STICKYMOD src/Dodge/Data/Item/Combine.hs 24;" C
@@ -1231,7 +1231,7 @@ Shockwave src/Dodge/Data/Shockwave.hs 17;" t
ShockwaveDirection src/Dodge/Data/Shockwave.hs 14;" t
ShootAt src/Dodge/Data/ActionPlan.hs 181;" C
ShortShow src/ShortShow.hs 6;" c
ShortString src/ShortShow.hs 12;" t
ShortString src/ShortShow.hs 16;" t
Show_bound_box src/Dodge/Data/Config.hs 80;" C
Show_dda_test src/Dodge/Data/Config.hs 83;" C
Show_far_wall_detect src/Dodge/Data/Config.hs 86;" C
@@ -2634,7 +2634,7 @@ anythingHitCirc src/Dodge/Base/Collide.hs 337;" f
applyCME src/Dodge/HeldUse.hs 362;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 41;" f
applyGravityPU src/Dodge/Projectile/Update.hs 42;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f
applyInvLock src/Dodge/HeldUse.hs 421;" f
applyMagnetsToBul src/Dodge/Bullet.hs 32;" f
@@ -3036,16 +3036,16 @@ createHeadLamp src/Dodge/Euse.hs 58;" f
createItemYou src/Dodge/Inventory/Add.hs 61;" f
createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 20;" f
createProjectile src/Dodge/HeldUse.hs 1309;" f
createProjectileR src/Dodge/HeldUse.hs 1258;" f
createProjectile src/Dodge/HeldUse.hs 1320;" f
createProjectileR src/Dodge/HeldUse.hs 1269;" f
createShell src/Dodge/Projectile/Create.hs 22;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 40;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f
createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f
creatureShootLaser src/Dodge/HeldUse.hs 816;" f
creatureShootPulseBall src/Dodge/HeldUse.hs 893;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 860;" f
creatureShootLaser src/Dodge/HeldUse.hs 827;" f
creatureShootPulseBall src/Dodge/HeldUse.hs 904;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 871;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 54;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 75;" f
creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 64;" f
@@ -3211,12 +3211,12 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/Block.hs 100;" f
destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 159;" f
destroyProjectile src/Dodge/Projectile/Update.hs 160;" f
detV src/Geometry/Vector.hs 94;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f
detectorInfo src/Dodge/Item/Info.hs 224;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1229;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1240;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 205;" f
@@ -3246,7 +3246,7 @@ dmType src/Dodge/Damage.hs 38;" f
doAimTwist src/Dodge/Creature/YourControl.hs 154;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 141;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 211;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 212;" f
doBlBl src/Dodge/BlBl.hs 5;" f
doBlSh src/Dodge/Block/Draw.hs 14;" f
doBounce src/Dodge/Base/Collide.hs 67;" f
@@ -3276,8 +3276,8 @@ doDrag src/Dodge/Update/Input/InGame.hs 127;" f
doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1185;" f
doGravityPU src/Dodge/Projectile/Update.hs 35;" f
doGenFloat src/Dodge/HeldUse.hs 1196;" f
doGravityPU src/Dodge/Projectile/Update.hs 36;" f
doHeldUseEffect src/Dodge/HeldUse.hs 344;" f
doInPlacements src/Dodge/Layout.hs 82;" f
doIndividualPlacements src/Dodge/Layout.hs 96;" f
@@ -3308,7 +3308,7 @@ doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 167;" f
doTestDrawing src/Dodge/Render.hs 41;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 181;" f
doThrust src/Dodge/Projectile/Update.hs 182;" f
doTimeScroll src/Dodge/Update.hs 196;" f
doTmWdWd src/Dodge/WorldEffect.hs 89;" f
doWallRotate src/Dodge/Update/Camera.hs 220;" f
@@ -3467,7 +3467,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 285;" f
dropAll src/Dodge/Creature/Update.hs 129;" f
dropExcept src/Dodge/Creature/Action.hs 168;" f
dropInventoryPath src/Dodge/HeldUse.hs 1397;" f
dropInventoryPath src/Dodge/HeldUse.hs 1408;" f
dropItem src/Dodge/Creature/Action.hs 175;" f
dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 34;" f
@@ -3544,7 +3544,7 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 187;" f
explodeShell src/Dodge/Projectile/Update.hs 281;" f
explodeShell src/Dodge/Projectile/Update.hs 285;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
@@ -3556,7 +3556,7 @@ extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f
farWallDistDirection src/Dodge/Update/Camera.hs 241;" f
fdiv src/ShortShow.hs 37;" f
fdiv src/ShortShow.hs 41;" f
feet src/Dodge/Creature/Picture.hs 51;" f
ffoldM src/Framebuffer/Update.hs 79;" f
filter3 src/FoldableHelp.hs 76;" f
@@ -3645,7 +3645,7 @@ fusePairs src/Dodge/Path.hs 153;" f
fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f
fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f
fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f
g src/ShortShow.hs 44;" f
g src/ShortShow.hs 48;" f
gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f
gRandify src/Dodge/Randify.hs 11;" f
gadgetEffect src/Dodge/HeldUse.hs 47;" f
@@ -3655,7 +3655,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 144;" f
gameplayMenu src/Dodge/Menu.hs 155;" f
gameplayMenuOptions src/Dodge/Menu.hs 158;" f
gasType src/Dodge/HeldUse.hs 1142;" f
gasType src/Dodge/HeldUse.hs 1153;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f
generateGraphs src/Dodge/Menu.hs 149;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -3668,11 +3668,11 @@ geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 143;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f
getAttachedSFLink src/Dodge/HeldUse.hs 762;" f
getAttachedSFLink src/Dodge/HeldUse.hs 773;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 172;" f
getBulletType src/Dodge/HeldUse.hs 925;" f
getBulletType src/Dodge/HeldUse.hs 936;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f
@@ -3680,7 +3680,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 323;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" f
getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1297;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1308;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
getLaserColor src/Dodge/HeldUse.hs 704;" f
@@ -3690,7 +3690,7 @@ getLinksOfType src/Dodge/RoomLink.hs 41;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f
getMenuMouseContext src/Dodge/Update.hs 372;" f
getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1284;" f
getPJStabiliser src/Dodge/HeldUse.hs 1295;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" f
@@ -3759,7 +3759,7 @@ handleMouseButtonEvent src/Dodge/Event/Input.hs 61;" f
handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f
handleMouseWheelEvent src/Dodge/Event/Input.hs 56;" f
handleOrient src/Dodge/Item/HeldOffset.hs 31;" f
handlePos src/Dodge/Item/HeldOffset.hs 84;" f
handlePos src/Dodge/Item/HeldOffset.hs 83;" f
handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 19;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f
@@ -3782,14 +3782,14 @@ heldAimStance src/Dodge/Item/AimStance.hs 24;" f
heldAimZoom src/Dodge/Update/Camera.hs 149;" f
heldEffect src/Dodge/HeldUse.hs 60;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 131;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 90;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f
heldInfo src/Dodge/Item/Info.hs 92;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f
heldItemInvLock src/Dodge/HeldUse.hs 435;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1022;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1033;" f
heldItemMuzzles src/Dodge/HeldUse.hs 176;" f
heldItemRifling src/Dodge/HeldUse.hs 1065;" f
heldItemRifling src/Dodge/HeldUse.hs 1076;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 233;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f
heldPositionInfo src/Dodge/Item/Info.hs 240;" f
@@ -3949,7 +3949,7 @@ itemBlips src/Dodge/RadarSweep.hs 94;" f
itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f
itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemDetectorEffect src/Dodge/HeldUse.hs 768;" f
itemDetectorEffect src/Dodge/HeldUse.hs 779;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f
itemEquipPict src/Dodge/Item/Draw.hs 18;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f
@@ -3998,8 +3998,8 @@ jsps0J src/Dodge/LevelGen/PlacementHelper.hs 48;" f
jspsJ src/Dodge/LevelGen/PlacementHelper.hs 45;" f
jumpLegs src/Dodge/Item/Equipment.hs 93;" f
justify src/Justify.hs 9;" f
k src/ShortShow.hs 44;" f
k' src/ShortShow.hs 44;" f
k src/ShortShow.hs 48;" f
k' src/ShortShow.hs 48;" f
keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 78;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 66;" f
@@ -4125,13 +4125,13 @@ lsColPosRad src/Dodge/LightSource.hs 29;" f
lsPosCol src/Dodge/LightSource.hs 26;" f
lsPosRad src/Dodge/LightSource.hs 17;" f
ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 12;" f
m src/ShortShow.hs 44;" f
m src/ShortShow.hs 48;" f
mAT src/Dodge/Item/MagAmmoType.hs 19;" f
machineAddSound src/Dodge/Machine.hs 50;" f
machinePistol src/Dodge/Item/Held/Stick.hs 52;" f
machineUpdateDeathEff src/Dodge/Machine.hs 35;" f
machineUpdateLiveDieEff src/Dodge/Machine.hs 17;" f
magAmmoParams src/Dodge/HeldUse.hs 946;" f
magAmmoParams src/Dodge/HeldUse.hs 957;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f
magShield src/Dodge/Item/Equipment.hs 27;" f
magV src/Geometry/Vector.hs 172;" f
@@ -4146,7 +4146,7 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 70;" f
makeBlockDebris src/Dodge/Block/Debris.hs 34;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 1003;" f
makeBullet src/Dodge/HeldUse.hs 1014;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
@@ -4224,11 +4224,11 @@ mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f
mcProxTest src/Dodge/Machine/Update.hs 203;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f
mcSPic src/Dodge/Render/ShapePicture.hs 135;" f
mcShootAuto src/Dodge/HeldUse.hs 1196;" f
mcShootLaser src/Dodge/HeldUse.hs 1189;" f
mcShootAuto src/Dodge/HeldUse.hs 1207;" f
mcShootLaser src/Dodge/HeldUse.hs 1200;" f
mcTriggerVal src/Dodge/Machine/Update.hs 110;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f
mcUseHeld src/Dodge/HeldUse.hs 1108;" f
mcUseHeld src/Dodge/HeldUse.hs 1119;" f
mcUseItem src/Dodge/Machine/Update.hs 89;" f
megaBattery src/Dodge/Item/Ammo.hs 55;" f
megaShellMag src/Dodge/Item/Ammo.hs 44;" f
@@ -4298,10 +4298,10 @@ moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 43;" f
movePenBullet src/Dodge/Bullet.hs 202;" f
moveProjectile src/Dodge/Projectile/Update.hs 259;" f
moveProjectile src/Dodge/Projectile/Update.hs 260;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 245;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 246;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f
moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f
@@ -4318,6 +4318,7 @@ multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 675;" f
muzzlePos src/Dodge/HeldUse.hs 764;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 187;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 193;" f
@@ -4417,7 +4418,7 @@ overlapSegWalls src/Dodge/Base/Collide.hs 202;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 175;" f
overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
p src/ShortShow.hs 44;" f
p src/ShortShow.hs 48;" f
pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f
pairInPolys src/Dodge/Room/Path.hs 45;" f
pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 70;" f
@@ -4466,7 +4467,7 @@ pingPongBetween src/Render.hs 221;" f
pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 224;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 225;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
@@ -4748,8 +4749,8 @@ 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 159;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 921;" f
removeDot src/ShortShow.hs 40;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 932;" f
removeDot src/ShortShow.hs 44;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 224;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 58;" f
@@ -5003,10 +5004,10 @@ shapeVerxSize src/Shape/Parameters.hs 10;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 27;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 55;" f
shellHitCreature src/Dodge/Projectile/Update.hs 83;" f
shellHitFloor src/Dodge/Projectile/Update.hs 99;" f
shellHitWall src/Dodge/Projectile/Update.hs 66;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 56;" f
shellHitCreature src/Dodge/Projectile/Update.hs 84;" f
shellHitFloor src/Dodge/Projectile/Update.hs 100;" f
shellHitWall src/Dodge/Projectile/Update.hs 67;" f
shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f
@@ -5032,16 +5033,16 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 201;" f
shineTorch src/Dodge/Creature/State.hs 238;" f
shootBullet src/Dodge/HeldUse.hs 988;" f
shootBullets src/Dodge/HeldUse.hs 978;" f
shootBullet src/Dodge/HeldUse.hs 999;" f
shootBullets src/Dodge/HeldUse.hs 989;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f
shootLaser src/Dodge/HeldUse.hs 839;" f
shootPulseBall src/Dodge/HeldUse.hs 907;" f
shootPulseLaser src/Dodge/HeldUse.hs 880;" f
shootLaser src/Dodge/HeldUse.hs 850;" f
shootPulseBall src/Dodge/HeldUse.hs 918;" f
shootPulseLaser src/Dodge/HeldUse.hs 891;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f
shootTeslaArc src/Dodge/HeldUse.hs 1212;" f
shootTeslaArc src/Dodge/HeldUse.hs 1223;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f
shootTractorBeam src/Dodge/HeldUse.hs 795;" f
shootTractorBeam src/Dodge/HeldUse.hs 806;" f
shootersRoom src/Dodge/Room/Room.hs 324;" f
shootersRoom' src/Dodge/Room/Room.hs 291;" f
shootersRoom1 src/Dodge/Room/Room.hs 314;" f
@@ -5049,7 +5050,7 @@ shootingRange src/Dodge/Room/Room.hs 341;" f
shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 7;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 69;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 68;" f
shoulderSH src/Dodge/Creature/Picture.hs 124;" f
showAttachItem src/Dodge/Item/Display.hs 92;" f
showEnabledDebugs src/Dodge/Debug/Picture.hs 156;" f
@@ -5195,7 +5196,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f
strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f
strengthFactor src/Dodge/Creature/Impulse/Movement.hs 37;" f
strictify src/MaybeHelp.hs 37;" f
strideRot src/Dodge/Item/HeldOffset.hs 72;" f
strideRot src/Dodge/Item/HeldOffset.hs 71;" f
stringToList src/Picture/Base.hs 313;" f
stringToListGrad src/Picture/Text.hs 12;" f
stripZ src/Geometry/Vector3D.hs 97;" f
@@ -5211,7 +5212,7 @@ swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 176;" f
switchDoor src/Dodge/Placement/Instance/Door.hs 104;" f
switchWallCol src/Dodge/Default/Door.hs 12;" f
t src/ShortShow.hs 44;" f
t src/ShortShow.hs 48;" f
tEast src/Dodge/Room/Corridor.hs 90;" f
tToBTree src/Dodge/Tree/Compose.hs 92;" f
tWest src/Dodge/Room/Corridor.hs 115;" f
@@ -5255,6 +5256,7 @@ terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
test src/Dodge/Projectile/Update.hs 283;" f
testCrossWalls src/Dodge/Room/Path.hs 41;" f
testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 292;" f
@@ -5338,7 +5340,7 @@ torqueCr src/Dodge/WorldEffect.hs 72;" f
torso src/Dodge/Creature/Picture.hs 102;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 807;" f
tractorBeamAt src/Dodge/HeldUse.hs 818;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -5398,9 +5400,9 @@ tryPlay src/Sound.hs 84;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" f
trySeedFromClipboard src/Dodge/Menu.hs 96;" f
trySpin src/Dodge/Projectile/Update.hs 169;" f
trySpin src/Dodge/Projectile/Update.hs 170;" f
trySynthBullet src/Dodge/Creature/State.hs 167;" f
tryThrust src/Dodge/Projectile/Update.hs 175;" f
tryThrust src/Dodge/Projectile/Update.hs 176;" f
tryUseParent src/Dodge/Creature/State.hs 145;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f
@@ -5417,7 +5419,7 @@ twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
twists src/Dodge/Creature/Test.hs 100;" f
twoFlat src/Dodge/Creature/Test.hs 97;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 80;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 166;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 146;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f
@@ -5516,7 +5518,7 @@ updateObjCatMaybes src/Dodge/Update.hs 533;" f
updateObjMapMaybe src/Dodge/Update.hs 526;" f
updatePastWorlds src/Dodge/Update.hs 408;" f
updatePreload src/Preload/Update.hs 20;" f
updateProjectile src/Dodge/Projectile/Update.hs 26;" f
updateProjectile src/Dodge/Projectile/Update.hs 27;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 146;" f
updatePulseBall src/Dodge/Update.hs 433;" f
@@ -5578,9 +5580,9 @@ upperPrismPolySU src/Shape.hs 114;" f
upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" f
useBulletPayload src/Dodge/Bullet.hs 116;" f
useGasParams src/Dodge/HeldUse.hs 1113;" f
useGasParams src/Dodge/HeldUse.hs 1124;" f
useHotkey src/Dodge/Creature/YourControl.hs 77;" f
useInventoryPath src/Dodge/HeldUse.hs 1428;" f
useInventoryPath src/Dodge/HeldUse.hs 1439;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f
@@ -5588,11 +5590,11 @@ useLoadedAmmo src/Dodge/HeldUse.hs 717;" f
useMagShield src/Dodge/Euse.hs 30;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1388;" f
useRewindGun src/Dodge/HeldUse.hs 1399;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 180;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f
useStopWatch src/Dodge/HeldUse.hs 1369;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1377;" f
useStopWatch src/Dodge/HeldUse.hs 1380;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1388;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f
@@ -5626,7 +5628,7 @@ visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f
walkNozzle src/Dodge/HeldUse.hs 783;" f
walkNozzle src/Dodge/HeldUse.hs 794;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 53;" f
@@ -5635,7 +5637,7 @@ wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallToSurface src/Dodge/Base/Collide.hs 171;" f
wallsFromRooms src/Dodge/Layout.hs 132;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1422;" f
warmupSound src/Dodge/HeldUse.hs 1433;" f
warningRooms src/Dodge/Room/Warning.hs 30;" f
wasdAim src/Dodge/Creature/YourControl.hs 133;" f
wasdDir src/Dodge/WASD.hs 17;" f