Ejemplo n.º 1
0
        public void Read(BinaryReader reader, int length)
        {
            CamTrigger.Header1 = reader.ReadUInt32();
            CamTrigger.Enabled = reader.ReadUInt32();
            CamTrigger.HeaderT = reader.ReadSingle();
            CamTrigger.Rotation.Read(reader, Constants.SIZE_VECTOR4);
            CamTrigger.Position.Read(reader, Constants.SIZE_VECTOR4);
            CamTrigger.Scale.Read(reader, Constants.SIZE_VECTOR4);
            reader.ReadUInt32();
            UInt32 instances_cnt = reader.ReadUInt32();

            CamTrigger.HeaderH = reader.ReadUInt32();
            CamTrigger.Instances.Clear();
            for (int i = 0; i < instances_cnt; ++i)
            {
                CamTrigger.Instances.Add(reader.ReadUInt16());
            }
            // Camera
            CameraHeader = reader.ReadUInt32();
            UnkShort     = reader.ReadUInt16();
            UnkFloat1    = reader.ReadSingle();
            UnkVector1.Read(reader, Constants.SIZE_VECTOR4);
            UnkVector2.Read(reader, Constants.SIZE_VECTOR4);
            UnkFloat2  = reader.ReadSingle();
            UnkFloat3  = reader.ReadSingle();
            UnkInt1    = reader.ReadUInt32();
            UnkInt2    = reader.ReadUInt32();
            UnkInt3    = reader.ReadUInt32();
            UnkInt4    = reader.ReadUInt32();
            UnkInt5    = reader.ReadUInt32();
            UnkInt6    = reader.ReadUInt32();
            UnkFloat4  = reader.ReadSingle();
            UnkFloat5  = reader.ReadSingle();
            UnkFloat6  = reader.ReadSingle();
            UnkFloat7  = reader.ReadSingle();
            UnkInt7    = reader.ReadUInt32();
            UnkInt8    = reader.ReadUInt32();
            UnkInt9    = reader.ReadUInt32();
            UnkFloat8  = reader.ReadSingle();
            TypeIndex1 = reader.ReadUInt32();
            TypeIndex2 = reader.ReadUInt32();
            UnkByte    = reader.ReadByte();
            if (TypeIndex1 != 3 && subCamIdToCamera.ContainsKey(TypeIndex1))
            {
                MainCamera1 = (CameraSubBase)Activator.CreateInstance(subCamIdToCamera[TypeIndex1]);
                MainCamera1.Read(reader, MainCamera1.GetLength());
            }
            if (TypeIndex2 != 3 && subCamIdToCamera.ContainsKey(TypeIndex2))
            {
                MainCamera2 = (CameraSubBase)Activator.CreateInstance(subCamIdToCamera[TypeIndex2]);
                MainCamera2.Read(reader, MainCamera2.GetLength());
            }
        }
Ejemplo n.º 2
0
 public void Write(BinaryWriter writer)
 {
     writer.Write(CamTrigger.Header1);
     writer.Write(CamTrigger.Enabled);
     writer.Write(CamTrigger.HeaderT);
     CamTrigger.Rotation.Write(writer);
     CamTrigger.Position.Write(writer);
     CamTrigger.Scale.Write(writer);
     writer.Write(CamTrigger.Instances.Count);
     writer.Write(CamTrigger.Instances.Count);
     writer.Write(CamTrigger.HeaderH);
     for (int i = 0; i < CamTrigger.Instances.Count; ++i)
     {
         writer.Write(CamTrigger.Instances[i]);
     }
     //
     writer.Write(CameraHeader);
     writer.Write(UnkShort);
     writer.Write(UnkFloat1);
     UnkVector1.Write(writer);
     UnkVector2.Write(writer);
     writer.Write(UnkFloat2);
     writer.Write(UnkFloat3);
     writer.Write(UnkInt1);
     writer.Write(UnkInt2);
     writer.Write(UnkInt3);
     writer.Write(UnkInt4);
     writer.Write(UnkInt5);
     writer.Write(UnkInt6);
     writer.Write(UnkFloat4);
     writer.Write(UnkFloat5);
     writer.Write(UnkFloat6);
     writer.Write(UnkFloat7);
     writer.Write(UnkInt7);
     writer.Write(UnkInt8);
     writer.Write(UnkInt9);
     writer.Write(UnkFloat8);
     writer.Write(TypeIndex1);
     writer.Write(TypeIndex2);
     writer.Write(UnkByte);
     if (MainCamera1 != null)
     {
         MainCamera1.Write(writer);
     }
     if (MainCamera2 != null)
     {
         MainCamera2.Write(writer);
     }
 }
Ejemplo n.º 3
0
        public void Write(BinaryWriter writer)
        {
            writer.Write(ShaderType);
            switch (ShaderType)
            {
            case 23:
                writer.Write(IntParam);
                writer.Write(FloatParam[0]);
                writer.Write(FloatParam[1]);
                break;

            case 26:
                writer.Write(IntParam);
                writer.Write(FloatParam[0]);
                writer.Write(FloatParam[1]);
                writer.Write(FloatParam[2]);
                writer.Write(FloatParam[3]);
                break;

            case 16:
            case 17:
                writer.Write(FloatParam[0]);
                break;

            default:
                break;
            }
            if (Blob != null)
            {
                bitfieldData[29] = 1;
            }
            else
            {
                bitfieldData[29] = 0;
            }
            writer.Write(bitfieldData);
            writer.Write(UnkShort1);
            writer.Write(UnkShort2);
            UnkVector1.Write(writer);
            UnkVector2.Write(writer);
            UnkVector3.Write(writer);
            writer.Write(TextureId);
            writer.Write(UnkInt2);
            if (Blob != null)
            {
                Blob.Write(writer);
            }
        }
Ejemplo n.º 4
0
        public void Read(BinaryReader reader, int length)
        {
            ShaderType = reader.ReadUInt32();
            switch (ShaderType)
            {
            case 23:
                IntParam      = reader.ReadUInt32();
                FloatParam[0] = reader.ReadSingle();
                FloatParam[1] = reader.ReadSingle();
                break;

            case 26:
                IntParam      = reader.ReadUInt32();
                FloatParam[0] = reader.ReadSingle();
                FloatParam[1] = reader.ReadSingle();
                FloatParam[2] = reader.ReadSingle();
                FloatParam[3] = reader.ReadSingle();
                break;

            case 16:
            case 17:
                FloatParam[0] = reader.ReadSingle();
                break;

            default:
                break;
            }
            reader.Read(bitfieldData, 0, bitfieldData.Length);
            //bitfield = reader.ReadUInt64();
            UnkShort1 = reader.ReadUInt16();
            UnkShort2 = reader.ReadUInt16();
            UnkVector1.Read(reader, Constants.SIZE_VECTOR4);
            UnkVector2.Read(reader, Constants.SIZE_VECTOR4);
            UnkVector3.Read(reader, Constants.SIZE_VECTOR4);
            TextureId = reader.ReadUInt32();
            UnkInt2   = reader.ReadUInt32();
            if (bitfieldData[29] != 0)
            {
                Blob = new TwinBlob();
                Blob.Read(reader, 0);
            }
        }
