[Scummvm-git-logs] scummvm master -> 9810d2753c6e31bbd4a1c3c8a33377215a55993b

OMGPizzaGuy noreply at scummvm.org
Sun Nov 20 19:50:57 UTC 2022


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:
4db39ab10d ULTIMA8: Allow loading of savegame versions that are not current.
9810d2753c ULTIMA8: Fix MiniMapGump::generate command and add MiniMapGump::clear command


Commit: 4db39ab10d8f9e8ebe4acb9ed329f8b5dae0e4a0
    https://github.com/scummvm/scummvm/commit/4db39ab10d8f9e8ebe4acb9ed329f8b5dae0e4a0
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2022-11-20T13:50:18-06:00

Commit Message:
ULTIMA8: Allow loading of savegame versions that are not current.

Loading of newer than current may be cause issues, but still possible dependent on contents.

Changed paths:
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index cbfd97e64a8..34f1c515b1b 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -1265,11 +1265,6 @@ Common::Error Ultima8Engine::loadGameStream(Common::SeekableReadStream *stream)
 		return Common::kReadingFailed;
 	}
 
-	if (state != SavegameReader::SAVE_VALID) {
-		Error("Unsupported savegame version", "Error Loading savegame");
-		delete sg;
-		return Common::kReadingFailed;
-	}
 
 	_mouse->pushMouseCursor();
 	_mouse->setMouseCursor(Mouse::MOUSE_PENTAGRAM);


Commit: 9810d2753c6e31bbd4a1c3c8a33377215a55993b
    https://github.com/scummvm/scummvm/commit/9810d2753c6e31bbd4a1c3c8a33377215a55993b
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2022-11-20T13:50:18-06:00

Commit Message:
ULTIMA8: Fix MiniMapGump::generate command and add MiniMapGump::clear command

Changed paths:
    engines/ultima/ultima8/gumps/minimap_gump.cpp
    engines/ultima/ultima8/gumps/minimap_gump.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h


diff --git a/engines/ultima/ultima8/gumps/minimap_gump.cpp b/engines/ultima/ultima8/gumps/minimap_gump.cpp
index 1f2beda6de8..9548216c440 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.cpp
+++ b/engines/ultima/ultima8/gumps/minimap_gump.cpp
@@ -80,6 +80,11 @@ void MiniMapGump::run() {
 	_ax = ax;
 	_ay = ay;
 
+	update(currentmap);
+}
+void MiniMapGump::update(CurrentMap *currentmap) {
+	int mapChunkSize = currentmap->getChunkSize();
+
 	// Draw into the map surface
 	for (int x = 0; x < _minimap.w; x++) {
 		for (int y = 0; y < _minimap.h; y++) {
@@ -103,6 +108,20 @@ void MiniMapGump::run() {
 	}
 }
 
+void MiniMapGump::generate() {
+	World *world = World::get_instance();
+	CurrentMap *currentmap = world->getCurrentMap();
+	// TODO - do not leave whole map fast after generation
+	currentmap->setWholeMapFast();
+
+	_minimap.clear();
+	update(currentmap);
+}
+
+void MiniMapGump::clear() {
+	_minimap.clear();
+}
+
 void MiniMapGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) {
 	// Draw the yellow border
 	surf->Fill32(0xFFFFAF00, 0, 0, _dims.width(), 1);
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.h b/engines/ultima/ultima8/gumps/minimap_gump.h
index 90b6dc3a02b..3d9bb62395c 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.h
+++ b/engines/ultima/ultima8/gumps/minimap_gump.h
@@ -36,6 +36,7 @@ private:
 	unsigned int        _lastMapNum;
 	int32 _ax, _ay;
 
+	void update(CurrentMap *map);
 	uint32 sampleAtPoint(CurrentMap *map, int x, int y);
 	uint32 sampleAtPoint(const Item *item, int x, int y);
 public:
@@ -47,6 +48,9 @@ public:
 
 	void run() override;
 
+	void generate();
+	void clear();
+
 	void        PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) override;
 	uint16      TraceObjId(int32 mx, int32 my) override;
 
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 2deae975ced..c81b7740930 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -205,7 +205,8 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("InverterProcess::invertScreen", WRAP_METHOD(Debugger, cmdInvertScreen));
 	registerCmd("MenuGump::showMenu", WRAP_METHOD(Debugger, cmdShowMenu));
 	registerCmd("MiniMapGump::toggle", WRAP_METHOD(Debugger, cmdToggleMinimap));
-	registerCmd("MiniMapGump::generateWholeMap", WRAP_METHOD(Debugger, cmdGenerateWholeMap));
+	registerCmd("MiniMapGump::generate", WRAP_METHOD(Debugger, cmdGenerateMinimap));
+	registerCmd("MiniMapGump::clear", WRAP_METHOD(Debugger, cmdClearMinimap));
 	registerCmd("MovieGump::play", WRAP_METHOD(Debugger, cmdPlayMovie));
 	registerCmd("MusicProcess::playMusic", WRAP_METHOD(Debugger, cmdPlayMusic));
 	registerCmd("QuitGump::verifyQuit", WRAP_METHOD(Debugger, cmdVerifyQuit));
@@ -1806,10 +1807,26 @@ bool Debugger::cmdToggleMinimap(int argc, const char **argv) {
 	return false;
 }
 
-bool Debugger::cmdGenerateWholeMap(int argc, const char **argv) {
-	World *world = World::get_instance();
-	CurrentMap *currentmap = world->getCurrentMap();
-	currentmap->setWholeMapFast();
+bool Debugger::cmdGenerateMinimap(int argc, const char **argv) {
+	Ultima8Engine *app = Ultima8Engine::get_instance();
+	Gump *desktop = app->getDesktopGump();
+	MiniMapGump *gump = dynamic_cast<MiniMapGump *>(desktop->FindGump<MiniMapGump>());
+
+	if (gump) {
+		gump->generate();
+	}
+	return false;
+}
+
+
+bool Debugger::cmdClearMinimap(int argc, const char **argv) {
+	Ultima8Engine *app = Ultima8Engine::get_instance();
+	Gump *desktop = app->getDesktopGump();
+	MiniMapGump *gump = dynamic_cast<MiniMapGump *>(desktop->FindGump<MiniMapGump>());
+
+	if (gump) {
+		gump->clear();
+	}
 	return false;
 }
 
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index 8a96758e756..9ad588c8ff4 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -274,8 +274,9 @@ private:
 	bool cmdVerifyQuit(int argc, const char **argv);
 	bool cmdU8ShapeViewer(int argc, const char **argv);
 	bool cmdShowMenu(int argc, const char **argv);
-	bool cmdGenerateWholeMap(int argc, const char **argv);
 	bool cmdToggleMinimap(int argc, const char **argv);
+	bool cmdGenerateMinimap(int argc, const char **argv);
+	bool cmdClearMinimap(int argc, const char **argv);
 	bool cmdInvertScreen(int argc, const char **argv);
 	bool cmdPlayMovie(int argc, const char **argv);
 	bool cmdPlayMusic(int argc, const char **argv);




More information about the Scummvm-git-logs mailing list