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!"
|
// "Wirst Du brutzeln, wie eine grobe Bratwurst!"
|
||||||
if (value == 1 && _language == Common::DE_DEU)
|
if (value == 1 && _language == Common::DE_DEU)
|
||||||
value = 4;
|
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;
|
_scummVars[var] = value;
|
||||||
|
|
|
@ -72,19 +72,32 @@ void ScummEngine::printString(int m, const byte *msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// WORKAROUND bug #13378: Sam's reactions during the intro run
|
// WORKAROUND bug #13378: In the German version, Sam's reactions
|
||||||
// much too quick for the subtitles in some localizations. We
|
// to Max beating up the scientist run much too quick for the
|
||||||
// get around this by slowing down that entire animation, while
|
// animation to match. We get around this by slowing down that
|
||||||
// leaving the reset of the animations unchanged.
|
// 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) {
|
if (_game.id == GID_SAMNMAX && vm.slot[_currentScript].number == 65 && _enableEnhancements) {
|
||||||
|
Actor *a;
|
||||||
|
|
||||||
if (_language == Common::DE_DEU) {
|
if (_language == Common::DE_DEU) {
|
||||||
if (memcmp(msg + 16, "Ohh!", 4) == 0) {
|
if (memcmp(msg + 16, "Ohh!", 4) == 0) {
|
||||||
Actor *a = derefActorSafe(2, "printString");
|
a = derefActorSafe(2, "printString");
|
||||||
if (a)
|
if (a)
|
||||||
a->setAnimSpeed(3);
|
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 }
|
{ "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) {
|
switch (_language) {
|
||||||
case Common::DE_DEU:
|
case Common::DE_DEU:
|
||||||
adjustments = timingAdjustmentsDE;
|
adjustments = timingAdjustmentsDE;
|
||||||
numAdjustments = ARRAYSIZE(timingAdjustmentsDE);
|
numAdjustments = ARRAYSIZE(timingAdjustmentsDE);
|
||||||
break;
|
break;
|
||||||
|
case Common::IT_ITA:
|
||||||
|
adjustments = timingAdjustmentsIT;
|
||||||
|
numAdjustments = ARRAYSIZE(timingAdjustmentsIT);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
adjustments = nullptr;
|
adjustments = nullptr;
|
||||||
numAdjustments = 0;
|
numAdjustments = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue