Exemple #1
0
        /// <summary>
        /// Show the Graph
        /// </summary>
        /// <param name="pkg"></param>
        /// <param name="fileindex"></param>
        /// <remarks>Do not run twice</remarks>
        public void BuildGraph(SimPe.Interfaces.Files.IPackageFile pkg, SimPe.Interfaces.Scenegraph.IScenegraphFileIndex fileindex)
        {
            gc.BeginUpdate();
            gc.Clear();
            gc.SaveBounds = false;
            gc.AutoSize   = true;
            this.coords.Clear();
            this.names.Clear();
            if (WaitingScreen.Running)
            {
                WaitingScreen.UpdateMessage("Scaning MMAT Tree");
            }
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.MMAT);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                AddItem(pfd, pkg, null, fileindex);
            }

            if (WaitingScreen.Running)
            {
                WaitingScreen.UpdateMessage("Scaning CRES Tree");
            }
            pfds = pkg.FindFiles(Data.MetaData.CRES);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                AddItem(pfd, pkg, null, fileindex);
            }

            gc.AutoSize   = false;
            gc.SaveBounds = true;
            gc.EndUpdate();
        }
Exemple #2
0
        public override void SetFromPackage(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            if (pkg == null)
            {
                objd = null;
                ClearScreen();
                return;
            }

            //this is a regular Object?
            if (pkg.FindFiles(Data.MetaData.OBJD_FILE).Length > 0)
            {
                cpf = null;
                base.SetFromPackage(pkg);
                return;
            }

            objd = null;



            foreach (uint t in xtypes)
            {
                SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(t);
                if (pfds.Length > 0)
                {
                    cpf = new SimPe.PackedFiles.Wrapper.Cpf();
                    cpf.ProcessData(pfds[0], pkg);
                    break;
                }
            }

            UpdateXObjScreen();
        }
Exemple #3
0
 public SimPe.Cache.PackageType GetType(SimPe.Interfaces.Files.IPackageFile pkg)
 {
     if (pkg.FindFiles(Data.MetaData.IDNO).Length != 0)
     {
         return(SimPe.Cache.PackageType.Neighborhood);
     }
     if (pkg.FindFiles(Data.MetaData.HOUS).Length != 0)
     {
         return(SimPe.Cache.PackageType.Lot);
     }
     return(SimPe.Cache.PackageType.Unknown);
 }
Exemple #4
0
 public SimPe.Cache.PackageType GetType(SimPe.Interfaces.Files.IPackageFile pkg)
 {
     if (pkg.FindFiles(0xCCCEF852).Length != 0)
     {
         return(SimPe.Cache.PackageType.Sim);                                                 //Facial Structure
     }
     if (pkg.FindFiles(0xAC598EAC).Length != 0)
     {
         return(SimPe.Cache.PackageType.Sim);                                                 //Age Data
     }
     return(SimPe.Cache.PackageType.Unknown);
 }
Exemple #5
0
        /// <summary>
        /// Add Resources referenced from 3IDR Files
        /// </summary>
        /// <param name="names"></param>
        public void AddFrom3IDR(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.REF_FILE);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.Plugin.RefFile re = new RefFile();
                re.ProcessData(pfd, pkg);

                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor p in re.Items)
                {
                    SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFile(p, null);
                    foreach (SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem item in items)
                    {
                        try
                        {
                            SimPe.Plugin.GenericRcol sub = new GenericRcol(null, false);
                            sub.ProcessData(item);
                            LoadReferenced(this.modelnames, this.exclude, files, itemlist, sub, item, true, setup);
                        }
                        catch (Exception ex)
                        {
                            if (Helper.DebugMode)
                            {
                                Helper.ExceptionMessage("", ex);
                            }
                        }
                    }
                }
            }
        }
Exemple #6
0
        void DeleteFamMembers(uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(0x46414D49);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.PackedFiles.Wrapper.Fami f = new SimPe.PackedFiles.Wrapper.Fami(null);
                f.ProcessData(pfd, pkg);



                ArrayList list = new ArrayList();
                foreach (uint i in f.Members)
                {
                    if (i != guid)
                    {
                        list.Add(i);
                    }
                }

                f.Members = new uint[list.Count];
                list.CopyTo(f.Members);


                f.SynchronizeUserData();
            }
        }
