diff options
| author | Filippos Karapetis | 2011-10-09 16:02:59 +0300 | 
|---|---|---|
| committer | Filippos Karapetis | 2011-10-09 19:16:02 +0300 | 
| commit | 69d08a7192addd59b80b80bfbf18ad012db9043f (patch) | |
| tree | b957ff3f5c097593ae5681a6c310f7f19bbc09a8 | |
| parent | 4e825c069d6072ffadee87b7035940cd97916fb8 (diff) | |
| download | scummvm-rg350-69d08a7192addd59b80b80bfbf18ad012db9043f.tar.gz scummvm-rg350-69d08a7192addd59b80b80bfbf18ad012db9043f.tar.bz2 scummvm-rg350-69d08a7192addd59b80b80bfbf18ad012db9043f.zip | |
SCI21: Moved kRobot() together with the other video functions
| -rw-r--r-- | engines/sci/engine/kgraphics.cpp | 45 | ||||
| -rw-r--r-- | engines/sci/engine/kvideo.cpp | 46 | 
2 files changed, 46 insertions, 45 deletions
| diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index ec0b4a8756..a91b9e8e81 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -51,7 +51,6 @@  #ifdef ENABLE_SCI32  #include "sci/graphics/text32.h"  #include "sci/graphics/frameout.h" -#include "sci/video/robot_decoder.h"  #endif  namespace Sci { @@ -1413,50 +1412,6 @@ reg_t kCreateTextBitmap(EngineState *s, int argc, reg_t *argv) {  	return NULL_REG;  } -reg_t kRobot(EngineState *s, int argc, reg_t *argv) { - -	int16 subop = argv[0].toUint16(); - -	switch (subop) { -		case 0: { // init -			int id = argv[1].toUint16(); -			reg_t obj = argv[2]; -			int16 flag = argv[3].toSint16(); -			int16 x = argv[4].toUint16(); -			int16 y = argv[5].toUint16(); -			warning("kRobot(init), id %d, obj %04x:%04x, flag %d, x=%d, y=%d", id, PRINT_REG(obj), flag, x, y); -			g_sci->_robotDecoder->load(id); -			g_sci->_robotDecoder->setPos(x, y); -			} -			break; -		case 1:	// LSL6 hires (startup) -			// TODO -			return NULL_REG;	// an integer is expected -		case 4: {	// start - we don't really have a use for this one -				//int id = argv[1].toUint16(); -				//warning("kRobot(start), id %d", id); -			} -			break; -		case 7:	// unknown, called e.g. by Phantasmagoria -			warning("kRobot(%d)", subop); -			break; -		case 8: // sync -			if ((uint32)g_sci->_robotDecoder->getCurFrame() !=  g_sci->_robotDecoder->getFrameCount() - 1) { -				writeSelector(s->_segMan, argv[1], SELECTOR(signal), NULL_REG); -			} else { -				g_sci->_robotDecoder->close(); -				// Signal the engine scripts that the video is done -				writeSelector(s->_segMan, argv[1], SELECTOR(signal), SIGNAL_REG); -			} -			break; -		default: -			warning("kRobot(%d)", subop); -			break; -	} - -	return s->r_acc; -} -  reg_t kGetWindowsOption(EngineState *s, int argc, reg_t *argv) {  	uint16 windowsOption = argv[0].toUint16();  	switch (windowsOption) { diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp index 6d810d516c..13c18be6f7 100644 --- a/engines/sci/engine/kvideo.cpp +++ b/engines/sci/engine/kvideo.cpp @@ -21,6 +21,7 @@   */  #include "engines/util.h" +#include "sci/engine/kernel.h"  #include "sci/engine/state.h"  #include "sci/graphics/helpers.h"  #include "sci/graphics/cursor.h" @@ -39,6 +40,7 @@  #include "sci/video/seq_decoder.h"  #ifdef ENABLE_SCI32  #include "video/coktel_decoder.h" +#include "sci/video/robot_decoder.h"  #endif  namespace Sci { @@ -230,6 +232,50 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) {  #ifdef ENABLE_SCI32 +reg_t kRobot(EngineState *s, int argc, reg_t *argv) { + +	int16 subop = argv[0].toUint16(); + +	switch (subop) { +		case 0: { // init +			int id = argv[1].toUint16(); +			reg_t obj = argv[2]; +			int16 flag = argv[3].toSint16(); +			int16 x = argv[4].toUint16(); +			int16 y = argv[5].toUint16(); +			warning("kRobot(init), id %d, obj %04x:%04x, flag %d, x=%d, y=%d", id, PRINT_REG(obj), flag, x, y); +			g_sci->_robotDecoder->load(id); +			g_sci->_robotDecoder->setPos(x, y); +			} +			break; +		case 1:	// LSL6 hires (startup) +			// TODO +			return NULL_REG;	// an integer is expected +		case 4: {	// start - we don't really have a use for this one +				//int id = argv[1].toUint16(); +				//warning("kRobot(start), id %d", id); +			} +			break; +		case 7:	// unknown, called e.g. by Phantasmagoria +			warning("kRobot(%d)", subop); +			break; +		case 8: // sync +			if ((uint32)g_sci->_robotDecoder->getCurFrame() !=  g_sci->_robotDecoder->getFrameCount() - 1) { +				writeSelector(s->_segMan, argv[1], SELECTOR(signal), NULL_REG); +			} else { +				g_sci->_robotDecoder->close(); +				// Signal the engine scripts that the video is done +				writeSelector(s->_segMan, argv[1], SELECTOR(signal), SIGNAL_REG); +			} +			break; +		default: +			warning("kRobot(%d)", subop); +			break; +	} + +	return s->r_acc; +} +  reg_t kPlayVMD(EngineState *s, int argc, reg_t *argv) {  	uint16 operation = argv[0].toUint16();  	Video::VideoDecoder *videoDecoder = 0; | 
