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; }
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; } }
/// <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); }
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; }
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; } } }
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)); } } }
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(); } }