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/agi/console.cpp | |
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/agi/console.cpp')
-rw-r--r-- | engines/agi/console.cpp | 65 |
1 files changed, 16 insertions, 49 deletions
diff --git a/engines/agi/console.cpp b/engines/agi/console.cpp index 1c761f1c6f..abf66ced48 100644 --- a/engines/agi/console.cpp +++ b/engines/agi/console.cpp @@ -32,33 +32,28 @@ #include "agi/opcodes.h" #include "agi/console.h" -#include "common/debugger.cpp" - namespace Agi { struct agi_debug debug_; -Console::Console(AgiEngine *vm) : Common::Debugger<Console>() { +Console::Console(AgiEngine *vm) : GUI::Debugger() { _vm = vm; - DCmd_Register("debug", &Console::Cmd_Debug); - DCmd_Register("cont", &Console::Cmd_Cont); - DCmd_Register("exit", &Console::Cmd_Exit); - DCmd_Register("quit", &Console::Cmd_Exit); - DCmd_Register("help", &Console::Cmd_Help); - DCmd_Register("agiver", &Console::Cmd_Agiver); - DCmd_Register("crc", &Console::Cmd_Crc); - DCmd_Register("flags", &Console::Cmd_Flags); - DCmd_Register("logic0", &Console::Cmd_Logic0); - DCmd_Register("objs", &Console::Cmd_Objs); - DCmd_Register("runopcode", &Console::Cmd_RunOpcode); - DCmd_Register("opcode", &Console::Cmd_Opcode); - DCmd_Register("step", &Console::Cmd_Step); - DCmd_Register("trigger", &Console::Cmd_Trigger); - DCmd_Register("vars", &Console::Cmd_Vars); - DCmd_Register("setvar", &Console::Cmd_SetVar); - DCmd_Register("setflag", &Console::Cmd_SetFlag); - DCmd_Register("setobj", &Console::Cmd_SetObj); + DCmd_Register("debug", WRAP_METHOD(Console, Cmd_Debug)); + DCmd_Register("cont", WRAP_METHOD(Console, Cmd_Cont)); + DCmd_Register("agiver", WRAP_METHOD(Console, Cmd_Agiver)); + DCmd_Register("crc", WRAP_METHOD(Console, Cmd_Crc)); + DCmd_Register("flags", WRAP_METHOD(Console, Cmd_Flags)); + DCmd_Register("logic0", WRAP_METHOD(Console, Cmd_Logic0)); + DCmd_Register("objs", WRAP_METHOD(Console, Cmd_Objs)); + DCmd_Register("runopcode", WRAP_METHOD(Console, Cmd_RunOpcode)); + DCmd_Register("opcode", WRAP_METHOD(Console, Cmd_Opcode)); + DCmd_Register("step", WRAP_METHOD(Console, Cmd_Step)); + DCmd_Register("trigger", WRAP_METHOD(Console, Cmd_Trigger)); + DCmd_Register("vars", WRAP_METHOD(Console, Cmd_Vars)); + DCmd_Register("setvar", WRAP_METHOD(Console, Cmd_SetVar)); + DCmd_Register("setflag", WRAP_METHOD(Console, Cmd_SetFlag)); + DCmd_Register("setobj", WRAP_METHOD(Console, Cmd_SetObj)); } Console::~Console() { @@ -70,34 +65,6 @@ void Console::preEnter() { void Console::postEnter() { } -bool Console::Cmd_Exit(int argc, const char **argv) { - _detach_now = true; - return false; -} - -bool Console::Cmd_Help(int argc, const char **argv) { - // console normally has 39 line width - // wrap around nicely - int width = 0, size, i; - - DebugPrintf("Commands are:\n"); - for (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 Console::Cmd_SetVar(int argc, const char **argv) { if (argc != 3) { DebugPrintf("Usage: setvar <varnum> <value>"); |