[Scummvm-git-logs] scummvm master -> 621ab52da118531c7c3190f6c071037a53010a47

Strangerke noreply at scummvm.org
Tue Nov 26 21:46:31 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
895bff1dd5 M4: RIDDLE: room 703 - Implement daemon up to trigger 91
621ab52da1 M4: RIDDLE: room 703 - Finish the implementation of daemon


Commit: 895bff1dd5af2561cbd88f59029bf49803abd0f8
    https://github.com/scummvm/scummvm/commit/895bff1dd5af2561cbd88f59029bf49803abd0f8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-26T21:49:24+01:00

Commit Message:
M4: RIDDLE: room 703 - Implement daemon up to trigger 91

Changed paths:
    engines/m4/riddle/rooms/section7/room703.cpp


diff --git a/engines/m4/riddle/rooms/section7/room703.cpp b/engines/m4/riddle/rooms/section7/room703.cpp
index 559fbe30475..55e2f95bf12 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -139,9 +139,160 @@ void Room703::pre_parser() {
 }
 
 void Room703::parser() {
+	//TODO Parser
+
 }
 
 void Room703::daemon() {
+	bool ecx = player_said("take");
+
+	switch (_G(kernel).trigger) {
+	case 70:
+		player_set_commands_allowed(false);
+		setGlobals1(_ripTrekMedReachHandPos1Series, 1, 5, 7, 7, 0, 5, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 71);
+
+		break;
+
+	case 71:
+		kernel_timing_trigger(5, 72, nullptr);
+		break;
+
+	case 72:
+		sendWSMessage_120000(_G(my_walker), 73);
+		break;
+
+	case 73:
+		kernel_timing_trigger(5, 74, nullptr);
+		break;
+
+	case 74:
+		if (_G(flags[V217])) {
+			terminateMachine(_prayerWheelMach);
+			switch (_G(flags[V217])) {
+			case 1:
+				inv_give_to_player("PEACE WHEEL");
+				_G(flags[V217]) = 0;
+				player_update_info(_G(my_walker), &_G(player_info));
+				digi_play("950_S40", 2, 255, -1, 950);
+				kernel_examine_inventory_object("PING PEACE WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+				break;
+
+			case 2:
+				inv_give_to_player("INSIGHT WHEEL");
+				_G(flags[V217]) = 0;
+				player_update_info(_G(my_walker), &_G(player_info));
+				digi_play("950_S40", 2, 255, -1, 950);
+				kernel_examine_inventory_object("PING INSIGHT WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+				break;
+
+			case 3:
+				inv_give_to_player("SERENITY WHEEL");
+				_G(flags[V217]) = 0;
+				player_update_info(_G(my_walker), &_G(player_info));
+				digi_play("950_S40", 2, 255, -1, 950);
+				kernel_examine_inventory_object("PING SERENITY WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+				break;
+
+			case 4:
+				inv_give_to_player("TRUTH WHEEL");
+				_G(flags[V217]) = 0;
+				player_update_info(_G(my_walker), &_G(player_info));
+				digi_play("950_S40", 2, 255, -1, 950);
+				kernel_examine_inventory_object("PING TRUTH WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+				break;
+
+			case 5:
+				inv_give_to_player("WISDOM WHEEL");
+				_G(flags[V217]) = 0;
+				player_update_info(_G(my_walker), &_G(player_info));
+				digi_play("950_S40", 2, 255, -1, 950);
+				kernel_examine_inventory_object("PING WISDOM WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+				break;
+
+			default:
+				break;
+			}
+		}
+		break;
+
+	case 75:
+		sendWSMessage_130000(_G(my_walker), 76);
+		break;
+
+	case 76:
+		sendWSMessage_150000(_G(my_walker), 77);
+		break;
+
+	case 77:
+		hotspot_set_active(_G(currentSceneDef).hotspots, "EMPTY NICHE", true);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "PRAYER WHEEL #4", false);
+		player_set_commands_allowed(true);
+
+		break;
+
+	case 80:
+		player_set_commands_allowed(false);
+		setGlobals1(_ripTrekMedReachHandPos1Series, 1, 5, 5, 5, 0, 5, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 81);
+
+		break;
+
+	case 81:
+		kernel_timing_trigger(5, 82, nullptr);
+		break;
+
+	case 82:
+		sendWSMessage_120000(_G(my_walker), 83);
+		break;
+
+	case 83:
+		if (ecx && _G(player).click_y <= 374) {
+			switch (imath_ranged_rand(1, 3)) {
+			case 1:
+				digi_play("com077", 1, 255, 84, -1);
+				break;
+
+			case 2:
+				digi_play("com078", 1, 255, 84, -1);
+				break;
+
+			case 3:
+				digi_play("com079", 1, 255, 84, -1);
+				break;
+
+			default:
+				break;
+			}
+		}
+
+		break;
+
+	case 84:
+		sendWSMessage_130000(_G(my_walker), 85);
+		break;
+
+	case 85:
+		sendWSMessage_150000(_G(my_walker), 86);
+		break;
+
+	case 86:
+	case 91:
+		player_set_commands_allowed(true);
+		break;
+
+	case 123:
+	case 127:
+	case 140:
+	case 141:
+		series_unload(_703RipGoesDownStairsSeries);
+		break;
+	}
 }
 
 void Room703::callback(frac16 myMessage, machine *sender) {


Commit: 621ab52da118531c7c3190f6c071037a53010a47
    https://github.com/scummvm/scummvm/commit/621ab52da118531c7c3190f6c071037a53010a47
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-26T22:46:21+01:00

Commit Message:
M4: RIDDLE: room 703 - Finish the implementation of daemon

Changed paths:
    engines/m4/riddle/rooms/section7/room703.cpp
    engines/m4/riddle/rooms/section7/room703.h


diff --git a/engines/m4/riddle/rooms/section7/room703.cpp b/engines/m4/riddle/rooms/section7/room703.cpp
index 55e2f95bf12..2cf26e1fe67 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -287,11 +287,126 @@ void Room703::daemon() {
 		break;
 
 	case 123:
+		if (_field5C == 124) {
+			switch (_field60) {
+			case 121:
+				_703Eye4aSeries = series_load("703EYE4a", -1, nullptr);
+				_field60 = 922;
+				_monkMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 640, -53, 100, 256, false, callback, "monk");
+				sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 1, 5, 123, _703Eye4aSeries, 5, 5, 0);
+
+				break;
+
+			case 122:
+				terminateMachine(_monkMach);
+				series_unload(_703Eye4aSeries);
+				conv_resume(conv_get_handle());
+
+				break;
+
+			case 125:
+				conv_load("conv703a", 10, 10, 91);
+				conv_export_value_curr(0, 0);
+				conv_export_value_curr(_G(flags[V211]), 1);
+				conv_export_value_curr(_G(flags[V213]), 2);
+				conv_export_value_curr((_G(flags[V217]) == 5) ? 1 : 0, 0);
+				conv_play(conv_get_handle());
+
+				break;
+
+			case 922:
+				switch (imath_ranged_rand(1, 2)) {
+				case 1:
+					_field60 = 923;
+					break;
+
+				case 2:
+					_field60 = 924;
+					break;
+
+				default:
+					break;
+				}
+
+				kernel_timing_trigger(10, 123, nullptr);
+
+				break;
+
+			case 923:
+				_field60 = 925;
+
+				sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 6, 11, -1, _703Eye4aSeries, 12, 15, 4);
+				sendWSMessage_1a0000(_monkMach, 9);
+				digi_play(conv_sound_to_play(), 1, 255, 123, -1);
+
+				break;
+
+			case 924:
+				_field60 = 925;
+
+				sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 6, 9, -1, _703Eye4aSeries, 12, 16, 4);
+				sendWSMessage_1a0000(_monkMach, 9);
+				digi_play(conv_sound_to_play(), 1, 255, 123, -1);
+
+				break;
+
+			case 925:
+				_field60 = 926;
+				sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 17, 20, 123, _703Eye4aSeries, 20, 20, 0);
+				break;
+
+			case 926:
+				_field60 = 122;
+				kernel_timing_trigger(10, 123, nullptr);
+
+				break;
+
+			default:
+
+				break;
+			}
+		}
+
+		break;
+
 	case 127:
+		if (_field5C == 124) {
+			switch (_field60) {
+			case 121:
+			case 122:
+			case 124:
+			case 125:
+			case 126:
+			case 127:
+			case 922:
+			case 923:
+			case 924:
+			case 925:
+			case 926:
+				kernel_timing_trigger(1, 123, nullptr);
+				break;
+
+			default:
+				break;
+			}
+		}
+
+		break;
+
 	case 140:
+		player_set_commands_allowed(true);
+		ws_unhide_walker(_G(my_walker));
+		terminateMachine(_ripStairsMach);
+		kernel_timing_trigger(10, 141, nullptr);
+
+		break;
+
 	case 141:
 		series_unload(_703RipGoesDownStairsSeries);
 		break;
+
+	default:
+		break;
 	}
 }
 
diff --git a/engines/m4/riddle/rooms/section7/room703.h b/engines/m4/riddle/rooms/section7/room703.h
index b2b4bdf1ab7..f1741a83adc 100644
--- a/engines/m4/riddle/rooms/section7/room703.h
+++ b/engines/m4/riddle/rooms/section7/room703.h
@@ -42,9 +42,14 @@ public:
 private:
 	static void callback(frac16 myMessage, machine *sender);
 	
+	machine *_monkMach = nullptr;
 	machine *_prayerWheelMach = nullptr;
 	machine *_ripStairsMach = nullptr;
 	
+	int32 _field5C = 0;
+	int32 _field60 = 0;
+
+	int32 _703Eye4aSeries = 0;
 	int32 _703RipGoesDownStairsSeries = 0;
 	int32 _ripTrekMedReachHandPos1Series = 0;
 };




More information about the Scummvm-git-logs mailing list