summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpetrie911 <petrie911@yahoo.com>2024-04-20 15:24:50 -0500
committerLywx <kiritodev01@gmail.com>2024-04-20 14:32:07 -0600
commita72020cca7f1498f73d42c71e694fd114843fe73 (patch)
treea34896ad13f159509a1b7c278d44beb53588e23c
parent0cb23400b0ea1e443477ca2a764e9e74877c42b8 (diff)
limbcount reminders
-rw-r--r--src/factories/sf64/AnimFactory.cpp3
-rw-r--r--src/factories/sf64/HitboxFactory.cpp8
-rw-r--r--src/factories/sf64/SkeletonFactory.cpp4
3 files changed, 9 insertions, 6 deletions
diff --git a/src/factories/sf64/AnimFactory.cpp b/src/factories/sf64/AnimFactory.cpp
index 76a97b3..ea7adf2 100644
--- a/src/factories/sf64/AnimFactory.cpp
+++ b/src/factories/sf64/AnimFactory.cpp
@@ -25,13 +25,14 @@ SF64::AnimData::AnimData(int16_t frameCount, int16_t limbCount, uint32_t dataOff
ExportResult SF64::AnimHeaderExporter::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);
+ auto anim = std::static_pointer_cast<SF64::AnimData>(raw);
if(Companion::Instance->IsOTRMode()){
write << "static const ALIGN_ASSET(2) char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n";
return std::nullopt;
}
- write << "extern Animation " << symbol << ";\n";
+ write << "extern Animation " << symbol << "; // frames: " << std::dec << anim->mFrameCount << ", limbs: " << anim->mLimbCount + 1 << "\n";
return std::nullopt;
}
diff --git a/src/factories/sf64/HitboxFactory.cpp b/src/factories/sf64/HitboxFactory.cpp
index 510dd7f..b019b2f 100644
--- a/src/factories/sf64/HitboxFactory.cpp
+++ b/src/factories/sf64/HitboxFactory.cpp
@@ -48,11 +48,11 @@ ExportResult SF64::HitboxCodeExporter::Export(std::ostream &write, std::shared_p
auto hitbox = std::static_pointer_cast<SF64::HitboxData>(raw);
auto index = 0;
auto count = hitbox->mData[index++];
- auto hasType2 = false;
+ auto hasRot = false;
for(int type : hitbox->mTypes) {
if(type == 2) {
- hasType2 = true;
+ hasRot = true;
break;
}
}
@@ -61,7 +61,7 @@ ExportResult SF64::HitboxCodeExporter::Export(std::ostream &write, std::shared_p
write << fourSpaceTab << count << ",\n";
for(int i = 0; i < (int)count; i++) {
- if(hitbox->mTypes[i] == 4) {
+ if(hitbox->mTypes[i] == 4) {
write << fourSpaceTab << "HITBOX_WHOOSH, ";
index++;
} else if (hitbox->mTypes[i] == 3) {
@@ -78,7 +78,7 @@ ExportResult SF64::HitboxCodeExporter::Export(std::ostream &write, std::shared_p
} else {
write << " /* HITBOX_STANDARD */ ";
}
- if(hasType2 && hitbox->mTypes[i] != 2) {
+ if(hasRot && hitbox->mTypes[i] != 2) {
for(int j = 0; j < 7; j++) {
write << fourSpaceTab;
}
diff --git a/src/factories/sf64/SkeletonFactory.cpp b/src/factories/sf64/SkeletonFactory.cpp
index 901acc8..cab5482 100644
--- a/src/factories/sf64/SkeletonFactory.cpp
+++ b/src/factories/sf64/SkeletonFactory.cpp
@@ -17,13 +17,15 @@ SF64::LimbData::LimbData(uint32_t addr, uint32_t dList, Vec3f trans, Vec3s rot,
ExportResult SF64::SkeletonHeaderExporter::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);
+ auto skeleton = std::static_pointer_cast<SF64::SkeletonData>(raw);
+ auto limbCount = skeleton->mSkeleton.size();
if(Companion::Instance->IsOTRMode()){
write << "static const ALIGN_ASSET(2) char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n";
return std::nullopt;
}
- write << "extern Limb* " << symbol << "[];\n";
+ write << "extern Limb* " << symbol << "[" << std::dec << limbCount + 1 << "];\n";
return std::nullopt;
}