diff options
author | Paul Gilbert | 2015-06-21 09:47:59 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-06-21 09:47:59 -0400 |
commit | dec2b0857ca54ecf61e95c731d10ebfb85b5b375 (patch) | |
tree | 4a3499ec5f2bfd064e6cb0d7c015db090160dc3f /engines/sherlock/journal.h | |
parent | 3adaf2f999c4af74534beb7d02638aba8cc81a1e (diff) | |
download | scummvm-rg350-dec2b0857ca54ecf61e95c731d10ebfb85b5b375.tar.gz scummvm-rg350-dec2b0857ca54ecf61e95c731d10ebfb85b5b375.tar.bz2 scummvm-rg350-dec2b0857ca54ecf61e95c731d10ebfb85b5b375.zip |
SHERLOCK: Split up Journal class for each game
Diffstat (limited to 'engines/sherlock/journal.h')
-rw-r--r-- | engines/sherlock/journal.h | 88 |
1 files changed, 7 insertions, 81 deletions
diff --git a/engines/sherlock/journal.h b/engines/sherlock/journal.h index f164562d4f..de07368c56 100644 --- a/engines/sherlock/journal.h +++ b/engines/sherlock/journal.h @@ -32,106 +32,32 @@ 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; - int _statementNum; - - JournalEntry() : _converseNum(0), _replyOnly(false), _statementNum(0) {} - JournalEntry(int converseNum, int statementNum, bool replyOnly = false) : - _converseNum(converseNum), _statementNum(statementNum), _replyOnly(replyOnly) {} -}; - class SherlockEngine; class Journal { -private: +protected: SherlockEngine *_vm; - Common::Array<JournalEntry> _journal; - Common::StringArray _directory; - Common::StringArray _locations; - Common::StringArray _lines; - int _maxPage; - int _index; - int _sub; - bool _up, _down; - 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); - - /** - * 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); +public: + static Journal *init(SherlockEngine *vm); + virtual ~Journal() {} /** * 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); + virtual void record(int converseNum, int statementNum, bool replyOnly = false) {} /** * Reset viewing position to the start of the journal */ - void resetPosition(); + virtual void resetPosition() {} /** * Synchronize the data for a savegame */ - void synchronize(Serializer &s); + virtual void synchronize(Serializer &s) = 0; }; } // End of namespace Sherlock |