Compare commits

...

6 Commits

139 changed files with 318 additions and 70 deletions

Binary file not shown.

View File

@ -5,9 +5,7 @@ Enderal - Forgotten Stories.ini
E - Update.bsa
Skyrim - Misc.bsa
Interface\fontconfig.txt
Interface\fonts_en2.swf
Interface\quest_journal.swf
Interface\startmenu.swf
Interface\statssheetmenu.swf
Interface\translate_*.txt
Interface\translations\skyui_se_japanese.txt

Binary file not shown.

Binary file not shown.

BIN
scripts/_00E_IceClaw.pex Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -469,7 +469,7 @@ scripts\_00e_dragonpriestcombatrotationscript.pex
scripts\_00e_dungate01script.pex
scripts\_00e_dungeonliftscript.pex
scripts\_00e_eisprankepotionscn.pex
scripts\_00e_eisprankescn.pex
scripts\_00e_iceclaw.pex
scripts\_00E_EnderalControls.pex
scripts\_00e_enderalmcm.pex
scripts\_00e_enemygroupchildscript.pex

View File

@ -126,7 +126,7 @@ auto EventListener::ProcessEvent(
const RE::BGSListForm* formList = dataHandler ? dataHandler->LookupForm<RE::BGSListForm>(0x44EE4, "Skyrim.esm") : nullptr;
if (formList && formList->HasForm(spellFormID)) {
SKSE::ModCallbackEvent modEvent{ "Enderal_UnlockSpellHit", "", spellFormID, containerRef };
SKSE::ModCallbackEvent modEvent{ "Enderal_UnlockSpellHit", "", (float)spellFormID, containerRef };
SKSE::GetModCallbackEventSource()->SendEvent(&modEvent);
}
}

View File

@ -120,31 +120,6 @@ namespace Papyrus::PapyrusFunctions
return ComputeNeededExpPoints(CurrentLevel, Slope, Mult, fExpAcc, fExpAcc_Level20, fExpAcc_Level30, fExpAcc_Level40);
}
bool IsInRegion(RE::StaticFunctionTag*, RE::TESForm* playerRegion)
{
if (!playerRegion) {
return false;
}
auto* parentCell = RE::PlayerCharacter::GetSingleton()->parentCell;
if (!parentCell) {
return false;
}
auto regions = parentCell->GetRegionList(false);
if (regions) {
for (auto it = regions->begin(); it != regions->end(); it++) {
if ((*it) && (*it)->formID == playerRegion->formID) {
return true;
}
}
}
return false;
}
uint32_t MoveItemsToCountByKeyword(RE::StaticFunctionTag*, RE::TESObjectREFR* a_sourceRef, RE::TESObjectREFR* a_targetRef, RE::BGSKeyword* a_keyword, uint32_t a_count = 1)
{
const auto inv = a_sourceRef->GetInventory([&](RE::TESBoundObject& a_exform) {
@ -192,8 +167,6 @@ namespace Papyrus::PapyrusFunctions
logger::info("{}", "Registered EnableDialogueQuitting"sv);
BIND(ComputeNeededExp);
logger::info("{}", "Registered ComputeNeededExp"sv);
BIND(IsInRegion);
logger::info("{}", "Registered IsInRegion"sv);
BIND(MoveItemsToCountByKeyword);
logger::info("{}", "Registered MoveItemsToCountByKeyword"sv);
}

View File

@ -9,7 +9,7 @@ namespace AchievementFix
if (REL::Module::IsVR()) {
target = REL::Offset(0x17FB90);
} else if (REL::Module::get().version() >= REL::Version(1, 6, 1130, 0)) {
// Checked: 1.6.1130
// Checked: 1.6.1130, 1.6.1170, 1.6.1179
target = REL::ID(441528);
} else {
// Checked: 1.5.97, 1.6.640, 1.6.659

View File

@ -35,7 +35,7 @@ namespace BinkInterruptPatch
void Install()
{
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(87890, 90259), REL::Relocate(0x22, 0x21) };
SKSE::AllocTrampoline(14);
BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk);

View File

@ -45,7 +45,7 @@ private:
void static OpenJournal(bool a_bool)
{
using func_t = decltype(&OpenJournal);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<func_t> func{ REL::VariantID(52428, 53327, 0x92F0F0) };
func(a_bool);
}

View File

@ -12,7 +12,7 @@ namespace FlatMapMarkers
inline void Install()
{
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<std::uintptr_t> offset{ REL::RelocationID(52224, 53111), REL::Relocate(0x22F, 0x21F) };
SKSE::AllocTrampoline(14);
SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3);

View File

@ -32,7 +32,7 @@ void HeroMenuPatch::Install()
}
// Patch the Quick Stats hotkey to open the menu
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(51400, 52249), REL::Relocate(0x41E, 0x421) };
REL::safe_fill(target.address(), REL::NOP, 45);

