diff --git a/MiniRez/MiniRez.cpp b/MiniRez/MiniRez.cpp index 2e4cb85..55409e1 100644 --- a/MiniRez/MiniRez.cpp +++ b/MiniRez/MiniRez.cpp @@ -414,7 +414,9 @@ int main(int argc, const char **argv) if (std::find(uniqueResNames.begin(), uniqueResNames.end(), res->m_name) == uniqueResNames.end()) uniqueResNames.push_back(res->m_name); } - } + } + + printf("Re-emit OK\n"); const size_t resDataSize = resourceForkData.size() - resForkDataStart; const size_t resMapPos = resourceForkData.size(); @@ -440,17 +442,23 @@ int main(int argc, const char **argv) std::vector refListStartForType; refListStartForType.resize(resTypeCounts.size()); - - refListStartForType[0] = 0; - for (size_t i = 1; i < refListStartForType.size(); i++) - refListStartForType[i] = refListStartForType[i - 1] + resTypeCounts[i - 1]; + + if (resTypeCounts.size() > 0) + { + refListStartForType[0] = 0; + for (size_t i = 1; i < refListStartForType.size(); i++) + refListStartForType[i] = refListStartForType[i - 1] + resTypeCounts[i - 1]; + } std::vector nameListStarts; nameListStarts.resize(uniqueResNames.size()); - - nameListStarts[0] = 0; - for (size_t i = 1; i < nameListStarts.size(); i++) - nameListStarts[i] = nameListStarts[i - 1] + uniqueResNames[i - 1].size() + 1; + + if (nameListStarts.size() > 0) + { + nameListStarts[0] = 0; + for (size_t i = 1; i < nameListStarts.size(); i++) + nameListStarts[i] = nameListStarts[i - 1] + uniqueResNames[i - 1].size() + 1; + } // Write resource type list for (size_t i = 0; i < uniqueResTypes.size(); i++) @@ -512,7 +520,9 @@ int main(int argc, const char **argv) BytePack::BigUInt32(&resourceForkData[0], static_cast(resForkDataStart)); BytePack::BigUInt32(&resourceForkData[4], static_cast(resMapPos)); BytePack::BigUInt32(&resourceForkData[8], static_cast(resDataSize)); - BytePack::BigUInt32(&resourceForkData[12], static_cast(resMapSize)); + BytePack::BigUInt32(&resourceForkData[12], static_cast(resMapSize)); + + printf("Writing to %s...", argv[2]); FILE *outF = nullptr; if (fopen_s(&outF, argv[2], "wb"))