From f7759b1f310585e0a6be63fe9fe0de0b82698291 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 16 Aug 2025 01:58:21 +0100 Subject: [PATCH] Add external Trie library before using Tries for terminal commands --- package.yaml | 1 + src/Dodge/Data/Terminal.hs | 11 ++++++----- src/Dodge/Default/Terminal.hs | 2 +- src/Dodge/Placement/Instance/Analyser.hs | 2 +- src/Dodge/Room/SensorDoor.hs | 2 +- src/Dodge/Room/Warning.hs | 2 +- src/Dodge/Terminal.hs | 4 ++-- src/Dodge/WorldEffect.hs | 2 +- stack.yaml | 1 + 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/package.yaml b/package.yaml index 0c3d3fefd..24c38d8a7 100644 --- a/package.yaml +++ b/package.yaml @@ -54,6 +54,7 @@ dependencies: - tasty - tasty-hunit - tasty-quickcheck +- list-tries library: source-dirs: src diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index b14cecf42..ba0106d5a 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -8,6 +8,7 @@ module Dodge.Data.Terminal ( module Dodge.Data.Terminal.Status, ) where +import qualified Data.ListTrie.Patricia.Map.Enum as PT import Sound.Data import Color import Control.Lens @@ -30,7 +31,7 @@ data Terminal = Terminal , _tmExternalColor :: Color , _tmDisplayedLines :: [(String, Color)] , _tmFutureLines :: [TerminalLine] - , _tmScrollCommands :: [TerminalCommand] + , _tmCommands :: [TerminalCommand] , _tmDeathEffect :: TmWdWd , _tmStatus :: TerminalStatus , _tmCommandHistory :: [String] @@ -76,10 +77,10 @@ data TerminalCommand = TerminalCommand , _tcEffect :: TerminalCommandEffect -- Terminal -> World -> EffectArguments } ---data TCom = TCom --- { _tcomHelp :: String --- , _tcomArgs :: Trie Char [TerminalLine] --- } +data TCom = TCom + { _tcomHelp :: String + , _tcomArgs :: PT.TrieMap Char [TerminalLine] + } data TmWdWd = TmWdId diff --git a/src/Dodge/Default/Terminal.hs b/src/Dodge/Default/Terminal.hs index 84c1dacd9..b1e007b7c 100644 --- a/src/Dodge/Default/Terminal.hs +++ b/src/Dodge/Default/Terminal.hs @@ -17,7 +17,7 @@ defaultTerminal = , _tmDisplayedLines = [] , _tmFutureLines = [] -- , _tmInput = defaultTerminalInput - , _tmScrollCommands = [] + , _tmCommands = [] -- , _tmWriteCommands = [] , _tmDeathEffect = TmWdId , _tmStatus = TerminalOff diff --git a/src/Dodge/Placement/Instance/Analyser.hs b/src/Dodge/Placement/Instance/Analyser.hs index 673753c1c..6e1549b89 100644 --- a/src/Dodge/Placement/Instance/Analyser.hs +++ b/src/Dodge/Placement/Instance/Analyser.hs @@ -21,7 +21,7 @@ analyser proxreq pslight psmc = extTrigLitPos pslight $ \tp -> (themachine & mcMounts . at OTTrigger .~ _plMID tp) tparams -- (linksensortotrigger tp) where - tparams = basicTerminal & tmScrollCommands .:~ sensorCommand + tparams = basicTerminal & tmCommands .:~ sensorCommand -- linksensortotrigger tp _ mc -- = triggers . ix (fromJust $ _plMID tp) .~ const (_sensToggle $ _mcSensor mc) themachine = diff --git a/src/Dodge/Room/SensorDoor.hs b/src/Dodge/Room/SensorDoor.hs index 884254aab..6c59678e9 100644 --- a/src/Dodge/Room/SensorDoor.hs +++ b/src/Dodge/Room/SensorDoor.hs @@ -74,7 +74,7 @@ sensInsideDoor senseType outplid 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 (basicTerminal & tmScrollCommands .:~ damageCodeCommand) + , putMessageTerminal terminalColor (basicTerminal & tmCommands .:~ damageCodeCommand) & plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10) ] & rmOutPmnt .~ [OutPlacement (sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100)) outplid] diff --git a/src/Dodge/Room/Warning.hs b/src/Dodge/Room/Warning.hs index 4ca9056e5..7a18821af 100644 --- a/src/Dodge/Room/Warning.hs +++ b/src/Dodge/Room/Warning.hs @@ -47,7 +47,7 @@ addWarningTerminal str outplid = ) termMessages trpl = lineOutputTerminal (makeColorTermLine red "WARNING" : makeTermPara str) - & tmScrollCommands .:~ toggleCommand + & tmCommands .:~ toggleCommand & tmToggles .~ M.fromList [("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))] diff --git a/src/Dodge/Terminal.hs b/src/Dodge/Terminal.hs index 15f80491c..6fdfdfbaa 100644 --- a/src/Dodge/Terminal.hs +++ b/src/Dodge/Terminal.hs @@ -40,7 +40,7 @@ basicTerminal = { _tmDisplayedLines = [] , _tmFutureLines = [] -- , _tmTitle = "TERMINAL" - , _tmScrollCommands = [helpCommand,commandsCommand,quitCommand] + , _tmCommands = [helpCommand,commandsCommand,quitCommand] -- , _tmWriteCommands = [helpCommand, commandsCommand] , _tmBootLines = connectionBlurb , _tmDeathEffect = TmWdWdDoDeathTriggers @@ -110,7 +110,7 @@ termTextColor :: Color termTextColor = greyN 0.9 getCommands :: Terminal -> [TerminalCommand] -getCommands tm = _tmScrollCommands tm -- ++ _tmWriteCommands tm +getCommands tm = _tmCommands tm -- ++ _tmWriteCommands tm makeTermLine :: String -> TerminalLine makeTermLine = makeColorTermLine termTextColor diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index c3d329f8f..b021e5085 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -79,7 +79,7 @@ lineOutputTerminal tls = { _tmDisplayedLines = [] , _tmFutureLines = [] -- , _tmTitle = "TERMINAL" - , _tmScrollCommands = [helpCommand,commandsCommand,quitCommand] + , _tmCommands = [helpCommand,commandsCommand,quitCommand] -- , _tmWriteCommands = [helpCommand, commandsCommand] , _tmBootLines = connectionBlurbLines tls , _tmDeathEffect = TmWdWdDoDeathTriggers diff --git a/stack.yaml b/stack.yaml index d381e1f92..6f25092a7 100644 --- a/stack.yaml +++ b/stack.yaml @@ -42,6 +42,7 @@ packages: extra-deps: #- SDL-0.6.7.0@sha256:9d6ba75c0cab575ec38468c8277803983e985f9622437aeca6a53e6a7337a7d5,2045 - sdl2-mixer-1.2.0.0@sha256:6a6b5a46c035c9e77eaf9c244e45de9e4a9b9a110890cfeeb9fa72faa2419cef,4497 +- list-tries-0.6.7.1@sha256:a53b4a466d2ecdb932da4c1d34ec8dda99d9eba2977eb991f6b052ad710e249d,4272 #- repa-3.4.1.5@sha256:4d94845e66d668345130f75f5de8f7c69139b91495c8c4b5a825014e8985e2fd,3562 #- strict-containers-0.1@sha256:d751696a8a74e368cf778cf98410b43fcd192d68febd4c691faaac1d6c3ab63f,10591 #- strict-containers-lens-0.1@sha256:97c0e68e2e23578074d41fa45690a9ff7b1d47057ea6635d863af99f0daa2f9d,1103