Example #1
0
        private void ties_SelectedSimChanged(object sender, System.Drawing.Image thumb, SimPe.PackedFiles.Wrapper.SDesc sdesc)
        {
            if (sdesc != null)
            {
                cbrel.Tag        = null;
                this.lbname.Text = sdesc.SimName + " " + sdesc.SimFamilyName;
                cbrel.Enabled    = (sdesc != currentsdsc);
                if (cbrel.Enabled)
                {
                    SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim  fts = wrapper.FindTies(currentsdsc);
                    SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti = fts.FindTie(sdesc);
                    cbrel.SelectedValue = fti.Type;
                    cbrel.Tag           = fti;
                }
            }
            else
            {
                cbrel.Enabled = (ties.SelectedElement != null);
                if (!cbrel.Enabled)
                {
                    lbname.Text = "";
                    cbrel.Tag   = null;
                }
            }

            llrem.Enabled = cbrel.Enabled;
        }
Example #2
0
        private void miAddTie_BeforePopup(object sender, EventArgs e)
        {
            this.miAddTie.Enabled    = (lastsdsc != null && currentsdsc != null && currentsdsc != lastsdsc);
            this.miOpenSdesc.Enabled = (lastsdsc != null);
            this.miAddTie.Image      = thumb;
            //this.miOpenSdesc.Image = thumb;
            if (thumb != null)
            {
                miAddTie.Image = Ambertation.Drawing.GraphicRoutines.ScaleImage(thumb, 32, 32, true);
            }
            if (lastsdsc != null && currentsdsc != null)
            {
                string name = SimPe.Localization.GetString("AddFamilyTieCaption");
                name = name.Replace("{name}", lastsdsc.SimName + " " + lastsdsc.SimFamilyName);
                name = name.Replace("{gname}", currentsdsc.SimName + " " + currentsdsc.SimFamilyName);
                this.miAddTie.Text = name;

                SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim fts = wrapper.FindTies(currentsdsc);
                if (fts != null)
                {
                    if (fts.FindTie(lastsdsc) != null)
                    {
                        miAddTie.Enabled = false;
                    }
                }
            }

            if (lastsdsc != null)
            {
                string name = SimPe.Localization.GetString("OpenSDesc");
                name = name.Replace("{name}", lastsdsc.SimName + " " + lastsdsc.SimFamilyName);
                this.miOpenSdesc.Text = name;
            }
        }
Example #3
0
        /// <summary>
        /// returns a List of Parent Sims
        /// </summary>
        /// <param name="sdsc"></param>
        /// <returns></returns>
        public Wrapper.SDesc[] SiblingSims(Wrapper.SDesc sdsc)
        {
            ArrayList list = new ArrayList();

            SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim fts = this.FindTies(sdsc);

            if (fts != null)
            {
                foreach (SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti in fts.Ties)
                {
                    if (fti.SimDescription == null)
                    {
                        continue;
                    }
                    if (fti.Type == Data.MetaData.FamilyTieTypes.ImMarriedTo || fti.Type == Data.MetaData.FamilyTieTypes.MySiblingIs)
                    {
                        list.Add(fti.SimDescription);
                    }
                }
            }

            Wrapper.SDesc[] ret = new SDesc[list.Count];
            list.CopyTo(ret);
            return(ret);
        }
Example #4
0
        private void Activate_miAddTie(object sender, System.EventArgs e)
        {
            SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim  fts = wrapper.CreateTie(currentsdsc);
            SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti = fts.CreateTie(lastsdsc, Data.MetaData.FamilyTieTypes.MySiblingIs);

            ties.AddTieToGraph(lastsdsc, 0, 0, fti.Type);

            if (this.cbkeep.Checked)
            {
                fts = wrapper.CreateTie(lastsdsc);
                fti = fts.CreateTie(currentsdsc, Data.MetaData.FamilyTieTypes.MySiblingIs);
            }
            wrapper.Changed = true;
        }
Example #5
0
        private void llrem_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            if (cbrel.Tag != null)
            {
                SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim  fts = wrapper.FindTies(currentsdsc);
                SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti = (SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem)cbrel.Tag;

                if (fts.RemoveTie(fti))
                {
                    Ambertation.Windows.Forms.Graph.ImagePanel ip = (Ambertation.Windows.Forms.Graph.ImagePanel)ties.SelectedElement;
                    ip.Parent = null;
                    ip.Dispose();
                    wrapper.Changed = true;
                }
            }
        }
Example #6
0
        private void cbrel_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            if (cbrel.Tag != null)
            {
                SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem fti = (SimPe.PackedFiles.Wrapper.Supporting.FamilyTieItem)cbrel.Tag;
                Ambertation.Windows.Forms.Graph.ImagePanel         ip  = (Ambertation.Windows.Forms.Graph.ImagePanel)ties.SelectedElement;
                fti.Type        = (Data.MetaData.FamilyTieTypes)cbrel.SelectedValue;
                wrapper.Changed = true;

                Ambertation.Windows.Forms.Graph.LinkGraphic lg = ties.MainSimElement.GetChildLink(ip);
                if (lg != null)
                {
                    lg.Text = cbrel.Text;
                }

                if (this.cbkeep.Checked)
                {
                    SimPe.PackedFiles.Wrapper.Supporting.FamilyTieSim fts = wrapper.CreateTie(fti.SimDescription);
                    fti = fts.CreateTie(currentsdsc, FamilyTieGraph.GetAntiTie(currentsdsc, fti.Type));
                }
            }
        }
Example #7
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();
            }
        }