[Scummvm-git-logs] scummvm master -> a2a8ffce6d9c92de630009443535719e82f06608
Strangerke
noreply at scummvm.org
Sat Jan 4 23:13:13 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:
a2a8ffce6d M4: RIDDLE: Room 808: Start working on room (preload, init)
Commit: a2a8ffce6d9c92de630009443535719e82f06608
https://github.com/scummvm/scummvm/commit/a2a8ffce6d9c92de630009443535719e82f06608
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-01-05T00:10:24+01:00
Commit Message:
M4: RIDDLE: Room 808: Start working on room (preload, init)
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 7ab25cfd5bc..a133dfa6049 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -21,13 +21,153 @@
#include "m4/riddle/rooms/section8/room808.h"
#include "m4/graphics/gr_series.h"
+#include "m4/riddle/riddle.h"
#include "m4/riddle/vars.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
+void Room808::preload() {
+ _G(player).walker_type = WALKER_ALT;
+ _G(player).shadow_type = SHADOW_ALT;
+}
+
void Room808::init() {
+ player_set_commands_allowed(false);
+
+ ws_walk_load_shadow_series(S8_SHADOW_DIRS1, S8_SHADOW_NAMES1);
+ ws_walk_load_walker_series(S8_SHADOW_DIRS2, S8_SHADOW_NAMES2);
+
+ _808Rp02Series = series_load("808rp02", -1, nullptr);
+ _808Rp01Series = series_load("808rp01", -1, nullptr);
+ _ripTalkerPos5Series = series_load("RIP TALKER POS 5", -1, nullptr);
+ _rptmr15Series = series_load("RPTMR15", -1, nullptr);
+ _ripMedReach1HandPos2Series = series_load("RIP MED REACH 1HAND POS2", -1, nullptr);
+ _807Rp04Series = series_load("807rp04", -1, nullptr);
+ _mctd61Series = series_load("mctd61", -1, nullptr);
+ _mctd82aSeries = series_load("mctd82a", -1, nullptr);
+ _ripPos3LookAroundSeries = series_load("RIP POS 3 LOOK AROUND", -1, nullptr);
+ _ripLooksAroundInAweSeries = series_load("RIP LOOKS AROUND IN AWE", -1, nullptr);
+ series_load("808mc98", -1, nullptr);
+ series_load("808mc99", -1, nullptr);
+ series_load("808pos1", -1, nullptr);
+ series_load("808pos2", -1, nullptr);
+
+ if (_G(flags[V096]) == 0) {
+ // Unload the freshly loaded series? This doesn't make sense?!
+ series_unload(series_load("808 RIP TEST BRIDGESHOVEL FAR", -1, nullptr));
+ series_unload(series_load("808 RIP TEST BRIDGE", -1, nullptr));
+ series_unload(series_load("808test3", -1, nullptr));
+ }
+
+ _808ChainMach = series_plain_play("808chain", -1, 0, 100, 0, 0, -1, true);
+ series_play("LIT URN ", 767, 0, -1, 5, -1, 100, 0, 0, 0, -1);
+ if (inv_object_in_scene("FARMER'S SHOVEL", 808)) {
+ if (_G(flags[V095])) {
+ switch (_G(flags[V094])) {
+ case 1:
+ _808PosMach = series_show("808pos2", 1281, 0, -1, -1, 6, 100, 0, 0);
+ break;
+
+ case 2:
+ _808PosMach = series_show("808pos2", 1281, 0, -1, -1, 4, 100, 0, 0);
+ break;
+
+ case 3:
+ _808PosMach = series_show("808pos2", 1281, 0, -1, -1, 3, 100, 0, 0);
+ break;
+
+ case 4:
+ _808PosMach = series_show("808pos2", 1281, 0, -1, -1, 5, 100, 0, 0);
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ _808PosMach = series_show("808pos2", 1281, 0, -1, -1, _G(flags[V094]), 100, 0, 0);
+ }
+ } else {
+ if (_G(flags[V095])) {
+ switch (_G(flags[V094])) {
+ case 1:
+ _808PosMach = series_show("808pos1", 1281, 0, -1, -1, 6, 100, 0, 0);
+ break;
+
+ case 2:
+ _808PosMach = series_show("808pos1", 1281, 0, -1, -1, 4, 100, 0, 0);
+ break;
+
+ case 3:
+ _808PosMach = series_show("808pos1", 1281, 0, -1, -1, 3, 100, 0, 0);
+ break;
+
+ case 4:
+ _808PosMach = series_show("808pos1", 1281, 0, -1, -1, 5, 100, 0, 0);
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ _808PosMach = series_show("808pos1", 1281, 0, -1, -1, _G(flags[V094]), 100, 0, 0);
+ }
+ }
+
+ if (inv_object_in_scene("crank", 808) && _G(flags[V098]) == 0) {
+ _808HandleSpriteMach = series_show("808 handle sprite", 4095, 0, -1, -1, 0, 100, 0, 0);
+ }
+
+ switch (_G(game).previous_room) {
+ case KERNEL_RESTORING_GAME:
+ digi_preload("950_s29", -1);
+ if (_G(flags[V097])) {
+ _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, 345, 115, 5, Walker::player_walker_callback, "mc_trek");
+ } else {
+ _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, 112, 238, 5, Walker::player_walker_callback, "mc_trek");
+ }
+
+ kernel_timing_trigger(1, 1, nullptr);
+ break;
+
+ case 809:
+ ws_demand_facing(_G(my_walker), 5);
+ ws_demand_location(_G(my_walker), 459, 36);
+ ws_walk(_G(my_walker), 382, 116, nullptr, -1, 7, true);
+ _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, 448, 38, 5, Walker::player_walker_callback, "mc_trek");
+ DisposePath(_mcTrekMach->walkPath);
+ _mcTrekMach->walkPath = CreateCustomPath(427, 96, 345, 115, -1);
+ ws_custom_walk(_mcTrekMach, 5, 1, true);
+
+ break;
+
+ default:
+ _808RpupSeries = series_load("808rpup", -1, nullptr);
+ ws_demand_facing(_G(my_walker), 2);
+ ws_demand_location(_G(my_walker), 18, 216);
+ ws_hide_walker(_G(my_walker));
+
+ if (_G(flags[V276]) == 0) {
+ _808McupSeries = series_load("808mcup", -1, nullptr);
+ series_play("808rpup", 0, 0, 2, 5, 0, 100, 0, 0, 0, -1);
+ } else {
+ _G(flags[V276]) = 0;
+ _mcTrekMach = triggerMachineByHash_3000(8, 4, *S8_SHADOW_DIRS2, *S8_SHADOW_DIRS1, 345, 116, 5, Walker::player_walker_callback, "mc_trek");
+ series_play("808rpup", 0, 0, 4, 5, 0, 100, 0, 0, 0, -1);
+ }
+
+ break;
+
+ }
+
+ digi_play_loop("950_s29", 3, 96, -1, -1);
+}
+
+void Room808::pre_parser() {
+}
+
+void Room808::parser() {
}
void Room808::daemon() {
diff --git a/engines/m4/riddle/rooms/section8/room808.h b/engines/m4/riddle/rooms/section8/room808.h
index 8c469a3fbeb..800e98ee1d4 100644
--- a/engines/m4/riddle/rooms/section8/room808.h
+++ b/engines/m4/riddle/rooms/section8/room808.h
@@ -33,8 +33,31 @@ public:
Room808() : Room() {}
~Room808() override {}
+ void preload() override;
void init() override;
+ void pre_parser() override;
+ void parser() override;
void daemon() override;
+
+
+private:
+ int32 _807Rp04Series = 0;
+ int32 _808McupSeries = 0;
+ int32 _808Rp01Series = 0;
+ int32 _808Rp02Series = 0;
+ int32 _808RpupSeries = 0;
+ int32 _mctd61Series = 0;
+ int32 _mctd82aSeries = 0;
+ int32 _ripLooksAroundInAweSeries = 0;
+ int32 _ripMedReach1HandPos2Series = 0;
+ int32 _ripPos3LookAroundSeries = 0;
+ int32 _ripTalkerPos5Series = 0;
+ int32 _rptmr15Series = 0;
+
+ machine *_808ChainMach = nullptr;
+ machine *_808HandleSpriteMach = nullptr;
+ machine *_808PosMach = nullptr;
+ machine *_mcTrekMach = nullptr;
};
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list