private static void OnSavingGame(IScriptObjectGroup group) { var p = Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription; if (p != null) { if (p.mSim != null) { try { Bim.bSDestroy(p.mSim); } catch (Exception) { } } if (NiecHelperSituation.__acorewIsnstalled__) { foreach (var item in Sims3.NiecModList.Persistable.ListCollon.SafeObjectGC_TempBim) { var itemSim = item as Sim; if (itemSim == null) { continue; } itemSim.mSimDescription = p; } } if (!NFinalizeDeath.IsNullOrEmpty(p.mFirstName) || (p.Household == Household.sNpcHousehold || p.Household == Household.sPetHousehold || p.Household == Household.sAlienHousehold)) { NFinalizeDeath.Household_Remove(p, true); if (!NFinalizeDeath.IsNullOrEmpty(p.mFirstName) || p.IsValid || p.IsValidDescription) { NFinalizeDeath.RemoveAllSimNiecNullForGrave(true); SimDescCleanseTask.SafeCallSimDescCleanseO1(p); } } else { p.mSim = null; } } }
public static void InitClass() { if (CheckLoop == -1) { //if (Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription == null) // Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription = new SimDescription(); LoadSaveManager.ObjectGroupSaving += OnSavingGame; NiecTask.Perform(() => { while (true) { Simulator.Sleep(0); CheckLoop = 0; } }); //NiecTask.Perform(() => //{ // if (NULLSIMDESC as SimDescription == null) // NULLSIMDESC = new SimDescription(); // // SimDescCleanseTask.SafeCallSimDescCleanse((SimDescription)NULLSIMDESC); // // while (true) // { // Simulator.Sleep(0); // for (int i = 0; i < 1350; i++) // { // Simulator.Sleep(0); // } // // var p = NULLSIMDESC as SimDescription; // if (p != null) // { // SimDescCleanseTask.SafeCallSimDescCleanse(p); // } // } //}); NiecTask.Perform(() => { while (Helpers.Create.NiecNullSimDescription(true, false, true) == null) { Simulator.Sleep(0); } if (SimDescription.sLoadedSimDescriptions != null) { SimDescription.sLoadedSimDescriptions.Remove(Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription); } while (true) { Simulator.Sleep(0); for (int i = 0; i < 350; i++) { Simulator.Sleep(0); } var p = Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription; if (p != null && (p.Household == Household.sNpcHousehold || p.Household == Household.sPetHousehold || p.Household == Household.sAlienHousehold)) { NFinalizeDeath.Household_Remove(p, true); if (p.IsValid || p.IsValidDescription) { SimDescCleanseTask.SafeCallSimDescCleanseO1(p); } p.mSim = Bim.nullsim; } } }); CreateSimDesc(null, CASAgeGenderFlags.None, CASAgeGenderFlags.None, default(ResourceKey), 0, null, WorldName.Undefined, 0, false); CreatePetBabyPetSimDescription(null, null, null, null, false, GeneticsPet.SetName.DoNotSetName, null, -1, OccultTypes.None, WorldName.Undefined); CreatePetFamily(null, null, CASAgeGenderFlags.None, CASAgeGenderFlags.None, CASAgeGenderFlags.None, null, false, GeneticsPet.SetName.DoNotSetName, -1, OccultTypes.None); CreatePet(null, CASAgeGenderFlags.None, CASAgeGenderFlags.None, CASAgeGenderFlags.None, null, WorldName.Undefined); CreateRobot(default(ResourceKey)); CheckLoop = 0; } }