[Scummvm-git-logs] scummvm master -> 55e210f07145d4905559296c95b545f85f2dd35f
Strangerke
noreply at scummvm.org
Thu Feb 6 07:29:12 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:
55e210f071 M4: RIDDLE: More work on Room809::parser
Commit: 55e210f07145d4905559296c95b545f85f2dd35f
https://github.com/scummvm/scummvm/commit/55e210f07145d4905559296c95b545f85f2dd35f
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-06T08:29:00+01:00
Commit Message:
M4: RIDDLE: More work on Room809::parser
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 aba2694f507..f543091f691 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -138,14 +138,14 @@ void Room809::init() {
void Room809::pre_parser() {
if (player_said("look at", "gate")) {
- _dword1A1998 = 9;
+ _dword1A1998_facing = 9;
} else if (player_said("look at", "mausoleum") || player_said("go", "west")) {
- _dword1A1998 = 3;
+ _dword1A1998_facing = 3;
} else if (player_said("look at", "urn")) {
- _dword1A1998 = -1;
+ _dword1A1998_facing = -1;
} else {
player_update_info(_G(my_walker), &_G(player_info));
- _dword1A1998 = _G(player_info).x >= _G(player).click_x ? 9 : 3;
+ _dword1A1998_facing = _G(player_info).x >= _G(player).click_x ? 9 : 3;
}
if (!player_said("spleen") || inv_object_in_scene("two soldiers' shields", 809)) {
@@ -172,14 +172,14 @@ void Room809::parser() {
destY = imath_min(145, _G(player).x + 20);
destY = imath_max(destY, 145);
if (_G(player).click_y < 315) {
- if (_dword1A1998 < 0)
- _dword1A1998 = 11;
+ if (_dword1A1998_facing < 0)
+ _dword1A1998_facing = 11;
destX = 315;
} else if (_G(player).click_y <= 321) {
destX = _G(player).click_y;
} else {
- if (_dword1A1998 < 0)
- _dword1A1998 = 7;
+ if (_dword1A1998_facing < 0)
+ _dword1A1998_facing = 7;
destX = 321;
}
@@ -190,19 +190,19 @@ void Room809::parser() {
destY = imath_max(_G(player_info).x, _G(player).click_x - 20);
if (_G(player).click_y < 315) {
- if (_dword1A1998 < 0)
- _dword1A1998 = 1;
+ if (_dword1A1998_facing < 0)
+ _dword1A1998_facing = 1;
destX = 315;
} else if (_G(player).click_y <= 321)
destX = _G(player).click_y;
else {
- if (_dword1A1998 < 0)
- _dword1A1998 = 5;
+ if (_dword1A1998_facing < 0)
+ _dword1A1998_facing = 5;
destX = 321;
}
}
- ws_walk(_G(my_walker), destX, destY, nullptr, 1, _dword1A1998, true);
+ ws_walk(_G(my_walker), destX, destY, nullptr, 1, _dword1A1998_facing, true);
} else {
kernel_trigger_dispatchx(kernel_trigger_create(1));
}
@@ -219,7 +219,25 @@ void Room809::parser() {
break;
case 40:
- //TODO Not implemented yet
+ player_update_info(_G(my_walker), &_G(player_info));
+ _dword1A1998_facing = _G(player_info).facing;
+ _dword1A199C_x = _G(player_info).x;
+ _dword1A19A0_y = _G(player_info).y;
+
+ player_update_info(_mcTrekMach, &_G(player_info));
+
+ if (_G(player_info).x >= _dword1A199C_x) {
+ if (_G(player_info).x - _dword1A199C_x <= 30) {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 41, 5, true);
+ } else {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 41, 4, true);
+ }
+ } else if (_dword1A199C_x - _G(player_info).x <= 30) {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 41, 7, true);
+ } else {
+ ws_walk(_G(my_walker), _dword1A199C_x, _dword1A19A0_y, nullptr, 41, 8, true);
+ }
+
break;
case 41:
@@ -374,16 +392,59 @@ void Room809::parser() {
break;
case 57:
+ disable_player_commands_and_fade_init(58);
+ break;
+
case 58:
+ _G(game).new_room = 810;
+ break;
+
case 59:
+ digi_play("809m04", 1, 255, 60, -1);
+ break;
+
case 60:
+ player_set_commands_allowed(true);
+ digi_play("809r14", 1, 255, 63, -1);
+
+ break;
+
case 61:
+ digi_play("809m03", 1, 255, 62, -1);
+ break;
+
case 62:
+ player_set_commands_allowed(true);
+ digi_play("809r12", 1, 255, 63, -1);
+
+ break;
+
case 63:
+ player_set_commands_allowed(true);
+ digi_play("809r13", 1, 255, -1, -1);
+
+ break;
+
case 64:
+ player_set_commands_allowed(true);
+ digi_play("809r15", 1, 255, -1, -1);
+
+ break;
+
case 65:
+ ws_walk(_G(my_walker), 120, 317, nullptr, 66, -1, false);
+ break;
+
case 66:
+ ws_walk(_G(my_walker), 90, 317, nullptr, -1, 9, true);
+ disable_player_commands_and_fade_init(67);
+
+ break;
+
case 67:
+ _G(game).new_room = 808;
+ break;
+
default:
break;
}
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index 0bf65270516..37eb26997c2 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -51,9 +51,10 @@ private:
const char *_enableHotspotName = nullptr;
byte _byte1A1990[12]; // random size for the moment, enough for facings
- int32 _dword1A1998 = 0;
int32 _dword1A1980_x = 0;
-
+ int32 _dword1A1998_facing = 0;
+ int32 _dword1A199C_x = 0;
+ int32 _dword1A19A0_y = 0;
int32 _809hallSeries = 0;
int32 _809MusicFadingVol = 0;
More information about the Scummvm-git-logs
mailing list