Rethink selection lists as intmaps

This commit is contained in:
2023-01-15 23:17:47 +00:00
parent 17734738f6
commit 048135c370
17 changed files with 245 additions and 93 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
module Dodge.Menu.Loading where
import Dodge.Default.SelectionList
import Dodge.Menu.Option
import Dodge.Data.Universe
@@ -10,7 +11,7 @@ loadingScreen str = OptionScreen
, _scOffset = 0
, _scPositionedMenuOption = NoPositionedMenuOption
, _scOptionFlag = LoadingScreen
, _scSelectionList = SelectionList [] Nothing 0 "" False
, _scSelectionList = defaultSelectionList
, _scAvailableLines = 0
, _scListDisplayParams = optionListDisplayParams
}
+2 -3
View File
@@ -1,6 +1,7 @@
module Dodge.Menu.Option where
--import Dodge.ScodeToChar
import Dodge.Default.SelectionList
import Data.Maybe
--import Dodge.WindowLayout
@@ -62,12 +63,10 @@ makeOptionsSelectionList ::
PositionedMenuOption ->
SelectionList (Universe -> Universe)
makeOptionsSelectionList maxlines mselpos u mos pmo =
SelectionList
defaultSelectionList
{ _slItems = optionsToSelections maxlines u mos pmo
, _slSelPos = mselpos
, _slLength = length $ optionsToSelections maxlines u mos pmo
, _slRegex = ""
, _slRegexInput = False
}
optionsToSelections :: Int -> Universe -> [MenuOption] -> PositionedMenuOption -> [SelectionItem (Universe -> Universe)]