[Scummvm-git-logs] scummvm branch-2-2 -> b012ba4f23ba7f3ed8109ad90a875ec2c5e38ce4

yuv422 yuv422 at users.noreply.github.com
Fri Sep 11 13:48:03 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b012ba4f23 DRAGONS: Fixed background dialog for non US versions. Fixes #11616


Commit: b012ba4f23ba7f3ed8109ad90a875ec2c5e38ce4
    https://github.com/scummvm/scummvm/commit/b012ba4f23ba7f3ed8109ad90a875ec2c5e38ce4
Author: Eric Fry (yuv422 at users.noreply.github.com)
Date: 2020-09-11T23:47:39+10:00

Commit Message:
DRAGONS: Fixed background dialog for non US versions. Fixes #11616

Changed paths:
    engines/dragons/dragons.cpp
    engines/dragons/specialopcodes.cpp


diff --git a/engines/dragons/dragons.cpp b/engines/dragons/dragons.cpp
index 9d1a4f0877..53ae0ff02c 100644
--- a/engines/dragons/dragons.cpp
+++ b/engines/dragons/dragons.cpp
@@ -1921,7 +1921,6 @@ uint32 DragonsEngine::getDialogTextIdDe(uint32 textId) {
 	case 0x7c20 : return 0x90fa;
 	case 0x7c9c : return 0x9196;
 	case 0x7cf2 : return 0x91fa;
-//	case 0x7dcc : return 0x92da;
 	case 0x7e1a : return 0x9324;
 	case 0x7e96 : return 0x93e2;
 	case 0x7f0a : return 0x9464;
@@ -1942,7 +1941,6 @@ uint32 DragonsEngine::getDialogTextIdDe(uint32 textId) {
 	case 0x92aa : return 0xab3c;
 	case 0x932c : return 0xabc0;
 	case 0x93d6 : return 0xac52;
-//	case 0x7dcc : return 0x92da;
 	case 0x948c : return 0xad16;
 
 	// tournament
@@ -1954,9 +1952,155 @@ uint32 DragonsEngine::getDialogTextIdDe(uint32 textId) {
 	case 0x4c814 : return 0x556c4;
 	case 0x4c852 : return 0x556fc;
 
-		//for camelhot
+	//for camelhot
 	case 0x30DD8 : return 0x36594;
 
+	// castle garden bg dialog
+	case 0x22660 : return 0x267ec;
+	case 0x226CA : return 0x2687a;
+	case 0x22738 : return 0x2690a;
+	case 0x22790 : return 0x26972;
+	case 0x227E8 : return 0x269e6;
+	case 0x2283C : return 0x26a44;
+	case 0x228A0 : return 0x26ac4;
+	case 0x228EC : return 0x26b1e;
+
+	// knight pool reflection logic
+	case 0x23E90 : return 0x28456;
+	case 0x23EE6 : return 0x284aa;
+	case 0x23F0C : return 0x284e0;
+	case 0x23F86 : return 0x2856c;
+	case 0x24000 : return 0x285c4;
+	case 0x2406A : return 0x2863c;
+	case 0x240C2 : return 0x286a0;
+	case 0x2411E : return 0x28706;
+	case 0x24158 : return 0x28746;
+	case 0x241BC : return 0x287a6;
+	case 0x241EE : return 0x287d6;
+	case 0x24240 : return 0x28832;
+	case 0x24286 : return 0x2887e;
+	case 0x242B0 : return 0x288ae;
+	case 0x2431C : return 0x2891e;
+	case 0x2437C : return 0x28994;
+	case 0x243B2 : return 0x289dc;
+	case 0x2440A : return 0x28a46;
+	case 0x24432 : return 0x28a7e;
+	case 0x24480 : return 0x28ac8;
+	case 0x244EE : return 0x28b40;
+	case 0x2453C : return 0x28b9e;
+
+	// Zigmond fraud logic
+	case 0x2D000 : return 0x32312;
+	case 0x2D044 : return 0x32364;
+	case 0x2D0B2 : return 0x323d0;
+	case 0x2D0D6 : return 0x323fc;
+	case 0x2D152 : return 0x32490;
+	case 0x2D1A4 : return 0x324f0;
+	case 0x2D20A : return 0x32566;
+	case 0x2D27C : return 0x325f0;
+	case 0x2D2EC : return 0x32674;
+	case 0x2D336 : return 0x326c6;
+	case 0x2D3E0 : return 0x3274c;
+	case 0x2D456 : return 0x327d2;
+	case 0x2D4A8 : return 0x3283c;
+	case 0x2D504 : return 0x328a0;
+
+	// Zigmond fraud logic 1
+	case 0x2F422 : return 0x348c6;
+
+	// Black dragon on hill
+	case 0x325EA : return 0x37f94;
+	case 0x3262A : return 0x38000;
+	case 0x32686 : return 0x3806c;
+	case 0x326D8 : return 0x380fc;
+	case 0x3270E : return 0x3814a;
+	case 0x32774 : return 0x381a2;
+	case 0x32D72 : return 0x38850;
+
+	// Jester in library
+	case 0x18502 : return 0x1b7f8;
+	case 0x185E0 : return 0x1b900;
+	case 0x18596 : return 0x1b8a4;
+
+	// Broken black dragon
+	case 0x40802 : return 0x47ec2;
+	case 0x40852 : return 0x47f2a;
+	case 0x40896 : return 0x47f70;
+	case 0x408C0 : return 0x48000;
+	case 0x4092A : return 0x48084;
+
+	// Dodo under attack
+	case 0x3353A : return 0x39100;
+	case 0x335AC : return 0x3917e;
+	case 0x335F8 : return 0x391e4;
+	case 0x33660 : return 0x39252;
+	case 0x336DE : return 0x392da;
+	case 0x3375C : return 0x39364;
+
+	// Forest without dodo
+	case 0x33EA0 : return 0x39c02;
+	case 0x33EFC : return 0x39c98;
+	case 0x33F34 : return 0x39cd0;
+	case 0x34000 : return 0x39d30;
+	case 0x34074 : return 0x39dc4;
+
+	// Angry villagers
+	case 0x35946 : return 0x3ba7e;
+	case 0x359BC : return 0x3baee;
+	case 0x35A38 : return 0x3bb68;
+	case 0x35ABC : return 0x3bbd4;
+	case 0x35B28 : return 0x3bc68;
+	case 0x35B9C : return 0x3bcd4;
+	case 0x35C10 : return 0x3bd78;
+	case 0x35C80 : return 0x3be0e;
+	case 0x35CFA : return 0x3be96;
+	case 0x35D64 : return 0x3bf26;
+
+	// Flame bedroom escape
+	case 0x10458 : return 0x12ac2;
+	case 0x104A0 : return 0x12b16;
+	case 0x10500 : return 0x12b72;
+	case 0x10550 : return 0x12bb6;
+	case 0x10578 : return 0x12be6;
+
+	// Lady of the lake captured
+	case 0x490C8 : return 0x51ace;
+	case 0x490FC : return 0x51b04;
+	case 0x4913A : return 0x51b3e;
+
+	// Men in mines
+	case 0x4590A : return 0x4db1c;
+	case 0x45994 : return 0x4dbba;
+	case 0x459F4 : return 0x4dc2c;
+	case 0x45A60 : return 0x4dc92;
+
+	// Moat drained
+	case 0x3C97A : return 0x43830;
+	case 0x3C9AC : return 0x43870;
+	case 0x3C9F8 : return 0x438dc;
+	case 0x3CA48 : return 0x43966;
+
+	// Monks at bar
+	case 0x37800 : return 0x3db58;
+	case 0x37854 : return 0x3dba0;
+	case 0x378CA : return 0x3dc1e;
+	case 0x39152 : return 0x3f754;
+	case 0x3919A : return 0x3f78a;
+	case 0x3922C : return 0x3f82a;
+
+	case 0x38F2A : return 0x3f52c;
+	case 0x39000 : return 0x3f5a0;
+	case 0x39084 : return 0x3f65a;
+	case 0x390E8 : return 0x3f6d6;
+
+	case 0x38C68 : return 0x3f25e;
+	case 0x38CE2 : return 0x3f2da;
+	case 0x38D4E : return 0x3f348;
+	case 0x38DC2 : return 0x3f3ba;
+	case 0x38E0C : return 0x3f3f4;
+	case 0x38E5C : return 0x3f44a;
+	case 0x38ED0 : return 0x3f4c0;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
@@ -2012,7 +2156,6 @@ uint32 DragonsEngine::getDialogTextIdFr(uint32 textId) {
 	case 0x7c20 : return 0x8afe;
 	case 0x7c9c : return 0x8b92;
 	case 0x7cf2 : return 0x8bda;
-//	case 0x7dcc : return 0x8cc0;
 	case 0x7e1a : return 0x8d0e;
 	case 0x7e96 : return 0x8da6;
 	case 0x7f0a : return 0x8e30;
@@ -2033,7 +2176,6 @@ uint32 DragonsEngine::getDialogTextIdFr(uint32 textId) {
 	case 0x92aa : return 0xa35e;
 	case 0x932c : return 0xa400;
 	case 0x93d6 : return 0xa4d2;
-//	case 0x7dcc : return 0x8cc0;
 	case 0x948c : return 0xa5b6;
 
 	// tournament
@@ -2048,6 +2190,152 @@ uint32 DragonsEngine::getDialogTextIdFr(uint32 textId) {
 	//for camelhot
 	case 0x30DD8 : return 0x37cb8;
 
+	// castle garden bg dialog
+	case 0x22660 : return 0x271a4;
+	case 0x226CA : return 0x27214;
+	case 0x22738 : return 0x27292;
+	case 0x22790 : return 0x272ee;
+	case 0x227E8 : return 0x27366;
+	case 0x2283C : return 0x273c8;
+	case 0x228A0 : return 0x2743a;
+	case 0x228EC : return 0x274a2;
+
+	// knight pool reflection logic
+	case 0x23E90 : return 0x28da8;
+	case 0x23EE6 : return 0x28e16;
+	case 0x23F0C : return 0x28e42;
+	case 0x23F86 : return 0x28ec0;
+	case 0x24000 : return 0x28efa;
+	case 0x2406A : return 0x28f64;
+	case 0x240C2 : return 0x29000;
+	case 0x2411E : return 0x29068;
+	case 0x24158 : return 0x290a6;
+	case 0x241BC : return 0x29114;
+	case 0x241EE : return 0x2914a;
+	case 0x24240 : return 0x291b2;
+	case 0x24286 : return 0x29206;
+	case 0x242B0 : return 0x29234;
+	case 0x2431C : return 0x292a8;
+	case 0x2437C : return 0x29332;
+	case 0x243B2 : return 0x2937e;
+	case 0x2440A : return 0x293d0;
+	case 0x24432 : return 0x293f2;
+	case 0x24480 : return 0x29434;
+	case 0x244EE : return 0x294a8;
+	case 0x2453C : return 0x29500;
+
+	// Zigmond fraud logic
+	case 0x2D000 : return 0x33602;
+	case 0x2D044 : return 0x33654;
+	case 0x2D0B2 : return 0x336d2;
+	case 0x2D0D6 : return 0x336f6;
+	case 0x2D152 : return 0x337c2;
+	case 0x2D1A4 : return 0x33818;
+	case 0x2D20A : return 0x338a2;
+	case 0x2D27C : return 0x33952;
+	case 0x2D2EC : return 0x33a06;
+	case 0x2D336 : return 0x33a56;
+	case 0x2D3E0 : return 0x33b24;
+	case 0x2D456 : return 0x33bd0;
+	case 0x2D4A8 : return 0x33c36;
+	case 0x2D504 : return 0x33c9e;
+
+	// Zigmond fraud logic 1
+	case 0x2F422 : return 0x3608a;
+
+	// Black dragon on hill
+	case 0x325EA : return 0x39822;
+	case 0x3262A : return 0x3986e;
+	case 0x32686 : return 0x398dc;
+	case 0x326D8 : return 0x39944;
+	case 0x3270E : return 0x39982;
+	case 0x32774 : return 0x39a08;
+	case 0x32D72 : return 0x3a162;
+
+	// Jester in library
+	case 0x18502 : return 0x1b6d6;
+	case 0x185E0 : return 0x1b7e2;
+	case 0x18596 : return 0x1b790;
+
+	// Broken black dragon
+	case 0x40802 : return 0x4a178;
+	case 0x40852 : return 0x4a1d2;
+	case 0x40896 : return 0x4a212;
+	case 0x408C0 : return 0x4a252;
+	case 0x4092A : return 0x4a310;
+
+	// Dodo under attack
+	case 0x3353A : return 0x3aa2a;
+	case 0x335AC : return 0x3aaae;
+	case 0x335F8 : return 0x3ab02;
+	case 0x33660 : return 0x3ab9c;
+	case 0x336DE : return 0x3ac46;
+	case 0x3375C : return 0x3acf0;
+
+	// Forest without dodo
+	case 0x33EA0 : return 0x3b63a;
+	case 0x33EFC : return 0x3b6b2;
+	case 0x33F34 : return 0x3b6e8;
+	case 0x34000 : return 0x3b76a;
+	case 0x34074 : return 0x3b7e2;
+
+	// Angry villagers
+	case 0x35946 : return 0x3d476;
+	case 0x359BC : return 0x3d4fa;
+	case 0x35A38 : return 0x3d570;
+	case 0x35ABC : return 0x3d64e;
+	case 0x35B28 : return 0x3d6cc;
+	case 0x35B9C : return 0x3d71a;
+	case 0x35C10 : return 0x3d79e;
+	case 0x35C80 : return 0x3d81e;
+	case 0x35CFA : return 0x3d8be;
+	case 0x35D64 : return 0x3d94c;
+
+	// Flame bedroom escape
+	case 0x10458 : return 0x12598;
+	case 0x104A0 : return 0x125f4;
+	case 0x10500 : return 0x12664;
+	case 0x10550 : return 0x12692;
+	case 0x10578 : return 0x126d4;
+
+	// Lady of the lake captured
+	case 0x490C8 : return 0x53ef8;
+	case 0x490FC : return 0x53f42;
+	case 0x4913A : return 0x54000;
+
+	// Men in mines
+	case 0x4590A : return 0x50000;
+	case 0x45994 : return 0x500be;
+	case 0x459F4 : return 0x50142;
+	case 0x45A60 : return 0x501a0;
+
+	// Moat drained
+	case 0x3C97A : return 0x45826;
+	case 0x3C9AC : return 0x45862;
+	case 0x3C9F8 : return 0x458c0;
+	case 0x3CA48 : return 0x4595e;
+
+		// Monks at bar
+	case 0x37800 : return 0x3f7d4;
+	case 0x37854 : return 0x3f84e;
+	case 0x378CA : return 0x3f8b2;
+	case 0x39152 : return 0x4153a;
+	case 0x3919A : return 0x4157e;
+	case 0x3922C : return 0x41616;
+
+	case 0x38F2A : return 0x41388;
+	case 0x39000 : return 0x413f4;
+	case 0x39084 : return 0x4147e;
+	case 0x390E8 : return 0x414d4;
+
+	case 0x38C68 : return 0x41000;
+	case 0x38CE2 : return 0x41098;
+	case 0x38D4E : return 0x41126;
+	case 0x38DC2 : return 0x411b2;
+	case 0x38E0C : return 0x41218;
+	case 0x38E5C : return 0x41278;
+	case 0x38ED0 : return 0x412fa;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
diff --git a/engines/dragons/specialopcodes.cpp b/engines/dragons/specialopcodes.cpp
index fff40a646f..c9b9535af6 100644
--- a/engines/dragons/specialopcodes.cpp
+++ b/engines/dragons/specialopcodes.cpp
@@ -255,14 +255,14 @@ void SpecialOpcodes::spcDancingMiniGame() {
 }
 
 void SpecialOpcodes::spcCastleGardenLogic() {
-	sceneUpdater.textTbl[0][0] = 0x22660;
-	sceneUpdater.textTbl[0][1] = 0x226CA;
-	sceneUpdater.textTbl[1][0] = 0x22738;
-	sceneUpdater.textTbl[1][1] = 0x22790;
-	sceneUpdater.textTbl[2][0] = 0x227E8;
-	sceneUpdater.textTbl[2][1] = 0x2283C;
-	sceneUpdater.textTbl[3][0] = 0x228A0;
-	sceneUpdater.textTbl[3][1] = 0x228EC;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x22660);
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x226CA);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x22738);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x22790);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x227E8);
+	sceneUpdater.textTbl[2][1] = _vm->getDialogTextId(0x2283C);
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x228A0);
+	sceneUpdater.textTbl[3][1] = _vm->getDialogTextId(0x228EC);
 	if (_vm->getCurrentSceneId() == 0x1a) {
 		sceneUpdater.sequenceIDTbl[0][0] = 1;
 		sceneUpdater.sequenceIDTbl[1][0] = 1;
@@ -374,28 +374,28 @@ void SpecialOpcodes::spcSetEngineFlag8() {
 }
 
 void SpecialOpcodes::spcKnightPoolReflectionLogic() {
-	sceneUpdater.textTbl[0][0] = 0x23E90;
-	sceneUpdater.textTbl[0][1] = 0x23EE6;
-	sceneUpdater.textTbl[0][2] = 0x23F0C;
-	sceneUpdater.textTbl[0][3] = 0x23F86;
-	sceneUpdater.textTbl[1][0] = 0x24000;
-	sceneUpdater.textTbl[1][1] = 0x2406A;
-	sceneUpdater.textTbl[2][0] = 0x240C2;
-	sceneUpdater.textTbl[2][1] = 0x2411E;
-	sceneUpdater.textTbl[2][2] = 0x24158;
-	sceneUpdater.textTbl[2][3] = 0x241BC;
-	sceneUpdater.textTbl[2][4] = 0x241EE;
-	sceneUpdater.textTbl[3][0] = 0x24240;
-	sceneUpdater.textTbl[3][1] = 0x24286;
-	sceneUpdater.textTbl[3][2] = 0x242B0;
-	sceneUpdater.textTbl[3][3] = 0x2431C;
-	sceneUpdater.textTbl[4][0] = 0x2437C;
-	sceneUpdater.textTbl[4][1] = 0x243B2;
-	sceneUpdater.textTbl[4][2] = 0x2440A;
-	sceneUpdater.textTbl[4][3] = 0x24432;
-	sceneUpdater.textTbl[5][0] = 0x24480;
-	sceneUpdater.textTbl[5][1] = 0x244EE;
-	sceneUpdater.textTbl[5][2] = 0x2453C;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x23E90);
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x23EE6);
+	sceneUpdater.textTbl[0][2] = _vm->getDialogTextId(0x23F0C);
+	sceneUpdater.textTbl[0][3] = _vm->getDialogTextId(0x23F86);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x24000);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x2406A);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x240C2);
+	sceneUpdater.textTbl[2][1] = _vm->getDialogTextId(0x2411E);
+	sceneUpdater.textTbl[2][2] = _vm->getDialogTextId(0x24158);
+	sceneUpdater.textTbl[2][3] = _vm->getDialogTextId(0x241BC);
+	sceneUpdater.textTbl[2][4] = _vm->getDialogTextId(0x241EE);
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x24240);
+	sceneUpdater.textTbl[3][1] = _vm->getDialogTextId(0x24286);
+	sceneUpdater.textTbl[3][2] = _vm->getDialogTextId(0x242B0);
+	sceneUpdater.textTbl[3][3] = _vm->getDialogTextId(0x2431C);
+	sceneUpdater.textTbl[4][0] = _vm->getDialogTextId(0x2437C);
+	sceneUpdater.textTbl[4][1] = _vm->getDialogTextId(0x243B2);
+	sceneUpdater.textTbl[4][2] = _vm->getDialogTextId(0x2440A);
+	sceneUpdater.textTbl[4][3] = _vm->getDialogTextId(0x24432);
+	sceneUpdater.textTbl[5][0] = _vm->getDialogTextId(0x24480);
+	sceneUpdater.textTbl[5][1] = _vm->getDialogTextId(0x244EE);
+	sceneUpdater.textTbl[5][2] = _vm->getDialogTextId(0x2453C);
 
 	sceneUpdater.iniIDTbl[0][0] = 0x155;
 	sceneUpdater.iniIDTbl[0][1] = 0x14B;
