diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2024-02-16 22:52:11 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2024-02-16 22:52:11 -0600 |
| commit | 32f3d322305ec5ca3df777d7244e7186619ae93e (patch) | |
| tree | ba5f21b973a9458dc49c0c91a1e8986af298560c | |
| parent | b964a4db9225203ad61b49a5d9286b373a5c3abb (diff) | |
Added ctype for texture and header into file config
| -rw-r--r-- | src/Companion.cpp | 11 | ||||
| -rw-r--r-- | src/Companion.h | 1 | ||||
| -rw-r--r-- | src/factories/TextureFactory.cpp | 6 |
3 files changed, 16 insertions, 2 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp index e7f259f..9df69cc 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -138,6 +138,11 @@ void Companion::ParseCurrentFileConfig(YAML::Node node) { SPDLOG_DEBUG("Segment {} replaced with 0x{:X}", id, replacement); } } + if(node["header"]) { + for(auto line = node["header"].begin(); line != node["header"].end(); ++line) { + this->gFileHeader += line->as<std::string>() + "\n"; + } + } } void Companion::Process() { @@ -329,6 +334,7 @@ void Companion::Process() { // Stupid hack because the iteration broke the assets root = YAML::LoadFile(yamlPath); this->gConfig.segment.local.clear(); + this->gFileHeader.clear(); if(root[":config"]) { this->ParseCurrentFileConfig(root[":config"]); @@ -389,7 +395,7 @@ void Companion::Process() { break; } case ExportType::Code: { - output += "/root.inc.c"; + output += "/bin.c"; break; } default: break; @@ -456,6 +462,9 @@ void Companion::Process() { file << buffer; file << std::endl << "#endif" << std::endl; } else { + if(!this->gFileHeader.empty()) { + file << this->gFileHeader << std::endl; + } file << buffer; } diff --git a/src/Companion.h b/src/Companion.h index bf61f11..e0849e0 100644 --- a/src/Companion.h +++ b/src/Companion.h @@ -88,6 +88,7 @@ private: // Temporal Variables std::string gCurrentFile; + std::string gFileHeader; std::variant<std::vector<std::string>, std::string> gWriteOrder; std::unordered_map<std::string, std::shared_ptr<BaseFactory>> gFactories; std::map<std::string, std::map<std::string, std::pair<YAML::Node, bool>>> gAssetDependencies; diff --git a/src/factories/TextureFactory.cpp b/src/factories/TextureFactory.cpp index df81174..eb89480 100644 --- a/src/factories/TextureFactory.cpp +++ b/src/factories/TextureFactory.cpp @@ -110,7 +110,11 @@ void TextureCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedDat if (Companion::Instance->GetGBIMinorVersion() == GBIMinorVersion::Mk64) { write << "u8 " << symbol << "[] = {\n"; } else { - write << "ALIGNED8 static const u8 " << symbol << "[] = {\n"; + if(node["ctype"]) { + write << node["ctype"].as<std::string>() << " " << symbol << "[] = {\n"; + } else { + write << "static const u8 " << symbol << "[] = {\n"; + } } write << tab << "#include \"" << Companion::Instance->GetOutputPath() + "/" << (*replacement) << ".inc.c\"\n"; write << "};\n\n"; |
