[Scummvm-git-logs] scummvm master -> c4d394654aa17f93062f7848c0f134d443b41cf6
yuv422
yuv422 at users.noreply.github.com
Thu Sep 10 23:03:36 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:
c4d394654a DRAGONS: Fixed cutscene subtitles for non US versions.
Commit: c4d394654aa17f93062f7848c0f134d443b41cf6
https://github.com/scummvm/scummvm/commit/c4d394654aa17f93062f7848c0f134d443b41cf6
Author: Eric Fry (yuv422 at users.noreply.github.com)
Date: 2020-09-11T09:01:52+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 3042db70e4..99b7722d21 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