[Scummvm-git-logs] scummvm master -> 1eb248a413cbd2f97ae30710f626f3b425fc98ad
dreammaster
noreply at scummvm.org
Mon Mar 2 03:15:32 UTC 2026
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
31efdc051b MADS: PHANTOM: Merging menuitem buttons data into a structure like original
755635a407 SHERLOCK: TATTOO: Mark Chinese version as unstable
1eb248a413 MADS: PHANTOM: Black default background for Phantom dialogs
Commit: 31efdc051b67bf15fd31a7c8e31d1092a4d1ea1a
https://github.com/scummvm/scummvm/commit/31efdc051b67bf15fd31a7c8e31d1092a4d1ea1a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-03-02T14:15:18+11:00
Commit Message:
MADS: PHANTOM: Merging menuitem buttons data into a structure like original
Changed paths:
engines/mads/phantom/menu_phantom.cpp
engines/mads/phantom/menu_phantom.h
diff --git a/engines/mads/phantom/menu_phantom.cpp b/engines/mads/phantom/menu_phantom.cpp
index 1fe11cc9428..413b64f58e5 100644
--- a/engines/mads/phantom/menu_phantom.cpp
+++ b/engines/mads/phantom/menu_phantom.cpp
@@ -36,26 +36,13 @@ namespace Phantom {
#define MADS_MENU_ANIM_DELAY 70
MainMenu::MainMenu(MADSEngine *vm): MenuView(vm) {
- Common::fill(&_menuItems[0], &_menuItems[7], (SpriteAsset *)nullptr);
- Common::fill(&_menuItemIndexes[0], &_menuItemIndexes[7], -1);
- _delayTimeout = 0;
- _menuItemIndex = -1;
- _frameIndex = 0;
- _skipFlag = false;
- _highlightedIndex = -1;
- _selectedIndex = -1;
- _buttonDown = false;
- _showEvolve = _showSets = false;
-
- for (int i = 0; i < 7; ++i)
- _menuItems[i] = nullptr;
}
MainMenu::~MainMenu() {
Scene &scene = _vm->_game->_scene;
for (int i = 0; i < 7; ++i) {
- if (_menuItemIndexes[i] != -1)
- scene._sprites.remove(_menuItemIndexes[i]);
+ if (_menuItems[i]._handle != -1)
+ scene._sprites.remove(_menuItems[i]._handle);
}
scene._spriteSlots.reset();
@@ -70,11 +57,11 @@ void MainMenu::display() {
// Load each of the menu item assets and add to the scene sprites list
for (int i = 0; i < 7; ++i) {
Common::Path spritesName(Common::String::format("*MAIN%d.SS", i));
- _menuItems[i] = new SpriteAsset(_vm, spritesName, 0);
- _menuItemIndexes[i] = scene._sprites.add(_menuItems[i]);
+ _menuItems[i]._sprites = new SpriteAsset(_vm, spritesName, 0);
+ _menuItems[i]._handle = scene._sprites.add(_menuItems[i]._sprites);
// Register the menu item area in the screen objects
- MSprite *frame0 = _menuItems[i]->getFrame(0);
+ MSprite *frame0 = _menuItems[i]._sprites->getFrame(0);
Common::Point pt(frame0->_offset.x - (frame0->w / 2),
frame0->_offset.y - frame0->h);
screenObjects.add(
@@ -95,7 +82,7 @@ void MainMenu::doFrame() {
// If an item has already been selected, handle rotating out the other menu items
if (_selectedIndex != -1) {
- if (_frameIndex == _menuItems[0]->getCount()) {
+ if (_frameIndex == _menuItems[0]._sprites->getCount()) {
handleAction((MADSGameAction)_selectedIndex);
} else {
for (_menuItemIndex = 0; _menuItemIndex < 6; ++_menuItemIndex) {
@@ -134,7 +121,7 @@ void MainMenu::doFrame() {
return;
}
- _frameIndex = _menuItems[_menuItemIndex]->getCount() - 1;
+ _frameIndex = _menuItems[_menuItemIndex]._sprites->getCount() - 1;
} else {
--_frameIndex;
}
@@ -151,13 +138,13 @@ void MainMenu::addSpriteSlot() {
int seqIndex = (_menuItemIndex < 6) ? _menuItemIndex : _frameIndex;
spriteSlots.deleteTimer(seqIndex);
- SpriteAsset *menuItem = _menuItems[_menuItemIndex];
+ SpriteAsset *menuItem = _menuItems[_menuItemIndex]._sprites;
MSprite *spr = menuItem->getFrame(_frameIndex);
SpriteSlot &slot = spriteSlots[spriteSlots.add()];
slot._flags = IMG_UPDATE;
slot._seqIndex = seqIndex;
- slot._spritesIndex = _menuItemIndexes[_menuItemIndex];
+ slot._spritesIndex = _menuItems[_menuItemIndex]._handle;
slot._frameNumber = _frameIndex + 1;
slot._position = spr->_offset;
slot._depth = 1;
diff --git a/engines/mads/phantom/menu_phantom.h b/engines/mads/phantom/menu_phantom.h
index 8f818d8c5cc..5a5ad360db6 100644
--- a/engines/mads/phantom/menu_phantom.h
+++ b/engines/mads/phantom/menu_phantom.h
@@ -39,29 +39,33 @@ enum MADSGameAction {
};
class MainMenu: public MenuView {
+ struct MenuItem {
+ SpriteAsset *_sprites = nullptr;
+ int _handle = -1;
+ bool _active = false;
+ int _status = 0;
+ };
private:
- SpriteAsset *_menuItems[7];
- int _menuItemIndexes[7];
- int _menuItemIndex;
- int _frameIndex;
- uint32 _delayTimeout;
- bool _skipFlag;
- bool _showEvolve, _showSets;
+ MenuItem _menuItems[7];
+ int _menuItemIndex = -1;
+ int _frameIndex = -1;
+ uint32 _delayTimeout = 0;
+ bool _skipFlag = false;
/**
* Currently highlighted menu item
*/
- int _highlightedIndex;
+ int _highlightedIndex = -1;
/**
* Flag for mouse button being pressed
*/
- bool _buttonDown;
+ bool _buttonDown = false;
/**
* Stores menu item selection
*/
- int _selectedIndex;
+ int _selectedIndex = -1;
/**
* Get the highlighted menu item under the cursor
Commit: 755635a4079ece0f173fbf7e93ab73021587d6bf
https://github.com/scummvm/scummvm/commit/755635a4079ece0f173fbf7e93ab73021587d6bf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-03-02T14:15:20+11:00
Commit Message:
SHERLOCK: TATTOO: Mark Chinese version as unstable
This is related to bug #16497, which will require fixing the
mapping of Chinese to English object names so that item
context menus correctly showing custom extra options.
Changed paths:
engines/sherlock/detection_tables.h
diff --git a/engines/sherlock/detection_tables.h b/engines/sherlock/detection_tables.h
index 43b0a3bc085..362f9b15d5d 100644
--- a/engines/sherlock/detection_tables.h
+++ b/engines/sherlock/detection_tables.h
@@ -310,13 +310,14 @@ static const SherlockGameDescription gameDescriptions[] = {
{
// Case of the Rose Tattoo - Chinese CD
+ // TODO: Fix Inventory Item context menus: https://bugs.scummvm.org/ticket/16497
{
"rosetattoo",
"CD",
AD_ENTRY1s("talk.lib", "dfd699efdce02a045f46d15da2d44b76", 582381),
Common::ZH_CHN,
Common::kPlatformDOS,
- ADGF_NO_FLAGS,
+ ADGF_UNSTABLE,
GUIO3(GAMEOPTION_ORIGINAL_SAVES, GAMEOPTION_HELP_STYLE, GAMEOPTION_TRANSPARENT_WINDOWS)
},
GType_RoseTattoo,
Commit: 1eb248a413cbd2f97ae30710f626f3b425fc98ad
https://github.com/scummvm/scummvm/commit/1eb248a413cbd2f97ae30710f626f3b425fc98ad
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-03-02T14:15:21+11:00
Commit Message:
MADS: PHANTOM: Black default background for Phantom dialogs
Changed paths:
engines/mads/dialogs.cpp
diff --git a/engines/mads/dialogs.cpp b/engines/mads/dialogs.cpp
index fe103e75438..adab11a1510 100644
--- a/engines/mads/dialogs.cpp
+++ b/engines/mads/dialogs.cpp
@@ -486,7 +486,7 @@ FullScreenDialog::FullScreenDialog(MADSEngine *vm) : _vm(vm) {
_screenId = 990;
break;
case GType_Phantom:
- _screenId = 920;
+ _screenId = 0; // 920;
break;
case GType_Dragonsphere:
_screenId = 922;
@@ -514,6 +514,9 @@ void FullScreenDialog::display() {
SceneInfo *sceneInfo = SceneInfo::init(_vm);
sceneInfo->load(_screenId, 0, "", 0, scene._depthSurface, scene._backgroundSurface);
delete sceneInfo;
+ } else if (_screenId == 0) {
+ scene._backgroundSurface.create(MADS_SCREEN_WIDTH, MADS_SCREEN_HEIGHT);
+ scene._depthSurface.create(MADS_SCREEN_WIDTH, MADS_SCREEN_HEIGHT);
}
scene._priorSceneId = priorSceneId;
More information about the Scummvm-git-logs
mailing list