diff options
| author | Thanasis Antoniou | 2019-05-21 22:13:45 +0300 | 
|---|---|---|
| committer | Thanasis Antoniou | 2019-05-21 22:13:45 +0300 | 
| commit | d4855a64b3bc9f9b2951486589ee8bff26ffabc2 (patch) | |
| tree | 96574b1c391b705e80b49ac321b2636194c45afd /engines/bladerunner/script/scene/ug01.cpp | |
| parent | 203d82a1a0382684884da0d6c285444605153802 (diff) | |
| download | scummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.tar.gz scummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.tar.bz2 scummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.zip  | |
BLADERUNNER: Add methods to skip screen effects
Also enhanced functionality for debugger's cmdDraw, allowing to draw isolated objects
Diffstat (limited to 'engines/bladerunner/script/scene/ug01.cpp')
| -rw-r--r-- | engines/bladerunner/script/scene/ug01.cpp | 39 | 
1 files changed, 35 insertions, 4 deletions
diff --git a/engines/bladerunner/script/scene/ug01.cpp b/engines/bladerunner/script/scene/ug01.cpp index e33e3f2554..365463172a 100644 --- a/engines/bladerunner/script/scene/ug01.cpp +++ b/engines/bladerunner/script/scene/ug01.cpp @@ -24,6 +24,12 @@  namespace BladeRunner { +enum kUG01Loops { +	kUG01LoopMainLoop         = 0, //   0 -  60 +	kUG01LoopSteamDissapating = 2, //  61 - 120 +	kUG01LoopMainLoopNoSteam  = 3  // 121 - 181 +}; +  void SceneScriptUG01::InitializeScene() {  	if (Game_Flag_Query(kFlagUG10toUG01)) {  		Setup_Scene_Information(34.47f, -50.13f, -924.11f, 500); @@ -37,7 +43,13 @@ void SceneScriptUG01::InitializeScene() {  	Scene_Exit_Add_2D_Exit(1, 144,   0, 210, 104, 0);  	Scene_Exit_Add_2D_Exit(2,   0, 173, 139, 402, 3); +#if BLADERUNNER_ORIGINAL_BUGS  	Ambient_Sounds_Add_Looping_Sound(kSfxSTMLOOP7, 28, 0, 1); +#else +	if (!Game_Flag_Query(kFlagUG01SteamOff)) { +		Ambient_Sounds_Add_Looping_Sound(kSfxSTMLOOP7, 28, 0, 1); +	} +#endif // BLADERUNNER_ORIGINAL_BUGS  	Ambient_Sounds_Add_Looping_Sound(kSfxUGBED1,   40, 0, 1);  	Ambient_Sounds_Add_Looping_Sound(kSfxUGBED2,   40, 0, 1);  	Ambient_Sounds_Add_Sound(kSfxBBDRIP1,  2,  20, 20, 25, -100, 100, -100,  100, 0, 0); @@ -60,9 +72,9 @@ void SceneScriptUG01::InitializeScene() {  	Ambient_Sounds_Add_Sound(kSfxBBGRN3,   5,  50, 17, 37,    0, 100, -101, -101, 0, 0);  	if (Game_Flag_Query(kFlagUG01SteamOff)) { -		Scene_Loop_Set_Default(3); +		Scene_Loop_Set_Default(kUG01LoopMainLoopNoSteam);  	} else { -		Scene_Loop_Set_Default(0); +		Scene_Loop_Set_Default(kUG01LoopMainLoop);  	}  } @@ -71,6 +83,12 @@ void SceneScriptUG01::SceneLoaded() {  	Unobstacle_Object("BEAM03", true);  	Unobstacle_Object("BEAM04", true);  	Clickable_Object("PIPES_FG_LFT"); +#if BLADERUNNER_ORIGINAL_BUGS +#else +	if (Game_Flag_Query(kFlagUG01SteamOff)) { +		Screen_Effect_Skip(0); +	} +#endif // BLADERUNNER_ORIGINAL_BUGS  }  bool SceneScriptUG01::MouseClick(int x, int y) { @@ -82,9 +100,18 @@ bool SceneScriptUG01::ClickedOn3DObject(const char *objectName, bool a2) {  		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -9.0f, -50.13f, -148.0f, 0, true, false, false)  		 && !Game_Flag_Query(kFlagUG01SteamOff)  		) { +#if BLADERUNNER_ORIGINAL_BUGS  			Actor_Says(kActorMcCoy, 8525, 13); -			Scene_Loop_Set_Default(3); -			Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); +			Scene_Loop_Set_Default(kUG01LoopMainLoopNoSteam); +			Scene_Loop_Start_Special(kSceneLoopModeOnce, kUG01LoopSteamDissapating, true); +#else +			Sound_Play(kSfxSQUEAK1,  40, 0, 0, 50); +			Screen_Effect_Skip(0); +			Scene_Loop_Set_Default(kUG01LoopMainLoopNoSteam); +			Scene_Loop_Start_Special(kSceneLoopModeOnce, kUG01LoopSteamDissapating, false); +			Sound_Play(kSfxSTEAM6A,  40, 0, 0, 50); +			Ambient_Sounds_Remove_Looping_Sound(kSfxSTMLOOP7, 2); +#endif // BLADERUNNER_ORIGINAL_BUGS  			Game_Flag_Set(kFlagUG01SteamOff);  		} else {  			Actor_Says(kActorMcCoy, 8525, 13); @@ -180,6 +207,10 @@ void SceneScriptUG01::PlayerWalkedIn() {  void SceneScriptUG01::PlayerWalkedOut() {  	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);  	Ambient_Sounds_Remove_All_Looping_Sounds(1); +#if BLADERUNNER_ORIGINAL_BUGS +#else +	Screen_Effect_Restore_All(); +#endif // BLADERUNNER_ORIGINAL_BUGS  }  void SceneScriptUG01::DialogueQueueFlushed(int a1) {  | 
