From 6e5d2f147a46929c7a4554f9ba8007bf3225a48b Mon Sep 17 00:00:00 2001 From: justin Date: Sun, 7 Dec 2025 14:24:11 +0000 Subject: [PATCH] Remove explicit external terminal color record --- data/charMaps/cMap16x32.Custom.xcf | Bin 317234 -> 317258 bytes src/Dodge/Data/Machine.hs | 5 +- src/Dodge/Data/Terminal.hs | 1 - src/Dodge/Default.hs | 1 - src/Dodge/Default/Terminal.hs | 4 +- src/Dodge/Machine/Draw.hs | 13 +- src/Dodge/Placement/Instance/Analyser.hs | 5 +- src/Dodge/Placement/Instance/Sensor.hs | 3 +- src/Dodge/Placement/Instance/Terminal.hs | 29 ++--- src/Dodge/Placement/Instance/Turret.hs | 31 +++-- src/Dodge/Room/LongDoor.hs | 2 +- src/Dodge/Room/RezBox.hs | 2 +- src/Dodge/Room/SensorDoor.hs | 2 +- src/Dodge/Room/Tutorial.hs | 3 - src/Dodge/Room/Warning.hs | 2 +- tags | 146 +++++++++++------------ 16 files changed, 117 insertions(+), 132 deletions(-) diff --git a/data/charMaps/cMap16x32.Custom.xcf b/data/charMaps/cMap16x32.Custom.xcf index e8def3eeec3b33a53f8cff68468ddbe5e2468f03..2ac91e9ba8e4786d90e2e8d9ad4265d489696589 100644 GIT binary patch delta 2509 zcmbW&aZDC<9LMqB@194?rzM1mB}z&0;3zQA5$M9ACyU380E;$33TjwvU;!g!#yKUN zWP}eB5)tcZBAPxU~_oiHMj~ax5n*mR6CMssD{nqJNQKoaN-=aN&!p!iC_tv^VH#V~;vRx0i;!7jeHG4_4se9Bk>suR5?@4ebe4Keds1=Vy327Q2hE zw;%O$YKVSJr||O{yuc(A>O#ep-PC_yhSx9P&7FAbDBk%5|8kg0so^v~v@tUBenw1} z51glA&TI^#0~vgW{P=UYa4$w@VeEc<_DOUsLFY_NegoBi5GwE1nnhn$htn_^f%t4lhHc45_05fUE_$1(5(Z}X2Ck3=C+xp zb~bjre%q|bu^#-h5hn^vHR}qr@p{qxM#;0gFo=g)Tfj4=h0%`|Va^y`Xwg^MG4=$; zSD}Ncra5EC$u@lTBBr-sRt2u*4r_UlOgzPmOjXhr+F;I6f06hDp5PxVRhR>T!8KzL0<`12Op;rgfm6 z;bMa~udu$ol$<{k3x{xh8|sz#VJ3bQjoYVV?I1RI(7g$p)6f%+trMo<*5myYPBr0~ jQtVB_b0MZew5N>9HP-gBaakm{c*Z7wTDxb=Qhxa#!CZRZ delta 2399 zcmb8vk55%)9LMqVoO@+)ov2V3Cq{$hhd>q1{%X#LV~ge#faKv{($9OQ8JszSEUv2d2fZ9>tP~(yZx;_!snRgxf3) zmF|!xNK>Sl(j0FKf!Z5-QvAd4$ssh4IwToD_@6b@;OE@RcQUsvO|HJaW1T4><8q8NMz(EYD|WQGfHK zuBN=zLg8&WfC4kQP!6OhpL}cp-M2_q@kEs;-^2T?6bm*d?=99~&lMG>wx97)3mIXGs+N4|Uccq>{x|(_=hr+cO?C`;xBiQ4>{*&mm;JvMQe;I!r#<3Q3 zm*Mn&oDapt1zdKns3`_xgI+M0ig8^Enm1z542JY!gbkw#aaSV7`(xr`Ozy_C^O%u` zmRQU-dG)?shTKsK1?^aL8jok;i5;k^Sn0y*R;;N&TPD_r=qxf4Aj+@aviPJqeZ^gg!(UYKST;+$Raa`Al=4!rf#!WdCLSrz} z2ct%CmjmNZ;vNgWv=!5qF=H4lEtp+~dHeB5C>AZ?aVK9l Machine -> SPic drawBaseMachine h mc = noPic - . colorSH (_mcColor mc) + . colorSH (mcColor mc) . upperBox Medium Typical h . square $ _mcWidth mc +mcColor :: Machine -> Color +mcColor mc = case mc ^. mcType of + McStatic -> blue + McTerminal -> dark magenta + McDamSensor {} -> yellow + McProxSensor {} -> aquamarine + McTurret {} -> blue + + drawTurret :: LWorld -> Turret -> Machine -> SPic drawTurret lw tu mc = fold $ do itm <- lw ^? items . ix (tu ^. tuWeapon) diff --git a/src/Dodge/Placement/Instance/Analyser.hs b/src/Dodge/Placement/Instance/Analyser.hs index bca08ee65..4d852aa21 100644 --- a/src/Dodge/Placement/Instance/Analyser.hs +++ b/src/Dodge/Placement/Instance/Analyser.hs @@ -3,7 +3,6 @@ module Dodge.Placement.Instance.Analyser ( analyserWithPrompt, ) where -import Color import Dodge.Data.GenWorld import Dodge.Default import Dodge.Placement.Instance @@ -18,7 +17,6 @@ analyserWithPrompt l pst pslight psmc = extTrigLitPos pslight $ \tp -> Just $ plSpot .~ psmc $ putTerminal - (dark magenta) (themachine & mcMounts . at OTTrigger .~ _plMID tp) tparams where @@ -26,7 +24,6 @@ analyserWithPrompt l pst pslight psmc = extTrigLitPos pslight $ \tp -> defaultTerminal & tmStatus .~ TerminalLineRead & tmFutureLines .~ l themachine = - defaultMachine & mcColor .~ aquamarine - & mcType .~ McTerminal + defaultMachine -- & mcColor .~ aquamarine & mcHP .~ 10000 & mcType .~ McProxSensor (ProxSensor pst Nothing) diff --git a/src/Dodge/Placement/Instance/Sensor.hs b/src/Dodge/Placement/Instance/Sensor.hs index d24699bbd..b70348cdb 100644 --- a/src/Dodge/Placement/Instance/Sensor.hs +++ b/src/Dodge/Placement/Instance/Sensor.hs @@ -3,7 +3,6 @@ module Dodge.Placement.Instance.Sensor ( damageSensor, ) where -import Color import Control.Lens import Dodge.Data.GenWorld import Dodge.Default @@ -18,7 +17,7 @@ damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $ PutMachine (reverse $ square wdth) ( defaultMachine - & mcColor .~ yellow +-- & mcColor .~ yellow & mcMounts . at OTTrigger .~ mtrid & mcMounts . at OTLightSource ?~ lsid & mcType diff --git a/src/Dodge/Placement/Instance/Terminal.hs b/src/Dodge/Placement/Instance/Terminal.hs index 83480a18d..521c22fbb 100644 --- a/src/Dodge/Placement/Instance/Terminal.hs +++ b/src/Dodge/Placement/Instance/Terminal.hs @@ -2,10 +2,8 @@ module Dodge.Placement.Instance.Terminal ( putMessageTerminal, putImmediateMessageTerminal, putTerminal, - terminalColor, ) where -import Color import Data.Maybe import Dodge.Data.GenWorld import Dodge.Default @@ -14,19 +12,19 @@ import Dodge.WorldEffect import Geometry import LensHelp -putTerminalImediateAccess :: Color -> Machine -> Terminal -> Placement +putTerminalImediateAccess :: Machine -> Terminal -> Placement putTerminalImediateAccess = putTerminalFull f where f tmpl _ _ = Just $ sps0 $ PutWorldUpdate $ const $ const $ over gwWorld $ accessTerminal (tmpl ^?! plMID . _Just) putTerminalFull :: (Placement -> Placement -> Placement -> Maybe Placement) -> - Color -> Machine -> Terminal -> Placement -putTerminalFull f col mc tm = - ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $ +putTerminalFull f mc tm = + --ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $ + ps0PushPS (PutTerminal tm) $ \tmpl -> Just $ ps0PushPS (PutButton defaultButton) $ \btpl -> Just $ @@ -51,24 +49,19 @@ putTerminalFull f col mc tm = btid = fromJust (_plMID btpl) mcid = fromJust (_plMID mcpl) -putTerminal :: Color -> Machine -> Terminal -> Placement +putTerminal :: Machine -> Terminal -> Placement putTerminal = putTerminalFull (\_ _ _ -> Nothing) -putMessageTerminal :: Color -> Terminal -> Placement -putMessageTerminal col = - putTerminal col $ +putMessageTerminal :: Terminal -> Placement +putMessageTerminal = + putTerminal $ defaultMachine - & mcColor .~ col & mcType .~ McTerminal & mcHP .~ 100 -putImmediateMessageTerminal :: Color -> Terminal -> Placement -putImmediateMessageTerminal col = - putTerminalImediateAccess col $ +putImmediateMessageTerminal :: Terminal -> Placement +putImmediateMessageTerminal = + putTerminalImediateAccess $ defaultMachine - & mcColor .~ col & mcType .~ McTerminal & mcHP .~ 100 - -terminalColor :: Color -terminalColor = dark magenta diff --git a/src/Dodge/Placement/Instance/Turret.hs b/src/Dodge/Placement/Instance/Turret.hs index f4f571d17..4a94ac3fb 100644 --- a/src/Dodge/Placement/Instance/Turret.hs +++ b/src/Dodge/Placement/Instance/Turret.hs @@ -1,24 +1,24 @@ -module Dodge.Placement.Instance.Turret where +module Dodge.Placement.Instance.Turret + (putLasTurret) where import Dodge.Item.Held.BatteryGuns -import Color import Dodge.Data.GenWorld import Dodge.Default import Dodge.LevelGen.PlacementHelper import Geometry import LensHelp -putTurret :: Item -> Float -> Placement -putTurret itm rotSpeed = - sps0 $ - PutMachine - (reverse $ square 10) - ( defaultMachine - & mcColor .~ blue - & mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed) - & mcHP .~ 50000 - ) - (Just itm) +--putTurret :: Item -> Float -> Placement +--putTurret itm rotSpeed = +-- sps0 $ +-- PutMachine +-- (reverse $ square 10) +-- ( defaultMachine +---- & mcColor .~ blue +-- & mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed) +-- & mcHP .~ 50000 +-- ) +-- (Just itm) putLasTurret :: Float -> Placement putLasTurret rotSpeed = @@ -26,15 +26,12 @@ putLasTurret rotSpeed = PutMachine (reverse $ square 10) ( defaultMachine - & mcColor .~ blue +-- & mcColor .~ blue & mcType .~ (lasTurret & _McTurret . tuTurnSpeed .~ rotSpeed) & mcHP .~ 50000 ) (Just laser) -turret :: Item -> MachineType -turret _ = lasTurret - lasTurret :: MachineType lasTurret = McTurret $ Turret diff --git a/src/Dodge/Room/LongDoor.hs b/src/Dodge/Room/LongDoor.hs index a78b428ce..40a5ff146 100644 --- a/src/Dodge/Room/LongDoor.hs +++ b/src/Dodge/Room/LongDoor.hs @@ -103,7 +103,7 @@ addButtonSlowDoor x h = where f g y = g $ y ^. _1 . _y theterminal = - putMessageTerminal terminalColor (simpleTermMessage themessage) + putMessageTerminal (simpleTermMessage themessage) & plSpot .~ rprBoolShift (isUnusedLnkType InLink) diff --git a/src/Dodge/Room/RezBox.hs b/src/Dodge/Room/RezBox.hs index a7747c5a2..bb96a3ebb 100644 --- a/src/Dodge/Room/RezBox.hs +++ b/src/Dodge/Room/RezBox.hs @@ -33,7 +33,7 @@ rezBox ls = roomRect 40 60 1 1 & rmPmnts .~ [ sPS (V2 20 1) 0 $ PutLS ls - , putMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal) + , putMessageTerminal (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal) & plSpot .~ PS (V2 20 0) 0 ] & restrictInLinks (\(V2 _ h, _) -> h < 1) diff --git a/src/Dodge/Room/SensorDoor.hs b/src/Dodge/Room/SensorDoor.hs index 1e5c09df7..a26f68b22 100644 --- a/src/Dodge/Room/SensorDoor.hs +++ b/src/Dodge/Room/SensorDoor.hs @@ -63,7 +63,7 @@ sensInsideDoor senseType i rm = rm .++~ [ psPt atFstLnkOut . PutForeground $ floorWire (V2 20 0) (V2 20 (-100)) , psPt atFstLnkOut . PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100)) , psPt atFstLnkOut . PutForeground $ verticalWire (V2 20 0) 0 80 - , putMessageTerminal terminalColor + , putMessageTerminal (textTerminal & tmCommands .:~ TCDamageCommand) & plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10 <&> (, S.singleton UsedPosHigh)) , sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100) & plExternalID ?~ i diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 277d81085..3f152f2f6 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -96,7 +96,6 @@ tutDrop = do t j = \gw -> let x = gw ^? genInts . ix j in putMessageTerminal - terminalColor (defaultTerminal & tmBootLines .~ ss <> tlSetStatus (TerminalPressTo $ show x <> "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal) & plSpot .~ rprBoolShift @@ -293,7 +292,6 @@ tutHub = do ammoroom x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x) itemshiftterminal = putMessageTerminal - terminalColor (defaultTerminal & tmBootLines .~ ss' <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal) & plSpot .~ rprBoolShift @@ -366,7 +364,6 @@ tutRezBox = do , Placement (PS 0 0) PutNothing Nothing Nothing $ \w _ -> Just $ putImmediateMessageTerminal - terminalColor ( defaultTerminal & tmBootLines .~ s w <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal diff --git a/src/Dodge/Room/Warning.hs b/src/Dodge/Room/Warning.hs index 2a2a039b2..e693fc432 100644 --- a/src/Dodge/Room/Warning.hs +++ b/src/Dodge/Room/Warning.hs @@ -47,7 +47,7 @@ addDoorAtNthLinkToggleTerminal j xs i = extTrigLitPos (atNthLnkOutShiftBy j (\(p, a) -> ((p +.+ rotateV a (V2 18.5 (-2.5)), a), S.singleton UsedPosLow))) ( Just . set plSpot (rprShift (moveToSideNthOutLink (S.singleton UsedPosLow) j)) - . putMessageTerminal terminalColor + . putMessageTerminal . termMessages ) & plExternalID diff --git a/tags b/tags index f81073752..f2f23f030 100644 --- a/tags +++ b/tags @@ -701,11 +701,11 @@ MOTOR src/Dodge/Data/Item/Combine.hs 63;" C MPO src/Dodge/Base/Collide.hs 96;" t MTRS src/Dodge/Data/MTRS.hs 6;" t MTree src/Dodge/Data/MetaTree.hs 11;" C -Machine src/Dodge/Data/Machine.hs 28;" t +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 42;" t +MachineType src/Dodge/Data/Machine.hs 41;" 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 45;" C -McProxSensor src/Dodge/Data/Machine.hs 46;" C -McStatic src/Dodge/Data/Machine.hs 43;" C -McTerminal src/Dodge/Data/Machine.hs 44;" C -McTurret src/Dodge/Data/Machine.hs 47;" C +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 MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 54;" C MdSetLSCol src/Dodge/Data/WorldEffect.hs 53;" C MdTrigIf src/Dodge/Data/WorldEffect.hs 52;" C @@ -1358,7 +1358,7 @@ TurnTo src/Dodge/Data/ActionPlan.hs 35;" C TurnToPoint src/Dodge/Data/ActionPlan.hs 71;" C TurnToward src/Dodge/Data/ActionPlan.hs 32;" C TurnTowardCr src/Dodge/Data/CreatureEffect.hs 9;" C -Turret src/Dodge/Data/Machine.hs 49;" t +Turret src/Dodge/Data/Machine.hs 50;" t TurretInt src/Dodge/Data/Item/Location.hs 19;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C TwoHandFlat src/Dodge/Data/AimStance.hs 13;" C @@ -1969,17 +1969,16 @@ _mapInvZoom src/Dodge/Data/HUD.hs 19;" f _matUBO src/Data/Preload/Render.hs 42;" 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 -_mcDamage src/Dodge/Data/Machine.hs 36;" f -_mcDir src/Dodge/Data/Machine.hs 33;" f -_mcHP src/Dodge/Data/Machine.hs 35;" f -_mcID src/Dodge/Data/Machine.hs 29;" f -_mcMaterial src/Dodge/Data/Machine.hs 31;" f -_mcMounts src/Dodge/Data/Machine.hs 38;" f -_mcPos src/Dodge/Data/Machine.hs 32;" f -_mcType src/Dodge/Data/Machine.hs 37;" f -_mcWallIDs src/Dodge/Data/Machine.hs 30;" f -_mcWidth src/Dodge/Data/Machine.hs 39;" f +_mcDamage src/Dodge/Data/Machine.hs 35;" f +_mcDir src/Dodge/Data/Machine.hs 32;" f +_mcHP src/Dodge/Data/Machine.hs 34;" f +_mcID src/Dodge/Data/Machine.hs 28;" f +_mcMaterial src/Dodge/Data/Machine.hs 30;" f +_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 @@ -1993,7 +1992,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 47;" f +_mctTurret src/Dodge/Data/Machine.hs 46;" 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 @@ -2354,7 +2353,6 @@ _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 -_tmExternalColor src/Dodge/Data/Terminal.hs 24;" f _tmFutureLines src/Dodge/Data/Terminal.hs 26;" f _tmID src/Dodge/Data/Terminal.hs 20;" f _tmMachineID src/Dodge/Data/Terminal.hs 23;" f @@ -2375,10 +2373,10 @@ _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 -_tuDir src/Dodge/Data/Machine.hs 53;" f -_tuFireTime src/Dodge/Data/Machine.hs 52;" f -_tuTurnSpeed src/Dodge/Data/Machine.hs 51;" f -_tuWeapon src/Dodge/Data/Machine.hs 50;" 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 +_tuWeapon src/Dodge/Data/Machine.hs 51;" f _turnToPoint src/Dodge/Data/ActionPlan.hs 71;" f _uInt src/Dodge/Data/Item/Use.hs 31;" f _uScope src/Dodge/Data/Item/Use.hs 34;" f @@ -2554,12 +2552,12 @@ ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f amr src/Dodge/Item/Held/Rod.hs 34;" f anRoom src/Dodge/Floor.hs 117;" f -analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f +analyser src/Dodge/Placement/Instance/Analyser.hs 11;" f analyserByDoor src/Dodge/Room/LasTurret.hs 116;" f analyserByDoorWithPrompt src/Dodge/Room/LasTurret.hs 119;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 84;" f analyserByNthLinkWithPrompt src/Dodge/Room/LasTurret.hs 99;" f -analyserWithPrompt src/Dodge/Placement/Instance/Analyser.hs 15;" f +analyserWithPrompt src/Dodge/Placement/Instance/Analyser.hs 14;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 158;" f angleVV src/Geometry/Vector.hs 58;" f @@ -2746,7 +2744,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 120;" f +cChasm src/Dodge/Room/Tutorial.hs 119;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2781,7 +2779,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 189;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 188;" f chasmTest src/Dodge/Creature/Update.hs 109;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2833,7 +2831,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f -clipZoom src/Dodge/Update/Camera.hs 235;" f +clipZoom src/Dodge/Update/Camera.hs 237;" f clockCycle src/Dodge/Clock.hs 7;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f @@ -3035,14 +3033,14 @@ damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMetal src/Dodge/Material/Damage.hs 64;" f -damageSensor src/Dodge/Placement/Instance/Sensor.hs 14;" f +damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f damageStone src/Dodge/Material/Damage.hs 33;" f damageThingHit src/Dodge/Bullet.hs 180;" f -damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 34;" f +damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 33;" f damageWall src/Dodge/Wall/Damage.hs 29;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f dark src/Color.hs 108;" f -darkenBackground src/Dodge/Render/MenuScreen.hs 45;" f +darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 322;" f @@ -3091,7 +3089,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 46;" f +defaultButton src/Dodge/Default.hs 45;" 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 @@ -3121,9 +3119,9 @@ 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 54;" f +defaultProximitySensor src/Dodge/Default.hs 53;" f defaultRoom src/Dodge/Default/Room.hs 9;" f -defaultTerminal src/Dodge/Default/Terminal.hs 10;" f +defaultTerminal src/Dodge/Default/Terminal.hs 8;" f defaultVision src/Dodge/Default/Creature.hs 85;" f defaultWall src/Dodge/Default/Wall.hs 15;" f defaultWindow src/Dodge/Default/Wall.hs 54;" f @@ -3236,7 +3234,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 129;" f doTimeScroll src/Dodge/Update.hs 198;" f doTmWdWd src/Dodge/WorldEffect.hs 95;" f -doWallRotate src/Dodge/Update/Camera.hs 225;" f +doWallRotate src/Dodge/Update/Camera.hs 227;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f @@ -3307,7 +3305,7 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 278;" f drawGib src/Dodge/Prop/Draw.hs 26;" f drawHUD src/Dodge/Render/HUD.hs 52;" f -drawInputMenu src/Dodge/Render/MenuScreen.hs 32;" f +drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInspectWall src/Dodge/Debug/Picture.hs 255;" f drawInspectWalls src/Dodge/Debug/Picture.hs 243;" f drawInventory src/Dodge/Render/HUD.hs 59;" f @@ -3334,7 +3332,7 @@ drawMenuScreen src/Dodge/Render/MenuScreen.hs 18;" f drawMouseCursor src/Dodge/Render/Picture.hs 83;" f drawMouseOver src/Dodge/Render/HUD.hs 110;" f drawMousePosition src/Dodge/Debug/Picture.hs 376;" f -drawOptions src/Dodge/Render/MenuScreen.hs 35;" f +drawOptions src/Dodge/Render/MenuScreen.hs 36;" f drawPathBetween src/Dodge/Debug/Picture.hs 202;" f drawPathEdge src/Dodge/Debug/Picture.hs 260;" f drawPathing src/Dodge/Debug/Picture.hs 407;" f @@ -3368,10 +3366,10 @@ drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f -drawTitle src/Dodge/Render/MenuScreen.hs 48;" 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 76;" f +drawTurret src/Dodge/Machine/Draw.hs 85;" 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 @@ -3474,13 +3472,13 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f -farWallDistDirection src/Dodge/Update/Camera.hs 246;" f +farWallDistDirection src/Dodge/Update/Camera.hs 248;" f fdiv src/ShortShow.hs 41;" f feet src/Dodge/Creature/Picture.hs 51;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 63;" f -findBoundDists src/Dodge/Update/Camera.hs 253;" f +findBoundDists src/Dodge/Update/Camera.hs 255;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findIndex src/IntMapHelp.hs 86;" f @@ -3576,7 +3574,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f -getAimZoom src/Dodge/Update/Camera.hs 148;" f +getAimZoom src/Dodge/Update/Camera.hs 150;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAttachedSFLink src/Dodge/HeldUse.hs 788;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f @@ -3587,8 +3585,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 339;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 326;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 337;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 324;" f getDebugMouseOver src/Dodge/Update.hs 375;" f getDistortions src/Dodge/Render.hs 433;" f getEdgesCrossing src/Dodge/Path.hs 37;" f @@ -3605,7 +3603,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 322;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 320;" f getRootItemBounds src/Dodge/Render/HUD.hs 101;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3691,7 +3689,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 81;" f healthTest src/Dodge/Room/LasTurret.hs 122;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f -heldAimZoom src/Dodge/Update/Camera.hs 154;" f +heldAimZoom src/Dodge/Update/Camera.hs 156;" f heldEffect src/Dodge/HeldUse.hs 60;" f heldEffectMuzzles src/Dodge/HeldUse.hs 131;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f @@ -3920,7 +3918,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 438;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f -lChasm src/Dodge/Room/Tutorial.hs 129;" f +lChasm src/Dodge/Room/Tutorial.hs 128;" 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 @@ -3932,7 +3930,7 @@ lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 134;" f lasTunnel src/Dodge/Room/LasTurret.hs 153;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 194;" f -lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f +lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f lastMap src/Dodge/DoubleTree.hs 253;" f latticeXsYs src/Grid.hs 24;" f @@ -3966,7 +3964,7 @@ liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 51;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 39;" f -lightSensor src/Dodge/Placement/Instance/Sensor.hs 41;" f +lightSensor src/Dodge/Placement/Instance/Sensor.hs 40;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f lightx4 src/Color.hs 145;" f linGrad src/Geometry/Intersect.hs 241;" f @@ -4120,6 +4118,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 mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 98;" f mcDamSensorUpdate src/Dodge/Machine/Update.hs 136;" f mcKillBut src/Dodge/Machine/Destroy.hs 37;" f @@ -4165,7 +4164,7 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 152;" f +midChasm src/Dodge/Room/Tutorial.hs 151;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4444,8 +4443,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 173;" f -polyChasmC src/Dodge/Room/Tutorial.hs 182;" f +polyChasm src/Dodge/Room/Tutorial.hs 172;" f +polyChasmC src/Dodge/Room/Tutorial.hs 181;" f polyCirc src/Shape.hs 46;" f polyCircx src/Shape.hs 51;" f polyCornerDist src/Geometry/Polygon.hs 61;" f @@ -4528,20 +4527,19 @@ 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 -putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 65;" f +putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 62;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f -putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 57;" f +putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 55;" f putShape src/Dodge/Room/Foreground.hs 134;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 82;" f -putTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f -putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 22;" f -putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 17;" f -putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f +putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f +putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 20;" f +putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 15;" f putWireEnd src/Dodge/Wire.hs 29;" f putWireStart src/Dodge/Wire.hs 32;" f qID src/Quaternion.hs 58;" f @@ -4628,7 +4626,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 238;" f +removeLights src/Dodge/Room/Tutorial.hs 237;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f @@ -4716,14 +4714,14 @@ rotate3 src/Geometry/Vector3D.hs 48;" f rotate3x src/Geometry/Vector3D.hs 60;" f rotate3y src/Geometry/Vector3D.hs 66;" f rotate3z src/Geometry/Vector3D.hs 54;" f -rotateCamera src/Dodge/Update/Camera.hs 202;" f +rotateCamera src/Dodge/Update/Camera.hs 204;" f rotateList src/Padding.hs 49;" f rotateSH src/Shape.hs 252;" f rotateSHq src/Shape.hs 161;" f rotateSHx src/Shape.hs 260;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f -rotateToOverlappingWall src/Dodge/Update/Camera.hs 214;" f +rotateToOverlappingWall src/Dodge/Update/Camera.hs 216;" f rotateToZ src/Quaternion.hs 35;" f rotateV src/Geometry/Vector.hs 106;" f rotateVAround src/Geometry/Vector.hs 113;" f @@ -4810,8 +4808,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 81;" f -sensorTut src/Dodge/Room/Tutorial.hs 348;" f +sensorSPic src/Dodge/Machine/Draw.hs 90;" f +sensorTut src/Dodge/Room/Tutorial.hs 346;" 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 @@ -4848,7 +4846,7 @@ 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 -setViewDistance src/Dodge/Update/Camera.hs 241;" f +setViewDistance src/Dodge/Update/Camera.hs 243;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewport src/Dodge/Render.hs 438;" f setVol src/Dodge/Config.hs 47;" f @@ -5114,7 +5112,6 @@ teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 43;" f termTextColor src/Dodge/Terminal.hs 46;" f -terminalColor src/Dodge/Placement/Instance/Terminal.hs 73;" f terminalReturnEffect src/Dodge/Terminal.hs 168;" f terminalSPic src/Dodge/Machine/Draw.hs 40;" f terminalScreenGlow src/Dodge/Machine/Update.hs 40;" f @@ -5270,15 +5267,14 @@ trySynthBullet src/Dodge/Creature/State.hs 167;" f tryThrust src/Dodge/Projectile/Update.hs 123;" f tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f -turret src/Dodge/Placement/Instance/Turret.hs 35;" 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 245;" f -tutLight src/Dodge/Room/Tutorial.hs 210;" f -tutRezBox src/Dodge/Room/Tutorial.hs 359;" 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 tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 383;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 380;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5316,7 +5312,7 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f -updateBounds src/Dodge/Update/Camera.hs 263;" f +updateBounds src/Dodge/Update/Camera.hs 265;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 562;" f @@ -5487,7 +5483,7 @@ verticalWire src/Dodge/Wire.hs 23;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f viewBoundaries src/Dodge/Debug/Picture.hs 331;" f viewClipBounds src/Dodge/Debug/Picture.hs 340;" f -viewDistanceFromItems src/Dodge/Update/Camera.hs 199;" f +viewDistanceFromItems src/Dodge/Update/Camera.hs 201;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f violet src/Color.hs 21;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f @@ -5594,7 +5590,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 139;" f +zChasm src/Dodge/Room/Tutorial.hs 138;" 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