@@ -635,16 +635,16 @@ void SpecialOpcodes::spcNoop1() {
 }
 
 void SpecialOpcodes::spcTownAngryVillagersSceneLogic() {
-	sceneUpdater.textTbl[0][0] = 0x35946;
-	sceneUpdater.textTbl[0][1] = 0x359BC;
-	sceneUpdater.textTbl[1][0] = 0x35A38;
-	sceneUpdater.textTbl[1][1] = 0x35ABC;
-	sceneUpdater.textTbl[2][0] = 0x35B28;
-	sceneUpdater.textTbl[2][1] = 0x35B9C;
-	sceneUpdater.textTbl[3][0] = 0x35C10;
-	sceneUpdater.textTbl[3][1] = 0x35C80;
-	sceneUpdater.textTbl[4][0] = 0x35CFA;
-	sceneUpdater.textTbl[4][1] = 0x35D64;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x35946);
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x359BC);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x35A38);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x35ABC);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x35B28);
+	sceneUpdater.textTbl[2][1] = _vm->getDialogTextId(0x35B9C);
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x35C10);
+	sceneUpdater.textTbl[3][1] = _vm->getDialogTextId(0x35C80);
+	sceneUpdater.textTbl[4][0] = _vm->getDialogTextId(0x35CFA);
+	sceneUpdater.textTbl[4][1] = _vm->getDialogTextId(0x35D64);
 	sceneUpdater.iniIDTbl[0][0] = 0x1DC;
 	sceneUpdater.iniIDTbl[0][1] = 0x1DD;
 	sceneUpdater.iniIDTbl[1][0] = 0x1DC;
