[Scummvm-git-logs] scummvm master -> 21a8b56b6a006a2c1c6206496385ca7c227b78ee

whoozle noreply at scummvm.org
Thu Jul 23 23:24:52 UTC 2026


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

Summary:
21a8b56b6a PHOENIXVR: Allow variables in slot argument to save-related functions.


Commit: 21a8b56b6a006a2c1c6206496385ca7c227b78ee
    https://github.com/scummvm/scummvm/commit/21a8b56b6a006a2c1c6206496385ca7c227b78ee
Author: Vladimir Menshakov (vladimir.menshakov at gmail.com)
Date: 2026-07-24T00:24:03+01:00

Commit Message:
PHOENIXVR: Allow variables in slot argument to save-related functions.

Changed paths:
    engines/phoenixvr/commands_v2.cpp


diff --git a/engines/phoenixvr/commands_v2.cpp b/engines/phoenixvr/commands_v2.cpp
index ed9fe2d0857..77972b825eb 100644
--- a/engines/phoenixvr/commands_v2.cpp
+++ b/engines/phoenixvr/commands_v2.cpp
@@ -85,19 +85,6 @@ struct Leave_Save : public Command {
 	}
 };
 
-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());
-		g_engine->captureContext();
-		auto err = g_engine->saveGameState(index, name);
-		if (err.getCode() != Common::kNoError)
-			warning("saving to slot %d failed: %s / %d", index, err.getDesc().c_str(), (int)err.getCode());
-	}
-};
-
 struct Goto_Warp : public Command {
 	Common::String name;
 	Goto_Warp(const Common::Array<Common::String> &args) : name(args[0]) {}
@@ -376,11 +363,12 @@ struct Play_Movie : public Command {
 };
 
 struct Test_Slot : public Command {
-	int index;
+	Common::String slot;
 	Common::String sprite;
 	Common::String var;
-	Test_Slot(const Common::Array<Common::String> &args) : index(atoi(args[0].c_str())), sprite(args[1]), var(args[2]) {}
+	Test_Slot(const Common::Array<Common::String> &args) : slot(args[0]), sprite(args[1]), var(args[2]) {}
 	void exec(ExecutionContext &ctx) const override {
+		auto index = valueOf(slot);
 		auto value = g_engine->testSaveSlot(index);
 		debug("test slot %d %s %s, slot exists: %d", index, sprite.c_str(), var.c_str(), value);
 		g_engine->setVariable(var, value);
@@ -391,13 +379,28 @@ struct Test_Slot : public Command {
 };
 
 struct Load_Slot : public Command {
-	int slot;
-	Load_Slot(const Common::Array<Common::String> &args) : slot(atoi(args[0].c_str())) {}
+	Common::String slot;
+	Load_Slot(const Common::Array<Common::String> &args) : slot(args[0]) {}
 	void exec(ExecutionContext &ctx) const override {
-		debug("load slot %d", slot);
-		auto err = g_engine->loadGameState(slot);
+		auto index = valueOf(slot);
+		debug("load slot %s (%d)", slot.c_str(), index);
+		auto err = g_engine->loadGameState(index);
 		if (err.getCode() != Common::ErrorCode::kNoError)
-			error("loading state failed %d", slot);
+			error("loading state failed %d", index);
+	}
+};
+
+struct Save_Slot : public Command {
+	Common::String slot;
+	Common::String name;
+	Save_Slot(const Common::Array<Common::String> &args) : slot(args[0]), name(args[1]) {}
+	void exec(ExecutionContext &ctx) const override {
+		auto index = valueOf(slot);
+		debug("save slot %s (%d): %s", slot.c_str(), index, name.c_str());
+		g_engine->captureContext();
+		auto err = g_engine->saveGameState(index, name);
+		if (err.getCode() != Common::kNoError)
+			warning("saving to slot %d failed: %s / %d", index, err.getDesc().c_str(), (int)err.getCode());
 	}
 };
 




More information about the Scummvm-git-logs mailing list