Simplify Prop drawing

This commit is contained in:
2025-10-25 13:54:40 +01:00
parent ff03efc41f
commit 7585531dd1
9 changed files with 73 additions and 201 deletions
+2 -19
View File
@@ -14,7 +14,7 @@ import ShapePicture.Data
data Prop = ShapeProp data Prop = ShapeProp
{ _prPos :: Point2 { _prPos :: Point2
, _prDraw :: PropDraw , _prDraw :: SPic
, _prUpdate :: PropUpdate , _prUpdate :: PropUpdate
, _prID :: Int , _prID :: Int
, _prRot :: Float , _prRot :: Float
@@ -22,10 +22,7 @@ data Prop = ShapeProp
} }
data DebrisType data DebrisType
= Gib = Gib { _gibSize :: Float , _gibColor :: Color }
{ _gibSize :: Float
, _gibColor :: Color
}
| BlockDebris {_bdColor :: Color} | BlockDebris {_bdColor :: Color}
data Debris = DebrisChunk data Debris = DebrisChunk
@@ -36,15 +33,6 @@ data Debris = DebrisChunk
, _dbSpin :: Q.Quaternion Float , _dbSpin :: Q.Quaternion Float
} }
data PropDraw
= PropDrawFlatTranslate SPic
| PropDoubleLampCover Float
| PropVerticalLampCover Float
| PropLampCover Float
-- | PropDrawGib Float
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data PropUpdate data PropUpdate
= PropUpdateId = PropUpdateId
| PropUpdateAnd PropUpdate PropUpdate | PropUpdateAnd PropUpdate PropUpdate
@@ -56,21 +44,16 @@ data PropUpdate
| PropUpdateWhen WdBl PropUpdate | PropUpdateWhen WdBl PropUpdate
| PropUpdateIf WdBl PropUpdate PropUpdate | PropUpdateIf WdBl PropUpdate PropUpdate
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data PrWdLsLs data PrWdLsLs
= PrWdLsId = PrWdLsId
| PrWdLsSetPosition WdP2f Point3 | PrWdLsSetPosition WdP2f Point3
| PrWdLsSetColor Point3 | PrWdLsSetColor Point3
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Prop makeLenses ''Prop
makeLenses ''Debris makeLenses ''Debris
makeLenses ''DebrisType makeLenses ''DebrisType
deriveJSON defaultOptions ''DebrisType deriveJSON defaultOptions ''DebrisType
deriveJSON defaultOptions ''Debris deriveJSON defaultOptions ''Debris
deriveJSON defaultOptions ''PropDraw
deriveJSON defaultOptions ''PrWdLsLs deriveJSON defaultOptions ''PrWdLsLs
deriveJSON defaultOptions ''PropUpdate deriveJSON defaultOptions ''PropUpdate
deriveJSON defaultOptions ''Prop deriveJSON defaultOptions ''Prop
+1 -1
View File
@@ -7,7 +7,7 @@ defaultProp :: Prop
defaultProp = defaultProp =
ShapeProp ShapeProp
{ _prPos = V2 0 0 { _prPos = V2 0 0
, _prDraw = PropDrawFlatTranslate mempty , _prDraw = mempty
, _prID = 0 , _prID = 0
, _prUpdate = PropUpdateId , _prUpdate = PropUpdateId
, _prToggle = True , _prToggle = True
-2
View File
@@ -1,7 +1,6 @@
module Dodge.Placement.Instance module Dodge.Placement.Instance
( module Dodge.Placement.Instance.Door ( module Dodge.Placement.Instance.Door
, module Dodge.Placement.Instance.LightSource , module Dodge.Placement.Instance.LightSource
, module Dodge.Placement.Instance.LightSource.Cover
, module Dodge.Placement.Instance.Wall , module Dodge.Placement.Instance.Wall
, module Dodge.Placement.Instance.Tank , module Dodge.Placement.Instance.Tank
, module Dodge.Placement.Instance.Button , module Dodge.Placement.Instance.Button
@@ -14,7 +13,6 @@ module Dodge.Placement.Instance
where where
import Dodge.Placement.Instance.Door import Dodge.Placement.Instance.Door
import Dodge.Placement.Instance.Tank import Dodge.Placement.Instance.Tank
import Dodge.Placement.Instance.LightSource.Cover
import Dodge.Placement.Instance.LightSource import Dodge.Placement.Instance.LightSource
import Dodge.Placement.Instance.LightSource.Flicker import Dodge.Placement.Instance.LightSource.Flicker
import Dodge.Placement.Instance.Wall import Dodge.Placement.Instance.Wall
+1 -1
View File
@@ -57,7 +57,7 @@ moveLSThen posf off sh = propLSThen (PropUpdatePosition posf) (PrWdLsSetPosition
, _prRot = 0 , _prRot = 0
, _prUpdate = PropUpdateId , _prUpdate = PropUpdateId
, --, _prDraw = PropDrawSPic $ noPic $ uncurryV translateSHf (_prPos pr) $ rotateSH (_pjRot pr) sh , --, _prDraw = PropDrawSPic $ noPic $ uncurryV translateSHf (_prPos pr) $ rotateSH (_pjRot pr) sh
_prDraw = PropDrawFlatTranslate $ noPic sh _prDraw = noPic sh
, _prToggle = True , _prToggle = True
} }
@@ -1,43 +0,0 @@
module Dodge.Placement.Instance.LightSource.Cover where
import Dodge.Data.Prop
import Dodge.Data.WorldEffect
import Dodge.Default.Prop
import Geometry.Data
lampCover :: Float -> Prop
lampCover h =
ShapeProp
{ _prPos = V2 0 0
, _prID = 0
, _prRot = 0
, _prUpdate = PropRotate 0.15
, _prDraw = PropLampCover h
, _prToggle = True
}
lampCoverWhen :: WdBl -> Point2 -> Float -> Prop
lampCoverWhen cond pos h =
defaultProp
{ _prPos = pos
, _prUpdate = PropSetToggleAnd cond (PropRotate 0.15)
, _prDraw = PropLampCover h
, _prToggle = True
}
doubleLampCover :: Float -> Prop
doubleLampCover h =
defaultProp
{ _prPos = V2 0 0
, _prUpdate = PropRotate 0.15
, _prDraw = PropDoubleLampCover h
}
-- on the current (27/9/21) version of shadow stencilling, this glitches
-- slightly when the shadow rotates towards the screen
verticalLampCover :: Float -> Prop
verticalLampCover h =
defaultProp
{ _prUpdate = PropRotate 0.15
, _prDraw = PropVerticalLampCover h
}
+7 -62
View File
@@ -1,11 +1,12 @@
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
module Dodge.Prop.Draw ( module Dodge.Prop.Draw (
propSPic, propSPic,
debrisSPic, debrisSPic,
) where ) where
import Dodge.Block.Debris
import Control.Lens import Control.Lens
import Dodge.Block.Debris
import Dodge.Data.Prop import Dodge.Data.Prop
import Geometry.Data import Geometry.Data
import Geometry.Polygon import Geometry.Polygon
@@ -15,21 +16,17 @@ import Shape
import ShapePicture import ShapePicture
propSPic :: Prop -> SPic propSPic :: Prop -> SPic
propSPic pr = drawProp (_prDraw pr) pr propSPic pr = drawProp pr
debrisSPic :: Debris -> SPic debrisSPic :: Debris -> SPic
debrisSPic db = translateSP (_dbPos db) . overPosSP (Q.rotate (_dbRot db)) $ debrisSPic db = translateSP (_dbPos db) . overPosSP (Q.rotate (_dbRot db)) $
case db ^. dbType of case db ^. dbType of
Gib x col -> noPic $ drawGib x col Gib x col -> noPic $ drawGib x col
BlockDebris m -> noPic . colorSH m $ cubeShape 4 BlockDebris m -> noPic . colorSH m $ cubeShape 4
drawProp :: PropDraw -> Prop -> SPic drawProp :: Prop -> SPic
drawProp = \case drawProp pr =
PropDoubleLampCover h -> drawDoubleLampCover h uncurryV translateSPxy (_prPos pr) $ rotateSP (_prRot pr) $ pr ^. prDraw
PropVerticalLampCover h -> drawVerticalLampCover h
PropLampCover h -> drawLampCover h
PropDrawFlatTranslate x -> \pr ->
uncurryV translateSPxy (_prPos pr) $ rotateSP (_prRot pr) x
drawGib :: Float -> Color -> Shape drawGib :: Float -> Color -> Shape
drawGib x col = flesh <> skin drawGib x col = flesh <> skin
@@ -42,55 +39,3 @@ drawGib x col = flesh <> skin
translateSH (V3 1 1 (1 - x)) baseCube translateSH (V3 1 1 (1 - x)) baseCube
baseCube = upperPrismPoly Small Typical (2 * x) $ square x baseCube = upperPrismPoly Small Typical (2 * x) $ square x
drawLampCover :: Float -> Prop -> SPic
drawLampCover h pr =
noPic
( translateSHz (h -2.5) . uncurryV translateSHxy (_prPos pr) $
rotateSH (_prRot pr) $
mconcat
[ aface 1 2 (-1)
, aface 1 (-1) 2
, aface 2 2 (-1)
, aface 2 (-1) 2
, upperPrismPoly Small Essential 1 [V2 2 2, V2 (-1) 2, V2 2 (-1)]
]
)
where
aface ztran s w = translateSHz ztran . upperPrismPoly Small Essential 1 $ rectNSWE 3 s w 3
drawVerticalLampCover :: Float -> Prop -> SPic
drawVerticalLampCover h pr =
noPic
( translateSHz h . uncurryV translateSHxy (_prPos pr)
. rotateSHx (_prRot pr)
. translateSHz (-3)
. upperPrismPoly Small Essential 1
$ rectNSWE 2 (-2) (-5) 5
)
--drawMovingShape :: Prop -> SPic -> SPic
--drawMovingShape pr =
-- translateSPz (_prPosZ pr)
-- . uncurryV translateSPxy (_prPos pr)
-- . overPosSP (Q.rotate (_prQuat pr))
--drawMovingShapeCol :: Prop -> Shape -> SPic
--drawMovingShapeCol pr =
-- noPic
-- . translateSHz (_prPosZ pr)
-- . uncurryV translateSHxy (_prPos pr)
-- . overPosSH (Q.rotate (_prQuat pr))
-- . colorSH (_prColor pr)
drawDoubleLampCover :: Float -> Prop -> SPic
drawDoubleLampCover h pr =
noPic
( translateSHz (h -2.5) . uncurryV translateSHxy (_prPos pr) $
rotateSH (_prRot pr) $
mconcat
[ upperPrismPoly Small Essential 5 $ rectNSWE 6 5 (-6) 6
, upperPrismPoly Small Essential 5 $ rectNSWE (-5) (-6) (-6) 6
, upperPrismPoly Small Essential 1 [V2 0 (-1), V2 6 5, V2 (-6) 5]
, upperPrismPoly Small Essential 1 [V2 0 1, V2 (-6) (-5), V2 6 (-5)]
]
)
+2 -9
View File
@@ -52,8 +52,8 @@ twinSlowDoorRoom w h x =
[ pContID (PS (V2 0 (h -5)) pi) (PutButton $ makeButton col NoWorldEffect) $ [ pContID (PS (V2 0 (h -5)) pi) (PutButton $ makeButton col NoWorldEffect) $
\btid -> jsps0J (putSlideDr (thedoor btid) thewall 1 (V2 x 1) (V2 x h)) $ \btid -> jsps0J (putSlideDr (thedoor btid) thewall 1 (V2 x 1) (V2 x h)) $
ps0 (putSlideDr (thedoor btid) thewall 1 (V2 (- x) 1) (V2 (- x) h)) $ ps0 (putSlideDr (thedoor btid) thewall 1 (V2 (- x) 1) (V2 (- x) h)) $
\did -> jps0' (PutLS (lsColPos (V3 0.75 0 0) (V3 0 (h -1) lampheight))) $ \_ -> jps0' (PutLS (lsColPos (V3 0.75 0 0) (V3 0 (h -1) lampheight))) $
\lspl -> jsps0 $ PutProp $ addColorChange (fromJust $ _plMID lspl) did $ lampCoverWhen (WdBlDoorMoving did) (V2 0 (h -1)) lampheight \_ -> Nothing -- jsps0 $ PutProp $ addColorChange (fromJust $ _plMID lspl) did $ lampCoverWhen (WdBlDoorMoving did) (V2 0 (h -1)) lampheight
] ]
, _rmBound = ps , _rmBound = ps
, _rmName = "twinSlowDoorRoom" , _rmName = "twinSlowDoorRoom"
@@ -63,13 +63,6 @@ twinSlowDoorRoom w h x =
--thewall = switchWallCol red --thewall = switchWallCol red
thewall = defaultDoorWall thewall = defaultDoorWall
wlSpeed = 0.5 wlSpeed = 0.5
addColorChange lsid drid =
over prUpdate $
PropUpdateAnd $
PropUpdateIf
(WdBlDoorMoving drid)
(PropUpdateLS lsid (PrWdLsSetColor (V3 8 0 0)))
(PropUpdateLS lsid (PrWdLsSetColor 0.7))
lampheight = 41 lampheight = 41
ps = ps =
[ rectNSWE h 0 (- w) w [ rectNSWE h 0 (- w) w
+2 -2
View File
@@ -46,7 +46,8 @@ tutAnoTree = do
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor , corDoor
, return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward airlock90 -- , return $ tToBTree "cor" $ return $ cleatOnward airlock90
, return $ tToBTree "cor" $ return $ cleatOnward (twinSlowDoorRoom 80 200 40)
, return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward airlock0 , return $ tToBTree "cor" $ return $ cleatOnward airlock0
, return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor
@@ -62,7 +63,6 @@ tutAnoTree = do
, return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward (twinSlowDoorRoom 80 200 40)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor
+58 -62
View File
@@ -127,7 +127,7 @@ BlConst src/Dodge/Data/BlBl.hs 11;" C
BlId src/Dodge/Data/BlBl.hs 12;" C BlId src/Dodge/Data/BlBl.hs 12;" C
BlNegate src/Dodge/Data/BlBl.hs 10;" C BlNegate src/Dodge/Data/BlBl.hs 10;" C
Block src/Dodge/Data/Block.hs 20;" t Block src/Dodge/Data/Block.hs 20;" t
BlockDebris src/Dodge/Data/Prop.hs 29;" C BlockDebris src/Dodge/Data/Prop.hs 26;" C
BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 30;" C BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 30;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C
BlockedLink src/Dodge/Data/Room.hs 50;" C BlockedLink src/Dodge/Data/Room.hs 50;" C
@@ -305,8 +305,8 @@ DamageHitSound src/Dodge/Data/SoundOrigin.hs 40;" C
DamageLaser src/Dodge/Data/Laser.hs 15;" C DamageLaser src/Dodge/Data/Laser.hs 15;" C
DamageSensor src/Dodge/Data/Machine/Sensor.hs 19;" t DamageSensor src/Dodge/Data/Machine/Sensor.hs 19;" t
DamageType src/Dodge/Data/Damage/Type.hs 3;" t DamageType src/Dodge/Data/Damage/Type.hs 3;" t
Debris src/Dodge/Data/Prop.hs 31;" t Debris src/Dodge/Data/Prop.hs 28;" t
DebrisChunk src/Dodge/Data/Prop.hs 31;" C DebrisChunk src/Dodge/Data/Prop.hs 28;" C
DebrisType src/Dodge/Data/Prop.hs 24;" t DebrisType src/Dodge/Data/Prop.hs 24;" t
DebugBool src/Dodge/Data/Config.hs 66;" t DebugBool src/Dodge/Data/Config.hs 66;" t
DebugItem src/Dodge/Data/Universe.hs 57;" t DebugItem src/Dodge/Data/Universe.hs 57;" t
@@ -984,10 +984,10 @@ Polyhedron src/Polyhedra/Data.hs 13;" C
PosInf src/Dodge/Data/CardinalPoint.hs 36;" C PosInf src/Dodge/Data/CardinalPoint.hs 36;" C
PosRooms src/Dodge/Tree/Shift.hs 28;" t PosRooms src/Dodge/Tree/Shift.hs 28;" t
Posture src/Dodge/Data/Creature/Stance.hs 33;" t Posture src/Dodge/Data/Creature/Stance.hs 33;" t
PrWdLsId src/Dodge/Data/Prop.hs 65;" C PrWdLsId src/Dodge/Data/Prop.hs 59;" C
PrWdLsLs src/Dodge/Data/Prop.hs 64;" t PrWdLsLs src/Dodge/Data/Prop.hs 58;" t
PrWdLsSetColor src/Dodge/Data/Prop.hs 67;" C PrWdLsSetColor src/Dodge/Data/Prop.hs 61;" C
PrWdLsSetPosition src/Dodge/Data/Prop.hs 66;" C PrWdLsSetPosition src/Dodge/Data/Prop.hs 60;" C
PreloadData src/Data/Preload.hs 10;" t PreloadData src/Data/Preload.hs 10;" t
PrimitiveMode src/Shader/Data.hs 99;" t PrimitiveMode src/Shader/Data.hs 99;" t
PrintMaterial src/Dodge/Data/AmmoType.hs 12;" C PrintMaterial src/Dodge/Data/AmmoType.hs 12;" C
@@ -997,22 +997,21 @@ ProjectileParams src/Dodge/Data/Item/Use.hs 51;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 36;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 36;" C
ProjectileType src/Dodge/Data/Projectile.hs 30;" t ProjectileType src/Dodge/Data/Projectile.hs 30;" t
Prop src/Dodge/Data/Prop.hs 15;" t Prop src/Dodge/Data/Prop.hs 15;" t
PropDoubleLampCover src/Dodge/Data/Prop.hs 44;" C PropDoubleLampCover src/Dodge/Data/Prop.hs 38;" C
PropDraw src/Dodge/Data/Prop.hs 41;" t PropDraw src/Dodge/Data/Prop.hs 36;" t
PropDrawFlatTranslate src/Dodge/Data/Prop.hs 43;" C PropDrawFlatTranslate src/Dodge/Data/Prop.hs 37;" C
PropDrawSPic src/Dodge/Data/Prop.hs 42;" C PropLampCover src/Dodge/Data/Prop.hs 40;" C
PropLampCover src/Dodge/Data/Prop.hs 46;" C PropRotate src/Dodge/Data/Prop.hs 48;" C
PropRotate src/Dodge/Data/Prop.hs 54;" C PropSetToggleAnd src/Dodge/Data/Prop.hs 49;" C
PropSetToggleAnd src/Dodge/Data/Prop.hs 55;" C PropUpdate src/Dodge/Data/Prop.hs 45;" t
PropUpdate src/Dodge/Data/Prop.hs 51;" t PropUpdateAnd src/Dodge/Data/Prop.hs 47;" C
PropUpdateAnd src/Dodge/Data/Prop.hs 53;" C PropUpdateId src/Dodge/Data/Prop.hs 46;" C
PropUpdateId src/Dodge/Data/Prop.hs 52;" C PropUpdateIf src/Dodge/Data/Prop.hs 54;" C
PropUpdateIf src/Dodge/Data/Prop.hs 60;" C PropUpdateLS src/Dodge/Data/Prop.hs 51;" C
PropUpdateLS src/Dodge/Data/Prop.hs 57;" C PropUpdatePosition src/Dodge/Data/Prop.hs 52;" C
PropUpdatePosition src/Dodge/Data/Prop.hs 58;" C PropUpdateWhen src/Dodge/Data/Prop.hs 53;" C
PropUpdateWhen src/Dodge/Data/Prop.hs 59;" C PropUpdates src/Dodge/Data/Prop.hs 50;" C
PropUpdates src/Dodge/Data/Prop.hs 56;" C PropVerticalLampCover src/Dodge/Data/Prop.hs 39;" C
PropVerticalLampCover src/Dodge/Data/Prop.hs 45;" C
ProxSensor src/Dodge/Data/Machine/Sensor.hs 25;" C ProxSensor src/Dodge/Data/Machine/Sensor.hs 25;" C
ProximityRequirement src/Dodge/Data/Machine/Sensor.hs 34;" t ProximityRequirement src/Dodge/Data/Machine/Sensor.hs 34;" t
ProximitySensor src/Dodge/Data/Machine/Sensor.hs 25;" t ProximitySensor src/Dodge/Data/Machine/Sensor.hs 25;" t
@@ -1521,7 +1520,7 @@ _avatarMaterial src/Dodge/Data/Creature/Misc.hs 61;" f
_avatarPulse src/Dodge/Data/Creature/Misc.hs 60;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 60;" f
_barrelShader src/Data/Preload/Render.hs 23;" f _barrelShader src/Data/Preload/Render.hs 23;" f
_barrelType src/Dodge/Data/Creature/Misc.hs 71;" f _barrelType src/Dodge/Data/Creature/Misc.hs 71;" f
_bdColor src/Dodge/Data/Prop.hs 29;" f _bdColor src/Dodge/Data/Prop.hs 26;" f
_bdMaxX src/Dodge/Data/Bounds.hs 12;" f _bdMaxX src/Dodge/Data/Bounds.hs 12;" f
_bdMaxY src/Dodge/Data/Bounds.hs 14;" f _bdMaxY src/Dodge/Data/Bounds.hs 14;" f
_bdMinX src/Dodge/Data/Bounds.hs 11;" f _bdMinX src/Dodge/Data/Bounds.hs 11;" f
@@ -1692,11 +1691,11 @@ _cwgRoomClipping src/Dodge/Data/CWorld.hs 40;" f
_cwgSeed src/Dodge/Data/CWorld.hs 41;" f _cwgSeed src/Dodge/Data/CWorld.hs 41;" f
_cwgWorldBounds src/Dodge/Data/CWorld.hs 38;" f _cwgWorldBounds src/Dodge/Data/CWorld.hs 38;" f
_cylinderSize src/Shape/Data.hs 14;" f _cylinderSize src/Shape/Data.hs 14;" f
_dbPos src/Dodge/Data/Prop.hs 32;" f _dbPos src/Dodge/Data/Prop.hs 29;" f
_dbRot src/Dodge/Data/Prop.hs 35;" f _dbRot src/Dodge/Data/Prop.hs 32;" f
_dbSpin src/Dodge/Data/Prop.hs 36;" f _dbSpin src/Dodge/Data/Prop.hs 33;" f
_dbType src/Dodge/Data/Prop.hs 33;" f _dbType src/Dodge/Data/Prop.hs 30;" f
_dbVel src/Dodge/Data/Prop.hs 34;" f _dbVel src/Dodge/Data/Prop.hs 31;" f
_debris src/Dodge/Data/LWorld.hs 99;" f _debris src/Dodge/Data/LWorld.hs 99;" f
_debugFunction src/Dodge/Data/Universe.hs 59;" f _debugFunction src/Dodge/Data/Universe.hs 59;" f
_debugMessage src/Dodge/Data/Universe.hs 58;" f _debugMessage src/Dodge/Data/Universe.hs 58;" f
@@ -1797,11 +1796,9 @@ _floorItems src/Dodge/Data/LWorld.hs 125;" f
_floorShader src/Data/Preload/Render.hs 44;" f _floorShader src/Data/Preload/Render.hs 44;" f
_floorVBO src/Data/Preload/Render.hs 43;" f _floorVBO src/Data/Preload/Render.hs 43;" f
_foreShapes src/Dodge/Data/LWorld.hs 130;" f _foreShapes src/Dodge/Data/LWorld.hs 130;" f
_fsDir src/Dodge/Data/ForegroundShape.hs 15;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f
_fsID src/Dodge/Data/ForegroundShape.hs 13;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f
_fsPos src/Dodge/Data/ForegroundShape.hs 14;" f _fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f
_fsRad src/Dodge/Data/ForegroundShape.hs 16;" f
_fsSPic src/Dodge/Data/ForegroundShape.hs 17;" f
_fullscreenShader src/Data/Preload/Render.hs 20;" f _fullscreenShader src/Data/Preload/Render.hs 20;" f
_futureWorlds src/Dodge/Data/World.hs 67;" f _futureWorlds src/Dodge/Data/World.hs 67;" f
_futureWorlds src/Dodge/Data/World.hs 73;" f _futureWorlds src/Dodge/Data/World.hs 73;" f
@@ -1816,8 +1813,8 @@ _getSoundID src/Sound/Data.hs 30;" f
_gfConstant src/Dodge/Data/GenFloat.hs 9;" f _gfConstant src/Dodge/Data/GenFloat.hs 9;" f
_gfMax src/Dodge/Data/GenFloat.hs 10;" f _gfMax src/Dodge/Data/GenFloat.hs 10;" f
_gfMin src/Dodge/Data/GenFloat.hs 10;" f _gfMin src/Dodge/Data/GenFloat.hs 10;" f
_gibColor src/Dodge/Data/Prop.hs 27;" f _gibColor src/Dodge/Data/Prop.hs 25;" f
_gibSize src/Dodge/Data/Prop.hs 26;" f _gibSize src/Dodge/Data/Prop.hs 25;" f
_gnHitEffect src/Dodge/Data/Projectile.hs 31;" f _gnHitEffect src/Dodge/Data/Projectile.hs 31;" f
_grBound src/Dodge/GameRoom.hs 15;" f _grBound src/Dodge/GameRoom.hs 15;" f
_grDir src/Dodge/GameRoom.hs 17;" f _grDir src/Dodge/GameRoom.hs 17;" f
@@ -2491,7 +2488,7 @@ addGirderNS' src/Dodge/Room/Modify/Girder.hs 55;" f
addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f
addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f
addIndefiniteArticle src/StringHelp.hs 17;" f addIndefiniteArticle src/StringHelp.hs 17;" f
addPane src/Dodge/Placement/PlaceSpot.hs 180;" f addPane src/Dodge/Placement/PlaceSpot.hs 176;" f
addPointPolygon src/Geometry/Polygon.hs 134;" f addPointPolygon src/Geometry/Polygon.hs 134;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
@@ -2614,7 +2611,7 @@ bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
bangStick src/Dodge/Item/Held/Stick.hs 15;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 231;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 80;" f barrelShape src/Dodge/Render/ShapePicture.hs 80;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f
@@ -3021,7 +3018,7 @@ deadRot src/Dodge/Creature/Picture.hs 84;" f
deadScalp src/Dodge/Creature/Picture.hs 81;" f deadScalp src/Dodge/Creature/Picture.hs 81;" f
deadUpperBody src/Dodge/Creature/Picture.hs 113;" f deadUpperBody src/Dodge/Creature/Picture.hs 113;" f
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f
debrisSPic src/Dodge/Prop/Draw.hs 20;" f debrisSPic src/Dodge/Prop/Draw.hs 21;" f
debrisSize src/Dodge/Block/Debris.hs 84;" f debrisSize src/Dodge/Block/Debris.hs 84;" f
debugEvent src/Dodge/Debug.hs 36;" f debugEvent src/Dodge/Debug.hs 36;" f
debugEvents src/Dodge/Debug.hs 21;" f debugEvents src/Dodge/Debug.hs 21;" f
@@ -3271,7 +3268,7 @@ drawFlame src/Dodge/Flame/Draw.hs 8;" f
drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f
drawForceField src/Dodge/Wall/Draw.hs 13;" f drawForceField src/Dodge/Wall/Draw.hs 13;" f
drawGapPlus src/Dodge/Render/Picture.hs 280;" f drawGapPlus src/Dodge/Render/Picture.hs 280;" f
drawGib src/Dodge/Prop/Draw.hs 37;" f drawGib src/Dodge/Prop/Draw.hs 38;" f
drawHUD src/Dodge/Render/HUD.hs 51;" f drawHUD src/Dodge/Render/HUD.hs 51;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f
drawInspectWall src/Dodge/Debug/Picture.hs 253;" f drawInspectWall src/Dodge/Debug/Picture.hs 253;" f
@@ -3282,7 +3279,7 @@ drawItemConnections src/Dodge/Render/HUD.hs 319;" f
drawJumpDown src/Dodge/Render/Picture.hs 192;" f drawJumpDown src/Dodge/Render/Picture.hs 192;" f
drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f
drawLabelledList src/Dodge/Render/List.hs 212;" f drawLabelledList src/Dodge/Render/List.hs 212;" f
drawLampCover src/Dodge/Prop/Draw.hs 48;" f drawLampCover src/Dodge/Prop/Draw.hs 49;" f
drawLaser src/Dodge/Laser/Update.hs 29;" f drawLaser src/Dodge/Laser/Update.hs 29;" f
drawLightSource src/Dodge/LightSource/Draw.hs 7;" f drawLightSource src/Dodge/LightSource/Draw.hs 7;" f
drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f
@@ -3307,7 +3304,7 @@ drawPathing src/Dodge/Debug/Picture.hs 403;" f
drawPlus src/Dodge/Render/Picture.hs 165;" f drawPlus src/Dodge/Render/Picture.hs 165;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 26;" f drawProp src/Dodge/Prop/Draw.hs 27;" f
drawProxSensor src/Dodge/Machine/Draw.hs 37;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 63;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 63;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f
@@ -3585,9 +3582,9 @@ getWallPathing src/Dodge/Wall/Pathing.hs 7;" f
getWallSPic src/Dodge/Render/Walls.hs 53;" f getWallSPic src/Dodge/Render/Walls.hs 53;" f
getWindowSize src/Dodge/WindowSize.hs 5;" f getWindowSize src/Dodge/WindowSize.hs 5;" f
gimbal src/Dodge/Item/Scope.hs 153;" f gimbal src/Dodge/Item/Scope.hs 153;" f
girder src/Dodge/Room/Foreground.hs 211;" f girder src/Dodge/Room/Foreground.hs 206;" f
girderV src/Dodge/Room/Foreground.hs 182;" f girderV src/Dodge/Room/Foreground.hs 177;" f
girderV' src/Dodge/Room/Foreground.hs 157;" f girderV' src/Dodge/Room/Foreground.hs 153;" f
girderZ src/Dodge/Room/Foreground.hs 108;" f girderZ src/Dodge/Room/Foreground.hs 108;" f
glNamedBufferSubDataH src/Shader/Bind.hs 53;" f glNamedBufferSubDataH src/Shader/Bind.hs 53;" f
glassLesson src/Dodge/Room/GlassLesson.hs 23;" f glassLesson src/Dodge/Room/GlassLesson.hs 23;" f
@@ -4137,7 +4134,7 @@ metalPlate src/Dodge/Item/Craftable.hs 35;" f
mglCreate src/GLHelp.hs 8;" f mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f midBounds src/Dodge/Room/Foreground.hs 150;" f
midChasm src/Dodge/Room/Tutorial.hs 172;" f midChasm src/Dodge/Room/Tutorial.hs 172;" f
midPad src/Padding.hs 27;" f midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f midPadL src/Padding.hs 33;" f
@@ -4200,16 +4197,16 @@ muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 678;" f muzFlareAt src/Dodge/HeldUse.hs 678;" f
muzzlePos src/Dodge/HeldUse.hs 769;" f muzzlePos src/Dodge/HeldUse.hs 769;" f
muzzleRandPos src/Dodge/HeldUse.hs 778;" f muzzleRandPos src/Dodge/HeldUse.hs 778;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 188;" f mvButton src/Dodge/Placement/PlaceSpot.hs 184;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvCr src/Dodge/Placement/PlaceSpot.hs 187;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 198;" f mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f
mvGust src/Dodge/Update.hs 784;" f mvGust src/Dodge/Update.hs 784;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 233;" f mvLS src/Dodge/Placement/PlaceSpot.hs 229;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
mvPointToward src/Dodge/Base.hs 136;" f mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 185;" f mvProp src/Dodge/Placement/PlaceSpot.hs 181;" f
myIntersectLineLine src/Geometry/Intersect.hs 198;" f myIntersectLineLine src/Geometry/Intersect.hs 198;" f
myIntersectSegSeg src/Geometry/Intersect.hs 176;" f myIntersectSegSeg src/Geometry/Intersect.hs 176;" f
myParams src/Dodge/Combine/Graph.hs 101;" f myParams src/Dodge/Combine/Graph.hs 101;" f
@@ -4346,20 +4343,20 @@ pjRemoteSetDirection src/Dodge/Projectile/Update.hs 172;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 53;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 53;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 201;" f plMachine src/Dodge/Placement/PlaceSpot.hs 197;" f
plNew src/Dodge/Base/NewID.hs 19;" f plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 27;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
placeChasm src/Dodge/Placement/PlaceSpot.hs 159;" f placeChasm src/Dodge/Placement/PlaceSpot.hs 155;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 228;" f placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 224;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 105;" f placeSpotID src/Dodge/Placement/PlaceSpot.hs 105;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f
placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 68;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 68;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 175;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 171;" f
plainRegex src/Dodge/DisplayInventory.hs 189;" f plainRegex src/Dodge/DisplayInventory.hs 189;" f
playIfFree src/Sound.hs 137;" f playIfFree src/Sound.hs 137;" f
playPositionalSoundQueue src/Sound.hs 145;" f playPositionalSoundQueue src/Sound.hs 145;" f
@@ -4482,7 +4479,7 @@ prismPoly src/Shape.hs 59;" f
projV src/Geometry/Vector.hs 177;" f projV src/Geometry/Vector.hs 177;" f
projV3 src/Geometry/Vector3D.hs 127;" f projV3 src/Geometry/Vector3D.hs 127;" f
propLSThen src/Dodge/Placement/Instance/LightSource.hs 29;" f propLSThen src/Dodge/Placement/Instance/LightSource.hs 29;" f
propSPic src/Dodge/Prop/Draw.hs 17;" f propSPic src/Dodge/Prop/Draw.hs 18;" f
propSetToggleAnd src/Dodge/Prop/Update.hs 39;" f propSetToggleAnd src/Dodge/Prop/Update.hs 39;" f
propUpdateIf src/Dodge/Prop/Update.hs 23;" f propUpdateIf src/Dodge/Prop/Update.hs 23;" f
propUpdatePosition src/Dodge/Prop/Update.hs 28;" f propUpdatePosition src/Dodge/Prop/Update.hs 28;" f
@@ -4531,8 +4528,8 @@ putTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f
putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 22;" f putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 22;" f
putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 17;" f putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 17;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f putWireEnd src/Dodge/Wire.hs 29;" f
putWireStart src/Dodge/Wire.hs 34;" f putWireStart src/Dodge/Wire.hs 32;" f
qID src/Quaternion.hs 58;" f qID src/Quaternion.hs 58;" f
qToAng src/Quaternion.hs 55;" f qToAng src/Quaternion.hs 55;" f
qToV2 src/Quaternion.hs 52;" f qToV2 src/Quaternion.hs 52;" f
@@ -4544,7 +4541,6 @@ qz src/Quaternion.hs 67;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f rToOnward src/Dodge/Cleat.hs 21;" f
radBounds src/Dodge/Room/Foreground.hs 154;" f
radToDeg src/Geometry/Vector.hs 123;" f radToDeg src/Geometry/Vector.hs 123;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
@@ -4858,8 +4854,8 @@ setupWorldBounds src/Dodge/Layout.hs 116;" f
sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f
shadVBOptr src/Shader.hs 40;" f shadVBOptr src/Shader.hs 40;" f
shaderTypeExt src/Shader/Compile.hs 172;" f shaderTypeExt src/Shader/Compile.hs 172;" f
shapeBounds src/Dodge/Room/Foreground.hs 148;" f shapeBounds src/Dodge/Room/Foreground.hs 147;" f
shapePoints src/Dodge/Room/Foreground.hs 145;" f shapePoints src/Dodge/Room/Foreground.hs 144;" f
shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxAttributes src/Shape/Parameters.hs 13;" f
shapeVerxSize src/Shape/Parameters.hs 10;" f shapeVerxSize src/Shape/Parameters.hs 10;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
@@ -5477,7 +5473,7 @@ vertTrans src/MatrixHelper.hs 87;" f
verticalLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 38;" f verticalLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 38;" f
verticalPipe src/Dodge/Picture.hs 19;" f verticalPipe src/Dodge/Picture.hs 19;" f
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
verticalWire src/Dodge/Wire.hs 24;" f verticalWire src/Dodge/Wire.hs 23;" f
vgunMuzzles src/Dodge/HeldUse.hs 341;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f
viewBoundaries src/Dodge/Debug/Picture.hs 327;" f viewBoundaries src/Dodge/Debug/Picture.hs 327;" f
viewClipBounds src/Dodge/Debug/Picture.hs 336;" f viewClipBounds src/Dodge/Debug/Picture.hs 336;" f