-- states/character.lua — Character / Status / Weather tabs. -- -- Purely tabbed: there is no per-entry cursor, the tab body is just drawn. So we -- announce the tab, and the body is left to the dedicated status key (Phase 5). return { read = function(stateTable, menus) local tabIndex = menus.getAnyUpvalue(stateTable, "activeTabIndex") local tabsList = menus.getAnyUpvalue(stateTable, "tabsList") if type(tabIndex) ~= "number" or type(tabsList) ~= "table" then return nil, nil end local tab = tabsList[tabIndex] if not tab then return nil, nil end return string.format("%s, %d of %d", tab.header or "?", tabIndex, #tabsList), tostring(tabIndex) end, }