[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