From 31265970bb00105304c836f4c5a8da8d9a7ba35b Mon Sep 17 00:00:00 2001 From: LKramer Date: Mon, 3 May 2021 18:09:00 +0100 Subject: [PATCH] TINSEL: Discworld Noir: Support for opcode 217. (#2988) This adds support for opcode 217. I have made the assumption that it's voiceover, and given it an enum value to reflect that. This enables voiceover to be played in the opening movie. --- engines/tinsel/tinlib.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp index 8237139bdbae..5528e421c26e 100644 --- a/engines/tinsel/tinlib.cpp +++ b/engines/tinsel/tinlib.cpp @@ -153,7 +153,7 @@ enum MASTER_LIB_CODES { TRYPLAYSAMPLE, UNDIMMUSIC, UNHOOKSCENE, UNTAGACTOR, VIBRATE, WAITFRAME, WAITKEY, WAITSCROLL, WAITTIME, WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY, WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D, DECINVMAIN, - ADDNOTEBOOK, ADDINV3, ADDCONV, SET3DTEXTURE, FADEMUSIC, HIGHEST_LIBCODE + ADDNOTEBOOK, ADDINV3, ADDCONV, SET3DTEXTURE, FADEMUSIC, VOICEOVER, HIGHEST_LIBCODE }; static const MASTER_LIB_CODES DW1DEMO_CODES[] = { @@ -4503,8 +4503,8 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) { pp -= mapping.numArgs - 1; debug(7, "%s(0x%08X)", mapping.name, pp[0]); break; - case 217: // STUBBED - mapping = NoirMapping{"217", ZZZZZZ, 1}; + case 217: + mapping = NoirMapping{"VOICEOVER", VOICEOVER, 1}; pp -= mapping.numArgs - 1; debug(7, "%s(0x%08X)", mapping.name, pp[0]); break; @@ -5488,6 +5488,11 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi TalkOrSay(coroParam, IS_SAYAT, pp[3], pp[1], pp[2], 0, pp[0], pp[4], pic->escOn, pic->myEscape); return -5; + case VOICEOVER: + // Noir only + TalkOrSay(coroParam, IS_SAY, pp[0], 0, 0, 0, SystemVar(SV_USER2), false, pic->escOn, pic->myEscape); + return -1; + case SCALINGREELS: // Common to both DW1 & DW2 pp -= 6; // 7 parameters