Allow grenades to bounce

This commit is contained in:
2024-12-29 00:33:55 +00:00
parent ad7be9152a
commit ef7aee82e5
7 changed files with 100 additions and 95 deletions
-1
View File
@@ -70,7 +70,6 @@ doBounce :: Float -> Point2 -> Point2 -> (Point2, Maybe Wall) -> Maybe (Point2,
{-# INLINE doBounce #-}
doBounce x sp ep (p, mwl) =
mwl <&> \wl ->
--( p +.+ normalizeV (vNormal (uncurry (-.-) (_wlLine wl)))
( p +.+ normalizeV (vNormal (uncurry (-.-) (_wlLine wl)))
, reflVelWallDamp x wl (ep -.- sp)
)
@@ -19,7 +19,6 @@ data ProjectileUpdate
= ThrustPU {_pjuStart :: Int, _pjuEnd :: Int}
| StartSpinPU {_pjuTime :: Int, _pjuCID :: Int, _pjuSpinAmound :: Int}
| RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int}
| ReduceSpinPU {_pjuReduceSpin :: Float}
| ApplyGravityPU
deriving (Show, Eq, Ord, Read) --Generic, Flat)
-1
View File
@@ -63,7 +63,6 @@ itemBaseName = \case
ATTACH ait -> showAttachItem ait
AMMOMAG ait -> show ait
TARGETING tt -> show tt
-- BULLETMOD (BulletModTrajectory btt) -> show btt
BULLETMOD (BulletModPayload btt) -> show btt
BULLETMOD (BulletModEffect btt) -> show btt
+2 -2
View File
@@ -35,7 +35,7 @@ createShell mdetonator mscreen pjtype payload muz cr w = w
[-- TimePU
StartSpinPU (lifespan - 15) (_crID cr) spinamount
, RemoteDirectionPU (lifespan - thrustdelay) 0
, ReduceSpinPU (1 - spindrag * 2 / 200)
-- , ReduceSpinPU (1 - spindrag * 2 / 200)
] <> thrustorgrav
, _pjType = pjtype
, _pjDetonatorID = mdetonator
@@ -51,7 +51,7 @@ createShell mdetonator mscreen pjtype payload muz cr w = w
Grenade {}-> [ApplyGravityPU]
Rocket{} -> [ThrustPU (lifespan - thrustdelay) 0]
RetiredProjectile -> []
spindrag = 1
-- spindrag = 1
spinamount = 2
thrustdelay = 20
updatedetonator = fromMaybe id $ do
+32 -22
View File
@@ -15,6 +15,7 @@ import Dodge.Movement.Turn
import Dodge.Payload
import Dodge.SoundLogic
import Dodge.WorldEvent.Cloud
import Dodge.WorldEvent.ThingsHit
import Geometry
import qualified IntMapHelp as IM
import LensHelp
@@ -23,14 +24,14 @@ import RandomHelp
updateProjectile :: Projectile -> World -> World
updateProjectile pj w =
decTimMvVel pj .
shellCollisionCheck
pj $
foldl' (flip $ upProjectile pj) w (_pjUpdates pj)
(cWorld . lWorld . projectiles . ix (pj ^. pjID) %~
decTimMvVel)
. shellCollisionCheck
pj
$ foldl' (flip $ upProjectile pj) w (_pjUpdates pj)
upProjectile :: Projectile -> ProjectileUpdate -> World -> World
upProjectile pj pu = case pu of
-- TimePU -> decTimMvVel pj
ThrustPU st et
| act st et -> doThrust pj (pj ^? pjType . rkSmoke . _Just)
| otherwise -> id
@@ -40,11 +41,7 @@ upProjectile pj pu = case pu of
RemoteDirectionPU st et
| act st et -> pjRemoteSetDirection (pj ^? pjType . rkHoming) pj
| otherwise -> id
ReduceSpinPU x -> reduceSpinBy x (_pjID pj)
-- DestroyPU mitid 0 -> destroyProjectile mitid (_pjID pj)
-- the following requires that this is at the top of the update list, which is
-- not ideal
-- DestroyPU _ _ -> cWorld . lWorld . projectiles . ix (_pjID pj) . pjUpdates . ix 0 . pjuTimer -~ 1
-- ReduceSpinPU x -> reduceSpinBy x (_pjID pj)
ApplyGravityPU -> applyGravityPU pj
where
time = _pjTimer pj
@@ -85,10 +82,11 @@ shellCollisionCheck ::
World
shellCollisionCheck pj w
| RetiredProjectile <- pj ^. pjType
, time <= -30
= destroyProjectile (pj ^. pjScreenID) (_pjID pj) w
, time <= 0 =
destroyProjectile (pj ^. pjScreenID) (_pjID pj) w
| RetiredProjectile <- pj ^. pjType = w
| anythingHitCirc 2 oldPos (oldPos + _pjVel pj) w = g
| Just thit <- thingHit oldPos (oldPos + _pjVel pj) w = tryShellBounce thit pj w
-- | anythingHitCirc 2 oldPos (oldPos + _pjVel pj) w = g
| time <= 0 = g
| otherwise = w
where
@@ -96,6 +94,19 @@ shellCollisionCheck pj w
time = _pjTimer pj
oldPos = _pjPos pj
tryShellBounce :: (Point2, Either Creature Wall) -> Projectile -> World -> World
tryShellBounce (p, Right wl) pj w
| Just x <- pj ^? pjType . gnHitEffect . bounceTolerance =
if abs (dotV (pj ^. pjVel) (vNormal hitline)) < x
then w & cWorld . lWorld . projectiles . ix (_pjID pj) . pjVel %~ reflectIn
hitline
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjPos .~ p
& soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos) click1S Nothing
else explodeShell pj w
where
hitline = normalizeV $ uncurry (-) $ _wlLine wl
tryShellBounce _ pj w = explodeShell pj w
destroyProjectile :: Maybe (NewInt ItmInt) -> Int -> World -> World
destroyProjectile mitid pjid w =
w & cWorld . lWorld . projectiles %~ IM.delete pjid
@@ -168,16 +179,13 @@ pjRemoteSetDirection ph pj w = case ph of
where
lw = w ^. cWorld . lWorld
reduceSpinBy :: Float -> Int -> World -> World
reduceSpinBy x pjid = cWorld . lWorld . projectiles . ix pjid . pjSpin *~ x
decTimMvVel :: Projectile -> Projectile
decTimMvVel pj = pj
& pjSpin *~ 0.99
& pjTimer -~ 1
& pjPos +~ _pjVel pj
& pjDir +~ _pjSpin pj
decTimMvVel :: Projectile -> World -> World
decTimMvVel pj =
cWorld . lWorld . projectiles . ix (_pjID pj)
%~ ( (pjTimer -~ 1)
. (pjPos +~ _pjVel pj)
. (pjDir +~ _pjSpin pj)
)
explodeShell ::
Projectile ->
@@ -187,6 +195,8 @@ explodeShell pj w =
w
& cWorld . lWorld . projectiles . ix pjid . pjUpdates .~ []
& cWorld . lWorld . projectiles . ix pjid . pjType .~ RetiredProjectile
& cWorld . lWorld . projectiles . ix pjid . pjVel .~ 0
& cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 30
& usePayload (_pjPayload pj) (_pjPos pj) (_pjVel pj)
& stopSoundFrom (ShellSound pjid)
& updatedetonator
+2 -2
View File
@@ -27,9 +27,9 @@ import qualified Data.Map.Strict as M
testStringInit :: Universe -> [String]
testStringInit u =
[show (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crPos)]
<>
map show (u ^.. uvWorld . cWorld . lWorld . projectiles . each . pjPos)
<>
map show (u ^.. uvWorld . cWorld . lWorld . projectiles . each . pjVel)
--testStringInit u = foldMap prettyShort $ u ^. uvWorld . cWorld . lWorld . projectiles
-- (map (show . _ebPos) $ u ^. uvWorld . cWorld . lWorld . energyBalls)
-- <>
+60 -62
View File
@@ -70,13 +70,13 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 49;" C
AmmoPerShot src/Dodge/Data/Item/Use.hs 162;" t
AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 48;" C
AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" t
AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" t
AnRoom src/Dodge/Annotation/Data.hs 18;" C
AnTree src/Dodge/Annotation/Data.hs 19;" C
Analyser src/Dodge/Placement/Instance/Analyser.hs 1;" m
Annotation src/Dodge/Annotation/Data.hs 14;" t
Annotation src/Dodge/Annotation.hs 3;" m
ApplyGravityPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C
ApplyGravityPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" C
ArbitraryAction src/Dodge/Data/ActionPlan.hs 166;" C
ArbitraryImpulse src/Dodge/Data/ActionPlan.hs 47;" C
ArbitraryImpulseEffect src/Dodge/Data/ActionPlan.hs 48;" C
@@ -161,7 +161,7 @@ BeamShooterParams src/Dodge/Data/Item/Use.hs 93;" C
BeamSimple src/Dodge/Data/Beam.hs 50;" C
BeamType src/Dodge/Data/Beam.hs 46;" t
BecomePowerful src/Dodge/Data/Scenario.hs 9;" C
BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" C
BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C
Bezier src/Geometry/Bezier.hs 1;" m
BezierTrajectory src/Dodge/Data/Bullet.hs 51;" C
BezierTrajectoryType src/Dodge/Data/Bullet.hs 58;" C
@@ -221,7 +221,7 @@ Bullet src/Dodge/Data/Bullet.hs 17;" t
Bullet src/Dodge/Bullet.hs 1;" m
Bullet src/Dodge/Data/Bullet.hs 6;" m
Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m
BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C
BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C
BulletEffect src/Dodge/Data/Bullet.hs 35;" t
BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m
BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t
@@ -295,7 +295,7 @@ ChaseCritters src/Dodge/Data/Creature/State.hs 38;" C
Check src/Framebuffer/Check.hs 1;" m
CheckConsistency src/Dodge/Room/CheckConsistency.hs 1;" m
CheckSlots src/Dodge/Inventory/CheckSlots.hs 1;" m
ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 45;" C
ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C
ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 62;" C
ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" C
ChooseTarget src/Dodge/Creature/ChooseTarget.hs 1;" m
@@ -412,8 +412,8 @@ Craftable src/Dodge/Item/Craftable.hs 1;" m
Create src/Dodge/Projectile/Create.hs 1;" m
Create src/Dodge/Prop/Create.hs 1;" m
Create src/Dodge/Wall/Create.hs 1;" m
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C
CreateShieldWall src/Dodge/Data/Item/Effect.hs 22;" C
Creature src/Dodge/Data/Creature.hs 36;" t
Creature src/Dodge/Creature.hs 1;" m
@@ -492,7 +492,7 @@ DefaultArcStep src/Dodge/Data/ArcStep.hs 23;" C
DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C
DefaultDrawButton src/Dodge/Data/Button.hs 17;" C
DefaultDrawSwitch src/Dodge/Data/Button.hs 18;" C
DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C
DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C
DefaultHeldParams src/Dodge/Data/Item/Use.hs 80;" C
DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C
DefaultRoomType src/Dodge/Data/Room.hs 31;" C
@@ -581,7 +581,7 @@ DrawForceField src/Dodge/Data/Wall.hs 45;" C
DrawNoButton src/Dodge/Data/Button.hs 19;" C
DrawnWall src/Dodge/Data/Wall.hs 41;" C
Drone src/Dodge/Item/Weapon/Drone.hs 1;" m
DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C
DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C
DropAll src/Dodge/Data/Creature/State.hs 24;" C
DropAmount src/Dodge/Data/Creature/State.hs 25;" C
DropItem src/Dodge/Data/ActionPlan.hs 39;" C
@@ -611,7 +611,7 @@ EffectWhileAttached src/Dodge/Data/Item/Effect.hs 25;" C
EffectWhileRoot src/Dodge/Data/Item/Effect.hs 24;" C
EighthRes src/Dodge/Data/Config.hs 97;" C
Eldritch src/Dodge/Data/Scenario.hs 34;" C
ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" C
ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" C
Electronics src/Dodge/Data/Material.hs 11;" C
EllShad src/Picture/Data.hs 39;" C
Enable_debug src/Dodge/Data/Config.hs 68;" C
@@ -652,7 +652,7 @@ Explosion src/Dodge/Data/SoundOrigin.hs 37;" C
Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m
ExplosionPayload src/Dodge/Data/Payload.hs 11;" C
ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 87;" C
ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C
ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C
ExternallyGeneratedSounds src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 2;" m
ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m
Eyes src/Dodge/Data/Creature/Perception.hs 41;" C
@@ -720,7 +720,7 @@ FootForward src/Dodge/Data/Creature/Stance.hs 31;" t
FootstepSound src/Dodge/Data/SoundOrigin.hs 29;" C
ForceField src/Dodge/ForceField.hs 1;" m
ForceField src/Dodge/Wall/ForceField.hs 1;" m
ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" t
ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" t
Foreground src/Dodge/Room/Foreground.hs 1;" m
ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t
ForegroundShape src/Dodge/Data/ForegroundShape.hs 6;" m
@@ -746,10 +746,10 @@ GameOverOptions src/Dodge/Data/Universe.hs 70;" C
GameRoom src/Dodge/GameRoom.hs 15;" t
GameRoom src/Dodge/GameRoom.hs 8;" m
Gas src/Dodge/Gas.hs 1;" m
GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" C
GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C
GasCloud src/Dodge/Data/Cloud.hs 31;" C
GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" t
GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 45;" t
GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" t
GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t
GasParams src/Dodge/Data/Item/Use.hs 115;" C
GasSprayParams src/Dodge/Data/Item/Use.hs 81;" C
GenCr src/Dodge/Data/Creature/State.hs 31;" C
@@ -998,7 +998,7 @@ LaserStart src/Dodge/Data/Laser.hs 21;" t
LaserType src/Dodge/Data/Laser.hs 16;" t
Launcher src/Dodge/Item/Held/Launcher.hs 1;" m
LauncherAI src/Dodge/Data/Creature/Misc.hs 54;" C
LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C
LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C
LauncherCrit src/Dodge/Creature/LauncherCrit.hs 1;" m
LaundrySS src/Dodge/Data/Scenario.hs 115;" C
Layer src/Picture/Data.hs 22;" t
@@ -1465,7 +1465,7 @@ PressPlateId src/Dodge/Data/PressPlate.hs 15;" C
PressType src/Dodge/Data/Input.hs 13;" t
PreviousArcEffect src/Dodge/Data/Item/Params.hs 34;" t
PrimitiveMode src/Shader/Data.hs 99;" t
PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C
PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C
Prison src/Dodge/Data/Scenario.hs 65;" C
Procedural src/Dodge/Room/Procedural.hs 2;" m
Projectile src/Dodge/Data/Projectile.hs 16;" t
@@ -1473,7 +1473,7 @@ Projectile src/Dodge/Data/Projectile.hs 6;" m
Projectile src/Dodge/Projectile.hs 1;" m
ProjectileParams src/Dodge/Data/Item/Use.hs 114;" C
ProjectileType src/Dodge/Data/Projectile.hs 34;" t
ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" t
ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" t
Prop src/Dodge/Data/Prop.hs 18;" t
Prop src/Dodge/Data/Prop.hs 6;" m
Prop src/Dodge/Default/Prop.hs 1;" m
@@ -1574,7 +1574,6 @@ ReactorSS src/Dodge/Data/Scenario.hs 111;" C
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 57;" C
ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C
@@ -1582,7 +1581,7 @@ Reload src/Dodge/Data/ActionPlan.hs 190;" C
ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t
RemoteDetonatorLink src/Dodge/Data/ComposedItem.hs 26;" C
RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 44;" C
RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" C
RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C
RemoteScreenLink src/Dodge/Data/ComposedItem.hs 25;" C
RemoteScreenSF src/Dodge/Data/ComposedItem.hs 42;" C
RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C
@@ -1815,7 +1814,7 @@ Standing src/Dodge/Data/Creature/Stance.hs 25;" C
Start src/Dodge/Room/Start.hs 3;" m
StartNewGame src/Dodge/StartNewGame.hs 1;" m
StartSentinelPost src/Dodge/Data/ActionPlan.hs 153;" C
StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" C
StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C
State src/Dodge/Creature/State.hs 1;" m
State src/Dodge/Data/Creature/State.hs 6;" m
StaticWalls src/Dodge/LevelGen/StaticWalls.hs 5;" m
@@ -1933,7 +1932,7 @@ Text src/Picture/Text.hs 1;" m
TextShad src/Picture/Data.hs 37;" C
ThingsHit src/Dodge/WorldEvent/ThingsHit.hs 6;" m
ThirdPartyLens src/ThirdPartyLens.hs 2;" m
ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C
ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" C
Tile src/Data/Tile.hs 14;" t
Tile src/Data/Tile.hs 3;" m
Tile src/Dodge/Tile.hs 1;" m
@@ -2831,12 +2830,11 @@ _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
_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f
_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f
_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f
_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f
_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f
_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" f
_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" f
_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" f
_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" f
_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" f
_plIDCont src/Dodge/Data/GenWorld.hs 81;" f
_plMID src/Dodge/Data/GenWorld.hs 80;" f
_plOrder src/Dodge/Data/GenWorld.hs 77;" f
@@ -3344,7 +3342,7 @@ airlockSimple src/Dodge/Room/Airlock.hs 66;" f
airlockZ src/Dodge/Room/Airlock.hs 91;" f
allHotkeys src/Dodge/Creature/YourControl.hs 60;" f
allInvLocs src/Dodge/Item/Grammar.hs 256;" f
allVisibleWalls src/Dodge/Base/Collide.hs 132;" f
allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
alongSegBy src/Geometry.hs 43;" f
alteRifle src/Dodge/Item/Held/Cane.hs 65;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 112;" f
@@ -3357,12 +3355,12 @@ angleVV src/Geometry/Vector.hs 57;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 247;" f
anythingHitCirc src/Dodge/Base/Collide.hs 246;" f
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 50;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f
applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 141;" f
@@ -3504,7 +3502,7 @@ boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceDir src/Dodge/Bullet.hs 113;" f
bouncePoint src/Dodge/Base/Collide.hs 88;" f
bouncePoint src/Dodge/Base/Collide.hs 87;" f
boundPoints src/Bound.hs 10;" f
boundedGrid src/Grid.hs 19;" f
boxABC src/Polyhedra.hs 108;" f
@@ -3534,8 +3532,8 @@ cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 7;" f
calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 233;" f
canSeeIndirect src/Dodge/Base/Collide.hs 240;" f
canSee src/Dodge/Base/Collide.hs 232;" f
canSeeIndirect src/Dodge/Base/Collide.hs 239;" f
cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" f
@@ -3584,11 +3582,11 @@ chooseMovementPistol src/Dodge/Humanoid.hs 202;" f
chooseMovementPistol' src/Dodge/Humanoid.hs 207;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f
circCollisionDebugItem src/Dodge/Debug.hs 63;" f
circHitWall src/Dodge/Base/Collide.hs 149;" f
circOnAnyCr src/Dodge/Base/Collide.hs 197;" f
circHitWall src/Dodge/Base/Collide.hs 148;" f
circOnAnyCr src/Dodge/Base/Collide.hs 196;" f
circOnSeg src/Geometry.hs 104;" f
circOnSegNoEndpoints src/Geometry.hs 94;" f
circOnSomeWall src/Dodge/Base/Collide.hs 191;" f
circOnSomeWall src/Dodge/Base/Collide.hs 190;" f
circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f
@@ -3633,10 +3631,10 @@ colSpark src/Dodge/Spark.hs 47;" f
colSparkRandDir src/Dodge/Spark.hs 101;" f
collectDamageTypes src/Dodge/Damage.hs 32;" f
collectInvItems src/Dodge/Update/Input/InGame.hs 281;" f
collideCircWalls src/Dodge/Base/Collide.hs 159;" f
collideCircWalls src/Dodge/Base/Collide.hs 158;" f
collidePoint src/Dodge/Base/Collide.hs 49;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 94;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 108;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 93;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 107;" f
collisionDebugItem src/Dodge/Debug.hs 47;" f
color src/Picture/Base.hs 108;" f
colorLamp src/Dodge/Creature/Lamp.hs 10;" f
@@ -3826,7 +3824,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 181;" 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 +3927,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 109;" 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
@@ -3954,7 +3952,7 @@ displayControls src/Dodge/Menu.hs 206;" f
displayFrameTicks src/Dodge/Render/Picture.hs 39;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 226;" f
displayIndents src/Dodge/DisplayInventory.hs 123;" f
displayPulse src/Dodge/Item/Display.hs 107;" f
displayPulse src/Dodge/Item/Display.hs 106;" f
displaySectionsSizes src/Dodge/DisplayInventory.hs 118;" f
displayTerminalLineString src/Dodge/Update.hs 447;" f
dist src/Geometry/Vector.hs 179;" f
@@ -4043,7 +4041,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 121;" f
doTimeScroll src/Dodge/Update.hs 205;" f
doTmTm src/Dodge/TmTm.hs 6;" f
doTmWdWd src/Dodge/WorldEffect.hs 101;" f
@@ -4250,7 +4248,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 186;" f
explodeShell src/Dodge/Projectile/Update.hs 189;" 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
@@ -4462,11 +4460,11 @@ handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 18;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f
hardQuit src/Dodge/Concurrent.hs 33;" f
hasButtonLOS src/Dodge/Base/Collide.hs 211;" f
hasButtonLOS src/Dodge/Base/Collide.hs 210;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f
hasFrontArmour src/Dodge/Creature/Test.hs 110;" f
hasLOS src/Dodge/Base/Collide.hs 204;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 219;" f
hasLOS src/Dodge/Base/Collide.hs 203;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 218;" f
hat src/Dodge/Item/Equipment.hs 134;" f
head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 140;" f
@@ -4620,7 +4618,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 186;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 172;" f
isValidCommand src/Dodge/Debug/Terminal.hs 128;" f
isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 226;" f
isWalkable src/Dodge/Base/Collide.hs 225;" f
isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 20;" f
itDim src/Dodge/Item/InvSize.hs 21;" f
@@ -4641,7 +4639,7 @@ itemFromEquipType src/Dodge/Item.hs 50;" f
itemFromHeldType src/Dodge/Item/Held.hs 25;" f
itemInfo src/Dodge/Item/Info.hs 13;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemNumberDisplay src/Dodge/Item/Display.hs 90;" f
itemNumberDisplay src/Dodge/Item/Display.hs 89;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f
@@ -4875,7 +4873,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 592;" f
maybeOpenTerminal src/Dodge/Update.hs 122;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f
maybeWarmupStatus src/Dodge/Item/Display.hs 113;" f
maybeWarmupStatus src/Dodge/Item/Display.hs 112;" f
mcApplyDamage src/Dodge/Machine/Update.hs 108;" f
mcKillBut src/Dodge/Machine/Destroy.hs 34;" f
mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f
@@ -5076,10 +5074,10 @@ overPos src/Picture/Base.hs 303;" f
overPosObj src/Shape.hs 276;" f
overPosSH src/Shape.hs 260;" f
overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 138;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 177;" f
overlapCircWalls src/Dodge/Base/Collide.hs 137;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 176;" f
overlapSegCrs src/Dodge/Base/Collide.hs 59;" f
overlapSegWalls src/Dodge/Base/Collide.hs 120;" f
overlapSegWalls src/Dodge/Base/Collide.hs 119;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 172;" f
overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 33;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
@@ -5131,7 +5129,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 166;" 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 +5378,6 @@ 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
reflDirWall src/Dodge/Base/Wall.hs 16;" f
reflVelWall src/Dodge/Base/Wall.hs 24;" f
reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
@@ -5650,7 +5647,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 79;" f
shellMag src/Dodge/Item/Ammo.hs 61;" f
shellModule src/Dodge/Item/Scope.hs 45;" f
shellShape src/Dodge/Projectile/Draw.hs 34;" f
@@ -5696,8 +5693,8 @@ shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 81;" f
shoulderSH src/Dodge/Creature/Picture.hs 139;" f
shoulderSP src/Dodge/Creature/HandPos.hs 170;" f
showAttachItem src/Dodge/Item/Display.hs 70;" f
showEquipItem src/Dodge/Item/Display.hs 82;" f
showAttachItem src/Dodge/Item/Display.hs 69;" f
showEquipItem src/Dodge/Item/Display.hs 81;" f
showInt src/Dodge/Item/Info.hs 30;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showManObj src/Dodge/TestString.hs 79;" f
@@ -6039,7 +6036,8 @@ 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
tryShellBounce src/Dodge/Projectile/Update.hs 97;" f
trySpinByCID src/Dodge/Projectile/Update.hs 148;" 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
@@ -6146,7 +6144,7 @@ updatePosEvents src/Dodge/Update.hs 573;" f
updatePreload src/Preload/Update.hs 20;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 365;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 368;" f
updateProjectile src/Dodge/Projectile/Update.hs 24;" f
updateProjectile src/Dodge/Projectile/Update.hs 25;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 22;" f
updateRBList src/Dodge/Inventory/RBList.hs 16;" f
@@ -6260,7 +6258,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 307;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 129;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 144;" f
violet src/Color.hs 21;" f
visibleWalls src/Dodge/Base/Collide.hs 124;" f
visibleWalls src/Dodge/Base/Collide.hs 123;" f
visionCheck src/Dodge/Creature/Perception.hs 152;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f
volleyGun src/Dodge/Item/Held/Cane.hs 31;" f