diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index d9d9f83e9..a186b7faf 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -62,13 +62,19 @@ optionsToSelections maxlines u allops pmo = sits where offset = u ^?! uvScreenLayers . _head . scOffset ops | maxlines >= length allops = allops - | otherwise = take (maxlines - 2) (drop offset allops) ++ [cycleOptionsOption] + | otherwise = take (maxlines - 2) (drop offset allops ++ repeat dummyMenuOption) ++ [cycleOptionsOption] maxOptionLength = 3 + maximum (0 : map (optionValueOffset u) ops) sits = case pmo of NoPositionedMenuOption -> map (menuOptionToSelectionItem u maxOptionLength) ops TopMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (mo : ops) BottomMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (ops ++ [mo]) - cycleOptionsOption = Toggle cycleOptions (const (MODString "MORE OPTIONS")) + cycleOptionsOption = Toggle cycleOptions (const (MODString ("MORE OPTIONS " ++ show n ++ "/" ++ show m))) + l = length allops + m = div (max 1 (l - 1)) (maxlines - 2) + 1 + n = div (offset + 1) (maxlines - 2) + 1 + +dummyMenuOption :: MenuOption +dummyMenuOption = Toggle id (const $ MODBlockedString "") cycleOptions :: Universe -> Universe cycleOptions u = fromMaybe u $ do