aboutsummaryrefslogtreecommitdiff
path: root/engines/tucker
diff options
context:
space:
mode:
authorAdrian Frühwirth2018-03-18 22:06:57 +0100
committerAdrian Frühwirth2018-03-18 22:16:33 +0100
commit91ec2a0c38ea2782d5ed41563025721eb18adfd5 (patch)
treebb0c45fd4c05afa5bc902890fa50f3df0397e942 /engines/tucker
parent5f5cee2be3428ae244664401c453e410a7d6baf5 (diff)
downloadscummvm-rg350-91ec2a0c38ea2782d5ed41563025721eb18adfd5.tar.gz
scummvm-rg350-91ec2a0c38ea2782d5ed41563025721eb18adfd5.tar.bz2
scummvm-rg350-91ec2a0c38ea2782d5ed41563025721eb18adfd5.zip
TUCKER: Add missing buv and c0v opcodes
This commit adds the 'buv' and 'c0v' opcodes which are used to set speech volume. Because these only seem to be used once in the English demo and we right now playback all speech at kMaxSoundVolume anyway we can treat them as NOOPs. This fixes a bug in said demo which resulted in Bud being unable to talk to Del.
Diffstat (limited to 'engines/tucker')
-rw-r--r--engines/tucker/tucker.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp
index 6ea6bce140..9e21a10e42 100644
--- a/engines/tucker/tucker.cpp
+++ b/engines/tucker/tucker.cpp
@@ -3146,7 +3146,8 @@ enum TableInstructionCode {
kCode_was,
kCode_wfx,
kCode_xhr,
- kCode_xhm
+ kCode_xhm,
+ kCode_no3 // NOOP, throw away 3-byte parameter
};
static const struct {
@@ -3166,12 +3167,14 @@ static const struct {
{ "bso", kCode_bso },
{ "bus", kCode_bus },
{ "b0s", kCode_bus }, // only ref 65.25
+ { "buv", kCode_no3 },
{ "buw", kCode_buw },
{ "bdx", kCode_bux },
{ "bux", kCode_bux },
{ "c0a", kCode_c0a },
{ "c0c", kCode_c0c },
{ "c0s", kCode_c0s },
+ { "c0v", kCode_no3 },
{ "end", kCode_end },
{ "fad", kCode_fad },
{ "fw", kCode_fw },
@@ -3473,6 +3476,10 @@ int TuckerEngine::executeTableInstruction() {
case kCode_xhm:
_validInstructionId = false;
return 0;
+ case kCode_no3:
+ // opcodes mapped here are treated as NOOPs
+ readTableInstructionParam(3);
+ return 0;
}
return 2;
}