示例#1
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Read(IStream s, List <uint> link_stack, NifInfo info)
        {
            base.Read(s, link_stack, info);
            Nif.NifStream(out alphaSortBound, s, info);
            Nif.NifStream(out staticBound, s, info);
        }
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            numRotationKeys = (byte)rotationKeys.Count;
            numColorKeys    = (byte)colorKeys.Count;
            numSizeKeys     = (byte)sizeKeys.Count;
            if (info.version >= 0x14060100)
            {
                Nif.NifStream(numSizeKeys, s, info);
                for (var i2 = 0; i2 < sizeKeys.Count; i2++)
                {
                    Nif.NifStream(sizeKeys[i2], s, info, 1);
                }
                Nif.NifStream(sizeLoopBehavior, s, info);
            }
            Nif.NifStream(numColorKeys, s, info);
            for (var i1 = 0; i1 < colorKeys.Count; i1++)
            {
                Nif.NifStream(colorKeys[i1], s, info, 1);
            }
            if (info.version >= 0x14060100)
            {
                Nif.NifStream(colorLoopBehavior, s, info);
                Nif.NifStream(numRotationKeys, s, info);
                for (var i2 = 0; i2 < rotationKeys.Count; i2++)
                {
                    Nif.NifStream(rotationKeys[i2], s, info, 1);
                }
                Nif.NifStream(rotationLoopBehavior, s, info);
            }
            Nif.NifStream(growTime, s, info);
            Nif.NifStream(shrinkTime, s, info);
            Nif.NifStream(growGeneration, s, info);
            Nif.NifStream(shrinkGeneration, s, info);
        }
示例#3
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            numChunks      = (uint)chunks.Count;
            numBigTris     = (uint)bigTris.Count;
            numBigVerts    = (uint)bigVerts.Count;
            numTransforms  = (uint)chunkTransforms.Count;
            numMaterials   = (uint)chunkMaterials.Count;
            numMaterials8  = (uint)materials8.Count;
            numMaterials16 = (uint)materials16.Count;
            numMaterials32 = (uint)materials32.Count;
            Nif.NifStream(bitsPerIndex, s, info);
            Nif.NifStream(bitsPerWIndex, s, info);
            Nif.NifStream(maskWIndex, s, info);
            Nif.NifStream(maskIndex, s, info);
            Nif.NifStream(error, s, info);
            Nif.NifStream(boundsMin, s, info);
            Nif.NifStream(boundsMax, s, info);
            Nif.NifStream(weldingType, s, info);
            Nif.NifStream(materialType, s, info);
            Nif.NifStream(numMaterials32, s, info);
            for (var i1 = 0; i1 < materials32.Count; i1++)
            {
                Nif.NifStream(materials32[i1], s, info);
            }
            Nif.NifStream(numMaterials16, s, info);
            for (var i1 = 0; i1 < materials16.Count; i1++)
            {
                Nif.NifStream(materials16[i1], s, info);
            }
            Nif.NifStream(numMaterials8, s, info);
            for (var i1 = 0; i1 < materials8.Count; i1++)
            {
                Nif.NifStream(materials8[i1], s, info);
            }
            Nif.NifStream(numMaterials, s, info);
            for (var i1 = 0; i1 < chunkMaterials.Count; i1++)
            {
                Nif.NifStream(chunkMaterials[i1].material, s, info);
                if ((info.version <= 0x14000005) && ((info.userVersion2 < 16)))
                {
                    Nif.NifStream(chunkMaterials[i1].filter.layer_ob, s, info);
                }
                if (((info.version == 0x14020007) && (info.userVersion2 <= 34)))
                {
                    Nif.NifStream(chunkMaterials[i1].filter.layer_fo, s, info);
                }
                if (((info.version == 0x14020007) && (info.userVersion2 > 34)))
                {
                    Nif.NifStream(chunkMaterials[i1].filter.layer_sk, s, info);
                }
                Nif.NifStream(chunkMaterials[i1].filter.flagsAndPartNumber, s, info);
                Nif.NifStream(chunkMaterials[i1].filter.group, s, info);
            }
            Nif.NifStream(numNamedMaterials, s, info);
            Nif.NifStream(numTransforms, s, info);
            for (var i1 = 0; i1 < chunkTransforms.Count; i1++)
            {
                Nif.NifStream(chunkTransforms[i1].translation, s, info);
                Nif.NifStream(chunkTransforms[i1].rotation.x, s, info);
                Nif.NifStream(chunkTransforms[i1].rotation.y, s, info);
                Nif.NifStream(chunkTransforms[i1].rotation.z, s, info);
                Nif.NifStream(chunkTransforms[i1].rotation.w, s, info);
            }
            Nif.NifStream(numBigVerts, s, info);
            for (var i1 = 0; i1 < bigVerts.Count; i1++)
            {
                Nif.NifStream(bigVerts[i1], s, info);
            }
            Nif.NifStream(numBigTris, s, info);
            for (var i1 = 0; i1 < bigTris.Count; i1++)
            {
                Nif.NifStream(bigTris[i1].triangle1, s, info);
                Nif.NifStream(bigTris[i1].triangle2, s, info);
                Nif.NifStream(bigTris[i1].triangle3, s, info);
                Nif.NifStream(bigTris[i1].material, s, info);
                Nif.NifStream(bigTris[i1].weldingInfo, s, info);
            }
            Nif.NifStream(numChunks, s, info);
            for (var i1 = 0; i1 < chunks.Count; i1++)
            {
                chunks[i1].numWeldingInfo = (uint)chunks[i1].weldingInfo.Count;
                chunks[i1].numStrips      = (uint)chunks[i1].strips.Count;
                chunks[i1].numIndices     = (uint)chunks[i1].indices.Count;
                chunks[i1].numVertices    = (uint)chunks[i1].vertices.Count;
                Nif.NifStream(chunks[i1].translation, s, info);
                Nif.NifStream(chunks[i1].materialIndex, s, info);
                Nif.NifStream(chunks[i1].reference, s, info);
                Nif.NifStream(chunks[i1].transformIndex, s, info);
                Nif.NifStream(chunks[i1].numVertices, s, info);
                for (var i2 = 0; i2 < chunks[i1].vertices.Count; i2++)
                {
                    Nif.NifStream(chunks[i1].vertices[i2], s, info);
                }
                Nif.NifStream(chunks[i1].numIndices, s, info);
                for (var i2 = 0; i2 < chunks[i1].indices.Count; i2++)
                {
                    Nif.NifStream(chunks[i1].indices[i2], s, info);
                }
                Nif.NifStream(chunks[i1].numStrips, s, info);
                for (var i2 = 0; i2 < chunks[i1].strips.Count; i2++)
                {
                    Nif.NifStream(chunks[i1].strips[i2], s, info);
                }
                Nif.NifStream(chunks[i1].numWeldingInfo, s, info);
                for (var i2 = 0; i2 < chunks[i1].weldingInfo.Count; i2++)
                {
                    Nif.NifStream(chunks[i1].weldingInfo[i2], s, info);
                }
            }
            Nif.NifStream(numConvexPieceA, s, info);
        }
