Exemple #1
0
        private void ComputeMultiDat(string ShortName, ushort [,] ClientMap)
        {
            FileStream   MapFile = File.Create(ShortName + ".dat");
            BinaryWriter Bw      = new BinaryWriter(MapFile);

            MapIndexRecord [] IdIndex = new MapIndexRecord[24 * 24 * 2];

            //reserve size for the IdIndex
            for (int i = 0; i < 24 * 24 * 2; i++)
            {
                Bw.Write((UInt64)0);
            }


            int  ZoneCount   = 3072 / 128;
            int  ActualIndex = 0;
            uint Position    = 24 * 24 * 2 * 8;

            for (int j = 0; j < ZoneCount; j++)
            {
                for (int i = 0; i < ZoneCount; i++)
                {
                    //compute even zone
                    IdIndex[ActualIndex].Index     = Position;
                    IdIndex[ActualIndex].IndexSize = MakeZone(i * 128, j * 128, ClientMap, Bw);
                    Position += IdIndex[ActualIndex].IndexSize * 2;
                    ActualIndex++;
                    //compute Odd zone
                    IdIndex[ActualIndex].Index     = Position;
                    IdIndex[ActualIndex].IndexSize = MakeZone(i * 128, j * 128, ClientMap, Bw);
                    Position += IdIndex[ActualIndex].IndexSize * 2;
                    ActualIndex++;
                }
            }

            Bw.BaseStream.Seek(0, SeekOrigin.Begin);

            for (int i = 0; i < IdIndex.Length; i++)
            {
                Bw.Write(IdIndex[i].Index);
                Bw.Write(IdIndex[i].IndexSize);
            }
        }
Exemple #2
0
        private void ComputeMultiDat(string ShortName,ushort [,] ClientMap)
        {
            FileStream MapFile = File.Create(ShortName+".dat");
            BinaryWriter Bw = new BinaryWriter(MapFile);

            MapIndexRecord [] IdIndex=new MapIndexRecord[24*24*2];

            //reserve size for the IdIndex
            for (int i = 0; i < 24 * 24 * 2; i++)
                Bw.Write((UInt64)0);

            int ZoneCount = 3072 / 128;
            int ActualIndex = 0;
            uint Position = 24 * 24 * 2 * 8;

            for (int j=0;j<ZoneCount;j++)
                for (int i = 0; i < ZoneCount; i++)
                {
                    //compute even zone
                    IdIndex[ActualIndex].Index = Position;
                    IdIndex[ActualIndex].IndexSize = MakeZone(i * 128, j * 128, ClientMap, Bw);
                    Position += IdIndex[ActualIndex].IndexSize * 2;
                    ActualIndex++;
                    //compute Odd zone
                    IdIndex[ActualIndex].Index = Position;
                    IdIndex[ActualIndex].IndexSize = MakeZone(i * 128, j * 128, ClientMap, Bw);
                    Position += IdIndex[ActualIndex].IndexSize * 2;
                    ActualIndex++;
                }

            Bw.BaseStream.Seek(0, SeekOrigin.Begin);

            for (int i = 0; i < IdIndex.Length; i++)
            {
                Bw.Write(IdIndex[i].Index);
                Bw.Write(IdIndex[i].IndexSize);
            }
        }