mirror of https://github.com/AxioDL/metaforce.git
Various bug fixes
This commit is contained in:
parent
955d043c9e
commit
129767134e
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
namespace urde
|
namespace urde
|
||||||
{
|
{
|
||||||
|
static logvisor::Module Log("urde::CModelData");
|
||||||
|
|
||||||
CModelData::~CModelData() {}
|
CModelData::~CModelData() {}
|
||||||
|
|
||||||
|
@ -26,6 +27,8 @@ CModelData::CModelData(const CStaticRes& res)
|
||||||
: x0_particleScale(res.GetScale())
|
: x0_particleScale(res.GetScale())
|
||||||
{
|
{
|
||||||
x1c_normalModel = g_SimplePool->GetObj({SBIG('CMDL'), res.GetId()});
|
x1c_normalModel = g_SimplePool->GetObj({SBIG('CMDL'), res.GetId()});
|
||||||
|
if (!x1c_normalModel)
|
||||||
|
Log.report(logvisor::Fatal, "unable to find CMDL %08X", res.GetId());
|
||||||
}
|
}
|
||||||
|
|
||||||
CModelData::CModelData(const CAnimRes& res)
|
CModelData::CModelData(const CAnimRes& res)
|
||||||
|
|
|
@ -33,6 +33,7 @@ public:
|
||||||
|
|
||||||
ResId GetId() const { return x0_cmdlId; }
|
ResId GetId() const { return x0_cmdlId; }
|
||||||
const zeus::CVector3f& GetScale() const { return x4_scale; }
|
const zeus::CVector3f& GetScale() const { return x4_scale; }
|
||||||
|
operator bool() const { return x0_cmdlId != 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class CAnimRes
|
class CAnimRes
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
namespace urde
|
namespace urde
|
||||||
{
|
{
|
||||||
|
static logvisor::Module Log("urde::CSkinnedModel");
|
||||||
|
|
||||||
CSkinnedModel::CSkinnedModel(TLockedToken<CModel> model,
|
CSkinnedModel::CSkinnedModel(TLockedToken<CModel> model,
|
||||||
TLockedToken<CSkinRules> skinRules,
|
TLockedToken<CSkinRules> skinRules,
|
||||||
|
@ -10,6 +11,12 @@ CSkinnedModel::CSkinnedModel(TLockedToken<CModel> model,
|
||||||
int shaderIdx)
|
int shaderIdx)
|
||||||
: x4_model(model), x10_skinRules(skinRules), x1c_layoutInfo(layoutInfo)
|
: x4_model(model), x10_skinRules(skinRules), x1c_layoutInfo(layoutInfo)
|
||||||
{
|
{
|
||||||
|
if (!model)
|
||||||
|
Log.report(logvisor::Fatal, "bad model token provided to CSkinnedModel");
|
||||||
|
if (!skinRules)
|
||||||
|
Log.report(logvisor::Fatal, "bad skin token provided to CSkinnedModel");
|
||||||
|
if (!layoutInfo)
|
||||||
|
Log.report(logvisor::Fatal, "bad character layout token provided to CSkinnedModel");
|
||||||
m_modelInst = model->MakeNewInstance(shaderIdx);
|
m_modelInst = model->MakeNewInstance(shaderIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,10 +60,10 @@ void CTweaks::RegisterResourceTweaks()
|
||||||
#else
|
#else
|
||||||
ProjectResourceFactoryMP1& factory = ProjectManager::g_SharedManager->resourceFactoryMP1();
|
ProjectResourceFactoryMP1& factory = ProjectManager::g_SharedManager->resourceFactoryMP1();
|
||||||
std::unique_ptr<CInputStream> strm;
|
std::unique_ptr<CInputStream> strm;
|
||||||
SObjectTag tag = *factory.GetResourceIdByName("GunRes");
|
SObjectTag tag = factory.ProjectResourceFactoryBase::TagFromPath(_S("MP1/Tweaks/GunRes.yaml"));
|
||||||
strm.reset(new CMemoryInStream(factory.LoadResourceSync(tag).release(), factory.ResourceSize(tag)));
|
strm.reset(new CMemoryInStream(factory.LoadResourceSync(tag).release(), factory.ResourceSize(tag)));
|
||||||
g_tweakGunRes = new DataSpec::DNAMP1::CTweakGunRes(*strm);
|
g_tweakGunRes = new DataSpec::DNAMP1::CTweakGunRes(*strm);
|
||||||
tag = *factory.GetResourceIdByName("GunRes");
|
tag = factory.ProjectResourceFactoryBase::TagFromPath(_S("MP1/Tweaks/PlayerRes.yaml"));
|
||||||
strm.reset(new CMemoryInStream(factory.LoadResourceSync(tag).release(), factory.ResourceSize(tag)));
|
strm.reset(new CMemoryInStream(factory.LoadResourceSync(tag).release(), factory.ResourceSize(tag)));
|
||||||
g_tweakPlayerRes = new DataSpec::DNAMP1::CTweakPlayerRes(*strm);
|
g_tweakPlayerRes = new DataSpec::DNAMP1::CTweakPlayerRes(*strm);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -298,16 +298,16 @@ void CWorldTransManager::TouchModels()
|
||||||
x4_modelData->x1c_samusModelData.AnimationData()->SetAnimation(aData, false);
|
x4_modelData->x1c_samusModelData.AnimationData()->SetAnimation(aData, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x4_modelData->x1c_samusModelData.IsNull())
|
if (!x4_modelData->x1c_samusModelData.IsNull())
|
||||||
x4_modelData->x1c_samusModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
x4_modelData->x1c_samusModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
||||||
|
|
||||||
if (x4_modelData->xb4_platformModelData.IsNull())
|
if (!x4_modelData->xb4_platformModelData.IsNull())
|
||||||
x4_modelData->xb4_platformModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
x4_modelData->xb4_platformModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
||||||
|
|
||||||
if (x4_modelData->x100_bgModelData.IsNull())
|
if (!x4_modelData->x100_bgModelData.IsNull())
|
||||||
x4_modelData->x100_bgModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
x4_modelData->x100_bgModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
||||||
|
|
||||||
if (x4_modelData->x68_beamModelData.IsNull())
|
if (!x4_modelData->x68_beamModelData.IsNull())
|
||||||
x4_modelData->x68_beamModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
x4_modelData->x68_beamModelData.Touch(CModelData::EWhichModel::Normal, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
hecl
2
hecl
|
@ -1 +1 @@
|
||||||
Subproject commit ab1df60c348335f9e3637ef21ac5dc8c6f563ad9
|
Subproject commit 172d1de275d05f1fc8d69dac0c193d7c8bcc78cd
|
Loading…
Reference in New Issue