This commit is contained in:
2024-11-24 09:47:32 +00:00
parent 896b452539
commit aca7ebd808
2 changed files with 4 additions and 59 deletions
+4 -28
View File
@@ -51,7 +51,7 @@ updateCombineSections ::
IM.IntMap (SelectionSection CombinableItem)
updateCombineSections w cfig =
updateSectionsPositioning
(const 0)
(const 5)
(w ^? hud . hudElement . subInventory . ciSelection . _Just)
(getAvailableListLines secondColumnParams cfig)
[(0, sclose), (-1, sfclose)]
@@ -113,9 +113,10 @@ checkCombineSelectionExists u = fromMaybe u $ do
%~ scrollSelectionSections (-1) sss
_ -> u
displaySectionsSizes :: Int -> Int
displaySectionsSizes 0 = 10
displaySectionsSizes 3 = 10
displaySectionsSizes _ = 2
displaySectionsSizes _ = 3
updateDisplaySections ::
World ->
@@ -223,7 +224,6 @@ sectionsSizes ::
sectionsSizes x f is sss = doSectionSize extraavailable mintaken is sss mempty
where
mintaken = IM.mapWithKey (\k y -> min (f k) y) sss
--mintaken = IM.mapWithKey (\k y -> f k) sss
extraavailable = x - sum mintaken
doSectionSize ::
@@ -267,34 +267,10 @@ updateSectionsPositioning f mselpos allavailablelines lsss sss =
return i
ls = IM.fromList lsss
h = IM.intersectionWith ($)
g k x z = x
lk = fromMaybe [] $ fmap ((:[]) . fst) mselpos
ssizes = sectionsSizes allavailablelines displaySectionsSizes
ssizes = sectionsSizes allavailablelines f
lk $ sectionsDesiredLines $ IM.intersectionWith (set ssItems) ls sss
updateSectionsPositioning' ::
(Int -> Int) -> -- for determining each sections minimum size
Maybe (Int, Int) ->
Int ->
[(Int, IM.IntMap (SelectionItem a))] ->
IM.IntMap (SelectionSection a) ->
IM.IntMap (SelectionSection a)
updateSectionsPositioning' f mselpos allavailablelines lsss sss = fromMaybe mempty $ do
((k, y) , xs) <- List.uncons lsss
x <- sss ^? ix k
let mscel = do
(i, j) <- mselpos
guard $ i == k
return j
let availablelines = allavailablelines - min (f k) (length $ _ssShownItems x)
let previoussections = updateSectionsPositioning f mselpos availablelines xs sss
-- let linestaken (k',ss') = max (length $ _ssShownItems ss') (f k')
-- let linesleft = allavailablelines - sum (linestaken <$> IM.toList $ previoussections)
let linestaken = length . _ssShownItems
let linesleft = allavailablelines - sum (linestaken <$> previoussections)
let ss = updateSection y mscel linesleft x
return $ IM.insert k ss previoussections
updateSection ::
IM.IntMap (SelectionItem a) ->
Maybe Int ->