@@ -728,20 +728,20 @@ void SpecialOpcodes::spcZigmondFraudSceneLogic() {
 	sceneUpdater.sequenceIDTbl[7][0] = 2;
 	sceneUpdater.sequenceIDTbl[7][1] = 0xe;
 
-	sceneUpdater.textTbl[0][0] = 0x2D000;
-	sceneUpdater.textTbl[0][1] = 0x2D044;
-	sceneUpdater.textTbl[1][0] = 0x2D0B2;
-	sceneUpdater.textTbl[1][1] = 0x2D0D6;
-	sceneUpdater.textTbl[2][0] = 0x2D152;
-	sceneUpdater.textTbl[3][0] = 0x2D1A4;
-	sceneUpdater.textTbl[4][0] = 0x2D20A;
-	sceneUpdater.textTbl[4][1] = 0x2D27C;
-	sceneUpdater.textTbl[5][0] = 0x2D2EC;
-	sceneUpdater.textTbl[5][1] = 0x2D336;
-	sceneUpdater.textTbl[6][0] = 0x2D3E0;
-	sceneUpdater.textTbl[6][1] = 0x2D456;
-	sceneUpdater.textTbl[7][0] = 0x2D4A8;
-	sceneUpdater.textTbl[7][1] = 0x2D504;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x2D000);
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x2D044);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x2D0B2);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x2D0D6);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x2D152);
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x2D1A4);
+	sceneUpdater.textTbl[4][0] = _vm->getDialogTextId(0x2D20A);
+	sceneUpdater.textTbl[4][1] = _vm->getDialogTextId(0x2D27C);
+	sceneUpdater.textTbl[5][0] = _vm->getDialogTextId(0x2D2EC);
+	sceneUpdater.textTbl[5][1] = _vm->getDialogTextId(0x2D336);
+	sceneUpdater.textTbl[6][0] = _vm->getDialogTextId(0x2D3E0);
+	sceneUpdater.textTbl[6][1] = _vm->getDialogTextId(0x2D456);
+	sceneUpdater.textTbl[7][0] = _vm->getDialogTextId(0x2D4A8);
+	sceneUpdater.textTbl[7][1] = _vm->getDialogTextId(0x2D504);
 
 	setupTableBasedSceneUpdateFunction(0x168, 8, 0xb4);
 }
