mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-30 03:15:32 +00:00
Turn all NIF records into structs
This commit is contained in:
parent
4490f89a3d
commit
1e6156e04a
9 changed files with 65 additions and 104 deletions
|
@ -11,9 +11,8 @@
|
|||
namespace Nif
|
||||
{
|
||||
// An extra data record. All the extra data connected to an object form a linked list.
|
||||
class Extra : public Record
|
||||
struct Extra : public Record
|
||||
{
|
||||
public:
|
||||
std::string name;
|
||||
ExtraPtr next; // Next extra data record in the list
|
||||
|
||||
|
@ -31,9 +30,8 @@ public:
|
|||
void post(NIFFile *nif) override { next.post(nif); }
|
||||
};
|
||||
|
||||
class Controller : public Record
|
||||
struct Controller : public Record
|
||||
{
|
||||
public:
|
||||
ControllerPtr next;
|
||||
int flags;
|
||||
float frequency, phase;
|
||||
|
@ -45,9 +43,8 @@ public:
|
|||
};
|
||||
|
||||
/// Has name, extra-data and controller
|
||||
class Named : public Record
|
||||
struct Named : public Record
|
||||
{
|
||||
public:
|
||||
std::string name;
|
||||
ExtraPtr extra;
|
||||
ExtraList extralist;
|
||||
|
|
|
@ -29,9 +29,8 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
class NiSourceTexture : public Named
|
||||
struct NiSourceTexture : public Named
|
||||
{
|
||||
public:
|
||||
// Is this an external (references a separate texture file) or
|
||||
// internal (data is inside the nif itself) texture?
|
||||
bool external;
|
||||
|
@ -93,27 +92,24 @@ struct NiParticleModifier : public Record
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiParticleGrowFade : public NiParticleModifier
|
||||
struct NiParticleGrowFade : public NiParticleModifier
|
||||
{
|
||||
public:
|
||||
float growTime;
|
||||
float fadeTime;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiParticleColorModifier : public NiParticleModifier
|
||||
struct NiParticleColorModifier : public NiParticleModifier
|
||||
{
|
||||
public:
|
||||
NiColorDataPtr data;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiGravity : public NiParticleModifier
|
||||
struct NiGravity : public NiParticleModifier
|
||||
{
|
||||
public:
|
||||
float mForce;
|
||||
/* 0 - Wind (fixed direction)
|
||||
* 1 - Point (fixed origin)
|
||||
|
@ -133,27 +129,24 @@ struct NiParticleCollider : public NiParticleModifier
|
|||
};
|
||||
|
||||
// NiPinaColada
|
||||
class NiPlanarCollider : public NiParticleCollider
|
||||
struct NiPlanarCollider : public NiParticleCollider
|
||||
{
|
||||
public:
|
||||
void read(NIFStream *nif) override;
|
||||
|
||||
osg::Vec3f mPlaneNormal;
|
||||
float mPlaneDistance;
|
||||
};
|
||||
|
||||
class NiSphericalCollider : public NiParticleCollider
|
||||
struct NiSphericalCollider : public NiParticleCollider
|
||||
{
|
||||
public:
|
||||
float mRadius;
|
||||
osg::Vec3f mCenter;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiParticleRotation : public NiParticleModifier
|
||||
struct NiParticleRotation : public NiParticleModifier
|
||||
{
|
||||
public:
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
|
|
|
@ -29,9 +29,8 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
class NiParticleSystemController : public Controller
|
||||
struct NiParticleSystemController : public Controller
|
||||
{
|
||||
public:
|
||||
struct Particle {
|
||||
osg::Vec3f velocity;
|
||||
float lifetime;
|
||||
|
@ -80,9 +79,8 @@ public:
|
|||
};
|
||||
using NiBSPArrayController = NiParticleSystemController;
|
||||
|
||||
class NiMaterialColorController : public Controller
|
||||
struct NiMaterialColorController : public Controller
|
||||
{
|
||||
public:
|
||||
NiPoint3InterpolatorPtr interpolator;
|
||||
NiPosDataPtr data;
|
||||
unsigned int targetColor;
|
||||
|
@ -91,9 +89,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiPathController : public Controller
|
||||
struct NiPathController : public Controller
|
||||
{
|
||||
public:
|
||||
NiPosDataPtr posData;
|
||||
NiFloatDataPtr floatData;
|
||||
|
||||
|
@ -115,9 +112,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiLookAtController : public Controller
|
||||
struct NiLookAtController : public Controller
|
||||
{
|
||||
public:
|
||||
NodePtr target;
|
||||
unsigned short lookAtFlags{0};
|
||||
|
||||
|
@ -125,9 +121,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiUVController : public Controller
|
||||
struct NiUVController : public Controller
|
||||
{
|
||||
public:
|
||||
NiUVDataPtr data;
|
||||
unsigned int uvSet;
|
||||
|
||||
|
@ -135,9 +130,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiKeyframeController : public Controller
|
||||
struct NiKeyframeController : public Controller
|
||||
{
|
||||
public:
|
||||
NiKeyframeDataPtr data;
|
||||
NiTransformInterpolatorPtr interpolator;
|
||||
|
||||
|
@ -154,12 +148,11 @@ struct NiFloatInterpController : public Controller
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiAlphaController : public NiFloatInterpController { };
|
||||
class NiRollController : public NiFloatInterpController { };
|
||||
struct NiAlphaController : public NiFloatInterpController { };
|
||||
struct NiRollController : public NiFloatInterpController { };
|
||||
|
||||
class NiGeomMorpherController : public Controller
|
||||
struct NiGeomMorpherController : public Controller
|
||||
{
|
||||
public:
|
||||
NiMorphDataPtr data;
|
||||
NiFloatInterpolatorList interpolators;
|
||||
|
||||
|
@ -167,18 +160,16 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiVisController : public Controller
|
||||
struct NiVisController : public Controller
|
||||
{
|
||||
public:
|
||||
NiVisDataPtr data;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiFlipController : public Controller
|
||||
struct NiFlipController : public Controller
|
||||
{
|
||||
public:
|
||||
NiFloatInterpolatorPtr mInterpolator;
|
||||
int mTexSlot; // NiTexturingProperty::TextureType
|
||||
float mDelta; // Time between two flips. delta = (start_time - stop_time) / num_sources
|
||||
|
|
|
@ -32,9 +32,8 @@ namespace Nif
|
|||
{
|
||||
|
||||
// Common ancestor for several data classes
|
||||
class NiGeometryData : public Record
|
||||
struct NiGeometryData : public Record
|
||||
{
|
||||
public:
|
||||
std::vector<osg::Vec3f> vertices, normals, tangents, bitangents;
|
||||
std::vector<osg::Vec4f> colors;
|
||||
std::vector< std::vector<osg::Vec2f> > uvlist;
|
||||
|
@ -44,18 +43,16 @@ public:
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiTriShapeData : public NiGeometryData
|
||||
struct NiTriShapeData : public NiGeometryData
|
||||
{
|
||||
public:
|
||||
// Triangles, three vertex indices per triangle
|
||||
std::vector<unsigned short> triangles;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiTriStripsData : public NiGeometryData
|
||||
struct NiTriStripsData : public NiGeometryData
|
||||
{
|
||||
public:
|
||||
// Triangle strips, series of vertex indices.
|
||||
std::vector<std::vector<unsigned short>> strips;
|
||||
|
||||
|
@ -70,9 +67,8 @@ struct NiLinesData : public NiGeometryData
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiParticlesData : public NiGeometryData
|
||||
struct NiParticlesData : public NiGeometryData
|
||||
{
|
||||
public:
|
||||
int numParticles{0};
|
||||
|
||||
int activeCount;
|
||||
|
@ -84,39 +80,34 @@ public:
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiRotatingParticlesData : public NiParticlesData
|
||||
struct NiRotatingParticlesData : public NiParticlesData
|
||||
{
|
||||
public:
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiPosData : public Record
|
||||
struct NiPosData : public Record
|
||||
{
|
||||
public:
|
||||
Vector3KeyMapPtr mKeyList;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiUVData : public Record
|
||||
struct NiUVData : public Record
|
||||
{
|
||||
public:
|
||||
FloatKeyMapPtr mKeyList[4];
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiFloatData : public Record
|
||||
struct NiFloatData : public Record
|
||||
{
|
||||
public:
|
||||
FloatKeyMapPtr mKeyList;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiPixelData : public Record
|
||||
struct NiPixelData : public Record
|
||||
{
|
||||
public:
|
||||
enum Format
|
||||
{
|
||||
NIPXFMT_RGB8,
|
||||
|
@ -150,17 +141,15 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiColorData : public Record
|
||||
struct NiColorData : public Record
|
||||
{
|
||||
public:
|
||||
Vector4KeyMapPtr mKeyMap;
|
||||
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiVisData : public Record
|
||||
struct NiVisData : public Record
|
||||
{
|
||||
public:
|
||||
struct VisData {
|
||||
float time;
|
||||
bool isSet;
|
||||
|
@ -170,9 +159,8 @@ public:
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiSkinInstance : public Record
|
||||
struct NiSkinInstance : public Record
|
||||
{
|
||||
public:
|
||||
NiSkinDataPtr data;
|
||||
NiSkinPartitionPtr partitions;
|
||||
NodePtr root;
|
||||
|
@ -182,9 +170,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiSkinData : public Record
|
||||
struct NiSkinData : public Record
|
||||
{
|
||||
public:
|
||||
struct VertWeight
|
||||
{
|
||||
unsigned short vertex;
|
||||
|
@ -251,9 +238,8 @@ struct NiKeyframeData : public Record
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiPalette : public Record
|
||||
struct NiPalette : public Record
|
||||
{
|
||||
public:
|
||||
// 32-bit RGBA colors that correspond to 8-bit indices
|
||||
std::vector<unsigned int> colors;
|
||||
|
||||
|
|
|
@ -29,15 +29,13 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
class NiVertWeightsExtraData : public Extra
|
||||
struct NiVertWeightsExtraData : public Extra
|
||||
{
|
||||
public:
|
||||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiTextKeyExtraData : public Extra
|
||||
struct NiTextKeyExtraData : public Extra
|
||||
{
|
||||
public:
|
||||
struct TextKey
|
||||
{
|
||||
float time;
|
||||
|
@ -48,9 +46,8 @@ public:
|
|||
void read(NIFStream *nif) override;
|
||||
};
|
||||
|
||||
class NiStringExtraData : public Extra
|
||||
struct NiStringExtraData : public Extra
|
||||
{
|
||||
public:
|
||||
/* Two known meanings:
|
||||
"MRK" - marker, only visible in the editor, not rendered in-game
|
||||
"NCO" - no collision
|
||||
|
|
|
@ -131,9 +131,8 @@ struct NiBoundingVolume
|
|||
parent node (unless it's the root), and transformation (location
|
||||
and rotation) relative to it's parent.
|
||||
*/
|
||||
class Node : public Named
|
||||
struct Node : public Named
|
||||
{
|
||||
public:
|
||||
// Node flags. Interpretation depends somewhat on the type of node.
|
||||
unsigned int flags;
|
||||
Transformation trafo;
|
||||
|
|
|
@ -29,11 +29,10 @@
|
|||
namespace Nif
|
||||
{
|
||||
|
||||
class Property : public Named { };
|
||||
struct Property : public Named { };
|
||||
|
||||
class NiTexturingProperty : public Property
|
||||
struct NiTexturingProperty : public Property
|
||||
{
|
||||
public:
|
||||
unsigned short flags{0u};
|
||||
|
||||
// A sub-texture
|
||||
|
@ -96,9 +95,8 @@ public:
|
|||
void post(NIFFile *nif) override;
|
||||
};
|
||||
|
||||
class NiFogProperty : public Property
|
||||
struct NiFogProperty : public Property
|
||||
{
|
||||
public:
|
||||
unsigned short mFlags;
|
||||
float mFogDepth;
|
||||
osg::Vec3f mColour;
|
||||
|
@ -307,8 +305,8 @@ struct S_StencilProperty
|
|||
void read(NIFStream *nif);
|
||||
};
|
||||
|
||||
class NiAlphaProperty : public StructPropT<S_AlphaProperty> { };
|
||||
class NiVertexColorProperty : public StructPropT<S_VertexColorProperty> { };
|
||||
struct NiAlphaProperty : public StructPropT<S_AlphaProperty> { };
|
||||
struct NiVertexColorProperty : public StructPropT<S_VertexColorProperty> { };
|
||||
struct NiStencilProperty : public Property
|
||||
{
|
||||
S_StencilProperty data;
|
||||
|
|
|
@ -120,24 +120,24 @@ public:
|
|||
};
|
||||
|
||||
|
||||
class Node;
|
||||
class Extra;
|
||||
class Property;
|
||||
class NiUVData;
|
||||
class NiPosData;
|
||||
class NiVisData;
|
||||
class Controller;
|
||||
class Named;
|
||||
class NiSkinData;
|
||||
class NiFloatData;
|
||||
struct Node;
|
||||
struct Extra;
|
||||
struct Property;
|
||||
struct NiUVData;
|
||||
struct NiPosData;
|
||||
struct NiVisData;
|
||||
struct Controller;
|
||||
struct Named;
|
||||
struct NiSkinData;
|
||||
struct NiFloatData;
|
||||
struct NiMorphData;
|
||||
class NiPixelData;
|
||||
class NiColorData;
|
||||
struct NiPixelData;
|
||||
struct NiColorData;
|
||||
struct NiKeyframeData;
|
||||
class NiTriStripsData;
|
||||
class NiSkinInstance;
|
||||
class NiSourceTexture;
|
||||
class NiPalette;
|
||||
struct NiTriStripsData;
|
||||
struct NiSkinInstance;
|
||||
struct NiSourceTexture;
|
||||
struct NiPalette;
|
||||
struct NiParticleModifier;
|
||||
struct NiBoolData;
|
||||
struct NiSkinPartition;
|
||||
|
@ -147,7 +147,7 @@ struct NiTransformInterpolator;
|
|||
struct BSShaderTextureSet;
|
||||
struct NiGeometryData;
|
||||
struct BSShaderProperty;
|
||||
class NiAlphaProperty;
|
||||
struct NiAlphaProperty;
|
||||
|
||||
using NodePtr = RecordPtrT<Node>;
|
||||
using ExtraPtr = RecordPtrT<Extra>;
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
|
||||
namespace Nif
|
||||
{
|
||||
class NiGravity;
|
||||
class NiPlanarCollider;
|
||||
class NiSphericalCollider;
|
||||
class NiColorData;
|
||||
struct NiGravity;
|
||||
struct NiPlanarCollider;
|
||||
struct NiSphericalCollider;
|
||||
struct NiColorData;
|
||||
}
|
||||
|
||||
namespace NifOsg
|
||||
|
|
Loading…
Reference in a new issue