[Scummvm-git-logs] scummvm master -> d9c6d011b9a6aee3b0d0dd006e573bf0eb2bdbaa
dreammaster
noreply at scummvm.org
Sun Sep 1 22:49:56 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
619166b481 M4: RIDDLE: Added room 495
d9c6d011b9 M4: RIDDLE: Remove redundant room preloads
Commit: 619166b4810ba32f400ac10470bb44c96c7fe8c7
https://github.com/scummvm/scummvm/commit/619166b4810ba32f400ac10470bb44c96c7fe8c7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-01T15:49:45-07:00
Commit Message:
M4: RIDDLE: Added room 495
Changed paths:
engines/m4/riddle/rooms/section4/room495.cpp
engines/m4/riddle/rooms/section4/room495.h
diff --git a/engines/m4/riddle/rooms/section4/room495.cpp b/engines/m4/riddle/rooms/section4/room495.cpp
index a0f711925c6..e12402b4b72 100644
--- a/engines/m4/riddle/rooms/section4/room495.cpp
+++ b/engines/m4/riddle/rooms/section4/room495.cpp
@@ -27,10 +27,258 @@ namespace M4 {
namespace Riddle {
namespace Rooms {
+void Room495::preload() {
+ _G(player).walker_in_this_scene = false;
+}
+
void Room495::init() {
+ updateFlags1();
+ updateFlags2();
+ interface_hide();
+ player_set_commands_allowed(false);
+ digi_preload("950_s46");
+
+ _G(player).disable_hyperwalk = true;
+ _G(player).walker_in_this_scene = false;
+ _val1 = 255;
+
+ series_show("495 peiping", 0xf00);
+ series_show("495 new york", 0xf00);
+
+ if (_G(flags)[V056])
+ series_show("495 danzig", 0xf00);
+ if (_G(flags)[V110]) {
+ series_show("495 sikkim", 0xf00);
+ series_show("495 lima", 0xf00);
+ }
+
+ if (player_been_here(501))
+ series_show("495 easter island", 0xf00);
+ digi_play("950_s46", 3);
+
+ switch (_G(game).previous_room) {
+ case 201:
+ _G(flags)[V092] = 1;
+
+ switch (_G(flags)[V129]) {
+ case 1:
+ play("495 peiping to ny", "495pg03s", 93, 3);
+ break;
+ case 2:
+ play("495 peiping to danzig", "495pg02s", 38, 7);
+ break;
+ case 3:
+ play("495 peiping to sikkim", "495pg01s", 17, 14);
+ break;
+ case 4:
+ play("495 peiping to lima", "495pg04s", 11, 3);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 301:
+ switch (_G(flags)[V129]) {
+ case 0:
+ play("495 ny to peiping", "495ny03s", 108, 3);
+ break;
+ case 2:
+ play("495 ny to danzig", "495ny02s", 47, 4);
+ break;
+ case 3:
+ play("495 ny to sikkim", "495ny04s", 96, 3);
+ break;
+ case 4:
+ play("495 ny to lima", "495ny01s", 28, 5);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 401:
+ switch (_G(flags)[V129]) {
+ case 0:
+ play("495 danzig to peiping", "495dg04s", 51, 4);
+ break;
+ case 1:
+ play("495 danzig to ny", "495dg02s", 43, 4);
+ break;
+ case 3:
+ play("495 danzig to sikkim", "495dg03s", 38, 4);
+ break;
+ case 4:
+ play("495 danzig to lima", "495dg01s", 65, 4);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 501:
+ switch (_G(flags)[V129]) {
+ case 0:
+ play("495 lima to peiping", "495lm05s", 115, 3);
+ break;
+ case 1:
+ play("495 lima to ny", "495lm02s", 18, 10);
+ break;
+ case 2:
+ play("495 lima to danzig", "495m03s", 70, 4);
+ break;
+ case 3:
+ play("495 lima to sikkim", "495lm04s", 100, 3);
+ break;
+ case 5:
+ play("495 lima to easter isle", "495lm01s", 16, 12);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 603:
+ case 615:
+ if (_G(flags)[V129] == 4)
+ play("495 easter isle to lima", "495eis", 16, 12);
+ break;
+
+ case 701:
+ switch (_G(flags)[V129]) {
+ case 0:
+ play("495 sikkim to peiping", "495sm02s", 17, 10);
+ break;
+ case 1:
+ play("495 sikkim to ny", "495sm04s", 93, 3);
+ break;
+ case 2:
+ play("495 sikkim to danzig", "495sm03s", 38, 5);
+ break;
+ case 4:
+ play("495 sikkim to lima", "495sm01s", 100, 3);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
}
void Room495::daemon() {
+ switch (_G(kernel).track_open_close) {
+ case 500:
+ kernel_timing_trigger(1, 502);
+ disable_player_commands_and_fade_init(-1);
+
+ series_play(_seriesName1, 0, 16, -1, 5, 0, 100, 0, 0,
+ _lastFrame + 1, -1);
+ series_play(_seriesName2, 0xf00, 16, -1, 5, 0, 100, 0, 0,
+ _lastFrame + 1, -1);
+ break;
+
+ case 501:
+ interface_show();
+
+ switch (_G(flags)[V129]) {
+ case 0:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(201);
+ break;
+ case 1:
+ _G(game).setRoom(301);
+ break;
+ case 2:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(401);
+ break;
+ case 3:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(701);
+ break;
+ case 4:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(501);
+ break;
+ case 5:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(603);
+ break;
+ case 6:
+ _G(flags)[V092] = 0;
+ _G(game).setRoom(504);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 502:
+ _val1 -= 5;
+ digi_change_panning(3, _val1);
+ kernel_timing_trigger(1, 502);
+
+ if (_val1 <= 0) {
+ digi_stop(3);
+ kernel_timing_trigger(1, 501);
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+void Room495::pre_parser() {
+ _G(player).resetWalk();
+}
+
+void Room495::updateFlags1() {
+ int numPlaced = getNumKeyItemsPlaced();
+
+ if (numPlaced < 3)
+ _G(flags)[V088] = 1;
+ else if (numPlaced < 6)
+ _G(flags)[V088] = 3;
+ else if (numPlaced < 9)
+ _G(flags)[V088] = 4;
+ else
+ _G(flags)[V088] = 5;
+}
+
+void Room495::updateFlags2() {
+ if (_G(flags)[V045]) {
+ _G(flags)[V045] = 0;
+ if (++_G(flags)[V090] > 3)
+ _G(flags)[V090] = 3;
+
+ switch (_G(flags)[V090]) {
+ case 1:
+ _G(flags)[V367] = 1;
+ break;
+ case 2:
+ _G(flags)[V368] = 1;
+ break;
+ case 3:
+ _G(flags)[V369] = 1;
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void Room495::play(const char *seriesName1, const char *seriesName2,
+ int lastFrame, int frameRate) {
+ _lastFrame = lastFrame;
+ _seriesName1 = seriesName1;
+ _seriesName2 = seriesName2;
+
+ series_play(_seriesName1, 0, 0, 500, frameRate, 0, 100, 0, 0, 0, lastFrame);
+ series_play(_seriesName2, 0xf00, 0, -1, frameRate, 0, 100, 0, 0, 0, lastFrame);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section4/room495.h b/engines/m4/riddle/rooms/section4/room495.h
index b896205538c..47e74ef85b0 100644
--- a/engines/m4/riddle/rooms/section4/room495.h
+++ b/engines/m4/riddle/rooms/section4/room495.h
@@ -29,12 +29,25 @@ namespace Riddle {
namespace Rooms {
class Room495 : public Room {
+private:
+ int _val1 = 0;
+ const char *_seriesName1 = nullptr;
+ const char *_seriesName2 = nullptr;
+ int _lastFrame = 0;
+
+ void updateFlags1();
+ void updateFlags2();
+ void play(const char *seriesName1, const char *seriesName2,
+ int lastFrame, int frameRate);
+
public:
Room495() : Room() {}
~Room495() override {}
+ void preload() override;
void init() override;
void daemon() override;
+ void pre_parser() override;
};
} // namespace Rooms
Commit: d9c6d011b9a6aee3b0d0dd006e573bf0eb2bdbaa
https://github.com/scummvm/scummvm/commit/d9c6d011b9a6aee3b0d0dd006e573bf0eb2bdbaa
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-01T15:49:45-07:00
Commit Message:
M4: RIDDLE: Remove redundant room preloads
Changed paths:
engines/m4/riddle/rooms/section3/room301.cpp
engines/m4/riddle/rooms/section3/room301.h
engines/m4/riddle/rooms/section4/room401.cpp
engines/m4/riddle/rooms/section4/room401.h
engines/m4/riddle/rooms/section4/room402.cpp
engines/m4/riddle/rooms/section4/room402.h
engines/m4/riddle/rooms/section4/room403.cpp
engines/m4/riddle/rooms/section4/room403.h
engines/m4/riddle/rooms/section4/room404.cpp
engines/m4/riddle/rooms/section4/room404.h
engines/m4/riddle/rooms/section4/room405.cpp
engines/m4/riddle/rooms/section4/room405.h
diff --git a/engines/m4/riddle/rooms/section3/room301.cpp b/engines/m4/riddle/rooms/section3/room301.cpp
index b4ece45495e..fc604b34474 100644
--- a/engines/m4/riddle/rooms/section3/room301.cpp
+++ b/engines/m4/riddle/rooms/section3/room301.cpp
@@ -27,13 +27,6 @@ namespace M4 {
namespace Riddle {
namespace Rooms {
-void Room301::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- _G(player).walker_in_this_scene = true;
- LoadWSAssets("OTHER SCRIPT");
-}
-
void Room301::init() {
_G(flags)[V000] = 1;
digi_preload("950_s01");
diff --git a/engines/m4/riddle/rooms/section3/room301.h b/engines/m4/riddle/rooms/section3/room301.h
index 5b6b9d06975..80fb1c85695 100644
--- a/engines/m4/riddle/rooms/section3/room301.h
+++ b/engines/m4/riddle/rooms/section3/room301.h
@@ -76,7 +76,6 @@ public:
Room301() : Room() {}
~Room301() override {}
- void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
diff --git a/engines/m4/riddle/rooms/section4/room401.cpp b/engines/m4/riddle/rooms/section4/room401.cpp
index 760937691e1..b2d8ca7d7a3 100644
--- a/engines/m4/riddle/rooms/section4/room401.cpp
+++ b/engines/m4/riddle/rooms/section4/room401.cpp
@@ -44,12 +44,6 @@ static const char *const SAID[][2] = {
{ nullptr, nullptr }
};
-void Room401::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- LoadWSAssets("other script");
-}
-
void Room401::init() {
digi_preload("950_s01");
diff --git a/engines/m4/riddle/rooms/section4/room401.h b/engines/m4/riddle/rooms/section4/room401.h
index 37d7ce6b291..f15e904eec4 100644
--- a/engines/m4/riddle/rooms/section4/room401.h
+++ b/engines/m4/riddle/rooms/section4/room401.h
@@ -64,7 +64,6 @@ public:
Room401() : Room() {}
~Room401() override {}
- void preload() override;
void init() override;
void daemon() override;
void parser() override;
diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index d8067d966ca..7aacc31ba9b 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -38,12 +38,6 @@ static const char *const SAID[][2] = {
{ nullptr, nullptr }
};
-void Room402::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- LoadWSAssets("OTHER SCRIPT");
-}
-
void Room402::init() {
player_set_commands_allowed(false);
diff --git a/engines/m4/riddle/rooms/section4/room402.h b/engines/m4/riddle/rooms/section4/room402.h
index 12bdfcc05e4..3f50d2d0f7c 100644
--- a/engines/m4/riddle/rooms/section4/room402.h
+++ b/engines/m4/riddle/rooms/section4/room402.h
@@ -82,7 +82,6 @@ public:
Room402() : Room() {}
~Room402() override {}
- void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
diff --git a/engines/m4/riddle/rooms/section4/room403.cpp b/engines/m4/riddle/rooms/section4/room403.cpp
index f6b61d37a0a..c26c984ab32 100644
--- a/engines/m4/riddle/rooms/section4/room403.cpp
+++ b/engines/m4/riddle/rooms/section4/room403.cpp
@@ -50,12 +50,6 @@ static const char *const SAID[][2] = {
{ nullptr, nullptr }
};
-void Room403::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- LoadWSAssets("OTHER SCRIPT");
-}
-
void Room403::init() {
digi_preload("403_s02");
digi_preload("403_s02a");
diff --git a/engines/m4/riddle/rooms/section4/room403.h b/engines/m4/riddle/rooms/section4/room403.h
index e42e471549e..d92c261a485 100644
--- a/engines/m4/riddle/rooms/section4/room403.h
+++ b/engines/m4/riddle/rooms/section4/room403.h
@@ -94,7 +94,6 @@ public:
Room403() : Room() {}
~Room403() override {}
- void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
diff --git a/engines/m4/riddle/rooms/section4/room404.cpp b/engines/m4/riddle/rooms/section4/room404.cpp
index d9f35639309..09bfb90d119 100644
--- a/engines/m4/riddle/rooms/section4/room404.cpp
+++ b/engines/m4/riddle/rooms/section4/room404.cpp
@@ -49,12 +49,6 @@ static const char *const SAID[][2] = {
{ nullptr, nullptr }
};
-void Room404::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- LoadWSAssets("OTHER SCRIPT");
-}
-
void Room404::init() {
_door = series_place_sprite("404DOORA", 0, 0, 0, 100, 0xf00);
diff --git a/engines/m4/riddle/rooms/section4/room404.h b/engines/m4/riddle/rooms/section4/room404.h
index 0a938d7d890..4a690803853 100644
--- a/engines/m4/riddle/rooms/section4/room404.h
+++ b/engines/m4/riddle/rooms/section4/room404.h
@@ -53,7 +53,6 @@ public:
Room404() : Room() {}
~Room404() override {}
- void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
diff --git a/engines/m4/riddle/rooms/section4/room405.cpp b/engines/m4/riddle/rooms/section4/room405.cpp
index 1a2ca57aa74..822b4fff475 100644
--- a/engines/m4/riddle/rooms/section4/room405.cpp
+++ b/engines/m4/riddle/rooms/section4/room405.cpp
@@ -53,12 +53,6 @@ static const char *const SAID[][2] = {
{ nullptr, nullptr }
};
-void Room405::preload() {
- _G(player).walker_type = 1;
- _G(player).shadow_type = 1;
- LoadWSAssets("OTHER SCRIPT");
-}
-
void Room405::init() {
player_set_commands_allowed(false);
_door = series_place_sprite("405doora", 0, 0, 0, 100, 0);
diff --git a/engines/m4/riddle/rooms/section4/room405.h b/engines/m4/riddle/rooms/section4/room405.h
index 41ec8dd93fd..858aae3ac04 100644
--- a/engines/m4/riddle/rooms/section4/room405.h
+++ b/engines/m4/riddle/rooms/section4/room405.h
@@ -73,7 +73,6 @@ public:
Room405() : Room() {}
~Room405() override {}
- void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
More information about the Scummvm-git-logs
mailing list