@@ -750,7 +750,7 @@ void SpecialOpcodes::spcZigmondFraudSceneLogic1() {
 	sceneUpdater.numSteps[0] = 1;
 	sceneUpdater.iniIDTbl[0][0] = 0x197;
 	sceneUpdater.sequenceIDTbl[0][0] = 0x12;
-	sceneUpdater.textTbl[0][0] = 0x2F422; //TODO this might change between game versions
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x2F422);
 
 	setupTableBasedSceneUpdateFunction(300, 1, 0x708);
 }
@@ -764,11 +764,11 @@ void SpecialOpcodes::spcBrokenBlackDragonSceneLogic() {
 	sceneUpdater.sequenceIDTbl[2][1] = 2;
 	sceneUpdater.numSteps[1] = 2;
 	sceneUpdater.numSteps[2] = 2;
-	sceneUpdater.textTbl[0][0] = 0x40802;
-	sceneUpdater.textTbl[1][0] = 0x40852;
-	sceneUpdater.textTbl[1][1] = 0x40896;
-	sceneUpdater.textTbl[2][0] = 0x408C0;
-	sceneUpdater.textTbl[2][1] = 0x4092A;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x40802);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x40852);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x40896);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x408C0);
+	sceneUpdater.textTbl[2][1] = _vm->getDialogTextId(0x4092A);
 	sceneUpdater.iniIDTbl[0][0] = 0x23B;
 	sceneUpdater.iniIDTbl[1][0] = 0x23B;
 	sceneUpdater.iniIDTbl[1][1] = 0x231;
