SCUMM: Adjust timings for Italian Sam & Max intro.
This commit is contained in:
parent
54fd5caac8
commit
127976b510
2 changed files with 45 additions and 7 deletions
|
@ -661,6 +661,12 @@ void ScummEngine::writeVar(uint var, int value) {
|
|||
// "Wirst Du brutzeln, wie eine grobe Bratwurst!"
|
||||
if (value == 1 && _language == Common::DE_DEU)
|
||||
value = 4;
|
||||
|
||||
// Max beats up the scientist. This was probably to
|
||||
// match the subtitles to the speech better, but this
|
||||
// is just too much!
|
||||
if (value == 2 && _language == Common::IT_ITA)
|
||||
value = 3;
|
||||
}
|
||||
|
||||
_scummVars[var] = value;
|
||||
|
|
|
@ -72,19 +72,32 @@ void ScummEngine::printString(int m, const byte *msg) {
|
|||
return;
|
||||
}
|
||||
|
||||
// WORKAROUND bug #13378: Sam's reactions during the intro run
|
||||
// much too quick for the subtitles in some localizations. We
|
||||
// get around this by slowing down that entire animation, while
|
||||
// leaving the reset of the animations unchanged.
|
||||
// WORKAROUND bug #13378: In the German version, Sam's reactions
|
||||
// to Max beating up the scientist run much too quick for the
|
||||
// animation to match. We get around this by slowing down that
|
||||
// animation.
|
||||
//
|
||||
// The animation speed is not very fine grained, though.
|
||||
// In the italian version, the whole scene is sped up to keep up
|
||||
// with Sam's speech. We compensate for this by slowing down the
|
||||
// other animations.
|
||||
if (_game.id == GID_SAMNMAX && vm.slot[_currentScript].number == 65 && _enableEnhancements) {
|
||||
Actor *a;
|
||||
|
||||
if (_language == Common::DE_DEU) {
|
||||
if (memcmp(msg + 16, "Ohh!", 4) == 0) {
|
||||
Actor *a = derefActorSafe(2, "printString");
|
||||
a = derefActorSafe(2, "printString");
|
||||
if (a)
|
||||
a->setAnimSpeed(3);
|
||||
}
|
||||
} else if (_language == Common::IT_ITA) {
|
||||
if (memcmp(msg + 16, "Ooh.", 4) == 0) {
|
||||
a = derefActorSafe(3, "printString");
|
||||
if (a)
|
||||
a->setAnimSpeed(2);
|
||||
a = derefActorSafe(10, "printString");
|
||||
if (a)
|
||||
a->setAnimSpeed(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,11 +230,30 @@ bool ScummEngine::handleNextCharsetCode(Actor *a, int *code) {
|
|||
{ "Kann ich fahren?", 240, 0 }
|
||||
};
|
||||
|
||||
TimingAdjustment timingAdjustmentsIT[] = {
|
||||
{ "E per questo^", 120, 0 },
|
||||
{ "Forse sei", 75, 0 },
|
||||
{ "^imprevedibile.", 170, 0 },
|
||||
{ "Oh.", 20, 0 },
|
||||
{ "Ehi, bel colpo.", 30, 0 },
|
||||
{ "Yikes!", 90, 0 },
|
||||
{ "Huh?", 50, 0 },
|
||||
{ "Posso tenere", 100, 0 },
|
||||
{ "Perch\x82 pensi", 120, 0 },
|
||||
{ "Andiamocene", 250, 0 },
|
||||
{ "Forse possiamo", 90, 0 },
|
||||
{ "Ti dispiace", 200, 0 }
|
||||
};
|
||||
|
||||
switch (_language) {
|
||||
case Common::DE_DEU:
|
||||
adjustments = timingAdjustmentsDE;
|
||||
numAdjustments = ARRAYSIZE(timingAdjustmentsDE);
|
||||
break;
|
||||
case Common::IT_ITA:
|
||||
adjustments = timingAdjustmentsIT;
|
||||
numAdjustments = ARRAYSIZE(timingAdjustmentsIT);
|
||||
break;
|
||||
default:
|
||||
adjustments = nullptr;
|
||||
numAdjustments = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue