BLADERUNNER: Restore content and localization fixes in RC04

Also added an info note comments to cmdScene() for debugger and to enterChapter() of chapters.cpp
This commit is contained in:
antoniou79 2023-02-02 21:36:58 +02:00
parent e7c405f933
commit 873cdb5170
3 changed files with 40 additions and 7 deletions

View File

@ -27,6 +27,15 @@
namespace BladeRunner {
bool Chapters::enterChapter(int chapter) {
// Chapter valid values are: 1 - 5 corresponding to the game Acts.
// Before set, _chapter is 0 (see chapters.h -- The mapped resource id is still 1)
// Resource id is (see _resourceIds in chapters.h):
// 1 for chapter 0, 1 - Act 1
// 2 for chapter 2, 3 - Act 2, 3
// 3 for chapter 4 - Act 4 (see note and code below, 3 can be used for Act 5 too)
// 4 for chapter 5 - Act 5
// Note: For resources that only go up to "3" (TLK, VQA), 3 is used for both Acts 4 and 5.
int id = _resourceIds[chapter];
if (!_vm->_sliceAnimations->openFrames(id))

View File

@ -793,6 +793,11 @@ bool Debugger::dbgAttemptToLoadChapterSetScene(int chapterId, int setId, int sce
return true;
}
// Note: The chapterId that is set with this command affects loading
// of game resources and the return value of _vm->_settings->getChapter()
// However, it will NOT change the value of the game's global variable (1) for the current chapter.
// The user has to explicitly set that as well, after executing this debugger command,
// using eg. var 1 3 (for chapter 3)
bool Debugger::cmdScene(int argc, const char **argv) {
if (argc != 0 && argc > 4) {
debugPrintf("Changes set and scene.\n");

View File

@ -253,7 +253,8 @@ void SceneScriptRC04::dialogueWithBulletBob() {
Actor_Says(kActorBulletBob, 660, 30);
Actor_Says(kActorMcCoy, 5060, 13);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here?
// A bug? Shouldn't the last argument be -1 or kActorBulletBob here?
Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorMcCoy);
#else
Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorBulletBob);
#endif // BLADERUNNER_ORIGINAL_BUGS
@ -329,6 +330,12 @@ void SceneScriptRC04::dialogueWithBulletBob() {
Actor_Says(kActorBulletBob, 840, 35);
} else {
Actor_Says(kActorBulletBob, 770, 36);
if (_vm->_cutContent && _vm->_language != Common::ES_ESP) {
// In Spanish, this quote (5095) is a duplicate of quote 5085
// with a slightly different take from the voice actor
// but it does not fit here.
Actor_Says_With_Pause(kActorMcCoy, 5095, 0.0f, 11);
}
Actor_Says(kActorBulletBob, 780, 36);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 5090, 16);
@ -365,8 +372,8 @@ bool SceneScriptRC04::ClickedOnActor(int actorId) {
&& !Game_Flag_Query(kFlagRC04BobTalk2)
&& Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 45
) {
Actor_Says(kActorBulletBob, 30, 30);
Actor_Says(kActorMcCoy, 4875, 13);
Actor_Says(kActorBulletBob, 30, 30); // B: How come I never heard of you?
Actor_Says(kActorMcCoy, 4875, 13); // M: I just got assigned.
Actor_Says(kActorBulletBob, 80, 31);
Actor_Says(kActorMcCoy, 4900, 15);
Actor_Says(kActorBulletBob, 90, 33);
@ -377,10 +384,16 @@ bool SceneScriptRC04::ClickedOnActor(int actorId) {
&& !Game_Flag_Query(kFlagRC04BobTalk1)
&& Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) < 45
) {
Actor_Says(kActorBulletBob, 40, 30);
Actor_Says(kActorBulletBob, 40, 30); // B: I heard of you.
Actor_Says(kActorMcCoy, 4880, 13);
Actor_Says(kActorBulletBob, 50, 35);
Actor_Says(kActorMcCoy, 4875, 16);
Actor_Says(kActorBulletBob, 50, 35); // M: You ain't done much.
if (_vm->_cutContent) {
// use an alternative take of the same quote (4875) "I just got assigned."
Actor_Says(kActorMcCoy, 4885, 16);
} else {
// original vanilla version re-uses this quote
Actor_Says(kActorMcCoy, 4875, 16);
}
Actor_Says(kActorBulletBob, 60, 36);
Actor_Says(kActorMcCoy, 4890, 13);
Actor_Says(kActorBulletBob, 70, 33);
@ -394,7 +407,13 @@ bool SceneScriptRC04::ClickedOnActor(int actorId) {
Actor_Says(kActorBulletBob, 1880, 30);
Actor_Says(kActorMcCoy, 8960, 13);
Actor_Says(kActorBulletBob, 1890, 36);
Actor_Says(kActorBulletBob, 1900, 35);
if (_vm->_cutContent && _vm->_language == Common::FR_FRA) {
// In French (only) the 1910 quote follows after the 1900 quote.
Actor_Says_With_Pause(kActorBulletBob, 1900, 0.0f, 35);
Actor_Says(kActorBulletBob, 1910, 30);
} else {
Actor_Says(kActorBulletBob, 1900, 35);
}
Actor_Says(kActorMcCoy, 8965, 16);
Actor_Says(kActorBulletBob, 1920, 36);
Actor_Says(kActorBulletBob, 1930, 33);