Split dependency checks to enable overriding of only specific ones

This commit is contained in:
Eddoursul 2022-08-01 14:43:38 +02:00
parent b881b673a0
commit 8e90f116ef
12 changed files with 69 additions and 49 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,39 +0,0 @@
Scriptname _00E_Func_CheckDependencies Hidden
Function CheckDependencies() global
; SKSE is currently mandatory
Int SKSEVer = SKSE.GetVersion()
if SKSEVer == 0
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("SKSE is not detected! Start Enderal through the launcher or skse64_loader.exe in the game directory.")
Return
endif
; SkyUI is optional - override quest_journal.swf with the vanilla file, remove this check, and you are good to go
Quest bSkyUI = Game.GetFormFromFile(0x802, "SkyUI_SE.esp") as Quest
If bSkyUI == None
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("SkyUI_SE.esp is not loaded! The game will not run properly. Open Data Files and enable it.")
Return
EndIf
; To get rid of this, make alternatives for CreatePotion and CalculateContentStrength first
if SKSE.GetPluginVersion("EnderalSE") == -1
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("EnderalSE.dll is not loaded! The game will not run properly. Verify integrity of your files.\n\nThis may also happen, if your version of SKSE or Enderal is too old. In this case, it is advised to upgrade.")
Return
endif
if (SKSE.GetPluginVersion("JContainers64") == -1) && (SKSE.GetPluginVersion("JContainersVR") == -1)
; JContainers is only required for lycanthropy, so we just nag users without preventing playing without it
Utility.wait(2.0)
Debug.MessageBox("JContainers is not loaded! The game will not run properly. Verify integrity of your files or reinstall JContainers.")
endif
EndFunction

View File

@ -0,0 +1,15 @@
Scriptname _00E_Func_CheckEnderalDLL Hidden
Function Run() global
Int SKSEVer = SKSE.GetVersion()
; To get rid of this, make alternatives for CreatePotion and CalculateContentStrength first
if SKSEVer == 0 || SKSE.GetPluginVersion("EnderalSE") == -1
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("EnderalSE.dll is not loaded! The game will not run properly. Verify integrity of your files.\n\nThis may also happen, if your version of SKSE or Enderal is too old. In this case, it is advised to upgrade.")
Return
endif
EndFunction

View File

@ -0,0 +1,13 @@
Scriptname _00E_Func_CheckJContainers Hidden
Function Run() global
Int SKSEVer = SKSE.GetVersion()
if (SKSEVer == 0 || (SKSE.GetPluginVersion("JContainers64") == -1) && (SKSE.GetPluginVersion("JContainersVR") == -1))
; JContainers is only required for lycanthropy, so we just nag users without preventing playing without it
Utility.wait(2.0)
Debug.MessageBox("JContainers is not loaded! The game will not run properly. Verify integrity of your files or reinstall JContainers.")
endif
EndFunction

View File

@ -0,0 +1,15 @@
Scriptname _00E_Func_CheckSKSE Hidden
Function Run() global
; SKSE is currently mandatory
Int SKSEVer = SKSE.GetVersion()
if SKSEVer == 0
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("SKSE is not detected! Start Enderal through the launcher or skse64_loader.exe in the game directory.")
Return
endif
EndFunction

View File

@ -0,0 +1,15 @@
Scriptname _00E_Func_CheckSkyUI Hidden
Function Run() global
; SkyUI is optional - override quest_journal.swf with the vanilla file, remove this check, and you are good to go
Quest bSkyUI = Game.GetFormFromFile(0x802, "SkyUI_SE.esp") as Quest
If bSkyUI == None
Utility.wait(2.0)
Game.QuitToMainMenu()
Debug.MessageBox("SkyUI_SE.esp is not loaded! The game will not run properly. Open Data Files and enable it.")
Return
EndIf
EndFunction

View File

@ -20,7 +20,11 @@ Event OnInit()
EndWhile
CheckForgottenStories()
_00E_Func_CheckDependencies.CheckDependencies()
_00E_Func_CheckSKSE.Run()
_00E_Func_CheckSkyUI.Run()
_00E_Func_CheckEnderalDLL.Run()
_00E_Func_CheckJContainers.Run()
If fPatchVersion == 0.00
fPatchVersion = CURRENT_PATCH_VERSION
@ -52,7 +56,12 @@ EndEvent
Event OnPlayerLoadGame()
If self == (PlayerREF as ObjectReference) ; A check just in case. Most likely this condition is always True
CheckForgottenStories()
_00E_Func_CheckDependencies.CheckDependencies()
_00E_Func_CheckSKSE.Run()
_00E_Func_CheckSkyUI.Run()
_00E_Func_CheckEnderalDLL.Run()
_00E_Func_CheckJContainers.Run()
Maintenance()
If GetState() != "RealPlayer" ; Post-1.2.5.0 version update
GoToState("RealPlayer")
@ -163,14 +172,6 @@ Function Update_212()
PlayerREF.AddPerk(Game.GetFormFromFile(0x14CF8, "Enderal - Forgotten Stories.esm") as Perk) ; _00E_SE_WerewolfBlockFurniturePerk
PlayerREF.AddPerk(Game.GetFormFromFile(0x14CFA, "Enderal - Forgotten Stories.esm") as Perk) ; _00E_SE_DismantlePerk
PlayerREF.AddPerk(Game.GetFormFromFile(0x14CF9, "Enderal - Forgotten Stories.esm") as Perk) ; _00E_SE_2_0_12_UpgradePerk
Quest qSkyUI = Game.GetFormFromFile(0x802, "SkyUI_SE.esp") as Quest
if qSkyUI
(qSkyUI as SKI_ConfigManager).ForceReset()
qSkyUI.Reset()
qSkyUI.Start()
(qSkyUI as SKI_ConfigManager).OnGameReload()
endif
EndFunction