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

Strangerke noreply at scummvm.org
Thu Nov 7 22:36:56 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:
fd3cba1db7 M4: RIDDLE: Room 204 - pre-parser + daemon switch up to 530


Commit: fd3cba1db7977e7f34923a4ab35d220692e1f094
    https://github.com/scummvm/scummvm/commit/fd3cba1db7977e7f34923a4ab35d220692e1f094
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-07T23:36:34+01:00

Commit Message:
M4: RIDDLE: Room 204 - pre-parser + daemon switch up to 530

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


diff --git a/engines/m4/adv_r/adv_trigger.cpp b/engines/m4/adv_r/adv_trigger.cpp
index 5cd70d38f33..b86732b3e9e 100644
--- a/engines/m4/adv_r/adv_trigger.cpp
+++ b/engines/m4/adv_r/adv_trigger.cpp
@@ -29,8 +29,6 @@ namespace M4 {
 #define _GT(X) _G(triggers)._##X
 
 int32 kernel_trigger_create(int32 trigger_num) {
-	int32 new_trigger;
-
 	if (trigger_num < 0)
 		return (trigger_num);
 
@@ -38,7 +36,7 @@ int32 kernel_trigger_create(int32 trigger_num) {
 		error_show(FL, 'BADT', "bad trigger. %d > 0xffff", trigger_num);
 	}
 
-	new_trigger = trigger_num + (_G(game).room_id << 16) + (_G(kernel).trigger_mode << 28);
+	int32 new_trigger = trigger_num + (_G(game).room_id << 16) + (_G(kernel).trigger_mode << 28);
 
 	return new_trigger;
 }
@@ -46,8 +44,8 @@ int32 kernel_trigger_create(int32 trigger_num) {
 bool kernel_trigger_dispatch_now(int32 trigger_num) {
 	if (g_engine->getGameType() == GType_Riddle)
 		return kernel_trigger_dispatchx(trigger_num);
-	else
-		return kernel_trigger_dispatchx(kernel_trigger_create(trigger_num));
+
+	return kernel_trigger_dispatchx(kernel_trigger_create(trigger_num));
 }
 
 void cisco_dispatch_triggers() {
diff --git a/engines/m4/riddle/rooms/section2/room204.cpp b/engines/m4/riddle/rooms/section2/room204.cpp
index de635bf42e7..11e7d3c3ea5 100644
--- a/engines/m4/riddle/rooms/section2/room204.cpp
+++ b/engines/m4/riddle/rooms/section2/room204.cpp
@@ -62,7 +62,7 @@ void Room204::init() {
 	_field44 = -1;
 	_field48 = -1;
 	_fieldC4 = -1;
-	_fieldBC = -1;
+	_fieldBC_trigger = -1;
 	_fieldEC = -1;
 	_fieldF0 = -1;
 	_field104 = 0;
@@ -200,12 +200,381 @@ void Room204::init() {
 }
 
 void Room204::pre_parser() {
+	if (player_said("enter", "PAGODA") || player_said("walk to", "PAGODA") || player_said("walk to", "stairs")) {
+		if (player_been_here(205)) {
+			_G(player).need_to_walk = false;
+			_G(player).ready_to_walk = true;
+			_G(player).waiting_for_walk = false;
+		}
+	}
+
+	if (player_been_here(205) && inv_object_is_here("GONG")) {
+		_G(player).need_to_walk = false;
+		_G(player).ready_to_walk = true;
+		_G(player).waiting_for_walk = false;
+	}
 }
 
 void Room204::parser() {
 }
 
 void Room204::daemon() {
+	switch (_G(kernel).trigger) {
+	case 5:
+		digi_play("204r47", 1, 255, -1, -1);
+		break;
+
+	case 9:
+		player_set_commands_allowed(false);
+		ws_hide_walker(_G(my_walker));
+		series_play("204rp99", 3840, 0, 11, 5, 0, 100, 0, 0, 0, -1);
+		kernel_timing_trigger(130, 11, nullptr);
+
+		break;
+
+	case 10:
+		player_set_commands_allowed(false);
+		ws_hide_walker(_G(my_walker));
+		series_play("204up", 3840, 16, 11, 5, 0, 100, 0, 0, 0, -1);
+		kernel_timing_trigger(90, 11, nullptr);
+
+		break;
+
+	case 11:
+		pal_fade_init(_G(master_palette), 21, 255, 0, 15, 12);
+		break;
+
+	case 12:
+		interface_show();
+		_G(game).new_room = 205;
+
+		break;
+
+	case 15:
+		ws_unhide_walker(_G(my_walker));
+		sendWSMessage_10000(_G(my_walker), 440, 330, 3, 50, true);
+
+		break;
+
+	case 50:
+		player_set_commands_allowed(true);
+		break;
+
+	case 500:
+		player_set_commands_allowed(false);
+		kernel_timing_trigger(1, 501, nullptr);
+
+		break;
+
+	case 501:
+		_ripDeltaMachineStateMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, _G(player_info).depth, 0, triggerMachineByHashCallback, "Rip Delta Machine State");
+		sendWSMessage_10000(1, _ripDeltaMachineStateMach, _ripDropsSeries, 1, 2, 502, _ripDropsSeries, 2, 2, 0);
+
+		break;
+
+	case 502:
+		digi_play("204_s02", 1, 255, -1, -1);
+		sendWSMessage_10000(1, _ripDeltaMachineStateMach, _ripDropsSeries, 3, 40, 503, _ripDropsSeries, 40, 40, 0);
+
+		break;
+
+	case 503:
+		digi_unload("204_s02");
+		terminateMachine(_ripDeltaMachineStateMach);
+		_ripDeltaMachineStateMach = nullptr;
+		series_unload(_ripDropsSeries);
+		ws_demand_location(_G(my_walker), 1750, 328);
+		ws_demand_facing(_G(my_walker), 5);
+		_ripTrekHeadTurnPos5Series = series_load("RIP TREK HEAD TURN POS5", -1, nullptr);
+		setGlobals1(_ripTrekHeadTurnPos5Series, 1, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 504);
+
+		break;
+
+	case 504:
+		sendWSMessage_140000(_G(my_walker), 505);
+		break;
+
+	case 505:
+		setGlobals1(_ripTrekHeadTurnPos5Series, 8, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 506);
+
+		break;
+
+	case 506:
+		sendWSMessage_140000(_G(my_walker), 507);
+		break;
+
+	case 507:
+		series_unload(_ripTrekHeadTurnPos5Series);
+		DisposePath(_mcMach->walkPath);
+		_mcMach->walkPath = CreateCustomPath(1770, 337, -1);
+
+		ws_custom_walk(_mcMach, 10, 509, true);
+
+		break;
+
+	case 509:
+		ws_walk(_G(my_walker), 1751, 329, nullptr, 512, 4, true);
+
+		break;
+
+	case 512:
+		digi_preload("204R03", -1);
+		_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), 513);
+
+		break;
+
+	case 513:
+		sendWSMessage_120000(_G(my_walker), -1);
+		sendWSMessage_190000(_G(my_walker), 20);
+		digi_play("204r01", 1, 255, 515, -1);
+
+		break;
+
+	case 515:
+		sendWSMessage_130000(_G(my_walker), 516);
+
+		break;
+
+	case 516:
+		sendWSMessage_150000(_G(my_walker), 517);
+
+		break;
+
+	case 517:
+		series_unload(_ripTrekLHandTalkPos4Series);
+		_fieldD4 = 3;
+		_fieldDC = 1;
+		_field108 = 1;
+		kernel_timing_trigger(1, 574, nullptr);
+		kernel_timing_trigger(2, 518, nullptr);
+
+		break;
+
+	case 518:
+		_fieldD4 = 3;
+		_fieldBC_trigger = kernel_trigger_create(520);
+
+		break;
+
+	case 520:
+		_fieldD4 = 6;
+		_fieldC0_trigger = kernel_trigger_create(520);
+
+		break;
+
+	case 521:
+		digi_play("204m01", 1, 255, 522, -1);
+		break;
+
+	case 522:
+		_fieldD4 = 3;
+		_fieldBC_trigger = kernel_trigger_create(523);
+
+		break;
+
+	case 523:
+		_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), 524);
+
+		break;
+
+	case 524:
+		sendWSMessage_120000(_G(my_walker), -1);
+		sendWSMessage_190000(_G(my_walker), 20);
+		digi_play("204r02", 1, 255, 525, -1);
+
+		break;
+
+	case 525:
+		sendWSMessage_130000(_G(my_walker), 526);
+		break;
+
+	case 526:
+		sendWSMessage_150000(_G(my_walker), 527);
+		break;
+
+	case 527:
+		series_unload(_ripTrekLHandTalkPos4Series);
+		_meiShowsRipHerPassesSeries = series_load("MEI SHOWS RIP HER PASSES", -1, nullptr);
+		_fieldD4 = 7;
+		_fieldCC_trigger = kernel_trigger_create(528);
+
+		break;
+
+	case 528:
+		digi_play("204m02", 1, 255, -1, -1);
+		kernel_examine_inventory_object("PING PASS", _G(master_palette), 5, 1, 370, 234, -1, nullptr, -1);
+		_fieldD4 = 3;
+		_fieldBC_trigger = kernel_trigger_create(529);
+
+		break;
+
+	case 529:
+		_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), 530);
+
+		break;
+
+	case 530:
+		sendWSMessage_120000(_G(my_walker), -1);
+		sendWSMessage_190000(_G(my_walker), 20);
+		digi_play("204r03", 1, 255, 531, -1);
+
+		break;
+
+	case 531:
+	case 532:
+	case 533:
+	case 535:
+	case 536:
+	case 537:
+	case 538:
+	case 539:
+	case 540:
+	case 541:
+	case 542:
+	case 543:
+	case 544:
+	case 545:
+	case 546:
+	case 547:
+	case 548:
+	case 549:
+	case 550:
+	case 551:
+	case 555:
+	case 556:
+	case 557:
+	case 558:
+	case 559:
+	case 567:
+	case 569:
+	case 570:
+	case 571:
+	case 572:
+	case 574:
+	case 576:
+	case 577:
+	case 578:
+	case 579:
+	case 580:
+	case 581:
+	case 582:
+	case 583:
+	case 584:
+	case 588:
+	case 590:
+	case 592:
+	case 593:
+	case 594:
+	case 596:
+	case 597:
+	case 603:
+	case 604:
+	case 605:
+	case 606:
+	case 607:
+	case 608:
+	case 609:
+	case 611:
+	case 612:
+	case 613:
+	case 614:
+	case 615:
+	case 616:
+	case 619:
+	case 620:
+	case 621:
+	case 622:
+	case 623:
+	case 624:
+	case 625:
+	case 626:
+	case 629:
+	case 630:
+	case 631:
+	case 632:
+	case 633:
+	case 634:
+	case 635:
+	case 636:
+	case 637:
+	case 638:
+	case 639:
+	case 647:
+	case 648:
+	case 649:
+	case 650:
+	case 651:
+	case 652:
+	case 660:
+	case 661:
+	case 662:
+	case 663:
+	case 664:
+	case 665:
+	case 666:
+	case 667:
+	case 669:
+	case 670:
+	case 675:
+	case 676:
+	case 677:
+	case 678:
+	case 679:
+	case 680:
+	case 681:
+	case 682:
+	case 683:
+	case 684:
+	case 687:
+	case 688:
+	case 689:
+	case 691:
+	case 692:
+	case 693:
+	case 694:
+	case 695:
+	case 696:
+	case 697:
+	case 699:
+	case 700:
+	case 701:
+	case 702:
+	case 703:
+	case 708:
+	case 709:
+	case 710:
+	case 711:
+	case 712:
+	case 713:
+	case 714:
+	case 715:
+	case 716:
+	case 719:
+	case 720:
+	case 721:
+	case 722:
+	case 723:
+	case 725:
+	case 726:
+	case 727:
+	case 728:
+	case 729:
+	case 730:
+	case 1995:
+		break;
+
+	default:
+		break;
+	}
+
 }
 
 void Room204::initWalkerSeries() {
diff --git a/engines/m4/riddle/rooms/section2/room204.h b/engines/m4/riddle/rooms/section2/room204.h
index a9d717691cc..e5fed028d0a 100644
--- a/engines/m4/riddle/rooms/section2/room204.h
+++ b/engines/m4/riddle/rooms/section2/room204.h
@@ -50,8 +50,11 @@ private:
 	int32 _field44 = 0;
 	int32 _field48 = 0;
 	int32 _field68 = 0;
-	int32 _fieldBC = 0;
+	int32 _fieldBC_trigger = 0;
+	int32 _fieldC0_trigger = 0;
 	int32 _fieldC4 = 0;
+	int32 _fieldCC_trigger = 0;
+	int32 _fieldD4 = 0;
 	int32 _fieldDC = 0;
 	int32 _fieldE0 = 0;
 	int32 _fieldE4 = 0;
@@ -65,11 +68,15 @@ private:
 
 	int32 _courtyardGongSeries = 0;
 	int32 _malletSpriteSeries = 0;
+	int32 _meiShowsRipHerPassesSeries = 0;
 	int32 _ripDropsSeries = 0;
+	int32 _ripTrekHeadTurnPos5Series = 0;
+	int32 _ripTrekLHandTalkPos4Series = 0;
 
 	machine *_courtyardGongMach = nullptr;
 	machine *_mcMach = nullptr;
 	machine *_malletSpriteMach = nullptr;
+	machine *_ripDeltaMachineStateMach = nullptr;
 	machine *_silverButterflyCoinMach = nullptr;
 };
 




More information about the Scummvm-git-logs mailing list