aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/debugger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/voyeur/debugger.cpp')
-rw-r--r--engines/voyeur/debugger.cpp53
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