@@ -786,17 +786,17 @@ void SpecialOpcodes::spcDodoUnderAttackSceneLogic() {
 	sceneUpdater.sequenceIDTbl[5][0] = 8;
 	sceneUpdater.numSteps[0] = 1;
 	sceneUpdater.numSteps[1] = 1;
-	sceneUpdater.textTbl[0][0] = 0x3353A;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x3353A);
 	sceneUpdater.iniIDTbl[0][0] = 0x1C4;
-	sceneUpdater.textTbl[1][0] = 0x335AC;
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x335AC);
 	sceneUpdater.iniIDTbl[1][0] = 0x1C4;
-	sceneUpdater.textTbl[2][0] = 0x335F8;
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x335F8);
 	sceneUpdater.iniIDTbl[2][0] = 0x1C4;
-	sceneUpdater.textTbl[3][0] = 0x33660;
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x33660);
 	sceneUpdater.iniIDTbl[3][0] = 0x1C4;
-	sceneUpdater.textTbl[4][0] = 0x336DE;
+	sceneUpdater.textTbl[4][0] = _vm->getDialogTextId(0x336DE);
 	sceneUpdater.iniIDTbl[4][0] = 0x1C4;
-	sceneUpdater.textTbl[5][0] = 0x3375C;
+	sceneUpdater.textTbl[5][0] = _vm->getDialogTextId(0x3375C);
 	sceneUpdater.iniIDTbl[5][0] = 0x1C4;
 	sceneUpdater.numSteps[2] = 1;
 	sceneUpdater.numSteps[3] = 1;
