aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter_v1.cpp
diff options
context:
space:
mode:
authorSven Hesse2006-04-13 20:56:22 +0000
committerSven Hesse2006-04-13 20:56:22 +0000
commit3bed2d377e8431aa94334f7bc9c307875c229c54 (patch)
tree703cc095bd196ad7f386e36adb3abe601318ea70 /engines/gob/inter_v1.cpp
parente21f99c7baeb99f794ba70b7fead9b2588d93cc0 (diff)
downloadscummvm-rg350-3bed2d377e8431aa94334f7bc9c307875c229c54.tar.gz
scummvm-rg350-3bed2d377e8431aa94334f7bc9c307875c229c54.tar.bz2
scummvm-rg350-3bed2d377e8431aa94334f7bc9c307875c229c54.zip
Some more stubs and rearrangings
svn-id: r21847
Diffstat (limited to 'engines/gob/inter_v1.cpp')
-rw-r--r--engines/gob/inter_v1.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp
index 047de35350..5aa91ba7b2 100644
--- a/engines/gob/inter_v1.cpp
+++ b/engines/gob/inter_v1.cpp
@@ -1323,6 +1323,9 @@ bool Inter_v1::o1_keyFunc(char &cmdCount, int16 &counter, int16 &retFlag) {
int16 flag;
int16 key;
+ // Gob2 busy-waits here, so add a delay
+ _vm->_util->longDelay(1);
+
flag = load16();
animPalette();
_vm->_draw->blitInvalidated();
@@ -1562,7 +1565,7 @@ void Inter_v1::o1_animate(void) {
}
void Inter_v1::o1_multLoadMult(void) {
- _vm->_mult->interLoadMult();
+ loadMult();
}
void Inter_v1::o1_storeParams(void) {
@@ -2725,4 +2728,29 @@ int16 Inter_v1::loadSound(int16 slot) {
return 0;
}
+void Inter_v1::loadMult(void) {
+ int16 val;
+ int16 objIndex;
+ int16 i;
+ char *lmultData;
+
+ debugC(4, DEBUG_GAMEFLOW, "Inter_v1::loadMult(): Loading...");
+
+ evalExpr(&objIndex);
+ evalExpr(&val);
+ *_vm->_mult->_objects[objIndex].pPosX = val;
+ evalExpr(&val);
+ *_vm->_mult->_objects[objIndex].pPosY = val;
+
+ lmultData = (char *)_vm->_mult->_objects[objIndex].pAnimData;
+ for (i = 0; i < 11; i++) {
+ if ((char)READ_LE_UINT16(_vm->_global->_inter_execPtr) == (char)99) {
+ evalExpr(&val);
+ lmultData[i] = val;
+ } else {
+ _vm->_global->_inter_execPtr++;
+ }
+ }
+}
+
} // End of namespace Gob