示例#1
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);
        }
示例#2
0
        /// <summary>
        /// Returns the <see cref="ImagePanel"/> that contains the passed Sim
        /// </summary>
        /// <param name="sdsc"></param>
        /// <returns></returns>
        public void FindItem(Wrapper.SDesc sdsc)
        {
            if (sdsc == null)
            {
                gp.SelectedItems.Clear();
                return;
            }

            foreach (SteepValley.Windows.Forms.XPListViewItem gpe in gp.Items)
            {
                if (gpe.Tag is Wrapper.SDesc)
                {
                    if (sdsc.Equals((Wrapper.SDesc)gpe.Tag))
                    {
                        gpe.Selected = true;
                        gpe.EnsureVisible();
                        SelectedSimChanged(this, ((Wrapper.SDesc)gpe.Tag).Image, ((Wrapper.SDesc)gpe.Tag));
                    }
                    else
                    {
                        gpe.Selected = false;
                    }
                }
            }
        }
示例#3
0
        static void PrepareItem(ExtendedImagePanel eip, Wrapper.SDesc sdesc)
        {
            eip.ImagePanelColor = System.Drawing.Color.Black;
            eip.Fade            = 0.5f;
            eip.FadeColor       = System.Drawing.Color.Transparent;

            eip.Tag = sdesc;
            try
            {
                eip.Properties["GUID"].Value      = "0x" + Helper.HexString(sdesc.SimId);
                eip.Properties["Instance"].Value  = "0x" + Helper.HexString(sdesc.FileDescriptor.Instance);
                eip.Properties["Household"].Value = sdesc.HouseholdName;

                /*eip.Properties["Life Stage"].Value = ((Data.LocalizedLifeSections)sdesc.CharacterDescription.LifeSection).ToString();
                *  eip.Properties["Career"].Value = ((Data.LocalizedCareers)sdesc.CharacterDescription.Career).ToString();
                *  eip.Properties["Zodiac Sign"].Value = ((Data.LocalizedZodiacSignes)sdesc.CharacterDescription.ZodiacSign).ToString();*/
            }
            catch (Exception ex)
            {
                eip.Properties["Error"].Value = ex.Message;
            }



            CreateItem(eip, sdesc);
        }
示例#4
0
        public static ExtendedImagePanel CreateItem(Wrapper.SDesc sdesc)
        {
            ExtendedImagePanel eip = new ExtendedImagePanel();

            eip.SetBounds(0, 0, 216, 80);
            eip.BeginUpdate();
            PrepareItem(eip, sdesc);
            eip.EndUpdate();

            return(eip);
        }
示例#5
0
        /// <summary>
        /// Returns the <see cref="ImagePanel"/> that contains the passed Sim
        /// </summary>
        /// <param name="sdsc"></param>
        /// <returns></returns>
        public ImagePanel FindItem(Wrapper.SDesc sdsc)
        {
            foreach (GraphPanelElement gpe in this.Items)
            {
                if (gpe is ImagePanel)
                {
                    if (sdsc.Equals(((ImagePanel)gpe).Tag))
                    {
                        return((ImagePanel)gpe);
                    }
                }
            }

            return(null);
        }
示例#6
0
        protected ImagePanel CreateItem(Wrapper.SDesc sdesc, int left, int top)
        {
            ImagePanel eip = new ImagePanel();

            eip.BeginUpdate();
            eip.SetBounds(left, top, this.ItemSize.Width, this.ItemSize.Height);
            SimPoolControl.CreateItem(eip, sdesc);

            eip.GotFocus    += new EventHandler(eip_GotFocus);
            eip.LostFocus   += new EventHandler(eip_LostFocus);
            eip.MouseDown   += new System.Windows.Forms.MouseEventHandler(eip_MouseDown);
            eip.DoubleClick += new EventHandler(eip_DoubleClick);

            return(eip);
        }
