diff --git a/src/Dodge/Data/Machine.hs b/src/Dodge/Data/Machine.hs index 2b322c9d4..c1340bf4f 100644 --- a/src/Dodge/Data/Machine.hs +++ b/src/Dodge/Data/Machine.hs @@ -35,7 +35,6 @@ data Machine = Machine , _mcDamage :: [Damage] , _mcType :: MachineType , _mcMounts :: M.Map ObjectType Int - , _mcWidth :: Float } data MachineType @@ -46,6 +45,7 @@ data MachineType | McTurret {_mctTurret :: Turret} -- | McStorage -- | McDistributer +-- | McSynthesiser data Turret = Turret { _tuWeapon :: Int diff --git a/src/Dodge/Default.hs b/src/Dodge/Default.hs index e5cadc596..6fb604442 100644 --- a/src/Dodge/Default.hs +++ b/src/Dodge/Default.hs @@ -39,7 +39,6 @@ defaultMachine = , _mcDamage = [] , _mcType = McStatic , _mcMounts = mempty - , _mcWidth = 10 } defaultButton :: Button diff --git a/src/Dodge/Machine/Draw.hs b/src/Dodge/Machine/Draw.hs index eb8b504c1..9c75ac99b 100644 --- a/src/Dodge/Machine/Draw.hs +++ b/src/Dodge/Machine/Draw.hs @@ -18,8 +18,8 @@ drawMachine cw mc = case _mcType mc of McStatic -> mempty McTerminal -> terminalSPic lw mc McTurret tu -> drawBaseMachine 20 mc <> drawTurret lw tu mc - McDamSensor se -> drawBaseMachine 25 mc <> drawDamSensor gp se mc - McProxSensor se -> drawBaseMachine 25 mc <> drawProxSensor se mc + McDamSensor se -> drawBaseMachine 25 mc <> drawDamSensor gp se + McProxSensor {} -> drawBaseMachine 25 mc where lw = cw ^. lWorld gp = cw ^. cwGen . cwgParams . sensorCoding @@ -27,15 +27,11 @@ drawMachine cw mc = case _mcType mc of drawDamSensor :: M.Map SensorType (PaletteColor, DecorationShape) -> DamageSensor -> - Machine -> SPic -drawDamSensor gp sens mc = fold $ do +drawDamSensor gp sens = fold $ do let st = sens ^. sensType x <- gp ^? ix st - return $ sensorSPic x mc - -drawProxSensor :: ProximitySensor -> Machine -> SPic -drawProxSensor _ = const mempty + return $ sensorSPic x terminalSPic :: LWorld -> Machine -> SPic terminalSPic lw = noPic . terminalShape lw @@ -71,7 +67,7 @@ drawBaseMachine h mc = . colorSH (mcColor mc) . upperBox Medium Typical h . square - $ _mcWidth mc + $ 10 mcColor :: Machine -> Color mcColor mc = case mc ^. mcType of @@ -87,8 +83,8 @@ drawTurret lw tu mc = fold $ do itm <- lw ^? items . ix (tu ^. tuWeapon) return $ overPosSP (turretItemOffset itm tu mc) (itemSPic itm) -sensorSPic :: (PaletteColor, DecorationShape) -> Machine -> SPic -sensorSPic (pc, ds) mc = noPic $ decorationToShape ds w w 25 col col +sensorSPic :: (PaletteColor, DecorationShape) -> SPic +sensorSPic (pc, ds) = noPic $ decorationToShape ds w w 25 col where col = paletteToColor pc - w = _mcWidth mc + w = 10 diff --git a/src/Dodge/Placement/Instance/Block.hs b/src/Dodge/Placement/Instance/Block.hs index a6c87a589..1d27c5ae4 100644 --- a/src/Dodge/Placement/Instance/Block.hs +++ b/src/Dodge/Placement/Instance/Block.hs @@ -1,12 +1,15 @@ -module Dodge.Placement.Instance.Block where +module Dodge.Placement.Instance.Block ( + decoratedBlock, + lowBlock, +) where -import Shape import Color import Dodge.Data.GenWorld import Dodge.Default.Block import Dodge.Default.Wall import Geometry import LensHelp +import Shape decoratedBlock :: Shape -> Material -> Color -> Float -> [Point2] -> PSType decoratedBlock decf mat col h ps = PutBlock bl wl $ reverse ps diff --git a/src/Dodge/Placement/Instance/Tank.hs b/src/Dodge/Placement/Instance/Tank.hs index 830276da4..7dd4c92fb 100644 --- a/src/Dodge/Placement/Instance/Tank.hs +++ b/src/Dodge/Placement/Instance/Tank.hs @@ -13,24 +13,25 @@ import Geometry import Shape tankSquareDec :: - (Float -> Float -> Float -> Color -> Color -> Shape) -> + (Float -> Float -> Float -> Color -> Shape) -> Color -> Color -> Placement -tankSquareDec dec = tankShape (reverse . orderPolygon $ square 20) (dec 20 20 31) +--tankSquareDec dec = tankShape (reverse . orderPolygon $ square 20) (dec 20 20 31) +tankSquareDec dec = tankShape (orderPolygon $ square 20) (dec 20 20 31) -tankShape :: [Point2] -> (Color -> Color -> Shape) -> Color -> Color -> Placement -tankShape baseshape facade col col' = sps0 $ decoratedBlock (facade col col') Metal col 31 baseshape +tankShape :: [Point2] -> (Color -> Shape) -> Color -> Color -> Placement +tankShape baseshape facade col col' = sps0 $ decoratedBlock (facade col') Metal col 31 baseshape roundTank :: Color -> Color -> Placement roundTank = tankShape (polyCirc 4 20) $ - \_ c' -> colorSH c' $ foldMap toprail (take 8 [0, pi / 4 ..]) + \c' -> colorSH c' $ foldMap toprail (take 8 [0, pi / 4 ..]) where toprail a = rotateSH a $ thinHighBar 31 (V2 0 20) (rotateV (pi / 4) $ V2 0 20) roundTankCross :: Color -> Color -> Placement roundTankCross = tankShape (polyCirc 4 20) $ - \_ c -> + \c -> colorSH c $ thinHighBar 31 (V2 20 0) (V2 (-20) 0) <> thinHighBar 31 (V2 0 20) (V2 0 (-20)) diff --git a/src/Dodge/Placement/TopDecoration.hs b/src/Dodge/Placement/TopDecoration.hs index 601f2c6ae..75f2e95dd 100644 --- a/src/Dodge/Placement/TopDecoration.hs +++ b/src/Dodge/Placement/TopDecoration.hs @@ -1,4 +1,12 @@ -module Dodge.Placement.TopDecoration where +{-# LANGUAGE LambdaCase #-} + +module Dodge.Placement.TopDecoration ( + decorationToShape, + fourEmbossDecoration, + midBarDecoration, + squareDecoration, + plusDecoration, +) where import Color import Dodge.Data.GenParams @@ -6,15 +14,15 @@ import Dodge.Room.Foreground import Geometry import Shape -decorationToShape :: DecorationShape -> Float -> Float -> Float -> Color -> Color -> Shape -decorationToShape dec = case dec of +decorationToShape :: DecorationShape -> Float -> Float -> Float -> Color -> Shape +decorationToShape = \case PLUS -> plusDecoration SQUARE -> squareDecoration CIRCLE -> circleDecoration THREELINES -> threeLineDecoration -midBarDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -midBarDecoration w h z _ c = +midBarDecoration :: Float -> Float -> Float -> Color -> Shape +midBarDecoration w h z c = embossingR <> rotateSH pi embossingR <> colorSH c (thinHighBar (z + 7) (V2 (-0.3 * w) 0) (V2 (0.3 * w) 0)) @@ -22,24 +30,26 @@ midBarDecoration w h z _ c = w' = 0.3 * w embossingR = colorSH c $ - prismPoly Medium Typical + prismPoly + Medium + Typical [V3 w h z, V3 w (0.3 * h) 41, V3 w (-0.3 * h) 41, V3 w (- h) z] [V3 w' h z, V3 w' (0.3 * h) 41, V3 w' (-0.3 * h) 41, V3 w' (- h) z] -fourEmbossDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -fourEmbossDecoration w h z _ c = colorSH c $ foldMap f [(w, h), (- w, h), (w, - h), (- w, - h)] +fourEmbossDecoration :: Float -> Float -> Float -> Color -> Shape +fourEmbossDecoration w h z c = colorSH c $ foldMap f [(w, h), (- w, h), (w, - h), (- w, - h)] where f (a, b) = translateSH (V3 (a / 2) (b / 2) z) embossing embossing = upperBoxHalf Large Typical 10 $ rectNSWE (h / 2) (- h / 2) (- w / 2) (w / 2) -plusDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -plusDecoration w h z _ c = +plusDecoration :: Float -> Float -> Float -> Color -> Shape +plusDecoration w h z c = colorSH c $ thinHighBar z (V2 w 0) (V2 (- w) 0) <> thinHighBar z (V2 0 h) (V2 0 (- h)) -squareDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -squareDecoration w h z _ col = +squareDecoration :: Float -> Float -> Float -> Color -> Shape +squareDecoration w h z col = colorSH col $ foldMap f @@ -53,13 +63,13 @@ squareDecoration w h z _ col = h' = h - 1.5 f (a, c, b, d) = thinHighBar z (V2 a b) (V2 c d) -circleDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -circleDecoration w _ z _ c = colorSH c $ foldMap toprail (take 8 [0, pi / 4 ..]) +circleDecoration :: Float -> Float -> Float -> Color -> Shape +circleDecoration w _ z c = colorSH c $ foldMap toprail (take 8 [0, pi / 4 ..]) where toprail a = rotateSH a $ thinHighBar z (V2 0 w) (rotateV (pi / 4) $ V2 0 w) -threeLineDecoration :: Float -> Float -> Float -> Color -> Color -> Shape -threeLineDecoration w h z _ col = +threeLineDecoration :: Float -> Float -> Float -> Color -> Shape +threeLineDecoration w h z col = colorSH col $ foldMap f diff --git a/src/Dodge/Room/Corridor.hs b/src/Dodge/Room/Corridor.hs index 71fbc2900..c41e40d2c 100644 --- a/src/Dodge/Room/Corridor.hs +++ b/src/Dodge/Room/Corridor.hs @@ -21,7 +21,8 @@ corridor = , _rmLinks = lnks' , --, _rmPath = foldMap (doublePairSet . (,) (V2 20 60) . fst) lnks _rmPath = foldMap (doublePairSet . (,) (V2 20 60)) [V2 20 70, V2 20 10] - , _rmPmnts = [spanLightI (V2 0 39.5) (V2 40 39.5)] + --, _rmPmnts = [spanLightI (V2 0 39.5) (V2 40 39.5)] + , _rmPmnts = [] , _rmBound = [rectNSWE 50 30 (-5) 45] , _rmFloor = Tiled [makeTileFromPoly poly 5] , _rmRandPSs = [psRandRanges (10, 30) (30, 60) (0, 2 * pi)] diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 3f152f2f6..66e163cb5 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -49,7 +49,8 @@ tutAnoTree = do [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor , return $ tToBTree "cor" $ return $ cleatOnward corridor - , tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom + --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom + , tToBTree "sdr" . return . cleatOnward <$> tanksPipesRoom , return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor , return $ tToBTree "cor" $ return $ cleatOnward corridor diff --git a/tags b/tags index f2f23f030..5f1503de3 100644 --- a/tags +++ b/tags @@ -17,7 +17,7 @@ <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 89;" o <$> src/Dodge/Data/LWorld.hs 176;" o -<$> src/Dodge/Data/Terminal.hs 68;" o +<$> src/Dodge/Data/Terminal.hs 67;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C AIUNIT src/Dodge/Data/Item/Combine.hs 74;" C ALTERIFLE src/Dodge/Data/Item/Combine.hs 153;" C @@ -705,7 +705,7 @@ Machine src/Dodge/Data/Machine.hs 27;" t MachineAltSound src/Dodge/Data/SoundOrigin.hs 22;" C MachinePart src/Dodge/Data/Wall/Structure.hs 13;" C MachineSound src/Dodge/Data/SoundOrigin.hs 21;" C -MachineType src/Dodge/Data/Machine.hs 41;" t +MachineType src/Dodge/Data/Machine.hs 40;" t MagBelow src/Dodge/Data/Muzzle.hs 22;" C Magnet src/Dodge/Data/Magnet.hs 21;" t MagnetAlign src/Dodge/Data/Magnet.hs 15;" C @@ -730,11 +730,11 @@ MapperSF src/Dodge/Data/ComposedItem.hs 39;" C Material src/Dodge/Data/Material.hs 10;" t MaterialSound src/Dodge/Data/SoundOrigin.hs 34;" C Maybe' src/MaybeHelp.hs 11;" t -McDamSensor src/Dodge/Data/Machine.hs 44;" C -McProxSensor src/Dodge/Data/Machine.hs 45;" C -McStatic src/Dodge/Data/Machine.hs 42;" C -McTerminal src/Dodge/Data/Machine.hs 43;" C -McTurret src/Dodge/Data/Machine.hs 46;" C +McDamSensor src/Dodge/Data/Machine.hs 43;" C +McProxSensor src/Dodge/Data/Machine.hs 44;" C +McStatic src/Dodge/Data/Machine.hs 41;" C +McTerminal src/Dodge/Data/Machine.hs 42;" C +McTurret src/Dodge/Data/Machine.hs 45;" C MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 54;" C MdSetLSCol src/Dodge/Data/WorldEffect.hs 53;" C MdTrigIf src/Dodge/Data/WorldEffect.hs 52;" C @@ -1264,10 +1264,10 @@ SwarmCrit src/Dodge/Data/Creature/Misc.hs 69;" C SwitchToItem src/Dodge/Data/ActionPlan.hs 37;" C TAPE src/Dodge/Data/Item/Combine.hs 55;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C -TCBase src/Dodge/Data/Terminal.hs 49;" C -TCDamageCommand src/Dodge/Data/Terminal.hs 50;" C -TCInfo src/Dodge/Data/Terminal.hs 48;" C -TCom src/Dodge/Data/Terminal.hs 47;" t +TCBase src/Dodge/Data/Terminal.hs 48;" C +TCDamageCommand src/Dodge/Data/Terminal.hs 49;" C +TCInfo src/Dodge/Data/Terminal.hs 47;" C +TCom src/Dodge/Data/Terminal.hs 46;" t TESLAGUN src/Dodge/Data/Item/Combine.hs 167;" C THERMOMETER src/Dodge/Data/Item/Combine.hs 83;" C THREELINES src/Dodge/Data/GenParams.hs 18;" C @@ -1275,7 +1275,7 @@ TIMESCROLLER src/Dodge/Data/Item/Combine.hs 142;" C TIMESTOPPER src/Dodge/Data/Item/Combine.hs 141;" C TIN src/Dodge/Data/Item/Combine.hs 57;" C TINMAG src/Dodge/Data/Item/Combine.hs 106;" C -TLine src/Dodge/Data/Terminal.hs 36;" C +TLine src/Dodge/Data/Terminal.hs 35;" C TO src/Shader/Data.hs 59;" t TRACTORGUN src/Dodge/Data/Item/Combine.hs 168;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 64;" C @@ -1300,16 +1300,16 @@ TeleSound src/Dodge/Data/SoundOrigin.hs 35;" C TermSignal src/Dodge/Data/Input.hs 51;" t Terminal src/Dodge/Data/Terminal.hs 19;" t TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C -TerminalLine src/Dodge/Data/Terminal.hs 36;" t -TerminalLineConst src/Dodge/Data/Terminal.hs 34;" C +TerminalLine src/Dodge/Data/Terminal.hs 35;" t +TerminalLineConst src/Dodge/Data/Terminal.hs 33;" C TerminalLineRead src/Dodge/Data/Terminal/Status.hs 13;" C -TerminalLineString src/Dodge/Data/Terminal.hs 34;" t +TerminalLineString src/Dodge/Data/Terminal.hs 33;" t TerminalOff src/Dodge/Data/Terminal/Status.hs 11;" C TerminalPressTo src/Dodge/Data/Terminal/Status.hs 15;" C TerminalSound src/Dodge/Data/SoundOrigin.hs 23;" C TerminalStatus src/Dodge/Data/Terminal/Status.hs 10;" t TerminalTextInput src/Dodge/Data/Terminal/Status.hs 14;" C -TerminalToggle src/Dodge/Data/Terminal.hs 42;" t +TerminalToggle src/Dodge/Data/Terminal.hs 41;" t Terrestrial src/Dodge/Data/Scenario.hs 72;" C TerrestrialBiome src/Dodge/Data/Scenario.hs 76;" t TeslaArc src/Dodge/Data/TeslaArc.hs 15;" t @@ -1321,16 +1321,16 @@ Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C TimeFlowStatus src/Dodge/Data/World.hs 63;" t Tiny src/Shape/Data.hs 27;" C -TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 60;" C -TmTmSetStatus src/Dodge/Data/Terminal.hs 61;" C -TmWdId src/Dodge/Data/Terminal.hs 53;" C -TmWdWd src/Dodge/Data/Terminal.hs 52;" t -TmWdWdDeactivateTerminal src/Dodge/Data/Terminal.hs 56;" C -TmWdWdDoDeathTriggers src/Dodge/Data/Terminal.hs 59;" C -TmWdWdLeaveTerminal src/Dodge/Data/Terminal.hs 55;" C -TmWdWdPowerDownTerminal src/Dodge/Data/Terminal.hs 54;" C -TmWdWdTermSound src/Dodge/Data/Terminal.hs 58;" C -TmWdWdfromWdWd src/Dodge/Data/Terminal.hs 57;" C +TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 59;" C +TmTmSetStatus src/Dodge/Data/Terminal.hs 60;" C +TmWdId src/Dodge/Data/Terminal.hs 52;" C +TmWdWd src/Dodge/Data/Terminal.hs 51;" t +TmWdWdDeactivateTerminal src/Dodge/Data/Terminal.hs 55;" C +TmWdWdDoDeathTriggers src/Dodge/Data/Terminal.hs 58;" C +TmWdWdLeaveTerminal src/Dodge/Data/Terminal.hs 54;" C +TmWdWdPowerDownTerminal src/Dodge/Data/Terminal.hs 53;" C +TmWdWdTermSound src/Dodge/Data/Terminal.hs 57;" C +TmWdWdfromWdWd src/Dodge/Data/Terminal.hs 56;" C ToContinueStart src/Sound/Data.hs 25;" C ToPlaySound src/Sound/Data.hs 33;" t ToStart src/Sound/Data.hs 24;" C @@ -1978,7 +1978,6 @@ _mcMounts src/Dodge/Data/Machine.hs 37;" f _mcPos src/Dodge/Data/Machine.hs 31;" f _mcType src/Dodge/Data/Machine.hs 36;" f _mcWallIDs src/Dodge/Data/Machine.hs 29;" f -_mcWidth src/Dodge/Data/Machine.hs 38;" f _mcoCombCombine src/Dodge/Data/Input.hs 24;" f _mcoCombSelect src/Dodge/Data/Input.hs 23;" f _mcoDBBool src/Dodge/Data/Input.hs 30;" f @@ -1992,7 +1991,7 @@ _mcoSecSelStart src/Dodge/Data/Input.hs 20;" f _mcoSelEnd src/Dodge/Data/Input.hs 20;" f _mcoTermID src/Dodge/Data/Input.hs 27;" f _mcoTermStatus src/Dodge/Data/Input.hs 27;" f -_mctTurret src/Dodge/Data/Machine.hs 46;" f +_mctTurret src/Dodge/Data/Machine.hs 45;" f _mdBool src/Dodge/Data/Modification.hs 19;" f _mdExternalID src/Dodge/Data/Modification.hs 15;" f _mdExternalID1 src/Dodge/Data/Modification.hs 23;" f @@ -2344,20 +2343,20 @@ _tileZero src/Data/Tile.hs 19;" f _tiles src/Data/Tile.hs 14;" f _timeFlow src/Dodge/Data/World.hs 38;" f _timeFlowCharge src/Dodge/Data/World.hs 83;" f -_tlEffect src/Dodge/Data/Terminal.hs 39;" f -_tlPause src/Dodge/Data/Terminal.hs 37;" f -_tlString src/Dodge/Data/Terminal.hs 38;" f +_tlEffect src/Dodge/Data/Terminal.hs 38;" f +_tlPause src/Dodge/Data/Terminal.hs 36;" f +_tlString src/Dodge/Data/Terminal.hs 37;" f _tmBootLines src/Dodge/Data/Terminal.hs 21;" f _tmButtonID src/Dodge/Data/Terminal.hs 22;" f -_tmCommandHistory src/Dodge/Data/Terminal.hs 30;" f -_tmCommands src/Dodge/Data/Terminal.hs 27;" f -_tmDeathEffect src/Dodge/Data/Terminal.hs 28;" f -_tmDisplayedLines src/Dodge/Data/Terminal.hs 25;" f -_tmFutureLines src/Dodge/Data/Terminal.hs 26;" f +_tmCommandHistory src/Dodge/Data/Terminal.hs 29;" f +_tmCommands src/Dodge/Data/Terminal.hs 26;" f +_tmDeathEffect src/Dodge/Data/Terminal.hs 27;" f +_tmDisplayedLines src/Dodge/Data/Terminal.hs 24;" f +_tmFutureLines src/Dodge/Data/Terminal.hs 25;" f _tmID src/Dodge/Data/Terminal.hs 20;" f _tmMachineID src/Dodge/Data/Terminal.hs 23;" f -_tmStatus src/Dodge/Data/Terminal.hs 29;" f -_tmToggles src/Dodge/Data/Terminal.hs 31;" f +_tmStatus src/Dodge/Data/Terminal.hs 28;" f +_tmToggles src/Dodge/Data/Terminal.hs 30;" f _toPlaySoundChunkID src/Sound/Data.hs 39;" f _toPlaySoundPos src/Sound/Data.hs 36;" f _toPlaySoundStatus src/Sound/Data.hs 35;" f @@ -2371,8 +2370,8 @@ _tractorBeams src/Dodge/Data/LWorld.hs 118;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f _triggers src/Dodge/Data/LWorld.hs 127;" f -_ttDeathEffect src/Dodge/Data/Terminal.hs 44;" f -_ttTriggerID src/Dodge/Data/Terminal.hs 43;" f +_ttDeathEffect src/Dodge/Data/Terminal.hs 43;" f +_ttTriggerID src/Dodge/Data/Terminal.hs 42;" f _tuDir src/Dodge/Data/Machine.hs 54;" f _tuFireTime src/Dodge/Data/Machine.hs 53;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 52;" f @@ -2744,7 +2743,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 17;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f -cChasm src/Dodge/Room/Tutorial.hs 119;" f +cChasm src/Dodge/Room/Tutorial.hs 120;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2779,7 +2778,7 @@ chaseCritInternal src/Dodge/Humanoid.hs 8;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 188;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 189;" f chasmTest src/Dodge/Creature/Update.hs 109;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2811,7 +2810,7 @@ circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f circOnSomeWall src/Dodge/Base/Collide.hs 286;" f circle src/Picture/Base.hs 180;" f -circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f +circleDecoration src/Dodge/Placement/TopDecoration.hs 66;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f @@ -2911,8 +2910,8 @@ cornerList src/Preload/Render.hs 236;" f corpseOrGib src/Dodge/Creature/Update.hs 88;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f -corridorN src/Dodge/Room/Corridor.hs 52;" f -corridorWallN src/Dodge/Room/Corridor.hs 71;" f +corridorN src/Dodge/Room/Corridor.hs 53;" f +corridorWallN src/Dodge/Room/Corridor.hs 72;" f crAdd src/Dodge/Room/RezBox.hs 116;" f crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f @@ -3072,7 +3071,7 @@ decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f decomposeTree src/Dodge/Tree/Compose.hs 58;" f decontamRoom src/Dodge/Room/Airlock.hs 38;" f decoratedBlock src/Dodge/Placement/Instance/Block.hs 11;" f -decorationToShape src/Dodge/Placement/TopDecoration.hs 9;" f +decorationToShape src/Dodge/Placement/TopDecoration.hs 17;" f decreaseAwareness src/Dodge/Creature/Perception.hs 118;" f decrementTimer src/Sound.hs 103;" f dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 712;" f @@ -3089,7 +3088,7 @@ defaultAutoWall src/Dodge/Default/Wall.hs 32;" f defaultBlock src/Dodge/Default/Block.hs 5;" f defaultBounds src/Dodge/Data/Bounds.hs 18;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f -defaultButton src/Dodge/Default.hs 45;" f +defaultButton src/Dodge/Default.hs 44;" f defaultCWCam src/Dodge/Default/World.hs 72;" f defaultCWGen src/Dodge/Default/World.hs 62;" f defaultCWorld src/Dodge/Default/World.hs 87;" f @@ -3119,7 +3118,7 @@ defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f defaultPerceptionState src/Dodge/Default/Creature.hs 75;" f -defaultProximitySensor src/Dodge/Default.hs 53;" f +defaultProximitySensor src/Dodge/Default.hs 52;" f defaultRoom src/Dodge/Default/Room.hs 9;" f defaultTerminal src/Dodge/Default/Terminal.hs 8;" f defaultVision src/Dodge/Default/Creature.hs 85;" f @@ -3260,7 +3259,7 @@ drawAimSweep src/Dodge/Render/Picture.hs 292;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f drawArrowDown src/Dodge/Render/Picture.hs 219;" f -drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f +drawBaseMachine src/Dodge/Machine/Draw.hs 64;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Render/ShapePicture.hs 51;" f drawBoundingBox src/Dodge/Debug/Picture.hs 358;" f @@ -3339,7 +3338,6 @@ drawPathing src/Dodge/Debug/Picture.hs 407;" f 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 65;" f drawQuitTerminal src/Dodge/Render/Picture.hs 145;" f drawRBOptions src/Dodge/Render/HUD.hs 252;" f @@ -3369,7 +3367,7 @@ drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 49;" f drawTitleBackground src/Dodge/Render/List.hs 45;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f -drawTurret src/Dodge/Machine/Draw.hs 85;" f +drawTurret src/Dodge/Machine/Draw.hs 81;" f drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 210;" f drawWall src/Dodge/Wall/Draw.hs 11;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f @@ -3523,7 +3521,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 580;" f -foldMTRS src/Dodge/Room/Tutorial.hs 65;" f +foldMTRS src/Dodge/Room/Tutorial.hs 66;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3535,7 +3533,7 @@ forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 6;" f forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f -fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f +fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 39;" f fpsText src/Dodge/Render/Picture.hs 57;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 146;" f frag src/Shader/Data.hs 110;" f @@ -3585,8 +3583,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 337;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 324;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 338;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 325;" f getDebugMouseOver src/Dodge/Update.hs 375;" f getDistortions src/Dodge/Render.hs 433;" f getEdgesCrossing src/Dodge/Path.hs 37;" f @@ -3603,7 +3601,7 @@ getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 320;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 321;" f getRootItemBounds src/Dodge/Render/HUD.hs 101;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3916,9 +3914,9 @@ keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 78;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 66;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 438;" f -keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f +keyholeCorridor src/Dodge/Room/Corridor.hs 40;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f -lChasm src/Dodge/Room/Tutorial.hs 128;" f +lChasm src/Dodge/Room/Tutorial.hs 129;" f 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 @@ -4118,7 +4116,7 @@ maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f mcApplyDamage src/Dodge/Machine/Update.hs 129;" f -mcColor src/Dodge/Machine/Draw.hs 76;" f +mcColor src/Dodge/Machine/Draw.hs 72;" f mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 98;" f mcDamSensorUpdate src/Dodge/Machine/Update.hs 136;" f mcKillBut src/Dodge/Machine/Destroy.hs 37;" f @@ -4162,9 +4160,9 @@ metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f metalPlate src/Dodge/Item/Craftable.hs 35;" f mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f -midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f +midBarDecoration src/Dodge/Placement/TopDecoration.hs 24;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 151;" f +midChasm src/Dodge/Room/Tutorial.hs 152;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4395,7 +4393,7 @@ playPositionalSoundQueue src/Sound.hs 146;" f playSoundAndUpdate src/Sound.hs 54;" f playSoundQueue src/Sound.hs 133;" f playSoundUnlessRewinding appDodge/Main.hs 110;" f -plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f +plusDecoration src/Dodge/Placement/TopDecoration.hs 45;" f pnZoneSize src/Dodge/Zoning/Pathing.hs 26;" f pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f pointInCircle src/Geometry.hs 209;" f @@ -4443,8 +4441,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 84;" f poly3Col src/Picture/Base.hs 88;" f -polyChasm src/Dodge/Room/Tutorial.hs 172;" f -polyChasmC src/Dodge/Room/Tutorial.hs 181;" f +polyChasm src/Dodge/Room/Tutorial.hs 173;" f +polyChasmC src/Dodge/Room/Tutorial.hs 182;" f polyCirc src/Shape.hs 46;" f polyCircx src/Shape.hs 51;" f polyCornerDist src/Geometry/Polygon.hs 61;" f @@ -4626,7 +4624,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f removeAmmoFromMag src/Dodge/HeldUse.hs 907;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f -removeLights src/Dodge/Room/Tutorial.hs 237;" f +removeLights src/Dodge/Room/Tutorial.hs 238;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f @@ -4727,8 +4725,8 @@ rotateV src/Geometry/Vector.hs 106;" f rotateVAround src/Geometry/Vector.hs 113;" f rotateXY src/Polyhedra.hs 31;" f roundPoint2 src/Geometry/Intersect.hs 237;" f -roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f -roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f +roundTank src/Dodge/Placement/Instance/Tank.hs 26;" f +roundTankCross src/Dodge/Placement/Instance/Tank.hs 32;" f rpIsOffGrid src/Dodge/PlacementSpot.hs 81;" f rpIsOnGrid src/Dodge/PlacementSpot.hs 75;" f rpOffPathFromEdge src/Dodge/PlacementSpot.hs 87;" f @@ -4808,8 +4806,8 @@ senseDamage src/Dodge/Machine/Update.hs 215;" f sensorReqToString src/Dodge/Machine/Update.hs 197;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f -sensorSPic src/Dodge/Machine/Draw.hs 90;" f -sensorTut src/Dodge/Room/Tutorial.hs 346;" f +sensorSPic src/Dodge/Machine/Draw.hs 86;" f +sensorTut src/Dodge/Room/Tutorial.hs 347;" f sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4836,7 +4834,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f -setRoomInt src/Dodge/Room/Tutorial.hs 72;" f +setRoomInt src/Dodge/Room/Tutorial.hs 73;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f setShaderSource src/Shader/Compile.hs 121;" f @@ -4845,7 +4843,7 @@ setSoundVolume src/Sound.hs 158;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f -setTreeInts src/Dodge/Room/Tutorial.hs 79;" f +setTreeInts src/Dodge/Room/Tutorial.hs 80;" f setViewDistance src/Dodge/Update/Camera.hs 243;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewport src/Dodge/Render.hs 438;" f @@ -5014,7 +5012,7 @@ spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f square src/Geometry/Polygon.hs 48;" f -squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f +squareDecoration src/Dodge/Placement/TopDecoration.hs 51;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 116;" f squashNormalizeV src/Geometry/Vector.hs 158;" f ssLookupDown src/Dodge/SelectionSections.hs 82;" f @@ -5079,9 +5077,9 @@ swapItemWith src/Dodge/Inventory.hs 164;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f t src/ShortShow.hs 48;" f -tEast src/Dodge/Room/Corridor.hs 90;" f +tEast src/Dodge/Room/Corridor.hs 91;" f tToBTree src/Dodge/Tree/Compose.hs 92;" f -tWest src/Dodge/Room/Corridor.hs 115;" f +tWest src/Dodge/Room/Corridor.hs 116;" f tabComplete src/Dodge/Terminal.hs 117;" f tabComplete' src/Dodge/Terminal.hs 123;" f takeN src/RandomHelp.hs 44;" f @@ -5092,7 +5090,7 @@ takeOneWeighted src/RandomHelp.hs 25;" f takeUntil src/FoldableHelp.hs 99;" f takeWhileArb src/ListHelp.hs 100;" f takeWhileArb' src/ListHelp.hs 108;" f -tankShape src/Dodge/Placement/Instance/Tank.hs 22;" f +tankShape src/Dodge/Placement/Instance/Tank.hs 23;" f tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f tanksRoom src/Dodge/Room/Tanks.hs 77;" f @@ -5113,9 +5111,9 @@ termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 43;" f termTextColor src/Dodge/Terminal.hs 46;" f terminalReturnEffect src/Dodge/Terminal.hs 168;" f -terminalSPic src/Dodge/Machine/Draw.hs 40;" f +terminalSPic src/Dodge/Machine/Draw.hs 36;" f terminalScreenGlow src/Dodge/Machine/Update.hs 40;" f -terminalShape src/Dodge/Machine/Draw.hs 43;" f +terminalShape src/Dodge/Machine/Draw.hs 39;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 410;" f @@ -5149,7 +5147,7 @@ thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 106;" f thingsHit src/Dodge/WorldEvent/ThingsHit.hs 44;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 127;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 52;" f -threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f +threeLineDecoration src/Dodge/Placement/TopDecoration.hs 71;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f @@ -5269,12 +5267,12 @@ tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f tutAnoTree src/Dodge/Room/Tutorial.hs 46;" f -tutDrop src/Dodge/Room/Tutorial.hs 84;" f -tutHub src/Dodge/Room/Tutorial.hs 244;" f -tutLight src/Dodge/Room/Tutorial.hs 209;" f -tutRezBox src/Dodge/Room/Tutorial.hs 357;" f +tutDrop src/Dodge/Room/Tutorial.hs 85;" f +tutHub src/Dodge/Room/Tutorial.hs 245;" f +tutLight src/Dodge/Room/Tutorial.hs 210;" f +tutRezBox src/Dodge/Room/Tutorial.hs 358;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 380;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 381;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5590,7 +5588,7 @@ yourInv src/Dodge/Base/You.hs 28;" f yourRootItem src/Dodge/Base/You.hs 22;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 138;" f +zChasm src/Dodge/Room/Tutorial.hs 139;" f zConnect src/Dodge/Render/Connectors.hs 17;" f zConnectCol src/Dodge/Render/Connectors.hs 28;" f zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f