Compare commits

...

4 Commits

7 changed files with 19 additions and 20 deletions

Binary file not shown.

View File

@ -10,10 +10,10 @@ Beware, spoilers ahead!
- Fixed inconsistent spawning of critters, mostly bees (reported by Amaseal).
- Removed the Blueprint keyword from the Dreamflower Elixir Recipe to avoid sorting it into the blueprint storage (reported by Fubz).
- Fixed an exploit allowing to collect more gold from containers (reported by LevinLozenges).
- All localizations have been brought up to date.
Engine patches:
- Automatically detects and warns about form type collisions when using Skyrim mods.
- `Enderal - Forgotten Stories.esm` is always force-loaded.
- Automatically detects and warns about form type collisions when using incompatible Skyrim mods.
- Included GOG Memory (VRAM) Leak Fix by DwemerEngineer.
Lirk:

Binary file not shown.

View File

@ -203,7 +203,7 @@ SKSEPluginLoad(const LoadInterface* skse) {
Init(skse, false);
InitializeMessaging();
if (g_settings.at("WarnFormTypeCollisions") && !!REL::Module::IsVR()) {
if (g_settings.at("WarnFormTypeCollisions") && !REL::Module::IsVR()) {
FormTypeCollisionDetector::Install();
}

View File

@ -48,28 +48,18 @@ namespace FormTypeCollisionDetector
return false;
}
logger::warn("Detected {} form type collision(s) from {} mod(s)",
detectedCollisions.size(), flaggedMods.size());
// Print to console
if (auto* console = RE::ConsoleLog::GetSingleton()) {
for (const auto& mod : flaggedMods) {
console->Print(std::format("{} causes form type collisions (incompatible with Enderal)", mod).c_str());
}
}
// Show message box for first mod only
// Show message box
if (!messageShown && !flaggedMods.empty()) {
messageShown = true;
auto firstMod = *flaggedMods.begin();
std::string message = std::format(
"{} is incompatible with Enderal (form type collision).\n"
"Check console for details.", firstMod);
"See Documents\\My Games\\Skyrim Special Edition (GOG)\\SKSE\\EnderalSE.log for details.", firstMod);
if (flaggedMods.size() > 1) {
message = std::format(
"{} and {} other mod(s) are incompatible with Enderal.\n"
"Check console for details.",
"{} and {} other mod(s) are incompatible with Enderal (form type collision).\n"
"See Documents\\My Games\\Skyrim Special Edition (GOG)\\SKSE\\EnderalSE.log for details.",
firstMod, flaggedMods.size() - 1);
}

View File

@ -103,7 +103,7 @@ inline void CheckScriptVersions()
std::map<std::string, short> scripts;
scripts["_00e_a2_eyeofthestormsc"] = 1;
scripts["_00E_EnderalVersion"] = 1;
scripts["_00E_EnderalVersion"] = 2;
scripts["EnderalFunctions"] = 2;
scripts["_00E_PlayerFunctions"] = 2;
scripts["_00E_PlayerSetUpScript"] = 1;

View File

@ -4,7 +4,7 @@ Scriptname _00E_EnderalVersion extends ReferenceAlias Hidden
int iPatchVersion
int function _GetScriptVersion() Global
return 1
return 2
endFunction
int function GetVersion() global
@ -25,6 +25,15 @@ Event OnPlayerLoadGame()
(Game.GetForm(0x49425) as GlobalVariable).SetValue((Game.GetForm(0x100F19) as GlobalVariable).GetValue())
endif
if iPatchVersion < 33620993 ; 2.1.4.1
Debug.Trace("Updating to v2.1.4.1 (33620993)...")
; Move Dreamflower Elixir recipe back to player
Actor rBlueprintActor = Game.GetFormFromFile(0x2A3DB, "Enderal - Forgotten Stories.esm") as Actor
MiscObject rDreamFlowerRecipe = Game.GetForm(0x43E1B) as MiscObject
Actor rPlayer = Game.GetForm(0x14) as Actor
rBlueprintActor.RemoveItem(rDreamFlowerRecipe, 1, true, rPlayer)
endif
if iPatchVersion < GetVersion()
Debug.Trace("Setting current version to " + GetVersion())
iPatchVersion = GetVersion()