aboutsummaryrefslogtreecommitdiff
path: root/engines/access/scripts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/access/scripts.cpp')
-rw-r--r--engines/access/scripts.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp
index 985f5cba66..2a834f8855 100644
--- a/engines/access/scripts.cpp
+++ b/engines/access/scripts.cpp
@@ -104,7 +104,7 @@ void Scripts::executeCommand(int commandIndex) {
&Scripts::cmdRetNeg, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc,
&Scripts::cmdSetAnim, &Scripts::cmdDispInv, &Scripts::cmdSetTimer,
&Scripts::cmdSetTimer, &Scripts::cmdCheckTimer, &Scripts::cmdSetTravel,
- &Scripts::cmdSetTravel, &Scripts::CMDSETVID, &Scripts::CMDPLAYVID,
+ &Scripts::cmdSetTravel, &Scripts::cmdSetVideo, &Scripts::CMDPLAYVID,
&Scripts::cmdPlotImage, &Scripts::cmdSetDisplay, &Scripts::cmdSetBuffer,
&Scripts::cmdSetScroll, &Scripts::CMDSAVERECT, &Scripts::CMDSAVERECT,
&Scripts::CMDSETBUFVID, &Scripts::CMDPLAYBUFVID, &Scripts::cmdRemoveLast,
@@ -113,7 +113,7 @@ void Scripts::executeCommand(int commandIndex) {
&Scripts::cmdTexSpeak, &Scripts::cmdTexChoice, &Scripts::CMDWAIT,
&Scripts::cmdSetConPos, &Scripts::CMDCHECKVFRAME, &Scripts::cmdJumpChoice,
&Scripts::cmdReturnChoice, &Scripts::cmdClearBlock, &Scripts::cmdLoadSound,
- &Scripts::CMDFREESOUND, &Scripts::CMDSETVIDSND, &Scripts::CMDPLAYVIDSND,
+ &Scripts::CMDFREESOUND, &Scripts::cmdSetVideoSound, &Scripts::CMDPLAYVIDSND,
&Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION,
&Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::cmdPlayerOff,
&Scripts::cmdPlayerOn, &Scripts::CMDDEAD, &Scripts::cmdFadeOut,
@@ -417,7 +417,16 @@ void Scripts::cmdSetTravel() {
_data->skip(2);
}
-void Scripts::CMDSETVID() { error("TODO CMDSETVID"); }
+void Scripts::cmdSetVideo() {
+ FileIdent fi;
+ fi._fileNum = _data->readSint16LE();
+ fi._subfile = _data->readUint16LE();
+ int cellIndex = _data->readUint16LE();
+ int rate = _data->readUint16LE();
+
+ _vm->_video->setVideo(_vm->_extraCells[cellIndex]._vid, fi, rate);
+}
+
void Scripts::CMDPLAYVID() { error("TODO CMDPLAYVID"); }
void Scripts::cmdPlotImage() {
@@ -645,12 +654,22 @@ void Scripts::cmdClearBlock() {
void Scripts::cmdLoadSound() {
int idx = _data->readSint16LE();
- _vm->_sound->_soundTable[0]._data = _vm->_files->loadFile(_vm->_extraCells[idx]._vidSTable, _vm->_extraCells[idx]._vidSTable1);
+ _vm->_sound->_soundTable[0]._data = _vm->_files->loadFile(_vm->_extraCells[idx]._vidSound);
_vm->_sound->_soundPriority[0] = 1;
}
void Scripts::CMDFREESOUND() { error("TODO CMDFREESOUND"); }
-void Scripts::CMDSETVIDSND() { error("TODO CMDSETVIDSND"); }
+
+void Scripts::cmdSetVideoSound() {
+ _data->skip(4);
+ cmdLoadSound();
+ _data->skip(-6);
+ cmdSetVideo();
+
+ _vm->_sound->_soundFrame = _data->readUint16LE();
+ _vm->_sound->_soundFlag = false;
+}
+
void Scripts::CMDPLAYVIDSND() { error("TODO CMDPLAYVIDSND"); }
void Scripts::CMDPUSHLOCATION() { error("TODO CMDPUSHLOCATION"); }