View File

@ -21,7 +21,7 @@ namespace MapMarkerPlacement
void InstallPlacementDiscoveredFix()
{
// Place a marker, if a location has been discovered and fast travel is disabled
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(52208, 53095), REL::Relocate(0x2C5, 0x328, 0x358) };
SKSE::AllocTrampoline(14);
IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk);
@ -32,7 +32,7 @@ namespace MapMarkerPlacement
void InstallPlacementUndiscoveredFix()
{
// Place a marker without asking, if a location isn't discovered yet
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<std::uintptr_t> target2{ REL::RelocationID(52208, 53095), REL::Relocate(0x17A, 0x183) };
std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1
REL::safe_write(target2.address(), code, sizeof(code));

View File

@ -11,7 +11,7 @@ private:
static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index)
{
using func_t = decltype(&OpenMenu);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<func_t> func{ REL::VariantID(51845, 52718, 0x8FE7E0) };
return func(tweenMenu, index);
}

View File

@ -81,7 +81,7 @@ inline void CheckScriptVersions()
const RE::BSFixedString scriptName;
const RE::BSFixedString funcName = "_GetScriptVersion";
public:
ScriptVersionCallback(const RE::BSFixedString a_scriptName, int a_version) :
ScriptVersionCallback(const RE::BSFixedString a_scriptName, short a_version) :
scriptName(a_scriptName),
expectedVersion(a_version)
{
@ -109,25 +109,81 @@ inline void CheckScriptVersions()
void SetObject(const RE::BSTSmartPointer<RE::BSScript::Object>&) {}
};
std::map<std::string, short> scripts;
scripts["_00E_PlayerSetUpScript"] = 1;
scripts["_00E_Phasmalist_NewApparitionAlias"] = 1;
scripts["_FS_Phasmalist_ControlQuest"] = 1;
scripts["_00E_Phasmalist_Workbench"] = 1;
scripts["_00E_Theriantrophist_PlayerAsWerewolf"] = 1;
scripts["_00E_Theriantrophist_AlchemyControl"] = 1;
scripts["_00E_PlayerhousingMaster"] = 1;
scripts["_00E_ContainerBonusControl"] = 1;
scripts["_00E_AffinityControl"] = 1;
scripts["_00E_EnderalMCM"] = 1;
scripts["_00E_SkillControl"] = 1;
scripts["_00E_VisionControl"] = 1;
scripts["_00E_EnderalControls"] = 1;
scripts["_00E_PeaceweedPlayerAliasScript"] = 1;
scripts["_00E_NQ_Bounty01_BoardScript"] = 1;
scripts["_00E_EPUpdateFunctions"] = 1;
scripts["_00E_GUI_ActorHealthBar"] = 1;
scripts["MineOreEnderal"] = 1;
scripts["_00e_fs_nqr05_functions"] = 1;
scripts["_00e_mq11a_functions"] = 1;
scripts["_00e_nq_g_07_functions"] = 1;
scripts["_00e_fs_nq02_functions"] = 1;
scripts["_00e_mq17_functions"] = 1;
scripts["_00e_mq16_functions"] = 1;
scripts["_00e_mq12b_functions"] = 1;
scripts["_00e_mq13c_functions"] = 1;
scripts["_00e_mq07a_functions"] = 1;
scripts["_00e_mq11c_functions"] = 1;
scripts["_00e_fs_nq01_functions"] = 1;
scripts["_00e_nqr01_functions"] = 1;
scripts["_00e_mq14_functions"] = 1;
scripts["_00e_mq06_functions"] = 1;
scripts["_00e_mq13a_functions"] = 1;
scripts["_00e_mq13b_functions"] = 1;
scripts["_00e_fs_nq07_functions"] = 1;
scripts["_00e_fs_nq02_functions2"] = 1;
scripts["_00e_fs_nq03_functions"] = 1;
scripts["_00e_mqp02_functions"] = 1;
scripts["_00e_mq12c_functions"] = 1;
scripts["_00e_mq02_functions"] = 1;
scripts["mq03_functions"] = 1;
scripts["_00e_mq05_functions"] = 1;
scripts["_00e_fs_nqr04_functions"] = 1;
scripts["_00e_cqc05_functions"] = 1;
scripts["_00e_fs_nqr03_functions"] = 1;
scripts["_00e_mq15_functions"] = 1;
scripts["_00e_fs_mq18c_functions"] = 1;
scripts["_00e_mqp01_functions"] = 1;
scripts["_00e_nq_g_06_functions"] = 1;
scripts["_00e_mq01_functions"] = 1;
scripts["_00e_fs_nqr02_functions"] = 1;
scripts["_00e_fs_nq05_functions"] = 1;
scripts["_00e_nq_g_05_functions"] = 1;
scripts["_00e_nq_g_03_functions"] = 1;
scripts["_00e_mqp03_functions"] = 1;
scripts["_00e_mq10a_functions"] = 1;
scripts["_00e_mq12a_functions"] = 1;
scripts["_00e_mq03_functions"] = 1;
scripts["_00e_nq_g_02_functions"] = 1;
scripts["_00e_cqj02_functions"] = 1;
scripts["_00e_cqc06_functions"] = 1;
scripts["_00e_fs_nq06_functions"] = 1;
scripts["_00e_cqj05_functions"] = 1;
scripts["_00e_mq18b_functions"] = 1;
scripts["_00e_nq06_functions"] = 1;
scripts["_00e_mq18a_functions"] = 1;
scripts["_00e_mq05prologue_functions"] = 1;
for (const auto& entry : scripts) {
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_PlayerSetUpScript", 1)
};
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_Phasmalist_NewApparitionAlias", 1)
};
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_Theriantrophist_PlayerAsWerewolf", 1)
};
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_Theriantrophist_AlchemyControl", 1)
};
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_PlayerhousingMaster", 1)
};
RE::BSTSmartPointer<ScriptVersionCallback>{
new ScriptVersionCallback("_00E_ContainerBonusControl", 1)
new ScriptVersionCallback(entry.first, entry.second)
};
}
}
inline void LoadINI(std::map<std::string, bool>* settings, const char* iniPath)
{
@ -180,6 +236,7 @@ inline void CloseTweenMenu()
{
if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) {
using func_t = decltype(&CloseTweenMenu);
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
REL::Relocation<func_t> func{ REL::VariantID(51839, 52711, 0x8FE180) };
func();
}

View File

@ -22,6 +22,10 @@ EndEvent
; FUNCTIONS
;=====================================================================================
int function _GetScriptVersion() Global
return 1
endFunction
Int Function RegisterPerkTree(int index, FormList perkTree, Message affinityName_Male, Message affinityName_Female)
PerkTree_Trees[index] = perkTree
PerkTree_AffinityNames_Male[index] = affinityName_Male

View File

@ -1,5 +1,9 @@
Scriptname _00E_EnderalControls extends Quest Hidden
int function _GetScriptVersion() Global
return 1
endFunction
_00E_SkillControl Property SkillControl Auto
_00E_FadeToBlackControl Property FadeToBlackControl Auto

View File

@ -1,4 +1,4 @@
Scriptname _00E_EisprankeSCN extends ObjectReference
Scriptname _00E_IceClaw extends ObjectReference
Event OnActivate(ObjectReference akActionRef)
If akActionRef == PlayerREF
@ -9,7 +9,7 @@ Event OnActivate(ObjectReference akActionRef)
If EPC == 0 && _00E_DisableOtherTutorials.GetValueInt() == 0
_00E_EisprankeMessagebox.Show()
EndIf
Disable()
DisableNoWait()
PlayerREF.EquipItem(_00E_FloraEispranke, false, true)
EndIf
EndEvent
@ -24,4 +24,4 @@ Actor Property PlayerREF Auto
GlobalVariable Property _00E_EisprankeCounter Auto
GlobalVariable Property _00E_DisableOtherTutorials Auto
Message Property _00E_EisprankeMessagebox Auto
Potion Property _00E_FloraEispranke auto
Potion Property _00E_FloraEispranke Auto

View File

@ -20,6 +20,7 @@ function Init()
PlayerREF.MoveTo(_00E_ClassMenuOrigin)
Debug.SendAnimationEvent(PlayerRef, "IdleForceDefaultState")
Utility.Wait(0.5)
Game.ShowRaceMenu()
(MQP02 as _00E_MQP02_Functions).AddRacialAbilites()

View File

@ -2,6 +2,10 @@ Scriptname _00E_SkillControl extends Quest Hidden
import Utility
int function _GetScriptVersion() Global
return 1
endFunction
Function _ReadSkillBook(String skillName, Int skillTopLimit, Form bookItem, Message msgSkillIncrease, GlobalVariable availablePoints, Message msgNoPoints)
Message failMsg = None

View File

@ -2,6 +2,10 @@ Scriptname _00E_VisionControl extends Quest Hidden
import Utility
int function _GetScriptVersion() Global
return 1
endFunction
;/ Unused
function EndVision(bool ScenePlaying, Scene RunningScene = None)

View File

@ -1,5 +1,9 @@
Scriptname _00E_CQC05_Functions extends Quest Conditional
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -1,5 +1,9 @@
Scriptname _00E_CQC06_Functions extends Quest
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -1,5 +1,9 @@
Scriptname _00E_CQJ02_Functions extends Quest Conditional
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -1,5 +1,9 @@
Scriptname _00E_CQJ05_Functions extends Quest
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -15,6 +15,10 @@ int MagicItemsMadeCounter = 0
int IntimidationsCounter = 0
int QuestsCompletedCounter = 0
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -1,5 +1,9 @@
Scriptname _00E_FS_MQ18c_Functions extends Quest
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -1,5 +1,9 @@
Scriptname _00E_FS_NQ01_Functions extends Quest Conditional
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -4,6 +4,10 @@ Import _00E_PlayerFunctions
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -4,6 +4,10 @@ Import _00E_PlayerFunctions
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -4,6 +4,10 @@ Import _00E_PlayerFunctions
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -3,6 +3,10 @@ Scriptname _00E_FS_NQ05_Functions extends Quest
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -4,6 +4,10 @@ Import _00E_PlayerFunctions
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -3,6 +3,10 @@ Scriptname _00E_FS_NQ07_Functions extends Quest
Import Utility
Import Game
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS
;=====================================================================================

View File

@ -1,8 +1,8 @@
Scriptname _00E_FS_NQR02_Functions extends Quest
;=====================================================================================
; EVENTS
;=====================================================================================
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; FUNCTIONS

View File

@ -2,6 +2,10 @@ Scriptname _00E_FS_NQR03_Functions extends Quest
Import Utility
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -2,6 +2,10 @@ Scriptname _00E_FS_NQR04_Functions extends Quest
Import Utility
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

View File

@ -2,6 +2,10 @@ Scriptname _00E_FS_NQR05_Functions extends Quest Conditional
Import Utility
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================

Some files were not shown because too many files have changed in this diff Show More