[Scummvm-git-logs] scummvm master -> 4a7c433f926147f3967a6e9b88b6544d91f73094

joostp noreply at scummvm.org
Wed Aug 3 13:41:54 UTC 2022


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:
4a7c433f92 ICB: ELDORADO: handle fn_set_watch difference


Commit: 4a7c433f926147f3967a6e9b88b6544d91f73094
    https://github.com/scummvm/scummvm/commit/4a7c433f926147f3967a6e9b88b6544d91f73094
Author: Joost Peters (joostp at 7fc1.org)
Date: 2022-08-03T15:41:24+02:00

Commit Message:
ICB: ELDORADO: handle fn_set_watch difference

Changed paths:
    engines/icb/function.cpp


diff --git a/engines/icb/function.cpp b/engines/icb/function.cpp
index 3f39391880e..ac2f839995b 100644
--- a/engines/icb/function.cpp
+++ b/engines/icb/function.cpp
@@ -2367,41 +2367,42 @@ mcodeFunctionReturnCodes _game_session::fn_set_watch(int32 &, int32 *params) {
 	else
 		g_mission->camera_follow_id_overide = id;
 
-	// If we are switching back to the player then we need to put the Remora back up if
-	// it was up when we switched to a manual watch (but only in 3D).
-	if (g_px->display_mode == THREED) {
-		// Check if switching to player.
-		if (id == player.Fetch_player_id()) {
-			// If the Remora was active, need to bring it back up.
-			if (g_mission->remora_save_mode != -1) {
-				MS->player.Push_control_mode(ACTOR_RELATIVE);
-				g_oRemora->SetModeOverride((_remora::RemoraMode)g_mission->remora_save_mode);
-				g_oRemora->ActivateRemora((_remora::RemoraMode)g_mission->remora_save_mode);
-				MS->player.Set_player_status(REMORA);
-				MS->player.Update_input_state();
-				psInputState = MS->player.Fetch_input_state();
-				g_oRemora->CycleRemoraLogic(*psInputState);
-				g_mission->remora_save_mode = -1;
-			}
-		} else {
-			// Not switching to player so flag whether or not the Remora is active.
-			if (g_oRemora->IsActive()) {
-				// Deactivate it and remember its mode.
-				g_mission->remora_save_mode = (int32)g_oRemora->GetMode();
-				g_oRemora->SetMode(_remora::MOTION_SCAN);
-				g_oRemora->DeactivateRemora(TRUE8);
-				sInputState.UnSetButton(__UNUSEDBUTTON);
-				g_oRemora->CycleRemoraLogic(sInputState);
-				MS->player.Pop_control_mode();
-				MS->player.Set_player_status(STOOD);
+	if (g_icb->getGameType() == GType_ICB) {
+		// If we are switching back to the player then we need to put the Remora back up if
+		// it was up when we switched to a manual watch (but only in 3D).
+		if (g_px->display_mode == THREED) {
+			// Check if switching to player.
+			if (id == player.Fetch_player_id()) {
+				// If the Remora was active, need to bring it back up.
+				if (g_mission->remora_save_mode != -1) {
+					MS->player.Push_control_mode(ACTOR_RELATIVE);
+					g_oRemora->SetModeOverride((_remora::RemoraMode)g_mission->remora_save_mode);
+					g_oRemora->ActivateRemora((_remora::RemoraMode)g_mission->remora_save_mode);
+					MS->player.Set_player_status(REMORA);
+					MS->player.Update_input_state();
+					psInputState = MS->player.Fetch_input_state();
+					g_oRemora->CycleRemoraLogic(*psInputState);
+					g_mission->remora_save_mode = -1;
+				}
 			} else {
-				g_mission->remora_save_mode = -1;
+				// Not switching to player so flag whether or not the Remora is active.
+				if (g_oRemora->IsActive()) {
+					// Deactivate it and remember its mode.
+					g_mission->remora_save_mode = (int32)g_oRemora->GetMode();
+					g_oRemora->SetMode(_remora::MOTION_SCAN);
+					g_oRemora->DeactivateRemora(TRUE8);
+					sInputState.UnSetButton(__UNUSEDBUTTON);
+					g_oRemora->CycleRemoraLogic(sInputState);
+					MS->player.Pop_control_mode();
+					MS->player.Set_player_status(STOOD);
+				} else {
+					g_mission->remora_save_mode = -1;
+				}
 			}
 		}
+		// Deactivate the Remora.
 	}
 
-	// Deactivate the Remora.
-
 	return (IR_CONT);
 }
 




More information about the Scummvm-git-logs mailing list