From dec2b0857ca54ecf61e95c731d10ebfb85b5b375 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 21 Jun 2015 09:47:59 -0400 Subject: SHERLOCK: Split up Journal class for each game --- engines/sherlock/journal.h | 88 ++++------------------------------------------ 1 file changed, 7 insertions(+), 81 deletions(-) (limited to 'engines/sherlock/journal.h') 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 _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 -- cgit v1.2.3