[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