aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/journal.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-06-21 09:47:59 -0400
committerPaul Gilbert2015-06-21 09:47:59 -0400
commitdec2b0857ca54ecf61e95c731d10ebfb85b5b375 (patch)
tree4a3499ec5f2bfd064e6cb0d7c015db090160dc3f /engines/sherlock/journal.h
parent3adaf2f999c4af74534beb7d02638aba8cc81a1e (diff)
downloadscummvm-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.h88
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