Пример #1
0
        public override void Write(EndianBinaryWriter writer, ISection section = null)
        {
            // Update the format if needed for future parsing
            if (!ScriptUtilities.GetScriptFormats(Format).Contains(ScriptFormat))
            {
                ScriptFormat = ScriptUtilities.GetDefaultScriptFormat(Format);
            }

            bool modern = BinaryFormatUtilities.IsModern(Format);

            if (modern)
            {
                // TODO: write header
                throw new NotImplementedException();
            }
            else
            {
                writer.Write(ScriptFormat);
            }

            WriteCommands(writer);

            if (modern)
            {
                // TODO: write EOFC
                throw new NotImplementedException();
            }
        }
Пример #2
0
        private static BinaryFormat DetermineFormat(uint scriptFormat)
        {
            for (BinaryFormat i = BinaryFormat.DT; i < BinaryFormat.X; i++)
            {
                foreach (var format in ScriptUtilities.GetScriptFormats(i))
                {
                    if (format == scriptFormat)
                    {
                        return(i);
                    }
                }
            }

            throw new Exception($"Unknown script format: 0x{scriptFormat:X8}");
        }