示例#4
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Read(IStream s, List <uint> link_stack, NifInfo info)
 {
     base.Read(s, link_stack, info);
 }
示例#5
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Read(IStream s, List <uint> link_stack, NifInfo info)
        {
            base.Read(s, link_stack, info);
            Nif.NifStream(out handle, s, info);
        }
示例#6
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            Nif.NifStream(unknownFloat1, s, info);
            Nif.NifStream(unknownShort1, s, info);
            Nif.NifStream(unknownFloat2, s, info);
            if (info.version <= 0x04020002)
            {
                Nif.NifStream(unknownShort2, s, info);
            }
            if (info.version >= 0x04020100)
            {
                Nif.NifStream(unknownFloat3, s, info);
            }
            Nif.NifStream(unknownFloat4, s, info);
            Nif.NifStream(unknownFloat5, s, info);
        }
示例#7
0
        /*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Read(IStream s, List <uint> link_stack, NifInfo info)
        {
            uint block_num;

            base.Read(s, link_stack, info);
            Nif.NifStream(out malleable.type, s, info);
            Nif.NifStream(out malleable.numEntities, s, info);
            Nif.NifStream(out block_num, s, info);
            link_stack.Add(block_num);
            Nif.NifStream(out block_num, s, info);
            link_stack.Add(block_num);
            Nif.NifStream(out malleable.priority, s, info);
            if ((malleable.type == 0))
            {
                Nif.NifStream(out malleable.ballAndSocket.pivotA, s, info);
                Nif.NifStream(out malleable.ballAndSocket.pivotB, s, info);
            }
            if ((malleable.type == 1))
            {
                if (info.version <= 0x14000005)
                {
                    Nif.NifStream(out malleable.hinge.pivotA, s, info);
                    Nif.NifStream(out malleable.hinge.perpAxisInA1, s, info);
                    Nif.NifStream(out malleable.hinge.perpAxisInA2, s, info);
                    Nif.NifStream(out malleable.hinge.pivotB, s, info);
                    Nif.NifStream(out malleable.hinge.axisB, s, info);
                }
                if (info.version >= 0x14020007)
                {
                    Nif.NifStream(out malleable.hinge.axisA, s, info);
                    Nif.NifStream(out (Vector4)malleable.hinge.perpAxisInA1, s, info);
                    Nif.NifStream(out (Vector4)malleable.hinge.perpAxisInA2, s, info);
                    Nif.NifStream(out (Vector4)malleable.hinge.pivotA, s, info);
                    Nif.NifStream(out (Vector4)malleable.hinge.axisB, s, info);
                    Nif.NifStream(out malleable.hinge.perpAxisInB1, s, info);
                    Nif.NifStream(out malleable.hinge.perpAxisInB2, s, info);
                    Nif.NifStream(out (Vector4)malleable.hinge.pivotB, s, info);
                }
            }
            if ((malleable.type == 2))
            {
                if ((info.userVersion2 <= 16))
                {
                    Nif.NifStream(out malleable.limitedHinge.pivotA, s, info);
                    Nif.NifStream(out malleable.limitedHinge.axisA, s, info);
                    Nif.NifStream(out malleable.limitedHinge.perpAxisInA1, s, info);
                    Nif.NifStream(out malleable.limitedHinge.perpAxisInA2, s, info);
                    Nif.NifStream(out malleable.limitedHinge.pivotB, s, info);
                    Nif.NifStream(out malleable.limitedHinge.axisB, s, info);
                    Nif.NifStream(out malleable.limitedHinge.perpAxisInB2, s, info);
                }
                if ((info.userVersion2 > 16))
                {
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.axisA, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.perpAxisInA1, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.perpAxisInA2, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.pivotA, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.axisB, s, info);
                    Nif.NifStream(out malleable.limitedHinge.perpAxisInB1, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.perpAxisInB2, s, info);
                    Nif.NifStream(out (Vector4)malleable.limitedHinge.pivotB, s, info);
                }
                Nif.NifStream(out malleable.limitedHinge.minAngle, s, info);
                Nif.NifStream(out malleable.limitedHinge.maxAngle, s, info);
                Nif.NifStream(out malleable.limitedHinge.maxFriction, s, info);
                if ((info.version >= 0x14020007) && ((info.userVersion2 > 16)))
                {
                    Nif.NifStream(out malleable.limitedHinge.motor.type, s, info);
                    if ((malleable.limitedHinge.motor.type == 1))
                    {
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.minForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.tau, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.damping, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.proportionalRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.constantRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.positionMotor.motorEnabled, s, info);
                    }
                    if ((malleable.limitedHinge.motor.type == 2))
                    {
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.minForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.tau, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.targetVelocity, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.useVelocityTarget, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.velocityMotor.motorEnabled, s, info);
                    }
                    if ((malleable.limitedHinge.motor.type == 3))
                    {
                        Nif.NifStream(out malleable.limitedHinge.motor.springDamperMotor.minForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.springDamperMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.springDamperMotor.springConstant, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.springDamperMotor.springDamping, s, info);
                        Nif.NifStream(out malleable.limitedHinge.motor.springDamperMotor.motorEnabled, s, info);
                    }
                }
            }
            if ((malleable.type == 6))
            {
                if (info.version <= 0x14000005)
                {
                    Nif.NifStream(out malleable.prismatic.pivotA, s, info);
                    Nif.NifStream(out malleable.prismatic.rotationA, s, info);
                    Nif.NifStream(out malleable.prismatic.planeA, s, info);
                    Nif.NifStream(out malleable.prismatic.slidingA, s, info);
                    Nif.NifStream(out malleable.prismatic.slidingB, s, info);
                    Nif.NifStream(out malleable.prismatic.pivotB, s, info);
                    Nif.NifStream(out malleable.prismatic.rotationB, s, info);
                    Nif.NifStream(out malleable.prismatic.planeB, s, info);
                }
                if (info.version >= 0x14020007)
                {
                    Nif.NifStream(out (Vector4)malleable.prismatic.slidingA, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.rotationA, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.planeA, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.pivotA, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.slidingB, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.rotationB, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.planeB, s, info);
                    Nif.NifStream(out (Vector4)malleable.prismatic.pivotB, s, info);
                }
                Nif.NifStream(out malleable.prismatic.minDistance, s, info);
                Nif.NifStream(out malleable.prismatic.maxDistance, s, info);
                Nif.NifStream(out malleable.prismatic.friction, s, info);
                if ((info.version >= 0x14020007) && ((info.userVersion2 > 16)))
                {
                    Nif.NifStream(out malleable.prismatic.motor.type, s, info);
                    if ((malleable.prismatic.motor.type == 1))
                    {
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.minForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.tau, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.damping, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.proportionalRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.constantRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.positionMotor.motorEnabled, s, info);
                    }
                    if ((malleable.prismatic.motor.type == 2))
                    {
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.minForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.tau, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.targetVelocity, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.useVelocityTarget, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.velocityMotor.motorEnabled, s, info);
                    }
                    if ((malleable.prismatic.motor.type == 3))
                    {
                        Nif.NifStream(out malleable.prismatic.motor.springDamperMotor.minForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.springDamperMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.springDamperMotor.springConstant, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.springDamperMotor.springDamping, s, info);
                        Nif.NifStream(out malleable.prismatic.motor.springDamperMotor.motorEnabled, s, info);
                    }
                }
            }
            if ((malleable.type == 7))
            {
                if ((info.userVersion2 <= 16))
                {
                    Nif.NifStream(out malleable.ragdoll.pivotA, s, info);
                    Nif.NifStream(out malleable.ragdoll.planeA, s, info);
                    Nif.NifStream(out malleable.ragdoll.twistA, s, info);
                    Nif.NifStream(out malleable.ragdoll.pivotB, s, info);
                    Nif.NifStream(out malleable.ragdoll.planeB, s, info);
                    Nif.NifStream(out malleable.ragdoll.twistB, s, info);
                }
                if ((info.userVersion2 > 16))
                {
                    Nif.NifStream(out (Vector4)malleable.ragdoll.twistA, s, info);
                    Nif.NifStream(out (Vector4)malleable.ragdoll.planeA, s, info);
                    Nif.NifStream(out malleable.ragdoll.motorA, s, info);
                    Nif.NifStream(out (Vector4)malleable.ragdoll.pivotA, s, info);
                    Nif.NifStream(out (Vector4)malleable.ragdoll.twistB, s, info);
                    Nif.NifStream(out (Vector4)malleable.ragdoll.planeB, s, info);
                    Nif.NifStream(out malleable.ragdoll.motorB, s, info);
                    Nif.NifStream(out (Vector4)malleable.ragdoll.pivotB, s, info);
                }
                Nif.NifStream(out malleable.ragdoll.coneMaxAngle, s, info);
                Nif.NifStream(out malleable.ragdoll.planeMinAngle, s, info);
                Nif.NifStream(out malleable.ragdoll.planeMaxAngle, s, info);
                Nif.NifStream(out malleable.ragdoll.twistMinAngle, s, info);
                Nif.NifStream(out malleable.ragdoll.twistMaxAngle, s, info);
                Nif.NifStream(out malleable.ragdoll.maxFriction, s, info);
                if ((info.version >= 0x14020007) && ((info.userVersion2 > 16)))
                {
                    Nif.NifStream(out malleable.ragdoll.motor.type, s, info);
                    if ((malleable.ragdoll.motor.type == 1))
                    {
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.minForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.tau, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.damping, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.proportionalRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.constantRecoveryVelocity, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.positionMotor.motorEnabled, s, info);
                    }
                    if ((malleable.ragdoll.motor.type == 2))
                    {
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.minForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.tau, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.targetVelocity, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.useVelocityTarget, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.velocityMotor.motorEnabled, s, info);
                    }
                    if ((malleable.ragdoll.motor.type == 3))
                    {
                        Nif.NifStream(out malleable.ragdoll.motor.springDamperMotor.minForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.springDamperMotor.maxForce, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.springDamperMotor.springConstant, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.springDamperMotor.springDamping, s, info);
                        Nif.NifStream(out malleable.ragdoll.motor.springDamperMotor.motorEnabled, s, info);
                    }
                }
            }
            if ((malleable.type == 8))
            {
                Nif.NifStream(out malleable.stiffSpring.pivotA, s, info);
                Nif.NifStream(out malleable.stiffSpring.pivotB, s, info);
                Nif.NifStream(out malleable.stiffSpring.length, s, info);
            }
            if (info.version <= 0x14000005)
            {
                Nif.NifStream(out malleable.tau, s, info);
                Nif.NifStream(out malleable.damping, s, info);
            }
            if (info.version >= 0x14020007)
            {
                Nif.NifStream(out malleable.strength, s, info);
            }
        }
示例#8
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     data.numKeys = (uint)data.keys.Count;
     Nif.NifStream(data.numKeys, s, info);
     if ((data.numKeys != 0))
     {
         Nif.NifStream(data.interpolation, s, info);
     }
     for (var i3 = 0; i3 < data.keys.Count; i3++)
     {
         Nif.NifStream(data.keys[i3], s, info, data.interpolation);
     }
 }
示例#9
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            numScales = (uint)scales.Count;
            Nif.NifStream(numScales, s, info);
            for (var i1 = 0; i1 < scales.Count; i1++)
            {
                Nif.NifStream(scales[i1], s, info);
            }
        }
示例#10
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            Nif.NifStream(direction, s, info);
            Nif.NifStream(airFriction, s, info);
            Nif.NifStream(inheritVelocity, s, info);
            Nif.NifStream(inheritRotation, s, info);
            Nif.NifStream(componentOnly, s, info);
            Nif.NifStream(enableSpread, s, info);
            Nif.NifStream(spread, s, info);
        }
示例#11
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            count = (uint)unknownArray.Count;
            Nif.NifStream(name, s, info);
            Nif.NifStream(hasData, s, info);
            if (hasData)
            {
                for (var i2 = 0; i2 < 21; i2++)
                {
                    Nif.NifStream(unknownFloats1[i2], s, info);
                }
                Nif.NifStream(unknownShort, s, info);
                WriteRef((NiObject)child, s, info, link_map, missing_link_stack);
                for (var i2 = 0; i2 < 12; i2++)
                {
                    Nif.NifStream(unknownFloats2[i2], s, info);
                }
                Nif.NifStream(count, s, info);
                for (var i2 = 0; i2 < unknownArray.Count; i2++)
                {
                    for (var i3 = 0; i3 < 5; i3++)
                    {
                        Nif.NifStream(unknownArray[i2][i3], s, info);
                    }
                }
            }
        }
示例#12
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void FixLinks(Dictionary <uint, NiObject> objects, List <uint> link_stack, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.FixLinks(objects, link_stack, missing_link_stack, info);
     data = FixLink <NiMorphData>(objects, link_stack, missing_link_stack, info);
     if (info.version >= 0x0A01006A && info.version <= 0x14000005)
     {
         for (var i4 = 0; i4 < interpolators.Count; i4++)
         {
             interpolators[i4] = FixLink <NiInterpolator>(objects, link_stack, missing_link_stack, info);
         }
     }
     if (info.version >= 0x14010003)
     {
         for (var i4 = 0; i4 < interpolatorWeights.Count; i4++)
         {
             interpolatorWeights[i4].interpolator = FixLink <NiInterpolator>(objects, link_stack, missing_link_stack, info);
         }
     }
 }
示例#13
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     numUnknownInts   = (uint)unknownInts.Count;
     numInterpolators = (uint)interpolators.Count;
     if (info.version >= 0x0A000102)
     {
         Nif.NifStream(extraFlags, s, info);
     }
     WriteRef((NiObject)data, s, info, link_map, missing_link_stack);
     if (info.version >= 0x04000001)
     {
         Nif.NifStream(alwaysUpdate, s, info);
     }
     if (info.version >= 0x0A01006A)
     {
         Nif.NifStream(numInterpolators, s, info);
     }
     if (info.version >= 0x0A01006A && info.version <= 0x14000005)
     {
         for (var i4 = 0; i4 < interpolators.Count; i4++)
         {
             WriteRef((NiObject)interpolators[i4], s, info, link_map, missing_link_stack);
         }
     }
     if (info.version >= 0x14010003)
     {
         for (var i4 = 0; i4 < interpolatorWeights.Count; i4++)
         {
             WriteRef((NiObject)interpolatorWeights[i4].interpolator, s, info, link_map, missing_link_stack);
             Nif.NifStream(interpolatorWeights[i4].weight, s, info);
         }
     }
     if (info.version >= 0x0A020000 && info.version <= 0x14000005 && ((info.userVersion2 > 9)))
     {
         Nif.NifStream(numUnknownInts, s, info);
         for (var i4 = 0; i4 < unknownInts.Count; i4++)
         {
             Nif.NifStream(unknownInts[i4], s, info);
         }
     }
 }
示例#14
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            Nif.NifStream(transform.translation, s, info);
            Nif.NifStream(transform.rotation, s, info);
            Nif.NifStream(transform.scale, s, info);
            if (info.version <= 0x0A01006D)
            {
                for (var i2 = 0; i2 < 3; i2++)
                {
                    {
                        bool tmp = transform.trsValid[i2];
                        Nif.NifStream(tmp, s, info);
                    }
                }
            }
            Nif.NifStream(translationHandle, s, info);
            Nif.NifStream(rotationHandle, s, info);
            Nif.NifStream(scaleHandle, s, info);
        }
示例#15
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            numSubShapes = (uint)subShapes.Count;
            Nif.NifStream(numSubShapes, s, info);
            for (var i1 = 0; i1 < subShapes.Count; i1++)
            {
                WriteRef((NiObject)subShapes[i1], s, info, link_map, missing_link_stack);
            }
            if (info.version <= 0x0A000102)
            {
                Nif.NifStream(material.unknownInt, s, info);
            }
            if ((info.version <= 0x14000005) && ((info.userVersion2 < 16)))
            {
                Nif.NifStream(material.material_ob, s, info);
            }
            if (((info.version == 0x14020007) && (info.userVersion2 <= 34)))
            {
                Nif.NifStream(material.material_fo, s, info);
            }
            if (((info.version == 0x14020007) && (info.userVersion2 > 34)))
            {
                Nif.NifStream(material.material_sk, s, info);
            }
            Nif.NifStream(radius, s, info);
            Nif.NifStream(unknownInt1, s, info);
            Nif.NifStream(unknownFloat1, s, info);
            Nif.NifStream(childShapeProperty.data, s, info);
            Nif.NifStream(childShapeProperty.size, s, info);
            Nif.NifStream(childShapeProperty.capacityAndFlags, s, info);
            Nif.NifStream(unknownByte1, s, info);
            Nif.NifStream(unknownFloat2, s, info);
        }
示例#16
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            Nif.NifStream(pixelFormat, s, info);
            if (info.version <= 0x0A030002)
            {
                Nif.NifStream(redMask, s, info);
                Nif.NifStream(greenMask, s, info);
                Nif.NifStream(blueMask, s, info);
                Nif.NifStream(alphaMask, s, info);
                Nif.NifStream(bitsPerPixel, s, info);
                for (var i2 = 0; i2 < 8; i2++)
                {
                    Nif.NifStream(oldFastCompare[i2], s, info);
                }
            }
            if ((info.version >= 0x0A010000) && (info.version <= 0x0A030002))
            {
                Nif.NifStream(tiling, s, info);
            }
            if (info.version >= 0x0A030003)
            {
                Nif.NifStream((byte)bitsPerPixel, s, info);
                Nif.NifStream(rendererHint, s, info);
                Nif.NifStream(extraData, s, info);
                Nif.NifStream(flags, s, info);
                Nif.NifStream((PixelTiling)tiling, s, info);
            }
            if (info.version >= 0x14030004)
            {
                Nif.NifStream(srgbSpace, s, info);
            }
            if (info.version >= 0x0A030003)
            {
                for (var i2 = 0; i2 < 4; i2++)
                {
                    Nif.NifStream(channels[i2].type, s, info);
                    Nif.NifStream(channels[i2].convention, s, info);
                    Nif.NifStream(channels[i2].bitsPerChannel, s, info);
                    Nif.NifStream(channels[i2].isSigned, s, info);
                }
            }
        }
示例#17
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void FixLinks(Dictionary <uint, NiObject> objects, List <uint> link_stack, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.FixLinks(objects, link_stack, missing_link_stack, info);
            for (var i1 = 0; i1 < subShapes.Count; i1++)
            {
                subShapes[i1] = FixLink <bhkConvexShape>(objects, link_stack, missing_link_stack, info);
            }
        }
示例#18
0
        /*!
         * Returns the number of references that currently exist for this object.
         * \return The number of references to this object that are in use.
         */
        //uint GetNumRefs();

        /*! NIFLIB_HIDDEN function.  For internal use only. */
        protected abstract void Read(StreamReader s, List <uint> link_stack, NifInfo info);
