aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/debugger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/debugger.cpp')
-rw-r--r--engines/sherlock/debugger.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/engines/sherlock/debugger.cpp b/engines/sherlock/debugger.cpp
index cfbea2bc24..f66a39e1c7 100644
--- a/engines/sherlock/debugger.cpp
+++ b/engines/sherlock/debugger.cpp
@@ -23,11 +23,22 @@
#include "sherlock/debugger.h"
#include "sherlock/sherlock.h"
+#include "sherlock/scalpel/3do/movie_decoder.h"
+
namespace Sherlock {
Debugger::Debugger(SherlockEngine *vm) : GUI::Debugger(), _vm(vm) {
- registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
- registerCmd("scene", WRAP_METHOD(Debugger, cmdScene));
+ registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
+ registerCmd("scene", WRAP_METHOD(Debugger, cmdScene));
+ registerCmd("3do_playmovie", WRAP_METHOD(Debugger, cmd3DO_PlayMovie));
+}
+
+void Debugger::postEnter() {
+ if (!_3doPlayMovieFile.empty()) {
+ Scalpel3DOMoviePlay(_3doPlayMovieFile.c_str());
+
+ _3doPlayMovieFile.clear();
+ }
}
int Debugger::strToInt(const char *s) {
@@ -56,4 +67,17 @@ bool Debugger::cmdScene(int argc, const char **argv) {
}
}
+bool Debugger::cmd3DO_PlayMovie(int argc, const char **argv) {
+ if (argc != 2) {
+ debugPrintf("Format: 3do_playmovie <3do-movie-file>\n");
+ return true;
+ }
+
+ // play gets postboned until debugger is closed
+ Common::String filename = argv[1];
+ _3doPlayMovieFile = filename;
+
+ return cmdExit(0, 0);
+}
+
} // End of namespace Sherlock