diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index 09c7b6044..662b8833f 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -14,7 +14,6 @@ import Data.Aeson import Data.Aeson.TH import qualified Data.Map.Strict as M import Dodge.Data.BlBl ---import Dodge.Data.Machine.Sensor.Type import Dodge.Data.Terminal.Status import Dodge.Data.WorldEffect import Sound.Data @@ -63,8 +62,7 @@ data TmWdWd | TmWdWdDoDeathTriggers | TmTmClearDisplayedLines | TmTmSetStatus TerminalStatus --- | TmGetDamageCoding SensorType - | TmGetSensor String +-- | TmGetSensor String makeLenses ''Terminal makeLenses ''TerminalLine diff --git a/src/Dodge/Room/Warning.hs b/src/Dodge/Room/Warning.hs index f971a5e97..6f34080e7 100644 --- a/src/Dodge/Room/Warning.hs +++ b/src/Dodge/Room/Warning.hs @@ -1,6 +1,7 @@ --{-# LANGUAGE TupleSections #-} module Dodge.Room.Warning (warningRooms) where +import Dodge.Default.Terminal import Dodge.Data.BlBl import Color import qualified Data.Map.Strict as M @@ -16,7 +17,6 @@ import Dodge.Room.Procedural import Dodge.Room.Tanks import Dodge.Terminal import Dodge.Tree -import Dodge.WorldEffect import Geometry import LensHelp import RandomHelp @@ -46,6 +46,15 @@ addWarningTerminal str outplid = (rmName .++~ "warningTerm-") & tmToggles .~ M.fromList [("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))] +lineOutputTerminal :: [TerminalLine] -> Terminal +lineOutputTerminal tls = + defaultTerminal + { _tmDisplayedLines = [] + , _tmFutureLines = [] + , _tmBootLines = connectionBlurbLines tls + , _tmDeathEffect = TmWdWdDoDeathTriggers + } + moveToSideFirstOutLink :: RoomPos -> Room -> Maybe (Point2, Float) moveToSideFirstOutLink rp rm = do 0 <- rp ^? rpLinkStatus . rplsChildNum diff --git a/src/Dodge/Terminal.hs b/src/Dodge/Terminal.hs index afc69176b..465a87652 100644 --- a/src/Dodge/Terminal.hs +++ b/src/Dodge/Terminal.hs @@ -81,8 +81,7 @@ decodeSensorType st w = fromMaybe [] $ do x <- w ^? cWorld . cwGen . cwgParams . sensorCoding . ix st return [makeTermLine $ show x] - --- ugly, when changing check getSensorInfo +-- ugly sensorCommand :: World -> Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) sensorCommand w tm = PTE.singleton "SENSOR" $ fromMaybe mempty $ do ProximitySensor _ d r b <- w ^? cWorld . lWorld . machines . ix (tm ^. tmMachineID) . mcType . _McSensor diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index ea2d9703c..7fb1bed7c 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -4,7 +4,6 @@ module Dodge.WorldEffect ( doWdWd, accessTerminal, doTmWdWd, - lineOutputTerminal, ) where import Control.Monad @@ -15,13 +14,10 @@ import Dodge.BlBl import Dodge.Creature.Impulse.UseItem import Dodge.Data.Terminal.Status import Dodge.Data.World -import Dodge.Default import Dodge.HeldUse import Dodge.Inventory.Lock import Dodge.Item.Grammar ---import Dodge.Item.Location import Dodge.SoundLogic -import Dodge.Terminal import Dodge.WorldEvent.Cloud import qualified IntMapHelp as IM import LensHelp @@ -78,18 +74,10 @@ torqueCr x cid w where (rot, g) = randomR (- x, x) $ _randGen w -lineOutputTerminal :: [TerminalLine] -> Terminal -lineOutputTerminal tls = - defaultTerminal - { _tmDisplayedLines = [] - , _tmFutureLines = [] - , _tmBootLines = connectionBlurbLines tls - , _tmDeathEffect = TmWdWdDoDeathTriggers - } - doDeathTriggers :: Terminal -> World -> World -doDeathTriggers tm = (cWorld . lWorld . triggers %~ flip (foldl' $ flip doDeathToggle) xs) - . (cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus .~ TerminalDeactivated) +doDeathTriggers tm = + (cWorld . lWorld . triggers %~ flip (foldl' $ flip doDeathToggle) xs) + . (cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus .~ TerminalDeactivated) where xs = M.elems $ _tmToggles tm @@ -101,18 +89,7 @@ doTmWdWd tmwdwd = case tmwdwd of TmTmClearDisplayedLines -> \tm -> fromMaybe id $ do tid <- tm ^? tmID return $ cWorld . lWorld . terminals . ix tid . tmDisplayedLines .~ [] --- TmGetDamageCoding st -> \tm w -> fromMaybe w $ do --- tid <- tm ^? tmID --- return $ --- w & cWorld . lWorld . terminals . ix tid . tmFutureLines --- .~ decodeSensorType st w - TmGetSensor s -> \tm w -> fromMaybe w $ do - tid <- tm ^? tmID - return $ w & cWorld . lWorld . terminals . ix tid . tmFutureLines - .~ getSensorInfo w tm s - TmTmSetStatus x -> \tm -> fromMaybe id $ do - tid <- tm ^? tmID - return $ cWorld . lWorld . terminals . ix tid . tmStatus .~ x + TmTmSetStatus x -> \tm -> cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus .~ x TmWdId -> const id TmWdWdPowerDownTerminal -> powerDownTerminal TmWdWdDeactivateTerminal -> deactivateTerminal @@ -136,17 +113,5 @@ deactivateTerminal tm = exitTerminalSubInv :: World -> World exitTerminalSubInv w = case w ^? hud . hudElement . subInventory . termID of - Just _ -> - w & hud . hudElement . subInventory - .~ NoSubInventory --MouseInvNothing + Just _ -> w & hud . hudElement . subInventory .~ NoSubInventory _ -> w - --- ugly, when changing check sensorCommand -getSensorInfo :: World -> Terminal -> String -> [TerminalLine] -getSensorInfo w tm = \case - "REQUIREMENT" -> maybe [] f $ w ^? cWorld . lWorld . machines . ix (tm ^. tmMachineID) . mcType . _McSensor . proxRequirement - "DISTANCE" -> maybe [] f $ w ^? cWorld . lWorld . machines . ix (tm ^. tmMachineID) . mcType . _McSensor . proxDist - "STATUS" -> maybe [] f $ w ^? cWorld . lWorld . machines . ix (tm ^. tmMachineID) . mcType . _McSensor . sensToggle - _ -> [] - where - f s = [makeTermLine $ show s] diff --git a/tags b/tags index 0bf6fb402..24191fb02 100644 --- a/tags +++ b/tags @@ -17,7 +17,7 @@ <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 80;" o <$> src/Dodge/Data/LWorld.hs 184;" o -<$> src/Dodge/Data/Terminal.hs 74;" o +<$> src/Dodge/Data/Terminal.hs 72;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C ALTERIFLE src/Dodge/Data/Item/Combine.hs 155;" C @@ -1305,12 +1305,12 @@ SwarmCrit src/Dodge/Data/Creature/Misc.hs 71;" C SwitchToItem src/Dodge/Data/ActionPlan.hs 38;" C TAPE src/Dodge/Data/Item/Combine.hs 56;" C TARGETING src/Dodge/Data/Item/Combine.hs 22;" C -TCBase src/Dodge/Data/Terminal.hs 52;" C -TCDamageCommand src/Dodge/Data/Terminal.hs 53;" C -TCInfo src/Dodge/Data/Terminal.hs 51;" C -TCSensorInfo src/Dodge/Data/Terminal.hs 54;" C -TCToggles src/Dodge/Data/Terminal.hs 55;" C -TCom src/Dodge/Data/Terminal.hs 50;" t +TCBase src/Dodge/Data/Terminal.hs 51;" C +TCDamageCommand src/Dodge/Data/Terminal.hs 52;" C +TCInfo src/Dodge/Data/Terminal.hs 50;" C +TCSensorInfo src/Dodge/Data/Terminal.hs 53;" C +TCToggles src/Dodge/Data/Terminal.hs 54;" C +TCom src/Dodge/Data/Terminal.hs 49;" t TESLAGUN src/Dodge/Data/Item/Combine.hs 169;" C THERMOMETER src/Dodge/Data/Item/Combine.hs 85;" C THREELINES src/Dodge/Data/GenParams.hs 20;" C @@ -1318,7 +1318,7 @@ TIMESCROLLER src/Dodge/Data/Item/Combine.hs 144;" C TIMESTOPPER src/Dodge/Data/Item/Combine.hs 143;" C TIN src/Dodge/Data/Item/Combine.hs 58;" C TINMAG src/Dodge/Data/Item/Combine.hs 108;" C -TLine src/Dodge/Data/Terminal.hs 39;" C +TLine src/Dodge/Data/Terminal.hs 38;" C TO src/Shader/Data.hs 59;" t TORCH src/Dodge/Data/Item/Combine.hs 176;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 170;" C @@ -1342,18 +1342,18 @@ TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C TermSignal src/Dodge/Data/Input.hs 55;" t -Terminal src/Dodge/Data/Terminal.hs 22;" t +Terminal src/Dodge/Data/Terminal.hs 21;" t TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C -TerminalLine src/Dodge/Data/Terminal.hs 39;" t -TerminalLineConst src/Dodge/Data/Terminal.hs 37;" C +TerminalLine src/Dodge/Data/Terminal.hs 38;" t +TerminalLineConst src/Dodge/Data/Terminal.hs 36;" C TerminalLineRead src/Dodge/Data/Terminal/Status.hs 13;" C -TerminalLineString src/Dodge/Data/Terminal.hs 37;" t +TerminalLineString src/Dodge/Data/Terminal.hs 36;" 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 24;" 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 45;" t +TerminalToggle src/Dodge/Data/Terminal.hs 44;" t Terrestrial src/Dodge/Data/Scenario.hs 72;" C TerrestrialBiome src/Dodge/Data/Scenario.hs 76;" t TeslaArc src/Dodge/Data/TeslaArc.hs 17;" t @@ -1365,16 +1365,16 @@ Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C TimeFlowStatus src/Dodge/Data/World.hs 58;" t Tiny src/Shape/Data.hs 32;" C -TmGetSensor src/Dodge/Data/Terminal.hs 67;" C -TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 64;" C -TmTmSetStatus src/Dodge/Data/Terminal.hs 65;" C -TmWdId src/Dodge/Data/Terminal.hs 58;" C -TmWdWd src/Dodge/Data/Terminal.hs 57;" t -TmWdWdDeactivateTerminal src/Dodge/Data/Terminal.hs 60;" C -TmWdWdDoDeathTriggers src/Dodge/Data/Terminal.hs 63;" C -TmWdWdPowerDownTerminal src/Dodge/Data/Terminal.hs 59;" C -TmWdWdTermSound src/Dodge/Data/Terminal.hs 62;" C -TmWdWdfromWdWd src/Dodge/Data/Terminal.hs 61;" C +TmGetSensor src/Dodge/Data/Terminal.hs 65;" C +TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 63;" C +TmTmSetStatus src/Dodge/Data/Terminal.hs 64;" C +TmWdId src/Dodge/Data/Terminal.hs 57;" C +TmWdWd src/Dodge/Data/Terminal.hs 56;" t +TmWdWdDeactivateTerminal src/Dodge/Data/Terminal.hs 59;" C +TmWdWdDoDeathTriggers src/Dodge/Data/Terminal.hs 62;" C +TmWdWdPowerDownTerminal src/Dodge/Data/Terminal.hs 58;" C +TmWdWdTermSound src/Dodge/Data/Terminal.hs 61;" C +TmWdWdfromWdWd src/Dodge/Data/Terminal.hs 60;" C ToContinueStart src/Sound/Data.hs 27;" C ToPlaySound src/Sound/Data.hs 35;" t ToStart src/Sound/Data.hs 26;" C @@ -2416,21 +2416,21 @@ _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 78;" f -_tlEffect src/Dodge/Data/Terminal.hs 42;" f -_tlPause src/Dodge/Data/Terminal.hs 40;" f -_tlString src/Dodge/Data/Terminal.hs 41;" f -_tmBootLines src/Dodge/Data/Terminal.hs 24;" f -_tmButtonID src/Dodge/Data/Terminal.hs 25;" f -_tmCommandHistory src/Dodge/Data/Terminal.hs 33;" f -_tmCommands src/Dodge/Data/Terminal.hs 30;" f -_tmDeathEffect src/Dodge/Data/Terminal.hs 31;" f -_tmDisplayedLines src/Dodge/Data/Terminal.hs 28;" f -_tmExternalColor src/Dodge/Data/Terminal.hs 27;" f -_tmFutureLines src/Dodge/Data/Terminal.hs 29;" f -_tmID src/Dodge/Data/Terminal.hs 23;" f -_tmMachineID src/Dodge/Data/Terminal.hs 26;" f -_tmStatus src/Dodge/Data/Terminal.hs 32;" f -_tmToggles src/Dodge/Data/Terminal.hs 34;" f +_tlEffect src/Dodge/Data/Terminal.hs 41;" f +_tlPause src/Dodge/Data/Terminal.hs 39;" f +_tlString src/Dodge/Data/Terminal.hs 40;" f +_tmBootLines src/Dodge/Data/Terminal.hs 23;" f +_tmButtonID src/Dodge/Data/Terminal.hs 24;" f +_tmCommandHistory src/Dodge/Data/Terminal.hs 32;" f +_tmCommands src/Dodge/Data/Terminal.hs 29;" f +_tmDeathEffect src/Dodge/Data/Terminal.hs 30;" f +_tmDisplayedLines src/Dodge/Data/Terminal.hs 27;" f +_tmExternalColor src/Dodge/Data/Terminal.hs 26;" f +_tmFutureLines src/Dodge/Data/Terminal.hs 28;" f +_tmID src/Dodge/Data/Terminal.hs 22;" f +_tmMachineID src/Dodge/Data/Terminal.hs 25;" f +_tmStatus src/Dodge/Data/Terminal.hs 31;" f +_tmToggles src/Dodge/Data/Terminal.hs 33;" f _toPlaySoundChunkID src/Sound/Data.hs 41;" f _toPlaySoundPos src/Sound/Data.hs 38;" f _toPlaySoundStatus src/Sound/Data.hs 37;" f @@ -2444,8 +2444,8 @@ _tractorBeams src/Dodge/Data/LWorld.hs 123;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f _triggers src/Dodge/Data/LWorld.hs 133;" f -_ttDeathEffect src/Dodge/Data/Terminal.hs 47;" f -_ttTriggerID src/Dodge/Data/Terminal.hs 46;" f +_ttDeathEffect src/Dodge/Data/Terminal.hs 46;" f +_ttTriggerID src/Dodge/Data/Terminal.hs 45;" f _tuDir src/Dodge/Data/Machine.hs 61;" f _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f @@ -2569,7 +2569,7 @@ aRadarPulse src/Dodge/RadarSweep.hs 19;" f aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f aSound src/Dodge/SoundLogic.hs 74;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 56;" f +accessTerminal src/Dodge/WorldEffect.hs 54;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 60;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f addArmour src/Dodge/Creature.hs 85;" f @@ -3118,7 +3118,7 @@ dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 314;" f deZoneIX src/Dodge/Zoning/Base.hs 89;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f -deactivateTerminal src/Dodge/WorldEffect.hs 131;" f +deactivateTerminal src/Dodge/WorldEffect.hs 113;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f deadFeet src/Dodge/Creature/Picture.hs 66;" f deadRot src/Dodge/Creature/Picture.hs 82;" f @@ -3274,8 +3274,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doDamage src/Dodge/Creature/State.hs 41;" f -doDeathToggle src/Dodge/WorldEffect.hs 96;" f -doDeathTriggers src/Dodge/WorldEffect.hs 90;" f +doDeathToggle src/Dodge/WorldEffect.hs 85;" f +doDeathTriggers src/Dodge/WorldEffect.hs 79;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f @@ -3326,13 +3326,13 @@ doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 182;" f doTimeScroll src/Dodge/Update.hs 208;" f -doTmWdWd src/Dodge/WorldEffect.hs 99;" f +doTmWdWd src/Dodge/WorldEffect.hs 88;" f doWallRotate src/Dodge/Update/Camera.hs 213;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f -doWdWd src/Dodge/WorldEffect.hs 30;" f +doWdWd src/Dodge/WorldEffect.hs 28;" f doWorldEvents src/Dodge/Update.hs 443;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f @@ -3552,7 +3552,7 @@ errorNormalizeV src/Geometry.hs 55;" f errorPointInPolygon src/Geometry.hs 47;" f evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 150;" f evenOddSplit src/Dodge/Base.hs 160;" f -exitTerminalSubInv src/Dodge/WorldEffect.hs 137;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 119;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3709,7 +3709,7 @@ getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f -getSensorInfo src/Dodge/WorldEffect.hs 145;" f +getSensorInfo src/Dodge/WorldEffect.hs 125;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f getTiles src/Dodge/Layout.hs 208;" f @@ -4072,7 +4072,7 @@ lineCol src/Picture/Base.hs 230;" f lineGeom src/Dodge/Base.hs 32;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOrth src/Dodge/Creature/Boid.hs 126;" f -lineOutputTerminal src/Dodge/WorldEffect.hs 81;" f +lineOutputTerminal src/Dodge/Room/Warning.hs 49;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 148;" f @@ -4311,7 +4311,7 @@ moveProjectile src/Dodge/Projectile/Update.hs 262;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 248;" f -moveToSideFirstOutLink src/Dodge/Room/Warning.hs 49;" f +moveToSideFirstOutLink src/Dodge/Room/Warning.hs 58;" f moveWall src/Dodge/Wall/Move.hs 29;" f moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f @@ -4591,7 +4591,7 @@ positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f postWorldLoad src/Dodge/WorldLoad.hs 15;" f -powerDownTerminal src/Dodge/WorldEffect.hs 125;" f +powerDownTerminal src/Dodge/WorldEffect.hs 107;" f powerFakeout src/Dodge/Room/Start.hs 27;" f powerFakeout' src/Dodge/Room/Start.hs 24;" f powerLegs src/Dodge/Item/Equipment.hs 85;" f @@ -5337,7 +5337,7 @@ topTestPart src/Dodge/TestString.hs 60;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torqueAmount src/Dodge/HeldUse.hs 579;" f -torqueCr src/Dodge/WorldEffect.hs 74;" f +torqueCr src/Dodge/WorldEffect.hs 72;" f torso src/Dodge/Creature/Picture.hs 100;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f