ToID() public static method

Converts a TypeID and FileID to a ulong that can be converted to a hex string for output as XML.
public static ToID ( uint TypeID, uint FileID ) : ulong
TypeID uint A TypeID from a FAR3Entry.
FileID uint A FileID from a FAR3Entry.
return ulong
Exemplo n.º 1
0
        private static void GenerateCitiesDatabase()
        {
            Dictionary <FAR3Entry, string> CityEntries = new Dictionary <FAR3Entry, string>();

            AddFilesFromDir(GlobalSettings.Default.StartupPath + "cities\\", "", ref CityEntries);
            WriteCSEnum("packingslips\\CitiesFileIDs.cs", "CitiesFileIDs", CityEntries);

            StreamWriter Writer = new StreamWriter(File.Create(GlobalSettings.Default.StartupPath +
                                                               "packingslips\\cities.xml"));

            Writer.WriteLine("<?xml version=\"1.0\"?>");
            Writer.WriteLine("<AssetList>");

            //For some really weird reason, "key" and "assetID" are written in reverse order...
            foreach (KeyValuePair <FAR3Entry, string> KVP in CityEntries)
            {
                if (KVP.Value.Contains(".dat"))
                {
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + KVP.Value +
                                     "\" assetID=\"" + "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
                else
                {
                    DirectoryInfo DirInfo = new DirectoryInfo(KVP.Value);
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + DirInfo.Parent + "\\" +
                                     Path.GetFileName(KVP.Value) + "\" assetID=\"" + "0x" +
                                     string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
            }

            Writer.WriteLine("</AssetList>");
            Writer.Close();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Generates a database of the files in the uigraphics folder,
        /// as well as a *.cs file with an enumeration of the same files
        /// and their corresponding FileIDs.
        /// </summary>
        private static void GenerateUIGraphicsDatabase()
        {
            Dictionary <FAR3Entry, string> UIEntries = new Dictionary <FAR3Entry, string>();

            AddFilesFromDir(GlobalSettings.Default.StartupPath + "uigraphics\\", "", ref UIEntries);

            Directory.CreateDirectory("packingslips");
            WriteCSEnum("packingslips\\UIFileIDs.cs", "UIFileIDs", UIEntries);

            StreamWriter Writer = new StreamWriter(File.Create(GlobalSettings.Default.StartupPath +
                                                               "packingslips\\uigraphics.xml"));

            Writer.WriteLine("<?xml version=\"1.0\"?>");
            Writer.WriteLine("<AssetList>");

            //For some really weird reason, "key" and "assetID" are written in reverse order...
            //UI entries need to be padded out with extra 0s because there are duplicate entries.
            foreach (KeyValuePair <FAR3Entry, string> KVP in UIEntries)
            {
                if (KVP.Value.Contains(".dat"))
                {
                    /*Writer.WriteLine("  " + "<DefineAssetString key=\"" + KVP.Value +
                     *  "\" assetID=\"" + "0x" +
                     *  HelperFuncs.ApplyPadding(string.Format("{0:X}", KVP.Key.TypeID)) +
                     *  HelperFuncs.ApplyPadding(string.Format("{0:X}", KVP.Key.FileID))
                     *  .Replace("0x", "") + "\"/>");*/
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + KVP.Value +
                                     "\" assetID=\"" + "0x" +
                                     string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
                else
                {
                    /*DirectoryInfo DirInfo = new DirectoryInfo(KVP.Value);
                     * Writer.WriteLine("  " + "<DefineAssetString key=\"" + DirInfo.Parent + "\\" +
                     *  Path.GetFileName(KVP.Value) + "\" assetID=\"" +
                     *  HelperFuncs.ApplyPadding(string.Format("{0:X}", KVP.Key.TypeID)) +
                     *  HelperFuncs.ApplyPadding(string.Format("{0:X}",
                     *  KVP.Key.FileID)).Replace("0x", "") + "\"/>");*/
                    DirectoryInfo DirInfo = new DirectoryInfo(KVP.Value);
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + DirInfo.Parent + "\\" +
                                     Path.GetFileName(KVP.Value) + "\" assetID=\"" +
                                     string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
            }

            Writer.WriteLine("</AssetList>");
            Writer.Close();
        }
Exemplo n.º 3
0
        private static void WriteCSEnum(string Path, string EnumName, Dictionary <FAR3Entry, string> Entries)
        {
            StreamWriter Writer = new StreamWriter(File.Create(Path));

            Writer.WriteLine("using System;");
            Writer.WriteLine("");
            Writer.WriteLine("namespace TSOClient");
            Writer.WriteLine("{");
            Writer.WriteLine("  //Generated by Mr. Shipper - filenames have been sanitized, and does not match");
            Writer.WriteLine("  //actual filenames character for character!");
            Writer.WriteLine("  partial class FileIDs");
            Writer.WriteLine("  {");
            Writer.WriteLine("      public enum " + EnumName + " : long");
            Writer.WriteLine("      {");

            int StopCounter = 0;

            foreach (KeyValuePair <FAR3Entry, string> KVP in Entries)
            {
                StopCounter++;

                if (StopCounter < Entries.Count)
                {
                    Writer.WriteLine("          " + HelperFuncs.SanitizeFilename(KVP.Key.Filename.Replace("\\", "_")) + " = " +
                                     "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + ",");
                }
                else
                {
                    Writer.WriteLine("          " + HelperFuncs.SanitizeFilename(KVP.Key.Filename.Replace("\\", "_")) + " = " +
                                     "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)));
                }
            }

            Writer.WriteLine("      };");
            Writer.WriteLine("  }");
            Writer.WriteLine("}");
            Writer.Close();
        }
Exemplo n.º 4
0
        private static void GenerateCollectionsDatabase()
        {
            Dictionary <FAR3Entry, string> CollectionEntries = new Dictionary <FAR3Entry, string>();

            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata\\bodies\\", "collections", ref CollectionEntries);
            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata\\heads\\", "collections", ref CollectionEntries);
            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata2\\bodies\\", "collections", ref CollectionEntries);
            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata2\\heads\\", "collections", ref CollectionEntries);
            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata3\\bodies\\", "collections", ref CollectionEntries);
            AddFilesFromDir(GlobalSettings.Default.StartupPath + "avatardata3\\heads\\", "collections", ref CollectionEntries);

            StreamWriter Writer = new StreamWriter(File.Create("packingslips\\CollectionsFileIDs.cs"));

            Writer.WriteLine("using System;");
            Writer.WriteLine("");
            Writer.WriteLine("namespace TSOClient");
            Writer.WriteLine("{");
            Writer.WriteLine("  //Generated by Mr. Shipper - filenames have been sanitized, and does not match");
            Writer.WriteLine("  //actual filenames character for character!");
            Writer.WriteLine("  partial class FileIDs");
            Writer.WriteLine("  {");
            Writer.WriteLine("      public enum CollectionsFileIDs : long");
            Writer.WriteLine("      {");

            int StopCounter = 0;

            foreach (KeyValuePair <FAR3Entry, string> KVP in CollectionEntries)
            {
                StopCounter++;

                if (StopCounter < CollectionEntries.Count)
                {
                    Writer.WriteLine("          " + HelperFuncs.SanitizeFilename(Path.GetFileName(KVP.Key.Filename)) + " = " +
                                     "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + ",");
                }
                else
                {
                    Writer.WriteLine("          " + HelperFuncs.SanitizeFilename(Path.GetFileName(KVP.Key.Filename)) + " = " +
                                     "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)));
                }
            }

            Writer.WriteLine("      };");
            Writer.WriteLine("  }");
            Writer.WriteLine("}");
            Writer.Close();

            Writer = new StreamWriter(File.Create(GlobalSettings.Default.StartupPath +
                                                  "packingslips\\collections.xml"));
            Writer.WriteLine("<?xml version=\"1.0\"?>");
            Writer.WriteLine("<AssetList>");

            //For some really weird reason, "key" and "assetID" are written in reverse order...
            foreach (KeyValuePair <FAR3Entry, string> KVP in CollectionEntries)
            {
                if (KVP.Value.Contains(".dat"))
                {
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + KVP.Value +
                                     "\" assetID=\"" + "0x" + string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
                else
                {
                    DirectoryInfo DirInfo = new DirectoryInfo(KVP.Value);
                    Writer.WriteLine("  " + "<DefineAssetString key=\"" + DirInfo.Parent + "\\" +
                                     Path.GetFileName(KVP.Value) + "\" assetID=\"" + "0x" +
                                     string.Format("{0:X}", HelperFuncs.ToID(KVP.Key.TypeID, KVP.Key.FileID)) + "\"/>");
                }
            }

            Writer.WriteLine("</AssetList>");
            Writer.Close();
        }