@@ -813,15 +813,15 @@ void SpecialOpcodes::spcForestWithoutDodoSceneLogic() {
 	sceneUpdater.numSteps[0] = 2;
 	sceneUpdater.numSteps[1] = 3;
 	sceneUpdater.sequenceIDTbl[1][1] = 5;
-	sceneUpdater.textTbl[0][0] = 0x33EA0;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x33EA0);
 	sceneUpdater.iniIDTbl[0][0] = 0x1C5;
-	sceneUpdater.textTbl[0][1] = 0x33EFC;
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x33EFC);
 	sceneUpdater.iniIDTbl[0][1] = 0x1C4;
-	sceneUpdater.textTbl[1][0] = 0x33F34;
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x33F34);
 	sceneUpdater.iniIDTbl[1][0] = 0x1C4;
-	sceneUpdater.textTbl[1][1] = 0x34000;
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x34000);
 	sceneUpdater.iniIDTbl[1][1] = 0x1C5;
-	sceneUpdater.textTbl[1][2] = 0x34074;
+	sceneUpdater.textTbl[1][2] = _vm->getDialogTextId(0x34074);
 	sceneUpdater.iniIDTbl[1][2] = 0x1C4;
 	setupTableBasedSceneUpdateFunction(300, 2, 600);
 }
