Esempio n. 1
0
        private Dictionary <string, long> SaveInternal(Stream s, bool forReal)
        {
            var ret = new Dictionary <string, long>();
            var w   = new BinaryWriter(s);

            w.Write("BIZHAWK-CDL-2");
            w.Write(SubType.PadRight(15));
            w.Write(Count);
            w.Flush();
            long addr = s.Position;

            if (forReal)
            {
                foreach (var kvp in this)
                {
                    w.Write(kvp.Key);
                    w.Write(kvp.Value.Length);
                    w.Write(kvp.Value);
                }
            }
            else
            {
                foreach (var kvp in this)
                {
                    addr        += kvp.Key.Length + 1;              //assumes shortly-encoded key names
                    addr        += 4;
                    ret[kvp.Key] = addr;
                    addr        += kvp.Value.Length;
                }
            }

            w.Flush();
            return(ret);
        }