[Scummvm-git-logs] scummvm master -> 1e43ecf0764a55350ac7d0b78f87f36bc7e8d801

dreammaster noreply at scummvm.org
Mon Nov 18 06:49:54 UTC 2024


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:
89a03ffa87 M4: RIDDLE: Fixes for room 305 drawer opening
1e43ecf076 M4: Fix setting verb when adding custom hotspots


Commit: 89a03ffa87926635b873139b4b8c108dd627dde1
    https://github.com/scummvm/scummvm/commit/89a03ffa87926635b873139b4b8c108dd627dde1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-17T22:49:39-08:00

Commit Message:
M4: RIDDLE: Fixes for room 305 drawer opening

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


diff --git a/engines/m4/riddle/rooms/section3/room305.cpp b/engines/m4/riddle/rooms/section3/room305.cpp
index f7245ff9314..31e1614ab68 100644
--- a/engines/m4/riddle/rooms/section3/room305.cpp
+++ b/engines/m4/riddle/rooms/section3/room305.cpp
@@ -54,7 +54,7 @@ void Room305::init() {
 		_triggerMode2 = KT_DAEMON;
 		_val2 = 0;
 		_val3 = 0;
-		_val4 = 0;
+		_drawerOpen = false;
 	}
 
 	_val5 = 0;
@@ -173,7 +173,7 @@ void Room305::init() {
 			hotspot_set_active("FENG LI", false);
 		}
 
-		if (_val4) {
+		if (_drawerOpen) {
 			ws_demand_facing(11);
 			player_update_info();
 
@@ -193,11 +193,11 @@ void Room305::init() {
 
 			hotspot_hide_all();
 			mouse_set_sprite(0);
-			hotspot_add_dynamic("LOOK AT", " ", 0, 0, 1500, 480, 0);
+			hotspot_add_dynamic("LOOK AT", " ", 0, 0, 1500, 480, false);
 
 			if (inv_object_is_here("TURTLE TREATS")) {
-				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1105, 208, 1175, 266, 6);
-				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1052, 230, 1147, 296, 6);
+				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1105, 208, 1175, 266, 6, true);
+				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1052, 230, 1147, 296, 6, true);
 			}
 
 			_openDrawer = series_show_sprite("open drawer", 0, 0);