@@ -835,13 +835,13 @@ void SpecialOpcodes::spcBlackDragonOnHillSceneLogic() {
 	sceneUpdater.sequenceIDTbl[2][1] = 7;
 	sceneUpdater.sequenceIDTbl[3][0] = 3;
 	sceneUpdater.numSteps[0] = 2;
-	sceneUpdater.textTbl[0][0] = 0x325EA;
-	sceneUpdater.textTbl[0][1] = 0x3262A;
-	sceneUpdater.textTbl[1][0] = 0x32686;
-	sceneUpdater.textTbl[1][1] = 0x326D8;
-	sceneUpdater.textTbl[2][0] = 0x3270E;
-	sceneUpdater.textTbl[2][1] = 0x32774;
-	sceneUpdater.textTbl[3][0] = 0x32D72;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x325EA);
+	sceneUpdater.textTbl[0][1] = _vm->getDialogTextId(0x3262A);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x32686);
+	sceneUpdater.textTbl[1][1] = _vm->getDialogTextId(0x326D8);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x3270E);
+	sceneUpdater.textTbl[2][1] = _vm->getDialogTextId(0x32774);
+	sceneUpdater.textTbl[3][0] = _vm->getDialogTextId(0x32D72);
 	sceneUpdater.iniIDTbl[0][0] = 0x1B6;
 	sceneUpdater.iniIDTbl[0][1] = 0x1B7;
 	sceneUpdater.iniIDTbl[1][0] = 0x1B6;
