private static bool SwitchToOutfitWithoutSpin(Sim ths, OutfitCategories category, int index) { if (!ths.AcceptableClothingCategoryForAge(category)) { return(false); } if (!ths.SwitchToOutfitTraitTest(Sim.ClothesChangeReason.Force, ref category)) { return(false); } SimOutfit outfit = CASParts.GetOutfit(ths.mSimDescription, new CASParts.Key(category, index), false); if ((outfit == null) || (outfit.Key == ResourceKey.kInvalidResourceKey)) { return(false); } if (ths.SimDescription.IsSupernaturalForm) { if (ths.BuffManager.TransformBuffInst != null) { if (ths.BuffManager.TransformBuffInst.GenerateTransformOutfit(outfit)) { int superIndex = ths.SimDescription.GetOutfitCount(OutfitCategories.Supernatural) - 0x1; outfit = CASParts.GetOutfit(ths.SimDescription, new CASParts.Key(OutfitCategories.Supernatural, superIndex), false); } } } ths.SwitchToOutfitWithoutSpin(category, outfit, index); return(true); }
private static void SwitchToOutfitWithoutSpin(Sim ths, Sim.ClothesChangeReason reason, bool ignoreCurrentCategory) { if (reason == Sim.ClothesChangeReason.RemovingOuterwear) { if (ths.OutfitCategoryToUseWhenSpinOutOfOuterwear == OutfitCategories.None) { ths.OutfitCategoryToUseWhenSpinOutOfOuterwear = OutfitCategories.Everyday; } } OutfitCategories category; ths.GetOutfitForClothingChange(reason, out category); if (!ths.SwitchToOutfitTraitTest(reason, ref category)) { return; } // MC adds swimwear for toddlers if (!ths.AcceptableClothingCategoryForAge(category)) { if (ths.SimDescription.Toddler && category != OutfitCategories.Swimwear) { return; } } if (ths.SimDescription.OccultManager.DisallowClothesChange()) { return; } if (ths.BuffManager.DisallowClothesChange(reason, category)) { return; } if ((!ignoreCurrentCategory && (category == ths.CurrentOutfitCategory))) { return; } int num; ths.GetCategoryAndIndexToUse(reason, ref category, out num); ths.SwitchToOutfitWithoutSpin(category, num); }
private static bool SwitchToOutfitWithoutSpin(Sim ths, OutfitCategories category, int index) { if (!ths.AcceptableClothingCategoryForAge(category)) { return false; } if (!ths.SwitchToOutfitTraitTest(Sim.ClothesChangeReason.Force, ref category)) { return false; } SimOutfit outfit = CASParts.GetOutfit(ths.mSimDescription, new CASParts.Key(category, index), false); if ((outfit == null) || (outfit.Key == ResourceKey.kInvalidResourceKey)) { return false; } if (ths.SimDescription.IsSupernaturalForm) { if (ths.BuffManager.TransformBuffInst != null) { if (ths.BuffManager.TransformBuffInst.GenerateTransformOutfit(outfit)) { int superIndex = ths.SimDescription.GetOutfitCount(OutfitCategories.Supernatural) - 0x1; outfit = CASParts.GetOutfit(ths.SimDescription, new CASParts.Key(OutfitCategories.Supernatural, superIndex), false); } } } ths.SwitchToOutfitWithoutSpin(category, outfit, index); return true; }