[Scummvm-git-logs] scummvm master -> 25a0e90ef591cad19fade33fe2671a4b77d78617

Strangerke noreply at scummvm.org
Thu Feb 20 22:49:48 UTC 2025


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:
25a0e90ef5 M4: RIDDLE: Room 303 - Remove default parameter values for SenWSMEssage B0000 to E0000, fix 2 crashes related to torso t


Commit: 25a0e90ef591cad19fade33fe2671a4b77d78617
    https://github.com/scummvm/scummvm/commit/25a0e90ef591cad19fade33fe2671a4b77d78617
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-20T23:49:16+01:00

Commit Message:
M4: RIDDLE: Room 303 - Remove default parameter values for SenWSMEssage B0000 to E0000, fix 2 crashes related to torso tomato, some doc added to flags

Changed paths:
    engines/m4/riddle/flags.h
    engines/m4/riddle/rooms/section3/room303.cpp
    engines/m4/riddle/rooms/section3/room305.cpp
    engines/m4/riddle/triggers.cpp
    engines/m4/riddle/triggers.h


diff --git a/engines/m4/riddle/flags.h b/engines/m4/riddle/flags.h
index 7bec244bfff..8435e120563 100644
--- a/engines/m4/riddle/flags.h
+++ b/engines/m4/riddle/flags.h
@@ -112,8 +112,8 @@ enum Flag {
 	kTabletsCartoon =  77,
 	V078 =  78,
 	V079 =  79,
-	V080 =  80,
-	V081 =  81,
+	V080 =  80, // Room 303 Puffball : first look animation played
+	V081 =  81, // Room 303 Torso Tomato : first look animation played
 	V082 =  82,
 	V083 =  83,
 	V084 =  84,
diff --git a/engines/m4/riddle/rooms/section3/room303.cpp b/engines/m4/riddle/rooms/section3/room303.cpp
index ec3c1490e80..459166bf5c1 100644
--- a/engines/m4/riddle/rooms/section3/room303.cpp
+++ b/engines/m4/riddle/rooms/section3/room303.cpp
@@ -539,12 +539,12 @@ void Room303::daemon() {
 	case 125:
 		_chinTalk4 = series_load("rip suit lft hand gest talk");
 		setGlobals4(_chinTalk4, 6, 6, 13);
-		sendWSMessage_C0000(126);
+		sendWSMessage_C0000(_G(my_walker), 126);
 		break;
 
 	case 126:
 		digi_play("303r07", 1, 255, 150);
-		sendWSMessage_D0000();
+		sendWSMessage_D0000(_G(my_walker));
 		break;
 
 	case 127:
@@ -623,7 +623,7 @@ void Room303::daemon() {
 		break;
 
 	case 150:
-		sendWSMessage_B0000(127);
+		sendWSMessage_B0000(_G(my_walker), 127);
 		playSound("303f02", -1, 129);
 		break;
 
@@ -1234,12 +1234,12 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("suit chin in hand pos4");
 				setGlobals4(_chinTalk4, 15, 15, 15);
-				sendWSMessage_C0000(0);
+				sendWSMessage_C0000(_G(my_walker), 0);
 				digi_play("303r37", 1, 255, 2);
 				break;
 
 			case 2:
-				sendWSMessage_B0000(3);
+				sendWSMessage_B0000(_G(my_walker), 3);
 				break;
 
 			case 3:
@@ -1257,7 +1257,7 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("rip hand to chin talk pos4");
 				setGlobals4(_chinTalk4, 15, 16, 19);
-				sendWSMessage_C0000(0);
+				sendWSMessage_C0000(_G(my_walker), 0);
 				digi_play("303F13", 1, 255, 1);
 				_fengShould = 2;
 				break;
@@ -1268,12 +1268,12 @@ void Room303::parser() {
 				break;
 
 			case 2:
-				sendWSMessage_D0000();
-				digi_play("303r26", 1, 255, 3);
+				sendWSMessage_D0000(_G(my_walker));
+				digi_play("303r26", 1, 255, 3, -1);
 				break;
 
 			case 3:
-				sendWSMessage_E0000();
+				sendWSMessage_E0000(_G(my_walker));
 				sendWSMessage(0xe0000, 0, _G(my_walker), 0, nullptr, 1);
 				kernel_timing_trigger(30, 4);
 				break;
@@ -1289,12 +1289,12 @@ void Room303::parser() {
 				break;
 
 			case 6:
-				sendWSMessage_D0000();
+				sendWSMessage_D0000(_G(my_walker));
 				digi_play("303r27", 1, 255, 7);
 				break;
 
 			case 7:
-				sendWSMessage_B0000(8);
+				sendWSMessage_B0000(_G(my_walker), 8);
 				break;
 
 			case 8:
@@ -1318,12 +1318,12 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("suit hand in pocket pos2");
 				setGlobals4(_chinTalk4, 19, 19, 19);
-				sendWSMessage_C0000(0);
+				sendWSMessage_C0000(_G(my_walker), 0);
 				digi_play("303r31", 1, 255, 2);
 				break;
 
 			case 2:
-				sendWSMessage_B0000(3);
+				sendWSMessage_B0000(_G(my_walker), 3);
 				break;
 
 			case 3:
@@ -1345,16 +1345,17 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("suit chin in hand pos4");
 				setGlobals4(_chinTalk4, 15, 15, 15);
-				sendWSMessage_C0000(-2);
+				sendWSMessage_C0000(_G(my_walker), -2);
 				digi_play("303r28a", 1, 255, 1);
 				break;
 
 			case 1:
-				sendWSMessage_B0000(3);
+				sendWSMessage_B0000(_G(my_walker), 3);
 				break;
 
 			case 3:
 				series_unload(_chinTalk4);
+				player_set_commands_allowed(true);
 				break;
 
 			default:
@@ -1367,18 +1368,23 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("rip suit talker pos4");
 				setGlobals4(_chinTalk4, 1, 1, 5);
-				sendWSMessage_C0000(-1);
+				sendWSMessage_C0000(_G(my_walker), -1);
 				digi_play("303F15", 1, 255, 1);
-				_fengShould = 2;
+				_fengMode = 2;
 				break;
 
+			case 1:
+				_fengMode = 1;
+				kernel_timing_trigger(30, 2);
+				break;
+				
 			case 2:
-				sendWSMessage_D0000();
+				sendWSMessage_D0000(_G(my_walker));
 				digi_play("303r28", 1, 255, 3);
 				break;
 
 			case 3:
-				sendWSMessage_B0000(4);
+				sendWSMessage_B0000(_G(my_walker), 4);
 				break;
 
 			case 4:
@@ -1424,14 +1430,14 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("rip hand to chin talk pos4");
 				setGlobals4(_chinTalk4, 15, 16, 19);
-				sendWSMessage_C0000(0);
+				sendWSMessage_C0000(_G(my_walker), 0);
 				digi_play("303F10", 1, 255, 6);
 				_fengShould = 2;
 				break;
 
 			case 1:
 				digi_play("303r24", 1, 255, 3);
-				sendWSMessage_D0000();
+				sendWSMessage_D0000(_G(my_walker));
 				_fengShould = 0;
 				break;
 
@@ -1440,7 +1446,7 @@ void Room303::parser() {
 				break;
 
 			case 4:
-				sendWSMessage_B0000(7);
+				sendWSMessage_B0000(_G(my_walker), 7);
 				_fengShould = 3;
 				digi_play("303f11", 1, 255, 5);
 				break;
@@ -1474,18 +1480,18 @@ void Room303::parser() {
 				player_set_commands_allowed(false);
 				_chinTalk4 = series_load("rip suit talker pos4");
 				setGlobals4(_chinTalk4, 1, 1, 5);
-				sendWSMessage_C0000(1);
+				sendWSMessage_C0000(_G(my_walker), 1);
 				break;
 
 			case 2:
-				sendWSMessage_D0000();
+				sendWSMessage_D0000(_G(my_walker));
 				digi_play("303r25", 1, 255, 3);
 				break;
 
 			case 3:
 				digi_play("303F12", 1, 255, 4);
 				_fengShould = 2;
-				sendWSMessage_B0000(0);
+				sendWSMessage_B0000(_G(my_walker), 0);
 				break;
 
 			case 4:
diff --git a/engines/m4/riddle/rooms/section3/room305.cpp b/engines/m4/riddle/rooms/section3/room305.cpp
index 61a27c309e3..df69dbff583 100644
--- a/engines/m4/riddle/rooms/section3/room305.cpp
+++ b/engines/m4/riddle/rooms/section3/room305.cpp
@@ -995,7 +995,7 @@ next4:
 			else
 				setGlobals4(_suit1, 17, 17, 17);
 
-			sendWSMessage_C0000(0);
+			sendWSMessage_C0000(_G(my_walker), 0);
 
 			if (_G(flags)[V087]) {
 				digi_play("305r31", 1, 255, 2);
@@ -1009,7 +1009,7 @@ next4:
 			break;
 
 		case 2:
-			sendWSMessage_B0000(3);
+			sendWSMessage_B0000(_G(my_walker), 3);
 			break;
 
 		case 3:
@@ -1033,12 +1033,12 @@ next4:
 				setGlobals4(_lookUp, 7, 7, 7);
 			}
 
-			sendWSMessage_C0000(0);
+			sendWSMessage_C0000(_G(my_walker), 0);
 			digi_play("305r13", 1, 255, 2);
 			break;
 
 		case 2:
-			sendWSMessage_B0000(3);
+			sendWSMessage_B0000(_G(my_walker), 3);
 			break;
 
 		case 3:
@@ -1112,12 +1112,12 @@ next4:
 			else
 				setGlobals4(_suit1, 17, 17, 17);
 
-			sendWSMessage_C0000(0);
+			sendWSMessage_C0000(_G(my_walker), 0);
 			digi_play("305r14", 1, 255, 2);
 			break;
 
 		case 2:
-			sendWSMessage_B0000(3);
+			sendWSMessage_B0000(_G(my_walker), 3);
 			break;
 
 		case 3:
@@ -1141,12 +1141,12 @@ next4:
 				setGlobals4(_lookUp, 7, 7, 7);
 			}
 
-			sendWSMessage_C0000(0);
+			sendWSMessage_C0000(_G(my_walker), 0);
 			digi_play("305r12", 1, 255, 2);
 			break;
 
 		case 2:
-			sendWSMessage_B0000(3);
+			sendWSMessage_B0000(_G(my_walker), 3);
 			break;
 
 		case 3:
diff --git a/engines/m4/riddle/triggers.cpp b/engines/m4/riddle/triggers.cpp
index a1de3d921df..99f94e0a806 100644
--- a/engines/m4/riddle/triggers.cpp
+++ b/engines/m4/riddle/triggers.cpp
@@ -141,10 +141,6 @@ void sendWSMessage_B0000(machine *mach, int trigger) {
 	sendWSMessage(ACTION_11 << 16, 0, mach, 0, nullptr, 1);
 }
 
-void sendWSMessage_B0000(int trigger) {
-	sendWSMessage_B0000(_G(my_walker), trigger);
-}
-
 void sendWSMessage_C0000(machine *mach, int trigger) {
 	if (!trigger)
 		trigger = -1;
@@ -153,26 +149,14 @@ void sendWSMessage_C0000(machine *mach, int trigger) {
 	sendWSMessage(ACTION_12 << 16, 0, mach, 0, nullptr, 1);
 }
 
-void sendWSMessage_C0000(int trigger) {
-	sendWSMessage_C0000(_G(my_walker), trigger);
-}
-
 void sendWSMessage_D0000(machine *mach) {
 	sendWSMessage(ACTION_13 << 16, 0, mach, 0, nullptr, 1);
 }
 
-void sendWSMessage_D0000() {
-	sendWSMessage_D0000(_G(my_walker));
-}
-
 void sendWSMessage_E0000(machine *mach) {
 	sendWSMessage(ACTION_14 << 16, 0, mach, 0, nullptr, 1);
 }
 
-void sendWSMessage_E0000() {
-	sendWSMessage_E0000(_G(my_walker));
-}
-
 void sendWSMessage_F0000(machine *mach, int trigger) {
 	if (!trigger)
 		trigger = -1;
diff --git a/engines/m4/riddle/triggers.h b/engines/m4/riddle/triggers.h
index b19f0fe9c84..5ef7ad18949 100644
--- a/engines/m4/riddle/triggers.h
+++ b/engines/m4/riddle/triggers.h
@@ -49,13 +49,9 @@ machine *triggerMachineByHash_3000(int myHash, int dataHash,
 extern void sendWSMessage_60000(machine *mach);
 extern void sendWSMessage_80000(machine *mach);
 extern void sendWSMessage_B0000(machine *mach, int trigger);
-extern void sendWSMessage_B0000(int trigger);
 extern void sendWSMessage_C0000(machine *mach, int trigger);
-extern void sendWSMessage_C0000(int trigger);
 extern void sendWSMessage_D0000(machine *mach);
-extern void sendWSMessage_D0000();
 extern void sendWSMessage_E0000(machine *mach);
-extern void sendWSMessage_E0000();
 extern void sendWSMessage_F0000(machine *mach, int trigger);
 extern void sendWSMessage_F0000(int trigger);
 extern void sendWSMessage_110000(machine *mach, int trigger);




More information about the Scummvm-git-logs mailing list