Exemple #1
0
            public void Dispose()
            {
                if (mOutfit != null)
                {
                    int index = ReplaceOutfit(mSim, mKey, mBuilder, mComponents, mAlternate);

                    mOutfit = mSim.GetOutfit(mKey.mCategory, index);

                    SimDescription sim = mSim as SimDescription;
                    if ((sim != null) && (sim.CreatedSim != null))
                    {
                        try
                        {
                            sim.CreatedSim.RefreshCurrentOutfit(false);
                        }
                        catch (Exception e)
                        {
                            Common.DebugException(sim, e);
                        }
                    }
                }

                mBuilder.Dispose();

                Common.Sleep();
            }
Exemple #2
0
        public NewBimDesc(SimDescriptionCore sdCore)
        {
            if (dontCall)
            {
                return;
            }

            var _this = (SimDescription)(object)this;

            if (!NStackTrace.IsCallingMyMethedLite("CreateSimHead", true, 3))
            {
                Create.AddNiecSimDescription(_this);
                NiecException.NewSendTextExceptionToDebugger();
            }

            _this.mSkinToneKey = default(ResourceKey);
            _this.mSecondaryNormalMapWeights = new float[2];
            _this.mFlags                           = SimDescription.FlagField.Marryable | SimDescription.FlagField.CanBeKilledOnJob | SimDescription.FlagField.ShowSocialsOnSim | SimDescription.FlagField.Contactable | SimDescription.FlagField.CanStartFires | SimDescription.FlagField.WasCasCreated;
            _this.mAlmaMaterName                   = string.Empty;
            _this.UserDaysInCurrentAge             = int.MaxValue;
            _this.CharismaStats                    = default(SimDescription.Charisma);
            _this.mShapeDeltaMultiplier            = 1f;
            _this.mPreferredVehicleGuid            = ObjectGuid.InvalidObjectGuid;
            _this.mPreferredBoatGuid               = ObjectGuid.InvalidObjectGuid;
            _this.LastMakeoverReceivedUserDirected = SimClock.CurrentTime() - new DateAndTime(4, DaysOfTheWeek.Sunday, 0, 0, 0);
            _this.mStoredSlot                      = PASSPORTSLOT.PASSPORTSLOT_NUM;
            _this.mReturnSimAlarm                  = AlarmHandle.kInvalidHandle;

            _this.mIsValidDescription = true;

            if (SimDescription.sLoadedSimDescriptions != null)
            {
                SimDescription.sLoadedSimDescriptions.Add(_this);
            }
            try
            {
                _this.TraitManager = new TraitManager(sdCore.TraitManager);
                _this.TraitManager.SetSimDescription(_this);
                _this.CopyAllOutfits(sdCore);
                _this.CopyCoreFileds(sdCore);
                SimOutfit outfit = sdCore.GetOutfit(OutfitCategories.Everyday, 0);
                _this.Init(outfit);
                _this.CopyPetFields(sdCore);
            }
            catch (Exception)
            { }
        }
Exemple #3
0
 public void Dispose()
 {
     if (mOutfit != null)
     {
         int index = ReplaceOutfit(mSim, mKey, mBuilder, mComponents, mAlternate);
         mOutfit = mSim.GetOutfit(mKey.mCategory, index);
         SimDescription sim = mSim as SimDescription;
         if ((sim != null) && (sim.CreatedSim != null))
         {
             try{
                 sim.CreatedSim.RefreshCurrentOutfit(false);
             }catch (Exception exception) {
                 Alive.WriteLog(exception.Message + "\n\n" +
                                exception.StackTrace + "\n\n" +
                                exception.Source);
             }
         }
     }
     mBuilder.Dispose();
     Alive.Sleep();
 }
Exemple #4
0
        public static void RemoveOutfit(SimDescriptionCore sim, Key key, bool alternate)
        {
            bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate));

            sim.RemoveOutfit(key.mCategory, key.GetIndex(sim, alternate), true, maternity);

            switch (key.mCategory)
            {
            case OutfitCategories.Special:
                if (sim.mSpecialOutfitIndices != null)
                {
                    int index = key.GetIndex(sim, alternate);

                    sim.RemoveSpecialOutfitAtIndex(index);

                    foreach (uint num in new List <uint>(sim.mSpecialOutfitIndices.Keys))
                    {
                        int oldIndex = sim.mSpecialOutfitIndices[num];
                        if (oldIndex > index)
                        {
                            sim.mSpecialOutfitIndices[num] = oldIndex - 1;
                        }
                    }
                }
                break;

            case OutfitCategories.Career:
                CheckIndex(sim, null);
                break;

            case OutfitCategories.Everyday:
                SimDescription simDesc = sim as SimDescription;
                if (simDesc != null)
                {
                    simDesc.mDefaultOutfitKey = sim.GetOutfit(OutfitCategories.Everyday, 0).Key;
                }
                break;
            }
        }
