From 581d832569b4070956fc2313e1cdfc1f02e54b2d Mon Sep 17 00:00:00 2001 From: justin Date: Sun, 23 Nov 2025 14:14:37 +0000 Subject: [PATCH] Add a base to blocks --- src/Dodge/Material/Color.hs | 20 ++--- src/Dodge/Placement/Instance/Wall.hs | 44 ---------- src/Dodge/Placement/PlaceSpot/Block.hs | 18 +++- src/Dodge/Render/ShapePicture.hs | 6 +- src/Framebuffer/Update.hs | 4 +- src/Shape.hs | 7 +- tags | 113 +++++++++++++------------ 7 files changed, 90 insertions(+), 122 deletions(-) diff --git a/src/Dodge/Material/Color.hs b/src/Dodge/Material/Color.hs index 8d11a84cc..17af0e24c 100644 --- a/src/Dodge/Material/Color.hs +++ b/src/Dodge/Material/Color.hs @@ -2,17 +2,17 @@ module Dodge.Material.Color (materialColor) where -import Dodge.Data.Material import Color +import Dodge.Data.Material materialColor :: Material -> Color materialColor = \case - Wood -> dark yellow - Dirt -> dark $ dark orange - Stone -> greyN 0.5 - Glass -> aquamarine - Metal -> orange - Crystal -> green - Flesh -> red - Electronics -> greyN 0.2 - ForceField -> magenta + Wood -> dark yellow + Dirt -> dark $ dark orange + Stone -> greyN 0.5 + Glass -> aquamarine + Metal -> orange + Crystal -> green + Flesh -> red + Electronics -> greyN 0.2 + ForceField -> magenta diff --git a/src/Dodge/Placement/Instance/Wall.hs b/src/Dodge/Placement/Instance/Wall.hs index a86f2b78c..c1c350516 100644 --- a/src/Dodge/Placement/Instance/Wall.hs +++ b/src/Dodge/Placement/Instance/Wall.hs @@ -38,14 +38,6 @@ invisibleWall ps = midWall :: [Point2] -> Placement midWall = heightWallPS (PS 0 0) 50 ---singleBlock :: Point2 -> [Placement] ---singleBlock a = --- [ sPS a 0 $ --- PutBlock defaultBlock baseBlockPane $ --- reverse $ --- square 10 --- ] - {- Places a line of blocks between two points. -} @@ -66,17 +58,6 @@ Width 7, also extends out from each point by 7. crystalLine :: Point2 -> Point2 -> Placement crystalLine a = sps0 . PutLineBlock defaultCrystalWall 7 a ---crystalLine a b = sps0 $ PutWall ps defaultCrystalWall --- where --- ps = --- [ a +.+ left +.+ up --- , (a +.+ left) -.- up --- , (b -.- left) -.- up --- , (b -.- left) +.+ up --- ] --- left = 7 *.* normalizeV (a-.-b) --- up = vNormal left --- --{- Places an unbreakable wall between two points. --Depth 15, does not extend wider than points. -- -} @@ -92,14 +73,9 @@ crystalLine a = sps0 . PutLineBlock defaultCrystalWall 7 a -- left = 15 *.* normalizeV (a -.- b) -- up = vNormal left ---windowLineType :: Point2 -> Point2 -> PSType ---windowLineType = PutLineBlock defaultWindow 8 - baseBlockPane :: Wall baseBlockPane = defaultWall & wlOpacity .~ Opaque 17 --- & wlPathFlag .~ S.fromList [WallBlockVisibility, WallNotAutoOpen] - -- TODO find home for this {- Replaces instances of a given 'PutID' with 'PSType's drawn from a list. -} replacePutID :: @@ -132,19 +108,6 @@ subZipWith f g xs ys = isPutID :: Int -> Placement -> Bool isPutID i ps = Just i == ps ^? plType . putID ---putBlockRect' :: Float -> Float -> Placement ---putBlockRect' w h = --- ps0jPushPS (aline tl tr) $ --- ps0jPushPS (aline tr br) $ --- ps0jPushPS (aline br bl) $ --- sps0 (aline bl tl) --- where --- tl = V2 (- w) h --- tr = V2 w h --- br = V2 w (- h) --- bl = V2 (- w) (- h) --- aline = PutLineBlock baseBlockPane 9 - putBlockRect :: Float -> Float -> Float -> Float -> [Placement] putBlockRect a x b y = uncurry blockLine <$> loopPairs (rectNSWE b y a x) @@ -154,13 +117,6 @@ putBlockV a x b y = uncurry blockLine <$> , (V2 x b, V2 a b) ] ---putBlockC :: Float -> Float -> Float -> Float -> [Placement] ---putBlockC a x b y = --- [ blockLine (V2 a b) (V2 a y) --- , blockLine (V2 x b) (V2 a b) --- , blockLine (V2 a y) (V2 x y) --- ] - putBlockN :: Float -> Float -> Float -> Float -> [Placement] putBlockN a x b y = uncurry blockLine <$> [ (V2 a b, V2 a y) diff --git a/src/Dodge/Placement/PlaceSpot/Block.hs b/src/Dodge/Placement/PlaceSpot/Block.hs index 32ec0ec13..a83ff4eeb 100644 --- a/src/Dodge/Placement/PlaceSpot/Block.hs +++ b/src/Dodge/Placement/PlaceSpot/Block.hs @@ -6,7 +6,11 @@ module Dodge.Placement.PlaceSpot.Block ( insertStructureWalls, ) where -import Control.Lens +import Dodge.Material.Color +import Linear +import ShapePicture +import Shape +import LensHelp import qualified Data.IntSet as IS import Data.List import qualified Data.Set as S @@ -53,6 +57,7 @@ insertStructureWalls f wl ps sid wid = plLineBlock :: -- | Base pane Wall -> + -- | Block width Float -> -- | Start point (symmetric) Point2 -> @@ -62,7 +67,7 @@ plLineBlock :: (Int, GenWorld) plLineBlock basePane blwidth a b gw = ( 0 - , over gwWorld insertBlocks gw + , over gwWorld (insertBase . insertBlocks) gw ) where depth = blwidth @@ -76,6 +81,15 @@ plLineBlock basePane blwidth a b gw = linesAt p = loopPairs $ cornersAt p wlid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . walls blid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . blocks + insertBase = + cWorld . lWorld . foreShapes .:~ ForegroundShape + midp 0 (noPic . colorSH (materialColor $ basePane ^. wlMaterial) + $ upperBox Medium Typical 3 + [a + x + n - midp, a + x - (n + midp), b - (n + x + midp), b + n - (x + midp)] + ) + midp = (0.5 * (a + b)) + x = (blwidth + 1) *^ (normalize $ a - b) + n = vNormal x insertBlock (i, p) = insertWalls (makeWallAt p i) . over diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index b8ad7e187..0f676062f 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -26,8 +26,7 @@ worldSPic cfig u = <> foldMap' debrisSPic (filtOn' (xyV3 . _dbPos) _debris) <> foldup drawProjectile (filtOn (^. pjPos . _xy) _projectiles) <> foldup drawPulseBall (filtOn _pbPos _pulseBalls) - <> foldup (shiftDraw _blPos _blDir (const $ noPic . _blDraw)) - (filtOn _blPos _blocks) + <> foldup (shiftDraw _blPos _blDir (const drawBlock)) (filtOn _blPos _blocks) <> foldMap' (shiftDraw _fsPos _fsDir (const _fsSPic)) (filtOn' _fsPos _foreShapes) <> foldup (drawCreature (lw ^. items)) (filtOn (^. crPos . _xy) _creatures) <> foldup @@ -49,6 +48,9 @@ worldSPic cfig u = filtOn' f g = filter (pointIsClose . f) (g lw) pointIsClose = cullPoint cfig w +drawBlock :: Block -> SPic +drawBlock = (noPic . _blDraw) + drawChasm :: [Point2] -> SPic drawChasm = foldMap (Prelude.uncurry drawCliff) . loopPairs diff --git a/src/Framebuffer/Update.hs b/src/Framebuffer/Update.hs index d46ca26f9..de84fd8b3 100644 --- a/src/Framebuffer/Update.hs +++ b/src/Framebuffer/Update.hs @@ -25,7 +25,7 @@ sizeFBOs cfig rdata = (getWindowSize _gr_world_res cfig) GL_NEAREST GL_NEAREST - GL_RGBA16F + GL_RGBA16F -- not sure if the alpha is necessary here GL_RGB16F -- could possibly recover using depth in a clever way -- but probably not, because the projection matrix is -- not always on-center @@ -54,7 +54,7 @@ sizeFBOs cfig rdata = GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F - [fboBloom, fboPos] + [fboBloom, fboPos] -- fboPos probably doesn't need the alpha channel >>= foldUpdateFBOTO _gr_downsize_res GL_LINEAR_MIPMAP_LINEAR diff --git a/src/Shape.hs b/src/Shape.hs index c2ad3fb05..d7f7866c7 100644 --- a/src/Shape.hs +++ b/src/Shape.hs @@ -70,12 +70,7 @@ prismPoly size shads upps downps = [Surface (RoundedFaces n) (cp : cp : f upps d f (a : as) (b : bs) = a : b : f as bs f _ _ = [] -prismBox :: - Size -> - Importance -> - [Point3] -> - [Point3] -> - Shape +prismBox :: Size -> Importance -> [Point3] -> [Point3] -> Shape {-# INLINE prismBox #-} prismBox size shads upps downps = [Surface (FlatFaces n) (f upps downps) white shads size] where diff --git a/tags b/tags index 6715ac755..139912a99 100644 --- a/tags +++ b/tags @@ -1596,8 +1596,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f _ceSideEffect src/Dodge/Data/Universe.hs 66;" f _ceString src/Dodge/Data/Universe.hs 67;" f _ceilingStencilShader src/Data/Preload/Render.hs 19;" f -_chasmShader src/Data/Preload/Render.hs 46;" f -_chasmVBO src/Data/Preload/Render.hs 45;" f +_chasmShader src/Data/Preload/Render.hs 45;" f +_chasmVBO src/Data/Preload/Render.hs 44;" f _chasms src/Dodge/Data/CWorld.hs 33;" f _ciFilter src/Dodge/Data/HUD.hs 25;" f _ciInvIDs src/Dodge/Data/Combine.hs 9;" f @@ -1626,8 +1626,8 @@ _clickPos src/Dodge/Data/Input.hs 42;" f _clickWorldPos src/Dodge/Data/Input.hs 44;" f _closeButtons src/Dodge/Data/HUD.hs 36;" f _closeItems src/Dodge/Data/HUD.hs 35;" f -_cloudShader src/Data/Preload/Render.hs 50;" f -_cloudVBO src/Data/Preload/Render.hs 49;" f +_cloudShader src/Data/Preload/Render.hs 49;" f +_cloudVBO src/Data/Preload/Render.hs 48;" f _clouds src/Dodge/Data/LWorld.hs 96;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 22;" f @@ -1756,7 +1756,7 @@ _dsZoning src/Dodge/Data/World.hs 48;" f _dtLeft src/Dodge/Data/DoubleTree.hs 29;" f _dtRight src/Dodge/Data/DoubleTree.hs 29;" f _dtValue src/Dodge/Data/DoubleTree.hs 29;" f -_dummyVAO src/Data/Preload/Render.hs 51;" f +_dummyVAO src/Data/Preload/Render.hs 50;" f _dusts src/Dodge/Data/LWorld.hs 97;" f _ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f _ebPos src/Dodge/Data/EnergyBall.hs 17;" f @@ -1766,14 +1766,14 @@ _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f _energyBalls src/Dodge/Data/LWorld.hs 104;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f -_fboBase src/Data/Preload/Render.hs 33;" f -_fboBloom src/Data/Preload/Render.hs 36;" f -_fboCloud src/Data/Preload/Render.hs 34;" f -_fboHalf1 src/Data/Preload/Render.hs 31;" f -_fboHalf2 src/Data/Preload/Render.hs 32;" f -_fboLighting src/Data/Preload/Render.hs 38;" f -_fboPos src/Data/Preload/Render.hs 37;" f -_fboWindow src/Data/Preload/Render.hs 35;" f +_fboBase src/Data/Preload/Render.hs 32;" f +_fboBloom src/Data/Preload/Render.hs 35;" f +_fboCloud src/Data/Preload/Render.hs 33;" f +_fboHalf1 src/Data/Preload/Render.hs 30;" f +_fboHalf2 src/Data/Preload/Render.hs 31;" f +_fboLighting src/Data/Preload/Render.hs 37;" f +_fboPos src/Data/Preload/Render.hs 36;" f +_fboWindow src/Data/Preload/Render.hs 34;" f _flItPos src/Dodge/Data/FloorItem.hs 11;" f _flItRot src/Dodge/Data/FloorItem.hs 11;" f _flPos src/Dodge/Data/Flame.hs 13;" f @@ -1787,8 +1787,8 @@ _flboName src/Shader/Data.hs 86;" f _flboPtr src/Shader/Data.hs 87;" f _flboStride src/Shader/Data.hs 88;" f _floorItems src/Dodge/Data/LWorld.hs 127;" f -_floorShader src/Data/Preload/Render.hs 44;" f -_floorVBO src/Data/Preload/Render.hs 43;" f +_floorShader src/Data/Preload/Render.hs 43;" f +_floorVBO src/Data/Preload/Render.hs 42;" f _foreShapes src/Dodge/Data/LWorld.hs 132;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f @@ -1909,7 +1909,7 @@ _ldtRight src/Dodge/Data/DoubleTree.hs 35;" f _ldtValue src/Dodge/Data/DoubleTree.hs 33;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 115;" f _lightSources src/Dodge/Data/LWorld.hs 133;" f -_lightUBO src/Data/Preload/Render.hs 41;" f +_lightUBO src/Data/Preload/Render.hs 40;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingCloudShader src/Data/Preload/Render.hs 18;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f @@ -1946,7 +1946,7 @@ _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f _mapInvOffset src/Dodge/Data/HUD.hs 18;" f _mapInvZoom src/Dodge/Data/HUD.hs 19;" f -_matUBO src/Data/Preload/Render.hs 40;" f +_matUBO src/Data/Preload/Render.hs 39;" f _mbAttach src/Dodge/Data/MetaTree.hs 18;" f _mbTree src/Dodge/Data/MetaTree.hs 18;" f _mcColor src/Dodge/Data/Machine.hs 34;" f @@ -2131,7 +2131,7 @@ _rbPos src/Dodge/Data/RadarBlip.hs 17;" f _rbRad src/Dodge/Data/RadarBlip.hs 16;" f _rbState src/Dodge/Data/World.hs 43;" f _rbTime src/Dodge/Data/RadarBlip.hs 14;" f -_rboBaseBloom src/Data/Preload/Render.hs 39;" f +_rboBaseBloom src/Data/Preload/Render.hs 38;" f _rdDist1 src/Dodge/Data/Distortion.hs 13;" f _rdDist2 src/Dodge/Data/Distortion.hs 14;" f _rdPos src/Dodge/Data/Distortion.hs 12;" f @@ -2407,7 +2407,7 @@ _vaOffset src/Shader/Data.hs 70;" f _vaType src/Shader/Data.hs 68;" f _vboName src/Shader/Data.hs 80;" f _vboPtr src/Shader/Data.hs 81;" f -_vboShapes src/Data/Preload/Render.hs 42;" f +_vboShapes src/Data/Preload/Render.hs 41;" f _vboVertexBytes src/Shader/Data.hs 82;" f _vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f @@ -2430,13 +2430,13 @@ _wTime src/Dodge/Data/Item/Params.hs 20;" f _waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f _wallDamages src/Dodge/Data/LWorld.hs 119;" f -_wallVBO src/Data/Preload/Render.hs 48;" f +_wallVBO src/Data/Preload/Render.hs 47;" f _walls src/Dodge/Data/LWorld.hs 118;" f _wanID src/Dodge/Data/LWorld.hs 158;" f _wanPos src/Dodge/Data/LWorld.hs 157;" f _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f -_winVBO src/Data/Preload/Render.hs 47;" f +_winVBO src/Data/Preload/Render.hs 46;" f _windowPosX src/Dodge/Data/Config.hs 63;" f _windowPosY src/Dodge/Data/Config.hs 64;" f _windowPullShader src/Data/Preload/Render.hs 21;" f @@ -2620,9 +2620,9 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Render/ShapePicture.hs 80;" f +barrelShape src/Dodge/Render/ShapePicture.hs 82;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 407;" f -baseBlockPane src/Dodge/Placement/Instance/Wall.hs 98;" f +baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f baseCI src/Dodge/Item/Grammar.hs 158;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 324;" f baseFloorTileSize src/Tile.hs 45;" f @@ -2660,7 +2660,7 @@ blinkDistortions src/Dodge/Creature/Action/Blink.hs 45;" f blinkShockwave src/Dodge/Creature/Action/Blink.hs 78;" f blinker src/Dodge/Item/Held/Utility.hs 30;" f blipAt src/Dodge/RadarSweep.hs 78;" f -blockLine src/Dodge/Placement/Instance/Wall.hs 52;" f +blockLine src/Dodge/Placement/Instance/Wall.hs 44;" f blockPillar src/Dodge/Room/Pillar.hs 22;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f @@ -2703,10 +2703,10 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 69;" f bright src/Color.hs 120;" f brightX src/Color.hs 116;" f -btSPic src/Dodge/Render/ShapePicture.hs 129;" f +btSPic src/Dodge/Render/ShapePicture.hs 131;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 393;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 397;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2969,9 +2969,9 @@ crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f crsNearPoint src/Dodge/Zoning/Creature.hs 18;" f crsNearRect src/Dodge/Zoning/Creature.hs 40;" f crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f -crystalLine src/Dodge/Placement/Instance/Wall.hs 66;" f +crystalLine src/Dodge/Placement/Instance/Wall.hs 58;" f cubeShape src/Dodge/Block/Debris.hs 110;" f -cullPoint src/Dodge/Render/ShapePicture.hs 96;" f +cullPoint src/Dodge/Render/ShapePicture.hs 98;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f @@ -3234,13 +3234,14 @@ drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f drawArrowDown src/Dodge/Render/Picture.hs 219;" f drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f drawBlip src/Dodge/RadarBlip.hs 16;" f +drawBlock src/Dodge/Render/ShapePicture.hs 51;" f drawBoundingBox src/Dodge/Debug/Picture.hs 358;" f -drawBullet src/Dodge/Render/ShapePicture.hs 135;" f +drawBullet src/Dodge/Render/ShapePicture.hs 137;" f drawButton src/Dodge/Button/Draw.hs 10;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChasm src/Dodge/Render/ShapePicture.hs 52;" f +drawChasm src/Dodge/Render/ShapePicture.hs 54;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f -drawCliff src/Dodge/Render/ShapePicture.hs 55;" f +drawCliff src/Dodge/Render/ShapePicture.hs 57;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 267;" f drawCombineInventory src/Dodge/Render/HUD.hs 183;" f @@ -3249,7 +3250,7 @@ drawCoord src/Dodge/Debug/Picture.hs 386;" f drawCountMod src/Shader.hs 20;" f drawCrInfo src/Dodge/Debug.hs 169;" f drawCrInfo' src/Dodge/Debug.hs 164;" f -drawCreature src/Dodge/Render/ShapePicture.hs 71;" f +drawCreature src/Dodge/Render/ShapePicture.hs 73;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f @@ -3310,7 +3311,7 @@ drawPlus src/Dodge/Render/Picture.hs 163;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f -drawPulseBall src/Dodge/Render/ShapePicture.hs 63;" f +drawPulseBall src/Dodge/Render/ShapePicture.hs 65;" f drawQuitTerminal src/Dodge/Render/Picture.hs 145;" f drawRBOptions src/Dodge/Render/HUD.hs 252;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f @@ -3437,7 +3438,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f -extraPics src/Dodge/Render/ShapePicture.hs 101;" f +extraPics src/Dodge/Render/ShapePicture.hs 103;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f @@ -3490,7 +3491,7 @@ flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f flockPointTarget src/Dodge/Creature/Boid.hs 204;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 232;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 122;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 124;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f @@ -3558,7 +3559,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 332;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 319;" f getDebugMouseOver src/Dodge/Update.hs 374;" f -getDistortions src/Dodge/Render.hs 405;" f +getDistortions src/Dodge/Render.hs 409;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3722,10 +3723,10 @@ insertNewKey src/IntMapHelp.hs 65;" f insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f insertOver src/ListHelp.hs 47;" f insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f -insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 37;" f -insertWall src/Dodge/Placement/PlaceSpot/Block.hs 120;" f +insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 40;" f +insertWall src/Dodge/Placement/PlaceSpot/Block.hs 129;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f -insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f +insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 126;" f insertWithNewKeys src/IntMapHelp.hs 71;" f intAnno src/Dodge/Floor.hs 111;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f @@ -3805,7 +3806,7 @@ isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f isOverTerminalScreen src/Dodge/Update.hs 394;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f -isPutID src/Dodge/Placement/Instance/Wall.hs 132;" f +isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f isRHS src/Geometry/LHS.hs 32;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f @@ -3893,7 +3894,7 @@ lConnect src/Dodge/Render/Connectors.hs 42;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f lamp src/Dodge/Creature/Lamp.hs 21;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 85;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 87;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f @@ -4093,7 +4094,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 104;" f mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f mcProxTest src/Dodge/Machine/Update.hs 203;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f -mcSPic src/Dodge/Render/ShapePicture.hs 132;" f +mcSPic src/Dodge/Render/ShapePicture.hs 134;" f mcShootAuto src/Dodge/HeldUse.hs 1169;" f mcShootLaser src/Dodge/HeldUse.hs 1162;" f mcTriggerVal src/Dodge/Machine/Update.hs 110;" f @@ -4335,9 +4336,9 @@ pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 173;" f -plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f +plBlock src/Dodge/Placement/PlaceSpot/Block.hs 23;" 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 56;" f plMachine src/Dodge/Placement/PlaceSpot.hs 188;" f plNew src/Dodge/Base/NewID.hs 19;" f plNewID src/Dodge/Base/NewID.hs 7;" f @@ -4484,9 +4485,9 @@ pushOutFromWalls src/Dodge/WallCreatureCollisions.hs 64;" f pushR src/DoubleStack.hs 24;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f putAutoDoor src/Dodge/Placement/Instance/Door.hs 87;" f -putBlockN src/Dodge/Placement/Instance/Wall.hs 164;" f -putBlockRect src/Dodge/Placement/Instance/Wall.hs 148;" f -putBlockV src/Dodge/Placement/Instance/Wall.hs 151;" f +putBlockN src/Dodge/Placement/Instance/Wall.hs 120;" f +putBlockRect src/Dodge/Placement/Instance/Wall.hs 111;" f +putBlockV src/Dodge/Placement/Instance/Wall.hs 114;" f putDoor src/Dodge/Room/Airlock.hs 114;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f @@ -4555,7 +4556,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 216;" f -rdToVec2s src/Dodge/Render.hs 388;" f +rdToVec2s src/Dodge/Render.hs 392;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4601,7 +4602,7 @@ renderLightingNoShadows src/Render.hs 51;" f renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 119;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f -replacePutID src/Dodge/Placement/Instance/Wall.hs 105;" f +replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetPLUse src/Dodge/PlacementSpot.hs 92;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f @@ -4808,7 +4809,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 73;" f setViewDistance src/Dodge/Update/Camera.hs 241;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 410;" f +setViewport src/Dodge/Render.hs 414;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -4839,7 +4840,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shiftByV2 src/Dodge/PlacementSpot.hs 250;" f shiftChildren src/Dodge/Tree/Compose.hs 44;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 90;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 92;" f shiftInBy src/Dodge/PlacementSpot.hs 247;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f @@ -5028,7 +5029,7 @@ stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f subInvX src/Dodge/ListDisplayParams.hs 46;" f subMap src/TreeHelp.hs 119;" f -subZipWith src/Dodge/Placement/Instance/Wall.hs 118;" f +subZipWith src/Dodge/Placement/Instance/Wall.hs 94;" f succB src/Dodge/Debug.hs 113;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 57;" f swapInOutLinks src/Dodge/RoomLink.hs 98;" f @@ -5298,9 +5299,9 @@ updateDoors src/Dodge/Update.hs 308;" f updateDust src/Dodge/Update.hs 817;" f updateDusts src/Dodge/Update.hs 667;" f updateEdge src/Dodge/Path.hs 43;" f -updateEdgeWallObs src/Dodge/Update/WallDamage.hs 38;" f -updateEdgesWall src/Dodge/Update/WallDamage.hs 22;" f -updateEdgesWall' src/Dodge/Update/WallDamage.hs 35;" f +updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f +updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f +updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 655;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f @@ -5496,7 +5497,7 @@ whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f winConfig appDodge/Main.hs 56;" f -windowLine src/Dodge/Placement/Instance/Wall.hs 59;" f +windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f windowXFloat src/Dodge/Data/Config.hs 71;" f windowYFloat src/Dodge/Data/Config.hs 73;" f withAlpha src/Color.hs 10;" f