mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-07 03:18:17 +00:00
SCI: Ignore setAttribute() on any non-existent menu items
This fixes two fan games: Al Pond 2 and Aquarius. The original interpreter did this as well. svn-id: r51477
This commit is contained in:
parent
483f25b9e6
commit
bc54fde8e1
@ -271,14 +271,15 @@ GuiMenuItemEntry *GfxMenu::findItem(uint16 menuId, uint16 itemId) {
|
||||
|
||||
void GfxMenu::kernelSetAttribute(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value) {
|
||||
GuiMenuItemEntry *itemEntry = findItem(menuId, itemId);
|
||||
|
||||
if (!itemEntry) {
|
||||
// Check if the game actually has a menu. PQ2 demo calls this, for example, but has no menus.
|
||||
// (bug report #3034507)
|
||||
if (_itemList.size() == 0)
|
||||
return;
|
||||
else
|
||||
error("Tried to setAttribute() on non-existant menu-item %d:%d", menuId, itemId);
|
||||
// PQ2 demo calls this, for example, but has no menus (bug report #3034507). Some SCI
|
||||
// fan games (Al Pond 2, Aquarius) call this too on non-existent menu items. The
|
||||
// original interpreter ignored these as well.
|
||||
debugC(2, kDebugLevelGraphics, "Tried to setAttribute() on non-existent menu-item %d:%d", menuId, itemId);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (attributeId) {
|
||||
case SCI_MENU_ATTRIBUTE_ENABLED:
|
||||
itemEntry->enabled = value.isNull() ? false : true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user