Compare commits
4 Commits
017db0cfe8
...
3f2f63adca
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f2f63adca | |||
| 597c9d681f | |||
| d4335d3b4c | |||
| 5b77524c2f |
Binary file not shown.
@ -10,10 +10,10 @@ Beware, spoilers ahead!
|
|||||||
- Fixed inconsistent spawning of critters, mostly bees (reported by Amaseal).
|
- 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).
|
- 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).
|
- Fixed an exploit allowing to collect more gold from containers (reported by LevinLozenges).
|
||||||
|
- All localizations have been brought up to date.
|
||||||
|
|
||||||
Engine patches:
|
Engine patches:
|
||||||
- Automatically detects and warns about form type collisions when using Skyrim mods.
|
- Automatically detects and warns about form type collisions when using incompatible Skyrim mods.
|
||||||
- `Enderal - Forgotten Stories.esm` is always force-loaded.
|
|
||||||
- Included GOG Memory (VRAM) Leak Fix by DwemerEngineer.
|
- Included GOG Memory (VRAM) Leak Fix by DwemerEngineer.
|
||||||
|
|
||||||
Lirk:
|
Lirk:
|
||||||
|
|||||||
Binary file not shown.
@ -203,7 +203,7 @@ SKSEPluginLoad(const LoadInterface* skse) {
|
|||||||
Init(skse, false);
|
Init(skse, false);
|
||||||
InitializeMessaging();
|
InitializeMessaging();
|
||||||
|
|
||||||
if (g_settings.at("WarnFormTypeCollisions") && !!REL::Module::IsVR()) {
|
if (g_settings.at("WarnFormTypeCollisions") && !REL::Module::IsVR()) {
|
||||||
FormTypeCollisionDetector::Install();
|
FormTypeCollisionDetector::Install();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -48,28 +48,18 @@ namespace FormTypeCollisionDetector
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger::warn("Detected {} form type collision(s) from {} mod(s)",
|
// Show message box
|
||||||
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
|
|
||||||
if (!messageShown && !flaggedMods.empty()) {
|
if (!messageShown && !flaggedMods.empty()) {
|
||||||
messageShown = true;
|
messageShown = true;
|
||||||
auto firstMod = *flaggedMods.begin();
|
auto firstMod = *flaggedMods.begin();
|
||||||
std::string message = std::format(
|
std::string message = std::format(
|
||||||
"{} is incompatible with Enderal (form type collision).\n"
|
"{} 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) {
|
if (flaggedMods.size() > 1) {
|
||||||
message = std::format(
|
message = std::format(
|
||||||
"{} and {} other mod(s) are incompatible with Enderal.\n"
|
"{} and {} other mod(s) are incompatible with Enderal (form type collision).\n"
|
||||||
"Check console for details.",
|
"See Documents\\My Games\\Skyrim Special Edition (GOG)\\SKSE\\EnderalSE.log for details.",
|
||||||
firstMod, flaggedMods.size() - 1);
|
firstMod, flaggedMods.size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -103,7 +103,7 @@ inline void CheckScriptVersions()
|
|||||||
|
|
||||||
std::map<std::string, short> scripts;
|
std::map<std::string, short> scripts;
|
||||||
scripts["_00e_a2_eyeofthestormsc"] = 1;
|
scripts["_00e_a2_eyeofthestormsc"] = 1;
|
||||||
scripts["_00E_EnderalVersion"] = 1;
|
scripts["_00E_EnderalVersion"] = 2;
|
||||||
scripts["EnderalFunctions"] = 2;
|
scripts["EnderalFunctions"] = 2;
|
||||||
scripts["_00E_PlayerFunctions"] = 2;
|
scripts["_00E_PlayerFunctions"] = 2;
|
||||||
scripts["_00E_PlayerSetUpScript"] = 1;
|
scripts["_00E_PlayerSetUpScript"] = 1;
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Scriptname _00E_EnderalVersion extends ReferenceAlias Hidden
|
|||||||
int iPatchVersion
|
int iPatchVersion
|
||||||
|
|
||||||
int function _GetScriptVersion() Global
|
int function _GetScriptVersion() Global
|
||||||
return 1
|
return 2
|
||||||
endFunction
|
endFunction
|
||||||
|
|
||||||
int function GetVersion() global
|
int function GetVersion() global
|
||||||
@ -25,6 +25,15 @@ Event OnPlayerLoadGame()
|
|||||||
(Game.GetForm(0x49425) as GlobalVariable).SetValue((Game.GetForm(0x100F19) as GlobalVariable).GetValue())
|
(Game.GetForm(0x49425) as GlobalVariable).SetValue((Game.GetForm(0x100F19) as GlobalVariable).GetValue())
|
||||||
endif
|
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()
|
if iPatchVersion < GetVersion()
|
||||||
Debug.Trace("Setting current version to " + GetVersion())
|
Debug.Trace("Setting current version to " + GetVersion())
|
||||||
iPatchVersion = GetVersion()
|
iPatchVersion = GetVersion()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user