aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script
diff options
context:
space:
mode:
authorThanasis Antoniou2019-09-08 16:25:37 +0300
committerThanasis Antoniou2019-09-08 16:28:17 +0300
commit50fd348feaa3db3ca30f65b57b198151fb213cab (patch)
tree5f229430d53c46c49c8e70fb2f17ff5260cfba44 /engines/bladerunner/script
parent58571865fa2abe37bb6bceaaf7ad86e99778821f (diff)
downloadscummvm-rg350-50fd348feaa3db3ca30f65b57b198151fb213cab.tar.gz
scummvm-rg350-50fd348feaa3db3ca30f65b57b198151fb213cab.tar.bz2
scummvm-rg350-50fd348feaa3db3ca30f65b57b198151fb213cab.zip
BLADERUNNER: Fix silent InShot for BB01
Diffstat (limited to 'engines/bladerunner/script')
-rw-r--r--engines/bladerunner/script/scene/bb01.cpp38
1 files changed, 33 insertions, 5 deletions
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index fff17e777a..39ec948cfc 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -25,11 +25,11 @@
namespace BladeRunner {
enum kBB01Loops {
- kBB01LoopInshot = 0,
- kBB01LoopMainLoop = 1,
- kBB01LoopDoorAnim = 3,
- kBB01LoopOutshot = 4,
- kBB01LoopMainLoopNoSpinner = 5
+ kBB01LoopInshot = 0, // 0 - 300
+ kBB01LoopMainLoop = 1, // 301 - 361
+ kBB01LoopDoorAnim = 3, // 362 - 421
+ kBB01LoopOutshot = 4, // 422 - 480
+ kBB01LoopMainLoopNoSpinner = 5 // 481 - 540
};
void SceneScriptBB01::InitializeScene() {
@@ -251,9 +251,37 @@ void SceneScriptBB01::SceneFrameAdvanced(int frame) {
Sound_Play(kSfxCARUP3, 40, -50, 80, 50);
}
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ // This is treated as a bug rather than restored content
+ // This InShot loop otherwise seems silent for the first ~120 frames
+ if (frame == 19) {
+ if (Random_Query(0, 1)) {
+ Sound_Play(kSfxSPIN3A, 90, -50, 100, 50);
+ } else {
+ Sound_Play(kSfxSPIN2A, 90, -50, 100, 50);
+ }
+ }
+
+ if (frame == 60 && Random_Query(0, 1)) {
+ Sound_Play(kSfxSIREN2, 50, 20, 80, 50);
+ }
+
+ if (frame == 90 && Random_Query(0, 1)) {
+ Sound_Play(kSfxRCCARBY3, 40, 80, 100, 50);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
+#if BLADERUNNER_ORIGINAL_BUGS
if (frame == 120) {
Sound_Play(kSfxTRUCKBY1, Random_Query(33, 33), 100, -100, 50);
}
+#else
+ // delay truck passing by sfx to better match the animation in the loop
+ if (frame == 124) {
+ Sound_Play(kSfxTRUCKBY1, Random_Query(40, 73), 100, -100, 50);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
void SceneScriptBB01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {