[Scummvm-git-logs] scummvm master -> 818a60fbfc568fd9cefda62c871ca1af22091f15
dreammaster
noreply at scummvm.org
Mon Feb 10 05:04:21 UTC 2025
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a90b87683e M4: RIDDLE: Fix Mei disappearing on loading room 209 savegame
a41b843479 M4: RIDDLE: Mei fixes in room 809
578f7f5baa M4: RIDDLE: Fix direction exit in room 809
818a60fbfc M4: RIDDLE: Added room 861
Commit: a90b87683e23b7fcaa840b43609cb10da86b957d
https://github.com/scummvm/scummvm/commit/a90b87683e23b7fcaa840b43609cb10da86b957d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T19:31:52-08:00
Commit Message:
M4: RIDDLE: Fix Mei disappearing on loading room 209 savegame
Changed paths:
engines/m4/riddle/rooms/section8/room809.cpp
engines/m4/riddle/rooms/section8/room809.h
diff --git a/engines/m4/riddle/rooms/section8/room809.cpp b/engines/m4/riddle/rooms/section8/room809.cpp
index 63e119b94d7..903d42b696a 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -77,7 +77,8 @@ void Room809::init() {
hotspot_set_active(_G(currentSceneDef).hotspots, "MEI CHEN ", false);
hotspot_set_active(_G(currentSceneDef).hotspots, "MEI CHEN ", false);
- _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, _mcPosX, 317, _mcFacing, Walker::player_walker_callback, "mc_trek");
+ _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1,
+ _mcPosX, 317, _mcFacing, Walker::player_walker_callback, "mc_trek");
setGlobals3(_mcHandsBehindBackSeries, 1, 17);
sendWSMessage_3840000(_mcTrekMach, 38);
_enableHotspotName = "MEI CHEN ";
@@ -903,6 +904,15 @@ void Room809::daemon() {
}
}
+void Room809::syncGame(Common::Serializer &s) {
+ s.syncAsSint32LE(_mcPosX);
+ s.syncAsSint32LE(_mcFacing);
+ s.syncAsSint32LE(_mcTrekDestX);
+ s.syncAsSint32LE(_playerDestX);
+ s.syncAsSint32LE(_playerDestY);
+ s.syncAsSint32LE(_playerFacing);
+}
+
int32 Room809::getMcDestX(int32 val1, bool val2) {
int32 _dword194868[3] = {540, 960, 1282};
int32 _dword194864[4] = {160, 540, 960, 1282};
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index d15d3cfa8ef..a6de1c36199 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -38,6 +38,7 @@ public:
void pre_parser() override;
void parser() override;
void daemon() override;
+ void syncGame(Common::Serializer &s) override;
private:
bool checkSaid();
@@ -51,15 +52,16 @@ private:
const char *_enableHotspotName = nullptr;
- int32 _809hallSeries = 0;
- int32 _809MusicFadingVol = 0;
int32 _mcFacing = 0;
- int32 _mcHandsBehindBackSeries = 0;
int32 _mcPosX = 0;
int32 _mcTrekDestX = 0;
int32 _playerDestX = 0;
int32 _playerDestY = 0;
int32 _playerFacing = 0;
+
+ int32 _809hallSeries = 0;
+ int32 _809MusicFadingVol = 0;
+ int32 _mcHandsBehindBackSeries = 0;
int32 _ripTalkerPos5Series = 0;
int32 _ripTrekHeadTurnPos5Series = 0;
Commit: a41b8434799112efaabcb94be9d9ed5be0d8af94
https://github.com/scummvm/scummvm/commit/a41b8434799112efaabcb94be9d9ed5be0d8af94
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T20:27:35-08:00
Commit Message:
M4: RIDDLE: Mei fixes in room 809
Changed paths:
engines/m4/riddle/rooms/section8/room809.cpp
engines/m4/riddle/rooms/section8/room809.h
diff --git a/engines/m4/riddle/rooms/section8/room809.cpp b/engines/m4/riddle/rooms/section8/room809.cpp
index 903d42b696a..8c493bb4d7a 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -150,9 +150,7 @@ void Room809::pre_parser() {
}
if (!player_said("spleen") || inv_object_in_scene("two soldiers' shields", 809)) {
- _G(player).need_to_walk = false;
- _G(player).ready_to_walk = true;
- _G(player).waiting_for_walk = false;
+ _G(player).resetWalk();
}
}
@@ -213,7 +211,7 @@ void Room809::parser() {
break;
case 1:
- player_update_info(_mcTrekMach, &_G(player_info));
+ player_update_info();
if (_G(player_info).x < 1340 && -_G(game_buff_ptr)->x1 < 1259) {
g_engine->camera_shift_xy(1259, 0);
}
@@ -226,7 +224,7 @@ void Room809::parser() {
eax = 2;
else if (player_said("talk to"))
eax = 3;
- else if (player_said_any("walk to", "spleen", "walk"))
+ else if (player_said_any("walk to", "walk", "spleen"))
eax = 5;
else if (player_said("journal"))
eax = 4;
@@ -865,12 +863,13 @@ void Room809::daemon() {
case 36:
player_update_info(_mcTrekMach, &_G(player_info));
+
if (-_G(game_buff_ptr)->x1 < _G(player_info).x) {
if (639 - _G(game_buff_ptr)->x1 <= _G(player_info).x) {
_mcTrekDestX = getMcDestX(_G(player_info).x, true);
if (669 - _G(game_buff_ptr)->x1 < _G(player_info).x) {
ws_demand_facing(_mcTrekMach, 11);
- ws_demand_location(669 - _G(game_buff_ptr)->x1, 323);
+ ws_demand_location(_mcTrekMach, 669 - _G(game_buff_ptr)->x1, 323);
}
ws_walk(_mcTrekMach, _mcTrekDestX, 323, nullptr, 37, 11, true);
@@ -879,7 +878,7 @@ void Room809::daemon() {
_mcTrekDestX = getMcDestX(_G(player_info).x, false);
if (-30 - _G(game_buff_ptr)->x1 > _G(player_info).x) {
ws_demand_facing(_mcTrekMach, 1);
- ws_demand_location(-30 - _G(game_buff_ptr)->x1, 323);
+ ws_demand_location(_mcTrekMach, -30 - _G(game_buff_ptr)->x1, 323);
}
ws_walk(_mcTrekMach, _mcTrekDestX, 323, nullptr, 37, 1, true);
@@ -913,21 +912,22 @@ void Room809::syncGame(Common::Serializer &s) {
s.syncAsSint32LE(_playerFacing);
}
-int32 Room809::getMcDestX(int32 val1, bool val2) {
- int32 _dword194868[3] = {540, 960, 1282};
- int32 _dword194864[4] = {160, 540, 960, 1282};
+int32 Room809::getMcDestX(int32 xPos, bool facing) {
+ static const uint16 X_THRESHOLDS1[3] = { 540, 960, 1282 };
+ static const uint16 X_THRESHOLDS2[4] = { 0x7fff, 160, 540, 960 };
+ static const uint16 X_DESTS[5] = { 160, 540, 960, 1282 };
int32 index;
- if (val2) {
+ if (facing) {
index = 0;
for (; index < 3; ++index) {
- if (val1 <= _dword194868[index])
+ if (xPos <= X_THRESHOLDS1[index])
break;
}
} else {
index = 3;
for (; index > 0; --index) {
- if (val1 > _dword194864[index])
+ if (xPos > X_THRESHOLDS2[index])
break;
}
}
@@ -940,15 +940,17 @@ int32 Room809::getMcDestX(int32 val1, bool val2) {
_enableHotspotName = "MEI CHEN ";
_byte1A1990[index] = 0;
_field24_index = index;
- _mcPosX = _dword194864[index];
- _mcFacing = (val2 == false) ? 1 : 11;
+ _mcPosX = X_DESTS[index];
+ _mcFacing = facing ? 11 : 1;
- return _dword194864[index];
+ return _mcPosX;
}
bool Room809::checkSaid() {
- if (player_said_any("spleen", "west", "mei chen", "mei chen ", "mei chen ", "mei chen ", "farmer's shovel", "two soldiers' shields")
- || inv_object_in_scene("two soldiers' shields", 809))
+ if (player_said_any("spleen", "west", "mei chen", "mei chen ",
+ "mei chen ", "mei chen ", "farmer's shovel",
+ "two soldiers' shields")
+ || inv_object_in_scene("two soldiers' shields", 809))
return false;
return true;
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index a6de1c36199..3ff1520d9ac 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -42,7 +42,7 @@ public:
private:
bool checkSaid();
- int32 getMcDestX(int32 val1, bool val2);
+ int32 getMcDestX(int32 xPos, bool facing);
bool _field20Fl = false;
Commit: 578f7f5baa681afa727644dc28858512f6a51098
https://github.com/scummvm/scummvm/commit/578f7f5baa681afa727644dc28858512f6a51098
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T20:41:45-08:00
Commit Message:
M4: RIDDLE: Fix direction exit in room 809
Changed paths:
engines/m4/riddle/rooms/section8/room809.cpp
diff --git a/engines/m4/riddle/rooms/section8/room809.cpp b/engines/m4/riddle/rooms/section8/room809.cpp
index 8c493bb4d7a..8a0c9eb9e26 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -317,7 +317,7 @@ void Room809::parser() {
case 6:
if (player_said("east")) {
kernel_trigger_dispatchx(kernel_trigger_create(53));
- } else if (player_said("east")) {
+ } else if (player_said("west")) {
kernel_trigger_dispatchx(kernel_trigger_create(65));
}
Commit: 818a60fbfc568fd9cefda62c871ca1af22091f15
https://github.com/scummvm/scummvm/commit/818a60fbfc568fd9cefda62c871ca1af22091f15
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T21:04:13-08:00
Commit Message:
M4: RIDDLE: Added room 861
Changed paths:
engines/m4/riddle/rooms/section8/room861.cpp
engines/m4/riddle/rooms/section8/room861.h
diff --git a/engines/m4/riddle/rooms/section8/room861.cpp b/engines/m4/riddle/rooms/section8/room861.cpp
index 19500d2cde8..17eaf8d2dbc 100644
--- a/engines/m4/riddle/rooms/section8/room861.cpp
+++ b/engines/m4/riddle/rooms/section8/room861.cpp
@@ -28,9 +28,101 @@ namespace Riddle {
namespace Rooms {
void Room861::init() {
+ interface_hide();
+ player_set_commands_allowed(false);
+
+ digi_preload("950_s45", 950);
+ digi_play_loop("950_s45", 3, 150, -1, 950);
+ _all1Series = series_load("861all1");
+ _all2Series = series_load("861all2");
+
+ digi_preload("861r03");
+ digi_preload("811_s02");
+ digi_preload("811_s05");
+ digi_preload("861_s01");
+ digi_preload("861_s02");
+ digi_preload("861_s02a");
+
+ _soldrSeries = series_load("861soldr");
+ _soldrMach = series_show("861soldr", 0x400);
+ _all1Mach = series_stream("861all", 4, 0x100, 5);
+ series_stream_break_on_frame(_all1Mach, 9, 2);
}
void Room861::daemon() {
+ switch (_G(kernel).trigger) {
+ case 2:
+ digi_play("811_s05", 1, 255, -1, 811);
+ series_stream_break_on_frame(_all1Mach, 90, 4);
+ break;
+
+ case 4:
+ digi_play("811_s02", 1, 255, -1, 811);
+ break;
+
+ case 5:
+ _all1Mach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100,
+ 0x100, false, triggerMachineByHashCallback, "861all1");
+ sendWSMessage_10000(1, _all1Mach, _all1Series, 1, 24, 10,
+ _all1Series, 24, 24, 0);
+ sendWSMessage_190000(_all1Mach, 12);
+ terminateMachineAndNull(_soldrMach);
+ series_unload(_soldrSeries);
+ _fallMach = series_stream("861_fall", 9, 0x300, 80);
+ series_stream_break_on_frame(_fallMach, 42, 1002);
+ break;
+
+ case 10:
+ digi_play("861_s01", 2, 255, -1, 861);
+ midi_play("tiawa", 180, 1, -1, 949);
+ _all2Mach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0,
+ 100, 0x200, false, triggerMachineByHashCallback, "861 all2");
+ sendWSMessage_10000(1, _all2Mach, _all2Series, 1, 20, 20,
+ _all2Series, 20, 20, 0);
+ sendWSMessage_10000(1, _all1Mach, _all1Series, 25, 42, 15,
+ _all1Series, 43, 47, 4);
+ break;
+
+ case 15:
+ sendWSMessage_1a0000(_all1Mach, 10);
+ break;
+
+ case 20:
+ sendWSMessage_10000(1, _all2Mach, _all2Series, 21, 44, 91,
+ _all2Series, 45, 58, 0);
+ digi_play("861r03", 2);
+ break;
+
+ case 91:
+ disable_player_commands_and_fade_init(-1);
+ break;
+
+ case 92:
+ digi_stop(1);
+ adv_kill_digi_between_rooms(false);
+ digi_unload("861r03");
+ digi_unload("811_s02");
+ digi_unload("811_s05");
+ digi_unload("861_s01");
+ digi_unload("861_s02");
+ digi_unload("861_s02a");
+ digi_play_loop("950_s45", 3, 128, -1, 950);
+ _G(game).setRoom(818);
+ break;
+
+ case 1001:
+ digi_play("861_s02", 1, 255, 92);
+ break;
+
+ case 1002:
+ digi_play("861_s02a", 1);
+ series_stream_break_on_frame(_fallMach, 52, 1001);
+ break;
+
+ case 80:
+ default:
+ break;
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section8/room861.h b/engines/m4/riddle/rooms/section8/room861.h
index 5505bedad9d..0df278d9ecc 100644
--- a/engines/m4/riddle/rooms/section8/room861.h
+++ b/engines/m4/riddle/rooms/section8/room861.h
@@ -29,6 +29,15 @@ namespace Riddle {
namespace Rooms {
class Room861 : public Room {
+private:
+ int _all1Series = 0;
+ int _all2Series = 0;
+ int _soldrSeries = 0;
+ machine *_soldrMach = nullptr;
+ machine *_all1Mach = nullptr;
+ machine *_all2Mach = nullptr;
+ machine *_fallMach = nullptr;
+
public:
Room861() : Room() {}
~Room861() override {}
More information about the Scummvm-git-logs
mailing list