[Scummvm-git-logs] scummvm master -> 308a1c5cad096060a81fd3c7bd448674110c83ec

Strangerke noreply at scummvm.org
Fri Nov 8 08:47:53 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:
308a1c5cad M4: RIDDLE: Room 204 - daemon switch up to 567


Commit: 308a1c5cad096060a81fd3c7bd448674110c83ec
    https://github.com/scummvm/scummvm/commit/308a1c5cad096060a81fd3c7bd448674110c83ec
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-08T09:46:45+01:00

Commit Message:
M4: RIDDLE: Room 204 - daemon switch up to 567

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 11e7d3c3ea5..7be5ee2c55a 100644
--- a/engines/m4/riddle/rooms/section2/room204.cpp
+++ b/engines/m4/riddle/rooms/section2/room204.cpp
@@ -171,26 +171,26 @@ void Room204::init() {
 				kernel_timing_trigger(1, 708, nullptr);
 				switch (imath_ranged_rand(1, 4)) {
 				case 1:
-					_fieldE4 = 1663;
+					_fieldE4_walkerDestX = 1663;
 					break;
 
 				case 2:
-					_fieldE4 = 1576;
+					_fieldE4_walkerDestX = 1576;
 					break;
 
 				case 3:
-					_fieldE4 = 1494;
+					_fieldE4_walkerDestX = 1494;
 					break;
 
 				case 4:
-					_fieldE4 = 1412;
+					_fieldE4_walkerDestX = 1412;
 					break;
 
 				default:
 					break;
 				}
 
-				_mcMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, _fieldE4, 323, 2, Walker::player_walker_callback, "mc walker room 204");
+				_mcMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, _fieldE4_walkerDestX, 323, 2, Walker::player_walker_callback, "mc walker room 204");
 				addMovingMeiHotspot();
 				kernel_timing_trigger(1, 630, nullptr);
 				kernel_timing_trigger(1, 578, nullptr);
