Scriptname _00E_Func_CheckDependencies Hidden

Function CheckDependencies() global
	
	; If Enderal - Forgotten Stories.esm is not loaded, kick the player back to main menu
	if (Game.GetFormFromFile(0x0004320E, "Skyrim.esm") as GlobalVariable).GetValueInt() != 1
		Utility.wait(2.0)
		Game.QuitToMainMenu()
		Debug.MessageBox("Enderal - Forgotten Stories.esm is not loaded! The game will not run properly. Open Data Files and enable it.")
	EndIf

	; Skip all other check on non-PC/non-VR platforms (for future ports)
	; If you are porting Enderal to another platform, you may want to replace _00E_Func_CheckDependencies with your own script.
	if Debug.GetPlatformName() != "Win64"
		return
	endif

	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

	Quest bSkyUI = Game.GetFormFromFile(0x00000802, "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

	if SKSE.GetPluginVersion("fs_skse_functions") == -1
		Utility.wait(2.0)
		Game.QuitToMainMenu()
		Debug.MessageBox("fs.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