@@ -1221,9 +1221,9 @@ void SpecialOpcodes::spcJesterInLibrarySceneLogic() {
 	sceneUpdater.numSteps[0] = 1;
 	sceneUpdater.numSteps[1] = 1;
 	sceneUpdater.numSteps[2] = 1;
-	sceneUpdater.textTbl[0][0] = 0x18502;
-	sceneUpdater.textTbl[1][0] = 0x185E0;
-	sceneUpdater.textTbl[2][0] = 0x18596;
+	sceneUpdater.textTbl[0][0] = _vm->getDialogTextId(0x18502);
+	sceneUpdater.textTbl[1][0] = _vm->getDialogTextId(0x185E0);
+	sceneUpdater.textTbl[2][0] = _vm->getDialogTextId(0x18596);
 	sceneUpdater.iniIDTbl[0][0] = 0xD7;
 	sceneUpdater.iniIDTbl[1][0] = 0xD7;
 	sceneUpdater.iniIDTbl[2][0] = 0xD7;
@@ -1540,7 +1540,7 @@ void ladyOfTheLakeCapturedUpdateFunction() {
 	if (!vm->isFlagSet(ENGINE_FLAG_8000)) {
 		ladyofLakeCountdownTimer--;
 		if (ladyofLakeCountdownTimer == 0) {
-			vm->_talk->playDialogAudioDontWait(dialogTbl[ladyOfLakeDialogIndex]);
+			vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(dialogTbl[ladyOfLakeDialogIndex]));
 			if (ladyOfLakeDialogIndex == 2) {
 				ladyOfLakeDialogIndex = 0;
 			} else {
@@ -1590,7 +1590,7 @@ void menInMinesSceneUpdateFunction() {
 			return;
 		}
 		vm->_scriptOpcodes->_specialOpCodes->setSpecialOpCounter(vm->getRand(5) * 0x3c + 0x708);
-		vm->_talk->playDialogAudioDontWait(sceneUpdateFuncDialogTbl[vm->getRand(4)]);
+		vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(sceneUpdateFuncDialogTbl[vm->getRand(4)]));
 		sequenceId = 2;
 	} else {
 		if (!vm->_isLoadingDialogAudio) {
@@ -1656,7 +1656,7 @@ void monksAtBarSceneUpdateFunction() {
 				barKeeper->updateSequence(2);
 				textIndex = sceneUpdateFuncDialogTbl[vm->getRand(3)];
 			}
-			vm->_talk->playDialogAudioDontWait(textIndex);
+			vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(textIndex));
 			monksAtBarCurrentState = 1;
 			specialOpCounter = 0;
 			break;
@@ -1677,7 +1677,7 @@ void monksAtBarSceneUpdateFunction() {
 			} else {
 				monk2->updateSequence(10);
 			}
-			vm->_talk->playDialogAudioDontWait(barKeeperTextIdTbl[randTextId]);
+			vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(barKeeperTextIdTbl[randTextId]));
 			monksAtBarCurrentState = 3;
 			specialOpCounter = 0;
 			break;
@@ -1696,7 +1696,7 @@ void monksAtBarSceneUpdateFunction() {
 				barKeeper->updateSequence(2);
 				textIndex = DAT_800832f0[vm->getRand(4)];
 			}
-			vm->_talk->playDialogAudioDontWait(textIndex);
+			vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(textIndex));
 			monksAtBarCurrentState = 5;
 			specialOpCounter = 0;
 			break;
@@ -1792,7 +1792,7 @@ void monksAtBarSceneUpdateFunction() {
 
 void flameEscapeSceneUpdateFunction() {
 	static const uint32 dialogTbl[6] = {
-		0x10458, 0x104A0, 0x10500, 0x10500, 0x10550, 0x10578 //TODO support multiple languages
+		0x10458, 0x104A0, 0x10500, 0x10500, 0x10550, 0x10578
 	};
 	static bool DAT_800634c0 = false;
 	DragonsEngine *vm = getEngine();
@@ -1810,7 +1810,7 @@ void flameEscapeSceneUpdateFunction() {
 		if (specialOpCounter == 0) {
 			if (DAT_800634c0 == 0) {
 				flame->updateSequence(0x12);
-				vm->_talk->playDialogAudioDontWait(dialogTbl[vm->getRand(6)]);
+				vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(dialogTbl[vm->getRand(6)]));
 				specialOpCounter = 0;
 				DAT_800634c0 = 1;
 			} else {
@@ -1878,7 +1878,7 @@ void moatDrainedSceneUpdateFunction() {
 		}
 		if (moatDrainedUpdateCounter <= 0) {
 			if (!moatDrainedStatus) {
-				vm->_talk->playDialogAudioDontWait(moatDrainedTextIdTbl[vm->getRand(4)]);
+				vm->_talk->playDialogAudioDontWait(vm->getDialogTextId(moatDrainedTextIdTbl[vm->getRand(4)]));
 				moatDrainedStatus = true;
 				moatDrainedUpdateCounter = 0x1e;
 			} else {




More information about the Scummvm-git-logs mailing list