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.
This commit is contained in:
Adrian Frühwirth 2018-03-18 22:06:57 +01:00
parent 5f5cee2be3
commit 91ec2a0c38

View File

@ -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;
}