diff options
author | Matthew Hoops | 2011-08-08 21:36:50 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-08-08 21:36:50 -0400 |
commit | 677aa783707c566feea50608e2f0ba669037888b (patch) | |
tree | 8bed08790a96c7c25a5355a20fe00e7be30aed69 /engines/scumm/he | |
parent | 9c52724ce56c16c7fe1e9fdd3532d7e14b53c238 (diff) | |
parent | dbceb0a77d64d6e16b0186417ab92c425eddb173 (diff) | |
download | scummvm-rg350-677aa783707c566feea50608e2f0ba669037888b.tar.gz scummvm-rg350-677aa783707c566feea50608e2f0ba669037888b.tar.bz2 scummvm-rg350-677aa783707c566feea50608e2f0ba669037888b.zip |
Merge remote branch 'upstream/master' into soccer
Diffstat (limited to 'engines/scumm/he')
-rw-r--r-- | engines/scumm/he/script_v100he.cpp | 22 | ||||
-rw-r--r-- | engines/scumm/he/script_v80he.cpp | 5 | ||||
-rw-r--r-- | engines/scumm/he/sprite_he.cpp | 10 |
3 files changed, 30 insertions, 7 deletions
diff --git a/engines/scumm/he/script_v100he.cpp b/engines/scumm/he/script_v100he.cpp index 5a9172ff8a..56ea10f507 100644 --- a/engines/scumm/he/script_v100he.cpp +++ b/engines/scumm/he/script_v100he.cpp @@ -542,7 +542,7 @@ void ScummEngine_v100he::o100_arrayOps() { int dim1end, dim1start, dim2end, dim2start; int id, len, b, c, list[128]; int offs, tmp, tmp2; - uint tmp3; + uint tmp3, type; byte subOp = fetchScriptByte(); int array = fetchScriptWord(); @@ -625,11 +625,10 @@ void ScummEngine_v100he::o100_arrayOps() { } break; case 132: - debug(0, "o100_arrayOps: case 132"); - // TODO: Used by Moonbase Commander + // TODO: Used by room 2 script 2180 in Moonbase Commander fetchScriptWord(); fetchScriptWord(); - pop(); + type = pop(); pop(); pop(); pop(); @@ -646,6 +645,21 @@ void ScummEngine_v100he::o100_arrayOps() { if (id == 0) { defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end); } + switch (type) { + case 1: + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + break; + default: + error("o100_arrayOps: case 132 unknown type %d)", type); + } + debug(0, "o100_arrayOps: case 132 type %d", type); break; case 133: b = pop(); diff --git a/engines/scumm/he/script_v80he.cpp b/engines/scumm/he/script_v80he.cpp index 7970d7806f..9711f6415b 100644 --- a/engines/scumm/he/script_v80he.cpp +++ b/engines/scumm/he/script_v80he.cpp @@ -171,7 +171,10 @@ void ScummEngine_v80he::o80_readConfigFile() { case 6: // number ConfFile.getKey((const char *)option, (const char *)section, entry); - push(atoi(entry.c_str())); + if (!strcmp((char *)option, "Benchmark")) + push(2); + else + push(atoi(entry.c_str())); break; case 77: // HE 100 case 7: // string diff --git a/engines/scumm/he/sprite_he.cpp b/engines/scumm/he/sprite_he.cpp index 0b37673e4a..081110c7cd 100644 --- a/engines/scumm/he/sprite_he.cpp +++ b/engines/scumm/he/sprite_he.cpp @@ -804,12 +804,18 @@ void Sprite::setSpriteImage(int spriteId, int imageNum) { if (_spriteTable[spriteId].image) { _spriteTable[spriteId].imageStateCount = _vm->_wiz->getWizImageStates(_spriteTable[spriteId].image); - _spriteTable[spriteId].flags |= kSFActive | kSFAutoAnim | kSFMarkDirty | kSFBlitDirectly; + + if (_vm->VAR(139)) + _spriteTable[spriteId].flags |= kSFActive; + else + _spriteTable[spriteId].flags |= kSFActive | kSFAutoAnim | kSFMarkDirty | kSFBlitDirectly; if (_spriteTable[spriteId].image != origResId || _spriteTable[spriteId].imageStateCount != origResWizStates) _spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw; } else { - if (_spriteTable[spriteId].flags & kSFImageless) + if (_vm->VAR(139)) + _spriteTable[spriteId].flags &= ~kSFActive; + else if (_spriteTable[spriteId].flags & kSFImageless) _spriteTable[spriteId].flags = 0; else _spriteTable[spriteId].flags = kSFChanged | kSFBlitDirectly; |