Exemplo n.º 1
0
 internal void AddSaveGamePaths(Ambertation.CaseInvariantArrayList realsavegames)
 {
     foreach (string s in savegames)
     {
         string pt = GetRealPath(s);
         if (System.IO.Directory.Exists(pt))
         {
             realsavegames.Add(pt);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Adds a Folder to the list of FileTable Folders
        /// </summary>
        /// <param name="list">List to add to</param>
        /// <param name="fodler">The folder to add</param>
        /// <remarks>Use <code>&lt;</code> to insert a folder at the beginning of the specific list</remarks>
        /// <param name="folder"></param>
        void AddFileTableFolder(Ambertation.CaseInvariantArrayList list, string folder)
        {
            bool begin = false;

            if (folder.StartsWith("<"))
            {
                folder = folder.Substring(1);
                begin  = true;
            }

            if (!list.Contains(folder))
            {
                if (begin)
                {
                    list.Insert(0, folder);
                }
                else
                {
                    list.Add(folder);
                }
            }
        }
Exemplo n.º 3
0
        internal ExpansionItem(XmlRegistryKey key)
        {
            filtablefolders          = new Ambertation.CaseInvariantArrayList();
            preobjectfiltablefolders = new Ambertation.CaseInvariantArrayList();


            shortname   = "Unk.";
            shortername = "Unknown";
            longname    = "The Sims 2 - Unknown";
            namelistnr  = "0";
            if (key != null)
            {
                name = key.Name;
                ;
                XmlRegistryKey lang = key.OpenSubKey(System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLower(), false);
                if (lang == null)
                {
                    lang = key.OpenSubKey(System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower(), false);
                }


                version        = (int)key.GetValue("Version", 0);
                runtimeversion = (int)key.GetValue("PreferedRuntimeVersion", version);
                exp            = (Expansions)(Math.Pow(2, version));

                int    isnum = -1;
                object o     = key.GetValue("RegKey", null);
                if (o is string)
                {
                    rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey((string)o, false);
                }
                else if (o is Ambertation.CaseInvariantArrayList)
                {
                    foreach (string s in (Ambertation.CaseInvariantArrayList)o)
                    {
                        isnum++;
                        rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(s, false);
                        if (rk != null)
                        {
                            break;
                        }
                    }
                }
                if (rk == null)
                {
                    isnum = -1;
                }
                o = key.GetValue("InstallSuffix", null);
                if (o is string)
                {
                    installsuffix = (string)o;
                }
                else if (o is Ambertation.CaseInvariantArrayList && isnum >= 0 && isnum < ((Ambertation.CaseInvariantArrayList)o).Count)
                {
                    installsuffix = (string)((Ambertation.CaseInvariantArrayList)o)[isnum];
                }

                exe       = (string)key.GetValue("ExeName", "Sims2.exe");
                flag      = new Flags((int)key.GetValue("Flag", 0));
                censor    = (string)key.GetValue("Censor", "");
                group     = (int)key.GetValue("Group", 1);
                objfolder = (string)key.GetValue("ObjectsFolder", "TSData" + Helper.PATH_SEP + "Res" + Helper.PATH_SEP + "Objects");

                simnamedeep = (Ambertation.CaseInvariantArrayList)key.GetValue("SimNameDeepSearch", new Ambertation.CaseInvariantArrayList());
                savegames   = (Ambertation.CaseInvariantArrayList)key.GetValue("SaveGameLocationsForGroup", new Ambertation.CaseInvariantArrayList());
                if (savegames.Count == 0)
                {
                    savegames.Add(PathProvider.SimSavegameFolder);
                }

                Ambertation.CaseInvariantArrayList ftf = (Ambertation.CaseInvariantArrayList)key.GetValue("FileTableFolders", new Ambertation.CaseInvariantArrayList());
                if (ftf.Count == 0)
                {
                    SetDefaultFileTableFolders();
                }
                else
                {
                    foreach (string folder in ftf)
                    {
                        AddFileTableFolder(folder);
                    }
                }

                ftf = (Ambertation.CaseInvariantArrayList)key.GetValue("AdditionalFileTableFolders", new Ambertation.CaseInvariantArrayList());
                foreach (string folder in ftf)
                {
                    AddFileTableFolder(folder);
                }

                System.Diagnostics.Debug.WriteLine(this.ToString());

                namelistnr = (string)key.GetValue("namelistnr", "0");
                string dname = name;
                if (lang != null)
                {
                    shortname   = (string)lang.GetValue("short", name);
                    shortername = (string)lang.GetValue("name", shortname);
                    if (rk != null)
                    {
                        dname = (string)rk.GetValue("DisplayName", shortername);
                    }
                    longname = (string)lang.GetValue("long", dname);
                }
                else //1. check the resource files, then try default language, then set to defaults
                {
                    if (lang == null)
                    {
                        lang = key.OpenSubKey("en", false);
                    }
                    shortname   = SimPe.Localization.GetString("EP SNAME " + version);
                    shortername = shortname;

                    if (shortname == "EP SNAME " + version && lang != null)
                    {
                        shortname   = (string)lang.GetValue("short", name);
                        shortername = (string)lang.GetValue("name", shortname);
                    }
                    if (shortname == "EP SNAME " + version)
                    {
                        shortname = name;
                    }

                    if (rk != null)
                    {
                        dname = (string)rk.GetValue("DisplayName", shortername);
                    }

                    longname = SimPe.Localization.GetString("EP NAME " + version);
                    if (longname == "EP NAME " + version && lang != null)
                    {
                        longname = (string)lang.GetValue("long", dname);
                    }
                    if (longname == "EP NAME " + version)
                    {
                        longname = dname;
                    }
                }
            }
            else
            {
                name           = "NULL";
                flag           = new Flags(0);
                censor         = "";
                exe            = "";
                exp            = (Expansions)0;
                version        = -1;
                runtimeversion = -1;
                simnamedeep    = new Ambertation.CaseInvariantArrayList();
                savegames      = new Ambertation.CaseInvariantArrayList();
                savegames.Add(PathProvider.SimSavegameFolder);


                SetDefaultFileTableFolders();
                objfolder = "TSData" + Helper.PATH_SEP + "Res" + Helper.PATH_SEP + "Objects";
                group     = 0;
            }



            BuildGroupList();
            sname = GetShortName();
        }