This commit is contained in:
2026-05-17 23:52:17 +01:00
parent 8010335ffe
commit 75734d06af
3 changed files with 40 additions and 68 deletions
+2 -30
View File
@@ -25,9 +25,6 @@ import Data.Foldable
import qualified Data.IntMap.Strict as IM
import Data.Maybe
import Dodge.Data.CardinalPoint
import Dodge.Data.Config
import Dodge.Data.HUD
import Dodge.Data.SelectionList
import Dodge.ScreenPos
import Geometry.Data
@@ -47,7 +44,6 @@ ssScrollUsing ::
Maybe Selection
ssScrollUsing g = ssScrollMinOnFail g . fmap (ssItems %~ IM.filter _siIsSelectable)
--
ssScrollMinOnFail ::
(Int -> Int -> IMSS a -> Maybe (Int, Int, SelectionItem a)) ->
IMSS a ->
@@ -55,27 +51,10 @@ ssScrollMinOnFail ::
Maybe Selection
ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> Sel i j) $ l <|> ssLookupMin sss
where
-- q = fold (msel ^? _Just . slSet)
l = do
Sel i j <- msel
f i j sss
---- this version removes the selected set when scrolling outside it
--ssScrollMinOnFail' ::
-- (Int -> Int -> IMSS a -> Maybe (Int, Int, SelectionItem a)) ->
-- IMSS a ->
-- Maybe Selection ->
-- Maybe Selection
--ssScrollMinOnFail' f sss msel = fmap (\(i, j, _) -> Sel i j (q i j)) $ l <|> ssLookupMin sss
-- where
-- q i j = fromMaybe mempty $ do
-- Sel k _ xs <- msel ^? _Just
-- guard $ j `IS.member` xs && i == k
-- return xs
-- l = do
-- Sel i j _ <- msel
-- f i j sss
ssSetCursor ::
(IMSS a -> Maybe (Int, Int, SelectionItem a)) ->
IMSS a ->
@@ -84,13 +63,6 @@ ssSetCursor ::
ssSetCursor f sss msel = fromMaybe msel $ do
(i,j,_) <- f sss
return $ Just (Sel i j)
-- = fromMaybe msel $ do
-- (i, j, _) <- f sss
-- let newxs = fromMaybe mempty $ do
-- Sel k _ xs <- msel
-- guard $ k == i && j `IS.member` xs
-- return xs
-- return $ Just (Sel i j newxs)
ssLookupMax :: IMSS a -> Maybe (Int, Int, SelectionItem a)
ssLookupMax sss = do
@@ -237,7 +209,7 @@ inverseSelSecYintXPosCheckFixedWidth ::
Config -> LDParams -> Float -> Int -> IMSS a -> Maybe (XInfinity (Int, Int))
inverseSelSecYintXPosCheckFixedWidth cfig ldp x yint sss = do
let sel = inverseSelSecYint yint sss
(i,j) <- case sel of
(i,_) <- case sel of
NonInf v -> Just v
NegInf -> do
(i',j',_) <- ssLookupMin sss
@@ -247,7 +219,7 @@ inverseSelSecYintXPosCheckFixedWidth cfig ldp x yint sss = do
return (i',j')
let V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos)
sindent <- sss ^? ix i . ssIndent
itindent <- sss ^? ix i . ssItems . ix j . siOffX
-- itindent <- sss ^? ix i . ssItems . ix j . siOffX
--let x1 = x0 + _ldpScale ldp * 10 * (fromIntegral (sindent + itindent) - 0.5)
let x1 = x0 + _ldpScale ldp * 10 * (fromIntegral (sindent) - 0.5)
guard $ x - x1 < 170 && x > x1
+9 -9
View File
@@ -66,16 +66,16 @@ updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . subInven
sss <- di ^? diSections
msel <- di ^? diSelection
filts <- di ^? filterprism
let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts
let ( msel', filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts
return $ di
& diSections .~ sss'
& diSelection .~ msel'
& filterlens .~ filts'
docombineregexinput sss msel ci = fromMaybe ci $ do
filts <- ci ^? ciFilter
let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts
--let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts
let ( msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts
return $ ci
& ciSections .~ sss'
-- & ciSections .~ sss'
& ciSelection .~ msel'
& ciFilter .~ filts'
@@ -455,19 +455,19 @@ doRegexInput ::
IMSS a ->
Maybe Selection ->
Maybe String ->
(IMSS a, Maybe Selection, Maybe String)
(Maybe Selection, Maybe String)
doRegexInput inp i sss msel filts
| backspacetonothing || escapekey = endregex i 0
| endkeys = endregex (i + 1) (j - 1)
| otherwise =
( sss
, msel
(-- sss ,
msel
, filts & doTextInputOver inp _Just
)
where
endregex a b =
( sss
, msel & ssSetCursor (ssLookupDown a b) sss
(-- sss ,
msel & ssSetCursor (ssLookupDown a b) sss
, Nothing
)
j = fromMaybe 0 $ do