mirror of https://github.com/AxioDL/metaforce.git
Cook/cache fixes for unset original IDs
This commit is contained in:
parent
76f90569ca
commit
6260708ba4
|
@ -1018,7 +1018,12 @@ bool ANCS::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
|||
for (const DNAANCS::Actor::Subtype& sub : actor.subtypes) {
|
||||
if (sub.name == ch.name) {
|
||||
hecl::SystemStringConv chSysName(ch.name);
|
||||
ch.cskr = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), chSysName, sub.cskrId));
|
||||
if (!sub.cskrId.empty()) {
|
||||
hecl::SystemStringConv cskrSysName(sub.cskrId);
|
||||
ch.cskr = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), chSysName, cskrSysName));
|
||||
} else {
|
||||
ch.cskr = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.CSKR")), chSysName));
|
||||
}
|
||||
|
||||
/* Add subtype AABBs */
|
||||
ch.animAABBs.reserve(actor.actions.size());
|
||||
|
@ -1040,8 +1045,14 @@ bool ANCS::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
|||
if (search != sub.overlayMeshes.cend()) {
|
||||
hecl::SystemStringConv overlaySys(search->name);
|
||||
ch.cmdlIce = search->mesh;
|
||||
ch.cskrIce = inPath.ensureAuxInfo(
|
||||
fmt::format(fmt(_SYS_STR("{}.{}_{}.CSKR")), chSysName, overlaySys, search->cskrId));
|
||||
if (!search->cskrId.empty()) {
|
||||
hecl::SystemStringConv cskrSys(search->cskrId);
|
||||
ch.cskrIce = inPath.ensureAuxInfo(
|
||||
fmt::format(fmt(_SYS_STR("{}.{}_{}.CSKR")), chSysName, overlaySys, cskrSys));
|
||||
} else {
|
||||
ch.cskrIce = inPath.ensureAuxInfo(
|
||||
fmt::format(fmt(_SYS_STR("{}.{}.CSKR")), chSysName, overlaySys));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1060,7 +1071,13 @@ bool ANCS::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
|||
hecl::SystemStringConv sysStr(prim.animName);
|
||||
for (const DNAANCS::Action& act : actor.actions) {
|
||||
if (act.name == prim.animName) {
|
||||
hecl::ProjectPath pathOut = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, act.animId));
|
||||
hecl::ProjectPath pathOut;
|
||||
if (!act.animId.empty()) {
|
||||
hecl::SystemStringConv idSys(act.animId);
|
||||
pathOut = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, idSys));
|
||||
} else {
|
||||
inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.ANIM")), sysStr));
|
||||
}
|
||||
prim.animId = pathOut;
|
||||
break;
|
||||
}
|
||||
|
@ -1073,7 +1090,13 @@ bool ANCS::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
|||
ancs.animationSet.animResources.reserve(actor.actions.size());
|
||||
for (const DNAANCS::Action& act : actor.actions) {
|
||||
hecl::SystemStringConv sysStr(act.name);
|
||||
hecl::ProjectPath pathOut = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, act.animId));
|
||||
hecl::ProjectPath pathOut;
|
||||
if (!act.animId.empty()) {
|
||||
hecl::SystemStringConv animIdSys(act.animId);
|
||||
pathOut = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, animIdSys));
|
||||
} else {
|
||||
pathOut = inPath.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.ANIM")), sysStr));
|
||||
}
|
||||
|
||||
ancs.animationSet.animResources.emplace_back();
|
||||
ancs.animationSet.animResources.back().animId = pathOut;
|
||||
|
|
|
@ -307,7 +307,12 @@ void SpecBase::flattenDependenciesBlend(const hecl::ProjectPath& in, std::vector
|
|||
}
|
||||
|
||||
hecl::SystemStringConv chSysName(sub.name);
|
||||
pathsOut.push_back(asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), chSysName, sub.cskrId)));
|
||||
if (sub.cskrId != "") {
|
||||
hecl::SystemStringConv cskrSysName(sub.cskrId);
|
||||
pathsOut.push_back(asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), chSysName, cskrSysName)));
|
||||
} else {
|
||||
pathsOut.push_back(asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.CSKR")), chSysName)));
|
||||
}
|
||||
|
||||
const auto& arm = actor.armatures[sub.armature];
|
||||
if (hecl::IsPathBlend(arm.path))
|
||||
|
@ -995,16 +1000,26 @@ bool SpecBase::addFileToIndex(const hecl::ProjectPath& path, athena::io::YAMLDoc
|
|||
|
||||
for (const auto& sub : subtypeNames) {
|
||||
hecl::SystemStringConv subName(sub.first);
|
||||
hecl::SystemStringConv cskrId(sub.second);
|
||||
hecl::ProjectPath subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), subName, cskrId));
|
||||
hecl::ProjectPath subPath;
|
||||
if (!sub.second.empty()) {
|
||||
hecl::SystemStringConv cskrId(sub.second);
|
||||
subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.CSKR")), subName, cskrId));
|
||||
} else {
|
||||
subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.CSKR")), subName));
|
||||
}
|
||||
insertPathTag(cacheWriter, buildTagFromPath(subPath), subPath);
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> overlayNames = ds.getSubtypeOverlayNames(sub.first);
|
||||
for (const auto& overlay : overlayNames) {
|
||||
hecl::SystemStringConv overlaySys(overlay.first);
|
||||
hecl::SystemStringConv overlayCskrId(overlay.second);
|
||||
hecl::ProjectPath subPath = asGlob.ensureAuxInfo(
|
||||
fmt::format(fmt(_SYS_STR("{}.{}_{}.CSKR")), subName, overlaySys, overlayCskrId));
|
||||
if (!overlay.second.empty()) {
|
||||
subPath =
|
||||
asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.{}_{}.CSKR")), subName, overlaySys, overlayCskrId));
|
||||
} else {
|
||||
subPath =
|
||||
asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.{}.CSKR")), subName, overlaySys));
|
||||
}
|
||||
insertPathTag(cacheWriter, buildTagFromPath(subPath), subPath);
|
||||
}
|
||||
}
|
||||
|
@ -1013,15 +1028,26 @@ bool SpecBase::addFileToIndex(const hecl::ProjectPath& path, athena::io::YAMLDoc
|
|||
for (const auto& attachment : attachmentNames) {
|
||||
hecl::SystemStringConv attachmentSys(attachment.first);
|
||||
hecl::SystemStringConv attachmentCskrId(attachment.second);
|
||||
hecl::ProjectPath subPath =
|
||||
asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("ATTACH.{}_{}.CSKR")), attachmentSys, attachmentCskrId));
|
||||
hecl::ProjectPath subPath;
|
||||
if (!attachment.second.empty()) {
|
||||
subPath =
|
||||
asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("ATTACH.{}_{}.CSKR")), attachmentSys, attachmentCskrId));
|
||||
} else {
|
||||
subPath =
|
||||
asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("ATTACH.{}.CSKR")), attachmentSys));
|
||||
}
|
||||
insertPathTag(cacheWriter, buildTagFromPath(subPath), subPath);
|
||||
}
|
||||
|
||||
for (const auto& act : actionNames) {
|
||||
hecl::SystemStringConv sysStr(act.first);
|
||||
hecl::SystemStringConv animId(act.second);
|
||||
hecl::ProjectPath subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, animId));
|
||||
hecl::ProjectPath subPath;
|
||||
if (!act.second.empty()) {
|
||||
subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}_{}.ANIM")), sysStr, animId));
|
||||
} else {
|
||||
subPath = asGlob.ensureAuxInfo(fmt::format(fmt(_SYS_STR("{}.ANIM")), sysStr));
|
||||
}
|
||||
insertPathTag(cacheWriter, buildTagFromPath(subPath), subPath);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue