public static void SaveInstance(InstanceGame instance, bool force = false) { if (force || LocalMultiplayer.IsLocalMultiplayer()) { if (instance.staticVarHolder == null) { instance.staticVarHolder = Activator.CreateInstance(LocalMultiplayer.StaticVarHolderType); } LocalMultiplayer.StaticSave(instance.staticVarHolder); } }
public static void LoadInstance(InstanceGame instance, bool force = false) { Game1.game1 = (instance as Game1); if ((force || LocalMultiplayer.IsLocalMultiplayer()) && instance.staticVarHolder != null) { LocalMultiplayer.StaticLoad(instance.staticVarHolder); if (Game1.player != null && (bool)Game1.player.isCustomized && Game1.splitscreenOptions.ContainsKey(Game1.player.UniqueMultiplayerID)) { Game1.options = Game1.splitscreenOptions[Game1.player.UniqueMultiplayerID]; Game1.options.lightingQuality = GameRunner.instance.gameInstances[0].instanceOptions.lightingQuality; } } }
private static void SetInstanceDefaults(InstanceGame instance) { for (int i = 0; i < LocalMultiplayer.staticDefaults.Count; i++) { object value = LocalMultiplayer.staticDefaults[i]; if (value != null) { value = value.DeepClone(); } LocalMultiplayer.staticFields[i].SetValue(null, value); } SaveInstance(instance); }