Exemple #5
0
        public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimOutfit newOutfit, bool alternate)
        {
            bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate));

            ArrayList outfits = GetOutfits(sim, key.mCategory, alternate);

            if (outfits == null)
            {
                outfits = new ArrayList();
                if (maternity)
                {
                    sim.mMaternityOutfits[key.mCategory] = outfits;
                }
                else
                {
                    sim.Outfits[key.mCategory] = outfits;
                }
            }

            int index = key.GetIndex(sim, alternate);

            if ((index == -1) || (index >= outfits.Count))
            {
                outfits.Add(newOutfit);

                index = outfits.Count - 1;
            }
            else if (index < outfits.Count)
            {
                SimOutfit oldOutfit = outfits[index] as SimOutfit;
                if (oldOutfit != null)
                {
                    bool inUse = false;
                    foreach (OutfitCategories categories in sim.GetCurrentOutfits().Keys)
                    {
                        ArrayList list2 = sim.GetOutfits(categories);
                        if (list2 != null)
                        {
                            foreach (SimOutfit outfit in list2)
                            {
                                if (outfit.Key == oldOutfit.Key)
                                {
                                    inUse = true;
                                    break;
                                }
                            }
                        }

                        if (inUse)
                        {
                            break;
                        }
                    }

                    if (!inUse)
                    {
                        oldOutfit.Uncache();
                    }
                }

                outfits[index] = newOutfit;
            }
            else
            {
                outfits.Insert(index, newOutfit);
            }

            switch (key.mCategory)
            {
            case OutfitCategories.Special:
                if (!string.IsNullOrEmpty(key.mSpecialKey))
                {
                    if (sim.mSpecialOutfitIndices == null)
                    {
                        sim.mSpecialOutfitIndices = new Dictionary <uint, int>();
                    }

                    sim.mSpecialOutfitIndices[ResourceUtils.HashString32(key.mSpecialKey)] = index;
                }
                break;

            case OutfitCategories.Everyday:
                SimDescription simDesc = sim as SimDescription;
                if (simDesc != null)
                {
                    simDesc.mDefaultOutfitKey = sim.GetOutfit(OutfitCategories.Everyday, 0).Key;
                }
                break;
            }

            return(index);
        }
Exemple #6
0
        public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimOutfit newOutfit, bool alternate)
        {
            bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate));

            ArrayList outfits = GetOutfits(sim, key.mCategory, alternate);
            if (outfits == null)
            {
                outfits = new ArrayList();
                if (maternity)
                {
                    sim.mMaternityOutfits[key.mCategory] = outfits;
                }
                else
                {
                    sim.Outfits[key.mCategory] = outfits;
                }
            }

            int index = key.GetIndex(sim, alternate);

            if ((index == -1) || (index >= outfits.Count))
            {
                outfits.Add(newOutfit);

                index = outfits.Count - 1;
            }
            else if (index < outfits.Count)
            {
                SimOutfit oldOutfit = outfits[index] as SimOutfit;
                if (oldOutfit != null)
                {
                    bool inUse = false;
                    foreach (OutfitCategories categories in sim.GetCurrentOutfits().Keys)
                    {
                        ArrayList list2 = sim.GetOutfits(categories);
                        if (list2 != null)
                        {
                            foreach (SimOutfit outfit in list2)
                            {
                                if (outfit.Key == oldOutfit.Key)
                                {
                                    inUse = true;
                                    break;
                                }
                            }
                        }

                        if (inUse) break;
                    }

                    if (!inUse)
                    {
                        oldOutfit.Uncache();
                    }
                }

                outfits[index] = newOutfit;
            }
            else
            {
                outfits.Insert(index, newOutfit);
            }

            switch (key.mCategory)
            {
                case OutfitCategories.Special:
                    if (!string.IsNullOrEmpty(key.mSpecialKey))
                    {
                        if (sim.mSpecialOutfitIndices == null)
                        {
                            sim.mSpecialOutfitIndices = new Dictionary<uint, int>();
                        }

                        sim.mSpecialOutfitIndices[ResourceUtils.HashString32(key.mSpecialKey)] = index;
                    }
                    break;
                case OutfitCategories.Everyday:
                    SimDescription simDesc = sim as SimDescription;
                    if (simDesc != null)
                    {
                        simDesc.mDefaultOutfitKey = sim.GetOutfit(OutfitCategories.Everyday, 0).Key;
                    }
                    break;
            }

            return index;
        }
Exemple #7
0
        public static void RemoveOutfit(SimDescriptionCore sim, Key key, bool alternate)
        {
            bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate));

            sim.RemoveOutfit(key.mCategory, key.GetIndex(sim, alternate), true, maternity);

            switch (key.mCategory)
            {
                case OutfitCategories.Special:
                    if (sim.mSpecialOutfitIndices != null)
                    {
                        int index = key.GetIndex(sim, alternate);

                        sim.RemoveSpecialOutfitAtIndex(index);

                        foreach (uint num in new List<uint>(sim.mSpecialOutfitIndices.Keys))
                        {
                            int oldIndex = sim.mSpecialOutfitIndices[num];
                            if (oldIndex > index)
                            {
                                sim.mSpecialOutfitIndices[num] = oldIndex - 1;
                            }
                        }
                    }
                    break;
                case OutfitCategories.Career:
                    CheckIndex(sim, null);
                    break;
                case OutfitCategories.Everyday:
                    SimDescription simDesc = sim as SimDescription;
                    if (simDesc != null)
                    {
                        simDesc.mDefaultOutfitKey = sim.GetOutfit(OutfitCategories.Everyday, 0).Key;
                    }
                    break;
            }            
        }