Ejemplo n.º 5
0
        public void Read(BinaryReader reader, int length, bool Demo = false)
        {
            ShaderType = reader.ReadUInt32();
            switch (ShaderType)
            {
            case 23:
                IntParam      = reader.ReadUInt32();
                FloatParam[0] = reader.ReadSingle();
                FloatParam[1] = reader.ReadSingle();
                break;

            case 26:
                IntParam      = reader.ReadUInt32();
                FloatParam[0] = reader.ReadSingle();
                FloatParam[1] = reader.ReadSingle();
                FloatParam[2] = reader.ReadSingle();
                FloatParam[3] = reader.ReadSingle();
                break;

            case 16:
            case 17:
                FloatParam[0] = reader.ReadSingle();
                break;

            default:
                break;
            }
            ABlending             = (AlphaBlending)reader.ReadByte();
            AlphaRegSettingsIndex = reader.ReadByte();
            ATest       = (AlphaTest)reader.ReadByte();
            ATestMethod = (AlphaTestMethod)reader.ReadByte();
            AlphaValueToBeComparedTo         = reader.ReadByte();
            ProcessMethodWhenAlphaTestFailed = (ProcessAfterAlphaTestFailed)reader.ReadByte();
            DAlphaTest     = (DestinationAlphaTest)reader.ReadByte();
            DAlphaTestMode = (DestinationAlphaTestMode)reader.ReadByte();
            DepthTest      = (DepthTestMethod)reader.ReadByte();
            UnkVal1        = reader.ReadByte();
            ShdMethod      = (ShadingMethod)reader.ReadByte();
            TxtMapping     = (TextureMapping)reader.ReadByte();
            MethodOfSpecifyingTextureCoordinates = (TextureCoordinatesSpecification)reader.ReadByte();
            Fog        = (Fogging)reader.ReadByte();
            ContextNum = (Context)reader.ReadByte();
            UnkVal2    = reader.ReadByte();
            UnkVal3    = reader.ReadByte();
            UsePresetAlphaRegSettings = reader.ReadBoolean();
            SpecOfColA      = (ColorSpecMethod)reader.ReadByte();
            SpecOfColB      = (ColorSpecMethod)reader.ReadByte();
            SpecOfAlphaC    = (AlphaSpecMethod)reader.ReadByte();
            SpecOfColD      = (ColorSpecMethod)reader.ReadByte();
            FixedAlphaValue = reader.ReadByte();
            TextureFilterWhenTextureIsExpanded = (TextureFilter)reader.ReadByte();
            AlphaCorrectionValue = reader.ReadBoolean();
            UnkFlag1             = reader.ReadBoolean();
            UnkFlag2             = reader.ReadBoolean();
            ZValueDrawingMask    = (ZValueDrawMask)reader.ReadByte();
            if (!Demo)
            {
                UnkFlag3 = reader.ReadBoolean();
                BlobFlag = reader.ReadBoolean();
                isDemo   = false;
            }
            else
            {
                UnkFlag3 = false;
                BlobFlag = false;
                isDemo   = true;
            }
            LodParamK = reader.ReadUInt16();
            LodParamL = reader.ReadUInt16();
            UnkVector1.Load(reader, 16);
            UnkVector2.Load(reader, 16);
            UnkVector3.Load(reader, 16);
            TextureId = reader.ReadUInt32();
            reader.ReadUInt32(); // Shader type
        }
Ejemplo n.º 6
0
        public void Write(BinaryWriter writer)
        {
            writer.Write(ShaderType);
            switch (ShaderType)
            {
            case 23:
                writer.Write(IntParam);
                writer.Write(FloatParam[0]);
                writer.Write(FloatParam[1]);
                break;

            case 26:
                writer.Write(IntParam);
                writer.Write(FloatParam[0]);
                writer.Write(FloatParam[1]);
                writer.Write(FloatParam[2]);
                writer.Write(FloatParam[3]);
                break;

            case 16:
            case 17:
                writer.Write(FloatParam[0]);
                break;

            default:
                break;
            }
            writer.Write((byte)ABlending);
            writer.Write(AlphaRegSettingsIndex);
            writer.Write((byte)ATest);
            writer.Write((byte)ATestMethod);
            writer.Write(AlphaValueToBeComparedTo);
            writer.Write((byte)ProcessMethodWhenAlphaTestFailed);
            writer.Write((byte)DAlphaTest);
            writer.Write((byte)DAlphaTestMode);
            writer.Write((byte)DepthTest);
            writer.Write(UnkVal1);
            writer.Write((byte)ShdMethod);
            writer.Write((byte)TxtMapping);
            writer.Write((byte)MethodOfSpecifyingTextureCoordinates);
            writer.Write((byte)Fog);
            writer.Write((byte)ContextNum);
            writer.Write(UnkVal2);
            writer.Write(UnkVal3);
            writer.Write(UsePresetAlphaRegSettings);
            writer.Write((byte)SpecOfColA);
            writer.Write((byte)SpecOfColB);
            writer.Write((byte)SpecOfAlphaC);
            writer.Write((byte)SpecOfColD);
            writer.Write(FixedAlphaValue);
            writer.Write((byte)TextureFilterWhenTextureIsExpanded);
            writer.Write(AlphaCorrectionValue);
            writer.Write(UnkFlag1);
            writer.Write(UnkFlag2);
            writer.Write((byte)ZValueDrawingMask);
            if (!isDemo)
            {
                writer.Write(UnkFlag3);
                writer.Write(BlobFlag);
            }
            writer.Write(LodParamK);
            writer.Write(LodParamL);
            UnkVector1.Save(writer);
            UnkVector2.Save(writer);
            UnkVector3.Save(writer);
            writer.Write(TextureId);
            writer.Write(ShaderType);
        }