示例#19
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            height = (uint)((rgbImageData.Count > 0) ? rgbImageData[0].Count : 0);
            width  = (uint)rgbImageData.Count;
            Nif.NifStream(width, s, info);
            Nif.NifStream(height, s, info);
            Nif.NifStream(imageType, s, info);
            if ((imageType == 1))
            {
                for (var i2 = 0; i2 < rgbImageData.Count; i2++)
                {
                    for (var i3 = 0; i3 < rgbImageData[i2].Count; i3++)
                    {
                        Nif.NifStream(rgbImageData[i2][i3].r, s, info);
                        Nif.NifStream(rgbImageData[i2][i3].g, s, info);
                        Nif.NifStream(rgbImageData[i2][i3].b, s, info);
                    }
                }
            }
            if ((imageType == 2))
            {
                for (var i2 = 0; i2 < rgbaImageData.Count; i2++)
                {
                    for (var i3 = 0; i3 < rgbaImageData[i2].Count; i3++)
                    {
                        Nif.NifStream(rgbaImageData[i2][i3].r, s, info);
                        Nif.NifStream(rgbaImageData[i2][i3].g, s, info);
                        Nif.NifStream(rgbaImageData[i2][i3].b, s, info);
                        Nif.NifStream(rgbaImageData[i2][i3].a, s, info);
                    }
                }
            }
        }
