Compare commits

...

3 Commits

10 changed files with 32 additions and 20 deletions

Binary file not shown.

View File

@ -8,16 +8,16 @@ Beware, spoilers ahead!
2.1.4 (TBD)
- Chinese Simplified localization revision by DaisyComment (no translation of lines added after 2.0.12.4 yet).
- Fixed a random crash, occuring when guards are about to start a conversation scene and any of them is riding a horse.
- Fixed a random crash, occurring when guards on the outskirts of Ark or on the Farmers Coast are about to start a conversation scene and any of them is riding a horse.
- Fixed help messages (in the middle of the screen) sometimes getting stuck in an infinite savebaked loop.
- Dreamflower can be found without finishing The Secrets first.
- Dimension Rift might get stuck in an infinite effect+sound loop if player left the cell while it's active.
- Fixed missing damage from spectral arrows produced by the Arcane Arrow affinity.
- Fixed dismantling recipes checking for Arcane Smith instead if Arcane Disassembling.
- Fixed scripts causing black screen during starting quests with SkyParkour and possibly some other mods.
- Updated LOD with xLODGen beta 132 and DynDOLOD 3.00 alpha 194.
- Updated LOD with xLODGen beta 132 and DynDOLOD 3.00 alpha 194 by sheson. Fixed the stitched object LOD warning showing up on TexGen start.
- Restored Tharael's forehead tattoo lost during the initial facegen conversion.
- Fixed Entropic Blood not working in god mode, fixed inability to select a strong enemy as an attack target.
- Entropic Blood: fixed inability to select a strong enemy as an attack target, fixed not working in god mode.
- Revised alchemy. Consistency and distribution changes across the board due to lack of a coherent alchemy system prior to this patch, such as:
-- Lower global magnitude modifier than in Skyrim (x1.5 against x4) combined with higher game difficulty made some grandfathered ingredients too weak, effect magnitudes were increased where necessary.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -181,7 +181,7 @@ SKSEPluginLoad(const LoadInterface* skse) {
auto* plugin = PluginDeclaration::GetSingleton();
auto version = plugin->GetVersion();
logger::info("{} {} is loading...", plugin->GetName(), version);
logger::info("{} {} ({}) is loading...", plugin->GetName(), version, SemVerToInt({ version.major(), version.minor(), version.patch(), version.build() }));
Init(skse);
InitializeMessaging();

View File

@ -58,9 +58,8 @@ namespace Papyrus::PapyrusFunctions
inline std::uint32_t GetEnderalVersionInt(RE::StaticFunctionTag*)
{
const auto pluginVersion = SKSE::PluginDeclaration::GetSingleton()->GetVersion();
std::string versionStr = std::format("{}{}{}{}", pluginVersion.major(), pluginVersion.minor(), pluginVersion.patch(), pluginVersion.build());
return std::stoi(versionStr);
return SemVerToInt({ pluginVersion.major(), pluginVersion.minor(), pluginVersion.patch(), pluginVersion.build() });
}
inline RE::TESObjectREFR* GetCurrentContainer(RE::StaticFunctionTag*)

View File

@ -23,6 +23,16 @@ inline uint8_t NewGameCount(bool increment = false)
return g_NewGameStarted;
}
inline std::uint32_t SemVerToInt(std::vector<int> numbers)
{
if (numbers.size() < 4) {
logger::error("Invalid SemVerToInt argument");
return 0;
}
return (numbers[0] << 24) | (numbers[1] << 16) | (numbers[2] << 8) | numbers[3];
}
inline void CheckIncompatibleMods()
{
const auto pluginVersion = SKSE::PluginDeclaration::GetSingleton()->GetVersion();
@ -113,7 +123,7 @@ inline void CheckScriptVersions()
scripts["_00E_ContainerBonusControl"] = 2;
scripts["_00E_AffinityControl"] = 1;
scripts["_00E_SympathyControl"] = 1;
scripts["_00E_EnderalMCM"] = 1;
scripts["_00E_EnderalMCM"] = 2;
scripts["_00E_SkillControl"] = 1;
scripts["_00E_VisionControl"] = 1;
scripts["_00E_EnderalControls"] = 1;

View File

@ -19,7 +19,14 @@ EndEvent
Event OnPlayerLoadGame()
if iPatchVersion < 33620992 ; 2.1.4
Debug.Trace("Updating to v2.1.4 (33620992)...")
; Synchronize KillMoveConfig with KillMove
(Game.GetForm(0x49425) as GlobalVariable).SetValue((Game.GetForm(0x100F19) as GlobalVariable).GetValue())
endif
if iPatchVersion < GetVersion()
Debug.Trace("Setting current version to " + GetVersion())
iPatchVersion = GetVersion()
endif

View File

@ -5,10 +5,11 @@ Scriptname _00E_EnderalMCM extends SKI_ConfigBase
;=====================================================================================
int function _GetScriptVersion() Global
return 1
return 2
endFunction
event OnGameReload()
_00E_KillMove.SetValue(KillMoveConfig.GetValue() as bool)
if SKSE.GetVersion() == 0
Debug.Trace("NO SKSE: the Mod Configuration Menu is disabled")
return
@ -31,7 +32,7 @@ Event OnPageReset(string page)
toggleOID_ReadAloudBooks = AddToggleOption(_00E_ConfigMenu_DisableReadAloudBooks.GetName(), _00E_DisableReadAloudBooks.GetValue() != 0)
toggleOID_VideoSkip = AddToggleOption(_00E_ConfigMenu_VideoSkip.GetName(), _00E_VideoSkip.GetValue() != 0)
toggleOID_ActorHealthBars = AddToggleOption(_00E_ConfigMenu_ActorHealthBars.GetName(), _00E_ActorHealthBarsEnabled.GetValue() != 0)
toggleOID_KillMoves = AddToggleOption(_00E_ConfigMenu_KillMove.GetName(), KillMove.GetValue() != 0)
toggleOID_KillMoves = AddToggleOption(_00E_ConfigMenu_KillMove.GetName(), KillMoveConfig.GetValue() != 0)
SetCursorPosition(1)
@ -94,13 +95,8 @@ Event OnOptionSelect(int option)
ActorHealthBarWidget.UnregisterEvents()
endif
elseif option == toggleOID_KillMoves
ChangeCheckbox(toggleOID_KillMoves, KillMove)
if KillMove.GetValue()
Utility.SetINIBool("bVATSDisable:VATS", false)
else
Utility.SetINIBool("bVATSDisable:VATS", true)
endif
ChangeCheckbox(toggleOID_KillMoves, KillMoveConfig)
_00E_KillMove.SetValue(KillMoveConfig.GetValue() as bool)
EndIf
EndEvent
@ -195,7 +191,7 @@ GlobalVariable Property _00E_DisableOtherTutorials Auto
GlobalVariable Property _00E_DisableReadAloudBooks Auto
GlobalVariable Property _00E_VideoSkip Auto
GlobalVariable Property _00E_ActorHealthBarsEnabled Auto
GlobalVariable Property KillMove Auto
GlobalVariable Property KillMoveConfig Auto
_00E_MeditationHotkeyAlias Property PlayerMeditation Auto