diff options
Diffstat (limited to 'engines/agos/items.cpp')
-rw-r--r-- | engines/agos/items.cpp | 20 |
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; } |