aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohndoe1232014-06-06 09:57:48 +0200
committerjohndoe1232014-06-06 09:59:40 +0200
commit9759b3481d53a70bead5069ca3e2a2cc7b349416 (patch)
treebdaee86cd74f0bc97d80859e5f417f82e6b34121
parent59cd6d4b6626f9f7a40a7c9b14a7ac18b2fb6f09 (diff)
downloadscummvm-rg350-9759b3481d53a70bead5069ca3e2a2cc7b349416.tar.gz
scummvm-rg350-9759b3481d53a70bead5069ca3e2a2cc7b349416.tar.bz2
scummvm-rg350-9759b3481d53a70bead5069ca3e2a2cc7b349416.zip
DEVTOOLS: Skip adding duplicate items in create_neverhood
Some sub rectangles point to the same message list, these are now saved only once instead of several times.
-rw-r--r--devtools/create_neverhood/create_neverhood.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/devtools/create_neverhood/create_neverhood.cpp b/devtools/create_neverhood/create_neverhood.cpp
index a1201cdaa3..fb2912f722 100644
--- a/devtools/create_neverhood/create_neverhood.cpp
+++ b/devtools/create_neverhood/create_neverhood.cpp
@@ -467,7 +467,15 @@ public:
std::vector<LISTCLASS*> lists;
void add(LISTCLASS *list) {
- lists.push_back(list);
+ bool doAppend = true;
+ for (typename std::vector<LISTCLASS*>::iterator it = lists.begin(); it != lists.end(); it++) {
+ if ((*it)->id == list->id) {
+ doAppend = false;
+ break;
+ }
+ }
+ if (doAppend)
+ lists.push_back(list);
}
void loadListVector(const uint32 *offsets) {
@@ -475,7 +483,6 @@ public:
LISTCLASS *list = new LISTCLASS();
list->loadList(offsets[i], offsets[i + 1]);
bool doAppend = true;
- // Bad
for (typename std::vector<LISTCLASS*>::iterator it = lists.begin(); it != lists.end(); it++) {
if ((*it)->id == list->id) {
doAppend = false;