[Scummvm-git-logs] scummvm master -> 36fe7616b1e026e9d249cf0ab9cca728e2a59c66

dreammaster noreply at scummvm.org
Sat Oct 12 05:03:01 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:
36fe7616b1 M4: RIDDLE: Fix sendWSMessage_10000 method missing array


Commit: 36fe7616b1e026e9d249cf0ab9cca728e2a59c66
    https://github.com/scummvm/scummvm/commit/36fe7616b1e026e9d249cf0ab9cca728e2a59c66
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-11T22:02:32-07:00

Commit Message:
M4: RIDDLE: Fix sendWSMessage_10000 method missing array

Changed paths:
    engines/m4/riddle/rooms/section3/room304.cpp
    engines/m4/riddle/rooms/section3/room304.h
    engines/m4/riddle/triggers.cpp
    engines/m4/riddle/triggers.h


diff --git a/engines/m4/riddle/rooms/section3/room304.cpp b/engines/m4/riddle/rooms/section3/room304.cpp
index 384045556f3..9c4a9557121 100644
--- a/engines/m4/riddle/rooms/section3/room304.cpp
+++ b/engines/m4/riddle/rooms/section3/room304.cpp
@@ -275,8 +275,9 @@ void Room304::parser() {
 			digi_play("304r64", 1);
 		}
 	} else if (_G(flags)[V001] && (takeFlag || useFlag) && player_said("handling stick")) {
-		// Catching snake with the handling stick
-		handlingStick();
+		// Catching snake with the handling stick, or killing it
+		// with the sword
+		handlingStickAndSword();
 	
 	} else if (lookFlag && player_said_any("native mask", "shield")) {
 		digi_play("304r05", 1);
@@ -453,7 +454,7 @@ void Room304::intrMsg(frac16 myMessage, struct machine *sender) {
 	}
 }
 
-void Room304::handlingStick() {
+void Room304::handlingStickAndSword() {
 	switch (_G(kernel).trigger) {
 	case 13:
 		series_stream_break_on_frame(_safe3, 29, 14);
diff --git a/engines/m4/riddle/rooms/section3/room304.h b/engines/m4/riddle/rooms/section3/room304.h
index ca109fdba2c..c29bc9b3e4b 100644
--- a/engines/m4/riddle/rooms/section3/room304.h
+++ b/engines/m4/riddle/rooms/section3/room304.h
@@ -62,7 +62,7 @@ private:
 	int _ctr1 = 0;
 
 	static void intrMsg(frac16 myMessage, struct machine *sender);
-	void handlingStick();
+	void handlingStickAndSword();
 
 public:
 	Room304() : Room() {}
diff --git a/engines/m4/riddle/triggers.cpp b/engines/m4/riddle/triggers.cpp
index 8c7d83dfc47..16cf4712de0 100644
--- a/engines/m4/riddle/triggers.cpp
+++ b/engines/m4/riddle/triggers.cpp
@@ -86,15 +86,16 @@ void sendWSMessage_10000(int val1, machine *recv, int val2, int val3,
 	sendWSMessage(0x10000, 0, nullptr, 0, nullptr, 1);
 }
 
-void sendWSMessage_10000(machine *recv, int val1, int val2, int val3,
-	int trigger, int val4) {
-	int val = ((val2 << 16) - _G(globals)[V002]) * _G(globals)[V006] +
-		_G(globals)[V004];
+void sendWSMessage_10000(machine *recv, int val1, int val2, int index,
+		int trigger, int val4) {
+	static const byte NUMS[14] = { 0, 0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 9, 0 };
+
+	int val = ((val2 << 16) - _G(globals)[V002]) *_G(globals)[V006] + _G(globals)[V004];
 
 	_G(globals)[GLB_TEMP_1] = val1 << 16;
 	_G(globals)[GLB_TEMP_2] = val2 << 16;
 	_G(globals)[GLB_TEMP_3] = val;
-	_G(globals)[GLB_TEMP_4] = (val3 > 0) ? val3 : 0xffff0000;
+	_G(globals)[GLB_TEMP_4] = (index > 0 ? NUMS[index] : -1) << 16;
 	_G(globals)[GLB_TEMP_5] = kernel_trigger_create(trigger);
 	_G(globals)[GLB_TEMP_6] = val4 << 16;
 
diff --git a/engines/m4/riddle/triggers.h b/engines/m4/riddle/triggers.h
index 74b5000aedd..468a19162ed 100644
--- a/engines/m4/riddle/triggers.h
+++ b/engines/m4/riddle/triggers.h
@@ -42,7 +42,7 @@ extern void setGlobals4(int val1, int val2, int val3, int val4);
 
 extern void sendWSMessage_10000(int val1, machine *recv, int val2, int val3,
 	int val4, int trigger, int val9, int val6, int val7, int val8);
-extern void sendWSMessage_10000(machine *recv, int val1, int val2, int val3,
+extern void sendWSMessage_10000(machine *recv, int val1, int val2, int index,
 	int trigger, int val4);
 
 machine *triggerMachineByHash_3000(int myHash, int dataHash,




More information about the Scummvm-git-logs mailing list