mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-24 18:39:59 +00:00
Read BSMasterParticleSystem, BSParentVelocityModifier, NiLookAtInterpolator
This commit is contained in:
parent
8df8135f1d
commit
d048746146
@ -600,6 +600,26 @@ namespace Nif
|
||||
mPercentData.post(nif);
|
||||
}
|
||||
|
||||
void NiLookAtInterpolator::read(NIFStream* nif)
|
||||
{
|
||||
nif->read(mLookAtFlags);
|
||||
mLookAt.read(nif);
|
||||
nif->read(mLookAtName);
|
||||
if (nif->getVersion() <= NIFStream::generateVersion(20, 4, 0, 12))
|
||||
nif->read(mTransform);
|
||||
mTranslation.read(nif);
|
||||
mRoll.read(nif);
|
||||
mScale.read(nif);
|
||||
}
|
||||
|
||||
void NiLookAtInterpolator::post(Reader& nif)
|
||||
{
|
||||
mLookAt.post(nif);
|
||||
mTranslation.post(nif);
|
||||
mRoll.post(nif);
|
||||
mScale.post(nif);
|
||||
}
|
||||
|
||||
void NiBlendInterpolator::read(NIFStream* nif)
|
||||
{
|
||||
if (nif->getVersion() >= NIFStream::generateVersion(10, 1, 0, 112))
|
||||
|
@ -419,6 +419,21 @@ namespace Nif
|
||||
void post(Reader& nif) override;
|
||||
};
|
||||
|
||||
struct NiLookAtInterpolator : NiInterpolator
|
||||
{
|
||||
// Uses the same flags as NiLookAtController
|
||||
uint16_t mLookAtFlags{ 0 };
|
||||
NiAVObjectPtr mLookAt;
|
||||
std::string mLookAtName;
|
||||
NiQuatTransform mTransform;
|
||||
NiInterpolatorPtr mTranslation;
|
||||
NiInterpolatorPtr mRoll;
|
||||
NiInterpolatorPtr mScale;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
void post(Reader& nif) override;
|
||||
};
|
||||
|
||||
// Abstract
|
||||
struct NiBlendInterpolator : public NiInterpolator
|
||||
{
|
||||
|
@ -72,6 +72,7 @@ namespace Nif
|
||||
{ "BSDebrisNode", &construct<BSRangeNode, RC_NiNode> },
|
||||
{ "BSFadeNode", &construct<NiNode, RC_NiNode> },
|
||||
{ "BSLeafAnimNode", &construct<NiNode, RC_NiNode> },
|
||||
{ "BSMasterParticleSystem", &construct<BSMasterParticleSystem, RC_NiNode> },
|
||||
{ "BSMultiBoundNode", &construct<BSMultiBoundNode, RC_NiNode> },
|
||||
{ "BSOrderedNode", &construct<BSOrderedNode, RC_NiNode> },
|
||||
{ "BSRangeNode", &construct<BSRangeNode, RC_NiNode> },
|
||||
@ -164,6 +165,7 @@ namespace Nif
|
||||
{ "NiBoolTimelineInterpolator", &construct<NiBoolInterpolator, RC_NiBoolTimelineInterpolator> },
|
||||
{ "NiColorInterpolator", &construct<NiColorInterpolator, RC_NiColorInterpolator> },
|
||||
{ "NiFloatInterpolator", &construct<NiFloatInterpolator, RC_NiFloatInterpolator> },
|
||||
{ "NiLookAtInterpolator", &construct<NiLookAtInterpolator, RC_NiLookAtInterpolator> },
|
||||
{ "NiPathInterpolator", &construct<NiPathInterpolator, RC_NiPathInterpolator> },
|
||||
{ "NiPoint3Interpolator", &construct<NiPoint3Interpolator, RC_NiPoint3Interpolator> },
|
||||
{ "NiTransformInterpolator", &construct<NiTransformInterpolator, RC_NiTransformInterpolator> },
|
||||
@ -305,6 +307,7 @@ namespace Nif
|
||||
{ "NiPSysSpawnModifier", &construct<NiPSysSpawnModifier, RC_NiPSysSpawnModifier> },
|
||||
|
||||
// Modifiers, Bethesda
|
||||
{ "BSParentVelocityModifier", &construct<BSParentVelocityModifier, RC_BSParentVelocityModifier> },
|
||||
{ "BSPSysInheritVelocityModifier",
|
||||
&construct<BSPSysInheritVelocityModifier, RC_BSPSysInheritVelocityModifier> },
|
||||
{ "BSPSysLODModifier", &construct<BSPSysLODModifier, RC_BSPSysLODModifier> },
|
||||
|
@ -150,6 +150,21 @@ namespace Nif
|
||||
nif->readVector(mRotations, mNumVertices);
|
||||
}
|
||||
|
||||
void BSMasterParticleSystem::read(NIFStream* nif)
|
||||
{
|
||||
NiNode::read(nif);
|
||||
|
||||
nif->read(mMaxEmitters);
|
||||
readRecordList(nif, mParticleSystems);
|
||||
}
|
||||
|
||||
void BSMasterParticleSystem::post(Reader& nif)
|
||||
{
|
||||
NiNode::post(nif);
|
||||
|
||||
postRecordList(nif, mParticleSystems);
|
||||
}
|
||||
|
||||
void NiParticleSystem::read(NIFStream* nif)
|
||||
{
|
||||
// Weird loading to account for inheritance differences starting from SSE
|
||||
@ -383,6 +398,13 @@ namespace Nif
|
||||
nif->read(mLifespanVariation);
|
||||
}
|
||||
|
||||
void BSParentVelocityModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
||||
nif->read(mDamping);
|
||||
}
|
||||
|
||||
void BSPSysInheritVelocityModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
@ -115,6 +115,15 @@ namespace Nif
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSMasterParticleSystem : NiNode
|
||||
{
|
||||
uint16_t mMaxEmitters;
|
||||
NiAVObjectList mParticleSystems;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
void post(Reader& nif) override;
|
||||
};
|
||||
|
||||
struct NiParticleSystem : NiParticles
|
||||
{
|
||||
osg::BoundingSpheref mBoundingSphere;
|
||||
@ -279,6 +288,13 @@ namespace Nif
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSParentVelocityModifier : NiPSysModifier
|
||||
{
|
||||
float mDamping;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSPSysInheritVelocityModifier : NiPSysModifier
|
||||
{
|
||||
NiAVObjectPtr mInheritObject;
|
||||
|
@ -94,6 +94,7 @@ namespace Nif
|
||||
RC_BSMultiBoundSphere,
|
||||
RC_BSNiAlphaPropertyTestRefController,
|
||||
RC_BSPackedAdditionalGeometryData,
|
||||
RC_BSParentVelocityModifier,
|
||||
RC_BSPSysArrayEmitter,
|
||||
RC_BSPSysInheritVelocityModifier,
|
||||
RC_BSPSysLODModifier,
|
||||
@ -172,6 +173,7 @@ namespace Nif
|
||||
RC_NiLinesData,
|
||||
RC_NiLODNode,
|
||||
RC_NiLookAtController,
|
||||
RC_NiLookAtInterpolator,
|
||||
RC_NiMaterialColorController,
|
||||
RC_NiMaterialProperty,
|
||||
RC_NiMorphData,
|
||||
|
Loading…
x
Reference in New Issue
Block a user