@@ -576,7 +576,7 @@ void Room305::pre_parser() {
 	bool lookFlag = player_said_any("look", "look at");
 	bool takeFlag = player_said("take");
 
-	if (_val4 && !(takeFlag && player_said("turtle treats"))
+	if (_drawerOpen && !(takeFlag && player_said("turtle treats"))
 			&& !(lookFlag && player_said("turtle treats"))) {
 		player_set_commands_allowed(false);
 		Common::strcpy_s(_G(player).verb, "close");
@@ -702,7 +702,7 @@ void Room305::parser() {
 		case 2:
 			series_unload(_rip4);
 			player_set_commands_allowed(true);
-			_val4 = 0;
+			_drawerOpen = false;
 			break;
 
 		default:
@@ -737,11 +737,11 @@ void Room305::parser() {
 			hotspot_add_dynamic("LOOK AT", " ", 0, 0, 1500, 374, 0);
 
 			if (inv_object_is_here("TURTLE TREATS")) {
-				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1105, 208, 1175, 266, 6);
-				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1052, 230, 1147, 296, 6);
+				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1105, 208, 1175, 266, 6, true);
+				hotspot_add_dynamic("LOOK AT", "TURTLE TREATS", 1052, 230, 1147, 296, 6, true);
 			}
 
-			_val4 = 1;
+			_drawerOpen = true;
 			_openDrawer = series_show_sprite("open drawer", 0, 0);
 
 			if (inv_object_is_here("TURTLE TREATS")) {
@@ -778,7 +778,7 @@ void Room305::parser() {
 	} else if (takeFlag && player_said("turtle treats") && _G(kernel).trigger == 2) {
 		series_unload(_rip4);
 		player_set_commands_allowed(true);
-		_val4 = 0;
+		_drawerOpen = false;
 
 	} else if (takeFlag && player_said("turtle")) {
 		if (_G(flags)[GLB_TEMP_12]) {
@@ -1031,7 +1031,7 @@ next4:
 			interface_hide();
 			hotspot_hide_all();
 			mouse_set_sprite(0);
-			hotspot_add_dynamic("LOOK AT", " ", 0, 0, 1500, 480, 0);
+			hotspot_add_dynamic("LOOK AT", " ", 0, 0, 1500, 480, false);
 
 			Common::String digiName;
 			if (flag) {
@@ -1486,6 +1486,54 @@ int Room305::getItemY(int seriesHash) const {
 	return (374 - h) / 2;
 }
 
+void Room305::syncGame(Common::Serializer &s) {
+	s.syncAsByte(_drawerOpen);
+	s.syncAsUint32LE(_val1);
+	s.syncAsUint32LE(_val2);
+	s.syncAsUint32LE(_val3);
+	s.syncAsUint32LE(_val5);
+	s.syncAsUint32LE(_val6);
+	s.syncAsUint32LE(_val7);
+	s.syncAsUint32LE(_val8);
+	s.syncAsUint32LE(_ripMedHigh);
+	s.syncAsUint32LE(_ripLooksDown);
+	s.syncAsUint32LE(_shrunkenHead1);
+	s.syncAsUint32LE(_incenseHolder1);
+	s.syncAsUint32LE(_crystalSkull1);
+	s.syncAsUint32LE(_whaleboneHorn1);
+	s.syncAsUint32LE(_wheeledToy1);
+	s.syncAsUint32LE(_butterfly1);
+	s.syncAsUint32LE(_amulet1);
+	s.syncAsUint32LE(_knife1);
+	s.syncAsUint32LE(_banknote1);
+	s.syncAsUint32LE(_stamp1);
+	s.syncAsUint32LE(_map1);
+	s.syncAsUint32LE(_emerald1);
+	s.syncAsUint32LE(_easterIslandCartoon);
+	s.syncAsUint32LE(_chinshiCartoon);
+	s.syncAsUint32LE(_tabletsCartoon);
+	s.syncAsUint32LE(_epitaphCartoon);
+	s.syncAsUint32LE(_graveyardCartoon);
+	s.syncAsUint32LE(_castleCartoon);
+	s.syncAsUint32LE(_mocaMocheCartoon);
+	s.syncAsUint32LE(_templeCartoon);
+	s.syncAsUint32LE(_emeraldCartoon);
+	s.syncAsUint32LE(_jellyBeans);
+	s.syncAsUint32LE(_feng1);
+	s.syncAsUint32LE(_feng2);
+	s.syncAsUint32LE(_feng3);
+	s.syncAsUint32LE(_rip1);
+	s.syncAsUint32LE(_rip2);
+	s.syncAsUint32LE(_rip3);
+	s.syncAsUint32LE(_rip4);
+	s.syncAsUint32LE(_suit1);
+	s.syncAsUint32LE(_suit2);
+	s.syncAsUint32LE(_suit3);
+	s.syncAsUint32LE(_conv1);
+	s.syncAsUint32LE(_cartoon);
+	s.syncAsUint32LE(_lookUp);
+}
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section3/room305.h b/engines/m4/riddle/rooms/section3/room305.h
index 6c16f562b6e..ac7ea4cbb06 100644
--- a/engines/m4/riddle/rooms/section3/room305.h
+++ b/engines/m4/riddle/rooms/section3/room305.h
@@ -33,13 +33,13 @@ private:
 	int _val1 = 0;
 	int _val2 = 0;
 	int _val3 = 0;
-	int _val4 = 0;
 	int _val5 = 0;
 	int _val6 = 0;
 	int _val7 = 0;
 	int _val8 = 0;
 	KernelTriggerType _triggerMode1 = KT_DAEMON;
 	KernelTriggerType _triggerMode2 = KT_DAEMON;
+	bool _drawerOpen = false;
 	int _ripMedHigh = 0;
 	int _ripLooksDown = 0;
 	machine *_turtle = nullptr;
@@ -120,6 +120,7 @@ public:
 	void daemon() override;
 	void pre_parser() override;
 	void parser() override;
+	void syncGame(Common::Serializer &s) override;
 };
 
 } // namespace Rooms


Commit: 1e43ecf0764a55350ac7d0b78f87f36bc7e8d801
    https://github.com/scummvm/scummvm/commit/1e43ecf0764a55350ac7d0b78f87f36bc7e8d801
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-17T22:49:40-08:00

Commit Message:
M4: Fix setting verb when adding custom hotspots

Changed paths:
    engines/m4/adv_r/adv_hotspot.cpp


diff --git a/engines/m4/adv_r/adv_hotspot.cpp b/engines/m4/adv_r/adv_hotspot.cpp
index 0a8a62dc095..57917226714 100644
--- a/engines/m4/adv_r/adv_hotspot.cpp
+++ b/engines/m4/adv_r/adv_hotspot.cpp
@@ -180,7 +180,7 @@ HotSpotRec *hotspot_add_dynamic(const char *verb, const char *noun,
 		error("hotspot_new failed");
 
 	hotspot_newVocab(hotspot, noun);
-	hotspot_newVocab(hotspot, verb);
+	hotspot_newVerb(hotspot, verb);
 	hotspot->feet_x = walkto_x;
 	hotspot->feet_y = walkto_y;
 	hotspot->cursor_number = cursor;




More information about the Scummvm-git-logs mailing list