コード例 #1
0
        static bool Prefix_TryCreateDialogForVersionMismatchWarnings(ref bool __result, Action confirmedAction)
        {
            SimpleLog.Log("Checking mod mismatch");
            bool isModListSame     = ScribeMetaHeaderUtility.LoadedModsMatchesActiveMods(out _, out _);
            bool useVersionCompare = ModMismatchFormatter.useVersionCompare;

            if (isModListSame)
            {
                SimpleLog.Log("ModList are same");
                if (useVersionCompare)
                {
                    SimpleLog.Log("use version checking");
                    bool isVersionSame = MetaHeaderUtility.isVersionSame(ModContentPackExtension.GetModsFromSave(useVersionCompare), ModContentPackExtension.GetModsFromActive(useVersionCompare));
                    if (!isVersionSame)
                    {
                        SimpleLog.Log("Version is different...");
                        string warningMessage = "Checking mismatch for mod and mod versions... please wait";
                        Messages.Message(warningMessage, MessageTypeDefOf.SilentInput, false);
                        CreateModMismatchWindow(confirmedAction, useVersionCompare);
                        __result = true;
                        return(false);
                    }
                }

                __result = false;
                return(true);
            }
            else
            {
                SimpleLog.Log("Mod mismatch!");
                CreateModMismatchWindow(confirmedAction, useVersionCompare);
                __result = true;
                return(false);
            }
        }
コード例 #2
0
        static void Prefix_SaveGame(string fileName)
        {
            SimpleLog.Log("Caching last saved file path");
            bool WriteMeta = ModMismatchFormatter.writeMetaToSave;

            if (WriteMeta)
            {
                MetaHeaderUtility.StoreLastSavedFilePath(fileName);
            }
        }
コード例 #3
0
        static void Postfix_SaveGame()
        {
            SimpleLog.Log("Trying to write additional meta headers to save file...");
            bool WriteMeta = ModMismatchFormatter.writeMetaToSave;

            if (WriteMeta)
            {
                try
                {
                    MetaHeaderUtility.UpdateModVersionMetaHeader();
                }
                catch (Exception ex)
                {
                    string report = $"exception was raised and cannot write mod meta headers to the save. mod versions are not saved. your save is fine though.\n==original exception==\n{ex.ToString()}";
                    Log.Error(report);
                }
            }
        }