[Scummvm-git-logs] scummvm master -> 07b71995e3544b8ce57c8cd9194a19a0693cd57c

dreammaster noreply at scummvm.org
Sat Feb 1 04:14:17 UTC 2025


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
432b05ed0a M4: RIDDLE: Add syncGame for room 407 flags
07b71995e3 M4: RIDDLE: Work around Visual C++ block limit in room 407 parser


Commit: 432b05ed0a9dfabf795870a576b0d12c94a91412
    https://github.com/scummvm/scummvm/commit/432b05ed0a9dfabf795870a576b0d12c94a91412
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-01-31T19:47:28-08:00

Commit Message:
M4: RIDDLE: Add syncGame for room 407 flags

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


diff --git a/engines/m4/riddle/rooms/section4/room407.cpp b/engines/m4/riddle/rooms/section4/room407.cpp
index 07d96c91613..cea6be4ebee 100644
--- a/engines/m4/riddle/rooms/section4/room407.cpp
+++ b/engines/m4/riddle/rooms/section4/room407.cpp
@@ -2542,6 +2542,57 @@ void Room407::parser() {
 	_G(player).command_ready = false;
 }
 
+void Room407::syncGame(Common::Serializer &s) {
+	s.syncAsSint16LE(_val1);
+	s.syncAsSint16LE(_val2);
+	s.syncAsSint16LE(_val3);
+	s.syncAsSint16LE(_val4);
+	s.syncAsSint16LE(_drawerState);
+	s.syncAsSint16LE(_val6);
+	s.syncAsSint16LE(_val7);
+	s.syncAsSint16LE(_val8);
+	s.syncAsSint16LE(_val9);
+	s.syncAsSint16LE(_items4State);
+	s.syncAsSint16LE(_xyzzy1);
+	s.syncAsSint16LE(_xyzzy2);
+	s.syncAsSint16LE(_xyzzy3);
+	s.syncAsSint16LE(_xyzzy4);
+	s.syncAsSint16LE(_items3State);
+	s.syncAsSint16LE(_items1State);
+	s.syncAsSint16LE(_xyzzy7);
+	s.syncAsSint16LE(_items2State);
+	s.syncAsSint16LE(_xyzzy9);
+	s.syncAsSint16LE(_xyzzy10);
+	s.syncAsSint16LE(_frotz1);
+	s.syncAsSint16LE(_frotz2);
+	s.syncAsSint16LE(_frotz3);
+	s.syncAsSint16LE(_frotz4);
+	s.syncAsSint16LE(_frotz5);
+	s.syncAsSint16LE(_frotz6);
+	s.syncAsSint16LE(_frotz7);
+	s.syncAsSint16LE(_frotz8);
+	s.syncAsSint16LE(_frotz9);
+	s.syncAsSint16LE(_tabletopState);
+	s.syncAsSint16LE(_pivotState);
+	s.syncAsSint16LE(_fullGlassState);
+	s.syncAsSint16LE(_glassTopState);
+	s.syncAsSint16LE(_glassBottomState);
+	s.syncAsSint16LE(_roofPistonState);
+	s.syncAsSint16LE(_glassGoneState);
+	s.syncAsSint16LE(_comboLockState);
+	s.syncAsSint16LE(_buttonFrame1);
+	s.syncAsSint16LE(_buttonFrame2);
+	s.syncAsSint16LE(_buttonFrame3);
+	s.syncAsSint16LE(_buttonFrame4);
+	s.syncAsSint16LE(_val11);
+	s.syncAsSint16LE(_val15);
+	s.syncAsSint16LE(_val16);
+	s.syncAsSint16LE(_waterFlowTube);
+	s.syncAsSint16LE(_waterFlowFaucet);
+	s.syncAsSint16LE(_waterFlowStem);
+	s.syncAsSint16LE(_codeCorrect);
+}
+
 void Room407::setHotspots() {
 	disableHotspots();
 
diff --git a/engines/m4/riddle/rooms/section4/room407.h b/engines/m4/riddle/rooms/section4/room407.h
index 363ea8d37da..1cfd42ad10b 100644
--- a/engines/m4/riddle/rooms/section4/room407.h
+++ b/engines/m4/riddle/rooms/section4/room407.h
@@ -258,6 +258,7 @@ public:
 	void daemon() override;
 	void pre_parser() override;
 	void parser() override;
+	void syncGame(Common::Serializer &s) override;
 };
 
 } // namespace Rooms