示例#20
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 protected abstract void Write(StreamWriter s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info);
示例#21
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void FixLinks(Dictionary <uint, NiObject> objects, List <uint> link_stack, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.FixLinks(objects, link_stack, missing_link_stack, info);
     malleable.entityA = FixLink <bhkEntity>(objects, link_stack, missing_link_stack, info);
     malleable.entityB = FixLink <bhkEntity>(objects, link_stack, missing_link_stack, info);
 }
示例#22
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 protected abstract void FixLinks(Dictionary <uint, NiObject> objects, List <uint> link_stack, List <NiObject> missing_link_stack, NifInfo info);
示例#23
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            WriteRef((NiObject)root, s, info, link_map, missing_link_stack);
            for (var i1 = 0; i1 < 5; i1++)
            {
                Nif.NifStream(unknownBytes[i1], s, info);
            }
        }
示例#24
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     num2 = (uint)(unknown2.Count > 0 ? unknown2[0].Count : 0);
     num1 = (uint)unknown2.Count;
     for (var i3 = 0; i3 < 40; i3++)
     {
         Nif.NifStream(unknown1[i3], s, info);
     }
     WriteRef((NiObject)parent, s, info, link_map, missing_link_stack);
     Nif.NifStream(num1, s, info);
     Nif.NifStream(num2, s, info);
     for (var i3 = 0; i3 < unknown2.Count; i3++)
     {
         for (var i4 = 0; i4 < unknown2[i3].Count; i4++)
         {
             Nif.NifStream(unknown2[i3][i4], s, info);
         }
     }
 }
