aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_game.cpp
diff options
context:
space:
mode:
authorlolbot-iichan2019-06-29 18:01:39 +0300
committerFilippos Karapetis2019-07-16 20:24:42 +0300
commit4bb82a8dae26e8bd56a8bc943c97959d37fb36ea (patch)
treed1c7f466df3cfbcf38a7de0b3754397467e14dd1 /engines/wintermute/base/base_game.cpp
parent64406b09a8f6bdf6f9dd63d3ab9fcd334739550d (diff)
downloadscummvm-rg350-4bb82a8dae26e8bd56a8bc943c97959d37fb36ea.tar.gz
scummvm-rg350-4bb82a8dae26e8bd56a8bc943c97959d37fb36ea.tar.bz2
scummvm-rg350-4bb82a8dae26e8bd56a8bc943c97959d37fb36ea.zip
WINTERMUTE: Add dummy implementation of Directory global object
Source: http://docs.dead-code.org/wme/generated/scripting_ref_directory.html
Diffstat (limited to 'engines/wintermute/base/base_game.cpp')
-rw-r--r--engines/wintermute/base/base_game.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 576f8e60ba..0c9862fa0d 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -105,6 +105,7 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
_keyboardState = nullptr;
_mathClass = nullptr;
+ _directoryClass = nullptr;
_debugLogFile = nullptr;
_debugDebugMode = false;
@@ -244,6 +245,7 @@ BaseGame::~BaseGame() {
delete _cachedThumbnail;
delete _mathClass;
+ delete _directoryClass;
delete _transMgr;
delete _scEngine;
@@ -261,6 +263,7 @@ BaseGame::~BaseGame() {
_cachedThumbnail = nullptr;
_mathClass = nullptr;
+ _directoryClass = nullptr;
_transMgr = nullptr;
_scEngine = nullptr;
@@ -415,6 +418,11 @@ bool BaseGame::initialize1() {
break;
}
+ _directoryClass = makeSXDirectory(this);
+ if (_directoryClass == nullptr) {
+ break;
+ }
+
#if EXTENDED_DEBUGGER_ENABLED
_scEngine = new DebuggableScEngine(this);
#else
@@ -451,6 +459,7 @@ bool BaseGame::initialize1() {
return STATUS_OK;
} else {
delete _mathClass;
+ delete _directoryClass;
delete _keyboardState;
delete _transMgr;
delete _surfaceStorage;
@@ -2747,6 +2756,16 @@ bool BaseGame::externalCall(ScScript *script, ScStack *stack, ScStack *thisStack
}
//////////////////////////////////////////////////////////////////////////
+ // Directory
+ //////////////////////////////////////////////////////////////////////////
+ else if (strcmp(name, "Directory") == 0) {
+ thisObj = thisStack->getTop();
+
+ thisObj->setNative(makeSXDirectory(_gameRef));
+ stack->pushNULL();
+ }
+
+ //////////////////////////////////////////////////////////////////////////
// Date
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Date") == 0) {