aboutsummaryrefslogtreecommitdiff
path: root/engines/sky
diff options
context:
space:
mode:
authorMax Horn2006-09-16 16:58:27 +0000
committerMax Horn2006-09-16 16:58:27 +0000
commit919092e5fcd0389b4cbd862e9e8cceab202e6741 (patch)
tree7d9c8f643191812bb1eb24f2e7cc2e67586149d5 /engines/sky
parent1add07becae0179e026a90924b419b74ffb1078f (diff)
downloadscummvm-rg350-919092e5fcd0389b4cbd862e9e8cceab202e6741.tar.gz
scummvm-rg350-919092e5fcd0389b4cbd862e9e8cceab202e6741.tar.bz2
scummvm-rg350-919092e5fcd0389b4cbd862e9e8cceab202e6741.zip
Overhaul of the debugger code
* Moved Common::Debuggger to GUI::Debugger (mainly to satisfy linker restrictions) * Change the base Debugger class to *not* be a template class anymore; instead, a thin (template based) wrapper class is used to hook up debugger commands * Removed duplicate Cmd_Exit and Cmd_Help methods in favor of a single version of each in GUI::Debugger * New Cmd_Help doesn't word wrap after 39/78 chars, but rather queries the console to determine when to wrap * Debugger::preEnter and postEnter aren't pure virtual anymore svn-id: r23890
Diffstat (limited to 'engines/sky')
-rw-r--r--engines/sky/debug.cpp46
-rw-r--r--engines/sky/debug.h6
2 files changed, 10 insertions, 42 deletions
diff --git a/engines/sky/debug.cpp b/engines/sky/debug.cpp
index d7e8f6694c..24d52aa59d 100644
--- a/engines/sky/debug.cpp
+++ b/engines/sky/debug.cpp
@@ -23,7 +23,6 @@
#include "common/stdafx.h"
#include "common/endian.h"
#include "common/util.h"
-#include "common/debugger.cpp"
#include "sky/debug.h"
#include "sky/grid.h"
@@ -1280,16 +1279,14 @@ void Debug::mcode(uint32 mcode, uint32 a, uint32 b, uint32 c) {
Debugger::Debugger(Logic *logic, Mouse *mouse, Screen *screen, SkyCompact *skyCompact)
-: Common::Debugger<Debugger>(), _logic(logic), _mouse(mouse), _screen(screen), _skyCompact(skyCompact), _showGrid(false) {
- DCmd_Register("exit", &Debugger::Cmd_Exit);
- DCmd_Register("help", &Debugger::Cmd_Help);
- DCmd_Register("info", &Debugger::Cmd_Info);
- DCmd_Register("showgrid", &Debugger::Cmd_ShowGrid);
- DCmd_Register("reloadgrid", &Debugger::Cmd_ReloadGrid);
- DCmd_Register("compact", &Debugger::Cmd_ShowCompact);
- DCmd_Register("logiccmd", &Debugger::Cmd_LogicCommand);
- DCmd_Register("scriptvar", &Debugger::Cmd_ScriptVar);
- DCmd_Register("section", &Debugger::Cmd_Section);
+: GUI::Debugger(), _logic(logic), _mouse(mouse), _screen(screen), _skyCompact(skyCompact), _showGrid(false) {
+ DCmd_Register("info", WRAP_METHOD(Debugger, Cmd_Info));
+ DCmd_Register("showgrid", WRAP_METHOD(Debugger, Cmd_ShowGrid));
+ DCmd_Register("reloadgrid", WRAP_METHOD(Debugger, Cmd_ReloadGrid));
+ DCmd_Register("compact", WRAP_METHOD(Debugger, Cmd_ShowCompact));
+ DCmd_Register("logiccmd", WRAP_METHOD(Debugger, Cmd_LogicCommand));
+ DCmd_Register("scriptvar", WRAP_METHOD(Debugger, Cmd_ScriptVar));
+ DCmd_Register("section", WRAP_METHOD(Debugger, Cmd_Section));
}
Debugger::~Debugger() {} // we need this here for __SYMBIAN32__
@@ -1302,33 +1299,6 @@ void Debugger::postEnter() {
_mouse->resetCursor();
}
-bool Debugger::Cmd_Exit(int argc, const char **argv) {
- _detach_now = true;
- return false;
-}
-
-bool Debugger::Cmd_Help(int argc, const char **argv) {
- // console normally has 39 line width
- // wrap around nicely
- int width = 0, size;
-
- DebugPrintf("Commands are:\n");
- for (int i = 0; i < _dcmd_count; ++i) {
- size = strlen(_dcmds[i].name) + 1;
-
- if ((width + size) >= 39) {
- DebugPrintf("\n");
- width = size;
- } else {
- width += size;
- }
-
- DebugPrintf("%s ", _dcmds[i].name);
- }
- DebugPrintf("\n");
- return true;
-}
-
bool Debugger::Cmd_ShowGrid(int argc, const char **argv) {
_showGrid = !_showGrid;
DebugPrintf("Show grid: %s\n", _showGrid ? "On" : "Off");
diff --git a/engines/sky/debug.h b/engines/sky/debug.h
index 8fdb46d2e1..ec43f40edd 100644
--- a/engines/sky/debug.h
+++ b/engines/sky/debug.h
@@ -25,7 +25,7 @@
#include "common/stdafx.h"
#include "common/scummsys.h"
-#include "common/debugger.h"
+#include "gui/debugger.h"
namespace Sky {
@@ -34,7 +34,7 @@ class Mouse;
class Screen;
class SkyCompact;
-class Debugger : public Common::Debugger<Debugger> {
+class Debugger : public GUI::Debugger {
public:
Debugger(Logic *logic, Mouse *mouse, Screen *screen, SkyCompact *skyCompact);
virtual ~Debugger(); // we need this here for __SYMBIAN32__ archaic gcc/UIQ
@@ -44,8 +44,6 @@ protected:
virtual void preEnter();
virtual void postEnter();
- bool Cmd_Exit(int argc, const char **argv);
- bool Cmd_Help(int argc, const char **argv);
bool Cmd_ShowGrid(int argc, const char **argv);
bool Cmd_ReloadGrid(int argc, const char **argv);
bool Cmd_ShowCompact(int argc, const char **argv);