[Scummvm-git-logs] scummvm master -> c1e82582754370a059a10ac296ae4cc5de4ccb57

dreammaster noreply at scummvm.org
Sun Aug 6 22:17:15 UTC 2023


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

Summary:
a6f01a7599 MM: MM1: Fix new characters to be at level 1
c1e8258275 MM: MM1: Added dump_roster command to create original roster.dta


Commit: a6f01a7599f7a10e07388448f827be918999343b
    https://github.com/scummvm/scummvm/commit/a6f01a7599f7a10e07388448f827be918999343b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-08-06T15:17:01-07:00

Commit Message:
MM: MM1: Fix new characters to be at level 1

Changed paths:
    engines/mm/mm1/data/character.cpp


diff --git a/engines/mm/mm1/data/character.cpp b/engines/mm/mm1/data/character.cpp
index 4ec11b61dbc..4911cc337ec 100644
--- a/engines/mm/mm1/data/character.cpp
+++ b/engines/mm/mm1/data/character.cpp
@@ -258,7 +258,7 @@ void Character::clear() {
 	_class = (CharacterClass)0;
 	_intelligence = _might = _personality = _endurance = 0;
 	_speed = _accuracy = _luck = 0;
-	_level = 0;
+	_level = 1;
 	_age = 0;
 	_exp = 0;
 	_sp = 0;


Commit: c1e82582754370a059a10ac296ae4cc5de4ccb57
    https://github.com/scummvm/scummvm/commit/c1e82582754370a059a10ac296ae4cc5de4ccb57
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-08-06T15:17:02-07:00

Commit Message:
MM: MM1: Added dump_roster command to create original roster.dta

Changed paths:
    engines/mm/mm1/console.cpp
    engines/mm/mm1/console.h
    engines/mm/mm1/data/roster.cpp
    engines/mm/mm1/data/roster.h


diff --git a/engines/mm/mm1/console.cpp b/engines/mm/mm1/console.cpp
index f8f5139f9b0..8c2640aa869 100644
--- a/engines/mm/mm1/console.cpp
+++ b/engines/mm/mm1/console.cpp
@@ -35,6 +35,7 @@ Console::Console() : GUI::Debugger() {
 	registerCmd("dump_map", WRAP_METHOD(Console, cmdDumpMap));
 	registerCmd("dump_monsters", WRAP_METHOD(Console, cmdDumpMonsters));
 	registerCmd("dump_items", WRAP_METHOD(Console, cmdDumpItems));
+	registerCmd("dump_roster", WRAP_METHOD(Console, cmdDumpRoster));
 	registerCmd("map_string", WRAP_METHOD(Console, cmdMapString));
 	registerCmd("map", WRAP_METHOD(Console, cmdMap));
 	registerCmd("pos", WRAP_METHOD(Console, cmdPos));
@@ -199,6 +200,12 @@ bool Console::cmdDumpItems(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdDumpRoster(int argc, const char **argv) {
+	g_globals->_roster.saveOriginal();
+	debugPrintf("Dumped roster\n");
+	return true;
+}
+
 bool Console::cmdMapString(int argc, const char **argv) {
 	Common::File f;
 
diff --git a/engines/mm/mm1/console.h b/engines/mm/mm1/console.h
index c6edff7df67..5c180eaff44 100644
--- a/engines/mm/mm1/console.h
+++ b/engines/mm/mm1/console.h
@@ -100,6 +100,11 @@ protected:
 	 */
 	bool cmdView(int argc, const char **argv);
 
+	/**
+	 * Dump the roster in the original roster.dat format
+	 */
+	bool cmdDumpRoster(int argc, const char **argv);
+
 public:
 	Console();
 	~Console() override {}
diff --git a/engines/mm/mm1/data/roster.cpp b/engines/mm/mm1/data/roster.cpp
index 8f58d04f342..d4f8849704f 100644
--- a/engines/mm/mm1/data/roster.cpp
+++ b/engines/mm/mm1/data/roster.cpp
@@ -57,12 +57,20 @@ void Roster::load() {
 			}
 		}
 	} else {
-		Common::File f;
-		if (!f.open("roster.dta"))
-			error("Could not open roster.dta");
+		sf = g_system->getSavefileManager()->openForLoading("roster.dta");
 
-		Common::Serializer s(&f, nullptr);
-		synchronize(s, true);
+		if (sf) {
+			Common::Serializer s(sf, nullptr);
+			synchronize(s, true);
+
+		} else {
+			Common::File f;
+			if (!f.open("roster.dta"))
+				error("Could not open roster.dta");
+
+			Common::Serializer s(&f, nullptr);
+			synchronize(s, true);
+		}
 	}
 }
 
@@ -125,6 +133,16 @@ void Roster::save() {
 	delete sf;
 }
 
+void Roster::saveOriginal() {
+	Common::OutSaveFile *sf = g_system->getSavefileManager()->openForSaving(
+		"roster.dta", false);
+	Common::Serializer s(nullptr, sf);
+	synchronize(s, false);
+
+	sf->finalize();
+	delete sf;
+}
+
 Common::String Roster::rosterSaveName() const {
 	return Common::String::format("%s-roster.dta",
 		g_engine->getTargetName().c_str());
diff --git a/engines/mm/mm1/data/roster.h b/engines/mm/mm1/data/roster.h
index 88933a25686..7fd5d1485d8 100644
--- a/engines/mm/mm1/data/roster.h
+++ b/engines/mm/mm1/data/roster.h
@@ -66,6 +66,11 @@ public:
 	 */
 	void save();
 
+	/**
+	 * Save the roster in the original format
+	 */
+	void saveOriginal();
+
 	/**
 	 * Deletes a character
 	 */




More information about the Scummvm-git-logs mailing list