[Scummvm-git-logs] scummvm master -> d96938ea936371ae8a27816499d16b176c6499bd
Strangerke
noreply at scummvm.org
Thu Feb 6 21:53:25 UTC 2025
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:
d96938ea93 M4: RIDDLE: Finish the implementation of Room809::parser
Commit: d96938ea936371ae8a27816499d16b176c6499bd
https://github.com/scummvm/scummvm/commit/d96938ea936371ae8a27816499d16b176c6499bd
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-06T22:53:10+01:00
Commit Message:
M4: RIDDLE: Finish the implementation of Room809::parser
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 07df3fbb02d..ec2eb622384 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -276,7 +276,30 @@ void Room809::parser() {
break;
case 3:
- //TODO Not implemented yet
+ if (inv_object_in_scene("two soldiers' shields", 809)) {
+ player_set_commands_allowed(false);
+ inv_give_to_player("two soldiers' shields");
+ terminateMachine(_809rp01Mach);
+ _809rp01Mach = series_play("809rp01", 256, 18, 52, 5, 0, 100, 0, 0, 0, -1);
+ } else {
+ player_update_info(_G(my_walker), &_G(player_info));
+ _dword1A199C_x = _G(player_info).x;
+ _dword1A19A0_y = _G(player_info).y;
+
+ player_update_info(_mcTrekMach, &_G(player_info));
+
+ if (_dword1A199C_x <= _G(player_info).x) {
+ if (_G(player_info).x - 15 <= _dword1A199C_x) {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 42, 5, true);
+ } else {
+ ws_walk(_G(my_walker), _G(player_info).x - 15, 315, nullptr, 42, 5, true);
+ }
+ } else if (_G(player_info).x + 15 >= _dword1A199C_x) {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 42, 7, true);
+ } else {
+ ws_walk(_G(my_walker), _G(player_info).x + 15, 315, nullptr, 42, 7, true);
+ }
+ }
break;
case 4:
@@ -303,7 +326,21 @@ void Room809::parser() {
case 0:
default:
- //TODO Not implemented yet
+ if (player_said("lake") && inv_player_has(_G(player).verb)) {
+ if (player_said("soldier's shield")) {
+ digi_play("809r18", 1, 255, -1, -1);
+ } else if (player_said("two soldiers' shields")) {
+ ws_walk(_G(my_walker), 1346, 318, nullptr, 48, 3, true);
+ } else if (player_said("farmer's shovel")) {
+ ws_walk(_G(my_walker), 1346, 318, nullptr, 44, 3, true);
+ } else {
+ digi_play("809r16", 1, 255, -1, -1);
+ }
+ } else if (player_said_any("mei chen", "mei chen ", "mei chen ", "mei chen ") && inv_player_has(_G(player).verb)) {
+ digi_play("com017", 1, 255, -1, 997);
+ } else {
+ _G(player).command_ready = true;
+ }
break;
}
break;
@@ -581,9 +618,6 @@ void Room809::parser() {
default:
break;
}
-
-
- // TODO Not implemented yet
}
void Room809::daemon() {
@@ -876,9 +910,11 @@ int32 Room809::room809_sub1(int32 val1, int32 val2) {
}
bool Room809::check_said() {
- //TODO Not implemented yet
+ 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 false;
+ return true;
}
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list