Compare commits
No commits in common. "7b24aa0767e6c36c37bdfedf4655174eb45fda10" and "278c4cfefdcba4b78b165965e8a1d25685dd7f4d" have entirely different histories.
7b24aa0767
...
278c4cfefd
BIN
SKSE/Plugins/EnderalSE.dll
(Stored with Git LFS)
BIN
SKSE/Plugins/EnderalSE.dll
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -8,7 +8,6 @@ auto EventListener::GetSingleton() -> EventListener*
|
|||||||
return std::addressof(singleton);
|
return std::addressof(singleton);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unused
|
|
||||||
void EventListener::Install()
|
void EventListener::Install()
|
||||||
{
|
{
|
||||||
RE::ScriptEventSourceHolder::GetSingleton()->AddEventSink<RE::TESContainerChangedEvent>(EventListener::GetSingleton());
|
RE::ScriptEventSourceHolder::GetSingleton()->AddEventSink<RE::TESContainerChangedEvent>(EventListener::GetSingleton());
|
||||||
@ -58,9 +57,6 @@ auto EventListener::ProcessEvent(
|
|||||||
movie->Invoke("_root.QuestJournalFader.Menu_mc.RestoreSavedSettings", nullptr, args.data(), static_cast<std::uint32_t>(args.size()));
|
movie->Invoke("_root.QuestJournalFader.Menu_mc.RestoreSavedSettings", nullptr, args.data(), static_cast<std::uint32_t>(args.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (!a_event->opening && a_event->menuName == RE::MainMenu::MENU_NAME) {
|
|
||||||
RE::UI::GetSingleton()->RemoveEventSink<RE::MenuOpenCloseEvent>(EventListener::GetSingleton());
|
|
||||||
CheckScriptVersions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return RE::BSEventNotifyControl::kContinue;
|
return RE::BSEventNotifyControl::kContinue;
|
||||||
|
@ -141,7 +141,6 @@ SKSEPluginLoad(const LoadInterface* skse) {
|
|||||||
InitializeMessaging();
|
InitializeMessaging();
|
||||||
|
|
||||||
SKSE::GetModCallbackEventSource()->AddEventSink(EventListener::GetSingleton());
|
SKSE::GetModCallbackEventSource()->AddEventSink(EventListener::GetSingleton());
|
||||||
RE::UI::GetSingleton()->AddEventSink<RE::MenuOpenCloseEvent>(EventListener::GetSingleton());
|
|
||||||
|
|
||||||
GetPapyrusInterface()->Register(Papyrus::Bind);
|
GetPapyrusInterface()->Register(Papyrus::Bind);
|
||||||
|
|
||||||
|
@ -65,72 +65,6 @@ inline void CheckIncompatibleMods()
|
|||||||
CheckEnderalStatics();
|
CheckEnderalStatics();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool PapyrusGlobalFunctionExists(const char* scriptName, const char* funcName)
|
|
||||||
{
|
|
||||||
logger::info("Real - GetGlobalFunctionNames of {}", scriptName);
|
|
||||||
std::vector<std::string> functionNames;
|
|
||||||
RE::BSTSmartPointer<RE::BSScript::ObjectTypeInfo> typeInfoPtr;
|
|
||||||
RE::BSScript::Internal::VirtualMachine::GetSingleton()->GetScriptObjectType(RE::BSFixedString(scriptName), typeInfoPtr);
|
|
||||||
auto functionCount = typeInfoPtr->GetNumGlobalFuncs();
|
|
||||||
auto functions = typeInfoPtr->GetGlobalFuncIter();
|
|
||||||
for (uint32_t i = 0; i < functionCount; i++) {
|
|
||||||
if (functions[i].func->GetName().c_str() == funcName) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void CheckScriptVersions()
|
|
||||||
{
|
|
||||||
class ScriptVersionCallback : public RE::BSScript::IStackCallbackFunctor
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
std::uint32_t expectedVersion;
|
|
||||||
const RE::BSFixedString scriptName;
|
|
||||||
const RE::BSFixedString funcName = "_GetScriptVersion";
|
|
||||||
public:
|
|
||||||
ScriptVersionCallback(const RE::BSFixedString a_scriptName, int a_version) :
|
|
||||||
scriptName(a_scriptName),
|
|
||||||
expectedVersion(a_version)
|
|
||||||
{
|
|
||||||
if (PapyrusGlobalFunctionExists(scriptName.c_str(), funcName.c_str())) {
|
|
||||||
const auto vm = RE::BSScript::Internal::VirtualMachine::GetSingleton();
|
|
||||||
auto callbackPtr = RE::BSTSmartPointer<RE::BSScript::IStackCallbackFunctor>(this);
|
|
||||||
vm->DispatchStaticCall(scriptName, funcName, RE::MakeFunctionArguments(), callbackPtr);
|
|
||||||
} else {
|
|
||||||
auto a_script = scriptName;
|
|
||||||
auto a_version = expectedVersion;
|
|
||||||
SKSE::GetTaskInterface()->AddTask([a_script, a_version]() {
|
|
||||||
RE::DebugMessageBox(std::format("Script {} is overwritten by a mod, incompatible with current version of Enderal. Expected version: {}, installed version: N/A.", a_script.c_str(), a_version).c_str());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void operator()(RE::BSScript::Variable a_result)
|
|
||||||
{
|
|
||||||
if (a_result.GetUInt() != expectedVersion) {
|
|
||||||
RE::DebugMessageBox(std::format("Script {} is overwritten by a mod, incompatible with current version of Enderal. Expected version: {}, installed version: {}.", scriptName.c_str(), expectedVersion, a_result.GetUInt()).c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool CanSave() { return false; }
|
|
||||||
void SetObject(const RE::BSTSmartPointer<RE::BSScript::Object>&) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
RE::BSTSmartPointer<ScriptVersionCallback>{
|
|
||||||
new ScriptVersionCallback("_00E_PlayerSetUpScript", 1)
|
|
||||||
};
|
|
||||||
RE::BSTSmartPointer<ScriptVersionCallback>{
|
|
||||||
new ScriptVersionCallback("_00E_QuestFunctions", 1)
|
|
||||||
};
|
|
||||||
RE::BSTSmartPointer<ScriptVersionCallback>{
|
|
||||||
new ScriptVersionCallback("_00E_Game_SkillmenuSC", 1)
|
|
||||||
};
|
|
||||||
RE::BSTSmartPointer<ScriptVersionCallback>{
|
|
||||||
new ScriptVersionCallback("_00E_Theriantrophist_AlchemyControl", 1)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void LoadINI(std::map<std::string, bool>* settings, const char* iniPath)
|
inline void LoadINI(std::map<std::string, bool>* settings, const char* iniPath)
|
||||||
{
|
{
|
||||||
for (auto it = settings->begin(); it != settings->end(); it++) {
|
for (auto it = settings->begin(); it != settings->end(); it++) {
|
||||||
@ -169,7 +103,7 @@ inline void LoadINI(std::map<std::string, bool>* settings, const char* iniPath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bUpdateINI) {
|
if (bUpdateINI) {
|
||||||
logger::info("New settings detected, adding to EnderalSE.ini");
|
logger::info("New settings detected, adding to ArtifactTracker.ini");
|
||||||
ini.SaveFile(iniPath);
|
ini.SaveFile(iniPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
{
|
{
|
||||||
"kind": "git",
|
"kind": "git",
|
||||||
"repository": "https://gitlab.com/colorglass/vcpkg-colorglass",
|
"repository": "https://gitlab.com/colorglass/vcpkg-colorglass",
|
||||||
"baseline": "6309841a1ce770409708a67a9ba5c26c537d2937",
|
"baseline": "bbd09a56b951d86dec3ea484ec183d00b013b486",
|
||||||
"packages": [
|
"packages": [
|
||||||
"commonlibsse-ng",
|
"commonlibsse-ng",
|
||||||
"gluino",
|
"gluino",
|
||||||
|
@ -11,10 +11,6 @@ Import Math
|
|||||||
Import ActorValueInfo
|
Import ActorValueInfo
|
||||||
Import _00E_QuestFunctions
|
Import _00E_QuestFunctions
|
||||||
|
|
||||||
int function _GetScriptVersion() Global
|
|
||||||
return 1
|
|
||||||
endFunction
|
|
||||||
|
|
||||||
; This script handles the custom character menu
|
; This script handles the custom character menu
|
||||||
|
|
||||||
;=====================================================================================
|
;=====================================================================================
|
||||||
|
@ -3,9 +3,6 @@ Scriptname _00E_PlayerSetUpScript extends ObjectReference
|
|||||||
|
|
||||||
Float Property CURRENT_PATCH_VERSION = 2.13 AutoReadOnly
|
Float Property CURRENT_PATCH_VERSION = 2.13 AutoReadOnly
|
||||||
|
|
||||||
int function _GetScriptVersion() Global
|
|
||||||
return 1
|
|
||||||
endFunction
|
|
||||||
|
|
||||||
;=====================================================================================
|
;=====================================================================================
|
||||||
; EVENTS
|
; EVENTS
|
||||||
|
@ -4,10 +4,6 @@ Scriptname _00E_QuestFunctions extends Quest Conditional
|
|||||||
Import math
|
Import math
|
||||||
Import Utility
|
Import Utility
|
||||||
|
|
||||||
int function _GetScriptVersion() Global
|
|
||||||
return 1
|
|
||||||
endFunction
|
|
||||||
|
|
||||||
;=====================================================================================
|
;=====================================================================================
|
||||||
; EXP
|
; EXP
|
||||||
;=====================================================================================
|
;=====================================================================================
|
||||||
|
@ -91,10 +91,6 @@ string[] aPotionModels
|
|||||||
; FUNCTIONS
|
; FUNCTIONS
|
||||||
;=====================================================================================
|
;=====================================================================================
|
||||||
|
|
||||||
int function _GetScriptVersion() Global
|
|
||||||
return 1
|
|
||||||
endFunction
|
|
||||||
|
|
||||||
function _addNamedPotion(Potion aPotion, string sName, string sModel)
|
function _addNamedPotion(Potion aPotion, string sName, string sModel)
|
||||||
|
|
||||||
if ! aPotion || sName == ""
|
if ! aPotion || sName == ""
|
||||||
|
Loading…
Reference in New Issue
Block a user