mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 13:07:42 +00:00
Shader refactor bug fixes and attachment model extract/cook
This commit is contained in:
@@ -22,8 +22,8 @@ struct Magdolite : IScriptObject
|
||||
DamageInfo damageInfo2;
|
||||
DamageVulnerability damageVulnerabilty1;
|
||||
DamageVulnerability damageVulnerabilty2;
|
||||
UniqueID32 model;
|
||||
UniqueID32 skin;
|
||||
UniqueID32 cmdlHeadless;
|
||||
UniqueID32 cskrHeadless;
|
||||
Value<float> unknown3;
|
||||
Value<float> unknown4;
|
||||
Value<float> unknown5;
|
||||
@@ -43,25 +43,31 @@ struct Magdolite : IScriptObject
|
||||
Value<float> unknown8;
|
||||
Value<float> unknown9;
|
||||
|
||||
void addCMDLRigPairs(PAKRouter<PAKBridge>& pakRouter,
|
||||
std::unordered_map<UniqueID32, std::pair<UniqueID32, UniqueID32>>& addTo) const
|
||||
void addCMDLRigPairs(PAKRouter<PAKBridge>& pakRouter, CharacterAssociations<UniqueID32>& charAssoc) const
|
||||
{
|
||||
UniqueID32 cinf = patternedInfo.animationParameters.getCINF(pakRouter);
|
||||
actorParameters.addCMDLRigPairs(addTo, cinf);
|
||||
if (model && skin)
|
||||
addTo[model] = std::make_pair(skin, cinf);
|
||||
actorParameters.addCMDLRigPairs(pakRouter, charAssoc, patternedInfo.animationParameters);
|
||||
|
||||
if (cmdlHeadless && cskrHeadless)
|
||||
{
|
||||
charAssoc.m_cmdlRigs[cmdlHeadless] = std::make_pair(cskrHeadless, cinf);
|
||||
charAssoc.m_cskrCinfToCharacter[cskrHeadless] = std::make_pair(
|
||||
patternedInfo.animationParameters.animationCharacterSet, "ATTACH.HEADLESS.CSKR");
|
||||
charAssoc.addAttachmentRig(patternedInfo.animationParameters.animationCharacterSet,
|
||||
{}, cmdlHeadless, "HEADLESS");
|
||||
}
|
||||
}
|
||||
|
||||
void nameIDs(PAKRouter<PAKBridge>& pakRouter) const
|
||||
{
|
||||
if (model)
|
||||
if (cmdlHeadless)
|
||||
{
|
||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(model);
|
||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(cmdlHeadless);
|
||||
ent->name = name + "_emodel";
|
||||
}
|
||||
if (skin)
|
||||
if (cskrHeadless)
|
||||
{
|
||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(skin);
|
||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(cskrHeadless);
|
||||
ent->name = name + "_eskin";
|
||||
}
|
||||
if (magdoliteParameters.particle)
|
||||
@@ -76,8 +82,8 @@ struct Magdolite : IScriptObject
|
||||
void gatherDependencies(std::vector<hecl::ProjectPath>& pathsOut,
|
||||
std::vector<hecl::ProjectPath>& lazyOut) const
|
||||
{
|
||||
g_curSpec->flattenDependencies(model, pathsOut);
|
||||
g_curSpec->flattenDependencies(skin, pathsOut);
|
||||
g_curSpec->flattenDependencies(cmdlHeadless, pathsOut);
|
||||
g_curSpec->flattenDependencies(cskrHeadless, pathsOut);
|
||||
g_curSpec->flattenDependencies(magdoliteParameters.particle, pathsOut);
|
||||
patternedInfo.depIDs(pathsOut);
|
||||
actorParameters.depIDs(pathsOut, lazyOut);
|
||||
|
||||
Reference in New Issue
Block a user