Read Gamebryo particle colliders and a few more modifiers

This commit is contained in:
Alexei Kotov 2023-09-22 05:01:18 +03:00
parent 120223d8df
commit 5de3bdd2bc
5 changed files with 173 additions and 0 deletions

View file

@ -364,6 +364,22 @@ namespace Nif
nif->read(mEndSize);
}
void BSPSysRecycleBoundModifier::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
nif->read(mBoundOffset);
nif->read(mBoundExtents);
mBoundObject.read(nif);
}
void BSPSysRecycleBoundModifier::post(Reader& nif)
{
NiPSysModifier::post(nif);
mBoundObject.post(nif);
}
void BSPSysScaleModifier::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
@ -386,6 +402,26 @@ namespace Nif
nif->skip(52); // Unknown
}
void BSPSysStripUpdateModifier::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
nif->read(mUpdateDeltaTime);
}
void BSPSysSubTexModifier::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
nif->read(mStartFrame);
nif->read(mStartFrameFudge);
nif->read(mEndFrame);
nif->read(mLoopStartFrame);
nif->read(mLoopStartFrameFudge);
nif->read(mFrameCount);
nif->read(mFrameCountFudge);
}
void NiPSysEmitter::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
@ -496,4 +532,54 @@ namespace Nif
mVisKeyList->mKeys[nif->get<float>()].mValue = nif->get<uint8_t>() != 0;
}
void NiPSysCollider::read(NIFStream* nif)
{
nif->read(mBounce);
nif->read(mCollideSpawn);
nif->read(mCollideDie);
mSpawnModifier.read(nif);
mParent.read(nif);
mNextCollider.read(nif);
mColliderObject.read(nif);
}
void NiPSysCollider::post(Reader& nif)
{
mSpawnModifier.post(nif);
mParent.post(nif);
mNextCollider.post(nif);
mColliderObject.post(nif);
}
void NiPSysColliderManager::read(NIFStream* nif)
{
NiPSysModifier::read(nif);
mCollider.read(nif);
}
void NiPSysColliderManager::post(Reader& nif)
{
NiPSysModifier::post(nif);
mCollider.post(nif);
}
void NiPSysSphericalCollider::read(NIFStream* nif)
{
NiPSysCollider::read(nif);
nif->read(mRadius);
}
void NiPSysPlanarCollider::read(NIFStream* nif)
{
NiPSysCollider::read(nif);
nif->read(mWidth);
nif->read(mHeight);
nif->read(mXAxis);
nif->read(mYAxis);
}
}