Exemple #7
0
        private bool IsReallyEnabled(SimPe.Interfaces.Files.IPackedFileDescriptor pfd, SimPe.Interfaces.Files.IPackageFile package)
        {
            if (System.IO.File.Exists(DefaultCareerFile))
            {
                return(true);
            }

            if (package == null)
            {
                System.Windows.Forms.MessageBox.Show("You do not have a package open and the Default Career File was not found.");
                return(false);
            }
            Interfaces.Files.IPackedFileDescriptor[] globals = package.FindFiles(Data.MetaData.GLOB_FILE);
            if (globals.Length == 1)
            {
                SimPe.Plugin.Glob glob = new SimPe.Plugin.Glob();
                glob.ProcessData(globals[0], package);
                if (glob.SemiGlobalName == "JobDataGlobals")
                {
                    return(true);
                }
            }
            System.Windows.Forms.MessageBox.Show("This package does not contain a career.");
            return(false);
        }
Exemple #8
0
        void DeleteRelations(uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.SIM_DESCRIPTION_FILE);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                if (pfd.Instance == inst)
                {
                    continue;
                }

                ArrayList list = new ArrayList();
                SimPe.PackedFiles.Wrapper.ExtSDesc sdsc = new SimPe.PackedFiles.Wrapper.ExtSDesc();
                sdsc.ProcessData(pfd, pkg);

                foreach (uint i in sdsc.Relations.SimInstances)
                {
                    if (i != inst)
                    {
                        list.Add((ushort)i);
                    }
                }

                if (list.Count < sdsc.Relations.SimInstances.Length)
                {
                    sdsc.Relations.SimInstances = new ushort[list.Count];
                    list.CopyTo(sdsc.Relations.SimInstances);

                    sdsc.SynchronizeUserData();
                }
            }
        }
Exemple #9
0
        public static SimPe.Cache.ObjectCacheItem ObjectCacheItemFromPackage(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Cache.ObjectCacheItem oci = new SimPe.Cache.ObjectCacheItem();

            oci.Class = SimPe.Cache.ObjectClass.Object;


            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.OBJD_FILE);
            bool first = true;

            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFile(pfd, pkg);
                foreach (SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem item in items)
                {
                    if (first || item.FileDescriptor.Instance == 0x41A7 || item.FileDescriptor.Instance == 0x41AF)
                    {
                        oci.Tag     = item;
                        oci.Useable = false;

                        ObjectConsumer.DoConsume(oci, null, Helper.WindowsRegistry.LanguageCode);

                        first = false;
                    }
                }
            }

            return(oci);
        }
Exemple #10
0
        /// <summary>
        /// Find the GMND that is referencing the passed gmdc
        /// </summary>
        /// <param name="gmdc"></param>
        /// <param name="flname">null, or the Filename of a package to search in</param>
        /// <returns>null or the found gmnd</returns>
        public Rcol FindReferencingGMND(Rcol gmdc, string flname)
        {
            if (gmdc == null)
            {
                return(null);
            }

            SimPe.Interfaces.Files.IPackageFile lpackage = package;
            if (flname != null)
            {
                lpackage = SimPe.Packages.File.LoadFromFile(flname);
            }

            Interfaces.Files.IPackedFileDescriptor[] pfds = lpackage.FindFiles(0x7BA3838C);
            foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                Rcol rcol = new GenericRcol(null, false);
                rcol.ProcessData(pfd, lpackage);
                foreach (Interfaces.Files.IPackedFileDescriptor rpfd in rcol.ReferencedFiles)
                {
                    if ((gmdc.FileDescriptor.Group == rpfd.Group) &&
                        (gmdc.FileDescriptor.Instance == rpfd.Instance) &&
                        (gmdc.FileDescriptor.SubType == rpfd.SubType) &&
                        (gmdc.FileDescriptor.Type == rpfd.Type))
                    {
                        return(rcol);
                    }
                }
            }

            return(null);
        }
