summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-02-16 22:52:11 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-02-16 22:52:11 -0600
commit32f3d322305ec5ca3df777d7244e7186619ae93e (patch)
treeba5f21b973a9458dc49c0c91a1e8986af298560c
parentb964a4db9225203ad61b49a5d9286b373a5c3abb (diff)
Added ctype for texture and header into file config
-rw-r--r--src/Companion.cpp11
-rw-r--r--src/Companion.h1
-rw-r--r--src/factories/TextureFactory.cpp6
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";