[Scummvm-git-logs] scummvm master -> 67d077d12fb6cf630101f53fd94e8023896ac8d3
Strangerke
noreply at scummvm.org
Tue Feb 4 22:01:44 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:
67d077d12f M4: RIDDLE: Finish the implementation of Room809::daemon
Commit: 67d077d12fb6cf630101f53fd94e8023896ac8d3
https://github.com/scummvm/scummvm/commit/67d077d12fb6cf630101f53fd94e8023896ac8d3
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-04T23:01:10+01:00
Commit Message:
M4: RIDDLE: Finish the implementation of Room809::daemon
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 c04a290c0fe..78d4234f294 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -156,6 +156,49 @@ void Room809::pre_parser() {
}
void Room809::parser() {
+ _G(player).command_ready = false;
+ if (inv_player_has(_G(player).noun)) {
+ _G(player).command_ready = true;
+ return;
+ }
+
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 1:
+ case 39:
+ case 40:
+ case 41:
+ case 42:
+ case 43:
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ case 58:
+ case 59:
+ case 60:
+ case 61:
+ case 62:
+ case 63:
+ case 64:
+ case 65:
+ case 66:
+ case 67:
+ default:
+ break;
+ }
+
+
// TODO Not implemented yet
}
@@ -402,7 +445,29 @@ void Room809::daemon() {
break;
case 36:
- // TODO Not implemented yet
+ 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) {
+ _dword1A1980_x = room809_sub1(_G(player_info).x, 1);
+ 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_walk(_mcTrekMach, _dword1A1980_x, 323, nullptr, 37, 11, true);
+ }
+ } else {
+ _dword1A1980_x = room809_sub1(_G(player_info).x, 0);
+ 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_walk(_mcTrekMach, _dword1A1980_x, 323, nullptr, 37, 1, true);
+ }
+
+ kernel_timing_trigger(60, 36, "verify mc's position");
+
break;
case 37:
@@ -420,6 +485,12 @@ void Room809::daemon() {
}
}
+int32 Room809::room809_sub1(int32 val1, int32 val2) {
+ //TODO Not implemented yet
+
+ return 0;
+}
+
} // namespace Rooms
} // namespace Riddle
} // namespace M4
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index f2872313f10..761a9bcd8e0 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -40,18 +40,22 @@ public:
void daemon() override;
private:
+ int32 room809_sub1(int32 val1, int32 val2);
+
int32 _field20 = 0;
int32 _field24 = 0;
int32 _field28 = 0;
int32 _field2C = 0;
const char *_enableHotspotName = nullptr;
+
byte _byte1A1990[12]; // random size for the moment, enough for facings
- int32 _809MusicFadingVol = 0;
int32 _dword1A1998 = 0;
+ int32 _dword1A1980_x = 0;
int32 _809hallSeries = 0;
+ int32 _809MusicFadingVol = 0;
int32 _mcHandsBehindBackSeries = 0;
int32 _ripTalkerPos5Series = 0;
int32 _ripTrekHeadTurnPos5Series = 0;
@@ -59,7 +63,7 @@ private:
machine *_809rp01Mach = nullptr;
machine *_809hallMach = nullptr;
machine *_mcTrekMach = nullptr;
-
+
};
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list