예제 #1
0
        private static void CreateNewVersionDialog()
        {
            string value  = LastPlayedVersion.Version.Major + "." + LastPlayedVersion.Version.Minor;
            string value2 = VersionControl.CurrentMajor + "." + VersionControl.CurrentMinor;
            string str    = "GameUpdatedToNewVersionInitial".Translate(value, value2);

            str += "\n\n";
            str  = ((!BackCompatibility.IsSaveCompatibleWith(LastPlayedVersion.Version.ToString())) ? ((string)(str + "GameUpdatedToNewVersionSavesIncompatible".Translate())) : ((string)(str + "GameUpdatedToNewVersionSavesCompatible".Translate())));
            str += "\n\n";
            str += "GameUpdatedToNewVersionSteam".Translate();
            Find.WindowStack.Add(new Dialog_MessageBox(str));
            dialogDone = true;
        }
        private static void CreateNewVersionDialog()
        {
            string text  = LastPlayedVersion.Version.Major + "." + LastPlayedVersion.Version.Minor;
            string text2 = VersionControl.CurrentMajor + "." + VersionControl.CurrentMinor;
            string str   = "GameUpdatedToNewVersionInitial".Translate(text, text2);

            str += "\n\n";
            str  = ((!BackCompatibility.IsSaveCompatibleWith(LastPlayedVersion.Version.ToString())) ? (str + "GameUpdatedToNewVersionSavesIncompatible".Translate()) : (str + "GameUpdatedToNewVersionSavesCompatible".Translate()));
            str += "\n\n";
            str += "GameUpdatedToNewVersionSteam".Translate();
            Find.WindowStack.Add(new Dialog_MessageBox(str, null, null, null, null, null, false));
            VersionUpdateDialogMaker.dialogDone = true;
        }
        private static void CreateNewVersionDialog()
        {
            string value  = LastPlayedVersion.Version.Major + "." + LastPlayedVersion.Version.Minor;
            string value2 = VersionControl.CurrentMajor + "." + VersionControl.CurrentMinor;
            string text   = "GameUpdatedToNewVersionInitial".Translate(value, value2);

            text += "\n\n";
            if (BackCompatibility.IsSaveCompatibleWith(LastPlayedVersion.Version.ToString()))
            {
                text += "GameUpdatedToNewVersionSavesCompatible".Translate();
            }
            else
            {
                text += "GameUpdatedToNewVersionSavesIncompatible".Translate();
            }
            text += "\n\n";
            text += "GameUpdatedToNewVersionSteam".Translate();
            Find.WindowStack.Add(new Dialog_MessageBox(text, null, null, null, null, null, false, null, null));
            VersionUpdateDialogMaker.dialogDone = true;
        }
        public static bool Prefix(bool __result, Action confirmedAction, ScribeMetaHeaderUtility.ScribeHeaderMode ___lastMode)
        {
            string message = null;
            string title   = null;

            if (!BackCompatibility.IsSaveCompatibleWith(ScribeMetaHeaderUtility.loadedGameVersion) &&
                // ScribeMetaHeaderUtility.VersionsMatch is private, it's component parts are not...
                VersionControl.BuildFromVersionString(ScribeMetaHeaderUtility.loadedGameVersion) != VersionControl.BuildFromVersionString(VersionControl.CurrentVersionStringWithRev))
            {
                title = "VersionMismatch".Translate();
                var loadedVersion = !ScribeMetaHeaderUtility.loadedGameVersion.NullOrEmpty() ? ScribeMetaHeaderUtility.loadedGameVersion : ("(" + "UnknownLower".Translate() + ")");
                switch (___lastMode)
                {
                case ScribeMetaHeaderUtility.ScribeHeaderMode.Map:
                    message = "SaveGameIncompatibleWarningText".Translate(loadedVersion, VersionControl.CurrentVersionString);
                    break;

                case ScribeMetaHeaderUtility.ScribeHeaderMode.World:
                    message = "WorldFileVersionMismatch".Translate(loadedVersion, VersionControl.CurrentVersionString);
                    break;

                default:
                    message = "FileIncompatibleWarning".Translate(loadedVersion, VersionControl.CurrentVersionString);
                    break;
                }
            }
            bool modMismatch = false;

            if (!ScribeMetaHeaderUtility.LoadedModsMatchesActiveMods(out string loadedMods, out string activeMods))
            {
                modMismatch = true;
                string modsMismatchMessage = "We're terribly sorry this message is so useless" + "ModsMismatchWarningText".Translate(loadedMods, activeMods);
                if (message == null)
                {
                    message = modsMismatchMessage;
                }
                else
                {
                    message = message + "\n\n" + modsMismatchMessage;
                }
                if (title == null)
                {
                    title = "ModsMismatchWarningTitle".Translate();
                }
            }
            if (message != null)
            {
                var dialog = Dialog_MessageBox.CreateConfirmation(message, confirmedAction, false, title);
                dialog.buttonAText = "LoadAnyway".Translate();

                if (modMismatch)
                {
                    dialog.buttonCText   = "ChangeLoadedMods".Translate();
                    dialog.buttonCAction = delegate()
                    {
                        // TODO: load mods from save game, mod manager style.
                        // Probably want to open the mod menu?
                        // ModsConfig.RestartFromChangedMods();
                    };
                }
                Find.WindowStack.Add(dialog);
                __result = true;
            }
            else
            {
                __result = false;
            }

            return(false);
        }