[Scummvm-git-logs] scummvm branch-2-2 -> 79e7ee7a7f0f10c4e8c636d7daf2ab2ff2f8c517

yuv422 yuv422 at users.noreply.github.com
Thu Sep 10 23:04:33 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:
79e7ee7a7f DRAGONS: Fixed cutscene subtitles for non US versions.


Commit: 79e7ee7a7f0f10c4e8c636d7daf2ab2ff2f8c517
    https://github.com/scummvm/scummvm/commit/79e7ee7a7f0f10c4e8c636d7daf2ab2ff2f8c517
Author: Eric Fry (yuv422 at users.noreply.github.com)
Date: 2020-09-11T09:04:10+10:00

Commit Message:
DRAGONS: Fixed cutscene subtitles for non US versions.

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


diff --git a/engines/dragons/cutscene.cpp b/engines/dragons/cutscene.cpp
index 37618affdd..e7bc00bb6a 100644
--- a/engines/dragons/cutscene.cpp
+++ b/engines/dragons/cutscene.cpp
@@ -339,7 +339,7 @@ void CutScene::scene1() {
 		_actor_80072df0->updateSequence(6);
 		uint16 dialog[2000];
 		dialog[0] = 0;
-		_vm->_talk->loadText(0x5ea2, dialog, 2000);
+		_vm->_talk->loadText(_vm->getDialogTextId(0x5ea2), dialog, 2000);
 
 		_vm->_talk->displayDialogAroundPoint(dialog, 0x27, 0xc, 0xc01, 0, _vm->getDialogTextId(0x5ea2));
 		_actor_80072df0->waitUntilFlag8And4AreSet();
@@ -350,7 +350,7 @@ void CutScene::scene1() {
 		_vm->_talk->FUN_8001a7c4_clearDialogBoxMaybe();
 
 		dialog[0] = 0;
-		_vm->_talk->loadText(0x5ecc, dialog, 2000);
+		_vm->_talk->loadText(_vm->getDialogTextId(0x5ecc), dialog, 2000);
 		_vm->_talk->displayDialogAroundPoint(dialog, 0x14, 6, 0xc01, 0, _vm->getDialogTextId(0x5ecc));
 		_vm->waitForFrames(0x3c);
 
@@ -926,19 +926,19 @@ void CutScene::tournamentCutScene() {
 
 	tournamentUpdateCameraX = 0x140;
 	_vm->setVsyncUpdateFunction(tournamentUpdateFunction);
-	_vm->_talk->loadText(0x4C40C, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C40C), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0x1e01, 1, _vm->getDialogTextId(0x4C40C));
 
-	_vm->_talk->loadText(0x4C530, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C530), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0xc01, 1, _vm->getDialogTextId(0x4C530));
 
-	_vm->_talk->loadText(0x4C588, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C588), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0x1e01, 1, _vm->getDialogTextId(0x4C588));
 
-	_vm->_talk->loadText(0x4C6B0, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C6B0), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0xc01, 1, _vm->getDialogTextId(0x4C6B0));
 
-	_vm->_talk->loadText(0x4C6E8, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C6E8), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0x1e01, 1, _vm->getDialogTextId(0x4C6E8));
 	_vm->setVsyncUpdateFunction(nullptr);
 	_vm->setFlags(ENGINE_FLAG_20000);
@@ -957,9 +957,9 @@ void CutScene::tournamentCutScene() {
 	_vm->playOrStopSound(0x4000);
 	_vm->_scene->_camera.x = 0x3c0;
 	_vm->fadeFromBlack();
-	_vm->_talk->loadText(0x4C814, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C814), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0xc01, 1, _vm->getDialogTextId(0x4C814));
-	_vm->_talk->loadText(0x4C852, dialogText, 1000);
+	_vm->_talk->loadText(_vm->getDialogTextId(0x4C852), dialogText, 1000);
 	_vm->_talk->displayDialogAroundPoint(dialogText, 0, 0, 0x1e01, 1, _vm->getDialogTextId(0x4C852));
 	_vm->setFlags(ENGINE_FLAG_20000);
 	_vm->fadeToBlack();
diff --git a/engines/dragons/dragons.cpp b/engines/dragons/dragons.cpp
index bfcb0b8470..9d1a4f0877 100644
--- a/engines/dragons/dragons.cpp
+++ b/engines/dragons/dragons.cpp
@@ -1954,6 +1954,9 @@ uint32 DragonsEngine::getDialogTextIdDe(uint32 textId) {
 	case 0x4c814 : return 0x556c4;
 	case 0x4c852 : return 0x556fc;
 
+		//for camelhot
+	case 0x30DD8 : return 0x36594;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
@@ -2042,6 +2045,9 @@ uint32 DragonsEngine::getDialogTextIdFr(uint32 textId) {
 	case 0x4c814 : return 0x57bd6;
 	case 0x4c852 : return 0x57c08;
 
+	//for camelhot
+	case 0x30DD8 : return 0x37cb8;
+
 	default: break;
 	}
 	warning("Unhandled textID 0x%x", textId);
diff --git a/engines/dragons/specialopcodes.cpp b/engines/dragons/specialopcodes.cpp
index 7404cd6722..fff40a646f 100644
--- a/engines/dragons/specialopcodes.cpp
+++ b/engines/dragons/specialopcodes.cpp
@@ -1009,8 +1009,9 @@ void SpecialOpcodes::panCamera(int16 mode) {
 
 void SpecialOpcodes::spcBlackDragonDialogForCamelhot() {
 	uint16 buffer[1024];
-	_vm->_talk->loadText(0x30DD8, buffer, 1024); //TODO might need to check dialog in other game versions
-	_vm->_talk->displayDialogAroundPoint(buffer, 0x27, 0xc, 0xc01, 0, 0x30DD8);
+	uint32 textId = _vm->getDialogTextId(0x30DD8);
+	_vm->_talk->loadText(textId, buffer, 1024);
+	_vm->_talk->displayDialogAroundPoint(buffer, 0x27, 0xc, 0xc01, 0, textId);
 	//TODO this isn't quite right. The audio isn't played and it's not waiting long enough.
 }
 




More information about the Scummvm-git-logs mailing list