[Scummvm-git-logs] scummvm master -> 61625cc2b0bc30d877b548a13745c6c952089813

antoniou79 a.antoniou79 at gmail.com
Thu Jul 1 21:47:27 UTC 2021


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:
61625cc2b0 BLADERUNNER: RESTOREDCONTENT: FLYTRU_E with custom sound


Commit: 61625cc2b0bc30d877b548a13745c6c952089813
    https://github.com/scummvm/scummvm/commit/61625cc2b0bc30d877b548a13745c6c952089813
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-07-02T00:43:40+03:00

Commit Message:
BLADERUNNER: RESTOREDCONTENT: FLYTRU_E with custom sound

Outtake FLYTRU_E is only available in Act 1

Also only when taking off from McCoy's roof or Police Station and again it's a random chance

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/outtake.cpp
    engines/bladerunner/script/scene/ma01.cpp
    engines/bladerunner/script/scene/ps01.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index c00ba8fec4..acf9a48b37 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1258,7 +1258,7 @@ enum Outtakes {
 	kOuttakeDescent           = 33, // Act 1, 4, 5
 	kOuttakeInside1           = 34, // Act 1
 	kOuttakeInside2           = 35, // Act 1, 2, 3
-	kOuttakeTowards1          = 36, // Act 1
+	kOuttakeTowards1          = 36, // Act 1 - This is sort of the reverse of kOuttakeFlyThrough (spinner is flying towards player)
 	kOuttakeTowards2          = 37, // Act 1
 	kOuttakeTowards3          = 38, // Act 1, 2, 3
 	kOuttakeRachel            = 39,
@@ -1380,11 +1380,11 @@ enum Scenes {
 	kSceneHC02 =  32, // Hawker's Circle - China bar
 	kSceneHC03 =  33, // Hawker's Circle - Green pawn - Inside
 	kSceneHF01 =  34, // Hysteria Hall - Outside
-	kSceneHF02 =  35, // Hysteria Hall - Hall of Mirrors - Exit
+	kSceneHF02 =  35, // Hysteria Hall - Hall of Mirrors - Exit / Arcade Back Alley
 	kSceneHF03 =  36, // Hysteria Hall - Hysteria Arcade
 	kSceneHF04 =  37, // Hysteria Hall - Hall of Mirrors
 	kSceneHF05 =  38, // Hysteria Hall - Crazy Legs Larry Autos - Inside
-	kSceneHF06 =  39, // Hysteria Hall - Crazy Legs Larry Autos - Root
+	kSceneHF06 =  39, // Hysteria Hall - Crazy Legs Larry Autos - Roof
 	kSceneHF07 =  40, // Hysteria Hall - Crazy Legs Larry Autos - Underground
 	kSceneKP01 =  41, // Kipple - Rubble
 	kSceneKP02 =  42, // Kipple - Entry / Gate
@@ -3566,11 +3566,11 @@ enum MusicTracks {
 };
 
 enum SFXSounds {
-	kSfxCROSLOCK =   0,
+	kSfxCROSLOCK =   0,  // PS02, PS10, VK
 	kSfxSTEAM1   =   1,
-	kSfxSPINNY1  =   2,
+	kSfxSPINNY1  =   2,  // used only in Shooting Range Set
 	kSfxFEMHURT1 =   3,  // used only 3 times; 2 of them are bugs
-	kSfxFEMHURT2 =   4,
+	kSfxFEMHURT2 =   4,  // used only in Shooting Range Set (and for Moraji (Removed))
 	kSfxGUNMISS1 =   5,  // unused
 	kSfxGUNMISS2 =   6,  // unused
 	kSfxGUNMISS3 =   7,  // unused
@@ -3579,13 +3579,13 @@ enum SFXSounds {
 	kSfxHITTARG2 =  10,  // unused
 	kSfxHITTARG3 =  11,  // unused
 	kSfxLGCAL1   =  12,
-	kSfxLGCAL2   =  13,  // used only twice
-	kSfxLGCAL3   =  14,
+	kSfxLGCAL2   =  13,  // used only twice in UG18
+	kSfxLGCAL3   =  14,  // used only in UG18
 	kSfxMDCAL1   =  15,  // unused
 	kSfxMDCAL2   =  16,  // unused
 	kSfxRICO1    =  17,  // unused
 	kSfxRICO2    =  18,  // unused
-	kSfxRICO3    =  19,  // used only once
+	kSfxRICO3    =  19,  // used only once - PS11 for a maze target (A Bug?)
 	kSfxRICOCHT1 =  20,  // unused
 	kSfxRICOCHT2 =  21,  // unused
 	kSfxRICOCHT3 =  22,  // unused
@@ -3597,36 +3597,36 @@ enum SFXSounds {
 	kSfxSMCAL4   =  28,  // unused
 	kSfxTARGUP1  =  29,
 	kSfxTARGUP2  =  30,  // unused
-	kSfxTARGUP3  =  31,  // used only once
+	kSfxTARGUP3  =  31,  // used only once - PS11
 	kSfxTARGUP4  =  32,
 	kSfxTARGUP5  =  33,
 	kSfxTARGUP6  =  34,
 	kSfxTARGUP7  =  35,  // unused - similar to TARGUP6, bit more sustained
 	kSfxTRGSPIN1 =  36,  // unused
-	kSfxTRGSPIN2 =  37,  // unused
-	kSfxTRGSPIN3 =  38,  // unused
+	kSfxTRGSPIN2 =  37,  // unused - similar to kSfxTRGSPIN1, bit faster
+	kSfxTRGSPIN3 =  38,  // unused - ugly sound
 	kSfxDRIPPY4  =  39,  // unused
-	kSfxDRIPPY10 =  40,
-	kSfxDRIPPY1  =  41,
-	kSfxDRIPPY2  =  42,
-	kSfxDRIPPY6  =  43,
-	kSfxDRIPPY7  =  44,
+	kSfxDRIPPY10 =  40,  // used only once - CT05
+	kSfxDRIPPY1  =  41,  // used only once - CT05
+	kSfxDRIPPY2  =  42,  // used only once - CT05
+	kSfxDRIPPY6  =  43,  // used only once - CT05
+	kSfxDRIPPY7  =  44,  // used only once - CT05
 	kSfxPSAMB6   =  45,  //           - Looping
-	kSfxRTONE3   =  46,  //           - Looping
-	kSfxSCANNER1 =  47,
-	kSfxSCANNER2 =  48,
-	kSfxSCANNER3 =  49,
-	kSfxSCANNER4 =  50,
-	kSfxSCANNER5 =  51,
-	kSfxSCANNER6 =  52,
-	kSfxSCANNER7 =  53,
+	kSfxRTONE3   =  46,  //           - Looping (Guzza's Office PS04) - Used once
+	kSfxSCANNER1 =  47,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER2 =  48,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER3 =  49,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER4 =  50,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER5 =  51,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER6 =  52,  // used only twice. In PS04 and UG02 (Izo's stash)
+	kSfxSCANNER7 =  53,  // used only twice. In PS04 and UG02 (Izo's stash)
 	kSfxCTRAIN1  =  54,  //           - Looping
-	kSfxCTAMBL1  =  55,  //           - Looping
+	kSfxCTAMBL1  =  55,  //           - Looping (CT01, CT12) - Used twice
 	kSfxCTAMBR1  =  56,  //           - Looping
 	kSfxSTEAM3   =  57,
 	kSfxSTEAM6A  =  58,
-	kSfxNEON5    =  59,
-	kSfxNEON6    =  60,
+	kSfxNEON5    =  59,  // used three times. In CT01, CT12, DR03.
+	kSfxNEON6    =  60,  // used three times. In CT01, CT12, HC02.
 	kSfxDISH1    =  61,
 	kSfxDISH2    =  62,
 	kSfxDISH3    =  63,
@@ -3636,117 +3636,117 @@ enum SFXSounds {
 	kSfxSPIN2A   =  67,
 	kSfxSPIN2B   =  68,
 	kSfxSPIN3A   =  69,
-	kSfxBOOLOOP2 =  70,  //           - Looping
+	kSfxBOOLOOP2 =  70,  //           - Looping (Hall of Mirrors HF04) - Used once
 	kSfxBRBED5   =  71,  //           - Looping
 	kSfxSWEEP2   =  72,
 	kSfxSWEEP3   =  73,
 	kSfxSWEEP4   =  74,
-	kSfxWINDLOP8 =  75,  //           - Looping
-	kSfxPETDEAD1 =  76,
-	kSfxPETDEAD3 =  77,
-	kSfxPETDEAD4 =  78,
-	kSfxPETDEAD5 =  79,
+	kSfxWINDLOP8 =  75,  //           - Looping (Runciter's interior RC02) - Used once
+	kSfxPETDEAD1 =  76,  // used only once - RC02
+	kSfxPETDEAD3 =  77,  // used only once - RC02
+	kSfxPETDEAD4 =  78,  // used only once - RC02
+	kSfxPETDEAD5 =  79,  // used only once - CT05 (Chinatown Warehouse)
 	kSfxRCAMB1   =  80,  // unused    - Looping
 	kSfxRCAMBR1  =  81,  //           - Looping
 	kSfxRCCARBY1 =  82,
 	kSfxRCCARBY2 =  83,
 	kSfxRCCARBY3 =  84,
-	kSfxRCRAIN1  =  85,  //           - Looping
+	kSfxRCRAIN1  =  85,  //           - Looping (Runciter's interior RC02) - Used once
 	kSfxRCTALK1  =  86,  // unused    - Looping?
 	kSfxSIREN2   =  87,
 	kSfxRCTALK2  =  88,  // unused    - Looping?
 	kSfxRCTALK3  =  89,  // unused    - Looping?
 	kSfxPSDOOR1  =  90,
 	kSfxPSDOOR2  =  91,
-	kSfxPSPA6    =  92,
-	kSfxPSPA7    =  93,
-	kSfxPSPA8    =  94,
+	kSfxPSPA6    =  92,  // used only once - PS03 (Ground Level)
+	kSfxPSPA7    =  93,  // used only once - PS03 (Ground Level)
+	kSfxPSPA8    =  94,  // used only once - PS03 (Ground Level)
 	kSfxBOILPOT2 =  95,  //           - Looping
-	kSfxKTCHRAIN =  96,  //           - Looping
+	kSfxKTCHRAIN =  96,  //           - Looping - (Zuben's Kitchen CT02) - Used once
 	kSfxNEON7    =  97,
-	kSfxBIGFAN2  =  98,  //           - Looping
+	kSfxBIGFAN2  =  98,  //           - Looping (DR01, DR02) - Used twice
 	kSfxROOFAIR1 =  99,  //           - Looping
 	kSfxROOFRMB1 = 100,  //           - Looping
 	kSfxROOFRAN1 = 101,  //           - Looping
-	kSfxROOFLIT1 = 102,
+	kSfxROOFLIT1 = 102,  // used only twice. In MA01 (McCoy's roof) and MA05 (McCoy's balcony)
 	kSfxRAINAWN1 = 103,  //           - Looping
-	kSfxAPRTAMB5 = 104,  //           - Looping
+	kSfxAPRTAMB5 = 104,  //           - Looping (MA02, MA04) - Used twice
 	kSfxCTRUNOFF = 105,  //           - Looping
-	kSfxCTROOFL1 = 106,  //           - Looping
-	kSfxCTROOFR1 = 107,  //           - Looping
-	kSfxDRAMB4   = 108,  //           - Looping
+	kSfxCTROOFL1 = 106,  //           - Looping (Chinatown Warehouse CT05) - Used once
+	kSfxCTROOFR1 = 107,  //           - Looping (Chinatown Warehouse CT05) - Used once
+	kSfxDRAMB4   = 108,  //           - Looping (Crazylegs underground basement HF07) - Used once
 	kSfxBRBED3   = 109,  //           - Looping
-	kSfxRESPRTR1 = 110,  //           - Looping
-	kSfxDRAMB5   = 111,  //           - Looping
-	kSfxFACTAMB2 = 112,  //             Looping
+	kSfxRESPRTR1 = 110,  //           - Looping (Chew's EyeWorld DR03) - Used once
+	kSfxDRAMB5   = 111,  //           - Looping (Dektora's Backstage NR06, NR07) - Used twice
+	kSfxFACTAMB2 = 112,  //             Looping (DR01, HF07) - Used twice 
 	kSfxDRRAIN1  = 113,  // unused    - Looping
-	kSfxSPINUP1  = 114,  // elevator sound
-	kSfxSPINOPN3 = 115,  // unused
+	kSfxSPINUP1  = 114,  // used only in elevator MA06 (Name implies use for Spinner taking off)
+	kSfxSPINOPN3 = 115,  // unused (spinner door open)
 	kSfxSPINOPN4 = 116,
 	kSfxCARUP3   = 117,
 	kSfxCARDOWN3 = 118,
 	kSfxSPINCLS1 = 119,
-	kSfxSERVOU1  = 120,
-	kSfxSERVOD1  = 121,  // used only twice; 1 is unused (shot doll "General")
-	kSfxMTLHIT1  = 122,
+	kSfxSERVOU1  = 120,  // used only in PS01 (Police HQ Roof)
+	kSfxSERVOD1  = 121,  // used only twice; 1 is unused (shot doll "General"), other is in PS01
+	kSfxMTLHIT1  = 122,  // used three times; MA01 (Roof), PS01 (Roof), NR11 (Loft)
 	kSfxSPNBEEP9 = 123,
-	kSfxPRISAMB3 = 124,  //           - Looping
-	kSfxPRISSLM1 = 125,
-	kSfxPRISSLM2 = 126,
-	kSfxPRISSLM3 = 127,
-	kSfxSPINAMB2 = 128,  // unused    - Looping?
-	kSfxSPNAMB1  = 129,  // unused    - Looping?
-	kSfxSPNBEEP2 = 130,
-	kSfxSPNBEEP3 = 131,
-	kSfxSPNBEEP4 = 132,
-	kSfxSPNBEEP5 = 133,
-	kSfxSPNBEEP6 = 134,
-	kSfxSPNBEEP7 = 135,
-	kSfxSPNBEEP8 = 136,
-	kSfxPRISAMB1 = 137,  //           - Looping
-	kSfxBRBED5X  = 138,  //           - Looping
+	kSfxPRISAMB3 = 124,  //           - Looping (Lockup PS09) - Used once
+	kSfxPRISSLM1 = 125,  // used once in PS09
+	kSfxPRISSLM2 = 126,  // used once in PS09
+	kSfxPRISSLM3 = 127,  // used once in PS09
+	kSfxSPINAMB2 = 128,  // unused - Restored in spinner.cpp (At "Select Destination" message)
+	kSfxSPNAMB1  = 129,  // unused    - Looping? Ugly Sound
+	kSfxSPNBEEP2 = 130,  // used once in UG02
+	kSfxSPNBEEP3 = 131,  // used only twice; UG02 and KIA Save
+	kSfxSPNBEEP4 = 132,  // used only twice; UG02 and MA04
+	kSfxSPNBEEP5 = 133,  // used once in UG02
+	kSfxSPNBEEP6 = 134,  // used only twice; UG02 and KIA Save
+	kSfxSPNBEEP7 = 135,  // used in UG02, and KIA Save, KIA Settings
+	kSfxSPNBEEP8 = 136,  // used once in UG02
+	kSfxPRISAMB1 = 137,  //           - Looping (Lockup PS09) - Used once
+	kSfxBRBED5X  = 138,  //           - Looping (Lockup PS09) - Used once
 	kSfxLABAMB1  = 139,  // unused    - Looping?
 	kSfxLABAMB2  = 140,  // unused    - Looping?
 	kSfxLABAMB3  = 141,  //           - Looping
-	kSfxTUBES1   = 142,
+	kSfxTUBES1   = 142,  // used once in PS07 (Lab)
 	kSfxTUBES2   = 143,  // unused
 	kSfxTUBES3   = 144,  // unused
-	kSfxTUBES4   = 145,
-	kSfxLABMISC1 = 146,
+	kSfxTUBES4   = 145,  // used once in PS07 (Lab)
+	kSfxLABMISC1 = 146,  // used twice; in PS07, TB05
 	kSfxLABMISC2 = 147,
 	kSfxLABMISC3 = 148,
 	kSfxLABMISC4 = 149,
 	kSfxLABMISC5 = 150,
 	kSfxLABMISC6 = 151,
-	kSfxLABMISC7 = 152,  // used only once
-	kSfxLABMISC8 = 153,  // used only once
-	kSfxLABMISC9 = 154,  // used only once
-	kSfxLABBUZZ1 = 155,
-	kSfxPAGE1    = 156,
-	kSfxPAGE2    = 157,
-	kSfxPAGE3    = 158,
-	kSfxUPTARG3  = 159,
-	kSfxCEMENTL1 = 160,
-	kSfxCEMENTL2 = 161,
-	kSfxCEMENTL3 = 162,
-	kSfxCEMENTL4 = 163,
-	kSfxCEMENTL5 = 164,
-	kSfxCEMENTR1 = 165,
-	kSfxCEMENTR2 = 166,
-	kSfxCEMENTR3 = 167,
-	kSfxCEMENTR4 = 168,
-	kSfxCEMENTR5 = 169,
-	kSfxCEMWETL1 = 170,
-	kSfxCEMWETL2 = 171,
-	kSfxCEMWETL3 = 172,
-	kSfxCEMWETL4 = 173,
-	kSfxCEMWETL5 = 174,
-	kSfxCEMWETR1 = 175,
-	kSfxCEMWETR2 = 176,
-	kSfxCEMWETR3 = 177,
-	kSfxCEMWETR4 = 178,
-	kSfxCEMWETR5 = 179,
-	kSfxGARBAGE4 = 180,  // used only once
+	kSfxLABMISC7 = 152,  // used once in PS07 (Lab)
+	kSfxLABMISC8 = 153,  // used once in PS07 (Lab)
+	kSfxLABMISC9 = 154,  // used once in PS07 (Lab)
+	kSfxLABBUZZ1 = 155,  // used in PS07 (restored), PS10 (Buzzer fix), PS15 (removed)
+	kSfxPAGE1    = 156,  // used twice; in PS15 (Sgt Walls Armory), PS05 (Mainframe Hall)
+	kSfxPAGE2    = 157,  // used twice; in PS15 (Sgt Walls Armory), PS05 (Mainframe Hall)
+	kSfxPAGE3    = 158,  // used twice; in PS15 (Sgt Walls Armory), PS05 (Mainframe Hall)
+	kSfxUPTARG3  = 159,  // used in PS10 (for Maze Targets)
+	kSfxCEMENTL1 = 160,  // footsteps sound (left) (also used in DR06 for mannequin head)
+	kSfxCEMENTL2 = 161,  // footsteps sound (left) (also used in DR06 for mannequin head)
+	kSfxCEMENTL3 = 162,  // footsteps sound (left)
+	kSfxCEMENTL4 = 163,  // footsteps sound (left)
+	kSfxCEMENTL5 = 164,  // footsteps sound (left)
+	kSfxCEMENTR1 = 165,  // footsteps sound (right)
+	kSfxCEMENTR2 = 166,  // footsteps sound (right)
+	kSfxCEMENTR3 = 167,  // footsteps sound (right)
+	kSfxCEMENTR4 = 168,  // footsteps sound (right)
+	kSfxCEMENTR5 = 169,  // footsteps sound (right)
+	kSfxCEMWETL1 = 170,  // footsteps sound (Wet, left)
+	kSfxCEMWETL2 = 171,  // footsteps sound (Wet, left)
+	kSfxCEMWETL3 = 172,  // footsteps sound (Wet, left)
+	kSfxCEMWETL4 = 173,  // footsteps sound (Wet, left)
+	kSfxCEMWETL5 = 174,  // footsteps sound (Wet, left)
+	kSfxCEMWETR1 = 175,  // footsteps sound (Wet, right)
+	kSfxCEMWETR2 = 176,  // footsteps sound (Wet, right)
+	kSfxCEMWETR3 = 177,  // footsteps sound (Wet, right)
+	kSfxCEMWETR4 = 178,  // footsteps sound (Wet, right)
+	kSfxCEMWETR5 = 179,  // footsteps sound (Wet, right)
+	kSfxGARBAGE4 = 180,  // used once in CT04 (Chinatown Back Alley with big dumpster)
 	kSfx67_0470R = 181,
 	kSfx67_0480R = 182,
 	kSfx67_0500R = 183,
@@ -3769,44 +3769,44 @@ enum SFXSounds {
 	kSfxBIGPOT4  = 200,  // unused
 	kSfxMTLDOOR2 = 201,
 	kSfxPOTSPL4  = 202,  // unused
-	kSfxPOTSPL5  = 203,
-	kSfxBIGPOT3  = 204,  // used only twice
+	kSfxPOTSPL5  = 203,  // used once in CT02 - also in (cut) ShotAtAndHit() code of Generic Walkers A, B, C 
+	kSfxBIGPOT3  = 204,  // used only twice; CT02 and DR06 (mannequin head broken)
 	kSfxCTDRONE1 = 205,
 	kSfxZUBLAND1 = 206,
-	kSfxZUBDEAD1 = 207,
-	kSfxELDOORO2 = 208,
-	kSfxELDOORC1 = 209,
-	kSfxELEAMB3  = 210,  //           - Looping
-	kSfxFOUNTAIN = 211,  //           - Looping
-	kSfxBELLY1   = 212,
-	kSfxBELLY2   = 213,
-	kSfxBELLY3   = 214,
-	kSfxBELLY4   = 215,
-	kSfxBELLY5   = 216,
-	kSfxHUMMER1  = 217,  //           - Looping and non-looping
-	kSfxHUMMER2  = 218,
-	kSfxHUMMER3  = 219,  //           - Looping
-	kSfxHUMMER4  = 220,
-	kSfxPUNCH1   = 221,
-	kSfxKICK1    = 222,
-	kSfxKICK2    = 223,
+	kSfxZUBDEAD1 = 207,  // used only in Zuben AI
+	kSfxELDOORO2 = 208,  // used in MA06, PS02
+	kSfxELDOORC1 = 209,  // used in MA06, PS02
+	kSfxELEAMB3  = 210,  //           - Looping used in MA06, PS02
+	kSfxFOUNTAIN = 211,  //           - Looping used in TB02, TB03
+	kSfxBELLY1   = 212,  // used in TB02, TB03, TB07
+	kSfxBELLY2   = 213,  // used in TB02, TB03, TB07
+	kSfxBELLY3   = 214,  // used in TB02, TB03, TB07
+	kSfxBELLY4   = 215,  // used in TB02, TB03, TB07
+	kSfxBELLY5   = 216,  // used in TB02, TB03, TB07
+	kSfxHUMMER1  = 217,  //           - Looping (DR04) and non-looping (TB05)
+	kSfxHUMMER2  = 218,  // used once in TB05
+	kSfxHUMMER3  = 219,  //           - Looping (DR01, DR02, TB05)
+	kSfxHUMMER4  = 220,  // used once in TB05
+	kSfxPUNCH1   = 221,  // used only in Sadik AI
+	kSfxKICK1    = 222,  // used only in Sadik and holloway AI
+	kSfxKICK2    = 223,  // used only in Sadik AI
 	kSfxBANG1    = 224,
 	kSfxBANG2    = 225,
-	kSfxBANG3    = 226,
+	kSfxBANG3    = 226,  // used twice; UG03 and UG05
 	kSfxBANG4    = 227,
 	kSfxBANG5    = 228,
 	kSfxBANG6    = 229,
-	kSfxGLOOP1   = 230,
+	kSfxGLOOP1   = 230,  // used only in UG10
 	kSfxGLOOP2   = 231,  // unused
 	kSfxGLOOP3   = 232,  // unused
-	kSfxGLOOP4   = 233,
+	kSfxGLOOP4   = 233,  // used only in UG10
 	kSfxPIPER1   = 234,
 	kSfxSQUEAK1  = 235,
-	kSfxTB5LOOP1 = 236,  //           - Looping
-	kSfxTB5LOOP2 = 237,  //           - Looping
-	kSfxHCBELL1  = 238,
+	kSfxTB5LOOP1 = 236,  //           - Looping (TB05, TB06)
+	kSfxTB5LOOP2 = 237,  //           - Looping (TB05, TB06)
+	kSfxHCBELL1  = 238,  // used twice; HC02 and HC03
 	kSfxHCSING1  = 239,  // unused
-	kSfxINDFLUT1 = 240,
+	kSfxINDFLUT1 = 240,  // used twice; HC02 and HC03
 	kSfxHCLOOP1  = 241,  //           - Looping
 	kSfxHCANM8   = 242,
 	kSfxHCANM2   = 243,
@@ -3817,7 +3817,7 @@ enum SFXSounds {
 	kSfxHCANM7   = 248,
 	kSfxHCANM1   = 249,
 	kSfxDOGTOY3  = 250,  // unused
-	kSfxBARAMB2  = 251,  // unused
+	kSfxBARAMB2  = 251,  // unused - identical to kSfxBARAMB1
 	kSfxBARSFX1  = 252,
 	kSfxBARSFX2  = 253,  // unused
 	kSfxBARSFX3  = 254,
@@ -3829,8 +3829,8 @@ enum SFXSounds {
 	kSfxCLINK2   = 260,
 	kSfxCLINK3   = 261,
 	kSfxCLINK4   = 262,
-	kSfxDOGBARK1 = 263,
-	kSfxDOGBARK3 = 264,
+	kSfxDOGBARK1 = 263,  // used only in Maggie AI
+	kSfxDOGBARK3 = 264,  // used only in Maggie AI
 	kSfxDOGBITE1 = 265,  // unused
 	kSfxDOGCRY1  = 266,  // unused
 	kSfxDOGCRY2  = 267,  // unused
@@ -3838,36 +3838,36 @@ enum SFXSounds {
 	kSfxDOGFAR2  = 269,  // unused
 	kSfxDOGGUN1  = 270,  // unused
 	kSfxDOGGUN2  = 271,  // unused
-	kSfxDOGHURT1 = 272,
+	kSfxDOGHURT1 = 272,  // used only in Maggie AI
 	kSfxDOGMAD1  = 273,  // unused
 	kSfxDOGNEED1 = 274,  // unused
 	kSfxDOGNEED2 = 275,  // unused
-	kSfxDOGTAIL1 = 276,
+	kSfxDOGTAIL1 = 276,  // used only in Maggie AI
 	kSfxDOGTAIL2 = 277,  // unused
 	kSfxDOGTOY1  = 278,  // unused
 	kSfxDOGTOY2  = 279,  // unused
 	kSfxBARAMB1  = 280,  //           - Looping
-	kSfx14KBEEP1 = 281,
+	kSfx14KBEEP1 = 281,  // used only in HC03
 	kSfxTBBEEP1  = 282,  // unused
-	kSfxTBDOOR1  = 283,
+	kSfxTBDOOR1  = 283,  // used twice; TB05, TB06
 	kSfxTBDOOR2  = 284,  // unused
-	kSfxTBLOOP1  = 285,  //           - Looping
-	kSfxTRUCKBY1 = 286,
-	kSfxCHEVBY1  = 287,
-	kSfxFIREBD1  = 288,  //           - Looping
-	kSfxGLASSY1  = 289,
-	kSfxGLASSY2  = 290,
+	kSfxTBLOOP1  = 285,  //           - Looping (TB06)
+	kSfxTRUCKBY1 = 286,  // used twice; BB01, RC03
+	kSfxCHEVBY1  = 287,  // used only in RC03 (outside Bullet Bob's)
+	kSfxFIREBD1  = 288,  //           - Looping (DR04, UG06)
+	kSfxGLASSY1  = 289,  // used only in BB10 (Bradubury Bookcase Before Rooftop)
+	kSfxGLASSY2  = 290,  // used only in BB10
 	kSfxBBDRIP1  = 291,
 	kSfxBBDRIP2  = 292,
 	kSfxBBDRIP3  = 293,
 	kSfxBBDRIP4  = 294,
 	kSfxBBDRIP5  = 295,
 	kSfxRADIATR1 = 296,  // unused
-	kSfxRADIATR2 = 297,
-	kSfxRADIATR3 = 298,
-	kSfxRADIATR4 = 299,
-	kSfxJESTMOV1 = 300,
-	kSfxINDXPLOD = 301,
+	kSfxRADIATR2 = 297,  // used only in BB09 (Bradubury above bathroom)
+	kSfxRADIATR3 = 298,  // used only in BB09
+	kSfxRADIATR4 = 299,  // used only in BB09
+	kSfxJESTMOV1 = 300,  // used only in DR06
+	kSfxINDXPLOD = 301,  // used only in DR04
 	kSfxJESTMUS1 = 302,  // unused
 	kSfxBBGRN1   = 303,
 	kSfxBBGRN2   = 304,
diff --git a/engines/bladerunner/outtake.cpp b/engines/bladerunner/outtake.cpp
index 03192d69bf..e63fe5f457 100644
--- a/engines/bladerunner/outtake.cpp
+++ b/engines/bladerunner/outtake.cpp
@@ -27,6 +27,10 @@
 #include "bladerunner/subtitles.h"
 #include "bladerunner/vqa_player.h"
 #include "bladerunner/time.h"
+#include "bladerunner/ambient_sounds.h"
+#include "bladerunner/audio_player.h"
+#include "bladerunner/game_constants.h"
+#include "bladerunner/game_info.h"
 
 #include "common/debug.h"
 #include "common/events.h"
@@ -80,6 +84,10 @@ void OuttakePlayer::play(const Common::String &name, bool noLocalization, int co
 		int frame = vqaPlayer.update();
 		blit(_surfaceVideo, _vm->_surfaceFront); // This helps to make subtitles disappear properly, if the video is rendered in separate surface and then pushed to the front surface
 		if (frame == -3) { // end of video
+			if (_vm->_cutContent && resName.equals("FLYTRU_E.VQA")) {
+				_vm->_ambientSounds->removeAllNonLoopingSounds(true);
+				_vm->_ambientSounds->removeAllLoopingSounds(1u);
+			}
 			break;
 		}
 
@@ -87,9 +95,52 @@ void OuttakePlayer::play(const Common::String &name, bool noLocalization, int co
 			_vm->_subtitles->loadOuttakeSubsText(resNameNoVQASuffix, frame);
 			_vm->_subtitles->tickOuttakes(_vm->_surfaceFront);
 			_vm->blitToScreen(_vm->_surfaceFront);
+			if (_vm->_cutContent && resName.equals("FLYTRU_E.VQA")) {
+				// This FLYTRU_E outtake has 150 frames
+				_vm->_ambientSounds->tick();
+				switch (frame) {
+				case 0:
+					_vm->_ambientSounds->addLoopingSound(kSfxLABAMB1,   95, 0, 0u);
+					_vm->_ambientSounds->addLoopingSound(kSfxROOFAIR1, 100, 0, 0u);
+					_vm->_ambientSounds->addLoopingSound(kSfxPSPA6,     70, 0, 1u);
+					break;
+				case 6:
+					_vm->_ambientSounds->playSound(kSfxSPIN1A, 100, 60, 100, 99);
+					break;
+				case 12:
+					_vm->_ambientSounds->playSound(kSfxSWEEP3, 55, 60, 100, 89);
+					break;
+				case 28:
+					if (_vm->_rnd.getRandomNumberRng(1, 5) < 4) 
+						_vm->_ambientSounds->playSound(kSfxTHNDER3, 82, -20, -20, 99);
+					break;
+				case 34:
+					_vm->_audioPlayer->playAud(_vm->_gameInfo->getSfxTrack(kSfxMUSVOL8), 22, 30, 30, 99, 0, Audio::Mixer::kMusicSoundType);
+					break;
+				case 52:
+					if (_vm->_rnd.getRandomNumberRng(1, 4) < 4) 
+						_vm->_ambientSounds->playSound(kSfxTHNDR3, 90, 10, 10, 89);
+					break;
+				case 82:
+					if (_vm->_rnd.getRandomNumberRng(1, 5) < 5) 
+						_vm->_ambientSounds->playSound(kSfxSIREN2, 62, -60, 45, 99);
+					break;
+				case 105:
+					if (_vm->_rnd.getRandomNumberRng(1, 5) < 4) 
+						_vm->_ambientSounds->playSound(kSfxTHNDER4, 95, -20, -20, 99);
+					break;
+				}
+			}
 		}
 	}
 
+	if ((_vm->_vqaStopIsRequested || _vm->shouldQuit())
+		&& _vm->_cutContent && resName.equals("FLYTRU_E.VQA")) {
+		_vm->_ambientSounds->removeAllNonLoopingSounds(true);
+		_vm->_ambientSounds->removeAllLoopingSounds(0u);
+		_vm->_audioPlayer->stopAll();
+	}
+
 	_vm->_vqaIsPlaying = false;
 	_vm->_vqaStopIsRequested = false;
 	vqaPlayer.close();
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index a94a8f873d..b5a8cb4902 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -306,16 +306,15 @@ void SceneScriptMA01::PlayerWalkedOut() {
 
 	if (!Game_Flag_Query(kFlagMA01toMA06)) {
 		if (Global_Variable_Query(kVariableChapter) == 1) {
-			Outtake_Play(kOuttakeTowards2, true, -1);
-			Outtake_Play(kOuttakeInside1,  true, -1);
-//			// Commented out - Has no sound - TODO can we use external SFX for it?
-//			if (_vm->_cutContent) {
-//				Outtake_Play(kOuttakeFlyThrough,  true, -1);
-//			}
-			Outtake_Play(kOuttakeTowards1, true, -1);
+			if (_vm->_cutContent && (Random_Query(1, 2) == 1)) {
+				Outtake_Play(kOuttakeFlyThrough, true, -1);
+			} else {
+				Outtake_Play(kOuttakeTowards2, true, -1);
+				Outtake_Play(kOuttakeInside1, true, -1);
+				Outtake_Play(kOuttakeTowards1, true, -1);
+			}
 		}
-#if BLADERUNNER_ORIGINAL_BUGS
-#else
+#if !BLADERUNNER_ORIGINAL_BUGS
 		else {
 			// Acts 2, 3 - should still use a spinner fly-through transition
 			if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
@@ -323,7 +322,7 @@ void SceneScriptMA01::PlayerWalkedOut() {
 				Outtake_Play(kOuttakeAway1,    true, -1); // available in Acts 2, 3
 			}
 		}
-#endif // BLADERUNNER_ORIGINAL_BUGS
+#endif // !BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp
index 440ec96063..cc76a0485a 100644
--- a/engines/bladerunner/script/scene/ps01.cpp
+++ b/engines/bladerunner/script/scene/ps01.cpp
@@ -323,10 +323,13 @@ void SceneScriptPS01::PlayerWalkedOut() {
 
 	if (!Game_Flag_Query(kflagPS01toPS02)) {
 		if (Global_Variable_Query(kVariableChapter) == 1) {
-			Outtake_Play(kOuttakeTowards3, true, -1);
+			if (_vm->_cutContent && (Random_Query(1, 8) == 1)) {
+				Outtake_Play(kOuttakeFlyThrough, true, -1);
+			} else {
+				Outtake_Play(kOuttakeTowards3, true, -1);
+			}
 		}
-#if BLADERUNNER_ORIGINAL_BUGS
-#else
+#if !BLADERUNNER_ORIGINAL_BUGS
 		else {
 			// Acts 2, 3 - should still use a spinner fly-through transition
 			if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
@@ -335,7 +338,7 @@ void SceneScriptPS01::PlayerWalkedOut() {
 				Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3
 			}
 		}
-#endif // BLADERUNNER_ORIGINAL_BUGS
+#endif // !BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 




More information about the Scummvm-git-logs mailing list