Start making projectile update function rather than folded list

This commit is contained in:
2024-12-28 21:31:33 +00:00
parent e028c54948
commit 2fdc6ae557
9 changed files with 95 additions and 87 deletions
-2
View File
@@ -254,10 +254,8 @@ anythingHitCirc rad sp ep w = hitCr || circHitWall sp ep rad w
f cid bl = f cid bl =
maybe maybe
False False
--(\cr -> null $ intersectCircSeg (_crPos cr) (rad + _crRad cr) sp ep)
(\cr -> intersectCircSegTest (_crPos cr) (rad + _crRad cr) sp ep) (\cr -> intersectCircSegTest (_crPos cr) (rad + _crRad cr) sp ep)
(w ^? cWorld . lWorld . creatures . ix cid) (w ^? cWorld . lWorld . creatures . ix cid)
|| bl || bl
-- hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w
-- this should probably be wallsOnLine or something -- this should probably be wallsOnLine or something
+13 -17
View File
@@ -2,14 +2,13 @@ module Dodge.Creature.Impulse.UseItem (
useSelectedItem, useSelectedItem,
) where ) where
import Data.Foldable (foldl')
import Dodge.DoubleTree
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
import Data.Maybe import Data.Maybe
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree import Dodge.Data.DoubleTree
import Dodge.Data.World import Dodge.Data.World
import Dodge.DoubleTree
import Dodge.Euse import Dodge.Euse
import Dodge.HeldUse import Dodge.HeldUse
import Dodge.Hotkey import Dodge.Hotkey
@@ -38,7 +37,7 @@ useSelectedItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMayb
& pointerToItem itm . itUse . heldHammer .~ HammerDown & pointerToItem itm . itUse . heldHammer .~ HammerDown
RemoteDetonatorSF -> do RemoteDetonatorSF -> do
guard (_crHammerPosition cr == HammerUp) guard (_crHammerPosition cr == HammerUp)
return $ activateDetonator usedloc cr w return $ activateDetonator usedloc w
_ | isJust $ itm ^? itUse . uequipEffect -> do _ | isJust $ itm ^? itUse . uequipEffect -> do
guard (_crHammerPosition cr == HammerUp) guard (_crHammerPosition cr == HammerUp)
invid' <- itm ^? itLocation . ilInvID invid' <- itm ^? itLocation . ilInvID
@@ -47,24 +46,21 @@ useSelectedItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMayb
where where
fst3 (x, _, _) = x fst3 (x, _, _) = x
activateDetonator activateDetonator ::
:: LabelDoubleTree ItemLink ComposedItem -> Creature -> World LabelDoubleTree ItemLink ComposedItem ->
-> World World ->
activateDetonator det _ w = foldl' remoteDetonate w World
(det ^. ldtValue . _1 . itUse . uaParams . apProjectiles) activateDetonator det = fromMaybe id $ do
& pointerToItemID (det ^. ldtValue . _1 . itID) . itUse . uaParams . apProjectiles .~ [] pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0
return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0
remoteDetonate :: World -> Int -> World
remoteDetonate w pjid = w
& cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0
useLocation :: LocationLDT ItemLink ComposedItem -> UseFocus useLocation :: LocationLDT ItemLink ComposedItem -> UseFocus
useLocation loc useLocation loc
| isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uequipEffect = UseFromLocation | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uequipEffect = UseFromLocation
| isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apLinkedProjectile . _Just | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apLinkedProjectile . _Just =
= UseFromLocation UseFromLocation
| isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 =
= UseFromLocation UseFromLocation
| otherwise = UseFromRoot | otherwise = UseFromRoot
toggleEquipmentAt :: Int -> Creature -> World -> World toggleEquipmentAt :: Int -> Creature -> World -> World
+3 -3
View File
@@ -26,9 +26,9 @@ data ProjectileUpdate
,_pjuTimer :: Int} ,_pjuTimer :: Int}
| TimePU | TimePU
| CollisionEffectPU | CollisionEffectPU
{_pjuDetonatorID :: Maybe (NewInt ItmInt) -- {_pjuDetonatorID :: Maybe (NewInt ItmInt)
,_pjuScreenID :: Maybe (NewInt ItmInt) -- ,_pjuScreenID :: Maybe (NewInt ItmInt)
} -- }
| ApplyGravityPU | ApplyGravityPU
deriving (Show, Eq, Ord, Read) --Generic, Flat) deriving (Show, Eq, Ord, Read) --Generic, Flat)
+12
View File
@@ -26,15 +26,20 @@ data Projectile
, _pjZVel :: Float , _pjZVel :: Float
, _pjUpdates :: [ProjectileUpdate] , _pjUpdates :: [ProjectileUpdate]
, _pjType :: ProjectileType , _pjType :: ProjectileType
, _pjDetonatorID :: Maybe (NewInt ItmInt)
, _pjScreenID :: Maybe (NewInt ItmInt)
} }
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
data ProjectileType data ProjectileType
= Grenade = Grenade
{ _gnHitEffect :: GrenadeHitEffect
}
| Rocket | Rocket
{_rkHoming :: RocketHoming {_rkHoming :: RocketHoming
,_rkSmoke :: Maybe RocketSmoke ,_rkSmoke :: Maybe RocketSmoke
} }
| RetiredProjectile
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
data RocketHoming data RocketHoming
@@ -43,6 +48,11 @@ data RocketHoming
| HomeUsingTargeting {_phTargetingID :: NewInt ItmInt} | HomeUsingTargeting {_phTargetingID :: NewInt ItmInt}
deriving (Show, Eq, Ord, Read) --Generic, Flat) deriving (Show, Eq, Ord, Read) --Generic, Flat)
data GrenadeHitEffect
= GBounce {_bounceTolerance :: Float}
| GStick
deriving (Show, Eq, Ord, Read) --Generic, Flat)
data RocketSmoke data RocketSmoke
= ReducedRocketSmoke = ReducedRocketSmoke
deriving (Show, Eq, Ord, Read) --Generic, Flat) deriving (Show, Eq, Ord, Read) --Generic, Flat)
@@ -51,6 +61,8 @@ data RocketSmoke
makeLenses ''Projectile makeLenses ''Projectile
makeLenses ''ProjectileType makeLenses ''ProjectileType
makeLenses ''RocketHoming makeLenses ''RocketHoming
makeLenses ''GrenadeHitEffect
deriveJSON defaultOptions ''GrenadeHitEffect
deriveJSON defaultOptions ''RocketHoming deriveJSON defaultOptions ''RocketHoming
deriveJSON defaultOptions ''RocketSmoke deriveJSON defaultOptions ''RocketSmoke
deriveJSON defaultOptions ''ProjectileType deriveJSON defaultOptions ''ProjectileType
+7 -7
View File
@@ -46,10 +46,10 @@ drawFlamelet pt =
( mixColors ( mixColors
(fromIntegral (max 0 (time -2))) (fromIntegral (max 0 (time -2)))
(10 - fromIntegral time) (10 - fromIntegral time)
(V4 2 0 0 1)
(V4 2 0 0 1)
--(V4 2 0 0 1) --(V4 2 0 0 1)
--(V4 2 0 0 0) --(V4 2 0 0 1)
(V4 2 0 0 1)
(V4 2 0 0 0)
) )
. rotate (negate (rot - 0.1 * fromIntegral time)) . rotate (negate (rot - 0.1 * fromIntegral time))
. scale s1 s1 . scale s1 s1
@@ -62,10 +62,10 @@ drawFlamelet pt =
( mixColors ( mixColors
(fromIntegral (max 0 (time -2))) (fromIntegral (max 0 (time -2)))
(10 - fromIntegral time) (10 - fromIntegral time)
(V4 2 1 0 1) --(V4 2 1 0 1)
(V4 0 0 0 1) --(V4 0 0 0 1)
--(V4 2 1 0 0.5) (V4 2 1 0 0.5)
--(V4 0 0 0 0) (V4 0 0 0 0)
) )
. rotate (negate (rot + 0.2 * fromIntegral time)) . rotate (negate (rot + 0.2 * fromIntegral time))
. scale s2 s2 . scale s2 s2
+1 -1
View File
@@ -300,7 +300,7 @@ useLoadedAmmo itmtree cr (cme, w) (mzid, Just (mz, x, magtree)) = (,) (cme & cme
MuzzleTesla -> shootTeslaArc itm cr mz w MuzzleTesla -> shootTeslaArc itm cr mz w
MuzzleTractor -> shootTractorBeam cr w MuzzleTractor -> shootTractorBeam cr w
MuzzleRLauncher -> createProjectileR itmtree magtree mz cr w MuzzleRLauncher -> createProjectileR itmtree magtree mz cr w
MuzzleGLauncher -> createProjectile Grenade magtree mz cr w MuzzleGLauncher -> createProjectile (Grenade (GBounce 2)) magtree mz cr w
MuzzleNozzle{} -> useGasParams mid mz itm cr $ walkNozzle mzid mz itm cr w MuzzleNozzle{} -> useGasParams mid mz itm cr $ walkNozzle mzid mz itm cr w
MuzzleShatter -> shootShatter itm cr w MuzzleShatter -> shootShatter itm cr w
MuzzleDetector -> itemDetectorEffect itm cr w MuzzleDetector -> itemDetectorEffect itm cr w
+8 -6
View File
@@ -32,24 +32,26 @@ createShell mdetonator mscreen pjtype payload muz cr w = w
, _pjPayload = payload , _pjPayload = payload
, _pjTimer = lifespan , _pjTimer = lifespan
, _pjUpdates = , _pjUpdates =
[ CollisionEffectPU mdetonator mscreen [ CollisionEffectPU
, TimePU , TimePU
, StartSpinPU (lifespan - 15) (_crID cr) spinamount , StartSpinPU (lifespan - 15) (_crID cr) spinamount
, RemoteDirectionPU (lifespan - thrustdelay) 0 , RemoteDirectionPU (lifespan - thrustdelay) 0
, ReduceSpinPU (1 - spindrag * 2 / 200) , ReduceSpinPU (1 - spindrag * 2 / 200)
] <> thrustorgrav ] <> thrustorgrav
, _pjType = pjtype , _pjType = pjtype
, _pjDetonatorID = mdetonator
, _pjScreenID = mscreen
} }
where where
speed = case pjtype of speed = case pjtype of
Grenade -> 4 Grenade {} -> 4
Rocket{} -> 1 Rocket{} -> 1
lifespan = case pjtype of RetiredProjectile -> 0
Grenade -> 150 lifespan = 350
Rocket{} -> 350
thrustorgrav = case pjtype of thrustorgrav = case pjtype of
Grenade -> [ApplyGravityPU] Grenade {}-> [ApplyGravityPU]
Rocket{} -> [ThrustPU (lifespan - thrustdelay) 0] Rocket{} -> [ThrustPU (lifespan - thrustdelay) 0]
RetiredProjectile -> []
spindrag = 1 spindrag = 1
spinamount = 2 spinamount = 2
thrustdelay = 20 thrustdelay = 20
+6 -9
View File
@@ -26,10 +26,10 @@ updateProjectile pj w = foldl' (flip $ upProjectile pj) w (_pjUpdates pj)
upProjectile :: Projectile -> ProjectileUpdate -> World -> World upProjectile :: Projectile -> ProjectileUpdate -> World -> World
upProjectile pj pu = case pu of upProjectile pj pu = case pu of
CollisionEffectPU mdetonatorid mscreenid -> CollisionEffectPU ->
shellCollisionCheck shellCollisionCheck
mdetonatorid (pj ^. pjDetonatorID)
mscreenid (pj ^. pjScreenID)
pj pj
TimePU -> decTimMvVel pj TimePU -> decTimMvVel pj
ThrustPU st et ThrustPU st et
@@ -79,7 +79,7 @@ applyGravityPU pj w
| otherwise = x * 0.9 | otherwise = x * 0.9
newz = pj ^. pjZ + pj ^. pjZVel newz = pj ^. pjZ + pj ^. pjZVel
--shellCollisionCheck :: (Projectile -> World -> World) -> Projectile -> World -> World -- consider using thingHit, pushing any hit creature back
shellCollisionCheck :: shellCollisionCheck ::
Maybe (NewInt ItmInt) -> Maybe (NewInt ItmInt) ->
Maybe (NewInt ItmInt) -> Maybe (NewInt ItmInt) ->
@@ -174,12 +174,9 @@ decTimMvVel :: Projectile -> World -> World
decTimMvVel pj = decTimMvVel pj =
cWorld . lWorld . projectiles . ix (_pjID pj) cWorld . lWorld . projectiles . ix (_pjID pj)
%~ ( (pjTimer -~ 1) %~ ( (pjTimer -~ 1)
. (pjPos %~ (+.+ vel)) . (pjPos +~ _pjVel pj)
. (pjDir +~ rot) . (pjDir +~ _pjSpin pj)
) )
where
rot = _pjSpin pj
vel = _pjVel pj
explodeShell :: explodeShell ::
Maybe (NewInt ItmInt) -> Maybe (NewInt ItmInt) ->
+43 -40
View File
@@ -736,6 +736,9 @@ FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C
FunctionChangeLink src/Dodge/Data/ComposedItem.hs 29;" C FunctionChangeLink src/Dodge/Data/ComposedItem.hs 29;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 51;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 51;" C
GEqC src/SameConstr.hs 20;" c GEqC src/SameConstr.hs 20;" c
GHitBounce src/Dodge/Data/Projectile.hs 50;" C
GHitDetonate src/Dodge/Data/Projectile.hs 49;" C
GHitStick src/Dodge/Data/Projectile.hs 51;" C
GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C
GLAUNCHER src/Dodge/Data/Item/Combine.hs 154;" C GLAUNCHER src/Dodge/Data/Item/Combine.hs 154;" C
GLHelp src/GLHelp.hs 1;" m GLHelp src/GLHelp.hs 1;" m
@@ -787,6 +790,7 @@ Graph src/Dodge/Graph.hs 2;" m
GraphHelp src/GraphHelp.hs 1;" m GraphHelp src/GraphHelp.hs 1;" m
GraphVizHelp src/GraphVizHelp.hs 2;" m GraphVizHelp src/GraphVizHelp.hs 2;" m
Grenade src/Dodge/Data/Projectile.hs 33;" C Grenade src/Dodge/Data/Projectile.hs 33;" C
GrenadeHitEffect src/Dodge/Data/Projectile.hs 48;" t
Grid src/Grid.hs 1;" m Grid src/Grid.hs 1;" m
Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 13;" t
Gust src/Dodge/Data/Gust.hs 6;" m Gust src/Dodge/Data/Gust.hs 6;" m
@@ -828,8 +832,8 @@ HeldUse src/Dodge/HeldUse.hs 4;" m
HeldUseEffect src/Dodge/Data/Item/Use.hs 51;" t HeldUseEffect src/Dodge/Data/Item/Use.hs 51;" t
HelpNum src/HelpNum.hs 1;" m HelpNum src/HelpNum.hs 1;" m
HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C
HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 42;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 44;" C
HomeUsingTargeting src/Dodge/Data/Projectile.hs 43;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 45;" C
Hospital src/Dodge/Data/Scenario.hs 69;" C Hospital src/Dodge/Data/Scenario.hs 69;" C
Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t
Hotkey src/Dodge/Hotkey.hs 1;" m Hotkey src/Dodge/Hotkey.hs 1;" m
@@ -1248,7 +1252,7 @@ NoFaction src/Dodge/Data/Creature/State.hs 40;" C
NoFlare src/Dodge/Data/Item/Use.hs 131;" C NoFlare src/Dodge/Data/Item/Use.hs 131;" C
NoHammer src/Dodge/Data/Hammer.hs 13;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C
NoHeldUseEffect src/Dodge/Data/Item/Use.hs 52;" C NoHeldUseEffect src/Dodge/Data/Item/Use.hs 52;" C
NoHoming src/Dodge/Data/Projectile.hs 41;" C NoHoming src/Dodge/Data/Projectile.hs 43;" C
NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C
NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C
NoItTargeting src/Dodge/Data/Item.hs 55;" C NoItTargeting src/Dodge/Data/Item.hs 55;" C
@@ -1574,7 +1578,7 @@ ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m
RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RecRoomSS src/Dodge/Data/Scenario.hs 103;" C
RectRoomType src/Dodge/Data/Room.hs 32;" C RectRoomType src/Dodge/Data/Room.hs 32;" C
ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" C ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" C
ReducedRocketSmoke src/Dodge/Data/Projectile.hs 47;" C ReducedRocketSmoke src/Dodge/Data/Projectile.hs 55;" C
ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C Religion src/Dodge/Data/Scenario.hs 47;" C
Reload src/Dodge/Data/ActionPlan.hs 190;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C
@@ -1609,9 +1613,9 @@ RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m
RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightForward src/Dodge/Data/Creature/Stance.hs 33;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C
RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m
Rocket src/Dodge/Data/Projectile.hs 34;" C Rocket src/Dodge/Data/Projectile.hs 36;" C
RocketHoming src/Dodge/Data/Projectile.hs 40;" t RocketHoming src/Dodge/Data/Projectile.hs 42;" t
RocketSmoke src/Dodge/Data/Projectile.hs 46;" t RocketSmoke src/Dodge/Data/Projectile.hs 54;" t
Rod src/Dodge/Item/Held/Rod.hs 1;" m Rod src/Dodge/Item/Held/Rod.hs 1;" m
Room src/Dodge/Data/GenWorld.hs 94;" t Room src/Dodge/Data/GenWorld.hs 94;" t
Room src/Dodge/Data/Room.hs 4;" m Room src/Dodge/Data/Room.hs 4;" m
@@ -2540,6 +2544,7 @@ _getSoundID src/Sound/Data.hs 32;" f
_gfConstant src/Dodge/Data/GenFloat.hs 11;" f _gfConstant src/Dodge/Data/GenFloat.hs 11;" f
_gfMax src/Dodge/Data/GenFloat.hs 12;" f _gfMax src/Dodge/Data/GenFloat.hs 12;" f
_gfMin src/Dodge/Data/GenFloat.hs 12;" f _gfMin src/Dodge/Data/GenFloat.hs 12;" f
_gnHitEffect src/Dodge/Data/Projectile.hs 34;" f
_grBound src/Dodge/GameRoom.hs 18;" f _grBound src/Dodge/GameRoom.hs 18;" f
_grDir src/Dodge/GameRoom.hs 20;" f _grDir src/Dodge/GameRoom.hs 20;" f
_grLinkDirs src/Dodge/GameRoom.hs 21;" f _grLinkDirs src/Dodge/GameRoom.hs 21;" f
@@ -2809,14 +2814,24 @@ _peZoning src/Dodge/Data/World.hs 53;" f
_penEnd src/Dodge/Data/PathGraph.hs 35;" f _penEnd src/Dodge/Data/PathGraph.hs 35;" f
_penPathEdge src/Dodge/Data/PathGraph.hs 36;" f _penPathEdge src/Dodge/Data/PathGraph.hs 36;" f
_penStart src/Dodge/Data/PathGraph.hs 34;" f _penStart src/Dodge/Data/PathGraph.hs 34;" f
_phRemoteID src/Dodge/Data/Projectile.hs 42;" f _phRemoteID src/Dodge/Data/Projectile.hs 44;" f
_phTargetingID src/Dodge/Data/Projectile.hs 43;" f _phTargetingID src/Dodge/Data/Projectile.hs 45;" f
_pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f
_pickUps src/Dodge/Layout/Generate.hs 15;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f
_pictureShaders src/Data/Preload/Render.hs 28;" f _pictureShaders src/Data/Preload/Render.hs 28;" f
_piercedPoints src/Dodge/Data/Creature/State.hs 30;" f _piercedPoints src/Dodge/Data/Creature/State.hs 30;" f
_pjDir src/Dodge/Data/Projectile.hs 20;" f
_pjID src/Dodge/Data/Projectile.hs 22;" f
_pjPayload src/Dodge/Data/Projectile.hs 23;" f
_pjPos src/Dodge/Data/Projectile.hs 18;" f
_pjSpin src/Dodge/Data/Projectile.hs 21;" f
_pjTimer src/Dodge/Data/Projectile.hs 24;" f
_pjType src/Dodge/Data/Projectile.hs 28;" f
_pjUpdates src/Dodge/Data/Projectile.hs 27;" f
_pjVel src/Dodge/Data/Projectile.hs 19;" f
_pjZ src/Dodge/Data/Projectile.hs 25;" f
_pjZVel src/Dodge/Data/Projectile.hs 26;" f
_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f _pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f
_pjuControlID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" f
_pjuDetonatorID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f _pjuDetonatorID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f
_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f _pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f
_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f _pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f
@@ -2866,17 +2881,6 @@ _preloadData src/Dodge/Data/Universe.hs 32;" f
_pressPlates src/Dodge/Data/LWorld.hs 134;" f _pressPlates src/Dodge/Data/LWorld.hs 134;" f
_pressedKeys src/Dodge/Data/Input.hs 45;" f _pressedKeys src/Dodge/Data/Input.hs 45;" f
_previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f _previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f
_prjDir src/Dodge/Data/Projectile.hs 20;" f
_prjID src/Dodge/Data/Projectile.hs 22;" f
_prjPayload src/Dodge/Data/Projectile.hs 23;" f
_prjPos src/Dodge/Data/Projectile.hs 18;" f
_prjSpin src/Dodge/Data/Projectile.hs 21;" f
_prjTimer src/Dodge/Data/Projectile.hs 24;" f
_prjType src/Dodge/Data/Projectile.hs 28;" f
_prjUpdates src/Dodge/Data/Projectile.hs 27;" f
_prjVel src/Dodge/Data/Projectile.hs 19;" f
_prjZ src/Dodge/Data/Projectile.hs 25;" f
_prjZVel src/Dodge/Data/Projectile.hs 26;" f
_projectiles src/Dodge/Data/LWorld.hs 104;" f _projectiles src/Dodge/Data/LWorld.hs 104;" f
_props src/Dodge/Data/LWorld.hs 103;" f _props src/Dodge/Data/LWorld.hs 103;" f
_proxDist src/Dodge/Data/Machine/Sensor.hs 26;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 26;" f
@@ -2933,8 +2937,8 @@ _reverseAmount src/Dodge/Data/World.hs 64;" f
_reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 70;" f
_reverseAmount src/Dodge/Data/World.hs 74;" f _reverseAmount src/Dodge/Data/World.hs 74;" f
_rifling src/Dodge/Data/Item/Use.hs 99;" f _rifling src/Dodge/Data/Item/Use.hs 99;" f
_rkHoming src/Dodge/Data/Projectile.hs 35;" f _rkHoming src/Dodge/Data/Projectile.hs 37;" f
_rkSmoke src/Dodge/Data/Projectile.hs 36;" f _rkSmoke src/Dodge/Data/Projectile.hs 38;" f
_rlDir src/Dodge/Data/Room.hs 26;" f _rlDir src/Dodge/Data/Room.hs 26;" f
_rlPos src/Dodge/Data/Room.hs 25;" f _rlPos src/Dodge/Data/Room.hs 25;" f
_rlType src/Dodge/Data/Room.hs 24;" f _rlType src/Dodge/Data/Room.hs 24;" f
@@ -3287,7 +3291,7 @@ aSound src/Dodge/SoundLogic.hs 68;" f
aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 48;" f accessTerminal src/Dodge/WorldEffect.hs 48;" f
activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 50;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 49;" f
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f
addArmour src/Dodge/Creature.hs 83;" f addArmour src/Dodge/Creature.hs 83;" f
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
@@ -3362,7 +3366,7 @@ applyCME src/Dodge/HeldUse.hs 126;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
applyEventIO src/Loop.hs 89;" f applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 55;" f applyGravityPU src/Dodge/Projectile/Update.hs 54;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f
applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 141;" f applyInvLock src/Dodge/HeldUse.hs 141;" f
@@ -3826,7 +3830,7 @@ debugMenuOptions src/Dodge/Menu.hs 119;" f
debugOn src/Dodge/Data/Config.hs 151;" f debugOn src/Dodge/Data/Config.hs 151;" f
debugSelectCreatureList src/Dodge/Debug.hs 86;" f debugSelectCreatureList src/Dodge/Debug.hs 86;" f
debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f
decTimMvVel src/Dodge/Projectile/Update.hs 178;" f decTimMvVel src/Dodge/Projectile/Update.hs 173;" f
decodedtmap src/Dodge/Terminal.hs 205;" f decodedtmap src/Dodge/Terminal.hs 205;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f
decomposeTree src/Dodge/Tree/Compose.hs 57;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f
@@ -3929,7 +3933,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 21;" f destroyMcType src/Dodge/Machine/Destroy.hs 21;" f
destroyMount src/Dodge/Block.hs 104;" f destroyMount src/Dodge/Block.hs 104;" f
destroyMounts src/Dodge/Block.hs 101;" f destroyMounts src/Dodge/Block.hs 101;" f
destroyProjectile src/Dodge/Projectile/Update.hs 103;" f destroyProjectile src/Dodge/Projectile/Update.hs 98;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 41;" f detector src/Dodge/Item/Held/Utility.hs 41;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 434;" f detectorColor src/Dodge/Item/Draw/SPic.hs 434;" f
@@ -4043,7 +4047,7 @@ doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f
doTestDrawing src/Dodge/Render.hs 42;" f doTestDrawing src/Dodge/Render.hs 42;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 115;" f doThrust src/Dodge/Projectile/Update.hs 110;" f
doTimeScroll src/Dodge/Update.hs 205;" f doTimeScroll src/Dodge/Update.hs 205;" f
doTmTm src/Dodge/TmTm.hs 6;" f doTmTm src/Dodge/TmTm.hs 6;" f
doTmWdWd src/Dodge/WorldEffect.hs 101;" f doTmWdWd src/Dodge/WorldEffect.hs 101;" f
@@ -4250,7 +4254,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 195;" f expireAndDamage src/Dodge/Bullet.hs 195;" f
expireAndDamageFL src/Dodge/Flame.hs 47;" f expireAndDamageFL src/Dodge/Flame.hs 47;" f
explodeShell src/Dodge/Projectile/Update.hs 190;" f explodeShell src/Dodge/Projectile/Update.hs 181;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
@@ -5131,7 +5135,7 @@ pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 42;" f pistol src/Dodge/Item/Held/Stick.hs 42;" f
pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f
pistolerRoom src/Dodge/Room/Room.hs 321;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 160;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 155;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
@@ -5380,7 +5384,7 @@ rectXY src/Geometry/Polygon.hs 35;" f
rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f
red src/Color.hs 14;" f red src/Color.hs 14;" f
reduceLocLDT src/Dodge/DoubleTree.hs 256;" f reduceLocLDT src/Dodge/DoubleTree.hs 256;" f
reduceSpinBy src/Dodge/Projectile/Update.hs 175;" f reduceSpinBy src/Dodge/Projectile/Update.hs 170;" f
reflDirWall src/Dodge/Base/Wall.hs 16;" f reflDirWall src/Dodge/Base/Wall.hs 16;" f
reflVelWall src/Dodge/Base/Wall.hs 24;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f
reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
@@ -5396,7 +5400,6 @@ reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f
reloadLevelStart src/Dodge/Save.hs 71;" f reloadLevelStart src/Dodge/Save.hs 71;" f
reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteDetonate src/Dodge/Creature/Impulse/UseItem.hs 57;" f
remoteDetonator src/Dodge/Item/Scope.hs 63;" f remoteDetonator src/Dodge/Item/Scope.hs 63;" f
remoteScreen src/Dodge/Item/Scope.hs 59;" f remoteScreen src/Dodge/Item/Scope.hs 59;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 397;" f removeAmmoFromMag src/Dodge/HeldUse.hs 397;" f
@@ -5651,7 +5654,7 @@ shardShape src/Dodge/Block/Debris.hs 181;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 284;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 284;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellCollisionCheck src/Dodge/Projectile/Update.hs 84;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 83;" f
shellMag src/Dodge/Item/Ammo.hs 61;" f shellMag src/Dodge/Item/Ammo.hs 61;" f
shellModule src/Dodge/Item/Scope.hs 45;" f shellModule src/Dodge/Item/Scope.hs 45;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
@@ -5955,7 +5958,7 @@ toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f toV4 src/Geometry/Data.hs 40;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f
toggleCommand src/Dodge/Terminal.hs 196;" f toggleCommand src/Dodge/Terminal.hs 196;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 70;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 66;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 556;" f toggleMap src/Dodge/Update/Input/InGame.hs 556;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 569;" f toggleTweakInv src/Dodge/Update/Input/InGame.hs 569;" f
@@ -6040,7 +6043,7 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
trySeedFromClipboard src/Dodge/Menu.hs 88;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f
trySpinByCID src/Dodge/Projectile/Update.hs 142;" f trySpinByCID src/Dodge/Projectile/Update.hs 137;" f
trySynthBullet src/Dodge/Creature/State.hs 204;" f trySynthBullet src/Dodge/Creature/State.hs 204;" f
tryUseParent src/Dodge/Creature/State.hs 197;" f tryUseParent src/Dodge/Creature/State.hs 197;" f
turnTo src/Dodge/Movement/Turn.hs 4;" f turnTo src/Dodge/Movement/Turn.hs 4;" f
@@ -6218,20 +6221,20 @@ useGasParams src/Dodge/HeldUse.hs 506;" f
useHotkey src/Dodge/Creature/YourControl.hs 54;" f useHotkey src/Dodge/Creature/YourControl.hs 54;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 289;" f useLoadedAmmo src/Dodge/HeldUse.hs 289;" f
useLocation src/Dodge/Creature/Impulse/UseItem.hs 61;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 57;" f
useMagShield src/Dodge/Euse.hs 46;" f useMagShield src/Dodge/Euse.hs 46;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 17;" f usePayload src/Dodge/Payload.hs 17;" f
useRewindGun src/Dodge/HeldUse.hs 696;" f useRewindGun src/Dodge/HeldUse.hs 692;" f
useRewindGun src/Dodge/Luse.hs 40;" f useRewindGun src/Dodge/Luse.hs 40;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 21;" f useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f
useStopWatch src/Dodge/HeldUse.hs 677;" f useStopWatch src/Dodge/HeldUse.hs 673;" f
useStopWatch src/Dodge/Luse.hs 21;" f useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 63;" f useTimeCheck src/Dodge/HeldUse.hs 63;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 685;" f useTimeScrollGun src/Dodge/HeldUse.hs 681;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 433;" f useUpdate src/Dodge/Creature/State.hs 433;" f