Exemplo n.º 1
0
        public void SaveToDisk(string path)
        {
            string temp = System.IO.Path.GetTempPath();

            if (Directory.Exists(temp + @"HaRepacker$temp.build"))
            {
                WzTools.DelDir(temp + @"HaRepacker$temp.build");
            }
            WzTools.CreateWzKey(this.type);
            this.CreateVersionHash();
            this.wzDir.SetHash(this.versionHash);
            Directory.CreateDirectory(temp + @"HaRepacker$temp.build");
            this.wzDir.GenerateDataFile(temp + @"HaRepacker$temp.build");
            uint         imgOffsets = this.wzDir.GetImgOffsets(this.wzDir.GetOffsets(0x3e));
            BinaryWriter wzWriter   = new BinaryWriter(File.Create(path));

            for (int i = 0; i < 4; i++)
            {
                wzWriter.Write((byte)this.ident[i]);
            }
            wzWriter.Write((long)(imgOffsets - 60));
            wzWriter.Write(60);
            WzTools.WriteNullTerminatedString(wzWriter, "Package file v1.0 Copyright 2002 Wizet, ZMS");
            wzWriter.Write(this.version);
            this.wzDir.SaveDirectory(wzWriter);
            this.wzDir.SaveImages(wzWriter, temp + @"HaRepacker$temp.build");
            wzWriter.Close();
            WzTools.DelDir(temp + @"\HaRepacker$temp.build");
        }