summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Estelami <NEstelami@users.noreply.github.com>2022-01-24 21:56:42 -0500
committerNicholas Estelami <NEstelami@users.noreply.github.com>2022-01-24 21:56:42 -0500
commitca04d231ee05d0b5a7209621fb04de686265fea3 (patch)
treee68f91a49701efd48c9cf434206d34b9f472ce2a
parent2f079c82bfc6f6b0727c327cf375de83d284db3b (diff)
Yes!
-rw-r--r--OTRExporter/CutsceneExporter.cpp3
-rw-r--r--OTRExporter/SkeletonLimbExporter.cpp35
2 files changed, 36 insertions, 2 deletions
diff --git a/OTRExporter/CutsceneExporter.cpp b/OTRExporter/CutsceneExporter.cpp
index 040fde4..29a7b20 100644
--- a/OTRExporter/CutsceneExporter.cpp
+++ b/OTRExporter/CutsceneExporter.cpp
@@ -315,6 +315,7 @@ void OTRExporter_Cutscene::Save(ZResource* res, fs::path outPath, BinaryWriter*
{
writer->Write(CMD_HH(e->sequence, e->startFrame));
writer->Write(CMD_HH(e->endFrame, e->unknown0));
+ writer->Write(CMD_W(e->unknown1));
writer->Write(CMD_W(e->unknown2));
writer->Write(CMD_W(e->unknown3));
writer->Write(CMD_W(e->unknown4));
@@ -336,6 +337,7 @@ void OTRExporter_Cutscene::Save(ZResource* res, fs::path outPath, BinaryWriter*
{
writer->Write(CMD_HH(e->sequence, e->startFrame));
writer->Write(CMD_HH(e->endFrame, e->unknown0));
+ writer->Write(CMD_W(e->unknown1));
writer->Write(CMD_W(e->unknown2));
writer->Write(CMD_W(e->unknown3));
writer->Write(CMD_W(e->unknown4));
@@ -357,6 +359,7 @@ void OTRExporter_Cutscene::Save(ZResource* res, fs::path outPath, BinaryWriter*
{
writer->Write(CMD_HH(e->base, e->startFrame));
writer->Write(CMD_HH(e->endFrame, e->unknown0));
+ writer->Write(CMD_W(e->unknown1));
writer->Write(CMD_W(e->unknown2));
writer->Write(CMD_W(e->unknown3));
writer->Write(CMD_W(e->unknown4));
diff --git a/OTRExporter/SkeletonLimbExporter.cpp b/OTRExporter/SkeletonLimbExporter.cpp
index c953c29..8364bfa 100644
--- a/OTRExporter/SkeletonLimbExporter.cpp
+++ b/OTRExporter/SkeletonLimbExporter.cpp
@@ -11,7 +11,21 @@ void OTRExporter_SkeletonLimb::Save(ZResource* res, fs::path outPath, BinaryWrit
writer->Write((uint8_t)limb->type);
writer->Write((uint8_t)limb->skinSegmentType);
- writer->Write(limb->segmentStruct.unk_0);
+ if (limb->skinSegmentType == ZLimbSkinType::SkinType_DList && limb->type == ZLimbType::Skin)
+ {
+ auto childDecl = limb->parent->GetDeclaration(GETSEGOFFSET(limb->skinSegment));
+
+ if (childDecl != nullptr)
+ writer->Write(OTRExporter_DisplayList::GetPathToRes(limb, childDecl->varName));
+ else
+ writer->Write("");
+ }
+ else
+ {
+ writer->Write("");
+ }
+
+ writer->Write((uint16_t)limb->segmentStruct.unk_0);
writer->Write((uint32_t)limb->segmentStruct.unk_4_arr.size());
for (auto item : limb->segmentStruct.unk_4_arr)
@@ -43,6 +57,24 @@ void OTRExporter_SkeletonLimb::Save(ZResource* res, fs::path outPath, BinaryWrit
}
}
+ if (limb->segmentStruct.unk_8 != 0)
+ {
+ auto skinGfxDecl = limb->parent->GetDeclaration(GETSEGOFFSET(limb->segmentStruct.unk_8));
+
+ if (skinGfxDecl != nullptr)
+ {
+ writer->Write(OTRExporter_DisplayList::GetPathToRes(limb, skinGfxDecl->varName));
+ }
+ else
+ {
+ writer->Write("");
+ }
+ }
+ else
+ {
+ writer->Write("");
+ }
+
writer->Write(limb->legTransX);
writer->Write(limb->legTransY);
writer->Write(limb->legTransZ);
@@ -50,7 +82,6 @@ void OTRExporter_SkeletonLimb::Save(ZResource* res, fs::path outPath, BinaryWrit
writer->Write(limb->rotY);
writer->Write(limb->rotZ);
- // OTRTODO:
if (limb->childPtr != 0)
{
auto childDecl = limb->parent->GetDeclaration(GETSEGOFFSET(limb->childPtr));