示例#7
0
        public static Data.MetaData.FamilyTieTypes GetAntiTie(Wrapper.SDesc sdsc, Data.MetaData.FamilyTieTypes t)
        {
            if (t == Data.MetaData.FamilyTieTypes.MyMotherIs || t == Data.MetaData.FamilyTieTypes.MyFatherIs)
            {
                return(Data.MetaData.FamilyTieTypes.MyChildIs);
            }
            if (t == Data.MetaData.FamilyTieTypes.MyChildIs)
            {
                if (sdsc == null)
                {
                    return(Data.MetaData.FamilyTieTypes.MyMotherIs);
                }
                if (sdsc.CharacterDescription.Gender == SimPe.Data.MetaData.Gender.Female)
                {
                    return(Data.MetaData.FamilyTieTypes.MyMotherIs);
                }
                return(Data.MetaData.FamilyTieTypes.MyFatherIs);
            }

            return(t);
        }
示例#8
0
        public void UpdateGraph(Wrapper.SDesc sdsc, Wrapper.ExtFamilyTies famt)
        {
            this.BeginUpdate();
            if (Parent != null)
            {
                this.Width  = Parent.ClientRectangle.Width;
                this.Height = Parent.ClientRectangle.Height;
            }
            bool run = WaitingScreen.Running;

            WaitingScreen.Wait();
            try
            {
                this.SaveBounds = false;
                this.AutoSize   = true;
                this.Clear();
                baseip = null;

                if (famt == null || sdsc == null)
                {
                    this.EndUpdate();
                    if (!run)
                    {
                        WaitingScreen.Stop();
                    }
                    return;
                }

                FamilyTieSim    tie      = famt.FindTies(sdsc);
                Wrapper.SDesc[] parents  = famt.ParentSims(sdsc);
                Wrapper.SDesc[] siblings = famt.SiblingSims(sdsc);
                Wrapper.SDesc[] childs   = famt.ChildSims(sdsc);

                int maxct = parents.Length + siblings.Length + childs.Length;
                if (maxct < 4)
                {
                    this.LinearUpdateGraph(sdsc, famt);
                    if (!run)
                    {
                        WaitingScreen.Stop();
                    }
                    return;
                }

                double r      = GraphPanel.GetPinCircleRadius(this.ItemSize, this.ItemSize, maxct);
                Point  center = new Point(
                    Math.Max(Width / 2, (int)r + 16 + ItemSize.Width / 2),
                    Math.Max(Height / 2, (int)r + ItemSize.Height / 2)
                    );

                baseip               = CreateItem(sdsc, 0, 0);
                baseip.Location      = GraphPanel.GetCenterLocationOnPinCircle(center, r, ItemSize);
                baseip.Parent        = this;
                this.SelectedElement = baseip;
                baseip.PanelColor    = Color.Black;
                baseip.ForeColor     = Color.White;
                baseip.EndUpdate();

                int ct = 0;

                if (tie != null)
                {
                    foreach (SDesc s in childs)
                    {
                        ImagePanel ip = AddTieToGraph(s, 0, 0, tie.FindTie(s).Type, false);
                        ip.Location = GraphPanel.GetItemLocationOnPinCricle(center, r, ct++, maxct, ItemSize);
                        ip.EndUpdate();
                    }

                    foreach (SDesc s in siblings)
                    {
                        ImagePanel ip = AddTieToGraph(s, 0, 0, tie.FindTie(s).Type, false);
                        ip.Location = GraphPanel.GetItemLocationOnPinCricle(center, r, ct++, maxct, ItemSize);
                        ip.EndUpdate();
                    }

                    foreach (SDesc s in parents)
                    {
                        ImagePanel ip = AddTieToGraph(s, 0, 0, tie.FindTie(s).Type, false);
                        ip.Location = GraphPanel.GetItemLocationOnPinCricle(center, r, ct++, maxct, ItemSize);
                        ip.EndUpdate();
                    }
                }


                this.EndUpdate();
            }
            finally { if (!run)
                      {
                          WaitingScreen.Stop();
                      }
            }
        }
