mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-25 12:41:33 +00:00
Read a few more Gamebryo/Bethesda modifiers
This commit is contained in:
parent
c6d0df432f
commit
8594875ccb
4 changed files with 93 additions and 0 deletions
|
@ -294,11 +294,16 @@ namespace Nif
|
||||||
|
|
||||||
// Modifiers, Gamebryo
|
// Modifiers, Gamebryo
|
||||||
{ "NiPSysAgeDeathModifier", &construct<NiPSysAgeDeathModifier, RC_NiPSysAgeDeathModifier> },
|
{ "NiPSysAgeDeathModifier", &construct<NiPSysAgeDeathModifier, RC_NiPSysAgeDeathModifier> },
|
||||||
|
{ "NiPSysBoundUpdateModifier", &construct<NiPSysBoundUpdateModifier, RC_NiPSysBoundUpdateModifier> },
|
||||||
{ "NiPSysPositionModifier", &construct<NiPSysModifier, RC_NiPSysPositionModifier> },
|
{ "NiPSysPositionModifier", &construct<NiPSysModifier, RC_NiPSysPositionModifier> },
|
||||||
{ "NiPSysSpawnModifier", &construct<NiPSysSpawnModifier, RC_NiPSysSpawnModifier> },
|
{ "NiPSysSpawnModifier", &construct<NiPSysSpawnModifier, RC_NiPSysSpawnModifier> },
|
||||||
|
|
||||||
// Modifiers, Bethesda
|
// Modifiers, Bethesda
|
||||||
|
{ "BSPSysInheritVelocityModifier",
|
||||||
|
&construct<BSPSysInheritVelocityModifier, RC_BSPSysInheritVelocityModifier> },
|
||||||
{ "BSPSysLODModifier", &construct<BSPSysLODModifier, RC_BSPSysLODModifier> },
|
{ "BSPSysLODModifier", &construct<BSPSysLODModifier, RC_BSPSysLODModifier> },
|
||||||
|
{ "BSPSysScaleModifier", &construct<BSPSysScaleModifier, RC_BSPSysScaleModifier> },
|
||||||
|
{ "BSPSysSimpleColorModifier", &construct<BSPSysSimpleColorModifier, RC_BSPSysSimpleColorModifier> },
|
||||||
|
|
||||||
// Emitters
|
// Emitters
|
||||||
{ "NiPSysBoxEmitter", &construct<NiPSysBoxEmitter, RC_NiPSysBoxEmitter> },
|
{ "NiPSysBoxEmitter", &construct<NiPSysBoxEmitter, RC_NiPSysBoxEmitter> },
|
||||||
|
|
|
@ -253,6 +253,13 @@ namespace Nif
|
||||||
mSpawnModifier.post(nif);
|
mSpawnModifier.post(nif);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NiPSysBoundUpdateModifier::read(NIFStream* nif)
|
||||||
|
{
|
||||||
|
NiPSysModifier::read(nif);
|
||||||
|
|
||||||
|
nif->read(mUpdateSkip);
|
||||||
|
}
|
||||||
|
|
||||||
void NiPSysSpawnModifier::read(NIFStream* nif)
|
void NiPSysSpawnModifier::read(NIFStream* nif)
|
||||||
{
|
{
|
||||||
NiPSysModifier::read(nif);
|
NiPSysModifier::read(nif);
|
||||||
|
@ -267,6 +274,23 @@ namespace Nif
|
||||||
nif->read(mLifespanVariation);
|
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)
|
void BSPSysLODModifier::read(NIFStream* nif)
|
||||||
{
|
{
|
||||||
NiPSysModifier::read(nif);
|
NiPSysModifier::read(nif);
|
||||||
|
@ -277,6 +301,28 @@ namespace Nif
|
||||||
nif->read(mEndSize);
|
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)
|
void NiPSysEmitter::read(NIFStream* nif)
|
||||||
{
|
{
|
||||||
NiPSysModifier::read(nif);
|
NiPSysModifier::read(nif);
|
||||||
|
|
|
@ -186,6 +186,13 @@ namespace Nif
|
||||||
void post(Reader& nif) override;
|
void post(Reader& nif) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct NiPSysBoundUpdateModifier : public NiPSysModifier
|
||||||
|
{
|
||||||
|
uint16_t mUpdateSkip;
|
||||||
|
|
||||||
|
void read(NIFStream* nif) override;
|
||||||
|
};
|
||||||
|
|
||||||
struct NiPSysSpawnModifier : NiPSysModifier
|
struct NiPSysSpawnModifier : NiPSysModifier
|
||||||
{
|
{
|
||||||
uint16_t mNumSpawnGenerations;
|
uint16_t mNumSpawnGenerations;
|
||||||
|
@ -200,6 +207,17 @@ namespace Nif
|
||||||
void read(NIFStream* nif) override;
|
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
|
struct BSPSysLODModifier : NiPSysModifier
|
||||||
{
|
{
|
||||||
float mLODStartDistance;
|
float mLODStartDistance;
|
||||||
|
@ -210,6 +228,26 @@ namespace Nif
|
||||||
void read(NIFStream* nif) override;
|
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
|
// Abstract
|
||||||
struct NiPSysEmitter : public NiPSysModifier
|
struct NiPSysEmitter : public NiPSysModifier
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,7 +94,10 @@ namespace Nif
|
||||||
RC_BSMultiBoundSphere,
|
RC_BSMultiBoundSphere,
|
||||||
RC_BSNiAlphaPropertyTestRefController,
|
RC_BSNiAlphaPropertyTestRefController,
|
||||||
RC_BSPackedAdditionalGeometryData,
|
RC_BSPackedAdditionalGeometryData,
|
||||||
|
RC_BSPSysInheritVelocityModifier,
|
||||||
RC_BSPSysLODModifier,
|
RC_BSPSysLODModifier,
|
||||||
|
RC_BSPSysScaleModifier,
|
||||||
|
RC_BSPSysSimpleColorModifier,
|
||||||
RC_BSStripParticleSystem,
|
RC_BSStripParticleSystem,
|
||||||
RC_BSStripPSysData,
|
RC_BSStripPSysData,
|
||||||
RC_BSRefractionFirePeriodController,
|
RC_BSRefractionFirePeriodController,
|
||||||
|
@ -188,6 +191,7 @@ namespace Nif
|
||||||
RC_NiPSysAirFieldInheritVelocityCtlr,
|
RC_NiPSysAirFieldInheritVelocityCtlr,
|
||||||
RC_NiPSysAirFieldSpreadCtlr,
|
RC_NiPSysAirFieldSpreadCtlr,
|
||||||
RC_NiPSysBoxEmitter,
|
RC_NiPSysBoxEmitter,
|
||||||
|
RC_NiPSysBoundUpdateModifier,
|
||||||
RC_NiPSysCylinderEmitter,
|
RC_NiPSysCylinderEmitter,
|
||||||
RC_NiPSysData,
|
RC_NiPSysData,
|
||||||
RC_NiPSysEmitterCtlr,
|
RC_NiPSysEmitterCtlr,
|
||||||
|
|
Loading…
Reference in a new issue