Simplify buttons

This commit is contained in:
2025-06-25 21:37:32 +01:00
parent 6e9d4918a1
commit a9cae4d409
13 changed files with 130 additions and 140 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -10,13 +10,13 @@ import Control.Lens
drawButton :: Button -> SPic drawButton :: Button -> SPic
drawButton bt = case bt ^. btEvent of drawButton bt = case bt ^. btEvent of
ButtonPress {_bpColor = col} -> defaultDrawButton col bt ButtonPress {_bpColor = col} -> defaultDrawButton col bt
ButtonSimpleSwith {_bssColor1 = col1, _bssColor2 = col2} -> drawSwitch col1 col2 bt ButtonSwitch {_bsColor1 = col1, _bsColor2 = col2} -> drawSwitch col1 col2 bt
ButtonAccessTerminal -> mempty ButtonAccessTerminal -> mempty
ButtonDoNothing -> mempty ButtonDoNothing -> mempty
drawSwitch :: Color -> Color -> Button -> SPic drawSwitch :: Color -> Color -> Button -> SPic
drawSwitch col1 col2 bt drawSwitch col1 col2 bt
| _btState bt == BtOff = flick $ pi / 4 | bt ^? btEvent . btOn == Just False = flick $ pi / 4
| otherwise = flick (negate (pi / 4)) | otherwise = flick (negate (pi / 4))
where where
flick a = noPic flick a = noPic
@@ -33,6 +33,6 @@ defaultDrawButton col bt = noPic
) )
where where
buttonGeometry buttonGeometry
| _btState bt == BtOff = rectNSWE 10 (-1) (- width) width | bt ^? btEvent . btOn == Just False = rectNSWE 10 (-1) (- width) width
| otherwise = rectNSWE 2 (-1) (- width) width | otherwise = rectNSWE 2 (-1) (- width) width
width = 8 width = 8
+10 -13
View File
@@ -9,26 +9,23 @@ import Dodge.WorldEffect
doButtonEvent :: ButtonEvent -> Button -> World -> World doButtonEvent :: ButtonEvent -> Button -> World -> World
doButtonEvent be = case be of doButtonEvent be = case be of
ButtonDoNothing -> const id ButtonDoNothing -> const id
ButtonPress newstate newevent thesound f c -> \b -> ButtonPress True _ _ -> const id
ButtonPress False f _ -> \b ->
doWdWd f doWdWd f
. set (cWorld . lWorld . buttons . ix (_btID b) . btState) newstate . set (cWorld . lWorld . buttons . ix (_btID b) . btEvent . btOn) True
. set (cWorld . lWorld . buttons . ix (_btID b) . btEvent) newevent . soundStart (LeverSound 0) (_btPos b) click1S Nothing
. soundStart (LeverSound 0) (_btPos b) thesound Nothing ButtonSwitch oneff offeff _ _ _ -> flipSwitch oneff offeff
--ButtonSwitch onstate onevent onsound oneff offstate offevent offsound offeff -> undefined
ButtonSimpleSwith oneff offeff _ _ -> flipSwitch oneff offeff
ButtonAccessTerminal -> accessTerminal . _btTermMID ButtonAccessTerminal -> accessTerminal . _btTermMID
flipSwitch :: WdWd -> WdWd -> Button -> World -> World flipSwitch :: WdWd -> WdWd -> Button -> World -> World
flipSwitch oneff offeff bt flipSwitch oneff offeff bt
| _btState bt == BtOff = | _btOn (_btEvent bt) =
doWdWd oneff . dosound
. over (cWorld . lWorld . buttons . ix (_btID bt)) turnon
| otherwise =
doWdWd offeff . dosound doWdWd offeff . dosound
. over (cWorld . lWorld . buttons . ix (_btID bt)) turnoff . set (cWorld . lWorld . buttons . ix (_btID bt) . btEvent . btOn) False
| otherwise =
doWdWd oneff . dosound
. set (cWorld . lWorld . buttons . ix (_btID bt) . btEvent . btOn) True
where where
turnon = (btState .~ BtOn)
turnoff = (btState .~ BtOff)
dosound = soundWithStatus ToStart (LeverSound 0) (_btPos bt) click1S Nothing dosound = soundWithStatus ToStart (LeverSound 0) (_btPos bt) click1S Nothing
-- switchEffect b = case _btState b of -- switchEffect b = case _btState b of
+9 -17
View File
@@ -11,28 +11,20 @@ import Data.Aeson
import Data.Aeson.TH import Data.Aeson.TH
import Dodge.Data.WorldEffect import Dodge.Data.WorldEffect
import Geometry.Data import Geometry.Data
import Sound.Data
--data ButtonDraw
-- = DefaultDrawButton Color
-- | DefaultDrawSwitch Color Color
-- | DrawNoButton
-- --deriving (Eq, Ord, Show, Read) --Generic, Flat)
data ButtonEvent data ButtonEvent
= ButtonDoNothing = ButtonDoNothing
| ButtonPress | ButtonPress
{ _bpState :: ButtonState { _btOn :: Bool
, _bpEvent :: ButtonEvent
, _bpSound :: SoundID
, _bpEff :: WdWd , _bpEff :: WdWd
, _bpColor :: Color , _bpColor :: Color
} }
| ButtonSimpleSwith | ButtonSwitch
{ _bonEff :: WdWd { _bonEff :: WdWd
, _boffEff :: WdWd , _boffEff :: WdWd
, _bssColor1 :: Color , _bsColor1 :: Color
, _bssColor2 :: Color , _bsColor2 :: Color
, _btOn :: Bool
} }
| ButtonAccessTerminal | ButtonAccessTerminal
--deriving (Eq, Show, Read) --, Generic) --deriving (Eq, Show, Read) --, Generic)
@@ -46,7 +38,7 @@ data Button = Button
, _btEvent :: ButtonEvent --Button -> World -> World , _btEvent :: ButtonEvent --Button -> World -> World
, _btID :: Int , _btID :: Int
-- , _btText :: String -- , _btText :: String
, _btState :: ButtonState -- , _btState :: ButtonState
, _btTermMID :: Maybe Int , _btTermMID :: Maybe Int
, _btName :: String , _btName :: String
, _btColor :: Color , _btColor :: Color
@@ -54,12 +46,12 @@ data Button = Button
--deriving (Eq, Show, Read) --, Generic) --deriving (Eq, Show, Read) --, Generic)
--h--deriving (Eq, Show, Read) --Generic, Flat) --h--deriving (Eq, Show, Read) --Generic, Flat)
data ButtonState = BtOn | BtOff | BtInactive --data ButtonState = BtOn | BtOff | BtInactive
deriving Eq -- (Eq, Ord, Show, Read) --Generic, Flat) -- deriving Eq -- (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Button makeLenses ''Button
makeLenses ''ButtonEvent makeLenses ''ButtonEvent
--deriveJSON defaultOptions ''ButtonDraw --deriveJSON defaultOptions ''ButtonDraw
deriveJSON defaultOptions ''ButtonState --deriveJSON defaultOptions ''ButtonState
deriveJSON defaultOptions ''ButtonEvent deriveJSON defaultOptions ''ButtonEvent
deriveJSON defaultOptions ''Button deriveJSON defaultOptions ''Button
+1 -1
View File
@@ -55,7 +55,7 @@ data WdBl
| WdBlNegate WdBl | WdBlNegate WdBl
| WdBlCrFilterNearPoint Float Point2 CrBl | WdBlCrFilterNearPoint Float Point2 CrBl
| WdBlBtOn Int | WdBlBtOn Int
| WdBlBtNotOff Int -- | WdBlBtNotOff Int
--deriving (Eq, Ord, Show, Read) --Generic, Flat) --deriving (Eq, Ord, Show, Read) --Generic, Flat)
data WdP2f data WdP2f
+2 -4
View File
@@ -18,7 +18,6 @@ import Dodge.Default.Creature
import Dodge.Default.Item import Dodge.Default.Item
import Dodge.Default.Terminal import Dodge.Default.Terminal
import Dodge.Default.Wall import Dodge.Default.Wall
import Dodge.SoundLogic
import Geometry import Geometry
import Picture import Picture
@@ -51,10 +50,9 @@ defaultButton =
Button Button
{ _btPos = V2 0 0 { _btPos = V2 0 0
, _btRot = 0 , _btRot = 0
, _btEvent = ButtonPress BtInactive ButtonDoNothing click1S NoWorldEffect , _btEvent = ButtonPress False NoWorldEffect (dark red)
(dark red)
, _btID = 0 , _btID = 0
, _btState = BtOff -- , _btState = BtOff
, _btTermMID = Nothing , _btTermMID = Nothing
, _btName = "" , _btName = ""
, _btColor = red , _btColor = red
+1 -1
View File
@@ -130,7 +130,7 @@ updateCloseObjects w =
isclose pos = dist ypos pos < 40 && hasButtonLOS ypos pos w isclose pos = dist ypos pos < 40 && hasButtonLOS ypos pos w
ypos = _crPos $ you w ypos = _crPos $ you w
activeButtons = activeButtons =
filter ((/=) BtInactive . _btState) filter ((/= Just True) . (^? btEvent . btOn))
. IM.elems . IM.elems
$ w ^. cWorld . lWorld . buttons $ w ^. cWorld . lWorld . buttons
+3 -4
View File
@@ -234,10 +234,9 @@ btText :: Button -> String
btText bt = case _btEvent bt of btText bt = case _btEvent bt of
ButtonDoNothing -> "UNPRESSABLE BUTTON" ButtonDoNothing -> "UNPRESSABLE BUTTON"
ButtonPress {} -> "BUTTON" ButtonPress {} -> "BUTTON"
ButtonSimpleSwith {} -> case _btState bt of ButtonSwitch {_btOn = t} -> case t of
BtOn -> "SWITCH\\" True -> "SWITCH\\"
BtOff -> "SWITCH/" False -> "SWITCH/"
BtInactive -> "INACTIVE SWITCH"
ButtonAccessTerminal -> "TERMINAL" ButtonAccessTerminal -> "TERMINAL"
closeItemToTextPictures :: FloorItem -> ([String], Color) closeItemToTextPictures :: FloorItem -> ([String], Color)
+46 -38
View File
@@ -1,55 +1,63 @@
module Dodge.LevelGen.Switch module Dodge.LevelGen.Switch (
( makeSwitch makeSwitch,
, makeButton makeButton,
, makeSwitchSPic makeSwitchSPic,
, drawSwitchWire drawSwitchWire,
) where ) where
import Dodge.Data.Button import Dodge.Data.Button
import Dodge.Data.WorldEffect import Dodge.Data.WorldEffect
import Dodge.Default import Dodge.Default
import Dodge.SoundLogic
import Picture
import ShapePicture
import Shape
import Geometry import Geometry
import Picture
import Shape
import ShapePicture
import Control.Lens
makeButton makeButton ::
:: Color Color ->
-> WdWd -- ^ Effect when pressed -- | Effect when pressed
-> Button WdWd ->
makeButton col eff = defaultButton Button
{ _btEvent = ButtonPress BtInactive ButtonDoNothing click1S eff col makeButton col eff =
, _btState = BtOff defaultButton
{ -- { _btEvent = ButtonPress BtInactive ButtonDoNothing click1S eff col
_btEvent = ButtonPress False eff col
-- , _btState = BtOff
} }
-- TODO remove duplication -- TODO remove duplication
drawSwitchWire :: Color -> Color -> Button -> SPic drawSwitchWire :: Color -> Color -> Button -> SPic
drawSwitchWire col1 col2 bt drawSwitchWire col1 col2 bt
| _btState bt == BtOff = flick $ pi/4 | bt ^? btEvent . btOn == Just False = flick $ pi / 4
| otherwise = flick (negate (pi/4)) | otherwise = flick (negate (pi / 4))
where where
flick a = noPic ( mconcat flick a =
noPic
( mconcat
[ colorSH col1 . translateSHz 10 . upperBox Small Typical 10 $ rectNSWE (-2) (-5) (-10) 10 [ colorSH col1 . translateSHz 10 . upperBox Small Typical 10 $ rectNSWE (-2) (-5) (-10) 10
, colorSH col2 . translateSH (V3 0 (-2) 15) . rotateSH a . upperBox Small Typical 2 , colorSH col2 . translateSH (V3 0 (-2) 15) . rotateSH a . upperBox Small Typical 2 $
$ rectNSWE 10 0 (-2) 2 rectNSWE 10 0 (-2) 2
] ]
) )
makeSwitchSPic makeSwitchSPic ::
:: Color Color ->
-> Color Color ->
-> WdWd -- ^ Switch on effect -- | Switch on effect
-> WdWd -- ^ Switch off effect WdWd ->
-> Button -- | Switch off effect
makeSwitchSPic c1 c2 effOn effOff = defaultButton WdWd ->
{ _btEvent = ButtonSimpleSwith effOn effOff c1 c2 Button
, _btState = BtOff makeSwitchSPic c1 c2 effOn effOff =
} defaultButton & btEvent .~ ButtonSwitch effOn effOff c1 c2 False
makeSwitch makeSwitch ::
:: Color Color ->
-> Color Color ->
-> WdWd -- ^ Switch on effect -- | Switch on effect
-> WdWd -- ^ Switch off effect WdWd ->
-> Button -- | Switch off effect
WdWd ->
Button
makeSwitch col1 col2 = makeSwitchSPic col1 col2 makeSwitch col1 col2 = makeSwitchSPic col1 col2
-1
View File
@@ -55,7 +55,6 @@ termButton =
, _btRot = 0 , _btRot = 0
, _btEvent = ButtonAccessTerminal , _btEvent = ButtonAccessTerminal
, _btID = 0 , _btID = 0
, _btState = BtOff
, _btTermMID = Nothing , _btTermMID = Nothing
, _btName = "" , _btName = ""
, _btColor = dark magenta , _btColor = dark magenta
+4 -2
View File
@@ -73,7 +73,8 @@ twinSlowDoorRoom w h x =
thedoor btid = thedoor btid =
defaultDoor defaultDoor
& drSpeed .~ wlSpeed & drSpeed .~ wlSpeed
& drTrigger .~ WdBlBtNotOff btid -- & drTrigger .~ WdBlBtNotOff btid
& drTrigger .~ WdBlBtOn btid
col = dim $ dim $ bright red col = dim $ dim $ bright red
twinSlowDoorChasers :: RandomGen g => State g Room twinSlowDoorChasers :: RandomGen g => State g Room
@@ -134,7 +135,8 @@ addButtonSlowDoor x h rm = do
putDoubleDoorThen putDoubleDoorThen
DoorObstacle DoorObstacle
thewall thewall
(WdBlBtNotOff $ fromJust $ _plMID btplmnt) -- (WdBlBtNotOff $ fromJust $ _plMID btplmnt)
(WdBlBtOn $ fromJust $ _plMID btplmnt)
30 30
(V2 0 h) (V2 0 h)
(V2 x h) (V2 x h)
+2 -4
View File
@@ -15,8 +15,6 @@ doWdBl wb w = case wb of
dr <- w ^? cWorld . lWorld . doors . ix i dr <- w ^? cWorld . lWorld . doors . ix i
return (DoorHalfway == _drStatus dr) return (DoorHalfway == _drStatus dr)
WdBlCrFilterNearPoint r p t -> any (crNearPoint r p) (IM.filter (doCrBl t) (w ^. cWorld . lWorld . creatures)) WdBlCrFilterNearPoint r p t -> any (crNearPoint r p) (IM.filter (doCrBl t) (w ^. cWorld . lWorld . creatures))
--WdBlBtOn btid -> _btState (_buttons (_cWorld w) IM.! btid) == BtOn -- unsafe WdBlBtOn btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btEvent . btOn) -- unsafe
WdBlBtOn btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btState) == BtOn -- unsafe -- WdBlBtNotOff btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btState) /= BtOff -- unsafe
--WdBlBtNotOff btid -> _btState (_buttons (_cWorld w) IM.! btid) /= BtOff -- unsafe
WdBlBtNotOff btid -> (w ^?! cWorld . lWorld . buttons . ix btid . btState) /= BtOff -- unsafe
WdBlNegate x -> not $ doWdBl x w WdBlNegate x -> not $ doWdBl x w
+43 -46
View File
@@ -215,9 +215,9 @@ Branch src/Dodge/Room/Branch.hs 4;" m
Breather src/Dodge/Room/Breather.hs 1;" m Breather src/Dodge/Room/Breather.hs 1;" m
BrigSS src/Dodge/Data/Scenario.hs 102;" C BrigSS src/Dodge/Data/Scenario.hs 102;" C
Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C
BtInactive src/Dodge/Data/Button.hs 63;" C BtInactive src/Dodge/Data/Button.hs 51;" C
BtOff src/Dodge/Data/Button.hs 63;" C BtOff src/Dodge/Data/Button.hs 51;" C
BtOn src/Dodge/Data/Button.hs 63;" C BtOn src/Dodge/Data/Button.hs 51;" C
BulBall src/Dodge/Data/Bullet.hs 37;" C BulBall src/Dodge/Data/Bullet.hs 37;" C
BulFlak src/Dodge/Data/Bullet.hs 39;" C BulFlak src/Dodge/Data/Bullet.hs 39;" C
BulFrag src/Dodge/Data/Bullet.hs 40;" C BulFrag src/Dodge/Data/Bullet.hs 40;" C
@@ -239,16 +239,15 @@ BulletPayload src/Dodge/Data/Bullet.hs 36;" t
BulletTrajectory src/Dodge/Data/Bullet.hs 44;" t BulletTrajectory src/Dodge/Data/Bullet.hs 44;" t
BulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" t
BurstTrigger src/Dodge/Data/TriggerType.hs 14;" C BurstTrigger src/Dodge/Data/TriggerType.hs 14;" C
Button src/Dodge/Data/Button.hs 48;" t Button src/Dodge/Data/Button.hs 35;" t
Button src/Dodge/Data/Button.hs 6;" m Button src/Dodge/Data/Button.hs 6;" m
Button src/Dodge/Placement/Instance/Button.hs 1;" m Button src/Dodge/Placement/Instance/Button.hs 1;" m
ButtonAccessTerminal src/Dodge/Data/Button.hs 44;" C ButtonAccessTerminal src/Dodge/Data/Button.hs 31;" C
ButtonDoNothing src/Dodge/Data/Button.hs 23;" C ButtonDoNothing src/Dodge/Data/Button.hs 17;" C
ButtonDraw src/Dodge/Data/Button.hs 16;" t ButtonEvent src/Dodge/Data/Button.hs 16;" t
ButtonEvent src/Dodge/Data/Button.hs 22;" t ButtonPress src/Dodge/Data/Button.hs 18;" C
ButtonPress src/Dodge/Data/Button.hs 24;" C ButtonSimpleSwith src/Dodge/Data/Button.hs 25;" C
ButtonSimpleSwith src/Dodge/Data/Button.hs 40;" C ButtonState src/Dodge/Data/Button.hs 51;" t
ButtonState src/Dodge/Data/Button.hs 63;" t
CAMERA src/Dodge/Data/Item/Combine.hs 75;" C CAMERA src/Dodge/Data/Item/Combine.hs 75;" C
CAN src/Dodge/Data/Item/Combine.hs 56;" C CAN src/Dodge/Data/Item/Combine.hs 56;" C
CDoNothing src/Dodge/Data/Item/HeldUse.hs 15;" C CDoNothing src/Dodge/Data/Item/HeldUse.hs 15;" C
@@ -493,8 +492,6 @@ 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
DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C
DefaultDrawButton src/Dodge/Data/Button.hs 17;" C
DefaultDrawSwitch src/Dodge/Data/Button.hs 18;" C
DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C
DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C
DefaultRoomType src/Dodge/Data/Room.hs 31;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C
@@ -579,7 +576,6 @@ Draw src/Dodge/Tesla/Draw.hs 1;" m
Draw src/Dodge/TractorBeam/Draw.hs 1;" m Draw src/Dodge/TractorBeam/Draw.hs 1;" m
Draw src/Dodge/Wall/Draw.hs 1;" m Draw src/Dodge/Wall/Draw.hs 1;" m
DrawForceField src/Dodge/Data/Wall.hs 47;" C DrawForceField src/Dodge/Data/Wall.hs 47;" C
DrawNoButton src/Dodge/Data/Button.hs 19;" C
DrawnWall src/Dodge/Data/Wall.hs 43;" C DrawnWall src/Dodge/Data/Wall.hs 43;" C
Drone src/Dodge/Item/Weapon/Drone.hs 1;" m Drone src/Dodge/Item/Weapon/Drone.hs 1;" m
DroneAmmo src/Dodge/Data/AmmoType.hs 10;" C DroneAmmo src/Dodge/Data/AmmoType.hs 10;" C
@@ -2313,23 +2309,23 @@ _bmPoints src/Dodge/Data/Beam.hs 24;" f
_bmPos src/Dodge/Data/Beam.hs 20;" f _bmPos src/Dodge/Data/Beam.hs 20;" f
_bmRange src/Dodge/Data/Beam.hs 26;" f _bmRange src/Dodge/Data/Beam.hs 26;" f
_bmType src/Dodge/Data/Beam.hs 29;" f _bmType src/Dodge/Data/Beam.hs 29;" f
_boffEff src/Dodge/Data/Button.hs 42;" f _boffEff src/Dodge/Data/Button.hs 27;" f
_bonEff src/Dodge/Data/Button.hs 41;" f _bonEff src/Dodge/Data/Button.hs 26;" f
_bounceTolerance src/Dodge/Data/Projectile.hs 57;" f _bounceTolerance src/Dodge/Data/Projectile.hs 57;" f
_bpEff src/Dodge/Data/Button.hs 28;" f _bpColor src/Dodge/Data/Button.hs 23;" f
_bpEvent src/Dodge/Data/Button.hs 26;" f _bpEff src/Dodge/Data/Button.hs 22;" f
_bpSound src/Dodge/Data/Button.hs 27;" f _bpSound src/Dodge/Data/Button.hs 21;" f
_bpState src/Dodge/Data/Button.hs 25;" f _bpState src/Dodge/Data/Button.hs 19;" f
_btColor src/Dodge/Data/Button.hs 58;" f _bssColor1 src/Dodge/Data/Button.hs 28;" f
_btEvent src/Dodge/Data/Button.hs 52;" f _bssColor2 src/Dodge/Data/Button.hs 29;" f
_btID src/Dodge/Data/Button.hs 53;" f _btColor src/Dodge/Data/Button.hs 46;" f
_btName src/Dodge/Data/Button.hs 57;" f _btEvent src/Dodge/Data/Button.hs 40;" f
_btPict src/Dodge/Data/Button.hs 49;" f _btID src/Dodge/Data/Button.hs 41;" f
_btPos src/Dodge/Data/Button.hs 50;" f _btName src/Dodge/Data/Button.hs 45;" f
_btRot src/Dodge/Data/Button.hs 51;" f _btPos src/Dodge/Data/Button.hs 38;" f
_btState src/Dodge/Data/Button.hs 55;" f _btRot src/Dodge/Data/Button.hs 39;" f
_btTermMID src/Dodge/Data/Button.hs 56;" f _btState src/Dodge/Data/Button.hs 43;" f
_btText src/Dodge/Data/Button.hs 54;" f _btTermMID src/Dodge/Data/Button.hs 44;" f
_buDam src/Dodge/Data/Bullet.hs 38;" f _buDam src/Dodge/Data/Bullet.hs 38;" f
_buDrag src/Dodge/Data/Bullet.hs 23;" f _buDrag src/Dodge/Data/Bullet.hs 23;" f
_buEffect src/Dodge/Data/Bullet.hs 19;" f _buEffect src/Dodge/Data/Bullet.hs 19;" f
@@ -3553,6 +3549,7 @@ branchWith src/Dodge/Room/Room.hs 67;" f
bright src/Color.hs 120;" f bright src/Color.hs 120;" f
brightX src/Color.hs 116;" f brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 106;" f btSPic src/Dodge/Render/ShapePicture.hs 106;" f
btText src/Dodge/Inventory/SelectionList.hs 233;" f
bufferEBO src/Shader/Bind.hs 28;" f bufferEBO src/Shader/Bind.hs 28;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 36;" f bufferShaderLayers src/Shader/Bind.hs 36;" f
@@ -3630,7 +3627,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f circleSolid src/Picture/Base.hs 164;" f
circleSolidCol src/Picture/Base.hs 168;" f circleSolidCol src/Picture/Base.hs 168;" f
clAlt src/Dodge/Cloud.hs 5;" f clAlt src/Dodge/Cloud.hs 5;" f
clClSpringVel src/Dodge/Update.hs 788;" f clClSpringVel src/Dodge/Update.hs 786;" f
clColor src/Shader/Poke/Cloud.hs 35;" f clColor src/Shader/Poke/Cloud.hs 35;" f
clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f
clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f
@@ -3654,7 +3651,7 @@ clipZoom src/Dodge/Update/Camera.hs 222;" f
clockCycle src/Dodge/Clock.hs 9;" f clockCycle src/Dodge/Clock.hs 9;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 219;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 219;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 204;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 204;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 233;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
closeObjectInfo src/Dodge/Render/HUD.hs 224;" f closeObjectInfo src/Dodge/Render/HUD.hs 224;" f
closestCreatureID src/Dodge/Debug.hs 116;" f closestCreatureID src/Dodge/Debug.hs 116;" f
closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f
@@ -3732,7 +3729,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 81;" f
crBlips src/Dodge/RadarSweep.hs 87;" f crBlips src/Dodge/RadarSweep.hs 87;" f
crCamouflage src/Dodge/Creature/Picture.hs 31;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f
crCanSeeCr src/Dodge/Creature/Test.hs 50;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f
crCrSpring src/Dodge/Update.hs 816;" f crCrSpring src/Dodge/Update.hs 814;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 57;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 57;" f
crDexterity src/Dodge/Creature/Statistics.hs 14;" f crDexterity src/Dodge/Creature/Statistics.hs 14;" f
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f
@@ -3760,7 +3757,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 71;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 71;" f
crSetRoots src/Dodge/Inventory/Location.hs 48;" f crSetRoots src/Dodge/Inventory/Location.hs 48;" f
crShape src/Dodge/Creature/Shape.hs 8;" f crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 811;" f crSpring src/Dodge/Update.hs 809;" f
crStratConMatches src/Dodge/Creature/Test.hs 76;" f crStratConMatches src/Dodge/Creature/Test.hs 76;" f
crStrength src/Dodge/Creature/Statistics.hs 24;" f crStrength src/Dodge/Creature/Statistics.hs 24;" f
crUpdate src/Dodge/Creature/State.hs 62;" f crUpdate src/Dodge/Creature/State.hs 62;" f
@@ -3921,7 +3918,7 @@ defaultDirtWall src/Dodge/Default/Wall.hs 61;" f
defaultDisplayInventory src/Dodge/Default/World.hs 167;" f defaultDisplayInventory src/Dodge/Default/World.hs 167;" f
defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoor src/Dodge/Default/Door.hs 29;" f
defaultDoorWall src/Dodge/Default/Wall.hs 32;" f defaultDoorWall src/Dodge/Default/Wall.hs 32;" f
defaultDrawButton src/Dodge/Button/Draw.hs 28;" f defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f
defaultEquipUse src/Dodge/Default/Item/Use.hs 7;" f defaultEquipUse src/Dodge/Default/Item/Use.hs 7;" f
defaultEquipment src/Dodge/Default.hs 25;" f defaultEquipment src/Dodge/Default.hs 25;" f
@@ -3941,10 +3938,10 @@ defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f
defaultMachine src/Dodge/Default.hs 31;" f defaultMachine src/Dodge/Default.hs 31;" f
defaultMachineWall src/Dodge/Default/Wall.hs 48;" f defaultMachineWall src/Dodge/Default/Wall.hs 48;" f
defaultMuzzles src/Dodge/Default/Item/Use/AimParams.hs 8;" f defaultMuzzles src/Dodge/Default/Item/Use/AimParams.hs 8;" f
defaultPP src/Dodge/Default.hs 64;" f defaultPP src/Dodge/Default.hs 63;" f
defaultPerceptionState src/Dodge/Default/Creature.hs 73;" f defaultPerceptionState src/Dodge/Default/Creature.hs 73;" f
defaultProp src/Dodge/Default/Prop.hs 6;" f defaultProp src/Dodge/Default/Prop.hs 6;" f
defaultProximitySensor src/Dodge/Default.hs 75;" f defaultProximitySensor src/Dodge/Default.hs 74;" f
defaultRoom src/Dodge/Default/Room.hs 9;" f defaultRoom src/Dodge/Default/Room.hs 9;" f
defaultSensorWall src/Dodge/Default/Wall.hs 58;" f defaultSensorWall src/Dodge/Default/Wall.hs 58;" f
defaultSwitchWall src/Dodge/Default/Door.hs 22;" f defaultSwitchWall src/Dodge/Default/Door.hs 22;" f
@@ -4116,7 +4113,7 @@ drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBlock src/Dodge/Block/Draw.hs 7;" f drawBlock src/Dodge/Block/Draw.hs 7;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 331;" f drawBoundingBox src/Dodge/Debug/Picture.hs 331;" f
drawBul src/Dodge/Bullet/Draw.hs 9;" f drawBul src/Dodge/Bullet/Draw.hs 9;" f
drawButton src/Dodge/Button/Draw.hs 9;" f drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 111;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 111;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
@@ -4210,8 +4207,8 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f
drawSpark src/Dodge/Spark/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f
drawStaticBall src/Dodge/EnergyBall/Draw.hs 27;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 27;" f
drawSubInventory src/Dodge/Render/HUD.hs 161;" f drawSubInventory src/Dodge/Render/HUD.hs 161;" f
drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitch src/Dodge/Button/Draw.hs 16;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 27;" f
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 364;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 364;" f
drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f
@@ -4256,7 +4253,7 @@ dtToRootIntMap' src/Dodge/DoubleTree.hs 92;" f
dtToUpDownAdj src/Dodge/DoubleTree.hs 96;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 96;" f
dummyMenuOption src/Dodge/Menu/Option.hs 74;" f dummyMenuOption src/Dodge/Menu/Option.hs 74;" f
dustColor src/Shader/Poke/Cloud.hs 71;" f dustColor src/Shader/Poke/Cloud.hs 71;" f
dustSpringVel src/Dodge/Update.hs 798;" f dustSpringVel src/Dodge/Update.hs 796;" f
ebColor src/Dodge/EnergyBall.hs 94;" f ebColor src/Dodge/EnergyBall.hs 94;" f
ebDamage src/Dodge/EnergyBall.hs 102;" f ebDamage src/Dodge/EnergyBall.hs 102;" f
ebEffect src/Dodge/EnergyBall.hs 49;" f ebEffect src/Dodge/EnergyBall.hs 49;" f
@@ -4947,8 +4944,8 @@ makeShrapnelAt src/Dodge/Payload.hs 24;" f
makeSourcedShader src/Shader/Compile.hs 167;" f makeSourcedShader src/Shader/Compile.hs 167;" f
makeSpark src/Dodge/Spark.hs 45;" f makeSpark src/Dodge/Spark.hs 45;" f
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
makeSwitch src/Dodge/LevelGen/Switch.hs 52;" f makeSwitch src/Dodge/LevelGen/Switch.hs 50;" f
makeSwitchSPic src/Dodge/LevelGen/Switch.hs 40;" f makeSwitchSPic src/Dodge/LevelGen/Switch.hs 39;" f
makeTermLine src/Dodge/Terminal.hs 120;" f makeTermLine src/Dodge/Terminal.hs 120;" f
makeTermPara src/Dodge/Terminal.hs 123;" f makeTermPara src/Dodge/Terminal.hs 123;" f
makeTeslaArc src/Dodge/Tesla.hs 29;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f
@@ -5815,7 +5812,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/RandomHelp.hs 59;" f shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 151;" f sigmoid src/Dodge/Base.hs 151;" f
simpleCrSprings src/Dodge/Update.hs 807;" f simpleCrSprings src/Dodge/Update.hs 805;" f
simpleTermMessage src/Dodge/Terminal.hs 253;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f
@@ -6000,7 +5997,7 @@ termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f
termScreenColor src/Dodge/Terminal/Color.hs 9;" f termScreenColor src/Dodge/Terminal/Color.hs 9;" f
termSoundLine src/Dodge/Terminal.hs 111;" f termSoundLine src/Dodge/Terminal.hs 111;" f
termTextColor src/Dodge/Terminal.hs 114;" f termTextColor src/Dodge/Terminal.hs 114;" f
terminalColor src/Dodge/Placement/Instance/Terminal.hs 66;" f terminalColor src/Dodge/Placement/Instance/Terminal.hs 64;" f
terminalReturnEffect src/Dodge/Terminal.hs 276;" f terminalReturnEffect src/Dodge/Terminal.hs 276;" f
terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f
@@ -6224,7 +6221,7 @@ updateCreature src/Dodge/Creature/Update.hs 13;" f
updateCreatureGroups src/Dodge/Update.hs 520;" f updateCreatureGroups src/Dodge/Update.hs 520;" f
updateCreatureSoundPositions src/Dodge/Update.hs 496;" f updateCreatureSoundPositions src/Dodge/Update.hs 496;" f
updateDebugMessageOffset src/Dodge/Update.hs 95;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f
updateDelayedEvents src/Dodge/Update.hs 836;" f updateDelayedEvents src/Dodge/Update.hs 834;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 541;" f updateDistortions src/Dodge/Update.hs 541;" f