コード例 #1
0
        internal static W3dRingHeader Parse(BinaryReader reader)
        {
            var result = new W3dRingHeader
            {
                ChunkType = reader.ReadUInt32(),
                ChunkSize = reader.ReadUInt32() & 0x7FFFFFFF,
                Version   = reader.ReadUInt32(),
                Flags     = reader.ReadUInt32()
            };

            result.AlignedCamera   = ((result.Flags & 1) == 1);
            result.Looping         = ((result.Flags & 2) == 2);
            result.Name            = reader.ReadFixedLengthString(W3dConstants.NameLength * 2);
            result.Center          = reader.ReadVector3();
            result.Extent          = reader.ReadVector3();
            result.Duration        = reader.ReadSingle();
            result.InitialColor    = reader.ReadColorRgbF();
            result.InitialOpacity  = reader.ReadSingle();
            result.InnerScale      = reader.ReadVector2();
            result.OuterScale      = reader.ReadVector2();
            result.InnerRadii      = reader.ReadVector2();
            result.OuterRadii      = reader.ReadVector2();
            result.TextureFileName = reader.ReadFixedLengthString(W3dConstants.NameLength * 2);


            return(result);
        }
コード例 #2
0
        internal static W3dRing Parse(BinaryReader reader, W3dParseContext context)
        {
            return(ParseChunk(reader, context, header =>
            {
                var result = new W3dRing
                {
                    Header = W3dRingHeader.Parse(reader)
                };

                result.Shader = (W3dRingShaderFunc)(reader.ReadUInt32() >> 24);
                result.UnknownFlag = (reader.ReadUInt32() >> 24);  // TODO: Determine What this flag is/does.

                result.Placeholder = W3dRingPlaceholder.Parse(reader);
                result.TextureTiling = reader.ReadUInt32();
                result.ColorInfo = W3dRingColorInfo.Parse(reader);
                result.OpacityInfo = W3dRingOpacityInfo.Parse(reader);
                result.InnerScaleKeyFrames = W3dRingScaleKeyFrames.Parse(reader);
                result.OuterScaleKeyFrames = W3dRingScaleKeyFrames.Parse(reader);

                return result;
            }));
        }