Commit: 07b71995e3544b8ce57c8cd9194a19a0693cd57c
    https://github.com/scummvm/scummvm/commit/07b71995e3544b8ce57c8cd9194a19a0693cd57c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-01-31T20:13:50-08:00

Commit Message:
M4: RIDDLE: Work around Visual C++ block limit in room 407 parser

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


diff --git a/engines/m4/riddle/rooms/section4/room407.cpp b/engines/m4/riddle/rooms/section4/room407.cpp
index cea6be4ebee..b718ea3d01a 100644
--- a/engines/m4/riddle/rooms/section4/room407.cpp
+++ b/engines/m4/riddle/rooms/section4/room407.cpp
@@ -297,7 +297,7 @@ void Room407::init() {
 		_frotz6 = 0;
 		_frotz7 = 0;
 		_frotz8 = 0;
-		_frotz9 = 0;
+		_lookedAtLever = 0;
 		_tabletopState = 1031;
 		_tabletopState = 1031;
 		_pivotState = 1031;
@@ -1953,7 +1953,7 @@ void Room407::parser() {
 			leverKey1();
 		else
 			leverKey2();
-	} if (player_said("FAUCET HANDLE", "AIR VALVE") && _val9 == 1000) {
+	} else if (player_said("FAUCET HANDLE", "AIR VALVE") && _val9 == 1000) {
 		faucetHandleAirValve();
 	} else if (player_said("FAUCET PIPE", "FAUCET HANDLE") &&
 			_val9 == 1000 && _val8 == 1100) {
@@ -2086,7 +2086,15 @@ void Room407::parser() {
 			break;
 		}
 
-	} else if (takeFlag && player_said("LETTER")) {
+	} else {
+		goto take;
+	}
+
+	_G(player).command_ready = false;
+	return;
+
+take:
+	if (takeFlag && player_said("LETTER")) {
 		takeLetter();
 	} else if (takeFlag && player_said("FAUCET PIPE  ") && _val8 == 1130) {
 		takeFaucetPipe1();
@@ -2571,7 +2579,7 @@ void Room407::syncGame(Common::Serializer &s) {
 	s.syncAsSint16LE(_frotz6);
 	s.syncAsSint16LE(_frotz7);
 	s.syncAsSint16LE(_frotz8);
-	s.syncAsSint16LE(_frotz9);
+	s.syncAsSint16LE(_lookedAtLever);
 	s.syncAsSint16LE(_tabletopState);
 	s.syncAsSint16LE(_pivotState);
 	s.syncAsSint16LE(_fullGlassState);
@@ -3000,11 +3008,11 @@ void Room407::periodicTablePopup() {
 bool Room407::lookLeverKey() {
 	switch (_G(kernel).trigger) {
 	case -1:
-		if (_frotz9) {
+		if (_lookedAtLever) {
 			digi_play("407r26a", 1);
 		} else {
 			digi_play("407r26", 1, 255, 2);
-			_frotz9 = 1;
+			_lookedAtLever = 1;
 		}
 
 		return true;
diff --git a/engines/m4/riddle/rooms/section4/room407.h b/engines/m4/riddle/rooms/section4/room407.h
index 1cfd42ad10b..7409dbeef50 100644
--- a/engines/m4/riddle/rooms/section4/room407.h
+++ b/engines/m4/riddle/rooms/section4/room407.h
@@ -58,7 +58,7 @@ private:
 	int _frotz6 = 0;
 	int _frotz7 = 0;
 	int _frotz8 = 0;
-	int _frotz9 = 0;
+	int _lookedAtLever = 0;
 	int _tabletopState = 0;
 	int _pivotState = 0;
 	int _fullGlassState = 0;




More information about the Scummvm-git-logs mailing list