mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 03:40:14 +00:00
Read a few more Gamebryo/Bethesda modifiers
This commit is contained in:
parent
c6d0df432f
commit
8594875ccb
@ -294,11 +294,16 @@ namespace Nif
|
||||
|
||||
// Modifiers, Gamebryo
|
||||
{ "NiPSysAgeDeathModifier", &construct<NiPSysAgeDeathModifier, RC_NiPSysAgeDeathModifier> },
|
||||
{ "NiPSysBoundUpdateModifier", &construct<NiPSysBoundUpdateModifier, RC_NiPSysBoundUpdateModifier> },
|
||||
{ "NiPSysPositionModifier", &construct<NiPSysModifier, RC_NiPSysPositionModifier> },
|
||||
{ "NiPSysSpawnModifier", &construct<NiPSysSpawnModifier, RC_NiPSysSpawnModifier> },
|
||||
|
||||
// Modifiers, Bethesda
|
||||
{ "BSPSysInheritVelocityModifier",
|
||||
&construct<BSPSysInheritVelocityModifier, RC_BSPSysInheritVelocityModifier> },
|
||||
{ "BSPSysLODModifier", &construct<BSPSysLODModifier, RC_BSPSysLODModifier> },
|
||||
{ "BSPSysScaleModifier", &construct<BSPSysScaleModifier, RC_BSPSysScaleModifier> },
|
||||
{ "BSPSysSimpleColorModifier", &construct<BSPSysSimpleColorModifier, RC_BSPSysSimpleColorModifier> },
|
||||
|
||||
// Emitters
|
||||
{ "NiPSysBoxEmitter", &construct<NiPSysBoxEmitter, RC_NiPSysBoxEmitter> },
|
||||
|
@ -253,6 +253,13 @@ namespace Nif
|
||||
mSpawnModifier.post(nif);
|
||||
}
|
||||
|
||||
void NiPSysBoundUpdateModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
||||
nif->read(mUpdateSkip);
|
||||
}
|
||||
|
||||
void NiPSysSpawnModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
@ -267,6 +274,23 @@ namespace Nif
|
||||
nif->read(mLifespanVariation);
|
||||
}
|
||||
|
||||
void BSPSysInheritVelocityModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
||||
mInheritObject.read(nif);
|
||||
nif->read(mInheritChance);
|
||||
nif->read(mVelocityMult);
|
||||
nif->read(mVelcoityVariation);
|
||||
}
|
||||
|
||||
void BSPSysInheritVelocityModifier::post(Reader& nif)
|
||||
{
|
||||
NiPSysModifier::post(nif);
|
||||
|
||||
mInheritObject.post(nif);
|
||||
}
|
||||
|
||||
void BSPSysLODModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
@ -277,6 +301,28 @@ namespace Nif
|
||||
nif->read(mEndSize);
|
||||
}
|
||||
|
||||
void BSPSysScaleModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
||||
nif->readVector(mScales, nif->get<uint32_t>());
|
||||
}
|
||||
|
||||
void BSPSysSimpleColorModifier::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
||||
nif->read(mFadeInPercent);
|
||||
nif->read(mFadeOutPercent);
|
||||
nif->read(mColor1EndPercent);
|
||||
nif->read(mColor1StartPercent);
|
||||
nif->read(mColor2EndPercent);
|
||||
nif->read(mColor2StartPercent);
|
||||
nif->readVector(mColors, 3);
|
||||
if (nif->getBethVersion() >= NIFFile::BethVersion::BETHVER_F76)
|
||||
nif->skip(52); // Unknown
|
||||
}
|
||||
|
||||
void NiPSysEmitter::read(NIFStream* nif)
|
||||
{
|
||||
NiPSysModifier::read(nif);
|
||||
|
@ -186,6 +186,13 @@ namespace Nif
|
||||
void post(Reader& nif) override;
|
||||
};
|
||||
|
||||
struct NiPSysBoundUpdateModifier : public NiPSysModifier
|
||||
{
|
||||
uint16_t mUpdateSkip;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct NiPSysSpawnModifier : NiPSysModifier
|
||||
{
|
||||
uint16_t mNumSpawnGenerations;
|
||||
@ -200,6 +207,17 @@ namespace Nif
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSPSysInheritVelocityModifier : public NiPSysModifier
|
||||
{
|
||||
NiObjectNETPtr mInheritObject;
|
||||
float mInheritChance;
|
||||
float mVelocityMult;
|
||||
float mVelcoityVariation;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
void post(Reader& nif) override;
|
||||
};
|
||||
|
||||
struct BSPSysLODModifier : NiPSysModifier
|
||||
{
|
||||
float mLODStartDistance;
|
||||
@ -210,6 +228,26 @@ namespace Nif
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSPSysScaleModifier : public NiPSysModifier
|
||||
{
|
||||
std::vector<float> mScales;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
struct BSPSysSimpleColorModifier : NiPSysModifier
|
||||
{
|
||||
float mFadeInPercent;
|
||||
float mFadeOutPercent;
|
||||
float mColor1EndPercent;
|
||||
float mColor1StartPercent;
|
||||
float mColor2EndPercent;
|
||||
float mColor2StartPercent;
|
||||
std::vector<osg::Vec4f> mColors;
|
||||
|
||||
void read(NIFStream* nif) override;
|
||||
};
|
||||
|
||||
// Abstract
|
||||
struct NiPSysEmitter : public NiPSysModifier
|
||||
{
|
||||
|
@ -94,7 +94,10 @@ namespace Nif
|
||||
RC_BSMultiBoundSphere,
|
||||
RC_BSNiAlphaPropertyTestRefController,
|
||||
RC_BSPackedAdditionalGeometryData,
|
||||
RC_BSPSysInheritVelocityModifier,
|
||||
RC_BSPSysLODModifier,
|
||||
RC_BSPSysScaleModifier,
|
||||
RC_BSPSysSimpleColorModifier,
|
||||
RC_BSStripParticleSystem,
|
||||
RC_BSStripPSysData,
|
||||
RC_BSRefractionFirePeriodController,
|
||||
@ -188,6 +191,7 @@ namespace Nif
|
||||
RC_NiPSysAirFieldInheritVelocityCtlr,
|
||||
RC_NiPSysAirFieldSpreadCtlr,
|
||||
RC_NiPSysBoxEmitter,
|
||||
RC_NiPSysBoundUpdateModifier,
|
||||
RC_NiPSysCylinderEmitter,
|
||||
RC_NiPSysData,
|
||||
RC_NiPSysEmitterCtlr,
|
||||
|
Loading…
x
Reference in New Issue
Block a user