[Scummvm-git-logs] scummvm master -> 2e5eaba8f127691db1b3a50f2e3b07b072a98dbd

dreammaster noreply at scummvm.org
Sun Oct 20 17:51:06 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:
2e5eaba8f1 M4: RIDDLE: Merge duplicated click_x/y and player.click_x/y


Commit: 2e5eaba8f127691db1b3a50f2e3b07b072a98dbd
    https://github.com/scummvm/scummvm/commit/2e5eaba8f127691db1b3a50f2e3b07b072a98dbd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-20T10:50:49-07:00

Commit Message:
M4: RIDDLE: Merge duplicated click_x/y and player.click_x/y

This fixes the Gallery room, where looking at the cartoons
was previously all showing the same cartoon

Changed paths:
    common/str.cpp
    engines/m4/adv_r/adv_player.cpp
    engines/m4/burger/gui/interface.cpp
    engines/m4/burger/rooms/section1/room142.cpp
    engines/m4/burger/rooms/section1/room171.cpp
    engines/m4/burger/rooms/section3/mine.cpp
    engines/m4/burger/rooms/section3/room310.cpp
    engines/m4/burger/rooms/section4/room406.cpp
    engines/m4/burger/rooms/section5/room503.cpp
    engines/m4/burger/walker.cpp
    engines/m4/riddle/gui/interface.cpp
    engines/m4/vars.h


