diff options
Diffstat (limited to 'engines/sherlock/journal.h')
-rw-r--r-- | engines/sherlock/journal.h | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/engines/sherlock/journal.h b/engines/sherlock/journal.h index be5c4d77c3..d62b8338c0 100644 --- a/engines/sherlock/journal.h +++ b/engines/sherlock/journal.h @@ -25,12 +25,22 @@ #include "common/scummsys.h" #include "common/array.h" +#include "common/rect.h" #include "common/serializer.h" #include "common/str-array.h" #include "common/stream.h" namespace Sherlock { +#define JOURNAL_MAX_WIDTH 230 +#define JOURNAL_MAX_CHARS 80 + +enum JournalButton { + BTN_NONE, BTN_EXIT, BTN_BACK10, BTN_UP, BTN_DOWN, BTN_AHEAD110, BTN_SEARCH, + BTN_FIRST_PAGE, BTN_LAST_PAGE, BTN_PRINT_TEXT +}; + + struct JournalEntry { int _converseNum; bool _replyOnly; @@ -57,28 +67,70 @@ private: int _page; Common::String _find; + /** + * Load the list of location names that the journal will make reference to + */ void loadJournalLocations(); + /** + * Loads the description for the current display index in the journal, and then + * word wraps the result to prepare it for being displayed + * @param alreadyLoaded Indicates whether the journal file is being loaded for the + * first time, or being reloaded + */ void loadJournalFile(bool alreadyLoaded); + /** + * Display the arrows that can be used to scroll up and down pages + */ void doArrows(); + /** + * Displays a page of the journal at the current index + */ bool drawJournal(int direction, int howFar); - int getFindName(bool printError); + /** + * Show the search submenu and allow the player to enter a search string + */ + int getSearchString(bool printError); + /** + * Draw the journal background, frame, and interface buttons + */ void drawJournalFrame(); + + /** + * Returns the button, if any, that is under the specified position + */ + JournalButton getHighlightedButton(const Common::Point &pt); public: Journal(SherlockEngine *vm); + /** + * Records statements that are said, in the order which they are said. The player + * can then read the journal to review them + */ void record(int converseNum, int statementNum, bool replyOnly = false); + /** + * Display the journal + */ void drawInterface(); + /** + * Handle events whilst the journal is being displayed + */ bool handleEvents(int key); + /** + * Reset viewing position to the start of the journal + */ void resetPosition(); + /** + * Synchronize the data for a savegame + */ void synchronize(Common::Serializer &s); }; |