[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