From 1d1ae9eea1f061b3d0a7d28458bb7542507ae08c Mon Sep 17 00:00:00 2001 From: Julien Templier Date: Fri, 10 Dec 2010 14:26:50 +0000 Subject: [PATCH] ASYLUM: Add debug command to start a puzzle git-svn-id: http://asylumengine.googlecode.com/svn/trunk@703 0bfb4aae-4ea4-11de-8d8d-752d95cf3e3c --- engines/asylum/console.cpp | 32 +++++++++++++++++++++++++++++++- engines/asylum/console.h | 1 + 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/engines/asylum/console.cpp b/engines/asylum/console.cpp index a15f8933536..9c7ac9c81a0 100644 --- a/engines/asylum/console.cpp +++ b/engines/asylum/console.cpp @@ -66,6 +66,7 @@ Console::Console(AsylumEngine *engine) : _vm(engine) { DCmd_Register("script", WRAP_METHOD(Console, cmdRunScript)); DCmd_Register("scene", WRAP_METHOD(Console, cmdChangeScene)); DCmd_Register("encounter", WRAP_METHOD(Console, cmdRunEncounter)); + DCmd_Register("puzzle", WRAP_METHOD(Console, cmdRunPuzzle)); DCmd_Register("palette", WRAP_METHOD(Console, cmdSetPalette)); DCmd_Register("draw", WRAP_METHOD(Console, cmdDrawResource)); @@ -113,6 +114,7 @@ bool Console::cmdHelp(int, const char **) { DebugPrintf(" script - run a script\n"); DebugPrintf(" scene - change the scene\n"); DebugPrintf(" encounter - run an encounter\n"); + DebugPrintf(" puzzle - run an puzzle\n"); DebugPrintf("\n"); DebugPrintf(" palette - set the screen palette\n"); DebugPrintf(" draw - draw a resource\n"); @@ -374,7 +376,7 @@ bool Console::cmdChangeScene(int32 argc, const char **argv) { return true; } - _vm->_delayedSceneIndex = index; + _vm->_delayedSceneIndex = index; return false; } @@ -400,6 +402,34 @@ bool Console::cmdRunEncounter(int32 argc, const char **argv) { return false; } +bool Console::cmdRunPuzzle(int32 argc, const char **argv) { + if (argc != 2) { + DebugPrintf("Syntax: %s \n", argv[0]); + return true; + } + + uint32 index = atoi(argv[1]); + + // Check index is valid + if (index >= 16) { + DebugPrintf("[Error] Invalid index (was: %d - valid: [0-16])\n", index); + return true; + } + + EventHandler *puzzle = _vm->getPuzzle(index); + if (puzzle == NULL) { + DebugPrintf("[Error] This puzzle does not exists (%d)", index); + return true; + } + + getScreen()->clear(); + getScreen()->clearGraphicsInQueue(); + + _vm->switchEventHandler(puzzle); + + return false; +} + bool Console::cmdSetPalette(int32 argc, const char **argv) { if (argc != 3) { DebugPrintf("Syntax: %s \n", argv[0]); diff --git a/engines/asylum/console.h b/engines/asylum/console.h index 2113049ff82..cd32d872ea8 100644 --- a/engines/asylum/console.h +++ b/engines/asylum/console.h @@ -74,6 +74,7 @@ private: bool cmdRunScript(int32 argc, const char **argv); bool cmdChangeScene(int32 argc, const char **argv); bool cmdRunEncounter(int32 argc, const char **argv); + bool cmdRunPuzzle(int32 argc, const char **argv); bool cmdSetPalette(int32 argc, const char **argv); bool cmdDrawResource(int32 argc, const char **argv);