[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