[Scummvm-git-logs] scummvm master -> 32f56c9b708097c11fd93b0291b7cec48c944b40

dreammaster noreply at scummvm.org
Fri Sep 6 05:00:19 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:
32f56c9b70 M4: RIDDLE: Remainder of room daemon 501


Commit: 32f56c9b708097c11fd93b0291b7cec48c944b40
    https://github.com/scummvm/scummvm/commit/32f56c9b708097c11fd93b0291b7cec48c944b40
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-05T21:59:02-07:00

Commit Message:
M4: RIDDLE: Remainder of room daemon 501

Changed paths:
    engines/m4/riddle/rooms/section5/room501.cpp
    engines/m4/riddle/rooms/section5/room501.h


diff --git a/engines/m4/riddle/rooms/section5/room501.cpp b/engines/m4/riddle/rooms/section5/room501.cpp
index 39fce153c34..a238bab776e 100644
--- a/engines/m4/riddle/rooms/section5/room501.cpp
+++ b/engines/m4/riddle/rooms/section5/room501.cpp
@@ -423,8 +423,8 @@ void Room501::daemon() {
 				break;
 
 			case 6:
-				sendWSMessage_10000(1, _agent, _agentSeries1, 1, 46, 502,
-					_agentSeries1, 46, 46, 0);
+				sendWSMessage_10000(1, _agent, _puffinExchange, 1, 46, 502,
+					_puffinExchange, 46, 46, 0);
 				digi_play("501R36", 1);
 				break;
 
@@ -710,7 +710,402 @@ void Room501::daemon() {
 		_xyzzy7 = kernel_trigger_create(537);
 		break;
 
-	// TODO
+	case 537:
+		if (!inv_player_has("ROMANOV EMERALD"))
+			inv_give_to_player("ROMANOV EMERALD");
+
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(538);
+		break;
+
+	case 538:
+		series_unload(_ripParcelExchange);
+		kernel_timing_trigger(1, 523);
+		break;
+
+	case 539:
+		_ripParcelExchange = series_load("PARCEL XCHANGE");
+		_val3 = 3;
+		_val6 = kernel_trigger_create(540);
+		break;
+
+	case 540:
+		_val1 = 5;
+		_xyzzy7 = kernel_trigger_create(540);
+		break;
+
+	case 541:
+		_val3 = 11;
+		_val6 = kernel_trigger_create(542);
+		break;
+
+	case 542:
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(543);
+		break;
+
+	case 543: {
+		series_unload(_ripParcelExchange);
+
+		int item = conv_current_entry();
+		if (item >= 1 && item <= 12) {
+			static const char *ITEMS[12] = {
+				"CRYSTAL SKULL", "STICK AND SHELL MAP",
+				"WHEELED TOY", "REBUS AMULET", "SHRUNKEN HEAD",
+				"SILVER BUTTERFLY", "POSTAGE STAMP",
+				"GERMAN BANKNOTE", "WHALE BONE HORN",
+				"CHISEL",  "INCENSE BURNER",  "INCENSE BURNER"
+			};
+
+			inv_move_object(ITEMS[item - 1], (item == 12) ? NOWHERE : 305);
+		}
+		conv_resume();
+		break;
+	}
+
+	case 544:
+		player_set_commands_allowed(false);
+		digi_preload("950_s34");
+		_ripSketching = series_load("RIP SKETCHING IN NOTEBOOK POS 2");
+		setGlobals1(_ripSketching, 1, 17, 17, 17, 0, 18, 39, 37, 39, 1);
+		sendWSMessage_110000(545);
+		break;
+
+	case 545:
+		sendWSMessage_120000(-1);
+		digi_play("950_s34", 2, 200, 546);
+		break;
+
+	case 546:
+		sendWSMessage_110000(547);
+		break;
+
+	case 547:
+		sendWSMessage_140000(548);
+		break;
+
+	case 548:
+		_G(flags)[V148] = 1;
+		series_unload(_ripSketching);
+		digi_unload("950_s34");
+		player_set_commands_allowed(true);
+		break;
+
+	case 549:
+		player_set_commands_allowed(false);
+		_ripMoneyExchange = series_load("MONEY XCHANGE");
+		_val3 = 3;
+		_val6 = kernel_trigger_create(550);
+		break;
+
+	case 550:
+		_val3 = 14;
+		break;
+
+	case 551:
+		_xyzzy7 = kernel_trigger_create(552);
+		break;
+
+	case 552:
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(553);
+		break;
+
+	case 553:
+		series_unload(_ripMoneyExchange);
+		player_set_commands_allowed(true);
+		conv_resume();
+		break;
+
+	case 555:
+		_puffinExchange = series_load("PUFFIN XCHANGE");
+		_val1 = 5;
+		kernel_timing_trigger(1, 501);
+		_val3 = 3;
+		_val6 = kernel_trigger_create(556);
+		break;
+
+	case 556:
+		_xyzzy7 = kernel_trigger_create(557);
+		break;
+
+	case 557:
+		_deltaPuffinMachine = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, 0,
+			triggerMachineByHashCallbackNegative, "Delta Puffin Machine State");
+		_xyzzy3 = 1;
+		_xyzzy1 = 1;
+		_xyzzy5 = 1;
+		_xyzzy10 = 1;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 1, 1, 558,
+			_puffinExchange, 1, 39, 0);
+		digi_play("501R36", 1, 255, 559);
+		break;
+
+	case 558:
+	case 569:
+	case 597:
+	case 600:
+		_xyzzy10 = 0;
+		break;
+
+	case 559:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 559 : 561);
+		break;
+
+	case 561:
+		inv_move_object("DRIFTWOOD PUFFIN", 501);
+		_xyzzy10 = 1;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 39, 41, 562,
+			_puffinExchange, 41, 39, 2);
+		digi_play("501X05", 1, 255, 563);
+		break;
+
+	case 562:
+		midi_play("SADBOY2", 255, 0, -1, 949);
+		break;
+
+	case 563:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 563 : 564);
+		break;
+
+	case 564:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 40, 47, 565,
+			_puffinExchange, 47, 47, 0);
+		break;
+
+	case 565:
+		kernel_timing_trigger(1, 501);
+		_val3 = 4;
+		_val7 = kernel_trigger_create(566);
+		break;
+
+	case 566:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 48, 48, -1,
+			_puffinExchange, 48, 48, 0);
+		digi_play("501R37", 1, 255, 567);
+		break;
+
+	case 567:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 47, 40, 568,
+			_puffinExchange, 47, 47, 0);
+		_xyzzy3 = 1;
+		_xyzzy1 = 1;
+		break;
+
+	case 568:
+		_xyzzy10 = 0;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 39, 41, 569,
+			_puffinExchange, 39, 41, 2);
+		digi_play("501X06", 1, 255, 570);
+		break;
+
+	case 570:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 570 : 571);
+		break;
+
+	case 571:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 40, 47, 572,
+			_puffinExchange, 47, 47, 0);
+		break;
+
+	case 572:
+		kernel_timing_trigger(1, 501);
+		_val3 = 4;
+		_val7 = kernel_trigger_create(573);
+		break;
+
+	case 573:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 48, 48, -1,
+			_puffinExchange, 48, 48, 0);
+		digi_play("501R38", 1, 255, 574);
+		break;
+
+	case 574:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 49, 65, 575,
+			_puffinExchange, 65, 65, 0);
+		_xyzzy3 = 1;
+		_xyzzy1 = 1;
+		break;
+
+	case 575:
+		terminateMachineAndNull(_clock);
+		_clock = series_place_sprite("501 PUFFIN CLOCK", 0, 0, 0, 100, 0x780);
+		_xyzzy10 = 1;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 66, 135, 576,
+			_puffinExchange, 135, 135, 0);
+		digi_play("501x07", 1, 255, 577);
+		break;
+
+	case 576:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 135, 135, -1,
+			_puffinExchange, 135, 135, 0);
+		break;
+
+	case 577:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 577 : 576);
+		break;
+
+	case 578:
+		kernel_timing_trigger(1, 505);
+		kernel_timing_trigger(1, 501);
+		_val3 = 5;
+		_val6 = kernel_trigger_create(579);
+		break;
+
+	case 579:
+		terminateMachineAndNull(_deltaPuffinMachine);
+		kernel_examine_inventory_object("PING CLOCK FACING",
+			_G(master_palette), 5, 1, 195, 126, -1, nullptr, -1);
+
+		if (!inv_player_has("CLOCK FACING"))
+			inv_give_to_player("CLOCK FACING");
+
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(580);
+		break;
+
+	case 580:
+		digi_play("501x08", 1, 255, 581);
+		break;
+
+	case 581:
+		_val1 = 1;
+		_val3 = 4;
+		digi_play("501R39", 1, 255, 582);
+		break;
+
+	case 582:
+		_val3 = 13;
+		_xyzzy4 = kernel_trigger_create(583);
+		break;
+
+	case 583:
+		_G(flags)[V143] = 1;
+		_G(flags)[V142] = 1;
+		series_unload(_puffinExchange);
+		_xyzzy3 = 0;
+		_xyzzy1 = 1;
+		player_set_commands_allowed(true);
+		break;
+
+	case 585:
+		_val3 = 3;
+		_val6 = kernel_trigger_create(586);
+		_val1 = 5;
+		break;
+
+	case 586:
+		_xyzzy7 = kernel_trigger_create(587);
+		break;
+
+	case 587:
+		_val3 = 16;
+		_val6 = kernel_trigger_create(588);
+		break;
+
+	case 588:
+		_val1 = 5;
+		_xyzzy7 = kernel_trigger_create(589);
+		break;
+
+	case 589:
+		_val3 = 19;
+		_val6 = kernel_trigger_create(590);
+		break;
+
+	case 590:
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(591);
+		break;
+
+	case 591:
+		series_unload(_ripSignsPaper);
+		player_set_commands_allowed(true);
+		conv_resume();
+		break;
+
+	case 594:
+		_puffinExchange = series_load("PUFFIN XCHANGE");
+		_val1 = 5;
+		kernel_timing_trigger(1, 501);
+		_val3 = 3;
+		_val6 = kernel_trigger_create(595);
+		break;
+
+	case 595:
+		_xyzzy7 = kernel_trigger_create(596);
+		break;
+
+	case 596:
+		_deltaPuffinMachine = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, 0,
+			triggerMachineByHashCallbackNegative, "Delta Puffin Machine State");
+		_xyzzy3 = 1;
+		_xyzzy1 = 1;
+		_xyzzy5 = 1;
+		_xyzzy10 = 1;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 1, 1, 558,
+			_puffinExchange, 1, 39, 0);
+		digi_play("501R36", 1, 255, 598);
+		break;
+
+	case 598:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 598 : 599);
+		break;
+
+	case 599:
+		_xyzzy10 = 1;
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 39, 41, 600,
+			_puffinExchange, 41, 39, 2);
+		digi_play("501X05", 1, 255, 601);
+		break;
+
+	case 601:
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 601 : 602);
+		break;
+
+	case 602:
+		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 39, 1, 603,
+			_puffinExchange, 1, 1, 0);
+		break;
+
+	case 603:
+		kernel_timing_trigger(1, 505);
+		kernel_timing_trigger(1, 501);
+		_val3 = 5;
+		_val6 = kernel_trigger_create(604);
+		break;
+
+	case 604:
+		terminateMachineAndNull(_deltaPuffinMachine);
+		_val1 = 1;
+		_xyzzy6 = kernel_trigger_create(605);
+		break;
+
+	case 605:
+		_val3 = 13;
+		_xyzzy4 = kernel_trigger_create(606);
+		break;
+
+	case 606:
+		series_unload(_puffinExchange);
+		_xyzzy3 = 0;
+		_xyzzy1 = 1;
+		player_set_commands_allowed(true);
+		break;
+
+	case 610:
+		_val3 = 4;
+		digi_play("COM084", 1, 255, 611, 997);
+		break;
+
+	case 611:
+		_val3 = 3;
+		break;
+
+	case 612:
+		player_set_commands_allowed(true);
+		break;
+
 	default:
 		break;
 	}
