Refactor menu rendering and asset registry structure

- Updated SoftwareRenderer to incorporate MenuHeaderBand for handling spear variant menus and improved backdrop drawing.
- Refactored asset registry imports to organize menu-related assets under a dedicated menu structure.
- Enhanced game session snapshot tests to validate menu theme restoration for spear variant games.
- Added tests for classic menu presentation module to ensure palette consistency with canonical constants.
- Implemented tests for spear asset registry to verify correct menu VGA index resolutions.
- Created unit tests for MenuHeaderBand to validate functionality in rendering menu headers and sidebars.
- Adjusted HUD module imports to align with new menu structure.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-24 23:35:56 +01:00
parent 5c309c2240
commit d393ca98ec
40 changed files with 1327 additions and 296 deletions
@@ -159,6 +159,23 @@ void main() {
expect(manager.transitionEffect, WolfTransitionEffect.none);
expect(manager.activeMenu, WolfMenuScreen.difficultySelect);
});
test('spear variant main menu omits READ THIS row', () {
final manager = MenuManager();
manager.beginSelectionFlow(
gameCount: 1,
initialGameIsSpear: true,
);
manager.showMainMenu(hasResumableGame: false, hasLoadableSave: true);
expect(
manager.mainMenuEntries.any(
(entry) => entry.action == WolfMenuMainAction.readThis,
),
isFalse,
);
});
});
}