@@ -429,31 +429,170 @@ void Room204::daemon() {
 		break;
 
 	case 531:
+		digi_unload("204R03");
+		sendWSMessage_130000(_G(my_walker), 532);
+
+		break;
+
 	case 532:
+		sendWSMessage_150000(_G(my_walker), 533);
+
+		break;
+
 	case 533:
+		series_unload(_ripTrekLHandTalkPos4Series);
+		inv_give_to_player("PASS");
+		_fieldD4 = 3;
+		_fieldBC_trigger = kernel_trigger_create(535);
+
+		break;
+
 	case 535:
+		_fieldD8 = 1;
+		_field2C = 1;
+		kernel_timing_trigger(5, 537, nullptr);
+
+		break;
+
 	case 536:
+		ws_walk(_G(my_walker), 1612, 328, nullptr, 538, 4, true);
+		kernel_timing_trigger(240, 537, nullptr);
+
+		break;
+
 	case 537:
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(1642, 333, -1);
+		ws_custom_walk(_mcMach, 10, -1, true);
+
+		break;
+
 	case 538:
+		ws_get_walker_info(_mcMach, &_fieldFC_infoX, &_field100_infoY, &_G(player_info).scale, &_G(player_info).depth, &_G(player_info).facing);
+		kernel_timing_trigger(1, (_fieldFC_infoX == 1642) ? 539 : 538, nullptr);
+
+		break;
+
 	case 539:
+		_ripTrekLHandTalkPos4Series = series_load("RIP TREK L HAND TALK POS4", -1, nullptr);
+		setGlobals1(_ripTrekLHandTalkPos4Series, 1, 5, 5, 5, 0, 6, 9, 6, 9, 1, 10, 17, 1, 1, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 540);
+
+		break;
+
 	case 540:
+		sendWSMessage_120000(_G(my_walker), -1);
+		sendWSMessage_190000(_G(my_walker), 20);
+		digi_play("204R34", 1, 255, 541, -1);
+
+		break;
+
 	case 541:
+		sendWSMessage_130000(_G(my_walker), 542);
+
+		break;
+
 	case 542:
+		sendWSMessage_150000(_G(my_walker), 543);
+
+		break;
+
 	case 543:
+		digi_play("204M20", 1, 255, 544, -1);
+
+		break;
+
 	case 544:
+		setGlobals1(_ripTrekLHandTalkPos4Series, 1, 5, 5, 5, 0, 6, 9, 6, 9, 1, 10, 17, 1, 1, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 545);
+
+		break;
+
 	case 545:
+		sendWSMessage_120000(_G(my_walker), -1);
+		sendWSMessage_190000(_G(my_walker), 20);
+		digi_play("204R35", 1, 255, 546, -1);
+
+		break;
+
 	case 546:
+		digi_play("204R36", 1, 255, 547, -1);
+
+		break;
+
 	case 547:
+		sendWSMessage_130000(_G(my_walker), 548);
+
+		break;
+
 	case 548:
+		sendWSMessage_150000(_G(my_walker), 549);
+
+		break;
+
 	case 549:
+		digi_play("204M21", 1, 255, 550, -1);
+
+		break;
+
 	case 550:
+		kernel_timing_trigger(60, 551, nullptr);
+
+		break;
+
 	case 551:
+		_fieldE4_walkerDestX = 1663;
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(_fieldE4_walkerDestX, 323, -1);
+		ws_custom_walk(_mcMach, 2, 555, true);
+
+		break;
+
 	case 555:
+		kernel_timing_trigger(1, 630, nullptr);
+		kernel_timing_trigger(1, 578, nullptr);
+
+		break;
+
 	case 556:
+		player_set_commands_allowed(false);
+		ws_walk(_G(my_walker), 1612, 328, nullptr, 558, 9, true);
+		kernel_timing_trigger(140, 557);
+
+		break;
+
 	case 557:
+		_fieldE4_walkerDestX = 1663;
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(1770, 330, _fieldE4_walkerDestX, 323, -1);
+		ws_custom_walk(_mcMach, 2, -1, true);
+
+		break;
+
 	case 558:
+		ws_get_walker_info(_mcMach, &_fieldFC_infoX, &_field100_infoY, &_G(player_info).scale, &_G(player_info).depth, &_G(player_info).facing);
+		kernel_timing_trigger(1, (_fieldFC_infoX == _fieldE4_walkerDestX) ? 559 : 558, nullptr);
+
+		break;
+
 	case 559:
+		kernel_timing_trigger(60, 630, nullptr);
+		kernel_timing_trigger(1, 578, nullptr);
+		break;
+
 	case 567:
+		if (_mcMach) {
+			_fieldE4_walkerDestX = 1663;
+			DisposePath(_mcMach->walkPath);
+			_mcMach->walkPath = CreateCustomPath(1720, 337, -1);
+			ws_custom_walk(_mcMach, 9, 583, true);
+			series_unload(_meiShowsRipHerPassesSeries);
+		} else {
+			kernel_timing_trigger(5, 567, nullptr);
+		}
+
+		break;
+
 	case 569:
 	case 570:
 	case 571:
@@ -504,6 +643,10 @@ void Room204::daemon() {
 	case 634:
 	case 635:
 	case 636:
+		sendWSMessage_150000(_G(my_walker), 637);
+
+		break;
+
 	case 637:
 	case 638:
 	case 639:
@@ -583,12 +726,12 @@ void Room204::initWalkerSeries() {
 }
 
 void Room204::addMovingMeiHotspot() {
-	HotSpotRec *spot = hotspot_new(_fieldE4 - 10, 273, _fieldE4 + 10, 323);
+	HotSpotRec *spot = hotspot_new(_fieldE4_walkerDestX - 10, 273, _fieldE4_walkerDestX + 10, 323);
 	hotspot_newVerb(spot, "TALK TO");
 	hotspot_newVocab(spot, "MEI CHEN");
 
 	spot->cursor_number = 7;
-	spot->feet_x = _fieldE4 + 20;
+	spot->feet_x = _fieldE4_walkerDestX + 20;
 	spot->feet_y = 333;
 	spot->facing = 10;
 
diff --git a/engines/m4/riddle/rooms/section2/room204.h b/engines/m4/riddle/rooms/section2/room204.h
index e5fed028d0a..bae27b32190 100644
--- a/engines/m4/riddle/rooms/section2/room204.h
+++ b/engines/m4/riddle/rooms/section2/room204.h
@@ -46,6 +46,7 @@ private:
 	void addLookMalletHotspot();
 
 	int32 _field4 = 0;
+	int32 _field2C = 0;
 	int32 _field40 = 0;
 	int32 _field44 = 0;
 	int32 _field48 = 0;
@@ -55,11 +56,14 @@ private:
 	int32 _fieldC4 = 0;
 	int32 _fieldCC_trigger = 0;
 	int32 _fieldD4 = 0;
+	int32 _fieldD8 = 0;
 	int32 _fieldDC = 0;
 	int32 _fieldE0 = 0;
-	int32 _fieldE4 = 0;
+	int32 _fieldE4_walkerDestX = 0;
 	int32 _fieldEC = 0;
 	int32 _fieldF0 = 0;
+	int32 _fieldFC_infoX = 0;
+	int32 _field100_infoY = 0;
 	int32 _field104 = 0;
 	int32 _field108 = 0;
 	int32 _field180 = 0;




More information about the Scummvm-git-logs mailing list