static void ConvertClientVersion(int fromVersion, int toVersion, bool useAlpha) { string datFile = fromVersion.ToString() + "/Tibia.dat"; string sprFile = fromVersion.ToString() + "/Tibia.spr"; if (!File.Exists(datFile) || !File.Exists(sprFile)) { Console.WriteLine("Tibia.dat or Tibia.spr doesn't exist"); Environment.Exit(0); return; } Directory.CreateDirectory(toVersion.ToString()); string newDatFile = toVersion.ToString() + "/Tibia.dat"; string newSprFile = toVersion.ToString() + "/Tibia.spr"; var datParser = new Core.Sprites.ContentData(File.ReadAllBytes(datFile), fromVersion); datParser.Parse(); byte[] result = datParser.ConvertTo(toVersion); File.WriteAllBytes(newDatFile, result); var sprParser = new Core.Sprites.ContentSprites(File.ReadAllBytes(sprFile), fromVersion, useAlpha); sprParser.Parse(); result = sprParser.ConvertTo(toVersion); File.WriteAllBytes(newSprFile, result); Console.WriteLine("Convertion Successfull to " + toVersion + "."); }
/// <summary> /// Loads tibia.dat and generates new a list of appearances /// </summary> /// <param name="datFile">the attributes file (tibia.dat)</param> /// <param name="clientVersion">the client version of this dat</param> /// <returns></returns> static Appearances GenerateAppearances(string datFile, int clientVersion) { try { Core.Sprites.ContentData datParser = new Core.Sprites.ContentData(File.ReadAllBytes(datFile), clientVersion); datParser.Parse(); Appearances appearances = new Appearances(); for (int i = 0; i < datParser.ThingTypeDictionaries.Length; i++) { var dict = datParser.ThingTypeDictionaries[i]; foreach (var pair in dict) { Appearance appearance = GenerateAppearance(pair.Value); switch (i) { case 0: appearances.Objects.Add(appearance); break; case 1: appearances.Outfits.Add(appearance); break; case 2: appearances.Effects.Add(appearance); break; case 3: appearances.Missles.Add(appearance); break; } } } jsonTokens.Add(new AppearancesToken() { file = "appearances.dat" }); return(appearances); } catch (Exception e) { Console.WriteLine(e.Message + '\n' + e.StackTrace); Environment.Exit(0); } return(null); }