[Scummvm-git-logs] scummvm master -> de5c8c38484ed4f3db3f60d7dd4cc6204951aee7
dreammaster
noreply at scummvm.org
Sun Jan 18 06:25:18 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:
9427d0030d MM: MM1: Fix incorrect cast of views collection
de5c8c3848 MM: MM1: Fix display of treasure search results
Commit: 9427d0030d710368742480eefabec18acceb2730
https://github.com/scummvm/scummvm/commit/9427d0030d710368742480eefabec18acceb2730
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-18T17:03:00+11:00
Commit Message:
MM: MM1: Fix incorrect cast of views collection
Changed paths:
engines/mm/mm1/events.cpp
engines/mm/mm1/events.h
engines/mm/mm1/views/dialogs.h
engines/mm/mm1/views_enh/dialogs.h
diff --git a/engines/mm/mm1/events.cpp b/engines/mm/mm1/events.cpp
index 75518c0ea86..5e9a6547fd8 100644
--- a/engines/mm/mm1/events.cpp
+++ b/engines/mm/mm1/events.cpp
@@ -42,9 +42,9 @@ Events::~Events() {
}
void Events::runGame() {
- UIElement *allViews = _enhancedMode ?
- (UIElement *)new ViewsEnh::Dialogs() :
- (UIElement *)new Views::Dialogs();
+ ViewsBase *allViews = _enhancedMode ?
+ (ViewsBase *)new ViewsEnh::Dialogs() :
+ (ViewsBase *)new Views::Dialogs();
uint currTime, nextFrameTime = 0;
_screen = new Graphics::Screen();
diff --git a/engines/mm/mm1/events.h b/engines/mm/mm1/events.h
index 778c0157764..6383e173414 100644
--- a/engines/mm/mm1/events.h
+++ b/engines/mm/mm1/events.h
@@ -255,6 +255,12 @@ public:
#undef MESSAGE
};
+class ViewsBase {
+public:
+ ViewsBase() {}
+ virtual ~ViewsBase() {}
+};
+
/**
* Main events and view manager
*/
diff --git a/engines/mm/mm1/views/dialogs.h b/engines/mm/mm1/views/dialogs.h
index 44b5a192c65..ef8bd74b49a 100644
--- a/engines/mm/mm1/views/dialogs.h
+++ b/engines/mm/mm1/views/dialogs.h
@@ -90,7 +90,7 @@ namespace MM {
namespace MM1 {
namespace Views {
-struct Dialogs {
+struct Dialogs : public ViewsBase {
private:
Views::AreYouReady _areYouReady;
Views::Bash _bash;
@@ -163,6 +163,7 @@ private:
Views::Spells::Teleport _telportSpell;
public:
Dialogs() {}
+ ~Dialogs() override {}
};
} // namespace Views
diff --git a/engines/mm/mm1/views_enh/dialogs.h b/engines/mm/mm1/views_enh/dialogs.h
index 204b6cf1a5f..b1d0105815a 100644
--- a/engines/mm/mm1/views_enh/dialogs.h
+++ b/engines/mm/mm1/views_enh/dialogs.h
@@ -98,7 +98,7 @@ namespace MM {
namespace MM1 {
namespace ViewsEnh {
-struct Dialogs {
+struct Dialogs : public ViewsBase {
private:
ViewsEnh::Interactions::AccessCode _accessCode;
ViewsEnh::Interactions::Alamar _alamar;
@@ -181,6 +181,7 @@ private:
Views::Bash _bash;
public:
Dialogs() {}
+ ~Dialogs() override {}
};
} // namespace ViewsEnh
Commit: de5c8c38484ed4f3db3f60d7dd4cc6204951aee7
https://github.com/scummvm/scummvm/commit/de5c8c38484ed4f3db3f60d7dd4cc6204951aee7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-18T17:24:30+11:00
Commit Message:
MM: MM1: Fix display of treasure search results
This fixes bug #16458, which was caused by text being drawn
outside the bounds of the window
Changed paths:
engines/mm/mm1/views_enh/search.cpp
engines/mm/shared/utils/xeen_font.cpp
diff --git a/engines/mm/mm1/views_enh/search.cpp b/engines/mm/mm1/views_enh/search.cpp
index 8dbed876d0a..587429a50c2 100644
--- a/engines/mm/mm1/views_enh/search.cpp
+++ b/engines/mm/mm1/views_enh/search.cpp
@@ -76,7 +76,6 @@ void Search::draw() {
Common::String line;
setButtonEnabled(0, _mode == OPTIONS);
- //if (_mode != GET_ITEMS)
SelectNumber::draw();
switch (_mode) {
@@ -394,6 +393,7 @@ void Search::drawTreasure() {
void Search::drawItem() {
Treasure &treasure = g_globals->_treasure;
int itemId = treasure.removeItem();
+ _lineNum = 0;
// Iterate through any treasure items
if (itemId != 0) {
@@ -415,14 +415,19 @@ void Search::drawItem() {
item->_name.c_str()
));
- delaySeconds(2);
- return;
+ if (treasure.hasItems()) {
+ delaySeconds(2);
+ return;
+ } else {
+ // Finished final item, so go down below to switch to items done
+ break;
+ }
}
}
// At this point we've either displayed the up to 3 item
- // lines (in addition to gold and/or gems), or the party's
- // backpacks were completely full up. Wait for 7 seconds
+ // lines (in addition to gold and/or gems), or the party's backpacks
+ // were completely full up. Wait for 7 seconds and close the view
setMode(GET_ITEMS_DONE);
delaySeconds(7);
}
diff --git a/engines/mm/shared/utils/xeen_font.cpp b/engines/mm/shared/utils/xeen_font.cpp
index 5b84d437702..3da09f6f635 100644
--- a/engines/mm/shared/utils/xeen_font.cpp
+++ b/engines/mm/shared/utils/xeen_font.cpp
@@ -70,7 +70,7 @@ void XeenFont::drawChar(Graphics::Surface *dst, uint32 chr, int x, int y, uint32
const uint16 *src = &_data[chr * FONT_HEIGHT];
for (int yCtr = 0; yCtr < FONT_HEIGHT; ++yCtr, ++src) {
- if ((y + yCtr) < 0 || (y + yCtr) > dst->h)
+ if ((y + yCtr) < 0 || (y + yCtr) >= dst->h)
continue;
uint16 srcVal = *src;
More information about the Scummvm-git-logs
mailing list