public static void UnloadMap(Map map, string fileName, bool forced = false) { utilityStatus = PersistenceUtilityStatus.Saving; if (!IsLastColony() || forced) { if (SaveMap(map, fileName)) { // Changing state to not get the banished debuff as you literally don't banish your people Current.ProgramState = ProgramState.Entry; Current.Game.DeinitAndRemoveMap(map); Current.ProgramState = ProgramState.Playing; Messages.Message("FM.mapUnloaded".Translate(), MessageTypeDefOf.NeutralEvent); } else { Messages.Message("FM.mapUnloadFailed".Translate(), MessageTypeDefOf.RejectInput); } } else { Messages.Message("FM.errorMapUnloadLast".Translate(), MessageTypeDefOf.RejectInput); } utilityStatus = PersistenceUtilityStatus.Idle; }
public static void LoadMap(string fileName, bool forced = false) { utilityStatus = PersistenceUtilityStatus.Loading; if (!MaxColoniesReached() || forced) { LongEventHandler.SetCurrentEventText("FM.prepareGame".Translate()); SaveCurrentGame(); LongEventHandler.SetCurrentEventText("FM.prepareLoad".Translate()); PrepareSaveGame(fileName); LoadGameFromTmpSave(fileName); Messages.Message("FM.mapLoaded".Translate(), MessageTypeDefOf.NeutralEvent); } else { Messages.Message("CommandSettleFailReachedMaximumNumberOfBases".Translate(), MessageTypeDefOf.NeutralEvent); } utilityStatus = PersistenceUtilityStatus.Idle; }