aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanasis Antoniou2019-04-07 17:35:47 +0300
committerThanasis Antoniou2019-04-07 17:37:40 +0300
commitb3e4aa146463b13b5524877328993f66e0b48f1a (patch)
tree128485b759d7849d31c38fd4ed8c5db940769efd
parent07f806697d73d746807e105ed9b876ddb12a81aa (diff)
downloadscummvm-rg350-b3e4aa146463b13b5524877328993f66e0b48f1a.tar.gz
scummvm-rg350-b3e4aa146463b13b5524877328993f66e0b48f1a.tar.bz2
scummvm-rg350-b3e4aa146463b13b5524877328993f66e0b48f1a.zip
BLADERUNNER: Bugfix for Early Q music fadeout
And an additional bug fix for gravel footstep sounds And I added some comments for marking the unused SFX sounds in game_constants.h
-rw-r--r--engines/bladerunner/game_constants.h380
-rw-r--r--engines/bladerunner/script/ai/maggie.cpp1
-rw-r--r--engines/bladerunner/script/scene/nr04.cpp13
-rw-r--r--engines/bladerunner/set.cpp73
-rw-r--r--engines/bladerunner/set.h4
5 files changed, 253 insertions, 218 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index c01537e1fd..df934e61a2 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1408,9 +1408,9 @@ enum Scenes {
kScenePS02 = 66, // Police Station - Elevator
kScenePS03 = 67, // Police Station - Ground floor
kScenePS04 = 68, // Police Station - Guzza's Office
- kScenePS05 = 69, // Police Station - Mainframe & Shoting range hallway
+ kScenePS05 = 69, // Police Station - Mainframe & Shooting range hallway
kScenePS06 = 70, // Police Station - ESPER room
- kScenePS07 = 71, // Police Station - Labratory
+ kScenePS07 = 71, // Police Station - Laboratory
kScenePS09 = 72, // Police Station - Lockup
kScenePS10 = 73, // Police Station - Shooting range 1
kScenePS11 = 74, // Police Station - Shooting range 2
@@ -1423,7 +1423,7 @@ enum Scenes {
kSceneRC04 = 81, // Bullet Bob's Runner Surplus - Inside
kSceneTB02 = 82, // Tyrell Building - Reception
kSceneTB03 = 83, // Tyrell Building - Reception back
- kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - Iutside
+ kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - Outside
kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - Inside
kSceneUG01 = 86, // Underground - Under RC03
kSceneUG02 = 87, // Underground - Under HC03
@@ -2342,50 +2342,50 @@ enum SFXSounds {
kSfxCROSLOCK = 0,
kSfxSTEAM1 = 1,
kSfxSPINNY1 = 2,
- kSfxFEMHURT1 = 3,
+ kSfxFEMHURT1 = 3, // used only 3 times; 2 of them are bugs
kSfxFEMHURT2 = 4,
- kSfxGUNMISS1 = 5,
- kSfxGUNMISS2 = 6,
- kSfxGUNMISS3 = 7,
- kSfxGUNMISS4 = 8,
- kSfxHITTARG1 = 9,
- kSfxHITTARG2 = 10,
- kSfxHITTARG3 = 11,
+ kSfxGUNMISS1 = 5, // unused
+ kSfxGUNMISS2 = 6, // unused
+ kSfxGUNMISS3 = 7, // unused
+ kSfxGUNMISS4 = 8, // unused
+ kSfxHITTARG1 = 9, // unused
+ kSfxHITTARG2 = 10, // unused
+ kSfxHITTARG3 = 11, // unused
kSfxLGCAL1 = 12,
- kSfxLGCAL2 = 13,
+ kSfxLGCAL2 = 13, // used only twice
kSfxLGCAL3 = 14,
- kSfxMDCAL1 = 15,
- kSfxMDCAL2 = 16,
- kSfxRICO1 = 17,
- kSfxRICO2 = 18,
- kSfxRICO3 = 19,
- kSfxRICOCHT1 = 20,
- kSfxRICOCHT2 = 21,
- kSfxRICOCHT3 = 22,
- kSfxRICOCHT4 = 23,
- kSfxRICOCHT5 = 24,
- kSfxSMCAL1 = 25,
- kSfxSMCAL2 = 26,
+ kSfxMDCAL1 = 15, // unused
+ kSfxMDCAL2 = 16, // unused
+ kSfxRICO1 = 17, // unused
+ kSfxRICO2 = 18, // unused
+ kSfxRICO3 = 19, // used only once
+ kSfxRICOCHT1 = 20, // unused
+ kSfxRICOCHT2 = 21, // unused
+ kSfxRICOCHT3 = 22, // unused
+ kSfxRICOCHT4 = 23, // unused
+ kSfxRICOCHT5 = 24, // unused
+ kSfxSMCAL1 = 25, // unused
+ kSfxSMCAL2 = 26, // unused
kSfxSMCAL3 = 27,
- kSfxSMCAL4 = 28,
+ kSfxSMCAL4 = 28, // unused
kSfxTARGUP1 = 29,
- kSfxTARGUP2 = 30,
- kSfxTARGUP3 = 31,
+ kSfxTARGUP2 = 30, // unused
+ kSfxTARGUP3 = 31, // used only once
kSfxTARGUP4 = 32,
kSfxTARGUP5 = 33,
kSfxTARGUP6 = 34,
- kSfxTARGUP7 = 35,
- kSfxTRGSPIN1 = 36,
- kSfxTRGSPIN2 = 37,
- kSfxTRGSPIN3 = 38,
- kSfxDRIPPY4 = 39,
+ kSfxTARGUP7 = 35, // unused
+ kSfxTRGSPIN1 = 36, // unused
+ kSfxTRGSPIN2 = 37, // unused
+ kSfxTRGSPIN3 = 38, // unused
+ kSfxDRIPPY4 = 39, // unused
kSfxDRIPPY10 = 40,
kSfxDRIPPY1 = 41,
kSfxDRIPPY2 = 42,
kSfxDRIPPY6 = 43,
kSfxDRIPPY7 = 44,
- kSfxPSAMB6 = 45,
- kSfxRTONE3 = 46,
+ kSfxPSAMB6 = 45, // - Looping
+ kSfxRTONE3 = 46, // - Looping
kSfxSCANNER1 = 47,
kSfxSCANNER2 = 48,
kSfxSCANNER3 = 49,
@@ -2393,9 +2393,9 @@ enum SFXSounds {
kSfxSCANNER5 = 51,
kSfxSCANNER6 = 52,
kSfxSCANNER7 = 53,
- kSfxCTRAIN1 = 54,
- kSfxCTAMBL1 = 55,
- kSfxCTAMBR1 = 56,
+ kSfxCTRAIN1 = 54, // - Looping
+ kSfxCTAMBL1 = 55, // - Looping
+ kSfxCTAMBR1 = 56, // - Looping
kSfxSTEAM3 = 57,
kSfxSTEAM6A = 58,
kSfxNEON5 = 59,
@@ -2404,71 +2404,71 @@ enum SFXSounds {
kSfxDISH2 = 62,
kSfxDISH3 = 63,
kSfxDISH4 = 64,
- kSfxDISH5 = 65,
+ kSfxDISH5 = 65, // unused
kSfxSPIN1A = 66,
kSfxSPIN2A = 67,
kSfxSPIN2B = 68,
kSfxSPIN3A = 69,
- kSfxBOOLOOP2 = 70,
- kSfxBRBED5 = 71,
+ kSfxBOOLOOP2 = 70, // - Looping
+ kSfxBRBED5 = 71, // - Looping
kSfxSWEEP2 = 72,
kSfxSWEEP3 = 73,
kSfxSWEEP4 = 74,
- kSfxWINDLOP8 = 75,
+ kSfxWINDLOP8 = 75, // - Looping
kSfxPETDEAD1 = 76,
kSfxPETDEAD3 = 77,
kSfxPETDEAD4 = 78,
kSfxPETDEAD5 = 79,
- kSfxRCAMB1 = 80,
- kSfxRCAMBR1 = 81,
+ kSfxRCAMB1 = 80, // unused - Looping
+ kSfxRCAMBR1 = 81, // - Looping
kSfxRCCARBY1 = 82,
kSfxRCCARBY2 = 83,
kSfxRCCARBY3 = 84,
- kSfxRCRAIN1 = 85,
- kSfxRCTALK1 = 86,
+ kSfxRCRAIN1 = 85, // - Looping
+ kSfxRCTALK1 = 86, // unused - Looping?
kSfxSIREN2 = 87,
- kSfxRCTALK2 = 88,
- kSfxRCTALK3 = 89,
+ kSfxRCTALK2 = 88, // unused - Looping?
+ kSfxRCTALK3 = 89, // unused - Looping?
kSfxPSDOOR1 = 90,
kSfxPSDOOR2 = 91,
kSfxPSPA6 = 92,
kSfxPSPA7 = 93,
kSfxPSPA8 = 94,
- kSfxBOILPOT2 = 95,
- kSfxKTCHRAIN = 96,
+ kSfxBOILPOT2 = 95, // - Looping
+ kSfxKTCHRAIN = 96, // - Looping
kSfxNEON7 = 97,
- kSfxBIGFAN2 = 98,
- kSfxROOFAIR1 = 99,
- kSfxROOFRMB1 = 100,
- kSfxROOFRAN1 = 101,
+ kSfxBIGFAN2 = 98, // - Looping
+ kSfxROOFAIR1 = 99, // - Looping
+ kSfxROOFRMB1 = 100, // - Looping
+ kSfxROOFRAN1 = 101, // - Looping
kSfxROOFLIT1 = 102,
- kSfxRAINAWN1 = 103,
- kSfxAPRTAMB5 = 104,
- kSfxCTRUNOFF = 105,
- kSfxCTROOFL1 = 106,
- kSfxCTROOFR1 = 107,
- kSfxDRAMB4 = 108,
- kSfxBRBED3 = 109,
- kSfxRESPRTR1 = 110,
- kSfxDRAMB5 = 111,
- kSfxFACTAMB2 = 112,
- kSfxDRRAIN1 = 113,
- kSfxSPINUP1 = 114,
- kSfxSPINOPN3 = 115,
+ kSfxRAINAWN1 = 103, // - Looping
+ kSfxAPRTAMB5 = 104, // - Looping
+ kSfxCTRUNOFF = 105, // - Looping
+ kSfxCTROOFL1 = 106, // - Looping
+ kSfxCTROOFR1 = 107, // - Looping
+ kSfxDRAMB4 = 108, // - Looping
+ kSfxBRBED3 = 109, // - Looping
+ kSfxRESPRTR1 = 110, // - Looping
+ kSfxDRAMB5 = 111, // - Looping
+ kSfxFACTAMB2 = 112, // Looping
+ kSfxDRRAIN1 = 113, // unused - Looping
+ kSfxSPINUP1 = 114, // used only once
+ kSfxSPINOPN3 = 115, // unused
kSfxSPINOPN4 = 116,
kSfxCARUP3 = 117,
kSfxCARDOWN3 = 118,
kSfxSPINCLS1 = 119,
kSfxSERVOU1 = 120,
- kSfxSERVOD1 = 121,
+ kSfxSERVOD1 = 121, // used only twice; 1 is unused (shot doll "General")
kSfxMTLHIT1 = 122,
kSfxSPNBEEP9 = 123,
- kSfxPRISAMB3 = 124,
+ kSfxPRISAMB3 = 124, // - Looping
kSfxPRISSLM1 = 125,
kSfxPRISSLM2 = 126,
kSfxPRISSLM3 = 127,
- kSfxSPINAMB2 = 128,
- kSfxSPNAMB1 = 129,
+ kSfxSPINAMB2 = 128, // unused - Looping?
+ kSfxSPNAMB1 = 129, // unused - Looping?
kSfxSPNBEEP2 = 130,
kSfxSPNBEEP3 = 131,
kSfxSPNBEEP4 = 132,
@@ -2476,14 +2476,14 @@ enum SFXSounds {
kSfxSPNBEEP6 = 134,
kSfxSPNBEEP7 = 135,
kSfxSPNBEEP8 = 136,
- kSfxPRISAMB1 = 137,
- kSfxBRBED5X = 138,
- kSfxLABAMB1 = 139,
- kSfxLABAMB2 = 140,
- kSfxLABAMB3 = 141,
+ kSfxPRISAMB1 = 137, // - Looping
+ kSfxBRBED5X = 138, // - Looping
+ kSfxLABAMB1 = 139, // unused - Looping?
+ kSfxLABAMB2 = 140, // unused - Looping?
+ kSfxLABAMB3 = 141, // - Looping
kSfxTUBES1 = 142,
- kSfxTUBES2 = 143,
- kSfxTUBES3 = 144,
+ kSfxTUBES2 = 143, // unused
+ kSfxTUBES3 = 144, // unused
kSfxTUBES4 = 145,
kSfxLABMISC1 = 146,
kSfxLABMISC2 = 147,
@@ -2491,9 +2491,9 @@ enum SFXSounds {
kSfxLABMISC4 = 149,
kSfxLABMISC5 = 150,
kSfxLABMISC6 = 151,
- kSfxLABMISC7 = 152,
- kSfxLABMISC8 = 153,
- kSfxLABMISC9 = 154,
+ kSfxLABMISC7 = 152, // used only once
+ kSfxLABMISC8 = 153, // used only once
+ kSfxLABMISC9 = 154, // used only once
kSfxLABBUZZ1 = 155,
kSfxPAGE1 = 156,
kSfxPAGE2 = 157,
@@ -2519,14 +2519,14 @@ enum SFXSounds {
kSfxCEMWETR3 = 177,
kSfxCEMWETR4 = 178,
kSfxCEMWETR5 = 179,
- kSfxGARBAGE4 = 180,
+ kSfxGARBAGE4 = 180, // used only once
kSfx67_0470R = 181,
kSfx67_0480R = 182,
kSfx67_0500R = 183,
kSfx67_0540R = 184,
kSfx67_0560R = 185,
kSfx67_0870R = 186,
- kSfx67_0880R = 187,
+ kSfx67_0880R = 187, // unused
kSfx67_0900R = 188,
kSfx67_0940R = 189,
kSfx67_0960R = 190,
@@ -2539,26 +2539,26 @@ enum SFXSounds {
kSfxZUBWLK2 = 197,
kSfxZUBWLK3 = 198,
kSfxZUBWLK4 = 199,
- kSfxBIGPOT4 = 200,
+ kSfxBIGPOT4 = 200, // unused
kSfxMTLDOOR2 = 201,
- kSfxPOTSPL4 = 202,
+ kSfxPOTSPL4 = 202, // unused
kSfxPOTSPL5 = 203,
- kSfxBIGPOT3 = 204,
+ kSfxBIGPOT3 = 204, // used only twice
kSfxCTDRONE1 = 205,
kSfxZUBLAND1 = 206,
kSfxZUBDEAD1 = 207,
kSfxELDOORO2 = 208,
kSfxELDOORC1 = 209,
- kSfxELEAMB3 = 210,
- kSfxFOUNTAIN = 211,
+ kSfxELEAMB3 = 210, // - Looping
+ kSfxFOUNTAIN = 211, // - Looping
kSfxBELLY1 = 212,
kSfxBELLY2 = 213,
kSfxBELLY3 = 214,
kSfxBELLY4 = 215,
kSfxBELLY5 = 216,
- kSfxHUMMER1 = 217,
+ kSfxHUMMER1 = 217, // - Looping and non-looping
kSfxHUMMER2 = 218,
- kSfxHUMMER3 = 219,
+ kSfxHUMMER3 = 219, // - Looping
kSfxHUMMER4 = 220,
kSfxPUNCH1 = 221,
kSfxKICK1 = 222,
@@ -2570,17 +2570,17 @@ enum SFXSounds {
kSfxBANG5 = 228,
kSfxBANG6 = 229,
kSfxGLOOP1 = 230,
- kSfxGLOOP2 = 231,
- kSfxGLOOP3 = 232,
+ kSfxGLOOP2 = 231, // unused
+ kSfxGLOOP3 = 232, // unused
kSfxGLOOP4 = 233,
kSfxPIPER1 = 234,
kSfxSQUEAK1 = 235,
- kSfxTB5LOOP1 = 236,
- kSfxTB5LOOP2 = 237,
+ kSfxTB5LOOP1 = 236, // - Looping
+ kSfxTB5LOOP2 = 237, // - Looping
kSfxHCBELL1 = 238,
- kSfxHCSING1 = 239,
+ kSfxHCSING1 = 239, // unused
kSfxINDFLUT1 = 240,
- kSfxHCLOOP1 = 241,
+ kSfxHCLOOP1 = 241, // - Looping
kSfxHCANM8 = 242,
kSfxHCANM2 = 243,
kSfxHCANM3 = 244,
@@ -2589,10 +2589,10 @@ enum SFXSounds {
kSfxHCANM6 = 247,
kSfxHCANM7 = 248,
kSfxHCANM1 = 249,
- kSfxDOGTOY3 = 250,
- kSfxBARAMB2 = 251,
+ kSfxDOGTOY3 = 250, // unused
+ kSfxBARAMB2 = 251, // unused
kSfxBARSFX1 = 252,
- kSfxBARSFX2 = 253,
+ kSfxBARSFX2 = 253, // unused
kSfxBARSFX3 = 254,
kSfxBARSFX4 = 255,
kSfxBARSFX5 = 256,
@@ -2604,30 +2604,30 @@ enum SFXSounds {
kSfxCLINK4 = 262,
kSfxDOGBARK1 = 263,
kSfxDOGBARK3 = 264,
- kSfxDOGBITE1 = 265,
- kSfxDOGCRY1 = 266,
- kSfxDOGCRY2 = 267,
- kSfxDOGFAR1 = 268,
- kSfxDOGFAR2 = 269,
- kSfxDOGGUN1 = 270,
- kSfxDOGGUN2 = 271,
+ kSfxDOGBITE1 = 265, // unused
+ kSfxDOGCRY1 = 266, // unused
+ kSfxDOGCRY2 = 267, // unused
+ kSfxDOGFAR1 = 268, // unused
+ kSfxDOGFAR2 = 269, // unused
+ kSfxDOGGUN1 = 270, // unused
+ kSfxDOGGUN2 = 271, // unused
kSfxDOGHURT1 = 272,
- kSfxDOGMAD1 = 273,
- kSfxDOGNEED1 = 274,
- kSfxDOGNEED2 = 275,
+ kSfxDOGMAD1 = 273, // unused
+ kSfxDOGNEED1 = 274, // unused
+ kSfxDOGNEED2 = 275, // unused
kSfxDOGTAIL1 = 276,
- kSfxDOGTAIL2 = 277,
- kSfxDOGTOY1 = 278,
- kSfxDOGTOY2 = 279,
- kSfxBARAMB1 = 280,
+ kSfxDOGTAIL2 = 277, // unused
+ kSfxDOGTOY1 = 278, // unused
+ kSfxDOGTOY2 = 279, // unused
+ kSfxBARAMB1 = 280, // - Looping
kSfx14KBEEP1 = 281,
- kSfxTBBEEP1 = 282,
+ kSfxTBBEEP1 = 282, // unused
kSfxTBDOOR1 = 283,
- kSfxTBDOOR2 = 284,
- kSfxTBLOOP1 = 285,
+ kSfxTBDOOR2 = 284, // unused
+ kSfxTBLOOP1 = 285, // - Looping
kSfxTRUCKBY1 = 286,
kSfxCHEVBY1 = 287,
- kSfxFIREBD1 = 288,
+ kSfxFIREBD1 = 288, // - Looping
kSfxGLASSY1 = 289,
kSfxGLASSY2 = 290,
kSfxBBDRIP1 = 291,
@@ -2635,13 +2635,13 @@ enum SFXSounds {
kSfxBBDRIP3 = 293,
kSfxBBDRIP4 = 294,
kSfxBBDRIP5 = 295,
- kSfxRADIATR1 = 296,
+ kSfxRADIATR1 = 296, // unused
kSfxRADIATR2 = 297,
kSfxRADIATR3 = 298,
kSfxRADIATR4 = 299,
kSfxJESTMOV1 = 300,
kSfxINDXPLOD = 301,
- kSfxJESTMUS1 = 302,
+ kSfxJESTMUS1 = 302, // unused
kSfxBBGRN1 = 303,
kSfxBBGRN2 = 304,
kSfxBBGRN3 = 305,
@@ -2653,11 +2653,11 @@ enum SFXSounds {
kSfxMONKCYM1 = 311,
kSfxCAMERA2 = 312,
kSfxMONKEY1 = 313,
- kSfxMONKEY2 = 314,
+ kSfxMONKEY2 = 314, // unused
kSfxRUNAWAY1 = 315,
kSfxTRPDOOR1 = 316,
- kSfxTRPDORO = 317,
- kSfxTRPDORC = 318,
+ kSfxTRPDORO = 317, // unused
+ kSfxTRPDORC = 318, // unused
kSfxAUDLAFF1 = 319,
kSfxAUDLAFF2 = 320,
kSfxAUDLAFF3 = 321,
@@ -2668,25 +2668,25 @@ enum SFXSounds {
kSfxAUDLAFF8 = 326,
kSfxAUDLAFF9 = 327,
kSfxCHAINLNK = 328,
- kSfxMAMASNG1 = 329,
- kSfxROTIS2 = 330,
- kSfxSTMLOOP7 = 331,
- kSfxUGBED1 = 332,
- kSfxUGBED2 = 333,
- kSfxBIGFAN3 = 334,
+ kSfxMAMASNG1 = 329, // - Looping
+ kSfxROTIS2 = 330, // - Looping
+ kSfxSTMLOOP7 = 331, // - Looping
+ kSfxUGBED1 = 332, // - Looping
+ kSfxUGBED2 = 333, // - Looping
+ kSfxBIGFAN3 = 334, // unused
kSfxGETITEM1 = 335,
- kSfxFLORBUZZ = 336,
+ kSfxFLORBUZZ = 336, // - Looping
kSfxDESKBELL = 337,
kSfxCURTAIN1 = 338,
kSfxDRAWER1 = 339,
- kSfxARCBED1 = 340,
- kSfxCIRCUS1 = 341,
- kSfxFORTUNE1 = 342,
+ kSfxARCBED1 = 340, // - Looping
+ kSfxCIRCUS1 = 341, // - Looping
+ kSfxFORTUNE1 = 342, // unused (un-triggered)
kSfxCARCREK1 = 343,
kSfxCARLAND1 = 344,
- kSfxDORSLID1 = 345,
- kSfxDORSLID2 = 346,
- kSfxKUNG1 = 347,
+ kSfxDORSLID1 = 345, // used only twice
+ kSfxDORSLID2 = 346, // used only once
+ kSfxKUNG1 = 347, // unused
kSfxLOWERN1 = 348,
kSfxLOWERY1 = 349,
kSfxMAGCHNK1 = 350,
@@ -2701,7 +2701,7 @@ enum SFXSounds {
kSfxSTONDOR1 = 359,
kSfxSTONDOR2 = 360,
kSfxSEXYAD2 = 361,
- kSfxMUSBLEED = 362,
+ kSfxMUSBLEED = 362, // - Looping
kSfxSUNROOM1 = 363,
kSfxSUNROOM2 = 364,
kSfxSUNROOM3 = 365,
@@ -2711,7 +2711,7 @@ enum SFXSounds {
kSfxGRUNT1M1 = 369,
kSfxGRUNT2M1 = 370,
kSfxHURT1M1 = 371,
- kSfxCARGELE2 = 372, // UG13 from/to UG08 elevator
+ kSfxCARGELE2 = 372,
kSfxCARUP3B = 373,
kSfxCOLONY = 374,
kSfxTHNDER2 = 375,
@@ -2720,19 +2720,19 @@ enum SFXSounds {
kSfxTHNDR1 = 378,
kSfxTHNDR2 = 379,
kSfxTHNDR3 = 380,
- kSfxRAIN10 = 381,
- kSfxRAINALY1 = 382,
- kSfxSKINBED1 = 383,
- kSfxRUMLOOP1 = 384,
+ kSfxRAIN10 = 381, // - Looping
+ kSfxRAINALY1 = 382, // - Looping
+ kSfxSKINBED1 = 383, // - Looping
+ kSfxRUMLOOP1 = 384, // - Looping
kSfxPHONE1 = 385,
- kSfxESPLOOP1 = 386,
- kSfxESPLOOP2 = 387,
- kSfxESPLOOP3 = 388,
+ kSfxESPLOOP1 = 386, // - Looping
+ kSfxESPLOOP2 = 387, // - Looping
+ kSfxESPLOOP3 = 388, // - Looping
kSfxSTEAMY1 = 389,
kSfxSTEAMY2 = 390,
kSfxSQUEAK2 = 391,
kSfxSQUEAK3 = 392,
- kSfxSQUEAK4 = 393,
+ kSfxSQUEAK4 = 393, // used only once
kSfxSQUEAK5 = 394,
kSfxGRUNT1M2 = 395,
kSfxGRUNT1M3 = 396,
@@ -2747,10 +2747,10 @@ enum SFXSounds {
kSfxTOILET1 = 405,
kSfxGARGLE1 = 406,
kSfxWASH1 = 407,
- kSfxAPRTFAN1 = 408,
- kSfxMA04VO1A = 409, // Developer commentary for MA04 scene (McCoy's apartment)
- kSfxCT01VO1A = 410, // Developer commentary for CT01 scene (Howie Lee's, Chinatown)
- kSfxHC01VO1A = 411, // Developer commentary for HC01 scene (Hawker's Circle)
+ kSfxAPRTFAN1 = 408, // - Looping
+ kSfxMA04VO1A = 409, // unused Developer commentary for MA04 scene (McCoy's apartment)
+ kSfxCT01VO1A = 410, // unused Developer commentary for CT01 scene (Howie Lee's, Chinatown)
+ kSfxHC01VO1A = 411, // unused Developer commentary for HC01 scene (Hawker's Circle)
kSfxELEBAD1 = 412,
kSfxBR025_5A = 413,
kSfxBR027_1P = 414,
@@ -2760,22 +2760,22 @@ enum SFXSounds {
kSfxBR030_3A = 418,
kSfxBR031_1P = 419,
kSfxBR028_2A = 420,
- kSfxBR026_2A = 421,
+ kSfxBR026_2A = 421, // unused
kSfxBR032_7B = 422,
kSfxBR033_4B = 423,
kSfxBR035_7B = 424,
- kSfxBR010_4A = 425,
+ kSfxBR010_4A = 425, // unused
kSfxBR011_2A = 426,
- kSfxBR012_3B = 427,
+ kSfxBR012_3B = 427, // unused
kSfxBR013_3D = 428,
kSfxBR014_5A = 429,
- kSfxBR015_3C = 430,
+ kSfxBR015_3C = 430, // unused
kSfxBR016_2B = 431,
- kSfxBR017_2A = 432,
- kSfxBR018_3E = 433,
+ kSfxBR017_2A = 432, // unused
+ kSfxBR018_3E = 433, // unused
kSfxBBELE2 = 434,
- kSfxRATTY1 = 435,
- kSfxRATTY2 = 436,
+ kSfxRATTY1 = 435, // unused
+ kSfxRATTY2 = 436, // unused
kSfxRATTY3 = 437,
kSfxRATTY4 = 438,
kSfxRATTY5 = 439,
@@ -2786,14 +2786,14 @@ enum SFXSounds {
kSfxSCARY5 = 444,
kSfxSCARY6 = 445,
kSfxSCARY7 = 446,
- kSfxPNEUM5 = 447,
+ kSfxPNEUM5 = 447, // used only once
kSfxROBOTMV1 = 448,
kSfxMCGUN1 = 449,
kSfxMCGUN2 = 450,
- kSfxDEKGLAS1 = 451,
+ kSfxDEKGLAS1 = 451, // used only once
kSfx35MM = 452,
kSfx35MMBRK1 = 453,
- kSfx35MMGO1 = 454,
+ kSfx35MMGO1 = 454, // unused
kSfxBR027_3P = 455,
kSfxBRWIND2 = 456,
kSfxBUTN6 = 457,
@@ -2803,8 +2803,8 @@ enum SFXSounds {
kSfxVKBEEP1 = 461,
kSfxVKBEEP2 = 462,
kSfxCAMCOP1 = 463,
- kSfxKPAMB1 = 464,
- kSfxMANHOLE1 = 465,
+ kSfxKPAMB1 = 464, // - Looping
+ kSfxMANHOLE1 = 465, // unused
kSfxMETALL1 = 466,
kSfxMETALL2 = 467,
kSfxMETALL3 = 468,
@@ -2825,10 +2825,10 @@ enum SFXSounds {
kSfxWOODR3 = 483,
kSfxWOODR4 = 484,
kSfxWOODR5 = 485,
- kSfxDIALOUT3 = 486,
+ kSfxDIALOUT3 = 486, // unused
kSfxBIKEMIX4 = 487,
kSfxCHAINBRK = 488,
- kSfxGUNAIM1 = 489,
+ kSfxGUNAIM1 = 489, // unused
kSfxCAREXPL1 = 490,
kSfxCRYEXPL1 = 491,
kSfxSHOTCOK1 = 492,
@@ -2853,9 +2853,9 @@ enum SFXSounds {
kSfxBEEP15 = 511,
kSfxMUSVOL8 = 512,
kSfxELECBP1 = 513,
- kSfxCRZYEXPL = 514,
+ kSfxCRZYEXPL = 514, // unused
kSfxELEBUTN1 = 515,
- kSfxELECLAB1 = 516,
+ kSfxELECLAB1 = 516, // - Looping
kSfxGUNH1A = 517,
kSfxGUNH1B = 518,
kSfxGUNH1C = 519,
@@ -2874,26 +2874,26 @@ enum SFXSounds {
kSfxGUNM3A = 532,
kSfxGUNM3B = 533,
kSfxGUNM3C = 534,
- kSfxGUNH1AR = 535,
- kSfxGUNH1BR = 536,
- kSfxGUNH1CR = 537,
- kSfxGUNH2AR = 538,
- kSfxGUNH2BR = 539,
- kSfxGUNH2CR = 540,
- kSfxGUNH3AR = 541,
- kSfxGUNH3BR = 542,
- kSfxGUNH3CR = 543,
- kSfxGUNM1AR = 544,
- kSfxGUNM1BR = 545,
- kSfxGUNM1CR = 546,
- kSfxGUNM2AR = 547,
- kSfxGUNM2BR = 548,
- kSfxGUNM2CR = 549,
- kSfxGUNM3AR = 550,
- kSfxGUNM3BR = 551,
- kSfxGUNM3CR = 552,
+ kSfxGUNH1AR = 535, // unused
+ kSfxGUNH1BR = 536, // unused
+ kSfxGUNH1CR = 537, // unused
+ kSfxGUNH2AR = 538, // unused
+ kSfxGUNH2BR = 539, // unused
+ kSfxGUNH2CR = 540, // unused
+ kSfxGUNH3AR = 541, // unused
+ kSfxGUNH3BR = 542, // unused
+ kSfxGUNH3CR = 543, // unused
+ kSfxGUNM1AR = 544, // unused
+ kSfxGUNM1BR = 545, // unused
+ kSfxGUNM1CR = 546, // unused
+ kSfxGUNM2AR = 547, // unused
+ kSfxGUNM2BR = 548, // unused
+ kSfxGUNM2CR = 549, // unused
+ kSfxGUNM3AR = 550, // unused
+ kSfxGUNM3BR = 551, // unused
+ kSfxGUNM3CR = 552, // unused
kSfxGARBAGE = 553,
- kSfxBELLTONE = 554,
+ kSfxBELLTONE = 554, // unused
kSfxMALEHURT = 555,
kSfxHOLSTER1 = 556,
kSfxHEADHIT2 = 557,
@@ -2904,7 +2904,7 @@ enum SFXSounds {
kSfxBOMBFAIL = 562,
kSfxBABYCRY2 = 563,
kSfxBRKROPE1 = 564,
- kSfxKICKDOOR = 565,
+ kSfxKICKDOOR = 565, // unused
kSfxDEKCLAP1 = 566,
kSfxWHISTLE1 = 567,
kSfxWHISTLE2 = 568,
@@ -2919,16 +2919,16 @@ enum SFXSounds {
kSfxRIMSHOT3 = 577,
kSfxRIMSHOT4 = 578,
kSfxRIMSHOT5 = 579,
- kSfxGOTSHOT1 = 580,
+ kSfxGOTSHOT1 = 580, // unused
kSfxCOMEDY = 581,
kSfxDRUGOUT = 582,
kSfxPLANKDWN = 583,
- kSfxBANGDOOR = 584,
- kSfxCOMPBED1 = 585,
- kSfxMOONBED2 = 586,
+ kSfxBANGDOOR = 584, // unused
+ kSfxCOMPBED1 = 585, // - Looping
+ kSfxMOONBED2 = 586, // - Looping
kSfxDATALOAD = 587,
kSfxBEEPNEAT = 588,
- kSfxWINDLOOP = 589,
+ kSfxWINDLOOP = 589, // - Looping
kSfxTBALARM = 590,
kSfxLIGHTON = 591,
kSfxCOMPON1 = 592,
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index dc4bf9a3bc..3521abbb9d 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -523,6 +523,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
case kMaggieStateHappyA:
*animation = 870;
if (_animationFrame == 1) {
+ // one of kSfxDOGBARK1, kSfxDOGBARK3
Sound_Play(Random_Query(kSfxDOGBARK1, kSfxDOGBARK3), 50, 0, 0, 50);
}
_animationFrame++;
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index 5c0e0dbc3a..234467ec9f 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -297,6 +297,11 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptNR04::PlayerWalkedIn() {
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ Game_Flag_Reset(kFlagNR03toNR04);
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 53.0f, 0.0f, -26.0f, 0, false, false, 0);
if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Overlay_Play("nr04over", 0, true, false, 0);
@@ -307,6 +312,14 @@ void SceneScriptNR04::PlayerWalkedIn() {
}
void SceneScriptNR04::PlayerWalkedOut() {
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ if (Game_Flag_Query(kFlagNR03McCoyThrownOut)) {
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
+ Ambient_Sounds_Remove_All_Looping_Sounds(1);
+ Music_Stop(1);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
void SceneScriptNR04::DialogueQueueFlushed(int a1) {
diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp
index 975f50a98d..1e441f68db 100644
--- a/engines/bladerunner/set.cpp
+++ b/engines/bladerunner/set.cpp
@@ -261,12 +261,12 @@ const Common::String &Set::objectGetName(int objectId) const {
return _objects[objectId].name;
}
-void Set::setWalkboxStepSound(int walkboxId, int stepSound) {
- _walkboxStepSound[walkboxId] = stepSound;
+void Set::setWalkboxStepSound(int walkboxId, int floorType) {
+ _walkboxStepSound[walkboxId] = floorType;
}
-void Set::setFoodstepSoundOverride(int soundId) {
- _footstepSoundOverride = soundId;
+void Set::setFoodstepSoundOverride(int floorType) {
+ _footstepSoundOverride = floorType;
}
void Set::resetFoodstepSoundOverride() {
@@ -274,48 +274,69 @@ void Set::resetFoodstepSoundOverride() {
}
int Set::getWalkboxSoundWalkLeft(int walkboxId) const{
- int soundId;
+ int floorType;
if (_footstepSoundOverride >= 0) {
- soundId = _footstepSoundOverride;
+ floorType = _footstepSoundOverride;
} else {
- soundId = _walkboxStepSound[walkboxId];
+ floorType = _walkboxStepSound[walkboxId];
}
- if (soundId == 0) { //stone floor
- return _vm->_rnd.getRandomNumberRng(160, 164);
+ if (floorType == 0) { //stone floor
+ // one of kSfxCEMENTL1, kSfxCEMENTL2, kSfxCEMENTL3, kSfxCEMENTL4, kSfxCEMENTL5
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMENTL1, kSfxCEMENTL5);
}
- if (soundId == 1) { //gravel floor
- return _vm->_rnd.getRandomNumberRng(164, 170);
+ if (floorType == 1) { //gravel floor
+#if BLADERUNNER_ORIGINAL_BUGS
+ // A bug?
+ // one of kSfxCEMENTL5, kSfxCEMENTR1, kSfxCEMENTR2, kSfxCEMENTR3, kSfxCEMENTR4, kSfxCEMENTR5, kSfxCEMWETL1
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMENTL5, kSfxCEMWETL1);
+#else
+ // one of kSfxCEMWETL1, kSfxCEMWETL2, kSfxCEMWETL3, kSfxCEMWETL4, kSfxCEMWETL5
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMWETL1, kSfxCEMWETL5);
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
- if (soundId == 2) { //wooden floor
- return _vm->_rnd.getRandomNumberRng(476, 480);
+ if (floorType == 2) { //wooden floor
+ // one of kSfxWOODL1, kSfxWOODL2, kSfxWOODL3, kSfxWOODL4, kSfxWOODL5
+ return _vm->_rnd.getRandomNumberRng(kSfxWOODL1, kSfxWOODL5);
}
- if (soundId == 3) { //metal floor
- return _vm->_rnd.getRandomNumberRng(466, 470);
+ if (floorType == 3) { //metal floor
+ // one of kSfxMETALL1, kSfxMETALL2, kSfxMETALL3, kSfxMETALL4, kSfxMETALL5
+ return _vm->_rnd.getRandomNumberRng(kSfxMETALL1, kSfxMETALL5);
}
return -1;
}
int Set::getWalkboxSoundWalkRight(int walkboxId) const {
- int soundId;
+ int floorType;
if (_footstepSoundOverride >= 0) {
- soundId = _footstepSoundOverride;
+ floorType = _footstepSoundOverride;
} else {
- soundId = _walkboxStepSound[walkboxId];
+ floorType = _walkboxStepSound[walkboxId];
}
- if (soundId == 0) { //stone floor
- return _vm->_rnd.getRandomNumberRng(165, 169);
+ if (floorType == 0) { //stone floor
+ // one of kSfxCEMENTR1, kSfxCEMENTR2, kSfxCEMENTR3, kSfxCEMENTR4, kSfxCEMENTR5
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMENTR1, kSfxCEMENTR5);
}
- if (soundId == 1) { //gravel floor
- return _vm->_rnd.getRandomNumberRng(169, 175);
+ if (floorType == 1) { //gravel floor
+#if BLADERUNNER_ORIGINAL_BUGS
+ // A bug?
+ // one of kSfxCEMENTR5, kSfxCEMWETL1, kSfxCEMWETL2, kSfxCEMWETL3, kSfxCEMWETL4, kSfxCEMWETL5, kSfxCEMWETR1
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMENTR5, kSfxCEMWETR1);
+#else
+ // one of kSfxCEMWETR1, kSfxCEMWETR2, kSfxCEMWETR3, kSfxCEMWETR4, kSfxCEMWETR5
+ return _vm->_rnd.getRandomNumberRng(kSfxCEMWETR1, kSfxCEMWETR5);
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
}
- if (soundId == 2) { //wooden floor
- return _vm->_rnd.getRandomNumberRng(481, 485);
+ if (floorType == 2) { //wooden floor
+ // one of kSfxWOODR1, kSfxWOODR2, kSfxWOODR3, kSfxWOODR4, kSfxWOODR5
+ return _vm->_rnd.getRandomNumberRng(kSfxWOODR1, kSfxWOODR5);
}
- if (soundId == 3) { //metal floor
- return _vm->_rnd.getRandomNumberRng(471, 475);
+ if (floorType == 3) { //metal floor
+ // one of kSfxMETALR1, kSfxMETALR2, kSfxMETALR3, kSfxMETALR4, kSfxMETALR5
+ return _vm->_rnd.getRandomNumberRng(kSfxMETALR1, kSfxMETALR5);
}
return -1;
diff --git a/engines/bladerunner/set.h b/engines/bladerunner/set.h
index 719cc55867..661d38eec1 100644
--- a/engines/bladerunner/set.h
+++ b/engines/bladerunner/set.h
@@ -93,8 +93,8 @@ public:
void objectSetIsTarget(int objectId, bool isTarget);
const Common::String &objectGetName(int objectId) const;
- void setWalkboxStepSound(int walkboxId, int soundId);
- void setFoodstepSoundOverride(int soundId);
+ void setWalkboxStepSound(int walkboxId, int floorType);
+ void setFoodstepSoundOverride(int floorType);
void resetFoodstepSoundOverride();
int getWalkboxSoundWalkLeft(int walkboxId) const;