Skip to content
Snippets Groups Projects
Commit c11b8b8a authored by Tazpn's avatar Tazpn
Browse files

Update to latest XML.

parent 80d2eb21
No related branches found
No related tags found
No related merge requests found
Showing
with 128 additions and 73 deletions
......@@ -31,16 +31,16 @@ struct MultiTextureElement {
bool hasImage;
/*! Link to the texture image. */
Ref<NiImage > image;
/*! Unkown. Usually 3 but sometimes 0. */
unsigned int unknownInt1;
/*! Unkown. Usually 2. */
unsigned int unknownInt2;
/*! Unkown. Usually 1. */
unsigned int unknownInt3;
/*! Unknown. Usually 0. */
short unknownShort1;
/*! Unknown. Usually -75. */
short unknownShort2;
/*! May be texture clamp mode. */
TexClampMode clamp_;
/*! May be texture filter mode. */
TexFilterMode filter_;
/*! This may be the UV set counting from 1 instead of zero. */
unsigned int uvSet_;
/*! 0? */
unsigned short ps2L;
/*! 0xFFB5? */
unsigned short ps2K;
/*! Unknown. Usually 0 but sometimes 257 */
short unknownShort3;
};
......
......@@ -377,6 +377,18 @@ enum PixelLayout {
ostream & operator<<( ostream & out, PixelLayout const & val );
/*!
* Used by NiGeometryData to control the volatility of the mesh. While they appear
* to be flags they behave as an enum.
*/
enum ConsistencyType {
CT_MUTABLE = 0, /*!< Mutable Mesh */
CT_STATIC = 16384, /*!< Static Mesh */
CT_VOLATILE = 32768, /*!< Volatile Mesh */
};
ostream & operator<<( ostream & out, ConsistencyType const & val );
/*!
* Specifies the availiable texture clamp modes. That is, the behavior of pixels
* outside the range of the texture.
......
......@@ -160,6 +160,12 @@ void NifStream( PixelLayout & val, istream& in, const NifInfo & info = NifInfo()
void NifStream( PixelLayout const & val, ostream& out, const NifInfo & info = NifInfo() );
//---ConsistencyType---//
void NifStream( ConsistencyType & val, istream& in, const NifInfo & info = NifInfo() );
void NifStream( ConsistencyType const & val, ostream& out, const NifInfo & info = NifInfo() );
//---TexClampMode---//
void NifStream( TexClampMode & val, istream& in, const NifInfo & info = NifInfo() );
......
......@@ -19,7 +19,11 @@ namespace Niflib {
class BSPSysArrayEmitter;
typedef Ref<BSPSysArrayEmitter> BSPSysArrayEmitterRef;
/*! Unknown. */
/*!
* Particle emitter that uses a node, its children and subchildren to emit from.
* Emission will be evenly spread along points from nodes leading to their direct
* parents/children only.
*/
class BSPSysArrayEmitter : public NiPSysVolumeEmitter {
public:
/*! Constructor */
......
......@@ -19,7 +19,10 @@ namespace Niflib {
class BSParentVelocityModifier;
typedef Ref<BSParentVelocityModifier> BSParentVelocityModifierRef;
/*! Unknown. */
/*!
* Particle modifier that adds a blend of object space translation and rotation to
* particles born in world space.
*/
class BSParentVelocityModifier : public NiPSysModifier {
public:
/*! Constructor */
......@@ -55,8 +58,8 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
float unknownFloat;
/*! Amount of blending? */
float damping;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
NIFLIB_HIDDEN virtual void Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info );
......
......@@ -19,7 +19,10 @@ namespace Niflib {
class BSWindModifier;
typedef Ref<BSWindModifier> BSWindModifierRef;
/*! Unknown. */
/*!
* Particle Modifier that uses the wind value from the gamedata to alter the path
* of particles.
*/
class BSWindModifier : public NiPSysModifier {
public:
/*! Constructor */
......@@ -55,8 +58,8 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
float unknownFloat;
/*! The amount of force wind will have on particles. */
float strength;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
NIFLIB_HIDDEN virtual void Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info );
......
......@@ -113,7 +113,7 @@ public:
protected:
/*! Base value when curve not defined. */
float base;
/*! Starting offset for the scale data. (USHRT_MAX for no data.) */
/*! Starting offset for the data. (USHRT_MAX for no data.) */
unsigned int offset;
/*! Bias */
float bias;
......
......@@ -164,6 +164,14 @@ public:
*/
NIFLIB_API void Transform( const Matrix44 & transform );
// Consistency Flags
// \return The current value.
ConsistencyType GetConsistencyFlags() const;
// Consistency Flags
// \param[in] value The new value.
void SetConsistencyFlags( const ConsistencyType & value );
//--END CUSTOM CODE--//
protected:
/*! Name of this object. */
......@@ -234,8 +242,8 @@ protected:
* require you to flip the second coordinate.
*/
vector< vector<TexCoord > > uvSets;
/*! Unknown. Usually zero. */
unsigned short unknownShort2;
/*! Consistency Flags */
ConsistencyType consistencyFlags;
/*! Unknown. */
Ref<NiObject > unknownLink1;
public:
......
......@@ -99,10 +99,10 @@ protected:
string fileName;
/*! Link to the internally stored image data. */
Ref<NiRawImageData > imageData;
/*! Unknown. Often seems to be 7. */
unsigned int unknownInt1;
/*! Unknown. Perhaps some flags? Two shorts? Default seems to be 0x43008000 */
unsigned int unknownInt2;
/*! Unknown. Often seems to be 7. Perhaps m_uiMipLevels? */
unsigned int unknownInt;
/*! Unknown. Perhaps fImageScale? */
float unknownFloat;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
NIFLIB_HIDDEN virtual void Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info );
......
......@@ -21,7 +21,10 @@ class NiNode;
class NiPSysBombModifier;
typedef Ref<NiPSysBombModifier> NiPSysBombModifierRef;
/*! Unknown. */
/*!
* Particle modifier that uses a NiNode to use as a "Bomb Object" to alter the path
* of particles.
*/
class NiPSysBombModifier : public NiPSysModifier {
public:
/*! Constructor */
......@@ -57,17 +60,17 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Link to a node. Exact function unknown. */
/*! Link to a NiNode for bomb to function. */
NiNode * bombObject;
/*! Unknown. */
/*! Orientation of bomb object. */
Vector3 bombAxis;
/*! Unknown. */
/*! Falloff rate of the bomb object. */
float decay;
/*! Unknown. */
/*! DeltaV / Strength? */
float deltaV;
/*! Unknown. */
/*! Decay type */
DecayType decayType;
/*! Unknown. */
/*! Shape/symmetry of the bomb object. */
SymmetryType symmetryType;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -19,7 +19,7 @@ namespace Niflib {
class NiPSysBoxEmitter;
typedef Ref<NiPSysBoxEmitter> NiPSysBoxEmitterRef;
/*! Unknown particle modifier. */
/*! Particle emitter that uses points within a defined Box shape to emit from.. */
class NiPSysBoxEmitter : public NiPSysVolumeEmitter {
public:
/*! Constructor */
......@@ -55,11 +55,11 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Width of the boxes to emit? */
/*! Defines the Width of the box area. */
float width;
/*! Height of the boxes to emit? */
/*! Defines the Height of the box area. */
float height;
/*! Depth of the boxes to emit? */
/*! Defines the Depth of the box area. */
float depth;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -62,11 +62,11 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
/*! Defines amount of bounce the collider object has. */
float bounce;
/*! Unknown. */
bool spawnOnCollide;
/*! Unknown. */
/*! Kill particles on impact if set to yes. */
bool dieOnCollide;
/*! Link to NiPSysSpawnModifier object? */
Ref<NiPSysSpawnModifier > spawnModifier;
......@@ -74,7 +74,10 @@ protected:
NiObject * parent;
/*! The next collider. */
Ref<NiObject > nextCollider;
/*! Link to a NiNode? */
/*!
* Links to a NiNode that will define where in object space the collider is
* located/oriented.
*/
Ref<NiNode > colliderObject;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -24,7 +24,10 @@ class NiPSysPlanarCollider;
class NiPSysColliderManager;
typedef Ref<NiPSysColliderManager> NiPSysColliderManagerRef;
/*! Unknown. */
/*!
* Particle modifier that adds a defined shape to act as a collision object for
* particles to interact with.
*/
class NiPSysColliderManager : public NiPSysModifier {
public:
/*! Constructor */
......@@ -60,7 +63,7 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Link to NiPSysPlanarCollider. */
/*! Link to a NiPSysPlanarCollider or NiPSysSphericalCollider. */
Ref<NiPSysPlanarCollider > collider;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -24,7 +24,10 @@ class NiColorData;
class NiPSysColorModifier;
typedef Ref<NiPSysColorModifier> NiPSysColorModifierRef;
/*! Unknown particle modifier. */
/*!
* Particle modifier that adds keyframe data to modify color/alpha values of
* particles over time.
*/
class NiPSysColorModifier : public NiPSysModifier {
public:
/*! Constructor */
......
......@@ -19,7 +19,7 @@ namespace Niflib {
class NiPSysCylinderEmitter;
typedef Ref<NiPSysCylinderEmitter> NiPSysCylinderEmitterRef;
/*! Unknown. */
/*! Particle emitter that uses points within a defined Cylinder shape to emit from. */
class NiPSysCylinderEmitter : public NiPSysVolumeEmitter {
public:
/*! Constructor */
......@@ -55,9 +55,9 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Radius of cylinders to emit? */
/*! Radius of the cylinder shape. */
float radius;
/*! Height of cylinders to emit? */
/*! Height of the cylinders shape. */
float height;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -19,7 +19,7 @@ namespace Niflib {
class NiPSysEmitter;
typedef Ref<NiPSysEmitter> NiPSysEmitterRef;
/*! A particle emitter modifier? */
/*! A particle emitter? */
class NiPSysEmitter : public NiPSysModifier {
public:
/*! Constructor */
......@@ -55,27 +55,27 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
/*! Speed / Inertia of particle movement. */
float speed;
/*! Unknown. */
/*! Adds an amount of randomness to Speed. */
float speedVariation;
/*! Unknown. */
/*! Declination / First axis. */
float declination;
/*! Unknown. */
/*! Declination randomness / First axis. */
float declinationVariation;
/*! Unknown. */
/*! Planar Angle / Second axis. */
float planarAngle;
/*! Unknown. */
/*! Planar Angle randomness / Second axis . */
float planarAngleVariation;
/*! Unknown. */
/*! Defines color of a birthed particle. */
Color4 initialColor;
/*! Unknown. */
/*! Size of a birthed particle. */
float initialRadius;
/*! Unknown. */
/*! Particle Radius randomness. */
float radiusVariation;
/*! Unknown. */
/*! Duration until a particle dies. */
float lifeSpan;
/*! Unknown. */
/*! Adds randomness to Life Span. */
float lifeSpanVariation;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -21,7 +21,10 @@ class NiNode;
class NiPSysGravityModifier;
typedef Ref<NiPSysGravityModifier> NiPSysGravityModifierRef;
/*! Unknown particle system modifier. */
/*!
* Adds gravity to a particle system, when linked to a NiNode to use as a Gravity
* Object.
*/
class NiPSysGravityModifier : public NiPSysModifier {
public:
/*! Constructor */
......@@ -57,19 +60,19 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Refers to a NiNode. */
/*! Refers to a NiNode for gravity location. */
NiNode * gravityObject;
/*! Unknown. */
/*! Orientation of gravity. */
Vector3 gravityAxis;
/*! Unknown. */
/*! Falloff range. */
float decay;
/*! Unknown. */
/*! The strength of gravity. */
float strength;
/*! The type of force? */
/*! Planar or Spherical type */
ForceType forceType;
/*! Unknown. */
/*! Adds a degree of randomness. */
float turbulence;
/*! Unknown. */
/*! Range for turbulence. */
float turbulenceScale;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
......@@ -19,7 +19,11 @@ namespace Niflib {
class NiPSysGrowFadeModifier;
typedef Ref<NiPSysGrowFadeModifier> NiPSysGrowFadeModifierRef;
/*! Unknown particle system modifier. */
/*!
* Particle modifier that controls the time it takes to grow a particle from Size=0
* to the specified Size in the emitter, and then back to 0. This modifer has no
* control over alpha settings.
*/
class NiPSysGrowFadeModifier : public NiPSysModifier {
public:
/*! Constructor */
......@@ -55,11 +59,11 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
/*! Time in seconds to fade in. */
float growTime;
/*! Unknown. */
unsigned short growGeneration;
/*! Unknown. */
/*! Time in seconds to fade out. */
float fadeTime;
/*! Unknown. */
unsigned short fadeGeneration;
......
......@@ -24,7 +24,7 @@ class NiTriBasedGeom;
class NiPSysMeshEmitter;
typedef Ref<NiPSysMeshEmitter> NiPSysMeshEmitterRef;
/*! Unknown. */
/*! Particle emitter that uses points on a specified mesh to emit from. */
class NiPSysMeshEmitter : public NiPSysEmitter {
public:
/*! Constructor */
......
......@@ -19,7 +19,7 @@ namespace Niflib {
class NiPSysPlanarCollider;
typedef Ref<NiPSysPlanarCollider> NiPSysPlanarColliderRef;
/*! Unknown. */
/*! Particle Collider object which particles will interact with. */
class NiPSysPlanarCollider : public NiPSysCollider {
public:
/*! Constructor */
......@@ -55,13 +55,13 @@ public:
//--BEGIN MISC CUSTOM CODE--//
//--END CUSTOM CODE--//
protected:
/*! Unknown. */
/*! Defines the width of the plane. */
float width;
/*! Unknown. */
/*! Defines the height of the plane. */
float height;
/*! Unknown. */
/*! Defines Orientation. */
Vector3 xAxis;
/*! Unknown. */
/*! Defines Orientation. */
Vector3 yAxis;
public:
/*! NIFLIB_HIDDEN function. For internal use only. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment