From 25c91b52134d79a28c472582496433c824aa01ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 16 Feb 2021 23:05:28 +0100 Subject: [PATCH] TINSEL: Map BACKGROUND And don't load a palette in Discworld Noir --- engines/tinsel/bg.cpp | 7 ++++--- engines/tinsel/tinlib.cpp | 7 ++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/engines/tinsel/bg.cpp b/engines/tinsel/bg.cpp index 9f83936650d..2e69cf79252 100644 --- a/engines/tinsel/bg.cpp +++ b/engines/tinsel/bg.cpp @@ -168,13 +168,14 @@ void Background::StartupBackground(CORO_PARAM, SCNHANDLE hFilm) { CORO_BEGIN_CODE(_ctx); const FILM *pfilm; - IMAGE *pim; _hBackground = hFilm; // Save handle in case of Save_Scene() - pim = _vm->_cursor->GetImageFromFilm(hFilm, 0, NULL, NULL, &pfilm); + if (!TinselV3) { + IMAGE *pim = _vm->_cursor->GetImageFromFilm(hFilm, 0, NULL, NULL, &pfilm); - SetBackPal(FROM_32(pim->hImgPal)); + SetBackPal(FROM_32(pim->hImgPal)); + } // Extract the film speed _BGspeed = ONE_SECOND / FROM_32(pfilm->frate); diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp index 57c4015fc25..7a0e5ab1466 100644 --- a/engines/tinsel/tinlib.cpp +++ b/engines/tinsel/tinlib.cpp @@ -4216,6 +4216,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) { pp -= mapping.numArgs - 1; debug(7, "%s(%08X)", mapping.name, pp[0]); break; + case 18: + mapping = NoirMapping{"BACKGROUND", BACKGROUND, 1}; + pp -= mapping.numArgs - 1; + debug(7, "%s(0x%08X)", mapping.name, pp[0]); + break; case 28: mapping = NoirMapping{"CDCHANGESCENE", CDCHANGESCENE, 1}; pp -= mapping.numArgs - 1; @@ -4462,7 +4467,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi return -14; case BACKGROUND: - // Common to both DW1 & DW2 + // Common to DW1 / DW2 / Noir startBackground(coroParam, pp[0]); return -1;