Feature #1630
Updated by skyjake about 11 years ago
It is not ideal that game menus are completely hard-coded into the game plugins. Also, implementing the game menus directly on Doomsday UI widgets makes quite a large leap from generic components into game-specific ones.
One solution would be to replace the game plugins'/libcommon menu system with an InFine-based one. This would consolidate existing subsystems in a nice way, and act as a good use case for interactive, script-based InFine. It is also a good match for InFine because it is responsible for game-side UI animations; only the interactivity and scripted logic needs enhancing.
InFine-based menus would be easily extensible/modifiable by addons, especially if the functions activated by menu items would be implemented as script functions.
In practice, InFine would likely have to be refactored to use a separate Doomsday widget (@InfineWidget@) per each InFine layer (the menu, including all its subpages, would be a single layer). layer.
One solution would be to replace the game plugins'/libcommon menu system with an InFine-based one. This would consolidate existing subsystems in a nice way, and act as a good use case for interactive, script-based InFine. It is also a good match for InFine because it is responsible for game-side UI animations; only the interactivity and scripted logic needs enhancing.
InFine-based menus would be easily extensible/modifiable by addons, especially if the functions activated by menu items would be implemented as script functions.
In practice, InFine would likely have to be refactored to use a separate Doomsday widget (@InfineWidget@) per each InFine layer (the menu, including all its subpages, would be a single layer). layer.