diff --git a/src/factories/sf64/ColPolyFactory.cpp b/src/factories/sf64/ColPolyFactory.cpp index 71433bb..50127fb 100644 --- a/src/factories/sf64/ColPolyFactory.cpp +++ b/src/factories/sf64/ColPolyFactory.cpp @@ -16,13 +16,14 @@ SF64::ColPolyData::ColPolyData(std::vector polys, std::vect ExportResult SF64::ColPolyHeaderExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement) { const auto symbol = GetSafeNode(node, "symbol", entryName); + auto colpolys = std::static_pointer_cast(raw); if(Companion::Instance->IsOTRMode()){ write << "static const ALIGN_ASSET(2) char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n"; return std::nullopt; } - write << "extern CollisionPoly " << symbol << "[];\n"; + write << "extern CollisionPoly " << symbol << "[" << std::dec << colpolys->mPolys.size() << "];\n"; return std::nullopt; } diff --git a/src/factories/sf64/TriangleFactory.cpp b/src/factories/sf64/TriangleFactory.cpp index f67fc12..515f818 100644 --- a/src/factories/sf64/TriangleFactory.cpp +++ b/src/factories/sf64/TriangleFactory.cpp @@ -15,13 +15,14 @@ SF64::TriangleData::TriangleData(std::vector tris, std::vector raw, std::string& entryName, YAML::Node &node, std::string* replacement) { const auto symbol = GetSafeNode(node, "symbol", entryName); + auto triData = std::static_pointer_cast(raw); if(Companion::Instance->IsOTRMode()){ write << "static const ALIGN_ASSET(2) char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n"; return std::nullopt; } - write << "extern Triangle " << symbol << "[];\n"; + write << "extern Triangle " << symbol << "[" << std::dec << triData->mTris.size() << "];\n"; return std::nullopt; }