From 2fdc6ae55702284f5285e2d0477e8505d6d5dde4 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 28 Dec 2024 21:31:33 +0000 Subject: [PATCH] Start making projectile update function rather than folded list --- src/Dodge/Base/Collide.hs | 2 - src/Dodge/Creature/Impulse/UseItem.hs | 34 ++++----- src/Dodge/Data/Item/Use/Consumption/Ammo.hs | 6 +- src/Dodge/Data/Projectile.hs | 12 +++ src/Dodge/EnergyBall/Draw.hs | 14 ++-- src/Dodge/HeldUse.hs | 2 +- src/Dodge/Projectile/Create.hs | 14 ++-- src/Dodge/Projectile/Update.hs | 15 ++-- tags | 83 +++++++++++---------- 9 files changed, 95 insertions(+), 87 deletions(-) diff --git a/src/Dodge/Base/Collide.hs b/src/Dodge/Base/Collide.hs index 5400f9a86..ae95488a2 100644 --- a/src/Dodge/Base/Collide.hs +++ b/src/Dodge/Base/Collide.hs @@ -254,10 +254,8 @@ anythingHitCirc rad sp ep w = hitCr || circHitWall sp ep rad w f cid bl = maybe False - --(\cr -> null $ intersectCircSeg (_crPos cr) (rad + _crRad cr) sp ep) (\cr -> intersectCircSegTest (_crPos cr) (rad + _crRad cr) sp ep) (w ^? cWorld . lWorld . creatures . ix cid) || bl --- hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w -- this should probably be wallsOnLine or something diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index ef18b226f..90e9bf103 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -2,14 +2,13 @@ module Dodge.Creature.Impulse.UseItem ( useSelectedItem, ) where -import Data.Foldable (foldl') -import Dodge.DoubleTree import Control.Lens import Control.Monad import Data.Maybe import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree import Dodge.Data.World +import Dodge.DoubleTree import Dodge.Euse import Dodge.HeldUse import Dodge.Hotkey @@ -38,33 +37,30 @@ useSelectedItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMayb & pointerToItem itm . itUse . heldHammer .~ HammerDown RemoteDetonatorSF -> do guard (_crHammerPosition cr == HammerUp) - return $ activateDetonator usedloc cr w + return $ activateDetonator usedloc w _ | isJust $ itm ^? itUse . uequipEffect -> do guard (_crHammerPosition cr == HammerUp) invid' <- itm ^? itLocation . ilInvID return $ toggleEquipmentAt invid' cr w _ -> Nothing where - fst3 (x,_,_) = x + fst3 (x, _, _) = x -activateDetonator - :: LabelDoubleTree ItemLink ComposedItem -> Creature -> World - -> World -activateDetonator det _ w = foldl' remoteDetonate w - (det ^. ldtValue . _1 . itUse . uaParams . apProjectiles) - & pointerToItemID (det ^. ldtValue . _1 . itID) . itUse . uaParams . apProjectiles .~ [] - -remoteDetonate :: World -> Int -> World -remoteDetonate w pjid = w - & cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0 +activateDetonator :: + LabelDoubleTree ItemLink ComposedItem -> + World -> + World +activateDetonator det = fromMaybe id $ do + pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 + return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0 useLocation :: LocationLDT ItemLink ComposedItem -> UseFocus -useLocation loc +useLocation loc | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uequipEffect = UseFromLocation - | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apLinkedProjectile . _Just - = UseFromLocation - | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 - = UseFromLocation + | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apLinkedProjectile . _Just = + UseFromLocation + | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 = + UseFromLocation | otherwise = UseFromRoot toggleEquipmentAt :: Int -> Creature -> World -> World diff --git a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs index eb2af4b00..97f4cf410 100644 --- a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs +++ b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs @@ -26,9 +26,9 @@ data ProjectileUpdate ,_pjuTimer :: Int} | TimePU | CollisionEffectPU - {_pjuDetonatorID :: Maybe (NewInt ItmInt) - ,_pjuScreenID :: Maybe (NewInt ItmInt) - } +-- {_pjuDetonatorID :: Maybe (NewInt ItmInt) +-- ,_pjuScreenID :: Maybe (NewInt ItmInt) +-- } | ApplyGravityPU deriving (Show, Eq, Ord, Read) --Generic, Flat) diff --git a/src/Dodge/Data/Projectile.hs b/src/Dodge/Data/Projectile.hs index f62b47e02..a50ebbccf 100644 --- a/src/Dodge/Data/Projectile.hs +++ b/src/Dodge/Data/Projectile.hs @@ -26,15 +26,20 @@ data Projectile , _pjZVel :: Float , _pjUpdates :: [ProjectileUpdate] , _pjType :: ProjectileType + , _pjDetonatorID :: Maybe (NewInt ItmInt) + , _pjScreenID :: Maybe (NewInt ItmInt) } deriving (Eq, Ord, Show, Read) --Generic, Flat) data ProjectileType = Grenade + { _gnHitEffect :: GrenadeHitEffect + } | Rocket {_rkHoming :: RocketHoming ,_rkSmoke :: Maybe RocketSmoke } + | RetiredProjectile deriving (Eq, Ord, Show, Read) --Generic, Flat) data RocketHoming @@ -43,6 +48,11 @@ data RocketHoming | HomeUsingTargeting {_phTargetingID :: NewInt ItmInt} deriving (Show, Eq, Ord, Read) --Generic, Flat) +data GrenadeHitEffect + = GBounce {_bounceTolerance :: Float} + | GStick + deriving (Show, Eq, Ord, Read) --Generic, Flat) + data RocketSmoke = ReducedRocketSmoke deriving (Show, Eq, Ord, Read) --Generic, Flat) @@ -51,6 +61,8 @@ data RocketSmoke makeLenses ''Projectile makeLenses ''ProjectileType makeLenses ''RocketHoming +makeLenses ''GrenadeHitEffect +deriveJSON defaultOptions ''GrenadeHitEffect deriveJSON defaultOptions ''RocketHoming deriveJSON defaultOptions ''RocketSmoke deriveJSON defaultOptions ''ProjectileType diff --git a/src/Dodge/EnergyBall/Draw.hs b/src/Dodge/EnergyBall/Draw.hs index 5ffc3d46a..f170c4960 100644 --- a/src/Dodge/EnergyBall/Draw.hs +++ b/src/Dodge/EnergyBall/Draw.hs @@ -46,10 +46,10 @@ drawFlamelet pt = ( mixColors (fromIntegral (max 0 (time -2))) (10 - fromIntegral time) - (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)) . scale s1 s1 @@ -62,10 +62,10 @@ drawFlamelet pt = ( mixColors (fromIntegral (max 0 (time -2))) (10 - fromIntegral time) - (V4 2 1 0 1) - (V4 0 0 0 1) - --(V4 2 1 0 0.5) - --(V4 0 0 0 0) + --(V4 2 1 0 1) + --(V4 0 0 0 1) + (V4 2 1 0 0.5) + (V4 0 0 0 0) ) . rotate (negate (rot + 0.2 * fromIntegral time)) . scale s2 s2 diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 3413bab0e..d168cc769 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -300,7 +300,7 @@ useLoadedAmmo itmtree cr (cme, w) (mzid, Just (mz, x, magtree)) = (,) (cme & cme MuzzleTesla -> shootTeslaArc itm cr mz w MuzzleTractor -> shootTractorBeam 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 MuzzleShatter -> shootShatter itm cr w MuzzleDetector -> itemDetectorEffect itm cr w diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index d21faebfc..1e1526b30 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -32,24 +32,26 @@ createShell mdetonator mscreen pjtype payload muz cr w = w , _pjPayload = payload , _pjTimer = lifespan , _pjUpdates = - [ CollisionEffectPU mdetonator mscreen + [ CollisionEffectPU , TimePU , StartSpinPU (lifespan - 15) (_crID cr) spinamount , RemoteDirectionPU (lifespan - thrustdelay) 0 , ReduceSpinPU (1 - spindrag * 2 / 200) ] <> thrustorgrav , _pjType = pjtype + , _pjDetonatorID = mdetonator + , _pjScreenID = mscreen } where speed = case pjtype of - Grenade -> 4 + Grenade {} -> 4 Rocket{} -> 1 - lifespan = case pjtype of - Grenade -> 150 - Rocket{} -> 350 + RetiredProjectile -> 0 + lifespan = 350 thrustorgrav = case pjtype of - Grenade -> [ApplyGravityPU] + Grenade {}-> [ApplyGravityPU] Rocket{} -> [ThrustPU (lifespan - thrustdelay) 0] + RetiredProjectile -> [] spindrag = 1 spinamount = 2 thrustdelay = 20 diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 57f8ae5e8..59b23e3e5 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -26,10 +26,10 @@ updateProjectile pj w = foldl' (flip $ upProjectile pj) w (_pjUpdates pj) upProjectile :: Projectile -> ProjectileUpdate -> World -> World upProjectile pj pu = case pu of - CollisionEffectPU mdetonatorid mscreenid -> + CollisionEffectPU -> shellCollisionCheck - mdetonatorid - mscreenid + (pj ^. pjDetonatorID) + (pj ^. pjScreenID) pj TimePU -> decTimMvVel pj ThrustPU st et @@ -79,7 +79,7 @@ applyGravityPU pj w | otherwise = x * 0.9 newz = pj ^. pjZ + pj ^. pjZVel ---shellCollisionCheck :: (Projectile -> World -> World) -> Projectile -> World -> World +-- consider using thingHit, pushing any hit creature back shellCollisionCheck :: Maybe (NewInt ItmInt) -> Maybe (NewInt ItmInt) -> @@ -174,12 +174,9 @@ decTimMvVel :: Projectile -> World -> World decTimMvVel pj = cWorld . lWorld . projectiles . ix (_pjID pj) %~ ( (pjTimer -~ 1) - . (pjPos %~ (+.+ vel)) - . (pjDir +~ rot) + . (pjPos +~ _pjVel pj) + . (pjDir +~ _pjSpin pj) ) - where - rot = _pjSpin pj - vel = _pjVel pj explodeShell :: Maybe (NewInt ItmInt) -> diff --git a/tags b/tags index 0a44431d4..dc5ada6e7 100644 --- a/tags +++ b/tags @@ -736,6 +736,9 @@ FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C FunctionChangeLink src/Dodge/Data/ComposedItem.hs 29;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 51;" 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 GLAUNCHER src/Dodge/Data/Item/Combine.hs 154;" C GLHelp src/GLHelp.hs 1;" m @@ -787,6 +790,7 @@ Graph src/Dodge/Graph.hs 2;" m GraphHelp src/GraphHelp.hs 1;" m GraphVizHelp src/GraphVizHelp.hs 2;" m Grenade src/Dodge/Data/Projectile.hs 33;" C +GrenadeHitEffect src/Dodge/Data/Projectile.hs 48;" t Grid src/Grid.hs 1;" m Gust src/Dodge/Data/Gust.hs 13;" t 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 HelpNum src/HelpNum.hs 1;" m HiddenGoal src/Dodge/Data/Scenario.hs 14;" C -HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 42;" C -HomeUsingTargeting src/Dodge/Data/Projectile.hs 43;" C +HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 44;" C +HomeUsingTargeting src/Dodge/Data/Projectile.hs 45;" C Hospital src/Dodge/Data/Scenario.hs 69;" C Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t 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 NoHammer src/Dodge/Data/Hammer.hs 13;" 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 NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" 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 RectRoomType src/Dodge/Data/Room.hs 32;" 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 Religion src/Dodge/Data/Scenario.hs 47;" 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 RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m -Rocket src/Dodge/Data/Projectile.hs 34;" C -RocketHoming src/Dodge/Data/Projectile.hs 40;" t -RocketSmoke src/Dodge/Data/Projectile.hs 46;" t +Rocket src/Dodge/Data/Projectile.hs 36;" C +RocketHoming src/Dodge/Data/Projectile.hs 42;" t +RocketSmoke src/Dodge/Data/Projectile.hs 54;" t Rod src/Dodge/Item/Held/Rod.hs 1;" m Room src/Dodge/Data/GenWorld.hs 94;" t 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 _gfMax 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 _grDir src/Dodge/GameRoom.hs 20;" 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 _penPathEdge src/Dodge/Data/PathGraph.hs 36;" f _penStart src/Dodge/Data/PathGraph.hs 34;" f -_phRemoteID src/Dodge/Data/Projectile.hs 42;" f -_phTargetingID src/Dodge/Data/Projectile.hs 43;" f +_phRemoteID src/Dodge/Data/Projectile.hs 44;" f +_phTargetingID src/Dodge/Data/Projectile.hs 45;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f _pictureShaders src/Data/Preload/Render.hs 28;" 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 -_pjuControlID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" f _pjuDetonatorID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f _pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" 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 _pressedKeys src/Dodge/Data/Input.hs 45;" 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 _props src/Dodge/Data/LWorld.hs 103;" 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 74;" f _rifling src/Dodge/Data/Item/Use.hs 99;" f -_rkHoming src/Dodge/Data/Projectile.hs 35;" f -_rkSmoke src/Dodge/Data/Projectile.hs 36;" f +_rkHoming src/Dodge/Data/Projectile.hs 37;" f +_rkSmoke src/Dodge/Data/Projectile.hs 38;" f _rlDir src/Dodge/Data/Room.hs 26;" f _rlPos src/Dodge/Data/Room.hs 25;" 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 aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" 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 addArmour src/Dodge/Creature.hs 83;" 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 applyDamageEffect src/Dodge/Creature/Damage.hs 31;" 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 52;" 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 debugSelectCreatureList src/Dodge/Debug.hs 86;" 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 decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" 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 destroyMount src/Dodge/Block.hs 104;" 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 detector src/Dodge/Item/Held/Utility.hs 41;" 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 doTextInputOver src/Dodge/Update/Input/Text.hs 15;" 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 doTmTm src/Dodge/TmTm.hs 6;" 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 expireAndDamage src/Dodge/Bullet.hs 195;" 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 explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" 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 pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" 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 plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" 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 red src/Color.hs 14;" 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 reflVelWall src/Dodge/Base/Wall.hs 24;" 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 reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" 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 remoteScreen src/Dodge/Item/Scope.hs 59;" 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 shatterGunSPic src/Dodge/Item/Draw/SPic.hs 284;" 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 shellModule src/Dodge/Item/Scope.hs 45;" 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 toggleCombineInv src/Dodge/DisplayInventory.hs 35;" 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 toggleMap src/Dodge/Update/Input/InGame.hs 556;" 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 tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" 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 tryUseParent src/Dodge/Creature/State.hs 197;" 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 useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" 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 useNormalCamera src/Dodge/Camera.hs 6;" 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 useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 21;" f -useStopWatch src/Dodge/HeldUse.hs 677;" f +useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f +useStopWatch src/Dodge/HeldUse.hs 673;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/HeldUse.hs 63;" 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 useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUpdate src/Dodge/Creature/State.hs 433;" f