[Scummvm-git-logs] scummvm master -> 88c583ab37c584931f00570e235f582203578783

dreammaster noreply at scummvm.org
Wed Nov 27 06:29:38 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3f81489903 M4: RIDDLE: Hack to fix rotating statue crash
88c583ab37 M4: RIDDLE: Fix tradding driftwood to Lima agent


Commit: 3f814899037c55eacb4a0ac0afaf3fa130b54a24
    https://github.com/scummvm/scummvm/commit/3f814899037c55eacb4a0ac0afaf3fa130b54a24
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T22:29:21-08:00

Commit Message:
M4: RIDDLE: Hack to fix rotating statue crash

Changed paths:
    engines/m4/riddle/rooms/section6/room608.cpp


diff --git a/engines/m4/riddle/rooms/section6/room608.cpp b/engines/m4/riddle/rooms/section6/room608.cpp
index 9406a1a7822..31c22772f2d 100644
--- a/engines/m4/riddle/rooms/section6/room608.cpp
+++ b/engines/m4/riddle/rooms/section6/room608.cpp
@@ -2145,6 +2145,13 @@ void Room608::usePole() {
 		break;
 
 	case 18:
+		// FIXME: GLB_TEMP_2 is used by player walker to set current frame.
+		// But it's been send to an invalid value by a sendWSMessage_10000
+		// call for animating old lady. Is something supposed to set a value?
+		// For now, do a dummy ws_walk to reset internal states
+		player_update_info();
+		ws_walk(_G(player_info).x, _G(player_info).y, nullptr, -1, 4);
+
 		sendWSMessage_110000(2);
 		digi_play("608r16", 1, 255, 20);
 		break;


Commit: 88c583ab37c584931f00570e235f582203578783
    https://github.com/scummvm/scummvm/commit/88c583ab37c584931f00570e235f582203578783
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T22:29:21-08:00

Commit Message:
M4: RIDDLE: Fix tradding driftwood to Lima agent

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 1583311ba2c..1a497817ce0 100644
--- a/engines/m4/riddle/rooms/section5/room501.cpp
+++ b/engines/m4/riddle/rooms/section5/room501.cpp
@@ -79,8 +79,8 @@ void Room501::init() {
 		ws_demand_location(588, 267, 9);
 		ws_walk(287, 268, nullptr, 522, 9);
 		_val5 = 0;
-		_val6 = -1;
-		_val7 = -1;
+		_trigger1 = -1;
+		_trigger4 = -1;
 		_paper = nullptr;
 	}
 
@@ -96,7 +96,7 @@ void Room501::daemon() {
 	case 501:
 		_ripleyMode = 1;
 		_xyzzy1 = 0;
-		_xyzzy2 = -1;
+		_trigger2 = -1;
 		_xyzzy3 = 0;
 
 		_ripTalkLoop = series_load("RIP TALK LOOP");
@@ -133,21 +133,21 @@ void Room501::daemon() {
 		break;
 
 	case 502:
-		if (_ripleyMode == 3 && _ripleyShould == 3 && _val6 != -1) {
-			kernel_trigger_dispatchx(_val6);
-			_val6 = -1;
+		if (_ripleyMode == 3 && _ripleyShould == 3 && _trigger1 != -1) {
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
 		}
-		if (_ripleyMode == 7 && _ripleyShould == 7 && _xyzzy2 != -1) {
-			kernel_trigger_dispatchx(_xyzzy2);
-			_xyzzy2 = -1;
+		if (_ripleyMode == 7 && _ripleyShould == 7 && _trigger2 != -1) {
+			kernel_trigger_dispatchx(_trigger2);
+			_trigger2 = -1;
 		}
-		if (_ripleyMode == 13 && _ripleyShould == 13 && _xyzzy4 != -1) {
-			kernel_trigger_dispatchx(_xyzzy4);
-			_xyzzy4 = -1;
+		if (_ripleyMode == 13 && _ripleyShould == 13 && _trigger3 != -1) {
+			kernel_trigger_dispatchx(_trigger3);
+			_trigger3 = -1;
 		}
-		if (_ripleyMode == 3 && _ripleyShould == 4 && _val7 != -1) {
-			kernel_trigger_dispatchx(_val7);
-			_val7 = -1;
+		if (_ripleyMode == 3 && _ripleyShould == 4 && _trigger4 != -1) {
+			kernel_trigger_dispatchx(_trigger4);
+			_trigger4 = -1;
 		}
 
 		if (_xyzzy1) {
@@ -173,7 +173,7 @@ void Room501::daemon() {
 			switch (_ripleyShould) {
 			case 2:
 				_ripleyShould = 3;
-				_val6 = kernel_trigger_create(508);
+				_trigger1 = kernel_trigger_create(508);
 				kernel_timing_trigger(1, 502);
 				break;
 			case 3:
@@ -234,7 +234,7 @@ void Room501::daemon() {
 				sendWSMessage_10000(1, _ripley, _ripMoneyExchange, 85, 85, 502,
 					_ripMoneyExchange, 85, 85, 0);
 				_ripleyShould = 3;
-				_val6 = kernel_trigger_create(551);
+				_trigger1 = kernel_trigger_create(551);
 
 				if (!inv_player_has("PERUVIAN INTI"))
 					inv_give_to_player("PERUVIAN INTI");
@@ -496,7 +496,7 @@ void Room501::daemon() {
 
 	case 509:
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(510);
+		_trigger1 = kernel_trigger_create(510);
 		break;
 
 	case 510:
@@ -504,7 +504,7 @@ void Room501::daemon() {
 			kernel_timing_trigger(1, 512);
 		} else {
 			_ripleyShould = 13;
-			_xyzzy4 = kernel_trigger_create(511);
+			_trigger3 = kernel_trigger_create(511);
 		}
 		break;
 
@@ -552,7 +552,7 @@ void Room501::daemon() {
 	case 514:
 		_agentShould = 1;
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(515);
+		_trigger1 = kernel_trigger_create(515);
 		kernel_timing_trigger(2, 501);
 		break;
 
@@ -581,7 +581,7 @@ void Room501::daemon() {
 
 	case 518:
 		_ripleyShould = 6;
-		_xyzzy2 = kernel_trigger_create(526);
+		_trigger2 = kernel_trigger_create(526);
 		break;
 
 	case 522:
@@ -590,7 +590,7 @@ void Room501::daemon() {
 
 	case 523:
 		_ripleyShould = 13;
-		_xyzzy4 = kernel_trigger_create(524);
+		_trigger3 = kernel_trigger_create(524);
 		break;
 
 	case 526:
@@ -644,7 +644,7 @@ void Room501::daemon() {
 
 	case 527:
 		_ripleyShould = 7;
-		_xyzzy2 = kernel_trigger_create(528);
+		_trigger2 = kernel_trigger_create(528);
 		break;
 
 	case 528:
@@ -682,7 +682,7 @@ void Room501::daemon() {
 		} else {
 			if (--_val4 > 0) {
 				_ripleyShould = 8;
-				_xyzzy2 = kernel_trigger_create(526);
+				_trigger2 = kernel_trigger_create(526);
 			} else {
 				kernel_timing_trigger(1, 533);
 			}
@@ -691,12 +691,12 @@ void Room501::daemon() {
 
 	case 533:
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(523);
+		_trigger1 = kernel_trigger_create(523);
 		break;
 
 	case 534:
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(535);
+		_trigger1 = kernel_trigger_create(535);
 		break;
 
 	case 535:
@@ -726,7 +726,7 @@ void Room501::daemon() {
 	case 539:
 		_ripParcelExchange = series_load("PARCEL XCHANGE");
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(540);
+		_trigger1 = kernel_trigger_create(540);
 		break;
 
 	case 540:
@@ -736,7 +736,7 @@ void Room501::daemon() {
 
 	case 541:
 		_ripleyShould = 11;
-		_val6 = kernel_trigger_create(542);
+		_trigger1 = kernel_trigger_create(542);
 		break;
 
 	case 542:
@@ -795,7 +795,7 @@ void Room501::daemon() {
 		player_set_commands_allowed(false);
 		_ripMoneyExchange = series_load("MONEY XCHANGE");
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(550);
+		_trigger1 = kernel_trigger_create(550);
 		break;
 
 	case 550:
@@ -822,7 +822,7 @@ void Room501::daemon() {
 		_agentShould = 5;
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(556);
+		_trigger1 = kernel_trigger_create(556);
 		break;
 
 	case 556:
@@ -862,6 +862,7 @@ void Room501::daemon() {
 
 	case 562:
 		midi_play("SADBOY2", 255, 0, -1, 949);
+		_xyzzy10 = 0;
 		break;
 
 	case 563:
@@ -876,7 +877,7 @@ void Room501::daemon() {
 	case 565:
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 4;
-		_val7 = kernel_trigger_create(566);
+		_trigger4 = kernel_trigger_create(566);
 		break;
 
 	case 566:
@@ -911,7 +912,7 @@ void Room501::daemon() {
 	case 572:
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 4;
-		_val7 = kernel_trigger_create(573);
+		_trigger4 = kernel_trigger_create(573);
 		break;
 
 	case 573:
@@ -937,19 +938,20 @@ void Room501::daemon() {
 		break;
 
 	case 576:
+		_xyzzy10 = 0;
 		sendWSMessage_10000(1, _deltaPuffinMachine, _puffinExchange, 135, 135, -1,
 			_puffinExchange, 135, 135, 0);
 		break;
 
 	case 577:
-		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 577 : 576);
+		kernel_timing_trigger(1, (_xyzzy10 == 1) ? 577 : 578);
 		break;
 
 	case 578:
 		kernel_timing_trigger(1, 505);
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 5;
-		_val6 = kernel_trigger_create(579);
+		_trigger1 = kernel_trigger_create(579);
 		break;
 
 	case 579:
@@ -976,7 +978,7 @@ void Room501::daemon() {
 
 	case 582:
 		_ripleyShould = 13;
-		_xyzzy4 = kernel_trigger_create(583);
+		_trigger3 = kernel_trigger_create(583);
 		break;
 
 	case 583:
@@ -990,7 +992,7 @@ void Room501::daemon() {
 
 	case 585:
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(586);
+		_trigger1 = kernel_trigger_create(586);
 		_agentShould = 5;
 		break;
 
@@ -1000,7 +1002,7 @@ void Room501::daemon() {
 
 	case 587:
 		_ripleyShould = 16;
-		_val6 = kernel_trigger_create(588);
+		_trigger1 = kernel_trigger_create(588);
 		break;
 
 	case 588:
@@ -1010,7 +1012,7 @@ void Room501::daemon() {
 
 	case 589:
 		_ripleyShould = 19;
-		_val6 = kernel_trigger_create(590);
+		_trigger1 = kernel_trigger_create(590);
 		break;
 
 	case 590:
@@ -1029,7 +1031,7 @@ void Room501::daemon() {
 		_agentShould = 5;
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 3;
-		_val6 = kernel_trigger_create(595);
+		_trigger1 = kernel_trigger_create(595);
 		break;
 
 	case 595:
@@ -1072,7 +1074,7 @@ void Room501::daemon() {
 		kernel_timing_trigger(1, 505);
 		kernel_timing_trigger(1, 501);
 		_ripleyShould = 5;
-		_val6 = kernel_trigger_create(604);
+		_trigger1 = kernel_trigger_create(604);
 		break;
 
 	case 604:
@@ -1083,7 +1085,7 @@ void Room501::daemon() {
 
 	case 605:
 		_ripleyShould = 13;
-		_xyzzy4 = kernel_trigger_create(606);
+		_trigger3 = kernel_trigger_create(606);
 		break;
 
 	case 606:
@@ -1136,6 +1138,7 @@ void Room501::parser() {
 		case 2:
 			_G(flags)[V143] = 1;
 			digi_play("501R05A", 1);
+			player_set_commands_allowed(true);
 			break;
 		default:
 			break;
@@ -1156,6 +1159,7 @@ void Room501::parser() {
 		case 2:
 			_G(flags)[V145] = 1;
 			digi_play("501R07A", 1);
+			player_set_commands_allowed(true);
 			break;
 		default:
 			break;
@@ -1266,7 +1270,7 @@ void Room501::parser() {
 			player_set_commands_allowed(false);
 			_agentShould = 1;
 			_ripleyShould = 3;
-			_val6 = kernel_trigger_create(2);
+			_trigger1 = kernel_trigger_create(2);
 			_G(kernel).trigger_mode = KT_DAEMON;
 			kernel_timing_trigger(2, 501);
 			break;
diff --git a/engines/m4/riddle/rooms/section5/room501.h b/engines/m4/riddle/rooms/section5/room501.h
index 384c55c82ed..b3b31bb8de2 100644
--- a/engines/m4/riddle/rooms/section5/room501.h
+++ b/engines/m4/riddle/rooms/section5/room501.h
@@ -52,14 +52,14 @@ private:
 	int _ripleyShould = 0;
 	int _val4 = 0;
 	int _val5 = 0;
-	int _val6 = 0;
-	int _val7 = 0;
+	int _trigger1 = 0;
+	int _trigger4 = 0;
 	int _val8 = 0;
 	int _ripleyMode = 0;
 	int _xyzzy1 = 0;
-	int _xyzzy2 = 0;
+	int _trigger2 = 0;
 	int _xyzzy3 = 0;
-	int _xyzzy4 = 0;
+	int _trigger3 = 0;
 	int _xyzzy5 = 0;
 	int _xyzzy6 = 0;
 	int _xyzzy7 = 0;




More information about the Scummvm-git-logs mailing list