示例#9
0
        public void LinearUpdateGraph(Wrapper.SDesc sdsc, Wrapper.ExtFamilyTies famt)
        {
            this.BeginUpdate();

            this.Clear();
            baseip = null;

            if (famt == null || sdsc == null)
            {
                this.EndUpdate();
                return;
            }

            FamilyTieSim tie = famt.FindTies(sdsc);


            Wrapper.SDesc[] parents  = famt.ParentSims(sdsc);
            Wrapper.SDesc[] siblings = famt.SiblingSims(sdsc);
            Wrapper.SDesc[] childs   = famt.ChildSims(sdsc);

            Size prect = new Size((parents.Length - 1) * (ItemSize.Width + 8), ItemSize.Height + 60);
            Size srect = new Size(siblings.Length * (ItemSize.Width + 24) + 140, ItemSize.Height + 60 + ((siblings.Length / 2) - 1) * 4 + 24);
            Size crect = new Size((childs.Length - 1) * (ItemSize.Width + 8), ItemSize.Height);
            int  maxw  = Math.Max(Math.Max(prect.Width, srect.Width), crect.Width);
            int  top   = prect.Height + (srect.Height - ItemSize.Height) / 2;
            int  left  = (maxw - ItemSize.Width) / 2 + 32;


            baseip               = CreateItem(sdsc, left, top);
            baseip.Parent        = this;
            this.SelectedElement = baseip;
            baseip.PanelColor    = Color.Black;
            baseip.ForeColor     = Color.White;
            baseip.EndUpdate();

            if (tie != null)
            {
                left = (maxw - prect.Width) / 2 + 16;
                top  = 0;
                foreach (SDesc s in parents)
                {
                    ImagePanel ip = AddTieToGraph(s, left, top, tie.FindTie(s).Type, true);
                    left += ip.Width + 8;
                }

                left = (maxw - srect.Width) / 2 + 16;
                int ct = 0;
                top = prect.Height;
                foreach (SDesc s in siblings)
                {
                    ImagePanel ip = AddTieToGraph(s, left, top, tie.FindTie(s).Type, true);
                    left += ip.Width + 24;

                    ct++;
                    if (ct == siblings.Length / 2 || siblings.Length == 1)
                    {
                        left += 70;
                        baseip.SetBounds(left, top + 24, baseip.Width, baseip.Height);
                        left += ip.Width + 94;
                    }
                    else if (ct > siblings.Length / 2)
                    {
                        top -= 4;
                    }
                    else
                    {
                        top += 4;
                    }
                }

                left = (maxw - crect.Width) / 2 + 16;
                top  = prect.Height + srect.Height;
                foreach (SDesc s in childs)
                {
                    ImagePanel ip = AddTieToGraph(s, left, top, tie.FindTie(s).Type, true);
                    left += ip.Width + 8;
                }
            }


            this.EndUpdate();
        }
