[Scummvm-git-logs] scummvm master -> 4c3db038488e717268298eab88dd1811c91515b8
Strangerke
noreply at scummvm.org
Fri Jan 10 06:36:51 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:
4c3db03848 M4: RIDDLE: Room 808: Finish the implementation of daemon
Commit: 4c3db038488e717268298eab88dd1811c91515b8
https://github.com/scummvm/scummvm/commit/4c3db038488e717268298eab88dd1811c91515b8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-01-10T07:36:38+01:00
Commit Message:
M4: RIDDLE: Room 808: Finish the implementation of daemon
Changed paths:
engines/m4/riddle/rooms/section8/room808.cpp
engines/m4/riddle/rooms/section8/room808.h
diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index 8185a2d15fe..1e78930c5fa 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -482,21 +482,185 @@ void Room808::daemon() {
break;
case 18:
+ if (_G(flags[V097] != 0))
+ break;
+
+ if (!player_commands_allowed() || !checkStrings()) {
+ kernel_timing_trigger(60, 18, nullptr);
+ } else {
+ player_set_commands_allowed(false);
+ intr_cancel_sentence();
+ switch (imath_ranged_rand(1, 4)) {
+ case 1:
+ digi_play("950_s15", 2, 255, 19, -1);
+ break;
+
+ case 2:
+ digi_play("950_s16", 2, 255, 19, -1);
+ break;
+
+ case 3:
+ digi_play("950_s17", 2, 255, 19, -1);
+ break;
+
+ case 4:
+ default:
+ digi_play("950_s18", 2, 255, 19, -1);
+ break;
+ }
+ }
+
+ break;
+
case 19:
+ player_update_info(_G(my_walker), &_G(player_info));
+ switch (_G(player_info).facing) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ ws_walk(_G(my_walker), _G(player_info).x, _G(player_info).y, nullptr, 20, 3, true);
+ _dword1A195C_facing = 3;
+
+ break;
+
+ case 5:
+ kernel_timing_trigger(30, 20, "phantom reaction");
+ _dword1A195C_facing = 5;
+
+ break;
+
+ case 7:
+ kernel_timing_trigger(30, 20, "phantom reaction");
+ _dword1A195C_facing = 7;
+
+ break;
+
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ ws_walk(_G(my_walker), _G(player_info).x, _G(player_info).y, nullptr, 20, 9, true);
+ _dword1A195C_facing = 9;
+
+ break;
+
+ default:
+ break;
+ }
+
+ break;
+
case 20:
+ _dword1A1958 = 0;
+ _dword1A1960_rand4 = imath_ranged_rand(1, 4);
+
+ switch(_dword1A1960_rand4) {
+ case 1:
+ digi_play("COM052", 1, 255, 21, 997);
+ break;
+
+ case 2:
+ digi_play("COM054", 1, 255, 21, 997);
+ break;
+
+ case 3:
+ digi_play("COM056", 1, 255, 21, 997);
+ break;
+
+ case 4:
+ digi_play("COM057", 1, 255, 21, 997);
+ break;
+
+ default:
+ break;
+ }
+
+ setGlobals3(_mctd82aSeries, 1, 22);
+ sendWSMessage_3840000(_mcTrekMach, 23);
+
+ if (_dword1A195C_facing == 3 || _dword1A195C_facing == 9) {
+ setGlobals3(_ripPos3LookAroundSeries, 1, 20);
+ } else {
+ setGlobals3(_ripLooksAroundInAweSeries, 1, 14);
+ }
+
+ sendWSMessage_3840000(_G(my_walker), 22);
+
+ break;
+
case 21:
+ switch (_dword1A1960_rand4) {
+ case 1:
+ digi_play("COM053", 1, 255, -1, 997);
+ break;
+
+ case 2:
+ digi_play("COM055", 1, 255, -1, 997);
+ break;
+
+ case 4:
+ digi_play("COM058", 1, 255, -1, 997);
+ break;
+
+ default:
+ break;
+ }
+ break;
+
case 22:
+ kernel_timing_trigger(imath_ranged_rand(90, 120), 24, nullptr);
+ break;
+
case 23:
+ kernel_timing_trigger(imath_ranged_rand(90, 120), 25, nullptr);
+ break;
+
case 24:
+
+
+ if (_dword1A195C_facing == 3 || _dword1A195C_facing == 9) {
+ setGlobals3(_ripPos3LookAroundSeries, 19, 1);
+ } else {
+ setGlobals3(_ripLooksAroundInAweSeries, 13, 1);
+ }
+
+ sendWSMessage_3840000(_G(my_walker), 26);
+
+ break;
+
case 25:
+ setGlobals3(_mctd82aSeries, 22, 1);
+ sendWSMessage_3840000(_mcTrekMach, 26);
+ break;
+
case 26:
+ ++_dword1A1958;
+ if (_dword1A1958 == 2) {
+ player_set_commands_allowed(true);
+ ws_demand_facing(_G(my_walker), _dword1A195C_facing);
+ kernel_timing_trigger(imath_ranged_rand(7200, 14400), 19, nullptr);
+ }
+
+ break;
+
case 966:
+ digi_play("950_s53", 2, 255, 967, -1);
+ break;
+
case 967:
+ ws_unhide_walker(_G(my_walker));
+ ws_demand_location(_G(my_walker), 202, 179);
+ ws_demand_facing(_G(my_walker), 2);
+ other_save_game_for_resurrection();
+ _G(game).section_id = 4;
+ _G(game).new_room = 413;
+
+ break;
default:
break;
}
- // TODO Not implemented yet
}
bool Room808::getWalkPath(machine *machine, int32 walk_x, int32 walk_y) {
diff --git a/engines/m4/riddle/rooms/section8/room808.h b/engines/m4/riddle/rooms/section8/room808.h
index 0509aebdf54..386f82e883f 100644
--- a/engines/m4/riddle/rooms/section8/room808.h
+++ b/engines/m4/riddle/rooms/section8/room808.h
@@ -45,6 +45,10 @@ private:
bool getWalkPath(machine *machine, int32 walk_x, int32 walk_y);
void setBridgeHotspots(int val1, bool activeFl);
+ int32 _dword1A195C_facing = 0;
+ int32 _dword1A1958 = 0;
+ int32 _dword1A1960_rand4 = 0;
+
int32 _807Rp04Series = 0;
int32 _808McupSeries = 0;
int32 _808Rp01Series = 0;
More information about the Scummvm-git-logs
mailing list