From 7571fdd4b19f5f1bf3008d764c85c254ed86f635 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 4 Dec 2014 02:01:51 +0100 Subject: ACCESS: Add some more Demo opcodes --- engines/access/scripts.cpp | 100 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 92 insertions(+), 8 deletions(-) (limited to 'engines/access/scripts.cpp') diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp index 57af1a869c..053e824956 100644 --- a/engines/access/scripts.cpp +++ b/engines/access/scripts.cpp @@ -114,24 +114,24 @@ void Scripts::executeCommand(int commandIndex) { &Scripts::cmdJumpUse, &Scripts::cmdJumpTalk, &Scripts::cmdNull, &Scripts::cmdPrint, &Scripts::cmdRetPos, &Scripts::cmdAnim, &Scripts::cmdSetFlag, &Scripts::cmdCheckFlag, &Scripts::cmdGoto, - &Scripts::cmdSetInventory, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory, + &Scripts::cmdAddScore, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory, &Scripts::cmdSetTex, &Scripts::cmdNewRoom, &Scripts::cmdConverse, &Scripts::cmdCheckFrame, &Scripts::cmdCheckAnim, &Scripts::cmdSnd, &Scripts::cmdRetNeg, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc, - &Scripts::cmdSetAnim, &Scripts::cmdDispInv, &Scripts::cmdSetTimer, + &Scripts::cmdSetAnim, &Scripts::cmdDispInv, &Scripts::cmdSetAbout, &Scripts::cmdSetTimer, &Scripts::cmdCheckTimer, &Scripts::cmdSetTravel, - &Scripts::cmdSetTravel, &Scripts::cmdSetVideo, &Scripts::cmdPlayVideo, + &Scripts::cmdJumpGoto, &Scripts::cmdSetVideo, &Scripts::cmdPlayVideo, &Scripts::cmdPlotImage, &Scripts::cmdSetDisplay, &Scripts::cmdSetBuffer, - &Scripts::cmdSetScroll, &Scripts::cmdVideoEnded, &Scripts::cmdVideoEnded, + &Scripts::cmdSetScroll, &Scripts::cmdSaveRect, &Scripts::cmdVideoEnded, &Scripts::cmdSetBufVid, &Scripts::cmdPlayBufVid, &Scripts::cmdRemoveLast, - &Scripts::cmdSpecial, &Scripts::cmdSpecial, &Scripts::cmdSpecial, + &Scripts::cmdDoTravel, &Scripts::cmdCheckAbout, &Scripts::cmdSpecial, &Scripts::cmdSetCycle, &Scripts::cmdCycle, &Scripts::cmdCharSpeak, &Scripts::cmdTexSpeak, &Scripts::cmdTexChoice, &Scripts::cmdWait, &Scripts::cmdSetConPos, &Scripts::cmdCheckVFrame, &Scripts::cmdJumpChoice, &Scripts::cmdReturnChoice, &Scripts::cmdClearBlock, &Scripts::cmdLoadSound, &Scripts::cmdFreeSound, &Scripts::cmdSetVideoSound, &Scripts::cmdPlayVideoSound, - &Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, - &Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::cmdPlayerOff, + &Scripts::cmdPrintWatch, &Scripts::cmdDispAbout, &Scripts::CMDPUSHLOCATION, + &Scripts::cmdCheckTravel, &Scripts::cmdBlock, &Scripts::cmdPlayerOff, &Scripts::cmdPlayerOn, &Scripts::cmdDead, &Scripts::cmdFadeOut, &Scripts::cmdEndVideo }; @@ -263,6 +263,15 @@ void Scripts::cmdGoto() { searchForSequence(); } +void Scripts::cmdAddScore() { + if (_vm->isCD()) { + cmdSetInventory(); + return; + } + + _data->skip(1); +} + void Scripts::cmdSetInventory() { int itemId = _data->readByte(); int itemVal = _data->readByte(); @@ -400,6 +409,15 @@ void Scripts::cmdDispInv() { _vm->_inventory->newDisplayInv(); } +void Scripts::cmdSetAbout() { + if (_vm->isCD()) { + cmdSetTimer(); + return; + } + + error("TODO: DEMO - cmdSetAbout"); +} + void Scripts::cmdSetTimer() { int idx = _data->readUint16LE(); int val = _data->readUint16LE(); @@ -439,6 +457,14 @@ void Scripts::cmdCheckTimer() { } void Scripts::cmdSetTravel() { + if (_vm->isCD()) { + cmdJumpGoto(); + return; + } + error("TODO: DEMO - cmdSetTravel"); +} + +void Scripts::cmdJumpGoto() { if (_vm->_room->_selectCommand == 5) cmdGoto(); else @@ -486,6 +512,14 @@ void Scripts::cmdSetScroll() { _vm->_screen->_scrollY = 0; } +void Scripts::cmdSaveRect() { + if (_vm->isCD()) { + cmdVideoEnded(); + return; + } + error("TODO: DEMO - cmdSaveRect"); +} + void Scripts::cmdVideoEnded() { _vm->_events->pollEvents(); @@ -515,6 +549,22 @@ void Scripts::cmdRemoveLast() { --_vm->_numAnimTimers; } +void Scripts::cmdDoTravel() { + if (_vm->isCD()) { + cmdSpecial(); + return; + } + error("TODO: DEMO - cmdDoTravel"); +} + +void Scripts::cmdCheckAbout() { + if (_vm->isCD()) { + cmdSpecial(); + return; + } + error("TODO: DEMO - cmdCheckAbout"); +} + void Scripts::cmdSpecial() { _specialFunction = _data->readUint16LE(); int p1 = _data->readUint16LE(); @@ -774,7 +824,41 @@ void Scripts::cmdPlayVideoSound() { g_system->delayMillis(10); } -void Scripts::CMDPUSHLOCATION() { error("TODO CMDPUSHLOCATION"); } +void Scripts::cmdPrintWatch() { + if (_vm->isCD()) { + CMDPUSHLOCATION(); + return; + } + error("TODO: DEMO - cmdPrintWatch"); +} + +void Scripts::cmdDispAbout() { + if (_vm->isCD()) { + CMDPUSHLOCATION(); + return; + } + error("TODO: DEMO - cmdDispAbout"); +} + +void Scripts::CMDPUSHLOCATION() { + error("TODO CMDPUSHLOCATION"); +} + +void Scripts::cmdCheckTravel() { + if (_vm->isCD()) { + CMDPUSHLOCATION(); + return; + } + error("TODO: DEMO - cmdCheckTravel"); +} + +void Scripts::cmdBlock() { + if (_vm->isCD()) { + CMDPUSHLOCATION(); + return; + } + error("TODO: DEMO - cmdBlock"); +} void Scripts::cmdPlayerOff() { _vm->_player->_playerOff = true; -- cgit v1.2.3