summaryrefslogtreecommitdiff
path: root/src/factories/sf64/ColPolyFactory.cpp
diff options
context:
space:
mode:
authorpetrie911 <69443847+petrie911@users.noreply.github.com>2024-03-16 15:37:37 -0500
committerGitHub <noreply@github.com>2024-03-16 14:37:37 -0600
commit3330d5bd39bd4e0da8c8530290aba59fda849c17 (patch)
treedbce6b7876b018f6b8cc5bd0faaad86666a42400 /src/factories/sf64/ColPolyFactory.cpp
parent02f2c2f03c5fb386258e62c377a0fcd686b57690 (diff)
Add Vec3f factory and AddAsset (#44)
* 3D * and env * so much to fix * Everything can be solved with triangles * fixes * initfix * stuff
Diffstat (limited to 'src/factories/sf64/ColPolyFactory.cpp')
-rw-r--r--src/factories/sf64/ColPolyFactory.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/factories/sf64/ColPolyFactory.cpp b/src/factories/sf64/ColPolyFactory.cpp
index 96c81eb..b2c6c45 100644
--- a/src/factories/sf64/ColPolyFactory.cpp
+++ b/src/factories/sf64/ColPolyFactory.cpp
@@ -4,6 +4,7 @@
#include "Companion.h"
#include "utils/Decompressor.h"
#include "utils/TorchUtils.h"
+#include <regex>
#define NUM(x, w) std::dec << std::setfill(' ') << std::setw(w) << x
@@ -78,7 +79,15 @@ void SF64::ColPolyCodeExporter::Export(std::ostream &write, std::shared_ptr<IPar
off = SEGMENT_OFFSET(off);
}
defaultMeshSymbol << symbol << "_mesh_" << std::uppercase << std::hex << off;
- const auto meshSymbol = GetSafeNode(node, "mesh_symbol", defaultMeshSymbol.str());
+ auto meshSymbol = GetSafeNode(node, "mesh_symbol", defaultMeshSymbol.str());
+
+ if (meshSymbol.find("OFFSET") != std::string::npos) {
+ std::ostringstream offsetSeg;
+
+ offsetSeg << std::uppercase << std::hex << meshOffset;
+ meshSymbol = std::regex_replace(meshSymbol, std::regex(R"(OFFSET)"), offsetSeg.str());
+ }
+
if (Companion::Instance->IsDebug()) {
write << "// 0x" << std::uppercase << std::hex << off << "\n";
}