aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-08-30 07:06:41 +0000
committerTravis Howell2004-08-30 07:06:41 +0000
commit3b8a0c053ddc6c67eb77e7f38d59d4f5ca1c83e5 (patch)
treede2a57deec0e72e667886bc4dcdcc6cd92f27d47 /scumm
parent9558cf379a1fe74510267589d74bf91b16ea9b1e (diff)
downloadscummvm-rg350-3b8a0c053ddc6c67eb77e7f38d59d4f5ca1c83e5.tar.gz
scummvm-rg350-3b8a0c053ddc6c67eb77e7f38d59d4f5ca1c83e5.tar.bz2
scummvm-rg350-3b8a0c053ddc6c67eb77e7f38d59d4f5ca1c83e5.zip
Add more akos codes
svn-id: r14835
Diffstat (limited to 'scumm')
-rw-r--r--scumm/akos.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp
index 0b69d71eac..abaa33b270 100644
--- a/scumm/akos.cpp
+++ b/scumm/akos.cpp
@@ -58,12 +58,18 @@ enum AkosOpcodes {
AKC_Return = 0xC001,
AKC_SetVar = 0xC010,
AKC_CmdQue3 = 0xC015,
+ AKC_C016 = 0xC016,
+ AKC_C017 = 0xC017,
+ AKC_C018 = 0xC018,
+ AKC_C019 = 0xC019,
AKC_ComplexChan = 0xC020,
AKC_C021 = 0xC021,
AKC_ComplexChan2 = 0xC025,
AKC_Jump = 0xC030,
AKC_JumpIfSet = 0xC031,
AKC_AddVar = 0xC040,
+ AKC_C042 = 0xC042,
+ AKC_C044 = 0xC044,
AKC_Ignore = 0xC050,
AKC_IncVar = 0xC060,
AKC_CmdQue3Quick = 0xC061,
@@ -1130,6 +1136,10 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const
case AKC_SkipNE:
case AKC_SkipE:
+ case AKC_C016:
+ case AKC_C017:
+ case AKC_C018:
+ case AKC_C019:
curpos += 5;
break;
case AKC_JumpTable:
@@ -1140,6 +1150,8 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const
case AKC_StartAnim:
case AKC_StartVarAnim:
case AKC_CmdQue3:
+ case AKC_C042:
+ case AKC_C044:
case AKC_C0A3:
curpos += 3;
break;
@@ -1250,6 +1262,7 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const
a->flip = GW(2) != 0;
continue;
case AKC_CmdQue3:
+ case AKC_C042:
if (_features & GF_HUMONGOUS)
tmp = GB(2);
else
@@ -1353,6 +1366,33 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const
case AKC_C0A3:
//akos_queCommand(8, a, a->getAnimVar(GB(2), 0);
continue;
+ case AKC_C016:
+ if (_sound->isSoundRunning( a->sound[a->getAnimVar(GB(4))])) {
+ curpos = GUW(2);
+ break;
+ }
+ continue;
+ case AKC_C017:
+ if (!_sound->isSoundRunning(a->sound[a->getAnimVar(GB(4))])) {
+ curpos = GUW(2);
+ break;
+ }
+ continue;
+ case AKC_C018:
+ if (_sound->isSoundRunning(a->sound[GB(4)])) {
+ curpos = GUW(2);
+ break;
+ }
+ continue;
+ case AKC_C019:
+ if (!_sound->isSoundRunning(a->sound[GB(4)])) {
+ curpos = GUW(2);
+ break;
+ }
+ continue;
+ case AKC_C044:
+ akos_queCommand(3, a, a->sound[a->getAnimVar(GB(2))], 0);
+ continue;
default:
if ((code & 0xC000) == 0xC000)
error("Undefined uSweat token %X", code);