diff options
author | Max Horn | 2006-09-16 16:58:27 +0000 |
---|---|---|
committer | Max Horn | 2006-09-16 16:58:27 +0000 |
commit | 919092e5fcd0389b4cbd862e9e8cceab202e6741 (patch) | |
tree | 7d9c8f643191812bb1eb24f2e7cc2e67586149d5 /engines/sky | |
parent | 1add07becae0179e026a90924b419b74ffb1078f (diff) | |
download | scummvm-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.cpp | 46 | ||||
-rw-r--r-- | engines/sky/debug.h | 6 |
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); |