diff options
Diffstat (limited to 'engines/sherlock/debugger.cpp')
-rw-r--r-- | engines/sherlock/debugger.cpp | 28 |
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 |