aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.cpp
diff options
context:
space:
mode:
authorMax Horn2007-02-04 12:41:49 +0000
committerMax Horn2007-02-04 12:41:49 +0000
commit5b65897cd3d4a197fe167b19afb4d931359c2462 (patch)
tree08630c50987051a96bc8b7a224a1d1ec6dfbd65b /engines/scumm/scumm.cpp
parent5007d82ec7b771579df86c050eba75caddd3931f (diff)
downloadscummvm-rg350-5b65897cd3d4a197fe167b19afb4d931359c2462.tar.gz
scummvm-rg350-5b65897cd3d4a197fe167b19afb4d931359c2462.tar.bz2
scummvm-rg350-5b65897cd3d4a197fe167b19afb4d931359c2462.zip
Switch SCUMM engine to use the common special debug flags support (thus making it possible to use --debugflags with it)
svn-id: r25381
Diffstat (limited to 'engines/scumm/scumm.cpp')
-rw-r--r--engines/scumm/scumm.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 622a33b591..c8434029be 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -80,6 +80,25 @@ namespace Scumm {
ScummEngine *g_scumm = 0;
+struct dbgChannelDesc {
+ const char *channel, *desc;
+ uint32 flag;
+};
+
+
+// Debug channel lookup table for Debugger console
+static const dbgChannelDesc debugChannels[] = {
+ {"SCRIPTS", "Track script execution", DEBUG_SCRIPTS},
+ {"OPCODES", "Track opcode execution", DEBUG_OPCODES},
+ {"IMUSE", "Track iMUSE events", DEBUG_IMUSE},
+ {"RESOURCE", "Track resource loading/management", DEBUG_RESOURCE},
+ {"VARS", "Track variable changes", DEBUG_VARS},
+ {"ACTORS", "Actor-related debug", DEBUG_ACTORS},
+ {"SOUND", "Sound related debug", DEBUG_SOUND},
+ {"INSANE", "Track INSANE", DEBUG_INSANE},
+ {"SMUSH", "Track SMUSH", DEBUG_SMUSH}
+};
+
ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
: Engine(syst),
_game(dr.game),
@@ -112,7 +131,6 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
_musicEngine = NULL;
_verbs = NULL;
_objs = NULL;
- _debugFlags = 0;
_sound = NULL;
memset(&vm, 0, sizeof(vm));
_quit = false;
@@ -502,9 +520,16 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
_herculesBuf = (byte *)malloc(Common::kHercW * Common::kHercH);
}
+
+ // Add debug levels
+ for (int i = 0; i < ARRAYSIZE(debugChannels); ++i)
+ Common::addSpecialDebugLevel(debugChannels[i].flag, debugChannels[i].channel, debugChannels[i].desc);
}
+
ScummEngine::~ScummEngine() {
+ Common::clearAllSpecialDebugLevels();
+
if (_musicEngine) {
_musicEngine->terminate();
delete _musicEngine;
@@ -558,6 +583,7 @@ ScummEngine::~ScummEngine() {
delete _gdi;
}
+
ScummEngine_v5::ScummEngine_v5(OSystem *syst, const DetectorResult &dr)
: ScummEngine(syst, dr) {