[Scummvm-git-logs] scummvm master -> 78377e20645631994fd90adcb709b2ecde538b5e

whoozle noreply at scummvm.org
Mon Mar 9 01:51:36 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:
cf6c7382a5 PHOENIXVR: add valueOf to resolve variable or immediate
78377e2064 PHOENIXVR: remove duplicate log lines


Commit: cf6c7382a5755878c3b95e425571616dee7b0aa3
    https://github.com/scummvm/scummvm/commit/cf6c7382a5755878c3b95e425571616dee7b0aa3
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-03-09T01:47:32Z

Commit Message:
PHOENIXVR: add valueOf to resolve variable or immediate

use valueOf in add(), sub() or cmp()

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


diff --git a/engines/phoenixvr/commands.h b/engines/phoenixvr/commands.h
index aea490b62ef..eaea7c65b01 100644
--- a/engines/phoenixvr/commands.h
+++ b/engines/phoenixvr/commands.h
@@ -169,27 +169,27 @@ struct ChangeCurseur : public Script::Command {
 
 struct Add : public Script::Command {
 	Common::String dstVar;
-	Common::String srcVar;
-	int imm;
+	Common::String arg0;
+	Common::String arg1;
 
-	Add(const Common::Array<Common::String> &args) : dstVar(args[0]), srcVar(args[1]), imm(atoi(args[2].c_str())) {}
+	Add(const Common::Array<Common::String> &args) : dstVar(args[0]), arg0(args[1]), arg1(args[2]) {}
 
 	void exec(Script::ExecutionContext &ctx) const override {
-		debug("add %s %s %d", dstVar.c_str(), srcVar.c_str(), imm);
-		g_engine->setVariable(dstVar, g_engine->getVariable(srcVar) + imm);
+		debug("add %s %s %s", dstVar.c_str(), arg0.c_str(), arg1.c_str());
+		g_engine->setVariable(dstVar, valueOf(arg0) + valueOf(arg1));
 	}
 };
 
 struct Sub : public Script::Command {
 	Common::String dstVar;
-	Common::String srcVar;
-	int imm;
+	Common::String arg0;
+	Common::String arg1;
 
-	Sub(const Common::Array<Common::String> &args) : dstVar(args[0]), srcVar(args[1]), imm(atoi(args[2].c_str())) {}
+	Sub(const Common::Array<Common::String> &args) : dstVar(args[0]), arg0(args[1]), arg1(args[2]) {}
 
 	void exec(Script::ExecutionContext &ctx) const override {
-		debug("sub %s %s %d", dstVar.c_str(), srcVar.c_str(), imm);
-		g_engine->setVariable(dstVar, g_engine->getVariable(srcVar) - imm);
+		debug("sub %s %s %s", dstVar.c_str(), arg0.c_str(), arg1.c_str());
+		g_engine->setVariable(dstVar, valueOf(arg0) - valueOf(arg1));
 	}
 };
 
@@ -270,25 +270,26 @@ struct Cmp : public Script::Command {
 	Common::String negativeVar;
 	Common::String arg0;
 	Common::String op;
-	int arg1;
+	Common::String arg1;
 
 	Cmp(const Common::Array<Common::String> &args) : var(args[0]), negativeVar(args[1]),
-													 arg0(args[2]), op(args[3]), arg1(atoi(args[4].c_str())) {}
+													 arg0(args[2]), op(args[3]), arg1(args[4]) {}
 
 	void exec(Script::ExecutionContext &ctx) const override {
-		debug("cmp %s %s %s %s %d", var.c_str(), negativeVar.c_str(), arg0.c_str(), op.c_str(), arg1);
+		debug("cmp %s %s %s %s %s", var.c_str(), negativeVar.c_str(), arg0.c_str(), op.c_str(), arg1.c_str());
 		bool r;
-		auto value0 = g_engine->getVariable(arg0);
+		auto value0 = valueOf(arg0);
+		auto value1 = valueOf(arg1);
 		if (op == "==") {
-			r = value0 == arg1;
+			r = value0 == value1;
 		} else if (op == "<") {
-			r = value0 < arg1;
+			r = value0 < value1;
 		} else if (op == "<=") {
-			r = value0 <= arg1;
+			r = value0 <= value1;
 		} else if (op == ">") {
-			r = value0 > arg1;
+			r = value0 > value1;
 		} else if (op == ">=") {
-			r = value0 >= arg1;
+			r = value0 >= value1;
 		} else {
 			error("invalid cmp op %s", op.c_str());
 		}
diff --git a/engines/phoenixvr/script.cpp b/engines/phoenixvr/script.cpp
index 6acf8711443..2b1332d7af5 100644
--- a/engines/phoenixvr/script.cpp
+++ b/engines/phoenixvr/script.cpp
@@ -368,6 +368,12 @@ void Script::parseLine(const Common::String &line, uint lineno) {
 		error("invalid directive at line %u: %s", lineno, line.c_str());
 }
 
+int Script::Command::valueOf(const Common::String &value) {
+	if (!value.empty() && (Common::isDigit(value[0]) || value[0] == '-' || value[0] == '+'))
+		return atoi(value.c_str());
+	return g_engine->getVariable(value);
+}
+
 Script::~Script() {
 }
 
diff --git a/engines/phoenixvr/script.h b/engines/phoenixvr/script.h
index 27672fcf8da..e84db0e1057 100644
--- a/engines/phoenixvr/script.h
+++ b/engines/phoenixvr/script.h
@@ -57,6 +57,8 @@ public:
 	struct Command {
 		virtual ~Command() {}
 		virtual void exec(ExecutionContext &ctx) const = 0;
+
+		static int valueOf(const Common::String &value);
 	};
 	using CommandPtr = Common::SharedPtr<Command>;
 


Commit: 78377e20645631994fd90adcb709b2ecde538b5e
    https://github.com/scummvm/scummvm/commit/78377e20645631994fd90adcb709b2ecde538b5e
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-03-09T01:50:01Z

Commit Message:
PHOENIXVR: remove duplicate log lines

Changed paths:
    engines/phoenixvr/commands.h


diff --git a/engines/phoenixvr/commands.h b/engines/phoenixvr/commands.h
index eaea7c65b01..bd698112039 100644
--- a/engines/phoenixvr/commands.h
+++ b/engines/phoenixvr/commands.h
@@ -805,7 +805,6 @@ struct AngleYMax : public Script::Command {
 	AngleYMax(float min, float max) : yMin(min), yMax(max) {}
 
 	void exec(Script::ExecutionContext &ctx) const override {
-		debug("angleymax %g %g", yMin, yMax);
 		if (yMin != yMax) {
 			debug("angleymax %g %g", yMin, yMax);
 			g_engine->setYMax(yMin, yMax);




More information about the Scummvm-git-logs mailing list