aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/agos.cpp
diff options
context:
space:
mode:
authorTravis Howell2006-10-13 02:22:33 +0000
committerTravis Howell2006-10-13 02:22:33 +0000
commit1ab09fd79becbdc07ee0313a6e82c3d5124a3c83 (patch)
tree0bf4a8ff719b6485597b7c69a60ee716293df1db /engines/agos/agos.cpp
parent929375ae21f92ef1b56908aba92ac6ca4563526f (diff)
downloadscummvm-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.cpp24
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() {