[Scummvm-git-logs] scummvm master -> 459abf89814f73e34f4d1150dd9bad88b1608122

Strangerke noreply at scummvm.org
Wed Nov 13 22:31:59 UTC 2024


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:
459abf8981 M4: RIDDLE: Room 204: Partial implementation of Daemon (up to 664)


Commit: 459abf89814f73e34f4d1150dd9bad88b1608122
    https://github.com/scummvm/scummvm/commit/459abf89814f73e34f4d1150dd9bad88b1608122
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-13T23:31:48+01:00

Commit Message:
M4: RIDDLE: Room 204: Partial implementation of Daemon (up to 664)

Changed paths:
    engines/m4/riddle/rooms/section2/room204.cpp
    engines/m4/riddle/rooms/section2/room204.h


diff --git a/engines/m4/riddle/rooms/section2/room204.cpp b/engines/m4/riddle/rooms/section2/room204.cpp
index 5ef3eaf5695..46cc537d543 100644
--- a/engines/m4/riddle/rooms/section2/room204.cpp
+++ b/engines/m4/riddle/rooms/section2/room204.cpp
@@ -1359,7 +1359,7 @@ void Room204::daemon() {
 		break;
 
 	case 594:
-		if (_field148_mach)
+		if (_priestTurningStateMach)
 			_field13C_triggerNum = kernel_trigger_create(596);
 		else
 			kernel_timing_trigger(20, 594, nullptr);
@@ -1391,12 +1391,12 @@ void Room204::daemon() {
 		}
 
 		if (_field140 == 1) {
-			terminateMachine(_field148_mach);
-			_field148_mach = nullptr;
+			terminateMachine(_priestTurningStateMach);
+			_priestTurningStateMach = nullptr;
 
-			if (_field144 != -1) {
-				kernel_trigger_dispatchx(_field144);
-				_field144 = -1;
+			if (_field144_triggerNum != -1) {
+				kernel_trigger_dispatchx(_field144_triggerNum);
+				_field144_triggerNum = -1;
 			}
 		}
 
@@ -1407,12 +1407,12 @@ void Room204::daemon() {
 	case 604:
 		switch (_field134) {
 		case 1:
-			sendWSMessage_10000(1, _field148_mach, _field74_series, 2, 2, 603, _field74_series, 2, 2, 0);
+			sendWSMessage_10000(1, _priestTurningStateMach, _field74_series, 2, 2, 603, _field74_series, 2, 2, 0);
 			break;
 
 		case 2: {
 			int32 rnd = imath_ranged_rand(1, 2);
-			sendWSMessage_10000(1, _field148_mach, _field74_series, 1, rnd, 603, _field74_series, rnd, rnd, 0);
+			sendWSMessage_10000(1, _priestTurningStateMach, _field74_series, 1, rnd, 603, _field74_series, rnd, rnd, 0);
 			}
 
 			break;
@@ -1625,24 +1625,93 @@ void Room204::daemon() {
 		break;
 
 	case 631:
+		kernel_timing_trigger(1, 632, nullptr);
+		break;
+
 	case 632:
+		subDaemon_F601();
+		addMovingMeiHotspot();
+		_fieldE0 = _fieldE4_walkerDestX;
+
+		break;
+
 	case 633:
+		_ripTrekMedReachHandPos1Series = series_load("RIP TREK MED REACH HAND POS1", -1, nullptr);
+		ws_walk(_G(my_walker), 473, 331, nullptr, 634, 1, true);
+
+		break;
+
 	case 634:
+		setGlobals1(_ripTrekMedReachHandPos1Series, 1, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 635);
+
+		break;
+
 	case 635:
+		_malletSpriteMach = series_place_sprite("MALLET SPRITE", 0, 0, 0, 100, 2304);
+		sendWSMessage_120000(_G(my_walker), 636);
+		inv_move_object("MALLET", 204);
+
+		break;
+
 	case 636:
 		sendWSMessage_150000(_G(my_walker), 637);
 		break;
 
 	case 637:
+		if (_G(flags[V056]) == 1) {
+			hotspot_set_active(_G(currentSceneDef).hotspots, "MALLET", true);
+			player_set_commands_allowed(true);
+		} else {
+			series_unload(_ripTrekMedReachHandPos1Series);
+			ws_walk(_G(my_walker), 468, 338, nullptr, 638, 9, true);
+		}
+
+		break;
+
 	case 638:
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(555, 323, 473, 331, -1);
+		ws_custom_walk(_mcMach, 9, 639, true);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MALLET", true);
+		_field40 = 0;
+
+		break;
+
 	case 639:
+		_fieldD4 = 4;
+		_fieldDC = 1;
+		_field108 = 1;
+		kernel_timing_trigger(1, 574, nullptr);
+		_fieldBC_trigger = kernel_trigger_create(588);
+
+		break;
+
 	case 647:
+		digi_play("204R50", 1, 255, -1, -1);
+		_ripTrekMedReachHandPos1Series = series_load("RIP TREK MED REACH HAND POS1", -1, nullptr);
+		ws_walk(_G(my_walker), 473, 331, nullptr, 648, 1, true);
+
+		break;
+
 	case 648:
+		setGlobals1(_ripTrekMedReachHandPos1Series, 1, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 649);
+
+		break;
+
 	case 649:
 		sendWSMessage_150000(_G(my_walker), 650);
 		break;
 
 	case 650:
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MALLET", true);
+		_malletSpriteMach = series_place_sprite("MALLET SPRITE", 0, 0, 0, 100, 2304);
+		inv_move_object("MALLET", 204);
+		kernel_timing_trigger(5, 651, nullptr);
+
+		break;
+
 	case 651:
 		_field2C = 1;
 		kernel_timing_trigger(1, 652, nullptr);
@@ -1651,20 +1720,61 @@ void Room204::daemon() {
 
 	case 652:
 		_field40 = 0;
-		series_unload(_field88);
+		series_unload(_ripTrekMedReachHandPos1Series);
 		player_set_commands_allowed(true);
 		_field124 = 1;
 		player_set_commands_allowed(true);
+
 		break;
 
 	case 660:
+		_field134 = 1;
+		_field13C_triggerNum = kernel_trigger_create(661);
+
+		break;
+
 	case 661:
+		_field10 = 16;
+		_field140 = 1;
+		_field144_triggerNum = kernel_trigger_create(662);
+
+		break;
+
 	case 662:
+		_priestTurnsFrom3To9Series = series_load("PRIEST TURNS FROM 3 TO 9", -1, nullptr);
+		ws_hide_walker(_priestWalkerMach);
+		_priestTurningStateMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 360, 305, 100, 2048, false, triggerMachineByHashCallback, "Priest Turning State Machine");
+		sendWSMessage_10000(1, _priestTurningStateMach, _priestTurnsFrom3To9Series, 1, 37, 663, _priestTurnsFrom3To9Series, 37, 37, 0);
+		_field2C = 1;
+
+		break;
+
 	case 663:
+		terminateMachine(_priestTurningStateMach);
+		_priestTurningStateMach = nullptr;
+		series_unload(_priestTurnsFrom3To9Series);
+		ws_unhide_walker(_priestWalkerMach);
+		ws_demand_facing(_priestWalkerMach, 9);
+		kernel_timing_trigger(2, 664, nullptr);
+
+		break;
+
 	case 664:
+		game_set_scale(369, 326, 100, 99);
+		sendWSMessage_10000(_priestWalkerMach, 289, 305, 9, 665, 1);
+		game_set_scale(369, 326, 47, 38);
+
+		break;
+
 	case 665:
 	case 666:
 	case 667:
+		_field10 = 21;
+		_fieldD8 = 1;
+		_fieldC8_trigger = kernel_trigger_create(669);
+
+		break;
+
 	case 669:
 		kernel_timing_trigger(1, 630, nullptr);
 		_fieldDC = 1;
@@ -1687,12 +1797,31 @@ void Room204::daemon() {
 		break;
 
 	case 678:
+		terminateMachine(_204pu99Mach);
+		sendWSMessage_110000(_G(my_walker), 679);
+
+		break;
+
 	case 679:
+		sendWSMessage_140000(_G(my_walker), 680);
+		break;
+
 	case 680:
 	case 681:
+		_field140 = 1;
+		_field144_triggerNum = kernel_trigger_create(682);
+
+		break;
+
 	case 682:
 	case 683:
 	case 684:
+		game_set_scale(369, 326, 100, 99);
+		sendWSMessage_10000(_priestWalkerMach, 289, 305, 9, 687, 1);
+		game_set_scale(369, 326, 47, 38);
+
+		break;
+
 	case 687:
 		break;
 	case 688:
@@ -1704,6 +1833,11 @@ void Room204::daemon() {
 
 	case 689:
 	case 691:
+		_fieldD8 = 1;
+		_fieldC8_trigger = kernel_trigger_create(692);
+
+		break;
+
 	case 692:
 		DisposePath(_mcMach->walkPath);
 		_mcMach->walkPath = CreateCustomPath(526, 360, -1);
@@ -1712,6 +1846,9 @@ void Room204::daemon() {
 		break;
 
 	case 693:
+		ws_walk(_G(my_walker), 486, 367, nullptr, 694, 2, true);
+		break;
+
 	case 694:
 	case 695:
 	case 696:
@@ -1719,6 +1856,11 @@ void Room204::daemon() {
 	case 699:
 	case 700:
 	case 701:
+		_fieldD8 = 1;
+		_fieldC8_trigger = kernel_trigger_create(702);
+
+		break;
+
 	case 702:
 	case 703:
 		kernel_timing_trigger(1, 630, nullptr);
@@ -1740,6 +1882,9 @@ void Room204::daemon() {
 		break;
 
 	case 710:
+		pal_fade_init(_G(master_palette), 21, 255, 0, 15, 711);
+		break;
+
 	case 712:
 	case 713:
 	case 714:
@@ -1751,6 +1896,11 @@ void Room204::daemon() {
 
 	case 715:
 	case 716:
+		series_stream("PRIEST BOWS", 7, 0, 681);
+		digi_unload("204R03C");
+
+		break;
+
 	case 719:
 	case 720:
 		_field10 = 16;
@@ -1772,6 +1922,7 @@ void Room204::daemon() {
 		break;
 
 	case 1995:
+		midi_stop();
 		break;
 
 	default:
diff --git a/engines/m4/riddle/rooms/section2/room204.h b/engines/m4/riddle/rooms/section2/room204.h
index 4e5b8cb3978..5006cfd68d8 100644
--- a/engines/m4/riddle/rooms/section2/room204.h
+++ b/engines/m4/riddle/rooms/section2/room204.h
@@ -67,7 +67,7 @@ private:
 	int32 _field68 = 0;
 	int32 _field74_series = 0;
 	int32 _field78_series = 0;
-	int32 _field88 = 0;
+	int32 _ripTrekMedReachHandPos1Series = 0;
 	int32 _fieldBC_trigger = 0;
 	int32 _fieldC0_trigger = 0;
 	int32 _fieldC4 = 0;
@@ -99,7 +99,7 @@ private:
 	int32 _field138 = 0;
 	int32 _field13C_triggerNum = 0;
 	int32 _field140 = 0;
-	int32 _field144 = 0;
+	int32 _field144_triggerNum = 0;
 	int32 _field164 = 0;
 	int32 _field168 = 0;
 	int32 _field170 = 0;
@@ -108,36 +108,37 @@ private:
 	int32 _field184 = 0;
 	int32 _field188 = 0;
 
+	int32 _field90_series = 0;
+
 	int32 _acolyteGrabsMalletSeries = 0;
 	int32 _acolyteSaysHaltSeries;
-	int32 _field90_series = 0;
-	int32 _ripTrekHandTalkPos3Series = 0;
 	int32 _courtyardGongSeries = 0;
 	int32 _malletSpriteSeries = 0;
 	int32 _meiShowsRipHerPassesSeries = 0;
 	int32 _meiTalksPos3Series = 0;
 	int32 _meiTrekRtHandOutPos2Series = 0;
 	int32 _meiTrekTalkerPos4Series = 0;
+	int32 _priestTurnsFrom3To9Series = 0;
 	int32 _ripDropsSeries = 0;
+	int32 _ripTrekHandTalkPos3Series = 0;
 	int32 _ripTrekHeadTurnPos5Series = 0;
 	int32 _ripTrekLHandTalkPos4Series = 0;
 	int32 _ripTrekLowReachPos2Series = 0;
 	int32 _ripTrekTalkerPos3Series = 0;
 
-	machine *_field148_mach = nullptr;
-
 	machine *_204pu05Mach = nullptr;
 	machine *_204pu99Mach = nullptr;
 	machine *_acolyteGuardingEntranceMach = nullptr;
 	machine *_courtyardGongMach = nullptr;
 	machine *_mcMach = nullptr;
 	machine *_malletSpriteMach = nullptr;
+	machine *_meiChenOtherStatesMach = nullptr;
+	machine *_priestTurningStateMach = nullptr;
 	machine *_priestWalkerMach = nullptr;
 	machine *_ripDeltaMachineStateMach = nullptr;
+	machine *_safariShadow2Mach = nullptr;
 	machine *_safariShadow3Mach = nullptr;
 	machine *_silverButterflyCoinMach = nullptr;
-	machine *_meiChenOtherStatesMach = nullptr;
-	machine *_safariShadow2Mach = nullptr;
 };
 
 




More information about the Scummvm-git-logs mailing list