[Scummvm-git-logs] scummvm master -> 1470fb68def61e3f1d83a2e62575a2ebf8626744

yuv422 yuv422 at users.noreply.github.com
Sat Sep 12 14:03:29 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:
1470fb68de DRAGONS: Fixed mini game dialog for non US versions Fixes #11691


Commit: 1470fb68def61e3f1d83a2e62575a2ebf8626744
    https://github.com/scummvm/scummvm/commit/1470fb68def61e3f1d83a2e62575a2ebf8626744
Author: Eric Fry (yuv422 at users.noreply.github.com)
Date: 2020-09-13T00:02:25+10:00

Commit Message:
DRAGONS: Fixed mini game dialog for non US versions Fixes #11691

Changed paths:
    engines/dragons/dragons.cpp
    engines/dragons/minigame1.cpp
    engines/dragons/minigame2.cpp
    engines/dragons/minigame4.cpp
    engines/dragons/minigame5.cpp


diff --git a/engines/dragons/dragons.cpp b/engines/dragons/dragons.cpp
index b16a04100c..c7d988e41d 100644
--- a/engines/dragons/dragons.cpp
+++ b/engines/dragons/dragons.cpp
@@ -2101,6 +2101,52 @@ uint32 DragonsEngine::getDialogTextIdDe(uint32 textId) {
 	case 0x38E5C : return 0x3f44a;
 	case 0x38ED0 : return 0x3f4c0;
 
+	// Mini game 1
+	case 0x21312 : return 0x25258;
+	case 0x2134C : return 0x252A0;
+	case 0x21386 : return 0x252D6;
+	case 0x213C0 : return 0x25324;
+	case 0x213E2 : return 0x25354;
+	case 0x21428 : return 0x253A4;
+	case 0x2146C : return 0x253EC;
+	case 0x214B4 : return 0x25446;
+	case 0x214E4 : return 0x25472;
+	case 0x21514 : return 0x254AC;
+	case 0x21540 : return 0x254DC;
+	case 0x21590 : return 0x25530;
+	case 0x215E2 : return 0x2559A;
+	case 0x2164E : return 0x25626;
+	case 0x216AA : return 0x25690;
+	case 0x216D2 : return 0x256D6;
+	case 0x217D8 : return 0x257DC;
+
+	// Mini game 2
+	case 0x4500 : return 0x50F4;
+	case 0x454A : return 0x5164;
+	case 0x4576 : return 0x519E;
+	case 0x46BC : return 0x532C;
+	case 0x4718 : return 0x53B6;
+	case 0x475E : return 0x5420;
+	case 0x4774 : return 0x5436;
+
+	// Mini game 4
+	case 0x49A2 : return 0x5706;
+	case 0x4A84 : return 0x580C;
+	case 0x4ADE : return 0x5876;
+	case 0x4B6A : return 0x5904;
+	case 0x4C0C : return 0x59C6;
+	case 0x4D50 : return 0x5B24;
+	case 0x4DD4 : return 0x5BC6;
+	case 0x4DEE : return 0x5BE8;
+	case 0x4CC8 : return 0x5A7E;
+	case 0x4A56 : return 0x57D4;
+
+	// Mini game 5
+	case 0x21DAE : return 0x25E68;
+	case 0x21BF0 : return 0x25C34;
+	case 0x21E3E : return 0x25F10;
+	case 0x475DA : return 0x4FC9E;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
@@ -2336,6 +2382,52 @@ uint32 DragonsEngine::getDialogTextIdFr(uint32 textId) {
 	case 0x38E5C : return 0x41278;
 	case 0x38ED0 : return 0x412fa;
 
+	// Mini game 1
+	case 0x21312 : return 0x25B60;
+	case 0x2134C : return 0x25B98;
+	case 0x21386 : return 0x25BD6;
+	case 0x213C0 : return 0x25C10;
+	case 0x213E2 : return 0x25C38;
+	case 0x21428 : return 0x25C7E;
+	case 0x2146C : return 0x25CE0;
+	case 0x214B4 : return 0x25D36;
+	case 0x214E4 : return 0x25D5E;
+	case 0x21514 : return 0x25D8A;
+	case 0x21540 : return 0x25DCE;
+	case 0x21590 : return 0x25E4E;
+	case 0x215E2 : return 0x25EB8;
+	case 0x2164E : return 0x25F2C;
+	case 0x216AA : return 0x25F9C;
+	case 0x216D2 : return 0x26000;
+	case 0x217D8 : return 0x260F4;
+
+	// Mini game 2
+	case 0x4500 : return 0x4D78;
+	case 0x454A : return 0x4DCC;
+	case 0x4576 : return 0x4E0A;
+	case 0x46BC : return 0x4F32;
+	case 0x4718 : return 0x5000;
+	case 0x475E : return 0x505A;
+	case 0x4774 : return 0x5070;
+
+	// Mini game 4
+	case 0x49A2 : return 0x5360;
+	case 0x4A84 : return 0x5476;
+	case 0x4ADE : return 0x54C0;
+	case 0x4B6A : return 0x554C;
+	case 0x4C0C : return 0x55EA;
+	case 0x4D50 : return 0x5742;
+	case 0x4DD4 : return 0x57F0;
+	case 0x4DEE : return 0x580E;
+	case 0x4CC8 : return 0x569C;
+	case 0x4A56 : return 0x5438;
+
+	// Mini game 5
+	case 0x21DAE : return 0x267C2;
+	case 0x21BF0 : return 0x265BC;
+	case 0x21E3E : return 0x2686A;
+	case 0x475DA : return 0x51F88;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
diff --git a/engines/dragons/minigame1.cpp b/engines/dragons/minigame1.cpp
index 91ffc139a4..fe437ae1e3 100644
--- a/engines/dragons/minigame1.cpp
+++ b/engines/dragons/minigame1.cpp
@@ -30,13 +30,11 @@ namespace Dragons {
 
 #define DAT_80063a48 0x12d
 #define DAT_80063a40 0x12f
-#define DAT_80063ab8 0x216D2
 
 Minigame1::Minigame1(DragonsEngine *vm) : _vm(vm) {}
 
 void Minigame1::run() {
 
-	//TODO this might change for different game versions.
 	const uint32 dialogIdTbl[17] = {
 		0x21312, 0x2134C, 0x21386, 0x213C0,
 		0x213E2, 0x21428, 0x2146C, 0x214B4,
@@ -432,9 +430,9 @@ void Minigame1::run() {
 							local_234 = 0;
 						}
 						if (local_252 == 0) { //successful hit maybe?
-							_vm->_talk->loadText(local_118[((uint)hitCounter - 1) * 2], auStack1008, 200);
-							_vm->_talk->displayDialogAroundPoint(auStack1008, (int)(short)(flickerXPos >> 3), 0xc, 0, 0,
-									 local_118[((uint)hitCounter - 1) * 2]);
+							uint32 textId = _vm->getDialogTextId(local_118[((uint)hitCounter - 1) * 2]);
+							_vm->_talk->loadText(textId, auStack1008, 200);
+							_vm->_talk->displayDialogAroundPoint(auStack1008, (int)(short)(flickerXPos >> 3), 0xc, 0, 0, textId);
 							local_250 = *(short *)(local_118 + ((uint)hitCounter - 1) * 2 + 1);
 						}
 						targetActorIdTbl[(uint)(uint16)local_188[(uint)i]]->_priorityLayer = 3;
@@ -767,8 +765,9 @@ void Minigame1::run() {
 								local_16a = *(short *)(local_c0 + (uint)uVar5 * 2 + 5);
 							}
 							if ((local_252 == 0) || ((auStack536[(uint)local_22c * 3] == 0 && (local_254 == 0)))) {
-								_vm->_talk->loadText(local_168, auStack1008, 200);
-								_vm->_talk->displayDialogAroundPoint(auStack1008, (int)(short)(flickerXPos >> 3), 0xc, 0, 0, local_168);
+								uint32 textId = _vm->getDialogTextId(local_168);
+								_vm->_talk->loadText(textId, auStack1008, 200);
+								_vm->_talk->displayDialogAroundPoint(auStack1008, (int)(short)(flickerXPos >> 3), 0xc, 0, 0, textId);
 								local_250 = local_16a;
 							}
 							if (local_254 < 2) {
@@ -833,8 +832,8 @@ void Minigame1::run() {
 				_vm->_talk->FUN_8001a7c4_clearDialogBoxMaybe();
 			}
 			pusherActor->updateSequence(7);
-			_vm->_talk->loadText(DAT_80063ab8, auStack1008, 200);
-			_vm->_talk->displayDialogAroundPoint(auStack1008, 0x19, 0xc, 0, 1, DAT_80063ab8);
+			_vm->_talk->loadText(_vm->getDialogTextId(0x216D2), auStack1008, 200);
+			_vm->_talk->displayDialogAroundPoint(auStack1008, 0x19, 0xc, 0, 1, _vm->getDialogTextId(0x216D2));
 
 			pusherActor->updateSequence(1);
 			_vm->waitForFrames(0x1e);
diff --git a/engines/dragons/minigame2.cpp b/engines/dragons/minigame2.cpp
index 4b0cb049f2..eb65991416 100644
--- a/engines/dragons/minigame2.cpp
+++ b/engines/dragons/minigame2.cpp
@@ -125,9 +125,9 @@ void Minigame2::run(int16 param_1, uint16 param_2, int16 param_3) {
 
 	fd->close();
 
-	textIdTbl[0] = 0x4500;
-	textIdTbl[1] = 0x454A;
-	textIdTbl[2] = 0x4576;
+	textIdTbl[0] = _vm->getDialogTextId(0x4500);
+	textIdTbl[1] = _vm->getDialogTextId(0x454A);
+	textIdTbl[2] = _vm->getDialogTextId(0x4576);
 
 	bVar4 = false;
 	local_27a = 0;
@@ -597,7 +597,7 @@ void Minigame2::run(int16 param_1, uint16 param_2, int16 param_3) {
 					if (local_258 == 1) {
 //						playSoundFromTxtIndex(DAT_80063ad0);
 						loungealotHeadActor->updateSequence(9);
-						fun_80093aec_dialog(0x46BC, 0x14, 1);
+						fun_80093aec_dialog(_vm->getDialogTextId(0x46BC), 0x14, 1);
 						do {
 							_vm->waitForFrames(1);
 						} while (_vm->isFlagSet(ENGINE_FLAG_8000));
@@ -606,7 +606,7 @@ void Minigame2::run(int16 param_1, uint16 param_2, int16 param_3) {
 					} else {
 //						playSoundFromTxtIndex(DAT_80063ad4);
 						loungealotHeadActor->updateSequence(10);
-						fun_80093aec_dialog(0x4718, 0x14, 1);
+						fun_80093aec_dialog(_vm->getDialogTextId(0x4718), 0x14, 1);
 						loungealotRightArm->updateSequence(2);
 						do {
 							_vm->waitForFrames(1);
@@ -666,11 +666,11 @@ void Minigame2::run(int16 param_1, uint16 param_2, int16 param_3) {
 				if (local_258 == 1) {
 //					playSoundFromTxtIndex(DAT_80063ad8);
 					loungealotHeadActor->updateSequence(0xb);
-					fun_80093aec_dialog(0x475E, 0x14, 1);
+					fun_80093aec_dialog(_vm->getDialogTextId(0x475E), 0x14, 1);
 				} else {
 //					playSoundFromTxtIndex(DAT_80063adc);
 					loungealotHeadActor->updateSequence(0xc);
-					fun_80093aec_dialog(0x4774, 0x14, 1);
+					fun_80093aec_dialog(_vm->getDialogTextId(0x4774), 0x14, 1);
 				}
 				local_258 = 0;
 				_dat_80093cb4 = 2;
diff --git a/engines/dragons/minigame4.cpp b/engines/dragons/minigame4.cpp
index e246e55a75..71ceee5aa3 100644
--- a/engines/dragons/minigame4.cpp
+++ b/engines/dragons/minigame4.cpp
@@ -130,7 +130,7 @@ void Minigame4::actorTalk(Actor *actorId, uint16 param_2, uint32 textIndex) {
 		_flickerActor->updateSequence(9);
 	}
 
-	actorDialog(actorId, (uint)param_2, textIndex);
+	actorDialog(actorId, (uint)param_2, _vm->getDialogTextId(textIndex));
 	actorId->waitUntilFlag8SetThenSet1000AndWaitFor4();
 	if (actorId == _bruteActor) {
 		_bruteActor->updateSequence(0);
@@ -204,8 +204,9 @@ uint16 Minigame4::runDanceBattle() {
 	currentStep = 0;
 	while (true) {
 		if (0x11 < currentStep) {
-			_vm->_talk->loadText(0x4C0C, auStack2192, 1000);
-			_vm->_talk->displayDialogAroundPoint(auStack2192, 0x27, 0xc, 0x3321, 0, 0x4C0C);
+			uint32 textId = _vm->getDialogTextId(0x4C0C);
+			_vm->_talk->loadText(textId, auStack2192, 1000);
+			_vm->_talk->displayDialogAroundPoint(auStack2192, 0x27, 0xc, 0x3321, 0, textId);
 			_vm->waitForFrames(0x10a);
 			_bruteActor->updateSequence(8);
 			_vm->_fontManager->clearText();
diff --git a/engines/dragons/minigame5.cpp b/engines/dragons/minigame5.cpp
index bc533a9fcd..f6e66d7344 100644
--- a/engines/dragons/minigame5.cpp
+++ b/engines/dragons/minigame5.cpp
@@ -32,10 +32,6 @@ namespace Dragons {
 #define DAT_80063a48 0x12d
 #define DAT_80063a40 0x12f
 #define DAT_80063bd0 0x133
-#define DAT_8006393c 0x21BF0
-#define DAT_80063938 0x21DAE
-#define DAT_80063e38 0x21E3E
-#define DAT_8006391c 0x475DA
 
 
 Minigame5::Minigame5(DragonsEngine *vm) : _vm(vm), _dat_800633e6(0) {}
@@ -348,12 +344,14 @@ void Minigame5::run() {
 					_vm->waitForFrames(0x3c);
 					pusherActor->updateSequence(0xb);
 					if (_dat_800633e6 == 0) {
-						_vm->_talk->loadText(DAT_8006393c, auStack2120, 1000);
-						_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, DAT_8006393c);
+						uint32 textId = _vm->getDialogTextId(0x21BF0);
+						_vm->_talk->loadText(textId, auStack2120, 1000);
+						_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, textId);
 						_dat_800633e6 = 1;
 					} else {
-						_vm->_talk->loadText(DAT_80063938, auStack2120, 1000);
-						_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, DAT_80063938);
+						uint32 textId = _vm->getDialogTextId(0x21DAE);
+						_vm->_talk->loadText(textId, auStack2120, 1000);
+						_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, textId);
 					}
 					_vm->waitForFrames(10);
 					local_10 = 1;
@@ -372,14 +370,14 @@ void Minigame5::run() {
 					pusherActor->updateSequence(0);
 					_vm->_dragonINIResource->getRecord(DAT_80063bd0 + -1)->actor->updateSequence(2);
 					_vm->waitForFrames(0x12);
-					_vm->_talk->loadText(DAT_80063e38, auStack2120, 1000);
-					_vm->_talk->displayDialogAroundPoint(auStack2120, 0xf, 2, 0x501, 0, DAT_80063e38);
+					_vm->_talk->loadText(_vm->getDialogTextId(0x21E3E), auStack2120, 1000);
+					_vm->_talk->displayDialogAroundPoint(auStack2120, 0xf, 2, 0x501, 0, _vm->getDialogTextId(0x21E3E));
 					_vm->clearAllText();
 					_vm->_dragonINIResource->getRecord(DAT_80063bd0 + -1)->actor->updateSequence(3);
 					_vm->_dragonINIResource->getRecord(DAT_80063bd0 + -1)->actor->waitUntilFlag8And4AreSet();
 					pusherActor->updateSequence(7);
-					_vm->_talk->loadText(DAT_8006391c, auStack2120, 1000);
-					_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, DAT_8006391c);
+					_vm->_talk->loadText(_vm->getDialogTextId(0x475DA), auStack2120, 1000);
+					_vm->_talk->displayDialogAroundPoint(auStack2120, (int)(short)(local_850 >> 3), 0xc, 0, 1, _vm->getDialogTextId(0x475DA));
 					pusherActor->_flags = pusherActor->_flags | 0x1000;
 					local_10 = 2;
 					//local_48 = 1;




More information about the Scummvm-git-logs mailing list