[Scummvm-git-logs] scummvm master -> 8725c3f688b608503f73d48c7db9f9dbda902174

dreammaster noreply at scummvm.org
Sun Oct 27 23:40:47 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:
8725c3f688 M4: RIDDLE: Stop walk end trigger getting called multiple times


Commit: 8725c3f688b608503f73d48c7db9f9dbda902174
    https://github.com/scummvm/scummvm/commit/8725c3f688b608503f73d48c7db9f9dbda902174
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-27T16:40:36-07:00

Commit Message:
M4: RIDDLE: Stop walk end trigger getting called multiple times

Due to a minor implementation of the callback when the player
walk finishes, it was calling the end trigger to run daemon code
after every segment of the walk, rather than just once at the end.

Changed paths:
    engines/m4/riddle/rooms/section2/room201.cpp
    engines/m4/riddle/walker.cpp


diff --git a/engines/m4/riddle/rooms/section2/room201.cpp b/engines/m4/riddle/rooms/section2/room201.cpp
index 04ea1f56ca4..c7e8b6d2118 100644
--- a/engines/m4/riddle/rooms/section2/room201.cpp
+++ b/engines/m4/riddle/rooms/section2/room201.cpp
@@ -124,6 +124,7 @@ void Room201::init() {
 				_meiWalk = series_load("MEI CHEN TREK WALK POS4");
 				_mei2 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 200, 238, 73, 0x900, 0,
 					triggerMachineByHashCallback, "MC");
+				series_place_sprite("candleman shadow4", 0, 200, 238, 73, 0xf00);
 				sendWSMessage(1, _mei2, _meiHandHip, 22, 22, 2000, _meiHandHip, 22, 22, 0);
 				_val5 = 2;
 				_val6 = 2;
diff --git a/engines/m4/riddle/walker.cpp b/engines/m4/riddle/walker.cpp
index 18e99535103..690d06b222f 100644
--- a/engines/m4/riddle/walker.cpp
+++ b/engines/m4/riddle/walker.cpp
@@ -83,13 +83,14 @@ void Walker::player_walker_callback(frac16 myMessage, machine *sender) {
 		break;
 
 	case 2:
-		if (walker_has_walk_finished(sender)) {
-			if (subVal) {
-				sendWSMessage(0x30000, 0, sender, 0, nullptr, 1);
-				return;
-			} else {
-				_G(player).waiting_for_walk = false;
-			}
+		if (!walker_has_walk_finished(sender))
+			return;
+
+		if (subVal) {
+			sendWSMessage(0x30000, 0, sender, 0, nullptr, 1);
+			return;
+		} else {
+			_G(player).waiting_for_walk = false;
 		}
 		break;
 




More information about the Scummvm-git-logs mailing list