All pastes #504905 Raw Edit

Unnamed

public c v1 · immutable
·published 2007-05-23 10:17 UTC
rendered paste body
// hex structure library for NIF Format 0x14000005#pragma maxarray(65536); // Increase the max array length#pragma enumsize(4)enum AlphaFormat {  ALPHA_NONE = 0,  ALPHA_BINARY = 1,  ALPHA_SMOOTH = 2,  ALPHA_DEFAULT = 3};#pragma enumsize(4)enum ApplyMode {  APPLY_REPLACE = 0,  APPLY_DECAL = 1,  APPLY_MODULATE = 2,  APPLY_HILIGHT = 3,  APPLY_HILIGHT2 = 4};#pragma enumsize(4)enum TexType {  BASE_MAP = 0,  DARK_MAP = 1,  DETAIL_MAP = 2,  GLOSS_MAP = 3,  GLOW_MAP = 4,  BUMP_MAP = 5,  DECAL_0_MAP = 6,  DECAL_1_MAP = 7};#pragma enumsize(4)enum KeyType {  LINEAR_KEY = 1,  QUADRATIC_KEY = 2,  TBC_KEY = 3,  XYZ_ROTATION_KEY = 4,  UNKNOWN_KEY = 5};#pragma enumsize(4)enum LightMode {  LIGHT_MODE_EMISSIVE = 0,  LIGHT_MODE_EMI_AMB_DIF = 1};#pragma enumsize(4)enum HavokMaterial {  HAV_MAT_STONE = 0,  HAV_MAT_CLOTH = 1,  HAV_MAT_DIRT = 2,  HAV_MAT_GLASS = 3,  HAV_MAT_GRASS = 4,  HAV_MAT_METAL = 5,  HAV_MAT_ORGANIC = 6,  HAV_MAT_SKIN = 7,  HAV_MAT_WATER = 8,  HAV_MAT_WOOD = 9,  HAV_MAT_HEAVY_STONE = 10,  HAV_MAT_HEAVY_METAL = 11,  HAV_MAT_HEAVY_WOOD = 12,  HAV_MAT_CHAIN = 13,  HAV_MAT_SNOW = 14,  HAV_MAT_STONE_STAIRS = 15,  HAV_MAT_CLOTH_STAIRS = 16,  HAV_MAT_DIRT_STAIRS = 17,  HAV_MAT_GLASS_STAIRS = 18,  HAV_MAT_GRASS_STAIRS = 19,  HAV_MAT_METAL_STAIRS = 20,  HAV_MAT_ORGANIC_STAIRS = 21,  HAV_MAT_SKIN_STAIRS = 22,  HAV_MAT_WATER_STAIRS = 23,  HAV_MAT_WOOD_STAIRS = 24,  HAV_MAT_HEAVY_STONE_STAIRS = 25,  HAV_MAT_HEAVY_METAL_STAIRS = 26,  HAV_MAT_HEAVY_WOOD_STAIRS = 27,  HAV_MAT_CHAIN_STAIRS = 28,  HAV_MAT_SNOW_STAIRS = 29,  HAV_MAT_ELEVATOR = 30};#pragma enumsize(1)enum OblivionLayer {  OL_UNIDENTIFIED = 0,  OL_STATIC = 1,  OL_ANIM_STATIC = 2,  OL_TRANSPARENT = 3,  OL_CLUTTER = 4,  OL_WEAPON = 5,  OL_PROJECTILE = 6,  OL_SPELL = 7,  OL_BIPED = 8,  OL_TREES = 9,  OL_PROPS = 10,  OL_WATER = 11,  OL_TRIGGER = 12,  OL_TERRAIN = 13,  OL_TRAP = 14,  OL_NONCOLLIDABLE = 15,  OL_CLOUD_TRAP = 16,  OL_GROUND = 17,  OL_PORTAL = 18,  OL_STAIRS = 19,  OL_CHAR_CONTROLLER = 20,  OL_AVOID_BOX = 21,  OL_UNKNOWN1 = 22,  OL_UNKNOWN2 = 23,  OL_CAMERA_PICK = 24,  OL_ITEM_PICK = 25,  OL_LINE_OF_SIGHT = 26,  OL_PATH_PICK = 27,  OL_CUSTOM_PICK_1 = 28,  OL_CUSTOM_PICK_2 = 29,  OL_SPELL_EXPLOSION = 30,  OL_DROPPING_PICK = 31,  OL_OTHER = 32,  OL_HEAD = 33,  OL_BODY = 34,  OL_SPINE1 = 35,  OL_SPINE2 = 36,  OL_L_UPPER_ARM = 37,  OL_L_FOREARM = 38,  OL_L_HAND = 39,  OL_L_THIGH = 40,  OL_L_CALF = 41,  OL_L_FOOT = 42,  OL_R_UPPER_ARM = 43,  OL_R_FOREARM = 44,  OL_R_HAND = 45,  OL_R_THIGH = 46,  OL_R_CALF = 47,  OL_R_FOOT = 48,  OL_TAIL = 49,  OL_SIDE_WEAPON = 50,  OL_SHEILD = 51,  OL_QUIVER = 52,  OL_BACK_WEAPON = 53,  OL_BACK_WEAPON2 = 54,  OL_PONYTAIL = 55,  OL_WING = 56,  OL_NULL = 57};#pragma enumsize(4)enum MipMapFormat {  MIP_FMT_NO = 0,  MIP_FMT_YES = 1,  MIP_FMT_DEFAULT = 2};#pragma enumsize(4)enum PixelFormat {  PX_FMT_RGB8 = 0,  PX_FMT_RGBA8 = 1,  PX_FMT_PAL8 = 2};#pragma enumsize(4)enum PixelLayout {  PIX_LAY_PALETTISED = 0,  PIX_LAY_HIGH_COLOR_16 = 1,  PIX_LAY_TRUE_COLOR_32 = 2,  PIX_LAY_COMPRESSED = 3,  PIX_LAY_BUMPMAP = 4,  PIX_LAY_DEFAULT = 5};#pragma enumsize(4)enum TexClampMode {  CLAMP_S_CLAMP_T = 0,  CLAMP_S_WRAP_T = 1,  WRAP_S_CLAMP_T = 2,  WRAP_S_WRAP_T = 3};#pragma enumsize(4)enum TexFilterMode {  FILTER_NEAREST = 0,  FILTER_BILERP = 1,  FILTER_TRILERP = 2,  FILTER_NEAREST_MIPNEAREST = 3,  FILTER_NEAREST_MIPLERP = 4,  FILTER_BILERP_MIPNEAREST = 5};#pragma enumsize(4)enum VertMode {  VERT_MODE_SRC_IGNORE = 0,  VERT_MODE_SRC_EMISSIVE = 1,  VERT_MODE_SRC_AMB_DIF = 2};#pragma enumsize(4)enum CycleType {  CYCLE_LOOP = 0,  CYCLE_REVERSE = 1,  CYCLE_CLAMP = 2};#pragma enumsize(4)enum FieldType {  FIELD_WIND = 0,  FIELD_POINT = 1};#pragma enumsize(2)enum BillboardMode {  ALWAYS_FACE_CAMERA = 0,  ROTATE_ABOUT_UP = 1,  RIGID_FACE_CAMERA = 2,  ALWAYS_FACE_CENTER = 3,  RIGID_FACE_CENTER = 4};#pragma enumsize(4)enum CompareMode {  TEST_NEVER = 0,  TEST_LESS = 1,  TEST_EQUAL = 2,  TEST_LESSEQUAL = 3,  TEST_GREATER = 4,  TEST_GREATEREQUAL = 5,  TEST_ALWAYS = 6};#pragma enumsize(4)enum StencilAction {  ACTION_KEEP = 0,  ACTION_ZERO = 1,  ACTION_REPLACE = 2,  ACTION_INCREMENT = 3,  ACTION_DECREMENT = 4,  ACTION_INVERT = 5};#pragma enumsize(4)enum FaceDrawMode {  DRAW_CCW_OR_BOTH = 0,  DRAW_CCW = 1,  DRAW_CW = 2,  DRAW_BOTH = 3};#pragma enumsize(1)enum MotionSystem {  MO_SYS_BOX = 4,  MO_SYS_KEYFRAMED = 7};#pragma enumsize(1)enum MotionQuality {  MO_QUAL_MOVING = 0,  MO_QUAL_FIXED = 1,  MO_QUAL_KEYFRAMED = 2,  MO_QUAL_MOVING2 = 3,  MO_QUAL_MOVING3 = 4,  MO_QUAL_CRITICAL = 5,  MO_QUAL_BULLET = 6,  MO_QUAL_USER = 7,  MO_QUAL_NULL = 8};#pragma enumsize(4)enum ForceType {  FORCE_PLANAR = 0,  FORCE_SPHERICAL = 1,  FORCE_UNKNOWN = 2};struct ByteArray {  unsigned __int32   dataSize;  unsigned __int8    data[dataSize];};struct Color3 {  double             r;  double             g;  double             b;};struct ByteColor3 {  unsigned __int8    r;  unsigned __int8    g;  unsigned __int8    b;};struct Color4 {  double             r;  double             g;  double             b;  double             a;};struct ByteColor4 {  unsigned __int8    r;  unsigned __int8    g;  unsigned __int8    b;  unsigned __int8    a;};struct FilePath {  unsigned __int32   length;  char               value[length];};struct Footer {  unsigned __int32   numRoots;  signed   __int32   roots[numRoots];};struct LODRange {  double             nearExtent;  double             farExtent;};struct MatchGroup {  unsigned __int16   numVertices;  unsigned __int16   vertexIndices[numVertices];};struct Matrix22 {  double             m11;  double             m21;  double             m12;  double             m22;};struct Matrix33 {  double             m11;  double             m21;  double             m31;  double             m12;  double             m22;  double             m32;  double             m13;  double             m23;  double             m33;};struct Matrix44 {  double             m11;  double             m21;  double             m31;  double             m41;  double             m12;  double             m22;  double             m32;  double             m42;  double             m13;  double             m23;  double             m33;  double             m43;  double             m14;  double             m24;  double             m34;  double             m44;};struct MipMap {  unsigned __int32   width;  unsigned __int32   height;  unsigned __int32   offset;};struct NodeGroup {  unsigned __int32   numNodes;  signed   __int32   nodes[numNodes];};struct Quaternion {  double             w;  double             x;  double             y;  double             z;};struct QuaternionXYZW {  double             x;  double             y;  double             z;  double             w;};struct ShortString {  unsigned __int8    length;  char               value[length];};struct SkinShape {  signed   __int32   shape;  signed   __int32   skinInstance;};struct SkinShapeGroup {  unsigned __int32   numLinkPairs;  SkinShape          linkPairs[numLinkPairs];};struct SkinWeight {  unsigned __int16   index;  double             weight;};struct string {  unsigned __int32   length;  char               value[length];};struct AVObject {  String             name;  signed   __int32   avObject;};struct ControllerLink {  signed   __int32   interpolator;  signed   __int32   controller;  unsigned __int8    priority?;  unsigned __int8    priority?;  signed   __int32   stringPalette;  unsigned __int32   nodeNameOffset;  unsigned __int32   propertyTypeOffset;  unsigned __int32   controllerTypeOffset;  unsigned __int32   variableOffset1;  unsigned __int32   variableOffset2;};struct ExportInfo {  ShortString        creator;  ShortString        exportInfo1;  ShortString        exportInfo2;};struct Header {  HeaderString       headerString;  FileVersion        version;  unsigned __int8    endianType;  unsigned __int32   userVersion;  unsigned __int32   numBlocks;  unsigned __int32   userVersion2;  ExportInfo         exportInfo;  unsigned __int16   numBlockTypes;  String             blockTypes[numBlockTypes];  unsigned __int16   blockTypeIndex[numBlocks];  unsigned __int32   unknownInt2;};struct StringPalette {  String             palette;  unsigned __int32   length;};struct TBC {  double             t;  double             b;  double             c;};struct Key_Byte {  double             time;  unsigned __int8    value;  unsigned __int8    forward;  unsigned __int8    backward;  TBC                tbc;};struct Key_String {  double             time;  String             value;  String             forward;  String             backward;  TBC                tbc;};struct Key_Quaternion {  double             time;  Quaternion         value;  Quaternion         forward;  Quaternion         backward;  TBC                tbc;};struct Key_Vector3 {  double             time;  Vector3            value;  Vector3            forward;  Vector3            backward;  TBC                tbc;};struct Key_Float {  double             time;  double             value;  double             forward;  double             backward;  TBC                tbc;};struct Key_Color4 {  double             time;  Color4             value;  Color4             forward;  Color4             backward;  TBC                tbc;};struct KeyGroup_Byte {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_Byte           keys[numKeys];};struct KeyGroup_String {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_String         keys[numKeys];};struct KeyGroup_Quaternion {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_Quaternion     keys[numKeys];};struct KeyGroup_Vector3 {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_Vector3        keys[numKeys];};struct KeyGroup_Float {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_Float          keys[numKeys];};struct KeyGroup_Color4 {  unsigned __int32   numKeys;  KeyType            interpolation;  Key_Color4         keys[numKeys];};struct QuatKey_Byte {  double             time;  unsigned __int8    value;  TBC                tbc;};struct QuatKey_String {  double             time;  String             value;  TBC                tbc;};struct QuatKey_Quaternion {  double             time;  Quaternion         value;  TBC                tbc;};struct QuatKey_Vector3 {  double             time;  Vector3            value;  TBC                tbc;};struct QuatKey_Float {  double             time;  double             value;  TBC                tbc;};struct QuatKey_Color4 {  double             time;  Color4             value;  TBC                tbc;};struct RotationKeyArray_Byte {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_Byte       keys[numKeys];};struct RotationKeyArray_String {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_String     keys[numKeys];};struct RotationKeyArray_Quaternion {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_Quaternion keys[numKeys];};struct RotationKeyArray_Vector3 {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_Vector3    keys[numKeys];};struct RotationKeyArray_Float {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_Float      keys[numKeys];};struct RotationKeyArray_Color4 {  unsigned __int32   numKeys;  KeyType            keyType;  QuatKey_Color4     keys[numKeys];};struct TexCoord {  double             u;  double             v;};struct TexDesc {  signed   __int32   source;  TexClampMode       clampMode;  TexFilterMode      filterMode;  unsigned __int32   uvSet;  unsigned __int8    hasTextureTransform;  TexCoord           translation;  TexCoord           tiling;  double             wRotation;  unsigned __int32   transformType?;  TexCoord           centerOffset;};struct ShaderTexDesc {  unsigned __int8    isUsed;  TexDesc            textureData;  unsigned __int32   unknownInt;};struct TexSource {  unsigned __int8    useExternal;  String             fileName;  signed   __int32   unknownLink;  String             originalFileName?;  signed   __int32   pixelData;};struct Triangle {  unsigned __int16   v1;  unsigned __int16   v2;  unsigned __int16   v3;};struct SkinPartition {  unsigned __int16   numVertices;  unsigned __int16   numTriangles;  unsigned __int16   numBones;  unsigned __int16   numStrips;  unsigned __int16   numWeightsPerVertex;  unsigned __int16   bones[numBones];  unsigned __int8    hasVertexMap;  unsigned __int16   vertexMap[numVertices];  unsigned __int8    hasVertexWeights;  double             vertexWeights[numVertices * numWeightsPerVertex];  unsigned __int16   stripLengths[numStrips];  unsigned __int8    hasStrips;  unsigned __int16   strips[numStrips * stripLengths];  Triangle           triangles[numTriangles];  unsigned __int8    hasBoneIndices;  unsigned __int8    boneIndices[numVertices * numWeightsPerVertex];};struct Vector3 {  double             x;  double             y;  double             z;};struct BoundingBox {  unsigned __int32   unknownInt;  Vector3            translation;  Matrix33           rotation;  Vector3            radius;};struct FurniturePosition {  Vector3            offset;  unsigned __int16   orientation;  unsigned __int8    positionRef1;  unsigned __int8    positionRef2;};struct hkTriangle {  Triangle           triangle;  unsigned __int16   unknownShort;  Vector3            normal;};struct Morph {  String             frameName;  Vector3            vectors[arg];};struct Particle {  Vector3            velocity;  Vector3            unknownVector;  double             lifetime;  double             lifespan;  double             timestamp;  unsigned __int16   unknownShort;  unsigned __int16   vertexId;};struct SkinData {  Matrix33           rotation;  Vector3            translation;  double             scale;  Vector3            boundingSphereOffset;  double             boundingSphereRadius;  unsigned __int16   numVertices;  SkinWeight         vertexWeights[numVertices];};struct Vector4 {  double             x;  double             y;  double             z;  double             w;};struct Sphere {  Vector3            center;  double             radius;};struct OblivionColFilter {  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;};struct OblivionSubShape {  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;  unsigned __int32   vertexCount(?);  HavokMaterial      material;};struct RagdollDescriptor {  Vector4            pivotA;  Vector4            planeA;  Vector4            twistA;  Vector4            pivotB;  Vector4            planeB;  Vector4            twistB;  double             coneMinAngle;  double             planeMinAngle;  double             planeMaxAngle;  double             twistMinAngle;  double             twistMaxAngle;  double             maxFriction;};struct LimitedHingeDescriptor {  Vector4            pivotA;  Vector4            axleA;  Vector4            perp2axleina1;  Vector4            perp2axleina2;  Vector4            pivotB;  Vector4            axleB;  Vector4            perp2axleinb2;  double             minAngle;  double             maxAngle;  double             maxFriction;};struct OldSkinData {  double             vertexWeight;  unsigned __int16   vertexIndex;  Vector3            unknownVector;};struct MultiTextureElement {  unsigned __int8    hasImage;  signed   __int32   image;  unsigned __int32   unknownInt1;  unsigned __int32   unknownInt2;  unsigned __int32   unknownInt3;  signed   __int16   unknownShort1;  signed   __int16   unknownShort2;  signed   __int16   unknownShort3;};struct NiObject {};struct AParticleModifier {  signed   __int32   nextModifier;  signed   __int32   controller;};struct NiPSysCollider {  double             bounce;  unsigned __int8    spawnOnCollide;  unsigned __int8    dieOnCollide;  signed   __int32   spawnModifier;  signed   __int32   parent;  signed   __int32   nextCollider;  signed   __int32   colliderObject;};struct bhkRefObject {};struct bhkSerializable {};struct bhkWorldObject {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;};struct bhkPhantom {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;};struct bhkShapePhantom {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;};struct bhkSimpleShapePhantom {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;  double             unkownFloats[7];  double             unknownFloats2[3 * 5];  double             unknownFloat;};struct bhkEntity {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;};struct bhkRigidBody {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;  double             unknown5Floats[5];  unsigned __int16   unknown4Shorts[4];  OblivionLayer      layerCopy;  unsigned __int8    colFilterCopy;  unsigned __int16   unknown7Shorts[7];  Vector3            translation;  double             unknownFloat00;  QuaternionXYZW     rotation;  Vector3            linearVelocity;  double             unknownFloat01;  Vector3            angularVelocity;  double             unknownFloat02;  double             inertia[12];  Vector3            center;  double             unknownFloat03;  double             mass;  double             linearDamping;  double             angularDamping;  double             friction;  double             restitution;  double             maxLinearVelocity;  double             maxAngularVelocity;  double             penetrationDepth;  MotionSystem       motionSystem;  unsigned __int8    unknownByte1;  unsigned __int8    unknownByte2;  MotionQuality      qualityType;  unsigned __int32   unknownInt6;  unsigned __int32   unknownInt7;  unsigned __int32   unknownInt8;  unsigned __int32   numConstraints;  signed   __int32   constraints[numConstraints];  unsigned __int32   unknownInt6;};struct bhkRigidBodyT {  signed   __int32   shape;  OblivionLayer      layer;  unsigned __int8    colFilter;  unsigned __int16   unknownShort;  double             unknown5Floats[5];  unsigned __int16   unknown4Shorts[4];  OblivionLayer      layerCopy;  unsigned __int8    colFilterCopy;  unsigned __int16   unknown7Shorts[7];  Vector3            translation;  double             unknownFloat00;  QuaternionXYZW     rotation;  Vector3            linearVelocity;  double             unknownFloat01;  Vector3            angularVelocity;  double             unknownFloat02;  double             inertia[12];  Vector3            center;  double             unknownFloat03;  double             mass;  double             linearDamping;  double             angularDamping;  double             friction;  double             restitution;  double             maxLinearVelocity;  double             maxAngularVelocity;  double             penetrationDepth;  MotionSystem       motionSystem;  unsigned __int8    unknownByte1;  unsigned __int8    unknownByte2;  MotionQuality      qualityType;  unsigned __int32   unknownInt6;  unsigned __int32   unknownInt7;  unsigned __int32   unknownInt8;  unsigned __int32   numConstraints;  signed   __int32   constraints[numConstraints];  unsigned __int32   unknownInt6;};struct bhkConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;};struct bhkLimitedHingeConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  LimitedHingeDescriptor limitedHinge;};struct bhkMalleableConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  unsigned __int32   type;  unsigned __int32   unknownInt2;  signed   __int32   unknownLink1;  signed   __int32   unknownLink2;  unsigned __int32   unknownInt3;  RagdollDescriptor  ragdoll;  LimitedHingeDescriptor limitedHinge;  double             tau;  double             damping;};struct bhkStiffSpringConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  Vector4            pivotA;  Vector4            pivotB;  double             length;};struct bhkRagdollConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  RagdollDescriptor  ragdoll;};struct bhkPrismaticConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  Vector4            unknownVectors[8];  double             unknownFloats2[3];};struct bhkHingeConstraint {  unsigned __int32   numEntities;  signed   __int32   entities[numEntities];  unsigned __int32   priority;  Vector4            pivotA;  Vector4            perp2axleina1;  Vector4            perp2axleina2;  Vector4            pivotB;  Vector4            axleB;};struct bhkShape {};struct bhkTransformShape {  signed   __int32   shape;  HavokMaterial      material;  double             unknownFloat1;  unsigned __int8    unknown8Bytes[8];  Matrix44           transform;};struct bhkSphereRepShape {  HavokMaterial      material;  double             radius;};struct bhkConvexShape {  HavokMaterial      material;  double             radius;};struct bhkSphereShape {  HavokMaterial      material;  double             radius;};struct bhkCapsuleShape {  HavokMaterial      material;  double             radius;  unsigned __int16   unknownShort1;  unsigned __int16   unknownShort2;  unsigned __int16   unknownShort3;  unsigned __int16   unknownShort4;  Vector3            firstPoint;  double             radius1;  Vector3            secondPoint;  double             radius2;};struct bhkBoxShape {  HavokMaterial      material;  double             radius;  unsigned __int16   unknownShort1;  unsigned __int16   unknownShort2;  unsigned __int16   unknownShort3;  unsigned __int16   unknownShort4;  Vector3            dimensions;  double             min.Size;};struct bhkConvexVerticesShape {  HavokMaterial      material;  double             radius;  double             unknown6Floats[6];  unsigned __int32   numVertices;  Vector4            vertices[numVertices];  unsigned __int32   numNormals;  Vector4            normals[numNormals];};struct bhkConvexTransformShape {  signed   __int32   shape;  HavokMaterial      material;  double             unknownFloat1;  unsigned __int8    unknown8Bytes[8];  Matrix44           transform;};struct bhkMultiSphereShape {  HavokMaterial      material;  double             radius;  double             unknownFloat1;  double             unknownFloat2;  unsigned __int32   numSpheres;  Sphere             spheres[numSpheres];};struct bhkBvTreeShape {};struct bhkMoppBvTreeShape {  signed   __int32   shape;  HavokMaterial      material;  unsigned __int8    unknown8Bytes[8];  double             unknownFloat;  unsigned __int32   moppDataSize;  Vector3            objectCorner;  double             scalingFactor;  unsigned __int8    moppData[moppDataSize];};struct bhkShapeCollection {};struct bhkListShape {  unsigned __int32   numSubShapes;  signed   __int32   subShapes[numSubShapes];  HavokMaterial      material;  double             unknownFloats[6];  unsigned __int32   numUnknownInts;  unsigned __int32   unknownInts[numUnknownInts];};struct bhkPackedNiTriStripsShape {  unsigned __int16   numSubShapes;  OblivionSubShape   subShapes[numSubShapes];  double             unknownFloats[9];  double             scale;  double             unknownFloats2[3];  signed   __int32   data;};struct bhkNiTriStripsShape {  HavokMaterial      material;  double             unknownFloat1;  unsigned __int32   unknownInt1;  unsigned __int32   unknownInts1[4];  unsigned __int32   unknownInt2;  Vector3            scale;  unsigned __int32   unknownInt3;  unsigned __int32   numStripsData;  signed   __int32   stripsData[numStripsData];  unsigned __int32   numDataLayers;  OblivionColFilter  dataLayers[numDataLayers];};struct NiExtraData {  String             name;};struct NiInterpolator {};struct NiKeyBasedInterpolator {};struct NiFloatInterpolator {  double             floatValue;  signed   __int32   data;};struct NiTransformInterpolator {  Vector3            translation;  Quaternion         rotation;  double             scale;  signed   __int32   data;};struct NiPoint3Interpolator {  Vector3            point3Value;  signed   __int32   data;};struct NiPathInterpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;  double             unknownFloat1;  double             unknownFloat2;  unsigned __int16   unknownShort2;  signed   __int32   posData;  signed   __int32   floatData;};struct NiBoolInterpolator {  unsigned __int8    boolValue;  signed   __int32   data;};struct NiBoolTimelineInterpolator {  unsigned __int8    boolValue;  signed   __int32   data;};struct NiBlendInterpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;};struct NiBSplineInterpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;};struct NiObjectNET {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;};struct NiCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;};struct NiCollisionData {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;  unsigned __int32   unknownInt1;  unsigned __int8    unknownByte;  unsigned __int32   collisionType;  unsigned __int32   unknownInt2;  Vector3            unknownVector;  double             unknownFloat1[8];  double             unknownFloat2[15];};struct bhkNiCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;};struct bhkCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;};struct bhkBlendCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;  double             unknownFloat1;  double             unknownFloat2;};struct bhkPCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;};struct bhkSPCollisionObject {  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   body;};struct NiAVObject {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;};struct NiDynamicEffect {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];};struct NiLight {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  double             dimmer;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;};struct NiProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;};struct NiPSysModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;};struct NiPSysEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;};struct NiPSysVolumeEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  signed   __int32   emitterObject;};struct NiTimeController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;};struct NiInterpController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;};struct NiMultiTargetTransformController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int16   numExtraTargets;  signed   __int32   extraTargets[numExtraTargets];};struct NiGeomMorpherController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int16   unknown;  signed   __int32   data;  unsigned __int8    unknownByte;  unsigned __int32   numInterpolators;  signed   __int32   interpolators[numInterpolators];  unsigned __int32   numUnknownInts;  unsigned __int32   unknownInts[numUnknownInts];};struct NiSingleInterpController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiTransformController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiPSysModifierCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;  signed   __int32   visibilityInterpolator;};struct NiPSysModifierBoolCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysModifierActiveCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysModifierFloatCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterDeclinationCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterDeclinationVarCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterInitialRadiusCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterLifeSpanCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysEmitterSpeedCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiPSysGravityStrengthCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             modifierName;};struct NiFloatInterpController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiFlipController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  unsigned __int32   textureSlot;  unsigned __int32   numSources;  signed   __int32   sources[numSources];};struct NiAlphaController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiTextureTransformController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  unsigned __int8    unknown2;  TexType            textureSlot;  unsigned __int32   operation;};struct NiLightDimmerController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiBoolInterpController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiVisController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiPoint3InterpController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  unsigned __int16   targetColor;};struct NiMaterialColorController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  unsigned __int16   targetColor;};struct NiLightColorController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  unsigned __int16   targetColor;};struct NiExtraDataController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;};struct NiFloatExtraDataController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  String             controllerData;};struct NiBoneLODController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int32   unknownInt1;  unsigned __int32   numNodeGroups;  unsigned __int32   numNodeGroups2;  NodeGroup          nodeGroups[numNodeGroups];};struct NiBSBoneLODController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int32   unknownInt1;  unsigned __int32   numNodeGroups;  unsigned __int32   numNodeGroups2;  NodeGroup          nodeGroups[numNodeGroups];};struct NiGeometry {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiTriBasedGeom {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiGeometryData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;};struct NiTriBasedGeomData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int16   numTriangles;};struct bhkBlendController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int32   unknownInt;};struct BSBound {  String             name;  Vector3            center;  Vector3            dimensions;};struct BSFurnitureMarker {  String             name;  unsigned __int32   numPositions;  FurniturePosition  positions[numPositions];};struct BSParentVelocityModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             unknownFloat;};struct BSPSysArrayEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  signed   __int32   emitterObject;};struct BSWindModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             unknownFloat;};struct hkPackedNiTriStripsData {  unsigned __int32   numTriangles;  hkTriangle         triangles[numTriangles];  unsigned __int32   numVertices;  Vector3            vertices[numVertices];};struct NiAlphaProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  unsigned __int8    threshold;};struct NiAmbientLight {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  double             dimmer;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;};struct NiParticlesData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];};struct NiRotatingParticlesData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];};struct NiAutoNormalParticlesData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];};struct NiPSysData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];  unsigned __int8    hasUnknownFloats3;  double             unknownFloats1[numVertices];  unsigned __int8    hasUnknownFloats4;  double             unknownFloats4[numVertices * 4];  double             unknownFloats5[numVertices * 7];  unsigned __int8    hasUnknownFloats6;  double             unknownFloats6[numVertices];  unsigned __int32   unknownInt1;};struct NiMeshPSysData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];  unsigned __int8    hasUnknownFloats3;  double             unknownFloats1[numVertices];  unsigned __int8    hasUnknownFloats4;  double             unknownFloats4[numVertices * 4];  double             unknownFloats5[numVertices * 7];  unsigned __int8    hasUnknownFloats6;  double             unknownFloats6[numVertices];  unsigned __int32   unknownInt1;  unsigned __int32   numVertices2;  unsigned __int8    unknownByte3;  unsigned __int32   unknownInt2;  unsigned __int32   numVertices3;  signed   __int32   unknownLink2;};struct NiBinaryExtraData {  String             name;  ByteArray          binaryData;};struct NiBinaryVoxelExtraData {  String             name;  unsigned __int32   unknownInt;  signed   __int32   data;};struct NiBinaryVoxelData {  unsigned __int16   unknownShort1;  unsigned __int16   unknownShort2;  unsigned __int16   unknownShort3;  double             unknown7Floats[7];  unsigned __int8    unknownBytes1[7 * 12];  unsigned __int32   numUnknownVectors;  Vector4            unknownVectors[numUnknownVectors];  unsigned __int32   numUnknownBytes2;  unsigned __int8    unknownBytes2[numUnknownBytes2];  unsigned __int32   unknown5Ints[5];};struct NiBlendBoolInterpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;  unsigned __int8    boolValue;};struct NiBlendFloatInterpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;  double             floatValue;};struct NiBlendPoint3Interpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;  Vector3            pointValue;};struct NiBlendTransformInterpolator {  unsigned __int16   unknownShort;  unsigned __int32   unknownInt;};struct NiBoolData {  KeyGroup_Byte      data;};struct NiBooleanExtraData {  String             name;  unsigned __int8    booleanData;};struct NiBSplineBasisData {  unsigned __int32   numControlPt;};struct NiBSplineFloatInterpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;};struct NiBSplineCompFloatInterpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;  double             unknownFloats[4];};struct NiBSplinePoint3Interpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;  double             unknownFloats[6];};struct NiBSplineCompPoint3Interpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;  double             unknownFloats[6];  double             unknownFloats[6];};struct NiBSplineTransformInterpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;};struct NiBSplineCompTransformInterpolator {  double             startTime;  double             stopTime;  signed   __int32   splineData;  signed   __int32   basisData;  Vector3            translation;  Quaternion         rotation;  double             scale;  unsigned __int32   translateOffset;  unsigned __int32   rotateOffset;  unsigned __int32   scaleOffset;  double             translateBias;  double             translateMultiplier;  double             rotationBias;  double             rotationMultiplier;  double             scaleBias;  double             scaleMultiplier;};struct NiBSplineData {  unsigned __int32   unknownInt;  unsigned __int32   count;  signed   __int16   controlPoints[count];};struct NiCamera {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int16   unknownShort;  double             frustumLeft;  double             frustumRight;  double             frustumTop;  double             frustumBottom;  double             frustumNear;  double             frustumFar;  unsigned __int8    useOrthographicProjection;  double             viewportLeft;  double             viewportRight;  double             viewportTop;  double             viewportBottom;  double             lodAdjust;  signed   __int32   unknownLink?;  unsigned __int32   unknownInt;  unsigned __int32   unknownInt2;};struct NiColorData {  KeyGroup_Color4    data;};struct NiColorExtraData {  String             name;  Color4             data;};struct NiControllerManager {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int8    cumulative;  unsigned __int32   numControllerSequences;  signed   __int32   controllerSequences[numControllerSequences];  signed   __int32   objectPalette;};struct NiSequence {  String             name;  unsigned __int32   numControlledBlocks;  unsigned __int32   unknownInt1;  ControllerLink     controlledBlocks[numControlledBlocks];};struct NiControllerSequence {  String             name;  unsigned __int32   numControlledBlocks;  unsigned __int32   unknownInt1;  ControllerLink     controlledBlocks[numControlledBlocks];  double             weight;  signed   __int32   textKeys;  CycleType          cycleType;  double             frequency;  double             startTime;  double             stopTime;  signed   __int32   manager;  String             targetName;  signed   __int32   stringPalette;};struct NiAVObjectPalette {};struct NiDefaultAVObjectPalette {  unsigned __int32   unknownInt;  unsigned __int32   numObjs;  AVObject           objs[numObjs];};struct NiDirectionalLight {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  double             dimmer;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;};struct NiDitherProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;};struct NiRollController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   interpolator;  signed   __int32   data;};struct NiFloatData {  KeyGroup_Float     data;};struct NiFloatExtraData {  String             name;  double             floatData;};struct NiFloatsExtraData {  String             name;  unsigned __int32   numFloats;  double             data[numFloats];};struct NiFogProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  double             fogDepth;  Color3             fogColor;};struct NiGravity {  signed   __int32   nextModifier;  signed   __int32   controller;  double             unknownFloat1;  double             force;  FieldType          type;  Vector3            position;  Vector3            direction;};struct NiIntegerExtraData {  String             name;  unsigned __int32   integerData;};struct BSXFlags {  String             name;  unsigned __int32   integerData;};struct NiIntegersExtraData {  String             name;  unsigned __int32   numIntegers;  unsigned __int32   data[numIntegers];};struct NiKeyframeController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   data;};struct BSKeyframeController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  signed   __int32   data;  signed   __int32   data2;};struct NiKeyframeData {  unsigned __int32   numRotationKeys;  KeyType            rotationType;  QuatKey_Quaternion quaternionKeys[numRotationKeys];  KeyGroup_Float     xyzRotations[3];  KeyGroup_Vector3   translations;  KeyGroup_Float     scales;};struct NiLookAtController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int16   unknown1;  signed   __int32   lookAtNode;};struct NiLookAtInterpolator {  unsigned __int16   unknownShort;  signed   __int32   lookAt;  double             unknownFloat;  Vector3            translation;  Quaternion         rotation;  double             scale;  signed   __int32   unknownLink1;  signed   __int32   unknownLink2;  signed   __int32   unknownLink3;};struct NiMaterialProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;  Color3             emissiveColor;  double             glossiness;  double             alpha;};struct NiMorphData {  unsigned __int32   numMorphs;  unsigned __int32   numVertices;  unsigned __int8    unknownByte;  Morph              morphs[numMorphs];};struct NiNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct NiBone {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct AvoidNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct FxWidget {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];  unsigned __int8    unknown1;  unsigned __int8    unknown292Bytes[292];};struct FxButton {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];  unsigned __int8    unknown1;  unsigned __int8    unknown292Bytes[292];};struct FxRadioButton {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];  unsigned __int8    unknown1;  unsigned __int8    unknown292Bytes[292];  unsigned __int32   unknownInt1;  unsigned __int32   unknownInt2;  unsigned __int32   unknownInt3;  unsigned __int32   numButtons;  signed   __int32   buttons[numButtons];};struct NiBillboardNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];  BillboardMode      billboardMode;};struct NiBSAnimationNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct NiBSParticleNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct NiSwitchNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct NiLODNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];  unsigned __int8    unknown4Bytes[4];  unsigned __int16   unknownShort;  signed   __int32   lodLevelData;};struct NiPalette {  unsigned __int8    unknownByte;  unsigned __int32   numEntries?;  unsigned __int8    palette[256 * 4];};struct NiParticleBomb {  signed   __int32   nextModifier;  signed   __int32   controller;  double             unknownFloat1;  double             unknownFloat2;  double             unknownFloat3;  double             unknownFloat4;  unsigned __int32   unknownInt1;  unsigned __int32   unknownInt2;  double             unknownFloat5;  double             unknownFloat6;  double             unknownFloat7;  double             unknownFloat8;  double             unknownFloat9;  double             unknownFloat10;};struct NiParticleColorModifier {  signed   __int32   nextModifier;  signed   __int32   controller;  signed   __int32   colorData;};struct NiParticleGrowFade {  signed   __int32   nextModifier;  signed   __int32   controller;  double             grow;  double             fade;};struct NiParticleMeshModifier {  signed   __int32   nextModifier;  signed   __int32   controller;  unsigned __int32   numParticleMeshes;  signed   __int32   particleMeshes[numParticleMeshes];};struct NiParticleRotation {  signed   __int32   nextModifier;  signed   __int32   controller;  unsigned __int8    unknownByte;  double             unknownFloat1;  double             unknownFloat2;  double             unknownFloat3;  double             unknownFloat4;};struct NiParticles {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiAutoNormalParticles {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiParticleMeshes {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiParticleMeshesData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int8    hasSizes;  double             sizes[numVertices];  unsigned __int16   numActive;  unsigned __int8    hasUnknownFloats1;  double             unknownFloats1[numVertices];  unsigned __int8    hasRotations1;  Quaternion         rotations1[numVertices];  signed   __int32   unknownLink2;};struct NiParticleSystem {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;  unsigned __int8    unknownBool;  unsigned __int32   numModifiers;  signed   __int32   modifiers[numModifiers];};struct NiMeshParticleSystem {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;  unsigned __int8    unknownBool;  unsigned __int32   numModifiers;  signed   __int32   modifiers[numModifiers];};struct NiParticleSystemController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  double             speed;  double             speedRandom;  double             verticalDirection;  double             verticalAngle;  double             horizontalDirection;  double             horizontalAngle;  double             unknownFloat5;  double             unknownFloat6;  double             unknownFloat7;  double             unknownFloat8;  double             unknownFloat9;  double             unknownFloat10;  double             unknownFloat11;  double             size;  double             emitStartTime;  double             emitStopTime;  unsigned __int8    unknownByte;  double             emitRate;  double             lifetime;  double             lifetimeRandom;  unsigned __int16   emitFlags;  Vector3            startRandom;  signed   __int32   emitter;  unsigned __int16   unknownShort2?;  double             unknownFloat13?;  unsigned __int32   unknownInt1?;  unsigned __int32   unknownInt2?;  unsigned __int16   unknownShort3?;  unsigned __int16   numParticles;  unsigned __int16   numValid;  Particle           particles[numParticles];  signed   __int32   unknownLink;  signed   __int32   particleExtra;  signed   __int32   unknownLink2;  unsigned __int8    trailer;};struct NiBSPArrayController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  double             speed;  double             speedRandom;  double             verticalDirection;  double             verticalAngle;  double             horizontalDirection;  double             horizontalAngle;  double             unknownFloat5;  double             unknownFloat6;  double             unknownFloat7;  double             unknownFloat8;  double             unknownFloat9;  double             unknownFloat10;  double             unknownFloat11;  double             size;  double             emitStartTime;  double             emitStopTime;  unsigned __int8    unknownByte;  double             emitRate;  double             lifetime;  double             lifetimeRandom;  unsigned __int16   emitFlags;  Vector3            startRandom;  signed   __int32   emitter;  unsigned __int16   unknownShort2?;  double             unknownFloat13?;  unsigned __int32   unknownInt1?;  unsigned __int32   unknownInt2?;  unsigned __int16   unknownShort3?;  unsigned __int16   numParticles;  unsigned __int16   numValid;  Particle           particles[numParticles];  signed   __int32   unknownLink;  signed   __int32   particleExtra;  signed   __int32   unknownLink2;  unsigned __int8    trailer;};struct NiPathController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int16   unknownShort2;  unsigned __int32   unknownInt1;  unsigned __int32   unknownInt2;  unsigned __int32   unknownInt3;  unsigned __int16   unknownShort;  signed   __int32   posData;  signed   __int32   floatData;};struct NiPixelData {  PixelFormat        pixelFormat;  unsigned __int8    unknown54Bytes[54];  signed   __int32   palette;  unsigned __int32   numMipmaps;  unsigned __int32   bytesPerPixel;  MipMap             mipmaps[numMipmaps];  ByteArray          pixelData;  unsigned __int32   unknownInt2;};struct NiPlanarCollider {  signed   __int32   nextModifier;  signed   __int32   controller;  unsigned __int16   unknownShort;  double             unknownFloat1;  double             unknownFloat2;  double             unknownFloat3;  double             unknownFloat4;  double             unknownFloat5;  double             unknownFloat6;  double             unknownFloat7;  double             unknownFloat8;  double             unknownFloat9;  double             unknownFloat10;  double             unknownFloat11;  double             unknownFloat12;  double             unknownFloat13;  double             unknownFloat14;  double             unknownFloat15;  double             unknownFloat16;};struct NiPointLight {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  double             dimmer;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;  double             constantAttenuation;  double             linearAttenuation;  double             quadraticAttenuation;};struct NiPosData {  KeyGroup_Vector3   data;};struct NiPSysAgeDeathModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  unsigned __int8    spawnOnDeath;  signed   __int32   spawnModifier;};struct NiPSysBombModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  signed   __int32   unknownLink;  unsigned __int32   unknownInts1[2];  double             unknownFloats[3];  unsigned __int32   unknownInts2[2];};struct NiPSysBoundUpdateModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  unsigned __int16   updateSkip;};struct NiPSysBoxEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  signed   __int32   emitterObject;  double             width;  double             height;  double             depth;};struct NiPSysColliderManager {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  signed   __int32   collider;};struct NiPSysColorModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  signed   __int32   data;};struct NiPSysCylinderEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  signed   __int32   emitterObject;  double             radius;  double             height;};struct NiPSysDragModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  signed   __int32   parent;  Vector3            dragAxis;  double             percentage;  double             range;  double             rangeFalloff;};struct NiPSysEmitterCtlrData {  KeyGroup_Float     floatKeys?;  unsigned __int32   numVisibilityKeys?;  Key_Byte           visibilityKeys?[numVisibilityKeys?];};struct NiPSysGravityModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  signed   __int32   gravityObject;  Vector3            gravityAxis;  double             decay;  double             strength;  ForceType          forceType;  double             turbulence;  double             turbulenceScale;};struct NiPSysGrowFadeModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             growTime;  unsigned __int16   growGeneration;  double             fadeTime;  unsigned __int16   fadeGeneration;};struct NiPSysMeshEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  unsigned __int32   numEmitterMeshes;  signed   __int32   emitterMeshes[numEmitterMeshes];  unsigned __int32   initialVelocityType;  unsigned __int32   emissionType;  Vector3            emissionAxis;};struct NiPSysMeshUpdateModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  unsigned __int32   numMeshes;  signed   __int32   meshes[numMeshes];};struct NiPSysPlanarCollider {  double             bounce;  unsigned __int8    spawnOnCollide;  unsigned __int8    dieOnCollide;  signed   __int32   spawnModifier;  signed   __int32   parent;  signed   __int32   nextCollider;  signed   __int32   colliderObject;  double             width;  double             height;  Vector3            xAxis;  Vector3            yAxis;};struct NiPSysSphericalCollider {  double             bounce;  unsigned __int8    spawnOnCollide;  unsigned __int8    dieOnCollide;  signed   __int32   spawnModifier;  signed   __int32   parent;  signed   __int32   nextCollider;  signed   __int32   colliderObject;  double             radius;};struct NiPSysPositionModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;};struct NiPSysResetOnLoopCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;};struct NiPSysRotationModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             initialRotationSpeed;  double             initialRotationSpeedVariation;  double             initialRotationAngle;  double             initialRotationAngleVariation;  unsigned __int8    randomRotSpeedSign;  unsigned __int8    randomInitialAxis;  Vector3            initialAxis;};struct NiPSysSpawnModifier {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  unsigned __int16   numSpawnGenerations;  double             percentageSpawned;  unsigned __int16   minNumToSpawn;  unsigned __int16   maxNumToSpawn;  double             spawnSpeedChaos;  double             spawnDirChaos;  double             lifeSpan;  double             lifeSpanVariation;};struct NiPSysSphereEmitter {  String             name;  unsigned __int32   order;  signed   __int32   target;  unsigned __int8    active;  double             speed;  double             speedVariation;  double             declination;  double             declinationVariation;  double             planarAngle;  double             planarAngleVariation;  Color4             initialColor;  double             initialRadius;  double             radiusVariation;  double             lifeSpan;  double             lifeSpanVariation;  signed   __int32   emitterObject;  double             radius;};struct NiPSysUpdateCtlr {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;};struct NiLODData {};struct NiRangeLODData {  Vector3            lodCenter;  unsigned __int32   numLodLevels;  LODRange           lodLevels[numLodLevels];};struct NiScreenLODData {  Vector3            boundCenter;  double             boundRadius;  Vector3            worldCenter;  double             worldRadius;  unsigned __int32   proportionCount;  double             proportionLevels[proportionCount];};struct NiRotatingParticles {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiSequenceStreamHelper {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;};struct NiShadeProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;};struct NiSkinData {  Matrix33           rotation;  Vector3            translation;  double             scale;  unsigned __int32   numBones;  unsigned __int8    hasVertexWeights;  SkinData           boneList[numBones];};struct NiSkinInstance {  signed   __int32   data;  signed   __int32   skinPartition;  signed   __int32   skeletonRoot;  unsigned __int32   numBones;  signed   __int32   bones[numBones];};struct NiTriShapeSkinController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int32   numBones;  unsigned __int32   vertexCounts[numBones];  signed   __int32   bones[numBones];  OldSkinData        boneData[numBones * vertexCounts];};struct NiClodSkinInstance {  signed   __int32   data;  signed   __int32   skinPartition;  signed   __int32   skeletonRoot;  unsigned __int32   numBones;  signed   __int32   bones[numBones];};struct NiSkinPartition {  unsigned __int32   numSkinPartitionBlocks;  SkinPartition      skinPartitionBlocks[numSkinPartitionBlocks];};struct NiTexture {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;};struct NiSourceTexture {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  unsigned __int8    useExternal;  String             fileName;  signed   __int32   unknownLink;  String             originalFileName?;  signed   __int32   pixelData;  PixelLayout        pixelLayout;  MipMapFormat       useMipmaps;  AlphaFormat        alphaFormat;  unsigned __int8    unknownByte;  unsigned __int8    unknownByte2;};struct NiSpecularProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;};struct NiSphericalCollider {  signed   __int32   nextModifier;  signed   __int32   controller;  double             unknownFloat1;  unsigned __int16   unknownShort1;  double             unknownFloat2;  double             unknownFloat3;  double             unknownFloat4;  double             unknownFloat5;};struct NiSpotLight {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  double             dimmer;  Color3             ambientColor;  Color3             diffuseColor;  Color3             specularColor;  double             constantAttenuation;  double             linearAttenuation;  double             quadraticAttenuation;  double             cutoffAngle;  double             exponent;};struct NiStencilProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  unsigned __int8    stencilEnabled;  CompareMode        stencilFunction;  unsigned __int32   stencilRef;  unsigned __int32   stencilMask;  StencilAction      failAction;  StencilAction      zFailAction;  StencilAction      passAction;  FaceDrawMode       drawMode;};struct NiStringExtraData {  String             name;  String             stringData;};struct NiStringPalette {  StringPalette      palette;};struct NiStringsExtraData {  String             name;  unsigned __int32   numStrings;  String             data[numStrings];};struct NiTextKeyExtraData {  String             name;  unsigned __int32   numTextKeys;  Key_String         textKeys[numTextKeys];};struct NiTextureEffect {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int8    switchState;  unsigned __int32   numAffectedNodes;  signed   __int32   affectedNodes[numAffectedNodes];  Matrix33           modelProjectionMatrix;  Vector3            modelProjectionTransform;  TexFilterMode      textureFiltering;  TexClampMode       textureClamping;  unsigned __int32   textureType;  unsigned __int32   coordinateGenerationType;  signed   __int32   sourceTexture;  unsigned __int8    clippingPlane;  Vector3            unknownVector;  double             unknownFloat;};struct NiTextureModeProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  signed   __int16   unknownShort;  signed   __int16   unknown2Shorts[2];};struct NiImage {  unsigned __int8    external;  String             fileName;  signed   __int32   imageData;  unsigned __int32   unknownInt1;  unsigned __int32   unknownInt2;};struct NiTextureProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  signed   __int32   image;};struct NiMultiTextureProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  unsigned __int32   unknownInt;  MultiTextureElement textureElements[5];};struct NiTexturingProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  ApplyMode          applyMode;  unsigned __int32   textureCount;  unsigned __int8    hasBaseTexture;  TexDesc            baseTexture;  unsigned __int8    hasDarkTexture;  TexDesc            darkTexture;  unsigned __int8    hasDetailTexture;  TexDesc            detailTexture;  unsigned __int8    hasGlossTexture;  TexDesc            glossTexture;  unsigned __int8    hasGlowTexture;  TexDesc            glowTexture;  unsigned __int8    hasBumpMapTexture;  TexDesc            bumpMapTexture;  double             bumpMapLumaScale;  double             bumpMapLumaOffset;  Matrix22           bumpMapMatrix;  unsigned __int8    hasDecal0Texture;  TexDesc            decal0Texture;  unsigned __int8    hasDecal1Texture;  TexDesc            decal1Texture;  unsigned __int8    hasDecal2Texture;  TexDesc            decal2Texture;  unsigned __int8    hasDecal3Texture;  TexDesc            decal3Texture;  unsigned __int32   numShaderTextures;  ShaderTexDesc      shaderTextures[numShaderTextures];};struct NiTransformData {  unsigned __int32   numRotationKeys;  KeyType            rotationType;  QuatKey_Quaternion quaternionKeys[numRotationKeys];  KeyGroup_Float     xyzRotations[3];  KeyGroup_Vector3   translations;  KeyGroup_Float     scales;};struct NiTriShape {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiTriShapeData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int16   numTriangles;  unsigned __int32   numTrianglePoints;  unsigned __int8    hasTriangles;  Triangle           triangles[numTriangles];  unsigned __int16   numMatchGroups;  MatchGroup         matchGroups[numMatchGroups];};struct NiTriStrips {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiTriStripsData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int16   numTriangles;  unsigned __int16   numStrips;  unsigned __int16   stripLengths[numStrips];  unsigned __int8    hasPoints;  unsigned __int16   points[numStrips * stripLengths];};struct NiClod {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  signed   __int32   data;  signed   __int32   skinInstance;  unsigned __int8    hasShader;  String             shaderName;  signed   __int32   unknownLink;};struct NiClodData {  String             name;  unsigned __int16   numVertices;  unsigned __int16   unknownShort1;  unsigned __int8    hasVertices;  Vector3            vertices[numVertices];  unsigned __int16   numUvSets;  unsigned __int8    hasNormals;  Vector3            normals[numVertices];  Vector3            unknownVectors1[numVertices];  Vector3            unknownVectors2[numVertices];  Vector3            center;  double             radius;  unsigned __int8    hasVertexColors;  Color4             vertexColors[numVertices];  TexCoord           uvSets[numUvSets * numVertices] // WARNING - should be [numUvSets & 63 * numVertices];  unsigned __int16   unknownShort2;  signed   __int32   unknownLink1;  unsigned __int16   numTriangles;  unsigned __int16   unknownShorts;  unsigned __int16   unknownCount1;  unsigned __int16   unknownCount2;  unsigned __int16   unknownCount3;  double             unknownFloat;  unsigned __int16   unknownShort;  unsigned __int16   unknownClodShorts1[unknownCount1 * 6];  unsigned __int16   unknownClodShorts2[unknownCount2];  unsigned __int16   unknownClodShorts3[unknownCount3 * 6];};struct NiUVController {  signed   __int32   nextController;  Flags              flags;  double             frequency;  double             phase;  double             startTime;  double             stopTime;  signed   __int32   target;  unsigned __int16   unknownShort;  signed   __int32   data;};struct NiUVData {  KeyGroup_Float     uvGroups[4];};struct NiVectorExtraData {  String             name;  Vector3            vectorData;  double             unknownFloat;};struct NiVertexColorProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  VertMode           vertexMode;  LightMode          lightingMode;};struct NiVertWeightsExtraData {  String             name;  unsigned __int32   numBytes;  unsigned __int16   numVertices;  double             weight[numVertices];};struct NiVisData {  unsigned __int32   numVisKeys;  Key_Byte           visKeys[numVisKeys];};struct NiWireframeProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;};struct NiZBufferProperty {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  CompareMode        function;};struct RootCollisionNode {  String             name;  unsigned __int32   numExtraDataList;  signed   __int32   extraDataList[numExtraDataList];  signed   __int32   controller;  Flags              flags;  Vector3            translation;  Matrix33           rotation;  double             scale;  unsigned __int32   numProperties;  signed   __int32   properties[numProperties];  signed   __int32   collisionObject;  unsigned __int32   numChildren;  signed   __int32   children[numChildren];  unsigned __int32   numEffects;  signed   __int32   effects[numEffects];};struct NiRawImageData {  unsigned __int32   width;  unsigned __int32   height;  unsigned __int32   imageType;  ByteColor3         rgbImageData[width * height];  ByteColor4         rgbaImageData[width * height];};