[Scummvm-git-logs] scummvm master -> c0e26d83c3e3ae836c0f6f8f09bb3df95e2ce269
whoozle
noreply at scummvm.org
Mon Jul 20 20:16:03 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:
4fce6109cf PHOENIXVR: add V2 command stubs for pharaon curse level 1
c0e26d83c3 PHOENIXVR: Fix V2 VR face order
Commit: 4fce6109cf5f39fa838a0df4ba47ec1ead789bb5
https://github.com/scummvm/scummvm/commit/4fce6109cf5f39fa838a0df4ba47ec1ead789bb5
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-07-20T19:43:49+01:00
Commit Message:
PHOENIXVR: add V2 command stubs for pharaon curse level 1
Changed paths:
engines/phoenixvr/commands_v2.cpp
diff --git a/engines/phoenixvr/commands_v2.cpp b/engines/phoenixvr/commands_v2.cpp
index 65a3df66756..0cab6d24967 100644
--- a/engines/phoenixvr/commands_v2.cpp
+++ b/engines/phoenixvr/commands_v2.cpp
@@ -67,6 +67,29 @@ struct Goto_Level : public Command {
}
};
+struct Enter_Level : public Command {
+ Enter_Level(const Common::Array<Common::String> &args) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("enter level");
+ }
+};
+
+struct Leave_Save : public Command {
+ Leave_Save(const Common::Array<Common::String> &args) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("leave save");
+ }
+};
+
+struct Save_Slot : public Command {
+ int index;
+ Common::String name;
+ Save_Slot(const Common::Array<Common::String> &args) : index(atoi(args[0].c_str())), name(args[1]) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("save slot %d: %s", index, name.c_str());
+ }
+};
+
struct Goto_Warp : public Command {
Common::String name;
Goto_Warp(const Common::Array<Common::String> &args) : name(args[0]) {}
@@ -88,6 +111,41 @@ struct Play_AnimBloc : public Command {
}
};
+struct Play_Amb : public Command {
+ Common::String path;
+ int volume;
+ int loops;
+ Play_Amb(const Common::Array<Common::String> &args) : path(args[0]), volume(atoi(args[1].c_str())), loops(atoi(args[2].c_str())) {}
+ void exec(ExecutionContext &ctx) const override {
+ g_engine->playSound(path, Audio::Mixer::kMusicSoundType, 100, loops);
+ }
+};
+
+struct Delay_Sound : public Command {
+ Common::String path;
+ int delay;
+ int volume;
+ int loops;
+ Delay_Sound(const Common::Array<Common::String> &args) : path(args[0]), delay(atoi(args[1].c_str())), volume(atoi(args[2].c_str())), loops(atoi(args[3].c_str())) {}
+ void exec(ExecutionContext &ctx) const override {
+ g_engine->playSound(path, Audio::Mixer::kMusicSoundType, 100, loops);
+ }
+};
+
+struct Play_3DSound : public Command {
+ Common::String path;
+ int angle1;
+ int angle2;
+ int volume;
+ int loops;
+ Play_3DSound(const Common::Array<Common::String> &args) : path(args[0]),
+ angle1(atoi(args[1].c_str())), angle2(atoi(args[2].c_str())),
+ volume(atoi(args[3].c_str())), loops(atoi(args[4].c_str())) {}
+ void exec(ExecutionContext &ctx) const override {
+ g_engine->playSound(path, Audio::Mixer::kMusicSoundType, 100, loops, true, angle1);
+ }
+};
+
struct Play_Sound : public Command {
Common::String sound;
int volume;
@@ -239,6 +297,21 @@ struct Set_Lensflare : public Command {
}
};
+struct Start_Light : public Command {
+ Common::String fx;
+ Start_Light(const Common::Array<Common::String> &args) : fx(args[0]) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("start light %s", fx.c_str());
+ }
+};
+
+struct Stop_Light : public Command {
+ Stop_Light(const Common::Array<Common::String> &args) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("stop light");
+ }
+};
+
struct Set_Jump_Key : public Command {
Common::String key;
Common::String warp;
@@ -278,6 +351,15 @@ struct Load_Slot : public Command {
}
};
+struct Start_Timer : public Command {
+ float seconds;
+ Common::String warp;
+ Start_Timer(const Common::Array<Common::String> &args) : seconds(atof(args[0].c_str())), warp(args[1].c_str()) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("start timer %g %s", seconds, warp.c_str());
+ }
+};
+
struct Stop_Timer : public Command {
Stop_Timer(const Common::Array<Common::String> &args) {}
void exec(ExecutionContext &ctx) const override {
@@ -285,27 +367,54 @@ struct Stop_Timer : public Command {
}
};
+struct Limit_View : public Command {
+ Common::String angle1, angle2;
+ Limit_View(const Common::Array<Common::String> &args) : angle1(args[0]), angle2(args[1]) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("limit view %d %d", valueOf(angle1), valueOf(angle2));
+ }
+};
+
+struct Set_View_Angle : public Command {
+ Common::String angle1, angle2;
+ Set_View_Angle(const Common::Array<Common::String> &args) : angle1(args[0]), angle2(args[1]) {}
+ void exec(ExecutionContext &ctx) const override {
+ debug("set view angle %d %d", valueOf(angle1), valueOf(angle2));
+ }
+};
+
} // namespace
#define COMMAND_LIST(E) \
E(Add) \
E(Cursor_Load) \
E(Cursor_Set) \
+ E(Delay_Sound) \
+ E(Enter_Level) \
E(Fade) \
E(Go_Back) \
E(Goto_Level) \
E(Goto_Warp) \
+ E(Leave_Save) \
+ E(Limit_View) \
E(Load_Slot) \
+ E(Play_3DSound) \
+ E(Play_Amb) \
+ E(Play_AnimBloc) \
E(Play_Movie) \
E(Play_Sound) \
- E(Play_AnimBloc) \
E(Retrieve_State) \
+ E(Save_Slot) \
+ E(Set_Jump_Key) \
E(Set_Lens) \
E(Set_Lensflare) \
- E(Set_Jump_Key) \
+ E(Set_View_Angle) \
E(Sprite_Load) \
E(Sprite_Screen) \
+ E(Start_Light) \
+ E(Start_Timer) \
E(Stop_All_Sounds) \
+ E(Stop_Light) \
E(Stop_Sound) \
E(Stop_Timer) \
E(Store_State) \
Commit: c0e26d83c3e3ae836c0f6f8f09bb3df95e2ce269
https://github.com/scummvm/scummvm/commit/c0e26d83c3e3ae836c0f6f8f09bb3df95e2ce269
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-07-20T21:15:37+01:00
Commit Message:
PHOENIXVR: Fix V2 VR face order
Changed paths:
engines/phoenixvr/vr.cpp
diff --git a/engines/phoenixvr/vr.cpp b/engines/phoenixvr/vr.cpp
index 96eae5e43bd..517fe30744b 100644
--- a/engines/phoenixvr/vr.cpp
+++ b/engines/phoenixvr/vr.cpp
@@ -462,7 +462,7 @@ struct Cube {
int faceIdx;
};
-Cube toCube(float x, float y, float z) {
+Cube toCube(float x, float y, float z, bool v2) {
Cube cube = {};
float absX = ABS(x);
@@ -479,37 +479,37 @@ Cube toCube(float x, float y, float z) {
maxAxis = absX;
cx = y;
cy = z;
- cube.faceIdx = 4;
+ cube.faceIdx = v2 ? 0 : 4;
}
if (!isXPositive && absX >= absY && absX >= absZ) {
maxAxis = absX;
cx = -y;
cy = z;
- cube.faceIdx = 5;
+ cube.faceIdx = v2 ? 3 : 5;
}
if (isYPositive && absY >= absX && absY >= absZ) {
maxAxis = absY;
cx = -x;
cy = z;
- cube.faceIdx = 3;
+ cube.faceIdx = v2 ? 1 : 3;
}
if (!isYPositive && absY >= absX && absY >= absZ) {
maxAxis = absY;
cx = x;
cy = z;
- cube.faceIdx = 1;
+ cube.faceIdx = v2 ? 2 : 1;
}
if (isZPositive && absZ >= absX && absZ >= absY) {
maxAxis = absZ;
cx = y;
cy = -x;
- cube.faceIdx = 0;
+ cube.faceIdx = v2 ? 5 : 0;
}
if (!isZPositive && absZ >= absX && absZ >= absY) {
maxAxis = absZ;
cx = y;
cy = x;
- cube.faceIdx = 2;
+ cube.faceIdx = v2 ? 4 : 2;
}
// Convert range from â1 to 1 to 0 to 1
@@ -665,7 +665,7 @@ void VR::renderVR(Graphics::Screen *screen, float ax, float ay, float fov, float
Vector3d ray = line;
for (int dstX = 0; dstX != w; ++dstX, ray += incrementX, ++dst) {
- auto cube = toCube(ray.x(), ray.y(), ray.z());
+ auto cube = toCube(ray.x(), ray.y(), ray.z(), _v2);
int srcX = static_cast<int>(faceSize * cube.x);
int srcY = static_cast<int>(kVRFaceSize * cube.y);
int tileId = cube.faceIdx << 2;
More information about the Scummvm-git-logs
mailing list