[Scummvm-git-logs] scummvm master -> f0e56504e3e302d5f45f2982f39eecdfb7ec00b7

Strangerke noreply at scummvm.org
Wed Mar 5 21:30:58 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:
f0e56504e3 M4: RIDDLE: Fix 3 bugs related to discussion with Wolf in room 402 (2 when exiting dialog, 1 after restoring a game)


Commit: f0e56504e3e302d5f45f2982f39eecdfb7ec00b7
    https://github.com/scummvm/scummvm/commit/f0e56504e3e302d5f45f2982f39eecdfb7ec00b7
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-03-05T22:30:35+01:00

Commit Message:
M4: RIDDLE: Fix 3 bugs related to discussion with Wolf in room 402 (2 when exiting dialog, 1 after restoring a game)

Changed paths:
    engines/m4/riddle/rooms/section4/room402.cpp
    engines/m4/riddle/rooms/section4/room402.h


diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index d5a30c7712e..7b4470c6cf0 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -1398,9 +1398,9 @@ void Room402::daemon() {
 }
 
 void Room402::pre_parser() {
-	bool talkFlag = player_said_any("talk", "talk to");
-	bool takeFlag = player_said("take");
-	bool lookFlag = player_said_any("look", "look at");
+	const bool talkFlag = player_said_any("talk", "talk to");
+	const bool takeFlag = player_said("take");
+	const bool lookFlag = player_said_any("look", "look at");
 
 	if (lookFlag && player_said(" "))
 		_G(player).resetWalk();
@@ -1455,7 +1455,7 @@ void Room402::parser() {
 	bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
 
 	if (player_said("conv402a")) {
-		if (_G(kernel).trigger) {
+		if (_G(kernel).trigger == 777) {
 			conv402a777();
 		} else {
 			conv402a();
@@ -1563,9 +1563,9 @@ void Room402::parser() {
 
 void Room402::conv402a() {
 	const char *sound = conv_sound_to_play();
-	int who = conv_whos_talking();
-	int node = conv_current_node();
-	int entry = conv_current_entry();
+	const int who = conv_whos_talking();
+	const int node = conv_current_node();
+	const int entry = conv_current_entry();
 	_currentNode = node;
 
 	if (!sound) {
@@ -1739,7 +1739,7 @@ void Room402::conv402a() {
 				digi_play(sound, 1, 255, 777);
 			} else {
 				_val11 = 1102;
-				conv_resume();
+				digi_play(sound, 1, 255, 777);
 			}
 			break;
 
@@ -1782,9 +1782,9 @@ void Room402::conv402a() {
 }
 
 void Room402::conv402a777() {
-	int who = conv_whos_talking();
-	int node = conv_current_node();
-	int entry = conv_current_entry();
+	const int who = conv_whos_talking();
+	const int node = conv_current_node();
+	const int entry = conv_current_entry();
 
 	if (who <= 0) {
 		if (node == 26 && entry == 0) {
@@ -1897,6 +1897,20 @@ void Room402::enterCastle() {
 	}
 }
 
+void Room402::syncGame(Common::Serializer &s) {
+	s.syncAsSint16LE(_val1);
+	s.syncAsSint16LE(_val2);
+	s.syncAsSint16LE(_val4);
+	s.syncAsSint16LE(_trigger1);
+	s.syncAsSint16LE(_val6);
+	s.syncAsSint16LE(_val8);
+	s.syncAsSint16LE(_currentNode);
+	s.syncAsSint16LE(_val10);
+	s.syncAsSint16LE(_val11);
+	s.syncAsSint16LE(_wolfMode);
+	s.syncAsSint16LE(_wolfShould);
+}
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section4/room402.h b/engines/m4/riddle/rooms/section4/room402.h
index 34630dd023b..10f11624528 100644
--- a/engines/m4/riddle/rooms/section4/room402.h
+++ b/engines/m4/riddle/rooms/section4/room402.h
@@ -86,6 +86,7 @@ public:
 	void daemon() override;
 	void pre_parser() override;
 	void parser() override;
+	void syncGame(Common::Serializer &s) override;
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list