aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/sherlock.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-03-20 22:01:52 -0400
committerPaul Gilbert2015-03-20 22:01:52 -0400
commitf0ad2f624bddcc031c99a487bff1d5ec89956477 (patch)
treef296f220023cb9309102b4468a0b441ddb3751b1 /engines/sherlock/sherlock.cpp
parentcf92e540db2d58f243abe595da40a7da4450911f (diff)
downloadscummvm-rg350-f0ad2f624bddcc031c99a487bff1d5ec89956477.tar.gz
scummvm-rg350-f0ad2f624bddcc031c99a487bff1d5ec89956477.tar.bz2
scummvm-rg350-f0ad2f624bddcc031c99a487bff1d5ec89956477.zip
SHERLOCK: More scene loading, implemented Inventory class
Diffstat (limited to 'engines/sherlock/sherlock.cpp')
-rw-r--r--engines/sherlock/sherlock.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/sherlock/sherlock.cpp b/engines/sherlock/sherlock.cpp
index 115d9f0130..65dc6c80a5 100644
--- a/engines/sherlock/sherlock.cpp
+++ b/engines/sherlock/sherlock.cpp
@@ -33,6 +33,7 @@ SherlockEngine::SherlockEngine(OSystem *syst, const SherlockGameDescription *gam
_animation = nullptr;
_debugger = nullptr;
_events = nullptr;
+ _inventory = nullptr;
_journal = nullptr;
_people = nullptr;
_res = nullptr;
@@ -50,6 +51,7 @@ SherlockEngine::~SherlockEngine() {
delete _animation;
delete _debugger;
delete _events;
+ delete _inventory;
delete _journal;
delete _people;
delete _res;
@@ -82,6 +84,7 @@ void SherlockEngine::initialize() {
_animation = new Animation(this);
_debugger = new Debugger(this);
_events = new EventsManager(this);
+ _inventory = new Inventory();
_journal = new Journal();
_people = new People(this);
_scene = new Scene(this);
@@ -116,4 +119,25 @@ Common::Error SherlockEngine::run() {
return Common::kNoError;
}
+/**
+ * Read the state of a global flag
+ */
+bool SherlockEngine::readFlags(int flagNum) {
+ bool value = _flags[ABS(flagNum)];
+ if (flagNum < 0)
+ value = !value;
+
+ return value;
+}
+
+/**
+ * Sets a global flag to either true or false depending on whether the specified
+ * flag is positive or negative
+ */
+void SherlockEngine::setFlags(int flagNum) {
+ _flags[ABS(flagNum)] = flagNum >= 0;
+
+ _scene->checkSceneFlags(true);
+}
+
} // End of namespace Comet