[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