diff --git a/common/str.cpp b/common/str.cpp
index 122989a30f1..56cfab4e414 100644
--- a/common/str.cpp
+++ b/common/str.cpp
@@ -700,6 +700,12 @@ size_t strlcpy(char *dst, const char *src, size_t size) {
 	// to calculate the source's length.
 	const char * const srcStart = src;
 
+	// If no src was specified, treat it as an empty string
+	if (!src) {
+		*dst = '\0';
+		return 0;
+	}
+
 	// In case a non-empty size was specified we
 	// copy over (size - 1) bytes at max.
 	if (size != 0) {
diff --git a/engines/m4/adv_r/adv_player.cpp b/engines/m4/adv_r/adv_player.cpp
index f04e260ac48..71140ef0403 100644
--- a/engines/m4/adv_r/adv_player.cpp
+++ b/engines/m4/adv_r/adv_player.cpp
@@ -203,7 +203,7 @@ PlayerInfo *player_update_info() {
 }
 
 void player_set_facing_hotspot(int trigger) {
-	player_set_facing_at(_G(click_x), _G(click_y), trigger);
+	player_set_facing_at(_G(player).click_x, _G(player).click_y, trigger);
 }
 
 void player_set_facing_at(int x, int y, int trigger) {
diff --git a/engines/m4/burger/gui/interface.cpp b/engines/m4/burger/gui/interface.cpp
index dc192cc19c6..5c775f6a3bb 100644
--- a/engines/m4/burger/gui/interface.cpp
+++ b/engines/m4/burger/gui/interface.cpp
@@ -399,8 +399,8 @@ ControlStatus Interface::trackHotspots(int event, int x, int y) {
 	if (event == 5 && hotspot) {
 		_G(player).walk_x = x;
 		_G(player).walk_y = y;
-		_G(click_x) = x;
-		_G(click_y) = y;
+		_G(player).click_x = x;
+		_G(player).click_y = y;
 
 		if (hotspot) {
 			if (hotspot->feet_x != 0x7fff)
diff --git a/engines/m4/burger/rooms/section1/room142.cpp b/engines/m4/burger/rooms/section1/room142.cpp
index 24c14446840..0bbce0a5689 100644
--- a/engines/m4/burger/rooms/section1/room142.cpp
+++ b/engines/m4/burger/rooms/section1/room142.cpp
@@ -634,7 +634,7 @@ void Room142::pre_parser() {
 		if (_G(flags)[V000] == 1003 &&
 			_G(player).walk_x >= 230 && _G(player).walk_x <= 294 &&
 			_G(player).walk_y >= 250 && _G(player).walk_y <= 277) {
-			player_hotspot_walk_override(_G(click_x), 278);
+			player_hotspot_walk_override(_G(player).click_x, 278);
 		} else if (player_said_any("GEAR", "LOOK AT")) {
 			if (player_said("MAIN STREET")) {
 				player_hotspot_walk_override(_G(player).walk_x, 400);
diff --git a/engines/m4/burger/rooms/section1/room171.cpp b/engines/m4/burger/rooms/section1/room171.cpp
index d32e9e0b2d1..5a106cedfab 100644
--- a/engines/m4/burger/rooms/section1/room171.cpp
+++ b/engines/m4/burger/rooms/section1/room171.cpp
@@ -659,7 +659,7 @@ void Room171::pre_parser() {
 	if ((_val1 == 10019 || _val1 == 10020) &&
 		_G(player).walk_x > 378 && _G(player).walk_x <= 518 &&
 		_G(player).walk_y >= 300 && _G(player).walk_y <= 354) {
-		player_walk_to(_G(click_x), 355);
+		player_walk_to(_G(player).click_x, 355);
 	}
 
 	if (!player_said("GEAR") && player_said("FRONT DOOR")) {
diff --git a/engines/m4/burger/rooms/section3/mine.cpp b/engines/m4/burger/rooms/section3/mine.cpp
index f90e72292e5..abb1b4411bf 100644
--- a/engines/m4/burger/rooms/section3/mine.cpp
+++ b/engines/m4/burger/rooms/section3/mine.cpp
@@ -404,11 +404,11 @@ void Mine::pre_parser() {
 	_fade_down_rect_active = false;
 
 	if (player_said("tunnel") && player_said_any("walk through", "GEAR")) {
-		if (_G(click_y) > 300)
+		if (_G(player).click_y > 300)
 			set_fade_down_rect(FRONT);
-		else if (_G(click_x) < 200)
+		else if (_G(player).click_x < 200)
 			set_fade_down_rect(LEFT);
-		else if (_G(click_x) < 400)
+		else if (_G(player).click_x < 400)
 			set_fade_down_rect(BACK);
 		else
 			set_fade_down_rect(RIGHT);
@@ -439,11 +439,11 @@ void Mine::parser() {
 	} else if (player_said("tunnel") && player_said_any("walk through", "GEAR")) {
 		pal_fade_set_start(0);
 
-		if (_G(click_y) > 300)
+		if (_G(player).click_y > 300)
 			mine_travel_link(FRONT);
-		else if (_G(click_x) < 200)
+		else if (_G(player).click_x < 200)
 			mine_travel_link(LEFT);
-		else if (_G(click_x) > 400)
+		else if (_G(player).click_x > 400)
 			mine_travel_link(RIGHT);
 		else
 			mine_travel_link(BACK);
diff --git a/engines/m4/burger/rooms/section3/room310.cpp b/engines/m4/burger/rooms/section3/room310.cpp
index 5df956fc56d..b82c8d7e1a4 100644
--- a/engines/m4/burger/rooms/section3/room310.cpp
+++ b/engines/m4/burger/rooms/section3/room310.cpp
@@ -299,7 +299,7 @@ void Room310::pre_parser() {
 		player_hotspot_walk_override(293, 288, 3, kCHANGE_WILBUR_ANIMATION);
 		_G(player).command_ready = false;
 	} else if (!_G(flags)[kTrufflesRanAway]) {
-		HotSpotRec *hotspot = hotspot_which(_G(click_x), _G(click_y));
+		HotSpotRec *hotspot = hotspot_which(_G(player).click_x, _G(player).click_y);
 		assert(hotspot);
 
 		if (hotspot->feet_x > 360 && hotspot->feet_x < 515 &&
diff --git a/engines/m4/burger/rooms/section4/room406.cpp b/engines/m4/burger/rooms/section4/room406.cpp
index 913143dabb0..3e6110e2637 100644
--- a/engines/m4/burger/rooms/section4/room406.cpp
+++ b/engines/m4/burger/rooms/section4/room406.cpp
@@ -1419,19 +1419,19 @@ void Room406::pre_parser() {
 		if (player_said("FORCE FIELD")) {
 			player_set_facing_hotspot();
 		} else if (!_G(flags)[V175]) {
-			_hotspot = hotspot_which(_G(click_x), _G(click_y));
+			_hotspot = hotspot_which(_G(player).click_x, _G(player).click_y);
 			assert(_hotspot);
 
 			if (_hotspot->feet_y == 0x7fff) {
 				term_message("click_y: %d     taboo_area_y (click_x)",
-					_G(click_x), tabooAreaY(_G(click_x)));
+					_G(player).click_x, tabooAreaY(_G(player).click_x));
 			} else {
 				term_message("feet_y: %d     taboo_area_y (feet_x): %d",
 					_hotspot->feet_y, tabooAreaY(_hotspot->feet_x));
 			}
 
 			if (_hotspot->feet_x > _hotspot->feet_y ||
-					(_hotspot->feet_y == 0x7fff && tabooAreaY(_G(click_x)) > _G(click_y)))
+					(_hotspot->feet_y == 0x7fff && tabooAreaY(_G(player).click_x) > _G(player).click_y))
 				player_walk_to(_hotspot->feet_x, tabooAreaY(_hotspot->feet_x) + 1);
 		}
 	}
diff --git a/engines/m4/burger/rooms/section5/room503.cpp b/engines/m4/burger/rooms/section5/room503.cpp
index 336d08a869e..b2638344807 100644
--- a/engines/m4/burger/rooms/section5/room503.cpp
+++ b/engines/m4/burger/rooms/section5/room503.cpp
@@ -882,10 +882,10 @@ void Room503::pre_parser() {
 	} else {
 		if (_flag1) {
 			player_update_info();
-			HotSpotRec *hotspot = hotspot_which(_G(click_x), _G(click_y));
+			HotSpotRec *hotspot = hotspot_which(_G(player).click_x, _G(player).click_y);
 
-			if (_G(click_x) > 272 && _G(click_y) < 300 && player_said("FLOOR")) {
-				ws_walk(_G(click_x), 301, nullptr, -1, 1);
+			if (_G(player).click_x > 272 && _G(player).click_y < 300 && player_said("FLOOR")) {
+				ws_walk(_G(player).click_x, 301, nullptr, -1, 1);
 			} else if (hotspot->feet_x > 272 && hotspot->feet_y < 300) {
 				player_hotspot_walk_override(hotspot->feet_x, 301, 1);
 			}
diff --git a/engines/m4/burger/walker.cpp b/engines/m4/burger/walker.cpp
index 664f47372b9..d420a7adc39 100644
--- a/engines/m4/burger/walker.cpp
+++ b/engines/m4/burger/walker.cpp
@@ -448,7 +448,7 @@ void player_walk_to(int32 x, int32 y, int32 facing_x, int32 facing_y, int trigge
 }
 
 void player_walk_to(int32 x, int32 y, int trigger) {
-	player_walk_to(x, y, _G(click_x), _G(click_y), trigger);
+	player_walk_to(x, y, _G(player).click_x, _G(player).click_y, trigger);
 }
 
 void wilbur_speech(const char *name, int trigger, int room, byte flags,
diff --git a/engines/m4/riddle/gui/interface.cpp b/engines/m4/riddle/gui/interface.cpp
index 04d6ca2be56..a5ee44b2791 100644
--- a/engines/m4/riddle/gui/interface.cpp
+++ b/engines/m4/riddle/gui/interface.cpp
@@ -308,8 +308,8 @@ ControlStatus Interface::trackHotspots(int event, int x, int y) {
 	if (event == 5 && hotspot) {
 		_G(player).walk_x = x;
 		_G(player).walk_y = y;
-		_G(click_x) = x;
-		_G(click_y) = y;
+		_G(player).click_x = x;
+		_G(player).click_y = y;
 
 		if (hotspot) {
 			if (hotspot->feet_x != 0x7fff)
diff --git a/engines/m4/vars.h b/engines/m4/vars.h
index 49db4a4b9c7..637ffa75120 100644
--- a/engines/m4/vars.h
+++ b/engines/m4/vars.h
@@ -186,7 +186,6 @@ public:
 	bool _shut_down_digi_tracks_between_rooms = false;
 	cursor_states _cursor_state = kARROW;
 	int _iPitch = 0;
-	int _click_x = 0, _click_y = 0;
 	bool _hyperwalk = false;
 };
 




More information about the Scummvm-git-logs mailing list