diff options
Diffstat (limited to 'engines/voyeur/debugger.cpp')
-rw-r--r-- | engines/voyeur/debugger.cpp | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/engines/voyeur/debugger.cpp b/engines/voyeur/debugger.cpp index 8407ead22f..04fdff2d49 100644 --- a/engines/voyeur/debugger.cpp +++ b/engines/voyeur/debugger.cpp @@ -21,14 +21,65 @@ */ #include "voyeur/debugger.h" - #include "voyeur/graphics.h" #include "voyeur/voyeur.h" +#include "voyeur/staticres.h" namespace Voyeur { Debugger::Debugger() : GUI::Debugger() { + // Register methods DCmd_Register("continue", WRAP_METHOD(Debugger, Cmd_Exit)); + DCmd_Register("exit", WRAP_METHOD(Debugger, Cmd_Exit)); + DCmd_Register("time", WRAP_METHOD(Debugger, Cmd_Time)); + + // Set fields + _isTimeActive = true; +} + +bool Debugger::Cmd_Time(int argc, const char **argv) { + if (argc < 2) { + // Get the current day and time of day + Common::String dtString = _vm->getDayName(); + Common::String timeString = _vm->getTimeOfDay(); + if (!timeString.empty()) + dtString += " " + timeString; + + DebugPrintf("Current date/time is: %s, time is %s\n", + dtString.c_str(), _isTimeActive ? "on" : "off"); + DebugPrintf("Format: %s [on | off | 1..17]\n\n", argv[0]); + } else { + if (!strcmp(argv[1], "on")) { + _isTimeActive = true; + DebugPrintf("Time is now on\n\n"); + } else if (!strcmp(argv[1], "off")) { + _isTimeActive = false; + DebugPrintf("Time is now off\n\n"); + } else { + int timeId = atoi(argv[1]); + if (timeId >= 1 && timeId <= 17) { + _vm->_voy._transitionId = timeId; + _vm->_gameHour = LEVEL_H[timeId - 1]; + _vm->_gameMinute = LEVEL_M[timeId - 1]; + _vm->_voy._isAM = timeId == 6; + + _vm->_voy._RTVNum = 0; + _vm->_voy._RTANum = 255; + + // Get the new current day and time of day + Common::String dtString = _vm->getDayName(); + Common::String timeString = _vm->getTimeOfDay(); + if (!timeString.empty()) + dtString += " " + timeString; + + DebugPrintf("Current date/time is now: %s\n\n", dtString.c_str()); + } else { + DebugPrintf("Unknown parameter\n\n"); + } + } + } + + return true; } } // End of namespace Voyeur |