Exemple #11
0
        /// <summary>
        /// Find the SHPE that is referencing the passed GMND
        /// </summary>
        /// <param name="gmnd"></param>
        /// <param name="flname">null, or the Filename of a package to search in</param>
        /// <returns>null or the first found shpe</returns>
        public Rcol FindReferencingSHPE(Rcol gmnd, string flname)
        {
            if (gmnd == null)
            {
                return(null);
            }

            SimPe.Interfaces.Files.IPackageFile lpackage = package;
            if (flname != null)
            {
                lpackage = SimPe.Packages.File.LoadFromFile(flname);
            }

            Interfaces.Files.IPackedFileDescriptor[] pfds = lpackage.FindFiles(0xFC6EB1F7);
            foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                Rcol rcol = new GenericRcol(null, false);
                rcol.ProcessData(pfd, lpackage);

                Shape shp = (Shape)rcol.Blocks[0];
                foreach (ShapeItem i in shp.Items)
                {
                    if (Hashes.StripHashFromName(i.FileName).Trim().ToLower() == Hashes.StripHashFromName(gmnd.FileName).Trim().ToLower())
                    {
                        return(rcol);
                    }
                }
            }

            return(null);
        }
Exemple #12
0
        /// <summary>
        /// Loads Slave TXMTs by name Replacement
        /// </summary>
        /// <param name="pkg">the package File with the base TXMTs</param>
        /// <param name="slaves">The Hashtable holding als Slave Subsets</param>
        public static void AddSlaveTxmts(SimPe.Interfaces.Files.IPackageFile pkg, Hashtable slaves)
        {
            ArrayList files = new ArrayList();
            ArrayList items = new ArrayList();

            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.TXMT);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                GenericRcol rcol = new GenericRcol(null, false);
                rcol.ProcessData(pfd, pkg);

                if (rcol.FileDescriptor.Type == Data.MetaData.TXMT)
                {
                    AddSlaveTxmts(new ArrayList(), new ArrayList(), files, items, rcol, slaves);
                }
            }

            foreach (GenericRcol rcol in files)
            {
                if (pkg.FindFile(rcol.FileDescriptor) == null)
                {
                    rcol.FileDescriptor = rcol.FileDescriptor.Clone();
                    rcol.SynchronizeUserData();
                    pkg.Add(rcol.FileDescriptor);
                }
            }
        }
Exemple #13
0
        protected void GetObjd(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.OBJD_FILE);
            if (pfds.Length > 0)
            {
                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    SimPe.PackedFiles.Wrapper.ExtObjd mobjd = new SimPe.PackedFiles.Wrapper.ExtObjd();
                    mobjd.ProcessData(pfd, pkg);

                    nfo.AddGuid(mobjd.Guid);

                    if (objd == null)
                    {
                        objd = mobjd;
                    }
                    if (pfds.Length == 1)
                    {
                        break;
                    }
                    if (mobjd.Data.Length > 0xb)
                    {
                        if (mobjd.Data[0xb] == -1)
                        {
                            objd = mobjd;
                        }
                    }
                }
            }
        }
Exemple #14
0
        public SimPe.Cache.PackageType GetType(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            if (pkg.FindFiles(Data.MetaData.OBJD_FILE).Length == 0)
            {
                return(SimPe.Cache.PackageType.Unknown);
            }

            if (pkg.FindFiles(0x484F5553).Length > 0)
            {
                return(SimPe.Cache.PackageType.Lot);                                                //HOUS Resources
            }
            if (pkg.FindFilesByGroup(Data.MetaData.CUSTOM_GROUP).Length > 0)
            {
                return(SimPe.Cache.PackageType.Object);
            }
            else
            {
                return(SimPe.Cache.PackageType.MaxisObject);
            }
        }
