diff options
author | Travis Howell | 2006-10-13 02:22:33 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-13 02:22:33 +0000 |
commit | 1ab09fd79becbdc07ee0313a6e82c3d5124a3c83 (patch) | |
tree | 0bf4a8ff719b6485597b7c69a60ee716293df1db /engines/agos/agos.cpp | |
parent | 929375ae21f92ef1b56908aba92ac6ca4563526f (diff) | |
download | scummvm-rg350-1ab09fd79becbdc07ee0313a6e82c3d5124a3c83.tar.gz scummvm-rg350-1ab09fd79becbdc07ee0313a6e82c3d5124a3c83.tar.bz2 scummvm-rg350-1ab09fd79becbdc07ee0313a6e82c3d5124a3c83.zip |
Fix display of icons in Elvira 1
svn-id: r24284
Diffstat (limited to 'engines/agos/agos.cpp')
-rw-r--r-- | engines/agos/agos.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index df1f07b3de..e85172f9ff 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -800,7 +800,7 @@ int AGOSEngine::getUserFlag(Item *item, int a) { if (subUserFlag == NULL) return 0; - if (a < 0 || a > 3) + if (a < 0 || a > 7) return 0; return subUserFlag->userFlags[a]; @@ -814,8 +814,10 @@ void AGOSEngine::setUserFlag(Item *item, int a, int b) { subUserFlag = (SubUserFlag *) allocateChildBlock(item, 9, sizeof(SubUserFlag)); } - if (a >= 0 && a <= 3) - subUserFlag->userFlags[a] = b; + if (a < 0 || a > 7) + return; + + subUserFlag->userFlags[a] = b; } int AGOSEngine::getUserItem(Item *item, int n) { @@ -1300,14 +1302,18 @@ bool AGOSEngine::has_item_childflag_0x10(Item *item) { } uint AGOSEngine::itemGetIconNumber(Item *item) { - SubObject *child = (SubObject *)findChildOfType(item, 2); - uint offs; + if (getGameType() == GType_ELVIRA1) { + return getUserFlag(item, 7); + } else { + SubObject *child = (SubObject *)findChildOfType(item, 2); + uint offs; - if (child == NULL || !(child->objectFlags & kOFIcon)) - return 0; + if (child == NULL || !(child->objectFlags & kOFIcon)) + return 0; - offs = getOffsetOfChild2Param(child, 0x10); - return child->objectFlagValue[offs]; + offs = getOffsetOfChild2Param(child, 0x10); + return child->objectFlagValue[offs]; + } } void AGOSEngine::hitarea_stuff() { |