aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/items.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/items.cpp')
-rw-r--r--engines/agos/items.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/engines/agos/items.cpp b/engines/agos/items.cpp
index 64d8f639de..31574e6dbb 100644
--- a/engines/agos/items.cpp
+++ b/engines/agos/items.cpp
@@ -385,19 +385,33 @@ Item *AGOSEngine::derefItem(uint item) {
Item *AGOSEngine::findInByClass(Item *i, int16 m) {
i = derefItem(i->child);
-
while (i) {
if (i->classFlags & m) {
- //_findNextPtr = derefItem(i->next);
+ _findNextPtr = derefItem(i->next);
return i;
}
if (m == 0) {
- //_findNextPtr = derefItem(i->next);
+ _findNextPtr = derefItem(i->next);
return i;
}
i = derefItem(i->next);
}
+ return NULL;
+}
+Item *AGOSEngine::nextInByClass(Item *i, int16 m) {
+ i = _findNextPtr;
+ while(i) {
+ if (i->classFlags & m) {
+ _findNextPtr = derefItem(i->next);
+ return i;
+ }
+ if (m == 0) {
+ _findNextPtr = derefItem(i->next);
+ return i;
+ }
+ i = derefItem(i->next);
+ }
return NULL;
}