aboutsummaryrefslogtreecommitdiff
path: root/scumm/akos.cpp
diff options
context:
space:
mode:
authorPaweł Kołodziejski2002-12-16 21:21:55 +0000
committerPaweł Kołodziejski2002-12-16 21:21:55 +0000
commit19935c14a14513c81fd1bc30c50f2100f2711ab7 (patch)
treefcb59c743e8d0cdc173fa4dfd126adfc8e7060db /scumm/akos.cpp
parentfa4f785f71ab7ea7f353bf5268db1ac69bed24f8 (diff)
downloadscummvm-rg350-19935c14a14513c81fd1bc30c50f2100f2711ab7.tar.gz
scummvm-rg350-19935c14a14513c81fd1bc30c50f2100f2711ab7.tar.bz2
scummvm-rg350-19935c14a14513c81fd1bc30c50f2100f2711ab7.zip
added missing sound effects based on patch #654463
svn-id: r5999
Diffstat (limited to 'scumm/akos.cpp')
-rw-r--r--scumm/akos.cpp50
1 files changed, 47 insertions, 3 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp
index 10ec09534a..9d17f3630a 100644
--- a/scumm/akos.cpp
+++ b/scumm/akos.cpp
@@ -23,6 +23,7 @@
#include "scumm.h"
#include "actor.h"
#include "akos.h"
+#include "imuse.h"
bool Scumm::akos_hasManyDirections(Actor *a)
{
@@ -1443,12 +1444,14 @@ bool Scumm::akos_increaseAnim(Actor *a, int chan, byte *aksq, uint16 *akfo, int
a->flip = GW(2) != 0;
continue;
case AKC_CmdQue3:
- tmp = GB(2);
+// tmp = GB(2); // previous
+ tmp = GB(2) - 1;
if ((uint) tmp < 8)
akos_queCommand(3, a, a->sound[tmp], 0);
continue;
case AKC_CmdQue3Quick:
- akos_queCommand(3, a, a->sound[1], 0);
+// akos_queCommand(3, a, a->sound[1], 0); //previous
+ akos_queCommand(3, a, a->sound[0], 0);
continue;
case AKC_StartAnim:
akos_queCommand(4, a, GB(2), 0);
@@ -1540,7 +1543,48 @@ bool Scumm::akos_increaseAnim(Actor *a, int chan, byte *aksq, uint16 *akfo, int
void Scumm::akos_queCommand(byte cmd, Actor *a, int param_1, int param_2)
{
-// warning("akos_queCommand(%d,%d,%d,%d)", cmd, a->number, param_1, param_2);
+ switch (cmd) {
+ case 1:
+ a->putActor(0, 0, 0);
+ break;
+ case 3:
+ if (param_1 != 0) {
+ if (_imuseDigital) {
+ _imuseDigital->startSound(param_1);
+// _imuseDigital->doCommand(12, 0x400, param_1, 0, 0, 0, 0, 0);
+ }
+ }
+ break;
+ case 2:
+ case 4:
+ case 5:
+ case 6:
+ warning("unimplemented akos_queCommand(%d,%d,%d,%d)", cmd, a->number, param_1, param_2);
+ break;
+ case 7:
+ if (param_1 != 0) {
+ if (_imuseDigital) {
+// _imuseDigital->doCommand(12, 0x600, param_1, 0, 0, 0, 0, 0);
+ }
+ }
+ break;
+ case 8:
+ if (param_1 != 0) {
+ if (_imuseDigital) {
+// _imuseDigital->doCommand(12, 0x700, param_1, 0, 0, 0, 0, 0);
+ }
+ }
+ break;
+ case 9:
+ if (param_1 != 0) {
+ if (_imuseDigital) {
+// _imuseDigital->doCommand(12, 0x500, param_1, 0, 0, 0, 0, 0);
+ }
+ }
+ break;
+ default:
+ warning("akos_queCommand(%d,%d,%d,%d)", cmd, a->number, param_1, param_2);
+ }
}