示例#10
0
        /*static AssemblyBuilder myAssemblyBuilder;
         * static ModuleBuilder myModuleBuilder;
         * static EnumBuilder myEnumBuilder;*/


        /// <summary>
        /// Creates a new Instance and fills the aspiration Types into the correct Form
        /// </summary>
        protected void ResetUI(Wrapper.SDesc sdesc)
        {
            form.cboutfamtype.Items.Clear();
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Unset_Unknown));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Aunt));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Child));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Cousin));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Grandchild));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Gradparent));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Nice_Nephew));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Parent));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Sibling));
            form.cboutfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Spouses));

            form.cbinfamtype.Items.Clear();
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Unset_Unknown));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Aunt));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Child));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Cousin));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Grandchild));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Gradparent));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Nice_Nephew));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Parent));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Sibling));
            form.cbinfamtype.Items.Add(new LocalizedRelationshipTypes(Data.MetaData.RelationshipTypes.Spouses));

            form.cbaspiration.Items.Clear();
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Nothing));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Fortune));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Family));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Knowledge));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Reputation));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Romance));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Growup));
            form.cbaspiration.Items.Add(new LocalizedAspirationTypes(Data.MetaData.AspirationTypes.Fun));


            form.cblifesection.Items.Clear();
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Unknown));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Baby));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Toddler));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Child));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Teen));
            //form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.YoungAdult));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Adult));
            form.cblifesection.Items.Add(new LocalizedLifeSections(Data.MetaData.LifeSections.Elder));

            form.cbcareer.Items.Clear();
            foreach (SimPe.Interfaces.IAlias a in Wrapper.SDesc.AddonCarrers)
            {
                form.cbcareer.Items.Add(a);
            }
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Unknown));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Unemployed));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Science));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Medical));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Politics));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Athletic));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.LawEnforcement));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Culinary));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Economy));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Slacker));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Criminal));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Military));

            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderAthletic));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderBusiness));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderCriminal));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderCulinary));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderLawEnforcement));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderMedical));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderMilitary));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderPolitics));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderScience));
            form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.TeenElderSlacker));
            if ((Helper.WindowsRegistry.EPInstalled >= 1) || (Helper.WindowsRegistry.HiddenMode))
            {
                form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Paranormal));
                form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.NaturalScientist));
                form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.ShowBiz));
                form.cbcareer.Items.Add(new LocalizedCareers(Data.MetaData.Careers.Artist));
            }

            form.cbgrade.Items.Clear();
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.Unknown));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.APlus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.A));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.AMinus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.BPlus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.B));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.BMinus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.CPlus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.C));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.CMinus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.DPlus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.D));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.DMinus));
            form.cbgrade.Items.Add(new LocalizedGrades(Data.MetaData.Grades.F));

            form.cbmajor.Items.Clear();

            foreach (SimPe.Interfaces.IAlias a in Wrapper.SDesc.AddonMajors)
            {
                form.cbmajor.Items.Add(a);
            }
            System.Array majors = System.Enum.GetValues(typeof(Data.Majors));
            foreach (Data.Majors c in majors)
            {
                form.cbmajor.Items.Add(c);
            }

            form.cbschooltype.Items.Clear();
            System.Array schools = System.Enum.GetValues(typeof(Data.MetaData.SchoolTypes));
            foreach (Data.MetaData.SchoolTypes c in schools)
            {
                form.cbschooltype.Items.Add(new LocalizedSchoolType(c));
            }
            foreach (SimPe.Interfaces.IAlias a in Wrapper.SDesc.AddonSchools)
            {
                form.cbschooltype.Items.Add(a);
            }

            form.gbout.Enabled          = false;
            form.gbin.Enabled           = false;
            form.llsimrelcommit.Enabled = false;
            form.btaddtie.Enabled       = false;
            form.btdeletetie.Enabled    = false;

            form.tboutrelshort.Text = "";
            form.tbinrelshort.Text  = "";
            form.tboutrellong.Text  = "";
            form.tbinrellong.Text   = "";

            form.cballrelsims.Items.Clear();
            form.cballrelsims.Sorted = false;
            foreach (IAlias a in sdesc.NameProvider.StoredData.Values)
            {
                form.cballrelsims.Items.Add(a);
            }
            form.cballrelsims.Sorted = true;

#if DEBUG
#else
            //form.cblifesection.Enabled = false;
            //form.pblifelinepoints.Enabled = false;
            //form.tblifelinepoints.Enabled = false;
            form.tbcareervalue.Enabled = false;
            form.tbschooltype.Enabled  = false;
            //form.gb.Enabled = false;
#endif

            form.cbzodiac.Items.Clear();
            for (ushort i = 0x01; i <= 0x0C; i++)
            {
                form.cbzodiac.Items.Add(new LocalizedZodiacSignes((Data.MetaData.ZodiacSignes)i));
            }
        }