diff --git a/engines/m4/riddle/rooms/section5/room501.h b/engines/m4/riddle/rooms/section5/room501.h
index c9ae78e3bb7..13a42f92f3e 100644
--- a/engines/m4/riddle/rooms/section5/room501.h
+++ b/engines/m4/riddle/rooms/section5/room501.h
@@ -35,9 +35,10 @@ private:
 	machine *_agent = nullptr;
 	machine *_clock = nullptr;
 	machine *_paper = nullptr;
+	machine *_deltaPuffinMachine = nullptr;
 	int _agentTalkLoop = 0;
 	int _agentStridesForward = 0;
-	int _agentSeries1 = 0;
+	int _puffinExchange = 0;
 	const char *_digiName = nullptr;
 	int _convEntry = 0;
 	bool _flag = false;
@@ -64,6 +65,7 @@ private:
 	int _xyzzy7 = 0;
 	int _xyzzy8 = 0;
 	int _xyzzy9 = 0;
+	int _xyzzy10 = 0;
 	int _itemsCount = 0;
 	int _items[12];
 	int32 _hasItems = 0;
@@ -81,6 +83,7 @@ private:
 	int32 _hasIncenseBurner = 0;
 	int32 _hasRomanovEmerald = 0;
 	const char *_queuedDigi[4];
+	int _ripSketching = 0;
 
 	void conv501a();
 




More information about the Scummvm-git-logs mailing list