示例#25
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.Write(s, link_map, missing_link_stack, info);
            Nif.NifStream(handle, s, info);
        }
示例#26
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     WriteRef((NiObject)data, s, info, link_map, missing_link_stack);
 }
示例#27
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void Read(IStream s, List <uint> link_stack, NifInfo info)
        {
            base.Read(s, link_stack, info);
            Nif.NifStream(out bitsPerIndex, s, info);
            Nif.NifStream(out bitsPerWIndex, s, info);
            Nif.NifStream(out maskWIndex, s, info);
            Nif.NifStream(out maskIndex, s, info);
            Nif.NifStream(out error, s, info);
            Nif.NifStream(out boundsMin, s, info);
            Nif.NifStream(out boundsMax, s, info);
            Nif.NifStream(out weldingType, s, info);
            Nif.NifStream(out materialType, s, info);
            Nif.NifStream(out numMaterials32, s, info);
            materials32 = new uint[numMaterials32];
            for (var i1 = 0; i1 < materials32.Count; i1++)
            {
                Nif.NifStream(out materials32[i1], s, info);
            }
            Nif.NifStream(out numMaterials16, s, info);
            materials16 = new uint[numMaterials16];
            for (var i1 = 0; i1 < materials16.Count; i1++)
            {
                Nif.NifStream(out materials16[i1], s, info);
            }
            Nif.NifStream(out numMaterials8, s, info);
            materials8 = new uint[numMaterials8];
            for (var i1 = 0; i1 < materials8.Count; i1++)
            {
                Nif.NifStream(out materials8[i1], s, info);
            }
            Nif.NifStream(out numMaterials, s, info);
            chunkMaterials = new bhkCMSDMaterial[numMaterials];
            for (var i1 = 0; i1 < chunkMaterials.Count; i1++)
            {
                Nif.NifStream(out chunkMaterials[i1].material, s, info);
                if ((info.version <= 0x14000005) && ((info.userVersion2 < 16)))
                {
                    Nif.NifStream(out chunkMaterials[i1].filter.layer_ob, s, info);
                }
                if (((info.version == 0x14020007) && (info.userVersion2 <= 34)))
                {
                    Nif.NifStream(out chunkMaterials[i1].filter.layer_fo, s, info);
                }
                if (((info.version == 0x14020007) && (info.userVersion2 > 34)))
                {
                    Nif.NifStream(out chunkMaterials[i1].filter.layer_sk, s, info);
                }
                Nif.NifStream(out chunkMaterials[i1].filter.flagsAndPartNumber, s, info);
                Nif.NifStream(out chunkMaterials[i1].filter.group, s, info);
            }
            Nif.NifStream(out numNamedMaterials, s, info);
            Nif.NifStream(out numTransforms, s, info);
            chunkTransforms = new bhkCMSDTransform[numTransforms];
            for (var i1 = 0; i1 < chunkTransforms.Count; i1++)
            {
                Nif.NifStream(out chunkTransforms[i1].translation, s, info);
                Nif.NifStream(out chunkTransforms[i1].rotation.x, s, info);
                Nif.NifStream(out chunkTransforms[i1].rotation.y, s, info);
                Nif.NifStream(out chunkTransforms[i1].rotation.z, s, info);
                Nif.NifStream(out chunkTransforms[i1].rotation.w, s, info);
            }
            Nif.NifStream(out numBigVerts, s, info);
            bigVerts = new Vector4[numBigVerts];
            for (var i1 = 0; i1 < bigVerts.Count; i1++)
            {
                Nif.NifStream(out bigVerts[i1], s, info);
            }
            Nif.NifStream(out numBigTris, s, info);
            bigTris = new bhkCMSDBigTris[numBigTris];
            for (var i1 = 0; i1 < bigTris.Count; i1++)
            {
                Nif.NifStream(out bigTris[i1].triangle1, s, info);
                Nif.NifStream(out bigTris[i1].triangle2, s, info);
                Nif.NifStream(out bigTris[i1].triangle3, s, info);
                Nif.NifStream(out bigTris[i1].material, s, info);
                Nif.NifStream(out bigTris[i1].weldingInfo, s, info);
            }
            Nif.NifStream(out numChunks, s, info);
            chunks = new bhkCMSDChunk[numChunks];
            for (var i1 = 0; i1 < chunks.Count; i1++)
            {
                Nif.NifStream(out chunks[i1].translation, s, info);
                Nif.NifStream(out chunks[i1].materialIndex, s, info);
                Nif.NifStream(out chunks[i1].reference, s, info);
                Nif.NifStream(out chunks[i1].transformIndex, s, info);
                Nif.NifStream(out chunks[i1].numVertices, s, info);
                chunks[i1].vertices = new ushort[chunks[i1].numVertices];
                for (var i2 = 0; i2 < chunks[i1].vertices.Count; i2++)
                {
                    Nif.NifStream(out chunks[i1].vertices[i2], s, info);
                }
                Nif.NifStream(out chunks[i1].numIndices, s, info);
                chunks[i1].indices = new ushort[chunks[i1].numIndices];
                for (var i2 = 0; i2 < chunks[i1].indices.Count; i2++)
                {
                    Nif.NifStream(out chunks[i1].indices[i2], s, info);
                }
                Nif.NifStream(out chunks[i1].numStrips, s, info);
                chunks[i1].strips = new ushort[chunks[i1].numStrips];
                for (var i2 = 0; i2 < chunks[i1].strips.Count; i2++)
                {
                    Nif.NifStream(out chunks[i1].strips[i2], s, info);
                }
                Nif.NifStream(out chunks[i1].numWeldingInfo, s, info);
                chunks[i1].weldingInfo = new ushort[chunks[i1].numWeldingInfo];
                for (var i2 = 0; i2 < chunks[i1].weldingInfo.Count; i2++)
                {
                    Nif.NifStream(out chunks[i1].weldingInfo[i2], s, info);
                }
            }
            Nif.NifStream(out numConvexPieceA, s, info);
        }
