[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