aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/pink/archive.cpp11
-rw-r--r--engines/pink/file.cpp8
-rw-r--r--engines/pink/objects/module.cpp9
-rw-r--r--engines/pink/objects/sequences/sequencer.cpp9
-rw-r--r--engines/pink/resource_mgr.cpp10
5 files changed, 26 insertions, 21 deletions
diff --git a/engines/pink/archive.cpp b/engines/pink/archive.cpp
index a3c968b4dd..caaca5f749 100644
--- a/engines/pink/archive.cpp
+++ b/engines/pink/archive.cpp
@@ -302,14 +302,15 @@ Object *Archive::parseObject(bool &isCopyReturned) {
return res;
}
+static int runtimeClassCmp(const void *key, const void *elem) {
+ return strcmp((const char *) key, *(const char **) elem);
+}
+
uint Archive::findObjectId(const char *name) {
- RuntimeClass *found = static_cast<RuntimeClass*>
- (bsearch(name, classMap, sizeof(classMap) / sizeof(RuntimeClass) , sizeof(RuntimeClass), [] (const void *a, const void *b) {
- return strcmp((const char *) a, *(const char **) b);
- }));
+ RuntimeClass *found = (RuntimeClass*) bsearch(name, classMap, sizeof(classMap) / sizeof(RuntimeClass) , sizeof(RuntimeClass), runtimeClassCmp);
if (!found)
- error("Class %s is not in class Map", name);
+ error("Class %s is not in class Map", name);
return found->id;
}
diff --git a/engines/pink/file.cpp b/engines/pink/file.cpp
index 72de8ebdea..a62a9d83e2 100644
--- a/engines/pink/file.cpp
+++ b/engines/pink/file.cpp
@@ -99,10 +99,12 @@ void OrbFile::seekToObject(const char *name) {
seek(desc->objectsOffset);
}
+static int objDescComp(const void *a, const void *b) {
+ return scumm_stricmp((char *) a, (char *) b);
+}
+
ObjectDescription *OrbFile::getObjDesc(const char *name){
- ObjectDescription *desc = static_cast<ObjectDescription*>(bsearch(name, _table, _tableSize, sizeof(ObjectDescription),
- [] (const void *a, const void *b) {
- return scumm_stricmp((char *) a, (char *) b); }));
+ ObjectDescription *desc = (ObjectDescription*) bsearch(name, _table, _tableSize, sizeof(ObjectDescription), objDescComp);
assert(desc != nullptr);
return desc;
}
diff --git a/engines/pink/objects/module.cpp b/engines/pink/objects/module.cpp
index 9ad536530c..019f71ba30 100644
--- a/engines/pink/objects/module.cpp
+++ b/engines/pink/objects/module.cpp
@@ -76,10 +76,11 @@ void Module::changePage(const Common::String &pageName) {
}
GamePage *Module::findPage(const Common::String &pageName) const {
- return *Common::find_if(_pages.begin(), _pages.end(), [&pageName]
- (GamePage* page) {
- return pageName == page->getName();
- });
+ for (uint i = 0; i < _pages.size(); ++i) {
+ if (_pages[i]->getName() == pageName)
+ return _pages[i];
+ }
+ return nullptr;
}
PinkEngine *Module::getGame() const {
diff --git a/engines/pink/objects/sequences/sequencer.cpp b/engines/pink/objects/sequences/sequencer.cpp
index 37cd03cd37..5644aa8f25 100644
--- a/engines/pink/objects/sequences/sequencer.cpp
+++ b/engines/pink/objects/sequences/sequencer.cpp
@@ -49,10 +49,11 @@ void Sequencer::deserialize(Archive &archive) {
}
Sequence *Sequencer::findSequence(const Common::String &name) {
- return *Common::find_if(_sequences.begin(), _sequences.end(), [&name]
- (Sequence* sequence) {
- return name == sequence->getName();
- });
+ for (uint i = 0; i < _sequences.size(); ++i) {
+ if (_sequences[i]->getName() == name)
+ return _sequences[i];
+ }
+ return nullptr;
}
void Sequencer::authorSequence(Sequence *sequence, bool unk) {
diff --git a/engines/pink/resource_mgr.cpp b/engines/pink/resource_mgr.cpp
index bbf7e7e04a..9c72fc7b92 100644
--- a/engines/pink/resource_mgr.cpp
+++ b/engines/pink/resource_mgr.cpp
@@ -56,11 +56,11 @@ Sound *ResourceMgr::loadSound(Common::String &name) {
Common::SafeSeekableSubReadStream *ResourceMgr::getResourceStream(Common::String &name) {
Common::SeekableReadStream *stream;
- const ResourceDescription &desc = *Common::find_if(_resDescTable, _resDescTable + _resCount,
- [&] (const ResourceDescription &desc) {
- return name.compareToIgnoreCase(desc.name) == 0;
- });
-
+ ResourceDescription &desc = _resDescTable[0];
+ for (uint i = 0; i < _resCount; ++i) {
+ if (name.compareToIgnoreCase(_resDescTable[i].name) == 0)
+ desc = _resDescTable[i];
+ }
if (desc.inBro)
stream = _game->getBro();