示例#1
0
        public override void Write(EndianWriter bw)
        {
            // Header
            bw.Write(new byte[512]);
            bw.Write(new byte[HeaderSize]);
            bw.BaseStream.Position = 512;

            // Init lists
            EngineManager.Engines["Halo2Xbox"]["TagIds"] = new Dictionary <string, int>();
            //EngineManager.Engines["Halo2Xbox"]["StringIds"] = new List<string>();

            // Fields
            for (int i = 0; i < Fields.Count; i++)
            {
                Fields[i].Write(bw);
            }

            // Update Header
            bw.BaseStream.Position = 0;
            bw.Write((uint)this.datum);
            bw.Write(((Dictionary <string, int>)EngineManager.Engines["Halo2Xbox"]["TagIds"]).Count);
            //bw.Write(((List<string>)EngineManager.Engines["Halo2Xbox"]["StringIds"]).Count);
            bw.Write((int)bw.BaseStream.Length);
            bw.BaseStream.Position = bw.BaseStream.Length;

            // Write Tag Reference Names
            for (int i = 0; i < ((Dictionary <string, int>)EngineManager.Engines["Halo2Xbox"]["TagIds"]).Count; i++)
            {
                bw.WriteNullTerminatingString(((Dictionary <string, int>)EngineManager.Engines["Halo2Xbox"]["TagIds"]).Keys.ElementAt(i));
            }

            // Write String Reference Names
            //for (int i = 0; i < ((List<string>)EngineManager.Engines["Halo2Xbox"]["StringIds"]).Count; i++)
            //    bw.WriteNullTerminatingString(((List<string>)EngineManager.Engines["Halo2Xbox"]["StringIds"])[i]);

            // Finish Header
            bw.BaseStream.Position = 16;
            bw.Write((int)bw.BaseStream.Length);
            bw.Write(AbsolutePath);

            // Write Raw
            bw.BaseStream.Position = bw.BaseStream.Length;
            if (RawDef != null)
            {
                RawDef.Write(bw);
            }
        }
示例#2
0
 public override void Write(EndianWriter bw)
 {
     // Write a tag_string to the stream.
     bw.WriteNullTerminatingString(this.stringConstant, 128);
 }