public override void Apply() { try { CASLogic logic = CASLogic.GetSingleton(); Sims.CASBase.RemoveOutfits(logic.mCurrentSimData); if (mFirstTime) { mFirstTime = false; mOldSimDesc = CASLogic.GetSingleton().CurrentSimDescription as SimDescription; } if (mNewSimDescKey != ResourceKey.kInvalidResourceKey) { logic.LoadSim(mNewSimDescKey); } else if (mNewSimDesc != null) { bool useTempSimDesc = logic.mUseTempSimDesc; try { logic.mUseTempSimDesc = false; logic.SetSimDescription(mNewSimDesc); } finally { logic.mUseTempSimDesc = useTempSimDesc; } } Sims.CASBase.RemoveOutfits(logic.mCurrentSimData); } catch (Exception e) { Common.Exception("Apply", e); } }
// Methods public override bool Run() { if (!IntroTutorial.IsRunning || IntroTutorial.AreYouExitingTutorial()) { if (!RouteAndAnimate(this, base.Actor)) { return(false); } if (Sims3.Gameplay.UI.Responder.Instance.OptionsModel.SaveGameInProgress) { base.BeginCommodityUpdates(); base.EndCommodityUpdates(true); return(true); } this.mTookSemaphore = GameStates.WaitForInteractionStateChangeSemaphore(base.Actor, ~(ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); if (!this.mTookSemaphore) { base.StandardExit(); return(false); } // if (base.Actor.IsSelectable) { while ((Sims3.Gameplay.Gameflow.CurrentGameSpeed == Sims3.Gameplay.Gameflow.GameSpeed.Pause) || MoveDialog.InProgress()) { Simulator.Sleep(0); } base.BeginCommodityUpdates(); SimDescription simDescription = base.Actor.SimDescription; if (simDescription == null) { throw new Exception("ChangeOutfit: sim doesn't have a description!"); } CASChangeReporter.Instance.ClearChanges(); GameStates.TransitionToCASDresserMode(); CASLogic singleton = CASLogic.GetSingleton(); bool flag2 = false; try { singleton.LoadSim(simDescription, base.Actor.CurrentOutfitCategory, 0); while (GameStates.NextInWorldStateId != InWorldState.SubState.LiveMode) { Simulator.Sleep(0); } CASChangeReporter.Instance.SendChangedEvents(base.Actor); CASChangeReporter.Instance.ClearChanges(); EventTracker.SendEvent(EventTypeId.kPlannedOutfit, base.Actor, base.Target); flag2 = true; base.Actor.InteractionQueue.CancelAllInteractionsByType(Dresser.ChangeClothes.Singleton); } finally { } base.EndCommodityUpdates(flag2); if (base.Actor.CurrentOutfitIndex > simDescription.GetOutfitCount(base.Actor.CurrentOutfitCategory)) { base.Actor.UpdateOutfitInfo(); } base.Actor.RecreateOccupationOutfits(); (Sims3.Gameplay.UI.Responder.Instance.HudModel as HudModel).NotifySimChanged(base.Actor.ObjectId); //Animate View object, and handle the purchases this.AcquireStateMachine("viewobjectinteraction"); this.SetActor("x", Actor); this.EnterSim("Enter"); this.AnimateSim("1"); logic_ClosingDown(this.Actor); return(flag2); } } return(false); }