1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-01 07:39:47 +00:00

Read BSStripPSysData

This commit is contained in:
Alexei Kotov 2023-09-22 02:19:32 +03:00
parent a8946e06f6
commit eaa82ba5c6
5 changed files with 37 additions and 2 deletions

View file

@ -14,7 +14,19 @@ namespace Nif
nif->read(mGroupId); nif->read(mGroupId);
nif->read(mNumVertices); nif->read(mNumVertices);
bool hasData = recType != RC_NiPSysData || nif->getBethVersion() < NIFFile::BethVersion::BETHVER_FO3;
bool isPSysData = false;
switch (recType)
{
case RC_NiPSysData:
// case RC_NiMeshPSysData:
case RC_BSStripPSysData:
isPSysData = true;
break;
default:
break;
}
bool hasData = !isPSysData || nif->getBethVersion() < NIFFile::BethVersion::BETHVER_FO3;
if (nif->getVersion() >= NIFStream::generateVersion(10, 1, 0, 0)) if (nif->getVersion() >= NIFStream::generateVersion(10, 1, 0, 0))
{ {

View file

@ -283,7 +283,8 @@ namespace Nif
{ "NiPSysData", &construct<NiPSysData, RC_NiPSysData> }, { "NiPSysData", &construct<NiPSysData, RC_NiPSysData> },
// Geometry, Bethesda // Geometry, Bethesda
{ "BSStripParticleSystem", &construct<NiParticleSystem, RC_NiParticleSystem> }, { "BSStripParticleSystem", &construct<NiParticleSystem, RC_BSStripParticleSystem> },
{ "BSStripPSysData", &construct<BSStripPSysData, RC_BSStripPSysData> },
// Modifiers, 4.0.0.2 // Modifiers, 4.0.0.2
{ "NiGravity", &construct<NiGravity, RC_NiGravity> }, { "NiGravity", &construct<NiGravity, RC_NiGravity> },

View file

@ -215,6 +215,16 @@ namespace Nif
} }
} }
void BSStripPSysData::read(NIFStream* nif)
{
NiPSysData::read(nif);
nif->read(mMaxPointCount);
nif->read(mStartCapSize);
nif->read(mEndCapSize);
nif->read(mDoZPrepass);
}
void NiPSysModifier::read(NIFStream* nif) void NiPSysModifier::read(NIFStream* nif)
{ {
nif->read(mName); nif->read(mName);

View file

@ -138,6 +138,16 @@ namespace Nif
void read(NIFStream* nif) override; void read(NIFStream* nif) override;
}; };
struct BSStripPSysData : NiPSysData
{
uint16_t mMaxPointCount;
float mStartCapSize;
float mEndCapSize;
bool mDoZPrepass;
void read(NIFStream* nif) override;
};
// Abstract // Abstract
struct NiPSysModifier : Record struct NiPSysModifier : Record
{ {

View file

@ -94,6 +94,8 @@ namespace Nif
RC_BSMultiBoundSphere, RC_BSMultiBoundSphere,
RC_BSNiAlphaPropertyTestRefController, RC_BSNiAlphaPropertyTestRefController,
RC_BSPackedAdditionalGeometryData, RC_BSPackedAdditionalGeometryData,
RC_BSStripParticleSystem,
RC_BSStripPSysData,
RC_BSRefractionFirePeriodController, RC_BSRefractionFirePeriodController,
RC_BSRefractionStrengthController, RC_BSRefractionStrengthController,
RC_BSShaderNoLightingProperty, RC_BSShaderNoLightingProperty,