示例#28
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     numComponents = (uint)componentFormats.Count;
     numRegions    = (uint)regions.Count;
     numBytes      = (uint)data.Count;
     Nif.NifStream(numBytes, s, info);
     Nif.NifStream(cloningBehavior, s, info);
     Nif.NifStream(numRegions, s, info);
     for (var i3 = 0; i3 < regions.Count; i3++)
     {
         Nif.NifStream(regions[i3].startIndex, s, info);
         Nif.NifStream(regions[i3].numIndices, s, info);
     }
     Nif.NifStream(numComponents, s, info);
     for (var i3 = 0; i3 < componentFormats.Count; i3++)
     {
         Nif.NifStream(componentFormats[i3], s, info);
     }
     for (var i3 = 0; i3 < data.Count; i3++)
     {
         Nif.NifStream(data[i3], s, info);
     }
     Nif.NifStream(streamable, s, info);
 }
示例#29
0
/*! NIFLIB_HIDDEN function.  For internal use only. */
        internal override void FixLinks(Dictionary <uint, NiObject> objects, List <uint> link_stack, List <NiObject> missing_link_stack, NifInfo info)
        {
            base.FixLinks(objects, link_stack, missing_link_stack, info);
        }
示例#30
0
 /*! NIFLIB_HIDDEN function.  For internal use only. */
 internal override void Write(OStream s, Dictionary <NiObject, uint> link_map, List <NiObject> missing_link_stack, NifInfo info)
 {
     base.Write(s, link_map, missing_link_stack, info);
     if (info.version >= 0x03000000 && info.version <= 0x0A000102)
     {
         Nif.NifStream(flags, s, info);
     }
     if ((info.userVersion2 < 26))
     {
         Nif.NifStream(ambientColor, s, info);
         Nif.NifStream(diffuseColor, s, info);
     }
     Nif.NifStream(specularColor, s, info);
     Nif.NifStream(emissiveColor, s, info);
     Nif.NifStream(glossiness, s, info);
     Nif.NifStream(alpha, s, info);
     if ((info.userVersion2 > 21))
     {
         Nif.NifStream(emissiveMult, s, info);
     }
 }