[Scummvm-git-logs] scummvm master -> 0a66aa13f38db140842ad91600c66d517f53d2d6

Strangerke noreply at scummvm.org
Wed Feb 5 23:10:23 UTC 2025


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:
0a66aa13f3 M4: RIDDLE: More work on Room809::parser


Commit: 0a66aa13f38db140842ad91600c66d517f53d2d6
    https://github.com/scummvm/scummvm/commit/0a66aa13f38db140842ad91600c66d517f53d2d6
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-06T00:10:15+01:00

Commit Message:
M4: RIDDLE: More work on Room809::parser

Changed paths:
    engines/m4/riddle/rooms/section8/room809.cpp
    engines/m4/riddle/rooms/section8/room809.h


diff --git a/engines/m4/riddle/rooms/section8/room809.cpp b/engines/m4/riddle/rooms/section8/room809.cpp
index 05bc7681887..aba2694f507 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -279,14 +279,100 @@ void Room809::parser() {
 		break;
 
 	case 48:
+		//TODO Not implemented yet
+		break;
+
 	case 49:
+		_809rp01Mach = series_play("809rp01", 256, 16, 50, 5, 0, 100, 0, 0, 170, -1);
+		digi_play("809_s06", 2, 255, -1, -1);
+
+		break;
+
 	case 50:
+		player_set_commands_allowed(true);
+		inv_move_object("two soldiers' shields", 809);
+		kernel_timing_trigger(imath_ranged_rand(360, 540), 51, nullptr);
+
+		break;
+
 	case 51:
+		if (_field20 == 0 && inv_object_in_scene("two soldiers' shields", 809)) {
+			terminateMachine(_809rp01Mach);
+			_809rp01Mach = series_play("809shufl", 0, 17, -1, 7, 1, 100, 0, 0, 0, -1);
+			digi_play("809_s03", 2, 255, -1, -1);
+			kernel_timing_trigger(imath_ranged_rand(360, 540), 51, nullptr);
+		}
+
+		break;
+
 	case 52:
+		player_set_commands_allowed(true);
+		terminateMachine(_809rp01Mach);
+		ws_unhide_walker(_G(my_walker));
+		ws_demand_facing(_G(my_walker), 3);
+		ws_demand_location(_G(my_walker), 1346, 318);
+		// CHECKME: load and unload??
+		_809hallSeries = series_load("809rp01", -1, nullptr);
+		series_unload(_809hallSeries);
+
+		kernel_trigger_dispatchx(kernel_trigger_create(1));
+
+		break;
+
 	case 53:
+		player_set_commands_allowed(false);
+		player_update_info(_mcTrekMach, &_G(player_info));
+		if (_G(player_info).x < 1265) {
+			kernel_timing_trigger(30, 53, nullptr);
+		} else if (inv_object_in_scene("two soldiers' shields", 809)) {
+			_field20 = 1;
+			series_unload(0);
+			series_unload(1);
+			series_unload(3);
+			series_unload(4);
+
+			digi_preload("809_s04", -1);
+			digi_preload("809m05", -1);
+			digi_preload("809r19", -1);
+			digi_preload("809_s05", -1);
+
+			// CHECKME: load and unload??
+			_809hallSeries = series_load("809rp01", -1, nullptr);
+			series_unload(_809hallSeries);
+			_809hallSeries = series_load("809shufl", -1, nullptr);
+			series_unload(_809hallSeries);
+
+			terminateMachine(_809rp01Mach);
+			_809crossMach = series_stream("809cross", 5, 0, 56);
+			series_stream_break_on_frame(_809crossMach, 119, 55);
+			digi_play("809_s04", 2, 255, -1, -1);
+			digi_play("809M05", 1, 255, 54, -1);
+		} else if (_G(flags[V102])) {
+			digi_play("809M02", 1, 255, 64, -1);
+		} else {
+			_G(flags[V102]) = 1;
+			if (_G(flags[V103])) {
+				digi_play("809M02", 1, 255, 61, -1);
+			} else {
+				digi_play("809M02", 1, 255, 59, -1);
+			}
+		}
+		break;
+
 	case 54:
+		digi_play("809r19", 1, 255, -1, -1);
+		break;
+
 	case 55:
+		digi_play("809_s05", 2, 255, -1, -1);
+		break;
+
 	case 56:
+		_809crossMach = series_stream("809exit", 5, 0, -1);
+		series_stream_break_on_frame(_809crossMach, 49, 57);
+
+		break;
+
 	case 57:
 	case 58:
 	case 59:
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index e5362085011..0bf65270516 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -61,8 +61,9 @@ private:
 	int32 _ripTalkerPos5Series = 0;
 	int32 _ripTrekHeadTurnPos5Series = 0;
 
-	machine *_809rp01Mach = nullptr;
+	machine *_809crossMach = nullptr;
 	machine *_809hallMach = nullptr;
+	machine *_809rp01Mach = nullptr;
 	machine *_mcTrekMach = nullptr;
 
 };




More information about the Scummvm-git-logs mailing list