Exemple #15
0
 void DeleteRes(uint type, uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
 {
     SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(type);
     foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
     {
         if (pfd.Instance == inst)
         {
             pfd.MarkForDelete = true;
         }
     }
 }
Exemple #16
0
        protected void SetImage(uint type, SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(type);
            if (pfds.Length > 0)
            {
                SimPe.PackedFiles.Wrapper.Picture pic = new SimPe.PackedFiles.Wrapper.Picture();
                pic.ProcessData(pfds[0], pkg);
                nfo.Image = pic.Image;
            }

            nfo.KnockoutThumbnail = false;
        }
Exemple #17
0
        /// <summary>
        /// Return all Modelnames that can be found in this package
        /// </summary>
        /// <param name="pkg">The Package you want to scan</param>
        /// <returns>a list of Modelnames</returns>
        public static string[] FindModelNames(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            ArrayList names = new ArrayList();

            Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFile(Data.MetaData.STRING_FILE, 0, 0x85);
            if (pfds.Length > 0)
            {
                foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    SimPe.PackedFiles.Wrapper.Str str = new SimPe.PackedFiles.Wrapper.Str();
                    str.ProcessData(pfd, pkg);

                    foreach (SimPe.PackedFiles.Wrapper.StrToken item in str.Items)
                    {
                        string mname = Hashes.StripHashFromName(item.Title.Trim().ToLower());
                        if (!mname.EndsWith("_cres"))
                        {
                            mname += "_cres";
                        }
                        if ((mname != "") && (!names.Contains(mname)))
                        {
                            names.Add(mname);
                        }
                    }
                }
            }

            pfds = pkg.FindFiles(Data.MetaData.MMAT);
            if (pfds.Length > 0)
            {
                foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    SimPe.PackedFiles.Wrapper.Cpf cpf = new SimPe.PackedFiles.Wrapper.Cpf();
                    cpf.ProcessData(pfd, pkg);

                    string mname = Hashes.StripHashFromName(cpf.GetSaveItem("modelName").StringValue.Trim().ToLower());
                    if (!mname.EndsWith("_cres"))
                    {
                        mname += "_cres";
                    }
                    if ((mname != "") && (!names.Contains(mname)))
                    {
                        names.Add(mname);
                    }
                }
            }

            string[] ret = new string[names.Count];
            names.CopyTo(ret);

            return(ret);
        }
Exemple #18
0
        protected void SetName(uint type, SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(type);

            if (pfds.Length > 0)
            {
                SimPe.PackedFiles.Wrapper.StrItemList items = Downloads.DefaultTypeHandler.GetCtssItems(pfds[0], pkg);
                if (items.Length > 0)
                {
                    nfo.Name = items[0].Title;
                }
            }
        }
Exemple #19
0
        /// <summary>
        /// Will return a Hashtable (key = subset name) of ArrayLists (slave subset names)
        /// </summary>
        /// <param name="pkg"></param>
        /// <returns></returns>
        public static Hashtable GetSlaveSubsets(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            Hashtable map = new Hashtable();

            SimPe.Interfaces.Files.IPackedFileDescriptor[] gmnds = pkg.FindFiles(Data.MetaData.GMND);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in gmnds)
            {
                SimPe.Plugin.GenericRcol gmnd = new GenericRcol(null, false);
                gmnd.ProcessData(pfd, pkg);

                GetSlaveSubsets(gmnd, map);
            }
            return(map);
        }
Exemple #20
0
        void DeleteSRels(uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.RELATION_FILE);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                uint up  = (pfd.Instance & 0xFFFF0000) >> 16;
                uint low = (pfd.Instance & 0x0000FFFFF);

                if (up == inst || low == inst)
                {
                    pfd.MarkForDelete = true;
                }
            }
        }
Exemple #21
0
        /// <summary>
        /// Find the Modelname of the Original Object
        /// </summary>
        /// <param name="package">The Package containing the Data</param>
        /// <returns>The Modelname</returns>
        public static string FindMainOldName(SimPe.Interfaces.Files.IPackageFile package)
        {
            Interfaces.Files.IPackedFileDescriptor[] pfds = package.FindFiles(Data.MetaData.STRING_FILE);
            foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                if (pfd.Instance == 0x85)
                {
                    SimPe.PackedFiles.Wrapper.Str str = new SimPe.PackedFiles.Wrapper.Str();
                    str.ProcessData(pfd, package);

                    SimPe.PackedFiles.Wrapper.StrItemList sil = str.LanguageItems(1);
                    if (sil.Length > 1)
                    {
                        return(sil[1].Title);
                    }
                    else if (str.Items.Length > 1)
                    {
                        return(str.Items[1].Title);
                    }
                }
            }

            pfds = package.FindFiles(0x4C697E5A);
            foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.PackedFiles.Wrapper.Cpf cpf = new SimPe.PackedFiles.Wrapper.Cpf();
                cpf.ProcessData(pfd, package);

                if (cpf.GetSaveItem("modelName").StringValue.Trim() != "")
                {
                    return(cpf.GetSaveItem("modelName").StringValue.Trim());
                }
            }

            return("SimPE");
        }
