[Scummvm-git-logs] scummvm master -> ecc9bec7ffe3a8402948a329f62374d964be6989

Strangerke noreply at scummvm.org
Wed Nov 13 06:14:31 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:
ecc9bec7ff M4: RIDDLE: Room 204: Partial implementation of Daemon (up to 630)


Commit: ecc9bec7ffe3a8402948a329f62374d964be6989
    https://github.com/scummvm/scummvm/commit/ecc9bec7ffe3a8402948a329f62374d964be6989
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-13T07:11:02+01:00

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

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 1840430fc06..5ef3eaf5695 100644
--- a/engines/m4/riddle/rooms/section2/room204.cpp
+++ b/engines/m4/riddle/rooms/section2/room204.cpp
@@ -1538,13 +1538,92 @@ void Room204::daemon() {
 		break;
 
 	case 621:
+		if (_dword1A189C < 1) {
+			++_dword1A189C;
+		} else {
+			_dword1A189C = 0;
+			sendWSMessage_150000(_mcMach, 622);
+		}
+
+		break;
+
 	case 622:
+		series_unload(_meiTrekTalkerPos4Series);
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(_fieldE4_walkerDestX + 1, 343, -1);
+		ws_custom_walk(_mcMach, 4, 623, true);
+		player_update_info(_G(my_walker), &_G(player_info));
+		ws_walk(_G(my_walker), _G(player_info).x, _G(player_info).y, nullptr, -1, 4, true);
+
+		break;
+
 	case 623:
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(1874, 333, -1);
+		ws_custom_walk(_mcMach, 3, -1, true);
+		kernel_timing_trigger(360, 625, nullptr);
+
+		break;
+
 	case 624:
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(1874, 333, -1);
+		ws_custom_walk(_mcMach, 3, -1, true);
+		kernel_timing_trigger(240, 625, nullptr);
+
+		break;
+
 	case 625:
+		ws_walk(_G(my_walker), 1874, 333, nullptr, 626, 3, true);
+		break;
+
 	case 626:
+		pal_fade_init(_G(master_palette), 21, 255, 0, 30, 629);
+		break;
+
 	case 629:
+	case 711:
+		_G(game).new_room = 203;
+		break;
+
 	case 630:
+		if (_field108 != 1) {
+			player_update_info(_mcMach, &_G(player_info));
+			if (_G(game_buff_ptr)->x1 * -1 >= _G(player_info).x) {
+				hotspot_set_active(_G(currentSceneDef).hotspots, "MEI CHEN", false);
+				subDaemon_21781();
+
+				player_update_info(_mcMach, &_G(player_info));
+				if ((_G(game_buff_ptr)->x1 * -1) - 30 > _G(player_info).x) {
+					ws_demand_location(_mcMach, (_G(game_buff_ptr)->x1 * -1) - 30, 323);
+				}
+
+				DisposePath(_mcMach->walkPath);
+				_mcMach->walkPath = CreateCustomPath(_fieldE4_walkerDestX, 323, -1);
+
+				ws_custom_walk(_mcMach, (_fieldDC == 1) ? 10 : 2, 631, true);
+
+			} else if ((_G(game_buff_ptr)->x1 * -1) + 639 <= _G(player_info).x) {
+				hotspot_set_active(_G(currentSceneDef).hotspots, "MEI CHEN", false);
+				subDaemon_21781();
+
+				player_update_info(_mcMach, &_G(player_info));
+				if ((_G(game_buff_ptr)->x1 * -1) + 669 < _G(player_info).x) {
+					ws_demand_location(_mcMach, (_G(game_buff_ptr)->x1 * -1) + 669, 323);
+				}
+
+				DisposePath(_mcMach->walkPath);
+				_mcMach->walkPath = CreateCustomPath(_fieldE4_walkerDestX, 323, -1);
+
+				ws_custom_walk(_mcMach, (_fieldDC == 1) ? 10 : 2, 631, true);
+
+			}
+
+			kernel_timing_trigger(60, 630, nullptr);
+		}
+
+		break;
+
 	case 631:
 	case 632:
 	case 633:
@@ -1552,7 +1631,6 @@ void Room204::daemon() {
 	case 635:
 	case 636:
 		sendWSMessage_150000(_G(my_walker), 637);
-
 		break;
 
 	case 637:
@@ -1561,8 +1639,16 @@ void Room204::daemon() {
 	case 647:
 	case 648:
 	case 649:
+		sendWSMessage_150000(_G(my_walker), 650);
+		break;
+
 	case 650:
 	case 651:
+		_field2C = 1;
+		kernel_timing_trigger(1, 652, nullptr);
+
+		break;
+
 	case 652:
 		_field40 = 0;
 		series_unload(_field88);
@@ -1580,6 +1666,17 @@ void Room204::daemon() {
 	case 666:
 	case 667:
 	case 669:
+		kernel_timing_trigger(1, 630, nullptr);
+		_fieldDC = 1;
+		_fieldE0 = 555;
+
+		subDaemon_ADBB0();
+		subDaemon_F601();
+		addMovingMeiHotspot();
+		player_set_commands_allowed(true);
+
+		break;
+
 	case 670:
 	case 675:
 	case 676:
@@ -1624,6 +1721,17 @@ void Room204::daemon() {
 	case 701:
 	case 702:
 	case 703:
+		kernel_timing_trigger(1, 630, nullptr);
+		midi_fade_volume(0, 120);
+		kernel_timing_trigger(120, 1995, nullptr);
+		_fieldDC = 1;
+		_fieldE0 = 555;
+		subDaemon_F601();
+		addMovingMeiHotspot();
+		player_set_commands_allowed(true);
+
+		break;
+
 	case 708:
 	case 709:
 		kernel_timing_trigger(1, 578, nullptr);
@@ -1632,7 +1740,6 @@ void Room204::daemon() {
 		break;
 
 	case 710:
-	case 711:
 	case 712:
 	case 713:
 	case 714:
@@ -1661,6 +1768,9 @@ void Room204::daemon() {
 	case 728:
 	case 729:
 	case 730:
+		kernel_timing_trigger(1, 696, nullptr);
+		break;
+
 	case 1995:
 		break;
 
@@ -1723,10 +1833,18 @@ void Room204::subDaemon_215F4() {
 	warning("STUB - subDaemon_215F4");
 }
 
+void Room204::subDaemon_21781() {
+	warning("STUB - subDaemon_21781");
+}
+
 void Room204::subDaemon_ADBB0() {
 	warning("STUB - subDaemon_ADBB0");
 }
 
+void Room204::subDaemon_F601() {
+	warning("STUB - subDaemon_F601");
+}
+
 
 } // namespace Rooms
 } // namespace Riddle
diff --git a/engines/m4/riddle/rooms/section2/room204.h b/engines/m4/riddle/rooms/section2/room204.h
index 6645fadc046..4e5b8cb3978 100644
--- a/engines/m4/riddle/rooms/section2/room204.h
+++ b/engines/m4/riddle/rooms/section2/room204.h
@@ -48,7 +48,9 @@ private:
 	void subDaemon_ADB7C();
 	void game_set_scale(int32 frontY, int32 backY, int32 frontS, int32 backS);
 	void subDaemon_215F4();
+	void subDaemon_21781();
 	void subDaemon_ADBB0();
+	void subDaemon_F601();
 	
 	int32 _dword1A189C = 0;
 




More information about the Scummvm-git-logs mailing list