Add mode-context dependent help screen

Issue #10 resolved
Tyler Olsen
created an issue

BootMode has a help screen that displays to the user by pressing F1, and is also displayed automatically when the player starts the game for the first time. The help screen displays the name of the command (ex "Confirm") and the key that it is mapped to (ex "F"). We want to display this help screen from all modes of gameplay, and furthermore the help screen contents should change depending on the active game mode. The help screen should be displayed whenever the player presses the F1 key, and is dismissed by a press of the same key. For example, in map mode we would want the "Confirm" command (as it is named in menus) to be called "Talk/Search", since that is what this key does in that context.

This help screen should either go in src/common since it will be used by all game modes, or the help screen can be made as it's own extremely basic game mode and put in src/modes/help.h/.cpp (the latter option is probably easier since it wouldn't require as much work to handle a "help screen active" state in each mode). Each mode in src/modes will have to have code added so that it process the F1 key and displays the help screen. Ideally, the help menu should be able to take a look at the top of the game stack (look at the code in src/engine/mode_manager.h), figure out what game mode is active at the top of the stack, and fill out the help menu commands appropriately.

If a given key is unused in a mode (for example, pause mode and quit mode only use one or two keys each I believe), grey out the unused keys and show the text "unused" in the command text.

Comments (4)

  1. Tyler Olsen reporter

    Completed this work in pull request #91, and also cleaned up some older parts of our engine and modes along the way. The description text for the commands in each mode should be considered a place holder until we can refine this text. But the important thing is that it is now really easy and fast to change the help text for any part of the game.

  2. Log in to comment