Fix more edge cases in circle collision

This commit is contained in:
2024-12-25 10:14:13 +00:00
parent 1a3ccbaead
commit aec56f4977
4 changed files with 139 additions and 110 deletions
+18 -12
View File
@@ -18,7 +18,7 @@ module Dodge.Base.Collide (
collideCircWalls,
overlapSegWalls,
overlapSegCrs,
bounceBall,
-- bounceBall,
bouncePoint,
circOnSomeWall,
circOnAnyCr,
@@ -75,15 +75,15 @@ doBounce x sp ep (p, mwl) =
, reflVelWallDamp x wl (ep -.- sp)
)
bounceBall ::
Float ->
Point2 ->
Point2 ->
Float ->
[Wall] ->
Maybe (Point2, Point2)
{-# INLINE bounceBall #-}
bounceBall x sp ep r = doBounce x sp ep . collideCircWalls sp ep r
--bounceBall ::
-- Float ->
-- Point2 ->
-- Point2 ->
-- Float ->
-- [Wall] ->
-- Maybe (Point2, Point2)
--{-# INLINE bounceBall #-}
--bounceBall x sp ep r = doBounce x sp ep . collideCircWalls sp ep r
bouncePoint :: (Wall -> Bool) -> Float -> Point2 -> Point2 -> World -> Maybe (Point2, Point2)
{-# INLINE bouncePoint #-}
@@ -146,6 +146,11 @@ overlapCircWalls p r = mapMaybe dointersect
dointersect wl = f (_wlLine wl) <&> (,wl)
f (a, b) = intersectSegSeg p (p +.+ r *.* normalizeV ((0.5 *.* (a +.+ b)) -.- p)) a b
circHitWall :: Point2 -> Point2 -> Float -> World -> Bool
circHitWall sp ep r w = any (uncurry (intersectSegSegTest sp ep) . _wlLine)
(wlsNearSeg sp ep w)
|| any (uncurry (circOnSeg ep r) . _wlLine) (wlsNearPoint ep w)
-- | note that this does not push the circle away from the wall at all
collideCircWalls :: Point2 -> Point2 -> Float -> [Wall] -> (Point2, Maybe Wall)
{-# INLINE collideCircWalls #-}
@@ -241,7 +246,8 @@ canSeeIndirect i j w = hasLOSIndirect ipos jpos w
jpos = w ^?! cWorld . lWorld . creatures . ix j . crPos
anythingHitCirc :: Float -> Point2 -> Point2 -> World -> Bool
anythingHitCirc rad sp ep w = hitCr || isJust (sequence hitWl)
--anythingHitCirc rad sp ep w = hitCr || isJust (sequence hitWl)
anythingHitCirc rad sp ep w = hitCr || circHitWall sp ep rad w
where
x = rad *.* normalizeV (ep - sp)
xsp = sp - x
@@ -253,6 +259,6 @@ anythingHitCirc rad sp ep w = hitCr || isJust (sequence hitWl)
(\cr -> null $ intersectCircSeg (_crPos cr) (rad + _crRad cr) sp ep)
(w ^? cWorld . lWorld . creatures . ix cid)
|| bl
hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w
-- hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w
-- this should probably be wallsOnLine or something
+17
View File
@@ -1,6 +1,8 @@
module Dodge.Update.Input.DebugTest (
doDebugTest,
doDebugTest2,
doDebugTestF6,
doDebugTestF7,
) where
import Control.Lens
@@ -26,3 +28,18 @@ doDebugTest uv = fromMaybe uv $ do
doDebugTest2 :: Universe -> Universe
doDebugTest2 = uvDebugFloat1 .~ 20
doDebugTestF6 :: Universe -> Universe
doDebugTestF6 = uvIOEffects %~ \f u -> do
writeFile "log/heldL" $ show $ u ^. uvWorld . input . heldWorldPos . at ButtonLeft
writeFile "log/heldR" $ show $ u ^. uvWorld . input . heldWorldPos . at ButtonRight
f u
doDebugTestF7 :: Universe -> Universe
doDebugTestF7 = uvIOEffects %~ \f u -> do
l <- readFile "log/heldL"
r <- readFile "log/heldR"
f $ u
& uvWorld . input . heldWorldPos . at ButtonLeft .~ read l
& uvWorld . input . heldWorldPos . at ButtonRight .~ read r
+2
View File
@@ -350,6 +350,8 @@ updateFunctionKey uv sc InitialPress = case sc of
ScancodeF2 -> pauseAndFloatCam uv
ScancodeF5 -> doQuicksave uv
ScancodeF9 -> doQuickload uv
ScancodeF6 -> doDebugTestF6 uv
ScancodeF7 -> doDebugTestF7 uv
ScancodeEscape -> pauseGame uv
_ -> uv
updateFunctionKey uv ScancodeF3 _ = doDebugTest uv
+102 -98
View File
@@ -197,7 +197,7 @@ BoostPropIX src/Dodge/Data/Item/Params.hs 29;" C
Booster src/Dodge/Item/Equipment/Booster.hs 1;" m
Boosting src/Dodge/Data/Creature/Stance.hs 28;" C
Boss src/Dodge/Room/Boss.hs 2;" m
BottomEscapeMenuOption src/Dodge/Data/Universe.hs 74;" C
BottomEscapeMenuOption src/Dodge/Data/Universe.hs 75;" C
BounceBullet src/Dodge/Data/Bullet.hs 37;" C
Bound src/Bound.hs 1;" m
Bound_box_screen src/Dodge/Data/Config.hs 81;" C
@@ -477,14 +477,14 @@ DeathTime src/Dodge/Data/World.hs 59;" C
Debris src/Dodge/Block/Debris.hs 1;" m
Debug src/Dodge/Debug.hs 2;" m
DebugBool src/Dodge/Data/Config.hs 66;" t
DebugInfo src/Dodge/Data/Universe.hs 54;" t
DebugIntMInt src/Dodge/Data/Universe.hs 59;" C
DebugItem src/Dodge/Data/Universe.hs 48;" t
DebugInfo src/Dodge/Data/Universe.hs 55;" t
DebugIntMInt src/Dodge/Data/Universe.hs 60;" C
DebugItem src/Dodge/Data/Universe.hs 49;" t
DebugLayer src/Picture/Data.hs 27;" C
DebugMInt src/Dodge/Data/Universe.hs 58;" C
DebugMInt src/Dodge/Data/Universe.hs 59;" C
DebugTest src/Dodge/Update/Input/DebugTest.hs 1;" m
DebugV2 src/Dodge/Data/Universe.hs 57;" C
DebugV3 src/Dodge/Data/Universe.hs 56;" C
DebugV2 src/Dodge/Data/Universe.hs 58;" C
DebugV3 src/Dodge/Data/Universe.hs 57;" C
DecorationShape src/Dodge/Data/GenParams.hs 20;" t
Default src/Dodge/Default.hs 7;" m
Default src/Dodge/Tesla/Arc/Default.hs 1;" m
@@ -645,7 +645,7 @@ Equipment src/Dodge/Item/Equipment.hs 1;" m
EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 18;" t
EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 32;" C
Escape src/Dodge/Data/Scenario.hs 10;" C
EscapeMenuOption src/Dodge/Data/Universe.hs 73;" t
EscapeMenuOption src/Dodge/Data/Universe.hs 74;" t
Essential src/Shape/Data.hs 34;" C
Euse src/Dodge/Data/Item/HeldUse.hs 19;" t
Euse src/Dodge/Euse.hs 1;" m
@@ -744,7 +744,7 @@ GLHelp src/GLHelp.hs 1;" m
GRAPECANNON src/Dodge/Data/Item/Combine.hs 128;" C
GREEN src/Color/Data.hs 16;" C
GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 33;" C
GameOverOptions src/Dodge/Data/Universe.hs 69;" C
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
@@ -814,7 +814,7 @@ HammerTrigger src/Dodge/Data/Item/Use.hs 68;" C
HammerType src/Dodge/Data/Hammer.hs 12;" t
HammerUp src/Dodge/Data/Hammer.hs 20;" C
HandPos src/Dodge/Creature/HandPos.hs 1;" m
HardQuit src/Dodge/Data/Universe.hs 67;" C
HardQuit src/Dodge/Data/Universe.hs 68;" C
HasHammer src/Dodge/Data/Hammer.hs 14;" C
HeavySmokeFlare src/Dodge/Data/Item/Use.hs 136;" C
Held src/Dodge/Item/Held.hs 1;" m
@@ -891,14 +891,14 @@ Input src/Dodge/Data/Input.hs 6;" m
Input src/Dodge/Event/Input.hs 3;" m
Input src/Dodge/Update/Input.hs 1;" m
InputFocus src/Dodge/InputFocus.hs 1;" m
InputScreen src/Dodge/Data/Universe.hs 90;" C
InputScreen src/Dodge/Data/Universe.hs 91;" C
Inspect_wall src/Dodge/Data/Config.hs 91;" C
Instance src/Dodge/Item/Instance.hs 1;" m
Instance src/Dodge/Placement/Instance.hs 1;" m
Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 18;" t
IntAnno src/Dodge/Annotation/Data.hs 17;" C
IntID src/Dodge/Data/Universe.hs 111;" t
IntID src/Dodge/Data/Universe.hs 112;" t
IntImp src/Dodge/Data/CreatureEffect.hs 20;" t
IntMapHelp src/IntMapHelp.hs 8;" m
Intention src/Dodge/Data/Creature.hs 79;" t
@@ -1043,7 +1043,7 @@ LoadSeed src/Dodge/LoadSeed.hs 1;" m
LoadSound src/Dodge/SoundLogic/LoadSound.hs 1;" m
Loading src/Dodge/Menu/Loading.hs 1;" m
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C
LoadingScreen src/Dodge/Data/Universe.hs 70;" C
LoadingScreen src/Dodge/Data/Universe.hs 71;" C
LocLDT src/Dodge/Data/DoubleTree.hs 67;" C
Location src/Dodge/Data/Item/Location.hs 6;" m
Location src/Dodge/Inventory/Location.hs 1;" m
@@ -1077,9 +1077,9 @@ MICROCHIP src/Dodge/Data/Item/Combine.hs 49;" C
MICROPHONE src/Dodge/Data/Item/Combine.hs 61;" C
MINIDISPLAY src/Dodge/Data/Item/Combine.hs 54;" C
MINIGUNX src/Dodge/Data/Item/Combine.hs 129;" C
MODBlockedString src/Dodge/Data/Universe.hs 97;" C
MODString src/Dodge/Data/Universe.hs 96;" C
MODStringOption src/Dodge/Data/Universe.hs 98;" C
MODBlockedString src/Dodge/Data/Universe.hs 98;" C
MODString src/Dodge/Data/Universe.hs 97;" C
MODStringOption src/Dodge/Data/Universe.hs 99;" C
MOTOR src/Dodge/Data/Item/Combine.hs 41;" C
MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t
MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C
@@ -1142,8 +1142,8 @@ Memory src/Dodge/Data/Creature/Memory.hs 13;" t
Memory src/Dodge/Creature/Memory.hs 1;" m
Memory src/Dodge/Data/Creature/Memory.hs 6;" m
Menu src/Dodge/Menu.hs 1;" m
MenuOption src/Dodge/Data/Universe.hs 100;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 95;" t
MenuOption src/Dodge/Data/Universe.hs 101;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 96;" t
MenuScreen src/Dodge/Render/MenuScreen.hs 2;" m
MetaBranch src/Dodge/Data/MetaTree.hs 16;" t
MetaBranch src/Dodge/Tree/Compose/Data.hs 10;" t
@@ -1225,7 +1225,7 @@ NewID src/Dodge/Base/NewID.hs 1;" m
NewInt src/NewInt.hs 15;" t
NewInt src/NewInt.hs 7;" m
NewIntMap src/NewInt.hs 18;" t
NewSideEffect src/Dodge/Data/Universe.hs 62;" C
NewSideEffect src/Dodge/Data/Universe.hs 63;" C
NextArcStep src/Dodge/Data/ArcStep.hs 21;" t
Ngon src/Dodge/Room/Ngon.hs 1;" m
NoAction src/Dodge/Data/ActionPlan.hs 152;" C
@@ -1238,11 +1238,11 @@ NoCrImp src/Dodge/Data/CreatureEffect.hs 24;" C
NoCrWdImp src/Dodge/Data/CreatureEffect.hs 14;" C
NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C
NoDamageEffect src/Dodge/Data/Damage.hs 29;" C
NoDebugInfo src/Dodge/Data/Universe.hs 55;" C
NoDebugInfo src/Dodge/Data/Universe.hs 56;" C
NoDelay src/Dodge/Data/Item/HeldDelay.hs 14;" C
NoDropEffect src/Dodge/Data/Item/Effect.hs 28;" C
NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" C
NoEscapeMenuOption src/Dodge/Data/Universe.hs 76;" C
NoEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C
NoFaction src/Dodge/Data/Creature/State.hs 40;" C
NoFlare src/Dodge/Data/Item/Use.hs 132;" C
NoHammer src/Dodge/Data/Hammer.hs 13;" C
@@ -1272,7 +1272,7 @@ NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C
NodeTree src/Dodge/Data/MetaTree.hs 13;" C
NodeTree src/Dodge/Tree/Compose/Data.hs 9;" C
NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 84;" C
NormalOptions src/Dodge/Data/Universe.hs 69;" C
NormalOptions src/Dodge/Data/Universe.hs 70;" C
NormalTimeFlow src/Dodge/Data/World.hs 61;" C
North src/Dodge/Data/CardinalPoint.hs 4;" C
North8 src/Dodge/Data/CardinalPoint.hs 11;" C
@@ -1338,8 +1338,8 @@ Opacity src/Dodge/Data/Wall.hs 38;" t
Opaque src/Dodge/Data/Wall.hs 42;" C
OpticScope src/Dodge/Data/Item/Scope.hs 14;" C
Option src/Dodge/Menu/Option.hs 1;" m
OptionScreen src/Dodge/Data/Universe.hs 79;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 69;" t
OptionScreen src/Dodge/Data/Universe.hs 80;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 70;" t
OptionType src/Dodge/Menu/OptionType.hs 2;" m
Orientation src/Dodge/Item/Orientation.hs 1;" m
OutAction src/Dodge/Creature/Action.hs 50;" t
@@ -1629,7 +1629,7 @@ RoomType src/Dodge/Data/Room.hs 30;" t
RoomWire src/Dodge/Data/Room.hs 51;" t
RoundedFaces src/Shape/Data.hs 18;" C
RunPast src/Dodge/Room/RunPast.hs 1;" m
RunningSideEffect src/Dodge/Data/Universe.hs 66;" C
RunningSideEffect src/Dodge/Data/Universe.hs 67;" C
SCRAPMETAL src/Dodge/Data/Item/Combine.hs 39;" C
SHATTERGUN src/Dodge/Data/Item/Combine.hs 152;" C
SHATTERING src/Dodge/Data/Damage/Type.hs 17;" C
@@ -1659,7 +1659,7 @@ ScodeToChar src/Dodge/ScodeToChar.hs 1;" m
Scope src/Dodge/Data/Item/Scope.hs 13;" t
Scope src/Dodge/Data/Item/Scope.hs 6;" m
Scope src/Dodge/Item/Scope.hs 1;" m
ScreenLayer src/Dodge/Data/Universe.hs 78;" t
ScreenLayer src/Dodge/Data/Universe.hs 79;" t
ScreenLayer src/Dodge/Update/Input/ScreenLayer.hs 1;" m
ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t
ScreenPos src/Dodge/Data/ScreenPos.hs 3;" m
@@ -1743,7 +1743,7 @@ ShrinkGunParams src/Dodge/Data/Item/Params.hs 17;" C
ShrinkGunStatus src/Dodge/Data/Item/Params.hs 31;" t
Shrunk src/Dodge/Data/Item/Params.hs 31;" C
SideCluster src/Dodge/Data/RoomCluster.hs 14;" C
SideEffect src/Dodge/Data/Universe.hs 61;" t
SideEffect src/Dodge/Data/Universe.hs 62;" t
SimpleTrie src/SimpleTrie.hs 4;" m
SixteenthRes src/Dodge/Data/Config.hs 97;" C
Size src/Shape/Data.hs 28;" t
@@ -1789,7 +1789,7 @@ SpatialInfluence src/Dodge/Data/Scenario.hs 81;" t
Spawn src/Dodge/Item/Weapon/Spawn.hs 1;" m
SpawnParticle src/Dodge/WorldEvent/SpawnParticle.hs 2;" m
SpawnedBy src/Dodge/Data/Creature/State.hs 39;" C
SplashOptions src/Dodge/Data/Universe.hs 69;" C
SplashOptions src/Dodge/Data/Universe.hs 70;" C
SplitBeamCombine src/Dodge/Data/Beam.hs 42;" C
SprayGuns src/Dodge/Item/Held/SprayGuns.hs 1;" m
SpreadGunAI src/Dodge/Data/Creature/Misc.hs 51;" C
@@ -1945,10 +1945,10 @@ ToContinueStart src/Sound/Data.hs 28;" C
ToPlaySound src/Sound/Data.hs 39;" t
ToStart src/Sound/Data.hs 27;" C
ToStop src/Sound/Data.hs 29;" C
Toggle src/Dodge/Data/Universe.hs 101;" C
Toggle2 src/Dodge/Data/Universe.hs 105;" C
Toggle src/Dodge/Data/Universe.hs 102;" C
Toggle2 src/Dodge/Data/Universe.hs 106;" C
TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m
TopEscapeMenuOption src/Dodge/Data/Universe.hs 75;" C
TopEscapeMenuOption src/Dodge/Data/Universe.hs 76;" C
TopLDT src/Dodge/Data/DoubleTree.hs 49;" C
TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C
TorqueCr src/Dodge/Data/WorldEffect.hs 31;" C
@@ -2273,8 +2273,8 @@ _carriage src/Dodge/Data/Creature/Stance.hs 14;" f
_carteCenter src/Dodge/Data/HUD.hs 47;" f
_carteRot src/Dodge/Data/HUD.hs 49;" f
_carteZoom src/Dodge/Data/HUD.hs 48;" f
_ceSideEffect src/Dodge/Data/Universe.hs 63;" f
_ceString src/Dodge/Data/Universe.hs 64;" f
_ceSideEffect src/Dodge/Data/Universe.hs 64;" f
_ceString src/Dodge/Data/Universe.hs 65;" f
_ciFilter src/Dodge/Data/HUD.hs 40;" f
_ciInvIDs src/Dodge/Data/Combine.hs 6;" f
_ciItem src/Dodge/Data/Combine.hs 7;" f
@@ -2395,13 +2395,13 @@ _dePushExp src/Dodge/Data/Damage.hs 24;" f
_dePushRadius src/Dodge/Data/Damage.hs 25;" f
_deTorque src/Dodge/Data/Damage.hs 27;" f
_deathDelay src/Dodge/Data/World.hs 60;" f
_debugInfo src/Dodge/Data/Universe.hs 51;" f
_debugInt src/Dodge/Data/Universe.hs 59;" f
_debugMInt src/Dodge/Data/Universe.hs 58;" f
_debugMessage src/Dodge/Data/Universe.hs 50;" f
_debugPic src/Dodge/Data/Universe.hs 49;" f
_debugV2 src/Dodge/Data/Universe.hs 57;" f
_debugV3 src/Dodge/Data/Universe.hs 56;" f
_debugInfo src/Dodge/Data/Universe.hs 52;" f
_debugInt src/Dodge/Data/Universe.hs 60;" f
_debugMInt src/Dodge/Data/Universe.hs 59;" f
_debugMessage src/Dodge/Data/Universe.hs 51;" f
_debugPic src/Dodge/Data/Universe.hs 50;" f
_debugV2 src/Dodge/Data/Universe.hs 58;" f
_debugV3 src/Dodge/Data/Universe.hs 57;" f
_debug_booleans src/Dodge/Data/Config.hs 57;" f
_debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f
_delayedEvents src/Dodge/Data/LWorld.hs 133;" f
@@ -2477,7 +2477,7 @@ _eeParams src/Dodge/Data/Item/Use/Equipment.hs 22;" f
_eeType src/Dodge/Data/Item/Use/Equipment.hs 21;" f
_eeUse src/Dodge/Data/Item/Use/Equipment.hs 18;" f
_eeViewDist src/Dodge/Data/Item/Use/Equipment.hs 23;" f
_emoMenuOption src/Dodge/Data/Universe.hs 74;" f
_emoMenuOption src/Dodge/Data/Universe.hs 75;" f
_energyBalls src/Dodge/Data/LWorld.hs 108;" f
_eparamID src/Dodge/Data/Item/Use/Equipment.hs 37;" f
_eparamInt src/Dodge/Data/Item/Use/Equipment.hs 38;" f
@@ -2727,13 +2727,13 @@ _mdUpdate src/Dodge/Data/Modification.hs 27;" f
_meleeTarget src/Dodge/Data/ActionPlan.hs 187;" f
_mgField src/Dodge/Data/Magnet.hs 25;" f
_mgPos src/Dodge/Data/Magnet.hs 24;" f
_moEff src/Dodge/Data/Universe.hs 102;" f
_moEff1 src/Dodge/Data/Universe.hs 106;" f
_moEff2 src/Dodge/Data/Universe.hs 107;" f
_moString src/Dodge/Data/Universe.hs 103;" f
_moString src/Dodge/Data/Universe.hs 108;" f
_modOption src/Dodge/Data/Universe.hs 98;" f
_modString src/Dodge/Data/Universe.hs 96;" f
_moEff src/Dodge/Data/Universe.hs 103;" f
_moEff1 src/Dodge/Data/Universe.hs 107;" f
_moEff2 src/Dodge/Data/Universe.hs 108;" f
_moString src/Dodge/Data/Universe.hs 104;" f
_moString src/Dodge/Data/Universe.hs 109;" f
_modOption src/Dodge/Data/Universe.hs 99;" f
_modString src/Dodge/Data/Universe.hs 97;" f
_modifications src/Dodge/Data/LWorld.hs 131;" f
_mouseButtons src/Dodge/Data/Input.hs 46;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 47;" f
@@ -2963,17 +2963,17 @@ _rsObject src/Dodge/Data/RadarSweep.hs 20;" f
_rsPos src/Dodge/Data/RadarSweep.hs 18;" f
_rsRad src/Dodge/Data/RadarSweep.hs 19;" f
_rsTimer src/Dodge/Data/RadarSweep.hs 21;" f
_scAvailableLines src/Dodge/Data/Universe.hs 86;" f
_scDisplayTime src/Dodge/Data/Universe.hs 88;" f
_scFooter src/Dodge/Data/Universe.hs 92;" f
_scInput src/Dodge/Data/Universe.hs 91;" f
_scListDisplayParams src/Dodge/Data/Universe.hs 87;" f
_scOffset src/Dodge/Data/Universe.hs 82;" f
_scOptionFlag src/Dodge/Data/Universe.hs 84;" f
_scOptions src/Dodge/Data/Universe.hs 81;" f
_scPositionedMenuOption src/Dodge/Data/Universe.hs 83;" f
_scSelectionList src/Dodge/Data/Universe.hs 85;" f
_scTitle src/Dodge/Data/Universe.hs 80;" f
_scAvailableLines src/Dodge/Data/Universe.hs 87;" f
_scDisplayTime src/Dodge/Data/Universe.hs 89;" f
_scFooter src/Dodge/Data/Universe.hs 93;" f
_scInput src/Dodge/Data/Universe.hs 92;" f
_scListDisplayParams src/Dodge/Data/Universe.hs 88;" f
_scOffset src/Dodge/Data/Universe.hs 83;" f
_scOptionFlag src/Dodge/Data/Universe.hs 85;" f
_scOptions src/Dodge/Data/Universe.hs 82;" f
_scPositionedMenuOption src/Dodge/Data/Universe.hs 84;" f
_scSelectionList src/Dodge/Data/Universe.hs 86;" f
_scTitle src/Dodge/Data/Universe.hs 81;" f
_screenTextureVAO src/Data/Preload/Render.hs 50;" f
_scrollAmount src/Dodge/Data/Input.hs 48;" f
_scrollItemID src/Dodge/Data/World.hs 66;" f
@@ -3177,8 +3177,9 @@ _useUpTo src/Dodge/Data/Item/Use.hs 164;" f
_uvCanContinue src/Dodge/Data/Universe.hs 38;" f
_uvConfig src/Dodge/Data/Universe.hs 36;" f
_uvDebug src/Dodge/Data/Universe.hs 43;" f
_uvDebugFloat src/Dodge/Data/Universe.hs 44;" f
_uvDebugMessageOffset src/Dodge/Data/Universe.hs 45;" f
_uvDebugFloat1 src/Dodge/Data/Universe.hs 44;" f
_uvDebugFloat2 src/Dodge/Data/Universe.hs 45;" f
_uvDebugMessageOffset src/Dodge/Data/Universe.hs 46;" f
_uvFrameTicks src/Dodge/Data/Universe.hs 41;" f
_uvIOEffects src/Dodge/Data/Universe.hs 34;" f
_uvLastFrameTicks src/Dodge/Data/Universe.hs 40;" f
@@ -3341,7 +3342,7 @@ 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 243;" f
anythingHitCirc src/Dodge/Base/Collide.hs 248;" f
applyCME src/Dodge/HeldUse.hs 126;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
@@ -3486,7 +3487,6 @@ blunderbuss src/Dodge/Item/Held/Cone.hs 27;" f
boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceBall src/Dodge/Base/Collide.hs 78;" f
bounceDir src/Dodge/Bullet.hs 113;" f
bouncePoint src/Dodge/Base/Collide.hs 88;" f
boundPoints src/Bound.hs 10;" f
@@ -3518,8 +3518,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 229;" f
canSeeIndirect src/Dodge/Base/Collide.hs 236;" f
canSee src/Dodge/Base/Collide.hs 234;" f
canSeeIndirect src/Dodge/Base/Collide.hs 241;" 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
@@ -3568,10 +3568,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
circOnAnyCr src/Dodge/Base/Collide.hs 193;" f
circHitWall src/Dodge/Base/Collide.hs 149;" f
circOnAnyCr src/Dodge/Base/Collide.hs 198;" f
circOnSeg src/Geometry.hs 104;" f
circOnSegNoEndpoints src/Geometry.hs 94;" f
circOnSomeWall src/Dodge/Base/Collide.hs 182;" f
circOnSomeWall src/Dodge/Base/Collide.hs 187;" f
circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f
@@ -3616,7 +3617,7 @@ 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 150;" f
collideCircWalls src/Dodge/Base/Collide.hs 155;" 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
@@ -3970,7 +3971,10 @@ doDamage src/Dodge/Creature/State.hs 139;" f
doDamagesFL src/Dodge/Flame.hs 57;" f
doDeathToggle src/Dodge/WorldEffect.hs 87;" f
doDeathTriggers src/Dodge/WorldEffect.hs 82;" f
doDebugTest src/Dodge/Update/Input/DebugTest.hs 8;" f
doDebugTest src/Dodge/Update/Input/DebugTest.hs 14;" f
doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 29;" f
doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 32;" f
doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 38;" f
doDrWdWd src/Dodge/DrWdWd.hs 16;" f
doDrag src/Dodge/Update/Input/InGame.hs 99;" f
doDrawing src/Dodge/Render.hs 35;" f
@@ -3997,20 +4001,20 @@ doOutPlacements src/Dodge/Layout.hs 102;" f
doP2Ac src/Dodge/CreatureEffect.hs 69;" f
doP2Imp src/Dodge/CreatureEffect.hs 33;" f
doPrWdLsLs src/Dodge/PrWdLsLs.hs 8;" f
doPreload appDodge/Main.hs 132;" f
doPreload appDodge/Main.hs 133;" f
doPressPlateEvent src/Dodge/PressPlate.hs 8;" f
doPropUpdates src/Dodge/Prop/Update.hs 36;" f
doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 422;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 425;" f
doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f
doRoomShift src/Dodge/Room/Link.hs 33;" f
doScopeZoom src/Dodge/Update/Scroll.hs 90;" f
doSectionSize src/Dodge/DisplayInventory.hs 248;" f
doSideEffects appDodge/Main.hs 119;" f
doSideEffects appDodge/Main.hs 120;" f
doStep src/Dodge/ArcStep.hs 9;" f
doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f
doTerminalBootProgram src/Dodge/WorldEffect.hs 96;" f
@@ -4435,11 +4439,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 207;" f
hasButtonLOS src/Dodge/Base/Collide.hs 212;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 47;" f
hasFrontArmour src/Dodge/Creature/Test.hs 110;" f
hasLOS src/Dodge/Base/Collide.hs 200;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 215;" f
hasLOS src/Dodge/Base/Collide.hs 205;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 220;" f
hat src/Dodge/Item/Equipment.hs 134;" f
head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 140;" f
@@ -4593,7 +4597,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 222;" f
isWalkable src/Dodge/Base/Collide.hs 227;" f
isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 20;" f
itDim src/Dodge/Item/InvSize.hs 20;" f
@@ -4846,7 +4850,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f
maybeClearPaths src/Dodge/Block.hs 74;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 585;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 588;" f
maybeOpenTerminal src/Dodge/Update.hs 122;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f
@@ -5052,7 +5056,7 @@ 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 168;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 173;" f
overlapSegCrs src/Dodge/Base/Collide.hs 59;" f
overlapSegWalls src/Dodge/Base/Collide.hs 120;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 172;" f
@@ -5071,7 +5075,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 505;" f
pauseGame src/Dodge/Update/Input/InGame.hs 508;" f
pauseMenu src/Dodge/Menu.hs 53;" f
pauseMenuOptions src/Dodge/Menu.hs 58;" f
pauseSound src/Dodge/SoundLogic.hs 41;" f
@@ -5133,7 +5137,7 @@ playIfFree src/Sound.hs 136;" f
playPositionalSoundQueue src/Sound.hs 144;" f
playSoundAndUpdate src/Sound.hs 54;" f
playSoundQueue src/Sound.hs 131;" f
playSoundUnlessRewinding appDodge/Main.hs 112;" f
playSoundUnlessRewinding appDodge/Main.hs 113;" f
plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f
pmLineLoop src/Shader/Data.hs 107;" f
pmLineStrip src/Shader/Data.hs 107;" f
@@ -5537,7 +5541,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 237;" f
seedStartMenu src/Dodge/Menu.hs 79;" f
seedStartOptions src/Dodge/Menu.hs 82;" f
segOnCirc src/Geometry.hs 116;" f
selCloseObj src/Dodge/Update/Input/InGame.hs 528;" f
selCloseObj src/Dodge/Update/Input/InGame.hs 531;" f
selNumPos src/Dodge/Render/HUD.hs 440;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 463;" f
selSecDrawCursor src/Dodge/Render/List.hs 126;" f
@@ -5673,9 +5677,9 @@ showAttachItem src/Dodge/Item/Display.hs 64;" f
showEquipItem src/Dodge/Item/Display.hs 78;" f
showInt src/Dodge/Item/Info.hs 30;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showManObj src/Dodge/TestString.hs 75;" f
showManObj src/Dodge/TestString.hs 77;" f
showTerminalError src/Dodge/Debug/Terminal.hs 76;" f
showTimeFlow src/Dodge/TestString.hs 124;" f
showTimeFlow src/Dodge/TestString.hs 126;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f
shrinkVert src/Geometry/Polygon.hs 140;" f
shuffle src/RandomHelp.hs 49;" f
@@ -5731,7 +5735,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 98;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f
spaceAction src/Dodge/Update/Input/InGame.hs 508;" f
spaceAction src/Dodge/Update/Input/InGame.hs 511;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f
@@ -5887,7 +5891,7 @@ tflat3 src/Picture/Data.hs 64;" f
tflat4 src/Picture/Data.hs 68;" f
theCleanup appDodge/Main.hs 75;" f
theColumns src/Dodge/Tree/Shift.hs 139;" f
theUpdateStep appDodge/Main.hs 104;" f
theUpdateStep appDodge/Main.hs 105;" f
thickArc src/Picture/Base.hs 298;" f
thickCircle src/Picture/Base.hs 272;" f
thickLine src/Picture/Base.hs 244;" f
@@ -5928,8 +5932,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f
toggleCommand src/Dodge/Terminal.hs 196;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 49;" f
toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 549;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 562;" f
toggleMap src/Dodge/Update/Input/InGame.hs 552;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 565;" f
togglesToEffects src/Dodge/Terminal.hs 248;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
@@ -5937,7 +5941,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 71;" f
topTestPart src/Dodge/TestString.hs 73;" f
torch src/Dodge/Item/Held/Utility.hs 33;" f
torchShape src/Dodge/Item/Draw/SPic.hs 252;" f
torqueCr src/Dodge/WorldEffect.hs 63;" f
@@ -5999,7 +6003,7 @@ truncate src/Polyhedra/Geodesic.hs 38;" f
trunkDepth src/TreeHelp.hs 161;" f
tryAssignHotkey src/Dodge/Creature/YourControl.hs 94;" f
tryAttachItems src/Dodge/Item/Grammar.hs 21;" f
tryCombine src/Dodge/Update/Input/InGame.hs 571;" f
tryCombine src/Dodge/Update/Input/InGame.hs 574;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 115;" f
tryGetChannel src/Sound.hs 96;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f
@@ -6051,7 +6055,7 @@ updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla.hs 91;" f
updateArc src/Dodge/Tesla/Arc.hs 100;" f
updateAttachedItems src/Dodge/Creature/State.hs 266;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 457;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 460;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f
updateBounds src/Dodge/Update/Camera.hs 206;" f
@@ -6074,7 +6078,7 @@ updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 538;" f
updateEnergyBall src/Dodge/EnergyBall.hs 45;" f
updateEnergyBalls src/Dodge/Update.hs 564;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 484;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 487;" f
updateExpBarrel src/Dodge/Barreloid.hs 19;" f
updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" f
@@ -6089,18 +6093,18 @@ updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 507;" f
updateIMl' src/Dodge/Update.hs 512;" f
updateInGameCamera src/Dodge/Update/Camera.hs 71;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 401;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 404;" f
updateInv src/Dodge/Creature/State.hs 162;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f
updateItemTargeting src/Dodge/Creature/State.hs 377;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 286;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 395;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 383;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 398;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 386;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 436;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 416;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 419;" f
updateMachine src/Dodge/Machine/Update.hs 19;" f
updateMagnets src/Dodge/Update.hs 307;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 176;" f
@@ -6116,8 +6120,8 @@ updatePastWorlds src/Dodge/Update.hs 424;" f
updatePosEvent src/Dodge/PosEvent.hs 11;" f
updatePosEvents src/Dodge/Update.hs 573;" f
updatePreload src/Preload/Update.hs 20;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 358;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 361;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 361;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 364;" f
updateProjectile src/Dodge/Projectile/Update.hs 23;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 22;" f
@@ -6127,7 +6131,7 @@ updateRadarBlips src/Dodge/Update.hs 541;" f
updateRadarSweep src/Dodge/RadarSweep.hs 25;" f
updateRadarSweeps src/Dodge/Update.hs 567;" f
updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 107;" f
updateRenderSplit appDodge/Main.hs 108;" f
updateRootItemID src/Dodge/Inventory/Location.hs 35;" f
updateScopeZoom src/Dodge/Update/Scroll.hs 76;" f
updateScopeZoom' src/Dodge/Update/Scroll.hs 81;" f