aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2004-08-28 15:09:54 +0000
committerTravis Howell2004-08-28 15:09:54 +0000
commit8198af44a212bddcce1352548a8f5624bcc94344 (patch)
tree2c8afcf6c435572879c7dd0314f9a63584ca240a
parent4a6d5e4119e3b7a0b4ffe2c57894de9406abb38a (diff)
downloadscummvm-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.cpp13
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;