ObjInit can now make header entries (#42)

* 3D

* and env

* so much to fix

* Everything can be solved with triangles

* fixes

* initfix
This commit is contained in:
petrie911
2024-03-14 14:50:01 -06:00
committed by GitHub
parent 70568034c2
commit a6face7240
2 changed files with 16 additions and 0 deletions
+11
View File
@@ -5,6 +5,17 @@
#define NUM(x, w) std::dec << std::setfill(' ') << std::setw(w) << x
#define FLOAT(x, w) std::dec << std::setfill(' ') << std::setw(w) << std::fixed << std::setprecision(1) << x << "f"
void SF64::ObjInitHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement) {
const auto symbol = GetSafeNode(node, "symbol", entryName);
if(Companion::Instance->IsOTRMode()){
write << "static const char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n";
return;
}
write << "extern ObjectInit " << symbol << "[];\n";
}
void SF64::ObjInitCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) {
auto symbol = GetSafeNode(node, "symbol", entryName);
auto offset = GetSafeNode<uint32_t>(node, "offset");
+5
View File
@@ -21,6 +21,10 @@ public:
explicit ObjInitData(std::vector<ObjectInit> objInit) : mObjInit(objInit) {}
};
class ObjInitHeaderExporter : public BaseExporter {
void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
};
class ObjInitBinaryExporter : public BaseExporter {
void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
};
@@ -37,6 +41,7 @@ public:
}
inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
return {
REGISTER(Header, ObjInitHeaderExporter)
REGISTER(Binary, ObjInitBinaryExporter)
REGISTER(Code, ObjInitCodeExporter)
};