Ejemplo n.º 1
0
        internal static PostEffect Parse(BinaryReader reader, ushort version)
        {
            // v1 (BFME II) was hardcoded to store LookupTable's parameters.
            // v2 added a more flexible structure, generically storing the effect name and parameters.

            var result = new PostEffect
            {
                Name = reader.ReadUInt16PrefixedAsciiString()
            };

            if (version >= 2)
            {
                var numParameters = reader.ReadUInt32();
                result.Parameters = new PostEffectParameter[numParameters];
                for (var i = 0; i < numParameters; i++)
                {
                    result.Parameters[i] = PostEffectParameter.Parse(reader);
                }
            }
            else
            {
                result.BlendFactor = reader.ReadSingle();
                result.LookupImage = reader.ReadUInt16PrefixedAsciiString();
            }

            return(result);
        }
Ejemplo n.º 2
0
        internal static PostEffectsChunk Parse(BinaryReader reader, MapParseContext context)
        {
            return(ParseAsset(reader, context, version =>
            {
                var numPostEffects = version >= 2
                    ? reader.ReadUInt32()
                    : reader.ReadByte();

                var postEffects = new PostEffect[numPostEffects];

                for (var i = 0; i < numPostEffects; i++)
                {
                    postEffects[i] = PostEffect.Parse(reader, version);
                }

                return new PostEffectsChunk
                {
                    PostEffects = postEffects
                };
            }));
        }