From 919092e5fcd0389b4cbd862e9e8cceab202e6741 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 16 Sep 2006 16:58:27 +0000 Subject: 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 --- engines/sky/debug.cpp | 46 ++++++++-------------------------------------- engines/sky/debug.h | 6 ++---- 2 files changed, 10 insertions(+), 42 deletions(-) (limited to 'engines/sky') 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(), _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 { +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); -- cgit v1.2.3