diff options
author | Travis Howell | 2004-08-28 15:09:54 +0000 |
---|---|---|
committer | Travis Howell | 2004-08-28 15:09:54 +0000 |
commit | 8198af44a212bddcce1352548a8f5624bcc94344 (patch) | |
tree | 2c8afcf6c435572879c7dd0314f9a63584ca240a | |
parent | 4a6d5e4119e3b7a0b4ffe2c57894de9406abb38a (diff) | |
download | scummvm-rg350-8198af44a212bddcce1352548a8f5624bcc94344.tar.gz scummvm-rg350-8198af44a212bddcce1352548a8f5624bcc94344.tar.bz2 scummvm-rg350-8198af44a212bddcce1352548a8f5624bcc94344.zip |
Small correction for code c025
svn-id: r14820
-rw-r--r-- | scumm/akos.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp index 751205f9ef..aa84edf455 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -60,7 +60,7 @@ enum AkosOpcodes { AKC_CmdQue3 = 0xC015, AKC_ComplexChan = 0xC020, AKC_Unk3 = 0xC021, - AKC_Unk2 = 0xC025, + AKC_ComplexChan2 = 0xC025, AKC_Jump = 0xC030, AKC_JumpIfSet = 0xC031, AKC_AddVar = 0xC040, @@ -286,7 +286,7 @@ byte AkosRenderer::drawLimb(const CostumeData &cost, int limb) { // Code 0xC025 reads 4 bytes of extra information - if (code != AKC_ComplexChan && code != 0xC025) { + if (code != AKC_ComplexChan && code != AKC_ComplexChan2) { off = akof + (code & 0xFFF); assert((code & 0xFFF) * 6 < READ_BE_UINT32((const byte *)akof - 4) - 8); @@ -316,6 +316,9 @@ byte AkosRenderer::drawLimb(const CostumeData &cost, int limb) { error("akos_drawLimb: invalid codec %d", codec); } } else { + if (code == AKC_ComplexChan2) + p += 4; + extra = p[2]; p += 3; @@ -1170,7 +1173,7 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const case AKC_Unk4: curpos += 4; break; - case AKC_Unk2: + case AKC_ComplexChan2: curpos += 4; // Fall through case AKC_ComplexChan: @@ -1307,7 +1310,7 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const case AKC_EndSeq: case AKC_ComplexChan: case AKC_Unk1: - case AKC_Unk2: + case AKC_ComplexChan2: case AKC_Unk3: break; @@ -1340,7 +1343,7 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const int code2 = aksq[curpos]; if (code2 & 0x80) code2 = (code2 << 8) | aksq[curpos + 1]; - assert((code2 & 0xC000) != 0xC000 || code2 == AKC_ComplexChan || code2 == AKC_Return || code2 == AKC_EndSeq || code2 == AKC_Unk1 || code2 == AKC_Unk2); + assert((code2 & 0xC000) != 0xC000 || code2 == AKC_ComplexChan || code2 == AKC_Return || code2 == AKC_EndSeq || code2 == AKC_Unk1 || code2 == AKC_ComplexChan2); a->cost.curpos[chan] = curpos; |