Simplify explosions

This commit is contained in:
2025-12-05 12:05:30 +00:00
parent 4777b94dfc
commit a4f8369420
4 changed files with 83 additions and 78 deletions
+4 -13
View File
@@ -53,7 +53,6 @@ makeTeslaExplosionAt = undefined
-- [1 .. 29]
makeFlameExplosionAt ::
-- | Position
Point2 ->
World ->
World
@@ -66,9 +65,6 @@ makeFlameExplosionAt p w =
velocities = replicateM 15 (randInCirc 1) & evalState $ _randGen w
timers = randomRs (80, 100) $ _randGen w
-- the ( Nthing :: Maybe Int ) here is "maybe" a creature id that the
-- particle passes through for the first frame of its existence
makeExplosionAt :: Point3 -> Point3 -> World -> World
makeExplosionAt p vel w =
w
@@ -78,15 +74,10 @@ makeExplosionAt p vel w =
.:~ MakeTempLight (LSParam p 150 (V3 1 0.5 0)) 20
& makeShockwaveAt [] p 50 100 1 white
where
fVs = fmap (`v2z` 0) $ replicateM 100 (randInCirc 1) & evalState $ _randGen w
fPs' = fmap (`v2z` 0) $ replicateM 100 (randInCirc 5) & evalState $ _randGen w
fVs = fmap (`v2z` 0) $ replicateM 100 (randInCirc 8) & evalState $ _randGen w
fdamps = replicateM 100 (state $ randomR (0,1)) & evalState $ _randGen w
inversePushOut v = (15 - norm v) * 0.01 *^ v
fVs' = zipWith (+.+.+) fVs $ map inversePushOut fPs'
sizes = randomRs (2, 9) $ _randGen w
times = randomRs (15, 20) $ _randGen w
mF q v damp size time = makeFlamelet
--(q - (2*v + 2* vel)) (v + damp *.*.* vel) size time
(q - (2*v )) (v + damp *.*.* vel) size time
newFs = zipWith4 (mF p) (zipWith (+) fPs' (fmap (3 *.*.*) fVs')) fdamps sizes times
addFlames w' = foldl' (flip ($)) w' newFs
mF v damp size time = makeFlamelet p (v + damp *^ vel) size time
newFs = zipWith4 mF fVs fdamps sizes times
addFlames w' = foldl' (&) w' newFs
+7 -1
View File
@@ -11,12 +11,14 @@ module Dodge.WorldEvent.ThingsHit (
thingsHitExceptCr,
crsHitRadial,
wlsHitRadial,
wlHitPos,
crHit,
crWlPbHit,
wlsHitUnsorted,
isWalkable,
) where
import ListHelp
import Control.Applicative
import Dodge.Wall.Pathing
import Data.Monoid
@@ -28,7 +30,7 @@ import Control.Monad
import Control.Lens
import Data.Bifunctor
import qualified Data.IntSet as IS
import Data.List (sortOn)
--import Data.List (sortOn)
import Data.Maybe
import Dodge.Base
import Dodge.Data.World
@@ -139,6 +141,10 @@ thingsHitExceptCr (Just cid) sp ep = filter t . thingsHit sp ep
wlsHit :: Point2 -> Point2 -> World -> [(Point2, Wall)]
wlsHit sp ep = sortOn (dist sp . fst) . wlsHitUnsorted sp ep
---- pushes out any hit point by one
wlHitPos :: Point2 -> Point2 -> World -> Point2
wlHitPos sp ep = maybe ep ((+ normalize (ep - sp)) . fst) . safeHead . wlsHit sp ep
wlsHitUnsorted :: Point2 -> Point2 -> World -> [(Point2, Wall)]
wlsHitUnsorted sp ep
| sp == ep = const mempty
+1
View File
@@ -66,6 +66,7 @@ xs !? n
{-# INLINABLE (!?) #-}
safeHead :: [a] -> Maybe a
{-# INLINE safeHead #-}
safeHead (x:_) = Just x
safeHead _ = Nothing
+71 -64
View File
@@ -130,6 +130,7 @@ Block src/Dodge/Data/Block.hs 20;" t
BlockDebris src/Dodge/Data/Prop.hs 23;" C
BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 30;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C
BlockStatus src/Dodge/Data/Universe.hs 101;" t
BlockedLink src/Dodge/Data/Room.hs 50;" C
BloomLayer src/Picture/Data.hs 21;" C
Blunt src/Dodge/Data/Damage.hs 17;" C
@@ -572,7 +573,7 @@ InputScreen src/Dodge/Data/Universe.hs 95;" C
Inspect_wall src/Dodge/Data/Config.hs 105;" C
Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 21;" t
IntID src/Dodge/Data/Universe.hs 117;" t
IntID src/Dodge/Data/Universe.hs 123;" t
Intention src/Dodge/Data/Creature.hs 68;" t
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C
IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C
@@ -666,6 +667,9 @@ LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t
ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t
LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 150;" C
LivingComplex src/Dodge/Data/Scenario.hs 68;" C
LoadReady src/Dodge/Data/Universe.hs 104;" C
LoadWaiting src/Dodge/Data/Universe.hs 103;" C
LoadWaitingClicked src/Dodge/Data/Universe.hs 102;" C
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C
LoadingScreen src/Dodge/Data/Universe.hs 96;" C
LocDT src/Dodge/Data/DoubleTree.hs 99;" C
@@ -689,9 +693,9 @@ MICROCHIP src/Dodge/Data/Item/Combine.hs 71;" C
MICROPHONE src/Dodge/Data/Item/Combine.hs 82;" C
MINIDISPLAY src/Dodge/Data/Item/Combine.hs 76;" C
MINIGUNX src/Dodge/Data/Item/Combine.hs 150;" C
MODBlockedString src/Dodge/Data/Universe.hs 103;" C
MODString src/Dodge/Data/Universe.hs 102;" C
MODStringOption src/Dodge/Data/Universe.hs 104;" C
MODBlockedString src/Dodge/Data/Universe.hs 109;" C
MODString src/Dodge/Data/Universe.hs 108;" C
MODStringOption src/Dodge/Data/Universe.hs 110;" C
MOTOR src/Dodge/Data/Item/Combine.hs 63;" C
MPO src/Dodge/Base/Collide.hs 96;" t
MTRS src/Dodge/Data/MTRS.hs 6;" t
@@ -740,8 +744,8 @@ Medium src/Shape/Data.hs 25;" C
Melee src/Dodge/Data/ActionPlan.hs 40;" C
MeleeStrike src/Dodge/Data/ActionPlan.hs 144;" C
Memory src/Dodge/Data/Creature.hs 75;" t
MenuOption src/Dodge/Data/Universe.hs 106;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 101;" t
MenuOption src/Dodge/Data/Universe.hs 112;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 107;" t
MetaBranch src/Dodge/Data/MetaTree.hs 18;" t
MetaNode src/Dodge/Data/MetaTree.hs 14;" t
MetaTree src/Dodge/Data/MetaTree.hs 11;" t
@@ -1328,8 +1332,8 @@ ToPlaySound src/Sound/Data.hs 33;" t
ToStart src/Sound/Data.hs 24;" C
ToStartMenu src/Sound/Data.hs 27;" C
ToStop src/Sound/Data.hs 26;" C
Toggle src/Dodge/Data/Universe.hs 107;" C
Toggle2 src/Dodge/Data/Universe.hs 111;" C
Toggle src/Dodge/Data/Universe.hs 113;" C
Toggle2 src/Dodge/Data/Universe.hs 117;" C
ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C
TopDT src/Dodge/Data/DoubleTree.hs 83;" C
TopLDT src/Dodge/Data/DoubleTree.hs 41;" C
@@ -1999,13 +2003,13 @@ _meleeCooldown src/Dodge/Data/Creature/Misc.hs 68;" f
_meleeTarget src/Dodge/Data/ActionPlan.hs 139;" f
_mgField src/Dodge/Data/Magnet.hs 23;" f
_mgPos src/Dodge/Data/Magnet.hs 22;" f
_moEff src/Dodge/Data/Universe.hs 108;" f
_moEff1 src/Dodge/Data/Universe.hs 112;" f
_moEff2 src/Dodge/Data/Universe.hs 113;" f
_moString src/Dodge/Data/Universe.hs 109;" f
_moString src/Dodge/Data/Universe.hs 114;" f
_modOption src/Dodge/Data/Universe.hs 104;" f
_modString src/Dodge/Data/Universe.hs 102;" f
_moEff src/Dodge/Data/Universe.hs 114;" f
_moEff1 src/Dodge/Data/Universe.hs 118;" f
_moEff2 src/Dodge/Data/Universe.hs 119;" f
_moString src/Dodge/Data/Universe.hs 115;" f
_moString src/Dodge/Data/Universe.hs 120;" f
_modOption src/Dodge/Data/Universe.hs 110;" f
_modString src/Dodge/Data/Universe.hs 108;" f
_modifications src/Dodge/Data/LWorld.hs 129;" f
_mouseButtons src/Dodge/Data/Input.hs 38;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f
@@ -2206,7 +2210,7 @@ _rsRad src/Dodge/Data/RadarSweep.hs 19;" f
_rsSource src/Dodge/Data/RadarSweep.hs 24;" f
_rsTimer src/Dodge/Data/RadarSweep.hs 21;" f
_scAvailableLines src/Dodge/Data/Universe.hs 92;" f
_scContinue src/Dodge/Data/Universe.hs 98;" f
_scBlockStatus src/Dodge/Data/Universe.hs 98;" f
_scDisplayTime src/Dodge/Data/Universe.hs 93;" f
_scInput src/Dodge/Data/Universe.hs 95;" f
_scOffset src/Dodge/Data/Universe.hs 88;" f
@@ -2917,7 +2921,7 @@ crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f
crHasTarget src/Dodge/Creature/Test.hs 65;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 68;" f
crHeight src/Dodge/Base/Collide.hs 173;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 119;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 121;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f
crInAimStance src/Dodge/Creature/Test.hs 93;" f
@@ -2948,7 +2952,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 57;" f
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f
crZoneSize src/Dodge/Zoning/Creature.hs 43;" f
craftInfo src/Dodge/Item/Info.hs 169;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f
@@ -2976,9 +2980,9 @@ critsRoom src/Dodge/Room/Room.hs 398;" f
crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f
crossPic src/Dodge/Render/Label.hs 27;" f
crossProd src/Geometry/Vector3D.hs 41;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 67;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 162;" f
crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 78;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 69;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f
crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 80;" f
crsItmsUnused src/Dodge/Room/Containing.hs 45;" f
crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f
crsNearPoint src/Dodge/Zoning/Creature.hs 18;" f
@@ -3031,7 +3035,7 @@ damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 34;" f
damageWall src/Dodge/Wall/Damage.hs 29;" f
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
dark src/Color.hs 108;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 40;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 44;" f
dbArg src/Dodge/Base.hs 165;" f
dbArgChain src/Dodge/Base.hs 170;" f
dbwMuzzles src/Dodge/HeldUse.hs 322;" f
@@ -3203,7 +3207,7 @@ doGravityPU src/Dodge/Projectile/Update.hs 35;" f
doHeldUseEffect src/Dodge/HeldUse.hs 351;" f
doInPlacements src/Dodge/Layout.hs 87;" f
doIndividualPlacements src/Dodge/Layout.hs 101;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 29;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 38;" f
doItemTimeScroll src/Dodge/Update.hs 193;" f
doLoop src/Loop.hs 60;" f
doMagnetBuBu src/Dodge/Bullet.hs 35;" f
@@ -3296,7 +3300,7 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f
drawGapPlus src/Dodge/Render/Picture.hs 278;" f
drawGib src/Dodge/Prop/Draw.hs 26;" f
drawHUD src/Dodge/Render/HUD.hs 52;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 27;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 31;" f
drawInspectWall src/Dodge/Debug/Picture.hs 255;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 243;" f
drawInventory src/Dodge/Render/HUD.hs 59;" f
@@ -3312,18 +3316,18 @@ drawList src/Dodge/Render/List.hs 209;" f
drawListElement src/Dodge/Render/List.hs 187;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 96;" f
drawListYoff src/Dodge/Render/List.hs 93;" f
drawLoadingScreen src/Dodge/Render/MenuScreen.hs 22;" f
drawLoadingScreen src/Dodge/Render/MenuScreen.hs 23;" f
drawMachine src/Dodge/Machine/Draw.hs 16;" f
drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f
drawMapperInventory src/Dodge/Render/HUD.hs 174;" f
drawMenuClick src/Dodge/Render/Picture.hs 166;" f
drawMenuCursor src/Dodge/Render/Picture.hs 178;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 17;" f
drawMouseCursor src/Dodge/Render/Picture.hs 83;" f
drawMouseOver src/Dodge/Render/HUD.hs 110;" f
drawMousePosition src/Dodge/Debug/Picture.hs 376;" f
drawOptions src/Dodge/Render/MenuScreen.hs 30;" f
drawOptions src/Dodge/Render/MenuScreen.hs 34;" f
drawPathBetween src/Dodge/Debug/Picture.hs 202;" f
drawPathEdge src/Dodge/Debug/Picture.hs 260;" f
drawPathing src/Dodge/Debug/Picture.hs 407;" f
@@ -3357,7 +3361,7 @@ drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f
drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f
drawText src/Picture/Base.hs 220;" f
drawTitle src/Dodge/Render/MenuScreen.hs 43;" f
drawTitle src/Dodge/Render/MenuScreen.hs 47;" f
drawTitleBackground src/Dodge/Render/List.hs 45;" f
drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f
drawTurret src/Dodge/Machine/Draw.hs 76;" f
@@ -3440,7 +3444,7 @@ equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f
errorAngleVV src/Geometry.hs 59;" f
errorClosestPointOnLine src/Geometry.hs 71;" f
errorClosestPointOnLineParam src/Geometry.hs 77;" f
errorHead src/ListHelp.hs 76;" f
errorHead src/ListHelp.hs 77;" f
errorIsLHS src/Geometry.hs 65;" f
errorNormalizeV src/Geometry.hs 54;" f
errorPointInPolygon src/Geometry.hs 46;" f
@@ -3477,7 +3481,7 @@ findReverseEdge src/Polyhedra.hs 50;" f
findReverseEdgeList src/Polyhedra.hs 57;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 27;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
findWithIx src/ListHelp.hs 123;" f
findWithIx src/ListHelp.hs 124;" f
fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 564;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f
@@ -3516,7 +3520,7 @@ foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f
foldMTRS src/Dodge/Room/Tutorial.hs 65;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
foldrWhileArb src/ListHelp.hs 111;" f
followImpulse src/Dodge/Creature/Impulse.hs 24;" f
foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f
foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f
@@ -3812,7 +3816,7 @@ isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 77;" f
isCornerLink src/Dodge/RoomLink.hs 65;" f
isElectrical src/Dodge/Machine/Update.hs 84;" f
isFlyable src/Dodge/WorldEvent/ThingsHit.hs 170;" f
isFlyable src/Dodge/WorldEvent/ThingsHit.hs 176;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 161;" f
isJust' src/MaybeHelp.hs 27;" f
@@ -3833,7 +3837,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/WorldEvent/ThingsHit.hs 177;" f
isWalkable src/Dodge/WorldEvent/ThingsHit.hs 183;" f
isoMatrix src/MatrixHelper.hs 35;" f
isotriBWH src/Geometry/Polygon.hs 22;" f
itDim src/Dodge/Item/InvSize.hs 21;" f
@@ -3927,7 +3931,7 @@ lastMap src/Dodge/DoubleTree.hs 253;" f
latticeXsYs src/Grid.hs 24;" f
launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 40;" f
ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 75;" f
ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 84;" f
ldtIL src/Dodge/DoubleTree.hs 225;" f
ldtPropagate src/Dodge/DoubleTree.hs 69;" f
ldtPropagate' src/Dodge/DoubleTree.hs 60;" f
@@ -3985,6 +3989,7 @@ loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
loadSounds src/Dodge/SoundLogic/LoadSound.hs 18;" f
loadingScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 30;" f
loadme src/Dodge/Debug/Terminal.hs 142;" f
locDTGoHelp src/Dodge/DoubleTree.hs 348;" f
locDTGoLeft src/Dodge/DoubleTree.hs 329;" f
@@ -4055,7 +4060,7 @@ makeDebris src/Dodge/Block/Debris.hs 48;" f
makeDebrisDirected src/Dodge/Block/Debris.hs 51;" f
makeDoorDebris src/Dodge/Block/Debris.hs 26;" f
makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 72;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 68;" f
makeFlak src/Dodge/Bullet.hs 146;" f
makeFlame src/Dodge/Flame.hs 46;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 55;" f
@@ -4099,6 +4104,7 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f
maxShowX src/Dodge/Combine/Graph.hs 48;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 59;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 64;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 562;" f
@@ -4136,9 +4142,9 @@ memoTopPrismEdgeIndices src/Shader/Poke.hs 329;" f
memoTopPrismIndices src/Shader/Poke.hs 317;" f
menuLDP src/Dodge/ListDisplayParams.hs 52;" f
menuOptionToSelectionItem src/Dodge/Menu/Option.hs 91;" f
merge src/ListHelp.hs 83;" f
mergeBy src/ListHelp.hs 86;" f
mergeOn src/ListHelp.hs 93;" f
merge src/ListHelp.hs 84;" f
mergeBy src/ListHelp.hs 87;" f
mergeOn src/ListHelp.hs 94;" f
mergeSound src/Sound.hs 59;" f
metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f
metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
@@ -4187,7 +4193,7 @@ mntLSOn src/Dodge/Placement/Instance/LightSource.hs 31;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 143;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 148;" f
modTo src/Geometry/Zone.hs 18;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 61;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 70;" f
mouseCursorType src/Dodge/Render/Picture.hs 90;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 37;" f
moveBullet src/Dodge/Bullet.hs 197;" f
@@ -4278,8 +4284,8 @@ onXY src/Geometry/Vector3D.hs 130;" f
oneH src/Dodge/Creature/Test.hs 96;" f
openConsole src/Dodge/Update.hs 131;" f
optionMenu src/Dodge/Menu.hs 112;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 53;" f
optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 44;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f
optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 53;" f
optionValueOffset src/Dodge/Menu/Option.hs 86;" f
optionsOptions src/Dodge/Menu.hs 115;" f
optionsToSelections src/Dodge/Menu/Option.hs 47;" f
@@ -4333,7 +4339,7 @@ pauseMenuOptions src/Dodge/Menu.hs 66;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f
pauseTime src/Dodge/Update.hs 182;" f
pbFlicker src/Dodge/Update.hs 465;" f
pbsHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f
pbsHit src/Dodge/WorldEvent/ThingsHit.hs 97;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 214;" f
@@ -4736,7 +4742,7 @@ safeMinimumOnMaybeF src/FoldableHelp.hs 39;" f
safeMinimumOnMaybeL src/FoldableHelp.hs 57;" f
safeNormalizeV src/Geometry/Vector.hs 165;" f
safeSwapKeys src/IntMapHelp.hs 78;" f
safeUncons src/ListHelp.hs 72;" f
safeUncons src/ListHelp.hs 73;" f
safeUpdateSingleNode src/TreeHelp.hs 116;" f
saveConfig src/Dodge/Config.hs 23;" f
saveQuit src/Dodge/Menu.hs 79;" f
@@ -4825,7 +4831,7 @@ setOutLinksPD src/Dodge/RoomLink.hs 95;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f
setRoomInt src/Dodge/Room/Tutorial.hs 72;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 88;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f
setShaderSource src/Shader/Compile.hs 121;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
setSoundVolume src/Sound.hs 157;" f
@@ -4908,9 +4914,9 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 53;" f
showManObj src/Dodge/TestString.hs 48;" f
showTerminalError src/Dodge/Debug/Terminal.hs 80;" f
showTimeFlow src/Dodge/TestString.hs 76;" f
showTimeFlow src/Dodge/TestString.hs 71;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 175;" f
shrinkVert src/Geometry/Polygon.hs 179;" f
shuffle src/RandomHelp.hs 49;" f
@@ -4933,7 +4939,7 @@ skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 524;" f
slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 690;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f
slideWindow src/ListHelp.hs 80;" f
slideWindow src/ListHelp.hs 81;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f
@@ -5029,11 +5035,11 @@ startCrafts src/Dodge/Room/Start.hs 93;" f
startDrag src/Dodge/Update/Input/InGame.hs 280;" f
startInvList src/Dodge/Creature.hs 105;" f
startInventory src/Dodge/Creature.hs 108;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 17;" f
startPara src/Dodge/StartNewGame.hs 30;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f
startPara src/Dodge/StartNewGame.hs 29;" f
startRoom src/Dodge/Room/Start.hs 53;" f
startSeedGame src/Dodge/StartNewGame.hs 22;" f
startSeedGameConc src/Dodge/StartNewGame.hs 38;" f
startSeedGame src/Dodge/StartNewGame.hs 21;" f
startSeedGameConc src/Dodge/StartNewGame.hs 46;" f
statsModifier src/Dodge/Creature/Info.hs 16;" f
stickHitSound src/Dodge/Projectile/Update.hs 77;" f
stickyMod src/Dodge/Item/Scope.hs 51;" f
@@ -5077,8 +5083,8 @@ takeOne src/RandomHelp.hs 22;" f
takeOneMore src/RandomHelp.hs 34;" f
takeOneWeighted src/RandomHelp.hs 25;" f
takeUntil src/FoldableHelp.hs 99;" f
takeWhileArb src/ListHelp.hs 99;" f
takeWhileArb' src/ListHelp.hs 107;" f
takeWhileArb src/ListHelp.hs 100;" f
takeWhileArb' src/ListHelp.hs 108;" f
tankShape src/Dodge/Placement/Instance/Tank.hs 22;" f
tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f
tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f
@@ -5132,11 +5138,11 @@ thickCircle src/Picture/Base.hs 272;" f
thickLine src/Picture/Base.hs 244;" f
thickLineCol src/Picture/Base.hs 255;" f
thinHighBar src/Dodge/Room/Foreground.hs 77;" f
thingHit src/Dodge/WorldEvent/ThingsHit.hs 116;" f
thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 104;" f
thingsHit src/Dodge/WorldEvent/ThingsHit.hs 42;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 125;" f
thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 50;" f
thingHit src/Dodge/WorldEvent/ThingsHit.hs 118;" f
thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 106;" f
thingsHit src/Dodge/WorldEvent/ThingsHit.hs 44;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 127;" f
thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 52;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwItem src/Dodge/Creature/Action.hs 191;" f
tileTexCoords src/Tile.hs 11;" f
@@ -5183,7 +5189,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f
topInvW src/Dodge/ListDisplayParams.hs 49;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 49;" f
topTestPart src/Dodge/TestString.hs 44;" f
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
torqueAmount src/Dodge/HeldUse.hs 581;" f
torqueCr src/Dodge/WorldEffect.hs 77;" f
@@ -5406,7 +5412,7 @@ updateUniverseFirst src/Dodge/Update.hs 85;" f
updateUniverseLast src/Dodge/Update.hs 136;" f
updateUniverseMid src/Dodge/Update.hs 156;" f
updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f
updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f
@@ -5528,6 +5534,7 @@ windowXFloat src/Dodge/Data/Config.hs 72;" f
windowYFloat src/Dodge/Data/Config.hs 74;" f
withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 157;" f
wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 145;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f
wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f
@@ -5538,14 +5545,14 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f
wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 139;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 147;" f
wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 142;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 141;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 153;" f
wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 148;" f
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f
wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f
wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f
wordsBy src/ListHelp.hs 116;" f
wordsBy src/ListHelp.hs 117;" f
worldPosToResOffset src/Dodge/Base/Coordinate.hs 29;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 22;" f
worldSPic src/Dodge/Render/ShapePicture.hs 22;" f