public static void AddMiniSims() { Common.StringBuilder msg = new Common.StringBuilder("AddMiniSims" + Common.NewLine); try { if (MiniSimDescription.sMiniSims == null) { MiniSimDescription.sMiniSims = new Dictionary <ulong, MiniSimDescription>(); } if (!Sims3.Gameplay.UI.Responder.Instance.ClockSpeedModel.GameSpeedLocked) { Sims3.Gameplay.Gameflow.LockGameSpeed(Sims3.Gameplay.Gameflow.GameSpeed.Pause); } msg += "A"; MiniSimDescription.sPendingSimUpdates = 0x0; Household activeHouse = Household.ActiveHousehold; if (GameStates.TravelHousehold != null) { activeHouse = GameStates.TravelHousehold; } List <SimDescription> list = new List <SimDescription>(); if ((activeHouse != null) && (GameStates.TravelerIds != null)) { foreach (ulong num in GameStates.TravelerIds) { list.Add(activeHouse.FindMember(num)); } } msg += "B"; foreach (SimDescription description in SimDescription.GetSimDescriptionsInWorld()) { try { if (description.CelebrityManager == null) { description.Fixup(); } if (!list.Contains(description)) { MiniSims.FixUpForeignPregnantSims(description); } bool flag = MiniSimDescription.UpdateMiniSim(description); bool hasRelationship = false; if (!flag && !list.Contains(description)) { foreach (SimDescription description2 in list) { if ((description2 != null) && (Relationship.Get(description, description2, false) != null)) { hasRelationship = true; break; } } } if (hasRelationship) { MiniSimDescription.sPendingSimUpdates++; MiniSimDescription.MiniSimUpdater updater = new MiniSimDescription.MiniSimUpdater(description); Common.FunctionTask.Perform(updater.UpdateMiniSim); } } catch (Exception e) { Common.Exception(description, null, msg, e); } } msg += "C"; while (MiniSimDescription.sPendingSimUpdates > 0x0) { SpeedTrap.Sleep(); } msg += "D"; if (MiniSimDescription.sMiniSims != null) { msg += Common.NewLine + MiniSimDescription.sMiniSims.Count; } Sims3.Gameplay.Gameflow.UnlockGameSpeed(); } catch (Exception e) { Common.Exception(msg, e); } }
public static void AddMiniSims() { Common.StringBuilder msg = new Common.StringBuilder("AddMiniSims" + Common.NewLine); try { if (MiniSimDescription.sMiniSims == null) { MiniSimDescription.sMiniSims = new Dictionary<ulong, MiniSimDescription>(); } if (!Sims3.Gameplay.UI.Responder.Instance.ClockSpeedModel.GameSpeedLocked) { Sims3.Gameplay.Gameflow.LockGameSpeed(Sims3.Gameplay.Gameflow.GameSpeed.Pause); } msg += "A"; MiniSimDescription.sPendingSimUpdates = 0x0; Household activeHouse = Household.ActiveHousehold; if (GameStates.TravelHousehold != null) { activeHouse = GameStates.TravelHousehold; } List<SimDescription> list = new List<SimDescription>(); if ((activeHouse != null) && (GameStates.TravelerIds != null)) { foreach (ulong num in GameStates.TravelerIds) { list.Add(activeHouse.FindMember(num)); } } msg += "B"; foreach (SimDescription description in SimDescription.GetSimDescriptionsInWorld()) { try { if (description.CelebrityManager == null) { description.Fixup(); } if (!list.Contains(description)) { MiniSims.FixUpForeignPregnantSims(description); } bool flag = MiniSimDescription.UpdateMiniSim(description); bool hasRelationship = false; if (!flag && !list.Contains(description)) { foreach (SimDescription description2 in list) { if ((description2 != null) && (Relationship.Get(description, description2, false) != null)) { hasRelationship = true; break; } } } if (hasRelationship) { MiniSimDescription.sPendingSimUpdates++; MiniSimDescription.MiniSimUpdater updater = new MiniSimDescription.MiniSimUpdater(description); Common.FunctionTask.Perform(updater.UpdateMiniSim); } } catch (Exception e) { Common.Exception(description, null, msg, e); } } msg += "C"; while (MiniSimDescription.sPendingSimUpdates > 0x0) { SpeedTrap.Sleep(); } msg += "D"; if (MiniSimDescription.sMiniSims != null) { msg += Common.NewLine + MiniSimDescription.sMiniSims.Count; } Sims3.Gameplay.Gameflow.UnlockGameSpeed(); } catch (Exception e) { Common.Exception(msg, e); } }