[Scummvm-git-logs] scummvm master -> 3c3d2d9a3d4ff6933408652d7b38d188a41eef4c

Strangerke noreply at scummvm.org
Thu Nov 14 06:51:00 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:
3c3d2d9a3d M4: RIDDLE: Room 204: Partial implementation of Daemon (up to 701)


Commit: 3c3d2d9a3d4ff6933408652d7b38d188a41eef4c
    https://github.com/scummvm/scummvm/commit/3c3d2d9a3d4ff6933408652d7b38d188a41eef4c
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-14T07:50:22+01:00

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

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 46cc537d543..fe49607ecbf 100644
--- a/engines/m4/riddle/rooms/section2/room204.cpp
+++ b/engines/m4/riddle/rooms/section2/room204.cpp
@@ -1767,7 +1767,15 @@ void Room204::daemon() {
 		break;
 
 	case 665:
+		digi_play((_field170 == 1) ? "204M26" : "204M27", 1, 255, 666, -1);
+		break;
+
 	case 666:
+		_field10 = 20;
+		digi_play((_field170 == 1) ? "204R48" : "204R49", 1, 255, 667, -1);
+
+		break;
+
 	case 667:
 		_field10 = 21;
 		_fieldD8 = 1;
@@ -1776,6 +1784,16 @@ void Room204::daemon() {
 		break;
 
 	case 669:
+		DisposePath(_mcMach->walkPath);
+		_fieldDC = 1;
+		_fieldE4_walkerDestX = 555;
+		_mcMach->walkPath = CreateCustomPath(555, 323, -1);
+		ws_custom_walk(_mcMach, 10, 670, true);
+		_fieldDC = 1;
+
+		break;
+
+	case 670:
 		kernel_timing_trigger(1, 630, nullptr);
 		_fieldDC = 1;
 		_fieldE0 = 555;
@@ -1787,9 +1805,24 @@ void Room204::daemon() {
 
 		break;
 
-	case 670:
 	case 675:
+		player_set_commands_allowed(false);
+		digi_preload("950_s34", -1);
+		CompactMem();
+		midi_play("RIPTHEM1", 180, 0, -1, 949);
+		_204pu99Series = series_load("204PU99", -1, nullptr);
+		_ripSketchingInNotebookPos2Series = series_load("RIP SKETCHING IN NOTEBOOK POS 2", -1, nullptr);
+		setGlobals1(_ripSketchingInNotebookPos2Series, 1, 17, 17, 17, 0, 18, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 676);
+
+		break;
+
 	case 676:
+		sendWSMessage_120000(_G(my_walker), 677);
+		digi_play("950_s34", 2, 200, -1, -1);
+
+		break;
+
 	case 677:
 		_204pu99Mach = series_place_sprite("204PU99", 0, 0, 0, 100, 0);
 		kernel_timing_trigger(120, 678, nullptr);
@@ -1807,6 +1840,13 @@ void Room204::daemon() {
 		break;
 
 	case 680:
+		series_unload(_204pu99Series);
+		series_unload(_ripSketchingInNotebookPos2Series);
+		digi_unload("950_s34");
+		kernel_timing_trigger(1, 697, nullptr);
+
+		break;
+
 	case 681:
 		_field140 = 1;
 		_field144_triggerNum = kernel_trigger_create(682);
@@ -1814,7 +1854,23 @@ void Room204::daemon() {
 		break;
 
 	case 682:
+		_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, 683, _priestTurnsFrom3To9Series, 37, 37, 0);
+
+		break;
+
 	case 683:
+		terminateMachine(_priestTurningStateMach);
+		_priestTurningStateMach = nullptr;
+		series_unload(_priestTurnsFrom3To9Series);
+		ws_unhide_walker(_priestWalkerMach);
+		ws_demand_facing(_priestWalkerMach, 9);
+		kernel_timing_trigger(1, 684, nullptr);
+
+		break;
+
 	case 684:
 		game_set_scale(369, 326, 100, 99);
 		sendWSMessage_10000(_priestWalkerMach, 289, 305, 9, 687, 1);
@@ -1823,7 +1879,11 @@ void Room204::daemon() {
 		break;
 
 	case 687:
+		_field10 = 16;
+		_field18_triggerNum = kernel_trigger_create(688);
+
 		break;
+
 	case 688:
 		_field2C = 1;
 		subDaemon_ADBB0();
@@ -1832,6 +1892,14 @@ void Room204::daemon() {
 		break;
 
 	case 689:
+		if (_ripDeltaMachineStateMach) {
+			kernel_timing_trigger(10, 689, nullptr);
+		} else {
+			ws_walk(_G(my_walker), 486, 367, nullptr, 691, 4, true);
+		}
+
+		break;
+
 	case 691:
 		_fieldD8 = 1;
 		_fieldC8_trigger = kernel_trigger_create(692);
@@ -1850,11 +1918,36 @@ void Room204::daemon() {
 		break;
 
 	case 694:
+		_fieldD4 = 5;
+		_fieldDC = 1;
+		_field108 = 1;
+		kernel_timing_trigger(1, 574, nullptr);
+		_fieldBC_trigger = kernel_trigger_create(695);
+
+		break;
+
 	case 695:
+		kernel_timing_trigger(1, 725, nullptr);
+		break;
+
 	case 696:
+		kernel_timing_trigger(1, 675, nullptr);
+		break;
+
 	case 697:
+		_fieldD4 = 13;
+		digi_play("204M03", 1, 255, 699, -1);
+
+		break;
+
 	case 699:
+		kernel_timing_trigger(1, 700, nullptr);
+		break;
+
 	case 700:
+		digi_play("204R04", 1, 255, 701, -1);
+		break;
+
 	case 701:
 		_fieldD8 = 1;
 		_fieldC8_trigger = kernel_trigger_create(702);
@@ -1895,6 +1988,9 @@ void Room204::daemon() {
 		break;
 
 	case 715:
+		digi_play("204R03C", 1, 255, -1, -1);
+		break;
+
 	case 716:
 		series_stream("PRIEST BOWS", 7, 0, 681);
 		digi_unload("204R03C");
@@ -1910,13 +2006,35 @@ void Room204::daemon() {
 		break;
 
 	case 721:
+		digi_play("0507p02a", 1, 255, -1, 204);
+		break;
+
 	case 722:
 	case 723:
 	case 725:
+		digi_play("204R37", 1, 255, 726, -1);
+		break;
+
 	case 726:
+		_fieldD4 = 13;
+		digi_play("204M22", 1, 255, 727, -1);
+		break;
+
 	case 727:
+		_fieldD4 = 5;
+		digi_play("204R38", 1, 255, 728, -1);
+		break;
+
 	case 728:
+		_fieldD4 = 13;
+		digi_play("204M23", 1, 255, 729, -1);
+		break;
+
 	case 729:
+		_fieldD4 = 5;
+		digi_play("204R39", 1, 255, 730, -1);
+		break;
+
 	case 730:
 		kernel_timing_trigger(1, 696, nullptr);
 		break;
diff --git a/engines/m4/riddle/rooms/section2/room204.h b/engines/m4/riddle/rooms/section2/room204.h
index 5006cfd68d8..b08de80eae5 100644
--- a/engines/m4/riddle/rooms/section2/room204.h
+++ b/engines/m4/riddle/rooms/section2/room204.h
@@ -109,7 +109,8 @@ private:
 	int32 _field188 = 0;
 
 	int32 _field90_series = 0;
-
+	
+	int32 _204pu99Series = 0;
 	int32 _acolyteGrabsMalletSeries = 0;
 	int32 _acolyteSaysHaltSeries;
 	int32 _courtyardGongSeries = 0;
@@ -120,6 +121,7 @@ private:
 	int32 _meiTrekTalkerPos4Series = 0;
 	int32 _priestTurnsFrom3To9Series = 0;
 	int32 _ripDropsSeries = 0;
+	int32 _ripSketchingInNotebookPos2Series = 0;
 	int32 _ripTrekHandTalkPos3Series = 0;
 	int32 _ripTrekHeadTurnPos5Series = 0;
 	int32 _ripTrekLHandTalkPos4Series = 0;




More information about the Scummvm-git-logs mailing list