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, collideCircWalls,
overlapSegWalls, overlapSegWalls,
overlapSegCrs, overlapSegCrs,
bounceBall, -- bounceBall,
bouncePoint, bouncePoint,
circOnSomeWall, circOnSomeWall,
circOnAnyCr, circOnAnyCr,
@@ -75,15 +75,15 @@ doBounce x sp ep (p, mwl) =
, reflVelWallDamp x wl (ep -.- sp) , reflVelWallDamp x wl (ep -.- sp)
) )
bounceBall :: --bounceBall ::
Float -> -- Float ->
Point2 -> -- Point2 ->
Point2 -> -- Point2 ->
Float -> -- Float ->
[Wall] -> -- [Wall] ->
Maybe (Point2, Point2) -- Maybe (Point2, Point2)
{-# INLINE bounceBall #-} --{-# INLINE bounceBall #-}
bounceBall x sp ep r = doBounce x sp ep . collideCircWalls sp ep r --bounceBall x sp ep r = doBounce x sp ep . collideCircWalls sp ep r
bouncePoint :: (Wall -> Bool) -> Float -> Point2 -> Point2 -> World -> Maybe (Point2, Point2) bouncePoint :: (Wall -> Bool) -> Float -> Point2 -> Point2 -> World -> Maybe (Point2, Point2)
{-# INLINE bouncePoint #-} {-# INLINE bouncePoint #-}
@@ -146,6 +146,11 @@ overlapCircWalls p r = mapMaybe dointersect
dointersect wl = f (_wlLine wl) <&> (,wl) dointersect wl = f (_wlLine wl) <&> (,wl)
f (a, b) = intersectSegSeg p (p +.+ r *.* normalizeV ((0.5 *.* (a +.+ b)) -.- p)) a b 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 -- | note that this does not push the circle away from the wall at all
collideCircWalls :: Point2 -> Point2 -> Float -> [Wall] -> (Point2, Maybe Wall) collideCircWalls :: Point2 -> Point2 -> Float -> [Wall] -> (Point2, Maybe Wall)
{-# INLINE collideCircWalls #-} {-# INLINE collideCircWalls #-}
@@ -241,7 +246,8 @@ canSeeIndirect i j w = hasLOSIndirect ipos jpos w
jpos = w ^?! cWorld . lWorld . creatures . ix j . crPos jpos = w ^?! cWorld . lWorld . creatures . ix j . crPos
anythingHitCirc :: Float -> Point2 -> Point2 -> World -> Bool 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 where
x = rad *.* normalizeV (ep - sp) x = rad *.* normalizeV (ep - sp)
xsp = sp - x 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) (\cr -> null $ intersectCircSeg (_crPos cr) (rad + _crRad cr) sp ep)
(w ^? cWorld . lWorld . creatures . ix cid) (w ^? cWorld . lWorld . creatures . ix cid)
|| bl || bl
hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w -- hitWl = collideCircWalls sp ep rad $ wlsNearSeg xsp xep w
-- this should probably be wallsOnLine or something -- this should probably be wallsOnLine or something
+17
View File
@@ -1,6 +1,8 @@
module Dodge.Update.Input.DebugTest ( module Dodge.Update.Input.DebugTest (
doDebugTest, doDebugTest,
doDebugTest2, doDebugTest2,
doDebugTestF6,
doDebugTestF7,
) where ) where
import Control.Lens import Control.Lens
@@ -26,3 +28,18 @@ doDebugTest uv = fromMaybe uv $ do
doDebugTest2 :: Universe -> Universe doDebugTest2 :: Universe -> Universe
doDebugTest2 = uvDebugFloat1 .~ 20 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 ScancodeF2 -> pauseAndFloatCam uv
ScancodeF5 -> doQuicksave uv ScancodeF5 -> doQuicksave uv
ScancodeF9 -> doQuickload uv ScancodeF9 -> doQuickload uv
ScancodeF6 -> doDebugTestF6 uv
ScancodeF7 -> doDebugTestF7 uv
ScancodeEscape -> pauseGame uv ScancodeEscape -> pauseGame uv
_ -> uv _ -> uv
updateFunctionKey uv ScancodeF3 _ = doDebugTest 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 Booster src/Dodge/Item/Equipment/Booster.hs 1;" m
Boosting src/Dodge/Data/Creature/Stance.hs 28;" C Boosting src/Dodge/Data/Creature/Stance.hs 28;" C
Boss src/Dodge/Room/Boss.hs 2;" m 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 BounceBullet src/Dodge/Data/Bullet.hs 37;" C
Bound src/Bound.hs 1;" m Bound src/Bound.hs 1;" m
Bound_box_screen src/Dodge/Data/Config.hs 81;" C 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 Debris src/Dodge/Block/Debris.hs 1;" m
Debug src/Dodge/Debug.hs 2;" m Debug src/Dodge/Debug.hs 2;" m
DebugBool src/Dodge/Data/Config.hs 66;" t DebugBool src/Dodge/Data/Config.hs 66;" t
DebugInfo src/Dodge/Data/Universe.hs 54;" t DebugInfo src/Dodge/Data/Universe.hs 55;" t
DebugIntMInt src/Dodge/Data/Universe.hs 59;" C DebugIntMInt src/Dodge/Data/Universe.hs 60;" C
DebugItem src/Dodge/Data/Universe.hs 48;" t DebugItem src/Dodge/Data/Universe.hs 49;" t
DebugLayer src/Picture/Data.hs 27;" C 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 DebugTest src/Dodge/Update/Input/DebugTest.hs 1;" m
DebugV2 src/Dodge/Data/Universe.hs 57;" C DebugV2 src/Dodge/Data/Universe.hs 58;" C
DebugV3 src/Dodge/Data/Universe.hs 56;" C DebugV3 src/Dodge/Data/Universe.hs 57;" C
DecorationShape src/Dodge/Data/GenParams.hs 20;" t DecorationShape src/Dodge/Data/GenParams.hs 20;" t
Default src/Dodge/Default.hs 7;" m Default src/Dodge/Default.hs 7;" m
Default src/Dodge/Tesla/Arc/Default.hs 1;" 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 EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 18;" t
EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 32;" C EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 32;" C
Escape src/Dodge/Data/Scenario.hs 10;" 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 Essential src/Shape/Data.hs 34;" C
Euse src/Dodge/Data/Item/HeldUse.hs 19;" t Euse src/Dodge/Data/Item/HeldUse.hs 19;" t
Euse src/Dodge/Euse.hs 1;" m 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 GRAPECANNON src/Dodge/Data/Item/Combine.hs 128;" C
GREEN src/Color/Data.hs 16;" C GREEN src/Color/Data.hs 16;" C
GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 33;" 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 15;" t
GameRoom src/Dodge/GameRoom.hs 8;" m GameRoom src/Dodge/GameRoom.hs 8;" m
Gas src/Dodge/Gas.hs 1;" 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 HammerType src/Dodge/Data/Hammer.hs 12;" t
HammerUp src/Dodge/Data/Hammer.hs 20;" C HammerUp src/Dodge/Data/Hammer.hs 20;" C
HandPos src/Dodge/Creature/HandPos.hs 1;" m 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 HasHammer src/Dodge/Data/Hammer.hs 14;" C
HeavySmokeFlare src/Dodge/Data/Item/Use.hs 136;" C HeavySmokeFlare src/Dodge/Data/Item/Use.hs 136;" C
Held src/Dodge/Item/Held.hs 1;" m 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/Event/Input.hs 3;" m
Input src/Dodge/Update/Input.hs 1;" m Input src/Dodge/Update/Input.hs 1;" m
InputFocus src/Dodge/InputFocus.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 Inspect_wall src/Dodge/Data/Config.hs 91;" C
Instance src/Dodge/Item/Instance.hs 1;" m Instance src/Dodge/Item/Instance.hs 1;" m
Instance src/Dodge/Placement/Instance.hs 1;" m Instance src/Dodge/Placement/Instance.hs 1;" m
Institution src/Dodge/Data/Scenario.hs 42;" t Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 18;" t Int2 src/Geometry/Data.hs 18;" t
IntAnno src/Dodge/Annotation/Data.hs 17;" C 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 IntImp src/Dodge/Data/CreatureEffect.hs 20;" t
IntMapHelp src/IntMapHelp.hs 8;" m IntMapHelp src/IntMapHelp.hs 8;" m
Intention src/Dodge/Data/Creature.hs 79;" t 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 LoadSound src/Dodge/SoundLogic/LoadSound.hs 1;" m
Loading src/Dodge/Menu/Loading.hs 1;" m Loading src/Dodge/Menu/Loading.hs 1;" m
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C 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 LocLDT src/Dodge/Data/DoubleTree.hs 67;" C
Location src/Dodge/Data/Item/Location.hs 6;" m Location src/Dodge/Data/Item/Location.hs 6;" m
Location src/Dodge/Inventory/Location.hs 1;" 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 MICROPHONE src/Dodge/Data/Item/Combine.hs 61;" C
MINIDISPLAY src/Dodge/Data/Item/Combine.hs 54;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 54;" C
MINIGUNX src/Dodge/Data/Item/Combine.hs 129;" C MINIGUNX src/Dodge/Data/Item/Combine.hs 129;" C
MODBlockedString src/Dodge/Data/Universe.hs 97;" C MODBlockedString src/Dodge/Data/Universe.hs 98;" C
MODString src/Dodge/Data/Universe.hs 96;" C MODString src/Dodge/Data/Universe.hs 97;" C
MODStringOption src/Dodge/Data/Universe.hs 98;" C MODStringOption src/Dodge/Data/Universe.hs 99;" C
MOTOR src/Dodge/Data/Item/Combine.hs 41;" C MOTOR src/Dodge/Data/Item/Combine.hs 41;" C
MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t
MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C 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/Creature/Memory.hs 1;" m
Memory src/Dodge/Data/Creature/Memory.hs 6;" m Memory src/Dodge/Data/Creature/Memory.hs 6;" m
Menu src/Dodge/Menu.hs 1;" m Menu src/Dodge/Menu.hs 1;" m
MenuOption src/Dodge/Data/Universe.hs 100;" t MenuOption src/Dodge/Data/Universe.hs 101;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 95;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 96;" t
MenuScreen src/Dodge/Render/MenuScreen.hs 2;" m MenuScreen src/Dodge/Render/MenuScreen.hs 2;" m
MetaBranch src/Dodge/Data/MetaTree.hs 16;" t MetaBranch src/Dodge/Data/MetaTree.hs 16;" t
MetaBranch src/Dodge/Tree/Compose/Data.hs 10;" 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 15;" t
NewInt src/NewInt.hs 7;" m NewInt src/NewInt.hs 7;" m
NewIntMap src/NewInt.hs 18;" t 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 NextArcStep src/Dodge/Data/ArcStep.hs 21;" t
Ngon src/Dodge/Room/Ngon.hs 1;" m Ngon src/Dodge/Room/Ngon.hs 1;" m
NoAction src/Dodge/Data/ActionPlan.hs 152;" C 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 NoCrWdImp src/Dodge/Data/CreatureEffect.hs 14;" C
NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C
NoDamageEffect src/Dodge/Data/Damage.hs 29;" 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 NoDelay src/Dodge/Data/Item/HeldDelay.hs 14;" C
NoDropEffect src/Dodge/Data/Item/Effect.hs 28;" C NoDropEffect src/Dodge/Data/Item/Effect.hs 28;" C
NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" 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 NoFaction src/Dodge/Data/Creature/State.hs 40;" C
NoFlare src/Dodge/Data/Item/Use.hs 132;" C NoFlare src/Dodge/Data/Item/Use.hs 132;" C
NoHammer src/Dodge/Data/Hammer.hs 13;" 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/Data/MetaTree.hs 13;" C
NodeTree src/Dodge/Tree/Compose/Data.hs 9;" C NodeTree src/Dodge/Tree/Compose/Data.hs 9;" C
NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 84;" 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 NormalTimeFlow src/Dodge/Data/World.hs 61;" C
North src/Dodge/Data/CardinalPoint.hs 4;" C North src/Dodge/Data/CardinalPoint.hs 4;" C
North8 src/Dodge/Data/CardinalPoint.hs 11;" 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 Opaque src/Dodge/Data/Wall.hs 42;" C
OpticScope src/Dodge/Data/Item/Scope.hs 14;" C OpticScope src/Dodge/Data/Item/Scope.hs 14;" C
Option src/Dodge/Menu/Option.hs 1;" m Option src/Dodge/Menu/Option.hs 1;" m
OptionScreen src/Dodge/Data/Universe.hs 79;" C OptionScreen src/Dodge/Data/Universe.hs 80;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 69;" t OptionScreenFlag src/Dodge/Data/Universe.hs 70;" t
OptionType src/Dodge/Menu/OptionType.hs 2;" m OptionType src/Dodge/Menu/OptionType.hs 2;" m
Orientation src/Dodge/Item/Orientation.hs 1;" m Orientation src/Dodge/Item/Orientation.hs 1;" m
OutAction src/Dodge/Creature/Action.hs 50;" t 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 RoomWire src/Dodge/Data/Room.hs 51;" t
RoundedFaces src/Shape/Data.hs 18;" C RoundedFaces src/Shape/Data.hs 18;" C
RunPast src/Dodge/Room/RunPast.hs 1;" m 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 SCRAPMETAL src/Dodge/Data/Item/Combine.hs 39;" C
SHATTERGUN src/Dodge/Data/Item/Combine.hs 152;" C SHATTERGUN src/Dodge/Data/Item/Combine.hs 152;" C
SHATTERING src/Dodge/Data/Damage/Type.hs 17;" 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 13;" t
Scope src/Dodge/Data/Item/Scope.hs 6;" m Scope src/Dodge/Data/Item/Scope.hs 6;" m
Scope src/Dodge/Item/Scope.hs 1;" 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 ScreenLayer src/Dodge/Update/Input/ScreenLayer.hs 1;" m
ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t
ScreenPos src/Dodge/Data/ScreenPos.hs 3;" m 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 ShrinkGunStatus src/Dodge/Data/Item/Params.hs 31;" t
Shrunk src/Dodge/Data/Item/Params.hs 31;" C Shrunk src/Dodge/Data/Item/Params.hs 31;" C
SideCluster src/Dodge/Data/RoomCluster.hs 14;" 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 SimpleTrie src/SimpleTrie.hs 4;" m
SixteenthRes src/Dodge/Data/Config.hs 97;" C SixteenthRes src/Dodge/Data/Config.hs 97;" C
Size src/Shape/Data.hs 28;" t 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 Spawn src/Dodge/Item/Weapon/Spawn.hs 1;" m
SpawnParticle src/Dodge/WorldEvent/SpawnParticle.hs 2;" m SpawnParticle src/Dodge/WorldEvent/SpawnParticle.hs 2;" m
SpawnedBy src/Dodge/Data/Creature/State.hs 39;" C 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 SplitBeamCombine src/Dodge/Data/Beam.hs 42;" C
SprayGuns src/Dodge/Item/Held/SprayGuns.hs 1;" m SprayGuns src/Dodge/Item/Held/SprayGuns.hs 1;" m
SpreadGunAI src/Dodge/Data/Creature/Misc.hs 51;" C 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 ToPlaySound src/Sound/Data.hs 39;" t
ToStart src/Sound/Data.hs 27;" C ToStart src/Sound/Data.hs 27;" C
ToStop src/Sound/Data.hs 29;" C ToStop src/Sound/Data.hs 29;" C
Toggle src/Dodge/Data/Universe.hs 101;" C Toggle src/Dodge/Data/Universe.hs 102;" C
Toggle2 src/Dodge/Data/Universe.hs 105;" C Toggle2 src/Dodge/Data/Universe.hs 106;" C
TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m 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 TopLDT src/Dodge/Data/DoubleTree.hs 49;" C
TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C
TorqueCr src/Dodge/Data/WorldEffect.hs 31;" 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 _carteCenter src/Dodge/Data/HUD.hs 47;" f
_carteRot src/Dodge/Data/HUD.hs 49;" f _carteRot src/Dodge/Data/HUD.hs 49;" f
_carteZoom src/Dodge/Data/HUD.hs 48;" f _carteZoom src/Dodge/Data/HUD.hs 48;" f
_ceSideEffect src/Dodge/Data/Universe.hs 63;" f _ceSideEffect src/Dodge/Data/Universe.hs 64;" f
_ceString src/Dodge/Data/Universe.hs 64;" f _ceString src/Dodge/Data/Universe.hs 65;" f
_ciFilter src/Dodge/Data/HUD.hs 40;" f _ciFilter src/Dodge/Data/HUD.hs 40;" f
_ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f
_ciItem src/Dodge/Data/Combine.hs 7;" 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 _dePushRadius src/Dodge/Data/Damage.hs 25;" f
_deTorque src/Dodge/Data/Damage.hs 27;" f _deTorque src/Dodge/Data/Damage.hs 27;" f
_deathDelay src/Dodge/Data/World.hs 60;" f _deathDelay src/Dodge/Data/World.hs 60;" f
_debugInfo src/Dodge/Data/Universe.hs 51;" f _debugInfo src/Dodge/Data/Universe.hs 52;" f
_debugInt src/Dodge/Data/Universe.hs 59;" f _debugInt src/Dodge/Data/Universe.hs 60;" f
_debugMInt src/Dodge/Data/Universe.hs 58;" f _debugMInt src/Dodge/Data/Universe.hs 59;" f
_debugMessage src/Dodge/Data/Universe.hs 50;" f _debugMessage src/Dodge/Data/Universe.hs 51;" f
_debugPic src/Dodge/Data/Universe.hs 49;" f _debugPic src/Dodge/Data/Universe.hs 50;" f
_debugV2 src/Dodge/Data/Universe.hs 57;" f _debugV2 src/Dodge/Data/Universe.hs 58;" f
_debugV3 src/Dodge/Data/Universe.hs 56;" f _debugV3 src/Dodge/Data/Universe.hs 57;" f
_debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_booleans src/Dodge/Data/Config.hs 57;" f
_debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f
_delayedEvents src/Dodge/Data/LWorld.hs 133;" 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 _eeType src/Dodge/Data/Item/Use/Equipment.hs 21;" f
_eeUse src/Dodge/Data/Item/Use/Equipment.hs 18;" f _eeUse src/Dodge/Data/Item/Use/Equipment.hs 18;" f
_eeViewDist src/Dodge/Data/Item/Use/Equipment.hs 23;" 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 _energyBalls src/Dodge/Data/LWorld.hs 108;" f
_eparamID src/Dodge/Data/Item/Use/Equipment.hs 37;" f _eparamID src/Dodge/Data/Item/Use/Equipment.hs 37;" f
_eparamInt src/Dodge/Data/Item/Use/Equipment.hs 38;" 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 _meleeTarget src/Dodge/Data/ActionPlan.hs 187;" f
_mgField src/Dodge/Data/Magnet.hs 25;" f _mgField src/Dodge/Data/Magnet.hs 25;" f
_mgPos src/Dodge/Data/Magnet.hs 24;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f
_moEff src/Dodge/Data/Universe.hs 102;" f _moEff src/Dodge/Data/Universe.hs 103;" f
_moEff1 src/Dodge/Data/Universe.hs 106;" f _moEff1 src/Dodge/Data/Universe.hs 107;" f
_moEff2 src/Dodge/Data/Universe.hs 107;" f _moEff2 src/Dodge/Data/Universe.hs 108;" f
_moString src/Dodge/Data/Universe.hs 103;" f _moString src/Dodge/Data/Universe.hs 104;" f
_moString src/Dodge/Data/Universe.hs 108;" f _moString src/Dodge/Data/Universe.hs 109;" f
_modOption src/Dodge/Data/Universe.hs 98;" f _modOption src/Dodge/Data/Universe.hs 99;" f
_modString src/Dodge/Data/Universe.hs 96;" f _modString src/Dodge/Data/Universe.hs 97;" f
_modifications src/Dodge/Data/LWorld.hs 131;" f _modifications src/Dodge/Data/LWorld.hs 131;" f
_mouseButtons src/Dodge/Data/Input.hs 46;" f _mouseButtons src/Dodge/Data/Input.hs 46;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 47;" 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 _rsPos src/Dodge/Data/RadarSweep.hs 18;" f
_rsRad src/Dodge/Data/RadarSweep.hs 19;" f _rsRad src/Dodge/Data/RadarSweep.hs 19;" f
_rsTimer src/Dodge/Data/RadarSweep.hs 21;" f _rsTimer src/Dodge/Data/RadarSweep.hs 21;" f
_scAvailableLines src/Dodge/Data/Universe.hs 86;" f _scAvailableLines src/Dodge/Data/Universe.hs 87;" f
_scDisplayTime src/Dodge/Data/Universe.hs 88;" f _scDisplayTime src/Dodge/Data/Universe.hs 89;" f
_scFooter src/Dodge/Data/Universe.hs 92;" f _scFooter src/Dodge/Data/Universe.hs 93;" f
_scInput src/Dodge/Data/Universe.hs 91;" f _scInput src/Dodge/Data/Universe.hs 92;" f
_scListDisplayParams src/Dodge/Data/Universe.hs 87;" f _scListDisplayParams src/Dodge/Data/Universe.hs 88;" f
_scOffset src/Dodge/Data/Universe.hs 82;" f _scOffset src/Dodge/Data/Universe.hs 83;" f
_scOptionFlag src/Dodge/Data/Universe.hs 84;" f _scOptionFlag src/Dodge/Data/Universe.hs 85;" f
_scOptions src/Dodge/Data/Universe.hs 81;" f _scOptions src/Dodge/Data/Universe.hs 82;" f
_scPositionedMenuOption src/Dodge/Data/Universe.hs 83;" f _scPositionedMenuOption src/Dodge/Data/Universe.hs 84;" f
_scSelectionList src/Dodge/Data/Universe.hs 85;" f _scSelectionList src/Dodge/Data/Universe.hs 86;" f
_scTitle src/Dodge/Data/Universe.hs 80;" f _scTitle src/Dodge/Data/Universe.hs 81;" f
_screenTextureVAO src/Data/Preload/Render.hs 50;" f _screenTextureVAO src/Data/Preload/Render.hs 50;" f
_scrollAmount src/Dodge/Data/Input.hs 48;" f _scrollAmount src/Dodge/Data/Input.hs 48;" f
_scrollItemID src/Dodge/Data/World.hs 66;" 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 _uvCanContinue src/Dodge/Data/Universe.hs 38;" f
_uvConfig src/Dodge/Data/Universe.hs 36;" f _uvConfig src/Dodge/Data/Universe.hs 36;" f
_uvDebug src/Dodge/Data/Universe.hs 43;" f _uvDebug src/Dodge/Data/Universe.hs 43;" f
_uvDebugFloat src/Dodge/Data/Universe.hs 44;" f _uvDebugFloat1 src/Dodge/Data/Universe.hs 44;" f
_uvDebugMessageOffset src/Dodge/Data/Universe.hs 45;" 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 _uvFrameTicks src/Dodge/Data/Universe.hs 41;" f
_uvIOEffects src/Dodge/Data/Universe.hs 34;" f _uvIOEffects src/Dodge/Data/Universe.hs 34;" f
_uvLastFrameTicks src/Dodge/Data/Universe.hs 40;" 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 angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" 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 applyCME src/Dodge/HeldUse.hs 126;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
@@ -3486,7 +3487,6 @@ blunderbuss src/Dodge/Item/Held/Cone.hs 27;" f
boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceBall src/Dodge/Base/Collide.hs 78;" f
bounceDir src/Dodge/Bullet.hs 113;" f bounceDir src/Dodge/Bullet.hs 113;" f
bouncePoint src/Dodge/Base/Collide.hs 88;" f bouncePoint src/Dodge/Base/Collide.hs 88;" f
boundPoints src/Bound.hs 10;" 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 cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 7;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 7;" f
calcTexCoord src/Tile.hs 19;" f calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 229;" f canSee src/Dodge/Base/Collide.hs 234;" f
canSeeIndirect src/Dodge/Base/Collide.hs 236;" f canSeeIndirect src/Dodge/Base/Collide.hs 241;" f
cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" 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 chooseMovementPistol' src/Dodge/Humanoid.hs 207;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f
circCollisionDebugItem src/Dodge/Debug.hs 63;" 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 circOnSeg src/Geometry.hs 104;" f
circOnSegNoEndpoints src/Geometry.hs 94;" 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 circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" 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 colSparkRandDir src/Dodge/Spark.hs 101;" f
collectDamageTypes src/Dodge/Damage.hs 32;" f collectDamageTypes src/Dodge/Damage.hs 32;" f
collectInvItems src/Dodge/Update/Input/InGame.hs 281;" 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 collidePoint src/Dodge/Base/Collide.hs 49;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 94;" f collidePointTestFilter src/Dodge/Base/Collide.hs 94;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 108;" 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 doDamagesFL src/Dodge/Flame.hs 57;" f
doDeathToggle src/Dodge/WorldEffect.hs 87;" f doDeathToggle src/Dodge/WorldEffect.hs 87;" f
doDeathTriggers src/Dodge/WorldEffect.hs 82;" 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 doDrWdWd src/Dodge/DrWdWd.hs 16;" f
doDrag src/Dodge/Update/Input/InGame.hs 99;" f doDrag src/Dodge/Update/Input/InGame.hs 99;" f
doDrawing src/Dodge/Render.hs 35;" 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 doP2Ac src/Dodge/CreatureEffect.hs 69;" f
doP2Imp src/Dodge/CreatureEffect.hs 33;" f doP2Imp src/Dodge/CreatureEffect.hs 33;" f
doPrWdLsLs src/Dodge/PrWdLsLs.hs 8;" 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 doPressPlateEvent src/Dodge/PressPlate.hs 8;" f
doPropUpdates src/Dodge/Prop/Update.hs 36;" f doPropUpdates src/Dodge/Prop/Update.hs 36;" f
doQuickload src/Dodge/Save.hs 82;" f doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" 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 doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomPlacements src/Dodge/Layout.hs 122;" f
doRoomShift src/Dodge/Room/Link.hs 33;" f doRoomShift src/Dodge/Room/Link.hs 33;" f
doScopeZoom src/Dodge/Update/Scroll.hs 90;" f doScopeZoom src/Dodge/Update/Scroll.hs 90;" f
doSectionSize src/Dodge/DisplayInventory.hs 248;" 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 doStep src/Dodge/ArcStep.hs 9;" f
doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f
doTerminalBootProgram src/Dodge/WorldEffect.hs 96;" 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 handleTextInput src/Dodge/Event/Input.hs 18;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f
hardQuit src/Dodge/Concurrent.hs 33;" 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 hasCaneGunDim src/Dodge/Item/InvSize.hs 47;" f
hasFrontArmour src/Dodge/Creature/Test.hs 110;" f hasFrontArmour src/Dodge/Creature/Test.hs 110;" f
hasLOS src/Dodge/Base/Collide.hs 200;" f hasLOS src/Dodge/Base/Collide.hs 205;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 215;" f hasLOSIndirect src/Dodge/Base/Collide.hs 220;" f
hat src/Dodge/Item/Equipment.hs 134;" f hat src/Dodge/Item/Equipment.hs 134;" f
head src/DoubleStack.hs 14;" f head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 140;" 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 isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 172;" f
isValidCommand src/Dodge/Debug/Terminal.hs 128;" f isValidCommand src/Dodge/Debug/Terminal.hs 128;" f
isVowel src/StringHelp.hs 8;" 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 isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 20;" f isotriBWH src/Geometry/Polygon.hs 20;" f
itDim src/Dodge/Item/InvSize.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 maybeClearPaths src/Dodge/Block.hs 74;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" 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 maybeOpenTerminal src/Dodge/Update.hs 122;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f maybeTakeOne src/RandomHelp.hs 116;" f
@@ -5052,7 +5056,7 @@ overPosObj src/Shape.hs 276;" f
overPosSH src/Shape.hs 260;" f overPosSH src/Shape.hs 260;" f
overPosSP src/ShapePicture.hs 41;" f overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 138;" 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 overlapSegCrs src/Dodge/Base/Collide.hs 59;" f
overlapSegWalls src/Dodge/Base/Collide.hs 120;" f overlapSegWalls src/Dodge/Base/Collide.hs 120;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 172;" 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 pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" 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 pauseMenu src/Dodge/Menu.hs 53;" f
pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f
pauseSound src/Dodge/SoundLogic.hs 41;" f pauseSound src/Dodge/SoundLogic.hs 41;" f
@@ -5133,7 +5137,7 @@ playIfFree src/Sound.hs 136;" f
playPositionalSoundQueue src/Sound.hs 144;" f playPositionalSoundQueue src/Sound.hs 144;" f
playSoundAndUpdate src/Sound.hs 54;" f playSoundAndUpdate src/Sound.hs 54;" f
playSoundQueue src/Sound.hs 131;" 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 plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f
pmLineLoop src/Shader/Data.hs 107;" f pmLineLoop src/Shader/Data.hs 107;" f
pmLineStrip 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 seedStartMenu src/Dodge/Menu.hs 79;" f
seedStartOptions src/Dodge/Menu.hs 82;" f seedStartOptions src/Dodge/Menu.hs 82;" f
segOnCirc src/Geometry.hs 116;" 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 selNumPos src/Dodge/Render/HUD.hs 440;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 463;" f selNumPosCardinal src/Dodge/Render/HUD.hs 463;" f
selSecDrawCursor src/Dodge/Render/List.hs 126;" 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 showEquipItem src/Dodge/Item/Display.hs 78;" f
showInt src/Dodge/Item/Info.hs 30;" f showInt src/Dodge/Item/Info.hs 30;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" 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 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 shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f
shrinkVert src/Geometry/Polygon.hs 140;" f shrinkVert src/Geometry/Polygon.hs 140;" f
shuffle src/RandomHelp.hs 49;" 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 soundWithStatus src/Dodge/SoundLogic.hs 98;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" 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 spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" 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 tflat4 src/Picture/Data.hs 68;" f
theCleanup appDodge/Main.hs 75;" f theCleanup appDodge/Main.hs 75;" f
theColumns src/Dodge/Tree/Shift.hs 139;" 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 thickArc src/Picture/Base.hs 298;" f
thickCircle src/Picture/Base.hs 272;" f thickCircle src/Picture/Base.hs 272;" f
thickLine src/Picture/Base.hs 244;" 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 toggleCommand src/Dodge/Terminal.hs 196;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 49;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 49;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 549;" f toggleMap src/Dodge/Update/Input/InGame.hs 552;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 562;" f toggleTweakInv src/Dodge/Update/Input/InGame.hs 565;" f
togglesToEffects src/Dodge/Terminal.hs 248;" f togglesToEffects src/Dodge/Terminal.hs 248;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" 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 topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" 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 torch src/Dodge/Item/Held/Utility.hs 33;" f
torchShape src/Dodge/Item/Draw/SPic.hs 252;" f torchShape src/Dodge/Item/Draw/SPic.hs 252;" f
torqueCr src/Dodge/WorldEffect.hs 63;" 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 trunkDepth src/TreeHelp.hs 161;" f
tryAssignHotkey src/Dodge/Creature/YourControl.hs 94;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 94;" f
tryAttachItems src/Dodge/Item/Grammar.hs 21;" 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 tryDropSelected src/Dodge/Update/Input/InGame.hs 115;" f
tryGetChannel src/Sound.hs 96;" f tryGetChannel src/Sound.hs 96;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" 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.hs 91;" f
updateArc src/Dodge/Tesla/Arc.hs 100;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f
updateAttachedItems src/Dodge/Creature/State.hs 266;" 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 updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f
updateBounds src/Dodge/Update/Camera.hs 206;" 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 updateDistortions src/Dodge/Update.hs 538;" f
updateEnergyBall src/Dodge/EnergyBall.hs 45;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f
updateEnergyBalls src/Dodge/Update.hs 564;" 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 updateExpBarrel src/Dodge/Barreloid.hs 19;" f
updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" 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 507;" f
updateIMl' src/Dodge/Update.hs 512;" f updateIMl' src/Dodge/Update.hs 512;" f
updateInGameCamera src/Dodge/Update/Camera.hs 71;" 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 updateInv src/Dodge/Creature/State.hs 162;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f
updateItemTargeting src/Dodge/Creature/State.hs 377;" f updateItemTargeting src/Dodge/Creature/State.hs 377;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 286;" f updateItemWithOrientation src/Dodge/Creature/State.hs 286;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 395;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 398;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 383;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 386;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 436;" f updateLasers src/Dodge/Update.hs 436;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" 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 updateMachine src/Dodge/Machine/Update.hs 19;" f
updateMagnets src/Dodge/Update.hs 307;" f updateMagnets src/Dodge/Update.hs 307;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 176;" 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 updatePosEvent src/Dodge/PosEvent.hs 11;" f
updatePosEvents src/Dodge/Update.hs 573;" f updatePosEvents src/Dodge/Update.hs 573;" f
updatePreload src/Preload/Update.hs 20;" 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 updateProjectile src/Dodge/Projectile/Update.hs 23;" f
updateProp src/Dodge/Prop/Update.hs 11;" f updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 22;" 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 updateRadarSweep src/Dodge/RadarSweep.hs 25;" f
updateRadarSweeps src/Dodge/Update.hs 567;" f updateRadarSweeps src/Dodge/Update.hs 567;" f
updateRandNode src/TreeHelp.hs 108;" 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 updateRootItemID src/Dodge/Inventory/Location.hs 35;" f
updateScopeZoom src/Dodge/Update/Scroll.hs 76;" f updateScopeZoom src/Dodge/Update/Scroll.hs 76;" f
updateScopeZoom' src/Dodge/Update/Scroll.hs 81;" f updateScopeZoom' src/Dodge/Update/Scroll.hs 81;" f