Exemple #22
0
        /// <summary>
        /// Return al Hashtable (subset) of Hashtable (family) of ArrayLists (mmat Files) specifiying all available Material Overrides
        /// </summary>
        /// <param name="pkg">The package you want to scan</param>
        /// <returns>The Hashtable</returns>
        public static Hashtable GetMMATMap(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            if (pkg == null)
            {
                return(new Hashtable());
            }

            SimPe.Interfaces.Files.IPackedFileDescriptor[] mmats = pkg.FindFiles(Data.MetaData.MMAT);
            Hashtable ht = new Hashtable();

            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in mmats)
            {
                SimPe.Plugin.MmatWrapper mmat = new MmatWrapper();
                mmat.ProcessData(pfd, pkg);

                string subset = mmat.GetSaveItem("subsetName").StringValue.Trim().ToLower();
                string family = mmat.GetSaveItem("family").StringValue;

                //get the available families
                Hashtable families = null;
                if (!ht.ContainsKey(subset))
                {
                    families   = new Hashtable();
                    ht[subset] = families;
                }
                else
                {
                    families = (Hashtable)ht[subset];
                }

                //get listing of the current Family
                ArrayList list = null;
                if (!families.ContainsKey(family))
                {
                    list             = new ArrayList();
                    families[family] = list;
                }
                else
                {
                    list = (ArrayList)families[family];
                }

                //add the MMAT File
                list.Add(mmat);
            }

            return(ht);
        }
Exemple #23
0
        /// <summary>
        /// Loads the ModelNames of the Objects referenced in all tsMaterialsMeshName Block
        /// </summary>
        /// <param name="pkg"></param>
        /// <param name="delete">true, if the tsMaterialsMeshName Blocks should get cleared</param>
        /// <returns>A List of Modelnames</returns>
        public static string[] LoadParentModelNames(SimPe.Interfaces.Files.IPackageFile pkg, bool delete)
        {
            if (WaitingScreen.Running)
            {
                WaitingScreen.UpdateMessage("Loading Parent Modelnames");
            }
            ArrayList list = new ArrayList();

            Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.GMND);
            foreach (Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                Rcol rcol = new GenericRcol(null, false);
                rcol.ProcessData(pfd, pkg);

                foreach (IRcolBlock irb in rcol.Blocks)
                {
                    if (irb.BlockName.Trim().ToLower() == "cdatalistextension")
                    {
                        DataListExtension dle = (DataListExtension)irb;
                        if (dle.Extension.VarName.Trim().ToLower() == "tsmaterialsmeshname")
                        {
                            foreach (ExtensionItem ei in dle.Extension.Items)
                            {
                                string mname = ei.String.Trim().ToLower();
                                if (mname.EndsWith("_cres"))
                                {
                                    mname += "_cres";
                                }

                                if (!list.Contains(mname))
                                {
                                    list.Add(mname);
                                }
                            }

                            dle.Extension.Items = new ExtensionItem[0];
                            rcol.SynchronizeUserData();
                            break;
                        }
                    }
                }
            }

            string[] ret = new string[list.Count];
            list.CopyTo(ret);

            return(ret);
        }
Exemple #24
0
        protected override void SetName(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.CTSS_FILE);

            if (pfds.Length > 0)
            {
                SimPe.PackedFiles.Wrapper.StrItemList items = Downloads.DefaultTypeHandler.GetCtssItems(pfds[0], pkg);
                if (items.Length > 0)
                {
                    nfo.Name = items[0].Title;
                }
                if (items.Length > 1)
                {
                    nfo.Description = items[1].Title;
                }
            }
        }
Exemple #25
0
        protected void GetCpf(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            foreach (uint t in xtypes)
            {
                SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(t);
                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    cpf = new SimPe.PackedFiles.Wrapper.Cpf();
                    cpf.ProcessData(pfd, pkg);

                    SimPe.PackedFiles.Wrapper.CpfItem item = cpf.GetItem("guid");
                    if (item != null)
                    {
                        nfo.AddGuid(item.UIntegerValue);
                    }
                }
            }
        }
