[Scummvm-git-logs] scummvm master -> 7bdd8237eecc13bab0e7ebb9511ba160ab94b88a

whoozle noreply at scummvm.org
Thu Feb 12 21:42:27 UTC 2026


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
eedcebc73f PHOENIXVR: fix rollover positions for loch ness
7bdd8237ee PHOENIXVR: fix _text leftovers on returning to previous warp


Commit: eedcebc73f4ca4b195a4eb92ab4928b165642539
    https://github.com/scummvm/scummvm/commit/eedcebc73f4ca4b195a4eb92ab4928b165642539
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-02-12T21:26:15Z

Commit Message:
PHOENIXVR: fix rollover positions for loch ness

Changed paths:
    engines/phoenixvr/commands.h
    engines/phoenixvr/phoenixvr.cpp
    engines/phoenixvr/phoenixvr.h


diff --git a/engines/phoenixvr/commands.h b/engines/phoenixvr/commands.h
index 2338a0e11f6..2b959418c6a 100644
--- a/engines/phoenixvr/commands.h
+++ b/engines/phoenixvr/commands.h
@@ -526,30 +526,21 @@ struct Scroll : public Script::Command {
 };
 
 struct Rollover : public Script::Command {
-	int arg;
+	int textId;
+	RolloverType type;
 
-	Rollover(const Common::Array<Common::String> &args) : arg(atoi(args[0].c_str())) {}
+	Rollover(const Common::Array<Common::String> &args, RolloverType t = RolloverType::Default) : textId(atoi(args[0].c_str())), type(t) {}
 	void exec(Script::ExecutionContext &ctx) const override {
-		g_engine->rollover({57, 427, 409, 480}, arg, 14, 1, 0);
+		g_engine->rollover(textId, type);
 	}
 };
 
-struct RolloverMalette : public Script::Command {
-	int arg;
-
-	RolloverMalette(const Common::Array<Common::String> &args) : arg(atoi(args[0].c_str())) {}
-	void exec(Script::ExecutionContext &ctx) const override {
-		g_engine->rollover({251, 346, 522, 394}, arg, 18, 1, 0xD698);
-	}
+struct RolloverMalette : public Rollover {
+	RolloverMalette(const Common::Array<Common::String> &args) : Rollover(args, RolloverType::Malette) {}
 };
 
-struct RolloverSecretaire : public Script::Command {
-	int arg;
-
-	RolloverSecretaire(const Common::Array<Common::String> &args) : arg(atoi(args[0].c_str())) {}
-	void exec(Script::ExecutionContext &ctx) const override {
-		g_engine->rollover({216, 367, 536, 430}, arg, 12, 1, 0xFFFF);
-	}
+struct RolloverSecretaire : public Rollover {
+	RolloverSecretaire(const Common::Array<Common::String> &args) : Rollover(args, RolloverType::Secretaire) {}
 };
 
 struct PorteFRollover : public Script::Command {
diff --git a/engines/phoenixvr/phoenixvr.cpp b/engines/phoenixvr/phoenixvr.cpp
index 0ac047e53d2..be428ad2abc 100644
--- a/engines/phoenixvr/phoenixvr.cpp
+++ b/engines/phoenixvr/phoenixvr.cpp
@@ -483,7 +483,48 @@ void PhoenixVREngine::loadVariables() {
 	_variableSnapshot.clear();
 }
 
-void PhoenixVREngine::rollover(Common::Rect dstRect, int textId, int size, bool bold, uint16_t color) {
+void PhoenixVREngine::rollover(int textId, RolloverType type) {
+	Common::Rect dstRect;
+	int size = 12;
+	bool bold = false;
+	uint16 color = 0xFFFF;
+
+	if (getGameId() == "lochness") {
+		size = 12;
+		bold = false;
+		switch (type) {
+		case RolloverType::Default: // no default in loch ness
+		case RolloverType::Malette:
+			dstRect = Common::Rect{20, 178, 230, 198};
+			color = 0xD698;
+			break;
+		case RolloverType::Secretaire:
+			dstRect = Common::Rect{60, 448, 270, 468};
+			color = 0xFFFF;
+			break;
+		}
+	} else {
+		// using necrono
+		bold = true;
+		switch (type) {
+		case RolloverType::Default:
+			dstRect = Common::Rect{57, 427, 409, 480};
+			size = 14;
+			color = 0;
+			break;
+		case RolloverType::Malette:
+			dstRect = Common::Rect{251, 346, 522, 394};
+			size = 18;
+			color = 0xD698;
+			break;
+		case RolloverType::Secretaire:
+			dstRect = Common::Rect{216, 367, 536, 430};
+			size = 12;
+			color = 0xFFFF;
+			break;
+		}
+	}
+
 	const Graphics::Font *font = nullptr;
 #ifdef USE_FREETYPE2
 	if (size < 14)
diff --git a/engines/phoenixvr/phoenixvr.h b/engines/phoenixvr/phoenixvr.h
index 0175e9f7b6b..90a3e6ba7c2 100644
--- a/engines/phoenixvr/phoenixvr.h
+++ b/engines/phoenixvr/phoenixvr.h
@@ -52,6 +52,12 @@ namespace PhoenixVR {
 struct PhoenixVRGameDescription;
 struct GameState;
 
+enum struct RolloverType {
+	Default,
+	Malette,
+	Secretaire
+};
+
 class PhoenixVREngine : public Engine {
 private:
 	static constexpr uint kFPSLimit = 60;
@@ -170,7 +176,7 @@ public:
 	void saveVariables();
 	void loadVariables();
 
-	void rollover(Common::Rect dstRect, int textId, int size, bool bold, uint16_t color);
+	void rollover(int textId, RolloverType type);
 
 private:
 	static Common::String removeDrive(const Common::String &path);


Commit: 7bdd8237eecc13bab0e7ebb9511ba160ab94b88a
    https://github.com/scummvm/scummvm/commit/7bdd8237eecc13bab0e7ebb9511ba160ab94b88a
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-02-12T21:42:06Z

Commit Message:
PHOENIXVR: fix _text leftovers on returning to previous warp

Changed paths:
    engines/phoenixvr/phoenixvr.cpp


diff --git a/engines/phoenixvr/phoenixvr.cpp b/engines/phoenixvr/phoenixvr.cpp
index be428ad2abc..50c14053cfd 100644
--- a/engines/phoenixvr/phoenixvr.cpp
+++ b/engines/phoenixvr/phoenixvr.cpp
@@ -220,7 +220,6 @@ void PhoenixVREngine::goToWarp(const Common::String &warp, bool savePrev) {
 	else
 		_nextWarp = _script->getWarp("N3M09L03W51E1.vr");
 	_hoverIndex = -1;
-	_text.reset();
 	if (savePrev) {
 		assert(_warpIdx >= 0);
 		_prevWarp = _warpIdx;
@@ -613,6 +612,7 @@ void PhoenixVREngine::tick(float dt) {
 		goToWarp(_script->getInitScript()->vrFile);
 	}
 	if (_nextWarp >= 0) {
+		_text.reset();
 		_warpIdx = _nextWarp;
 		_warp = _script->getWarp(_nextWarp);
 		debug("warp %d -> %s %s", _nextWarp, _warp->vrFile.c_str(), _warp->testFile.c_str());




More information about the Scummvm-git-logs mailing list