示例#11
0
        public void UpdateGUI(SimPe.Interfaces.Plugin.IFileWrapper wrapper)
        {
            Wrapper.SDesc sdesc = (Wrapper.SDesc)wrapper;
            form.wrapper = sdesc;
            ResetUI(sdesc);

            form.tbmajor.Visible  = true;
            form.tbmajor.ReadOnly = !Helper.WindowsRegistry.HiddenMode;

            //Relations
            form.lbrelations.Items.Clear();

            foreach (ushort u in sdesc.Relations.SimInstances)
            {
                Wrapper.SDesc simdesc = sdesc.Relations.GetSimDescription(u);
                if (simdesc != null)
                {
                    SimRelations rel = sdesc.Relations.GetSimRelationships(u);

                    if (rel != null)
                    {
                        rel.NameTag = "(0x" + Helper.HexString(u) + ")";
                        rel.NameTag = simdesc.SimName + " " + simdesc.SimFamilyName + " " + rel.NameTag;
                        form.lbrelations.Items.Add(rel);
                    }
                }
            }

            //Filename
            if (sdesc.CharacterFileName != null)
            {
                form.lbfilename.Text = sdesc.CharacterFileName + "   (" + Localization.Manager.GetString("rightclickcopy") + ")";
                form.lbfilename.Tag  = sdesc.CharacterFileName;
            }
            else
            {
                form.lbfilename.Text = Localization.Manager.GetString("filenotfound");
                form.lbfilename.Tag  = null;
            }

            form.tbage.Text            = sdesc.CharacterDescription.Age.ToString();
            form.tbsimdescname.Text    = sdesc.SimName;
            form.tbsimdescfamname.Text = sdesc.SimFamilyName;
            form.tbsim.Text            = "0x" + Helper.HexString(sdesc.SimId);
            form.tbsim.ReadOnly        = !Helper.WindowsRegistry.HiddenMode;
            form.tbprevdays.Text       = sdesc.CharacterDescription.PrevAgeDays.ToString();
            form.tbagedur.Text         = sdesc.CharacterDescription.AgeDuration.ToString();
            form.tbunlinked.Text       = "0x" + Helper.HexString(sdesc.Unlinked);
            form.pbImage.Image         = sdesc.Image;

            //Aspiration
            form.cbaspiration.SelectedIndex = 0;
            for (int i = 0; i < form.cbaspiration.Items.Count; i++)
            {
                Data.MetaData.AspirationTypes at = (LocalizedAspirationTypes)form.cbaspiration.Items[i];
                if (at == sdesc.CharacterDescription.Aspiration)
                {
                    form.cbaspiration.SelectedIndex = i;
                    break;
                }
            }

            //Lifesection
            form.cblifesection.SelectedIndex = 0;
            for (int i = 0; i < form.cblifesection.Items.Count; i++)
            {
                Data.MetaData.LifeSections at = (LocalizedLifeSections)form.cblifesection.Items[i];
                if (at == sdesc.CharacterDescription.LifeSection)
                {
                    form.cblifesection.SelectedIndex = i;
                    break;
                }
            }

            //Career
            form.tbcareervalue.Text     = "0x" + Helper.HexString((uint)sdesc.CharacterDescription.Career);
            form.cbcareer.SelectedIndex = 0;
            for (int i = 0; i < form.cbcareer.Items.Count; i++)
            {
                object o = form.cbcareer.Items[i];
                Data.MetaData.Careers at;
                if (o.GetType() == typeof(Alias))
                {
                    at = (Data.LocalizedCareers)((uint)((Alias)o).Id);
                }
                else
                {
                    at = (Data.LocalizedCareers)o;
                }

                if (at == sdesc.CharacterDescription.Career)
                {
                    form.cbcareer.SelectedIndex = i;
                    break;
                }
            }
            form.pbcarrerlevel.Value = Math.Min((ushort)form.pbcarrerlevel.Maximum, sdesc.CharacterDescription.CareerLevel);


            //grades and school
            form.cbgrade.SelectedIndex = 0;
            for (int i = 0; i < form.cbgrade.Items.Count; i++)
            {
                Data.MetaData.Grades grade;
                object o = form.cbgrade.Items[i];
                if (o.GetType() == typeof(Alias))
                {
                    grade = (Data.LocalizedGrades)((uint)((Alias)o).Id);
                }
                else
                {
                    grade = (Data.LocalizedGrades)o;
                }
                if (sdesc.CharacterDescription.Grade == (Data.MetaData.Grades)grade)
                {
                    form.cbgrade.SelectedIndex = i;
                    break;
                }
            }

            //University
            if ((int)sdesc.Version >= (int)SimPe.PackedFiles.Wrapper.SDescVersions.University)
            {
                if (!form.tcsdesc.TabPages.Contains(form.tbuni))
                {
                    form.tcsdesc.TabPages.Add(form.tbuni);
                }
                form.cbmajor.SelectedIndex = 0;
                form.tbmajor.Text          = "0x" + Helper.HexString((uint)sdesc.University.Major);
                form.tbmajor.Visible       = Helper.WindowsRegistry.HiddenMode;
                form.cbmajor.SelectedIndex = form.cbmajor.Items.Count - 1;
                for (int i = 0; i < form.cbmajor.Items.Count; i++)
                {
                    object      o = form.cbmajor.Items[i];
                    Data.Majors at;
                    if (o.GetType() == typeof(Alias))
                    {
                        at = (Data.Majors)((uint)((Alias)o).Id);
                    }
                    else
                    {
                        at = (Data.Majors)o;
                    }

                    if (at == sdesc.University.Major)
                    {
                        form.cbmajor.SelectedIndex = i;
                        break;
                    }
                }

                form.cboncampus.Checked = (sdesc.University.OnCampus == 0x1);
                form.pbeffort.Value     = Math.Max(form.pbeffort.Minimum, Math.Min(form.pbeffort.Maximum, sdesc.University.Effort));
                form.pblastgrade.Value  = Math.Max(form.pblastgrade.Minimum, Math.Min(form.pblastgrade.Maximum, form.pblastgrade.Maximum - (sdesc.University.Grade / (1000 / (form.pblastgrade.Maximum - form.pblastgrade.Minimum)))));

                form.pbunitime.Value  = Math.Max(form.pbunitime.Minimum, Math.Min(form.pbunitime.Maximum, sdesc.University.Time));
                form.tbinfluence.Text = sdesc.University.Influence.ToString();
                form.tbsemester.Text  = sdesc.University.Semester.ToString();
            }
            else
            {
                if (form.tcsdesc.TabPages.Contains(form.tbuni))
                {
                    form.tcsdesc.TabPages.Remove(form.tbuni);
                }
            }


            form.cbschooltype.SelectedIndex = 0;
            form.tbschooltype.Visible       = Helper.WindowsRegistry.HiddenMode;
            for (int i = 0; i < form.cbschooltype.Items.Count; i++)
            {
                Data.LocalizedSchoolType type;
                object o = form.cbschooltype.Items[i];
                if (o.GetType() == typeof(Alias))
                {
                    type = (Data.LocalizedSchoolType)((uint)((Alias)o).Id);
                }
                else
                {
                    type = (Data.LocalizedSchoolType)o;
                }

                if (sdesc.CharacterDescription.SchoolType == (Data.MetaData.SchoolTypes)type)
                {
                    form.cbschooltype.SelectedIndex = i;
                    break;
                }
            }

            //ghostflags
            form.cbisghost.Checked         = sdesc.CharacterDescription.GhostFlag.IsGhost;
            form.cbpassobject.Checked      = sdesc.CharacterDescription.GhostFlag.CanPassThroughObjects;
            form.cbpasswalls.Checked       = sdesc.CharacterDescription.GhostFlag.CanPassThroughWalls;
            form.cbpasspeople.Checked      = sdesc.CharacterDescription.GhostFlag.CanPassThroughPeople;
            form.cbignoretraversal.Checked = sdesc.CharacterDescription.GhostFlag.IgnoreTraversalCosts;

            //body flags
            form.cbfit.Checked      = sdesc.CharacterDescription.BodyFlag.Fit;
            form.cbfat.Checked      = sdesc.CharacterDescription.BodyFlag.Fat;
            form.cbpregfull.Checked = sdesc.CharacterDescription.BodyFlag.PregnantFull;
            form.cbpreghalf.Checked = sdesc.CharacterDescription.BodyFlag.PregnantHalf;
            form.cbpreginv.Checked  = sdesc.CharacterDescription.BodyFlag.PregnantHidden;

            //Random Data
            form.cbzodiac.SelectedIndex     = ((ushort)sdesc.CharacterDescription.ZodiacSign - 1);
            form.rbfemale.Checked           = (sdesc.CharacterDescription.Gender == Data.MetaData.Gender.Female);
            form.rbmale.Checked             = (sdesc.CharacterDescription.Gender == Data.MetaData.Gender.Male);
            form.pblifelinepoints.Value     = sdesc.CharacterDescription.LifelinePoints + 600;
            form.pbblizlifelinepoints.Value = sdesc.CharacterDescription.BlizLifelinePoints;
            form.tblifelinescore.Text       = sdesc.CharacterDescription.LifelineScore.ToString();
            form.tbschooltype.Text          = "0x" + Helper.HexString((uint)sdesc.CharacterDescription.SchoolType);
            form.pbjobperformance.Value     = sdesc.CharacterDescription.CareerPerformance + 1000;
            form.tbfaminst.Text             = "0x" + Helper.HexString(sdesc.FamilyInstance);
            form.tbvoice.Text    = "0x" + Helper.HexString(sdesc.CharacterDescription.VoiceType);
            form.tbautonomy.Text = "0x" + Helper.HexString(sdesc.CharacterDescription.AutonomyLevel);
            form.tbnpc.Text      = "0x" + Helper.HexString(sdesc.CharacterDescription.NPCType);

            //Decay
            form.pbhunger.Value  = sdesc.Decay.Hunger + 1000;
            form.pbcomfort.Value = sdesc.Decay.Comfort + 1000;
            form.pbbladder.Value = sdesc.Decay.Bladder + 1000;
            form.pbenergy.Value  = sdesc.Decay.Energy + 1000;
            form.pbhygiene.Value = sdesc.Decay.Hygiene + 1000;
            form.pbsocial.Value  = sdesc.Decay.Social + 1000;
            form.pbfun.Value     = sdesc.Decay.Fun + 1000;

            //Character
            form.pbneat.Value     = sdesc.Character.Neat / 100;
            form.pboutgoing.Value = sdesc.Character.Outgoing / 100;
            form.pbactive.Value   = sdesc.Character.Active / 100;
            form.pbplayful.Value  = sdesc.Character.Playful / 100;
            form.pbnice.Value     = sdesc.Character.Nice / 100;

            //Genetic Character
            form.pbgenneat.Value     = sdesc.GeneticCharacter.Neat / 100;
            form.pbgenoutgoing.Value = sdesc.GeneticCharacter.Outgoing / 100;
            form.pbgenactive.Value   = sdesc.GeneticCharacter.Active / 100;
            form.pbgenplayful.Value  = sdesc.GeneticCharacter.Playful / 100;
            form.pbgennice.Value     = sdesc.GeneticCharacter.Nice / 100;

            //Skills
            form.pbbody.Value       = sdesc.Skills.Body;
            form.pbcharisma.Value   = sdesc.Skills.Charisma;
            form.pbcleaning.Value   = sdesc.Skills.Cleaning;
            form.pbcooking.Value    = sdesc.Skills.Cooking;
            form.pbcreativity.Value = sdesc.Skills.Creativity;
            form.pblogic.Value      = sdesc.Skills.Logic;
            form.pbmechanical.Value = sdesc.Skills.Mechanical;
            form.pbfatness.Value    = sdesc.Skills.Fatness;
            form.pbromance.Value    = sdesc.Skills.Romance;

            //Interests
            form.pbman.Value           = sdesc.Interests.FemalePreference + 1000;
            form.pbwoman.Value         = sdesc.Interests.MalePreference + 1000;
            form.pbanimals.Value       = sdesc.Interests.Animals / 100;
            form.pbcrime.Value         = sdesc.Interests.Crime / 100;
            form.pbculture.Value       = sdesc.Interests.Culture / 100;
            form.pbentertainment.Value = sdesc.Interests.Entertainment / 100;
            form.pbenvironment.Value   = sdesc.Interests.Environment / 100;
            form.pbfashion.Value       = sdesc.Interests.Fashion / 100;
            form.pbfood.Value          = sdesc.Interests.Food / 100;
            form.pbhealth.Value        = sdesc.Interests.Health / 100;
            form.pbmonei.Value         = sdesc.Interests.Money / 100;
            form.pbparanormal.Value    = sdesc.Interests.Paranormal / 100;
            form.pbpolitics.Value      = sdesc.Interests.Politics / 100;
            form.pbschool.Value        = sdesc.Interests.School / 100;
            form.pbscifi.Value         = sdesc.Interests.Scifi / 100;
            form.pbsports.Value        = sdesc.Interests.Sports / 100;
            form.pbtoys.Value          = sdesc.Interests.Toys / 100;
            form.pbtravel.Value        = sdesc.Interests.Travel / 100;
            form.pbweather.Value       = sdesc.Interests.Weather / 100;
            form.pbwork.Value          = sdesc.Interests.Work / 100;
            form.UpdateAllProgressTextValues();

            form.simnamechanged = false;

            //this has to be set after the PB-Update
            form.tbcarrerlevel.Text = sdesc.CharacterDescription.CareerLevel.ToString();
        }