Exemple #26
0
        void DeleteMemories(uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(0x4E474248);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.Plugin.Ngbh n = new Ngbh(null);
                n.ProcessData(pfd, pkg);

                SimPe.Plugin.Collections.NgbhSlots slots = new SimPe.Plugin.Collections.NgbhSlots(n, Data.NeighborhoodSlots.Sims);
                foreach (NgbhSlot s in n.Sims)
                {
                    if (s.SlotID != inst)
                    {
                        slots.Add(s);
                        SimPe.Plugin.Collections.NgbhItems list = new SimPe.Plugin.Collections.NgbhItems(s);
                        foreach (NgbhItem i in s.ItemsA)
                        {
                            if (i.SimID != guid && i.SimInstance != inst && i.OwnerInstance != inst)
                            {
                                list.Add(i);
                            }
                        }
                        s.ItemsA = list;

                        list = new SimPe.Plugin.Collections.NgbhItems(s);
                        foreach (NgbhItem i in s.ItemsB)
                        {
                            if (i.SimID != guid && i.SimInstance != inst && i.OwnerInstance != inst)
                            {
                                list.Add(i);
                            }
                        }

                        s.ItemsB = list;
                    }
                }

                n.Sims = slots;

                n.SynchronizeUserData();
            }
        }
Exemple #27
0
        protected override void SetImage(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor pfd = pkg.FindFile(0x856DDBAC, 0, Data.MetaData.LOCAL_GROUP, 0x35CA0002);
            if (pfd == null)
            {
                SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(0x856DDBAC);
                if (pfds.Length > 0)
                {
                    pfd = pfds[0];
                }
            }

            if (pfd != null)
            {
                SimPe.PackedFiles.Wrapper.Picture pic = new SimPe.PackedFiles.Wrapper.Picture();
                pic.ProcessData(pfd, pkg);
                nfo.Image = pic.Image;
            }

            nfo.KnockoutThumbnail = false;
        }
Exemple #28
0
        public override void SetFromPackage(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            ClearScreen();
            if (pkg == null)
            {
                objd = null;
                return;
            }

            //this is a regular Object?
            if (pkg.FindFiles(Data.MetaData.OBJD_FILE).Length > 0)
            {
                cpf = null;
                base.SetFromPackage(pkg);
                return;
            }

            objd = null;
            GetCpf(pkg);

            UpdateXObjScreen(pkg, false);
        }
Exemple #29
0
        void DeleteFamilyTies(uint inst, uint guid, SimPe.Interfaces.Files.IPackageFile pkg, SimPe.PackedFiles.Wrapper.ExtSDesc victim)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(0x8C870743);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                SimPe.PackedFiles.Wrapper.FamilyTies ft = new SimPe.PackedFiles.Wrapper.FamilyTies(null);
                ft.ProcessData(pfd, pkg);

                ArrayList sims = new ArrayList();
                foreach (SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim fts in ft.Sims)
                {
                    if (fts.Instance != inst)
                    {
                        sims.Add(fts);

                        ArrayList items = new ArrayList();
                        foreach (SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti in fts.Ties)
                        {
                            if (fti.Instance != inst)
                            {
                                items.Add(fti);
                            }
                        }

                        fts.Ties = new SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem[items.Count];
                        items.CopyTo(fts.Ties);
                    }
                }

                SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim[] fsims = new SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim[sims.Count];
                sims.CopyTo(fsims);

                ft.Sims = fsims;


                ft.SynchronizeUserData();
            }
        }
Exemple #30
0
        public SimPe.Cache.PackageType GetType(SimPe.Interfaces.Files.IPackageFile pkg)
        {
            if (pkg.FindFiles(Data.MetaData.TXMT).Length == 0)
            {
                return(SimPe.Cache.PackageType.Unknown);
            }
            if (pkg.FindFiles(Data.MetaData.OBJD_FILE).Length != 0)
            {
                return(SimPe.Cache.PackageType.Unknown);
            }
            if (pkg.FindFiles(Data.MetaData.GZPS).Length != 0)
            {
                return(SimPe.Cache.PackageType.Unknown);
            }
            if (pkg.FindFiles(0xCCA8E925).Length != 0)
            {
                return(SimPe.Cache.PackageType.Unknown);                                                 //Object XML
            }
            if (pkg.FindFiles(Data.MetaData.REF_FILE).Length != 0)
            {
                return(SimPe.Cache.PackageType.Unknown);
            }
            foreach (uint type in Data.MetaData.RcolList)
            {
                if (type == Data.MetaData.TXMT)
                {
                    continue;
                }
                if (type == Data.MetaData.TXTR)
                {
                    continue;
                }
                if (type == Data.MetaData.LIFO)
                {
                    continue;
                }

                if (pkg.FindFiles(type).Length != 0)
                {
                    return(SimPe.Cache.PackageType.Unknown);
                }
            }

            return(SimPe.Cache.PackageType.Recolor);
        }