diff --git a/SKSE/Plugins/fs.dll b/SKSE/Plugins/fs.dll index 0e993067..78c9668d 100644 --- a/SKSE/Plugins/fs.dll +++ b/SKSE/Plugins/fs.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aecfcea851298c389e57b66029f81a728cf278484362d5009437a709eb6cc707 -size 169472 +oid sha256:2799e4abbbb01be55a30e5a7043480c1df177bd28b447a83745d5bcc6626d970 +size 172032 diff --git a/SKSE/Plugins/fs_se.dll b/SKSE/Plugins/fs_se.dll index 8cfca8ec..feae111c 100644 --- a/SKSE/Plugins/fs_se.dll +++ b/SKSE/Plugins/fs_se.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bc96a3063a7345eaed4aac14065ccbf2ecfa4d748d4bfe92a8525ac14d1d6d0 -size 167424 +oid sha256:5328d160149691265036ef59c674196d134ed44b25a402021b9a5f079f96531e +size 170496 diff --git a/source/fs.dll/.gitignore b/source/fs.dll/.gitignore index 461a59dd..cf0b2bc8 100644 --- a/source/fs.dll/.gitignore +++ b/source/fs.dll/.gitignore @@ -1,8 +1,8 @@ *.db .vs/ x64/ -x64_v142/ -common/x64_v142/ +x64_*/ +common/x64_*/ fs/x64/ skse64/.vs/ skse64/skse64/x64/ diff --git a/source/fs.dll/common/common_vc14.vcxproj b/source/fs.dll/common/common_vc14.vcxproj index f5f252fa..cf617cd2 100644 --- a/source/fs.dll/common/common_vc14.vcxproj +++ b/source/fs.dll/common/common_vc14.vcxproj @@ -68,26 +68,26 @@ StaticLibrary true - v142 + v143 MultiByte StaticLibrary true - v142 + v143 MultiByte StaticLibrary false - v142 + v143 true MultiByte StaticLibrary false - v142 + v143 true MultiByte diff --git a/source/fs.dll/forgotten_stories_skse_plugin.sln b/source/fs.dll/forgotten_stories_skse_plugin.sln index 560e6ca2..8de3d928 100644 --- a/source/fs.dll/forgotten_stories_skse_plugin.sln +++ b/source/fs.dll/forgotten_stories_skse_plugin.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.1340 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32616.157 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs", "fs\fs.vcxproj", "{F0CF443B-B64A-489E-A826-6924FECB0F4E}" ProjectSection(ProjectDependencies) = postProject @@ -42,7 +42,8 @@ Global {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug_VC142|x64.Build.0 = Release|Win32 {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug|Win32.ActiveCfg = Debug|Win32 {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug|Win32.Build.0 = Debug|Win32 - {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug|x64.ActiveCfg = Debug|Win32 + {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug|x64.ActiveCfg = Debug|x64 + {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Debug|x64.Build.0 = Debug|x64 {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Release_Lib_VC142|Win32.ActiveCfg = Release|Win32 {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Release_Lib_VC142|Win32.Build.0 = Release|Win32 {F0CF443B-B64A-489E-A826-6924FECB0F4E}.Release_Lib_VC142|x64.ActiveCfg = Release|Win32 diff --git a/source/fs.dll/fs/CreatePotion.h b/source/fs.dll/fs/CreatePotion.h index b02da5d3..c625ba84 100644 --- a/source/fs.dll/fs/CreatePotion.h +++ b/source/fs.dll/fs/CreatePotion.h @@ -5,7 +5,7 @@ namespace CreatePotion { - AlchemyItem* createPotion(AlchemyItem* toCopy, VMArray effects, VMArray magnitudes, VMArray areas, VMArray durations, UInt32 arraySize); + AlchemyItem* createPotion(StaticFunctionTag* tag, VMArray effects, VMArray magnitudes, VMArray areas, VMArray durations, UInt32 arraySize); bool RegisterFuncs(VMClassRegistry* registry); } diff --git a/source/fs.dll/fs/PhasmalistInventoryFunctions.cpp b/source/fs.dll/fs/PhasmalistInventoryFunctions.cpp index 10feee56..c5350126 100644 --- a/source/fs.dll/fs/PhasmalistInventoryFunctions.cpp +++ b/source/fs.dll/fs/PhasmalistInventoryFunctions.cpp @@ -117,31 +117,33 @@ namespace PhasmalistScripts { float strength = 0; float physicalStrength = 0; - if (itemStack->type->IsWeapon()) { - TESObjectWEAP * asWeapon = static_cast(itemStack->type); - if (asWeapon) { - float baseDmg = papyrusWeapon::GetBaseDamage(asWeapon) * 1.5; - float speed = papyrusWeapon::GetSpeed(asWeapon); - physicalStrength = baseDmg * speed; - strength += physicalStrength; - strength += getEnchantmentStrength(papyrusWeapon::GetEnchantment(asWeapon)); + if (itemStack->type) { + if (itemStack->type->IsWeapon()) { + TESObjectWEAP* asWeapon = static_cast(itemStack->type); + if (asWeapon) { + float baseDmg = papyrusWeapon::GetBaseDamage(asWeapon) * 1.5; + float speed = papyrusWeapon::GetSpeed(asWeapon); + physicalStrength = baseDmg * speed; + strength += physicalStrength; + strength += getEnchantmentStrength(papyrusWeapon::GetEnchantment(asWeapon)); + } } - } - if (itemStack->type->IsArmor()) { - TESObjectARMO * asArmor = static_cast(itemStack->type); - if (asArmor) { - physicalStrength = papyrusArmor::GetArmorRating(asArmor); - strength += physicalStrength; - strength += getEnchantmentStrength(papyrusArmor::GetEnchantment(asArmor)); + if (itemStack->type->IsArmor()) { + TESObjectARMO* asArmor = static_cast(itemStack->type); + if (asArmor) { + physicalStrength = papyrusArmor::GetArmorRating(asArmor); + strength += physicalStrength; + strength += getEnchantmentStrength(papyrusArmor::GetEnchantment(asArmor)); + } } - } - if (itemStack->type->formType == kFormType_Book) { - TESObjectBOOK * asBook = static_cast(itemStack->type); - if (asBook) { - SpellItem * spell = papyrusBook::GetSpell(asBook); - return getSpellStrength(spell); + if (itemStack->type->formType == kFormType_Book) { + TESObjectBOOK* asBook = static_cast(itemStack->type); + if (asBook) { + SpellItem* spell = papyrusBook::GetSpell(asBook); + return getSpellStrength(spell); + } } } diff --git a/source/fs.dll/fs/PhasmalistInventoryFunctions.h b/source/fs.dll/fs/PhasmalistInventoryFunctions.h index 3e19ed4a..f48c8a82 100644 --- a/source/fs.dll/fs/PhasmalistInventoryFunctions.h +++ b/source/fs.dll/fs/PhasmalistInventoryFunctions.h @@ -4,7 +4,7 @@ namespace PhasmalistScripts { - float calculateContentStrength(TESObjectREFR *base); + float calculateContentStrength(StaticFunctionTag* tag, TESObjectREFR* container); bool RegisterFuncs(VMClassRegistry* registry); } diff --git a/source/fs.dll/fs/exports.def b/source/fs.dll/fs/exports.def index d3129e4f..44a47e25 100644 --- a/source/fs.dll/fs/exports.def +++ b/source/fs.dll/fs/exports.def @@ -1,4 +1,5 @@ -LIBRARY "fs" +LIBRARY "enderalse" EXPORTS SKSEPlugin_Query -SKSEPlugin_Load \ No newline at end of file +SKSEPlugin_Load +SKSEPlugin_Version diff --git a/source/fs.dll/fs/fs.vcxproj b/source/fs.dll/fs/fs.vcxproj index 516d5170..ecf38269 100644 --- a/source/fs.dll/fs/fs.vcxproj +++ b/source/fs.dll/fs/fs.vcxproj @@ -38,23 +38,23 @@ DynamicLibrary MultiByte true - v142 + v143 DynamicLibrary MultiByte true - v142 + v143 DynamicLibrary MultiByte - v142 + v143 DynamicLibrary MultiByte - v142 + v143 @@ -109,7 +109,7 @@ Disabled - $(SolutionDir);$(SolutionDir)common;$(SolutionDir)skse;C:\Users\Simon\Documents\Visual Studio 2015\Projects\SteamSDK\public;%(AdditionalIncludeDirectories) + $(SolutionDir);$(SolutionDir)\..;%(AdditionalIncludeDirectories);$(SolutionDir)common;$(SolutionDir)skse64 WIN32;_DEBUG;_WINDOWS;_USRDLL;PLUGIN_EXAMPLE_EXPORTS;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -123,7 +123,7 @@ exports.def true Windows - steam_api.lib;%(AdditionalDependencies) + $(SolutionDir)x64_v143\Debug\common_vc14.lib;$(SolutionDir)x64\Debug\skse64_common.lib;$(SolutionDir)x64\Debug\skse64_1_5_97.lib;%(AdditionalDependencies) C:\Users\Simon\Documents\Visual Studio 2015\Projects\SteamSDK\redistributable_bin;%(AdditionalLibraryDirectories) @@ -171,7 +171,7 @@ Windows true true - $(SolutionDir)x64_v142\Release\common_vc14.lib;$(SolutionDir)x64\Release\skse64_common.lib;$(SolutionDir)x64\Release\skse64_1_5_97.lib;%(AdditionalDependencies) + $(SolutionDir)x64_v143\Release\common_vc14.lib;$(SolutionDir)x64\Release\skse64_common.lib;$(SolutionDir)x64\Release\skse64_1_5_97.lib;%(AdditionalDependencies) diff --git a/source/fs.dll/fs/main.cpp b/source/fs.dll/fs/main.cpp index 34bb80cf..86d6481d 100644 --- a/source/fs.dll/fs/main.cpp +++ b/source/fs.dll/fs/main.cpp @@ -5,36 +5,101 @@ #include "PhasmalistInventoryFunctions.h" #include "CreatePotion.h" -static PluginHandle g_pluginHandle = kPluginHandle_Invalid; static SKSEPapyrusInterface * g_papyrus = NULL; +static SInt32 g_NewGameStarted = 0; + +#define SKYRIMAE constexpr true + +#ifndef SKYRIMAE + +#define RUNTIME_VERSION_1_6_353 MAKE_EXE_VERSION(1, 6, 353) + +struct SKSEPluginVersionData +{ + enum + { + kVersion = 1, + }; + + enum + { + // set this if you are using a (potential at this time of writing) post-AE version of the Address Library + kVersionIndependent_AddressLibraryPostAE = 1 << 0, + // set this if you exclusively use signature matching to find your addresses and have NO HARDCODED ADDRESSES + kVersionIndependent_Signatures = 1 << 1, + }; + + UInt32 dataVersion; // set to kVersion + + UInt32 pluginVersion; // version number of your plugin + char name[256]; // null-terminated ASCII plugin name + + char author[256]; // null-terminated ASCII plugin author name (can be empty) + char supportEmail[256]; // null-terminated ASCII support email address (can be empty) + // this is not for showing to users, it's in case I need to contact you about + // a compatibility problem with your plugin + + // version compatibility + UInt32 versionIndependence; // set to one of the kVersionIndependent_ enums or zero + UInt32 compatibleVersions[16]; // zero-terminated list of RUNTIME_VERSION_ defines your plugin is compatible with + + UInt32 seVersionRequired; // minimum version of the script extender required, compared against PACKED_SKSE_VERSION + // you probably should just set this to 0 unless you know what you are doing +}; +#endif + + +void SKSEMessageHandler(SKSEMessagingInterface::Message* msg) +{ + if (msg->type == SKSEMessagingInterface::kMessage_PostLoadGame || msg->type == SKSEMessagingInterface::kMessage_NewGame) { + if (g_NewGameStarted < 2) { + g_NewGameStarted++; + } + } +} extern "C" { + __declspec(dllexport) SKSEPluginVersionData SKSEPlugin_Version = + { + SKSEPluginVersionData::kVersion, + + 1, +#ifdef SKYRIMAE + "fs_skse_functions", +#else + "fs_skse_functions_disabled", +#endif + "Eddoursul", + "enderal@eddoursul.win", + + 0, // not version independent + + { RUNTIME_VERSION_1_6_353, 0 }, // compatible with 1.6.353 + + 0, // works with any version of the script extender. you probably do not need to put anything here + }; + bool SKSEPlugin_Query(const SKSEInterface * skse, PluginInfo * info) { // Called by SKSE to learn about this plugin and check that it's safe to load it - gLog.OpenRelative(CSIDL_MYDOCUMENTS, "\\My Games\\Enderal Special Edition\\SKSE\\FS.log"); + +#ifndef SKYRIMAE + gLog.OpenRelative(CSIDL_MYDOCUMENTS, "\\My Games\\Enderal Special Edition\\SKSE\\Enderal_SE.log"); gLog.SetPrintLevel(IDebugLog::kLevel_Error); gLog.SetLogLevel(IDebugLog::kLevel_DebugMessage); - _MESSAGE("fs_skse_functions"); + _MESSAGE("EnderalSE"); +#endif // populate info structure info->infoVersion = PluginInfo::kInfoVersion; - info->name = "fs_skse_functions"; +#ifdef SKYRIMAE + info->name = "fs_skse_functions_disabled"; +#else + info->name = skse->runtimeVersion == RUNTIME_VERSION_1_5_97 ? "fs_skse_functions" : "fs_skse_functions_disabled"; +#endif info->version = 1; - // store plugin handle so we can identify ourselves later - g_pluginHandle = skse->GetPluginHandle(); - - if (skse->isEditor) - { - _MESSAGE("loaded in editor, marking as incompatible"); - - return false; - } - else if (skse->runtimeVersion != RUNTIME_VERSION_1_5_97) - { - _MESSAGE("unsupported runtime version %08X", skse->runtimeVersion); - + if (skse->isEditor) { return false; } @@ -46,7 +111,26 @@ extern "C" { } bool SKSEPlugin_Load(const SKSEInterface * skse) { // Called by SKSE to load this plugin - _MESSAGE("fs_skse_functions loaded"); + +#ifdef SKYRIMAE + gLog.OpenRelative(CSIDL_MYDOCUMENTS, "\\My Games\\Enderal Special Edition\\SKSE\\Enderal_AE.log"); + gLog.SetPrintLevel(IDebugLog::kLevel_Error); + gLog.SetLogLevel(IDebugLog::kLevel_DebugMessage); + if (skse->runtimeVersion != RUNTIME_VERSION_1_6_353) { + _MESSAGE("skipping initialization of the non-AE library"); + return true; + } +#else + if (skse->runtimeVersion != RUNTIME_VERSION_1_5_97) { + _MESSAGE("skipping initialization of the non-SE library"); + return true; + } +#endif + + _MESSAGE("EnderalSE loaded"); + + auto messaging = (SKSEMessagingInterface*)skse->QueryInterface(kInterface_Messaging); + messaging->RegisterListener(skse->GetPluginHandle(), "SKSE", SKSEMessageHandler); g_papyrus = (SKSEPapyrusInterface *)skse->QueryInterface(kInterface_Papyrus); @@ -63,7 +147,14 @@ extern "C" { _MESSAGE("Register Succeeded: CreatePotion functions"); } + g_papyrus->Register([](VMClassRegistry* registry) { + registry->RegisterFunction(new NativeFunction0("NewGameCount", "EnderalLib", [](StaticFunctionTag* tag) { + return g_NewGameStarted; + }, registry)); + _MESSAGE("Register Succeeded: NewGameCount"); + return true; + }); + return true; } - }; \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64/BSModelDB.cpp b/source/fs.dll/skse64/skse64/BSModelDB.cpp index 5bcaf052..17f74d31 100644 --- a/source/fs.dll/skse64/skse64/BSModelDB.cpp +++ b/source/fs.dll/skse64/skse64/BSModelDB.cpp @@ -1,4 +1,4 @@ #include "skse64/BSModelDB.h" // 206875324DD3C045FB854CB2889AFBCA94C7790B+89 -RelocPtr g_TESProcessor(0x01EC3C10); +RelocPtr g_TESProcessor(0x01F5F590); diff --git a/source/fs.dll/skse64/skse64/BSModelDB.h b/source/fs.dll/skse64/skse64/BSModelDB.h index ed2a1b2d..15356655 100644 --- a/source/fs.dll/skse64/skse64/BSModelDB.h +++ b/source/fs.dll/skse64/skse64/BSModelDB.h @@ -42,8 +42,8 @@ public: MEMBER_FN_PREFIX(TESProcessor); // find from ??_7BSModelProcessor@BSModelDB@@6B@ - DEFINE_MEMBER_FN(dtor, void, 0x00D2ECA0); - DEFINE_MEMBER_FN(Impl_Process, void, 0x00181800, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut); + DEFINE_MEMBER_FN(dtor, void, 0x00D66540); + DEFINE_MEMBER_FN(Impl_Process, void, 0x0018B0C0, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut); }; }; diff --git a/source/fs.dll/skse64/skse64/CMakeLists.txt b/source/fs.dll/skse64/skse64/CMakeLists.txt new file mode 100644 index 00000000..e6050943 --- /dev/null +++ b/source/fs.dll/skse64/skse64/CMakeLists.txt @@ -0,0 +1,473 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake) + +project( + skse64 + VERSION ${SKSE_VERSION_MAJOR}.${SKSE_VERSION_MINOR}.${SKSE_VERSION_PATCH} + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Build options ---- + +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF) + +# ---- Dependencies ---- + +if (NOT TARGET skse64_common) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../skse64_common skse64_common) # bundled +endif() + +if (NOT TARGET xbyak) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../xbyak xbyak) # bundled +endif() + +find_package(common REQUIRED CONFIG) + +# ---- Add source files ---- + +include(cmake/headerlist.cmake) +include(cmake/sourcelist.cmake) + +source_group( + ${PROJECT_NAME} + FILES + skse64.cpp + skse64.def + skse_version.rc +) + +source_group( + ${PROJECT_NAME}/api + FILES + GameAPI.cpp + GameAPI.h + GameBSExtraData.cpp + GameBSExtraData.h + GameCamera.cpp + GameCamera.h + GameData.cpp + GameData.h + GameEvents.cpp + GameEvents.h + GameExtraData.cpp + GameExtraData.h + GameFormComponents.cpp + GameFormComponents.h + GameForms.cpp + GameForms.h + GameHandlers.cpp + GameHandlers.h + GameInput.cpp + GameInput.h + GameMenus.cpp + GameMenus.h + GameObjects.cpp + GameObjects.h + GamePathing.cpp + GameReferences.cpp + GameReferences.h + GameResources.cpp + GameResources.h + GameRTTI.cpp + GameRTTI.h + GameRTTI.inl + GameSettings.cpp + GameSettings.h + GameStreams.cpp + GameStreams.h + GameThreads.cpp + GameThreads.h + GameTypes.cpp + GameTypes.h + GameUtilities.cpp + GameUtilities.h + ObScript.cpp + ObScript.h +) + +source_group( + ${PROJECT_NAME}/hooks + FILES + Hooks_Camera.cpp + Hooks_Camera.h + Hooks_Data.cpp + Hooks_Data.h + Hooks_Debug.cpp + Hooks_Debug.h + Hooks_Diagnostics.cpp + Hooks_Diagnostics.h + Hooks_DirectInput8Create.cpp + Hooks_DirectInput8Create.h + Hooks_Event.cpp + Hooks_Event.h + Hooks_Gameplay.cpp + Hooks_Gameplay.h + Hooks_Handlers.cpp + Hooks_Handlers.h + Hooks_Memory.cpp + Hooks_Memory.h + Hooks_NetImmerse.cpp + Hooks_NetImmerse.h + Hooks_ObScript.cpp + Hooks_ObScript.h + Hooks_Papyrus.cpp + Hooks_Papyrus.h + Hooks_SaveLoad.cpp + Hooks_SaveLoad.h + Hooks_Scaleform.cpp + Hooks_Scaleform.h + Hooks_Threads.cpp + Hooks_Threads.h + Hooks_UI.cpp + Hooks_UI.h +) + +source_group( + ${PROJECT_NAME}/internal + FILES + Colors.cpp + Colors.h + CustomMenu.cpp + CustomMenu.h + GlobalLocks.cpp + GlobalLocks.h + HashUtil.cpp + HashUtil.h + InputMap.cpp + InputMap.h + InternalSerialization.cpp + InternalSerialization.h + InternalTasks.cpp + InternalTasks.h + PluginAPI.h + PluginLoadErrorDialog.rc + PluginManager.cpp + PluginManager.h + Serialization.cpp + Serialization.h + Translation.cpp + Translation.h +) + +source_group( + ${PROJECT_NAME}/netimmerse + FILES + BSModelDB.cpp + BSModelDB.h + NiAdditionalGeometryData.cpp + NiAdditionalGeometryData.h + NiControllers.cpp + NiControllers.h + NiExtraData.cpp + NiExtraData.h + NiGeometry.cpp + NiGeometry.h + NiInterpolators.cpp + NiInterpolators.h + NiLight.cpp + NiLight.h + NiMaterial.cpp + NiMaterial.h + NiNodes.cpp + NiNodes.h + NiObjects.cpp + NiObjects.h + NiProperties.cpp + NiProperties.h + NiRenderer.cpp + NiRenderer.h + NiRTTI.cpp + NiRTTI.h + NiSerialization.cpp + NiSerialization.h + NiTextures.cpp + NiTextures.h + NiTypes.cpp + NiTypes.h +) + +source_group( + ${PROJECT_NAME}/papyrus/functions + FILES + PapyrusActiveMagicEffect.cpp + PapyrusActiveMagicEffect.h + PapyrusActor.cpp + PapyrusActor.h + PapyrusActorBase.cpp + PapyrusActorBase.h + PapyrusActorValueInfo.cpp + PapyrusActorValueInfo.h + PapyrusAlias.cpp + PapyrusAlias.h + PapyrusAmmo.cpp + PapyrusAmmo.h + PapyrusArmor.cpp + PapyrusArmor.h + PapyrusArmorAddon.cpp + PapyrusArmorAddon.h + PapyrusArt.cpp + PapyrusArt.h + PapyrusBook.cpp + PapyrusBook.h + PapyrusCamera.cpp + PapyrusCamera.h + PapyrusCell.cpp + PapyrusCell.h + PapyrusClass.cpp + PapyrusClass.h + PapyrusColorForm.cpp + PapyrusColorForm.h + PapyrusCombatStyle.cpp + PapyrusCombatStyle.h + PapyrusConstructibleObject.cpp + PapyrusConstructibleObject.h + PapyrusDefaultObjectManager.cpp + PapyrusDefaultObjectManager.h + PapyrusEnchantment.cpp + PapyrusEnchantment.h + PapyrusEquipSlot.cpp + PapyrusEquipSlot.h + PapyrusFaction.cpp + PapyrusFaction.h + PapyrusFlora.cpp + PapyrusFlora.h + PapyrusForm.cpp + PapyrusForm.h + PapyrusFormList.cpp + PapyrusFormList.h + PapyrusGame.cpp + PapyrusGame.h + PapyrusGameData.cpp + PapyrusGameData.h + PapyrusHeadPart.cpp + PapyrusHeadPart.h + PapyrusIngredient.cpp + PapyrusIngredient.h + PapyrusInput.cpp + PapyrusInput.h + PapyrusKeyword.cpp + PapyrusKeyword.h + PapyrusLeveledActor.cpp + PapyrusLeveledActor.h + PapyrusLeveledItem.cpp + PapyrusLeveledItem.h + PapyrusLeveledSpell.cpp + PapyrusLeveledSpell.h + PapyrusLocation.cpp + PapyrusLocation.h + PapyrusMagicEffect.cpp + PapyrusMagicEffect.h + PapyrusMath.cpp + PapyrusMath.h + PapyrusMisc.cpp + PapyrusMisc.h + PapyrusModEvent.cpp + PapyrusModEvent.h + PapyrusNetImmerse.cpp + PapyrusNetImmerse.h + PapyrusObjectReference.cpp + PapyrusObjectReference.h + PapyrusPerk.cpp + PapyrusPerk.h + PapyrusPotion.cpp + PapyrusPotion.h + PapyrusQuest.cpp + PapyrusQuest.h + PapyrusRace.cpp + PapyrusRace.h + PapyrusReferenceAlias.cpp + PapyrusReferenceAlias.h + PapyrusScroll.cpp + PapyrusScroll.h + PapyrusShout.cpp + PapyrusShout.h + PapyrusSKSE.cpp + PapyrusSKSE.h + PapyrusSound.cpp + PapyrusSound.h + PapyrusSoundDescriptor.cpp + PapyrusSoundDescriptor.h + PapyrusSpawnerTask.cpp + PapyrusSpawnerTask.h + PapyrusSpell.cpp + PapyrusSpell.h + PapyrusStringUtil.cpp + PapyrusStringUtil.h + PapyrusTextureSet.cpp + PapyrusTextureSet.h + PapyrusTree.cpp + PapyrusTree.h + PapyrusUI.cpp + PapyrusUI.h + PapyrusUICallback.cpp + PapyrusUICallback.h + PapyrusUtility.cpp + PapyrusUtility.h + PapyrusWeapon.cpp + PapyrusWeapon.h + PapyrusWeather.cpp + PapyrusWeather.h + PapyrusWornObject.cpp + PapyrusWornObject.h +) + +source_group( + ${PROJECT_NAME}/papyrus/vm + FILES + PapyrusArgs.cpp + PapyrusArgs.h + PapyrusDelayFunctors.cpp + PapyrusDelayFunctors.h + PapyrusEventFunctor.h + PapyrusEvents.cpp + PapyrusEvents.h + PapyrusInterfaces.cpp + PapyrusInterfaces.h + PapyrusNativeFunctionDef.inl + PapyrusNativeFunctionDef_Base.inl + PapyrusNativeFunctions.cpp + PapyrusNativeFunctions.h + PapyrusObjects.cpp + PapyrusObjects.h + PapyrusValue.cpp + PapyrusValue.h + PapyrusVM.cpp + PapyrusVM.h +) + +source_group( + ${PROJECT_NAME}/scaleform + FILES + ScaleformAPI.cpp + ScaleformAPI.h + ScaleformCallbacks.cpp + ScaleformCallbacks.h + ScaleformExtendedData.cpp + ScaleformExtendedData.h + ScaleformLoader.cpp + ScaleformLoader.h + ScaleformMovie.cpp + ScaleformMovie.h + ScaleformState.cpp + ScaleformState.h + ScaleformTypes.cpp + ScaleformTypes.h + ScaleformValue.cpp + ScaleformValue.h + ScaleformVM.cpp + ScaleformVM.h +) + +# ---- Create library ---- + +add_library( + ${PROJECT_NAME} + SHARED + ${headers} + ${sources} + skse64.def + ${skse64_common_SOURCE_DIR}/skse_version.rc + PluginLoadErrorDialog.rc +) + +add_library(skse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake) + +set_target_properties( + ${PROJECT_NAME} + PROPERTIES + OUTPUT_NAME "${PROJECT_NAME}_${RUNTIME_VERSION_MAJOR}_${RUNTIME_VERSION_MINOR}_${RUNTIME_VERSION_PATCH}" +) + +target_compile_definitions( + ${PROJECT_NAME} + PRIVATE + RUNTIME + RUNTIME_VERSION=${RUNTIME_VERSION_PACKED} +) + +target_compile_features( + ${PROJECT_NAME} + PUBLIC + cxx_std_11 +) + +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + skse64::skse64_common + Xbyak::xbyak + xse::common +) + +# ---- Configure all targets ---- + +set_target_properties( + ${PROJECT_NAME} + skse64_common + PROPERTIES + MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" +) + +# ---- Create an installable target ---- + +include(GNUInstallDirs) + +install( + TARGETS + ${PROJECT_NAME} + EXPORT + ${PROJECT_NAME}-targets +) + +install( + FILES + ${headers} + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +) + +configure_file( + cmake/config.cmake.in + ${PROJECT_NAME}-config.cmake + @ONLY +) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) + +install( + EXPORT + ${PROJECT_NAME}-targets + NAMESPACE + skse64:: + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake) diff --git a/source/fs.dll/skse64/skse64/GameAPI.cpp b/source/fs.dll/skse64/skse64/GameAPI.cpp index 42e12e66..01fc487e 100644 --- a/source/fs.dll/skse64/skse64/GameAPI.cpp +++ b/source/fs.dll/skse64/skse64/GameAPI.cpp @@ -1,19 +1,19 @@ #include "skse64/GameAPI.h" -// 4371A3D33EB5D62C7C548EBD5F760AF15A9B0B96+41 -RelocPtr g_mainHeap(0x01EBD280); +// CFBAE5ABDAD102C91A5CD32DE6F45A70A6EC7561+80 +RelocPtr g_mainHeap(0x01F58C00); -// 75643FD50A96D1F83B1AC4797EC84EF1C53039AC+68 -RelocPtr g_console(0x02F000F0); +// 338B95DD01390309C6CF7F96A08D629A564D0A48+5D +RelocPtr g_console(0x02F9B980); -// E1E59B64FDA5B8A9085AE9314353ABEEA0DB2823+C4 -RelocPtr g_consoleHandle(0x02F4C31C); +// 4D7631B98BE6AABD42229719E0D837E677A24FB5+CF +RelocPtr g_consoleHandle(0x02FE8234); -// 52DD97B7C619EA732D3CD95637F449FC7A23DD12+24 -RelocPtr g_TlsIndexPtr(0x03497408); +// 3DD6796A3BFE73B35604DD47E8677156AEBD4360+20 +RelocPtr g_TlsIndexPtr(0x03532618); -// BC8BF08A45C960EB35F2BAFEC9432C80365A1473+14A -RelocPtr g_thePlayer(0x02F26EF8); +// 14BE6944D5E0E54959DE86FE65045CCEBBC65E31+6 +RelocPtr g_thePlayer(0x02FC2B68); void * Heap_Allocate(size_t size) { diff --git a/source/fs.dll/skse64/skse64/GameAPI.h b/source/fs.dll/skse64/skse64/GameAPI.h index 4fce738e..8c913899 100644 --- a/source/fs.dll/skse64/skse64/GameAPI.h +++ b/source/fs.dll/skse64/skse64/GameAPI.h @@ -8,8 +8,8 @@ class Heap { public: MEMBER_FN_PREFIX(Heap); - DEFINE_MEMBER_FN(Allocate, void *, 0x00C02260, size_t size, size_t alignment, bool aligned); - DEFINE_MEMBER_FN(Free, void, 0x00C02560, void * buf, bool aligned); + DEFINE_MEMBER_FN(Allocate, void *, 0x00C27D60, size_t size, size_t alignment, bool aligned); + DEFINE_MEMBER_FN(Free, void, 0x00C281B0, void * buf, bool aligned); }; extern RelocPtr g_mainHeap; @@ -21,7 +21,7 @@ class ConsoleManager { public: MEMBER_FN_PREFIX(ConsoleManager); - DEFINE_MEMBER_FN(VPrint, void, 0x0085C2C0, const char * fmt, va_list args); + DEFINE_MEMBER_FN(VPrint, void, 0x0088A420, const char * fmt, va_list args); // DEFINE_MEMBER_FN(Print, void, 0x001D2050, const char * str); }; diff --git a/source/fs.dll/skse64/skse64/GameBSExtraData.h b/source/fs.dll/skse64/skse64/GameBSExtraData.h index 57252940..05fb533f 100644 --- a/source/fs.dll/skse64/skse64/GameBSExtraData.h +++ b/source/fs.dll/skse64/skse64/GameBSExtraData.h @@ -256,11 +256,11 @@ public: private: MEMBER_FN_PREFIX(BaseExtraList); - // 6AE109C256B98466C001B25B75BD48FB62F884B1+5A - DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x0010CC40, bool isEquipped); + // A7985F15034C77C00ACC57607F29F4802502A1BA+2F + DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x00119580, bool isEquipped); // This also does some internal ReferenceHandle lookup - // B995A21984B048C2B4F61777E615FFFB2806F9B7 - DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x00111420); + // + DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0011D360); }; typedef tList ExtendDataList; diff --git a/source/fs.dll/skse64/skse64/GameCamera.h b/source/fs.dll/skse64/skse64/GameCamera.h index 4d37614d..9cc92cff 100644 --- a/source/fs.dll/skse64/skse64/GameCamera.h +++ b/source/fs.dll/skse64/skse64/GameCamera.h @@ -260,7 +260,7 @@ public: UInt8 pad31[7]; // 31 MEMBER_FN_PREFIX(TESCamera); - DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x004F5C80, TESCameraState * cameraState); + DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x0050F050, TESCameraState * cameraState); }; STATIC_ASSERT(offsetof(TESCamera, cameraNode) == 0x20); STATIC_ASSERT(sizeof(TESCamera) == 0x38); @@ -297,8 +297,8 @@ public: void SetDefaultStateBounds(float x, float y, float z); MEMBER_FN_PREFIX(LocalMapCamera); - DEFINE_MEMBER_FN(ctor, void, 0x001F5390); - DEFINE_MEMBER_FN(SetNorthRotation, void, 0x001F5750, float northRotation); + DEFINE_MEMBER_FN(ctor, void, 0x00200F40); + DEFINE_MEMBER_FN(SetNorthRotation, void, 0x00201390, float northRotation); }; STATIC_ASSERT(offsetof(LocalMapCamera, northRotation) == 0x60); @@ -339,8 +339,8 @@ public: static PlayerCamera * GetSingleton(void) { - // 0FAF5D3C755F11266ECC496FD392A0A2EA23403B+37 - static RelocPtr g_playerCamera(0x02EC59B8); + // 8737E3612AB5A303F82C06809C0B0B41B2015C66+1E + static RelocPtr g_playerCamera(0x02F61288); return *g_playerCamera; } @@ -380,7 +380,7 @@ public: UInt8 pad166[2]; // 166 MEMBER_FN_PREFIX(PlayerCamera); - DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x0084D630, bool weaponDrawn); + DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x0087A350, bool weaponDrawn); }; STATIC_ASSERT(offsetof(PlayerCamera, cameraStates) == 0xB8); diff --git a/source/fs.dll/skse64/skse64/GameData.cpp b/source/fs.dll/skse64/skse64/GameData.cpp index 85c347a6..3a227dac 100644 --- a/source/fs.dll/skse64/skse64/GameData.cpp +++ b/source/fs.dll/skse64/skse64/GameData.cpp @@ -1,71 +1,65 @@ #include "skse64/GameData.h" // 9615953AF64D4A2EB76F7BDE0F38D30B311B1351+40 -RelocAddr g_gameTime(0x02F6B950); +RelocAddr g_gameTime(0x03007710); -// AB8F3A77254A4A7EF23D7EA9C232AF6674856B23+2B7 -RelocPtr g_dataHandler(0x01EBE428); +// B8860AA646A4AA64DB8D5C6EDA306FC6B59F1B9B+5B +RelocPtr g_dataHandler(0x01F59DA8); // 5F417CF4D2EB33C7D6903EA38BB5CDDEF48A6F83+4B -RelocPtr g_persistentFormManager(0x01EBEAE8); +RelocPtr g_persistentFormManager(0x01F5A468); -// 1AF6E849D5819F74A0FAC96D2E9D6AD46900704B+60 -RelocPtr g_faceGen(0x01EBEB40); +// EC410889481EE7B9DC4B6D7A707FA41B72CDCE48+4 +RelocPtr g_faceGen(0x01F5A4C0); -// 6F7C1B16C6DF82EB76AEECA5A719A0A1EC196C45+28 -RelocPtr g_MagicFavorites(0x02F26730); +// F22C9BC54C962ED86B36585C0EC0E729DCA18000+26 +RelocPtr g_MagicFavorites(0x02FC23A0); -// C744C8E2830617136B1E2036CE7FAA915F0BB6FF+1D -RelocPtr g_MenuTopicManager(0x02EFF988); +// 6C8AEF51A6996BA6DC317E92014FCC446B5DBC17+25 +RelocPtr g_MenuTopicManager(0x02F9B218); -// 72603162CC51078584DECEF18ACB8B61C91A63FC+86 -RelocPtr g_actorValueList(0x01EBE418); +// 5ED03BBC1845C7394493F8FAA1DE8C7AEB3E2350+2A +RelocPtr g_actorValueList(0x01F59D98); // aWerewolfSpell -RelocPtr g_defaultObjectList(0x01DB5E80); +RelocPtr g_defaultObjectList(0x01E4AF20); -// 2667BD6593B94B34C30A11FA27E9E27627704C71+AB -RelocPtr g_saveLoadManager(0x02F26740); +// 68BF756333EF751059E935236F381FA91F62C373+22 +RelocPtr g_saveLoadManager(0x02FC23B8); -// 3A2D747A1809205B8E28BD34724286AF76CF511B+2A -RelocPtr g_MiscStatManager(0x02EC54D8); +// 3B74AA860AC42F1080FAF792E4BE1D3BF0E0EFEE+47 +RelocPtr g_MiscStatManager(0x02F60DA8); // A9D0A72CC9E5F85E2169118F999943FD43AF51EA+95 -RelocPtr g_equipManager(0x02EC4838); +RelocPtr g_equipManager(0x02F60108); -// 60C21F969EDFE69EBC96CEEF9620AAF752E2E28B+2 -RelocPtr g_relationshipRanks(0x01DD3EF8); +// FBC6C0FB3A858D20081F5FF9CB3E780E59DCE52F+50 +RelocPtr g_relationshipRanks(0x01E66FE8); -RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x003DC3C0); -// E596A4244F8A3A25FD8DB7E62A3904933060BEA8+DD -RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00331650); -// A57D77CB5250B7D84828312B34413A9123EDDD53+35 -RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00331620); -// A9D0A72CC9E5F85E2169118F999943FD43AF51EA+83 -RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x003315F0); -RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x003E1450); -RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x008B40C0); -RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x00368B30); -RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x00368BC0); +RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x003F4860); +// +RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00346E90); +// +RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00346E80); +// +RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00346E70); +RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x003FA030); +RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x008E4AA0); +RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x0037FFB0); +RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x00380040); -RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x003DB420); +RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x003F36C0); -// 0A2FCE1738344AE17FCD2B406BDCAAD46AA64394+DC | +1A -RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x003DC720); // Applies tint to ShaderType 5 nodes -// BFB8C9723EF563C7B5A0E336C4A44311725F8047+F4 | +1A -RelocAddr<_UpdateModelHair> UpdateModelHair(0x003DC7E0); // Applies tint to ShaderType 6 nodes -RelocAddr<_UpdateModelFace> UpdateModelFace(0x003DBDA0); -RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x0019CE40); +RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x003F4B90); // Applies tint to ShaderType 5 nodes +RelocAddr<_UpdateModelHair> UpdateModelHair(0x003F4CA0); // Applies tint to ShaderType 6 nodes +RelocAddr<_UpdateModelFace> UpdateModelFace(0x003F4200); +RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001A8280); -RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x00345ED0); +RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0035C1E0); -// aNosetype -RelocPtr g_facePresetList(0x01DD6210); +RelocPtr g_facePresetList(0x01E6B300); // aNosetype -// C5B21010DCF340FCDDDC7866C50C3D78AEF34CB5+6B -//RelocPtr g_isGameDataReady(0x058FEAB4); - -RelocAddr<_HasLOS> HasLOS(0x0091C620); +RelocAddr<_HasLOS> HasLOS(0x00949B70); class LoadedModFinder { diff --git a/source/fs.dll/skse64/skse64/GameData.h b/source/fs.dll/skse64/skse64/GameData.h index a0af1c69..85212567 100644 --- a/source/fs.dll/skse64/skse64/GameData.h +++ b/source/fs.dll/skse64/skse64/GameData.h @@ -361,7 +361,7 @@ public: UInt32 LoadScripts_Hook(); MEMBER_FN_PREFIX(DataHandler); - DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x001713D0); + DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x0017BDB0); }; STATIC_ASSERT(offsetof(DataHandler, regionList) == 0xD00); @@ -395,8 +395,6 @@ public: }; MEMBER_FN_PREFIX(MiscStatManager); - // SE: It looks like another inline victim. It wasn't used by anything else in SKSE. - //DEFINE_MEMBER_FN(Visit, void, 0x00000000, Visitor ** visitor); tArray m_stats; // 00 @@ -412,8 +410,8 @@ public: static EquipManager * GetSingleton(void); MEMBER_FN_PREFIX(EquipManager); - DEFINE_MEMBER_FN(EquipItem, void, 0x00637A80, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk); - DEFINE_MEMBER_FN(UnequipItem, bool, 0x00638190, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool unkFlag1, bool preventEquip, bool unkFlag2, bool unkFlag3, void * unk); + DEFINE_MEMBER_FN(EquipItem, void, 0x0065E4B0, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk); + DEFINE_MEMBER_FN(UnequipItem, bool, 0x0065ECA0, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool unkFlag1, bool preventEquip, bool unkFlag2, bool unkFlag3, void * unk); }; @@ -493,8 +491,8 @@ public: { public: MEMBER_FN_PREFIX(MorphDatabase); - DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x003D4F90, const char * meshPath, BSFaceGenModelMap ** entry); - DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x003D4D80, const char * meshPath, BSFaceGenModel * model); + DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x003ED210, const char * meshPath, BSFaceGenModelMap ** entry); + DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x003ED0C0, const char * meshPath, BSFaceGenModel * model); UInt64 unk00; // 00 UInt32 unk08; // 08 @@ -529,8 +527,8 @@ public: UInt8 pad61[7]; // 61 MEMBER_FN_PREFIX(FaceGen); - DEFINE_MEMBER_FN(RegenerateHead, void, 0x003D2A60, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc); - DEFINE_MEMBER_FN(ApplyMorph, void, 0x003D2380, BSFaceGenNiNode * faceGenNode, BGSHeadPart * headPart, BSFixedString * morphName, float relative); + DEFINE_MEMBER_FN(RegenerateHead, void, 0x003EA340, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc); + DEFINE_MEMBER_FN(ApplyMorph, void, 0x003E9C40, BSFaceGenNiNode* faceGenNode, BGSHeadPart* headPart, BSFixedString* morphName, float relative); }; STATIC_ASSERT(offsetof(FaceGen, isReset) == 0x58); @@ -676,12 +674,11 @@ public: } MEMBER_FN_PREFIX(PersistentFormManager); - DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x0059F0F0, tArray * effectArray); - DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x0059F190, tArray * effectArray); - DEFINE_MEMBER_FN(CreatePoison, void, 0x0059F2E0, tArray * effectArray, AlchemyItem ** poison); - DEFINE_MEMBER_FN(CreatePotion, void, 0x0059F230, AlchemyItem ** potion, tArray * effectArray); - //DEFINE_MEMBER_FN(AddPersistentForm, void, 0x0068A0F0, TESForm *); - DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x0059F6E0, TESForm *); + DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x005C1350, tArray * effectArray); + DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x005C13F0, tArray * effectArray); + DEFINE_MEMBER_FN(CreatePoison, void, 0x005C1540, tArray * effectArray, AlchemyItem ** poison); + DEFINE_MEMBER_FN(CreatePotion, void, 0x005C1490, AlchemyItem ** potion, tArray * effectArray); + DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x005C1870, TESForm *); }; STATIC_ASSERT(sizeof(PersistentFormManager) == 0xD0); @@ -865,15 +862,14 @@ public: UInt8 unk370[0x60]; // 370 - TODO: .?AV?$BSTCommonStaticMessageQueue@V?$BSTSmartPointer@VRequest@saveload@bgs@@UBSTSmartPointerIntrusiveRefCount@@@@$07@@ private: - // SE: Save_Internal signature changed! Normal save: unk1=2, unk2=0 - DEFINE_MEMBER_FN(Save_Internal, bool, 0x00586DE0, int unk1, UInt32 unk2, const char * name); - DEFINE_MEMBER_FN(Load_Internal, bool, 0x00587350, const char * name, int unk1, UInt32 unk2, UInt32 unk3); + DEFINE_MEMBER_FN(Save_Internal, bool, 0x005A87C0, int unk1, UInt32 unk2, const char * name); + DEFINE_MEMBER_FN(Load_Internal, bool, 0x005A8F00, const char * name, int unk1, UInt32 unk2, UInt32 unk3); - DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x0057CCC0, UInt64 *unk0); - DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x0057D1A0, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3); + DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x0059E730, UInt64 *unk0); + DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x0059EE40, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3); - DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x00589A60); - DEFINE_MEMBER_FN(DeleteSavegame, void, 0x00586D70, const char * saveName, UInt32 unk1); + DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x005ABA70); + DEFINE_MEMBER_FN(DeleteSavegame, void, 0x005A8750, const char * saveName, UInt32 unk1); }; STATIC_ASSERT(offsetof(BGSSaveLoadManager, thread) == 0x2B0); STATIC_ASSERT(offsetof(BGSSaveLoadManager::Thread, hThread) == 0x30); diff --git a/source/fs.dll/skse64/skse64/GameEvents.cpp b/source/fs.dll/skse64/skse64/GameEvents.cpp index 8c16f2ea..9af08b56 100644 --- a/source/fs.dll/skse64/skse64/GameEvents.cpp +++ b/source/fs.dll/skse64/skse64/GameEvents.cpp @@ -1,7 +1,7 @@ #include "GameEvents.h" // 614D2151B14D0D61E7DA7088CAB85DB111E2E0D3+1B -RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x00186790); +RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x00194100); //EventDispatcher* g_footstepEventDispatcher = (EventDispatcher*) 0x01B2E9C0; diff --git a/source/fs.dll/skse64/skse64/GameEvents.h b/source/fs.dll/skse64/skse64/GameEvents.h index b3839872..526e2dd1 100644 --- a/source/fs.dll/skse64/skse64/GameEvents.h +++ b/source/fs.dll/skse64/skse64/GameEvents.h @@ -39,12 +39,12 @@ class EventDispatcher // Note: in SE there are multiple identical copies of all these functions MEMBER_FN_PREFIX(EventDispatcher); - // 66B1C7AC473D5EA48E4FD620BBFE0A06392C5885+66 - DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x0056B600, SinkT * eventSink); - // ??_7BGSProcedureShoutExecState@@6B@ dtor | +43 - DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x00423B70, SinkT * eventSink); - // D6BA7CEC95B2C2B9C593A9AEE7F0ADFFB2C10E11+456 - DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x00177DC0, EventArgT * evn); + // 9FCA8C7632C2FC6D6E342E554B43402121BC4E44+66 + DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x00587E20, SinkT * eventSink); + // ??_7BGSProcedureShoutExecState@@6B@ xref +21 last call + DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0043C400, SinkT * eventSink); + // FB59C2DDF89F5248DF43230E39A6FECF8C997BA6+466 + DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x00181CB0, EventArgT * evn); public: diff --git a/source/fs.dll/skse64/skse64/GameExtraData.cpp b/source/fs.dll/skse64/skse64/GameExtraData.cpp index 2f8d14d3..13b7955a 100644 --- a/source/fs.dll/skse64/skse64/GameExtraData.cpp +++ b/source/fs.dll/skse64/skse64/GameExtraData.cpp @@ -6,33 +6,33 @@ #include "HashUtil.h" // ??_7ExtraHealth@@6B@ -const RelocPtr s_ExtraHealthVtbl(0x0152C060); +const RelocPtr s_ExtraHealthVtbl(0x01624A50); // ??_7ExtraCharge@@6B@ -const RelocPtr s_ExtraChargeVtbl(0x0152C0C0); +const RelocPtr s_ExtraChargeVtbl(0x01624AB0); // ??_7ExtraCount@@6B@ -const RelocPtr s_ExtraCountVtbl(0x0152BFE0); +const RelocPtr s_ExtraCountVtbl(0x016249D0); // ??_7ExtraTextDisplayData@@6B@ -const RelocPtr s_ExtraTextDisplayVtbl(0x0152CAE0); +const RelocPtr s_ExtraTextDisplayVtbl(0x016254D0); // ??_7ExtraSoul@@6B@ -const RelocPtr s_ExtraSoulVtbl(0x0152F2E0); +const RelocPtr s_ExtraSoulVtbl(0x01628220); // ??_7ExtraOwnership@@6B@ -const RelocPtr s_ExtraOwnershipVtbl(0x0152BF80); +const RelocPtr s_ExtraOwnershipVtbl(0x01624970); // ??_7ExtraAliasInstanceArray@@6B@ -const RelocPtr s_ExtraAliasInstanceArrayVtbl(0x0152C9A0); +const RelocPtr s_ExtraAliasInstanceArrayVtbl(0x01625390); // ??_7ExtraCannotWear@@6B@ -const RelocPtr s_ExtraCannotWearVtbl(0x0152C040); +const RelocPtr s_ExtraCannotWearVtbl(0x01624A30); // ??_7ExtraHotkey@@6B@ -const RelocPtr s_ExtraHotkeyVtbl(0x0152C120); +const RelocPtr s_ExtraHotkeyVtbl(0x01624B10); // ??_7ExtraForcedTarget@@6B@ -const RelocPtr s_ExtraForcedTargetVtbl(0x0152CB60); +const RelocPtr s_ExtraForcedTargetVtbl(0x01625550); // ??_7ExtraReferenceHandle@@6B@ -const RelocPtr s_ExtraReferenceHandleVtbl(0x0152C160); +const RelocPtr s_ExtraReferenceHandleVtbl(0x01624B50); // ??_7ExtraEnchantment@@6B@ -const RelocPtr s_ExtraEnchantmentVtbl(0x0152C480); +const RelocPtr s_ExtraEnchantmentVtbl(0x01624E70); // ??_7ExtraRank@@6B@ -const RelocPtr s_ExtraRankVtbl(0x0152BFC0); +const RelocPtr s_ExtraRankVtbl(0x016249B0); // ??_7ExtraUniqueID@@6B@ -const RelocPtr s_ExtraUniqueIdVtbl(0x0152CBA0); +const RelocPtr s_ExtraUniqueIdVtbl(0x01625590); ExtraHealth* ExtraHealth::Create() { diff --git a/source/fs.dll/skse64/skse64/GameExtraData.h b/source/fs.dll/skse64/skse64/GameExtraData.h index 835c092a..4b986595 100644 --- a/source/fs.dll/skse64/skse64/GameExtraData.h +++ b/source/fs.dll/skse64/skse64/GameExtraData.h @@ -67,10 +67,10 @@ public: void GetEquipItemData(EquipData& stateOut, SInt32 itemId, SInt32 baseCount) const; MEMBER_FN_PREFIX(InventoryEntryData); - DEFINE_MEMBER_FN(GenerateName, const char *, 0x001D73C0); - DEFINE_MEMBER_FN(GetValue, SInt32, 0x001D66E0); - DEFINE_MEMBER_FN(IsOwnedBy, bool, 0x001D7510, TESForm * actor, bool unk1); - DEFINE_MEMBER_FN(GetSoulLevel, UInt32, 0x001D6860); + DEFINE_MEMBER_FN(GenerateName, const char *, 0x001E2B70); + DEFINE_MEMBER_FN(GetValue, SInt32, 0x001E1EC0); + DEFINE_MEMBER_FN(IsOwnedBy, bool, 0x001E2CB0, TESForm * actor, bool unk1); + DEFINE_MEMBER_FN(GetSoulLevel, UInt32, 0x001E2040); }; typedef tList EntryDataList; @@ -98,8 +98,8 @@ public: void GetEquipItemData(InventoryEntryData::EquipData& stateOut, TESForm * item, SInt32 itemId) const; MEMBER_FN_PREFIX(Data); - DEFINE_MEMBER_FN(SetUniqueID, void, 0x001ECC60, BaseExtraList* itemList, TESForm * oldForm, TESForm * newForm); - DEFINE_MEMBER_FN(TransferItemUID, void, 0x001ECE20, BaseExtraList * extraList, TESForm * oldForm, TESForm * newForm, UInt32 unk1); + DEFINE_MEMBER_FN(SetUniqueID, void, 0x001F8560, BaseExtraList* itemList, TESForm * oldForm, TESForm * newForm); + DEFINE_MEMBER_FN(TransferItemUID, void, 0x001F8810, BaseExtraList * extraList, TESForm * oldForm, TESForm * newForm, UInt32 unk1); }; Data * data; @@ -552,8 +552,8 @@ public: static ExtraTextDisplayData* Create(); MEMBER_FN_PREFIX(ExtraTextDisplayData); - DEFINE_MEMBER_FN(SetName_Internal, void, 0x0013C870, const char * name); - DEFINE_MEMBER_FN(GenerateName_Internal, const char*, 0x0013C740, TESForm * form, float extraHealthValue); + DEFINE_MEMBER_FN(SetName_Internal, void, 0x00143C40, const char * name); + DEFINE_MEMBER_FN(GenerateName_Internal, const char*, 0x00143B10, TESForm * form, float extraHealthValue); }; // ExtraAlphaCutoff diff --git a/source/fs.dll/skse64/skse64/GameFormComponents.h b/source/fs.dll/skse64/skse64/GameFormComponents.h index 09dca16f..1d1efd19 100644 --- a/source/fs.dll/skse64/skse64/GameFormComponents.h +++ b/source/fs.dll/skse64/skse64/GameFormComponents.h @@ -474,7 +474,7 @@ public: UInt32 unk0C; // 0C - init'd to FFFFFFFF MEMBER_FN_PREFIX(TESDescription); - DEFINE_MEMBER_FN(Get, void, 0x00190480, BSString * out, TESForm * parent, UInt32 fieldType); + DEFINE_MEMBER_FN(Get, void, 0x0019AB70, BSString * out, TESForm * parent, UInt32 fieldType); }; // 18 @@ -1064,8 +1064,8 @@ public: UInt32 handle; // 2770 UInt32 unk2774; // 2774 - DEFINE_MEMBER_FN_0(UpdateWeightData, void, 0x001C61A0); - DEFINE_MEMBER_FN_0(DeleteThis, void, 0x001C60A0); + DEFINE_MEMBER_FN_0(UpdateWeightData, void, 0x001D1360); + DEFINE_MEMBER_FN_0(DeleteThis, void, 0x001D1260); }; STATIC_ASSERT(offsetof(Biped, unk10) == 0x10); STATIC_ASSERT(offsetof(Biped, unk13C0) == 0x13C0); @@ -1296,10 +1296,10 @@ public: UInt32 pad13C; // 13C MEMBER_FN_PREFIX(ActorProcessManager); - DEFINE_MEMBER_FN(SetEquipFlag, void, 0x0067E3B0, UInt8 flags); - DEFINE_MEMBER_FN(UpdateEquipment, void, 0x00650DF0, Actor * actor); - // FBB0A4AE04B0C1C63470C26B004079D7D9B20D0B+8B - DEFINE_MEMBER_FN(SetDataFlag, void, 0x0065C880, float flag); // Sets a number on the 0x10 object. SE: The parameter flag was actually a float (xmm1) + DEFINE_MEMBER_FN(SetEquipFlag, void, 0x006A6720, UInt8 flags); + DEFINE_MEMBER_FN(UpdateEquipment, void, 0x006787D0, Actor * actor); + // CDC12817DF3AB5B832348763F433A216BB8A85CA+89 + DEFINE_MEMBER_FN(SetDataFlag, void, 0x00684430, float flag); // Sets a number on the 0x10 object void UpdateEquipment_Hooked(Actor * actor); }; @@ -1383,9 +1383,9 @@ public: void SetSkillLegendaryLevel(BSFixedString actorValue, UInt32 level); MEMBER_FN_PREFIX(PlayerSkills); - DEFINE_MEMBER_FN(GetSkillData, UInt32, 0x006E6130, UInt32 actorValue, float * level, float * points, float * pointsMax, UInt32 * unk6); - DEFINE_MEMBER_FN(IncrementLegendary, UInt32, 0x006E6620, UInt32 actorValue); - DEFINE_MEMBER_FN(SetLevel, void, 0x006E65C0, UInt32 level); + DEFINE_MEMBER_FN(GetSkillData, UInt32, 0x0070F910, UInt32 actorValue, float * level, float * points, float * pointsMax, UInt32 * unk6); + DEFINE_MEMBER_FN(IncrementLegendary, UInt32, 0x0070FF00, UInt32 actorValue); + DEFINE_MEMBER_FN(SetLevel, void, 0x0070FEA0, UInt32 level); }; // 10 diff --git a/source/fs.dll/skse64/skse64/GameForms.cpp b/source/fs.dll/skse64/skse64/GameForms.cpp index 073ba328..63a00963 100644 --- a/source/fs.dll/skse64/skse64/GameForms.cpp +++ b/source/fs.dll/skse64/skse64/GameForms.cpp @@ -1,12 +1,12 @@ #include "GameForms.h" #include "GameObjects.h" -RelocAddr <_LookupFormByID> LookupFormByID(0x00194230); +RelocAddr <_LookupFormByID> LookupFormByID(0x0019F050); BGSDefaultObjectManager *BGSDefaultObjectManager::GetSingleton(void) { - // 81542B44FD6902A56B6B1464C37C41C529E9FD2A+31CB - static RelocPtr g_BGSDefaultObjectManager(0x01EBD710); + // 28B3F9E3FED2F18B102E5B767FD2BE747CAB4002+37 + static RelocPtr g_BGSDefaultObjectManager(0x01F59090); return g_BGSDefaultObjectManager; } @@ -65,8 +65,8 @@ void TESForm::CopyFromEx(TESForm * rhsForm) float GetFormWeight(TESForm *form) { - // 27090A4B7BDF5406F9A6871190673EC666A22195+38 - static RelocAddr GetFormWeight_Address(0x001A1730); + // 3894EDBBE3D9FBC367A71D7ABC60B87A407F3E3D+30 + static RelocAddr GetFormWeight_Address(0x001ACF20); return ((_GetFormWeight)(GetFormWeight_Address.GetUIntPtr())) (form); } diff --git a/source/fs.dll/skse64/skse64/GameForms.h b/source/fs.dll/skse64/skse64/GameForms.h index 98cab423..cefe9730 100644 --- a/source/fs.dll/skse64/skse64/GameForms.h +++ b/source/fs.dll/skse64/skse64/GameForms.h @@ -357,7 +357,7 @@ public: enum { kFlagIsDeleted = 0x20, kFlagPlayerKnows = 0x40, - kFlagUnk_0x800 = 0x800 + kFlagUnk_0x800 = 0x800, }; virtual void Unk_04(void); // reset/init? would leak pointers if called on a live object @@ -366,8 +366,8 @@ public: virtual bool Unk_07(UInt32 arg); virtual bool Unk_08(UInt32 arg); // calls LoadForm virtual TESForm * Unk_09(UInt32 arg1, void * arg2); - virtual bool MarkChanged(UInt32 changed); // mark as changed? - virtual void Unk_0B(UInt32 arg); + virtual bool MarkChanged(UInt32 changed); + virtual void ClearChanged(UInt32 changed); virtual bool Unk_0C(UInt32 arg); virtual void Unk_0D(UInt32 arg); virtual void Unk_0E(UInt32 arg); @@ -967,9 +967,9 @@ public: UInt32 unk40; // 40 MEMBER_FN_PREFIX(BGSListForm); - DEFINE_MEMBER_FN(AddFormToList, void, 0x002C53D0, TESForm * form); - DEFINE_MEMBER_FN(RemoveFormFromList, void, 0x002C5570, TESForm * form); - DEFINE_MEMBER_FN(RevertList, void, 0x002C5300); + DEFINE_MEMBER_FN(AddFormToList, void, 0x002D81C0, TESForm * form); + DEFINE_MEMBER_FN(RemoveFormFromList, void, 0x002D8390, TESForm * form); + DEFINE_MEMBER_FN(RevertList, void, 0x002D80E0); class Visitor { @@ -1700,8 +1700,8 @@ public: UnkArray unk250; // 250 MEMBER_FN_PREFIX(TESQuest); - DEFINE_MEMBER_FN(ForceRefTo, UInt32, 0x00375050, UInt32 aliasId, TESObjectREFR * reference); - DEFINE_MEMBER_FN(NewGame_Internal, UInt8, 0x00370910, UInt8 * unk1, UInt8 unk2); + DEFINE_MEMBER_FN(ForceRefTo, UInt32, 0x0038C240, UInt32 aliasId, TESObjectREFR * reference); + DEFINE_MEMBER_FN(NewGame_Internal, UInt8, 0x00387F50, UInt8 * unk1, UInt8 unk2); UInt8 NewGame_Hook(UInt8 * unk1, UInt8 unk2); }; @@ -2572,7 +2572,7 @@ public: UInt64 unk138; // 138 MEMBER_FN_PREFIX(TESObjectCELL); - DEFINE_MEMBER_FN(GetNorthRotation, double, 0x0026D510); + DEFINE_MEMBER_FN(GetNorthRotation, float, 0x00280DB0); }; STATIC_ASSERT(offsetof(TESObjectCELL, refData) == 0x88); STATIC_ASSERT(offsetof(TESObjectCELL, objectList) == 0xB8); @@ -3469,8 +3469,8 @@ public: if(type > kFormType_Max) return NULL; - // B8146167FE300AED18E0DCE1DA9C86E4C4D08513+11 - static RelocPtr kFactoryList(0x01EC3CE0); + // 5386ADDB542755AB5BD598497543E780AD5BDC54+35 + static RelocPtr kFactoryList(0x01F5F620); return kFactoryList[type]; } diff --git a/source/fs.dll/skse64/skse64/GameHandlers.h b/source/fs.dll/skse64/skse64/GameHandlers.h index f704469f..4a7a8236 100644 --- a/source/fs.dll/skse64/skse64/GameHandlers.h +++ b/source/fs.dll/skse64/skse64/GameHandlers.h @@ -32,7 +32,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponRightSwingHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007209A0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C500, Actor * form, UInt32 unk04); }; class WeaponLeftSwingHandler : public IHandlerFunctor @@ -42,7 +42,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponLeftSwingHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720A30, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C590, Actor * form, UInt32 unk04); }; class RightHandSpellFireHandler : public IHandlerFunctor @@ -52,7 +52,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720BF0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C750, Actor * form, UInt32 unk04); }; class LeftHandSpellFireHandler : public IHandlerFunctor @@ -62,7 +62,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(LeftHandSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720BA0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C700, Actor * form, UInt32 unk04); }; class RightHandSpellCastHandler : public IHandlerFunctor @@ -72,7 +72,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720DB0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C910, Actor * form, UInt32 unk04); }; class LeftHandSpellCastHandler : public IHandlerFunctor @@ -82,7 +82,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(LeftHandSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720D60, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C8C0, Actor * form, UInt32 unk04); }; class VoiceSpellCastHandler : public IHandlerFunctor @@ -92,7 +92,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(VoiceSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720E00, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C960, Actor * form, UInt32 unk04); }; class VoiceSpellFireHandler : public IHandlerFunctor @@ -102,7 +102,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(VoiceSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720C40, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C7A0, Actor * form, UInt32 unk04); }; class BowDrawnHandler : public IHandlerFunctor @@ -112,7 +112,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(BowDrawnHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00721EF0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074DBC0, Actor * form, UInt32 unk04); }; class BowReleaseHandler : public IHandlerFunctor @@ -122,7 +122,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(BowReleaseHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00721F10, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074DBE0, Actor * form, UInt32 unk04); }; class WeaponBeginDrawRightHandler : public IHandlerFunctor @@ -132,7 +132,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponBeginDrawRightHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720E90, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074C9F0, Actor * form, UInt32 unk04); }; class WeaponBeginSheatheRightHandler : public IHandlerFunctor @@ -142,7 +142,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponBeginSheatheRightHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720F40, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074CAA0, Actor * form, UInt32 unk04); }; class RightHandWeaponDrawHandler : public IHandlerFunctor @@ -152,7 +152,7 @@ public: virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandWeaponDrawHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00720FB0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074CB10, Actor * form, UInt32 unk04); }; class RightHandWeaponSheatheHandler : public IHandlerFunctor @@ -163,5 +163,5 @@ public: MEMBER_FN_PREFIX(RightHandWeaponSheatheHandler); // ??_7RightHandWeaponSheatheHandler@@6B@ + 8 - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x00721110, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x0074CC70, Actor * form, UInt32 unk04); }; diff --git a/source/fs.dll/skse64/skse64/GameInput.cpp b/source/fs.dll/skse64/skse64/GameInput.cpp index 8f429acf..f51a506d 100644 --- a/source/fs.dll/skse64/skse64/GameInput.cpp +++ b/source/fs.dll/skse64/skse64/GameInput.cpp @@ -7,15 +7,15 @@ bool InputEventDispatcher::IsGamepadEnabled(void) InputEventDispatcher* InputEventDispatcher::GetSingleton() { - // 5202C5E930BB4CD8F477F91C9434AB37DBDB10B3+7A - static RelocPtr g_inputEventDispatcher(0x02F257A8); + // 8FAAB2F3DC59885AE2A550C95F2C82BE2497789F+37 + static RelocPtr g_inputEventDispatcher(0x02FC0DC0); return *g_inputEventDispatcher; } InputManager * InputManager::GetSingleton(void) { - // 61FAE6E8975F0FA7B3DD4D5A410A240E86A58F7B+E - static RelocPtr g_inputManager(0x02EC5BD0); + // 80AE59E4FF0DC421866FA7261C1625595B0C7572+11 + static RelocPtr g_inputManager(0x02F614A0); return *g_inputManager; } @@ -97,14 +97,14 @@ BSFixedString InputManager::GetMappedControl(UInt32 buttonID, UInt32 deviceType, PlayerControls * PlayerControls::GetSingleton(void) { - // F1E82AFF2615653A5A14A2E7C229B4B0466688EF+19 - static RelocPtr g_playerControls(0x02EC5BD8); + // 20AF40A6B803C21547F594CE478EAA5065E8F5A5+11B + static RelocPtr g_playerControls(0x02F614A8); return *g_playerControls; } MenuControls * MenuControls::GetSingleton(void) { - // DC378767BEB0312EBDE098BC7E0CE53FCC296377+D9 - static RelocPtr g_menuControls(0x02F003F8); + // 4E9F39D1066653EF254B38406212E476F80A6C9B+F0 + static RelocPtr g_menuControls(0x02F9BC88); return *g_menuControls; } diff --git a/source/fs.dll/skse64/skse64/GameInput.h b/source/fs.dll/skse64/skse64/GameInput.h index 8e7c8451..b50fa45b 100644 --- a/source/fs.dll/skse64/skse64/GameInput.h +++ b/source/fs.dll/skse64/skse64/GameInput.h @@ -287,7 +287,7 @@ public: // used by Hooks_Event PlayerControls * ctor_Hook(void); MEMBER_FN_PREFIX(PlayerControls); - DEFINE_MEMBER_FN(ctor, PlayerControls *, 0x00704970); + DEFINE_MEMBER_FN(ctor, PlayerControls *, 0x0072F010); }; STATIC_ASSERT(offsetof(PlayerControls, runMode) == 0x049); STATIC_ASSERT(offsetof(PlayerControls, remapMode) == 0x050); @@ -434,8 +434,8 @@ public: static InputStringHolder * GetSingleton(void) { - // 38C98DE3888C4A78379B4BC9F21B33FA74FB6E4C+32 - static RelocPtr g_inputStringHolder(0x02F25250); + // 8BDB97B9BE3B9EBCCFB4F3BA9237EDC8341B354C+B + static RelocPtr g_inputStringHolder(0x02FC07C0); return *g_inputStringHolder; } }; diff --git a/source/fs.dll/skse64/skse64/GameMenus.cpp b/source/fs.dll/skse64/skse64/GameMenus.cpp index 43f27859..d2c01504 100644 --- a/source/fs.dll/skse64/skse64/GameMenus.cpp +++ b/source/fs.dll/skse64/skse64/GameMenus.cpp @@ -1,6 +1,6 @@ #include "GameMenus.h" -RelocAddr <_CreateUIMessageData> CreateUIMessageData(0x00325F00); +RelocAddr <_CreateUIMessageData> CreateUIMessageData(0x005B0E50); IMenu::IMenu() : view(NULL), diff --git a/source/fs.dll/skse64/skse64/GameMenus.h b/source/fs.dll/skse64/skse64/GameMenus.h index 931b36c5..2e5aea7e 100644 --- a/source/fs.dll/skse64/skse64/GameMenus.h +++ b/source/fs.dll/skse64/skse64/GameMenus.h @@ -98,10 +98,10 @@ public: GRefCountBase * unk18; // 28 - holds a reference MEMBER_FN_PREFIX(IMenu); - DEFINE_MEMBER_FN(InitMovie_internal, void, 0x00ECD970, GFxMovieView* view); - DEFINE_MEMBER_FN(NextFrame_internal, void, 0x00ECD8A0, UInt32 arg0, UInt32 arg1); - DEFINE_MEMBER_FN(ProcessMessage_internal, UInt32, 0x00ECD850, UIMessage* message); - DEFINE_MEMBER_FN(dtor, void, 0x00ECD7F0); + DEFINE_MEMBER_FN(InitMovie_internal, void, 0x00F10E30, GFxMovieView* view); + DEFINE_MEMBER_FN(NextFrame_internal, void, 0x00F10BC0, UInt32 arg0, UInt32 arg1); + DEFINE_MEMBER_FN(ProcessMessage_internal, UInt32, 0x00F10B70, UIMessage* message); + DEFINE_MEMBER_FN(dtor, void, 0x00F10B10); }; STATIC_ASSERT(offsetof(IMenu, view) == 0x10); @@ -252,8 +252,8 @@ public: MEMBER_FN_PREFIX(RaceSexMenu); - // FCFD4B12540A068252C0A71C5480E518DDF6EF60+58 - DEFINE_MEMBER_FN(LoadSliders, void *, 0x008B5E20, UInt64 unk1, UInt8 unk2); + // B3D68A070DD2D03BA80128C5FED7004330D111AC+B1 + DEFINE_MEMBER_FN(LoadSliders, void *, 0x008E6300, UInt64 unk1, UInt8 unk2); }; STATIC_ASSERT(offsetof(RaceSexMenu, sliderData) == 0x140); STATIC_ASSERT(offsetof(RaceSexMenu, raceIndex) == 0x188); @@ -366,8 +366,8 @@ public: GFxValue object; // 10 MEMBER_FN_PREFIX(HUDObject); - DEFINE_MEMBER_FN_0(dtor, void, 0x00885C40); - DEFINE_MEMBER_FN_1(Impl_Fn03, void *, 0x00880140, void * unk1); + DEFINE_MEMBER_FN_0(dtor, void, 0x008B6170); + DEFINE_MEMBER_FN_1(Impl_Fn03, void *, 0x008B0FD0, void * unk1); DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free); }; @@ -410,7 +410,7 @@ public: TESWordOfPower* word; // 50 UInt32 time; // 58 - g_gameTime + iObjectivesWaitTime - DEFINE_MEMBER_FN_0(dtor, void, 0x00885400); + DEFINE_MEMBER_FN_0(dtor, void, 0x008B61E0); }; // 78 @@ -564,7 +564,7 @@ public: UInt8 pad12[6]; // 12 MEMBER_FN_PREFIX(CategoryListEntry); - DEFINE_MEMBER_FN(SetData, void, 0x0086F130, GFxValue* target); + DEFINE_MEMBER_FN(SetData, void, 0x0089E570, GFxValue* target); void SetData_Extended(EnchantConstructMenu* subMenu, GFxValue* target); }; @@ -840,13 +840,14 @@ public: // this takes ownership of the message ptr // DEFINE_MEMBER_FN(AddMessage, void, 0x004503E0, UIMessage * msg); // old 1.1 implementation // 1.3 uses a little non-thread-safe pool of UIMessages to wrap around the nicely thread-safe BSTMessageQueue it gets added to - DEFINE_MEMBER_FN(AddMessage, void, 0x001652D0, StringCache::Ref * strData, UInt32 msgID, void * objData); - DEFINE_MEMBER_FN(CreateUIMessageData, IUIMessageData *, 0x00EC31D0, const BSFixedString &type); + + DEFINE_MEMBER_FN(AddMessage, void, 0x0016EC10, StringCache::Ref * strData, UInt32 msgID, void * objData); + DEFINE_MEMBER_FN(CreateUIMessageData, IUIMessageData *, 0x00F09F80, const BSFixedString &type); static UIManager * GetSingleton(void) { - // CB598A8812CFF3959F94DC8F8371BA876F68AE34+67 - static RelocPtr g_UIManager(0x01EC0A70); + // 5DCBE2588F11BA3D68C45F56DC0FC5D806409F85+C3 + static RelocPtr g_UIManager(0x01F5C3F0); return *g_UIManager; } @@ -855,7 +856,7 @@ public: void QueueCommand(UIDelegate* cmd); void QueueCommand(UIDelegate_v1* cmd); - DEFINE_MEMBER_FN(ProcessEventQueue_HookTarget, void, 0x00EC30F0); + DEFINE_MEMBER_FN(ProcessEventQueue_HookTarget, void, 0x00F09E00); }; STATIC_ASSERT(offsetof(UIManager, pad348) == 0x348); STATIC_ASSERT(sizeof(UIManager) == 0xB80); @@ -942,8 +943,8 @@ public: static UIStringHolder * GetSingleton(void) { - // 81B349AB8ABC9944E48046819F0345AB0526CDB5+9 - static RelocPtr g_UIStringHolder(0x01EC0A78); + // 5DCBE2588F11BA3D68C45F56DC0FC5D806409F85+BC + static RelocPtr g_UIStringHolder(0x01F5C3F8); return *g_UIStringHolder; } }; @@ -957,7 +958,7 @@ public: static Inventory3DManager * GetSingleton(void) { // 6BC34CC398831C8B8BE5BE20EC213B5BE7C47A7A+2E - static RelocPtr g_inventory3DManager(0x02F27180); + static RelocPtr g_inventory3DManager(0x02FC2DF0); return *g_inventory3DManager; } @@ -996,17 +997,10 @@ public: UInt8 pad15B[5]; MEMBER_FN_PREFIX(Inventory3DManager); - DEFINE_MEMBER_FN(UpdateItem3D, void, 0x00887970, InventoryEntryData * objDesc); - DEFINE_MEMBER_FN(UpdateMagic3D, void, 0x008879A0, TESForm * form, UInt32 unk1); - DEFINE_MEMBER_FN(Clear3D, void, 0x00887D10); - DEFINE_MEMBER_FN(Render, UInt32, 0x00887750); - - //DEFINE_MEMBER_FN(Unk1, void, 0x008667E0, UInt32 unk1); - //DEFINE_MEMBER_FN(Unk2, void, 0x00867110); - //DEFINE_MEMBER_FN(Unk3, bool, 0x008664C0); - //DEFINE_MEMBER_FN(Unk4, double, 0x008663E0); - //DEFINE_MEMBER_FN(Unk5, bool, 0x008418D0); - //DEFINE_MEMBER_FN(Unk6, int, 0x00867730); + DEFINE_MEMBER_FN(UpdateItem3D, void, 0x008B84E0, InventoryEntryData * objDesc); + DEFINE_MEMBER_FN(UpdateMagic3D, void, 0x008B8510, TESForm * form, UInt32 unk1); + DEFINE_MEMBER_FN(Clear3D, void, 0x008B88D0); + DEFINE_MEMBER_FN(Render, UInt32, 0x008B81F0); }; STATIC_ASSERT(offsetof(Inventory3DManager, unk14) == 0x14); @@ -1097,15 +1091,15 @@ public: private: MEMBER_FN_PREFIX(MenuManager); - DEFINE_MEMBER_FN(IsMenuOpen, bool, 0x00EBE150, BSFixedString * menuName); - DEFINE_MEMBER_FN(Register_internal, void, 0x00EBF9C0, const char * name, CreatorFunc creator); + DEFINE_MEMBER_FN(IsMenuOpen, bool, 0x00F05300, BSFixedString * menuName); + DEFINE_MEMBER_FN(Register_internal, void, 0x00F06FD0, const char * name, CreatorFunc creator); public: static MenuManager * GetSingleton(void) { - // 502FDB8FEA80C3705F9E228F79D4EA7A399CC7FD+32 - static RelocPtr g_menuManager(0x01EBEB20); + // 0060C371BC22FE1665DD3BA10816084EEC6FAA3F+4 + static RelocPtr g_menuManager(0x01F5A4A0); return *g_menuManager; } diff --git a/source/fs.dll/skse64/skse64/GameObjects.cpp b/source/fs.dll/skse64/skse64/GameObjects.cpp index b4d7c602..3744f868 100644 --- a/source/fs.dll/skse64/skse64/GameObjects.cpp +++ b/source/fs.dll/skse64/skse64/GameObjects.cpp @@ -146,9 +146,11 @@ bool TESObjectARMA::isValidRace(TESRace * sourceRace) const BSShaderTextureSet * BSShaderTextureSet::Create() { - BSShaderTextureSet * textureSet = (BSShaderTextureSet*)Heap_Allocate(sizeof(BSShaderTextureSet)); - CALL_MEMBER_FN(textureSet, ctor)(); - return textureSet; + typedef BSShaderTextureSet * (* _BSShaderTextureSet_Create)(void); + // 898A3CAF8F24D9FDC30B00DA3DC5BDF182682C1C+63 + static RelocAddr <_BSShaderTextureSet_Create> BSShaderTextureSet_Create(0x0140B7A0); + + return BSShaderTextureSet_Create(); } void TESNPC::SetFaceTexture(BGSTextureSet * textureSet) diff --git a/source/fs.dll/skse64/skse64/GameObjects.h b/source/fs.dll/skse64/skse64/GameObjects.h index eaa88b65..66f7d73b 100644 --- a/source/fs.dll/skse64/skse64/GameObjects.h +++ b/source/fs.dll/skse64/skse64/GameObjects.h @@ -334,9 +334,6 @@ public: const char * textures[9]; static BSShaderTextureSet * Create(); - - MEMBER_FN_PREFIX(BSShaderTextureSet); - DEFINE_MEMBER_FN(ctor, BSShaderTextureSet *, 0x012C9320); }; STATIC_ASSERT(sizeof(BSShaderTextureSet) == 0x58); @@ -360,6 +357,14 @@ public: UInt32 unk08; // 08 }; + enum Flag + { + kFlagNone = 0, + kFlagNoSpecularMap = 1 << 0, + kFlagFacegenTextures = 1 << 1, + kFlagHasModelSpaceNormalMap = 1 << 2 + }; + enum { kTextureDiffuse = 0, @@ -379,7 +384,7 @@ public: TESTexture texturePaths[kNumTextures]; // 40 UInt64 unkC0; // C0 - UInt16 unkC8; // C8 + UInt16 flags; // C8 UInt8 padCA[6]; // CA Data unkD0[kNumTextures]; // D0 }; @@ -457,8 +462,8 @@ public: UInt64 unk88; // 88 MEMBER_FN_PREFIX(MagicItem); - DEFINE_MEMBER_FN(GetCostliestEffectItem, EffectItem *, 0x00101CC0, int arg1, bool arg2); - DEFINE_MEMBER_FN(GetEffectiveMagickaCost, float, 0x00101A30, Character* caster); + DEFINE_MEMBER_FN(GetCostliestEffectItem, EffectItem *, 0x0010BF00, int arg1, bool arg2); + DEFINE_MEMBER_FN(GetEffectiveMagickaCost, float, 0x0010BC80, Character* caster); }; STATIC_ASSERT(sizeof(MagicItem) == 0x90); @@ -793,11 +798,10 @@ public: UInt64 unk260; // 260 MEMBER_FN_PREFIX(TESNPC); - DEFINE_MEMBER_FN(GetSex, char, 0x003512A0); - DEFINE_MEMBER_FN(HasOverlays, bool, 0x00368A20); + DEFINE_MEMBER_FN(GetSex, char, 0x00367290); // return (formType == 0x2B) ? (actorData.flags & 1) : -1; + DEFINE_MEMBER_FN(HasOverlays, bool, 0x0037FEB0); - // Swaps a headPart of the same type as target with target - DEFINE_MEMBER_FN(ChangeHeadPart, void, 0x00365BF0, BGSHeadPart * target); + DEFINE_MEMBER_FN(ChangeHeadPart, void, 0x0037CE80, BGSHeadPart * target); // Swaps a headPart of the same type as target with target struct MorphAction { BSFaceGenNiNode * faceNode; @@ -806,11 +810,9 @@ public: float value; }; - // Updates the neck seam when weight changed - DEFINE_MEMBER_FN(UpdateNeck, void, 0x003606D0, BSFaceGenNiNode * faceNode); + DEFINE_MEMBER_FN(UpdateNeck, void, 0x00377430, BSFaceGenNiNode * faceNode); // Updates the neck seam when weight changed - // Computes RGB SkinTone from RGBA TintMask - DEFINE_MEMBER_FN(SetSkinFromTint, void, 0x00360480, NiColorA * result, TintMask * tintMask, bool fromTint); + DEFINE_MEMBER_FN(SetSkinFromTint, void, 0x003771F0, NiColorA * result, TintMask * tintMask, bool fromTint); // Computes RGB SkinTone from RGBA TintMask void SetFaceTexture(BGSTextureSet * textureSet); void SetHairColor(BGSColorForm * hairColor); @@ -1454,15 +1456,13 @@ public: UInt32 pad0C; // 0C }; - Data40 data; // 40 - TESModelTextureSwap models[2][2]; // 50 - UInt64 unk130; // 130 - UInt64 unk138; // 138 - UInt64 unk140; // 140 - UInt64 unk148; // 148 - tArray additionalRaces; // 150 - BGSFootstepSet * footstepSet; // 168 - UInt64 unk170; // 170 + Data40 data; // 40 + TESModelTextureSwap models[2][2]; // 50 + BGSTextureSet* skinTextures[2]; // 130 - NAM0 - NAM1 + BGSListForm* skinTextureSwapLists[2]; // 140 - NAM2 - NAM3 + tArray additionalRaces; // 150 + BGSFootstepSet * footstepSet; // 168 + UInt64 unk170; // 170 bool isValidRace(TESRace * race) const; void GetNodeName(char * dstBuff, TESObjectREFR * refr, TESObjectARMO * armor, float weightOverride); diff --git a/source/fs.dll/skse64/skse64/GameRTTI.cpp b/source/fs.dll/skse64/skse64/GameRTTI.cpp index 81329f14..f23ae71c 100644 --- a/source/fs.dll/skse64/skse64/GameRTTI.cpp +++ b/source/fs.dll/skse64/skse64/GameRTTI.cpp @@ -2,7 +2,8 @@ #include "skse64_common/Relocation.h" typedef void * (* _Runtime_DynamicCast_Internal)(void * srcObj, UInt32 arg1, const void * fromType, const void * toType, UInt32 arg4); -RelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x0134BDB0); // __RTDynamicCast +// 09ECDC875A847989BA08B9E8A23656EDFE1F380C+A8 +RelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x0147854A); // __RTDynamicCast void * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * toType) { diff --git a/source/fs.dll/skse64/skse64/GameRTTI.h b/source/fs.dll/skse64/skse64/GameRTTI.h index 7a35e7f2..ff732258 100644 --- a/source/fs.dll/skse64/skse64/GameRTTI.h +++ b/source/fs.dll/skse64/skse64/GameRTTI.h @@ -4,8 +4,8 @@ void * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * to #define DYNAMIC_CAST(obj, from, to) ( ## to *) Runtime_DynamicCast((void*)(obj), RTTI_ ## from, RTTI_ ## to) -extern const void * RTTI_BaseFormComponent; extern const void * RTTI_IFormFactory; +extern const void * RTTI_BaseFormComponent; extern const void * RTTI_AlchemyItem; extern const void * RTTI_BGSDualCastData; extern const void * RTTI_Setting; @@ -195,8 +195,8 @@ extern const void * RTTI_ExtraCellGrassData; extern const void * RTTI_ExtraInteraction; extern const void * RTTI_ExtraGroupConstraint; extern const void * RTTI_MultiBoundMarkerData; -extern const void * RTTI_BSStream; extern const void * RTTI_INISettingCollection; +extern const void * RTTI_BSStream; extern const void * RTTI_InterfacedClass; extern const void * RTTI_BSTask; extern const void * RTTI_IOTask; @@ -680,17 +680,17 @@ extern const void * RTTI_BGSAIWorldLocationPointRadius; extern const void * RTTI_BGSAIWorldLocationInteriorCell; extern const void * RTTI_BGSAttackDataMap; extern const void * RTTI_BGSAttackData; -extern const void * RTTI_IPackageDataAIWorldLocationHandle; extern const void * RTTI_IAITarget; -extern const void * RTTI_IPackageData; -extern const void * RTTI_IAIWorldLocationHandle; extern const void * RTTI_BGSPackageDataBool; extern const void * RTTI_BGSPackageDataFloat; extern const void * RTTI_BGSPackageDataInt; extern const void * RTTI_BGSPackageDataRefOLD; extern const void * RTTI_BGSPackageDataLocation; -extern const void * RTTI_BGSPackageDataLocationWrapper; extern const void * RTTI_BGSPackageDataTargetSelector; +extern const void * RTTI_IPackageDataAIWorldLocationHandle; +extern const void * RTTI_IPackageData; +extern const void * RTTI_IAIWorldLocationHandle; +extern const void * RTTI_BGSPackageDataLocationWrapper; extern const void * RTTI_BGSPackageDataObjectList; extern const void * RTTI_ObjectListItem; extern const void * RTTI_BGSPackageDataRef; @@ -777,8 +777,8 @@ extern const void * RTTI_BGSProcedureWander; extern const void * RTTI_BGSProcedureWanderExecState; extern const void * RTTI_BGSVisitProceduresInitActorLocation; extern const void * RTTI_BGSVisitProceduresCheckGuardWarnTarget; -extern const void * RTTI_TESPackage; extern const void * RTTI_PackageCreator; +extern const void * RTTI_TESPackage; extern const void * RTTI_DialoguePackage; extern const void * RTTI_TESPackageData; extern const void * RTTI_TESAmbushPackageData; @@ -795,8 +795,8 @@ extern const void * RTTI_ActorPackageData; extern const void * RTTI_TESUseWeaponPackageData; extern const void * RTTI_UseWeaponActorPackageData; extern const void * RTTI_PackageLocation; -extern const void * RTTI_BSTempEffect; extern const void * RTTI_ITempEffectFactory; +extern const void * RTTI_BSTempEffect; extern const void * RTTI_BSTempEffectDebris; extern const void * RTTI_BSTempEffectGeometryDecal; extern const void * RTTI_BGSParticleObjectCloneTask; @@ -844,8 +844,8 @@ extern const void * RTTI_BSNavmeshSearchMaxCostFilters; extern const void * RTTI_NavMeshSearchMultipleGoals; extern const void * RTTI_NavMeshSearchSLPoint; extern const void * RTTI_PathingRequestClosePoint; -extern const void * RTTI_PathingRequestClosestGoal; extern const void * RTTI_IPathBuilderFactoryBase; +extern const void * RTTI_PathingRequestClosestGoal; extern const void * RTTI_PathingRequestCover; extern const void * RTTI_PathingRequestFlee; extern const void * RTTI_PathingRequestFly; @@ -998,8 +998,8 @@ extern const void * RTTI_PeakValueModifierEffect; extern const void * RTTI_ReanimateEffect; extern const void * RTTI_ReferenceEffect; extern const void * RTTI_WeaponEnchantmentController; -extern const void * RTTI_ScriptEffect; extern const void * RTTI_ScriptedRefEffect; +extern const void * RTTI_ScriptEffect; extern const void * RTTI_BSParticleShaderObjectEmitter; extern const void * RTTI_BSParticleShaderRayEmitter; extern const void * RTTI_BSParticleShaderCollisionEmitter; @@ -1027,6 +1027,8 @@ extern const void * RTTI_WerewolfFeedEffect; extern const void * RTTI_TESAudio__ScriptedMusicState; extern const void * RTTI_BGSPlayerMusicChanger; extern const void * RTTI_MenuTopicManager; +extern const void * RTTI_BNETSystem__ModsChanged_ConfirmResetCallback; +extern const void * RTTI_DownloadAll__uiCallback; extern const void * RTTI_JobListManager__ServingThread; extern const void * RTTI_BGSSaveLoadManager; extern const void * RTTI_bgs__saveload__SaveOperationRequest; @@ -1046,13 +1048,7 @@ extern const void * RTTI_IExplosionFactory; extern const void * RTTI_ChainExplosion; extern const void * RTTI_EnhanceWeaponEffect; extern const void * RTTI_GarbageCollector; -extern const void * RTTI_Main; extern const void * RTTI_IMovementControllerNPCFunctor; -extern const void * RTTI_bhkTelekinesisListener; -extern const void * RTTI_MagicFavorites; -extern const void * RTTI_BSTreeManager__IQueryCullingCamera; -extern const void * RTTI_RegSettingCollection; -extern const void * RTTI_BGSImpactManager; extern const void * RTTI_MovementAvoidBoxEventAdapter; extern const void * RTTI_PathManagerPositionPlayerAdapter; extern const void * RTTI_CharacterCollisionMessagePlayerAdapter; @@ -1061,22 +1057,28 @@ extern const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToLoade extern const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToUnloadedSetControllerFunctor; extern const void * RTTI_DoorObstacleAdapter; extern const void * RTTI_SystemEventAdapter; +extern const void * RTTI_Main; +extern const void * RTTI_bhkTelekinesisListener; +extern const void * RTTI_MagicFavorites; +extern const void * RTTI_BSTreeManager__IQueryCullingCamera; +extern const void * RTTI_RegSettingCollection; +extern const void * RTTI_BGSImpactManager; extern const void * RTTI_InitTESThread; extern const void * RTTI_DetectSignOut; -extern const void * RTTI_IMemoryManagerFile; extern const void * RTTI_IMemoryManagerFileFactory; +extern const void * RTTI_IMemoryManagerFile; extern const void * RTTI_MemoryManagerFile; extern const void * RTTI_SceneGraph; extern const void * RTTI_SeenData; extern const void * RTTI_IntSeenData; extern const void * RTTI_SpawnHazardEffect; extern const void * RTTI_BSUIMessageData; +extern const void * RTTI_hkpWorldPostSimulationListener; extern const void * RTTI_IMovementState; extern const void * RTTI_IPostAnimationChannelUpdateFunctor; extern const void * RTTI_IAnimationSetCallbackFunctor; extern const void * RTTI_Actor; extern const void * RTTI_PackageList__IPackageVisitor; -extern const void * RTTI_hkpWorldPostSimulationListener; extern const void * RTTI_ProcessCallbackAdapter; extern const void * RTTI_SaveLoadMagicCasterVisitor; extern const void * RTTI_SaveGameMagicCasterVisitor; @@ -1117,8 +1119,8 @@ extern const void * RTTI_IMovementFormIDManager; extern const void * RTTI_ProcessListMovementInterface; extern const void * RTTI_RefrInteraction; extern const void * RTTI_SyncQueueObj; -extern const void * RTTI_ActorMover; extern const void * RTTI_MovementParametersFixed; +extern const void * RTTI_ActorMover; extern const void * RTTI_bhkCharacterCollisionHandler; extern const void * RTTI_CharacterCollisionHandler; extern const void * RTTI_IMovementAvoidanceManager; @@ -1301,12 +1303,12 @@ extern const void * RTTI_ProjectilePickCache; extern const void * RTTI_HealthDamageFunctor; extern const void * RTTI_VATS__ICommandListVisitor; extern const void * RTTI_CombatAimController; -extern const void * RTTI_CombatObject; -extern const void * RTTI_CombatAimControllerBase; extern const void * RTTI_CombatTrackTargetAimController; extern const void * RTTI_CombatMeleeAimController; extern const void * RTTI_CombatProjectileAimController; extern const void * RTTI_CombatDisableAimController; +extern const void * RTTI_CombatObject; +extern const void * RTTI_CombatAimControllerBase; extern const void * RTTI_CombatArea; extern const void * RTTI_CombatAreaRadius; extern const void * RTTI_CombatAreaReference; @@ -1327,13 +1329,10 @@ extern const void * RTTI_CombatInventoryItemShield; extern const void * RTTI_CombatInventoryItemOneHandedBlock; extern const void * RTTI_CombatInventoryItemTorch; extern const void * RTTI_CombatInventoryItemMagic; -extern const void * RTTI_CombatMagicCaster; extern const void * RTTI_CombatInventoryItemShout; extern const void * RTTI_CombatInventoryItemStaff; extern const void * RTTI_CombatInventoryItemPotion; extern const void * RTTI_CombatInventoryItemScroll; -extern const void * RTTI_CombatMagicItemData; -extern const void * RTTI_CombatMagicItemSkillChecker; extern const void * RTTI_CombatMagicCasterOffensive; extern const void * RTTI_CombatMagicCasterWard; extern const void * RTTI_CombatMagicCasterRestore; @@ -1346,9 +1345,12 @@ extern const void * RTTI_CombatMagicCasterInvisibility; extern const void * RTTI_CombatMagicCasterBoundItem; extern const void * RTTI_CombatMagicCasterArmor; extern const void * RTTI_CombatMagicCasterTargetEffect; -extern const void * RTTI_CombatMagicCasterReanimate; extern const void * RTTI_CombatMagicCasterParalyze; extern const void * RTTI_CombatMagicCasterScript; +extern const void * RTTI_CombatMagicCaster; +extern const void * RTTI_CombatMagicItemData; +extern const void * RTTI_CombatMagicItemSkillChecker; +extern const void * RTTI_CombatMagicCasterReanimate; extern const void * RTTI_CombatPathingRequest; extern const void * RTTI_CombatTargetLocationSearchResult; extern const void * RTTI_CombatTargetLocation; @@ -1366,14 +1368,14 @@ extern const void * RTTI_CombatBehaviorTree; extern const void * RTTI_CombatBehaviorTreeCombat; extern const void * RTTI_CombatBehaviorTreeNode; extern const void * RTTI_CombatBehaviorTreeAcquireWeapon; -extern const void * RTTI_CombatBehaviorTreeWrapperNode; extern const void * RTTI_CombatBehaviorTreeAction; extern const void * RTTI_CombatBehaviorTreeActionEquipmentSelector; +extern const void * RTTI_CombatBehaviorTreeWrapperNode; extern const void * RTTI_CombatBehaviorTreeDodgeThreat; extern const void * RTTI_CombatBehaviorTreeBlock; +extern const void * RTTI_CombatBehaviorTreeCloseMovement; extern const void * RTTI_CombatPathSpeedController; extern const void * RTTI_CombatApproachTargetSpeedController; -extern const void * RTTI_CombatBehaviorTreeCloseMovement; extern const void * RTTI_CombatBehaviorTreeFindAttackLocation; extern const void * RTTI_CombatBehaviorTreeFlankingMovement; extern const void * RTTI_CombatFlankingSearchData; @@ -1400,10 +1402,10 @@ extern const void * RTTI_CombatNavmeshSearch; extern const void * RTTI_CombatPathBuilder; extern const void * RTTI_CombatPathBuilderStandard; extern const void * RTTI_CombatPathBuilderOpen; -extern const void * RTTI_CombatPathingDebugData; extern const void * RTTI_CombatPathingRequestStandard; extern const void * RTTI_CombatPathingRequestAdapter; extern const void * RTTI_CombatPathingRequestMultiGoal; +extern const void * RTTI_CombatPathingDebugData; extern const void * RTTI_HorseCameraState; extern const void * RTTI_FirstPersonState; extern const void * RTTI_PlayerCamera; @@ -1471,6 +1473,9 @@ extern const void * RTTI_LockpickingMenu; extern const void * RTTI_MagicItemData; extern const void * RTTI_MagicMenu; extern const void * RTTI_MainMenu; +extern const void * RTTI_DLCPurchased__OpenVisitCreationClubCallback; +extern const void * RTTI_DLCPurchased__PurchasedDLCDialogCallback; +extern const void * RTTI_NeedToUpdateCreationClubCallback; extern const void * RTTI_MenuControls; extern const void * RTTI_ClickHandler; extern const void * RTTI_DirectionHandler; @@ -1981,11 +1986,11 @@ extern const void * RTTI_BShkbHkxDB__ProjectDBData; extern const void * RTTI_BShkbHkxDB__DBData; extern const void * RTTI_BShkbHkxDB__QueuedHandles; extern const void * RTTI_BShkbHkxDB__StreamAdaptor; +extern const void * RTTI_BSAnimationGraphLoadScrapper; +extern const void * RTTI_bhkIWorldStepListener; extern const void * RTTI_hkaSkeleton; extern const void * RTTI_BSIRagdollDriver; -extern const void * RTTI_BSAnimationGraphLoadScrapper; extern const void * RTTI_BShkbAnimationGraph; -extern const void * RTTI_bhkIWorldStepListener; extern const void * RTTI_BSISpeedSamplerDB; extern const void * RTTI_BSSpeedSamplerDBManager; extern const void * RTTI_BShkVisibilityController; @@ -2165,9 +2170,9 @@ extern const void * RTTI_BSXAudio2DataSrc; extern const void * RTTI_ScrapHeap; extern const void * RTTI_BSCoreMessage; extern const void * RTTI_BSThread; -extern const void * RTTI_CompactingStore__Store; extern const void * RTTI_CompactingStore__MoveCallback; extern const void * RTTI_CompactingStore__NoopMoveCallback; +extern const void * RTTI_CompactingStore__Store; extern const void * RTTI_MemoryHeap; extern const void * RTTI_UnitTestMemoryHeap; extern const void * RTTI_IMemoryHeap; @@ -2291,20 +2296,22 @@ extern const void * RTTI_NiVectorExtraData; extern const void * RTTI_BSLODTriShape; extern const void * RTTI_NiAdditionalGeometryData; extern const void * RTTI_BSSegmentedTriShape; -extern const void * RTTI_NiAccumulator; extern const void * RTTI_NiBackToFrontAccumulator; +extern const void * RTTI_NiAccumulator; extern const void * RTTI_NiTriBasedGeomData; extern const void * RTTI_NiTriBasedGeom; extern const void * RTTI_NiPick__Results; extern const void * RTTI_NiCollisionTraversals__IFindIntersections; extern const void * RTTI_NiCollisionData; +extern const void * RTTI_NiOBBRoot; extern const void * RTTI_NiBoundingVolume; extern const void * RTTI_NiBoxBV; extern const void * RTTI_NiCapsuleBV; extern const void * RTTI_NiHalfSpaceBV; extern const void * RTTI_NiSphereBV; extern const void * RTTI_NiUnionBV; -extern const void * RTTI_NiOBBRoot; +extern const void * RTTI_NiOBBNode; +extern const void * RTTI_NiOBBLeaf; extern const void * RTTI_NiIntersector; extern const void * RTTI_NiBoxSphereIntersector; extern const void * RTTI_NiBoxCapsuleIntersector; @@ -2312,8 +2319,6 @@ extern const void * RTTI_NiCapsuleCapsuleIntersector; extern const void * RTTI_NiCapsuleSphereIntersector; extern const void * RTTI_NiCapsuleTriIntersector; extern const void * RTTI_NiSphereTriIntersector; -extern const void * RTTI_NiOBBNode; -extern const void * RTTI_NiOBBLeaf; extern const void * RTTI_NiControllerManager; extern const void * RTTI_NiControllerSequence; extern const void * RTTI_NiTextKeyMatch; @@ -2517,13 +2522,13 @@ extern const void * RTTI_BSNonUniformScaleExtraData; extern const void * RTTI_BSNiNode; extern const void * RTTI_BSTableCurve; extern const void * RTTI_bhkWorldObject; +extern const void * RTTI_bhkTaskletManagerCallback; +extern const void * RTTI_bhkOnStartupCallback; +extern const void * RTTI_bhkOnExitCallback; extern const void * RTTI_ahkpWorld; extern const void * RTTI_bhkWorld__bhkConstraintProjector; extern const void * RTTI_bhkWorld; extern const void * RTTI_bhkWorldCinfo; -extern const void * RTTI_bhkTaskletManagerCallback; -extern const void * RTTI_bhkOnStartupCallback; -extern const void * RTTI_bhkOnExitCallback; extern const void * RTTI_hkGenericConstraintCinfo; extern const void * RTTI_hkStiffSpringConstraintCinfo; extern const void * RTTI_bhkStiffSpringConstraint; @@ -2730,12 +2735,6 @@ extern const void * RTTI_hkKdTreeBuildInput__Mediator; extern const void * RTTI_hkpCollidableMediator; extern const void * RTTI_hkKdTreeCpuBroadphaseBundleCastCollector; extern const void * RTTI_BSUIScaleformData; -extern const void * RTTI_GFile; -extern const void * RTTI_GMemoryFile; -extern const void * RTTI_GFxState; -extern const void * RTTI_GFxFileOpenerBase; -extern const void * RTTI_BSScaleformFileOpener; -extern const void * RTTI_ScaleformFile__MemoryFile; extern const void * RTTI_IMenu; extern const void * RTTI_GSysAllocBase; extern const void * RTTI_GSysAllocPaged; @@ -2743,10 +2742,16 @@ extern const void * RTTI_GSysMemoryMap; extern const void * RTTI_GFxLog; extern const void * RTTI_GFxTranslator; extern const void * RTTI_GFxZlibSupportBase; +extern const void * RTTI_GFxState; extern const void * RTTI_GFxZlibSupport; extern const void * RTTI_BSScaleformTranslator; extern const void * RTTI_BSStreamParserData; extern const void * RTTI_BSResourceStreamParser; +extern const void * RTTI_GFile; +extern const void * RTTI_GMemoryFile; +extern const void * RTTI_GFxFileOpenerBase; +extern const void * RTTI_BSScaleformFileOpener; +extern const void * RTTI_ScaleformFile__MemoryFile; extern const void * RTTI_IDebugText; extern const void * RTTI_DebugText; extern const void * RTTI_GFxExternalInterface; @@ -2899,6 +2904,7 @@ extern const void * RTTI_BSPlatform__BSAsyncRequestBase; extern const void * RTTI_bnet__EmptyTerminationCB; extern const void * RTTI_bnet__ExternalAuthInfo; extern const void * RTTI_bnet__SteamExternalAuthInfo; +extern const void * RTTI_bnet__CustomData__Value; extern const void * RTTI_BSPlatform__BSUploadRequest; extern const void * RTTI_BSPlatform__BSDownloadRequest; extern const void * RTTI_bnet___impl__RefCount; @@ -2913,9 +2919,6 @@ extern const void * RTTI_bnet__ConfigurationEntryLong; extern const void * RTTI_bnet__ConfigurationEntryString; extern const void * RTTI_bnet__IJobCollection; extern const void * RTTI_bnet___detail__Composite; -extern const void * RTTI_std__exception; -extern const void * RTTI_std__bad_weak_ptr; -extern const void * RTTI_std___Ref_count_base; extern const void * RTTI_bnet__IHeap; extern const void * RTTI_bnet__IHttpConnectionProvider; extern const void * RTTI_bnet__Network; @@ -2926,8 +2929,17 @@ extern const void * RTTI_bnet__JobProcessorCollection; extern const void * RTTI_bnet___impl__AsyncOperation; extern const void * RTTI_bnet__SuspendFlow; extern const void * RTTI_bnet__ResumeFlow; +extern const void * RTTI_bnet__CustomData__StringValue; +extern const void * RTTI_bnet__CustomData__BinaryValue; +extern const void * RTTI_bnet__CustomData__ObjectValue; extern const void * RTTI_bnet__BaseHttpRequest; extern const void * RTTI_bnet__LogoutFlow; +extern const void * RTTI_std__exception; +extern const void * RTTI_std__bad_weak_ptr; +extern const void * RTTI_bnet__Notification__UserData__ReconnectJob; +extern const void * RTTI_bnet__Notification__UserData__OnSystemIdFetchedRegister; +extern const void * RTTI_bnet__Notification__UserWebSocket__OnSystemIdFetchedSend; +extern const void * RTTI_bnet__Notification__UserWebSocket__OnConnected; extern const void * RTTI_bnet__IUgcUploader; extern const void * RTTI_bnet__ChunkedUploadFlow; extern const void * RTTI_bnet__IDownloader; @@ -2984,6 +2996,7 @@ extern const void * RTTI_bnet__UsernameValidationRequest; extern const void * RTTI_bnet__VerifyFingerprintRequest; extern const void * RTTI_bnet__VerifyLinkRequest; extern const void * RTTI_bnet__TwitchAccountInfoRequest; +extern const void * RTTI_bnet__CheckDisplayNameRequest; extern const void * RTTI_bnet__CheckEmailRequest; extern const void * RTTI_bnet__RecoverPasswordRequest; extern const void * RTTI_bnet__RecoverUsernameRequest; @@ -3002,19 +3015,46 @@ extern const void * RTTI_bnet__GameAccountExternalLinkFlow; extern const void * RTTI_bnet__GameAccountGameCodeAuthenticationFlow; extern const void * RTTI_bnet__SessionResumeFlow; extern const void * RTTI_bnet__NewGameSessionFlow; +extern const void * RTTI_bnet__Entitlements__CombinedEntitlementsListRequest; extern const void * RTTI_bnet__Entitlements__ListRequest; extern const void * RTTI_bnet__Entitlements__ConsumeRequest; extern const void * RTTI_bnet__Entitlements__SearchRequest; +extern const void * RTTI_bnet__VCCS__MTX__Generic__GetCatalogRequest; +extern const void * RTTI_bnet__VCCS__MTX__Generic__PurchaseRequest; +extern const void * RTTI_bnet__VCCS__MTX__Generic__GetStoreURLRequest; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentRequestBase; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentCreateRequest; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentDeleteRequest; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentGetRequest; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentListRequest; +extern const void * RTTI_bnet__Gsp__Profile__DataAttachmentUpdateRequest; +extern const void * RTTI_bnet__Gsp__Profile__ProfileGetRequest; +extern const void * RTTI_bnet__Gsp__Profile__ProfileUpdateRequest; extern const void * RTTI_bnet__EventLog__LogEventRequest; extern const void * RTTI_bnet__VCCS__Wallet__BalanceRequest; +extern const void * RTTI_bnet__VCCS__Wallet__BalanceListRequest; extern const void * RTTI_bnet__VCCS__Wallet__PurchaseRequest; +extern const void * RTTI_bnet__VCCS__Wallet__PurchasePreviewRequest; +extern const void * RTTI_bnet__VCCS__Wallet__ServerlessCreditRequest; +extern const void * RTTI_bnet__VCCS__Wallet__ServerlessDebitRequest; extern const void * RTTI_bnet__UgcMtxPurchaseFlow; extern const void * RTTI_bnet__VCCS__Fulfillment__UpdateFirstPartyEntitlementRequest; +extern const void * RTTI_bnet__VCCS__Catalog__GetContentsRequest; extern const void * RTTI_bnet__VCCS__Catalog__GetItemRequest; +extern const void * RTTI_bnet__VCCS__Catalog__ListCategoryPathRequest; +extern const void * RTTI_bnet__VCCS__Catalog__ListCategoryPathChildrenRequest; extern const void * RTTI_bnet__VCCS__Catalog__ListItemsRequest; +extern const void * RTTI_bnet__VCCS__Catalog__GetBundlePreviewRequest; +extern const void * RTTI_bnet__VCCS__Catalog__GetBundlePreviewListRequest; extern const void * RTTI_bnet__CMS__ListMessagesRequest; +extern const void * RTTI_bnet__CMS__GetMultiMessageRequest; extern const void * RTTI_bnet__Status__GetExtServerStatusRequest; +extern const void * RTTI_bnet__Status__GetStatusRequest; extern const void * RTTI_bnet__SessionLogoutRequest; +extern const void * RTTI_bnet__NotificationLogoutRequest; +extern const void * RTTI_bnet__Notification__Context__OnSystemFetched; +extern const void * RTTI_bnet__Notification__ReceiveJob; +extern const void * RTTI_bnet__Notification__FilterJob; extern const void * RTTI_bnet__UgcCancelUploadRequest; extern const void * RTTI_bnet__UgcChunkedUploadCompletionRequest; extern const void * RTTI_bnet__UgcChunkedUploadInitiationRequest; @@ -3047,10 +3087,37 @@ extern const void * RTTI_bnet__GameAccountAuthenticationRequest; extern const void * RTTI_bnet__GameAccountExternalAuthRequest; extern const void * RTTI_bnet__GameAccountExternalLinkRequest; extern const void * RTTI_bnet__Session__GameAccountGameCodeAuthRequest; +extern const void * RTTI_bnet__SharedSRWMutex; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob; +extern const void * RTTI_bnet__ISocket; +extern const void * RTTI_bnet__CSocket; +extern const void * RTTI_bnet__CSecureSocket; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__SocketInitJob; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__SendHandshakeJob; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__ReceiveHandshakeJob; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__IWriteJobSequence; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__WriteJobSequence; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__WriteJobSequence__WriteJob; +extern const void * RTTI_bnet__WebSocketUtils__WebSocketJob__ReadJob; +extern const void * RTTI_bnet__Notification__ListSystemRequest; +extern const void * RTTI_bnet__Notification__ChangeFilterRequest; +extern const void * RTTI_bnet__Presence__AppearDoNotDisturbRequest; +extern const void * RTTI_bnet__Presence__AppearOfflineRequest; +extern const void * RTTI_bnet__Presence__GetRequest; +extern const void * RTTI_bnet__Presence__UpdateRequest; extern const void * RTTI_bnet__SessionTokenRequest; +extern const void * RTTI_bnet__NotificationConnectRequest; +extern const void * RTTI_bnet__SessionAccessTokenRequest; extern const void * RTTI_bnet__CdpAuthenticationRequest; extern const void * RTTI_bnet__SessionResumeTokenRequest; extern const void * RTTI_bnet__BeamAuthenticationRequest; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__HandshakeJob; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__InitializeJob; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__WriteJob; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__ReceiveJob; +extern const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__ReceiveJob__DecodeJob; extern const void * RTTI_BSScript__IFindBoundObjectFunctor; extern const void * RTTI_BSScript__IVMObjectBindInterface; extern const void * RTTI_BSScript__IVMSaveLoadInterface; @@ -3275,8 +3342,8 @@ extern const void * RTTI_BSDiskConstructor; extern const void * RTTI_BSMultiIndexTriShape; extern const void * RTTI_BSShaderMaterial; extern const void * RTTI_BSLight; -extern const void * RTTI_NiBoneMatrixSetterI; extern const void * RTTI_BSShader; +extern const void * RTTI_NiBoneMatrixSetterI; extern const void * RTTI_BSReloadShaderI; extern const void * RTTI_BSParticleShader; extern const void * RTTI_BSLightingShaderPropertyFloatController; @@ -3288,8 +3355,8 @@ extern const void * RTTI_BSNiAlphaPropertyTestRefController; extern const void * RTTI_BSPSysSimpleColorModifier; extern const void * RTTI_BSPSysLODModifier; extern const void * RTTI_BSShadowDirectionalLight; -extern const void * RTTI_IRendererResourceManager; extern const void * RTTI_BSShaderResourceManager; +extern const void * RTTI_IRendererResourceManager; extern const void * RTTI_ImageSpaceEffectGetHit; extern const void * RTTI_ImageSpaceEffectBlur; extern const void * RTTI_ImageSpaceEffectFullScreenBlur; @@ -3316,9 +3383,10 @@ extern const void * RTTI_CCallbackBase; extern const void * RTTI_BSWin32SystemUtility; extern const void * RTTI_BSCacheDriveSystemUtility; extern const void * RTTI_BSSysInfoSystemUtility; -extern const void * RTTI_BSMsgDialogSystemUtility; +extern const void * RTTI_BSWin32GameDataSystemUtility; extern const void * RTTI_BSAwardsSystemUtility; extern const void * RTTI_BSWin32AwardsSystemUtility; +extern const void * RTTI_BSMsgDialogSystemUtility; extern const void * RTTI_BSDiscBootSystemUtility; extern const void * RTTI_type_info; extern const void * RTTI_BSSocket; diff --git a/source/fs.dll/skse64/skse64/GameRTTI.inl b/source/fs.dll/skse64/skse64/GameRTTI.inl index 960ddb0d..5a0886ee 100644 --- a/source/fs.dll/skse64/skse64/GameRTTI.inl +++ b/source/fs.dll/skse64/skse64/GameRTTI.inl @@ -1,3319 +1,3387 @@ -const void * RTTI_BaseFormComponent = (void *)0x01E10DE0; -const void * RTTI_IFormFactory = (void *)0x01E10E08; -const void * RTTI_AlchemyItem = (void *)0x01E10E70; -const void * RTTI_BGSDualCastData = (void *)0x01E11218; -const void * RTTI_Setting = (void *)0x01E112E8; -const void * RTTI_GameSettingCollection = (void *)0x01E11488; -const void * RTTI_BSTArrayBase__IAllocatorFunctor = (void *)0x01E11590; -const void * RTTI_TESFullName = (void *)0x01E10F00; -const void * RTTI_EffectSetting = (void *)0x01E11528; -const void * RTTI_EnchantmentItem = (void *)0x01E117F0; -const void * RTTI_IngredientItem = (void *)0x01E118C8; -const void * RTTI_BSModelDB__QueuedHandles = (void *)0x01E11A20; -const void * RTTI_TESModelDB__TESQueuedHandles = (void *)0x01E11B30; -const void * RTTI_MagicItem = (void *)0x01E10E98; -const void * RTTI_MagicItem__PreloadableVisitor = (void *)0x01E11B68; -const void * RTTI_MagicItemTraversalFunctor = (void *)0x01E11BA0; -const void * RTTI_MagicItemFindFunctor = (void *)0x01E11BD0; -const void * RTTI_MagicItemFindKeywordFunctor = (void *)0x01E11C00; -const void * RTTI_AnimationSystemUtils__TESModelAndAnimationHandles = (void *)0x01E11C40; -const void * RTTI_FindNonExcludedDeliveryFunctor = (void *)0x01E11D38; -const void * RTTI_FindEqualsFunctor = (void *)0x01E11DE0; -const void * RTTI_GetCostliestEffectFunctor = (void *)0x01E11E08; -const void * RTTI_LongestDurationFunctor = (void *)0x01E11E38; -const void * RTTI_LargestAreaFunctor = (void *)0x01E11E68; -const void * RTTI_GetMagicItemDescriptionFunctor = (void *)0x01E11E98; -const void * RTTI_ScrollItem = (void *)0x01E11ED0; -const void * RTTI_SpellItem = (void *)0x01E10E50; -const void * RTTI_ExtraSeenData = (void *)0x01E12088; -const void * RTTI_BSExtraData = (void *)0x01E12060; -const void * RTTI_ExtraHavok = (void *)0x01E120B0; -const void * RTTI_ExtraEditorID = (void *)0x01E120D8; -const void * RTTI_MagicTarget = (void *)0x01E12100; -const void * RTTI_ExtraTimeLeft = (void *)0x01E12128; -const void * RTTI_ExtraLock = (void *)0x01E12150; -const void * RTTI_ExtraTeleport = (void *)0x01E12170; -const void * RTTI_ExtraStartingPosition = (void *)0x01E12198; -const void * RTTI_ExtraOwnership = (void *)0x01E121C8; -const void * RTTI_ExtraGlobal = (void *)0x01E121F0; -const void * RTTI_ExtraRank = (void *)0x01E12218; -const void * RTTI_ExtraCount = (void *)0x01E12238; -const void * RTTI_ExtraWorn = (void *)0x01E12260; -const void * RTTI_ExtraWornLeft = (void *)0x01E12280; -const void * RTTI_ExtraLeveledItem = (void *)0x01E122A8; -const void * RTTI_ExtraOutfitItem = (void *)0x01E122D0; -const void * RTTI_ExtraHealth = (void *)0x01E122F8; -const void * RTTI_ExtraHealthPerc = (void *)0x01E12320; -const void * RTTI_ExtraCharge = (void *)0x01E12348; -const void * RTTI_ExtraScale = (void *)0x01E12370; -const void * RTTI_ExtraReferenceHandle = (void *)0x01E12398; -const void * RTTI_ExtraFollower = (void *)0x01E123C8; -const void * RTTI_ExtraOriginalReference = (void *)0x01E123F0; -const void * RTTI_ExtraEnableStateParent = (void *)0x01E12420; -const void * RTTI_ExtraEnableStateChildren = (void *)0x01E12450; -const void * RTTI_ExtraLinkedRef = (void *)0x01E12480; -const void * RTTI_ExtraLinkedRefChildren = (void *)0x01E124A8; -const void * RTTI_ExtraActivateRef = (void *)0x01E124D8; -const void * RTTI_ExtraActivateRefChildren = (void *)0x01E12500; -const void * RTTI_ExtraRandomTeleportMarker = (void *)0x01E12530; -const void * RTTI_ExtraCannotWear = (void *)0x01E12560; -const void * RTTI_ExtraPoison = (void *)0x01E12588; -const void * RTTI_ExtraLastFinishedSequence = (void *)0x01E125B0; -const void * RTTI_ExtraItemDropper = (void *)0x01E125E0; -const void * RTTI_ExtraDroppedItemList = (void *)0x01E12608; -const void * RTTI_ExtraSavedAnimation = (void *)0x01E12638; -const void * RTTI_ExtraSavedHavokData = (void *)0x01E12668; -const void * RTTI_ExtraHeadingTarget = (void *)0x01E12698; -const void * RTTI_ExtraRefractionProperty = (void *)0x01E126C8; -const void * RTTI_ExtraSound = (void *)0x01E126F8; -const void * RTTI_ExtraCreatureAwakeSound = (void *)0x01E12720; -const void * RTTI_ExtraCreatureMovementSound = (void *)0x01E12750; -const void * RTTI_ExtraWeaponIdleSound = (void *)0x01E12788; -const void * RTTI_ExtraWeaponAttackSound = (void *)0x01E127B8; -const void * RTTI_ExtraActivateLoopSound = (void *)0x01E127E8; -const void * RTTI_ExtraObjectHealth = (void *)0x01E12818; -const void * RTTI_ExtraFactionChanges = (void *)0x01E12840; -const void * RTTI_ExtraActorCause = (void *)0x01E12870; -const void * RTTI_ExtraPatrolRefData = (void *)0x01E12898; -const void * RTTI_ExtraEncounterZone = (void *)0x01E128C8; -const void * RTTI_ExtraNavMeshPortal = (void *)0x01E128F8; -const void * RTTI_ExtraOcclusionPlaneRefData = (void *)0x01E12928; -const void * RTTI_ExtraPortalRefData = (void *)0x01E12960; -const void * RTTI_ExtraRoomRefData = (void *)0x01E12990; -const void * RTTI_ExtraAliasInstanceArray = (void *)0x01E129B8; -const void * RTTI_ExtraSceneData = (void *)0x01E129E8; -const void * RTTI_ExtraBadPosition = (void *)0x01E12A10; -const void * RTTI_ExtraHeadTrackingWeight = (void *)0x01E12A38; -const void * RTTI_ExtraFavorCost = (void *)0x01E12A68; -const void * RTTI_ExtraTextDisplayData = (void *)0x01E12A90; -const void * RTTI_ExtraHorse = (void *)0x01E12AC0; -const void * RTTI_ExtraEnchantment = (void *)0x01E12AE8; -const void * RTTI_ExtraForcedTarget = (void *)0x01E12B10; -const void * RTTI_ExtraUniqueID = (void *)0x01E12B38; -const void * RTTI_ExtraFlags = (void *)0x01E12B60; -const void * RTTI_ExtraDecalGroup = (void *)0x01E12B88; -const void * RTTI_ExtraWaterCurrentZoneData = (void *)0x01E12BB0; -const void * RTTI_ExtraMissingRefIDs = (void *)0x01E12BE0; -const void * RTTI_ExtraCell3D = (void *)0x01E12C10; -const void * RTTI_ExtraRegionList = (void *)0x01E12C38; -const void * RTTI_ExtraCellSkyRegion = (void *)0x01E12C60; -const void * RTTI_ExtraCellImageSpace = (void *)0x01E12C90; -const void * RTTI_ExtraNorthRotation = (void *)0x01E12CC0; -const void * RTTI_ExtraDetachTime = (void *)0x01E12CF0; -const void * RTTI_ExtraCanTalkToPlayer = (void *)0x01E12D18; -const void * RTTI_ExtraPrimitive = (void *)0x01E12D48; -const void * RTTI_ExtraAmmo = (void *)0x01E12D70; -const void * RTTI_ExtraMagicLight = (void *)0x01E12D90; -const void * RTTI_ExtraFromAlias = (void *)0x01E12DE0; -const void * RTTI_ExtraOpenCloseActivateRef = (void *)0x01E12E08; -const void * RTTI_ExtraTeleportName = (void *)0x01E12E38; -const void * RTTI_ExtraCachedScale = (void *)0x01E12E60; -const void * RTTI_ExtraHotkey = (void *)0x01E12E88; -const void * RTTI_ExtraPackageStartLocation = (void *)0x01E12EB0; -const void * RTTI_ExtraLocation = (void *)0x01E12EE0; -const void * RTTI_ExtraTresPassPackage = (void *)0x01E12F08; -const void * RTTI_ExtraRagDollData = (void *)0x01E12F38; -const void * RTTI_ExtraAttachRef = (void *)0x01E12F60; -const void * RTTI_ExtraAttachRefChildren = (void *)0x01E12F88; -const void * RTTI_ExtraAshPileRef = (void *)0x01E12FB8; -const void * RTTI_ExtraLocationRefType = (void *)0x01E12FE0; -const void * RTTI_ExtraLeveledItemBase = (void *)0x01E13010; -const void * RTTI_ExtraReflectedRefs = (void *)0x01E13040; -const void * RTTI_ExtraReflectorRefs = (void *)0x01E13070; -const void * RTTI_ExtraWaterLightRefs = (void *)0x01E130A0; -const void * RTTI_ExtraLitWaterRefs = (void *)0x01E130D0; -const void * RTTI_ExtraLevCreaModifier = (void *)0x01E130F8; -const void * RTTI_ExtraSpawnContainer = (void *)0x01E13128; -const void * RTTI_ExtraEmittanceSource = (void *)0x01E13158; -const void * RTTI_ExtraMultiBoundRef = (void *)0x01E13188; -const void * RTTI_ExtraMultiBound = (void *)0x01E131B8; -const void * RTTI_ExtraRoom = (void *)0x01E131E0; -const void * RTTI_ExtraFriendHits = (void *)0x01E13200; -const void * RTTI_ExtraStartingWorldOrCell = (void *)0x01E13228; -const void * RTTI_ExtraHasNoRumors = (void *)0x01E13258; -const void * RTTI_ExtraTerminalState = (void *)0x01E13280; -const void * RTTI_ExtraModelSwap = (void *)0x01E132B0; -const void * RTTI_ExtraRadius = (void *)0x01E132D8; -const void * RTTI_ExtraCombatStyle = (void *)0x01E13300; -const void * RTTI_ExtraPackageData = (void *)0x01E13328; -const void * RTTI_ExtraCollisionData = (void *)0x01E13350; -const void * RTTI_ExtraGuardedRefData = (void *)0x01E13380; -const void * RTTI_ExtraIgnoredBySandbox = (void *)0x01E133B0; -const void * RTTI_ExtraPromotedRef = (void *)0x01E133E0; -const void * RTTI_ExtraLargeRefOwnerCells = (void *)0x01E13408; -const void * RTTI_ExtraLightData = (void *)0x01E13438; -const void * RTTI_ExtraAttachedArrows3D = (void *)0x01E13460; -const void * RTTI_ExtraAlphaCutoff = (void *)0x01E13490; -const void * RTTI_ExtraForcedLandingMarker = (void *)0x01E134B8; -const void * RTTI_ExtraRefrPath = (void *)0x01E134E8; -const void * RTTI_ExtraCellWaterEnvMap = (void *)0x01E13510; -const void * RTTI_ExtraWaterData = (void *)0x01E13540; -const void * RTTI_ExtraScriptedAnimDependence = (void *)0x01E13568; -const void * RTTI_ExtraCellMusicType = (void *)0x01E135A0; -const void * RTTI_ExtraCellAcousticSpace = (void *)0x01E135D0; -const void * RTTI_ExtraCellWaterType = (void *)0x01E13600; -const void * RTTI_ExtraGIDBuffer = (void *)0x01E13630; -const void * RTTI_ExtraMissingLinkedRefIDs = (void *)0x01E13A08; -const void * RTTI_NonActorMagicTarget = (void *)0x01E13A38; -const void * RTTI_ExtraMapMarker = (void *)0x01E13A68; -const void * RTTI_ExtraDistantData = (void *)0x01E13A90; -const void * RTTI_ExtraAnimNoteReceiver = (void *)0x01E13AB8; -const void * RTTI_ExtraLockList = (void *)0x01E13AE8; -const void * RTTI_ExtraPersistentCell = (void *)0x01E13B10; -const void * RTTI_ExtraRaceData = (void *)0x01E13B40; -const void * RTTI_ExtraAnimGraphManager = (void *)0x01E13B68; -const void * RTTI_ExtraDismemberedLimbs = (void *)0x01E13B98; -const void * RTTI_ExtraBiped = (void *)0x01E13BC8; -const void * RTTI_ExtraLight = (void *)0x01E12DB8; -const void * RTTI_ExtraLeveledCreature = (void *)0x01E13BF0; -const void * RTTI_ExtraAction = (void *)0x01E13C20; -const void * RTTI_ExtraShouldWear = (void *)0x01E13C48; -const void * RTTI_ExtraContainerChanges = (void *)0x01E13C70; -const void * RTTI_ExtraPackage = (void *)0x01E13CA0; -const void * RTTI_ExtraPlayerCrimeList = (void *)0x01E13CC8; -const void * RTTI_ExtraRunOncePacks = (void *)0x01E13CF8; -const void * RTTI_ExtraGhost = (void *)0x01E13D20; -const void * RTTI_ExtraSayTopicInfoOnceADay = (void *)0x01E13D48; -const void * RTTI_ExtraPatrolRefInUseData = (void *)0x01E13D78; -const void * RTTI_ExtraFollowerSwimBreadcrumbs = (void *)0x01E13DA8; -const void * RTTI_ExtraInfoGeneralTopic = (void *)0x01E13DE0; -const void * RTTI_ExtraSayToTopicInfo = (void *)0x01E13E10; -const void * RTTI_ExtraSoul = (void *)0x01E13E40; -const void * RTTI_ExtraResourcesPreload = (void *)0x01E13E60; -const void * RTTI_ExtraPortal = (void *)0x01E13E90; -const void * RTTI_ExtraOcclusionShape = (void *)0x01E13EB8; -const void * RTTI_ExtraEditorRef3DData = (void *)0x01E13EE8; -const void * RTTI_ExtraEditorRefMoveData = (void *)0x01E13F18; -const void * RTTI_ExtraAnimationSequencer = (void *)0x01E13F48; -const void * RTTI_ExtraCellGrassData = (void *)0x01E13F78; -const void * RTTI_ExtraInteraction = (void *)0x01E13FA8; -const void * RTTI_ExtraGroupConstraint = (void *)0x01E13FD0; -const void * RTTI_MultiBoundMarkerData = (void *)0x01E14000; -const void * RTTI_BSStream = (void *)0x01E14030; -const void * RTTI_INISettingCollection = (void *)0x01E140B0; -const void * RTTI_InterfacedClass = (void *)0x01E14120; -const void * RTTI_BSTask = (void *)0x01E119B8; -const void * RTTI_IOTask = (void *)0x01E119D8; -const void * RTTI_QueuedActor = (void *)0x01E142D8; -const void * RTTI_QueuedCharacter = (void *)0x01E14350; -const void * RTTI_QueuedHead = (void *)0x01E14378; -const void * RTTI_QueuedHelmet = (void *)0x01E143A0; -const void * RTTI_AttachDistant3DTask = (void *)0x01E14498; -const void * RTTI_QueuedModel = (void *)0x01E14328; -const void * RTTI_QueuedReference = (void *)0x01E14300; -const void * RTTI_QueuedAnimationObject = (void *)0x01E144C8; -const void * RTTI_QueuedTempEffect = (void *)0x01E144F8; -const void * RTTI_BackgroundProcessThread = (void *)0x01E14520; -const void * RTTI_QueuedTree = (void *)0x01E145D0; -const void * RTTI_QueuedPlayer = (void *)0x01E145F8; -const void * RTTI_INIPrefSettingCollection = (void *)0x01E146B8; -const void * RTTI_AddCellGrassTask = (void *)0x01E14788; -const void * RTTI_ICellAttachDetachEventSource = (void *)0x01E147B0; -const void * RTTI_TES = (void *)0x01E148B8; -const void * RTTI_TES__SystemEventAdapter = (void *)0x01E14970; -const void * RTTI_BSTempNodeManager = (void *)0x01E149A0; -const void * RTTI_BGSLoadFormBuffer = (void *)0x01E14CD0; -const void * RTTI_BGSStoryManagerBranchNode = (void *)0x01E14D48; -const void * RTTI_BGSStoryManagerTreeForm = (void *)0x01E14DA8; -const void * RTTI_BGSStoryManagerNodeBase = (void *)0x01E14D78; -const void * RTTI_Projectile__LaunchData = (void *)0x01E14E58; -const void * RTTI_BSModelDB__BSModelProcessor = (void *)0x01E14FA0; -const void * RTTI_BGSAttackDataForm = (void *)0x01E15070; -const void * RTTI_BGSBipedModelList = (void *)0x01E15098; -const void * RTTI_BGSBipedObjectForm = (void *)0x01E150C0; -const void * RTTI_BGSBlockBashData = (void *)0x01E150F0; -const void * RTTI_BGSDestructibleObjectForm = (void *)0x01E11060; -const void * RTTI_BGSEquipType = (void *)0x01E11038; -const void * RTTI_BGSIdleCollection = (void *)0x01E15288; -const void * RTTI_BGSKeywordForm = (void *)0x01E10F28; -const void * RTTI_BGSMenuDisplayObject = (void *)0x01E116C8; -const void * RTTI_BGSMessageIcon = (void *)0x01E10FE8; -const void * RTTI_BGSOverridePackCollection = (void *)0x01E152D8; -const void * RTTI_PerkRankVisitor = (void *)0x01E15308; -const void * RTTI_BGSPerkRankArray = (void *)0x01E15330; -const void * RTTI_BGSPickupPutdownSounds = (void *)0x01E11090; -const void * RTTI_BGSSkinForm = (void *)0x01E15398; -const void * RTTI_TESActorBaseData = (void *)0x01E15430; -const void * RTTI_TESAIForm = (void *)0x01E15410; -const void * RTTI_TESAttackDamageForm = (void *)0x01E15458; -const void * RTTI_TESModelRDT = (void *)0x01E15780; -const void * RTTI_TESBipedModelForm = (void *)0x01E14208; -const void * RTTI_TESContainer = (void *)0x01E15488; -const void * RTTI_TESDescription = (void *)0x01E11EF8; -const void * RTTI_TESEnchantableForm = (void *)0x01E11798; -const void * RTTI_IFormFactory__IFactoryVisitor = (void *)0x01E157A8; -const void * RTTI_TESForm = (void *)0x01E10E30; -const void * RTTI_BSStorage = (void *)0x01E15810; -const void * RTTI_BSMemStorage = (void *)0x01E15830; -const void * RTTI_BSScript__IHandleReaderWriter = (void *)0x01E15858; -const void * RTTI_SkyrimScript__BaseHandleReaderWriter = (void *)0x01E15890; -const void * RTTI_SkyrimScript__DataFileHandleReaderWriter = (void *)0x01E158D0; -const void * RTTI_BSVMLoadTask = (void *)0x01E15980; -const void * RTTI_TESHealthForm = (void *)0x01E154B0; -const void * RTTI_TESIcon = (void *)0x01E10FA0; -const void * RTTI_TESImageSpaceModifiableForm = (void *)0x01E155C8; -const void * RTTI_TESLeveledList = (void *)0x01E154D8; -const void * RTTI_TESModel = (void *)0x01E10F80; -const void * RTTI_TESModelLODList = (void *)0x01E15640; -const void * RTTI_TESModelTextureSwap = (void *)0x01E10F50; -const void * RTTI_TESProduceForm = (void *)0x01E15500; -const void * RTTI_TESQualityForm = (void *)0x01E15528; -const void * RTTI_TESRaceForm = (void *)0x01E15550; -const void * RTTI_TESReactionForm = (void *)0x01E155A0; -const void * RTTI_TESSpellList = (void *)0x01E15578; -const void * RTTI_TESTexture = (void *)0x01E10FC0; -const void * RTTI_TESValueForm = (void *)0x01E118F0; -const void * RTTI_TESWeightForm = (void *)0x01E11010; -const void * RTTI_ActionInput = (void *)0x01E15B08; -const void * RTTI_BGSAnimSoundStateManager = (void *)0x01E15B30; -const void * RTTI_BSAttachTechniques__BSAttachTechnique = (void *)0x01E15D88; -const void * RTTI_BGSAttachTechniquesUtil__ProcessTechniquesFunctor = (void *)0x01E15DD0; -const void * RTTI_BGSAttachTechniquesUtil__AttachTechniquesFunctor = (void *)0x01E15E20; -const void * RTTI_BGSAttachTechniquesUtil__DetachTechniquesFunctor = (void *)0x01E15E70; -const void * RTTI_BGSParticleArrayAttach = (void *)0x01E15EB8; -const void * RTTI_BGSParticleArrayAttach__EmitterPolicy = (void *)0x01E15EE8; -const void * RTTI_BGSParticleArrayAttach__CollectEmitterPolicy = (void *)0x01E15F30; -const void * RTTI_BGSParticleArrayAttach__ClearEmitterPolicy = (void *)0x01E15F80; -const void * RTTI_BGSHavokGeometryAttach = (void *)0x01E15FC0; -const void * RTTI_BGSHavokGeometryAttach__ActionPolicy = (void *)0x01E15FF0; -const void * RTTI_BGSHavokGeometryAttach__AttachPolicy = (void *)0x01E16030; -const void * RTTI_BGSHavokGeometryAttach__DetachPolicy = (void *)0x01E16070; -const void * RTTI_BGSNamedNodeAttach = (void *)0x01E160B0; -const void * RTTI_BGSNamedNodeAttach__ActionPolicy = (void *)0x01E160E0; -const void * RTTI_BGSNamedNodeAttach__AttachPolicy = (void *)0x01E16118; -const void * RTTI_BGSNamedNodeAttach__DetachPolicy = (void *)0x01E16150; -const void * RTTI_BGSMultiTechniqueAttach = (void *)0x01E16188; -const void * RTTI_BGSMultiTechniqueAttach__ActionPolicy = (void *)0x01E161B8; -const void * RTTI_BGSMultiTechniqueAttach__AttachPolicy = (void *)0x01E161F8; -const void * RTTI_BGSMultiTechniqueAttach__DetachPolicy = (void *)0x01E16238; -const void * RTTI_hkpRayHitCollector = (void *)0x01E16278; -const void * RTTI_hkpAllRayHitTempCollector = (void *)0x01E162A8; -const void * RTTI_BGSDecalNode = (void *)0x01E162D8; -const void * RTTI_QueuedPromoteReferencesTask = (void *)0x01E16300; -const void * RTTI_NiProperty = (void *)0x01E16338; -const void * RTTI_NiAlphaProperty = (void *)0x01E16360; -const void * RTTI_BSResource__Location = (void *)0x01E16388; -const void * RTTI_BSResource__LooseFileLocation = (void *)0x01E16418; -const void * RTTI_BGSQueuedGrassModelHandles = (void *)0x01E16450; -const void * RTTI_NiRefObject = (void *)0x01E14620; -const void * RTTI_BGSPrimitive = (void *)0x01E16488; -const void * RTTI_BSPortal = (void *)0x01E164D8; -const void * RTTI_BGSPrimitiveLine = (void *)0x01E16520; -const void * RTTI_BGSPrimitivePlane = (void *)0x01E16570; -const void * RTTI_BGSPrimitiveBox = (void *)0x01E16548; -const void * RTTI_BGSPrimitiveSphere = (void *)0x01E16598; -const void * RTTI_BSMultiBoundAABB = (void *)0x01E165C8; -const void * RTTI_BSMultiBoundOBB = (void *)0x01E16618; -const void * RTTI_BSMultiBoundSphere = (void *)0x01E16640; -const void * RTTI_BSShaderProperty__ForEachVisitor = (void *)0x01E16670; -const void * RTTI_BGSSceneInfo = (void *)0x01E16748; -const void * RTTI_BGSSceneInfo__TextureUse = (void *)0x01E16770; -const void * RTTI_BGSTextureUseMap__TextureUse = (void *)0x01E16878; -const void * RTTI_BSAnimationGraphChannel = (void *)0x01E168B0; -const void * RTTI_BSAnimGroupSequence = (void *)0x01E16980; -const void * RTTI_BSAnimNoteReceiver = (void *)0x01E169E0; -const void * RTTI_IBSAnimNoteReceiver = (void *)0x01E16A10; -const void * RTTI_GridArray = (void *)0x01E16AD8; -const void * RTTI_GridCellArray = (void *)0x01E16AF8; -const void * RTTI_TESActionData = (void *)0x01E16B20; -const void * RTTI_InventoryUtils__ItemFilter = (void *)0x01E16B98; -const void * RTTI_InventoryChanges__IItemChangeVisitor = (void *)0x01E16BC8; -const void * RTTI_BGSActionData = (void *)0x01E16B48; -const void * RTTI_Inventory__StatInventoryVisitor = (void *)0x01E16C08; -const void * RTTI_FindByEffectSettingFunctor = (void *)0x01E16D00; -const void * RTTI_BSExternalAudioIO__ExternalIOInterface = (void *)0x01E16ED8; -const void * RTTI_LipSynchAnimDB__LipAudioInterface = (void *)0x01E17420; -const void * RTTI_TESCameraState = (void *)0x01E17458; -const void * RTTI_LocalMapCamera = (void *)0x01E17480; -const void * RTTI_LocalMapCamera__DefaultState = (void *)0x01E174C8; -const void * RTTI_BSSplatterExtraData = (void *)0x01E17528; -const void * RTTI_TESRegion = (void *)0x01E175B0; -const void * RTTI_TESRegionData = (void *)0x01E17558; -const void * RTTI_TESRegionDataGrass = (void *)0x01E17610; -const void * RTTI_TESRegionDataLandscape = (void *)0x01E17640; -const void * RTTI_TESRegionDataManager = (void *)0x01E17670; -const void * RTTI_TESRegionDataMap = (void *)0x01E176A0; -const void * RTTI_TESRegionDataObjects = (void *)0x01E176C8; -const void * RTTI_TESRegionDataSound = (void *)0x01E176F8; -const void * RTTI_TESRegionDataWeather = (void *)0x01E17580; -const void * RTTI_TESRegionObjectBase = (void *)0x01E17728; -const void * RTTI_TESRegionGrassObject = (void *)0x01E17758; -const void * RTTI_TESRegionGrassObjectList = (void *)0x01E17788; -const void * RTTI_TESRegionList = (void *)0x01E17800; -const void * RTTI_TESRegionNoiseFunction = (void *)0x01E17860; -const void * RTTI_TESRegionObject = (void *)0x01E17890; -const void * RTTI_TESRegionObjectList = (void *)0x01E178E0; -const void * RTTI_BGSAddonNode = (void *)0x01E14AB0; -const void * RTTI_BGSAddonNodeSoundHandleExtra = (void *)0x01E17950; -const void * RTTI_BGSApparatus = (void *)0x01E17A28; -const void * RTTI_BGSArtObject = (void *)0x01E11178; -const void * RTTI_BGSArtObjectCloneTask = (void *)0x01E17AE8; -const void * RTTI_BGSConstructibleObject = (void *)0x01E17C28; -const void * RTTI_InventoryUtils__QuestItemFilter = (void *)0x01E17C58; -const void * RTTI_BGSDebris = (void *)0x01E15118; -const void * RTTI_BGSPreloadable = (void *)0x01E17DE8; -const void * RTTI_BGSExplosion = (void *)0x01E111C8; -const void * RTTI_BGSHazard = (void *)0x01E17F38; -const void * RTTI_BGSLensFlare = (void *)0x01E17FF0; -const void * RTTI_BSLensFlareSpriteRenderData = (void *)0x01E180E8; -const void * RTTI_BGSLensFlareSprite = (void *)0x01E18120; -const void * RTTI_BGSVolumetricLighting = (void *)0x01E18150; -const void * RTTI_BGSMovableStatic = (void *)0x01E18270; -const void * RTTI_BGSOutfit = (void *)0x01E18348; -const void * RTTI_BGSProjectile = (void *)0x01E111F0; -const void * RTTI_BGSStaticCollection = (void *)0x01E184C8; -const void * RTTI_BGSTalkingActivator = (void *)0x01E185D8; -const void * RTTI_TESAmmo = (void *)0x01E137E8; -const void * RTTI_TESCombatStyle = (void *)0x01E138C8; -const void * RTTI_TESEffectShader = (void *)0x01E111A0; -const void * RTTI_BSParticleShaderGeometry = (void *)0x01E18898; -const void * RTTI_TESFlora = (void *)0x01E18998; -const void * RTTI_TESFurniture = (void *)0x01E18A50; -const void * RTTI_TESGrass = (void *)0x01E18B18; -const void * RTTI_TESKey = (void *)0x01E136A8; -const void * RTTI_TESLevCharacter = (void *)0x01E18C60; -const void * RTTI_TESLevItem = (void *)0x01E15668; -const void * RTTI_TESLevSpell = (void *)0x01E15AC0; -const void * RTTI_TESObjectLIGH = (void *)0x01E116A0; -const void * RTTI_TESBoundObject = (void *)0x01E10EB8; -const void * RTTI_TESObject = (void *)0x01E10EE0; -const void * RTTI_TESBoundAnimObject = (void *)0x01E18608; -const void * RTTI_TESObjectACTI = (void *)0x01E14B40; -const void * RTTI_BGSOpenCloseForm = (void *)0x01E18638; -const void * RTTI_TESObjectANIO = (void *)0x01E18F98; -const void * RTTI_TESObjectARMA = (void *)0x01E19058; -const void * RTTI_TESObjectARMO = (void *)0x01E153C0; -const void * RTTI_TESObjectBOOK = (void *)0x01E191B8; -const void * RTTI_TESObjectCONT = (void *)0x01E192A8; -const void * RTTI_TESObjectDOOR = (void *)0x01E14BE0; -const void * RTTI_IFadeDoneCallback = (void *)0x01E19368; -const void * RTTI_TESObjectMISC = (void *)0x01E14BB8; -const void * RTTI_TESObjectSTAT = (void *)0x01E14B90; -const void * RTTI_TESObjectTREE = (void *)0x01E195D8; -const void * RTTI_TESObjectWEAP = (void *)0x01E14AF8; -const void * RTTI_TESSoulGem = (void *)0x01E19738; -const void * RTTI_BGSEncounterZone = (void *)0x01E137C0; -const void * RTTI_QueuedPromoteLargeReferencesTask = (void *)0x01E198C8; -const void * RTTI_BGSLightingTemplate = (void *)0x01E19900; -const void * RTTI_BGSLocation = (void *)0x01E197F0; -const void * RTTI_QueuedPromoteLocationReferencesTask = (void *)0x01E199D8; -const void * RTTI_BGSLocationRefType = (void *)0x01E13740; -const void * RTTI_BGSReferenceEffect = (void *)0x01E11670; -const void * RTTI_BGSShaderParticleGeometryData = (void *)0x01E19C08; -const void * RTTI_BSParticleShaderEmitter = (void *)0x01E19C40; -const void * RTTI_BSParticleShaderCubeEmitter = (void *)0x01E19C70; -const void * RTTI_BSParticleShaderSnowEmitter = (void *)0x01E19CA8; -const void * RTTI_BSParticleShaderRainEmitter = (void *)0x01E19CE0; -const void * RTTI_CellLoaderTask = (void *)0x01E19DD8; -const void * RTTI_ImageSpaceModifierInstanceForm = (void *)0x01E19E00; -const void * RTTI_ImageSpaceModifierInstance = (void *)0x01E19E38; -const void * RTTI_ImageSpaceModifierInstanceTemp = (void *)0x01E19E70; -const void * RTTI_ImageSpaceModifierInstanceDOF = (void *)0x01E19EA8; -const void * RTTI_ImageSpaceModifierInstanceRB = (void *)0x01E19EE0; -const void * RTTI_TESClimate = (void *)0x01E19F40; -const void * RTTI_TESImageSpace = (void *)0x01E136C8; -const void * RTTI_NiFloatData = (void *)0x01E1A098; -const void * RTTI_TESImageSpaceModifier = (void *)0x01E11620; -const void * RTTI_NiColorData = (void *)0x01E1A0C0; -const void * RTTI_hkBaseObject = (void *)0x01E1A1D0; -const void * RTTI_hkReferencedObject = (void *)0x01E1A1A0; -const void * RTTI_TESChildCell = (void *)0x01E1A1F8; -const void * RTTI_TESObjectLAND = (void *)0x01E1A220; -const void * RTTI_hkpMoppCode = (void *)0x01E1A248; -const void * RTTI_TESLandTexture = (void *)0x01E178B8; -const void * RTTI_hkpWorldCinfo = (void *)0x01E1A368; -const void * RTTI_hkpEntityListener = (void *)0x01E1A390; -const void * RTTI_CheckWithinMultiBoundTask = (void *)0x01E1A3E0; -const void * RTTI_ExtraProcessMiddleLow = (void *)0x01E1A410; -const void * RTTI_TESObjectCELL = (void *)0x01E13680; -const void * RTTI_TESObjectCELL__IDecalRefFunctor = (void *)0x01E1A930; -const void * RTTI_TESWindListener = (void *)0x01E1AB28; -const void * RTTI_bhkSerializable = (void *)0x01E1AE50; -const void * RTTI_hkpShape = (void *)0x01E1AEA0; -const void * RTTI_bhkShape = (void *)0x01E1AEC0; -const void * RTTI_BSHandleRefObject = (void *)0x01E1AEE0; -const void * RTTI_TESObjectREFRDef__ILinkedReferenceFunctor = (void *)0x01E1AF08; -const void * RTTI_BGSWaterCollisionManager__bhkPlaceableWater = (void *)0x01E1AFA0; -const void * RTTI_BGSWaterCollisionManager__bhkWaterfall = (void *)0x01E1B058; -const void * RTTI_hkpPhantomCallbackShape = (void *)0x01E1AFE8; -const void * RTTI_bhkEntity = (void *)0x01E1B098; -const void * RTTI_bhkPhantom = (void *)0x01E1AF70; -const void * RTTI_bhkAabbPhantom = (void *)0x01E1AF48; -const void * RTTI_BGSWaterCollisionManager__BGSWaterUpdateI = (void *)0x01E1B018; -const void * RTTI_bhkRigidBody = (void *)0x01E17DC0; -const void * RTTI_TESObjectREFR = (void *)0x01E13798; -const void * RTTI_bhkSimpleShapePhantom = (void *)0x01E1B130; -const void * RTTI_bhkCollisionObject = (void *)0x01E1B188; -const void * RTTI_bhkAcousticSpacePhantomCallbackShape = (void *)0x01E1B220; -const void * RTTI_bhkSphereRepShape = (void *)0x01E1B260; -const void * RTTI_bhkConvexShape = (void *)0x01E1B288; -const void * RTTI_bhkPCollisionObject = (void *)0x01E1B2B0; -const void * RTTI_bhkShapePhantom = (void *)0x01E1B160; -const void * RTTI_bhkSphereShape = (void *)0x01E1B2E0; -const void * RTTI_ReferenceEffectController = (void *)0x01E1B308; -const void * RTTI_OwnedController = (void *)0x01E1B338; -const void * RTTI_OwnedCameraEffectController = (void *)0x01E1B360; -const void * RTTI_bhkBoxShape = (void *)0x01E1B398; -const void * RTTI_IAnimationStreamWrite = (void *)0x01E1B5B8; -const void * RTTI_IAnimationStreamRead = (void *)0x01E1B5E8; -const void * RTTI_AnimationStreamLoadGame = (void *)0x01E1B618; -const void * RTTI_AnimationStreamSaveGame = (void *)0x01E1B648; -const void * RTTI_REFREventCallbacks__IEventCallback = (void *)0x01E1B678; -const void * RTTI_REFREventCallbacks__IEventCallbackFactory = (void *)0x01E1B6B0; -const void * RTTI_ExtraUsedMarkers = (void *)0x01E1B6F0; -const void * RTTI_ExtraReservedMarkers = (void *)0x01E1B718; -const void * RTTI_TESObjectREFRSync__REFRSyncController = (void *)0x01E1B810; -const void * RTTI_TESWaterForm = (void *)0x01E13718; -const void * RTTI_TESWeather = (void *)0x01E19F18; -const void * RTTI_TESTexture1024 = (void *)0x01E1B938; -const void * RTTI_TESWorldSpace = (void *)0x01E13658; -const void * RTTI_BGSAcousticSpace = (void *)0x01E136F0; -const void * RTTI_NiFormArray = (void *)0x01E1BC28; -const void * RTTI_BGSCameraPath = (void *)0x01E1BBD8; -const void * RTTI_BGSCameraShot = (void *)0x01E1BC00; -const void * RTTI_BGSCollisionLayer = (void *)0x01E18400; -const void * RTTI_BGSColorForm = (void *)0x01E1BF28; -const void * RTTI_BGSDefaultObjectManager = (void *)0x01E1BFE8; -const void * RTTI_BGSFootstep = (void *)0x01E1C068; -const void * RTTI_BGSFootstepSet = (void *)0x01E1C120; -const void * RTTI_BGSImpactData = (void *)0x01E1C1F8; -const void * RTTI_BGSImpactDataSet = (void *)0x01E11150; -const void * RTTI_BGSListForm = (void *)0x01E117C8; -const void * RTTI_BSMaterialObject = (void *)0x01E1C4F0; -const void * RTTI_BGSMaterialObject = (void *)0x01E1C518; -const void * RTTI_BGSMaterialType = (void *)0x01E1B878; -const void * RTTI_BGSMenuIcon = (void *)0x01E1C698; -const void * RTTI_BGSMessage = (void *)0x01E13980; -const void * RTTI_BGSMusicPaletteTrack = (void *)0x01E1C808; -const void * RTTI_BGSMusicSilenceTrack = (void *)0x01E1CA10; -const void * RTTI_BGSMusicSingleTrack = (void *)0x01E1CBB8; -const void * RTTI_BSIMusicTrack = (void *)0x01E1C7E0; -const void * RTTI_BGSMusicTrack = (void *)0x01E1C838; -const void * RTTI_BGSMusicTrackFormWrapper = (void *)0x01E1CD68; -const void * RTTI_BGSMusicType = (void *)0x01E13770; -const void * RTTI_BSIMusicType = (void *)0x01E1CE50; -const void * RTTI_BSIReverbType = (void *)0x01E1CF18; -const void * RTTI_BGSReverbParameters = (void *)0x01E1BAF8; -const void * RTTI_BSISoundCategory = (void *)0x01E1D010; -const void * RTTI_BGSSoundCategory = (void *)0x01E1CFE8; -const void * RTTI_BGSSoundDescriptorForm = (void *)0x01E1D0E8; -const void * RTTI_BSISoundDescriptor = (void *)0x01E1D118; -const void * RTTI_BSISoundOutputModel = (void *)0x01E1D200; -const void * RTTI_BGSSoundOutput = (void *)0x01E1D230; -const void * RTTI_BSISoundOutputModel__BSIAttenuationCharacteristics = (void *)0x01E1D260; -const void * RTTI_BGSSoundOutput__DynamicAttenuationCharacteristics = (void *)0x01E1D2B0; -const void * RTTI_BSISoundDescriptor__BSIPlaybackCharacteristics = (void *)0x01E1D410; -const void * RTTI_BGSSoundDescriptor = (void *)0x01E1D458; -const void * RTTI_BGSStandardSoundDef = (void *)0x01E1D488; -const void * RTTI_BGSStandardSoundDef__SoundPlaybackCharacteristics = (void *)0x01E1D4C0; -const void * RTTI_BGSTextureSet = (void *)0x01E15A08; -const void * RTTI_BSTextureSet = (void *)0x01E1D6D8; -const void * RTTI_BSShaderTextureSet = (void *)0x01E1D700; -const void * RTTI_IVisitProcedures = (void *)0x01E1D7C0; -const void * RTTI_MiscStatManager__IMiscStatVisitor = (void *)0x01E1D7E8; -const void * RTTI_MiscStatManager__FindStatByCRC = (void *)0x01E1D820; -const void * RTTI_BSScript__IForEachScriptObjectFunctor = (void *)0x01E1D858; -const void * RTTI_TESGlobal = (void *)0x01E12040; -const void * RTTI_TESLoadScreen = (void *)0x01E1D980; -const void * RTTI_Script = (void *)0x01E1DA48; -const void * RTTI_BSAnimGraphVisit__BShkbVisitor = (void *)0x01E1DB80; -const void * RTTI_MagicTarget__ForEachActiveEffectVisitor = (void *)0x01E1DE18; -const void * RTTI_TESObjectREFRDef__IAliasFunctor = (void *)0x01E1DE58; -const void * RTTI_BSScript__IFunctionArguments = (void *)0x01E1DF10; -const void * RTTI_BSScript__ZeroFunctionArguments = (void *)0x01E1DF48; -const void * RTTI_MobIterOperator = (void *)0x01E1DF80; -const void * RTTI_TESShout = (void *)0x01E15AE8; -const void * RTTI_TESSound = (void *)0x01E1E240; -const void * RTTI_TESWordOfPower = (void *)0x01E1E2F0; -const void * RTTI_BGSAction = (void *)0x01E1E3C8; -const void * RTTI_BGSAssociationType = (void *)0x01E1E480; -const void * RTTI_TESModelPSA = (void *)0x01E1E558; -const void * RTTI_BGSBodyPartData = (void *)0x01E1E5A8; -const void * RTTI_BGSDialogueBranch = (void *)0x01E13878; -const void * RTTI_PerkEntryVisitor = (void *)0x01E1E7D8; -const void * RTTI_BGSEntryPointFunctionData = (void *)0x01E1E840; -const void * RTTI_BGSEntryPointFunctionDataOneValue = (void *)0x01E1E870; -const void * RTTI_BGSEntryPointFunctionDataTwoValue = (void *)0x01E1E8A8; -const void * RTTI_BGSEntryPointFunctionDataLeveledList = (void *)0x01E1E8E0; -const void * RTTI_BGSEntryPointFunctionDataSpellItem = (void *)0x01E1E920; -const void * RTTI_BGSEntryPointFunctionDataBooleanGraphVariable = (void *)0x01E1E960; -const void * RTTI_BGSEntryPointFunctionDataText = (void *)0x01E1E9A8; -const void * RTTI_BGSEntryPointFunctionDataActivateChoice = (void *)0x01E1E9E0; -const void * RTTI_BGSEquipSlot = (void *)0x01E1EA20; -const void * RTTI_BGSHeadPart = (void *)0x01E1EAE8; -const void * RTTI_TESModelTri = (void *)0x01E1EB10; -const void * RTTI_BGSIdleMarker = (void *)0x01E1EBD0; -const void * RTTI_BGSKeyword = (void *)0x01E13958; -const void * RTTI_BGSBaseAlias = (void *)0x01E1ED30; -const void * RTTI_BGSLocAlias = (void *)0x01E1ED58; -const void * RTTI_BGSMovementType = (void *)0x01E1ED80; -const void * RTTI_BGSNote = (void *)0x01E1DB00; -const void * RTTI_BGSPerk = (void *)0x01E11650; -const void * RTTI_BGSPerkEntry = (void *)0x01E1EEF0; -const void * RTTI_BGSQuestPerkEntry = (void *)0x01E1EF18; -const void * RTTI_BGSAbilityPerkEntry = (void *)0x01E1EF40; -const void * RTTI_BGSEntryPointPerkEntry = (void *)0x01E1EF70; -const void * RTTI_BGSRagdoll = (void *)0x01E1E580; -const void * RTTI_BGSRefAlias = (void *)0x01E1F0C0; -const void * RTTI_BGSRelationship = (void *)0x01E1F0E8; -const void * RTTI_BGSScene = (void *)0x01E13918; -const void * RTTI_BGSSceneAction = (void *)0x01E1F2A0; -const void * RTTI_BGSSceneActionDialogue = (void *)0x01E1F2C8; -const void * RTTI_BGSSceneActionPackage = (void *)0x01E1F2F8; -const void * RTTI_BGSSceneActionTimer = (void *)0x01E1F328; -const void * RTTI_BGSVoiceType = (void *)0x01E14B68; -const void * RTTI_Reset3DMobIterator = (void *)0x01E1F578; -const void * RTTI_TESAnimGroup = (void *)0x01E1F5A8; -const void * RTTI_TESClass = (void *)0x01E1F5D0; -const void * RTTI_TESEyes = (void *)0x01E14B20; -const void * RTTI_TESFaction = (void *)0x01E138A0; -const void * RTTI_TESIdleForm = (void *)0x01E152B0; -const void * RTTI_ActorValueOwner = (void *)0x01E1F7E0; -const void * RTTI_TESActorBase = (void *)0x01E138F0; -const void * RTTI_TESNPC = (void *)0x01E14C08; -const void * RTTI_BSFaceGenModelExtraData = (void *)0x01E1F848; -const void * RTTI_TESQuest = (void *)0x01E13938; -const void * RTTI_QueuedPromoteQuestTask = (void *)0x01E1F988; -const void * RTTI_TESRace = (void *)0x01E15AA0; -const void * RTTI_BGSTextureModel = (void *)0x01E1FB08; -const void * RTTI_BGSBehaviorGraphModel = (void *)0x01E1FB30; -const void * RTTI_AttackAnimationArrayMap = (void *)0x01E1FB60; -const void * RTTI_TESTopic = (void *)0x01E13858; -const void * RTTI_TESTopicInfo = (void *)0x01E13830; -const void * RTTI_bhkEntityListener = (void *)0x01E1A3B8; -const void * RTTI_BGSAcousticSpaceListener = (void *)0x01E205C0; -const void * RTTI_TargetEntry = (void *)0x01E20680; -const void * RTTI_ZoneEntry = (void *)0x01E205F0; -const void * RTTI_BGSZoneTargetListener = (void *)0x01E206A8; -const void * RTTI_TrapTargetEntry = (void *)0x01E206D8; -const void * RTTI_bhkAction = (void *)0x01E20720; -const void * RTTI_bhkCartTether = (void *)0x01E20740; -const void * RTTI_hkConstraintCinfo = (void *)0x01E20768; -const void * RTTI_bhkConstraint = (void *)0x01E207C0; -const void * RTTI_hkPrismaticConstraintCinfo = (void *)0x01E207E8; -const void * RTTI_bhkPrismaticConstraint = (void *)0x01E20820; -const void * RTTI_bhkUnaryAction = (void *)0x01E20878; -const void * RTTI_CellMopp = (void *)0x01E20980; -const void * RTTI_BSTasklet = (void *)0x01E209A0; -const void * RTTI_BSTaskletData = (void *)0x01E209C0; -const void * RTTI_BSWin32TaskletData = (void *)0x01E209E8; -const void * RTTI_bhkBvTreeShape = (void *)0x01E20A18; -const void * RTTI_bhkTriSampledHeightFieldBvTreeShape = (void *)0x01E20A40; -const void * RTTI_CellMopp__HeightFieldWeldingTasklet = (void *)0x01E20B48; -const void * RTTI_hkpContactListener = (void *)0x01E20B88; -const void * RTTI_bhkContactListener = (void *)0x01E20BB8; -const void * RTTI_bhkBackfaceContactListener = (void *)0x01E20BE8; -const void * RTTI_FOCollisionListener = (void *)0x01E20C20; -const void * RTTI_hkpIslandActivationListener = (void *)0x01E20E10; -const void * RTTI_FOIslandActivationListener = (void *)0x01E20E48; -const void * RTTI_hkStreamWriter = (void *)0x01E20E80; -const void * RTTI_hkError = (void *)0x01E20EA8; -const void * RTTI_hkStreamReader = (void *)0x01E20EF8; -const void * RTTI_hkFileSystem = (void *)0x01E20F20; -const void * RTTI_HavokStreambufReader = (void *)0x01E20F80; -const void * RTTI_HavokStreambufWriter = (void *)0x01E20FB0; -const void * RTTI_HavokFileStreambufReader = (void *)0x01E20FE0; -const void * RTTI_HavokFileStreambufWriter = (void *)0x01E21010; -const void * RTTI_hkNativeFileSystem = (void *)0x01E21040; -const void * RTTI_HavokStreambufFactory = (void *)0x01E21070; -const void * RTTI_HavokError = (void *)0x01E210A0; -const void * RTTI_hkpCdPointCollector = (void *)0x01E210C8; -const void * RTTI_hkpAllCdPointCollector = (void *)0x01E210F8; -const void * RTTI_LoadedAreaBound = (void *)0x01E21128; -const void * RTTI_RagdollFurnitureListener = (void *)0x01E21150; -const void * RTTI_hkpClosestRayHitCollector = (void *)0x01E211D0; -const void * RTTI_SpecificItemCollector = (void *)0x01E21200; -const void * RTTI_hkpPhantomListener = (void *)0x01E21230; -const void * RTTI_hkpCdBodyPairCollector = (void *)0x01E21260; -const void * RTTI_bhkTrapListener = (void *)0x01E21290; -const void * RTTI_TrapEntry = (void *)0x01E212B8; -const void * RTTI_TriggerEntry = (void *)0x01E212D8; -const void * RTTI_TESTrapListener = (void *)0x01E213D8; -const void * RTTI_hkpAllCdBodyPairTempCollector = (void *)0x01E21400; -const void * RTTI_hkpAllCdPointTempCollector = (void *)0x01E21438; -const void * RTTI_FindTriangleForLocationFilter = (void *)0x01E21470; -const void * RTTI_FindTriangleForLocationFilterCheckDeltaZ = (void *)0x01E214A8; -const void * RTTI_Atmosphere = (void *)0x01E214E8; -const void * RTTI_Clouds = (void *)0x01E21530; -const void * RTTI_Moon = (void *)0x01E21550; -const void * RTTI_BSGeometryListCullingProcess = (void *)0x01E21570; -const void * RTTI_Precipitation = (void *)0x01E215F8; -const void * RTTI_Sky = (void *)0x01E21620; -const void * RTTI_TESWeather__SkyStaticFunctor = (void *)0x01E21640; -const void * RTTI_SkyEffectController = (void *)0x01E21678; -const void * RTTI_SkyStaticFindFunctor = (void *)0x01E216A8; -const void * RTTI_TempLoadGameBuffer = (void *)0x01E216D8; -const void * RTTI_SkyObject = (void *)0x01E21510; -const void * RTTI_Stars = (void *)0x01E21708; -const void * RTTI_NiBillboardNode = (void *)0x01E21728; -const void * RTTI_Sun = (void *)0x01E21750; -const void * RTTI_BShkNonTransformController = (void *)0x01E217A8; -const void * RTTI_BShkFloatController = (void *)0x01E217E0; -const void * RTTI_BGShkPhonemeController = (void *)0x01E21810; -const void * RTTI_BSFaceGenAnimationData = (void *)0x01E21A68; -const void * RTTI_FutBinaryFileC = (void *)0x01E21A98; -const void * RTTI_BSResourceFaceGenBinaryFile = (void *)0x01E21AC0; -const void * RTTI_BSFaceGenKeyframe = (void *)0x01E22580; -const void * RTTI_BSFaceGenKeyframeExclusive = (void *)0x01E225A8; -const void * RTTI_BSFaceGenKeyframeMultiple = (void *)0x01E225E0; -const void * RTTI_BSFaceGenDB__TRI__QueuedHandles = (void *)0x01E22610; -const void * RTTI_BSFaceGenModel = (void *)0x01E22718; -const void * RTTI_BSFaceGenModelMap__Entry = (void *)0x01E22740; -const void * RTTI_BSFaceGenMorphData = (void *)0x01E22770; -const void * RTTI_BSFaceGenMorphDataHead = (void *)0x01E227A0; -const void * RTTI_BSFaceGenMorphDataHair = (void *)0x01E227D0; -const void * RTTI_BSFaceGenBaseMorphExtraData = (void *)0x01E22800; -const void * RTTI_BSFaceGenNiNode = (void *)0x01E22898; -const void * RTTI_BSFadeNodeCuller = (void *)0x01E228C0; -const void * RTTI_ActorValueInfo = (void *)0x01E228E8; -const void * RTTI_BGSSkillPerkTreeNode = (void *)0x01E22910; -const void * RTTI_IAIWorldLocation = (void *)0x01E22980; -const void * RTTI_BGSAIWorldLocation = (void *)0x01E229A8; -const void * RTTI_BGSAIWorldLocationRefRadius = (void *)0x01E229D8; -const void * RTTI_BGSAIWorldLocationPointRadius = (void *)0x01E22A70; -const void * RTTI_BGSAIWorldLocationInteriorCell = (void *)0x01E22B10; -const void * RTTI_BGSAttackDataMap = (void *)0x01E22BB0; -const void * RTTI_BGSAttackData = (void *)0x01E22BD8; -const void * RTTI_IPackageDataAIWorldLocationHandle = (void *)0x01E23068; -const void * RTTI_IAITarget = (void *)0x01E230D0; -const void * RTTI_IPackageData = (void *)0x01E22C00; -const void * RTTI_IAIWorldLocationHandle = (void *)0x01E230A0; -const void * RTTI_BGSPackageDataBool = (void *)0x01E22C28; -const void * RTTI_BGSPackageDataFloat = (void *)0x01E230F0; -const void * RTTI_BGSPackageDataInt = (void *)0x01E231B8; -const void * RTTI_BGSPackageDataRefOLD = (void *)0x01E23278; -const void * RTTI_BGSPackageDataLocation = (void *)0x01E232A8; -const void * RTTI_BGSPackageDataLocationWrapper = (void *)0x01E232D8; -const void * RTTI_BGSPackageDataTargetSelector = (void *)0x01E23310; -const void * RTTI_BGSPackageDataObjectList = (void *)0x01E23ED0; -const void * RTTI_ObjectListItem = (void *)0x01E23F00; -const void * RTTI_BGSPackageDataRef = (void *)0x01E24158; -const void * RTTI_BGSPackageDataTopic = (void *)0x01E24310; -const void * RTTI_IProcedureTreeExecState = (void *)0x01E244D0; -const void * RTTI_IProcedureTreeItem = (void *)0x01E24538; -const void * RTTI_BGSProcedureDoneExecState = (void *)0x01E245A8; -const void * RTTI_BGSProcedureTreeConditionalItem = (void *)0x01E24640; -const void * RTTI_BGSProcedureTreeBranch = (void *)0x01E24678; -const void * RTTI_BGSProcedureTreeOneChildExecState = (void *)0x01E246A8; -const void * RTTI_BGSProcedureTreeSequence = (void *)0x01E246E0; -const void * RTTI_BGSProcedureTreeSequenceExecState = (void *)0x01E24770; -const void * RTTI_BGSProcedureTreeStacked = (void *)0x01E24820; -const void * RTTI_BGSProcedureTreeStackedExecState = (void *)0x01E248B0; -const void * RTTI_BGSProcedureTreeSimultaneous = (void *)0x01E24960; -const void * RTTI_BGSProcedureTreeSimultaneousExecState = (void *)0x01E24A00; -const void * RTTI_BGSProcedureTreeRandom = (void *)0x01E24AA8; -const void * RTTI_BGSProcedureTreeRandomExecState = (void *)0x01E24B38; -const void * RTTI_BGSProcedureGuardExecState = (void *)0x01E24BE0; -const void * RTTI_BGSProcedureDialogueExecState = (void *)0x01E24C80; -const void * RTTI_BGSProcedureEatExecState = (void *)0x01E24D20; -const void * RTTI_BGSProcedureFindExecState = (void *)0x01E24DB0; -const void * RTTI_BGSProcedureHoldPositionExecState = (void *)0x01E24E40; -const void * RTTI_BGSProcedureKeepAnEyeOnExecState = (void *)0x01E24EE8; -const void * RTTI_BGSProcedureSayExecState = (void *)0x01E24F88; -const void * RTTI_BGSProcedureWaitExecState = (void *)0x01E25020; -const void * RTTI_IProcedure = (void *)0x01E28F38; -const void * RTTI_BGSProcedureBase = (void *)0x01E28F60; -const void * RTTI_BGSProcedureDone = (void *)0x01E28F88; -const void * RTTI_IPackageDataTypeCheck = (void *)0x01E291E8; -const void * RTTI_BGSProcedureAcquire = (void *)0x01E29218; -const void * RTTI_BGSProcedureAcquireExecState = (void *)0x01E292D0; -const void * RTTI_BGSProcedureActivate = (void *)0x01E29600; -const void * RTTI_BGSProcedureActivateExecState = (void *)0x01E296B0; -const void * RTTI_BGSProcedureDialogue = (void *)0x01E298E0; -const void * RTTI_BGSProcedureDialogueActivate = (void *)0x01E29B70; -const void * RTTI_BGSProcedureDialogueActivateExecState = (void *)0x01E29C38; -const void * RTTI_BGSProcedureEat = (void *)0x01E29EF8; -const void * RTTI_BGSProcedureEscort = (void *)0x01E2A180; -const void * RTTI_BGSProcedureEscortExecState = (void *)0x01E2A230; -const void * RTTI_BGSProcedureFind = (void *)0x01E2A510; -const void * RTTI_BGSProcedureFlee = (void *)0x01E2A790; -const void * RTTI_BGSProcedureFleeExecState = (void *)0x01E2A838; -const void * RTTI_BGSProcedureFlightGrab = (void *)0x01E2AA50; -const void * RTTI_BGSProcedureFlightGrabExecState = (void *)0x01E2AB00; -const void * RTTI_IMovementParameters = (void *)0x01E2AD48; -const void * RTTI_BGSProcedureFollow = (void *)0x01E2AD78; -const void * RTTI_BGSProcedureFollowTo = (void *)0x01E2AE30; -const void * RTTI_BGSProcedureFollowExecState = (void *)0x01E2AEE0; -const void * RTTI_MovementParameters = (void *)0x01E2AF80; -const void * RTTI_BGSProcedureForceGreet = (void *)0x01E2B340; -const void * RTTI_BGSProcedureGuard = (void *)0x01E2B588; -const void * RTTI_BGSProcedureHoldPosition = (void *)0x01E2B7C0; -const void * RTTI_BGSProcedureHover = (void *)0x01E2BA08; -const void * RTTI_BGSProcedureHoverExecState = (void *)0x01E2BAA8; -const void * RTTI_BGSProcedureKeepAnEyeOn = (void *)0x01E2BCD0; -const void * RTTI_BGSProcedureLock = (void *)0x01E2BF18; -const void * RTTI_BGSProcedureUnlock = (void *)0x01E2BFB8; -const void * RTTI_BGSProcedureLockUnlockExecState = (void *)0x01E2C070; -const void * RTTI_BGSProcedureOrbit = (void *)0x01E2C430; -const void * RTTI_BGSProcedureOrbitExecState = (void *)0x01E2C4D8; -const void * RTTI_BGSProcedurePatrol = (void *)0x01E2C700; -const void * RTTI_BGSProcedurePatrolExecState = (void *)0x01E2C7B0; -const void * RTTI_BGSProcedurePursue = (void *)0x01E2C9E0; -const void * RTTI_BGSProcedureSandboxExecState = (void *)0x01E2CC20; -const void * RTTI_BGSProcedureSandbox = (void *)0x01E2CCC0; -const void * RTTI_BGSProcedureSay = (void *)0x01E2CF00; -const void * RTTI_BGSProcedureShout = (void *)0x01E2D130; -const void * RTTI_BGSProcedureShoutExecState = (void *)0x01E2D1D8; -const void * RTTI_BGSProcedureSit = (void *)0x01E2D440; -const void * RTTI_BGSProcedureSleep = (void *)0x01E2D4E8; -const void * RTTI_BGSProcedureSitSleepExecState = (void *)0x01E2D588; -const void * RTTI_BGSProcedureTravel = (void *)0x01E2D930; -const void * RTTI_BGSProcedureTravelExecState = (void *)0x01E2D9E0; -const void * RTTI_BGSProcedureTreeProcedure = (void *)0x01E2DC10; -const void * RTTI_BGSProcedureUseIdleMarker = (void *)0x01E2DCA8; -const void * RTTI_BGSProcedureUseIdleMarkerExecState = (void *)0x01E2DD60; -const void * RTTI_BGSProcedureUseMagic = (void *)0x01E2DFA8; -const void * RTTI_BGSProcedureUseMagicExecState = (void *)0x01E2E060; -const void * RTTI_BGSProcedureUseWeapon = (void *)0x01E2E290; -const void * RTTI_BGSProcedureUseWeaponExecState = (void *)0x01E2E340; -const void * RTTI_BGSProcedureWait = (void *)0x01E2E580; -const void * RTTI_BGSProcedureWander = (void *)0x01E2E7B0; -const void * RTTI_BGSProcedureWanderExecState = (void *)0x01E2E860; -const void * RTTI_BGSVisitProceduresInitActorLocation = (void *)0x01E2EA90; -const void * RTTI_BGSVisitProceduresCheckGuardWarnTarget = (void *)0x01E2EAD0; -const void * RTTI_TESPackage = (void *)0x01E13808; -const void * RTTI_PackageCreator = (void *)0x01E2EB10; -const void * RTTI_DialoguePackage = (void *)0x01E2EB38; -const void * RTTI_TESPackageData = (void *)0x01E2EB60; -const void * RTTI_TESAmbushPackageData = (void *)0x01E2EB88; -const void * RTTI_TESCustomPackageData = (void *)0x01E2EBB8; -const void * RTTI_IProcedureTreeVisitor = (void *)0x01E2EBE8; -const void * RTTI_CustomUtils__HasForceGreetVisitor = (void *)0x01E2EC18; -const void * RTTI_TESDialoguePackageData = (void *)0x01E2EC50; -const void * RTTI_TESEatPackageData = (void *)0x01E2EC80; -const void * RTTI_TESEscortPackageData = (void *)0x01E2ECA8; -const void * RTTI_TESFollowPackageData = (void *)0x01E2ECD8; -const void * RTTI_TESPatrolPackageData = (void *)0x01E2ED08; -const void * RTTI_TESUseItemPackageData = (void *)0x01E2ED38; -const void * RTTI_ActorPackageData = (void *)0x01E2ED98; -const void * RTTI_TESUseWeaponPackageData = (void *)0x01E2ED68; -const void * RTTI_UseWeaponActorPackageData = (void *)0x01E2EDC0; -const void * RTTI_PackageLocation = (void *)0x01E2EDF0; -const void * RTTI_BSTempEffect = (void *)0x01E2EE18; -const void * RTTI_ITempEffectFactory = (void *)0x01E2EE40; -const void * RTTI_BSTempEffectDebris = (void *)0x01E2F048; -const void * RTTI_BSTempEffectGeometryDecal = (void *)0x01E2F138; -const void * RTTI_BGSParticleObjectCloneTask = (void *)0x01E2F210; -const void * RTTI_BSTempEffectParticle = (void *)0x01E2F248; -const void * RTTI_BSTempEffectSimpleDecal = (void *)0x01E2F278; -const void * RTTI_BSLightingShaderMaterial = (void *)0x01E2F2A8; -const void * RTTI_BSTempEffectSPG = (void *)0x01E2F338; -const void * RTTI_BSTempEffectWeaponBlood = (void *)0x01E2F3A8; -const void * RTTI_BSTerrainEffect = (void *)0x01E2F3D8; -const void * RTTI_BSPSysHavokUpdateModifier__ICollisionObjectHandler = (void *)0x01E2F400; -const void * RTTI_NavMesh = (void *)0x01E2F4D8; -const void * RTTI_BSPathingStreamRead = (void *)0x01E2F558; -const void * RTTI_PathingStreamMasterFileRead = (void *)0x01E2F588; -const void * RTTI_BSNavmeshInfoMap__IVisitor = (void *)0x01E2F5C0; -const void * RTTI_NavMeshInfoMap = (void *)0x01E2F5F0; -const void * RTTI_hkpEntityActivationListener = (void *)0x01E2F790; -const void * RTTI_NavMeshObstacleManager = (void *)0x01E2F7C8; -const void * RTTI_bhkObstacleDeactivationListener = (void *)0x01E2FA20; -const void * RTTI_bhkObstacleRemovalListener = (void *)0x01E2FA58; -const void * RTTI_BSNavmeshReferenceObstacleArray = (void *)0x01E2FA90; -const void * RTTI_ObstacleTaskData = (void *)0x01E2FAC8; -const void * RTTI_PathingCoverLocation = (void *)0x01E2FAF0; -const void * RTTI_BSPathingCellManager = (void *)0x01E2FB48; -const void * RTTI_Pathing = (void *)0x01E2FBC8; -const void * RTTI_BSPathingCell = (void *)0x01E30060; -const void * RTTI_PathingCell = (void *)0x01E30088; -const void * RTTI_BSPathingDoor = (void *)0x01E30268; -const void * RTTI_PathingDoor = (void *)0x01E30290; -const void * RTTI_BSPathingLockData = (void *)0x01E30478; -const void * RTTI_PathingLockData = (void *)0x01E304A0; -const void * RTTI_BSPathingNumericIDVisitor = (void *)0x01E306A8; -const void * RTTI_PathingNumericIDVisitor = (void *)0x01E306D8; -const void * RTTI_PathingRequest = (void *)0x01E2FF00; -const void * RTTI_BSPathingSpace = (void *)0x01E30938; -const void * RTTI_PathingSpace = (void *)0x01E30960; -const void * RTTI_TeleportDoorSearch = (void *)0x01E30988; -const void * RTTI_NavMeshSearchClosePoint = (void *)0x01E30A50; -const void * RTTI_NavMeshSearchFitSphere = (void *)0x01E30B98; -const void * RTTI_NavMeshSearchFlee = (void *)0x01E30C18; -const void * RTTI_NavMeshSearchHide = (void *)0x01E30C70; -const void * RTTI_BSNavmeshSearchHideFilter = (void *)0x01E30CC0; -const void * RTTI_NavMeshSearchLOS = (void *)0x01E30D20; -const void * RTTI_NavMeshSearchMaxCost = (void *)0x01E30D48; -const void * RTTI_BSNavmeshSearchMaxCostFilters = (void *)0x01E30D78; -const void * RTTI_NavMeshSearchMultipleGoals = (void *)0x01E30DB0; -const void * RTTI_NavMeshSearchSLPoint = (void *)0x01E30DE8; -const void * RTTI_PathingRequestClosePoint = (void *)0x01E2FED0; -const void * RTTI_PathingRequestClosestGoal = (void *)0x01E31050; -const void * RTTI_IPathBuilderFactoryBase = (void *)0x01E31080; -const void * RTTI_PathingRequestCover = (void *)0x01E313E8; -const void * RTTI_PathingRequestFlee = (void *)0x01E31628; -const void * RTTI_PathingRequestFly = (void *)0x01E31868; -const void * RTTI_PathingRequestFlyAction = (void *)0x01E31A98; -const void * RTTI_PathingRequestFlyHover = (void *)0x01E31CF8; -const void * RTTI_PathingRequestFlyLand = (void *)0x01E31F58; -const void * RTTI_PathingRequestFlyOrbit = (void *)0x01E321A8; -const void * RTTI_PathingRequestFlyTakeOff = (void *)0x01E32408; -const void * RTTI_PathingRequestHide = (void *)0x01E32670; -const void * RTTI_PathingRequestLOS = (void *)0x01E328A8; -const void * RTTI_PathingRequestOptimalLocation = (void *)0x01E32AD8; -const void * RTTI_PathingRequestRotate = (void *)0x01E32D40; -const void * RTTI_PathingRequestSafeStraightLine = (void *)0x01E2FE98; -const void * RTTI_PathingRequestStopMoving = (void *)0x01E331B0; -const void * RTTI_BGSQueuedTerrainUpdate = (void *)0x01E34E18; -const void * RTTI_BGSQueuedTerrainUpgrade = (void *)0x01E34E48; -const void * RTTI_BGSQueuedTerrainDowngrade = (void *)0x01E34E78; -const void * RTTI_BGSQueuedTerrainInitialLoad = (void *)0x01E34EA8; -const void * RTTI_BGSQueuedObjectUpgrade = (void *)0x01E34EE0; -const void * RTTI_BGSQueuedObjectDowngrade = (void *)0x01E34F10; -const void * RTTI_BGSQueuedObjectInitialLoad = (void *)0x01E34F40; -const void * RTTI_BGSWaterCollisionManager__bhkAutoWater = (void *)0x01E355A8; -const void * RTTI_BGSWaterCollisionManager__bshkAutoWater = (void *)0x01E35660; -const void * RTTI_TESWaterObject = (void *)0x01E356A0; -const void * RTTI_TESWaterReflections = (void *)0x01E356C8; -const void * RTTI_TESWaterDisplacement = (void *)0x01E356F8; -const void * RTTI_TESWaterNormals = (void *)0x01E35728; -const void * RTTI_BGSStoryManagerTreeVisitor = (void *)0x01E358E8; -const void * RTTI_BGSStoryManagerQuestFinder = (void *)0x01E35920; -const void * RTTI_BGSStoryManager = (void *)0x01E35958; -const void * RTTI_BGSStoryManagerEventNode = (void *)0x01E35B80; -const void * RTTI_BGSStoryManagerQuestNode = (void *)0x01E35C60; -const void * RTTI_BGSStoryTeller = (void *)0x01E35CE0; -const void * RTTI_BGSLOSData = (void *)0x01E35F08; -const void * RTTI_AnimationClipDataSingleton = (void *)0x01E35F30; -const void * RTTI_AnimationSystemUtils__QueuedReferenceAnimationTask = (void *)0x01E36170; -const void * RTTI_hkaRaycastInterface = (void *)0x01E36288; -const void * RTTI_BSIFootIkRaycastInterfaceDB = (void *)0x01E362B8; -const void * RTTI_CachedRaycastData = (void *)0x01E362F0; -const void * RTTI_BGSFootIkRaycastInterfaceDB = (void *)0x01E36318; -const void * RTTI_IGamebryoSequenceGeneratorHolderSingleton = (void *)0x01E36550; -const void * RTTI_BGSGamebryoSequenceGeneratorHolderSingleton = (void *)0x01E36590; -const void * RTTI_BSSynchronizedClipGenerator__hkbSynchronizedAnimationScene = (void *)0x01E36840; -const void * RTTI_BGSSynchronizedAnimationInstance = (void *)0x01E36890; -const void * RTTI_BSLimbIKModifierUtilityCastInfo = (void *)0x01E36968; -const void * RTTI_BSLimbIKModifierUtility = (void *)0x01E369D0; -const void * RTTI_IAnimationGraphManagerHolder = (void *)0x01E1B0F8; -const void * RTTI_IAnimationGraphManagerLoadingTask = (void *)0x01E361B8; -const void * RTTI_SimpleAnimationGraphManagerLoadingTask = (void *)0x01E36C28; -const void * RTTI_SimpleAnimationGraphManagerHolder = (void *)0x01E36C68; -const void * RTTI_WeaponAnimationGraphManagerHolder = (void *)0x01E36CA0; -const void * RTTI_TailAnimationGraphManagerHolder = (void *)0x01E36CD8; -const void * RTTI_TESCamera = (void *)0x01E174A8; -const void * RTTI_PlayerInputHandler = (void *)0x01E36FA0; -const void * RTTI_ThirdPersonState = (void *)0x01E36FD0; -const void * RTTI_DragonCameraState = (void *)0x01E36FF8; -const void * RTTI_CombatBehaviorTreeRanged = (void *)0x01E37050; -const void * RTTI_GRefCountImpl = (void *)0x01E37888; -const void * RTTI_GRefCountImplCore = (void *)0x01E378B0; -const void * RTTI_GFxFunctionHandler = (void *)0x01E37928; -const void * RTTI_MenuEventHandler = (void *)0x01E37A00; -const void * RTTI_CreationClubMenu = (void *)0x01E37A28; -const void * RTTI_MessageBoxData = (void *)0x01E37A70; -const void * RTTI_IMessageBoxCallback = (void *)0x01E37AC0; -const void * RTTI_IUIMessageData = (void *)0x01E37A98; -const void * RTTI_CreationClub__AsyncModRequest = (void *)0x01E37AF0; -const void * RTTI_CreationClub__CreationListRequest = (void *)0x01E37B28; -const void * RTTI_CreationClub__BundleChildrenRequest = (void *)0x01E37B60; -const void * RTTI_CreationClub__CategorySearchRequest = (void *)0x01E37BA0; -const void * RTTI_CreationClub__GetCreationRequest = (void *)0x01E37BE0; -const void * RTTI_CreationClub__GetIntRequest = (void *)0x01E37C18; -const void * RTTI_CreationClub__DownloadImageRequest = (void *)0x01E37C50; -const void * RTTI_CreationClub__StringStringRequest = (void *)0x01E37C88; -const void * RTTI_CreationClub__SavedGFxValueRequest = (void *)0x01E37CC0; -const void * RTTI_CreationClub__DownloadCreationRequest = (void *)0x01E37CF8; -const void * RTTI_CreationClub__CreationChanged_ConfirmResetCallback = (void *)0x01E37D40; -const void * RTTI_ModManagerMenu = (void *)0x01E38588; -const void * RTTI_ModManager__AsyncModRequest = (void *)0x01E385B0; -const void * RTTI_ModManager__DownloadModRequest = (void *)0x01E385E8; -const void * RTTI_ModManager__CategorySearchRequest = (void *)0x01E38620; -const void * RTTI_ModManager__GetDetailsRequest = (void *)0x01E38658; -const void * RTTI_ModManager__GetDependencyRequest = (void *)0x01E38690; -const void * RTTI_ModManager__DownloadImageRequest = (void *)0x01E386C8; -const void * RTTI_ModManager__SavedGFxValueRequest = (void *)0x01E38700; -const void * RTTI_ModManager__GetIntRequest = (void *)0x01E38738; -const void * RTTI_ModManager__StringStringRequest = (void *)0x01E38768; -const void * RTTI_ModManager__ReportMod_CategoryCallback = (void *)0x01E387F8; -const void * RTTI_ModManager__ReportMod_ConfirmCallback = (void *)0x01E38838; -const void * RTTI_ModManager__DeleteMod_ConfirmCallback = (void *)0x01E38908; -const void * RTTI_ModManager__DeleteLibraryModConfirmCallback = (void *)0x01E38950; -const void * RTTI_ModManager__DeleteAllModsConfirmCallback = (void *)0x01E38998; -const void * RTTI_ModManager__CloseModManager_ConfirmCallback = (void *)0x01E389E0; -const void * RTTI_ModManager__ModsChanged_ConfirmResetCallback = (void *)0x01E38A30; -const void * RTTI_KinectMenu = (void *)0x01E38BB0; -const void * RTTI_LoadWaitSpinner = (void *)0x01E38C60; -const void * RTTI_AbsorbEffect = (void *)0x01E38C88; -const void * RTTI_AccumulatingValueModifierEffect = (void *)0x01E38D08; -const void * RTTI_FindMaxMagnitudeVisitor = (void *)0x01E38D40; -const void * RTTI_FinishActiveEffectVisitor = (void *)0x01E38D70; -const void * RTTI_ActiveEffect = (void *)0x01E38CE0; -const void * RTTI_ActiveEffectReferenceEffectController = (void *)0x01E38DA0; -const void * RTTI_ActiveEffect__ForEachHitEffectVisitor = (void *)0x01E38DE0; -const void * RTTI_ActorMagicCaster = (void *)0x01E38EE8; -const void * RTTI_BSAttachTechniques__AttachTechniqueInput = (void *)0x01E38F10; -const void * RTTI_RefAttachTechniqueInput = (void *)0x01E38F50; -const void * RTTI_MagicItemDataCollector = (void *)0x01E38F80; -const void * RTTI_BoundItemEffect = (void *)0x01E39088; -const void * RTTI_MagicTarget__IPostCreationModification = (void *)0x01E390B0; -const void * RTTI_CloakEffect = (void *)0x01E390F0; -const void * RTTI_CommandEffect = (void *)0x01E39158; -const void * RTTI_CommandSummonedEffect = (void *)0x01E39180; -const void * RTTI_CureEffect = (void *)0x01E391B0; -const void * RTTI_DarknessEffect = (void *)0x01E391D8; -const void * RTTI_DetectLifeEffect = (void *)0x01E39200; -const void * RTTI_DisarmEffect = (void *)0x01E39228; -const void * RTTI_DisguiseEffect = (void *)0x01E392A0; -const void * RTTI_DisguiseEffect__DetectionChecker = (void *)0x01E392C8; -const void * RTTI_DispelEffect = (void *)0x01E39350; -const void * RTTI_DualValueModifierEffect = (void *)0x01E393C8; -const void * RTTI_EtherealizationEffect = (void *)0x01E393F8; -const void * RTTI_GrabActorEffect = (void *)0x01E39428; -const void * RTTI_VampireLordEffect = (void *)0x01E39450; -const void * RTTI_ConcussionEffect = (void *)0x01E39478; -const void * RTTI_GuideEffect = (void *)0x01E394A0; -const void * RTTI_InvisibilityEffect = (void *)0x01E394C8; -const void * RTTI_LightEffect = (void *)0x01E394F8; -const void * RTTI_LightEffect__AttachBestLightVisitor = (void *)0x01E39520; -const void * RTTI_LockEffect = (void *)0x01E395A0; -const void * RTTI_MagicCaster = (void *)0x01E1DB58; -const void * RTTI_MagicCaster__PostCreationCallback = (void *)0x01E395C8; -const void * RTTI_ProcessLists__GetActorsFilter = (void *)0x01E39600; -const void * RTTI_ActorTargetCheck = (void *)0x01E39638; -const void * RTTI_MagicTarget__DispelFromBoundObject = (void *)0x01E39660; -const void * RTTI_KeywordDispelFunctor = (void *)0x01E39698; -const void * RTTI_IsSpellTargetFunctor = (void *)0x01E396C8; -const void * RTTI_IsSpellTypeTargetFunctor = (void *)0x01E396F8; -const void * RTTI_FindEffectKeywordOnTargetFunctor = (void *)0x01E39728; -const void * RTTI_StartSpellHelpers__EffectGatherFunctor = (void *)0x01E39828; -const void * RTTI_StartSpellHelpers__SpellEffectGatherFunctor = (void *)0x01E39870; -const void * RTTI_StartSpellHelpers__DoneEffectGatherFunctor = (void *)0x01E398C0; -const void * RTTI_FindActiveEffectByIDFunctor = (void *)0x01E39938; -const void * RTTI_EffectsCausingDamageFunctor = (void *)0x01E39970; -const void * RTTI_ModelReferenceEffect = (void *)0x01E39B18; -const void * RTTI_NightEyeEffect = (void *)0x01E39BC0; -const void * RTTI_ExtraMagicCaster = (void *)0x01E39BE8; -const void * RTTI_NonActorMagicCaster = (void *)0x01E39C10; -const void * RTTI_OpenEffect = (void *)0x01E39C40; -const void * RTTI_ParalysisEffect = (void *)0x01E39C68; -const void * RTTI_PeakValueModifierEffect = (void *)0x01E39C90; -const void * RTTI_ReanimateEffect = (void *)0x01E39CC0; -const void * RTTI_ReferenceEffect = (void *)0x01E39B48; -const void * RTTI_WeaponEnchantmentController = (void *)0x01E39D38; -const void * RTTI_ScriptEffect = (void *)0x01E39D70; -const void * RTTI_ScriptedRefEffect = (void *)0x01E39D98; -const void * RTTI_BSParticleShaderObjectEmitter = (void *)0x01E39DC0; -const void * RTTI_BSParticleShaderRayEmitter = (void *)0x01E39DF8; -const void * RTTI_BSParticleShaderCollisionEmitter = (void *)0x01E39E30; -const void * RTTI_BSParticleShaderGeometryEmitter = (void *)0x01E39E68; -const void * RTTI_ShaderReferenceEffect = (void *)0x01E39F48; -const void * RTTI_SlowTimeEffect = (void *)0x01E39FD0; -const void * RTTI_SoulTrapEffect = (void *)0x01E39FF8; -const void * RTTI_StaggerEffect = (void *)0x01E39250; -const void * RTTI_BSPathing__CheckLineOfSightFilter = (void *)0x01E3A020; -const void * RTTI_CheckLineOfSightFilterMisc = (void *)0x01E3A058; -const void * RTTI_SummonPlacementEffect = (void *)0x01E3A090; -const void * RTTI_SummonCreatureEffect = (void *)0x01E3A0C0; -const void * RTTI_TargetValueModifierEffect = (void *)0x01E3A140; -const void * RTTI_RallyEffect = (void *)0x01E3A170; -const void * RTTI_DemoralizeEffect = (void *)0x01E3A198; -const void * RTTI_TurnUndeadEffect = (void *)0x01E3A1C0; -const void * RTTI_BanishEffect = (void *)0x01E3A1E8; -const void * RTTI_CalmEffect = (void *)0x01E3A210; -const void * RTTI_FrenzyEffect = (void *)0x01E3A238; -const void * RTTI_TelekinesisEffect = (void *)0x01E3A260; -const void * RTTI_ValueAndConditionsEffect = (void *)0x01E3A288; -const void * RTTI_ValueModifierEffect = (void *)0x01E38CB0; -const void * RTTI_WerewolfEffect = (void *)0x01E3A2B8; -const void * RTTI_WerewolfFeedEffect = (void *)0x01E3A2E0; -const void * RTTI_TESAudio__ScriptedMusicState = (void *)0x01E3A358; -const void * RTTI_BGSPlayerMusicChanger = (void *)0x01E3A588; -const void * RTTI_MenuTopicManager = (void *)0x01E3A7F0; -const void * RTTI_JobListManager__ServingThread = (void *)0x01E3A9D0; -const void * RTTI_BGSSaveLoadManager = (void *)0x01E3AC78; -const void * RTTI_bgs__saveload__SaveOperationRequest = (void *)0x01E3AD78; -const void * RTTI_bgs__saveload__LoadRequest = (void *)0x01E3ADE0; -const void * RTTI_bgs__saveload__LoadEntryRequest = (void *)0x01E3AE10; -const void * RTTI_BGSSaveLoadManager__Thread = (void *)0x01E3AE48; -const void * RTTI_bgs__saveload__Request = (void *)0x01E3ADB0; -const void * RTTI_BGSSaveLoadStatsMap = (void *)0x01E3B058; -const void * RTTI_BGSLoadGameBuffer = (void *)0x01E14CF8; -const void * RTTI_BGSSaveFormBuffer = (void *)0x01E3B1A0; -const void * RTTI_BGSSaveGameBuffer = (void *)0x01E3B1C8; -const void * RTTI_SaveStorageWrapper = (void *)0x01E3B1F0; -const void * RTTI_LoadStorageWrapper = (void *)0x01E3B220; -const void * RTTI_BSResource__CacheDrive__Op = (void *)0x01E3B2A0; -const void * RTTI_BGSMoviePlayer = (void *)0x01E3B5A8; -const void * RTTI_IExplosionFactory = (void *)0x01E3B658; -const void * RTTI_ChainExplosion = (void *)0x01E3B680; -const void * RTTI_EnhanceWeaponEffect = (void *)0x01E3B7A0; -const void * RTTI_GarbageCollector = (void *)0x01E3B7D0; -const void * RTTI_Main = (void *)0x01E3BA70; -const void * RTTI_IMovementControllerNPCFunctor = (void *)0x01E3BA90; -const void * RTTI_bhkTelekinesisListener = (void *)0x01E3BAC8; -const void * RTTI_MagicFavorites = (void *)0x01E3BCE0; -const void * RTTI_BSTreeManager__IQueryCullingCamera = (void *)0x01E3BF78; -const void * RTTI_RegSettingCollection = (void *)0x01E3C030; -const void * RTTI_BGSImpactManager = (void *)0x01E3C0A0; -const void * RTTI_MovementAvoidBoxEventAdapter = (void *)0x01E3C5F8; -const void * RTTI_PathManagerPositionPlayerAdapter = (void *)0x01E3C630; -const void * RTTI_CharacterCollisionMessagePlayerAdapter = (void *)0x01E3C668; -const void * RTTI_PlayerSleepWaitMovementControllerAdapter = (void *)0x01E3C6A8; -const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToLoadedSetControllerFunctor = (void *)0x01E3C6F0; -const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToUnloadedSetControllerFunctor = (void *)0x01E3C760; -const void * RTTI_DoorObstacleAdapter = (void *)0x01E3C7C8; -const void * RTTI_SystemEventAdapter = (void *)0x01E3C7F8; -const void * RTTI_InitTESThread = (void *)0x01E3C828; -const void * RTTI_DetectSignOut = (void *)0x01E3C850; -const void * RTTI_IMemoryManagerFile = (void *)0x01E3C878; -const void * RTTI_IMemoryManagerFileFactory = (void *)0x01E3C8A8; -const void * RTTI_MemoryManagerFile = (void *)0x01E3C930; -const void * RTTI_SceneGraph = (void *)0x01E3CA38; -const void * RTTI_SeenData = (void *)0x01E1A440; -const void * RTTI_IntSeenData = (void *)0x01E1A460; -const void * RTTI_SpawnHazardEffect = (void *)0x01E3CA88; -const void * RTTI_BSUIMessageData = (void *)0x01E3CAB0; -const void * RTTI_IMovementState = (void *)0x01E3E1A0; -const void * RTTI_IPostAnimationChannelUpdateFunctor = (void *)0x01E3E1F8; -const void * RTTI_IAnimationSetCallbackFunctor = (void *)0x01E3E2C8; -const void * RTTI_Actor = (void *)0x01E14AD8; -const void * RTTI_PackageList__IPackageVisitor = (void *)0x01E3E350; -const void * RTTI_hkpWorldPostSimulationListener = (void *)0x01E3E388; -const void * RTTI_ProcessCallbackAdapter = (void *)0x01E3EB80; -const void * RTTI_SaveLoadMagicCasterVisitor = (void *)0x01E3EC58; -const void * RTTI_SaveGameMagicCasterVisitor = (void *)0x01E3EC90; -const void * RTTI_LoadGameMagicCasterVisitor = (void *)0x01E3ECC8; -const void * RTTI_RevertSelectedSpellFunctor = (void *)0x01E3ED00; -const void * RTTI_HoldWardSpellsActiveEffectVisitor = (void *)0x01E3F4A0; -const void * RTTI_hkpAllCdBodyPairCollector = (void *)0x01E3F4D8; -const void * RTTI_bhkFilteredCdBodyCollector = (void *)0x01E3F508; -const void * RTTI_Actor__ForEachSpellVisitor = (void *)0x01E3F540; -const void * RTTI_InventoryChanges__FindBestSoulGemVisitor = (void *)0x01E3F570; -const void * RTTI_HasSpellVisitor = (void *)0x01E3F678; -const void * RTTI_SumHostileEffectsFunctor = (void *)0x01E3F6A0; -const void * RTTI_ActorMediator = (void *)0x01E3F7C8; -const void * RTTI_IMovementInterface = (void *)0x01E3E1C8; -const void * RTTI_ActorState = (void *)0x01E3E328; -const void * RTTI_BGSVisitProceduresProcess = (void *)0x01E3F9C0; -const void * RTTI_BGSVisitProceduresInitActorAnimPose = (void *)0x01E3F9F0; -const void * RTTI_DetectionListener = (void *)0x01E39278; -const void * RTTI_InstantInteractionCallback = (void *)0x01E3FA30; -const void * RTTI_RunActionAnimationLoadedCallback = (void *)0x01E3FAA8; -const void * RTTI_BGSPerk__FindPerkInRanksVisitor = (void *)0x01E3FBB8; -const void * RTTI_BGSPerk__ApplyPerksVisitor = (void *)0x01E3FBF0; -const void * RTTI_WeaponAnimationLoadedCallback = (void *)0x01E3FC20; -const void * RTTI_BSDoorHavokController = (void *)0x01E3FC98; -const void * RTTI_BSPlayerDistanceCheckController = (void *)0x01E3FCC8; -const void * RTTI_BSSimpleScaleController = (void *)0x01E3FD00; -const void * RTTI_Character = (void *)0x01E39330; -const void * RTTI_HighActorCuller = (void *)0x01E3FDE8; -const void * RTTI_MountInteraction = (void *)0x01E3FE10; -const void * RTTI_BGSPerk__AddPerkVisitor = (void *)0x01E40100; -const void * RTTI_bhkMouseSpringAction = (void *)0x01E40130; -const void * RTTI_PlayerCharacter = (void *)0x01E401D8; -const void * RTTI_IAllowEGMCacheClear = (void *)0x01E40340; -const void * RTTI_hkpFirstCdBodyPairCollector = (void *)0x01E403B8; -const void * RTTI_TargetLock__SetTargetLockFilter = (void *)0x01E40430; -const void * RTTI_PlayerRegionState = (void *)0x01E404B8; -const void * RTTI_IMovementFormIDManager = (void *)0x01E406A0; -const void * RTTI_ProcessListMovementInterface = (void *)0x01E40718; -const void * RTTI_RefrInteraction = (void *)0x01E3FE38; -const void * RTTI_SyncQueueObj = (void *)0x01E3FE60; -const void * RTTI_ActorMover = (void *)0x01E40790; -const void * RTTI_MovementParametersFixed = (void *)0x01E407B8; -const void * RTTI_bhkCharacterCollisionHandler = (void *)0x01E40C80; -const void * RTTI_CharacterCollisionHandler = (void *)0x01E40D10; -const void * RTTI_IMovementAvoidanceManager = (void *)0x01E40F38; -const void * RTTI_MovementAvoidanceManager = (void *)0x01E40FC0; -const void * RTTI_MovementControllerNPC = (void *)0x01E411D8; -const void * RTTI_IMovementMessageInterface = (void *)0x01E41278; -const void * RTTI_IMovementDirectControl = (void *)0x01E41310; -const void * RTTI_IMovementPlannerDirectControl = (void *)0x01E41340; -const void * RTTI_IMovementSelectIdle = (void *)0x01E412E0; -const void * RTTI_IMovementMotionDrivenControl = (void *)0x01E412A8; -const void * RTTI_BSPathingStreamWrite = (void *)0x01E41378; -const void * RTTI_BSPathingStreamSimpleBufferWrite = (void *)0x01E41408; -const void * RTTI_MovementHandlerAgentDirectControl = (void *)0x01E41588; -const void * RTTI_IMovementSetPlayerControls = (void *)0x01E418A8; -const void * RTTI_MovementHandlerAgentPlayerControls = (void *)0x01E418E0; -const void * RTTI_MovementHandlerAgentPlayerControlsActionTrigger = (void *)0x01E41B40; -const void * RTTI_IMovementSetSprinting = (void *)0x01E41DF0; -const void * RTTI_MovementHandlerAgentSprintActionTrigger = (void *)0x01E41E20; -const void * RTTI_MovementHandlerAgentStairsHelper = (void *)0x01E42098; -const void * RTTI_MovementMessage = (void *)0x01E422F0; -const void * RTTI_MovementMessageActorCollision = (void *)0x01E42318; -const void * RTTI_MovementMessageMovementTypeChange = (void *)0x01E425D0; -const void * RTTI_MovementPlannerAgentDirectControl = (void *)0x01E42878; -const void * RTTI_MovementPlannerAgentHorseControls = (void *)0x01E42B30; -const void * RTTI_IMovementSetKeepOffsetFromActor = (void *)0x01E42D90; -const void * RTTI_MovementPlannerAgentKeepOffset = (void *)0x01E42DC8; -const void * RTTI_IMovementSetWarp = (void *)0x01E43010; -const void * RTTI_MovementPlannerAgentWarp = (void *)0x01E43038; -const void * RTTI_MovementTweenerAgentAnimationDriven = (void *)0x01E43278; -const void * RTTI_ITweenerNodeFollowerSetup = (void *)0x01E43548; -const void * RTTI_MovementTweenerAgentNodeFollower = (void *)0x01E43578; -const void * RTTI_PathingStreamLoadGame = (void *)0x01E437D0; -const void * RTTI_PathingStreamSaveGame = (void *)0x01E43800; -const void * RTTI_InputEvent = (void *)0x01E43830; -const void * RTTI_ButtonEvent = (void *)0x01E43858; -const void * RTTI_HeldStateHandler = (void *)0x01E438A0; -const void * RTTI_PlayerControls = (void *)0x01E438C8; -const void * RTTI_MovementHandler = (void *)0x01E43AD8; -const void * RTTI_LookHandler = (void *)0x01E43B00; -const void * RTTI_SprintHandler = (void *)0x01E43B28; -const void * RTTI_ReadyWeaponHandler = (void *)0x01E43B50; -const void * RTTI_AutoMoveHandler = (void *)0x01E43B80; -const void * RTTI_ToggleRunHandler = (void *)0x01E43BA8; -const void * RTTI_ActivateHandler = (void *)0x01E43BD0; -const void * RTTI_JumpHandler = (void *)0x01E43BF8; -const void * RTTI_ShoutHandler = (void *)0x01E43C20; -const void * RTTI_AttackBlockHandler = (void *)0x01E43C48; -const void * RTTI_RunHandler = (void *)0x01E43C78; -const void * RTTI_SneakHandler = (void *)0x01E43CA0; -const void * RTTI_TogglePOVHandler = (void *)0x01E43CC8; -const void * RTTI_IDEvent = (void *)0x01E43880; -const void * RTTI_IStaticAvoidNodeManager = (void *)0x01E43CF0; -const void * RTTI_StaticAvoidNodeManager = (void *)0x01E43D68; -const void * RTTI_AlarmPackage = (void *)0x01E3F998; -const void * RTTI_CustomActorPackageData = (void *)0x01E43F80; -const void * RTTI_EscortActorPackageData = (void *)0x01E43FB0; -const void * RTTI_FleePackage = (void *)0x01E3E300; -const void * RTTI_GuardActorPackageData = (void *)0x01E43FE0; -const void * RTTI_GuardPackageData = (void *)0x01E44010; -const void * RTTI_PatrolActorPackageData = (void *)0x01E44038; -const void * RTTI_SandBoxActorPackageData = (void *)0x01E44068; -const void * RTTI_SpectatorPackage = (void *)0x01E44098; -const void * RTTI_TrespassPackage = (void *)0x01E440C0; -const void * RTTI_ActorKnowledge = (void *)0x01E440E8; -const void * RTTI_DetectionCollector = (void *)0x01E39300; -const void * RTTI_DetectionState = (void *)0x01E44110; -const void * RTTI_WeaponRightSwingHandler = (void *)0x01E44238; -const void * RTTI_WeaponLeftSwingHandler = (void *)0x01E44268; -const void * RTTI_AttackWinStartHandler = (void *)0x01E44298; -const void * RTTI_AttackWinEndHandler = (void *)0x01E442C8; -const void * RTTI_AttackStopHandler = (void *)0x01E442F8; -const void * RTTI_RecoilStopHandler = (void *)0x01E44320; -const void * RTTI_LeftHandSpellFireHandler = (void *)0x01E44348; -const void * RTTI_RightHandSpellFireHandler = (void *)0x01E44378; -const void * RTTI_VoiceSpellFireHandler = (void *)0x01E443A8; -const void * RTTI_LeftHandSpellCastHandler = (void *)0x01E443D8; -const void * RTTI_RightHandSpellCastHandler = (void *)0x01E44408; -const void * RTTI_VoiceSpellCastHandler = (void *)0x01E44438; -const void * RTTI_WeaponBeginDrawRightHandler = (void *)0x01E44468; -const void * RTTI_WeaponBeginSheatheRightHandler = (void *)0x01E444A0; -const void * RTTI_RightHandWeaponDrawHandler = (void *)0x01E444D8; -const void * RTTI_RightHandWeaponSheatheHandler = (void *)0x01E44510; -const void * RTTI_CameraOverrideStartHandler = (void *)0x01E44548; -const void * RTTI_CameraOverrideStopHandler = (void *)0x01E44580; -const void * RTTI_HitFrameHandler = (void *)0x01E445B0; -const void * RTTI_AnticipateAttackHandler = (void *)0x01E445D8; -const void * RTTI_StaggeredStopHandler = (void *)0x01E44608; -const void * RTTI_ChairEnterHandler = (void *)0x01E44638; -const void * RTTI_PlayerChairEnterHandler = (void *)0x01E44660; -const void * RTTI_BedEnterHandler = (void *)0x01E44690; -const void * RTTI_PlayerBedEnterHandler = (void *)0x01E446B8; -const void * RTTI_ChairFurnitureExitHandler = (void *)0x01E446E8; -const void * RTTI_BedFurnitureExitHandler = (void *)0x01E44718; -const void * RTTI_PlayerFurnitureExitHandler = (void *)0x01E44748; -const void * RTTI_KillActorHandler = (void *)0x01E44780; -const void * RTTI_DecapitateHandler = (void *)0x01E447A8; -const void * RTTI_HeadTrackingOnHandler = (void *)0x01E447D0; -const void * RTTI_HeadTrackingOffHandler = (void *)0x01E44800; -const void * RTTI_FlightTakeOffHandler = (void *)0x01E44830; -const void * RTTI_FlightCruisingHandler = (void *)0x01E44860; -const void * RTTI_FlightHoveringHandler = (void *)0x01E44890; -const void * RTTI_FlightLandingHandler = (void *)0x01E448C0; -const void * RTTI_FlightPerchingHandler = (void *)0x01E448F0; -const void * RTTI_FlightLandHandler = (void *)0x01E44920; -const void * RTTI_FlightLandEndHandler = (void *)0x01E44948; -const void * RTTI_FlightActionHandler = (void *)0x01E44978; -const void * RTTI_FlightActionEntryEndHandler = (void *)0x01E449A8; -const void * RTTI_FlightActionEndHandler = (void *)0x01E449E0; -const void * RTTI_FlightActionGrabHandler = (void *)0x01E44A10; -const void * RTTI_FlightActionReleaseHandler = (void *)0x01E44A40; -const void * RTTI_FlightCrashLandStartHandler = (void *)0x01E44A78; -const void * RTTI_BowDrawnHandler = (void *)0x01E44AB0; -const void * RTTI_BowReleaseHandler = (void *)0x01E44AD8; -const void * RTTI_ArrowAttachHandler = (void *)0x01E44B00; -const void * RTTI_ArrowDetachHandler = (void *)0x01E44B30; -const void * RTTI_ArrowReleaseHandler = (void *)0x01E44B60; -const void * RTTI_BowZoomStartHandler = (void *)0x01E44B90; -const void * RTTI_BowZoomStopHandler = (void *)0x01E44BC0; -const void * RTTI_InterruptCastHandler = (void *)0x01E44BF0; -const void * RTTI_EndSummonAnimationHandler = (void *)0x01E44C20; -const void * RTTI_PickNewIdleHandler = (void *)0x01E44C50; -const void * RTTI_DeathStopHandler = (void *)0x01E44C80; -const void * RTTI_ActionActivateDoneHandler = (void *)0x01E44CA8; -const void * RTTI_StopMountCameraHandler = (void *)0x01E44CD8; -const void * RTTI_PairedStopHandler = (void *)0x01E44D08; -const void * RTTI_CameraShakeHandler = (void *)0x01E44D30; -const void * RTTI_KillMoveStartHandler = (void *)0x01E44D60; -const void * RTTI_KillMoveEndHandler = (void *)0x01E44D90; -const void * RTTI_DeathEmoteHandler = (void *)0x01E44DC0; -const void * RTTI_AddRagdollHandler = (void *)0x01E44DE8; -const void * RTTI_MotionDrivenHandler = (void *)0x01E44E10; -const void * RTTI_AnimationDrivenHandler = (void *)0x01E44E40; -const void * RTTI_AllowRotationHandler = (void *)0x01E44E70; -const void * RTTI_RemoveRagdollHandler = (void *)0x01E44EA0; -const void * RTTI_RagdollStartHandler = (void *)0x01E44ED0; -const void * RTTI_GetUpStartHandler = (void *)0x01E44F00; -const void * RTTI_GetUpEndHandler = (void *)0x01E44F28; -const void * RTTI_MountDismountEndHandler = (void *)0x01E44F50; -const void * RTTI_ExitCartBeginHandler = (void *)0x01E44F80; -const void * RTTI_ExitCartEndHandler = (void *)0x01E44FB0; -const void * RTTI_NPCAttachHandler = (void *)0x01E44FE0; -const void * RTTI_NPCDetachHandler = (void *)0x01E45008; -const void * RTTI_EnableCharacterBumperHandler = (void *)0x01E45030; -const void * RTTI_DisableCharacterBumperHandler = (void *)0x01E45068; -const void * RTTI_AnimationObjectLoadHandler = (void *)0x01E450A0; -const void * RTTI_AnimationObjectDrawHandler = (void *)0x01E450D8; -const void * RTTI_EnableCharacterPitchHandler = (void *)0x01E45110; -const void * RTTI_DisableCharacterPitchHandler = (void *)0x01E45148; -const void * RTTI_JumpAnimEventHandler = (void *)0x01E45180; -const void * RTTI_IdleDialogueEnterHandler = (void *)0x01E451B0; -const void * RTTI_IdleDialogueExitHandler = (void *)0x01E451E0; -const void * RTTI_AnimatedCameraStartHandler = (void *)0x01E45210; -const void * RTTI_AnimatedCameraDeltaStartHandler = (void *)0x01E45248; -const void * RTTI_AnimatedCameraEndHandler = (void *)0x01E45280; -const void * RTTI_PitchOverrideStartHandler = (void *)0x01E452B0; -const void * RTTI_PitchOverrideEndHandler = (void *)0x01E452E0; -const void * RTTI_MTStateHandler = (void *)0x01E45310; -const void * RTTI_ZeroPitchHandler = (void *)0x01E45338; -const void * RTTI_VampireFeedEndHandler = (void *)0x01E45360; -const void * RTTI_BGShkMatFadeController = (void *)0x01E52BC0; -const void * RTTI_BSDirectAtModifierInterface = (void *)0x01E52DC8; -const void * RTTI_BSPassByTargetTriggerModifierInterface = (void *)0x01E53038; -const void * RTTI_BSRagdollContactListenerModifierInterface = (void *)0x01E53360; -const void * RTTI_ArrowProjectile = (void *)0x01E536A8; -const void * RTTI_BarrierPhantomCallbackShape = (void *)0x01E536F8; -const void * RTTI_BarrierProjectile = (void *)0x01E53730; -const void * RTTI_bhkSPCollisionObject = (void *)0x01E53758; -const void * RTTI_BeamProjectile = (void *)0x01E53788; -const void * RTTI_ConeProjectile = (void *)0x01E53838; -const void * RTTI_Explosion = (void *)0x01E3B6A8; -const void * RTTI_hkpFixedBufferCdPointCollector = (void *)0x01E53860; -const void * RTTI_FlameProjectile = (void *)0x01E538E8; -const void * RTTI_GrenadeProjectile = (void *)0x01E53910; -const void * RTTI_Hazard = (void *)0x01E53938; -const void * RTTI_MissileProjectile = (void *)0x01E536D0; -const void * RTTI_hkHingeConstraintCinfo = (void *)0x01E53958; -const void * RTTI_bhkHingeConstraint = (void *)0x01E53988; -const void * RTTI_Projectile = (void *)0x01E3B630; -const void * RTTI_ProjectilePickCache = (void *)0x01E539B8; -const void * RTTI_HealthDamageFunctor = (void *)0x01E539E8; -const void * RTTI_VATS__ICommandListVisitor = (void *)0x01E53A18; -const void * RTTI_CombatAimController = (void *)0x01E53A48; -const void * RTTI_CombatObject = (void *)0x01E53AA8; -const void * RTTI_CombatAimControllerBase = (void *)0x01E53A78; -const void * RTTI_CombatTrackTargetAimController = (void *)0x01E53AD0; -const void * RTTI_CombatMeleeAimController = (void *)0x01E53B08; -const void * RTTI_CombatProjectileAimController = (void *)0x01E53B38; -const void * RTTI_CombatDisableAimController = (void *)0x01E53B70; -const void * RTTI_CombatArea = (void *)0x01E54558; -const void * RTTI_CombatAreaRadius = (void *)0x01E54580; -const void * RTTI_CombatAreaReference = (void *)0x01E545A8; -const void * RTTI_CombatAreaStandard = (void *)0x01E545D8; -const void * RTTI_CombatAreaHoldPosition = (void *)0x01E54608; -const void * RTTI_CombatBlackboardKeyBase = (void *)0x01E54D48; -const void * RTTI_CombatCoverSearchResult = (void *)0x01E54D78; -const void * RTTI_CombatCoverLocation = (void *)0x01E54DA8; -const void * RTTI_CombatCoverSearchDebugData = (void *)0x01E54DD8; -const void * RTTI_CombatCoverSearch = (void *)0x01E54E10; -const void * RTTI_CombatGroupDetectionListener = (void *)0x01E55568; -const void * RTTI_GatherSpellsFunctor = (void *)0x01E555A0; -const void * RTTI_CombatInventoryItem = (void *)0x01E55718; -const void * RTTI_CombatInventoryItemComposite = (void *)0x01E55748; -const void * RTTI_CombatInventoryItemMelee = (void *)0x01E55780; -const void * RTTI_CombatInventoryItemRanged = (void *)0x01E557B0; -const void * RTTI_CombatInventoryItemShield = (void *)0x01E557E0; -const void * RTTI_CombatInventoryItemOneHandedBlock = (void *)0x01E55810; -const void * RTTI_CombatInventoryItemTorch = (void *)0x01E55848; -const void * RTTI_CombatInventoryItemMagic = (void *)0x01E55878; -const void * RTTI_CombatMagicCaster = (void *)0x01E56228; -const void * RTTI_CombatInventoryItemShout = (void *)0x01E56250; -const void * RTTI_CombatInventoryItemStaff = (void *)0x01E56280; -const void * RTTI_CombatInventoryItemPotion = (void *)0x01E562B0; -const void * RTTI_CombatInventoryItemScroll = (void *)0x01E562E0; -const void * RTTI_CombatMagicItemData = (void *)0x01E56310; -const void * RTTI_CombatMagicItemSkillChecker = (void *)0x01E56340; -const void * RTTI_CombatMagicCasterOffensive = (void *)0x01E56378; -const void * RTTI_CombatMagicCasterWard = (void *)0x01E563B0; -const void * RTTI_CombatMagicCasterRestore = (void *)0x01E563E0; -const void * RTTI_CombatMagicCasterSummon = (void *)0x01E56410; -const void * RTTI_CombatMagicCasterStagger = (void *)0x01E56440; -const void * RTTI_CombatMagicCasterDisarm = (void *)0x01E56470; -const void * RTTI_CombatMagicCasterCloak = (void *)0x01E564A0; -const void * RTTI_CombatMagicCasterLight = (void *)0x01E564D0; -const void * RTTI_CombatMagicCasterInvisibility = (void *)0x01E56500; -const void * RTTI_CombatMagicCasterBoundItem = (void *)0x01E56538; -const void * RTTI_CombatMagicCasterArmor = (void *)0x01E56570; -const void * RTTI_CombatMagicCasterTargetEffect = (void *)0x01E565A0; -const void * RTTI_CombatMagicCasterReanimate = (void *)0x01E565D8; -const void * RTTI_CombatMagicCasterParalyze = (void *)0x01E56610; -const void * RTTI_CombatMagicCasterScript = (void *)0x01E56640; -const void * RTTI_CombatPathingRequest = (void *)0x01E67A80; -const void * RTTI_CombatTargetLocationSearchResult = (void *)0x01E67AB0; -const void * RTTI_CombatTargetLocation = (void *)0x01E67AE8; -const void * RTTI_CombatTargetLocationSearch = (void *)0x01E67B18; -const void * RTTI_CombatPath = (void *)0x01E67B50; -const void * RTTI_CombatTargetSelector = (void *)0x01E69000; -const void * RTTI_CombatTargetSelectorStandard = (void *)0x01E69030; -const void * RTTI_CombatTargetSelectorFixed = (void *)0x01E69068; -const void * RTTI_CombatThreat = (void *)0x01E69468; -const void * RTTI_hkpClosestCdPointCollector = (void *)0x01E69640; -const void * RTTI_CombatBehaviorResource = (void *)0x01E69728; -const void * RTTI_CombatBehaviorTreeRootNode = (void *)0x01E69758; -const void * RTTI_CombatBehaviorTreeLinkNode = (void *)0x01E69790; -const void * RTTI_CombatBehaviorTree = (void *)0x01E37080; -const void * RTTI_CombatBehaviorTreeCombat = (void *)0x01E697C8; -const void * RTTI_CombatBehaviorTreeNode = (void *)0x01E37020; -const void * RTTI_CombatBehaviorTreeAcquireWeapon = (void *)0x01E698A8; -const void * RTTI_CombatBehaviorTreeWrapperNode = (void *)0x01E6A068; -const void * RTTI_CombatBehaviorTreeAction = (void *)0x01E6A0A0; -const void * RTTI_CombatBehaviorTreeActionEquipmentSelector = (void *)0x01E6A0D0; -const void * RTTI_CombatBehaviorTreeDodgeThreat = (void *)0x01E6AC38; -const void * RTTI_CombatBehaviorTreeBlock = (void *)0x01E6AEA8; -const void * RTTI_CombatPathSpeedController = (void *)0x01E6B358; -const void * RTTI_CombatApproachTargetSpeedController = (void *)0x01E6B388; -const void * RTTI_CombatBehaviorTreeCloseMovement = (void *)0x01E6B3C8; -const void * RTTI_CombatBehaviorTreeFindAttackLocation = (void *)0x01E6C4D0; -const void * RTTI_CombatBehaviorTreeFlankingMovement = (void *)0x01E6D610; -const void * RTTI_CombatFlankingSearchData = (void *)0x01E6D650; -const void * RTTI_CombatBehaviorTreeFlee = (void *)0x01E6F600; -const void * RTTI_CombatBehaviorTreeHide = (void *)0x01E70BC0; -const void * RTTI_CombatBehaviorTreeFlight = (void *)0x01E719A0; -const void * RTTI_DiveBombSpeedController = (void *)0x01E719D0; -const void * RTTI_CombatBehaviorTreeLowCombat = (void *)0x01E72AF0; -const void * RTTI_CombatBehaviorTreeMagic = (void *)0x01E73030; -const void * RTTI_CombatBehaviorTreeMelee = (void *)0x01E736C0; -const void * RTTI_CombatDisableActionController = (void *)0x01E739B8; -const void * RTTI_CombatBehaviorTreeCheckUnreachableTarget = (void *)0x01E739F0; -const void * RTTI_CombatBehaviorTreeReturnToCombatArea = (void *)0x01E73A30; -const void * RTTI_CombatBehaviorTreeExitWater = (void *)0x01E745E0; -const void * RTTI_CombatBehaviorTreeMovement = (void *)0x01E757D0; -const void * RTTI_CombatBehaviorTreeRangedMovement = (void *)0x01E75EB0; -const void * RTTI_CombatBehaviorTreeSearch = (void *)0x01E76288; -const void * RTTI_CombatSearchLockData = (void *)0x01E76D70; -const void * RTTI_CombatBehaviorTreeShout = (void *)0x01E784A0; -const void * RTTI_CombatBehaviorTreeUseCover = (void *)0x01E787B0; -const void * RTTI_CombatBehaviorTreeUsePotion = (void *)0x01E79810; -const void * RTTI_IPathBuilder = (void *)0x01E67B78; -const void * RTTI_CombatNavmeshSearch = (void *)0x01E68E08; -const void * RTTI_CombatPathBuilder = (void *)0x01E68D40; -const void * RTTI_CombatPathBuilderStandard = (void *)0x01E68D10; -const void * RTTI_CombatPathBuilderOpen = (void *)0x01E6C3F0; -const void * RTTI_CombatPathingDebugData = (void *)0x01E79AA8; -const void * RTTI_CombatPathingRequestStandard = (void *)0x01E79AD8; -const void * RTTI_CombatPathingRequestAdapter = (void *)0x01E79B10; -const void * RTTI_CombatPathingRequestMultiGoal = (void *)0x01E79B48; -const void * RTTI_HorseCameraState = (void *)0x01E7E000; -const void * RTTI_FirstPersonState = (void *)0x01E7E028; -const void * RTTI_PlayerCamera = (void *)0x01E7E050; -const void * RTTI_AutoVanityState = (void *)0x01E7E278; -const void * RTTI_FreeCameraState = (void *)0x01E7E2A0; -const void * RTTI_IronSightsState = (void *)0x01E7E2C8; -const void * RTTI_FurnitureCameraState = (void *)0x01E7E2F0; -const void * RTTI_PlayerCameraTransitionState = (void *)0x01E7E320; -const void * RTTI_BleedoutCameraState = (void *)0x01E7E358; -const void * RTTI_TweenMenuCameraState = (void *)0x01E7E388; -const void * RTTI_VATSCameraState = (void *)0x01E7E3B8; -const void * RTTI_FxResponseArgsBase = (void *)0x01E7E3E0; -const void * RTTI_FxResponseArgsList = (void *)0x01E7E410; -const void * RTTI_StandardItemData = (void *)0x01E7E440; -const void * RTTI_BarterMenu = (void *)0x01E7E468; -const void * RTTI_BookMenu = (void *)0x01E7E550; -const void * RTTI_IStringForwarder = (void *)0x01E7E570; -const void * RTTI_Console = (void *)0x01E7E598; -const void * RTTI_ConsoleNativeUIMenu = (void *)0x01E7E5F0; -const void * RTTI_ContainerMenu = (void *)0x01E7E620; -const void * RTTI_FxDelegateHandler = (void *)0x01E37998; -const void * RTTI_CraftingSubMenus__CraftingSubMenu = (void *)0x01E7E648; -const void * RTTI_CraftingMenu = (void *)0x01E7E680; -const void * RTTI_CraftingSubMenus__ConstructibleObjectMenu = (void *)0x01E7E6A8; -const void * RTTI_CraftingSubMenus__ConstructibleObjectMenu__CreationConfirmCallback = (void *)0x01E7E6F0; -const void * RTTI_CraftingSubMenus__SmithingMenu = (void *)0x01E7E748; -const void * RTTI_CraftingSubMenus__SmithingMenu__SmithingConfirmCallback = (void *)0x01E7E780; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu = (void *)0x01E7E7D0; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCallback = (void *)0x01E7E810; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuExitCallback = (void *)0x01E7E860; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCraftCallback = (void *)0x01E7E8C0; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuDisenchantCallback = (void *)0x01E7E920; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__CategoryListEntry = (void *)0x01E7E980; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__ItemChangeEntry = (void *)0x01E7E9D0; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantmentEntry = (void *)0x01E7EA20; -const void * RTTI_CraftingSubMenus__EnchantConstructMenu__CreateEffectFunctor = (void *)0x01E7EA70; -const void * RTTI_CraftingSubMenus__AlchemyMenu = (void *)0x01E7EAC0; -const void * RTTI_CraftingSubMenus__AlchemyMenu__CraftItemCallback = (void *)0x01E7EB00; -const void * RTTI_CraftingSubMenus__AlchemyMenu__QuitMenuCallback = (void *)0x01E7EB50; -const void * RTTI_CraftingSubMenus__AlchemyMenu__ModEffectivenessFunctor = (void *)0x01E7EBA0; -const void * RTTI_CreditsMenu = (void *)0x01E7EC48; -const void * RTTI_CursorMenu = (void *)0x01E7EC70; -const void * RTTI_DialogueMenu = (void *)0x01E7EC98; -const void * RTTI_FaderMenu = (void *)0x01E7ECC0; -const void * RTTI_FavoritesMenu = (void *)0x01E7ECE0; -const void * RTTI_GiftMenu = (void *)0x01E7ED08; -const void * RTTI_HUDObject = (void *)0x01E7ED68; -const void * RTTI_HUDMeter = (void *)0x01E7ED88; -const void * RTTI_HUDMenu = (void *)0x01E7EDA8; -const void * RTTI_HUDNotifications = (void *)0x01E7EDC8; -const void * RTTI_ActorValueMeter = (void *)0x01E7EDF0; -const void * RTTI_ShoutMeter = (void *)0x01E7EE18; -const void * RTTI_HUDChargeMeter = (void *)0x01E7EE40; -const void * RTTI_Compass = (void *)0x01E7EE68; -const void * RTTI_EnemyHealth = (void *)0x01E7EE88; -const void * RTTI_FloatingQuestMarker = (void *)0x01E7EEB0; -const void * RTTI_StealthMeter = (void *)0x01E7EEE0; -const void * RTTI_HelpMessageManager = (void *)0x01E7EF08; -const void * RTTI_NewInventoryMenuItemLoadTask = (void *)0x01E7F100; -const void * RTTI_Inventory3DManager = (void *)0x01E7F138; -const void * RTTI_InventoryMenu = (void *)0x01E7F3D8; -const void * RTTI_LevelUpMenu = (void *)0x01E7F448; -const void * RTTI_LoadingMenu = (void *)0x01E7F4B8; -const void * RTTI_LockpickingMenu = (void *)0x01E7F510; -const void * RTTI_MagicItemData = (void *)0x01E7F568; -const void * RTTI_MagicMenu = (void *)0x01E7F590; -const void * RTTI_MainMenu = (void *)0x01E7F828; -const void * RTTI_MenuControls = (void *)0x01E7FBE8; -const void * RTTI_ClickHandler = (void *)0x01E7FDA8; -const void * RTTI_DirectionHandler = (void *)0x01E7FDD0; -const void * RTTI_ConsoleOpenHandler = (void *)0x01E7FDF8; -const void * RTTI_QuickSaveLoadHandler = (void *)0x01E7FE28; -const void * RTTI_MenuOpenHandler = (void *)0x01E7FE58; -const void * RTTI_FavoritesHandler = (void *)0x01E7FE80; -const void * RTTI_ScreenshotHandler = (void *)0x01E7FEA8; -const void * RTTI_MessageBoxMenu = (void *)0x01E7FED0; -const void * RTTI_MistMenu = (void *)0x01E7FF38; -const void * RTTI_ThumbstickEvent = (void *)0x01E7FF58; -const void * RTTI_RaceSexCamera = (void *)0x01E7FF80; -const void * RTTI_RaceSexMenu = (void *)0x01E7FFA8; -const void * RTTI_SafeZoneMenu = (void *)0x01E800E0; -const void * RTTI_SleepWaitMenu = (void *)0x01E80108; -const void * RTTI_StatsNode = (void *)0x01E80130; -const void * RTTI_StatsMenu = (void *)0x01E80150; -const void * RTTI_LineNode = (void *)0x01E80170; -const void * RTTI_StreamingInstallMenu = (void *)0x01E80390; -const void * RTTI_TitleSequenceMenu = (void *)0x01E803C0; -const void * RTTI_TrainingMenu = (void *)0x01E803E8; -const void * RTTI_TutorialMenu = (void *)0x01E80410; -const void * RTTI_TweenMenu = (void *)0x01E80438; -const void * RTTI_UIBlurManager = (void *)0x01E80458; -const void * RTTI_HUDData = (void *)0x01E80628; -const void * RTTI_ConsoleData = (void *)0x01E80648; -const void * RTTI_FaderData = (void *)0x01E80670; -const void * RTTI_InventoryUpdateData = (void *)0x01E80690; -const void * RTTI_RefHandleUIData = (void *)0x01E806C0; -const void * RTTI_TESFormUIData = (void *)0x01E806E8; -const void * RTTI_LoadingMenuData = (void *)0x01E80710; -const void * RTTI_KinectStateChangeData = (void *)0x01E80738; -const void * RTTI_KinectUserEventData = (void *)0x01E80768; -const void * RTTI_UISaveLoadManager = (void *)0x01E81758; -const void * RTTI_bgs__saveload__BuildSaveListRequest = (void *)0x01E81940; -const void * RTTI_LocalMapMenu__InputHandler = (void *)0x01E819B0; -const void * RTTI_TransitionState = (void *)0x01E81A30; -const void * RTTI_MapCameraStates__Exit = (void *)0x01E81A58; -const void * RTTI_MapCameraStates__Transition = (void *)0x01E81A88; -const void * RTTI_IMapCameraCallbacks = (void *)0x01E81AC0; -const void * RTTI_MapCamera = (void *)0x01E81AF0; -const void * RTTI_MapCameraStates__World = (void *)0x01E81BA8; -const void * RTTI_MapMenu = (void *)0x01E81BD8; -const void * RTTI_MapInputHandler = (void *)0x01E81BF8; -const void * RTTI_MapLookHandler = (void *)0x01E81C20; -const void * RTTI_MapMoveHandler = (void *)0x01E81C48; -const void * RTTI_MapZoomHandler = (void *)0x01E81C70; -const void * RTTI_JournalTab = (void *)0x01E81D68; -const void * RTTI_Journal_QuestsTab = (void *)0x01E81D90; -const void * RTTI_ModManagerData = (void *)0x01E82088; -const void * RTTI_Journal_SystemTab = (void *)0x01E820B0; -const void * RTTI_JournalInputMapping__RemapHandler = (void *)0x01E82118; -const void * RTTI_Journal_StatsTab = (void *)0x01E82150; -const void * RTTI_JournalMenu = (void *)0x01E82178; -const void * RTTI_SkyrimScript__Internal__CallbackList = (void *)0x01E821D8; -const void * RTTI_SkyrimScript__Internal__AnimationCallbacks = (void *)0x01E82218; -const void * RTTI_SkyrimScript__DelayFunctor = (void *)0x01E82258; -const void * RTTI_SkyrimScript__DelayFunctorFactory = (void *)0x01E82288; -const void * RTTI_SkyrimScript__Logger = (void *)0x01E823A8; -const void * RTTI_SkyrimScript__PathingCallbackMgr = (void *)0x01E824E8; -const void * RTTI_SkyrimScript__Internal__IProfileCallQuery = (void *)0x01E82798; -const void * RTTI_SkyrimScript__Profiler = (void *)0x01E827D8; -const void * RTTI_SkyrimScript__QuestCallbackMgr = (void *)0x01E828F0; -const void * RTTI_SkyrimScript__SavePatcher = (void *)0x01E82B38; -const void * RTTI_SkyrimScript__SoundCallbackMgr = (void *)0x01E82BA0; -const void * RTTI_BSScript__IStore = (void *)0x01E82DE8; -const void * RTTI_SkyrimScript__Store = (void *)0x01E82E10; -const void * RTTI_BSResource__ArchiveFoundStreamCB = (void *)0x01E84220; -const void * RTTI_BSCounterStorage = (void *)0x01E842B0; -const void * RTTI_BSScript__IObjectHandlePolicy = (void *)0x01E842D8; -const void * RTTI_BSScript__IStackCallbackSaveInterface = (void *)0x01E84310; -const void * RTTI_BSScript__IStackCallbackFunctor = (void *)0x01E84350; -const void * RTTI_BSScript__IProfilePolicy = (void *)0x01E82768; -const void * RTTI_BSScript__ILoader = (void *)0x01E84388; -const void * RTTI_BSScript__ObjectBindPolicy = (void *)0x01E843B0; -const void * RTTI_BSScript__IFreezeQuery = (void *)0x01E843E0; -const void * RTTI_BSScript__ISavePatcherInterface = (void *)0x01E82B68; -const void * RTTI_SkyrimScript__HandlePolicy = (void *)0x01E84F18; -const void * RTTI_SkyrimScript__SaveFileHandleReaderWriter = (void *)0x01E84F48; -const void * RTTI_SkyrimScript__ObjectBindPolicy = (void *)0x01E84F88; -const void * RTTI_SkyrimVM = (void *)0x01E84FC0; -const void * RTTI_SkyrimVM__ISendEventFilter = (void *)0x01E851B8; -const void * RTTI_SkyrimVM__EventRelayFunctor = (void *)0x01E851E8; -const void * RTTI_SkyrimVM__EffectEventRelayFunctor = (void *)0x01E85220; -const void * RTTI_SkyrimVM__SleepStartEventFunctor = (void *)0x01E85258; -const void * RTTI_SkyrimVM__SleepStopEventFunctor = (void *)0x01E85290; -const void * RTTI_SkyrimVM__InventoryEventFilter = (void *)0x01E85580; -const void * RTTI_IGiftMenuScriptCallback = (void *)0x01E85FA8; -const void * RTTI_SkyrimSpeechRecognition = (void *)0x01E8E718; -const void * RTTI_hkaFootPlacementIkSolver = (void *)0x01E8EA80; -const void * RTTI_hkReferencedObjectLock = (void *)0x01E8EAB0; -const void * RTTI_hkMemoryAllocator = (void *)0x01E8EB20; -const void * RTTI_hkLifoAllocator = (void *)0x01E8EB48; -const void * RTTI_hkContainerTempAllocator__Allocator = (void *)0x01E8EB70; -const void * RTTI_hkContainerHeapAllocator__Allocator = (void *)0x01E8EBB0; -const void * RTTI_hkContainerDebugAllocator__Allocator = (void *)0x01E8EBF0; -const void * RTTI_hkErrStream = (void *)0x01E8EC50; -const void * RTTI_hkLocalFrameGroup = (void *)0x01E8EC78; -const void * RTTI_hkLocalFrame = (void *)0x01E8ECA0; -const void * RTTI_hkSimpleLocalFrame = (void *)0x01E8ECC8; -const void * RTTI_hkBufferedStreamReader = (void *)0x01E8ECF8; -const void * RTTI_hkBufferedStreamWriter = (void *)0x01E8ED28; -const void * RTTI_hkSeekableStreamReader = (void *)0x01E8ED58; -const void * RTTI_hkStdioStreamReader = (void *)0x01E8ED88; -const void * RTTI_hkStdioStreamWriter = (void *)0x01E8EDB8; -const void * RTTI_hkOstream = (void *)0x01E8EC30; -const void * RTTI_hkMemoryTrackStreamWriter = (void *)0x01E8EDE8; -const void * RTTI_hkArrayStreamWriter = (void *)0x01E8EE18; -const void * RTTI_hkStatisticsCollector = (void *)0x01E8EE48; -const void * RTTI_hkCrc32StreamWriter = (void *)0x01E8EE78; -const void * RTTI_hkStackTracer = (void *)0x01E8EEE0; -const void * RTTI_hkDummySingleton = (void *)0x01E8EF40; -const void * RTTI_hkTrackerSerializableScanSnapshot = (void *)0x01E8EFA0; -const void * RTTI_hkTrackerTypeTreeTextCache = (void *)0x01E8EFD8; -const void * RTTI_hkMemoryTrackStreamReader = (void *)0x01E8F010; -const void * RTTI_hkOArchive = (void *)0x01E8F040; -const void * RTTI_hkDefaultError = (void *)0x01E8F068; -const void * RTTI_hkSocket = (void *)0x01E8F090; -const void * RTTI_hkSocket__ReaderAdapter = (void *)0x01E8F0B0; -const void * RTTI_hkSocket__WriterAdapter = (void *)0x01E8F0E0; -const void * RTTI_hkTrackerScanSnapshot = (void *)0x01E8F110; -const void * RTTI_hkBsdSocket = (void *)0x01E8F140; -const void * RTTI_hkTrackerTypeTreeCache = (void *)0x01E8F168; -const void * RTTI_hkMemoryTracker = (void *)0x01E8F198; -const void * RTTI_hkDefaultMemoryTracker = (void *)0x01E8F1C0; -const void * RTTI_hkMemorySystem = (void *)0x01E8F1F0; -const void * RTTI_hkDummyMemoryTrackerImpl = (void *)0x01E8F218; -const void * RTTI_hkTrackerArrayLayoutHandler = (void *)0x01E8F248; -const void * RTTI_hkTrackerStringPtrLayoutHandler = (void *)0x01E8F2B0; -const void * RTTI_hkTrackerCachedHashMapLayoutHandler = (void *)0x01E8F2E8; -const void * RTTI_hkTrackerStringMapLayoutHandler = (void *)0x01E8F328; -const void * RTTI_hkTrackerTypeLayout = (void *)0x01E8F360; -const void * RTTI_hkTrackerLayoutCalculator = (void *)0x01E8F390; -const void * RTTI_hkTrackerLayoutHandler = (void *)0x01E8F280; -const void * RTTI_hkTrackerRefPtrLayoutHandler = (void *)0x01E8F3C0; -const void * RTTI_hkbRagdollDriver = (void *)0x01E8F3F8; -const void * RTTI_hkbNode = (void *)0x01E8F420; -const void * RTTI_hkbBindable = (void *)0x01E8F440; -const void * RTTI_hkbBehaviorGraph = (void *)0x01E8F468; -const void * RTTI_hkbNodeInternalStateInfo = (void *)0x01E8F4B8; -const void * RTTI_hkbGenerator = (void *)0x01E8F490; -const void * RTTI_hkbVariableValueSet = (void *)0x01E8F4E8; -const void * RTTI_hkbBehaviorGraph__GlobalTransitionData = (void *)0x01E8F518; -const void * RTTI_hkbFootIkDriver = (void *)0x01E8F558; -const void * RTTI_hkbAnimationBindingSet = (void *)0x01E8F580; -const void * RTTI_hkbCharacter = (void *)0x01E8F5B0; -const void * RTTI_hkbWorld = (void *)0x01E8F5D8; -const void * RTTI_hkbSceneModifier = (void *)0x01E8F5F8; -const void * RTTI_hkbFootIkSceneModifier = (void *)0x01E8F620; -const void * RTTI_hkbHandIkSceneModifier = (void *)0x01E8F650; -const void * RTTI_hkbHandIkFixupSceneModifier = (void *)0x01E8F680; -const void * RTTI_hkbBindableCollector = (void *)0x01E8F6B8; -const void * RTTI_hkbBindable__CacheBindablesCollector = (void *)0x01E8F6E8; -const void * RTTI_hkbNode__BoundVariablesCollector = (void *)0x01E8F728; -const void * RTTI_hkbAttachmentSetup = (void *)0x01E8F760; -const void * RTTI_hkbEventPayload = (void *)0x01E8F790; -const void * RTTI_hkbRealEventPayload = (void *)0x01E8F7B8; -const void * RTTI_hkbIntEventPayload = (void *)0x01E8F7E8; -const void * RTTI_hkbStringEventPayload = (void *)0x01E8F818; -const void * RTTI_hkbNamedEventPayload = (void *)0x01E8F848; -const void * RTTI_hkbNamedRealEventPayload = (void *)0x01E8F878; -const void * RTTI_hkbNamedIntEventPayload = (void *)0x01E8F8A8; -const void * RTTI_hkbNamedStringEventPayload = (void *)0x01E8F8D8; -const void * RTTI_hkbEventPayloadList = (void *)0x01E8F910; -const void * RTTI_hkbVariableBindingSet = (void *)0x01E8F940; -const void * RTTI_hkbHandle = (void *)0x01E8F970; -const void * RTTI_hkbHandIkDriverInfo = (void *)0x01E8F990; -const void * RTTI_hkbTransitionEffect = (void *)0x01E8F9C0; -const void * RTTI_hkbProjectStringData = (void *)0x01E8F9F0; -const void * RTTI_hkbBehaviorGraphInternalState = (void *)0x01E8FA20; -const void * RTTI_hkbBehaviorGraphData = (void *)0x01E8FA58; -const void * RTTI_hkbStateListener = (void *)0x01E8FA88; -const void * RTTI_hkbSequence = (void *)0x01E8FAB0; -const void * RTTI_hkbBehaviorGraphStringData = (void *)0x01E8FB00; -const void * RTTI_hkbBoneIndexArray = (void *)0x01E8FB38; -const void * RTTI_hkbBoneWeightArray = (void *)0x01E8FB60; -const void * RTTI_hkbCharacterStringData = (void *)0x01E8FB90; -const void * RTTI_hkbFootIkDriverInfo = (void *)0x01E8FBC0; -const void * RTTI_hkbMirroredSkeletonInfo = (void *)0x01E8FBF0; -const void * RTTI_hkbCondition = (void *)0x01E8FC20; -const void * RTTI_hkbCompiledExpressionSet = (void *)0x01E8FC48; -const void * RTTI_hkbExpressionCondition = (void *)0x01E8FC78; -const void * RTTI_hkbStringCondition = (void *)0x01E8FCA8; -const void * RTTI_hkbBehaviorReferenceGenerator = (void *)0x01E8FCD8; -const void * RTTI_hkbBlenderGeneratorChild = (void *)0x01E8FD10; -const void * RTTI_hkbBlenderGenerator = (void *)0x01E8FD40; -const void * RTTI_hkbBlenderGeneratorInternalState = (void *)0x01E8FD70; -const void * RTTI_hkbClipTriggerArray = (void *)0x01E8FDA8; -const void * RTTI_hkbClipGeneratorInternalState = (void *)0x01E8FDD8; -const void * RTTI_hkbRegisteredGenerator = (void *)0x01E8FE10; -const void * RTTI_hkbManualSelectorGenerator = (void *)0x01E8FE40; -const void * RTTI_hkbManualSelectorGeneratorInternalState = (void *)0x01E8FE78; -const void * RTTI_hkbModifier = (void *)0x01E8FAD8; -const void * RTTI_hkbModifierGenerator = (void *)0x01E8FEB8; -const void * RTTI_hkbPoseMatchingGenerator = (void *)0x01E8FEE8; -const void * RTTI_hkbPoseMatchingGeneratorInternalState = (void *)0x01E8FF18; -const void * RTTI_hkbReferencePoseGenerator = (void *)0x01E8FF58; -const void * RTTI_hkbAttachmentModifier = (void *)0x01E8FF88; -const void * RTTI_hkbAttributeModifier = (void *)0x01E8FFB8; -const void * RTTI_hkbCharacterControllerModifier = (void *)0x01E8FFE8; -const void * RTTI_hkbCharacterControllerModifierInternalState = (void *)0x01E90020; -const void * RTTI_hkbCombineTransformsModifier = (void *)0x01E90068; -const void * RTTI_hkbCombineTransformsModifierInternalState = (void *)0x01E900A0; -const void * RTTI_hkbComputeDirectionModifier = (void *)0x01E900E0; -const void * RTTI_hkbComputeDirectionModifierInternalState = (void *)0x01E90118; -const void * RTTI_hkbComputeRotationFromAxisAngleModifier = (void *)0x01E90158; -const void * RTTI_hkbComputeRotationFromAxisAngleModifierInternalState = (void *)0x01E901A0; -const void * RTTI_hkbComputeRotationToTargetModifier = (void *)0x01E901F0; -const void * RTTI_hkbComputeRotationToTargetModifierInternalState = (void *)0x01E90230; -const void * RTTI_hkbDampingModifier = (void *)0x01E90278; -const void * RTTI_hkbDampingModifierInternalState = (void *)0x01E902A8; -const void * RTTI_hkbModifierWrapper = (void *)0x01E902E0; -const void * RTTI_hkbDelayedModifier = (void *)0x01E90310; -const void * RTTI_hkbDelayedModifierInternalState = (void *)0x01E90340; -const void * RTTI_hkbDetectCloseToGroundModifier = (void *)0x01E90378; -const void * RTTI_hkbDetectCloseToGroundModifierInternalState = (void *)0x01E903B0; -const void * RTTI_hkbExpressionDataArray = (void *)0x01E903F8; -const void * RTTI_hkbEvaluateExpressionModifier = (void *)0x01E90428; -const void * RTTI_hkbEvaluateExpressionModifierInternalState = (void *)0x01E90460; -const void * RTTI_hkbEvaluateHandleModifier = (void *)0x01E904A8; -const void * RTTI_hkbEventDrivenModifier = (void *)0x01E904D8; -const void * RTTI_hkbEventDrivenModifierInternalState = (void *)0x01E90508; -const void * RTTI_hkbEventRangeDataArray = (void *)0x01E90548; -const void * RTTI_hkbEventsFromRangeModifier = (void *)0x01E90578; -const void * RTTI_hkbEventsFromRangeModifierInternalState = (void *)0x01E905B0; -const void * RTTI_hkbFootIkControlsModifier = (void *)0x01E905F0; -const void * RTTI_hkbFootIkModifier = (void *)0x01E90620; -const void * RTTI_hkbGetHandleOnBoneModifier = (void *)0x01E90648; -const void * RTTI_hkbGetUpModifier = (void *)0x01E90680; -const void * RTTI_hkbGetUpModifierInternalState = (void *)0x01E906A8; -const void * RTTI_hkbGetWorldFromModelModifier = (void *)0x01E906E0; -const void * RTTI_hkbGetWorldFromModelModifierInternalState = (void *)0x01E90720; -const void * RTTI_hkbHandIkControlsModifier = (void *)0x01E90760; -const void * RTTI_hkbHandIkModifier = (void *)0x01E90790; -const void * RTTI_hkbModifierList = (void *)0x01E907B8; -const void * RTTI_hkbLookAtModifier = (void *)0x01E907E0; -const void * RTTI_hkbLookAtModifierInternalState = (void *)0x01E90808; -const void * RTTI_hkbMirrorModifier = (void *)0x01E90840; -const void * RTTI_hkbMoveCharacterModifier = (void *)0x01E90868; -const void * RTTI_hkbMoveCharacterModifierInternalState = (void *)0x01E90898; -const void * RTTI_hkbProxyModifier = (void *)0x01E908D8; -const void * RTTI_hkbExtractRagdollPoseModifier = (void *)0x01E90900; -const void * RTTI_hkbKeyframeBonesModifier = (void *)0x01E90938; -const void * RTTI_hkbPoweredRagdollControlsModifier = (void *)0x01E90968; -const void * RTTI_hkbRigidBodyRagdollControlsModifier = (void *)0x01E909A0; -const void * RTTI_hkbRotateCharacterModifier = (void *)0x01E909E0; -const void * RTTI_hkbRotateCharacterModifierInternalState = (void *)0x01E90A18; -const void * RTTI_hkbSenseHandleModifier = (void *)0x01E90A58; -const void * RTTI_hkbSetWorldFromModelModifier = (void *)0x01E90A88; -const void * RTTI_hkbTimerModifier = (void *)0x01E90AC0; -const void * RTTI_hkbTimerModifierInternalState = (void *)0x01E90AE8; -const void * RTTI_hkbTransformVectorModifier = (void *)0x01E90B20; -const void * RTTI_hkbTransformVectorModifierInternalState = (void *)0x01E90B58; -const void * RTTI_hkbTwistModifier = (void *)0x01E90B98; -const void * RTTI_hkbSequenceStringData = (void *)0x01E90BC0; -const void * RTTI_hkbEventSequencedData = (void *)0x01E90BF0; -const void * RTTI_hkbRealVariableSequencedData = (void *)0x01E90C48; -const void * RTTI_hkbBoolVariableSequencedData = (void *)0x01E90C80; -const void * RTTI_hkbIntVariableSequencedData = (void *)0x01E90CB8; -const void * RTTI_hkbSequenceInternalState = (void *)0x01E90CF0; -const void * RTTI_hkbSequencedData = (void *)0x01E90C20; -const void * RTTI_hkbStateMachine__TransitionInfoArray = (void *)0x01E90D20; -const void * RTTI_hkbStateMachine__EventPropertyArray = (void *)0x01E90D60; -const void * RTTI_hkbStateMachine__StateInfo = (void *)0x01E90DA0; -const void * RTTI_hkbStateMachineInternalState = (void *)0x01E90DD0; -const void * RTTI_hkbBlendingTransitionEffect = (void *)0x01E90E08; -const void * RTTI_hkbBlendingTransitionEffectInternalState = (void *)0x01E90E40; -const void * RTTI_hkbGeneratorTransitionEffect = (void *)0x01E90E80; -const void * RTTI_hkbGeneratorTransitionEffectInternalState = (void *)0x01E90EC0; -const void * RTTI_hkbClipGenerator = (void *)0x01E90F00; -const void * RTTI_hkbStateMachine = (void *)0x01E90F28; -const void * RTTI_hkbAnimationBindingWithTriggers = (void *)0x01E90F50; -const void * RTTI_hkbHandIkDriver = (void *)0x01E90F88; -const void * RTTI_hkbAttachmentSceneModifier = (void *)0x01E90FB0; -const void * RTTI_hkbAttachmentFixupSceneModifier = (void *)0x01E90FE8; -const void * RTTI_hkbRagdollSceneModifier = (void *)0x01E91020; -const void * RTTI_hkbCharacterControllerSceneModifier = (void *)0x01E91050; -const void * RTTI_hkbCharacterSetup = (void *)0x01E91090; -const void * RTTI_hkbProjectData = (void *)0x01E910B8; -const void * RTTI_hkbCharacterData = (void *)0x01E910E0; -const void * RTTI_hkpCharacterControllerCinfo = (void *)0x01E91108; -const void * RTTI_hkpCharacterProxyCinfo = (void *)0x01E91140; -const void * RTTI_hkLocalFrameCollector = (void *)0x01E91170; -const void * RTTI_hkbClosestLocalFrameCollector = (void *)0x01E911A0; -const void * RTTI_hkbDefaultRaycastInterface = (void *)0x01E911D8; -const void * RTTI_hkbSymbolIdMap = (void *)0x01E91210; -const void * RTTI_hkVtableClassRegistry = (void *)0x01E91238; -const void * RTTI_hkClassNameRegistry = (void *)0x01E912A8; -const void * RTTI_hkTypeInfoRegistry = (void *)0x01E912D8; -const void * RTTI_hkBuiltinTypeRegistry = (void *)0x01E91348; -const void * RTTI_hkDynamicClassNameRegistry = (void *)0x01E913B8; -const void * RTTI_hkDefaultClassNameRegistry = (void *)0x01E913F0; -const void * RTTI_hkDefaultBuiltinTypeRegistry = (void *)0x01E91478; -const void * RTTI_hkObjectCopier = (void *)0x01E914B0; -const void * RTTI_hkStaticClassNameRegistry = (void *)0x01E914D8; -const void * RTTI_hkResourceContainer = (void *)0x01E91508; -const void * RTTI_hkResourceMap = (void *)0x01E91560; -const void * RTTI_hkResourceBase = (void *)0x01E91538; -const void * RTTI_hkResourceHandle = (void *)0x01E91588; -const void * RTTI_hkMemoryResourceHandle = (void *)0x01E915B0; -const void * RTTI_hkMemoryResourceContainer = (void *)0x01E915E0; -const void * RTTI_hkContainerResourceMap = (void *)0x01E91610; -const void * RTTI_hkpShapeContainer = (void *)0x01E91640; -const void * RTTI_hkpSingleShapeContainer = (void *)0x01E91668; -const void * RTTI_hkpBvShape = (void *)0x01E91698; -const void * RTTI_hkpConvexShape = (void *)0x01E916C0; -const void * RTTI_hkpSphereRepShape = (void *)0x01E916E8; -const void * RTTI_hkpBoxShape = (void *)0x01E91710; -const void * RTTI_hkpConvexTransformShapeBase = (void *)0x01E91738; -const void * RTTI_hkpHeightFieldShape = (void *)0x01E91770; -const void * RTTI_hkpPlaneShape = (void *)0x01E917A0; -const void * RTTI_hkpSphereShape = (void *)0x01E917C8; -const void * RTTI_hkpCapsuleShape = (void *)0x01E917F0; -const void * RTTI_hkpCollidableCollidableFilter = (void *)0x01E91848; -const void * RTTI_hkpRayCollidableFilter = (void *)0x01E918E8; -const void * RTTI_hkpShapeCollectionFilter = (void *)0x01E91880; -const void * RTTI_hkpRayShapeCollectionFilter = (void *)0x01E918B0; -const void * RTTI_hkpGroupFilter = (void *)0x01E91918; -const void * RTTI_hkpCollisionFilter = (void *)0x01E91818; -const void * RTTI_hkpConvexListFilter = (void *)0x01E91940; -const void * RTTI_hkpTriangleShape = (void *)0x01E91970; -const void * RTTI_hkpDefaultConvexListFilter = (void *)0x01E91998; -const void * RTTI_hkpBvTreeShape = (void *)0x01E919D0; -const void * RTTI_hkpCollisionFilterList = (void *)0x01E919F8; -const void * RTTI_hkpNullCollisionFilter = (void *)0x01E91A28; -const void * RTTI_hkpMoppModifier = (void *)0x01E91A58; -const void * RTTI_hkpRemoveTerminalsMoppModifier = (void *)0x01E91A80; -const void * RTTI_hkMoppBvTreeShapeBase = (void *)0x01E91AB8; -const void * RTTI_hkpMoppBvTreeShape = (void *)0x01E91AE8; -const void * RTTI_hkpConvexTransformShape = (void *)0x01E91B18; -const void * RTTI_hkpConvexTranslateShape = (void *)0x01E91B48; -const void * RTTI_hkpConvexVerticesConnectivity = (void *)0x01E91B78; -const void * RTTI_hkpConvexListShape = (void *)0x01E91BB0; -const void * RTTI_hkpMultiSphereShape = (void *)0x01E91BE0; -const void * RTTI_hkpMultiRayShape = (void *)0x01E91C10; -const void * RTTI_hkpTransformShape = (void *)0x01E91C38; -const void * RTTI_hkpShapeInfo = (void *)0x01E91C60; -const void * RTTI_hkpSampledHeightFieldShape = (void *)0x01E91C88; -const void * RTTI_hkpCompressedSampledHeightFieldShape = (void *)0x01E91CC0; -const void * RTTI_hkpStorageSampledHeightFieldShape = (void *)0x01E91D00; -const void * RTTI_hkpShapeCollection = (void *)0x01E91D38; -const void * RTTI_hkpTriSampledHeightFieldCollection = (void *)0x01E91D68; -const void * RTTI_hkpTriSampledHeightFieldBvTreeShape = (void *)0x01E91DA8; -const void * RTTI_hkpListShape = (void *)0x01E91DE8; -const void * RTTI_hkpRemoveTerminalsMoppModifier2 = (void *)0x01E91E10; -const void * RTTI_hkpCylinderShape = (void *)0x01E91E48; -const void * RTTI_hkpWorldObject = (void *)0x01E35610; -const void * RTTI_hkpMotion = (void *)0x01E91EE8; -const void * RTTI_hkpMaxSizeMotion = (void *)0x01E91F08; -const void * RTTI_hkpKeyframedRigidMotion = (void *)0x01E91F30; -const void * RTTI_hkpEntity = (void *)0x01E91F60; -const void * RTTI_hkpFixedRigidMotion = (void *)0x01E91F80; -const void * RTTI_hkpSphereMotion = (void *)0x01E91FB0; -const void * RTTI_hkpBoxMotion = (void *)0x01E91FD8; -const void * RTTI_hkpThinBoxMotion = (void *)0x01E92000; -const void * RTTI_hkpCharacterMotion = (void *)0x01E92028; -const void * RTTI_hkpRigidBody = (void *)0x01E92058; -const void * RTTI_hkpPhantom = (void *)0x01E355E8; -const void * RTTI_hkpAabbPhantom = (void *)0x01E35638; -const void * RTTI_hkpConstraintData = (void *)0x01E92080; -const void * RTTI_hkpPrismaticConstraintData = (void *)0x01E920A8; -const void * RTTI_hkpAction = (void *)0x01E20700; -const void * RTTI_hkpUnaryAction = (void *)0x01E20850; -const void * RTTI_hkpConstraintInstance = (void *)0x01E920E0; -const void * RTTI_hkpConstraintMotor = (void *)0x01E92110; -const void * RTTI_hkpConstraintListener = (void *)0x01E92140; -const void * RTTI_hkWorldMemoryAvailableWatchDog = (void *)0x01E92170; -const void * RTTI_hkpPhysicsSystem = (void *)0x01E921A8; -const void * RTTI_hkpSimulation = (void *)0x01E921D0; -const void * RTTI_hkpPairCollisionFilter = (void *)0x01E921F8; -const void * RTTI_hkpConstraintCollisionFilter = (void *)0x01E92228; -const void * RTTI_hkpBallAndSocketConstraintData = (void *)0x01E92260; -const void * RTTI_hkpCogWheelConstraintData = (void *)0x01E92298; -const void * RTTI_hkpHingeConstraintData = (void *)0x01E922C8; -const void * RTTI_hkpLimitedHingeConstraintData = (void *)0x01E922F8; -const void * RTTI_hkpParametricCurve = (void *)0x01E92330; -const void * RTTI_hkpLinearParametricCurve = (void *)0x01E92360; -const void * RTTI_hkpPointToPathConstraintData = (void *)0x01E92390; -const void * RTTI_hkpPointToPlaneConstraintData = (void *)0x01E923C8; -const void * RTTI_hkpRackAndPinionConstraintData = (void *)0x01E92400; -const void * RTTI_hkpRagdollConstraintData = (void *)0x01E92438; -const void * RTTI_hkpStiffSpringConstraintData = (void *)0x01E92468; -const void * RTTI_hkpWheelConstraintData = (void *)0x01E924A0; -const void * RTTI_hkpRotationalConstraintData = (void *)0x01E924D0; -const void * RTTI_hkpHingeLimitsData = (void *)0x01E92508; -const void * RTTI_hkpRagdollLimitsData = (void *)0x01E92538; -const void * RTTI_hkpConstraintChainInstanceAction = (void *)0x01E92568; -const void * RTTI_hkpConstraintChainInstance = (void *)0x01E925A0; -const void * RTTI_hkpLimitedForceConstraintMotor = (void *)0x01E925D8; -const void * RTTI_hkpCallbackConstraintMotor = (void *)0x01E92610; -const void * RTTI_hkpPositionConstraintMotor = (void *)0x01E92648; -const void * RTTI_hkpSpringDamperConstraintMotor = (void *)0x01E92680; -const void * RTTI_hkpVelocityConstraintMotor = (void *)0x01E926B8; -const void * RTTI_hkpPulleyConstraintData = (void *)0x01E926F0; -const void * RTTI_hkpShapePhantom = (void *)0x01E92720; -const void * RTTI_hkpCachingShapePhantom = (void *)0x01E92748; -const void * RTTI_hkpSimpleShapePhantom = (void *)0x01E92778; -const void * RTTI_hkpDefaultWorldMemoryWatchDog = (void *)0x01E927A8; -const void * RTTI_hkpWorld = (void *)0x01E927E0; -const void * RTTI_hkpBroadPhaseCastCollector = (void *)0x01E92828; -const void * RTTI_hkpContactMgr = (void *)0x01E92800; -const void * RTTI_hkpContactMgrFactory = (void *)0x01E92860; -const void * RTTI_hkpNullContactMgr = (void *)0x01E92890; -const void * RTTI_hkpNullContactMgrFactory = (void *)0x01E928B8; -const void * RTTI_hkpBroadPhaseListener = (void *)0x01E928E8; -const void * RTTI_hkpSimpleWorldRayCaster = (void *)0x01E92918; -const void * RTTI_hkpWorldRayCaster = (void *)0x01E92948; -const void * RTTI_hkpWorldLinearCaster = (void *)0x01E92970; -const void * RTTI_hkpPhantomBroadPhaseListener = (void *)0x01E929A0; -const void * RTTI_hkpBroadPhaseBorderListener = (void *)0x01E929D8; -const void * RTTI_hkpCollisionCallbackUtil = (void *)0x01E92A10; -const void * RTTI_hkpConstraintOwner = (void *)0x01E92A68; -const void * RTTI_hkpBreakableConstraintData = (void *)0x01E92A98; -const void * RTTI_hkpConstraintChainData = (void *)0x01E92AD0; -const void * RTTI_hkpBallSocketChainData = (void *)0x01E92B00; -const void * RTTI_hkpStiffSpringChainData = (void *)0x01E92B30; -const void * RTTI_hkpGenericConstraintData = (void *)0x01E92B60; -const void * RTTI_hkpMalleableConstraintData = (void *)0x01E92B90; -const void * RTTI_hkpEntityEntityBroadPhaseListener = (void *)0x01E92BC8; -const void * RTTI_hkpSimulationIsland = (void *)0x01E92C00; -const void * RTTI_hkpBroadPhaseBorder = (void *)0x01E92C30; -const void * RTTI_hkpPhantomOverlapListener = (void *)0x01E92C90; -const void * RTTI_hkpWorldDeletionListener = (void *)0x01E92C60; -const void * RTTI_hkpSimpleConstraintContactMgr = (void *)0x01E92CC0; -const void * RTTI_hkpSimpleContactConstraintData = (void *)0x01E92D28; -const void * RTTI_hkpDynamicsContactMgr = (void *)0x01E92CF8; -const void * RTTI_hkpSimpleConstraintContactMgr__Factory = (void *)0x01E92D60; -const void * RTTI_hkpReportContactMgr = (void *)0x01E92DA0; -const void * RTTI_hkpReportContactMgr__Factory = (void *)0x01E92DD0; -const void * RTTI_hkpWorldMaintenanceMgr = (void *)0x01E92E08; -const void * RTTI_hkpDefaultWorldMaintenanceMgr = (void *)0x01E92E38; -const void * RTTI_hkpWorldExtension = (void *)0x01E92A40; -const void * RTTI_hkpEndOfStepCallbackUtil = (void *)0x01E92E70; -const void * RTTI_hkpConvexPieceStreamData = (void *)0x01E92EA0; -const void * RTTI_hkpCharacterContext = (void *)0x01E92ED0; -const void * RTTI_hkPackfileWriter__AddObjectListener = (void *)0x01E92F00; -const void * RTTI_hkpHavokSnapshot__ConvertListener = (void *)0x01E92F40; -const void * RTTI_hkpCharacterStateManager = (void *)0x01E92F78; -const void * RTTI_hkpCharacterRigidBody = (void *)0x01E92FA8; -const void * RTTI_hkpMouseSpringAction = (void *)0x01E92FD8; -const void * RTTI_hkpBinaryAction = (void *)0x01E93008; -const void * RTTI_hkpAngularDashpotAction = (void *)0x01E93030; -const void * RTTI_hkpDashpotAction = (void *)0x01E93060; -const void * RTTI_hkpMotorAction = (void *)0x01E93088; -const void * RTTI_hkpReorientAction = (void *)0x01E930B0; -const void * RTTI_hkpSpringAction = (void *)0x01E930D8; -const void * RTTI_hkpCharacterRigidBodyCinfo = (void *)0x01E93100; -const void * RTTI_hkpPoweredChainMapper = (void *)0x01E93138; -const void * RTTI_hkpConstrainedSystemFilter = (void *)0x01E93168; -const void * RTTI_hkpDisableEntityCollisionFilter = (void *)0x01E931A0; -const void * RTTI_hkpGroupCollisionFilter = (void *)0x01E931D8; -const void * RTTI_hkpSerializedAgentNnEntry = (void *)0x01E93208; -const void * RTTI_hkpPhysicsSystemWithContacts = (void *)0x01E93238; -const void * RTTI_hkpSerializedDisplayMarker = (void *)0x01E93270; -const void * RTTI_hkpSerializedDisplayMarkerList = (void *)0x01E932A8; -const void * RTTI_hkpSerializedDisplayRbTransforms = (void *)0x01E932E0; -const void * RTTI_hkpDisplayBindingData = (void *)0x01E93318; -const void * RTTI_hkpDisplayBindingData__RigidBody = (void *)0x01E93348; -const void * RTTI_hkpDisplayBindingData__PhysicsSystem = (void *)0x01E93380; -const void * RTTI_hkpPhysicsData = (void *)0x01E933C0; -const void * RTTI_hkpCharacterProxy = (void *)0x01E933E8; -const void * RTTI_hkpTriggerVolume = (void *)0x01E93410; -const void * RTTI_hkpFirstPersonGun = (void *)0x01E93438; -const void * RTTI_hkpBallGun = (void *)0x01E93460; -const void * RTTI_hkpGravityGun = (void *)0x01E93488; -const void * RTTI_hkpMountedBallGun = (void *)0x01E934B0; -const void * RTTI_hkpProjectileGun = (void *)0x01E934D8; -const void * RTTI_hkpGunProjectile = (void *)0x01E93500; -const void * RTTI_hkpSaveContactPointsUtil__EntitySelector = (void *)0x01E93528; -const void * RTTI_BSLimbIKModifierCastInfo = (void *)0x01E369A0; -const void * RTTI_BSILimbIKModifierSingleton = (void *)0x01E36A00; -const void * RTTI_BGSGamebryoSequenceGenerator = (void *)0x01E935E0; -const void * RTTI_BSIStateManagerModifier__BSIStateManagerStateListener = (void *)0x01E93620; -const void * RTTI_BSSynchronizedClipGenerator = (void *)0x01E93670; -const void * RTTI_BSSynchronizedClipGenerator__hkbDefaultSynchronizedScene = (void *)0x01E936B0; -const void * RTTI_BSIDirectAtModifierSingleton = (void *)0x01E52E00; -const void * RTTI_BSIPassByTargetTriggerModifierSingleton = (void *)0x01E53078; -const void * RTTI_BSIRagdollContactListenerModifierSingleton = (void *)0x01E533A0; -const void * RTTI_BSRagdollContactListenerModifier = (void *)0x01E93700; -const void * RTTI_BSIStateManagerModifier = (void *)0x01E93738; -const void * RTTI_BSBoneSwitchGenerator = (void *)0x01E93768; -const void * RTTI_BSBoneSwitchGeneratorBoneData = (void *)0x01E93798; -const void * RTTI_BSCyclicBlendTransitionGenerator = (void *)0x01E937D0; -const void * RTTI_BSOffsetAnimationGenerator = (void *)0x01E93808; -const void * RTTI_BSiStateTaggingGenerator = (void *)0x01E93840; -const void * RTTI_BSComputeAddBoneAnimModifier = (void *)0x01E93870; -const void * RTTI_BSDecomposeVectorModifier = (void *)0x01E938A8; -const void * RTTI_BSDirectAtModifier = (void *)0x01E938D8; -const void * RTTI_BSDistTriggerModifier = (void *)0x01E93908; -const void * RTTI_BSEventEveryNEventsModifier = (void *)0x01E93938; -const void * RTTI_BSEventOnDeactivateModifier = (void *)0x01E93970; -const void * RTTI_BSEventOnFalseToTrueModifier = (void *)0x01E939A8; -const void * RTTI_BSGetTimeStepModifier = (void *)0x01E939E0; -const void * RTTI_BSInterpValueModifier = (void *)0x01E93A10; -const void * RTTI_BSIsActiveModifier = (void *)0x01E93A40; -const void * RTTI_BSLimbIKModifier = (void *)0x01E93A70; -const void * RTTI_BSLookAtModifier = (void *)0x01E93A98; -const void * RTTI_BSModifyOnceModifier = (void *)0x01E93AC0; -const void * RTTI_BSPassByTargetTriggerModifier = (void *)0x01E93AF0; -const void * RTTI_BSSpeedSamplerModifier = (void *)0x01E93B28; -const void * RTTI_BSTimerModifier = (void *)0x01E93B58; -const void * RTTI_BSTweenerModifier = (void *)0x01E93B80; -const void * RTTI_hkaAnimationBinding = (void *)0x01E93BA8; -const void * RTTI_BSSynchronizedClipGeneratorUtils__FindEventFunctor = (void *)0x01E93BE0; -const void * RTTI_BSAnimationGraphManager = (void *)0x01E93C28; -const void * RTTI_hkLoader = (void *)0x01E94028; -const void * RTTI_BShkbHkxDB__ProjectDBData = (void *)0x01E94048; -const void * RTTI_BShkbHkxDB__DBData = (void *)0x01E94078; -const void * RTTI_BShkbHkxDB__QueuedHandles = (void *)0x01E361F0; -const void * RTTI_BShkbHkxDB__StreamAdaptor = (void *)0x01E94588; -const void * RTTI_hkaSkeleton = (void *)0x01E945B8; -const void * RTTI_BSIRagdollDriver = (void *)0x01E945E0; -const void * RTTI_BSAnimationGraphLoadScrapper = (void *)0x01E94608; -const void * RTTI_BShkbAnimationGraph = (void *)0x01E94640; -const void * RTTI_bhkIWorldStepListener = (void *)0x01E946F0; -const void * RTTI_BSISpeedSamplerDB = (void *)0x01E948F0; -const void * RTTI_BSSpeedSamplerDBManager = (void *)0x01E94918; -const void * RTTI_BShkVisibilityController = (void *)0x01E94B38; -const void * RTTI_BShkbUtils__GraphInspectionFunctor = (void *)0x01E94D48; -const void * RTTI_hkbAssetLoader = (void *)0x01E94D80; -const void * RTTI_BShkbUtils__ProspectiveEventClipAddingFunctor = (void *)0x01E94E90; -const void * RTTI_IAnimationClipLoaderSingleton = (void *)0x01E94F18; -const void * RTTI_AnimationFileManagerSingleton = (void *)0x01E94F50; -const void * RTTI_hkaSkeletonMapper = (void *)0x01E95208; -const void * RTTI_hkaRagdollInstance = (void *)0x01E95230; -const void * RTTI_hkaDefaultAnimationControl = (void *)0x01E95260; -const void * RTTI_hkaDefaultAnimationControlMapperData = (void *)0x01E952C8; -const void * RTTI_hkaAnimatedReferenceFrame = (void *)0x01E95308; -const void * RTTI_hkaAnimation = (void *)0x01E95338; -const void * RTTI_hkaInterleavedUncompressedAnimation = (void *)0x01E95360; -const void * RTTI_hkaQuantizedAnimation = (void *)0x01E953A0; -const void * RTTI_hkaSplineCompressedAnimation = (void *)0x01E953D0; -const void * RTTI_hkaAnimationPreviewColorContainer = (void *)0x01E95408; -const void * RTTI_hkaDefaultAnimatedReferenceFrame = (void *)0x01E95440; -const void * RTTI_hkaFootstepAnalysisInfoContainer = (void *)0x01E95478; -const void * RTTI_hkaBoneAttachment = (void *)0x01E954B0; -const void * RTTI_hkaAnimationContainer = (void *)0x01E954D8; -const void * RTTI_hkaMirroredSkeleton = (void *)0x01E95508; -const void * RTTI_hkaAnimationControl = (void *)0x01E95298; -const void * RTTI_hkpCollisionDispatcher = (void *)0x01E95538; -const void * RTTI_hkpNullBroadPhaseListener = (void *)0x01E95568; -const void * RTTI_hkpCollisionAgent = (void *)0x01E95598; -const void * RTTI_hkpNullAgent = (void *)0x01E955C0; -const void * RTTI_hkp3AxisSweep = (void *)0x01E955E8; -const void * RTTI_hkpBroadPhase = (void *)0x01E95610; -const void * RTTI_hkTraceStream = (void *)0x01E95638; -const void * RTTI_hkpStorageMeshShape = (void *)0x01E95698; -const void * RTTI_hkpStorageMeshShape__SubpartStorage = (void *)0x01E956F0; -const void * RTTI_hkpStorageExtendedMeshShape = (void *)0x01E95730; -const void * RTTI_hkpStorageExtendedMeshShape__MeshSubpartStorage = (void *)0x01E957A0; -const void * RTTI_hkpStorageExtendedMeshShape__ShapeSubpartStorage = (void *)0x01E957F0; -const void * RTTI_hkTagfileWriter = (void *)0x01E95838; -const void * RTTI_hkTagfileWriter__AddDataObjectListener = (void *)0x01E95860; -const void * RTTI_hkTagfileReader = (void *)0x01E958A0; -const void * RTTI_hkBinaryTagfileWriter = (void *)0x01E958C8; -const void * RTTI_hkXmlTagfileReader = (void *)0x01E958F8; -const void * RTTI_hkXmlTagfileWriter = (void *)0x01E95928; -const void * RTTI_hkpFastMeshShape = (void *)0x01E95998; -const void * RTTI_hkpMapPointsToSubShapeContactMgr = (void *)0x01E959C0; -const void * RTTI_hkpPoweredChainData = (void *)0x01E959F8; -const void * RTTI_hkpConvexVerticesShape = (void *)0x01E95A28; -const void * RTTI_hkResource = (void *)0x01E95A58; -const void * RTTI_BShkbUtils__SaveDataRestoreFunctor = (void *)0x01E95AB8; -const void * RTTI_hkpConstraintUtils__CollectConstraintsFilter = (void *)0x01E95B20; -const void * RTTI_hkpEaseConstraintsAction = (void *)0x01E95B68; -const void * RTTI_hkpEaseConstraintsAction__CollectSupportedConstraints = (void *)0x01E95BA0; -const void * RTTI_hkpEasePenetrationAction = (void *)0x01E95BF0; -const void * RTTI_BSiStateTaggingUtils__BSiStateTaggingStateListener = (void *)0x01E95C20; -const void * RTTI_hkxAnimatedFloat = (void *)0x01E95CA0; -const void * RTTI_hkxAnimatedMatrix = (void *)0x01E95CC8; -const void * RTTI_hkxAnimatedQuaternion = (void *)0x01E95CF0; -const void * RTTI_hkxAnimatedVector = (void *)0x01E95D20; -const void * RTTI_hkxSparselyAnimatedBool = (void *)0x01E95D48; -const void * RTTI_hkxSparselyAnimatedInt = (void *)0x01E95D78; -const void * RTTI_hkxEnum = (void *)0x01E95DA8; -const void * RTTI_hkxSparselyAnimatedEnum = (void *)0x01E95DC8; -const void * RTTI_hkxSparselyAnimatedString = (void *)0x01E95DF8; -const void * RTTI_hkxAttributeHolder = (void *)0x01E95E28; -const void * RTTI_hkxCamera = (void *)0x01E95E58; -const void * RTTI_hkxNode = (void *)0x01E95E78; -const void * RTTI_hkxLight = (void *)0x01E95E98; -const void * RTTI_hkxMaterial = (void *)0x01E95EB8; -const void * RTTI_hkxMaterialEffect = (void *)0x01E95EE0; -const void * RTTI_hkxMaterialShader = (void *)0x01E95F08; -const void * RTTI_hkxTextureFile = (void *)0x01E95F30; -const void * RTTI_hkxTextureInplace = (void *)0x01E95F58; -const void * RTTI_hkxEdgeSelectionChannel = (void *)0x01E95F80; -const void * RTTI_hkxTriangleSelectionChannel = (void *)0x01E95FB0; -const void * RTTI_hkxVertexFloatDataChannel = (void *)0x01E95FE8; -const void * RTTI_hkxVertexIntDataChannel = (void *)0x01E96018; -const void * RTTI_hkxVertexSelectionChannel = (void *)0x01E96048; -const void * RTTI_hkxVertexVectorDataChannel = (void *)0x01E96078; -const void * RTTI_hkxIndexBuffer = (void *)0x01E960B0; -const void * RTTI_hkxMeshSection = (void *)0x01E960D8; -const void * RTTI_hkxMesh__UserChannelInfo = (void *)0x01E96100; -const void * RTTI_hkxNodeSelectionSet = (void *)0x01E96130; -const void * RTTI_hkxSkinBinding = (void *)0x01E96160; -const void * RTTI_hkxScene = (void *)0x01E96188; -const void * RTTI_hkaMeshBinding = (void *)0x01E961A8; -const void * RTTI_hkaFootstepAnalysisInfo = (void *)0x01E961D0; -const void * RTTI_hkpMeshShape = (void *)0x01E956C8; -const void * RTTI_hkpExtendedMeshShape = (void *)0x01E95768; -const void * RTTI_hkPackfileWriter = (void *)0x01E96200; -const void * RTTI_hkIstream = (void *)0x01E96228; -const void * RTTI_hkDataWorld = (void *)0x01E96288; -const void * RTTI_hkDataObjectImpl = (void *)0x01E962B0; -const void * RTTI_hkDataArrayImpl = (void *)0x01E96300; -const void * RTTI_hkDataClassImpl = (void *)0x01E96328; -const void * RTTI_hkDataClassDict = (void *)0x01E96350; -const void * RTTI_hkDataObjectDict = (void *)0x01E96378; -const void * RTTI_hkDataWorldDict = (void *)0x01E963A0; -const void * RTTI_hkDataRefCounted = (void *)0x01E962D8; -const void * RTTI_VariableIntArrayImplementation = (void *)0x01E963C8; -const void * RTTI_ByteArrayImplementation = (void *)0x01E96400; -const void * RTTI_ArrayOfTuplesImplementation = (void *)0x01E96468; -const void * RTTI_ArrayOfTuplesImplementation__View = (void *)0x01E964A0; -const void * RTTI_RealArrayImplementation = (void *)0x01E964D8; -const void * RTTI_VecArrayImplementation = (void *)0x01E96540; -const void * RTTI_PointerArrayImplementation = (void *)0x01E96570; -const void * RTTI_CstringArrayImplementation = (void *)0x01E96600; -const void * RTTI_StructArrayImplementation = (void *)0x01E96678; -const void * RTTI_StructArrayImplementation__Object = (void *)0x01E966A8; -const void * RTTI_hkDataClassNative = (void *)0x01E966E0; -const void * RTTI_hkDataWorldNative = (void *)0x01E96708; -const void * RTTI_hkDataObjectNative = (void *)0x01E96730; -const void * RTTI_hkDataArrayNative = (void *)0x01E96760; -const void * RTTI_hkBinaryTagfileReader = (void *)0x01E96788; -const void * RTTI_hkVersionPatchManager = (void *)0x01E967B8; -const void * RTTI_hkSubStreamWriter = (void *)0x01E96828; -const void * RTTI_hkBinaryPackfileWriter = (void *)0x01E96850; -const void * RTTI_hkPooledAllocator = (void *)0x01E96880; -const void * RTTI_hkTempDetectAllocator = (void *)0x01E968A8; -const void * RTTI_hkSerializeDeprecated = (void *)0x01E968D8; -const void * RTTI_hkpPredGskfAgent = (void *)0x01E969D0; -const void * RTTI_hkpIterativeLinearCastAgent = (void *)0x01E96948; -const void * RTTI_hkpBoxBoxAgent = (void *)0x01E969F8; -const void * RTTI_hkpSymmetricAgentFlipCollector = (void *)0x01E96A20; -const void * RTTI_hkpSymmetricAgentFlipCastCollector = (void *)0x01E96A58; -const void * RTTI_hkpSymmetricAgentFlipBodyCollector = (void *)0x01E96A98; -const void * RTTI_hkpBvAgent = (void *)0x01E96AD8; -const void * RTTI_hkpFlagCdBodyPairCollector = (void *)0x01E96B00; -const void * RTTI_hkpSimpleClosestContactCollector = (void *)0x01E96B38; -const void * RTTI_hkpBvTreeAgent = (void *)0x01E96BF8; -const void * RTTI_hkpBvTreeStreamAgent = (void *)0x01E96CA8; -const void * RTTI_hkpMoppAgent = (void *)0x01E96E50; -const void * RTTI_hkpPhantomAgent = (void *)0x01E96F08; -const void * RTTI_hkpSphereSphereAgent = (void *)0x01E96F30; -const void * RTTI_hkpSphereCapsuleAgent = (void *)0x01E96F60; -const void * RTTI_hkpSphereTriangleAgent = (void *)0x01E96FE0; -const void * RTTI_hkpCapsuleCapsuleAgent = (void *)0x01E97060; -const void * RTTI_hkpCapsuleTriangleAgent = (void *)0x01E97090; -const void * RTTI_hkpSphereBoxAgent = (void *)0x01E97110; -const void * RTTI_hkpMultiSphereTriangleAgent = (void *)0x01E97190; -const void * RTTI_hkpMultiRayConvexAgent = (void *)0x01E97228; -const void * RTTI_hkpTransformAgent = (void *)0x01E972B0; -const void * RTTI_hkpListAgent = (void *)0x01E97370; -const void * RTTI_hkpConvexListAgent = (void *)0x01E97428; -const void * RTTI_hkpShapeCollectionAgent = (void *)0x01E96E20; -const void * RTTI_hkpMultiSphereAgent = (void *)0x01E974F0; -const void * RTTI_hkpArrayAction = (void *)0x01E95AF0; -const void * RTTI_hkAlignSceneToNodeOptions = (void *)0x01E975C0; -const void * RTTI_hkxEnvironment = (void *)0x01E975F0; -const void * RTTI_hkxMaterialShaderSet = (void *)0x01E97618; -const void * RTTI_hkxVertexBuffer = (void *)0x01E97648; -const void * RTTI_hkxMesh = (void *)0x01E97670; -const void * RTTI_hkOffsetOnlyStreamWriter = (void *)0x01E97690; -const void * RTTI_hkObjectWriter = (void *)0x01E976C0; -const void * RTTI_hkPlatformObjectWriter = (void *)0x01E976E8; -const void * RTTI_hkPlatformObjectWriter__Cache = (void *)0x01E97718; -const void * RTTI_hkMemoryStreamReader = (void *)0x01E97750; -const void * RTTI_hkPackfileData = (void *)0x01E97780; -const void * RTTI_hkObjectResource = (void *)0x01E977A8; -const void * RTTI_hkIArchive = (void *)0x01E977D0; -const void * RTTI_hkParserBuffer = (void *)0x01E977F8; -const void * RTTI_hkXmlStreamParser = (void *)0x01E97820; -const void * RTTI_hkpGskBaseAgent = (void *)0x01E96980; -const void * RTTI_hkpGskfAgent = (void *)0x01E969A8; -const void * RTTI_hkXmlLexAnalyzer = (void *)0x01E97848; -const void * RTTI_BSAudioManagerThread = (void *)0x01E97870; -const void * RTTI_AudioLoadForPlaybackTask = (void *)0x01E978A0; -const void * RTTI_AudioLoadToCacheTask = (void *)0x01E97908; -const void * RTTI_BSAudio = (void *)0x01E97938; -const void * RTTI_BSGameSound = (void *)0x01E97958; -const void * RTTI_BSNullImplAudio = (void *)0x01E97980; -const void * RTTI_BSAudioListener = (void *)0x01E97B48; -const void * RTTI_BSNullImplAudioListener = (void *)0x01E97B70; -const void * RTTI_BSNullImplGameSound = (void *)0x01E97BA0; -const void * RTTI_BSXAudio2Audio = (void *)0x01E97C00; -const void * RTTI_BSXAudio2AudioListener = (void *)0x01E97EB8; -const void * RTTI_BSXAudio2GameSound = (void *)0x01E97F18; -const void * RTTI_BSXAudio2DataSrc = (void *)0x01E97F48; -const void * RTTI_ScrapHeap = (void *)0x01E97FB0; -const void * RTTI_BSCoreMessage = (void *)0x01E98020; -const void * RTTI_BSThread = (void *)0x01E14148; -const void * RTTI_CompactingStore__Store = (void *)0x01E98048; -const void * RTTI_CompactingStore__MoveCallback = (void *)0x01E98078; -const void * RTTI_CompactingStore__NoopMoveCallback = (void *)0x01E980B0; -const void * RTTI_MemoryHeap = (void *)0x01E980E8; -const void * RTTI_UnitTestMemoryHeap = (void *)0x01E98160; -const void * RTTI_IMemoryHeap = (void *)0x01E98138; -const void * RTTI_ZeroOverheadHeap = (void *)0x01E98190; -const void * RTTI_UnitTestZeroOverheadHeap = (void *)0x01E981B8; -const void * RTTI_BSSmallBlockAllocator = (void *)0x01E981E8; -const void * RTTI_BSSmallBlockAllocatorUtil__UserPoolBase = (void *)0x01E98218; -const void * RTTI_BSStepThread = (void *)0x01E98258; -const void * RTTI_IMemoryStoreBase = (void *)0x01E97FF8; -const void * RTTI_IMemoryStore = (void *)0x01E97FD0; -const void * RTTI_AbstractHeap = (void *)0x01E98110; -const void * RTTI_MouseMoveEvent = (void *)0x01E98530; -const void * RTTI_CharEvent = (void *)0x01E98558; -const void * RTTI_DeviceConnectEvent = (void *)0x01E98578; -const void * RTTI_KinectEvent = (void *)0x01E985A8; -const void * RTTI_BSWin32GamerProfile = (void *)0x01E985D0; -const void * RTTI_BSIInputDevice = (void *)0x01E98668; -const void * RTTI_BSInputDevice = (void *)0x01E98690; -const void * RTTI_BSGamepadDevice = (void *)0x01E986B8; -const void * RTTI_BSGamerProfile = (void *)0x01E98600; -const void * RTTI_BSWin32KeyboardDevice = (void *)0x01E98720; -const void * RTTI_BSWin32MouseDevice = (void *)0x01E98778; -const void * RTTI_BSPCGamepadDeviceDelegate = (void *)0x01E987D0; -const void * RTTI_BSPCGamepadDeviceHandler = (void *)0x01E98800; -const void * RTTI_BSWin32GamepadDevice = (void *)0x01E98830; -const void * RTTI_BSPCOrbisGamepadDevice = (void *)0x01E98860; -const void * RTTI_BSKeyboardDevice = (void *)0x01E98750; -const void * RTTI_BSWin32VirtualKeyboardDevice = (void *)0x01E98890; -const void * RTTI_BSMouseDevice = (void *)0x01E987A8; -const void * RTTI_BSVirtualKeyboardDevice = (void *)0x01E988C8; -const void * RTTI_NiFile = (void *)0x01E988F8; -const void * RTTI_NiBinaryStream = (void *)0x01E1DEE8; -const void * RTTI_NiAllocator = (void *)0x01E98918; -const void * RTTI_BSNiAllocator = (void *)0x01E98940; -const void * RTTI_NiStandardAllocator = (void *)0x01E98968; -const void * RTTI_NiSearchPath = (void *)0x01E98998; -const void * RTTI_NiThread = (void *)0x01E989C0; -const void * RTTI_BSStringPool__IterationCallback = (void *)0x01E989E0; -const void * RTTI_Archive = (void *)0x01E98A18; -const void * RTTI_ArchiveFile = (void *)0x01E98AA0; -const void * RTTI_CompressedArchiveFile = (void *)0x01E98AC8; -const void * RTTI_BSJobs__JobThread = (void *)0x01E98AF8; -const void * RTTI_BSFile = (void *)0x01E98A80; -const void * RTTI_BSSystemFileAsyncFunctor = (void *)0x01E98B20; -const void * RTTI_BSSystemFileStorage = (void *)0x01E98B50; -const void * RTTI_BSTaskletGroupData = (void *)0x01E98B80; -const void * RTTI_BSTaskletManagerCallback = (void *)0x01E98BB0; -const void * RTTI_BSTaskletManager = (void *)0x01E98BE0; -const void * RTTI_BSSearchPath = (void *)0x01E98C08; -const void * RTTI_BSWin32TaskletManager = (void *)0x01E98C30; -const void * RTTI_BSWin32TaskletGroupData = (void *)0x01E98C60; -const void * RTTI_BSResource__StreamBase = (void *)0x01E98C90; -const void * RTTI_BSResource__Stream = (void *)0x01E98CC0; -const void * RTTI_BSResource__AsyncStream = (void *)0x01E98CE8; -const void * RTTI_BSResource__ArchiveStream = (void *)0x01E98D18; -const void * RTTI_BSResource__CacheArchiveOp = (void *)0x01E98D48; -const void * RTTI_BSResource__CompressedArchiveStream = (void *)0x01E98D78; -const void * RTTI_BSResource__ArchiveManager = (void *)0x01E98DB8; -const void * RTTI_BSResource__IEntryDB = (void *)0x01E16EA8; -const void * RTTI_BSResource__IEntryDB__PostFlushNotify = (void *)0x01E11AF0; -const void * RTTI_BSResource__LocationTraverser = (void *)0x01E98E88; -const void * RTTI_BSResource__CacheDrive = (void *)0x01E99E68; -const void * RTTI_BSResource__CacheDrive__Impl = (void *)0x01E99E98; -const void * RTTI_BSResource__CacheDrive__Task = (void *)0x01E99ED0; -const void * RTTI_NiObject = (void *)0x01E14648; -const void * RTTI_NiAVObject = (void *)0x01E14690; -const void * RTTI_NiNode = (void *)0x01E149C8; -const void * RTTI_NiStream = (void *)0x01E14050; -const void * RTTI_NiStream__BackgroundLoadProcedure = (void *)0x01E9A000; -const void * RTTI_NiObjectNET = (void *)0x01E14668; -const void * RTTI_NiLight = (void *)0x01E9A738; -const void * RTTI_NiSwitchNode = (void *)0x01E9A758; -const void * RTTI_NiStringsExtraData = (void *)0x01E9A7F0; -const void * RTTI_NiCamera = (void *)0x01E9A820; -const void * RTTI_BSTriShape = (void *)0x01E18848; -const void * RTTI_BSSkinnedDecalTriShape = (void *)0x01E9A840; -const void * RTTI_NiTexture = (void *)0x01E9A870; -const void * RTTI_NiSourceTexture = (void *)0x01E9A890; -const void * RTTI_BSFlattenedBoneTree = (void *)0x01E9A8B8; -const void * RTTI_NiSkinInstance = (void *)0x01E9A8E8; -const void * RTTI_BSDismemberSkinInstance = (void *)0x01E9A910; -const void * RTTI_NiStringExtraData = (void *)0x01E9A940; -const void * RTTI_NiTimeController = (void *)0x01E1B850; -const void * RTTI_NiExtraData = (void *)0x01E17500; -const void * RTTI_NiGeometryData = (void *)0x01E9A968; -const void * RTTI_BSGeometry = (void *)0x01E18870; -const void * RTTI_BSDynamicTriShape = (void *)0x01E188C8; -const void * RTTI_NiPointLight = (void *)0x01E9A990; -const void * RTTI_NiAVObjectPalette = (void *)0x01E9A9B8; -const void * RTTI_NiDefaultAVObjectPalette = (void *)0x01E9A9E0; -const void * RTTI_BSResourceNiBinaryStream = (void *)0x01E9AA10; -const void * RTTI_NiDirectionalLight = (void *)0x01E9AAF0; -const void * RTTI_NiCullingProcess = (void *)0x01E215D0; -const void * RTTI_NiParticles = (void *)0x01E9AB20; -const void * RTTI_NiSkinPartition = (void *)0x01E9AB48; -const void * RTTI_NiVertWeightsExtraData = (void *)0x01E9AB70; -const void * RTTI_NiGeometry = (void *)0x01E9ABA0; -const void * RTTI_NiSkinData = (void *)0x01E9ABC8; -const void * RTTI_NiShadeProperty = (void *)0x01E9ABF0; -const void * RTTI_NiAlphaAccumulator = (void *)0x01E9AC40; -const void * RTTI_NiAmbientLight = (void *)0x01E9ACA0; -const void * RTTI_NiBinaryExtraData = (void *)0x01E9ACC8; -const void * RTTI_NiBooleanExtraData = (void *)0x01E9ACF0; -const void * RTTI_NiBSPNode = (void *)0x01E9AD20; -const void * RTTI_NiColorExtraData = (void *)0x01E9AD40; -const void * RTTI_NiFloatExtraData = (void *)0x01E9AD68; -const void * RTTI_NiFloatsExtraData = (void *)0x01E9AD90; -const void * RTTI_NiFogProperty = (void *)0x01E9ADB8; -const void * RTTI_NiIntegerExtraData = (void *)0x01E9ADE0; -const void * RTTI_NiIntegersExtraData = (void *)0x01E9AE10; -const void * RTTI_NiParticlesData = (void *)0x01E9AF18; -const void * RTTI_NiParticleMeshesData = (void *)0x01E9AF40; -const void * RTTI_NiParticleMeshes = (void *)0x01E9AF70; -const void * RTTI_NiSpotLight = (void *)0x01E9AF98; -const void * RTTI_NiSwitchStringExtraData = (void *)0x01E9AFC0; -const void * RTTI_NiTriShapeData = (void *)0x01E9AFF0; -const void * RTTI_NiTriShape = (void *)0x01E9B048; -const void * RTTI_NiTriStripsData = (void *)0x01E9B098; -const void * RTTI_NiTriStrips = (void *)0x01E9B0C0; -const void * RTTI_NiVectorExtraData = (void *)0x01E9B0E8; -const void * RTTI_BSLODTriShape = (void *)0x01E9B188; -const void * RTTI_NiAdditionalGeometryData = (void *)0x01E9B1B0; -const void * RTTI_BSSegmentedTriShape = (void *)0x01E9B1E0; -const void * RTTI_NiAccumulator = (void *)0x01E9AC18; -const void * RTTI_NiBackToFrontAccumulator = (void *)0x01E9AC70; -const void * RTTI_NiTriBasedGeomData = (void *)0x01E9B018; -const void * RTTI_NiTriBasedGeom = (void *)0x01E9B070; -const void * RTTI_NiPick__Results = (void *)0x01E9B210; -const void * RTTI_NiCollisionTraversals__IFindIntersections = (void *)0x01E9B2E8; -const void * RTTI_NiCollisionData = (void *)0x01E9B328; -const void * RTTI_NiBoundingVolume = (void *)0x01E9B350; -const void * RTTI_NiBoxBV = (void *)0x01E9B378; -const void * RTTI_NiCapsuleBV = (void *)0x01E9B398; -const void * RTTI_NiHalfSpaceBV = (void *)0x01E9B3C0; -const void * RTTI_NiSphereBV = (void *)0x01E9B3E8; -const void * RTTI_NiUnionBV = (void *)0x01E9B478; -const void * RTTI_NiOBBRoot = (void *)0x01E9B4E8; -const void * RTTI_NiIntersector = (void *)0x01E9B508; -const void * RTTI_NiBoxSphereIntersector = (void *)0x01E9B530; -const void * RTTI_NiBoxCapsuleIntersector = (void *)0x01E9B560; -const void * RTTI_NiCapsuleCapsuleIntersector = (void *)0x01E9B590; -const void * RTTI_NiCapsuleSphereIntersector = (void *)0x01E9B5C8; -const void * RTTI_NiCapsuleTriIntersector = (void *)0x01E9B600; -const void * RTTI_NiSphereTriIntersector = (void *)0x01E9B630; -const void * RTTI_NiOBBNode = (void *)0x01E9B660; -const void * RTTI_NiOBBLeaf = (void *)0x01E9B680; -const void * RTTI_NiControllerManager = (void *)0x01E9B6A0; -const void * RTTI_NiControllerSequence = (void *)0x01E169B0; -const void * RTTI_NiTextKeyMatch = (void *)0x01E9B7A8; -const void * RTTI_NiMultiTargetTransformController = (void *)0x01E9B7D0; -const void * RTTI_NiBlendInterpolator = (void *)0x01E9B838; -const void * RTTI_BSMultiTargetTreadTransfController = (void *)0x01E9B890; -const void * RTTI_NiInterpController = (void *)0x01E9B808; -const void * RTTI_NiFloatInterpolator = (void *)0x01E9B8D0; -const void * RTTI_NiColorInterpolator = (void *)0x01E9B930; -const void * RTTI_NiSingleInterpController = (void *)0x01E9B960; -const void * RTTI_NiTransformInterpolator = (void *)0x01E9B990; -const void * RTTI_NiPosData = (void *)0x01E9B9C0; -const void * RTTI_NiPathInterpolator = (void *)0x01E9B9E0; -const void * RTTI_NiBlendTransformInterpolator = (void *)0x01E9BA10; -const void * RTTI_NiBlendFloatInterpolator = (void *)0x01E9BA48; -const void * RTTI_NiFloatExtraDataController = (void *)0x01E9BA78; -const void * RTTI_NiTransformController = (void *)0x01E9BAE0; -const void * RTTI_NiBlendAccumTransformInterpolator = (void *)0x01E9BB10; -const void * RTTI_NiInterpolator = (void *)0x01E9B868; -const void * RTTI_BSBlendTreadTransfInterpolator = (void *)0x01E9BC40; -const void * RTTI_NiKeyBasedInterpolator = (void *)0x01E9B900; -const void * RTTI_NiTransformData = (void *)0x01E9BC78; -const void * RTTI_NiBlendBoolInterpolator = (void *)0x01E9BCA0; -const void * RTTI_NiBlendColorInterpolator = (void *)0x01E9BCD0; -const void * RTTI_NiBlendPoint3Interpolator = (void *)0x01E9BD00; -const void * RTTI_NiBlendQuaternionInterpolator = (void *)0x01E9BD30; -const void * RTTI_NiBoolData = (void *)0x01E9BD68; -const void * RTTI_NiBoolInterpolator = (void *)0x01E9BD90; -const void * RTTI_NiBoolTimelineInterpolator = (void *)0x01E9BDC0; -const void * RTTI_NiBSplineBasisData = (void *)0x01E9BDF8; -const void * RTTI_NiBSplineData = (void *)0x01E9BE28; -const void * RTTI_NiBSplineColorInterpolator = (void *)0x01E9BE50; -const void * RTTI_NiBSplineCompColorInterpolator = (void *)0x01E9BEB8; -const void * RTTI_NiBSplineCompFloatInterpolator = (void *)0x01E9BEF0; -const void * RTTI_NiBSplineCompPoint3Interpolator = (void *)0x01E9BF60; -const void * RTTI_NiBSplineCompTransformInterpolator = (void *)0x01E9BFD0; -const void * RTTI_NiBSplineFloatInterpolator = (void *)0x01E9BF28; -const void * RTTI_NiBSplinePoint3Interpolator = (void *)0x01E9BF98; -const void * RTTI_NiBSplineTransformInterpolator = (void *)0x01E9C010; -const void * RTTI_NiColorExtraDataController = (void *)0x01E9C048; -const void * RTTI_NiFloatsExtraDataController = (void *)0x01E9C080; -const void * RTTI_NiFloatsExtraDataPoint3Controller = (void *)0x01E9C0B8; -const void * RTTI_NiKeyframeManager = (void *)0x01E9C0F0; -const void * RTTI_NiLightColorController = (void *)0x01E9C2A0; -const void * RTTI_NiLightDimmerController = (void *)0x01E9C300; -const void * RTTI_NiLookAtController = (void *)0x01E9C360; -const void * RTTI_NiLookAtInterpolator = (void *)0x01E9C390; -const void * RTTI_NiMorphData = (void *)0x01E9C3C0; -const void * RTTI_NiPathController = (void *)0x01E9C3E8; -const void * RTTI_NiPoint3Interpolator = (void *)0x01E9C410; -const void * RTTI_NiQuaternionInterpolator = (void *)0x01E9C440; -const void * RTTI_NiFloatController = (void *)0x01E9C470; -const void * RTTI_NiRollController = (void *)0x01E9C498; -const void * RTTI_NiRotData = (void *)0x01E9C4C0; -const void * RTTI_NiSequence = (void *)0x01E9C4E0; -const void * RTTI_NiSequenceStreamHelper = (void *)0x01E9C5E8; -const void * RTTI_NiStringPalette = (void *)0x01E9C618; -const void * RTTI_NiTextKeyExtraData = (void *)0x01E9C640; -const void * RTTI_NiUVData = (void *)0x01E9C670; -const void * RTTI_NiVisController = (void *)0x01E9C690; -const void * RTTI_BSAnimNotes = (void *)0x01E9C6E8; -const void * RTTI_BSAnimNote = (void *)0x01E9C710; -const void * RTTI_BSGrabIKNote = (void *)0x01E9C738; -const void * RTTI_BSLookIKNote = (void *)0x01E9C760; -const void * RTTI_BSRotAccumTransfInterpolator = (void *)0x01E9C788; -const void * RTTI_BSTreadTransfInterpolator = (void *)0x01E9C7C0; -const void * RTTI_BSFrustumFOVController = (void *)0x01E9C7F0; -const void * RTTI_NiExtraDataController = (void *)0x01E9BAB0; -const void * RTTI_NiBSplineInterpolator = (void *)0x01E9BE88; -const void * RTTI_NiPoint3InterpController = (void *)0x01E9C2D0; -const void * RTTI_NiFloatInterpController = (void *)0x01E9C330; -const void * RTTI_NiBoolInterpController = (void *)0x01E9C6B8; -const void * RTTI_NiParticleSystem = (void *)0x01E9C820; -const void * RTTI_NiPSysEmitterCtlr = (void *)0x01E9C848; -const void * RTTI_NiPSysGravityModifier = (void *)0x01E9C8A0; -const void * RTTI_BSPSysHavokUpdateModifier = (void *)0x01E9C8F8; -const void * RTTI_NiMeshParticleSystem = (void *)0x01E9C958; -const void * RTTI_NiPSysCylinderEmitter = (void *)0x01E9C988; -const void * RTTI_BSStripParticleSystem = (void *)0x01E9CA10; -const void * RTTI_NiPSysEmitter = (void *)0x01E9C9E8; -const void * RTTI_NiPSysModifierCtlr = (void *)0x01E9C870; -const void * RTTI_NiPSysModifier = (void *)0x01E9C8D0; -const void * RTTI_NiPSysMeshUpdateModifier = (void *)0x01E9C928; -const void * RTTI_NiPSysUpdateCtlr = (void *)0x01E9CA40; -const void * RTTI_NiMeshPSysData = (void *)0x01E9CA68; -const void * RTTI_NiPSysAirFieldAirFrictionCtlr = (void *)0x01E9CBC0; -const void * RTTI_NiPSysAirFieldInheritVelocityCtlr = (void *)0x01E9CC28; -const void * RTTI_NiPSysAirFieldModifier = (void *)0x01E9CC60; -const void * RTTI_NiPSysAirFieldSpreadCtlr = (void *)0x01E9CCC0; -const void * RTTI_NiPSysAgeDeathModifier = (void *)0x01E9CCF0; -const void * RTTI_NiPSysBombModifier = (void *)0x01E9CD20; -const void * RTTI_NiPSysBoundUpdateModifier = (void *)0x01E9CD50; -const void * RTTI_NiPSysBoxEmitter = (void *)0x01E9CD80; -const void * RTTI_NiPSysColliderManager = (void *)0x01E9CDA8; -const void * RTTI_NiPSysColorModifier = (void *)0x01E9CDD8; -const void * RTTI_NiPSysData = (void *)0x01E9CA90; -const void * RTTI_NiPSysDragFieldModifier = (void *)0x01E9CE08; -const void * RTTI_NiPSysDragModifier = (void *)0x01E9CE38; -const void * RTTI_NiPSysEmitterCtlrData = (void *)0x01E9CE68; -const void * RTTI_NiPSysEmitterDeclinationCtlr = (void *)0x01E9CE98; -const void * RTTI_NiPSysEmitterDeclinationVarCtlr = (void *)0x01E9CED0; -const void * RTTI_NiPSysEmitterInitialRadiusCtlr = (void *)0x01E9CF08; -const void * RTTI_NiPSysEmitterLifeSpanCtlr = (void *)0x01E9CF40; -const void * RTTI_NiPSysEmitterPlanarAngleCtlr = (void *)0x01E9CF70; -const void * RTTI_NiPSysEmitterPlanarAngleVarCtlr = (void *)0x01E9CFA8; -const void * RTTI_NiPSysEmitterSpeedCtlr = (void *)0x01E9CFE0; -const void * RTTI_NiPSysFieldAttenuationCtlr = (void *)0x01E9D010; -const void * RTTI_NiPSysFieldMagnitudeCtlr = (void *)0x01E9D048; -const void * RTTI_NiPSysFieldMaxDistanceCtlr = (void *)0x01E9D078; -const void * RTTI_NiPSysGravityFieldModifier = (void *)0x01E9D0B0; -const void * RTTI_NiPSysGravityStrengthCtlr = (void *)0x01E9D0E8; -const void * RTTI_NiPSysGrowFadeModifier = (void *)0x01E9D118; -const void * RTTI_NiPSysInitialRotAngleCtlr = (void *)0x01E9D148; -const void * RTTI_NiPSysInitialRotAngleVarCtlr = (void *)0x01E9D178; -const void * RTTI_NiPSysInitialRotSpeedCtlr = (void *)0x01E9D1B0; -const void * RTTI_NiPSysInitialRotSpeedVarCtlr = (void *)0x01E9D1E0; -const void * RTTI_NiPSysMeshEmitter = (void *)0x01E9D218; -const void * RTTI_NiPSysModifierActiveCtlr = (void *)0x01E9D3C0; -const void * RTTI_NiPSysPlanarCollider = (void *)0x01E9D420; -const void * RTTI_NiPSysPositionModifier = (void *)0x01E9D478; -const void * RTTI_NiPSysRadialFieldModifier = (void *)0x01E9D4A8; -const void * RTTI_NiPSysResetOnLoopCtlr = (void *)0x01E9D4D8; -const void * RTTI_NiPSysRotationModifier = (void *)0x01E9D508; -const void * RTTI_NiPSysSpawnModifier = (void *)0x01E9D538; -const void * RTTI_NiPSysSphereEmitter = (void *)0x01E9D568; -const void * RTTI_NiPSysSphericalCollider = (void *)0x01E9D598; -const void * RTTI_NiPSysTurbulenceFieldModifier = (void *)0x01E9D5C8; -const void * RTTI_NiPSysVortexFieldModifier = (void *)0x01E9D600; -const void * RTTI_BSStripPSysData = (void *)0x01E9D630; -const void * RTTI_BSPSysRecycleBoundModifier = (void *)0x01E9D658; -const void * RTTI_BSPSysInheritVelocityModifier = (void *)0x01E9D690; -const void * RTTI_NiPSysVolumeEmitter = (void *)0x01E9C9B8; -const void * RTTI_NiPSysModifierFloatCtlr = (void *)0x01E9CBF8; -const void * RTTI_NiPSysFieldModifier = (void *)0x01E9CC90; -const void * RTTI_NiPSysModifierBoolCtlr = (void *)0x01E9D3F0; -const void * RTTI_NiPSysCollider = (void *)0x01E9D450; -const void * RTTI_BSTaskManager = (void *)0x01E9D6C8; -const void * RTTI_BSTaskManagerThread = (void *)0x01E9D788; -const void * RTTI_BSTaskThread = (void *)0x01E14550; -const void * RTTI_IOManager = (void *)0x01E9D820; -const void * RTTI_BSResource__IEntryDB__NotifyLoadDone = (void *)0x01E9D840; -const void * RTTI_QueuedFile = (void *)0x01E119F8; -const void * RTTI_QueuedNamedFile = (void *)0x01E9D8D8; -const void * RTTI_BSQueuedResourceCollectionBase = (void *)0x01E11AB8; -const void * RTTI_BSMultiBound = (void *)0x01E9DDD8; -const void * RTTI_BSMultiBoundRoom = (void *)0x01E9DE00; -const void * RTTI_BSReference = (void *)0x01E9DE70; -const void * RTTI_BSNodeReferences = (void *)0x01E9DE98; -const void * RTTI_BSXFlags = (void *)0x01E9DEC0; -const void * RTTI_BSValueNode = (void *)0x01E9DEE0; -const void * RTTI_ITextureDB = (void *)0x01E9DF08; -const void * RTTI_BSTextureDB__QueuedHandles = (void *)0x01E9E418; -const void * RTTI_BSWindModifier = (void *)0x01E9E508; -const void * RTTI_BSTempNode = (void *)0x01E9E530; -const void * RTTI_BSPortalGraph = (void *)0x01E9E558; -const void * RTTI_BSPortalGraphEntry = (void *)0x01E9E580; -const void * RTTI_BSOcclusionShape = (void *)0x01E164B0; -const void * RTTI_MessageHandler = (void *)0x01E9E5B0; -const void * RTTI_BSRangeNode = (void *)0x01E9E5D8; -const void * RTTI_BSBlastNode = (void *)0x01E9E600; -const void * RTTI_BSDebrisNode = (void *)0x01E9E628; -const void * RTTI_BSDamageStage = (void *)0x01E9E650; -const void * RTTI_PArrayPoint = (void *)0x01E9E678; -const void * RTTI_BSPSysArrayEmitter = (void *)0x01E9E6A0; -const void * RTTI_BSInstanceTriShape = (void *)0x01E9E798; -const void * RTTI_BSMultiStreamInstanceTriShape = (void *)0x01E9E7C8; -const void * RTTI_BSIStream = (void *)0x01E9E800; -const void * RTTI_BSOStream = (void *)0x01E9E890; -const void * RTTI_BSMultiBoundShape = (void *)0x01E165F0; -const void * RTTI_BSOcclusionBox = (void *)0x01E9E8F8; -const void * RTTI_BSOcclusionPlane = (void *)0x01E164F8; -const void * RTTI_BSPortalSharedNode = (void *)0x01E9E920; -const void * RTTI_BSBodyMorphOffsetsExtraData = (void *)0x01E9E950; -const void * RTTI_BSBehaviorGraphExtraData = (void *)0x01E9E988; -const void * RTTI_NiBSBoneLODController = (void *)0x01E9E9B8; -const void * RTTI_BSCullingProcess = (void *)0x01E215A8; -const void * RTTI_BSParticleSystemManager = (void *)0x01E9EBC8; -const void * RTTI_BSFurnitureMarkerNode = (void *)0x01E9EBF8; -const void * RTTI_BSBound = (void *)0x01E9EC28; -const void * RTTI_BSMultiBoundNode = (void *)0x01E9DE28; -const void * RTTI_BSBoneMap = (void *)0x01E9EC48; -const void * RTTI_BSAnimInteractionMarker = (void *)0x01E9EC68; -const void * RTTI_BSSceneGraph = (void *)0x01E3CA60; -const void * RTTI_BSPSysMultiTargetEmitterCtlr = (void *)0x01E9EC98; -const void * RTTI_BSSubIndexTriShape = (void *)0x01E9ECD0; -const void * RTTI_BSDistantObjectLargeRefExtraData = (void *)0x01E9ED00; -const void * RTTI_BSMasterParticleSystem = (void *)0x01E9EDC0; -const void * RTTI_BSProceduralLightningTasklet = (void *)0x01E9EDF0; -const void * RTTI_BSProceduralLightningController = (void *)0x01E9EE28; -const void * RTTI_BSInvMarker = (void *)0x01E9EEA0; -const void * RTTI_BSBoneLODExtraData = (void *)0x01E9EEC8; -const void * RTTI_BSDecalPlacementVectorExtraData = (void *)0x01E9EEF8; -const void * RTTI_BSParentVelocityModifier = (void *)0x01E9EF30; -const void * RTTI_BSWArray = (void *)0x01E9EF60; -const void * RTTI_BSMultiBoundCapsule = (void *)0x01E9EF80; -const void * RTTI_BSPSysStripUpdateModifier = (void *)0x01E9EFB0; -const void * RTTI_BSPSysSubTexModifier = (void *)0x01E9EFE0; -const void * RTTI_BSPSysScaleModifier = (void *)0x01E9F010; -const void * RTTI_BSLagBoneController = (void *)0x01E9F040; -const void * RTTI_BSNonUniformScaleExtraData = (void *)0x01E9F070; -const void * RTTI_BSNiNode = (void *)0x01E9DE50; -const void * RTTI_BSTableCurve = (void *)0x01E9F0A8; -const void * RTTI_bhkWorldObject = (void *)0x01E17D40; -const void * RTTI_ahkpWorld = (void *)0x01E9F0D0; -const void * RTTI_bhkWorld__bhkConstraintProjector = (void *)0x01E9F0F0; -const void * RTTI_bhkWorld = (void *)0x01E9F128; -const void * RTTI_bhkWorldCinfo = (void *)0x01E9F148; -const void * RTTI_bhkTaskletManagerCallback = (void *)0x01E9F170; -const void * RTTI_bhkOnStartupCallback = (void *)0x01E9F1A0; -const void * RTTI_bhkOnExitCallback = (void *)0x01E9F1D0; -const void * RTTI_hkGenericConstraintCinfo = (void *)0x01E9F1F8; -const void * RTTI_hkStiffSpringConstraintCinfo = (void *)0x01E9F228; -const void * RTTI_bhkStiffSpringConstraint = (void *)0x01E9F260; -const void * RTTI_hkBallAndSocketConstraintCinfo = (void *)0x01E9F290; -const void * RTTI_hkFixedConstraintCinfo = (void *)0x01E9F2C8; -const void * RTTI_bhkWindListener = (void *)0x01E1AB50; -const void * RTTI_hkpAllRayHitCollector = (void *)0x01E9F2F8; -const void * RTTI_bhkRagdollPenetrationUtil = (void *)0x01E9F328; -const void * RTTI_hkaRagdollRaycastInterface = (void *)0x01E9F358; -const void * RTTI_hkpCharacterState = (void *)0x01E9F390; -const void * RTTI_bhkCharacterState = (void *)0x01E9F3B8; -const void * RTTI_bhkShapeCollection = (void *)0x01E9F3E0; -const void * RTTI_bhkCharacterController = (void *)0x01E9F410; -const void * RTTI_bhkCollisionBox = (void *)0x01E9F488; -const void * RTTI_bhkICharOrientationController = (void *)0x01E9F4B0; -const void * RTTI_bhkCharacterControllerCinfo = (void *)0x01E9F4E8; -const void * RTTI_bhkCharacterStateClimbing = (void *)0x01E9F520; -const void * RTTI_bhkCharacterStateFlying = (void *)0x01E9F550; -const void * RTTI_bhkListShape = (void *)0x01E9F580; -const void * RTTI_bhkNiCollisionObject = (void *)0x01E17D90; -const void * RTTI_bhkRagdollShareData = (void *)0x01E9F5A8; -const void * RTTI_bhkRagdollController = (void *)0x01E9F5D8; -const void * RTTI_bhkCollisionFilter = (void *)0x01E9F608; -const void * RTTI_bhkAttachmentCollisionObject = (void *)0x01E9F800; -const void * RTTI_bhkLimitedHingeConstraint = (void *)0x01E9F868; -const void * RTTI_WeaponObject = (void *)0x01E9F898; -const void * RTTI_hkLimitedHingeConstraintCinfo = (void *)0x01E9F8C0; -const void * RTTI_bhkRigidBodyT = (void *)0x01E9F8F8; -const void * RTTI_bhkWorldM = (void *)0x01E9F920; -const void * RTTI_bhkRefObject = (void *)0x01E1AE78; -const void * RTTI_hkNiTriStripsShape = (void *)0x01E9F9F8; -const void * RTTI_hkNormalTriangleShape = (void *)0x01E9FA28; -const void * RTTI_hkPackedNiTriStripsData = (void *)0x01E9FA58; -const void * RTTI_hkPackedNiTriStripsShape = (void *)0x01E9FA88; -const void * RTTI_bhkCapsuleShape = (void *)0x01E9FAB8; -const void * RTTI_bhkNiTriStripsShape = (void *)0x01E9FAE0; -const void * RTTI_bhkPackedNiTriStripsShape = (void *)0x01E9FB10; -const void * RTTI_bhkBlendCollisionObject = (void *)0x01E9F838; -const void * RTTI_hkAvoidBox = (void *)0x01E9FB40; -const void * RTTI_bhkAvoidBox = (void *)0x01E9FB68; -const void * RTTI_ahkpMalleableConstraintData = (void *)0x01E9FB90; -const void * RTTI_bhkMalleableConstraint = (void *)0x01E9FBC8; -const void * RTTI_hkMalleableConstraintCinfo = (void *)0x01E9FBF8; -const void * RTTI_hkBSHeightFieldShape = (void *)0x01E9FC70; -const void * RTTI_hkProductFeatures = (void *)0x01E9FCA0; -const void * RTTI_bhkCachingShapePhantom = (void *)0x01E9FFC0; -const void * RTTI_hkpCharacterProxyListener = (void *)0x01E9FFF0; -const void * RTTI_bhkCharacterProxyCinfo = (void *)0x01EA0020; -const void * RTTI_bhkCharacterProxy = (void *)0x01EA0050; -const void * RTTI_bhkCharProxyController = (void *)0x01EA0078; -const void * RTTI_bhkCharProxyControllerCinfo = (void *)0x01EA00A8; -const void * RTTI_hkpCharacterRigidBodyListener = (void *)0x01EA00E0; -const void * RTTI_bhkCharacterRigidBodyCinfo = (void *)0x01EA0118; -const void * RTTI_bhkCharacterRigidBody = (void *)0x01EA0150; -const void * RTTI_bhkCharRigidBodyControllerCinfo = (void *)0x01EA0180; -const void * RTTI_bhkCharRigidBodyController = (void *)0x01EA01B8; -const void * RTTI_bhkBallAndSocketConstraint = (void *)0x01EA01F0; -const void * RTTI_bhkRagdollTemplateData = (void *)0x01EA0228; -const void * RTTI_bhkRagdollTemplate = (void *)0x01EA0258; -const void * RTTI_hkRagdollConstraintCinfo = (void *)0x01EA0288; -const void * RTTI_bhkRagdollConstraint = (void *)0x01EA02B8; -const void * RTTI_hkpSafeEaseConstraintsAction = (void *)0x01EA02E8; -const void * RTTI_bhkBipedOrientationController = (void *)0x01EA0320; -const void * RTTI_hkThreadMemory = (void *)0x01EA0568; -const void * RTTI_bhkMemorySystem = (void *)0x01EA0590; -const void * RTTI_hkpSuspendInactiveAgentsUtil = (void *)0x01EA05F0; -const void * RTTI_bhkCompressedMeshShapeData = (void *)0x01EA0698; -const void * RTTI_bhkCompressedMeshShape = (void *)0x01EA06D0; -const void * RTTI_bhkConvexSweepShape = (void *)0x01EA0770; -const void * RTTI_bhkConvexTransformShape = (void *)0x01EA07A0; -const void * RTTI_bhkConvexTranslateShape = (void *)0x01EA07D0; -const void * RTTI_bhkConvexVerticesShape = (void *)0x01EA0800; -const void * RTTI_bhkCylinderShape = (void *)0x01EA0830; -const void * RTTI_bhkMultiSphereShape = (void *)0x01EA0858; -const void * RTTI_bhkHeightFieldShape = (void *)0x01EA0888; -const void * RTTI_bhkPlaneShape = (void *)0x01EA08B8; -const void * RTTI_bhkTriangleShape = (void *)0x01EA08E0; -const void * RTTI_hkScaledMoppBvTreeShape = (void *)0x01EA0908; -const void * RTTI_bhkMoppBvTreeShape = (void *)0x01EA0938; -const void * RTTI_bhkTransformShape = (void *)0x01EA0968; -const void * RTTI_hkConstraintChainCinfo = (void *)0x01EA0990; -const void * RTTI_bhkConstraintChain = (void *)0x01EA09C0; -const void * RTTI_hkBallSocketChainCinfo = (void *)0x01EA09F0; -const void * RTTI_bhkBallSocketConstraintChain = (void *)0x01EA0A20; -const void * RTTI_bhkGroupConstraint = (void *)0x01EA0A58; -const void * RTTI_hkHingeLimitsConstraintCinfo = (void *)0x01EA0A88; -const void * RTTI_bhkHingeLimitsConstraint = (void *)0x01EA0AC0; -const void * RTTI_bhkGenericConstraint = (void *)0x01EA0AF0; -const void * RTTI_bhkFixedConstraint = (void *)0x01EA0B20; -const void * RTTI_hkRagdollLimitsConstraintCinfo = (void *)0x01EA0B50; -const void * RTTI_bhkRagdollLimitsConstraint = (void *)0x01EA0B88; -const void * RTTI_hkWheelConstraintCinfo = (void *)0x01EA0BC0; -const void * RTTI_bhkWheelConstraint = (void *)0x01EA0BF0; -const void * RTTI_ahkpBreakableConstraintData = (void *)0x01EA0C20; -const void * RTTI_hkBreakableConstraintCinfo = (void *)0x01EA0C58; -const void * RTTI_bhkBreakableConstraint = (void *)0x01EA0C90; -const void * RTTI_bhkBinaryAction = (void *)0x01EA0CC0; -const void * RTTI_bhkAngularDashpotAction = (void *)0x01EA0CE8; -const void * RTTI_bhkDashpotAction = (void *)0x01EA0D18; -const void * RTTI_bhkLiquidAction = (void *)0x01EA0D40; -const void * RTTI_bhkMotorAction = (void *)0x01EA0D68; -const void * RTTI_bhkOrientHingedBodyAction = (void *)0x01EA0D90; -const void * RTTI_bhkSpringAction = (void *)0x01EA0DC0; -const void * RTTI_bhkBlendController = (void *)0x01EA0DE8; -const void * RTTI_bhkExtraData = (void *)0x01EA0E18; -const void * RTTI_bhkPoseArray = (void *)0x01EA0E40; -const void * RTTI_hkaDetectRagdollPenetration = (void *)0x01EA0E68; -const void * RTTI_bhkCharacterStateInAir = (void *)0x01EA0EA0; -const void * RTTI_bhkCharacterStateJumping = (void *)0x01EA0ED0; -const void * RTTI_bhkCharacterStateOnGround = (void *)0x01EA0F00; -const void * RTTI_bhkCharacterStateSwimming = (void *)0x01EA0F30; -const void * RTTI_hkCharControllerShape = (void *)0x01EA0F60; -const void * RTTI_bhkCharControllerShape = (void *)0x01EA0F90; -const void * RTTI_bhkQuadOrientationController = (void *)0x01EA0FC0; -const void * RTTI_hkPointToPathConstraintCinfo = (void *)0x01EA1038; -const void * RTTI_bhkPositionConstraintMotor = (void *)0x01EA1070; -const void * RTTI_bhkVelocityConstraintMotor = (void *)0x01EA10A8; -const void * RTTI_bhkSpringDamperConstraintMotor = (void *)0x01EA10E0; -const void * RTTI_hkbCameraShakeEventPayload = (void *)0x01EA1118; -const void * RTTI_hkbParticleSystemEventPayload = (void *)0x01EA1150; -const void * RTTI_hkbStateChooser = (void *)0x01EA1188; -const void * RTTI_hkbTestStateChooser = (void *)0x01EA11B0; -const void * RTTI_hkbSimulationControlCommand = (void *)0x01EA11E0; -const void * RTTI_hkbCharacterControlCommand = (void *)0x01EA1218; -const void * RTTI_hkbRaiseEventCommand = (void *)0x01EA1250; -const void * RTTI_hkbSetWordVariableCommand = (void *)0x01EA1280; -const void * RTTI_hkbSetLocalTimeOfClipGeneratorCommand = (void *)0x01EA12B0; -const void * RTTI_hkbSetBehaviorCommand = (void *)0x01EA12F0; -const void * RTTI_hkbSetNodePropertyCommand = (void *)0x01EA1320; -const void * RTTI_hkbCharacterAddedInfo = (void *)0x01EA1350; -const void * RTTI_hkbCharacterInfo = (void *)0x01EA1380; -const void * RTTI_hkbCharacterSteppedInfo = (void *)0x01EA13A8; -const void * RTTI_hkbCharacterSkinInfo = (void *)0x01EA13D8; -const void * RTTI_hkbBehaviorInfo = (void *)0x01EA1408; -const void * RTTI_hkbBehaviorEventsInfo = (void *)0x01EA1430; -const void * RTTI_hkbEventRaisedInfo = (void *)0x01EA1460; -const void * RTTI_hkbSimulationStateInfo = (void *)0x01EA1490; -const void * RTTI_hkbLinkedSymbolInfo = (void *)0x01EA14C0; -const void * RTTI_hkbAuxiliaryNodeInfo = (void *)0x01EA14F0; -const void * RTTI_hkbBehaviorGraphInternalStateInfo = (void *)0x01EA1520; -const void * RTTI_hkpHeightFieldAgent = (void *)0x01EA1558; -const void * RTTI_hkHeightFieldRayForwardingCollector = (void *)0x01EA1630; -const void * RTTI_hkpContinuousSimulation = (void *)0x01EA1670; -const void * RTTI_hkpMultiThreadedSimulation = (void *)0x01EA16A0; -const void * RTTI_hkpMultiThreadedSimulation__MtEntityEntityBroadPhaseListener = (void *)0x01EA16E0; -const void * RTTI_hkpMultiThreadedSimulation__MtPhantomBroadPhaseListener = (void *)0x01EA1740; -const void * RTTI_hkpMultiThreadedSimulation__MtBroadPhaseBorderListener = (void *)0x01EA1790; -const void * RTTI_bhkCharacterPointCollector = (void *)0x01EA17E0; -const void * RTTI_ahkpCharacterProxy = (void *)0x01EA1870; -const void * RTTI_ahkpCharacterRigidBody = (void *)0x01EA18A0; -const void * RTTI_hkSolverAllocator = (void *)0x01EA18D0; -const void * RTTI_bhkThreadMemorySource = (void *)0x01EA18F8; -const void * RTTI_hkJobThreadPool = (void *)0x01EA1928; -const void * RTTI_hkCpuJobThreadPool = (void *)0x01EA1950; -const void * RTTI_hkpCompressedMeshShape = (void *)0x01EA0740; -const void * RTTI_hkLiquidAction = (void *)0x01EA1A00; -const void * RTTI_hkOrientHingedBodyAction = (void *)0x01EA1A28; -const void * RTTI_hkgpConvexHull = (void *)0x01EA1A58; -const void * RTTI_bhkPointToPathConstraint = (void *)0x01EA1AF8; -const void * RTTI_hkRemoteObjectClientSideListener = (void *)0x01EA1B28; -const void * RTTI_hkbBehaviorClient = (void *)0x01EA1B60; -const void * RTTI_hkbClientCharacterState = (void *)0x01EA1B88; -const void * RTTI_hkpToiResourceMgr = (void *)0x01EA1BB8; -const void * RTTI_hkpDefaultToiResourceMgr = (void *)0x01EA1BE0; -const void * RTTI_hkpDeferredConstraintOwner = (void *)0x01EA1C10; -const void * RTTI_hkgpIndexedMesh = (void *)0x01EA1C48; -const void * RTTI_hkpMoppMediator = (void *)0x01EA1C70; -const void * RTTI_hkpMoppShapeMediator = (void *)0x01EA1C98; -const void * RTTI_hkpMoppCachedShapeMediator = (void *)0x01EA1CC8; -const void * RTTI_hkpMoppCostFunction = (void *)0x01EA1D00; -const void * RTTI_hkGeometryProcessingInternals__NearestFeaturePolicy = (void *)0x01EA1EA0; -const void * RTTI_hkProcess = (void *)0x01EA1F60; -const void * RTTI_hkRemoteObjectProcess = (void *)0x01EA1F80; -const void * RTTI_hkKdTreeCastCollector = (void *)0x01EA1FB0; -const void * RTTI_hkCpuWorldGetClosestPointsCollector = (void *)0x01EA1FE0; -const void * RTTI_hkCpuWorldLinearCastCollector = (void *)0x01EA2080; -const void * RTTI_hkpFixedBufferRayHitCollector = (void *)0x01EA2120; -const void * RTTI_hkCpuWorldRayCastCollector = (void *)0x01EA2158; -const void * RTTI_hkpSimpleMeshShape = (void *)0x01EA2190; -const void * RTTI_hkpMoppNodeMgr = (void *)0x01EA21C0; -const void * RTTI_hkpMoppSplitter = (void *)0x01EA21E8; -const void * RTTI_hkpMoppDefaultSplitter = (void *)0x01EA2210; -const void * RTTI_hkpMoppCodeGenerator = (void *)0x01EA2240; -const void * RTTI_hkpMoppAssembler = (void *)0x01EA2270; -const void * RTTI_hkpMoppDefaultAssembler = (void *)0x01EA2298; -const void * RTTI_hkgpTriangulatorBase = (void *)0x01EA2C48; -const void * RTTI_hkgpJobQueue__IJob = (void *)0x01EA2DB8; -const void * RTTI_hkgpMesh = (void *)0x01EA2DE0; -const void * RTTI_hkgpMesh__IConvexOverlap = (void *)0x01EA2E70; -const void * RTTI_hkgpMesh__IConvexOverlap__IConvexShape = (void *)0x01EA2EA0; -const void * RTTI_hkgpMesh__TriangleShape = (void *)0x01EA2EE0; -const void * RTTI_hkgpMesh__ExternShape = (void *)0x01EA2F10; -const void * RTTI_hkgpMesh__CollideShapeTriangle = (void *)0x01EA2F40; -const void * RTTI_hkgpMesh__NearestFeaturePolicy = (void *)0x01EA2F78; -const void * RTTI_hkGskShape = (void *)0x01EA2FB0; -const void * RTTI_hkgpMeshInternals__SimpleCollector = (void *)0x01EA3168; -const void * RTTI_hkgpMeshInternals__TriangleOverlap = (void *)0x01EA31A0; -const void * RTTI_hkgpMeshInternals__RayCaster = (void *)0x01EA31D8; -const void * RTTI_IConvexOverlapImpl = (void *)0x01EA3210; -const void * RTTI_IConvexOverlapImpl__ShapeBridge = (void *)0x01EA3240; -const void * RTTI_hkProcessFactory = (void *)0x01EA32D8; -const void * RTTI_hkKdTreeBundleCastCollector = (void *)0x01EA3338; -const void * RTTI_hkKdTreeBuildInput__Mediator = (void *)0x01EA3370; -const void * RTTI_hkpCollidableMediator = (void *)0x01EA33A8; -const void * RTTI_hkKdTreeCpuBroadphaseBundleCastCollector = (void *)0x01EA33D8; -const void * RTTI_BSUIScaleformData = (void *)0x01EA34E8; -const void * RTTI_GFile = (void *)0x01EA3888; -const void * RTTI_GMemoryFile = (void *)0x01EA3908; -const void * RTTI_GFxState = (void *)0x01EA3830; -const void * RTTI_GFxFileOpenerBase = (void *)0x01EA3930; -const void * RTTI_BSScaleformFileOpener = (void *)0x01EA3958; -const void * RTTI_ScaleformFile__MemoryFile = (void *)0x01EA3E98; -const void * RTTI_IMenu = (void *)0x01E37A50; -const void * RTTI_GSysAllocBase = (void *)0x01EA3EC8; -const void * RTTI_GSysAllocPaged = (void *)0x01EA3EF0; -const void * RTTI_GSysMemoryMap = (void *)0x01EA3F18; -const void * RTTI_GFxLog = (void *)0x01EA3F40; -const void * RTTI_GFxTranslator = (void *)0x01EA3FB8; -const void * RTTI_GFxZlibSupportBase = (void *)0x01EA3FE0; -const void * RTTI_GFxZlibSupport = (void *)0x01EA4010; -const void * RTTI_BSScaleformTranslator = (void *)0x01EA4038; -const void * RTTI_BSStreamParserData = (void *)0x01EA4068; -const void * RTTI_BSResourceStreamParser = (void *)0x01EA4098; -const void * RTTI_IDebugText = (void *)0x01EA43C8; -const void * RTTI_DebugText = (void *)0x01EA43F0; -const void * RTTI_GFxExternalInterface = (void *)0x01EA4410; -const void * RTTI_FxDelegate = (void *)0x01EA4440; -const void * RTTI_FxDelegateHandler__CallbackProcessor = (void *)0x01EA4468; -const void * RTTI_AddCallbackVisitor = (void *)0x01EA44A8; -const void * RTTI_RemoveCallbackVisitor = (void *)0x01EA44D8; -const void * RTTI_GFxImageLoader = (void *)0x01EA4508; -const void * RTTI_BSScaleformImageLoader = (void *)0x01EA4530; -const void * RTTI_BSScaleformMovieLoadTask = (void *)0x01EA4560; -const void * RTTI_MoviePlayer = (void *)0x01E3B5D0; -const void * RTTI_BSMusicManager = (void *)0x01EA4590; -const void * RTTI_ITrianglePathSplitter = (void *)0x01EA47D0; -const void * RTTI_IPathSmootherRayCast = (void *)0x01EA4800; -const void * RTTI_FindTriangleForLocationWaterFilter = (void *)0x01EA4830; -const void * RTTI_BSPathing = (void *)0x01E2FD78; -const void * RTTI_BSPathing__EdgeFoundVisitor = (void *)0x01EA4870; -const void * RTTI_TrianglePathWaterAndLedgeSplitter = (void *)0x01EA48A8; -const void * RTTI_BSNavmeshInfoSearch = (void *)0x01EA49F0; -const void * RTTI_BSPrecomputedNavmeshInfoSearch = (void *)0x01EA4B08; -const void * RTTI_IMovementSetState = (void *)0x01EA4B40; -const void * RTTI_IMovementQueryState = (void *)0x01EA4B68; -const void * RTTI_MovementAgentActorState = (void *)0x01EA4B98; -const void * RTTI_IPathBuilderTracker = (void *)0x01EA4DC8; -const void * RTTI_BSPathingRequest = (void *)0x01E2FF28; -const void * RTTI_NullPathBuilderTracker = (void *)0x01EA4DF8; -const void * RTTI_IPipelineStageInterface = (void *)0x01E41558; -const void * RTTI_IMovementPlannerAgent = (void *)0x01E428E0; -const void * RTTI_IMovementPathManagerAgent = (void *)0x01EA5088; -const void * RTTI_IMovementQueryPathFollowing = (void *)0x01EA50B8; -const void * RTTI_IMovementQueryPathFollowing__INodeVisitor = (void *)0x01EA50F0; -const void * RTTI_IMovementSetPathFollowing = (void *)0x01EA5130; -const void * RTTI_IMovementPlayIdleResult = (void *)0x01EA5160; -const void * RTTI_IPathFollowerAction = (void *)0x01EA5190; -const void * RTTI_ISelectIdleFilter = (void *)0x01EA51C0; -const void * RTTI_ICheckEndReachedFunctorMapper = (void *)0x01EA51E8; -const void * RTTI_IMovementHandlerAgent = (void *)0x01E41618; -const void * RTTI_CheckParameterReachedFunctor = (void *)0x01EA5220; -const void * RTTI_CheckGoalReachedFunctor = (void *)0x01EA5288; -const void * RTTI_CheckStoppedMovingFunctor = (void *)0x01EA52B8; -const void * RTTI_MovementAgentPathFollowerStandard = (void *)0x01EA52E8; -const void * RTTI_MovementSelectIdleUtils__SelectFirstIdleFilter = (void *)0x01EA5320; -const void * RTTI_MovementPathManagerAgent = (void *)0x01EA5630; -const void * RTTI_IMovementSetGoal = (void *)0x01EA5660; -const void * RTTI_IMovementQueryPathingState = (void *)0x01EA5688; -const void * RTTI_IMovementPathManagerDataTracker = (void *)0x01EA56C0; -const void * RTTI_MovementPathManagerArbiter = (void *)0x01EA5788; -const void * RTTI_MovementMessageNewPath = (void *)0x01EA57E8; -const void * RTTI_MovementPathManagerNullTracker = (void *)0x01EA5848; -const void * RTTI_BSNavmesh = (void *)0x01E2F4F8; -const void * RTTI_BSNavmeshInfoMap = (void *)0x01E2F618; -const void * RTTI_BSNavmeshInfoMap__IRecursiveVisitor = (void *)0x01EA5D68; -const void * RTTI_BSPrecomputedNavmeshInfoPathMap__INavmeshInfoVisitor = (void *)0x01EA5E10; -const void * RTTI_BSNavmeshObstacleData = (void *)0x01EA5E60; -const void * RTTI_PathingTaskData = (void *)0x01EA5E90; -const void * RTTI_MovementArbitrationAverageFloat = (void *)0x01EA5FB8; -const void * RTTI_MovementArbitrationMaxWeightPoint = (void *)0x01EA6060; -const void * RTTI_MovementArbitrationMaxWeightParameters = (void *)0x01EA6128; -const void * RTTI_NullMovementSelectIdleResult = (void *)0x01EA6288; -const void * RTTI_INavmeshSearchFilterSet = (void *)0x01E30C40; -const void * RTTI_BSNavmeshSearchFilters = (void *)0x01E30CF0; -const void * RTTI_BSNavmeshSearch = (void *)0x01E30C98; -const void * RTTI_BSPathingLOSGridCell = (void *)0x01EA62C0; -const void * RTTI_BSPathingLOSGrid = (void *)0x01EA62F0; -const void * RTTI_BSPathingLOSGridMap = (void *)0x01EA6318; -const void * RTTI_BSPathBuilder = (void *)0x01EA6348; -const void * RTTI_PathSmootherRayCastUsePreferredTris = (void *)0x01EA6480; -const void * RTTI_PathSmootherRayCastUseTrianglePath = (void *)0x01EA64C0; -const void * RTTI_BSPathEventManager = (void *)0x01EA6500; -const void * RTTI_IMovementControllerRegisterInterface = (void *)0x01E41238; -const void * RTTI_IMovementControllerDataTracker = (void *)0x01EA6728; -const void * RTTI_MovementControllerAI = (void *)0x01E41208; -const void * RTTI_NullMovementState = (void *)0x01EA6760; -const void * RTTI_BSPathingStreamSimpleBufferRead = (void *)0x01EA67D8; -const void * RTTI_MovementControllerNullDataTracker = (void *)0x01EA6810; -const void * RTTI_MovementMessageDoor = (void *)0x01EA68A8; -const void * RTTI_MovementMessageApproachingDoor = (void *)0x01EA68D8; -const void * RTTI_MovementMessageActivateDoor = (void *)0x01EA6910; -const void * RTTI_MovementMessageWarpToLocation = (void *)0x01EA6B90; -const void * RTTI_MovementMessageWarpToMultiple = (void *)0x01EA6E10; -const void * RTTI_MovementMessageBlocked = (void *)0x01EA7090; -const void * RTTI_MovementMessagePlayIdle = (void *)0x01EA72E8; -const void * RTTI_MovementMessageFreezeDirection = (void *)0x01EA7558; -const void * RTTI_MovementMessageSetStaticPath = (void *)0x01EA77D0; -const void * RTTI_MovementMessageJump = (void *)0x01EA7A50; -const void * RTTI_IMovementQueryDeltas = (void *)0x01EA7CA8; -const void * RTTI_MovementPostUpdateArbiter = (void *)0x01EA7CD8; -const void * RTTI_IMovementSetStaticAvoider = (void *)0x01EA7F20; -const void * RTTI_IMovementQueryStaticAvoider = (void *)0x01EA7F50; -const void * RTTI_MovementPathManagerAgentStaticAvoider = (void *)0x01EA7F88; -const void * RTTI_IMovementQueryActorAvoidance = (void *)0x01EA8208; -const void * RTTI_MovementAgentActorAvoider = (void *)0x01EA8240; -const void * RTTI_MovementAgent = (void *)0x01E415F0; -const void * RTTI_MovementArbiter = (void *)0x01EA57C0; -const void * RTTI_IMovementSetTranslationControllerType = (void *)0x01EA8478; -const void * RTTI_MovementHandlerAgentTranslationController = (void *)0x01EA84C0; -const void * RTTI_IMovementSetCorrectionData = (void *)0x01EA8748; -const void * RTTI_MovementTweenerAgentFixedDelta = (void *)0x01EA8780; -const void * RTTI_MovementHandlerArbiter = (void *)0x01EA89D0; -const void * RTTI_MovementHandlerAgent = (void *)0x01E415C0; -const void * RTTI_IMovementPlannerSetArbitration = (void *)0x01EA8F10; -const void * RTTI_MovementPlannerArbiter = (void *)0x01EA8F48; -const void * RTTI_MovementPlannerAgent = (void *)0x01E428B0; -const void * RTTI_MovementPathManagerAgentLoadedAreaMonitor = (void *)0x01EA95D0; -const void * RTTI_IMovementQueryFlight = (void *)0x01EA9858; -const void * RTTI_MovementAgentPathFollowerFlight = (void *)0x01EA9888; -const void * RTTI_MovementAgentPathFollowerVirtual = (void *)0x01EA9AE0; -const void * RTTI_MovementHandlerAgentAngleController = (void *)0x01EA9D40; -const void * RTTI_MovementHandlerAgentAngleGain = (void *)0x01EA9FA8; -const void * RTTI_MovementHandlerAgentSpeedPassThrough = (void *)0x01EAA1F0; -const void * RTTI_MovementHandlerAgentAnglePassThrough = (void *)0x01EAA468; -const void * RTTI_MovementHandlerAgentDirectionPassThrough = (void *)0x01EAA6E8; -const void * RTTI_MovementHandlerAgentStrafing = (void *)0x01EAA978; -const void * RTTI_MovementHandlerAgentLargeDeltaIdle = (void *)0x01EAABC0; -const void * RTTI_MovementPlannerAgentNavmeshBounds = (void *)0x01EAAE20; -const void * RTTI_MovementPathManagerAgentAvoidBox = (void *)0x01EAB080; -const void * RTTI_IMovementQueryTweener = (void *)0x01EAB348; -const void * RTTI_IMovementSetTweener = (void *)0x01EAB378; -const void * RTTI_IMovementTweenerAgent = (void *)0x01E432E8; -const void * RTTI_MovementTweenerArbiter = (void *)0x01EAB3A8; -const void * RTTI_MovementTweenerAgent = (void *)0x01E432B8; -const void * RTTI_MovementStateTweener = (void *)0x01EAB758; -const void * RTTI_MovementStateFollowPath = (void *)0x01EAB988; -const void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToPath = (void *)0x01EABBC0; -const void * RTTI_MovementMessagePathEvent = (void *)0x01EA5818; -const void * RTTI_MovementMessagePathComplete = (void *)0x01EABC08; -const void * RTTI_MovementMessagePathFailed = (void *)0x01EABC40; -const void * RTTI_MovementMessagePathCleared = (void *)0x01EABC70; -const void * RTTI_BSPathSmootherPOVSearch = (void *)0x01EAC360; -const void * RTTI_BSPathingSearchRayCast = (void *)0x01EAC448; -const void * RTTI_ISmoothingRayValidator = (void *)0x01EAC478; -const void * RTTI_GroundPathRayValidator = (void *)0x01EAC4A8; -const void * RTTI_WaterPathRayValidator = (void *)0x01EAC4D8; -const void * RTTI_IPathingNodeGenerator = (void *)0x01EAC508; -const void * RTTI_GroundPathPathingNodeGenerator = (void *)0x01EAC538; -const void * RTTI_WaterPathPathingNodeGenerator = (void *)0x01EAC570; -const void * RTTI_IPathFollowerState = (void *)0x01EAC5A8; -const void * RTTI_ICheckEndReachedFunctor = (void *)0x01EA5258; -const void * RTTI_PathFollowerStatePlayIdle = (void *)0x01EAC5D8; -const void * RTTI_PathFollowerStateFollowPathToParameter = (void *)0x01EAC608; -const void * RTTI_PathFollowerStateTurnToAngle = (void *)0x01EAC648; -const void * RTTI_PathFollowerStateKeepLastDirection = (void *)0x01EAC680; -const void * RTTI_VelocityObstacle__Utilities__BuildOpenEdgeListsVisitor = (void *)0x01EAC6C0; -const void * RTTI_BSNavmeshObstacleUndoData = (void *)0x01EAC710; -const void * RTTI_MovementArbitrationVectorAdd = (void *)0x01EAC740; -const void * RTTI_bnet__BaseCallback = (void *)0x01EAC7C8; -const void * RTTI_BSPlatform__BSTerminatedCallback = (void *)0x01EAC890; -const void * RTTI_BSPlatform__BSBethesdaPlatform = (void *)0x01EAC8C8; -const void * RTTI_BSPlatform__BSAsyncRequestBase = (void *)0x01EACBB8; -const void * RTTI_bnet__EmptyTerminationCB = (void *)0x01EAE7F8; -const void * RTTI_bnet__ExternalAuthInfo = (void *)0x01EAE828; -const void * RTTI_bnet__SteamExternalAuthInfo = (void *)0x01EAE858; -const void * RTTI_BSPlatform__BSUploadRequest = (void *)0x01EACD50; -const void * RTTI_BSPlatform__BSDownloadRequest = (void *)0x01EACD88; -const void * RTTI_bnet___impl__RefCount = (void *)0x01EB1CF8; -const void * RTTI_bnet___impl__SharedMutex = (void *)0x01EB1D28; -const void * RTTI_bnet__IDynamicVariableDeleter = (void *)0x01EB1D58; -const void * RTTI_bnet__ConfigurationEntry = (void *)0x01EB1D90; -const void * RTTI_bnet___impl__IPool = (void *)0x01EB1E18; -const void * RTTI_bnet__ConfigurationEntryBoolean = (void *)0x01EB1E40; -const void * RTTI_bnet__ConfigurationEntryInteger = (void *)0x01EB1E78; -const void * RTTI_bnet__ConfigurationEntryFloat = (void *)0x01EB1EB0; -const void * RTTI_bnet__ConfigurationEntryLong = (void *)0x01EB1EE8; -const void * RTTI_bnet__ConfigurationEntryString = (void *)0x01EB1F20; -const void * RTTI_bnet__IJobCollection = (void *)0x01EB21B0; -const void * RTTI_bnet___detail__Composite = (void *)0x01EB21E0; -const void * RTTI_std__exception = (void *)0x01EB2230; -const void * RTTI_std__bad_weak_ptr = (void *)0x01EB2340; -const void * RTTI_std___Ref_count_base = (void *)0x01EB2368; -const void * RTTI_bnet__IHeap = (void *)0x01EB23F0; -const void * RTTI_bnet__IHttpConnectionProvider = (void *)0x01EB2418; -const void * RTTI_bnet__Network = (void *)0x01EB2520; -const void * RTTI_bnet__UserProcessor = (void *)0x01EB2A00; -const void * RTTI_bnet__UserQueue = (void *)0x01EB2A88; -const void * RTTI_bnet__UserProcessorCollection = (void *)0x01EB2AB0; -const void * RTTI_bnet__JobProcessorCollection = (void *)0x01EB2AE8; -const void * RTTI_bnet___impl__AsyncOperation = (void *)0x01EB2C10; -const void * RTTI_bnet__SuspendFlow = (void *)0x01EB2CA0; -const void * RTTI_bnet__ResumeFlow = (void *)0x01EB2E28; -const void * RTTI_bnet__BaseHttpRequest = (void *)0x01EB3088; -const void * RTTI_bnet__LogoutFlow = (void *)0x01EB33F8; -const void * RTTI_bnet__IUgcUploader = (void *)0x01EB34B8; -const void * RTTI_bnet__ChunkedUploadFlow = (void *)0x01EB34E0; -const void * RTTI_bnet__IDownloader = (void *)0x01EB36B0; -const void * RTTI_bnet__DownloadFlow = (void *)0x01EB36D8; -const void * RTTI_bnet__FileDownloader = (void *)0x01EB3A08; -const void * RTTI_bnet__UgcBrowseRequest = (void *)0x01EB3AC8; -const void * RTTI_bnet__UgcArgLessRequest = (void *)0x01EB3B88; -const void * RTTI_bnet__UgcCategoryCountRequest = (void *)0x01EB3BB8; -const void * RTTI_bnet__UgcContentUploadRequest = (void *)0x01EB3D40; -const void * RTTI_bnet__UgcImageUploadRequest = (void *)0x01EB3E70; -const void * RTTI_bnet__UgcAddVideoRequest = (void *)0x01EB3EA8; -const void * RTTI_bnet__UgcContentRequest = (void *)0x01EB3ED8; -const void * RTTI_bnet__UgcContentUploadDetailsRequest = (void *)0x01EB3F88; -const void * RTTI_bnet__UgcCreationRequest = (void *)0x01EB4050; -const void * RTTI_bnet__UgcEditRequest = (void *)0x01EB4100; -const void * RTTI_bnet__UgcFlagRequest = (void *)0x01EB4130; -const void * RTTI_bnet__UgcListContentRequest = (void *)0x01EB4160; -const void * RTTI_bnet__UgcListCategoriesRequest = (void *)0x01EB4268; -const void * RTTI_bnet__UgcListDlcRequest = (void *)0x01EB4328; -const void * RTTI_bnet__Ugc__ListPlatformsRequest = (void *)0x01EB4488; -const void * RTTI_bnet__Ugc__ListProductsRequest = (void *)0x01EB4588; -const void * RTTI_bnet__UgcListFollowedAuthorRequest = (void *)0x01EB46E8; -const void * RTTI_bnet__UgcListNotificationRequest = (void *)0x01EB47E8; -const void * RTTI_bnet__UgcListBlacklistedRequest = (void *)0x01EB48F0; -const void * RTTI_bnet__UgcListFeaturedContentRequest = (void *)0x01EB4A58; -const void * RTTI_bnet__UgcListByEntitlementIdsRequest = (void *)0x01EB4A98; -const void * RTTI_bnet__UgcNotificationAcknowledgeRequest = (void *)0x01EB4AD8; -const void * RTTI_bnet__UgcPreviewUploadRequest = (void *)0x01EB4B18; -const void * RTTI_bnet__UgcQueryRequest = (void *)0x01EB4B50; -const void * RTTI_bnet__UgcRateRequest = (void *)0x01EB4B80; -const void * RTTI_bnet__UgcAddReleaseNoteRequest = (void *)0x01EB4BB0; -const void * RTTI_bnet__UgcUpdateReleaseNoteRequest = (void *)0x01EB4C58; -const void * RTTI_bnet__UgcRemoveReleaseNoteRequest = (void *)0x01EB4C90; -const void * RTTI_bnet__Ugc__RefreshEntitlementRequest = (void *)0x01EB4CC8; -const void * RTTI_bnet__Job = (void *)0x01EB2210; -const void * RTTI_bnet__FreeLessHeap = (void *)0x01EB4D08; -const void * RTTI_bnet__AcquirableFreeLessHeap = (void *)0x01EB4D30; -const void * RTTI_bnet__NetworkLoop = (void *)0x01EB4D68; -const void * RTTI_bnet__AcceptLegalDocumentsRequest = (void *)0x01EB4E30; -const void * RTTI_bnet__ListLegalDocumentsFlow = (void *)0x01EB4EC8; -const void * RTTI_bnet__AccountLinkingRequest = (void *)0x01EB5078; -const void * RTTI_bnet__AccountQuickCreateFlow = (void *)0x01EB5138; -const void * RTTI_bnet__AnonymousAuthenticationFlow = (void *)0x01EB5398; -const void * RTTI_bnet__SessionAnonymousCreateFlow = (void *)0x01EB5460; -const void * RTTI_bnet__SessionQuickCreateFlow = (void *)0x01EB5530; -const void * RTTI_bnet__AccountDeletionRequest = (void *)0x01EB55F8; -const void * RTTI_bnet__AddFingerprintRequest = (void *)0x01EB5630; -const void * RTTI_bnet__IsAccountLinkableRequest = (void *)0x01EB5668; -const void * RTTI_bnet__UserCredentialsAuthenticationFlow = (void *)0x01EB5708; -const void * RTTI_bnet__ExternalAuthenticationFlow = (void *)0x01EB5890; -const void * RTTI_bnet__GameCodeAuthenticationFlow = (void *)0x01EB5A88; -const void * RTTI_bnet__UnlinkAccountFlow = (void *)0x01EB5B50; -const void * RTTI_bnet__UsernameValidationRequest = (void *)0x01EB5D10; -const void * RTTI_bnet__VerifyFingerprintRequest = (void *)0x01EB5D48; -const void * RTTI_bnet__VerifyLinkRequest = (void *)0x01EB5D80; -const void * RTTI_bnet__TwitchAccountInfoRequest = (void *)0x01EB5DB0; -const void * RTTI_bnet__CheckEmailRequest = (void *)0x01EB5E78; -const void * RTTI_bnet__RecoverPasswordRequest = (void *)0x01EB5EA8; -const void * RTTI_bnet__RecoverUsernameRequest = (void *)0x01EB5EE0; -const void * RTTI_bnet__ResendVerificationRequest = (void *)0x01EB5F18; -const void * RTTI_bnet__SessionValidateRequest = (void *)0x01EB5F50; -const void * RTTI_bnet__AccountInfoRequest = (void *)0x01EB6018; -const void * RTTI_bnet__RetrieveExternalAccountJob = (void *)0x01EB6140; -const void * RTTI_bnet__ExternalServiceRetrieveAccountRequest = (void *)0x01EB63A0; -const void * RTTI_bnet__AccountUpgradeAnonymousToQuickRequest = (void *)0x01EB64D0; -const void * RTTI_bnet__GameAccountLinkFlow = (void *)0x01EB65B8; -const void * RTTI_bnet__GameAccountLinkConflictResolveFlow = (void *)0x01EB6678; -const void * RTTI_bnet__GameAccountExternalLinkConflictResolveFlow = (void *)0x01EB6760; -const void * RTTI_bnet__GameAccountUserCredentialsAuthenticationFlow = (void *)0x01EB6850; -const void * RTTI_bnet__GameAccountExternalAuthenticationFlow = (void *)0x01EB69F0; -const void * RTTI_bnet__GameAccountExternalLinkFlow = (void *)0x01EB6B78; -const void * RTTI_bnet__GameAccountGameCodeAuthenticationFlow = (void *)0x01EB6C40; -const void * RTTI_bnet__SessionResumeFlow = (void *)0x01EB6D28; -const void * RTTI_bnet__NewGameSessionFlow = (void *)0x01EB6DE0; -const void * RTTI_bnet__Entitlements__ListRequest = (void *)0x01EB6E90; -const void * RTTI_bnet__Entitlements__ConsumeRequest = (void *)0x01EB6F90; -const void * RTTI_bnet__Entitlements__SearchRequest = (void *)0x01EB7048; -const void * RTTI_bnet__EventLog__LogEventRequest = (void *)0x01EB7080; -const void * RTTI_bnet__VCCS__Wallet__BalanceRequest = (void *)0x01EB70B8; -const void * RTTI_bnet__VCCS__Wallet__PurchaseRequest = (void *)0x01EB7170; -const void * RTTI_bnet__UgcMtxPurchaseFlow = (void *)0x01EB7238; -const void * RTTI_bnet__VCCS__Fulfillment__UpdateFirstPartyEntitlementRequest = (void *)0x01EB7390; -const void * RTTI_bnet__VCCS__Catalog__GetItemRequest = (void *)0x01EB73E0; -const void * RTTI_bnet__VCCS__Catalog__ListItemsRequest = (void *)0x01EB74A0; -const void * RTTI_bnet__CMS__ListMessagesRequest = (void *)0x01EB7558; -const void * RTTI_bnet__Status__GetExtServerStatusRequest = (void *)0x01EB7658; -const void * RTTI_bnet__SessionLogoutRequest = (void *)0x01EB7730; -const void * RTTI_bnet__UgcCancelUploadRequest = (void *)0x01EB7760; -const void * RTTI_bnet__UgcChunkedUploadCompletionRequest = (void *)0x01EB7798; -const void * RTTI_bnet__UgcChunkedUploadInitiationRequest = (void *)0x01EB77D8; -const void * RTTI_bnet__UgcChunkUploadRequest = (void *)0x01EB7878; -const void * RTTI_bnet__CdpFileInfoRequest = (void *)0x01EB78B0; -const void * RTTI_bnet__CdpKeyRequest = (void *)0x01EB7960; -const void * RTTI_bnet__BaseFileDownloader = (void *)0x01EB3A38; -const void * RTTI_bnet__HttpTransport = (void *)0x01EB7A10; -const void * RTTI_bnet__WinHttpTransport = (void *)0x01EB7A40; -const void * RTTI_bnet__SessionRefreshRequest = (void *)0x01EB7AE0; -const void * RTTI_bnet__SessionResumeRequest = (void *)0x01EB7B48; -const void * RTTI_bnet__ListRequiredLegalDocumentsRequest = (void *)0x01EB7C08; -const void * RTTI_bnet__AuthenticationFlow = (void *)0x01EB5170; -const void * RTTI_bnet__BeamQuickCreationRequest = (void *)0x01EB80E8; -const void * RTTI_bnet__AnonymousAuthRequest = (void *)0x01EB81A0; -const void * RTTI_bnet__SessionAnonymousAccountCreateRequest = (void *)0x01EB81D0; -const void * RTTI_bnet__SessionQuickCreateRequest = (void *)0x01EB8210; -const void * RTTI_bnet__SessionAuthRequest = (void *)0x01EB8248; -const void * RTTI_bnet__BeamUserCredentialsAuthenticationRequest = (void *)0x01EB8300; -const void * RTTI_bnet__BeamExternalAuthenticationRequest = (void *)0x01EB8380; -const void * RTTI_bnet__SessionExternalAuthRequest = (void *)0x01EB83C0; -const void * RTTI_bnet__Session__GameCodeAuthRequest = (void *)0x01EB83F8; -const void * RTTI_bnet__TokenUpgradeRequest = (void *)0x01EB8430; -const void * RTTI_bnet__AccountUnlinkingRequest = (void *)0x01EB84E0; -const void * RTTI_bnet__RetrieveExternalAccountRequest = (void *)0x01EB8518; -const void * RTTI_bnet__GameAccountLinkRequest = (void *)0x01EB85E0; -const void * RTTI_bnet__GameAccountLinkConflictResolveRequest = (void *)0x01EB8620; -const void * RTTI_bnet__GameAccountExternalLinkConflictResolveRequest = (void *)0x01EB8670; -const void * RTTI_bnet__GameAccountAuthenticationRequest = (void *)0x01EB86C0; -const void * RTTI_bnet__GameAccountExternalAuthRequest = (void *)0x01EB8700; -const void * RTTI_bnet__GameAccountExternalLinkRequest = (void *)0x01EB8740; -const void * RTTI_bnet__Session__GameAccountGameCodeAuthRequest = (void *)0x01EB8780; -const void * RTTI_bnet__SessionTokenRequest = (void *)0x01EB7B18; -const void * RTTI_bnet__CdpAuthenticationRequest = (void *)0x01EB8808; -const void * RTTI_bnet__SessionResumeTokenRequest = (void *)0x01EB8940; -const void * RTTI_bnet__BeamAuthenticationRequest = (void *)0x01EB8348; -const void * RTTI_BSScript__IFindBoundObjectFunctor = (void *)0x01EB8A18; -const void * RTTI_BSScript__IVMObjectBindInterface = (void *)0x01EB8A50; -const void * RTTI_BSScript__IVMSaveLoadInterface = (void *)0x01EB8A88; -const void * RTTI_BSScript__IVirtualMachine = (void *)0x01EB8AC0; -const void * RTTI_BSScript__IVMDebugInterface = (void *)0x01EB8AF0; -const void * RTTI_BSScript__ErrorLogger = (void *)0x01E823D8; -const void * RTTI_BSScript__UnlinkedTypes__Function__ConvertTypeFunctor = (void *)0x01EB8B30; -const void * RTTI_BSScript__ByteCode__PackedInstructionStream__InstructionFunctor = (void *)0x01EB8BD0; -const void * RTTI_BSScript__IMemoryPagePolicy = (void *)0x01EB8C28; -const void * RTTI_BSScript__SimpleAllocMemoryPagePolicy = (void *)0x01EB8C60; -const void * RTTI_BSScript__CompiledScriptLoader = (void *)0x01EB8CA0; -const void * RTTI_BSScript__IFunction = (void *)0x01E85C58; -const void * RTTI_BSScript__NF_util__NativeFunctionBase = (void *)0x01E85CE0; -const void * RTTI_BSScript__Internal__VirtualMachine = (void *)0x01EB8CD8; -const void * RTTI_BSScript__Internal__IFuncCallQuery = (void *)0x01EB8D50; -const void * RTTI_BSScript__Internal__RawFuncCallQuery = (void *)0x01EB8D88; -const void * RTTI_BSScript__IObjectProcessor = (void *)0x01EB8DC8; -const void * RTTI_BSScript__Internal__CodeTasklet = (void *)0x01EB9170; -const void * RTTI_BSScript__Internal__AutoPropGetFunction = (void *)0x01EB91A8; -const void * RTTI_BSScript__Internal__AutoPropSetFunction = (void *)0x01EB91E8; -const void * RTTI_BSScript__Internal__NativeFunctionStub = (void *)0x01EB9228; -const void * RTTI_BSScript__UnlinkedTypes__InstructionStream__InstructionFunctor = (void *)0x01EB9270; -const void * RTTI_BSScript__LinkerProcessor = (void *)0x01EB9490; -const void * RTTI_BSScript__Internal__ScriptFunction = (void *)0x01EB9508; -const void * RTTI_BSFadeNode = (void *)0x01EB9540; -const void * RTTI_BSShaderProperty = (void *)0x01EB9568; -const void * RTTI_BSLeafAnimNode = (void *)0x01EB9590; -const void * RTTI_BSTreeNode = (void *)0x01EB95B8; -const void * RTTI_BSImagespaceShaderAlphaBlend = (void *)0x01EB96C8; -const void * RTTI_BSImagespaceShaderBlur3 = (void *)0x01EB97A0; -const void * RTTI_BSImagespaceShaderBlur5 = (void *)0x01EB97D0; -const void * RTTI_BSImagespaceShaderBlur7 = (void *)0x01EB9800; -const void * RTTI_BSImagespaceShaderBlur9 = (void *)0x01EB9830; -const void * RTTI_BSImagespaceShaderBlur11 = (void *)0x01EB9860; -const void * RTTI_BSImagespaceShaderBlur13 = (void *)0x01EB9890; -const void * RTTI_BSImagespaceShaderBlur15 = (void *)0x01EB98C0; -const void * RTTI_BSImagespaceShaderNonHDRBlur3 = (void *)0x01EB98F0; -const void * RTTI_BSImagespaceShaderNonHDRBlur5 = (void *)0x01EB9928; -const void * RTTI_BSImagespaceShaderNonHDRBlur7 = (void *)0x01EB9960; -const void * RTTI_BSImagespaceShaderNonHDRBlur9 = (void *)0x01EB9998; -const void * RTTI_BSImagespaceShaderNonHDRBlur11 = (void *)0x01EB99D0; -const void * RTTI_BSImagespaceShaderNonHDRBlur13 = (void *)0x01EB9A08; -const void * RTTI_BSImagespaceShaderNonHDRBlur15 = (void *)0x01EB9A40; -const void * RTTI_BSImagespaceShaderBrightPassBlur3 = (void *)0x01EB9A78; -const void * RTTI_BSImagespaceShaderBrightPassBlur5 = (void *)0x01EB9AB0; -const void * RTTI_BSImagespaceShaderBrightPassBlur7 = (void *)0x01EB9AE8; -const void * RTTI_BSImagespaceShaderBrightPassBlur9 = (void *)0x01EB9B20; -const void * RTTI_BSImagespaceShaderBrightPassBlur11 = (void *)0x01EB9B58; -const void * RTTI_BSImagespaceShaderBrightPassBlur13 = (void *)0x01EB9B98; -const void * RTTI_BSImagespaceShaderBrightPassBlur15 = (void *)0x01EB9BD8; -const void * RTTI_BSImagespaceShaderCopy = (void *)0x01EB9C18; -const void * RTTI_BSImagespaceShaderCopyDynamicFetchDisabled = (void *)0x01EB9C50; -const void * RTTI_BSImagespaceShaderCopyScaleBias = (void *)0x01EB9C98; -const void * RTTI_BSImagespaceShaderTextureMask = (void *)0x01EB9CD0; -const void * RTTI_BSImagespaceShaderGreyScale = (void *)0x01EB9D08; -const void * RTTI_BSImagespaceShaderCopyCustomViewport = (void *)0x01EB9D40; -const void * RTTI_BSImagespaceShaderDepthOfField = (void *)0x01EB9D80; -const void * RTTI_BSImagespaceShaderDepthOfFieldFogged = (void *)0x01EB9DB8; -const void * RTTI_BSImagespaceShaderDepthOfFieldMaskedFogged = (void *)0x01EB9E00; -const void * RTTI_BSImagespaceShaderDistantBlur = (void *)0x01EB9E48; -const void * RTTI_BSImagespaceShaderDistantBlurFogged = (void *)0x01EB9E80; -const void * RTTI_BSImagespaceShaderDistantBlurMaskedFogged = (void *)0x01EB9EC0; -const void * RTTI_BSImagespaceShaderDoubleVision = (void *)0x01EB9F00; -const void * RTTI_BSImagespaceShaderFXAA = (void *)0x01EB9F38; -const void * RTTI_BSImagespaceShaderHDRDownSample4 = (void *)0x01EB9F68; -const void * RTTI_BSImagespaceShaderHDRDownSample16Lum = (void *)0x01EB9FA0; -const void * RTTI_BSImagespaceShaderHDRDownSample4RGB2Lum = (void *)0x01EB9FE0; -const void * RTTI_BSImagespaceShaderHDRDownSample16 = (void *)0x01EBA020; -const void * RTTI_BSImagespaceShaderHDRDownSample4LumClamp = (void *)0x01EBA058; -const void * RTTI_BSImagespaceShaderHDRDownSample16LumClamp = (void *)0x01EBA0A0; -const void * RTTI_BSImagespaceShaderHDRDownSample4LightAdapt = (void *)0x01EBA0E0; -const void * RTTI_BSImagespaceShaderHDRDownSample16LightAdapt = (void *)0x01EBA130; -const void * RTTI_BSImagespaceShaderHDRTonemapBlendCinematic = (void *)0x01EBA180; -const void * RTTI_BSImagespaceShaderHDRTonemapBlendCinematicFade = (void *)0x01EBA1D0; -const void * RTTI_BSImagespaceShaderLocalMap = (void *)0x01EBA218; -const void * RTTI_BSImagespaceShaderMap = (void *)0x01EBA250; -const void * RTTI_BSImagespaceShaderWorldMap = (void *)0x01EBA280; -const void * RTTI_BSImagespaceShaderWorldMapNoSkyBlur = (void *)0x01EBA2B8; -const void * RTTI_BSImagespaceShaderNoiseScrollAndBlend = (void *)0x01EBA2F8; -const void * RTTI_BSImagespaceShaderNoiseNormalmap = (void *)0x01EBA338; -const void * RTTI_BSImagespaceShaderRadialBlur = (void *)0x01EBA370; -const void * RTTI_BSImagespaceShaderRadialBlurMedium = (void *)0x01EBA3A8; -const void * RTTI_BSImagespaceShaderRadialBlurHigh = (void *)0x01EBA3E8; -const void * RTTI_BSImagespaceShaderRefraction = (void *)0x01EBA420; -const void * RTTI_BSImagespaceShaderWaterDisplacementClearSimulation = (void *)0x01EBA460; -const void * RTTI_BSImagespaceShaderWaterDisplacementTexOffset = (void *)0x01EBA4B0; -const void * RTTI_BSImagespaceShaderWaterDisplacementWadingRipple = (void *)0x01EBA500; -const void * RTTI_BSImagespaceShaderWaterDisplacementRainRipple = (void *)0x01EBA550; -const void * RTTI_BSImagespaceShaderWaterWadingHeightmap = (void *)0x01EBA598; -const void * RTTI_BSImagespaceShaderWaterRainHeightmap = (void *)0x01EBA5D8; -const void * RTTI_BSImagespaceShaderWaterBlendHeightmaps = (void *)0x01EBA618; -const void * RTTI_BSImagespaceShaderWaterSmoothHeightmap = (void *)0x01EBA658; -const void * RTTI_BSImagespaceShaderWaterDisplacementNormals = (void *)0x01EBA6A0; -const void * RTTI_BSImagespaceShaderVolumetricLighting = (void *)0x01EBA6E8; -const void * RTTI_BSImagespaceShaderWaterFlow = (void *)0x01EBA728; -const void * RTTI_BSImagespaceShaderApplyReflections = (void *)0x01EBA760; -const void * RTTI_BSImagespaceShaderISApplyVolumetricLighting = (void *)0x01EBA7A0; -const void * RTTI_BSImagespaceShaderISBasicCopy = (void *)0x01EBA7E8; -const void * RTTI_BSImagespaceShaderISBlur = (void *)0x01EBA820; -const void * RTTI_BSImagespaceShaderISVolumetricLightingBlurHCS = (void *)0x01EBA850; -const void * RTTI_BSImagespaceShaderISVolumetricLightingBlurVCS = (void *)0x01EBA8A0; -const void * RTTI_BSImagespaceShaderReflectionBlurHCS = (void *)0x01EBA8E8; -const void * RTTI_BSImagespaceShaderReflectionBlurVCS = (void *)0x01EBA928; -const void * RTTI_BSImagespaceShaderISParallaxMaskBlurHCS = (void *)0x01EBA968; -const void * RTTI_BSImagespaceShaderISParallaxMaskBlurVCS = (void *)0x01EBA9A8; -const void * RTTI_BSImagespaceShaderISDepthOfFieldBlurHCS = (void *)0x01EBA9E8; -const void * RTTI_BSImagespaceShaderISDepthOfFieldBlurVCS = (void *)0x01EBAA28; -const void * RTTI_BSImagespaceShaderISCompositeVolumetricLighting = (void *)0x01EBAA70; -const void * RTTI_BSImagespaceShaderISCompositeLensFlare = (void *)0x01EBAAB8; -const void * RTTI_BSImagespaceShaderISCompositeLensFlareVolumetricLighting = (void *)0x01EBAB00; -const void * RTTI_BSImagespaceShaderISCopySubRegionCS = (void *)0x01EBAB50; -const void * RTTI_BSImagespaceShaderISDebugSnow = (void *)0x01EBAB90; -const void * RTTI_BSImagespaceShaderISDownsample = (void *)0x01EBABC8; -const void * RTTI_BSImagespaceShaderISDownsampleIgnoreBrightest = (void *)0x01EBAC00; -const void * RTTI_BSImagespaceShaderISDownsampleCS = (void *)0x01EBAC48; -const void * RTTI_BSImagespaceShaderISDownsampleIgnoreBrightestCS = (void *)0x01EBAC80; -const void * RTTI_BSImagespaceShaderISExp = (void *)0x01EBACC8; -const void * RTTI_BSImagespaceShaderISIBLensFlares = (void *)0x01EBACF8; -const void * RTTI_BSImagespaceShaderISLightingComposite = (void *)0x01EBAD30; -const void * RTTI_BSImagespaceShaderISLightingCompositeNoDirectionalLight = (void *)0x01EBAD70; -const void * RTTI_BSImagespaceShaderISLightingCompositeMenu = (void *)0x01EBADC0; -const void * RTTI_BSImagespaceShaderISPerlinNoiseCS = (void *)0x01EBAE00; -const void * RTTI_BSImagespaceShaderISPerlinNoise2DCS = (void *)0x01EBAE38; -const void * RTTI_BSImagespaceShaderReflectionsRayTracing = (void *)0x01EBAE78; -const void * RTTI_BSImagespaceShaderReflectionsDebugSpecMask = (void *)0x01EBAEC0; -const void * RTTI_BSImagespaceShaderISSAOBlurH = (void *)0x01EBAF08; -const void * RTTI_BSImagespaceShaderISSAOBlurV = (void *)0x01EBAF40; -const void * RTTI_BSImagespaceShaderISSAOBlurHCS = (void *)0x01EBAF78; -const void * RTTI_BSImagespaceShaderISSAOBlurVCS = (void *)0x01EBAFB0; -const void * RTTI_BSImagespaceShaderISSAOCameraZ = (void *)0x01EBAFE8; -const void * RTTI_BSImagespaceShaderISSAOCameraZAndMipsCS = (void *)0x01EBB020; -const void * RTTI_BSImagespaceShaderISSAOCompositeSAO = (void *)0x01EBB060; -const void * RTTI_BSImagespaceShaderISSAOCompositeFog = (void *)0x01EBB0A0; -const void * RTTI_BSImagespaceShaderISSAOCompositeSAOFog = (void *)0x01EBB0E0; -const void * RTTI_BSImagespaceShaderISMinify = (void *)0x01EBB120; -const void * RTTI_BSImagespaceShaderISMinifyContrast = (void *)0x01EBB158; -const void * RTTI_BSImagespaceShaderISSAORawAO = (void *)0x01EBB198; -const void * RTTI_BSImagespaceShaderISSAORawAONoTemporal = (void *)0x01EBB1D0; -const void * RTTI_BSImagespaceShaderISSAORawAOCS = (void *)0x01EBB210; -const void * RTTI_BSImagespaceShaderISSILComposite = (void *)0x01EBB248; -const void * RTTI_BSImagespaceShaderISSILRawInd = (void *)0x01EBB280; -const void * RTTI_BSImagespaceShaderISSimpleColor = (void *)0x01EBB2B8; -const void * RTTI_BSImagespaceShaderISDisplayDepth = (void *)0x01EBB2F0; -const void * RTTI_BSImagespaceShaderISSnowSSS = (void *)0x01EBB328; -const void * RTTI_BSImagespaceShaderISTemporalAA = (void *)0x01EBB360; -const void * RTTI_BSImagespaceShaderISTemporalAA_UI = (void *)0x01EBB398; -const void * RTTI_BSImagespaceShaderISTemporalAA_Water = (void *)0x01EBB3D0; -const void * RTTI_BSImagespaceShaderISUpsampleDynamicResolution = (void *)0x01EBB410; -const void * RTTI_BSImagespaceShaderISWaterBlend = (void *)0x01EBB458; -const void * RTTI_BSImagespaceShaderISUnderwaterMask = (void *)0x01EBB490; -const void * RTTI_ShadowSceneNode = (void *)0x01EBB4D0; -const void * RTTI_BSLightingShaderProperty = (void *)0x01EBB4F8; -const void * RTTI_BSGrassShaderProperty = (void *)0x01EBB528; -const void * RTTI_BSShaderAccumulator = (void *)0x01EBB558; -const void * RTTI_BSGrassShader = (void *)0x01EBB5F0; -const void * RTTI_BSLightingShaderMaterialBase = (void *)0x01E2F2D8; -const void * RTTI_BSLightingShaderMaterialEnvmap = (void *)0x01EBB618; -const void * RTTI_BSLightingShaderMaterialEye = (void *)0x01EBB650; -const void * RTTI_BSLightingShaderMaterialGlowmap = (void *)0x01EBB688; -const void * RTTI_BSLightingShaderMaterialParallax = (void *)0x01EBB6C0; -const void * RTTI_BSLightingShaderMaterialParallaxOcc = (void *)0x01EBB6F8; -const void * RTTI_BSLightingShaderMaterialFacegen = (void *)0x01EBB738; -const void * RTTI_BSLightingShaderMaterialFacegenTint = (void *)0x01EBB770; -const void * RTTI_BSLightingShaderMaterialHairTint = (void *)0x01EBB7B0; -const void * RTTI_BSLightingShaderMaterialLandscape = (void *)0x01EBB7E8; -const void * RTTI_BSLightingShaderMaterialLODLandscape = (void *)0x01EBB820; -const void * RTTI_BSLightingShaderMaterialSnow = (void *)0x01EBB860; -const void * RTTI_BSLightingShaderMaterialMultiLayerParallax = (void *)0x01EBB8A0; -const void * RTTI_BSEffectShaderProperty = (void *)0x01EBB8E8; -const void * RTTI_ImageSpaceEffectParam = (void *)0x01EBB918; -const void * RTTI_ImageSpaceShaderParam = (void *)0x01EBB948; -const void * RTTI_BSWaterShaderProperty = (void *)0x01EBBB10; -const void * RTTI_BSBloodSplatterShaderProperty = (void *)0x01EBBB40; -const void * RTTI_BSBloodSplatterShader = (void *)0x01EBBB78; -const void * RTTI_BSImagespaceShaderLensFlare = (void *)0x01EBBBA8; -const void * RTTI_BSImagespaceShaderLensFlareVisibility = (void *)0x01EBBBE0; -const void * RTTI_BSParticleShaderProperty = (void *)0x01EBBC20; -const void * RTTI_ImageSpaceEffectHDR = (void *)0x01EBBC50; -const void * RTTI_BSLightingShader = (void *)0x01EBBC80; -const void * RTTI_BSWaterShader = (void *)0x01EBBCA8; -const void * RTTI_ImageSpaceEffectVolumetricLighting = (void *)0x01EBBCD0; -const void * RTTI_ImageSpaceEffectOption = (void *)0x01EBBD10; -const void * RTTI_ImageSpaceEffectDepthOfField = (void *)0x01EBBDB0; -const void * RTTI_BSSkyShader = (void *)0x01EBBDE8; -const void * RTTI_BSSkyShaderProperty = (void *)0x01EBBE10; -const void * RTTI_ImageSpaceEffect = (void *)0x01EB9778; -const void * RTTI_BSEffectShaderMaterial = (void *)0x01EBC100; -const void * RTTI_BSEffectShader = (void *)0x01EBC130; -const void * RTTI_BSDistantTreeShaderProperty = (void *)0x01EBC158; -const void * RTTI_BSDistantTreeShader = (void *)0x01EBC190; -const void * RTTI_BSCubeMapCamera = (void *)0x01EBC1C0; -const void * RTTI_BSWaterShaderMaterial = (void *)0x01EBC1E8; -const void * RTTI_ImageSpaceEffectWaterDisplacement = (void *)0x01EBC218; -const void * RTTI_BSFogProperty = (void *)0x01EBC250; -const void * RTTI_BSShadowLight = (void *)0x01EBC298; -const void * RTTI_BSBatchRenderer = (void *)0x01EBC2C0; -const void * RTTI_BSClearZNode = (void *)0x01EBC2E8; -const void * RTTI_BSImagespaceShader = (void *)0x01EB9700; -const void * RTTI_ImageSpaceEffectRefraction = (void *)0x01EBC310; -const void * RTTI_ImageSpaceEffectRadialBlur = (void *)0x01EBC348; -const void * RTTI_BSUtilityShader = (void *)0x01EBC380; -const void * RTTI_ImageSpaceEffectWorldMap = (void *)0x01EBC3A8; -const void * RTTI_NiThreadProcedure = (void *)0x01E9A038; -const void * RTTI_NiMemStream = (void *)0x01EBC3D8; -const void * RTTI_NiCollisionObject = (void *)0x01E17D68; -const void * RTTI_BSOrderedNode = (void *)0x01EBC400; -const void * RTTI_BSLines = (void *)0x01EBC428; -const void * RTTI_BSDynamicLines = (void *)0x01EBC448; -const void * RTTI_UnitTest_BSStreamParserStream = (void *)0x01EBC470; -const void * RTTI_UnitTest_BSStreamParserData = (void *)0x01EBC4A8; -const void * RTTI_BSShapeConstructor = (void *)0x01EBC4E0; -const void * RTTI_BSBoxConstructor = (void *)0x01EBC510; -const void * RTTI_BSOrientedBoxConstructor = (void *)0x01EBC538; -const void * RTTI_BSSphereConstructor = (void *)0x01EBC568; -const void * RTTI_BSCylinderConstructor = (void *)0x01EBC598; -const void * RTTI_BSCapsuleConstructor = (void *)0x01EBC5C8; -const void * RTTI_BSArrowConstructor = (void *)0x01EBC5F8; -const void * RTTI_BSCircleConstructor = (void *)0x01EBC628; -const void * RTTI_BSRingConstructor = (void *)0x01EBC658; -const void * RTTI_BSFlatQuadConstructor = (void *)0x01EBC680; -const void * RTTI_BSDiskConstructor = (void *)0x01EBC6B0; -const void * RTTI_BSMultiIndexTriShape = (void *)0x01EBC6D8; -const void * RTTI_BSShaderMaterial = (void *)0x01E2F310; -const void * RTTI_BSLight = (void *)0x01EBC278; -const void * RTTI_NiBoneMatrixSetterI = (void *)0x01EB95E0; -const void * RTTI_BSShader = (void *)0x01EB9730; -const void * RTTI_BSReloadShaderI = (void *)0x01EB9750; -const void * RTTI_BSParticleShader = (void *)0x01EBC708; -const void * RTTI_BSLightingShaderPropertyFloatController = (void *)0x01EBC730; -const void * RTTI_BSLightingShaderPropertyUShortController = (void *)0x01EBC770; -const void * RTTI_BSLightingShaderPropertyColorController = (void *)0x01EBC7B0; -const void * RTTI_BSEffectShaderPropertyFloatController = (void *)0x01EBC7F0; -const void * RTTI_BSEffectShaderPropertyColorController = (void *)0x01EBC830; -const void * RTTI_BSNiAlphaPropertyTestRefController = (void *)0x01EBC870; -const void * RTTI_BSPSysSimpleColorModifier = (void *)0x01EBC8B0; -const void * RTTI_BSPSysLODModifier = (void *)0x01EBC8E0; -const void * RTTI_BSShadowDirectionalLight = (void *)0x01EBC908; -const void * RTTI_IRendererResourceManager = (void *)0x01EBC938; -const void * RTTI_BSShaderResourceManager = (void *)0x01EBC968; -const void * RTTI_ImageSpaceEffectGetHit = (void *)0x01EBC998; -const void * RTTI_ImageSpaceEffectBlur = (void *)0x01EBC9C8; -const void * RTTI_ImageSpaceEffectFullScreenBlur = (void *)0x01EBC9F8; -const void * RTTI_ImageSpaceEffectMap = (void *)0x01EBCA30; -const void * RTTI_ImageSpaceEffectNoise = (void *)0x01EBCA60; -const void * RTTI_BSParabolicCullingProcess = (void *)0x01EBCA90; -const void * RTTI_BSShadowFrustumLight = (void *)0x01EBCAC0; -const void * RTTI_BSShadowParabolicLight = (void *)0x01EBCAF0; -const void * RTTI_BSComputeShader = (void *)0x01EBCB20; -const void * RTTI_BSMeshLODTriShape = (void *)0x01EBCB48; -const void * RTTI_BSLODMultiIndexTriShape = (void *)0x01EBCB70; -const void * RTTI_BSSubIndexLandTriShape = (void *)0x01EBCBA0; -const void * RTTI_BSSystemMonitor__SocketThread = (void *)0x01EBCBD0; -const void * RTTI_BSSystemMonitor__MemOpsThread = (void *)0x01EBCC08; -const void * RTTI_BSSystemUtility = (void *)0x01EBCD68; -const void * RTTI_BSGameDataSystemUtility = (void *)0x01EBCDC8; -const void * RTTI_BSWin32SaveDataSystemUtility = (void *)0x01EBCDF8; -const void * RTTI_BSSaveDataSystemUtility = (void *)0x01EBCE30; -const void * RTTI_BSSaveDataSystemUtility__Entry = (void *)0x01EBCEA0; -const void * RTTI_BSSaveDataSystemUtilityFile = (void *)0x01EBCF78; -const void * RTTI_BSSystemUtilitiesStrings = (void *)0x01EBCFE8; -const void * RTTI_BSStreamSystemUtility = (void *)0x01EBD018; -const void * RTTI_CCallbackBase = (void *)0x01EBCC40; -const void * RTTI_BSWin32SystemUtility = (void *)0x01EBD048; -const void * RTTI_BSCacheDriveSystemUtility = (void *)0x01EBD078; -const void * RTTI_BSSysInfoSystemUtility = (void *)0x01EBD0A8; -const void * RTTI_BSMsgDialogSystemUtility = (void *)0x01EBD0D8; -const void * RTTI_BSAwardsSystemUtility = (void *)0x01EBD108; -const void * RTTI_BSWin32AwardsSystemUtility = (void *)0x01EBD138; -const void * RTTI_BSDiscBootSystemUtility = (void *)0x01EBD170; -const void * RTTI_type_info = (void *)0x01EBD1A0; -const void * RTTI_BSSocket = (void *)0x01EBD1C0; -const void * RTTI_BSSocketServer = (void *)0x01EBD1E0; +const void * RTTI_IFormFactory = (void *)0x01EA7B00; +const void * RTTI_BaseFormComponent = (void *)0x01EA7B28; +const void * RTTI_AlchemyItem = (void *)0x01EA7B90; +const void * RTTI_BGSDualCastData = (void *)0x01EA7F50; +const void * RTTI_Setting = (void *)0x01EA7FB8; +const void * RTTI_GameSettingCollection = (void *)0x01EA8158; +const void * RTTI_BSTArrayBase__IAllocatorFunctor = (void *)0x01EA82B8; +const void * RTTI_TESFullName = (void *)0x01EA7C20; +const void * RTTI_EffectSetting = (void *)0x01EA81F8; +const void * RTTI_EnchantmentItem = (void *)0x01EA8520; +const void * RTTI_IngredientItem = (void *)0x01EA85E8; +const void * RTTI_BSModelDB__QueuedHandles = (void *)0x01EA86A0; +const void * RTTI_TESModelDB__TESQueuedHandles = (void *)0x01EA87B0; +const void * RTTI_MagicItem = (void *)0x01EA7BB8; +const void * RTTI_MagicItem__PreloadableVisitor = (void *)0x01EA87E8; +const void * RTTI_MagicItemTraversalFunctor = (void *)0x01EA8820; +const void * RTTI_MagicItemFindFunctor = (void *)0x01EA8850; +const void * RTTI_MagicItemFindKeywordFunctor = (void *)0x01EA8880; +const void * RTTI_AnimationSystemUtils__TESModelAndAnimationHandles = (void *)0x01EA88C0; +const void * RTTI_FindNonExcludedDeliveryFunctor = (void *)0x01EA89B8; +const void * RTTI_FindEqualsFunctor = (void *)0x01EA8A60; +const void * RTTI_GetCostliestEffectFunctor = (void *)0x01EA8A88; +const void * RTTI_LongestDurationFunctor = (void *)0x01EA8AB8; +const void * RTTI_LargestAreaFunctor = (void *)0x01EA8AE8; +const void * RTTI_GetMagicItemDescriptionFunctor = (void *)0x01EA8B18; +const void * RTTI_ScrollItem = (void *)0x01EA8BE0; +const void * RTTI_SpellItem = (void *)0x01EA7B70; +const void * RTTI_ExtraSeenData = (void *)0x01EA8D08; +const void * RTTI_BSExtraData = (void *)0x01EA8CE0; +const void * RTTI_ExtraHavok = (void *)0x01EA8D30; +const void * RTTI_ExtraEditorID = (void *)0x01EA8D58; +const void * RTTI_MagicTarget = (void *)0x01EA8D80; +const void * RTTI_ExtraTimeLeft = (void *)0x01EA8DA8; +const void * RTTI_ExtraLock = (void *)0x01EA8DD0; +const void * RTTI_ExtraTeleport = (void *)0x01EA8DF0; +const void * RTTI_ExtraStartingPosition = (void *)0x01EA8E18; +const void * RTTI_ExtraOwnership = (void *)0x01EA8E48; +const void * RTTI_ExtraGlobal = (void *)0x01EA8E70; +const void * RTTI_ExtraRank = (void *)0x01EA8E98; +const void * RTTI_ExtraCount = (void *)0x01EA8EB8; +const void * RTTI_ExtraWorn = (void *)0x01EA8EE0; +const void * RTTI_ExtraWornLeft = (void *)0x01EA8F00; +const void * RTTI_ExtraLeveledItem = (void *)0x01EA8F28; +const void * RTTI_ExtraOutfitItem = (void *)0x01EA8F50; +const void * RTTI_ExtraHealth = (void *)0x01EA8F78; +const void * RTTI_ExtraHealthPerc = (void *)0x01EA8FA0; +const void * RTTI_ExtraCharge = (void *)0x01EA8FC8; +const void * RTTI_ExtraScale = (void *)0x01EA8FF0; +const void * RTTI_ExtraReferenceHandle = (void *)0x01EA9018; +const void * RTTI_ExtraFollower = (void *)0x01EA9048; +const void * RTTI_ExtraOriginalReference = (void *)0x01EA9070; +const void * RTTI_ExtraEnableStateParent = (void *)0x01EA90A0; +const void * RTTI_ExtraEnableStateChildren = (void *)0x01EA90D0; +const void * RTTI_ExtraLinkedRef = (void *)0x01EA9100; +const void * RTTI_ExtraLinkedRefChildren = (void *)0x01EA9128; +const void * RTTI_ExtraActivateRef = (void *)0x01EA9158; +const void * RTTI_ExtraActivateRefChildren = (void *)0x01EA9180; +const void * RTTI_ExtraRandomTeleportMarker = (void *)0x01EA91B0; +const void * RTTI_ExtraCannotWear = (void *)0x01EA91E0; +const void * RTTI_ExtraPoison = (void *)0x01EA9208; +const void * RTTI_ExtraLastFinishedSequence = (void *)0x01EA9230; +const void * RTTI_ExtraItemDropper = (void *)0x01EA9260; +const void * RTTI_ExtraDroppedItemList = (void *)0x01EA9288; +const void * RTTI_ExtraSavedAnimation = (void *)0x01EA92B8; +const void * RTTI_ExtraSavedHavokData = (void *)0x01EA92E8; +const void * RTTI_ExtraHeadingTarget = (void *)0x01EA9318; +const void * RTTI_ExtraRefractionProperty = (void *)0x01EA9348; +const void * RTTI_ExtraSound = (void *)0x01EA9378; +const void * RTTI_ExtraCreatureAwakeSound = (void *)0x01EA93A0; +const void * RTTI_ExtraCreatureMovementSound = (void *)0x01EA93D0; +const void * RTTI_ExtraWeaponIdleSound = (void *)0x01EA9408; +const void * RTTI_ExtraWeaponAttackSound = (void *)0x01EA9438; +const void * RTTI_ExtraActivateLoopSound = (void *)0x01EA9468; +const void * RTTI_ExtraObjectHealth = (void *)0x01EA9498; +const void * RTTI_ExtraFactionChanges = (void *)0x01EA94C0; +const void * RTTI_ExtraActorCause = (void *)0x01EA94F0; +const void * RTTI_ExtraPatrolRefData = (void *)0x01EA9518; +const void * RTTI_ExtraEncounterZone = (void *)0x01EA9548; +const void * RTTI_ExtraNavMeshPortal = (void *)0x01EA9578; +const void * RTTI_ExtraOcclusionPlaneRefData = (void *)0x01EA95A8; +const void * RTTI_ExtraPortalRefData = (void *)0x01EA95E0; +const void * RTTI_ExtraRoomRefData = (void *)0x01EA9610; +const void * RTTI_ExtraAliasInstanceArray = (void *)0x01EA9638; +const void * RTTI_ExtraSceneData = (void *)0x01EA9668; +const void * RTTI_ExtraBadPosition = (void *)0x01EA9690; +const void * RTTI_ExtraHeadTrackingWeight = (void *)0x01EA96B8; +const void * RTTI_ExtraFavorCost = (void *)0x01EA96E8; +const void * RTTI_ExtraTextDisplayData = (void *)0x01EA9710; +const void * RTTI_ExtraHorse = (void *)0x01EA9740; +const void * RTTI_ExtraEnchantment = (void *)0x01EA9768; +const void * RTTI_ExtraForcedTarget = (void *)0x01EA9790; +const void * RTTI_ExtraUniqueID = (void *)0x01EA97B8; +const void * RTTI_ExtraFlags = (void *)0x01EA97E0; +const void * RTTI_ExtraDecalGroup = (void *)0x01EA9808; +const void * RTTI_ExtraWaterCurrentZoneData = (void *)0x01EA9830; +const void * RTTI_ExtraMissingRefIDs = (void *)0x01EA9860; +const void * RTTI_ExtraCell3D = (void *)0x01EA9890; +const void * RTTI_ExtraRegionList = (void *)0x01EA98B8; +const void * RTTI_ExtraCellSkyRegion = (void *)0x01EA98E0; +const void * RTTI_ExtraCellImageSpace = (void *)0x01EA9910; +const void * RTTI_ExtraNorthRotation = (void *)0x01EA9940; +const void * RTTI_ExtraDetachTime = (void *)0x01EA9970; +const void * RTTI_ExtraCanTalkToPlayer = (void *)0x01EA9998; +const void * RTTI_ExtraPrimitive = (void *)0x01EA99C8; +const void * RTTI_ExtraAmmo = (void *)0x01EA99F0; +const void * RTTI_ExtraMagicLight = (void *)0x01EA9A10; +const void * RTTI_ExtraFromAlias = (void *)0x01EA9A60; +const void * RTTI_ExtraOpenCloseActivateRef = (void *)0x01EA9A88; +const void * RTTI_ExtraTeleportName = (void *)0x01EA9AB8; +const void * RTTI_ExtraCachedScale = (void *)0x01EA9AE0; +const void * RTTI_ExtraHotkey = (void *)0x01EA9B08; +const void * RTTI_ExtraPackageStartLocation = (void *)0x01EA9B30; +const void * RTTI_ExtraLocation = (void *)0x01EA9B60; +const void * RTTI_ExtraTresPassPackage = (void *)0x01EA9B88; +const void * RTTI_ExtraRagDollData = (void *)0x01EA9BB8; +const void * RTTI_ExtraAttachRef = (void *)0x01EA9BE0; +const void * RTTI_ExtraAttachRefChildren = (void *)0x01EA9C08; +const void * RTTI_ExtraAshPileRef = (void *)0x01EA9C38; +const void * RTTI_ExtraLocationRefType = (void *)0x01EA9C60; +const void * RTTI_ExtraLeveledItemBase = (void *)0x01EA9C90; +const void * RTTI_ExtraReflectedRefs = (void *)0x01EA9CC0; +const void * RTTI_ExtraReflectorRefs = (void *)0x01EA9CF0; +const void * RTTI_ExtraWaterLightRefs = (void *)0x01EA9D20; +const void * RTTI_ExtraLitWaterRefs = (void *)0x01EA9D50; +const void * RTTI_ExtraLevCreaModifier = (void *)0x01EA9D78; +const void * RTTI_ExtraSpawnContainer = (void *)0x01EA9DA8; +const void * RTTI_ExtraEmittanceSource = (void *)0x01EA9DD8; +const void * RTTI_ExtraMultiBoundRef = (void *)0x01EA9E08; +const void * RTTI_ExtraMultiBound = (void *)0x01EA9E38; +const void * RTTI_ExtraRoom = (void *)0x01EA9E60; +const void * RTTI_ExtraFriendHits = (void *)0x01EA9E80; +const void * RTTI_ExtraStartingWorldOrCell = (void *)0x01EA9EA8; +const void * RTTI_ExtraHasNoRumors = (void *)0x01EA9ED8; +const void * RTTI_ExtraTerminalState = (void *)0x01EA9F00; +const void * RTTI_ExtraModelSwap = (void *)0x01EA9F30; +const void * RTTI_ExtraRadius = (void *)0x01EA9F58; +const void * RTTI_ExtraCombatStyle = (void *)0x01EA9F80; +const void * RTTI_ExtraPackageData = (void *)0x01EA9FA8; +const void * RTTI_ExtraCollisionData = (void *)0x01EA9FD0; +const void * RTTI_ExtraGuardedRefData = (void *)0x01EAA000; +const void * RTTI_ExtraIgnoredBySandbox = (void *)0x01EAA030; +const void * RTTI_ExtraPromotedRef = (void *)0x01EAA060; +const void * RTTI_ExtraLargeRefOwnerCells = (void *)0x01EAA088; +const void * RTTI_ExtraLightData = (void *)0x01EAA0B8; +const void * RTTI_ExtraAttachedArrows3D = (void *)0x01EAA0E0; +const void * RTTI_ExtraAlphaCutoff = (void *)0x01EAA110; +const void * RTTI_ExtraForcedLandingMarker = (void *)0x01EAA138; +const void * RTTI_ExtraRefrPath = (void *)0x01EAA168; +const void * RTTI_ExtraCellWaterEnvMap = (void *)0x01EAA190; +const void * RTTI_ExtraWaterData = (void *)0x01EAA1C0; +const void * RTTI_ExtraScriptedAnimDependence = (void *)0x01EAA1E8; +const void * RTTI_ExtraCellMusicType = (void *)0x01EAA220; +const void * RTTI_ExtraCellAcousticSpace = (void *)0x01EAA250; +const void * RTTI_ExtraCellWaterType = (void *)0x01EAA280; +const void * RTTI_ExtraGIDBuffer = (void *)0x01EAA2B0; +const void * RTTI_ExtraMissingLinkedRefIDs = (void *)0x01EAA688; +const void * RTTI_NonActorMagicTarget = (void *)0x01EAA6B8; +const void * RTTI_ExtraMapMarker = (void *)0x01EAA6E8; +const void * RTTI_ExtraDistantData = (void *)0x01EAA710; +const void * RTTI_ExtraAnimNoteReceiver = (void *)0x01EAA738; +const void * RTTI_ExtraLockList = (void *)0x01EAA768; +const void * RTTI_ExtraPersistentCell = (void *)0x01EAA790; +const void * RTTI_ExtraRaceData = (void *)0x01EAA7C0; +const void * RTTI_ExtraAnimGraphManager = (void *)0x01EAA7E8; +const void * RTTI_ExtraDismemberedLimbs = (void *)0x01EAA818; +const void * RTTI_ExtraBiped = (void *)0x01EAA848; +const void * RTTI_ExtraLight = (void *)0x01EA9A38; +const void * RTTI_ExtraLeveledCreature = (void *)0x01EAA870; +const void * RTTI_ExtraAction = (void *)0x01EAA8A0; +const void * RTTI_ExtraShouldWear = (void *)0x01EAA8C8; +const void * RTTI_ExtraContainerChanges = (void *)0x01EAA8F0; +const void * RTTI_ExtraPackage = (void *)0x01EAA920; +const void * RTTI_ExtraPlayerCrimeList = (void *)0x01EAA948; +const void * RTTI_ExtraRunOncePacks = (void *)0x01EAA978; +const void * RTTI_ExtraGhost = (void *)0x01EAA9A0; +const void * RTTI_ExtraSayTopicInfoOnceADay = (void *)0x01EAA9C8; +const void * RTTI_ExtraPatrolRefInUseData = (void *)0x01EAA9F8; +const void * RTTI_ExtraFollowerSwimBreadcrumbs = (void *)0x01EAAA28; +const void * RTTI_ExtraInfoGeneralTopic = (void *)0x01EAAA60; +const void * RTTI_ExtraSayToTopicInfo = (void *)0x01EAAA90; +const void * RTTI_ExtraSoul = (void *)0x01EAAAC0; +const void * RTTI_ExtraResourcesPreload = (void *)0x01EAAAE0; +const void * RTTI_ExtraPortal = (void *)0x01EAAB10; +const void * RTTI_ExtraOcclusionShape = (void *)0x01EAAB38; +const void * RTTI_ExtraEditorRef3DData = (void *)0x01EAAB68; +const void * RTTI_ExtraEditorRefMoveData = (void *)0x01EAAB98; +const void * RTTI_ExtraAnimationSequencer = (void *)0x01EAABC8; +const void * RTTI_ExtraCellGrassData = (void *)0x01EAABF8; +const void * RTTI_ExtraInteraction = (void *)0x01EAAC28; +const void * RTTI_ExtraGroupConstraint = (void *)0x01EAAC50; +const void * RTTI_MultiBoundMarkerData = (void *)0x01EAAC80; +const void * RTTI_INISettingCollection = (void *)0x01EAACF0; +const void * RTTI_BSStream = (void *)0x01EAAD60; +const void * RTTI_InterfacedClass = (void *)0x01EAADA0; +const void * RTTI_BSTask = (void *)0x01EA8638; +const void * RTTI_IOTask = (void *)0x01EA8658; +const void * RTTI_QueuedActor = (void *)0x01EAAF58; +const void * RTTI_QueuedCharacter = (void *)0x01EAAFD0; +const void * RTTI_QueuedHead = (void *)0x01EAAFF8; +const void * RTTI_QueuedHelmet = (void *)0x01EAB020; +const void * RTTI_AttachDistant3DTask = (void *)0x01EAB118; +const void * RTTI_QueuedModel = (void *)0x01EAAFA8; +const void * RTTI_QueuedReference = (void *)0x01EAAF80; +const void * RTTI_QueuedAnimationObject = (void *)0x01EAB148; +const void * RTTI_QueuedTempEffect = (void *)0x01EAB178; +const void * RTTI_BackgroundProcessThread = (void *)0x01EAB1A0; +const void * RTTI_QueuedTree = (void *)0x01EAB250; +const void * RTTI_QueuedPlayer = (void *)0x01EAB278; +const void * RTTI_INIPrefSettingCollection = (void *)0x01EAB2A0; +const void * RTTI_AddCellGrassTask = (void *)0x01EAB408; +const void * RTTI_ICellAttachDetachEventSource = (void *)0x01EAB430; +const void * RTTI_TES = (void *)0x01EAB538; +const void * RTTI_TES__SystemEventAdapter = (void *)0x01EAB5F0; +const void * RTTI_BSTempNodeManager = (void *)0x01EAB620; +const void * RTTI_BGSLoadFormBuffer = (void *)0x01EAB9A0; +const void * RTTI_BGSStoryManagerBranchNode = (void *)0x01EABA18; +const void * RTTI_BGSStoryManagerTreeForm = (void *)0x01EABA78; +const void * RTTI_BGSStoryManagerNodeBase = (void *)0x01EABA48; +const void * RTTI_Projectile__LaunchData = (void *)0x01EABB28; +const void * RTTI_BSModelDB__BSModelProcessor = (void *)0x01EABC20; +const void * RTTI_BGSAttackDataForm = (void *)0x01EABCF0; +const void * RTTI_BGSBipedModelList = (void *)0x01EABD18; +const void * RTTI_BGSBipedObjectForm = (void *)0x01EABD40; +const void * RTTI_BGSBlockBashData = (void *)0x01EABD70; +const void * RTTI_BGSDestructibleObjectForm = (void *)0x01EA7D80; +const void * RTTI_BGSEquipType = (void *)0x01EA7D58; +const void * RTTI_BGSIdleCollection = (void *)0x01EABF08; +const void * RTTI_BGSKeywordForm = (void *)0x01EA7C48; +const void * RTTI_BGSMenuDisplayObject = (void *)0x01EA83E8; +const void * RTTI_BGSMessageIcon = (void *)0x01EA7D08; +const void * RTTI_BGSOverridePackCollection = (void *)0x01EABF58; +const void * RTTI_PerkRankVisitor = (void *)0x01EABF88; +const void * RTTI_BGSPerkRankArray = (void *)0x01EABFB0; +const void * RTTI_BGSPickupPutdownSounds = (void *)0x01EA7DB0; +const void * RTTI_BGSSkinForm = (void *)0x01EAC018; +const void * RTTI_TESActorBaseData = (void *)0x01EAC0B0; +const void * RTTI_TESAIForm = (void *)0x01EAC090; +const void * RTTI_TESAttackDamageForm = (void *)0x01EAC0D8; +const void * RTTI_TESModelRDT = (void *)0x01EAC400; +const void * RTTI_TESBipedModelForm = (void *)0x01EAAE88; +const void * RTTI_TESContainer = (void *)0x01EAC108; +const void * RTTI_TESDescription = (void *)0x01EA8C08; +const void * RTTI_TESEnchantableForm = (void *)0x01EA84C8; +const void * RTTI_IFormFactory__IFactoryVisitor = (void *)0x01EAC428; +const void * RTTI_TESForm = (void *)0x01EA7B50; +const void * RTTI_BSStorage = (void *)0x01EAC490; +const void * RTTI_BSMemStorage = (void *)0x01EAC4B0; +const void * RTTI_BSScript__IHandleReaderWriter = (void *)0x01EAC4D8; +const void * RTTI_SkyrimScript__BaseHandleReaderWriter = (void *)0x01EAC510; +const void * RTTI_SkyrimScript__DataFileHandleReaderWriter = (void *)0x01EAC550; +const void * RTTI_BSVMLoadTask = (void *)0x01EAC600; +const void * RTTI_TESHealthForm = (void *)0x01EAC130; +const void * RTTI_TESIcon = (void *)0x01EA7CC0; +const void * RTTI_TESImageSpaceModifiableForm = (void *)0x01EAC248; +const void * RTTI_TESLeveledList = (void *)0x01EAC158; +const void * RTTI_TESModel = (void *)0x01EA7CA0; +const void * RTTI_TESModelLODList = (void *)0x01EAC2C0; +const void * RTTI_TESModelTextureSwap = (void *)0x01EA7C70; +const void * RTTI_TESProduceForm = (void *)0x01EAC180; +const void * RTTI_TESQualityForm = (void *)0x01EAC1A8; +const void * RTTI_TESRaceForm = (void *)0x01EAC1D0; +const void * RTTI_TESReactionForm = (void *)0x01EAC220; +const void * RTTI_TESSpellList = (void *)0x01EAC1F8; +const void * RTTI_TESTexture = (void *)0x01EA7CE0; +const void * RTTI_TESValueForm = (void *)0x01EA8610; +const void * RTTI_TESWeightForm = (void *)0x01EA7D30; +const void * RTTI_ActionInput = (void *)0x01EAC788; +const void * RTTI_BGSAnimSoundStateManager = (void *)0x01EAC7B0; +const void * RTTI_BSAttachTechniques__BSAttachTechnique = (void *)0x01EACA08; +const void * RTTI_BGSAttachTechniquesUtil__ProcessTechniquesFunctor = (void *)0x01EACA50; +const void * RTTI_BGSAttachTechniquesUtil__AttachTechniquesFunctor = (void *)0x01EACAA0; +const void * RTTI_BGSAttachTechniquesUtil__DetachTechniquesFunctor = (void *)0x01EACAF0; +const void * RTTI_BGSParticleArrayAttach = (void *)0x01EACB38; +const void * RTTI_BGSParticleArrayAttach__EmitterPolicy = (void *)0x01EACB68; +const void * RTTI_BGSParticleArrayAttach__CollectEmitterPolicy = (void *)0x01EACBB0; +const void * RTTI_BGSParticleArrayAttach__ClearEmitterPolicy = (void *)0x01EACC00; +const void * RTTI_BGSHavokGeometryAttach = (void *)0x01EACC40; +const void * RTTI_BGSHavokGeometryAttach__ActionPolicy = (void *)0x01EACC70; +const void * RTTI_BGSHavokGeometryAttach__AttachPolicy = (void *)0x01EACCB0; +const void * RTTI_BGSHavokGeometryAttach__DetachPolicy = (void *)0x01EACCF0; +const void * RTTI_BGSNamedNodeAttach = (void *)0x01EACD30; +const void * RTTI_BGSNamedNodeAttach__ActionPolicy = (void *)0x01EACD60; +const void * RTTI_BGSNamedNodeAttach__AttachPolicy = (void *)0x01EACD98; +const void * RTTI_BGSNamedNodeAttach__DetachPolicy = (void *)0x01EACDD0; +const void * RTTI_BGSMultiTechniqueAttach = (void *)0x01EACE08; +const void * RTTI_BGSMultiTechniqueAttach__ActionPolicy = (void *)0x01EACE38; +const void * RTTI_BGSMultiTechniqueAttach__AttachPolicy = (void *)0x01EACE78; +const void * RTTI_BGSMultiTechniqueAttach__DetachPolicy = (void *)0x01EACEB8; +const void * RTTI_hkpRayHitCollector = (void *)0x01EACEF8; +const void * RTTI_hkpAllRayHitTempCollector = (void *)0x01EACF28; +const void * RTTI_BGSDecalNode = (void *)0x01EACF58; +const void * RTTI_QueuedPromoteReferencesTask = (void *)0x01EACF80; +const void * RTTI_NiProperty = (void *)0x01EACFB8; +const void * RTTI_NiAlphaProperty = (void *)0x01EACFE0; +const void * RTTI_BSResource__Location = (void *)0x01EAD008; +const void * RTTI_BSResource__LooseFileLocation = (void *)0x01EAD098; +const void * RTTI_BGSQueuedGrassModelHandles = (void *)0x01EAD0D0; +const void * RTTI_NiRefObject = (void *)0x01EAB310; +const void * RTTI_BGSPrimitive = (void *)0x01EAD108; +const void * RTTI_BSPortal = (void *)0x01EAD158; +const void * RTTI_BGSPrimitiveLine = (void *)0x01EAD1A0; +const void * RTTI_BGSPrimitivePlane = (void *)0x01EAD1F0; +const void * RTTI_BGSPrimitiveBox = (void *)0x01EAD1C8; +const void * RTTI_BGSPrimitiveSphere = (void *)0x01EAD218; +const void * RTTI_BSMultiBoundAABB = (void *)0x01EAD248; +const void * RTTI_BSMultiBoundOBB = (void *)0x01EAD298; +const void * RTTI_BSMultiBoundSphere = (void *)0x01EAD2C0; +const void * RTTI_BSShaderProperty__ForEachVisitor = (void *)0x01EAD2F0; +const void * RTTI_BGSSceneInfo = (void *)0x01EAD3C8; +const void * RTTI_BGSSceneInfo__TextureUse = (void *)0x01EAD3F0; +const void * RTTI_BGSTextureUseMap__TextureUse = (void *)0x01EAD4F8; +const void * RTTI_BSAnimationGraphChannel = (void *)0x01EAD530; +const void * RTTI_BSAnimGroupSequence = (void *)0x01EAD600; +const void * RTTI_BSAnimNoteReceiver = (void *)0x01EAD660; +const void * RTTI_IBSAnimNoteReceiver = (void *)0x01EAD690; +const void * RTTI_GridArray = (void *)0x01EAD758; +const void * RTTI_GridCellArray = (void *)0x01EAD778; +const void * RTTI_TESActionData = (void *)0x01EAD7A0; +const void * RTTI_InventoryUtils__ItemFilter = (void *)0x01EAD818; +const void * RTTI_InventoryChanges__IItemChangeVisitor = (void *)0x01EAD848; +const void * RTTI_BGSActionData = (void *)0x01EAD7C8; +const void * RTTI_Inventory__StatInventoryVisitor = (void *)0x01EAD888; +const void * RTTI_FindByEffectSettingFunctor = (void *)0x01EAD980; +const void * RTTI_BSExternalAudioIO__ExternalIOInterface = (void *)0x01EADB28; +const void * RTTI_LipSynchAnimDB__LipAudioInterface = (void *)0x01EADB68; +const void * RTTI_TESCameraState = (void *)0x01EAE0D0; +const void * RTTI_LocalMapCamera = (void *)0x01EAE0F8; +const void * RTTI_LocalMapCamera__DefaultState = (void *)0x01EAE140; +const void * RTTI_BSSplatterExtraData = (void *)0x01EAE1A0; +const void * RTTI_TESRegion = (void *)0x01EAE268; +const void * RTTI_TESRegionData = (void *)0x01EAE210; +const void * RTTI_TESRegionDataGrass = (void *)0x01EAE288; +const void * RTTI_TESRegionDataLandscape = (void *)0x01EAE2B8; +const void * RTTI_TESRegionDataManager = (void *)0x01EAE2E8; +const void * RTTI_TESRegionDataMap = (void *)0x01EAE318; +const void * RTTI_TESRegionDataObjects = (void *)0x01EAE340; +const void * RTTI_TESRegionDataSound = (void *)0x01EAE370; +const void * RTTI_TESRegionDataWeather = (void *)0x01EAE238; +const void * RTTI_TESRegionObjectBase = (void *)0x01EAE3A0; +const void * RTTI_TESRegionGrassObject = (void *)0x01EAE3D0; +const void * RTTI_TESRegionGrassObjectList = (void *)0x01EAE400; +const void * RTTI_TESRegionList = (void *)0x01EAE470; +const void * RTTI_TESRegionNoiseFunction = (void *)0x01EAE4D0; +const void * RTTI_TESRegionObject = (void *)0x01EAE500; +const void * RTTI_TESRegionObjectList = (void *)0x01EAE550; +const void * RTTI_BGSAddonNode = (void *)0x01EAB7D0; +const void * RTTI_BGSAddonNodeSoundHandleExtra = (void *)0x01EAE658; +const void * RTTI_BGSApparatus = (void *)0x01EAE728; +const void * RTTI_BGSArtObject = (void *)0x01EA7EB0; +const void * RTTI_BGSArtObjectCloneTask = (void *)0x01EAE7E8; +const void * RTTI_BGSConstructibleObject = (void *)0x01EAE940; +const void * RTTI_InventoryUtils__QuestItemFilter = (void *)0x01EAE970; +const void * RTTI_BGSDebris = (void *)0x01EABD98; +const void * RTTI_BGSPreloadable = (void *)0x01EAEAE8; +const void * RTTI_BGSExplosion = (void *)0x01EA7F00; +const void * RTTI_BGSHazard = (void *)0x01EAEC40; +const void * RTTI_BGSLensFlare = (void *)0x01EAECF8; +const void * RTTI_BSLensFlareSpriteRenderData = (void *)0x01EAED50; +const void * RTTI_BGSLensFlareSprite = (void *)0x01EAED88; +const void * RTTI_BGSVolumetricLighting = (void *)0x01EAEE70; +const void * RTTI_BGSMovableStatic = (void *)0x01EAEF88; +const void * RTTI_BGSOutfit = (void *)0x01EAF040; +const void * RTTI_BGSProjectile = (void *)0x01EA7F28; +const void * RTTI_BGSStaticCollection = (void *)0x01EAF1C8; +const void * RTTI_BGSTalkingActivator = (void *)0x01EAF2D8; +const void * RTTI_TESAmmo = (void *)0x01EAA468; +const void * RTTI_TESCombatStyle = (void *)0x01EAA548; +const void * RTTI_TESEffectShader = (void *)0x01EA7ED8; +const void * RTTI_BSParticleShaderGeometry = (void *)0x01EAF598; +const void * RTTI_TESFlora = (void *)0x01EAF680; +const void * RTTI_TESFurniture = (void *)0x01EAF738; +const void * RTTI_TESGrass = (void *)0x01EAF7F0; +const void * RTTI_TESKey = (void *)0x01EAA328; +const void * RTTI_TESLevCharacter = (void *)0x01EAF948; +const void * RTTI_TESLevItem = (void *)0x01EAC2E8; +const void * RTTI_TESLevSpell = (void *)0x01EAC740; +const void * RTTI_TESObjectLIGH = (void *)0x01EA83C0; +const void * RTTI_TESBoundObject = (void *)0x01EA7BD8; +const void * RTTI_TESObject = (void *)0x01EA7C00; +const void * RTTI_TESBoundAnimObject = (void *)0x01EAF308; +const void * RTTI_TESObjectACTI = (void *)0x01EAB860; +const void * RTTI_BGSOpenCloseForm = (void *)0x01EAF338; +const void * RTTI_TESObjectANIO = (void *)0x01EAFC68; +const void * RTTI_TESObjectARMA = (void *)0x01EAFD28; +const void * RTTI_TESObjectARMO = (void *)0x01EAC040; +const void * RTTI_TESObjectBOOK = (void *)0x01EAFE88; +const void * RTTI_TESObjectCONT = (void *)0x01EAFF78; +const void * RTTI_TESObjectDOOR = (void *)0x01EAB900; +const void * RTTI_IFadeDoneCallback = (void *)0x01EB0038; +const void * RTTI_TESObjectMISC = (void *)0x01EAB8D8; +const void * RTTI_TESObjectSTAT = (void *)0x01EAB8B0; +const void * RTTI_TESObjectTREE = (void *)0x01EB02B8; +const void * RTTI_TESObjectWEAP = (void *)0x01EAB818; +const void * RTTI_TESSoulGem = (void *)0x01EB0410; +const void * RTTI_BGSEncounterZone = (void *)0x01EAA440; +const void * RTTI_QueuedPromoteLargeReferencesTask = (void *)0x01EB0510; +const void * RTTI_BGSLightingTemplate = (void *)0x01EB05F8; +const void * RTTI_BGSLocation = (void *)0x01EB04E8; +const void * RTTI_QueuedPromoteLocationReferencesTask = (void *)0x01EB06C0; +const void * RTTI_BGSLocationRefType = (void *)0x01EAA3C0; +const void * RTTI_BGSReferenceEffect = (void *)0x01EA8390; +const void * RTTI_BGSShaderParticleGeometryData = (void *)0x01EB0918; +const void * RTTI_BSParticleShaderEmitter = (void *)0x01EB0950; +const void * RTTI_BSParticleShaderCubeEmitter = (void *)0x01EB0980; +const void * RTTI_BSParticleShaderSnowEmitter = (void *)0x01EB09B8; +const void * RTTI_BSParticleShaderRainEmitter = (void *)0x01EB09F0; +const void * RTTI_CellLoaderTask = (void *)0x01EB0A28; +const void * RTTI_ImageSpaceModifierInstanceForm = (void *)0x01EB0A50; +const void * RTTI_ImageSpaceModifierInstance = (void *)0x01EB0A88; +const void * RTTI_ImageSpaceModifierInstanceTemp = (void *)0x01EB0AC0; +const void * RTTI_ImageSpaceModifierInstanceDOF = (void *)0x01EB0AF8; +const void * RTTI_ImageSpaceModifierInstanceRB = (void *)0x01EB0B30; +const void * RTTI_TESClimate = (void *)0x01EB0C28; +const void * RTTI_TESImageSpace = (void *)0x01EAA348; +const void * RTTI_NiFloatData = (void *)0x01EB0DA0; +const void * RTTI_TESImageSpaceModifier = (void *)0x01EA8340; +const void * RTTI_NiColorData = (void *)0x01EB0DC8; +const void * RTTI_hkBaseObject = (void *)0x01EB0E68; +const void * RTTI_hkReferencedObject = (void *)0x01EB0E38; +const void * RTTI_TESChildCell = (void *)0x01EB0E90; +const void * RTTI_TESObjectLAND = (void *)0x01EB0EB8; +const void * RTTI_hkpMoppCode = (void *)0x01EB0EE0; +const void * RTTI_TESLandTexture = (void *)0x01EAE528; +const void * RTTI_hkpWorldCinfo = (void *)0x01EB1088; +const void * RTTI_hkpEntityListener = (void *)0x01EB10B0; +const void * RTTI_CheckWithinMultiBoundTask = (void *)0x01EB1100; +const void * RTTI_ExtraProcessMiddleLow = (void *)0x01EB1130; +const void * RTTI_TESObjectCELL = (void *)0x01EAA300; +const void * RTTI_TESObjectCELL__IDecalRefFunctor = (void *)0x01EB1650; +const void * RTTI_TESWindListener = (void *)0x01EB1800; +const void * RTTI_bhkSerializable = (void *)0x01EB1AD8; +const void * RTTI_hkpShape = (void *)0x01EB1B28; +const void * RTTI_bhkShape = (void *)0x01EB1B48; +const void * RTTI_BSHandleRefObject = (void *)0x01EB1B68; +const void * RTTI_TESObjectREFRDef__ILinkedReferenceFunctor = (void *)0x01EB1B90; +const void * RTTI_BGSWaterCollisionManager__bhkPlaceableWater = (void *)0x01EB1C20; +const void * RTTI_BGSWaterCollisionManager__bhkWaterfall = (void *)0x01EB1CD8; +const void * RTTI_hkpPhantomCallbackShape = (void *)0x01EB1C68; +const void * RTTI_bhkEntity = (void *)0x01EB1D18; +const void * RTTI_bhkPhantom = (void *)0x01EB1BF8; +const void * RTTI_bhkAabbPhantom = (void *)0x01EB1BD0; +const void * RTTI_BGSWaterCollisionManager__BGSWaterUpdateI = (void *)0x01EB1C98; +const void * RTTI_bhkRigidBody = (void *)0x01EAEAC0; +const void * RTTI_TESObjectREFR = (void *)0x01EAA418; +const void * RTTI_bhkSimpleShapePhantom = (void *)0x01EB1DB0; +const void * RTTI_bhkCollisionObject = (void *)0x01EB1E08; +const void * RTTI_bhkAcousticSpacePhantomCallbackShape = (void *)0x01EB1EA0; +const void * RTTI_bhkSphereRepShape = (void *)0x01EB1EE0; +const void * RTTI_bhkConvexShape = (void *)0x01EB1F08; +const void * RTTI_bhkPCollisionObject = (void *)0x01EB1F30; +const void * RTTI_bhkShapePhantom = (void *)0x01EB1DE0; +const void * RTTI_bhkSphereShape = (void *)0x01EB1F60; +const void * RTTI_ReferenceEffectController = (void *)0x01EB1F88; +const void * RTTI_OwnedController = (void *)0x01EB1FB8; +const void * RTTI_OwnedCameraEffectController = (void *)0x01EB1FE0; +const void * RTTI_bhkBoxShape = (void *)0x01EB2018; +const void * RTTI_IAnimationStreamWrite = (void *)0x01EB21F8; +const void * RTTI_IAnimationStreamRead = (void *)0x01EB2228; +const void * RTTI_AnimationStreamLoadGame = (void *)0x01EB2258; +const void * RTTI_AnimationStreamSaveGame = (void *)0x01EB2288; +const void * RTTI_REFREventCallbacks__IEventCallback = (void *)0x01EB22B8; +const void * RTTI_REFREventCallbacks__IEventCallbackFactory = (void *)0x01EB22F0; +const void * RTTI_ExtraUsedMarkers = (void *)0x01EB2330; +const void * RTTI_ExtraReservedMarkers = (void *)0x01EB2358; +const void * RTTI_TESObjectREFRSync__REFRSyncController = (void *)0x01EB2450; +const void * RTTI_TESWaterForm = (void *)0x01EAA398; +const void * RTTI_TESWeather = (void *)0x01EB0C00; +const void * RTTI_TESTexture1024 = (void *)0x01EB2610; +const void * RTTI_TESWorldSpace = (void *)0x01EAA2D8; +const void * RTTI_BGSAcousticSpace = (void *)0x01EAA370; +const void * RTTI_NiFormArray = (void *)0x01EB28C8; +const void * RTTI_BGSCameraPath = (void *)0x01EB2878; +const void * RTTI_BGSCameraShot = (void *)0x01EB28A0; +const void * RTTI_BGSCollisionLayer = (void *)0x01EAF0F8; +const void * RTTI_BGSColorForm = (void *)0x01EB2C18; +const void * RTTI_BGSDefaultObjectManager = (void *)0x01EB2C40; +const void * RTTI_BGSFootstep = (void *)0x01EB2D50; +const void * RTTI_BGSFootstepSet = (void *)0x01EB2E28; +const void * RTTI_BGSImpactData = (void *)0x01EB2EE8; +const void * RTTI_BGSImpactDataSet = (void *)0x01EA7E88; +const void * RTTI_BGSListForm = (void *)0x01EA84F8; +const void * RTTI_BSMaterialObject = (void *)0x01EB31E8; +const void * RTTI_BGSMaterialObject = (void *)0x01EB3210; +const void * RTTI_BGSMaterialType = (void *)0x01EB2558; +const void * RTTI_BGSMenuIcon = (void *)0x01EB3380; +const void * RTTI_BGSMessage = (void *)0x01EAA600; +const void * RTTI_BGSMusicPaletteTrack = (void *)0x01EB3618; +const void * RTTI_BGSMusicSilenceTrack = (void *)0x01EB3670; +const void * RTTI_BGSMusicSingleTrack = (void *)0x01EB3998; +const void * RTTI_BSIMusicTrack = (void *)0x01EB35F0; +const void * RTTI_BGSMusicTrack = (void *)0x01EB3648; +const void * RTTI_BGSMusicTrackFormWrapper = (void *)0x01EB3A80; +const void * RTTI_BGSMusicType = (void *)0x01EAA3F0; +const void * RTTI_BSIMusicType = (void *)0x01EB3B48; +const void * RTTI_BSIReverbType = (void *)0x01EB3C18; +const void * RTTI_BGSReverbParameters = (void *)0x01EB27F8; +const void * RTTI_BSISoundCategory = (void *)0x01EB3D10; +const void * RTTI_BGSSoundCategory = (void *)0x01EB3CE8; +const void * RTTI_BGSSoundDescriptorForm = (void *)0x01EB3DF0; +const void * RTTI_BSISoundDescriptor = (void *)0x01EB3E20; +const void * RTTI_BSISoundOutputModel = (void *)0x01EB3EF8; +const void * RTTI_BGSSoundOutput = (void *)0x01EB3F28; +const void * RTTI_BSISoundOutputModel__BSIAttenuationCharacteristics = (void *)0x01EB3F50; +const void * RTTI_BGSSoundOutput__DynamicAttenuationCharacteristics = (void *)0x01EB3FA0; +const void * RTTI_BSISoundDescriptor__BSIPlaybackCharacteristics = (void *)0x01EB4220; +const void * RTTI_BGSSoundDescriptor = (void *)0x01EB4268; +const void * RTTI_BGSStandardSoundDef = (void *)0x01EB4298; +const void * RTTI_BGSStandardSoundDef__SoundPlaybackCharacteristics = (void *)0x01EB42D0; +const void * RTTI_BGSTextureSet = (void *)0x01EAC688; +const void * RTTI_BSTextureSet = (void *)0x01EB43B0; +const void * RTTI_BSShaderTextureSet = (void *)0x01EB43D8; +const void * RTTI_IVisitProcedures = (void *)0x01EB4408; +const void * RTTI_MiscStatManager__IMiscStatVisitor = (void *)0x01EB4430; +const void * RTTI_MiscStatManager__FindStatByCRC = (void *)0x01EB4468; +const void * RTTI_BSScript__IForEachScriptObjectFunctor = (void *)0x01EB44A0; +const void * RTTI_TESGlobal = (void *)0x01EA8CC0; +const void * RTTI_TESLoadScreen = (void *)0x01EB4658; +const void * RTTI_Script = (void *)0x01EB4710; +const void * RTTI_BSAnimGraphVisit__BShkbVisitor = (void *)0x01EB47B0; +const void * RTTI_MagicTarget__ForEachActiveEffectVisitor = (void *)0x01EB4A48; +const void * RTTI_TESObjectREFRDef__IAliasFunctor = (void *)0x01EB4A88; +const void * RTTI_BSScript__IFunctionArguments = (void *)0x01EB4B40; +const void * RTTI_BSScript__ZeroFunctionArguments = (void *)0x01EB4B78; +const void * RTTI_MobIterOperator = (void *)0x01EB4BB0; +const void * RTTI_TESShout = (void *)0x01EAC768; +const void * RTTI_TESSound = (void *)0x01EB4F00; +const void * RTTI_TESWordOfPower = (void *)0x01EB4FC8; +const void * RTTI_BGSAction = (void *)0x01EB5080; +const void * RTTI_BGSAssociationType = (void *)0x01EB5148; +const void * RTTI_TESModelPSA = (void *)0x01EB5178; +const void * RTTI_BGSBodyPartData = (void *)0x01EB5270; +const void * RTTI_BGSDialogueBranch = (void *)0x01EAA4F8; +const void * RTTI_PerkEntryVisitor = (void *)0x01EB53F8; +const void * RTTI_BGSEntryPointFunctionData = (void *)0x01EB5460; +const void * RTTI_BGSEntryPointFunctionDataOneValue = (void *)0x01EB5490; +const void * RTTI_BGSEntryPointFunctionDataTwoValue = (void *)0x01EB54C8; +const void * RTTI_BGSEntryPointFunctionDataLeveledList = (void *)0x01EB5500; +const void * RTTI_BGSEntryPointFunctionDataSpellItem = (void *)0x01EB5540; +const void * RTTI_BGSEntryPointFunctionDataBooleanGraphVariable = (void *)0x01EB5580; +const void * RTTI_BGSEntryPointFunctionDataText = (void *)0x01EB55C8; +const void * RTTI_BGSEntryPointFunctionDataActivateChoice = (void *)0x01EB5600; +const void * RTTI_BGSEquipSlot = (void *)0x01EB56D8; +const void * RTTI_BGSHeadPart = (void *)0x01EB5790; +const void * RTTI_TESModelTri = (void *)0x01EB57B8; +const void * RTTI_BGSIdleMarker = (void *)0x01EB5878; +const void * RTTI_BGSKeyword = (void *)0x01EAA5D8; +const void * RTTI_BGSBaseAlias = (void *)0x01EB5930; +const void * RTTI_BGSLocAlias = (void *)0x01EB5958; +const void * RTTI_BGSMovementType = (void *)0x01EB5A28; +const void * RTTI_BGSNote = (void *)0x01EB4730; +const void * RTTI_BGSPerk = (void *)0x01EA8370; +const void * RTTI_BGSPerkEntry = (void *)0x01EB5B70; +const void * RTTI_BGSQuestPerkEntry = (void *)0x01EB5B98; +const void * RTTI_BGSAbilityPerkEntry = (void *)0x01EB5BC0; +const void * RTTI_BGSEntryPointPerkEntry = (void *)0x01EB5BF0; +const void * RTTI_BGSRagdoll = (void *)0x01EB5248; +const void * RTTI_BGSRefAlias = (void *)0x01EB5CB0; +const void * RTTI_BGSRelationship = (void *)0x01EB5D88; +const void * RTTI_BGSScene = (void *)0x01EAA598; +const void * RTTI_BGSSceneAction = (void *)0x01EB5EA0; +const void * RTTI_BGSSceneActionDialogue = (void *)0x01EB5EC8; +const void * RTTI_BGSSceneActionPackage = (void *)0x01EB5EF8; +const void * RTTI_BGSSceneActionTimer = (void *)0x01EB5FE8; +const void * RTTI_BGSVoiceType = (void *)0x01EAB888; +const void * RTTI_Reset3DMobIterator = (void *)0x01EB6178; +const void * RTTI_TESAnimGroup = (void *)0x01EB61A8; +const void * RTTI_TESClass = (void *)0x01EB6260; +const void * RTTI_TESEyes = (void *)0x01EAB840; +const void * RTTI_TESFaction = (void *)0x01EAA520; +const void * RTTI_TESIdleForm = (void *)0x01EABF30; +const void * RTTI_ActorValueOwner = (void *)0x01EB6470; +const void * RTTI_TESActorBase = (void *)0x01EAA570; +const void * RTTI_TESNPC = (void *)0x01EAB928; +const void * RTTI_BSFaceGenModelExtraData = (void *)0x01EB64D8; +const void * RTTI_TESQuest = (void *)0x01EAA5B8; +const void * RTTI_QueuedPromoteQuestTask = (void *)0x01EB6610; +const void * RTTI_TESRace = (void *)0x01EAC720; +const void * RTTI_BGSTextureModel = (void *)0x01EB6790; +const void * RTTI_BGSBehaviorGraphModel = (void *)0x01EB67B8; +const void * RTTI_AttackAnimationArrayMap = (void *)0x01EB67E8; +const void * RTTI_TESTopic = (void *)0x01EAA4D8; +const void * RTTI_TESTopicInfo = (void *)0x01EAA4B0; +const void * RTTI_bhkEntityListener = (void *)0x01EB10D8; +const void * RTTI_BGSAcousticSpaceListener = (void *)0x01EB71C8; +const void * RTTI_TargetEntry = (void *)0x01EB7290; +const void * RTTI_ZoneEntry = (void *)0x01EB71F8; +const void * RTTI_BGSZoneTargetListener = (void *)0x01EB72B8; +const void * RTTI_TrapTargetEntry = (void *)0x01EB72E8; +const void * RTTI_bhkAction = (void *)0x01EB7330; +const void * RTTI_bhkCartTether = (void *)0x01EB7350; +const void * RTTI_hkConstraintCinfo = (void *)0x01EB7378; +const void * RTTI_bhkConstraint = (void *)0x01EB73D0; +const void * RTTI_hkPrismaticConstraintCinfo = (void *)0x01EB73F8; +const void * RTTI_bhkPrismaticConstraint = (void *)0x01EB7430; +const void * RTTI_bhkUnaryAction = (void *)0x01EB7488; +const void * RTTI_CellMopp = (void *)0x01EB7590; +const void * RTTI_BSTasklet = (void *)0x01EB75B0; +const void * RTTI_BSTaskletData = (void *)0x01EB75D0; +const void * RTTI_BSWin32TaskletData = (void *)0x01EB75F8; +const void * RTTI_bhkBvTreeShape = (void *)0x01EB7628; +const void * RTTI_bhkTriSampledHeightFieldBvTreeShape = (void *)0x01EB7650; +const void * RTTI_CellMopp__HeightFieldWeldingTasklet = (void *)0x01EB7758; +const void * RTTI_hkpContactListener = (void *)0x01EB7798; +const void * RTTI_bhkContactListener = (void *)0x01EB77C8; +const void * RTTI_bhkBackfaceContactListener = (void *)0x01EB77F8; +const void * RTTI_FOCollisionListener = (void *)0x01EB7830; +const void * RTTI_hkpIslandActivationListener = (void *)0x01EB7A20; +const void * RTTI_FOIslandActivationListener = (void *)0x01EB7A58; +const void * RTTI_hkStreamWriter = (void *)0x01EB7A90; +const void * RTTI_hkError = (void *)0x01EB7AB8; +const void * RTTI_hkStreamReader = (void *)0x01EB7B08; +const void * RTTI_hkFileSystem = (void *)0x01EB7B30; +const void * RTTI_HavokStreambufReader = (void *)0x01EB7B90; +const void * RTTI_HavokStreambufWriter = (void *)0x01EB7BC0; +const void * RTTI_HavokFileStreambufReader = (void *)0x01EB7BF0; +const void * RTTI_HavokFileStreambufWriter = (void *)0x01EB7C20; +const void * RTTI_hkNativeFileSystem = (void *)0x01EB7C50; +const void * RTTI_HavokStreambufFactory = (void *)0x01EB7C80; +const void * RTTI_HavokError = (void *)0x01EB7CB0; +const void * RTTI_hkpCdPointCollector = (void *)0x01EB7CD8; +const void * RTTI_hkpAllCdPointCollector = (void *)0x01EB7D08; +const void * RTTI_LoadedAreaBound = (void *)0x01EB7D38; +const void * RTTI_RagdollFurnitureListener = (void *)0x01EB7D60; +const void * RTTI_hkpClosestRayHitCollector = (void *)0x01EB7DE0; +const void * RTTI_SpecificItemCollector = (void *)0x01EB7E10; +const void * RTTI_hkpPhantomListener = (void *)0x01EB7E40; +const void * RTTI_hkpCdBodyPairCollector = (void *)0x01EB7E70; +const void * RTTI_bhkTrapListener = (void *)0x01EB7EA0; +const void * RTTI_TrapEntry = (void *)0x01EB7EC8; +const void * RTTI_TriggerEntry = (void *)0x01EB7EE8; +const void * RTTI_TESTrapListener = (void *)0x01EB7FE8; +const void * RTTI_hkpAllCdBodyPairTempCollector = (void *)0x01EB8010; +const void * RTTI_hkpAllCdPointTempCollector = (void *)0x01EB8048; +const void * RTTI_FindTriangleForLocationFilter = (void *)0x01EB8080; +const void * RTTI_FindTriangleForLocationFilterCheckDeltaZ = (void *)0x01EB80B8; +const void * RTTI_Atmosphere = (void *)0x01EB80F8; +const void * RTTI_Clouds = (void *)0x01EB8140; +const void * RTTI_Moon = (void *)0x01EB8160; +const void * RTTI_BSGeometryListCullingProcess = (void *)0x01EB8180; +const void * RTTI_Precipitation = (void *)0x01EB8208; +const void * RTTI_Sky = (void *)0x01EB8230; +const void * RTTI_TESWeather__SkyStaticFunctor = (void *)0x01EB8250; +const void * RTTI_SkyEffectController = (void *)0x01EB8288; +const void * RTTI_SkyStaticFindFunctor = (void *)0x01EB82B8; +const void * RTTI_TempLoadGameBuffer = (void *)0x01EB82E8; +const void * RTTI_SkyObject = (void *)0x01EB8120; +const void * RTTI_Stars = (void *)0x01EB8318; +const void * RTTI_NiBillboardNode = (void *)0x01EB8338; +const void * RTTI_Sun = (void *)0x01EB8360; +const void * RTTI_BShkNonTransformController = (void *)0x01EB83B8; +const void * RTTI_BShkFloatController = (void *)0x01EB83F0; +const void * RTTI_BGShkPhonemeController = (void *)0x01EB8420; +const void * RTTI_BSFaceGenAnimationData = (void *)0x01EB8678; +const void * RTTI_FutBinaryFileC = (void *)0x01EB86A8; +const void * RTTI_BSResourceFaceGenBinaryFile = (void *)0x01EB86D0; +const void * RTTI_BSFaceGenKeyframe = (void *)0x01EB9190; +const void * RTTI_BSFaceGenKeyframeExclusive = (void *)0x01EB91B8; +const void * RTTI_BSFaceGenKeyframeMultiple = (void *)0x01EB91F0; +const void * RTTI_BSFaceGenDB__TRI__QueuedHandles = (void *)0x01EB9220; +const void * RTTI_BSFaceGenModel = (void *)0x01EB9328; +const void * RTTI_BSFaceGenModelMap__Entry = (void *)0x01EB9350; +const void * RTTI_BSFaceGenMorphData = (void *)0x01EB9380; +const void * RTTI_BSFaceGenMorphDataHead = (void *)0x01EB93B0; +const void * RTTI_BSFaceGenMorphDataHair = (void *)0x01EB93E0; +const void * RTTI_BSFaceGenBaseMorphExtraData = (void *)0x01EB9410; +const void * RTTI_BSFaceGenNiNode = (void *)0x01EB94A8; +const void * RTTI_BSFadeNodeCuller = (void *)0x01EB94D0; +const void * RTTI_ActorValueInfo = (void *)0x01EB9538; +const void * RTTI_BGSSkillPerkTreeNode = (void *)0x01EB9560; +const void * RTTI_IAIWorldLocation = (void *)0x01EB9590; +const void * RTTI_BGSAIWorldLocation = (void *)0x01EB95B8; +const void * RTTI_BGSAIWorldLocationRefRadius = (void *)0x01EB95E8; +const void * RTTI_BGSAIWorldLocationPointRadius = (void *)0x01EB9680; +const void * RTTI_BGSAIWorldLocationInteriorCell = (void *)0x01EB9720; +const void * RTTI_BGSAttackDataMap = (void *)0x01EB97C0; +const void * RTTI_BGSAttackData = (void *)0x01EB97E8; +const void * RTTI_IAITarget = (void *)0x01EB9878; +const void * RTTI_BGSPackageDataBool = (void *)0x01EBA668; +const void * RTTI_BGSPackageDataFloat = (void *)0x01EB9898; +const void * RTTI_BGSPackageDataInt = (void *)0x01EB9968; +const void * RTTI_BGSPackageDataRefOLD = (void *)0x01EB9A28; +const void * RTTI_BGSPackageDataLocation = (void *)0x01EB9A58; +const void * RTTI_BGSPackageDataTargetSelector = (void *)0x01EB9A88; +const void * RTTI_IPackageDataAIWorldLocationHandle = (void *)0x01EB9810; +const void * RTTI_IPackageData = (void *)0x01EBA640; +const void * RTTI_IAIWorldLocationHandle = (void *)0x01EB9848; +const void * RTTI_BGSPackageDataLocationWrapper = (void *)0x01EBAAA8; +const void * RTTI_BGSPackageDataObjectList = (void *)0x01EBAC78; +const void * RTTI_ObjectListItem = (void *)0x01EBACA8; +const void * RTTI_BGSPackageDataRef = (void *)0x01EBAD58; +const void * RTTI_BGSPackageDataTopic = (void *)0x01EBAF10; +const void * RTTI_IProcedureTreeExecState = (void *)0x01EBB0D0; +const void * RTTI_IProcedureTreeItem = (void *)0x01EBB138; +const void * RTTI_BGSProcedureDoneExecState = (void *)0x01EBB1A8; +const void * RTTI_BGSProcedureTreeConditionalItem = (void *)0x01EBB240; +const void * RTTI_BGSProcedureTreeBranch = (void *)0x01EBB278; +const void * RTTI_BGSProcedureTreeOneChildExecState = (void *)0x01EBB2A8; +const void * RTTI_BGSProcedureTreeSequence = (void *)0x01EBB2E0; +const void * RTTI_BGSProcedureTreeSequenceExecState = (void *)0x01EBB370; +const void * RTTI_BGSProcedureTreeStacked = (void *)0x01EBB420; +const void * RTTI_BGSProcedureTreeStackedExecState = (void *)0x01EBB4B0; +const void * RTTI_BGSProcedureTreeSimultaneous = (void *)0x01EBB560; +const void * RTTI_BGSProcedureTreeSimultaneousExecState = (void *)0x01EBB600; +const void * RTTI_BGSProcedureTreeRandom = (void *)0x01EBB6A8; +const void * RTTI_BGSProcedureTreeRandomExecState = (void *)0x01EBB738; +const void * RTTI_BGSProcedureGuardExecState = (void *)0x01EBB7E0; +const void * RTTI_BGSProcedureDialogueExecState = (void *)0x01EBB880; +const void * RTTI_BGSProcedureEatExecState = (void *)0x01EBB920; +const void * RTTI_BGSProcedureFindExecState = (void *)0x01EBB9B0; +const void * RTTI_BGSProcedureHoldPositionExecState = (void *)0x01EBBA40; +const void * RTTI_BGSProcedureKeepAnEyeOnExecState = (void *)0x01EBBAE8; +const void * RTTI_BGSProcedureSayExecState = (void *)0x01EBBB88; +const void * RTTI_BGSProcedureWaitExecState = (void *)0x01EBBC20; +const void * RTTI_IProcedure = (void *)0x01EBFB38; +const void * RTTI_BGSProcedureBase = (void *)0x01EBFB60; +const void * RTTI_BGSProcedureDone = (void *)0x01EBFB88; +const void * RTTI_IPackageDataTypeCheck = (void *)0x01EBFDE8; +const void * RTTI_BGSProcedureAcquire = (void *)0x01EBFF20; +const void * RTTI_BGSProcedureAcquireExecState = (void *)0x01EBFFD0; +const void * RTTI_BGSProcedureActivate = (void *)0x01EC0200; +const void * RTTI_BGSProcedureActivateExecState = (void *)0x01EC02B0; +const void * RTTI_BGSProcedureDialogue = (void *)0x01EC0530; +const void * RTTI_BGSProcedureDialogueActivate = (void *)0x01EC07E0; +const void * RTTI_BGSProcedureDialogueActivateExecState = (void *)0x01EC08A8; +const void * RTTI_BGSProcedureEat = (void *)0x01EC0B58; +const void * RTTI_BGSProcedureEscort = (void *)0x01EC0E30; +const void * RTTI_BGSProcedureEscortExecState = (void *)0x01EC0EE0; +const void * RTTI_BGSProcedureFind = (void *)0x01EC1160; +const void * RTTI_BGSProcedureFlee = (void *)0x01EC1390; +const void * RTTI_BGSProcedureFleeExecState = (void *)0x01EC1438; +const void * RTTI_BGSProcedureFlightGrab = (void *)0x01EC1650; +const void * RTTI_BGSProcedureFlightGrabExecState = (void *)0x01EC1700; +const void * RTTI_IMovementParameters = (void *)0x01EC19C0; +const void * RTTI_BGSProcedureFollow = (void *)0x01EC19F0; +const void * RTTI_BGSProcedureFollowTo = (void *)0x01EC1AA0; +const void * RTTI_BGSProcedureFollowExecState = (void *)0x01EC1B50; +const void * RTTI_MovementParameters = (void *)0x01EC1BF0; +const void * RTTI_BGSProcedureForceGreet = (void *)0x01EC1F40; +const void * RTTI_BGSProcedureGuard = (void *)0x01EC2188; +const void * RTTI_BGSProcedureHoldPosition = (void *)0x01EC23C0; +const void * RTTI_BGSProcedureHover = (void *)0x01EC2608; +const void * RTTI_BGSProcedureHoverExecState = (void *)0x01EC26A8; +const void * RTTI_BGSProcedureKeepAnEyeOn = (void *)0x01EC28D0; +const void * RTTI_BGSProcedureLock = (void *)0x01EC2B18; +const void * RTTI_BGSProcedureUnlock = (void *)0x01EC2BB8; +const void * RTTI_BGSProcedureLockUnlockExecState = (void *)0x01EC2C70; +const void * RTTI_BGSProcedureOrbit = (void *)0x01EC3030; +const void * RTTI_BGSProcedureOrbitExecState = (void *)0x01EC30D8; +const void * RTTI_BGSProcedurePatrol = (void *)0x01EC3300; +const void * RTTI_BGSProcedurePatrolExecState = (void *)0x01EC33B0; +const void * RTTI_BGSProcedurePursue = (void *)0x01EC35E0; +const void * RTTI_BGSProcedureSandboxExecState = (void *)0x01EC3820; +const void * RTTI_BGSProcedureSandbox = (void *)0x01EC38C0; +const void * RTTI_BGSProcedureSay = (void *)0x01EC3B00; +const void * RTTI_BGSProcedureShout = (void *)0x01EC3D30; +const void * RTTI_BGSProcedureShoutExecState = (void *)0x01EC3DD8; +const void * RTTI_BGSProcedureSit = (void *)0x01EC4040; +const void * RTTI_BGSProcedureSleep = (void *)0x01EC40E8; +const void * RTTI_BGSProcedureSitSleepExecState = (void *)0x01EC4188; +const void * RTTI_BGSProcedureTravel = (void *)0x01EC4530; +const void * RTTI_BGSProcedureTravelExecState = (void *)0x01EC45E0; +const void * RTTI_BGSProcedureTreeProcedure = (void *)0x01EC4810; +const void * RTTI_BGSProcedureUseIdleMarker = (void *)0x01EC48A8; +const void * RTTI_BGSProcedureUseIdleMarkerExecState = (void *)0x01EC4960; +const void * RTTI_BGSProcedureUseMagic = (void *)0x01EC4BA8; +const void * RTTI_BGSProcedureUseMagicExecState = (void *)0x01EC4C60; +const void * RTTI_BGSProcedureUseWeapon = (void *)0x01EC4E90; +const void * RTTI_BGSProcedureUseWeaponExecState = (void *)0x01EC4F40; +const void * RTTI_BGSProcedureWait = (void *)0x01EC5180; +const void * RTTI_BGSProcedureWander = (void *)0x01EC53B0; +const void * RTTI_BGSProcedureWanderExecState = (void *)0x01EC5460; +const void * RTTI_BGSVisitProceduresInitActorLocation = (void *)0x01EC5690; +const void * RTTI_BGSVisitProceduresCheckGuardWarnTarget = (void *)0x01EC56D0; +const void * RTTI_PackageCreator = (void *)0x01EC5710; +const void * RTTI_TESPackage = (void *)0x01EAA488; +const void * RTTI_DialoguePackage = (void *)0x01EC5738; +const void * RTTI_TESPackageData = (void *)0x01EC5760; +const void * RTTI_TESAmbushPackageData = (void *)0x01EC5788; +const void * RTTI_TESCustomPackageData = (void *)0x01EC57B8; +const void * RTTI_IProcedureTreeVisitor = (void *)0x01EC57E8; +const void * RTTI_CustomUtils__HasForceGreetVisitor = (void *)0x01EC5818; +const void * RTTI_TESDialoguePackageData = (void *)0x01EC5850; +const void * RTTI_TESEatPackageData = (void *)0x01EC5880; +const void * RTTI_TESEscortPackageData = (void *)0x01EC58A8; +const void * RTTI_TESFollowPackageData = (void *)0x01EC58D8; +const void * RTTI_TESPatrolPackageData = (void *)0x01EC5908; +const void * RTTI_TESUseItemPackageData = (void *)0x01EC5938; +const void * RTTI_ActorPackageData = (void *)0x01EC5998; +const void * RTTI_TESUseWeaponPackageData = (void *)0x01EC5968; +const void * RTTI_UseWeaponActorPackageData = (void *)0x01EC59C0; +const void * RTTI_PackageLocation = (void *)0x01EC59F0; +const void * RTTI_ITempEffectFactory = (void *)0x01EC5A18; +const void * RTTI_BSTempEffect = (void *)0x01EC5C28; +const void * RTTI_BSTempEffectDebris = (void *)0x01EC5D18; +const void * RTTI_BSTempEffectGeometryDecal = (void *)0x01EC5D48; +const void * RTTI_BGSParticleObjectCloneTask = (void *)0x01EC5E20; +const void * RTTI_BSTempEffectParticle = (void *)0x01EC5E58; +const void * RTTI_BSTempEffectSimpleDecal = (void *)0x01EC5E88; +const void * RTTI_BSLightingShaderMaterial = (void *)0x01EC5EB8; +const void * RTTI_BSTempEffectSPG = (void *)0x01EC5F98; +const void * RTTI_BSTempEffectWeaponBlood = (void *)0x01EC5FC0; +const void * RTTI_BSTerrainEffect = (void *)0x01EC6040; +const void * RTTI_BSPSysHavokUpdateModifier__ICollisionObjectHandler = (void *)0x01EC6070; +const void * RTTI_NavMesh = (void *)0x01EC6130; +const void * RTTI_BSPathingStreamRead = (void *)0x01EC6170; +const void * RTTI_PathingStreamMasterFileRead = (void *)0x01EC61A0; +const void * RTTI_BSNavmeshInfoMap__IVisitor = (void *)0x01EC61D8; +const void * RTTI_NavMeshInfoMap = (void *)0x01EC6208; +const void * RTTI_hkpEntityActivationListener = (void *)0x01EC63B0; +const void * RTTI_NavMeshObstacleManager = (void *)0x01EC63E8; +const void * RTTI_bhkObstacleDeactivationListener = (void *)0x01EC6640; +const void * RTTI_bhkObstacleRemovalListener = (void *)0x01EC6678; +const void * RTTI_BSNavmeshReferenceObstacleArray = (void *)0x01EC66B0; +const void * RTTI_ObstacleTaskData = (void *)0x01EC66E8; +const void * RTTI_PathingCoverLocation = (void *)0x01EC6710; +const void * RTTI_BSPathingCellManager = (void *)0x01EC6768; +const void * RTTI_Pathing = (void *)0x01EC67E8; +const void * RTTI_BSPathingCell = (void *)0x01EC6E38; +const void * RTTI_PathingCell = (void *)0x01EC6E60; +const void * RTTI_BSPathingDoor = (void *)0x01EC7048; +const void * RTTI_PathingDoor = (void *)0x01EC7070; +const void * RTTI_BSPathingLockData = (void *)0x01EC7278; +const void * RTTI_PathingLockData = (void *)0x01EC72A0; +const void * RTTI_BSPathingNumericIDVisitor = (void *)0x01EC72C8; +const void * RTTI_PathingNumericIDVisitor = (void *)0x01EC72F8; +const void * RTTI_PathingRequest = (void *)0x01EC6B20; +const void * RTTI_BSPathingSpace = (void *)0x01EC7558; +const void * RTTI_PathingSpace = (void *)0x01EC7580; +const void * RTTI_TeleportDoorSearch = (void *)0x01EC75A8; +const void * RTTI_NavMeshSearchClosePoint = (void *)0x01EC7670; +const void * RTTI_NavMeshSearchFitSphere = (void *)0x01EC77B8; +const void * RTTI_NavMeshSearchFlee = (void *)0x01EC7838; +const void * RTTI_NavMeshSearchHide = (void *)0x01EC7890; +const void * RTTI_BSNavmeshSearchHideFilter = (void *)0x01EC78E0; +const void * RTTI_NavMeshSearchLOS = (void *)0x01EC7940; +const void * RTTI_NavMeshSearchMaxCost = (void *)0x01EC7968; +const void * RTTI_BSNavmeshSearchMaxCostFilters = (void *)0x01EC7998; +const void * RTTI_NavMeshSearchMultipleGoals = (void *)0x01EC79D0; +const void * RTTI_NavMeshSearchSLPoint = (void *)0x01EC7A08; +const void * RTTI_PathingRequestClosePoint = (void *)0x01EC6AF0; +const void * RTTI_IPathBuilderFactoryBase = (void *)0x01EC7C70; +const void * RTTI_PathingRequestClosestGoal = (void *)0x01EC7F78; +const void * RTTI_PathingRequestCover = (void *)0x01EC8218; +const void * RTTI_PathingRequestFlee = (void *)0x01EC8458; +const void * RTTI_PathingRequestFly = (void *)0x01EC8698; +const void * RTTI_PathingRequestFlyAction = (void *)0x01EC88E8; +const void * RTTI_PathingRequestFlyHover = (void *)0x01EC8B48; +const void * RTTI_PathingRequestFlyLand = (void *)0x01EC8D98; +const void * RTTI_PathingRequestFlyOrbit = (void *)0x01EC8FF8; +const void * RTTI_PathingRequestFlyTakeOff = (void *)0x01EC9260; +const void * RTTI_PathingRequestHide = (void *)0x01EC9498; +const void * RTTI_PathingRequestLOS = (void *)0x01EC96D8; +const void * RTTI_PathingRequestOptimalLocation = (void *)0x01EC9930; +const void * RTTI_PathingRequestRotate = (void *)0x01EC9B78; +const void * RTTI_PathingRequestSafeStraightLine = (void *)0x01EC6AB8; +const void * RTTI_PathingRequestStopMoving = (void *)0x01ECA010; +const void * RTTI_BGSQueuedTerrainUpdate = (void *)0x01ECBA38; +const void * RTTI_BGSQueuedTerrainUpgrade = (void *)0x01ECBA68; +const void * RTTI_BGSQueuedTerrainDowngrade = (void *)0x01ECBA98; +const void * RTTI_BGSQueuedTerrainInitialLoad = (void *)0x01ECBAC8; +const void * RTTI_BGSQueuedObjectUpgrade = (void *)0x01ECBB00; +const void * RTTI_BGSQueuedObjectDowngrade = (void *)0x01ECBB30; +const void * RTTI_BGSQueuedObjectInitialLoad = (void *)0x01ECBB60; +const void * RTTI_BGSWaterCollisionManager__bhkAutoWater = (void *)0x01ECC1C8; +const void * RTTI_BGSWaterCollisionManager__bshkAutoWater = (void *)0x01ECC280; +const void * RTTI_TESWaterObject = (void *)0x01ECC340; +const void * RTTI_TESWaterReflections = (void *)0x01ECC368; +const void * RTTI_TESWaterDisplacement = (void *)0x01ECC398; +const void * RTTI_TESWaterNormals = (void *)0x01ECC3C8; +const void * RTTI_BGSStoryManagerTreeVisitor = (void *)0x01ECC508; +const void * RTTI_BGSStoryManagerQuestFinder = (void *)0x01ECC540; +const void * RTTI_BGSStoryManager = (void *)0x01ECC578; +const void * RTTI_BGSStoryManagerEventNode = (void *)0x01ECC7A0; +const void * RTTI_BGSStoryManagerQuestNode = (void *)0x01ECC880; +const void * RTTI_BGSStoryTeller = (void *)0x01ECC900; +const void * RTTI_BGSLOSData = (void *)0x01ECCB28; +const void * RTTI_AnimationClipDataSingleton = (void *)0x01ECCB50; +const void * RTTI_AnimationSystemUtils__QueuedReferenceAnimationTask = (void *)0x01ECCD90; +const void * RTTI_hkaRaycastInterface = (void *)0x01ECCEA8; +const void * RTTI_BSIFootIkRaycastInterfaceDB = (void *)0x01ECCED8; +const void * RTTI_CachedRaycastData = (void *)0x01ECCF10; +const void * RTTI_BGSFootIkRaycastInterfaceDB = (void *)0x01ECCF38; +const void * RTTI_IGamebryoSequenceGeneratorHolderSingleton = (void *)0x01ECD170; +const void * RTTI_BGSGamebryoSequenceGeneratorHolderSingleton = (void *)0x01ECD1B0; +const void * RTTI_BSSynchronizedClipGenerator__hkbSynchronizedAnimationScene = (void *)0x01ECD460; +const void * RTTI_BGSSynchronizedAnimationInstance = (void *)0x01ECD4B0; +const void * RTTI_BSLimbIKModifierUtilityCastInfo = (void *)0x01ECD588; +const void * RTTI_BSLimbIKModifierUtility = (void *)0x01ECD5F0; +const void * RTTI_IAnimationGraphManagerHolder = (void *)0x01EB1D78; +const void * RTTI_IAnimationGraphManagerLoadingTask = (void *)0x01ECCDD8; +const void * RTTI_SimpleAnimationGraphManagerLoadingTask = (void *)0x01ECD848; +const void * RTTI_SimpleAnimationGraphManagerHolder = (void *)0x01ECD888; +const void * RTTI_WeaponAnimationGraphManagerHolder = (void *)0x01ECD8C0; +const void * RTTI_TailAnimationGraphManagerHolder = (void *)0x01ECD8F8; +const void * RTTI_TESCamera = (void *)0x01EAE120; +const void * RTTI_PlayerInputHandler = (void *)0x01ECDBC0; +const void * RTTI_ThirdPersonState = (void *)0x01ECDBF0; +const void * RTTI_DragonCameraState = (void *)0x01ECDC18; +const void * RTTI_CombatBehaviorTreeRanged = (void *)0x01ECDC40; +const void * RTTI_GRefCountImpl = (void *)0x01ECE5F8; +const void * RTTI_GRefCountImplCore = (void *)0x01ECE620; +const void * RTTI_GFxFunctionHandler = (void *)0x01ECE698; +const void * RTTI_MenuEventHandler = (void *)0x01ECE770; +const void * RTTI_CreationClubMenu = (void *)0x01ECE798; +const void * RTTI_MessageBoxData = (void *)0x01ECE7E0; +const void * RTTI_IMessageBoxCallback = (void *)0x01ECE830; +const void * RTTI_IUIMessageData = (void *)0x01ECE808; +const void * RTTI_CreationClub__AsyncModRequest = (void *)0x01ECE9B8; +const void * RTTI_CreationClub__CreationListRequest = (void *)0x01ECE9F0; +const void * RTTI_CreationClub__BundleChildrenRequest = (void *)0x01ECEA28; +const void * RTTI_CreationClub__CategorySearchRequest = (void *)0x01ECEA68; +const void * RTTI_CreationClub__GetCreationRequest = (void *)0x01ECEAA8; +const void * RTTI_CreationClub__GetIntRequest = (void *)0x01ECEAE0; +const void * RTTI_CreationClub__DownloadImageRequest = (void *)0x01ECEB18; +const void * RTTI_CreationClub__StringStringRequest = (void *)0x01ECEB50; +const void * RTTI_CreationClub__SavedGFxValueRequest = (void *)0x01ECEB88; +const void * RTTI_CreationClub__DownloadCreationRequest = (void *)0x01ECEBC0; +const void * RTTI_CreationClub__CreationChanged_ConfirmResetCallback = (void *)0x01ECEC00; +const void * RTTI_ModManagerMenu = (void *)0x01ECF688; +const void * RTTI_ModManager__AsyncModRequest = (void *)0x01ECF6B0; +const void * RTTI_ModManager__DownloadModRequest = (void *)0x01ECF6E8; +const void * RTTI_ModManager__CategorySearchRequest = (void *)0x01ECF720; +const void * RTTI_ModManager__GetDetailsRequest = (void *)0x01ECF758; +const void * RTTI_ModManager__GetDependencyRequest = (void *)0x01ECF790; +const void * RTTI_ModManager__DownloadImageRequest = (void *)0x01ECF7C8; +const void * RTTI_ModManager__SavedGFxValueRequest = (void *)0x01ECF800; +const void * RTTI_ModManager__GetIntRequest = (void *)0x01ECF838; +const void * RTTI_ModManager__StringStringRequest = (void *)0x01ECF868; +const void * RTTI_ModManager__ReportMod_CategoryCallback = (void *)0x01ECF8F8; +const void * RTTI_ModManager__ReportMod_ConfirmCallback = (void *)0x01ECF938; +const void * RTTI_ModManager__DeleteMod_ConfirmCallback = (void *)0x01ECFA08; +const void * RTTI_ModManager__DeleteLibraryModConfirmCallback = (void *)0x01ECFA50; +const void * RTTI_ModManager__DeleteAllModsConfirmCallback = (void *)0x01ECFA98; +const void * RTTI_ModManager__CloseModManager_ConfirmCallback = (void *)0x01ECFAE0; +const void * RTTI_ModManager__ModsChanged_ConfirmResetCallback = (void *)0x01ECFB30; +const void * RTTI_KinectMenu = (void *)0x01ECFCA8; +const void * RTTI_LoadWaitSpinner = (void *)0x01ECFD50; +const void * RTTI_AbsorbEffect = (void *)0x01ECFD78; +const void * RTTI_AccumulatingValueModifierEffect = (void *)0x01ECFDF8; +const void * RTTI_FindMaxMagnitudeVisitor = (void *)0x01ECFE30; +const void * RTTI_FinishActiveEffectVisitor = (void *)0x01ECFE60; +const void * RTTI_ActiveEffect = (void *)0x01ECFDD0; +const void * RTTI_ActiveEffectReferenceEffectController = (void *)0x01ECFE90; +const void * RTTI_ActiveEffect__ForEachHitEffectVisitor = (void *)0x01ECFED0; +const void * RTTI_ActorMagicCaster = (void *)0x01ECFFD8; +const void * RTTI_BSAttachTechniques__AttachTechniqueInput = (void *)0x01ED0000; +const void * RTTI_RefAttachTechniqueInput = (void *)0x01ED0040; +const void * RTTI_MagicItemDataCollector = (void *)0x01ED0070; +const void * RTTI_BoundItemEffect = (void *)0x01ED0178; +const void * RTTI_MagicTarget__IPostCreationModification = (void *)0x01ED01A0; +const void * RTTI_CloakEffect = (void *)0x01ED01E0; +const void * RTTI_CommandEffect = (void *)0x01ED0248; +const void * RTTI_CommandSummonedEffect = (void *)0x01ED0270; +const void * RTTI_CureEffect = (void *)0x01ED02A0; +const void * RTTI_DarknessEffect = (void *)0x01ED02C8; +const void * RTTI_DetectLifeEffect = (void *)0x01ED02F0; +const void * RTTI_DisarmEffect = (void *)0x01ED0318; +const void * RTTI_DisguiseEffect = (void *)0x01ED0390; +const void * RTTI_DisguiseEffect__DetectionChecker = (void *)0x01ED03B8; +const void * RTTI_DispelEffect = (void *)0x01ED0440; +const void * RTTI_DualValueModifierEffect = (void *)0x01ED04B8; +const void * RTTI_EtherealizationEffect = (void *)0x01ED04E8; +const void * RTTI_GrabActorEffect = (void *)0x01ED0518; +const void * RTTI_VampireLordEffect = (void *)0x01ED0540; +const void * RTTI_ConcussionEffect = (void *)0x01ED0568; +const void * RTTI_GuideEffect = (void *)0x01ED0590; +const void * RTTI_InvisibilityEffect = (void *)0x01ED05B8; +const void * RTTI_LightEffect = (void *)0x01ED05E8; +const void * RTTI_LightEffect__AttachBestLightVisitor = (void *)0x01ED0610; +const void * RTTI_LockEffect = (void *)0x01ED0690; +const void * RTTI_MagicCaster = (void *)0x01EB4788; +const void * RTTI_MagicCaster__PostCreationCallback = (void *)0x01ED06B8; +const void * RTTI_ProcessLists__GetActorsFilter = (void *)0x01ED06F0; +const void * RTTI_ActorTargetCheck = (void *)0x01ED0728; +const void * RTTI_MagicTarget__DispelFromBoundObject = (void *)0x01ED0750; +const void * RTTI_KeywordDispelFunctor = (void *)0x01ED0788; +const void * RTTI_IsSpellTargetFunctor = (void *)0x01ED07B8; +const void * RTTI_IsSpellTypeTargetFunctor = (void *)0x01ED07E8; +const void * RTTI_FindEffectKeywordOnTargetFunctor = (void *)0x01ED0818; +const void * RTTI_StartSpellHelpers__EffectGatherFunctor = (void *)0x01ED0918; +const void * RTTI_StartSpellHelpers__SpellEffectGatherFunctor = (void *)0x01ED0960; +const void * RTTI_StartSpellHelpers__DoneEffectGatherFunctor = (void *)0x01ED09B0; +const void * RTTI_FindActiveEffectByIDFunctor = (void *)0x01ED0A28; +const void * RTTI_EffectsCausingDamageFunctor = (void *)0x01ED0A60; +const void * RTTI_ModelReferenceEffect = (void *)0x01ED0C60; +const void * RTTI_NightEyeEffect = (void *)0x01ED0CB8; +const void * RTTI_ExtraMagicCaster = (void *)0x01ED0CE0; +const void * RTTI_NonActorMagicCaster = (void *)0x01ED0D08; +const void * RTTI_OpenEffect = (void *)0x01ED0D38; +const void * RTTI_ParalysisEffect = (void *)0x01ED0D60; +const void * RTTI_PeakValueModifierEffect = (void *)0x01ED0D88; +const void * RTTI_ReanimateEffect = (void *)0x01ED0DB8; +const void * RTTI_ReferenceEffect = (void *)0x01ED0C90; +const void * RTTI_WeaponEnchantmentController = (void *)0x01ED0E28; +const void * RTTI_ScriptedRefEffect = (void *)0x01ED0E88; +const void * RTTI_ScriptEffect = (void *)0x01ED0E60; +const void * RTTI_BSParticleShaderObjectEmitter = (void *)0x01ED0F00; +const void * RTTI_BSParticleShaderRayEmitter = (void *)0x01ED0F38; +const void * RTTI_BSParticleShaderCollisionEmitter = (void *)0x01ED0F70; +const void * RTTI_BSParticleShaderGeometryEmitter = (void *)0x01ED0FA8; +const void * RTTI_ShaderReferenceEffect = (void *)0x01ED1088; +const void * RTTI_SlowTimeEffect = (void *)0x01ED10B8; +const void * RTTI_SoulTrapEffect = (void *)0x01ED10E0; +const void * RTTI_StaggerEffect = (void *)0x01ED0340; +const void * RTTI_BSPathing__CheckLineOfSightFilter = (void *)0x01ED1160; +const void * RTTI_CheckLineOfSightFilterMisc = (void *)0x01ED1198; +const void * RTTI_SummonPlacementEffect = (void *)0x01ED11D0; +const void * RTTI_SummonCreatureEffect = (void *)0x01ED1200; +const void * RTTI_TargetValueModifierEffect = (void *)0x01ED1230; +const void * RTTI_RallyEffect = (void *)0x01ED1260; +const void * RTTI_DemoralizeEffect = (void *)0x01ED1288; +const void * RTTI_TurnUndeadEffect = (void *)0x01ED12B0; +const void * RTTI_BanishEffect = (void *)0x01ED12D8; +const void * RTTI_CalmEffect = (void *)0x01ED1300; +const void * RTTI_FrenzyEffect = (void *)0x01ED1328; +const void * RTTI_TelekinesisEffect = (void *)0x01ED1350; +const void * RTTI_ValueAndConditionsEffect = (void *)0x01ED1378; +const void * RTTI_ValueModifierEffect = (void *)0x01ECFDA0; +const void * RTTI_WerewolfEffect = (void *)0x01ED13A8; +const void * RTTI_WerewolfFeedEffect = (void *)0x01ED13D0; +const void * RTTI_TESAudio__ScriptedMusicState = (void *)0x01ED15C0; +const void * RTTI_BGSPlayerMusicChanger = (void *)0x01ED17F8; +const void * RTTI_MenuTopicManager = (void *)0x01ED18E8; +const void * RTTI_BNETSystem__ModsChanged_ConfirmResetCallback = (void *)0x01ED1BA0; +const void * RTTI_DownloadAll__uiCallback = (void *)0x01ED1F08; +const void * RTTI_JobListManager__ServingThread = (void *)0x01ED1FD0; +const void * RTTI_BGSSaveLoadManager = (void *)0x01ED2278; +const void * RTTI_bgs__saveload__SaveOperationRequest = (void *)0x01ED2378; +const void * RTTI_bgs__saveload__LoadRequest = (void *)0x01ED23E0; +const void * RTTI_bgs__saveload__LoadEntryRequest = (void *)0x01ED2410; +const void * RTTI_BGSSaveLoadManager__Thread = (void *)0x01ED2448; +const void * RTTI_bgs__saveload__Request = (void *)0x01ED23B0; +const void * RTTI_BGSSaveLoadStatsMap = (void *)0x01ED2658; +const void * RTTI_BGSLoadGameBuffer = (void *)0x01EAB9C8; +const void * RTTI_BGSSaveFormBuffer = (void *)0x01ED27A0; +const void * RTTI_BGSSaveGameBuffer = (void *)0x01ED27C8; +const void * RTTI_SaveStorageWrapper = (void *)0x01ED27F0; +const void * RTTI_LoadStorageWrapper = (void *)0x01ED2820; +const void * RTTI_BSResource__CacheDrive__Op = (void *)0x01ED28A0; +const void * RTTI_BGSMoviePlayer = (void *)0x01ED2BA8; +const void * RTTI_IExplosionFactory = (void *)0x01ED2C30; +const void * RTTI_ChainExplosion = (void *)0x01ED2CD0; +const void * RTTI_EnhanceWeaponEffect = (void *)0x01ED2DA0; +const void * RTTI_GarbageCollector = (void *)0x01ED2DD0; +const void * RTTI_IMovementControllerNPCFunctor = (void *)0x01ED2FB0; +const void * RTTI_MovementAvoidBoxEventAdapter = (void *)0x01ED3168; +const void * RTTI_PathManagerPositionPlayerAdapter = (void *)0x01ED31A0; +const void * RTTI_CharacterCollisionMessagePlayerAdapter = (void *)0x01ED31D8; +const void * RTTI_PlayerSleepWaitMovementControllerAdapter = (void *)0x01ED3218; +const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToLoadedSetControllerFunctor = (void *)0x01ED3260; +const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToUnloadedSetControllerFunctor = (void *)0x01ED32D0; +const void * RTTI_DoorObstacleAdapter = (void *)0x01ED3338; +const void * RTTI_SystemEventAdapter = (void *)0x01ED3368; +const void * RTTI_Main = (void *)0x01ED3460; +const void * RTTI_bhkTelekinesisListener = (void *)0x01ED3480; +const void * RTTI_MagicFavorites = (void *)0x01ED3690; +const void * RTTI_BSTreeManager__IQueryCullingCamera = (void *)0x01ED3868; +const void * RTTI_RegSettingCollection = (void *)0x01ED38A0; +const void * RTTI_BGSImpactManager = (void *)0x01ED38D0; +const void * RTTI_InitTESThread = (void *)0x01ED3E28; +const void * RTTI_DetectSignOut = (void *)0x01ED3E50; +const void * RTTI_IMemoryManagerFileFactory = (void *)0x01ED3E78; +const void * RTTI_IMemoryManagerFile = (void *)0x01ED3F40; +const void * RTTI_MemoryManagerFile = (void *)0x01ED3F70; +const void * RTTI_SceneGraph = (void *)0x01ED4038; +const void * RTTI_SeenData = (void *)0x01EB1160; +const void * RTTI_IntSeenData = (void *)0x01EB1180; +const void * RTTI_SpawnHazardEffect = (void *)0x01ED4088; +const void * RTTI_BSUIMessageData = (void *)0x01ED40B0; +const void * RTTI_hkpWorldPostSimulationListener = (void *)0x01ED57A0; +const void * RTTI_IMovementState = (void *)0x01ED5828; +const void * RTTI_IPostAnimationChannelUpdateFunctor = (void *)0x01ED5880; +const void * RTTI_IAnimationSetCallbackFunctor = (void *)0x01ED5948; +const void * RTTI_Actor = (void *)0x01EAB7F8; +const void * RTTI_PackageList__IPackageVisitor = (void *)0x01ED59D0; +const void * RTTI_ProcessCallbackAdapter = (void *)0x01ED61D0; +const void * RTTI_SaveLoadMagicCasterVisitor = (void *)0x01ED6258; +const void * RTTI_SaveGameMagicCasterVisitor = (void *)0x01ED6290; +const void * RTTI_LoadGameMagicCasterVisitor = (void *)0x01ED62C8; +const void * RTTI_RevertSelectedSpellFunctor = (void *)0x01ED6300; +const void * RTTI_HoldWardSpellsActiveEffectVisitor = (void *)0x01ED6AA0; +const void * RTTI_hkpAllCdBodyPairCollector = (void *)0x01ED6AD8; +const void * RTTI_bhkFilteredCdBodyCollector = (void *)0x01ED6B08; +const void * RTTI_Actor__ForEachSpellVisitor = (void *)0x01ED6B40; +const void * RTTI_InventoryChanges__FindBestSoulGemVisitor = (void *)0x01ED6B70; +const void * RTTI_HasSpellVisitor = (void *)0x01ED6C78; +const void * RTTI_SumHostileEffectsFunctor = (void *)0x01ED6CA0; +const void * RTTI_ActorMediator = (void *)0x01ED6DC8; +const void * RTTI_IMovementInterface = (void *)0x01ED5850; +const void * RTTI_ActorState = (void *)0x01ED59A8; +const void * RTTI_BGSVisitProceduresProcess = (void *)0x01ED6FC0; +const void * RTTI_BGSVisitProceduresInitActorAnimPose = (void *)0x01ED6FF0; +const void * RTTI_DetectionListener = (void *)0x01ED0368; +const void * RTTI_InstantInteractionCallback = (void *)0x01ED70B8; +const void * RTTI_RunActionAnimationLoadedCallback = (void *)0x01ED70F0; +const void * RTTI_BGSPerk__FindPerkInRanksVisitor = (void *)0x01ED71B8; +const void * RTTI_BGSPerk__ApplyPerksVisitor = (void *)0x01ED71F0; +const void * RTTI_WeaponAnimationLoadedCallback = (void *)0x01ED7220; +const void * RTTI_BSDoorHavokController = (void *)0x01ED7298; +const void * RTTI_BSPlayerDistanceCheckController = (void *)0x01ED72C8; +const void * RTTI_BSSimpleScaleController = (void *)0x01ED7300; +const void * RTTI_Character = (void *)0x01ED0420; +const void * RTTI_HighActorCuller = (void *)0x01ED73E8; +const void * RTTI_MountInteraction = (void *)0x01ED75D8; +const void * RTTI_BGSPerk__AddPerkVisitor = (void *)0x01ED76F0; +const void * RTTI_bhkMouseSpringAction = (void *)0x01ED7720; +const void * RTTI_PlayerCharacter = (void *)0x01ED77C8; +const void * RTTI_IAllowEGMCacheClear = (void *)0x01ED7930; +const void * RTTI_hkpFirstCdBodyPairCollector = (void *)0x01ED79A8; +const void * RTTI_TargetLock__SetTargetLockFilter = (void *)0x01ED7A20; +const void * RTTI_PlayerRegionState = (void *)0x01ED7AA8; +const void * RTTI_IMovementFormIDManager = (void *)0x01ED7C90; +const void * RTTI_ProcessListMovementInterface = (void *)0x01ED7D08; +const void * RTTI_RefrInteraction = (void *)0x01ED7600; +const void * RTTI_SyncQueueObj = (void *)0x01ED7628; +const void * RTTI_MovementParametersFixed = (void *)0x01ED7D80; +const void * RTTI_ActorMover = (void *)0x01ED8240; +const void * RTTI_bhkCharacterCollisionHandler = (void *)0x01ED8268; +const void * RTTI_CharacterCollisionHandler = (void *)0x01ED82F0; +const void * RTTI_IMovementAvoidanceManager = (void *)0x01ED8518; +const void * RTTI_MovementAvoidanceManager = (void *)0x01ED85A0; +const void * RTTI_MovementControllerNPC = (void *)0x01ED87B8; +const void * RTTI_IMovementMessageInterface = (void *)0x01ED8858; +const void * RTTI_IMovementDirectControl = (void *)0x01ED88F0; +const void * RTTI_IMovementPlannerDirectControl = (void *)0x01ED8920; +const void * RTTI_IMovementSelectIdle = (void *)0x01ED88C0; +const void * RTTI_IMovementMotionDrivenControl = (void *)0x01ED8888; +const void * RTTI_BSPathingStreamWrite = (void *)0x01ED8958; +const void * RTTI_BSPathingStreamSimpleBufferWrite = (void *)0x01ED89E8; +const void * RTTI_MovementHandlerAgentDirectControl = (void *)0x01ED8DC8; +const void * RTTI_IMovementSetPlayerControls = (void *)0x01ED90B0; +const void * RTTI_MovementHandlerAgentPlayerControls = (void *)0x01ED90E8; +const void * RTTI_MovementHandlerAgentPlayerControlsActionTrigger = (void *)0x01ED9390; +const void * RTTI_IMovementSetSprinting = (void *)0x01ED9618; +const void * RTTI_MovementHandlerAgentSprintActionTrigger = (void *)0x01ED9648; +const void * RTTI_MovementHandlerAgentStairsHelper = (void *)0x01ED98B0; +const void * RTTI_MovementMessage = (void *)0x01ED9B60; +const void * RTTI_MovementMessageActorCollision = (void *)0x01ED9B88; +const void * RTTI_MovementMessageMovementTypeChange = (void *)0x01ED9E28; +const void * RTTI_MovementPlannerAgentDirectControl = (void *)0x01EDA080; +const void * RTTI_MovementPlannerAgentHorseControls = (void *)0x01EDA340; +const void * RTTI_IMovementSetKeepOffsetFromActor = (void *)0x01EDA590; +const void * RTTI_MovementPlannerAgentKeepOffset = (void *)0x01EDA5C8; +const void * RTTI_IMovementSetWarp = (void *)0x01EDA808; +const void * RTTI_MovementPlannerAgentWarp = (void *)0x01EDA830; +const void * RTTI_MovementTweenerAgentAnimationDriven = (void *)0x01EDAA88; +const void * RTTI_ITweenerNodeFollowerSetup = (void *)0x01EDAD50; +const void * RTTI_MovementTweenerAgentNodeFollower = (void *)0x01EDAD80; +const void * RTTI_PathingStreamLoadGame = (void *)0x01EDADB8; +const void * RTTI_PathingStreamSaveGame = (void *)0x01EDADE8; +const void * RTTI_InputEvent = (void *)0x01EDAE18; +const void * RTTI_ButtonEvent = (void *)0x01EDAE40; +const void * RTTI_HeldStateHandler = (void *)0x01EDAE88; +const void * RTTI_PlayerControls = (void *)0x01EDAEB0; +const void * RTTI_MovementHandler = (void *)0x01EDB0C8; +const void * RTTI_LookHandler = (void *)0x01EDB0F0; +const void * RTTI_SprintHandler = (void *)0x01EDB118; +const void * RTTI_ReadyWeaponHandler = (void *)0x01EDB140; +const void * RTTI_AutoMoveHandler = (void *)0x01EDB170; +const void * RTTI_ToggleRunHandler = (void *)0x01EDB198; +const void * RTTI_ActivateHandler = (void *)0x01EDB1C0; +const void * RTTI_JumpHandler = (void *)0x01EDB1E8; +const void * RTTI_ShoutHandler = (void *)0x01EDB210; +const void * RTTI_AttackBlockHandler = (void *)0x01EDB238; +const void * RTTI_RunHandler = (void *)0x01EDB268; +const void * RTTI_SneakHandler = (void *)0x01EDB290; +const void * RTTI_TogglePOVHandler = (void *)0x01EDB2B8; +const void * RTTI_IDEvent = (void *)0x01EDAE68; +const void * RTTI_IStaticAvoidNodeManager = (void *)0x01EDB2E0; +const void * RTTI_StaticAvoidNodeManager = (void *)0x01EDB358; +const void * RTTI_AlarmPackage = (void *)0x01ED6F98; +const void * RTTI_CustomActorPackageData = (void *)0x01EDB570; +const void * RTTI_EscortActorPackageData = (void *)0x01EDB5A0; +const void * RTTI_FleePackage = (void *)0x01ED5980; +const void * RTTI_GuardActorPackageData = (void *)0x01EDB5D0; +const void * RTTI_GuardPackageData = (void *)0x01EDB600; +const void * RTTI_PatrolActorPackageData = (void *)0x01EDB628; +const void * RTTI_SandBoxActorPackageData = (void *)0x01EDB658; +const void * RTTI_SpectatorPackage = (void *)0x01EDB688; +const void * RTTI_TrespassPackage = (void *)0x01EDB6B0; +const void * RTTI_ActorKnowledge = (void *)0x01EDB6D8; +const void * RTTI_DetectionCollector = (void *)0x01ED03F0; +const void * RTTI_DetectionState = (void *)0x01EDB700; +const void * RTTI_WeaponRightSwingHandler = (void *)0x01EDB828; +const void * RTTI_WeaponLeftSwingHandler = (void *)0x01EDB858; +const void * RTTI_AttackWinStartHandler = (void *)0x01EDB888; +const void * RTTI_AttackWinEndHandler = (void *)0x01EDB8B8; +const void * RTTI_AttackStopHandler = (void *)0x01EDB8E8; +const void * RTTI_RecoilStopHandler = (void *)0x01EDB910; +const void * RTTI_LeftHandSpellFireHandler = (void *)0x01EDB938; +const void * RTTI_RightHandSpellFireHandler = (void *)0x01EDB968; +const void * RTTI_VoiceSpellFireHandler = (void *)0x01EDB998; +const void * RTTI_LeftHandSpellCastHandler = (void *)0x01EDB9C8; +const void * RTTI_RightHandSpellCastHandler = (void *)0x01EDB9F8; +const void * RTTI_VoiceSpellCastHandler = (void *)0x01EDBA28; +const void * RTTI_WeaponBeginDrawRightHandler = (void *)0x01EDBA58; +const void * RTTI_WeaponBeginSheatheRightHandler = (void *)0x01EDBA90; +const void * RTTI_RightHandWeaponDrawHandler = (void *)0x01EDBAC8; +const void * RTTI_RightHandWeaponSheatheHandler = (void *)0x01EDBB00; +const void * RTTI_CameraOverrideStartHandler = (void *)0x01EDBB38; +const void * RTTI_CameraOverrideStopHandler = (void *)0x01EDBB70; +const void * RTTI_HitFrameHandler = (void *)0x01EDBBA0; +const void * RTTI_AnticipateAttackHandler = (void *)0x01EDBBC8; +const void * RTTI_StaggeredStopHandler = (void *)0x01EDBBF8; +const void * RTTI_ChairEnterHandler = (void *)0x01EDBC28; +const void * RTTI_PlayerChairEnterHandler = (void *)0x01EDBC50; +const void * RTTI_BedEnterHandler = (void *)0x01EDBC80; +const void * RTTI_PlayerBedEnterHandler = (void *)0x01EDBCA8; +const void * RTTI_ChairFurnitureExitHandler = (void *)0x01EDBCD8; +const void * RTTI_BedFurnitureExitHandler = (void *)0x01EDBD08; +const void * RTTI_PlayerFurnitureExitHandler = (void *)0x01EDBD38; +const void * RTTI_KillActorHandler = (void *)0x01EDBD70; +const void * RTTI_DecapitateHandler = (void *)0x01EDBD98; +const void * RTTI_HeadTrackingOnHandler = (void *)0x01EDBDC0; +const void * RTTI_HeadTrackingOffHandler = (void *)0x01EDBDF0; +const void * RTTI_FlightTakeOffHandler = (void *)0x01EDBE20; +const void * RTTI_FlightCruisingHandler = (void *)0x01EDBE50; +const void * RTTI_FlightHoveringHandler = (void *)0x01EDBE80; +const void * RTTI_FlightLandingHandler = (void *)0x01EDBEB0; +const void * RTTI_FlightPerchingHandler = (void *)0x01EDBEE0; +const void * RTTI_FlightLandHandler = (void *)0x01EDBF10; +const void * RTTI_FlightLandEndHandler = (void *)0x01EDBF38; +const void * RTTI_FlightActionHandler = (void *)0x01EDBF68; +const void * RTTI_FlightActionEntryEndHandler = (void *)0x01EDBF98; +const void * RTTI_FlightActionEndHandler = (void *)0x01EDBFD0; +const void * RTTI_FlightActionGrabHandler = (void *)0x01EDC000; +const void * RTTI_FlightActionReleaseHandler = (void *)0x01EDC030; +const void * RTTI_FlightCrashLandStartHandler = (void *)0x01EDC068; +const void * RTTI_BowDrawnHandler = (void *)0x01EDC0A0; +const void * RTTI_BowReleaseHandler = (void *)0x01EDC0C8; +const void * RTTI_ArrowAttachHandler = (void *)0x01EDC0F0; +const void * RTTI_ArrowDetachHandler = (void *)0x01EDC120; +const void * RTTI_ArrowReleaseHandler = (void *)0x01EDC150; +const void * RTTI_BowZoomStartHandler = (void *)0x01EDC180; +const void * RTTI_BowZoomStopHandler = (void *)0x01EDC1B0; +const void * RTTI_InterruptCastHandler = (void *)0x01EDC1E0; +const void * RTTI_EndSummonAnimationHandler = (void *)0x01EDC210; +const void * RTTI_PickNewIdleHandler = (void *)0x01EDC240; +const void * RTTI_DeathStopHandler = (void *)0x01EDC270; +const void * RTTI_ActionActivateDoneHandler = (void *)0x01EDC298; +const void * RTTI_StopMountCameraHandler = (void *)0x01EDC2C8; +const void * RTTI_PairedStopHandler = (void *)0x01EDC2F8; +const void * RTTI_CameraShakeHandler = (void *)0x01EDC320; +const void * RTTI_KillMoveStartHandler = (void *)0x01EDC350; +const void * RTTI_KillMoveEndHandler = (void *)0x01EDC380; +const void * RTTI_DeathEmoteHandler = (void *)0x01EDC3B0; +const void * RTTI_AddRagdollHandler = (void *)0x01EDC3D8; +const void * RTTI_MotionDrivenHandler = (void *)0x01EDC400; +const void * RTTI_AnimationDrivenHandler = (void *)0x01EDC430; +const void * RTTI_AllowRotationHandler = (void *)0x01EDC460; +const void * RTTI_RemoveRagdollHandler = (void *)0x01EDC490; +const void * RTTI_RagdollStartHandler = (void *)0x01EDC4C0; +const void * RTTI_GetUpStartHandler = (void *)0x01EDC4F0; +const void * RTTI_GetUpEndHandler = (void *)0x01EDC518; +const void * RTTI_MountDismountEndHandler = (void *)0x01EDC540; +const void * RTTI_ExitCartBeginHandler = (void *)0x01EDC570; +const void * RTTI_ExitCartEndHandler = (void *)0x01EDC5A0; +const void * RTTI_NPCAttachHandler = (void *)0x01EDC5D0; +const void * RTTI_NPCDetachHandler = (void *)0x01EDC5F8; +const void * RTTI_EnableCharacterBumperHandler = (void *)0x01EDC620; +const void * RTTI_DisableCharacterBumperHandler = (void *)0x01EDC658; +const void * RTTI_AnimationObjectLoadHandler = (void *)0x01EDC690; +const void * RTTI_AnimationObjectDrawHandler = (void *)0x01EDC6C8; +const void * RTTI_EnableCharacterPitchHandler = (void *)0x01EDC700; +const void * RTTI_DisableCharacterPitchHandler = (void *)0x01EDC738; +const void * RTTI_JumpAnimEventHandler = (void *)0x01EDC770; +const void * RTTI_IdleDialogueEnterHandler = (void *)0x01EDC7A0; +const void * RTTI_IdleDialogueExitHandler = (void *)0x01EDC7D0; +const void * RTTI_AnimatedCameraStartHandler = (void *)0x01EDC800; +const void * RTTI_AnimatedCameraDeltaStartHandler = (void *)0x01EDC838; +const void * RTTI_AnimatedCameraEndHandler = (void *)0x01EDC870; +const void * RTTI_PitchOverrideStartHandler = (void *)0x01EDC8A0; +const void * RTTI_PitchOverrideEndHandler = (void *)0x01EDC8D0; +const void * RTTI_MTStateHandler = (void *)0x01EDC900; +const void * RTTI_ZeroPitchHandler = (void *)0x01EDC928; +const void * RTTI_VampireFeedEndHandler = (void *)0x01EDC950; +const void * RTTI_BGShkMatFadeController = (void *)0x01EEA1B0; +const void * RTTI_BSDirectAtModifierInterface = (void *)0x01EEA3B8; +const void * RTTI_BSPassByTargetTriggerModifierInterface = (void *)0x01EEA628; +const void * RTTI_BSRagdollContactListenerModifierInterface = (void *)0x01EEA950; +const void * RTTI_ArrowProjectile = (void *)0x01EEAC98; +const void * RTTI_BarrierPhantomCallbackShape = (void *)0x01EEACE8; +const void * RTTI_BarrierProjectile = (void *)0x01EEAD20; +const void * RTTI_bhkSPCollisionObject = (void *)0x01EEAD48; +const void * RTTI_BeamProjectile = (void *)0x01EEAD78; +const void * RTTI_ConeProjectile = (void *)0x01EEAE28; +const void * RTTI_Explosion = (void *)0x01ED2CF8; +const void * RTTI_hkpFixedBufferCdPointCollector = (void *)0x01EEAE98; +const void * RTTI_FlameProjectile = (void *)0x01EEAED0; +const void * RTTI_GrenadeProjectile = (void *)0x01EEAEF8; +const void * RTTI_Hazard = (void *)0x01EEAF20; +const void * RTTI_MissileProjectile = (void *)0x01EEACC0; +const void * RTTI_hkHingeConstraintCinfo = (void *)0x01EEAF40; +const void * RTTI_bhkHingeConstraint = (void *)0x01EEAF70; +const void * RTTI_Projectile = (void *)0x01ED2CA8; +const void * RTTI_ProjectilePickCache = (void *)0x01EEAFA0; +const void * RTTI_HealthDamageFunctor = (void *)0x01EEAFD0; +const void * RTTI_VATS__ICommandListVisitor = (void *)0x01EEB000; +const void * RTTI_CombatAimController = (void *)0x01EEB030; +const void * RTTI_CombatTrackTargetAimController = (void *)0x01EEB0B8; +const void * RTTI_CombatMeleeAimController = (void *)0x01EEB0F0; +const void * RTTI_CombatProjectileAimController = (void *)0x01EEB120; +const void * RTTI_CombatDisableAimController = (void *)0x01EEB158; +const void * RTTI_CombatObject = (void *)0x01EEB090; +const void * RTTI_CombatAimControllerBase = (void *)0x01EEB060; +const void * RTTI_CombatArea = (void *)0x01EEBB38; +const void * RTTI_CombatAreaRadius = (void *)0x01EEBB60; +const void * RTTI_CombatAreaReference = (void *)0x01EEBB88; +const void * RTTI_CombatAreaStandard = (void *)0x01EEBBB8; +const void * RTTI_CombatAreaHoldPosition = (void *)0x01EEBBE8; +const void * RTTI_CombatBlackboardKeyBase = (void *)0x01EEC328; +const void * RTTI_CombatCoverSearchResult = (void *)0x01EEC358; +const void * RTTI_CombatCoverLocation = (void *)0x01EEC388; +const void * RTTI_CombatCoverSearchDebugData = (void *)0x01EEC3B8; +const void * RTTI_CombatCoverSearch = (void *)0x01EEC3F0; +const void * RTTI_CombatGroupDetectionListener = (void *)0x01EECB48; +const void * RTTI_GatherSpellsFunctor = (void *)0x01EECB80; +const void * RTTI_CombatInventoryItem = (void *)0x01EECCF8; +const void * RTTI_CombatInventoryItemComposite = (void *)0x01EECD28; +const void * RTTI_CombatInventoryItemMelee = (void *)0x01EECD60; +const void * RTTI_CombatInventoryItemRanged = (void *)0x01EECD90; +const void * RTTI_CombatInventoryItemShield = (void *)0x01EECDC0; +const void * RTTI_CombatInventoryItemOneHandedBlock = (void *)0x01EECDF0; +const void * RTTI_CombatInventoryItemTorch = (void *)0x01EECE28; +const void * RTTI_CombatInventoryItemMagic = (void *)0x01EED7D8; +const void * RTTI_CombatInventoryItemShout = (void *)0x01EF8010; +const void * RTTI_CombatInventoryItemStaff = (void *)0x01EF8040; +const void * RTTI_CombatInventoryItemPotion = (void *)0x01EF8070; +const void * RTTI_CombatInventoryItemScroll = (void *)0x01EF80A0; +const void * RTTI_CombatMagicCasterOffensive = (void *)0x01EF80D0; +const void * RTTI_CombatMagicCasterWard = (void *)0x01EF8108; +const void * RTTI_CombatMagicCasterRestore = (void *)0x01EF8138; +const void * RTTI_CombatMagicCasterSummon = (void *)0x01EF8168; +const void * RTTI_CombatMagicCasterStagger = (void *)0x01EF8198; +const void * RTTI_CombatMagicCasterDisarm = (void *)0x01EF81C8; +const void * RTTI_CombatMagicCasterCloak = (void *)0x01EF81F8; +const void * RTTI_CombatMagicCasterLight = (void *)0x01EF8228; +const void * RTTI_CombatMagicCasterInvisibility = (void *)0x01EF8258; +const void * RTTI_CombatMagicCasterBoundItem = (void *)0x01EF8290; +const void * RTTI_CombatMagicCasterArmor = (void *)0x01EF82C8; +const void * RTTI_CombatMagicCasterTargetEffect = (void *)0x01EF82F8; +const void * RTTI_CombatMagicCasterParalyze = (void *)0x01EF8330; +const void * RTTI_CombatMagicCasterScript = (void *)0x01EF8360; +const void * RTTI_CombatMagicCaster = (void *)0x01EF7FE8; +const void * RTTI_CombatMagicItemData = (void *)0x01EFEEB0; +const void * RTTI_CombatMagicItemSkillChecker = (void *)0x01EFEEE0; +const void * RTTI_CombatMagicCasterReanimate = (void *)0x01EFEF18; +const void * RTTI_CombatPathingRequest = (void *)0x01EFF070; +const void * RTTI_CombatTargetLocationSearchResult = (void *)0x01EFF0A0; +const void * RTTI_CombatTargetLocation = (void *)0x01EFF0D8; +const void * RTTI_CombatTargetLocationSearch = (void *)0x01EFF108; +const void * RTTI_CombatPath = (void *)0x01EFF140; +const void * RTTI_CombatTargetSelector = (void *)0x01F005F0; +const void * RTTI_CombatTargetSelectorStandard = (void *)0x01F00620; +const void * RTTI_CombatTargetSelectorFixed = (void *)0x01F00658; +const void * RTTI_CombatThreat = (void *)0x01F00A58; +const void * RTTI_hkpClosestCdPointCollector = (void *)0x01F00C30; +const void * RTTI_CombatBehaviorResource = (void *)0x01F00D18; +const void * RTTI_CombatBehaviorTreeRootNode = (void *)0x01F00D48; +const void * RTTI_CombatBehaviorTreeLinkNode = (void *)0x01F00D80; +const void * RTTI_CombatBehaviorTree = (void *)0x01ECDC70; +const void * RTTI_CombatBehaviorTreeCombat = (void *)0x01F00DB8; +const void * RTTI_CombatBehaviorTreeNode = (void *)0x01ECDCA0; +const void * RTTI_CombatBehaviorTreeAcquireWeapon = (void *)0x01F00E98; +const void * RTTI_CombatBehaviorTreeAction = (void *)0x01F01658; +const void * RTTI_CombatBehaviorTreeActionEquipmentSelector = (void *)0x01F01690; +const void * RTTI_CombatBehaviorTreeWrapperNode = (void *)0x01F016D0; +const void * RTTI_CombatBehaviorTreeDodgeThreat = (void *)0x01F02238; +const void * RTTI_CombatBehaviorTreeBlock = (void *)0x01F024A8; +const void * RTTI_CombatBehaviorTreeCloseMovement = (void *)0x01F02958; +const void * RTTI_CombatPathSpeedController = (void *)0x01F02990; +const void * RTTI_CombatApproachTargetSpeedController = (void *)0x01F029C0; +const void * RTTI_CombatBehaviorTreeFindAttackLocation = (void *)0x01F03AD0; +const void * RTTI_CombatBehaviorTreeFlankingMovement = (void *)0x01F04C10; +const void * RTTI_CombatFlankingSearchData = (void *)0x01F04C50; +const void * RTTI_CombatBehaviorTreeFlee = (void *)0x01F06C00; +const void * RTTI_CombatBehaviorTreeHide = (void *)0x01F081C0; +const void * RTTI_CombatBehaviorTreeFlight = (void *)0x01F08FA0; +const void * RTTI_DiveBombSpeedController = (void *)0x01F08FD0; +const void * RTTI_CombatBehaviorTreeLowCombat = (void *)0x01F0A0F0; +const void * RTTI_CombatBehaviorTreeMagic = (void *)0x01F0A630; +const void * RTTI_CombatBehaviorTreeMelee = (void *)0x01F0ACC0; +const void * RTTI_CombatDisableActionController = (void *)0x01F0AFB8; +const void * RTTI_CombatBehaviorTreeCheckUnreachableTarget = (void *)0x01F0AFF0; +const void * RTTI_CombatBehaviorTreeReturnToCombatArea = (void *)0x01F0B030; +const void * RTTI_CombatBehaviorTreeExitWater = (void *)0x01F0BBE0; +const void * RTTI_CombatBehaviorTreeMovement = (void *)0x01F0CDC8; +const void * RTTI_CombatBehaviorTreeRangedMovement = (void *)0x01F0D4A0; +const void * RTTI_CombatBehaviorTreeSearch = (void *)0x01F0D878; +const void * RTTI_CombatSearchLockData = (void *)0x01F0E360; +const void * RTTI_CombatBehaviorTreeShout = (void *)0x01F0FA88; +const void * RTTI_CombatBehaviorTreeUseCover = (void *)0x01F0FDA0; +const void * RTTI_CombatBehaviorTreeUsePotion = (void *)0x01F10E00; +const void * RTTI_IPathBuilder = (void *)0x01EFF168; +const void * RTTI_CombatNavmeshSearch = (void *)0x01F003F8; +const void * RTTI_CombatPathBuilder = (void *)0x01F00330; +const void * RTTI_CombatPathBuilderStandard = (void *)0x01F00300; +const void * RTTI_CombatPathBuilderOpen = (void *)0x01F039F0; +const void * RTTI_CombatPathingRequestStandard = (void *)0x01F11098; +const void * RTTI_CombatPathingRequestAdapter = (void *)0x01F110D0; +const void * RTTI_CombatPathingRequestMultiGoal = (void *)0x01F11108; +const void * RTTI_CombatPathingDebugData = (void *)0x01F11A98; +const void * RTTI_HorseCameraState = (void *)0x01F155F0; +const void * RTTI_FirstPersonState = (void *)0x01F15618; +const void * RTTI_PlayerCamera = (void *)0x01F15640; +const void * RTTI_AutoVanityState = (void *)0x01F15868; +const void * RTTI_FreeCameraState = (void *)0x01F15890; +const void * RTTI_IronSightsState = (void *)0x01F158B8; +const void * RTTI_FurnitureCameraState = (void *)0x01F158E0; +const void * RTTI_PlayerCameraTransitionState = (void *)0x01F15910; +const void * RTTI_BleedoutCameraState = (void *)0x01F15948; +const void * RTTI_TweenMenuCameraState = (void *)0x01F15978; +const void * RTTI_VATSCameraState = (void *)0x01F159A8; +const void * RTTI_FxResponseArgsBase = (void *)0x01F159D0; +const void * RTTI_FxResponseArgsList = (void *)0x01F15A00; +const void * RTTI_StandardItemData = (void *)0x01F15A30; +const void * RTTI_BarterMenu = (void *)0x01F15A58; +const void * RTTI_BookMenu = (void *)0x01F15B40; +const void * RTTI_IStringForwarder = (void *)0x01F15B60; +const void * RTTI_Console = (void *)0x01F15B88; +const void * RTTI_ConsoleNativeUIMenu = (void *)0x01F15BE0; +const void * RTTI_ContainerMenu = (void *)0x01F15C10; +const void * RTTI_FxDelegateHandler = (void *)0x01ECE708; +const void * RTTI_CraftingSubMenus__CraftingSubMenu = (void *)0x01F15C38; +const void * RTTI_CraftingMenu = (void *)0x01F15C70; +const void * RTTI_CraftingSubMenus__ConstructibleObjectMenu = (void *)0x01F15C98; +const void * RTTI_CraftingSubMenus__ConstructibleObjectMenu__CreationConfirmCallback = (void *)0x01F15CE0; +const void * RTTI_CraftingSubMenus__SmithingMenu = (void *)0x01F15D38; +const void * RTTI_CraftingSubMenus__SmithingMenu__SmithingConfirmCallback = (void *)0x01F15D70; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu = (void *)0x01F15DC0; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCallback = (void *)0x01F15E00; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuExitCallback = (void *)0x01F15E50; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCraftCallback = (void *)0x01F15EB0; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuDisenchantCallback = (void *)0x01F15F10; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__CategoryListEntry = (void *)0x01F15F70; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__ItemChangeEntry = (void *)0x01F15FC0; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantmentEntry = (void *)0x01F16010; +const void * RTTI_CraftingSubMenus__EnchantConstructMenu__CreateEffectFunctor = (void *)0x01F16060; +const void * RTTI_CraftingSubMenus__AlchemyMenu = (void *)0x01F160B0; +const void * RTTI_CraftingSubMenus__AlchemyMenu__CraftItemCallback = (void *)0x01F160F0; +const void * RTTI_CraftingSubMenus__AlchemyMenu__QuitMenuCallback = (void *)0x01F16140; +const void * RTTI_CraftingSubMenus__AlchemyMenu__ModEffectivenessFunctor = (void *)0x01F16190; +const void * RTTI_CreditsMenu = (void *)0x01F16238; +const void * RTTI_CursorMenu = (void *)0x01F16260; +const void * RTTI_DialogueMenu = (void *)0x01F16288; +const void * RTTI_FaderMenu = (void *)0x01F162B0; +const void * RTTI_FavoritesMenu = (void *)0x01F162D0; +const void * RTTI_GiftMenu = (void *)0x01F162F8; +const void * RTTI_HUDObject = (void *)0x01F16358; +const void * RTTI_HUDMeter = (void *)0x01F16378; +const void * RTTI_HUDMenu = (void *)0x01F16398; +const void * RTTI_HUDNotifications = (void *)0x01F163B8; +const void * RTTI_ActorValueMeter = (void *)0x01F163E0; +const void * RTTI_ShoutMeter = (void *)0x01F16408; +const void * RTTI_HUDChargeMeter = (void *)0x01F16430; +const void * RTTI_Compass = (void *)0x01F16458; +const void * RTTI_EnemyHealth = (void *)0x01F16478; +const void * RTTI_FloatingQuestMarker = (void *)0x01F164A0; +const void * RTTI_StealthMeter = (void *)0x01F164D0; +const void * RTTI_HelpMessageManager = (void *)0x01F164F8; +const void * RTTI_NewInventoryMenuItemLoadTask = (void *)0x01F166F0; +const void * RTTI_Inventory3DManager = (void *)0x01F16728; +const void * RTTI_InventoryMenu = (void *)0x01F169C8; +const void * RTTI_LevelUpMenu = (void *)0x01F16A38; +const void * RTTI_LoadingMenu = (void *)0x01F16AA8; +const void * RTTI_LockpickingMenu = (void *)0x01F16B00; +const void * RTTI_MagicItemData = (void *)0x01F16B58; +const void * RTTI_MagicMenu = (void *)0x01F16B80; +const void * RTTI_MainMenu = (void *)0x01F16D50; +const void * RTTI_DLCPurchased__OpenVisitCreationClubCallback = (void *)0x01F16DF0; +const void * RTTI_DLCPurchased__PurchasedDLCDialogCallback = (void *)0x01F16E38; +const void * RTTI_NeedToUpdateCreationClubCallback = (void *)0x01F16E78; +const void * RTTI_MenuControls = (void *)0x01F16FC8; +const void * RTTI_ClickHandler = (void *)0x01F17188; +const void * RTTI_DirectionHandler = (void *)0x01F171B0; +const void * RTTI_ConsoleOpenHandler = (void *)0x01F171D8; +const void * RTTI_QuickSaveLoadHandler = (void *)0x01F17208; +const void * RTTI_MenuOpenHandler = (void *)0x01F17238; +const void * RTTI_FavoritesHandler = (void *)0x01F17260; +const void * RTTI_ScreenshotHandler = (void *)0x01F17288; +const void * RTTI_MessageBoxMenu = (void *)0x01F172B0; +const void * RTTI_MistMenu = (void *)0x01F17318; +const void * RTTI_ThumbstickEvent = (void *)0x01F17338; +const void * RTTI_RaceSexCamera = (void *)0x01F17360; +const void * RTTI_RaceSexMenu = (void *)0x01F17388; +const void * RTTI_SafeZoneMenu = (void *)0x01F174C0; +const void * RTTI_SleepWaitMenu = (void *)0x01F174E8; +const void * RTTI_StatsNode = (void *)0x01F17510; +const void * RTTI_StatsMenu = (void *)0x01F17530; +const void * RTTI_LineNode = (void *)0x01F17550; +const void * RTTI_StreamingInstallMenu = (void *)0x01F17770; +const void * RTTI_TitleSequenceMenu = (void *)0x01F177A0; +const void * RTTI_TrainingMenu = (void *)0x01F177C8; +const void * RTTI_TutorialMenu = (void *)0x01F177F0; +const void * RTTI_TweenMenu = (void *)0x01F17818; +const void * RTTI_UIBlurManager = (void *)0x01F17838; +const void * RTTI_HUDData = (void *)0x01F17A08; +const void * RTTI_ConsoleData = (void *)0x01F17A28; +const void * RTTI_FaderData = (void *)0x01F17A50; +const void * RTTI_InventoryUpdateData = (void *)0x01F17A70; +const void * RTTI_RefHandleUIData = (void *)0x01F17AA0; +const void * RTTI_TESFormUIData = (void *)0x01F17AC8; +const void * RTTI_LoadingMenuData = (void *)0x01F17AF0; +const void * RTTI_KinectStateChangeData = (void *)0x01F17B18; +const void * RTTI_KinectUserEventData = (void *)0x01F17B48; +const void * RTTI_UISaveLoadManager = (void *)0x01F18B38; +const void * RTTI_bgs__saveload__BuildSaveListRequest = (void *)0x01F18D20; +const void * RTTI_LocalMapMenu__InputHandler = (void *)0x01F18D90; +const void * RTTI_TransitionState = (void *)0x01F18E10; +const void * RTTI_MapCameraStates__Exit = (void *)0x01F18E38; +const void * RTTI_MapCameraStates__Transition = (void *)0x01F18E68; +const void * RTTI_IMapCameraCallbacks = (void *)0x01F18EA0; +const void * RTTI_MapCamera = (void *)0x01F18ED0; +const void * RTTI_MapCameraStates__World = (void *)0x01F18F88; +const void * RTTI_MapMenu = (void *)0x01F18FB8; +const void * RTTI_MapInputHandler = (void *)0x01F18FD8; +const void * RTTI_MapLookHandler = (void *)0x01F19000; +const void * RTTI_MapMoveHandler = (void *)0x01F19028; +const void * RTTI_MapZoomHandler = (void *)0x01F19050; +const void * RTTI_JournalTab = (void *)0x01F19148; +const void * RTTI_Journal_QuestsTab = (void *)0x01F19170; +const void * RTTI_ModManagerData = (void *)0x01F19468; +const void * RTTI_Journal_SystemTab = (void *)0x01F19490; +const void * RTTI_JournalInputMapping__RemapHandler = (void *)0x01F194F8; +const void * RTTI_Journal_StatsTab = (void *)0x01F19530; +const void * RTTI_JournalMenu = (void *)0x01F19558; +const void * RTTI_SkyrimScript__Internal__CallbackList = (void *)0x01F195B8; +const void * RTTI_SkyrimScript__Internal__AnimationCallbacks = (void *)0x01F195F8; +const void * RTTI_SkyrimScript__DelayFunctor = (void *)0x01F19638; +const void * RTTI_SkyrimScript__DelayFunctorFactory = (void *)0x01F19668; +const void * RTTI_SkyrimScript__Logger = (void *)0x01F19788; +const void * RTTI_SkyrimScript__PathingCallbackMgr = (void *)0x01F198C8; +const void * RTTI_SkyrimScript__Internal__IProfileCallQuery = (void *)0x01F19B78; +const void * RTTI_SkyrimScript__Profiler = (void *)0x01F19BB8; +const void * RTTI_SkyrimScript__QuestCallbackMgr = (void *)0x01F19CD0; +const void * RTTI_SkyrimScript__SavePatcher = (void *)0x01F19F18; +const void * RTTI_SkyrimScript__SoundCallbackMgr = (void *)0x01F19F80; +const void * RTTI_BSScript__IStore = (void *)0x01F1A1C8; +const void * RTTI_SkyrimScript__Store = (void *)0x01F1A1F0; +const void * RTTI_BSResource__ArchiveFoundStreamCB = (void *)0x01F1B600; +const void * RTTI_BSCounterStorage = (void *)0x01F1B690; +const void * RTTI_BSScript__IObjectHandlePolicy = (void *)0x01F1B6B8; +const void * RTTI_BSScript__IStackCallbackSaveInterface = (void *)0x01F1B6F0; +const void * RTTI_BSScript__IStackCallbackFunctor = (void *)0x01F1B730; +const void * RTTI_BSScript__IProfilePolicy = (void *)0x01F19B48; +const void * RTTI_BSScript__ILoader = (void *)0x01F1B768; +const void * RTTI_BSScript__ObjectBindPolicy = (void *)0x01F1B790; +const void * RTTI_BSScript__IFreezeQuery = (void *)0x01F1B7C0; +const void * RTTI_BSScript__ISavePatcherInterface = (void *)0x01F19F48; +const void * RTTI_SkyrimScript__HandlePolicy = (void *)0x01F1C2F8; +const void * RTTI_SkyrimScript__SaveFileHandleReaderWriter = (void *)0x01F1C328; +const void * RTTI_SkyrimScript__ObjectBindPolicy = (void *)0x01F1C368; +const void * RTTI_SkyrimVM = (void *)0x01F1C3A0; +const void * RTTI_SkyrimVM__ISendEventFilter = (void *)0x01F1C598; +const void * RTTI_SkyrimVM__EventRelayFunctor = (void *)0x01F1C5C8; +const void * RTTI_SkyrimVM__EffectEventRelayFunctor = (void *)0x01F1C600; +const void * RTTI_SkyrimVM__SleepStartEventFunctor = (void *)0x01F1C638; +const void * RTTI_SkyrimVM__SleepStopEventFunctor = (void *)0x01F1C670; +const void * RTTI_SkyrimVM__InventoryEventFilter = (void *)0x01F1C960; +const void * RTTI_IGiftMenuScriptCallback = (void *)0x01F1D5F8; +const void * RTTI_SkyrimSpeechRecognition = (void *)0x01F25AF8; +const void * RTTI_hkaFootPlacementIkSolver = (void *)0x01F25E60; +const void * RTTI_hkReferencedObjectLock = (void *)0x01F25E90; +const void * RTTI_hkMemoryAllocator = (void *)0x01F25F00; +const void * RTTI_hkLifoAllocator = (void *)0x01F25F28; +const void * RTTI_hkContainerTempAllocator__Allocator = (void *)0x01F25F50; +const void * RTTI_hkContainerHeapAllocator__Allocator = (void *)0x01F25F90; +const void * RTTI_hkContainerDebugAllocator__Allocator = (void *)0x01F25FD0; +const void * RTTI_hkErrStream = (void *)0x01F26030; +const void * RTTI_hkLocalFrameGroup = (void *)0x01F26058; +const void * RTTI_hkLocalFrame = (void *)0x01F26080; +const void * RTTI_hkSimpleLocalFrame = (void *)0x01F260A8; +const void * RTTI_hkBufferedStreamReader = (void *)0x01F260D8; +const void * RTTI_hkBufferedStreamWriter = (void *)0x01F26108; +const void * RTTI_hkSeekableStreamReader = (void *)0x01F26138; +const void * RTTI_hkStdioStreamReader = (void *)0x01F26168; +const void * RTTI_hkStdioStreamWriter = (void *)0x01F26198; +const void * RTTI_hkOstream = (void *)0x01F26010; +const void * RTTI_hkMemoryTrackStreamWriter = (void *)0x01F261C8; +const void * RTTI_hkArrayStreamWriter = (void *)0x01F261F8; +const void * RTTI_hkStatisticsCollector = (void *)0x01F26228; +const void * RTTI_hkCrc32StreamWriter = (void *)0x01F26258; +const void * RTTI_hkStackTracer = (void *)0x01F262C0; +const void * RTTI_hkDummySingleton = (void *)0x01F26320; +const void * RTTI_hkTrackerSerializableScanSnapshot = (void *)0x01F26380; +const void * RTTI_hkTrackerTypeTreeTextCache = (void *)0x01F263B8; +const void * RTTI_hkMemoryTrackStreamReader = (void *)0x01F263F0; +const void * RTTI_hkOArchive = (void *)0x01F26420; +const void * RTTI_hkDefaultError = (void *)0x01F26448; +const void * RTTI_hkSocket = (void *)0x01F26470; +const void * RTTI_hkSocket__ReaderAdapter = (void *)0x01F26490; +const void * RTTI_hkSocket__WriterAdapter = (void *)0x01F264C0; +const void * RTTI_hkTrackerScanSnapshot = (void *)0x01F264F0; +const void * RTTI_hkBsdSocket = (void *)0x01F26520; +const void * RTTI_hkTrackerTypeTreeCache = (void *)0x01F26548; +const void * RTTI_hkMemoryTracker = (void *)0x01F26578; +const void * RTTI_hkDefaultMemoryTracker = (void *)0x01F265A0; +const void * RTTI_hkMemorySystem = (void *)0x01F265D0; +const void * RTTI_hkDummyMemoryTrackerImpl = (void *)0x01F265F8; +const void * RTTI_hkTrackerArrayLayoutHandler = (void *)0x01F26628; +const void * RTTI_hkTrackerStringPtrLayoutHandler = (void *)0x01F26690; +const void * RTTI_hkTrackerCachedHashMapLayoutHandler = (void *)0x01F266C8; +const void * RTTI_hkTrackerStringMapLayoutHandler = (void *)0x01F26708; +const void * RTTI_hkTrackerTypeLayout = (void *)0x01F26740; +const void * RTTI_hkTrackerLayoutCalculator = (void *)0x01F26770; +const void * RTTI_hkTrackerLayoutHandler = (void *)0x01F26660; +const void * RTTI_hkTrackerRefPtrLayoutHandler = (void *)0x01F267A0; +const void * RTTI_hkbRagdollDriver = (void *)0x01F267D8; +const void * RTTI_hkbNode = (void *)0x01F26800; +const void * RTTI_hkbBindable = (void *)0x01F26820; +const void * RTTI_hkbBehaviorGraph = (void *)0x01F26848; +const void * RTTI_hkbNodeInternalStateInfo = (void *)0x01F26898; +const void * RTTI_hkbGenerator = (void *)0x01F26870; +const void * RTTI_hkbVariableValueSet = (void *)0x01F268C8; +const void * RTTI_hkbBehaviorGraph__GlobalTransitionData = (void *)0x01F268F8; +const void * RTTI_hkbFootIkDriver = (void *)0x01F26938; +const void * RTTI_hkbAnimationBindingSet = (void *)0x01F26960; +const void * RTTI_hkbCharacter = (void *)0x01F26990; +const void * RTTI_hkbWorld = (void *)0x01F269B8; +const void * RTTI_hkbSceneModifier = (void *)0x01F269D8; +const void * RTTI_hkbFootIkSceneModifier = (void *)0x01F26A00; +const void * RTTI_hkbHandIkSceneModifier = (void *)0x01F26A30; +const void * RTTI_hkbHandIkFixupSceneModifier = (void *)0x01F26A60; +const void * RTTI_hkbBindableCollector = (void *)0x01F26A98; +const void * RTTI_hkbBindable__CacheBindablesCollector = (void *)0x01F26AC8; +const void * RTTI_hkbNode__BoundVariablesCollector = (void *)0x01F26B08; +const void * RTTI_hkbAttachmentSetup = (void *)0x01F26B40; +const void * RTTI_hkbEventPayload = (void *)0x01F26B70; +const void * RTTI_hkbRealEventPayload = (void *)0x01F26B98; +const void * RTTI_hkbIntEventPayload = (void *)0x01F26BC8; +const void * RTTI_hkbStringEventPayload = (void *)0x01F26BF8; +const void * RTTI_hkbNamedEventPayload = (void *)0x01F26C28; +const void * RTTI_hkbNamedRealEventPayload = (void *)0x01F26C58; +const void * RTTI_hkbNamedIntEventPayload = (void *)0x01F26C88; +const void * RTTI_hkbNamedStringEventPayload = (void *)0x01F26CB8; +const void * RTTI_hkbEventPayloadList = (void *)0x01F26CF0; +const void * RTTI_hkbVariableBindingSet = (void *)0x01F26D20; +const void * RTTI_hkbHandle = (void *)0x01F26D50; +const void * RTTI_hkbHandIkDriverInfo = (void *)0x01F26D70; +const void * RTTI_hkbTransitionEffect = (void *)0x01F26DA0; +const void * RTTI_hkbProjectStringData = (void *)0x01F26DD0; +const void * RTTI_hkbBehaviorGraphInternalState = (void *)0x01F26E00; +const void * RTTI_hkbBehaviorGraphData = (void *)0x01F26E38; +const void * RTTI_hkbStateListener = (void *)0x01F26E68; +const void * RTTI_hkbSequence = (void *)0x01F26E90; +const void * RTTI_hkbBehaviorGraphStringData = (void *)0x01F26EE0; +const void * RTTI_hkbBoneIndexArray = (void *)0x01F26F18; +const void * RTTI_hkbBoneWeightArray = (void *)0x01F26F40; +const void * RTTI_hkbCharacterStringData = (void *)0x01F26F70; +const void * RTTI_hkbFootIkDriverInfo = (void *)0x01F26FA0; +const void * RTTI_hkbMirroredSkeletonInfo = (void *)0x01F26FD0; +const void * RTTI_hkbCondition = (void *)0x01F27000; +const void * RTTI_hkbCompiledExpressionSet = (void *)0x01F27028; +const void * RTTI_hkbExpressionCondition = (void *)0x01F27058; +const void * RTTI_hkbStringCondition = (void *)0x01F27088; +const void * RTTI_hkbBehaviorReferenceGenerator = (void *)0x01F270B8; +const void * RTTI_hkbBlenderGeneratorChild = (void *)0x01F270F0; +const void * RTTI_hkbBlenderGenerator = (void *)0x01F27120; +const void * RTTI_hkbBlenderGeneratorInternalState = (void *)0x01F27150; +const void * RTTI_hkbClipTriggerArray = (void *)0x01F27188; +const void * RTTI_hkbClipGeneratorInternalState = (void *)0x01F271B8; +const void * RTTI_hkbRegisteredGenerator = (void *)0x01F271F0; +const void * RTTI_hkbManualSelectorGenerator = (void *)0x01F27220; +const void * RTTI_hkbManualSelectorGeneratorInternalState = (void *)0x01F27258; +const void * RTTI_hkbModifier = (void *)0x01F26EB8; +const void * RTTI_hkbModifierGenerator = (void *)0x01F27298; +const void * RTTI_hkbPoseMatchingGenerator = (void *)0x01F272C8; +const void * RTTI_hkbPoseMatchingGeneratorInternalState = (void *)0x01F272F8; +const void * RTTI_hkbReferencePoseGenerator = (void *)0x01F27338; +const void * RTTI_hkbAttachmentModifier = (void *)0x01F27368; +const void * RTTI_hkbAttributeModifier = (void *)0x01F27398; +const void * RTTI_hkbCharacterControllerModifier = (void *)0x01F273C8; +const void * RTTI_hkbCharacterControllerModifierInternalState = (void *)0x01F27400; +const void * RTTI_hkbCombineTransformsModifier = (void *)0x01F27448; +const void * RTTI_hkbCombineTransformsModifierInternalState = (void *)0x01F27480; +const void * RTTI_hkbComputeDirectionModifier = (void *)0x01F274C0; +const void * RTTI_hkbComputeDirectionModifierInternalState = (void *)0x01F274F8; +const void * RTTI_hkbComputeRotationFromAxisAngleModifier = (void *)0x01F27538; +const void * RTTI_hkbComputeRotationFromAxisAngleModifierInternalState = (void *)0x01F27580; +const void * RTTI_hkbComputeRotationToTargetModifier = (void *)0x01F275D0; +const void * RTTI_hkbComputeRotationToTargetModifierInternalState = (void *)0x01F27610; +const void * RTTI_hkbDampingModifier = (void *)0x01F27658; +const void * RTTI_hkbDampingModifierInternalState = (void *)0x01F27688; +const void * RTTI_hkbModifierWrapper = (void *)0x01F276C0; +const void * RTTI_hkbDelayedModifier = (void *)0x01F276F0; +const void * RTTI_hkbDelayedModifierInternalState = (void *)0x01F27720; +const void * RTTI_hkbDetectCloseToGroundModifier = (void *)0x01F27758; +const void * RTTI_hkbDetectCloseToGroundModifierInternalState = (void *)0x01F27790; +const void * RTTI_hkbExpressionDataArray = (void *)0x01F277D8; +const void * RTTI_hkbEvaluateExpressionModifier = (void *)0x01F27808; +const void * RTTI_hkbEvaluateExpressionModifierInternalState = (void *)0x01F27840; +const void * RTTI_hkbEvaluateHandleModifier = (void *)0x01F27888; +const void * RTTI_hkbEventDrivenModifier = (void *)0x01F278B8; +const void * RTTI_hkbEventDrivenModifierInternalState = (void *)0x01F278E8; +const void * RTTI_hkbEventRangeDataArray = (void *)0x01F27928; +const void * RTTI_hkbEventsFromRangeModifier = (void *)0x01F27958; +const void * RTTI_hkbEventsFromRangeModifierInternalState = (void *)0x01F27990; +const void * RTTI_hkbFootIkControlsModifier = (void *)0x01F279D0; +const void * RTTI_hkbFootIkModifier = (void *)0x01F27A00; +const void * RTTI_hkbGetHandleOnBoneModifier = (void *)0x01F27A28; +const void * RTTI_hkbGetUpModifier = (void *)0x01F27A60; +const void * RTTI_hkbGetUpModifierInternalState = (void *)0x01F27A88; +const void * RTTI_hkbGetWorldFromModelModifier = (void *)0x01F27AC0; +const void * RTTI_hkbGetWorldFromModelModifierInternalState = (void *)0x01F27B00; +const void * RTTI_hkbHandIkControlsModifier = (void *)0x01F27B40; +const void * RTTI_hkbHandIkModifier = (void *)0x01F27B70; +const void * RTTI_hkbModifierList = (void *)0x01F27B98; +const void * RTTI_hkbLookAtModifier = (void *)0x01F27BC0; +const void * RTTI_hkbLookAtModifierInternalState = (void *)0x01F27BE8; +const void * RTTI_hkbMirrorModifier = (void *)0x01F27C20; +const void * RTTI_hkbMoveCharacterModifier = (void *)0x01F27C48; +const void * RTTI_hkbMoveCharacterModifierInternalState = (void *)0x01F27C78; +const void * RTTI_hkbProxyModifier = (void *)0x01F27CB8; +const void * RTTI_hkbExtractRagdollPoseModifier = (void *)0x01F27CE0; +const void * RTTI_hkbKeyframeBonesModifier = (void *)0x01F27D18; +const void * RTTI_hkbPoweredRagdollControlsModifier = (void *)0x01F27D48; +const void * RTTI_hkbRigidBodyRagdollControlsModifier = (void *)0x01F27D80; +const void * RTTI_hkbRotateCharacterModifier = (void *)0x01F27DC0; +const void * RTTI_hkbRotateCharacterModifierInternalState = (void *)0x01F27DF8; +const void * RTTI_hkbSenseHandleModifier = (void *)0x01F27E38; +const void * RTTI_hkbSetWorldFromModelModifier = (void *)0x01F27E68; +const void * RTTI_hkbTimerModifier = (void *)0x01F27EA0; +const void * RTTI_hkbTimerModifierInternalState = (void *)0x01F27EC8; +const void * RTTI_hkbTransformVectorModifier = (void *)0x01F27F00; +const void * RTTI_hkbTransformVectorModifierInternalState = (void *)0x01F27F38; +const void * RTTI_hkbTwistModifier = (void *)0x01F27F78; +const void * RTTI_hkbSequenceStringData = (void *)0x01F27FA0; +const void * RTTI_hkbEventSequencedData = (void *)0x01F27FD0; +const void * RTTI_hkbRealVariableSequencedData = (void *)0x01F28028; +const void * RTTI_hkbBoolVariableSequencedData = (void *)0x01F28060; +const void * RTTI_hkbIntVariableSequencedData = (void *)0x01F28098; +const void * RTTI_hkbSequenceInternalState = (void *)0x01F280D0; +const void * RTTI_hkbSequencedData = (void *)0x01F28000; +const void * RTTI_hkbStateMachine__TransitionInfoArray = (void *)0x01F28100; +const void * RTTI_hkbStateMachine__EventPropertyArray = (void *)0x01F28140; +const void * RTTI_hkbStateMachine__StateInfo = (void *)0x01F28180; +const void * RTTI_hkbStateMachineInternalState = (void *)0x01F281B0; +const void * RTTI_hkbBlendingTransitionEffect = (void *)0x01F281E8; +const void * RTTI_hkbBlendingTransitionEffectInternalState = (void *)0x01F28220; +const void * RTTI_hkbGeneratorTransitionEffect = (void *)0x01F28260; +const void * RTTI_hkbGeneratorTransitionEffectInternalState = (void *)0x01F282A0; +const void * RTTI_hkbClipGenerator = (void *)0x01F282E0; +const void * RTTI_hkbStateMachine = (void *)0x01F28308; +const void * RTTI_hkbAnimationBindingWithTriggers = (void *)0x01F28330; +const void * RTTI_hkbHandIkDriver = (void *)0x01F28368; +const void * RTTI_hkbAttachmentSceneModifier = (void *)0x01F28390; +const void * RTTI_hkbAttachmentFixupSceneModifier = (void *)0x01F283C8; +const void * RTTI_hkbRagdollSceneModifier = (void *)0x01F28400; +const void * RTTI_hkbCharacterControllerSceneModifier = (void *)0x01F28430; +const void * RTTI_hkbCharacterSetup = (void *)0x01F28470; +const void * RTTI_hkbProjectData = (void *)0x01F28498; +const void * RTTI_hkbCharacterData = (void *)0x01F284C0; +const void * RTTI_hkpCharacterControllerCinfo = (void *)0x01F284E8; +const void * RTTI_hkpCharacterProxyCinfo = (void *)0x01F28520; +const void * RTTI_hkLocalFrameCollector = (void *)0x01F28550; +const void * RTTI_hkbClosestLocalFrameCollector = (void *)0x01F28580; +const void * RTTI_hkbDefaultRaycastInterface = (void *)0x01F285B8; +const void * RTTI_hkbSymbolIdMap = (void *)0x01F285F0; +const void * RTTI_hkVtableClassRegistry = (void *)0x01F28618; +const void * RTTI_hkClassNameRegistry = (void *)0x01F28688; +const void * RTTI_hkTypeInfoRegistry = (void *)0x01F286B8; +const void * RTTI_hkBuiltinTypeRegistry = (void *)0x01F28728; +const void * RTTI_hkDynamicClassNameRegistry = (void *)0x01F28798; +const void * RTTI_hkDefaultClassNameRegistry = (void *)0x01F287D0; +const void * RTTI_hkDefaultBuiltinTypeRegistry = (void *)0x01F28858; +const void * RTTI_hkObjectCopier = (void *)0x01F28890; +const void * RTTI_hkStaticClassNameRegistry = (void *)0x01F288B8; +const void * RTTI_hkResourceContainer = (void *)0x01F288E8; +const void * RTTI_hkResourceMap = (void *)0x01F28940; +const void * RTTI_hkResourceBase = (void *)0x01F28918; +const void * RTTI_hkResourceHandle = (void *)0x01F28968; +const void * RTTI_hkMemoryResourceHandle = (void *)0x01F28990; +const void * RTTI_hkMemoryResourceContainer = (void *)0x01F289C0; +const void * RTTI_hkContainerResourceMap = (void *)0x01F289F0; +const void * RTTI_hkpShapeContainer = (void *)0x01F28A20; +const void * RTTI_hkpSingleShapeContainer = (void *)0x01F28A48; +const void * RTTI_hkpBvShape = (void *)0x01F28A78; +const void * RTTI_hkpConvexShape = (void *)0x01F28AA0; +const void * RTTI_hkpSphereRepShape = (void *)0x01F28AC8; +const void * RTTI_hkpBoxShape = (void *)0x01F28AF0; +const void * RTTI_hkpConvexTransformShapeBase = (void *)0x01F28B18; +const void * RTTI_hkpHeightFieldShape = (void *)0x01F28B50; +const void * RTTI_hkpPlaneShape = (void *)0x01F28B80; +const void * RTTI_hkpSphereShape = (void *)0x01F28BA8; +const void * RTTI_hkpCapsuleShape = (void *)0x01F28BD0; +const void * RTTI_hkpCollidableCollidableFilter = (void *)0x01F28C28; +const void * RTTI_hkpRayCollidableFilter = (void *)0x01F28CC8; +const void * RTTI_hkpShapeCollectionFilter = (void *)0x01F28C60; +const void * RTTI_hkpRayShapeCollectionFilter = (void *)0x01F28C90; +const void * RTTI_hkpGroupFilter = (void *)0x01F28CF8; +const void * RTTI_hkpCollisionFilter = (void *)0x01F28BF8; +const void * RTTI_hkpConvexListFilter = (void *)0x01F28D20; +const void * RTTI_hkpTriangleShape = (void *)0x01F28D50; +const void * RTTI_hkpDefaultConvexListFilter = (void *)0x01F28D78; +const void * RTTI_hkpBvTreeShape = (void *)0x01F28DB0; +const void * RTTI_hkpCollisionFilterList = (void *)0x01F28DD8; +const void * RTTI_hkpNullCollisionFilter = (void *)0x01F28E08; +const void * RTTI_hkpMoppModifier = (void *)0x01F28E38; +const void * RTTI_hkpRemoveTerminalsMoppModifier = (void *)0x01F28E60; +const void * RTTI_hkMoppBvTreeShapeBase = (void *)0x01F28E98; +const void * RTTI_hkpMoppBvTreeShape = (void *)0x01F28EC8; +const void * RTTI_hkpConvexTransformShape = (void *)0x01F28EF8; +const void * RTTI_hkpConvexTranslateShape = (void *)0x01F28F28; +const void * RTTI_hkpConvexVerticesConnectivity = (void *)0x01F28F58; +const void * RTTI_hkpConvexListShape = (void *)0x01F28F90; +const void * RTTI_hkpMultiSphereShape = (void *)0x01F28FC0; +const void * RTTI_hkpMultiRayShape = (void *)0x01F28FF0; +const void * RTTI_hkpTransformShape = (void *)0x01F29018; +const void * RTTI_hkpShapeInfo = (void *)0x01F29040; +const void * RTTI_hkpSampledHeightFieldShape = (void *)0x01F29068; +const void * RTTI_hkpCompressedSampledHeightFieldShape = (void *)0x01F290A0; +const void * RTTI_hkpStorageSampledHeightFieldShape = (void *)0x01F290E0; +const void * RTTI_hkpShapeCollection = (void *)0x01F29118; +const void * RTTI_hkpTriSampledHeightFieldCollection = (void *)0x01F29148; +const void * RTTI_hkpTriSampledHeightFieldBvTreeShape = (void *)0x01F29188; +const void * RTTI_hkpListShape = (void *)0x01F291C8; +const void * RTTI_hkpRemoveTerminalsMoppModifier2 = (void *)0x01F291F0; +const void * RTTI_hkpCylinderShape = (void *)0x01F29228; +const void * RTTI_hkpWorldObject = (void *)0x01ECC230; +const void * RTTI_hkpMotion = (void *)0x01F292C8; +const void * RTTI_hkpMaxSizeMotion = (void *)0x01F292E8; +const void * RTTI_hkpKeyframedRigidMotion = (void *)0x01F29310; +const void * RTTI_hkpEntity = (void *)0x01F29340; +const void * RTTI_hkpFixedRigidMotion = (void *)0x01F29360; +const void * RTTI_hkpSphereMotion = (void *)0x01F29390; +const void * RTTI_hkpBoxMotion = (void *)0x01F293B8; +const void * RTTI_hkpThinBoxMotion = (void *)0x01F293E0; +const void * RTTI_hkpCharacterMotion = (void *)0x01F29408; +const void * RTTI_hkpRigidBody = (void *)0x01F29438; +const void * RTTI_hkpPhantom = (void *)0x01ECC208; +const void * RTTI_hkpAabbPhantom = (void *)0x01ECC258; +const void * RTTI_hkpConstraintData = (void *)0x01F29460; +const void * RTTI_hkpPrismaticConstraintData = (void *)0x01F29488; +const void * RTTI_hkpAction = (void *)0x01EB7310; +const void * RTTI_hkpUnaryAction = (void *)0x01EB7460; +const void * RTTI_hkpConstraintInstance = (void *)0x01F294C0; +const void * RTTI_hkpConstraintMotor = (void *)0x01F294F0; +const void * RTTI_hkpConstraintListener = (void *)0x01F29520; +const void * RTTI_hkWorldMemoryAvailableWatchDog = (void *)0x01F29550; +const void * RTTI_hkpPhysicsSystem = (void *)0x01F29588; +const void * RTTI_hkpSimulation = (void *)0x01F295B0; +const void * RTTI_hkpPairCollisionFilter = (void *)0x01F295D8; +const void * RTTI_hkpConstraintCollisionFilter = (void *)0x01F29608; +const void * RTTI_hkpBallAndSocketConstraintData = (void *)0x01F29640; +const void * RTTI_hkpCogWheelConstraintData = (void *)0x01F29678; +const void * RTTI_hkpHingeConstraintData = (void *)0x01F296A8; +const void * RTTI_hkpLimitedHingeConstraintData = (void *)0x01F296D8; +const void * RTTI_hkpParametricCurve = (void *)0x01F29710; +const void * RTTI_hkpLinearParametricCurve = (void *)0x01F29740; +const void * RTTI_hkpPointToPathConstraintData = (void *)0x01F29770; +const void * RTTI_hkpPointToPlaneConstraintData = (void *)0x01F297A8; +const void * RTTI_hkpRackAndPinionConstraintData = (void *)0x01F297E0; +const void * RTTI_hkpRagdollConstraintData = (void *)0x01F29818; +const void * RTTI_hkpStiffSpringConstraintData = (void *)0x01F29848; +const void * RTTI_hkpWheelConstraintData = (void *)0x01F29880; +const void * RTTI_hkpRotationalConstraintData = (void *)0x01F298B0; +const void * RTTI_hkpHingeLimitsData = (void *)0x01F298E8; +const void * RTTI_hkpRagdollLimitsData = (void *)0x01F29918; +const void * RTTI_hkpConstraintChainInstanceAction = (void *)0x01F29948; +const void * RTTI_hkpConstraintChainInstance = (void *)0x01F29980; +const void * RTTI_hkpLimitedForceConstraintMotor = (void *)0x01F299B8; +const void * RTTI_hkpCallbackConstraintMotor = (void *)0x01F299F0; +const void * RTTI_hkpPositionConstraintMotor = (void *)0x01F29A28; +const void * RTTI_hkpSpringDamperConstraintMotor = (void *)0x01F29A60; +const void * RTTI_hkpVelocityConstraintMotor = (void *)0x01F29A98; +const void * RTTI_hkpPulleyConstraintData = (void *)0x01F29AD0; +const void * RTTI_hkpShapePhantom = (void *)0x01F29B00; +const void * RTTI_hkpCachingShapePhantom = (void *)0x01F29B28; +const void * RTTI_hkpSimpleShapePhantom = (void *)0x01F29B58; +const void * RTTI_hkpDefaultWorldMemoryWatchDog = (void *)0x01F29B88; +const void * RTTI_hkpWorld = (void *)0x01F29BC0; +const void * RTTI_hkpBroadPhaseCastCollector = (void *)0x01F29C08; +const void * RTTI_hkpContactMgr = (void *)0x01F29BE0; +const void * RTTI_hkpContactMgrFactory = (void *)0x01F29C40; +const void * RTTI_hkpNullContactMgr = (void *)0x01F29C70; +const void * RTTI_hkpNullContactMgrFactory = (void *)0x01F29C98; +const void * RTTI_hkpBroadPhaseListener = (void *)0x01F29CC8; +const void * RTTI_hkpSimpleWorldRayCaster = (void *)0x01F29CF8; +const void * RTTI_hkpWorldRayCaster = (void *)0x01F29D28; +const void * RTTI_hkpWorldLinearCaster = (void *)0x01F29D50; +const void * RTTI_hkpPhantomBroadPhaseListener = (void *)0x01F29D80; +const void * RTTI_hkpBroadPhaseBorderListener = (void *)0x01F29DB8; +const void * RTTI_hkpCollisionCallbackUtil = (void *)0x01F29DF0; +const void * RTTI_hkpConstraintOwner = (void *)0x01F29E48; +const void * RTTI_hkpBreakableConstraintData = (void *)0x01F29E78; +const void * RTTI_hkpConstraintChainData = (void *)0x01F29EB0; +const void * RTTI_hkpBallSocketChainData = (void *)0x01F29EE0; +const void * RTTI_hkpStiffSpringChainData = (void *)0x01F29F10; +const void * RTTI_hkpGenericConstraintData = (void *)0x01F29F40; +const void * RTTI_hkpMalleableConstraintData = (void *)0x01F29F70; +const void * RTTI_hkpEntityEntityBroadPhaseListener = (void *)0x01F29FA8; +const void * RTTI_hkpSimulationIsland = (void *)0x01F29FE0; +const void * RTTI_hkpBroadPhaseBorder = (void *)0x01F2A010; +const void * RTTI_hkpPhantomOverlapListener = (void *)0x01F2A070; +const void * RTTI_hkpWorldDeletionListener = (void *)0x01F2A040; +const void * RTTI_hkpSimpleConstraintContactMgr = (void *)0x01F2A0A0; +const void * RTTI_hkpSimpleContactConstraintData = (void *)0x01F2A108; +const void * RTTI_hkpDynamicsContactMgr = (void *)0x01F2A0D8; +const void * RTTI_hkpSimpleConstraintContactMgr__Factory = (void *)0x01F2A140; +const void * RTTI_hkpReportContactMgr = (void *)0x01F2A180; +const void * RTTI_hkpReportContactMgr__Factory = (void *)0x01F2A1B0; +const void * RTTI_hkpWorldMaintenanceMgr = (void *)0x01F2A1E8; +const void * RTTI_hkpDefaultWorldMaintenanceMgr = (void *)0x01F2A218; +const void * RTTI_hkpWorldExtension = (void *)0x01F29E20; +const void * RTTI_hkpEndOfStepCallbackUtil = (void *)0x01F2A250; +const void * RTTI_hkpConvexPieceStreamData = (void *)0x01F2A280; +const void * RTTI_hkpCharacterContext = (void *)0x01F2A2B0; +const void * RTTI_hkPackfileWriter__AddObjectListener = (void *)0x01F2A2E0; +const void * RTTI_hkpHavokSnapshot__ConvertListener = (void *)0x01F2A320; +const void * RTTI_hkpCharacterStateManager = (void *)0x01F2A358; +const void * RTTI_hkpCharacterRigidBody = (void *)0x01F2A388; +const void * RTTI_hkpMouseSpringAction = (void *)0x01F2A3B8; +const void * RTTI_hkpBinaryAction = (void *)0x01F2A3E8; +const void * RTTI_hkpAngularDashpotAction = (void *)0x01F2A410; +const void * RTTI_hkpDashpotAction = (void *)0x01F2A440; +const void * RTTI_hkpMotorAction = (void *)0x01F2A468; +const void * RTTI_hkpReorientAction = (void *)0x01F2A490; +const void * RTTI_hkpSpringAction = (void *)0x01F2A4B8; +const void * RTTI_hkpCharacterRigidBodyCinfo = (void *)0x01F2A4E0; +const void * RTTI_hkpPoweredChainMapper = (void *)0x01F2A518; +const void * RTTI_hkpConstrainedSystemFilter = (void *)0x01F2A548; +const void * RTTI_hkpDisableEntityCollisionFilter = (void *)0x01F2A580; +const void * RTTI_hkpGroupCollisionFilter = (void *)0x01F2A5B8; +const void * RTTI_hkpSerializedAgentNnEntry = (void *)0x01F2A5E8; +const void * RTTI_hkpPhysicsSystemWithContacts = (void *)0x01F2A618; +const void * RTTI_hkpSerializedDisplayMarker = (void *)0x01F2A650; +const void * RTTI_hkpSerializedDisplayMarkerList = (void *)0x01F2A688; +const void * RTTI_hkpSerializedDisplayRbTransforms = (void *)0x01F2A6C0; +const void * RTTI_hkpDisplayBindingData = (void *)0x01F2A6F8; +const void * RTTI_hkpDisplayBindingData__RigidBody = (void *)0x01F2A728; +const void * RTTI_hkpDisplayBindingData__PhysicsSystem = (void *)0x01F2A760; +const void * RTTI_hkpPhysicsData = (void *)0x01F2A7A0; +const void * RTTI_hkpCharacterProxy = (void *)0x01F2A7C8; +const void * RTTI_hkpTriggerVolume = (void *)0x01F2A7F0; +const void * RTTI_hkpFirstPersonGun = (void *)0x01F2A818; +const void * RTTI_hkpBallGun = (void *)0x01F2A840; +const void * RTTI_hkpGravityGun = (void *)0x01F2A868; +const void * RTTI_hkpMountedBallGun = (void *)0x01F2A890; +const void * RTTI_hkpProjectileGun = (void *)0x01F2A8B8; +const void * RTTI_hkpGunProjectile = (void *)0x01F2A8E0; +const void * RTTI_hkpSaveContactPointsUtil__EntitySelector = (void *)0x01F2A908; +const void * RTTI_BSLimbIKModifierCastInfo = (void *)0x01ECD5C0; +const void * RTTI_BSILimbIKModifierSingleton = (void *)0x01ECD620; +const void * RTTI_BGSGamebryoSequenceGenerator = (void *)0x01F2A9C0; +const void * RTTI_BSIStateManagerModifier__BSIStateManagerStateListener = (void *)0x01F2AA00; +const void * RTTI_BSSynchronizedClipGenerator = (void *)0x01F2AA50; +const void * RTTI_BSSynchronizedClipGenerator__hkbDefaultSynchronizedScene = (void *)0x01F2AA90; +const void * RTTI_BSIDirectAtModifierSingleton = (void *)0x01EEA3F0; +const void * RTTI_BSIPassByTargetTriggerModifierSingleton = (void *)0x01EEA668; +const void * RTTI_BSIRagdollContactListenerModifierSingleton = (void *)0x01EEA990; +const void * RTTI_BSRagdollContactListenerModifier = (void *)0x01F2AAE0; +const void * RTTI_BSIStateManagerModifier = (void *)0x01F2AB18; +const void * RTTI_BSBoneSwitchGenerator = (void *)0x01F2AB48; +const void * RTTI_BSBoneSwitchGeneratorBoneData = (void *)0x01F2AB78; +const void * RTTI_BSCyclicBlendTransitionGenerator = (void *)0x01F2ABB0; +const void * RTTI_BSOffsetAnimationGenerator = (void *)0x01F2ABE8; +const void * RTTI_BSiStateTaggingGenerator = (void *)0x01F2AC20; +const void * RTTI_BSComputeAddBoneAnimModifier = (void *)0x01F2AC50; +const void * RTTI_BSDecomposeVectorModifier = (void *)0x01F2AC88; +const void * RTTI_BSDirectAtModifier = (void *)0x01F2ACB8; +const void * RTTI_BSDistTriggerModifier = (void *)0x01F2ACE8; +const void * RTTI_BSEventEveryNEventsModifier = (void *)0x01F2AD18; +const void * RTTI_BSEventOnDeactivateModifier = (void *)0x01F2AD50; +const void * RTTI_BSEventOnFalseToTrueModifier = (void *)0x01F2AD88; +const void * RTTI_BSGetTimeStepModifier = (void *)0x01F2ADC0; +const void * RTTI_BSInterpValueModifier = (void *)0x01F2ADF0; +const void * RTTI_BSIsActiveModifier = (void *)0x01F2AE20; +const void * RTTI_BSLimbIKModifier = (void *)0x01F2AE50; +const void * RTTI_BSLookAtModifier = (void *)0x01F2AE78; +const void * RTTI_BSModifyOnceModifier = (void *)0x01F2AEA0; +const void * RTTI_BSPassByTargetTriggerModifier = (void *)0x01F2AED0; +const void * RTTI_BSSpeedSamplerModifier = (void *)0x01F2AF08; +const void * RTTI_BSTimerModifier = (void *)0x01F2AF38; +const void * RTTI_BSTweenerModifier = (void *)0x01F2AF60; +const void * RTTI_hkaAnimationBinding = (void *)0x01F2AF88; +const void * RTTI_BSSynchronizedClipGeneratorUtils__FindEventFunctor = (void *)0x01F2AFC0; +const void * RTTI_BSAnimationGraphManager = (void *)0x01F2B008; +const void * RTTI_hkLoader = (void *)0x01F2B408; +const void * RTTI_BShkbHkxDB__ProjectDBData = (void *)0x01F2B428; +const void * RTTI_BShkbHkxDB__DBData = (void *)0x01F2B458; +const void * RTTI_BShkbHkxDB__QueuedHandles = (void *)0x01ECCE10; +const void * RTTI_BShkbHkxDB__StreamAdaptor = (void *)0x01F2B968; +const void * RTTI_BSAnimationGraphLoadScrapper = (void *)0x01F2B998; +const void * RTTI_bhkIWorldStepListener = (void *)0x01F2B9D0; +const void * RTTI_hkaSkeleton = (void *)0x01F2BB50; +const void * RTTI_BSIRagdollDriver = (void *)0x01F2BB78; +const void * RTTI_BShkbAnimationGraph = (void *)0x01F2BBA0; +const void * RTTI_BSISpeedSamplerDB = (void *)0x01F2BCD0; +const void * RTTI_BSSpeedSamplerDBManager = (void *)0x01F2BCF8; +const void * RTTI_BShkVisibilityController = (void *)0x01F2BF18; +const void * RTTI_BShkbUtils__GraphInspectionFunctor = (void *)0x01F2C128; +const void * RTTI_hkbAssetLoader = (void *)0x01F2C160; +const void * RTTI_BShkbUtils__ProspectiveEventClipAddingFunctor = (void *)0x01F2C270; +const void * RTTI_IAnimationClipLoaderSingleton = (void *)0x01F2C330; +const void * RTTI_AnimationFileManagerSingleton = (void *)0x01F2C368; +const void * RTTI_hkaSkeletonMapper = (void *)0x01F2C5E0; +const void * RTTI_hkaRagdollInstance = (void *)0x01F2C608; +const void * RTTI_hkaDefaultAnimationControl = (void *)0x01F2C638; +const void * RTTI_hkaDefaultAnimationControlMapperData = (void *)0x01F2C6A0; +const void * RTTI_hkaAnimatedReferenceFrame = (void *)0x01F2C6E0; +const void * RTTI_hkaAnimation = (void *)0x01F2C710; +const void * RTTI_hkaInterleavedUncompressedAnimation = (void *)0x01F2C738; +const void * RTTI_hkaQuantizedAnimation = (void *)0x01F2C778; +const void * RTTI_hkaSplineCompressedAnimation = (void *)0x01F2C7A8; +const void * RTTI_hkaAnimationPreviewColorContainer = (void *)0x01F2C7E0; +const void * RTTI_hkaDefaultAnimatedReferenceFrame = (void *)0x01F2C818; +const void * RTTI_hkaFootstepAnalysisInfoContainer = (void *)0x01F2C850; +const void * RTTI_hkaBoneAttachment = (void *)0x01F2C888; +const void * RTTI_hkaAnimationContainer = (void *)0x01F2C8B0; +const void * RTTI_hkaMirroredSkeleton = (void *)0x01F2C8E0; +const void * RTTI_hkaAnimationControl = (void *)0x01F2C670; +const void * RTTI_hkpCollisionDispatcher = (void *)0x01F2C910; +const void * RTTI_hkpNullBroadPhaseListener = (void *)0x01F2C940; +const void * RTTI_hkpCollisionAgent = (void *)0x01F2C970; +const void * RTTI_hkpNullAgent = (void *)0x01F2C998; +const void * RTTI_hkp3AxisSweep = (void *)0x01F2C9C0; +const void * RTTI_hkpBroadPhase = (void *)0x01F2C9E8; +const void * RTTI_hkTraceStream = (void *)0x01F2CA10; +const void * RTTI_hkpStorageMeshShape = (void *)0x01F2CA70; +const void * RTTI_hkpStorageMeshShape__SubpartStorage = (void *)0x01F2CAC8; +const void * RTTI_hkpStorageExtendedMeshShape = (void *)0x01F2CB08; +const void * RTTI_hkpStorageExtendedMeshShape__MeshSubpartStorage = (void *)0x01F2CB70; +const void * RTTI_hkpStorageExtendedMeshShape__ShapeSubpartStorage = (void *)0x01F2CBC0; +const void * RTTI_hkTagfileWriter = (void *)0x01F2CC08; +const void * RTTI_hkTagfileWriter__AddDataObjectListener = (void *)0x01F2CC30; +const void * RTTI_hkTagfileReader = (void *)0x01F2CC70; +const void * RTTI_hkBinaryTagfileWriter = (void *)0x01F2CC98; +const void * RTTI_hkXmlTagfileReader = (void *)0x01F2CCC8; +const void * RTTI_hkXmlTagfileWriter = (void *)0x01F2CCF8; +const void * RTTI_hkpFastMeshShape = (void *)0x01F2CD68; +const void * RTTI_hkpMapPointsToSubShapeContactMgr = (void *)0x01F2CD90; +const void * RTTI_hkpPoweredChainData = (void *)0x01F2CDC8; +const void * RTTI_hkpConvexVerticesShape = (void *)0x01F2CDF8; +const void * RTTI_hkResource = (void *)0x01F2CE28; +const void * RTTI_BShkbUtils__SaveDataRestoreFunctor = (void *)0x01F2CE88; +const void * RTTI_hkpConstraintUtils__CollectConstraintsFilter = (void *)0x01F2CEF0; +const void * RTTI_hkpEaseConstraintsAction = (void *)0x01F2CF38; +const void * RTTI_hkpEaseConstraintsAction__CollectSupportedConstraints = (void *)0x01F2CF70; +const void * RTTI_hkpEasePenetrationAction = (void *)0x01F2CFC0; +const void * RTTI_BSiStateTaggingUtils__BSiStateTaggingStateListener = (void *)0x01F2CFF0; +const void * RTTI_hkxAnimatedFloat = (void *)0x01F2D070; +const void * RTTI_hkxAnimatedMatrix = (void *)0x01F2D098; +const void * RTTI_hkxAnimatedQuaternion = (void *)0x01F2D0C0; +const void * RTTI_hkxAnimatedVector = (void *)0x01F2D0F0; +const void * RTTI_hkxSparselyAnimatedBool = (void *)0x01F2D118; +const void * RTTI_hkxSparselyAnimatedInt = (void *)0x01F2D148; +const void * RTTI_hkxEnum = (void *)0x01F2D178; +const void * RTTI_hkxSparselyAnimatedEnum = (void *)0x01F2D198; +const void * RTTI_hkxSparselyAnimatedString = (void *)0x01F2D1C8; +const void * RTTI_hkxAttributeHolder = (void *)0x01F2D1F8; +const void * RTTI_hkxCamera = (void *)0x01F2D228; +const void * RTTI_hkxNode = (void *)0x01F2D248; +const void * RTTI_hkxLight = (void *)0x01F2D268; +const void * RTTI_hkxMaterial = (void *)0x01F2D288; +const void * RTTI_hkxMaterialEffect = (void *)0x01F2D2B0; +const void * RTTI_hkxMaterialShader = (void *)0x01F2D2D8; +const void * RTTI_hkxTextureFile = (void *)0x01F2D300; +const void * RTTI_hkxTextureInplace = (void *)0x01F2D328; +const void * RTTI_hkxEdgeSelectionChannel = (void *)0x01F2D350; +const void * RTTI_hkxTriangleSelectionChannel = (void *)0x01F2D380; +const void * RTTI_hkxVertexFloatDataChannel = (void *)0x01F2D3B8; +const void * RTTI_hkxVertexIntDataChannel = (void *)0x01F2D3E8; +const void * RTTI_hkxVertexSelectionChannel = (void *)0x01F2D418; +const void * RTTI_hkxVertexVectorDataChannel = (void *)0x01F2D448; +const void * RTTI_hkxIndexBuffer = (void *)0x01F2D480; +const void * RTTI_hkxMeshSection = (void *)0x01F2D4A8; +const void * RTTI_hkxMesh__UserChannelInfo = (void *)0x01F2D4D0; +const void * RTTI_hkxNodeSelectionSet = (void *)0x01F2D500; +const void * RTTI_hkxSkinBinding = (void *)0x01F2D530; +const void * RTTI_hkxScene = (void *)0x01F2D558; +const void * RTTI_hkaMeshBinding = (void *)0x01F2D578; +const void * RTTI_hkaFootstepAnalysisInfo = (void *)0x01F2D5A0; +const void * RTTI_hkpMeshShape = (void *)0x01F2CAA0; +const void * RTTI_hkpExtendedMeshShape = (void *)0x01F2CB40; +const void * RTTI_hkPackfileWriter = (void *)0x01F2D5D0; +const void * RTTI_hkIstream = (void *)0x01F2D5F8; +const void * RTTI_hkDataWorld = (void *)0x01F2D658; +const void * RTTI_hkDataObjectImpl = (void *)0x01F2D680; +const void * RTTI_hkDataArrayImpl = (void *)0x01F2D6D0; +const void * RTTI_hkDataClassImpl = (void *)0x01F2D6F8; +const void * RTTI_hkDataClassDict = (void *)0x01F2D720; +const void * RTTI_hkDataObjectDict = (void *)0x01F2D748; +const void * RTTI_hkDataWorldDict = (void *)0x01F2D770; +const void * RTTI_hkDataRefCounted = (void *)0x01F2D6A8; +const void * RTTI_VariableIntArrayImplementation = (void *)0x01F2D798; +const void * RTTI_ByteArrayImplementation = (void *)0x01F2D7D0; +const void * RTTI_ArrayOfTuplesImplementation = (void *)0x01F2D838; +const void * RTTI_ArrayOfTuplesImplementation__View = (void *)0x01F2D870; +const void * RTTI_RealArrayImplementation = (void *)0x01F2D8A8; +const void * RTTI_VecArrayImplementation = (void *)0x01F2D910; +const void * RTTI_PointerArrayImplementation = (void *)0x01F2D940; +const void * RTTI_CstringArrayImplementation = (void *)0x01F2D9D0; +const void * RTTI_StructArrayImplementation = (void *)0x01F2DA48; +const void * RTTI_StructArrayImplementation__Object = (void *)0x01F2DA78; +const void * RTTI_hkDataClassNative = (void *)0x01F2DAB0; +const void * RTTI_hkDataWorldNative = (void *)0x01F2DAD8; +const void * RTTI_hkDataObjectNative = (void *)0x01F2DB00; +const void * RTTI_hkDataArrayNative = (void *)0x01F2DB30; +const void * RTTI_hkBinaryTagfileReader = (void *)0x01F2DB58; +const void * RTTI_hkVersionPatchManager = (void *)0x01F2DB88; +const void * RTTI_hkSubStreamWriter = (void *)0x01F2DBF8; +const void * RTTI_hkBinaryPackfileWriter = (void *)0x01F2DC20; +const void * RTTI_hkPooledAllocator = (void *)0x01F2DC50; +const void * RTTI_hkTempDetectAllocator = (void *)0x01F2DC78; +const void * RTTI_hkSerializeDeprecated = (void *)0x01F2DCA8; +const void * RTTI_hkpPredGskfAgent = (void *)0x01F2DDA0; +const void * RTTI_hkpIterativeLinearCastAgent = (void *)0x01F2DD18; +const void * RTTI_hkpBoxBoxAgent = (void *)0x01F2DDC8; +const void * RTTI_hkpSymmetricAgentFlipCollector = (void *)0x01F2DDF0; +const void * RTTI_hkpSymmetricAgentFlipCastCollector = (void *)0x01F2DE28; +const void * RTTI_hkpSymmetricAgentFlipBodyCollector = (void *)0x01F2DE68; +const void * RTTI_hkpBvAgent = (void *)0x01F2DEA8; +const void * RTTI_hkpFlagCdBodyPairCollector = (void *)0x01F2DED0; +const void * RTTI_hkpSimpleClosestContactCollector = (void *)0x01F2DF08; +const void * RTTI_hkpBvTreeAgent = (void *)0x01F2DFC8; +const void * RTTI_hkpBvTreeStreamAgent = (void *)0x01F2E078; +const void * RTTI_hkpMoppAgent = (void *)0x01F2E220; +const void * RTTI_hkpPhantomAgent = (void *)0x01F2E2D8; +const void * RTTI_hkpSphereSphereAgent = (void *)0x01F2E300; +const void * RTTI_hkpSphereCapsuleAgent = (void *)0x01F2E330; +const void * RTTI_hkpSphereTriangleAgent = (void *)0x01F2E3B0; +const void * RTTI_hkpCapsuleCapsuleAgent = (void *)0x01F2E430; +const void * RTTI_hkpCapsuleTriangleAgent = (void *)0x01F2E460; +const void * RTTI_hkpSphereBoxAgent = (void *)0x01F2E4E0; +const void * RTTI_hkpMultiSphereTriangleAgent = (void *)0x01F2E560; +const void * RTTI_hkpMultiRayConvexAgent = (void *)0x01F2E5F8; +const void * RTTI_hkpTransformAgent = (void *)0x01F2E680; +const void * RTTI_hkpListAgent = (void *)0x01F2E740; +const void * RTTI_hkpConvexListAgent = (void *)0x01F2E7F8; +const void * RTTI_hkpShapeCollectionAgent = (void *)0x01F2E1F0; +const void * RTTI_hkpMultiSphereAgent = (void *)0x01F2E8C0; +const void * RTTI_hkpArrayAction = (void *)0x01F2CEC0; +const void * RTTI_hkAlignSceneToNodeOptions = (void *)0x01F2E990; +const void * RTTI_hkxEnvironment = (void *)0x01F2E9C0; +const void * RTTI_hkxMaterialShaderSet = (void *)0x01F2E9E8; +const void * RTTI_hkxVertexBuffer = (void *)0x01F2EA18; +const void * RTTI_hkxMesh = (void *)0x01F2EA40; +const void * RTTI_hkOffsetOnlyStreamWriter = (void *)0x01F2EA60; +const void * RTTI_hkObjectWriter = (void *)0x01F2EA90; +const void * RTTI_hkPlatformObjectWriter = (void *)0x01F2EAB8; +const void * RTTI_hkPlatformObjectWriter__Cache = (void *)0x01F2EAE8; +const void * RTTI_hkMemoryStreamReader = (void *)0x01F2EB20; +const void * RTTI_hkPackfileData = (void *)0x01F2EB50; +const void * RTTI_hkObjectResource = (void *)0x01F2EB78; +const void * RTTI_hkIArchive = (void *)0x01F2EBA0; +const void * RTTI_hkParserBuffer = (void *)0x01F2EBC8; +const void * RTTI_hkXmlStreamParser = (void *)0x01F2EBF0; +const void * RTTI_hkpGskBaseAgent = (void *)0x01F2DD50; +const void * RTTI_hkpGskfAgent = (void *)0x01F2DD78; +const void * RTTI_hkXmlLexAnalyzer = (void *)0x01F2EC18; +const void * RTTI_BSAudioManagerThread = (void *)0x01F2EC40; +const void * RTTI_AudioLoadForPlaybackTask = (void *)0x01F2EC70; +const void * RTTI_AudioLoadToCacheTask = (void *)0x01F2ECD8; +const void * RTTI_BSAudio = (void *)0x01F2ED08; +const void * RTTI_BSGameSound = (void *)0x01F2ED28; +const void * RTTI_BSNullImplAudio = (void *)0x01F2ED50; +const void * RTTI_BSAudioListener = (void *)0x01F2EF18; +const void * RTTI_BSNullImplAudioListener = (void *)0x01F2EF40; +const void * RTTI_BSNullImplGameSound = (void *)0x01F2EF70; +const void * RTTI_BSXAudio2Audio = (void *)0x01F2F008; +const void * RTTI_BSXAudio2AudioListener = (void *)0x01F2F288; +const void * RTTI_BSXAudio2GameSound = (void *)0x01F2F2E8; +const void * RTTI_BSXAudio2DataSrc = (void *)0x01F2F318; +const void * RTTI_ScrapHeap = (void *)0x01F2F380; +const void * RTTI_BSCoreMessage = (void *)0x01F2F3F0; +const void * RTTI_BSThread = (void *)0x01EAADC8; +const void * RTTI_CompactingStore__MoveCallback = (void *)0x01F2F418; +const void * RTTI_CompactingStore__NoopMoveCallback = (void *)0x01F2F450; +const void * RTTI_CompactingStore__Store = (void *)0x01F2F488; +const void * RTTI_MemoryHeap = (void *)0x01F2F4B8; +const void * RTTI_UnitTestMemoryHeap = (void *)0x01F2F530; +const void * RTTI_IMemoryHeap = (void *)0x01F2F508; +const void * RTTI_ZeroOverheadHeap = (void *)0x01F2F560; +const void * RTTI_UnitTestZeroOverheadHeap = (void *)0x01F2F588; +const void * RTTI_BSSmallBlockAllocator = (void *)0x01F2F5B8; +const void * RTTI_BSSmallBlockAllocatorUtil__UserPoolBase = (void *)0x01F2F5E8; +const void * RTTI_BSStepThread = (void *)0x01F2F628; +const void * RTTI_IMemoryStoreBase = (void *)0x01F2F3C8; +const void * RTTI_IMemoryStore = (void *)0x01F2F3A0; +const void * RTTI_AbstractHeap = (void *)0x01F2F4E0; +const void * RTTI_MouseMoveEvent = (void *)0x01F2F900; +const void * RTTI_CharEvent = (void *)0x01F2F928; +const void * RTTI_DeviceConnectEvent = (void *)0x01F2F948; +const void * RTTI_KinectEvent = (void *)0x01F2F978; +const void * RTTI_BSWin32GamerProfile = (void *)0x01F2F9A0; +const void * RTTI_BSIInputDevice = (void *)0x01F2FA38; +const void * RTTI_BSInputDevice = (void *)0x01F2FA60; +const void * RTTI_BSGamepadDevice = (void *)0x01F2FA88; +const void * RTTI_BSGamerProfile = (void *)0x01F2F9D0; +const void * RTTI_BSWin32KeyboardDevice = (void *)0x01F2FAF0; +const void * RTTI_BSWin32MouseDevice = (void *)0x01F2FB48; +const void * RTTI_BSPCGamepadDeviceDelegate = (void *)0x01F2FBA0; +const void * RTTI_BSPCGamepadDeviceHandler = (void *)0x01F2FBD0; +const void * RTTI_BSWin32GamepadDevice = (void *)0x01F2FC00; +const void * RTTI_BSPCOrbisGamepadDevice = (void *)0x01F2FC30; +const void * RTTI_BSKeyboardDevice = (void *)0x01F2FB20; +const void * RTTI_BSWin32VirtualKeyboardDevice = (void *)0x01F2FC60; +const void * RTTI_BSMouseDevice = (void *)0x01F2FB78; +const void * RTTI_BSVirtualKeyboardDevice = (void *)0x01F2FC98; +const void * RTTI_NiFile = (void *)0x01F2FCC8; +const void * RTTI_NiBinaryStream = (void *)0x01EB4B18; +const void * RTTI_NiAllocator = (void *)0x01F2FCE8; +const void * RTTI_BSNiAllocator = (void *)0x01F2FD10; +const void * RTTI_NiStandardAllocator = (void *)0x01F2FD38; +const void * RTTI_NiSearchPath = (void *)0x01F2FD68; +const void * RTTI_NiThread = (void *)0x01F2FD90; +const void * RTTI_BSStringPool__IterationCallback = (void *)0x01F2FDB0; +const void * RTTI_Archive = (void *)0x01F2FDE8; +const void * RTTI_ArchiveFile = (void *)0x01F2FE70; +const void * RTTI_CompressedArchiveFile = (void *)0x01F2FE98; +const void * RTTI_BSJobs__JobThread = (void *)0x01F2FEC8; +const void * RTTI_BSFile = (void *)0x01F2FE50; +const void * RTTI_BSSystemFileAsyncFunctor = (void *)0x01F2FEF0; +const void * RTTI_BSSystemFileStorage = (void *)0x01F2FF20; +const void * RTTI_BSTaskletGroupData = (void *)0x01F2FF50; +const void * RTTI_BSTaskletManagerCallback = (void *)0x01F2FF80; +const void * RTTI_BSTaskletManager = (void *)0x01F2FFB0; +const void * RTTI_BSSearchPath = (void *)0x01F2FFD8; +const void * RTTI_BSWin32TaskletManager = (void *)0x01F30000; +const void * RTTI_BSWin32TaskletGroupData = (void *)0x01F30030; +const void * RTTI_BSResource__StreamBase = (void *)0x01F30060; +const void * RTTI_BSResource__Stream = (void *)0x01F30090; +const void * RTTI_BSResource__AsyncStream = (void *)0x01F300B8; +const void * RTTI_BSResource__ArchiveStream = (void *)0x01F300E8; +const void * RTTI_BSResource__CacheArchiveOp = (void *)0x01F30118; +const void * RTTI_BSResource__CompressedArchiveStream = (void *)0x01F30148; +const void * RTTI_BSResource__ArchiveManager = (void *)0x01F30188; +const void * RTTI_BSResource__IEntryDB = (void *)0x01EADBA0; +const void * RTTI_BSResource__IEntryDB__PostFlushNotify = (void *)0x01EA8770; +const void * RTTI_BSResource__LocationTraverser = (void *)0x01F30258; +const void * RTTI_BSResource__CacheDrive = (void *)0x01F31238; +const void * RTTI_BSResource__CacheDrive__Impl = (void *)0x01F31268; +const void * RTTI_BSResource__CacheDrive__Task = (void *)0x01F312A0; +const void * RTTI_NiObject = (void *)0x01EAB338; +const void * RTTI_NiAVObject = (void *)0x01EAB380; +const void * RTTI_NiNode = (void *)0x01EAB648; +const void * RTTI_NiStream = (void *)0x01EAAD80; +const void * RTTI_NiStream__BackgroundLoadProcedure = (void *)0x01F313D0; +const void * RTTI_NiObjectNET = (void *)0x01EAB358; +const void * RTTI_NiLight = (void *)0x01F31B08; +const void * RTTI_NiSwitchNode = (void *)0x01F31B28; +const void * RTTI_NiStringsExtraData = (void *)0x01F31BC0; +const void * RTTI_NiCamera = (void *)0x01F31BF0; +const void * RTTI_BSTriShape = (void *)0x01EAF548; +const void * RTTI_BSSkinnedDecalTriShape = (void *)0x01F31C10; +const void * RTTI_NiTexture = (void *)0x01F31C40; +const void * RTTI_NiSourceTexture = (void *)0x01F31C60; +const void * RTTI_BSFlattenedBoneTree = (void *)0x01F31C88; +const void * RTTI_NiSkinInstance = (void *)0x01F31CB8; +const void * RTTI_BSDismemberSkinInstance = (void *)0x01F31CE0; +const void * RTTI_NiStringExtraData = (void *)0x01F31D10; +const void * RTTI_NiTimeController = (void *)0x01EB2490; +const void * RTTI_NiExtraData = (void *)0x01EAE178; +const void * RTTI_NiGeometryData = (void *)0x01F31D38; +const void * RTTI_BSGeometry = (void *)0x01EAF570; +const void * RTTI_BSDynamicTriShape = (void *)0x01EAF5C8; +const void * RTTI_NiPointLight = (void *)0x01F31D60; +const void * RTTI_NiAVObjectPalette = (void *)0x01F31D88; +const void * RTTI_NiDefaultAVObjectPalette = (void *)0x01F31DB0; +const void * RTTI_BSResourceNiBinaryStream = (void *)0x01F31DE0; +const void * RTTI_NiDirectionalLight = (void *)0x01F31EC0; +const void * RTTI_NiCullingProcess = (void *)0x01EB81E0; +const void * RTTI_NiParticles = (void *)0x01F31EF0; +const void * RTTI_NiSkinPartition = (void *)0x01F31F18; +const void * RTTI_NiVertWeightsExtraData = (void *)0x01F31F40; +const void * RTTI_NiGeometry = (void *)0x01F31F70; +const void * RTTI_NiSkinData = (void *)0x01F31F98; +const void * RTTI_NiShadeProperty = (void *)0x01F31FC0; +const void * RTTI_NiAlphaAccumulator = (void *)0x01F32010; +const void * RTTI_NiAmbientLight = (void *)0x01F32070; +const void * RTTI_NiBinaryExtraData = (void *)0x01F32098; +const void * RTTI_NiBooleanExtraData = (void *)0x01F320C0; +const void * RTTI_NiBSPNode = (void *)0x01F320F0; +const void * RTTI_NiColorExtraData = (void *)0x01F32110; +const void * RTTI_NiFloatExtraData = (void *)0x01F32138; +const void * RTTI_NiFloatsExtraData = (void *)0x01F32160; +const void * RTTI_NiFogProperty = (void *)0x01F32188; +const void * RTTI_NiIntegerExtraData = (void *)0x01F321B0; +const void * RTTI_NiIntegersExtraData = (void *)0x01F321E0; +const void * RTTI_NiParticlesData = (void *)0x01F322E8; +const void * RTTI_NiParticleMeshesData = (void *)0x01F32310; +const void * RTTI_NiParticleMeshes = (void *)0x01F32340; +const void * RTTI_NiSpotLight = (void *)0x01F32368; +const void * RTTI_NiSwitchStringExtraData = (void *)0x01F32390; +const void * RTTI_NiTriShapeData = (void *)0x01F323C0; +const void * RTTI_NiTriShape = (void *)0x01F32418; +const void * RTTI_NiTriStripsData = (void *)0x01F32468; +const void * RTTI_NiTriStrips = (void *)0x01F32490; +const void * RTTI_NiVectorExtraData = (void *)0x01F324B8; +const void * RTTI_BSLODTriShape = (void *)0x01F32558; +const void * RTTI_NiAdditionalGeometryData = (void *)0x01F32580; +const void * RTTI_BSSegmentedTriShape = (void *)0x01F325B0; +const void * RTTI_NiBackToFrontAccumulator = (void *)0x01F32040; +const void * RTTI_NiAccumulator = (void *)0x01F31FE8; +const void * RTTI_NiTriBasedGeomData = (void *)0x01F323E8; +const void * RTTI_NiTriBasedGeom = (void *)0x01F32440; +const void * RTTI_NiPick__Results = (void *)0x01F325E0; +const void * RTTI_NiCollisionTraversals__IFindIntersections = (void *)0x01F326B8; +const void * RTTI_NiCollisionData = (void *)0x01F326F8; +const void * RTTI_NiOBBRoot = (void *)0x01F32720; +const void * RTTI_NiBoundingVolume = (void *)0x01F32740; +const void * RTTI_NiBoxBV = (void *)0x01F32768; +const void * RTTI_NiCapsuleBV = (void *)0x01F32788; +const void * RTTI_NiHalfSpaceBV = (void *)0x01F327B0; +const void * RTTI_NiSphereBV = (void *)0x01F327D8; +const void * RTTI_NiUnionBV = (void *)0x01F32868; +const void * RTTI_NiOBBNode = (void *)0x01F328D8; +const void * RTTI_NiOBBLeaf = (void *)0x01F328F8; +const void * RTTI_NiIntersector = (void *)0x01F32918; +const void * RTTI_NiBoxSphereIntersector = (void *)0x01F32940; +const void * RTTI_NiBoxCapsuleIntersector = (void *)0x01F32970; +const void * RTTI_NiCapsuleCapsuleIntersector = (void *)0x01F329A0; +const void * RTTI_NiCapsuleSphereIntersector = (void *)0x01F329D8; +const void * RTTI_NiCapsuleTriIntersector = (void *)0x01F32A10; +const void * RTTI_NiSphereTriIntersector = (void *)0x01F32A40; +const void * RTTI_NiControllerManager = (void *)0x01F32A70; +const void * RTTI_NiControllerSequence = (void *)0x01EAD630; +const void * RTTI_NiTextKeyMatch = (void *)0x01F32B78; +const void * RTTI_NiMultiTargetTransformController = (void *)0x01F32BA0; +const void * RTTI_NiBlendInterpolator = (void *)0x01F32C08; +const void * RTTI_BSMultiTargetTreadTransfController = (void *)0x01F32C60; +const void * RTTI_NiInterpController = (void *)0x01F32BD8; +const void * RTTI_NiFloatInterpolator = (void *)0x01F32CA0; +const void * RTTI_NiColorInterpolator = (void *)0x01F32D00; +const void * RTTI_NiSingleInterpController = (void *)0x01F32D30; +const void * RTTI_NiTransformInterpolator = (void *)0x01F32D60; +const void * RTTI_NiPosData = (void *)0x01F32D90; +const void * RTTI_NiPathInterpolator = (void *)0x01F32DB0; +const void * RTTI_NiBlendTransformInterpolator = (void *)0x01F32DE0; +const void * RTTI_NiBlendFloatInterpolator = (void *)0x01F32E18; +const void * RTTI_NiFloatExtraDataController = (void *)0x01F32E48; +const void * RTTI_NiTransformController = (void *)0x01F32EB0; +const void * RTTI_NiBlendAccumTransformInterpolator = (void *)0x01F32EE0; +const void * RTTI_NiInterpolator = (void *)0x01F32C38; +const void * RTTI_BSBlendTreadTransfInterpolator = (void *)0x01F33010; +const void * RTTI_NiKeyBasedInterpolator = (void *)0x01F32CD0; +const void * RTTI_NiTransformData = (void *)0x01F33048; +const void * RTTI_NiBlendBoolInterpolator = (void *)0x01F33070; +const void * RTTI_NiBlendColorInterpolator = (void *)0x01F330A0; +const void * RTTI_NiBlendPoint3Interpolator = (void *)0x01F330D0; +const void * RTTI_NiBlendQuaternionInterpolator = (void *)0x01F33100; +const void * RTTI_NiBoolData = (void *)0x01F33138; +const void * RTTI_NiBoolInterpolator = (void *)0x01F33160; +const void * RTTI_NiBoolTimelineInterpolator = (void *)0x01F33190; +const void * RTTI_NiBSplineBasisData = (void *)0x01F331C8; +const void * RTTI_NiBSplineData = (void *)0x01F331F8; +const void * RTTI_NiBSplineColorInterpolator = (void *)0x01F33220; +const void * RTTI_NiBSplineCompColorInterpolator = (void *)0x01F33288; +const void * RTTI_NiBSplineCompFloatInterpolator = (void *)0x01F332C0; +const void * RTTI_NiBSplineCompPoint3Interpolator = (void *)0x01F33330; +const void * RTTI_NiBSplineCompTransformInterpolator = (void *)0x01F333A0; +const void * RTTI_NiBSplineFloatInterpolator = (void *)0x01F332F8; +const void * RTTI_NiBSplinePoint3Interpolator = (void *)0x01F33368; +const void * RTTI_NiBSplineTransformInterpolator = (void *)0x01F333E0; +const void * RTTI_NiColorExtraDataController = (void *)0x01F33418; +const void * RTTI_NiFloatsExtraDataController = (void *)0x01F33450; +const void * RTTI_NiFloatsExtraDataPoint3Controller = (void *)0x01F33488; +const void * RTTI_NiKeyframeManager = (void *)0x01F334C0; +const void * RTTI_NiLightColorController = (void *)0x01F33670; +const void * RTTI_NiLightDimmerController = (void *)0x01F336D0; +const void * RTTI_NiLookAtController = (void *)0x01F33730; +const void * RTTI_NiLookAtInterpolator = (void *)0x01F33760; +const void * RTTI_NiMorphData = (void *)0x01F33790; +const void * RTTI_NiPathController = (void *)0x01F337B8; +const void * RTTI_NiPoint3Interpolator = (void *)0x01F337E0; +const void * RTTI_NiQuaternionInterpolator = (void *)0x01F33810; +const void * RTTI_NiFloatController = (void *)0x01F33840; +const void * RTTI_NiRollController = (void *)0x01F33868; +const void * RTTI_NiRotData = (void *)0x01F33890; +const void * RTTI_NiSequence = (void *)0x01F338B0; +const void * RTTI_NiSequenceStreamHelper = (void *)0x01F339B8; +const void * RTTI_NiStringPalette = (void *)0x01F339E8; +const void * RTTI_NiTextKeyExtraData = (void *)0x01F33A10; +const void * RTTI_NiUVData = (void *)0x01F33A40; +const void * RTTI_NiVisController = (void *)0x01F33A60; +const void * RTTI_BSAnimNotes = (void *)0x01F33AB8; +const void * RTTI_BSAnimNote = (void *)0x01F33AE0; +const void * RTTI_BSGrabIKNote = (void *)0x01F33B08; +const void * RTTI_BSLookIKNote = (void *)0x01F33B30; +const void * RTTI_BSRotAccumTransfInterpolator = (void *)0x01F33B58; +const void * RTTI_BSTreadTransfInterpolator = (void *)0x01F33B90; +const void * RTTI_BSFrustumFOVController = (void *)0x01F33BC0; +const void * RTTI_NiExtraDataController = (void *)0x01F32E80; +const void * RTTI_NiBSplineInterpolator = (void *)0x01F33258; +const void * RTTI_NiPoint3InterpController = (void *)0x01F336A0; +const void * RTTI_NiFloatInterpController = (void *)0x01F33700; +const void * RTTI_NiBoolInterpController = (void *)0x01F33A88; +const void * RTTI_NiParticleSystem = (void *)0x01F33BF0; +const void * RTTI_NiPSysEmitterCtlr = (void *)0x01F33C18; +const void * RTTI_NiPSysGravityModifier = (void *)0x01F33C70; +const void * RTTI_BSPSysHavokUpdateModifier = (void *)0x01F33CC8; +const void * RTTI_NiMeshParticleSystem = (void *)0x01F33D28; +const void * RTTI_NiPSysCylinderEmitter = (void *)0x01F33D58; +const void * RTTI_BSStripParticleSystem = (void *)0x01F33DE0; +const void * RTTI_NiPSysEmitter = (void *)0x01F33DB8; +const void * RTTI_NiPSysModifierCtlr = (void *)0x01F33C40; +const void * RTTI_NiPSysModifier = (void *)0x01F33CA0; +const void * RTTI_NiPSysMeshUpdateModifier = (void *)0x01F33CF8; +const void * RTTI_NiPSysUpdateCtlr = (void *)0x01F33E10; +const void * RTTI_NiMeshPSysData = (void *)0x01F33E38; +const void * RTTI_NiPSysAirFieldAirFrictionCtlr = (void *)0x01F33F90; +const void * RTTI_NiPSysAirFieldInheritVelocityCtlr = (void *)0x01F33FF8; +const void * RTTI_NiPSysAirFieldModifier = (void *)0x01F34030; +const void * RTTI_NiPSysAirFieldSpreadCtlr = (void *)0x01F34090; +const void * RTTI_NiPSysAgeDeathModifier = (void *)0x01F340C0; +const void * RTTI_NiPSysBombModifier = (void *)0x01F340F0; +const void * RTTI_NiPSysBoundUpdateModifier = (void *)0x01F34120; +const void * RTTI_NiPSysBoxEmitter = (void *)0x01F34150; +const void * RTTI_NiPSysColliderManager = (void *)0x01F34178; +const void * RTTI_NiPSysColorModifier = (void *)0x01F341A8; +const void * RTTI_NiPSysData = (void *)0x01F33E60; +const void * RTTI_NiPSysDragFieldModifier = (void *)0x01F341D8; +const void * RTTI_NiPSysDragModifier = (void *)0x01F34208; +const void * RTTI_NiPSysEmitterCtlrData = (void *)0x01F34238; +const void * RTTI_NiPSysEmitterDeclinationCtlr = (void *)0x01F34268; +const void * RTTI_NiPSysEmitterDeclinationVarCtlr = (void *)0x01F342A0; +const void * RTTI_NiPSysEmitterInitialRadiusCtlr = (void *)0x01F342D8; +const void * RTTI_NiPSysEmitterLifeSpanCtlr = (void *)0x01F34310; +const void * RTTI_NiPSysEmitterPlanarAngleCtlr = (void *)0x01F34340; +const void * RTTI_NiPSysEmitterPlanarAngleVarCtlr = (void *)0x01F34378; +const void * RTTI_NiPSysEmitterSpeedCtlr = (void *)0x01F343B0; +const void * RTTI_NiPSysFieldAttenuationCtlr = (void *)0x01F343E0; +const void * RTTI_NiPSysFieldMagnitudeCtlr = (void *)0x01F34418; +const void * RTTI_NiPSysFieldMaxDistanceCtlr = (void *)0x01F34448; +const void * RTTI_NiPSysGravityFieldModifier = (void *)0x01F34480; +const void * RTTI_NiPSysGravityStrengthCtlr = (void *)0x01F344B8; +const void * RTTI_NiPSysGrowFadeModifier = (void *)0x01F344E8; +const void * RTTI_NiPSysInitialRotAngleCtlr = (void *)0x01F34518; +const void * RTTI_NiPSysInitialRotAngleVarCtlr = (void *)0x01F34548; +const void * RTTI_NiPSysInitialRotSpeedCtlr = (void *)0x01F34580; +const void * RTTI_NiPSysInitialRotSpeedVarCtlr = (void *)0x01F345B0; +const void * RTTI_NiPSysMeshEmitter = (void *)0x01F345E8; +const void * RTTI_NiPSysModifierActiveCtlr = (void *)0x01F34790; +const void * RTTI_NiPSysPlanarCollider = (void *)0x01F347F0; +const void * RTTI_NiPSysPositionModifier = (void *)0x01F34848; +const void * RTTI_NiPSysRadialFieldModifier = (void *)0x01F34878; +const void * RTTI_NiPSysResetOnLoopCtlr = (void *)0x01F348A8; +const void * RTTI_NiPSysRotationModifier = (void *)0x01F348D8; +const void * RTTI_NiPSysSpawnModifier = (void *)0x01F34908; +const void * RTTI_NiPSysSphereEmitter = (void *)0x01F34938; +const void * RTTI_NiPSysSphericalCollider = (void *)0x01F34968; +const void * RTTI_NiPSysTurbulenceFieldModifier = (void *)0x01F34998; +const void * RTTI_NiPSysVortexFieldModifier = (void *)0x01F349D0; +const void * RTTI_BSStripPSysData = (void *)0x01F34A00; +const void * RTTI_BSPSysRecycleBoundModifier = (void *)0x01F34A28; +const void * RTTI_BSPSysInheritVelocityModifier = (void *)0x01F34A60; +const void * RTTI_NiPSysVolumeEmitter = (void *)0x01F33D88; +const void * RTTI_NiPSysModifierFloatCtlr = (void *)0x01F33FC8; +const void * RTTI_NiPSysFieldModifier = (void *)0x01F34060; +const void * RTTI_NiPSysModifierBoolCtlr = (void *)0x01F347C0; +const void * RTTI_NiPSysCollider = (void *)0x01F34820; +const void * RTTI_BSTaskManager = (void *)0x01F34A98; +const void * RTTI_BSTaskManagerThread = (void *)0x01F34B58; +const void * RTTI_BSTaskThread = (void *)0x01EAB1D0; +const void * RTTI_IOManager = (void *)0x01F34BF0; +const void * RTTI_BSResource__IEntryDB__NotifyLoadDone = (void *)0x01F34C10; +const void * RTTI_QueuedFile = (void *)0x01EA8678; +const void * RTTI_QueuedNamedFile = (void *)0x01F34CA8; +const void * RTTI_BSQueuedResourceCollectionBase = (void *)0x01EA8738; +const void * RTTI_BSMultiBound = (void *)0x01F351A8; +const void * RTTI_BSMultiBoundRoom = (void *)0x01F351D0; +const void * RTTI_BSReference = (void *)0x01F35240; +const void * RTTI_BSNodeReferences = (void *)0x01F35268; +const void * RTTI_BSXFlags = (void *)0x01F35290; +const void * RTTI_BSValueNode = (void *)0x01F352B0; +const void * RTTI_ITextureDB = (void *)0x01F352D8; +const void * RTTI_BSTextureDB__QueuedHandles = (void *)0x01F357E8; +const void * RTTI_BSWindModifier = (void *)0x01F358D8; +const void * RTTI_BSTempNode = (void *)0x01F35900; +const void * RTTI_BSPortalGraph = (void *)0x01F35928; +const void * RTTI_BSPortalGraphEntry = (void *)0x01F35950; +const void * RTTI_BSOcclusionShape = (void *)0x01EAD130; +const void * RTTI_MessageHandler = (void *)0x01F35980; +const void * RTTI_BSRangeNode = (void *)0x01F359A8; +const void * RTTI_BSBlastNode = (void *)0x01F359D0; +const void * RTTI_BSDebrisNode = (void *)0x01F359F8; +const void * RTTI_BSDamageStage = (void *)0x01F35A20; +const void * RTTI_PArrayPoint = (void *)0x01F35A48; +const void * RTTI_BSPSysArrayEmitter = (void *)0x01F35A70; +const void * RTTI_BSInstanceTriShape = (void *)0x01F35B68; +const void * RTTI_BSMultiStreamInstanceTriShape = (void *)0x01F35B98; +const void * RTTI_BSIStream = (void *)0x01F35BD0; +const void * RTTI_BSOStream = (void *)0x01F35C60; +const void * RTTI_BSMultiBoundShape = (void *)0x01EAD270; +const void * RTTI_BSOcclusionBox = (void *)0x01F35CC8; +const void * RTTI_BSOcclusionPlane = (void *)0x01EAD178; +const void * RTTI_BSPortalSharedNode = (void *)0x01F35CF0; +const void * RTTI_BSBodyMorphOffsetsExtraData = (void *)0x01F35D20; +const void * RTTI_BSBehaviorGraphExtraData = (void *)0x01F35D58; +const void * RTTI_NiBSBoneLODController = (void *)0x01F35D88; +const void * RTTI_BSCullingProcess = (void *)0x01EB81B8; +const void * RTTI_BSParticleSystemManager = (void *)0x01F35F98; +const void * RTTI_BSFurnitureMarkerNode = (void *)0x01F35FC8; +const void * RTTI_BSBound = (void *)0x01F35FF8; +const void * RTTI_BSMultiBoundNode = (void *)0x01F351F8; +const void * RTTI_BSBoneMap = (void *)0x01F36018; +const void * RTTI_BSAnimInteractionMarker = (void *)0x01F36038; +const void * RTTI_BSSceneGraph = (void *)0x01ED4060; +const void * RTTI_BSPSysMultiTargetEmitterCtlr = (void *)0x01F36068; +const void * RTTI_BSSubIndexTriShape = (void *)0x01F360A0; +const void * RTTI_BSDistantObjectLargeRefExtraData = (void *)0x01F360D0; +const void * RTTI_BSMasterParticleSystem = (void *)0x01F36190; +const void * RTTI_BSProceduralLightningTasklet = (void *)0x01F361C0; +const void * RTTI_BSProceduralLightningController = (void *)0x01F361F8; +const void * RTTI_BSInvMarker = (void *)0x01F36270; +const void * RTTI_BSBoneLODExtraData = (void *)0x01F36298; +const void * RTTI_BSDecalPlacementVectorExtraData = (void *)0x01F362C8; +const void * RTTI_BSParentVelocityModifier = (void *)0x01F36300; +const void * RTTI_BSWArray = (void *)0x01F36330; +const void * RTTI_BSMultiBoundCapsule = (void *)0x01F36350; +const void * RTTI_BSPSysStripUpdateModifier = (void *)0x01F36380; +const void * RTTI_BSPSysSubTexModifier = (void *)0x01F363B0; +const void * RTTI_BSPSysScaleModifier = (void *)0x01F363E0; +const void * RTTI_BSLagBoneController = (void *)0x01F36410; +const void * RTTI_BSNonUniformScaleExtraData = (void *)0x01F36440; +const void * RTTI_BSNiNode = (void *)0x01F35220; +const void * RTTI_BSTableCurve = (void *)0x01F36478; +const void * RTTI_bhkWorldObject = (void *)0x01EAEA40; +const void * RTTI_bhkTaskletManagerCallback = (void *)0x01F364A0; +const void * RTTI_bhkOnStartupCallback = (void *)0x01F364D0; +const void * RTTI_bhkOnExitCallback = (void *)0x01F36500; +const void * RTTI_ahkpWorld = (void *)0x01F36528; +const void * RTTI_bhkWorld__bhkConstraintProjector = (void *)0x01F36548; +const void * RTTI_bhkWorld = (void *)0x01F36580; +const void * RTTI_bhkWorldCinfo = (void *)0x01F365A0; +const void * RTTI_hkGenericConstraintCinfo = (void *)0x01F365C8; +const void * RTTI_hkStiffSpringConstraintCinfo = (void *)0x01F365F8; +const void * RTTI_bhkStiffSpringConstraint = (void *)0x01F36630; +const void * RTTI_hkBallAndSocketConstraintCinfo = (void *)0x01F36660; +const void * RTTI_hkFixedConstraintCinfo = (void *)0x01F36698; +const void * RTTI_bhkWindListener = (void *)0x01EB1828; +const void * RTTI_hkpAllRayHitCollector = (void *)0x01F366C8; +const void * RTTI_bhkRagdollPenetrationUtil = (void *)0x01F366F8; +const void * RTTI_hkaRagdollRaycastInterface = (void *)0x01F36728; +const void * RTTI_hkpCharacterState = (void *)0x01F36760; +const void * RTTI_bhkCharacterState = (void *)0x01F36788; +const void * RTTI_bhkShapeCollection = (void *)0x01F367B0; +const void * RTTI_bhkCharacterController = (void *)0x01F367E0; +const void * RTTI_bhkCollisionBox = (void *)0x01F36858; +const void * RTTI_bhkICharOrientationController = (void *)0x01F36880; +const void * RTTI_bhkCharacterControllerCinfo = (void *)0x01F368B8; +const void * RTTI_bhkCharacterStateClimbing = (void *)0x01F368F0; +const void * RTTI_bhkCharacterStateFlying = (void *)0x01F36920; +const void * RTTI_bhkListShape = (void *)0x01F36950; +const void * RTTI_bhkNiCollisionObject = (void *)0x01EAEA90; +const void * RTTI_bhkRagdollShareData = (void *)0x01F36978; +const void * RTTI_bhkRagdollController = (void *)0x01F369A8; +const void * RTTI_bhkCollisionFilter = (void *)0x01F369D8; +const void * RTTI_bhkAttachmentCollisionObject = (void *)0x01F36BD0; +const void * RTTI_bhkLimitedHingeConstraint = (void *)0x01F36C38; +const void * RTTI_WeaponObject = (void *)0x01F36C68; +const void * RTTI_hkLimitedHingeConstraintCinfo = (void *)0x01F36C90; +const void * RTTI_bhkRigidBodyT = (void *)0x01F36CC8; +const void * RTTI_bhkWorldM = (void *)0x01F36CF0; +const void * RTTI_bhkRefObject = (void *)0x01EB1B00; +const void * RTTI_hkNiTriStripsShape = (void *)0x01F36DC8; +const void * RTTI_hkNormalTriangleShape = (void *)0x01F36DF8; +const void * RTTI_hkPackedNiTriStripsData = (void *)0x01F36E28; +const void * RTTI_hkPackedNiTriStripsShape = (void *)0x01F36E58; +const void * RTTI_bhkCapsuleShape = (void *)0x01F36E88; +const void * RTTI_bhkNiTriStripsShape = (void *)0x01F36EB0; +const void * RTTI_bhkPackedNiTriStripsShape = (void *)0x01F36EE0; +const void * RTTI_bhkBlendCollisionObject = (void *)0x01F36C08; +const void * RTTI_hkAvoidBox = (void *)0x01F36F10; +const void * RTTI_bhkAvoidBox = (void *)0x01F36F38; +const void * RTTI_ahkpMalleableConstraintData = (void *)0x01F36F60; +const void * RTTI_bhkMalleableConstraint = (void *)0x01F36F98; +const void * RTTI_hkMalleableConstraintCinfo = (void *)0x01F36FC8; +const void * RTTI_hkBSHeightFieldShape = (void *)0x01F37040; +const void * RTTI_hkProductFeatures = (void *)0x01F37070; +const void * RTTI_bhkCachingShapePhantom = (void *)0x01F37390; +const void * RTTI_hkpCharacterProxyListener = (void *)0x01F373C0; +const void * RTTI_bhkCharacterProxyCinfo = (void *)0x01F373F0; +const void * RTTI_bhkCharacterProxy = (void *)0x01F37420; +const void * RTTI_bhkCharProxyController = (void *)0x01F37448; +const void * RTTI_bhkCharProxyControllerCinfo = (void *)0x01F37478; +const void * RTTI_hkpCharacterRigidBodyListener = (void *)0x01F374B0; +const void * RTTI_bhkCharacterRigidBodyCinfo = (void *)0x01F374E8; +const void * RTTI_bhkCharacterRigidBody = (void *)0x01F37520; +const void * RTTI_bhkCharRigidBodyControllerCinfo = (void *)0x01F37550; +const void * RTTI_bhkCharRigidBodyController = (void *)0x01F37588; +const void * RTTI_bhkBallAndSocketConstraint = (void *)0x01F375C0; +const void * RTTI_bhkRagdollTemplateData = (void *)0x01F375F8; +const void * RTTI_bhkRagdollTemplate = (void *)0x01F37628; +const void * RTTI_hkRagdollConstraintCinfo = (void *)0x01F37658; +const void * RTTI_bhkRagdollConstraint = (void *)0x01F37688; +const void * RTTI_hkpSafeEaseConstraintsAction = (void *)0x01F376B8; +const void * RTTI_bhkBipedOrientationController = (void *)0x01F376F0; +const void * RTTI_hkThreadMemory = (void *)0x01F37970; +const void * RTTI_bhkMemorySystem = (void *)0x01F37998; +const void * RTTI_hkpSuspendInactiveAgentsUtil = (void *)0x01F379C0; +const void * RTTI_bhkCompressedMeshShapeData = (void *)0x01F37A68; +const void * RTTI_bhkCompressedMeshShape = (void *)0x01F37AA0; +const void * RTTI_bhkConvexSweepShape = (void *)0x01F37B40; +const void * RTTI_bhkConvexTransformShape = (void *)0x01F37B70; +const void * RTTI_bhkConvexTranslateShape = (void *)0x01F37BA0; +const void * RTTI_bhkConvexVerticesShape = (void *)0x01F37BD0; +const void * RTTI_bhkCylinderShape = (void *)0x01F37C00; +const void * RTTI_bhkMultiSphereShape = (void *)0x01F37C28; +const void * RTTI_bhkHeightFieldShape = (void *)0x01F37C58; +const void * RTTI_bhkPlaneShape = (void *)0x01F37C88; +const void * RTTI_bhkTriangleShape = (void *)0x01F37CB0; +const void * RTTI_hkScaledMoppBvTreeShape = (void *)0x01F37CD8; +const void * RTTI_bhkMoppBvTreeShape = (void *)0x01F37D08; +const void * RTTI_bhkTransformShape = (void *)0x01F37D38; +const void * RTTI_hkConstraintChainCinfo = (void *)0x01F37D60; +const void * RTTI_bhkConstraintChain = (void *)0x01F37D90; +const void * RTTI_hkBallSocketChainCinfo = (void *)0x01F37DC0; +const void * RTTI_bhkBallSocketConstraintChain = (void *)0x01F37DF0; +const void * RTTI_bhkGroupConstraint = (void *)0x01F37E28; +const void * RTTI_hkHingeLimitsConstraintCinfo = (void *)0x01F37E58; +const void * RTTI_bhkHingeLimitsConstraint = (void *)0x01F37E90; +const void * RTTI_bhkGenericConstraint = (void *)0x01F37EC0; +const void * RTTI_bhkFixedConstraint = (void *)0x01F37EF0; +const void * RTTI_hkRagdollLimitsConstraintCinfo = (void *)0x01F37F20; +const void * RTTI_bhkRagdollLimitsConstraint = (void *)0x01F37F58; +const void * RTTI_hkWheelConstraintCinfo = (void *)0x01F37F90; +const void * RTTI_bhkWheelConstraint = (void *)0x01F37FC0; +const void * RTTI_ahkpBreakableConstraintData = (void *)0x01F37FF0; +const void * RTTI_hkBreakableConstraintCinfo = (void *)0x01F38028; +const void * RTTI_bhkBreakableConstraint = (void *)0x01F38060; +const void * RTTI_bhkBinaryAction = (void *)0x01F38090; +const void * RTTI_bhkAngularDashpotAction = (void *)0x01F380B8; +const void * RTTI_bhkDashpotAction = (void *)0x01F380E8; +const void * RTTI_bhkLiquidAction = (void *)0x01F38110; +const void * RTTI_bhkMotorAction = (void *)0x01F38138; +const void * RTTI_bhkOrientHingedBodyAction = (void *)0x01F38160; +const void * RTTI_bhkSpringAction = (void *)0x01F38190; +const void * RTTI_bhkBlendController = (void *)0x01F381B8; +const void * RTTI_bhkExtraData = (void *)0x01F381E8; +const void * RTTI_bhkPoseArray = (void *)0x01F38210; +const void * RTTI_hkaDetectRagdollPenetration = (void *)0x01F38238; +const void * RTTI_bhkCharacterStateInAir = (void *)0x01F38270; +const void * RTTI_bhkCharacterStateJumping = (void *)0x01F382A0; +const void * RTTI_bhkCharacterStateOnGround = (void *)0x01F382D0; +const void * RTTI_bhkCharacterStateSwimming = (void *)0x01F38300; +const void * RTTI_hkCharControllerShape = (void *)0x01F38330; +const void * RTTI_bhkCharControllerShape = (void *)0x01F38360; +const void * RTTI_bhkQuadOrientationController = (void *)0x01F38390; +const void * RTTI_hkPointToPathConstraintCinfo = (void *)0x01F38408; +const void * RTTI_bhkPositionConstraintMotor = (void *)0x01F38440; +const void * RTTI_bhkVelocityConstraintMotor = (void *)0x01F38478; +const void * RTTI_bhkSpringDamperConstraintMotor = (void *)0x01F384B0; +const void * RTTI_hkbCameraShakeEventPayload = (void *)0x01F384E8; +const void * RTTI_hkbParticleSystemEventPayload = (void *)0x01F38520; +const void * RTTI_hkbStateChooser = (void *)0x01F38558; +const void * RTTI_hkbTestStateChooser = (void *)0x01F38580; +const void * RTTI_hkbSimulationControlCommand = (void *)0x01F385B0; +const void * RTTI_hkbCharacterControlCommand = (void *)0x01F385E8; +const void * RTTI_hkbRaiseEventCommand = (void *)0x01F38620; +const void * RTTI_hkbSetWordVariableCommand = (void *)0x01F38650; +const void * RTTI_hkbSetLocalTimeOfClipGeneratorCommand = (void *)0x01F38680; +const void * RTTI_hkbSetBehaviorCommand = (void *)0x01F386C0; +const void * RTTI_hkbSetNodePropertyCommand = (void *)0x01F386F0; +const void * RTTI_hkbCharacterAddedInfo = (void *)0x01F38720; +const void * RTTI_hkbCharacterInfo = (void *)0x01F38750; +const void * RTTI_hkbCharacterSteppedInfo = (void *)0x01F38778; +const void * RTTI_hkbCharacterSkinInfo = (void *)0x01F387A8; +const void * RTTI_hkbBehaviorInfo = (void *)0x01F387D8; +const void * RTTI_hkbBehaviorEventsInfo = (void *)0x01F38800; +const void * RTTI_hkbEventRaisedInfo = (void *)0x01F38830; +const void * RTTI_hkbSimulationStateInfo = (void *)0x01F38860; +const void * RTTI_hkbLinkedSymbolInfo = (void *)0x01F38890; +const void * RTTI_hkbAuxiliaryNodeInfo = (void *)0x01F388C0; +const void * RTTI_hkbBehaviorGraphInternalStateInfo = (void *)0x01F388F0; +const void * RTTI_hkpHeightFieldAgent = (void *)0x01F38928; +const void * RTTI_hkHeightFieldRayForwardingCollector = (void *)0x01F38A00; +const void * RTTI_hkpContinuousSimulation = (void *)0x01F38A40; +const void * RTTI_hkpMultiThreadedSimulation = (void *)0x01F38A70; +const void * RTTI_hkpMultiThreadedSimulation__MtEntityEntityBroadPhaseListener = (void *)0x01F38AB0; +const void * RTTI_hkpMultiThreadedSimulation__MtPhantomBroadPhaseListener = (void *)0x01F38B10; +const void * RTTI_hkpMultiThreadedSimulation__MtBroadPhaseBorderListener = (void *)0x01F38B60; +const void * RTTI_bhkCharacterPointCollector = (void *)0x01F38BB0; +const void * RTTI_ahkpCharacterProxy = (void *)0x01F38C40; +const void * RTTI_ahkpCharacterRigidBody = (void *)0x01F38C70; +const void * RTTI_hkSolverAllocator = (void *)0x01F38CA0; +const void * RTTI_bhkThreadMemorySource = (void *)0x01F38CC8; +const void * RTTI_hkJobThreadPool = (void *)0x01F38CF8; +const void * RTTI_hkCpuJobThreadPool = (void *)0x01F38D20; +const void * RTTI_hkpCompressedMeshShape = (void *)0x01F37B10; +const void * RTTI_hkLiquidAction = (void *)0x01F38DD0; +const void * RTTI_hkOrientHingedBodyAction = (void *)0x01F38DF8; +const void * RTTI_hkgpConvexHull = (void *)0x01F38E28; +const void * RTTI_bhkPointToPathConstraint = (void *)0x01F38EC8; +const void * RTTI_hkRemoteObjectClientSideListener = (void *)0x01F38EF8; +const void * RTTI_hkbBehaviorClient = (void *)0x01F38F30; +const void * RTTI_hkbClientCharacterState = (void *)0x01F38F58; +const void * RTTI_hkpToiResourceMgr = (void *)0x01F38F88; +const void * RTTI_hkpDefaultToiResourceMgr = (void *)0x01F38FB0; +const void * RTTI_hkpDeferredConstraintOwner = (void *)0x01F38FE0; +const void * RTTI_hkgpIndexedMesh = (void *)0x01F39018; +const void * RTTI_hkpMoppMediator = (void *)0x01F39040; +const void * RTTI_hkpMoppShapeMediator = (void *)0x01F39068; +const void * RTTI_hkpMoppCachedShapeMediator = (void *)0x01F39098; +const void * RTTI_hkpMoppCostFunction = (void *)0x01F390D0; +const void * RTTI_hkGeometryProcessingInternals__NearestFeaturePolicy = (void *)0x01F39270; +const void * RTTI_hkProcess = (void *)0x01F39330; +const void * RTTI_hkRemoteObjectProcess = (void *)0x01F39350; +const void * RTTI_hkKdTreeCastCollector = (void *)0x01F39380; +const void * RTTI_hkCpuWorldGetClosestPointsCollector = (void *)0x01F393B0; +const void * RTTI_hkCpuWorldLinearCastCollector = (void *)0x01F39450; +const void * RTTI_hkpFixedBufferRayHitCollector = (void *)0x01F394F0; +const void * RTTI_hkCpuWorldRayCastCollector = (void *)0x01F39528; +const void * RTTI_hkpSimpleMeshShape = (void *)0x01F39560; +const void * RTTI_hkpMoppNodeMgr = (void *)0x01F39590; +const void * RTTI_hkpMoppSplitter = (void *)0x01F395B8; +const void * RTTI_hkpMoppDefaultSplitter = (void *)0x01F395E0; +const void * RTTI_hkpMoppCodeGenerator = (void *)0x01F39610; +const void * RTTI_hkpMoppAssembler = (void *)0x01F39640; +const void * RTTI_hkpMoppDefaultAssembler = (void *)0x01F39668; +const void * RTTI_hkgpTriangulatorBase = (void *)0x01F3A018; +const void * RTTI_hkgpJobQueue__IJob = (void *)0x01F3A188; +const void * RTTI_hkgpMesh = (void *)0x01F3A1B0; +const void * RTTI_hkgpMesh__IConvexOverlap = (void *)0x01F3A240; +const void * RTTI_hkgpMesh__IConvexOverlap__IConvexShape = (void *)0x01F3A270; +const void * RTTI_hkgpMesh__TriangleShape = (void *)0x01F3A2B0; +const void * RTTI_hkgpMesh__ExternShape = (void *)0x01F3A2E0; +const void * RTTI_hkgpMesh__CollideShapeTriangle = (void *)0x01F3A310; +const void * RTTI_hkgpMesh__NearestFeaturePolicy = (void *)0x01F3A348; +const void * RTTI_hkGskShape = (void *)0x01F3A380; +const void * RTTI_hkgpMeshInternals__SimpleCollector = (void *)0x01F3A538; +const void * RTTI_hkgpMeshInternals__TriangleOverlap = (void *)0x01F3A570; +const void * RTTI_hkgpMeshInternals__RayCaster = (void *)0x01F3A5A8; +const void * RTTI_IConvexOverlapImpl = (void *)0x01F3A5E0; +const void * RTTI_IConvexOverlapImpl__ShapeBridge = (void *)0x01F3A610; +const void * RTTI_hkProcessFactory = (void *)0x01F3A6A8; +const void * RTTI_hkKdTreeBundleCastCollector = (void *)0x01F3A708; +const void * RTTI_hkKdTreeBuildInput__Mediator = (void *)0x01F3A740; +const void * RTTI_hkpCollidableMediator = (void *)0x01F3A778; +const void * RTTI_hkKdTreeCpuBroadphaseBundleCastCollector = (void *)0x01F3A7A8; +const void * RTTI_BSUIScaleformData = (void *)0x01F3A7E8; +const void * RTTI_IMenu = (void *)0x01ECE7C0; +const void * RTTI_GSysAllocBase = (void *)0x01F3ABF8; +const void * RTTI_GSysAllocPaged = (void *)0x01F3AC20; +const void * RTTI_GSysMemoryMap = (void *)0x01F3AC48; +const void * RTTI_GFxLog = (void *)0x01F3AC70; +const void * RTTI_GFxTranslator = (void *)0x01F3AD40; +const void * RTTI_GFxZlibSupportBase = (void *)0x01F3AD68; +const void * RTTI_GFxState = (void *)0x01F3AC90; +const void * RTTI_GFxZlibSupport = (void *)0x01F3AD98; +const void * RTTI_BSScaleformTranslator = (void *)0x01F3ADC0; +const void * RTTI_BSStreamParserData = (void *)0x01F3ADF0; +const void * RTTI_BSResourceStreamParser = (void *)0x01F3AE20; +const void * RTTI_GFile = (void *)0x01F3B148; +const void * RTTI_GMemoryFile = (void *)0x01F3B1C8; +const void * RTTI_GFxFileOpenerBase = (void *)0x01F3B1F0; +const void * RTTI_BSScaleformFileOpener = (void *)0x01F3B218; +const void * RTTI_ScaleformFile__MemoryFile = (void *)0x01F3B758; +const void * RTTI_IDebugText = (void *)0x01F3B788; +const void * RTTI_DebugText = (void *)0x01F3B7B0; +const void * RTTI_GFxExternalInterface = (void *)0x01F3B7D0; +const void * RTTI_FxDelegate = (void *)0x01F3B800; +const void * RTTI_FxDelegateHandler__CallbackProcessor = (void *)0x01F3B828; +const void * RTTI_AddCallbackVisitor = (void *)0x01F3B868; +const void * RTTI_RemoveCallbackVisitor = (void *)0x01F3B898; +const void * RTTI_GFxImageLoader = (void *)0x01F3B8C8; +const void * RTTI_BSScaleformImageLoader = (void *)0x01F3B8F0; +const void * RTTI_BSScaleformMovieLoadTask = (void *)0x01F3B920; +const void * RTTI_MoviePlayer = (void *)0x01ED2BD0; +const void * RTTI_BSMusicManager = (void *)0x01F3B980; +const void * RTTI_ITrianglePathSplitter = (void *)0x01F3BB90; +const void * RTTI_IPathSmootherRayCast = (void *)0x01F3BBC0; +const void * RTTI_FindTriangleForLocationWaterFilter = (void *)0x01F3BBF0; +const void * RTTI_BSPathing = (void *)0x01EC6998; +const void * RTTI_BSPathing__EdgeFoundVisitor = (void *)0x01F3BC30; +const void * RTTI_TrianglePathWaterAndLedgeSplitter = (void *)0x01F3BC68; +const void * RTTI_BSNavmeshInfoSearch = (void *)0x01F3BDB0; +const void * RTTI_BSPrecomputedNavmeshInfoSearch = (void *)0x01F3BEC8; +const void * RTTI_IMovementSetState = (void *)0x01F3C0F8; +const void * RTTI_IMovementQueryState = (void *)0x01F3C120; +const void * RTTI_MovementAgentActorState = (void *)0x01F3C150; +const void * RTTI_IPathBuilderTracker = (void *)0x01F3C388; +const void * RTTI_BSPathingRequest = (void *)0x01EC6B48; +const void * RTTI_NullPathBuilderTracker = (void *)0x01F3C3B8; +const void * RTTI_IPipelineStageInterface = (void *)0x01ED8D98; +const void * RTTI_IMovementPlannerAgent = (void *)0x01EDA0E8; +const void * RTTI_IMovementPathManagerAgent = (void *)0x01F3C660; +const void * RTTI_IMovementQueryPathFollowing = (void *)0x01F3C690; +const void * RTTI_IMovementQueryPathFollowing__INodeVisitor = (void *)0x01F3C6C8; +const void * RTTI_IMovementSetPathFollowing = (void *)0x01F3C708; +const void * RTTI_IMovementPlayIdleResult = (void *)0x01F3C738; +const void * RTTI_IPathFollowerAction = (void *)0x01F3C768; +const void * RTTI_ISelectIdleFilter = (void *)0x01F3C798; +const void * RTTI_ICheckEndReachedFunctorMapper = (void *)0x01F3C7C0; +const void * RTTI_IMovementHandlerAgent = (void *)0x01ED8E58; +const void * RTTI_CheckParameterReachedFunctor = (void *)0x01F3C7F8; +const void * RTTI_CheckGoalReachedFunctor = (void *)0x01F3C860; +const void * RTTI_CheckStoppedMovingFunctor = (void *)0x01F3C890; +const void * RTTI_MovementAgentPathFollowerStandard = (void *)0x01F3C8C0; +const void * RTTI_MovementSelectIdleUtils__SelectFirstIdleFilter = (void *)0x01F3C900; +const void * RTTI_MovementPathManagerAgent = (void *)0x01F3CC38; +const void * RTTI_IMovementSetGoal = (void *)0x01F3CC68; +const void * RTTI_IMovementQueryPathingState = (void *)0x01F3CC90; +const void * RTTI_IMovementPathManagerDataTracker = (void *)0x01F3CCC8; +const void * RTTI_MovementPathManagerArbiter = (void *)0x01F3CD88; +const void * RTTI_MovementMessageNewPath = (void *)0x01F3CDE8; +const void * RTTI_MovementPathManagerNullTracker = (void *)0x01F3CE48; +const void * RTTI_BSNavmesh = (void *)0x01EC6150; +const void * RTTI_BSNavmeshInfoMap = (void *)0x01EC6230; +const void * RTTI_BSNavmeshInfoMap__IRecursiveVisitor = (void *)0x01F3D118; +const void * RTTI_BSPrecomputedNavmeshInfoPathMap__INavmeshInfoVisitor = (void *)0x01F3D1C0; +const void * RTTI_BSNavmeshObstacleData = (void *)0x01F3D210; +const void * RTTI_PathingTaskData = (void *)0x01F3D240; +const void * RTTI_MovementArbitrationAverageFloat = (void *)0x01F3D368; +const void * RTTI_MovementArbitrationMaxWeightPoint = (void *)0x01F3D410; +const void * RTTI_MovementArbitrationMaxWeightParameters = (void *)0x01F3D4D8; +const void * RTTI_NullMovementSelectIdleResult = (void *)0x01F3D638; +const void * RTTI_INavmeshSearchFilterSet = (void *)0x01EC7860; +const void * RTTI_BSNavmeshSearchFilters = (void *)0x01EC7910; +const void * RTTI_BSNavmeshSearch = (void *)0x01EC78B8; +const void * RTTI_BSPathingLOSGridCell = (void *)0x01F3D670; +const void * RTTI_BSPathingLOSGrid = (void *)0x01F3D6A0; +const void * RTTI_BSPathingLOSGridMap = (void *)0x01F3D6C8; +const void * RTTI_BSPathBuilder = (void *)0x01F3D7B8; +const void * RTTI_PathSmootherRayCastUsePreferredTris = (void *)0x01F3D830; +const void * RTTI_PathSmootherRayCastUseTrianglePath = (void *)0x01F3D870; +const void * RTTI_BSPathEventManager = (void *)0x01F3D8B0; +const void * RTTI_IMovementControllerRegisterInterface = (void *)0x01ED8818; +const void * RTTI_IMovementControllerDataTracker = (void *)0x01F3DAD8; +const void * RTTI_MovementControllerAI = (void *)0x01ED87E8; +const void * RTTI_NullMovementState = (void *)0x01F3DB10; +const void * RTTI_BSPathingStreamSimpleBufferRead = (void *)0x01F3DB88; +const void * RTTI_MovementControllerNullDataTracker = (void *)0x01F3DBC0; +const void * RTTI_MovementMessageDoor = (void *)0x01F3DEA0; +const void * RTTI_MovementMessageApproachingDoor = (void *)0x01F3DED0; +const void * RTTI_MovementMessageActivateDoor = (void *)0x01F3DF08; +const void * RTTI_MovementMessageWarpToLocation = (void *)0x01F3E180; +const void * RTTI_MovementMessageWarpToMultiple = (void *)0x01F3E400; +const void * RTTI_MovementMessageBlocked = (void *)0x01F3E668; +const void * RTTI_MovementMessagePlayIdle = (void *)0x01F3E8D8; +const void * RTTI_MovementMessageFreezeDirection = (void *)0x01F3EB50; +const void * RTTI_MovementMessageSetStaticPath = (void *)0x01F3EDD0; +const void * RTTI_MovementMessageJump = (void *)0x01F3F038; +const void * RTTI_IMovementQueryDeltas = (void *)0x01F3F280; +const void * RTTI_MovementPostUpdateArbiter = (void *)0x01F3F2B0; +const void * RTTI_IMovementSetStaticAvoider = (void *)0x01F3F518; +const void * RTTI_IMovementQueryStaticAvoider = (void *)0x01F3F548; +const void * RTTI_MovementPathManagerAgentStaticAvoider = (void *)0x01F3F580; +const void * RTTI_IMovementQueryActorAvoidance = (void *)0x01F3F7C8; +const void * RTTI_MovementAgentActorAvoider = (void *)0x01F3F800; +const void * RTTI_MovementAgent = (void *)0x01ED8E30; +const void * RTTI_MovementArbiter = (void *)0x01F3CDC0; +const void * RTTI_IMovementSetTranslationControllerType = (void *)0x01F3FA78; +const void * RTTI_MovementHandlerAgentTranslationController = (void *)0x01F3FAC0; +const void * RTTI_IMovementSetCorrectionData = (void *)0x01F3FD10; +const void * RTTI_MovementTweenerAgentFixedDelta = (void *)0x01F3FD48; +const void * RTTI_MovementHandlerArbiter = (void *)0x01F3FF88; +const void * RTTI_MovementHandlerAgent = (void *)0x01ED8E00; +const void * RTTI_IMovementPlannerSetArbitration = (void *)0x01F404C8; +const void * RTTI_MovementPlannerArbiter = (void *)0x01F40500; +const void * RTTI_MovementPlannerAgent = (void *)0x01EDA0B8; +const void * RTTI_MovementPathManagerAgentLoadedAreaMonitor = (void *)0x01F40BC0; +const void * RTTI_IMovementQueryFlight = (void *)0x01F40E20; +const void * RTTI_MovementAgentPathFollowerFlight = (void *)0x01F40E50; +const void * RTTI_MovementAgentPathFollowerVirtual = (void *)0x01F410B0; +const void * RTTI_MovementHandlerAgentAngleController = (void *)0x01F41318; +const void * RTTI_MovementHandlerAgentAngleGain = (void *)0x01F41570; +const void * RTTI_MovementHandlerAgentSpeedPassThrough = (void *)0x01F417E8; +const void * RTTI_MovementHandlerAgentAnglePassThrough = (void *)0x01F41A68; +const void * RTTI_MovementHandlerAgentDirectionPassThrough = (void *)0x01F41CF8; +const void * RTTI_MovementHandlerAgentStrafing = (void *)0x01F41F50; +const void * RTTI_MovementHandlerAgentLargeDeltaIdle = (void *)0x01F421B0; +const void * RTTI_MovementPlannerAgentNavmeshBounds = (void *)0x01F42408; +const void * RTTI_MovementPathManagerAgentAvoidBox = (void *)0x01F42660; +const void * RTTI_IMovementQueryTweener = (void *)0x01F42908; +const void * RTTI_IMovementSetTweener = (void *)0x01F42938; +const void * RTTI_IMovementTweenerAgent = (void *)0x01EDAAF8; +const void * RTTI_MovementTweenerArbiter = (void *)0x01F42968; +const void * RTTI_MovementTweenerAgent = (void *)0x01EDAAC8; +const void * RTTI_MovementStateTweener = (void *)0x01F42D08; +const void * RTTI_MovementStateFollowPath = (void *)0x01F42F38; +const void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToPath = (void *)0x01F42F70; +const void * RTTI_MovementMessagePathEvent = (void *)0x01F3CE18; +const void * RTTI_MovementMessagePathComplete = (void *)0x01F43670; +const void * RTTI_MovementMessagePathFailed = (void *)0x01F436A8; +const void * RTTI_MovementMessagePathCleared = (void *)0x01F436D8; +const void * RTTI_BSPathSmootherPOVSearch = (void *)0x01F43710; +const void * RTTI_BSPathingSearchRayCast = (void *)0x01F437F8; +const void * RTTI_ISmoothingRayValidator = (void *)0x01F43828; +const void * RTTI_GroundPathRayValidator = (void *)0x01F43858; +const void * RTTI_WaterPathRayValidator = (void *)0x01F43888; +const void * RTTI_IPathingNodeGenerator = (void *)0x01F438B8; +const void * RTTI_GroundPathPathingNodeGenerator = (void *)0x01F438E8; +const void * RTTI_WaterPathPathingNodeGenerator = (void *)0x01F43920; +const void * RTTI_IPathFollowerState = (void *)0x01F43958; +const void * RTTI_ICheckEndReachedFunctor = (void *)0x01F3C830; +const void * RTTI_PathFollowerStatePlayIdle = (void *)0x01F43988; +const void * RTTI_PathFollowerStateFollowPathToParameter = (void *)0x01F439B8; +const void * RTTI_PathFollowerStateTurnToAngle = (void *)0x01F439F8; +const void * RTTI_PathFollowerStateKeepLastDirection = (void *)0x01F43A30; +const void * RTTI_VelocityObstacle__Utilities__BuildOpenEdgeListsVisitor = (void *)0x01F43A70; +const void * RTTI_BSNavmeshObstacleUndoData = (void *)0x01F43AC0; +const void * RTTI_MovementArbitrationVectorAdd = (void *)0x01F43AF0; +const void * RTTI_bnet__BaseCallback = (void *)0x01F43B78; +const void * RTTI_BSPlatform__BSTerminatedCallback = (void *)0x01F43C40; +const void * RTTI_BSPlatform__BSBethesdaPlatform = (void *)0x01F43C78; +const void * RTTI_BSPlatform__BSAsyncRequestBase = (void *)0x01F43FD0; +const void * RTTI_bnet__EmptyTerminationCB = (void *)0x01F45918; +const void * RTTI_bnet__ExternalAuthInfo = (void *)0x01F45948; +const void * RTTI_bnet__SteamExternalAuthInfo = (void *)0x01F45978; +const void * RTTI_bnet__CustomData__Value = (void *)0x01F459B0; +const void * RTTI_BSPlatform__BSUploadRequest = (void *)0x01F44170; +const void * RTTI_BSPlatform__BSDownloadRequest = (void *)0x01F441A8; +const void * RTTI_bnet___impl__RefCount = (void *)0x01F494E8; +const void * RTTI_bnet___impl__SharedMutex = (void *)0x01F49518; +const void * RTTI_bnet__IDynamicVariableDeleter = (void *)0x01F49548; +const void * RTTI_bnet__ConfigurationEntry = (void *)0x01F49580; +const void * RTTI_bnet___impl__IPool = (void *)0x01F49608; +const void * RTTI_bnet__ConfigurationEntryBoolean = (void *)0x01F49630; +const void * RTTI_bnet__ConfigurationEntryInteger = (void *)0x01F49668; +const void * RTTI_bnet__ConfigurationEntryFloat = (void *)0x01F496A0; +const void * RTTI_bnet__ConfigurationEntryLong = (void *)0x01F496D8; +const void * RTTI_bnet__ConfigurationEntryString = (void *)0x01F49710; +const void * RTTI_bnet__IJobCollection = (void *)0x01F499A0; +const void * RTTI_bnet___detail__Composite = (void *)0x01F499D0; +const void * RTTI_bnet__IHeap = (void *)0x01F49B80; +const void * RTTI_bnet__IHttpConnectionProvider = (void *)0x01F49BA8; +const void * RTTI_bnet__Network = (void *)0x01F49CB0; +const void * RTTI_bnet__UserProcessor = (void *)0x01F4A030; +const void * RTTI_bnet__UserQueue = (void *)0x01F4A0B8; +const void * RTTI_bnet__UserProcessorCollection = (void *)0x01F4A0E0; +const void * RTTI_bnet__JobProcessorCollection = (void *)0x01F4A118; +const void * RTTI_bnet___impl__AsyncOperation = (void *)0x01F4A380; +const void * RTTI_bnet__SuspendFlow = (void *)0x01F4A410; +const void * RTTI_bnet__ResumeFlow = (void *)0x01F4A598; +const void * RTTI_bnet__CustomData__StringValue = (void *)0x01F4A7F8; +const void * RTTI_bnet__CustomData__BinaryValue = (void *)0x01F4A830; +const void * RTTI_bnet__CustomData__ObjectValue = (void *)0x01F4A868; +const void * RTTI_bnet__BaseHttpRequest = (void *)0x01F4A8A0; +const void * RTTI_bnet__LogoutFlow = (void *)0x01F4ACA8; +const void * RTTI_std__exception = (void *)0x01F4AE58; +const void * RTTI_std__bad_weak_ptr = (void *)0x01F4AE80; +const void * RTTI_bnet__Notification__UserData__ReconnectJob = (void *)0x01F4B040; +const void * RTTI_bnet__Notification__UserData__OnSystemIdFetchedRegister = (void *)0x01F4B080; +const void * RTTI_bnet__Notification__UserWebSocket__OnSystemIdFetchedSend = (void *)0x01F4B0D0; +const void * RTTI_bnet__Notification__UserWebSocket__OnConnected = (void *)0x01F4B120; +const void * RTTI_bnet__IUgcUploader = (void *)0x01F4B6A0; +const void * RTTI_bnet__ChunkedUploadFlow = (void *)0x01F4B6C8; +const void * RTTI_bnet__IDownloader = (void *)0x01F4B8A0; +const void * RTTI_bnet__DownloadFlow = (void *)0x01F4B8C8; +const void * RTTI_bnet__FileDownloader = (void *)0x01F4BBF8; +const void * RTTI_bnet__UgcBrowseRequest = (void *)0x01F4BCB8; +const void * RTTI_bnet__UgcArgLessRequest = (void *)0x01F4BD78; +const void * RTTI_bnet__UgcCategoryCountRequest = (void *)0x01F4BDA8; +const void * RTTI_bnet__UgcContentUploadRequest = (void *)0x01F4BF30; +const void * RTTI_bnet__UgcImageUploadRequest = (void *)0x01F4C060; +const void * RTTI_bnet__UgcAddVideoRequest = (void *)0x01F4C098; +const void * RTTI_bnet__UgcContentRequest = (void *)0x01F4C0C8; +const void * RTTI_bnet__UgcContentUploadDetailsRequest = (void *)0x01F4C178; +const void * RTTI_bnet__UgcCreationRequest = (void *)0x01F4C240; +const void * RTTI_bnet__UgcEditRequest = (void *)0x01F4C2F0; +const void * RTTI_bnet__UgcFlagRequest = (void *)0x01F4C320; +const void * RTTI_bnet__UgcListContentRequest = (void *)0x01F4C350; +const void * RTTI_bnet__UgcListCategoriesRequest = (void *)0x01F4C458; +const void * RTTI_bnet__UgcListDlcRequest = (void *)0x01F4C518; +const void * RTTI_bnet__Ugc__ListPlatformsRequest = (void *)0x01F4C678; +const void * RTTI_bnet__Ugc__ListProductsRequest = (void *)0x01F4C778; +const void * RTTI_bnet__UgcListFollowedAuthorRequest = (void *)0x01F4C8D8; +const void * RTTI_bnet__UgcListNotificationRequest = (void *)0x01F4C9D8; +const void * RTTI_bnet__UgcListBlacklistedRequest = (void *)0x01F4CAE0; +const void * RTTI_bnet__UgcListFeaturedContentRequest = (void *)0x01F4CC48; +const void * RTTI_bnet__UgcListByEntitlementIdsRequest = (void *)0x01F4CC88; +const void * RTTI_bnet__UgcNotificationAcknowledgeRequest = (void *)0x01F4CCC8; +const void * RTTI_bnet__UgcPreviewUploadRequest = (void *)0x01F4CD08; +const void * RTTI_bnet__UgcQueryRequest = (void *)0x01F4CD40; +const void * RTTI_bnet__UgcRateRequest = (void *)0x01F4CD70; +const void * RTTI_bnet__UgcAddReleaseNoteRequest = (void *)0x01F4CDA0; +const void * RTTI_bnet__UgcUpdateReleaseNoteRequest = (void *)0x01F4CE48; +const void * RTTI_bnet__UgcRemoveReleaseNoteRequest = (void *)0x01F4CE80; +const void * RTTI_bnet__Ugc__RefreshEntitlementRequest = (void *)0x01F4CEB8; +const void * RTTI_bnet__Job = (void *)0x01F49A00; +const void * RTTI_bnet__FreeLessHeap = (void *)0x01F4CEF8; +const void * RTTI_bnet__AcquirableFreeLessHeap = (void *)0x01F4CF20; +const void * RTTI_bnet__NetworkLoop = (void *)0x01F4CF58; +const void * RTTI_bnet__AcceptLegalDocumentsRequest = (void *)0x01F4D298; +const void * RTTI_bnet__ListLegalDocumentsFlow = (void *)0x01F4D328; +const void * RTTI_bnet__AccountLinkingRequest = (void *)0x01F4D4D8; +const void * RTTI_bnet__AccountQuickCreateFlow = (void *)0x01F4D598; +const void * RTTI_bnet__AnonymousAuthenticationFlow = (void *)0x01F4D7F8; +const void * RTTI_bnet__SessionAnonymousCreateFlow = (void *)0x01F4D8C0; +const void * RTTI_bnet__SessionQuickCreateFlow = (void *)0x01F4D990; +const void * RTTI_bnet__AccountDeletionRequest = (void *)0x01F4DA58; +const void * RTTI_bnet__AddFingerprintRequest = (void *)0x01F4DA90; +const void * RTTI_bnet__IsAccountLinkableRequest = (void *)0x01F4DAC8; +const void * RTTI_bnet__UserCredentialsAuthenticationFlow = (void *)0x01F4DB68; +const void * RTTI_bnet__ExternalAuthenticationFlow = (void *)0x01F4DCF0; +const void * RTTI_bnet__GameCodeAuthenticationFlow = (void *)0x01F4DEE8; +const void * RTTI_bnet__UnlinkAccountFlow = (void *)0x01F4DFB0; +const void * RTTI_bnet__UsernameValidationRequest = (void *)0x01F4E170; +const void * RTTI_bnet__VerifyFingerprintRequest = (void *)0x01F4E1A8; +const void * RTTI_bnet__VerifyLinkRequest = (void *)0x01F4E1E0; +const void * RTTI_bnet__TwitchAccountInfoRequest = (void *)0x01F4E210; +const void * RTTI_bnet__CheckDisplayNameRequest = (void *)0x01F4E2D8; +const void * RTTI_bnet__CheckEmailRequest = (void *)0x01F4E3A0; +const void * RTTI_bnet__RecoverPasswordRequest = (void *)0x01F4E3D0; +const void * RTTI_bnet__RecoverUsernameRequest = (void *)0x01F4E408; +const void * RTTI_bnet__ResendVerificationRequest = (void *)0x01F4E440; +const void * RTTI_bnet__SessionValidateRequest = (void *)0x01F4E478; +const void * RTTI_bnet__AccountInfoRequest = (void *)0x01F4E538; +const void * RTTI_bnet__RetrieveExternalAccountJob = (void *)0x01F4E660; +const void * RTTI_bnet__ExternalServiceRetrieveAccountRequest = (void *)0x01F4E8C0; +const void * RTTI_bnet__AccountUpgradeAnonymousToQuickRequest = (void *)0x01F4E9F0; +const void * RTTI_bnet__GameAccountLinkFlow = (void *)0x01F4EAD8; +const void * RTTI_bnet__GameAccountLinkConflictResolveFlow = (void *)0x01F4EB98; +const void * RTTI_bnet__GameAccountExternalLinkConflictResolveFlow = (void *)0x01F4EC80; +const void * RTTI_bnet__GameAccountUserCredentialsAuthenticationFlow = (void *)0x01F4ED70; +const void * RTTI_bnet__GameAccountExternalAuthenticationFlow = (void *)0x01F4EF10; +const void * RTTI_bnet__GameAccountExternalLinkFlow = (void *)0x01F4F098; +const void * RTTI_bnet__GameAccountGameCodeAuthenticationFlow = (void *)0x01F4F160; +const void * RTTI_bnet__SessionResumeFlow = (void *)0x01F4F248; +const void * RTTI_bnet__NewGameSessionFlow = (void *)0x01F4F300; +const void * RTTI_bnet__Entitlements__CombinedEntitlementsListRequest = (void *)0x01F4F3B0; +const void * RTTI_bnet__Entitlements__ListRequest = (void *)0x01F4F4D8; +const void * RTTI_bnet__Entitlements__ConsumeRequest = (void *)0x01F4F5D0; +const void * RTTI_bnet__Entitlements__SearchRequest = (void *)0x01F4F688; +const void * RTTI_bnet__VCCS__MTX__Generic__GetCatalogRequest = (void *)0x01F4F6C0; +const void * RTTI_bnet__VCCS__MTX__Generic__PurchaseRequest = (void *)0x01F4F790; +const void * RTTI_bnet__VCCS__MTX__Generic__GetStoreURLRequest = (void *)0x01F4F860; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentRequestBase = (void *)0x01F4F940; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentCreateRequest = (void *)0x01F4FA20; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentDeleteRequest = (void *)0x01F4FA70; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentGetRequest = (void *)0x01F4FAC0; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentListRequest = (void *)0x01F4FB00; +const void * RTTI_bnet__Gsp__Profile__DataAttachmentUpdateRequest = (void *)0x01F4FBE0; +const void * RTTI_bnet__Gsp__Profile__ProfileGetRequest = (void *)0x01F4FC28; +const void * RTTI_bnet__Gsp__Profile__ProfileUpdateRequest = (void *)0x01F4FCF0; +const void * RTTI_bnet__EventLog__LogEventRequest = (void *)0x01F4FD30; +const void * RTTI_bnet__VCCS__Wallet__BalanceRequest = (void *)0x01F4FD68; +const void * RTTI_bnet__VCCS__Wallet__BalanceListRequest = (void *)0x01F4FE20; +const void * RTTI_bnet__VCCS__Wallet__PurchaseRequest = (void *)0x01F4FF38; +const void * RTTI_bnet__VCCS__Wallet__PurchasePreviewRequest = (void *)0x01F4FFF8; +const void * RTTI_bnet__VCCS__Wallet__ServerlessCreditRequest = (void *)0x01F500D0; +const void * RTTI_bnet__VCCS__Wallet__ServerlessDebitRequest = (void *)0x01F501A8; +const void * RTTI_bnet__UgcMtxPurchaseFlow = (void *)0x01F501E8; +const void * RTTI_bnet__VCCS__Fulfillment__UpdateFirstPartyEntitlementRequest = (void *)0x01F50340; +const void * RTTI_bnet__VCCS__Catalog__GetContentsRequest = (void *)0x01F50390; +const void * RTTI_bnet__VCCS__Catalog__GetItemRequest = (void *)0x01F50460; +const void * RTTI_bnet__VCCS__Catalog__ListCategoryPathRequest = (void *)0x01F50520; +const void * RTTI_bnet__VCCS__Catalog__ListCategoryPathChildrenRequest = (void *)0x01F50660; +const void * RTTI_bnet__VCCS__Catalog__ListItemsRequest = (void *)0x01F506A8; +const void * RTTI_bnet__VCCS__Catalog__GetBundlePreviewRequest = (void *)0x01F50770; +const void * RTTI_bnet__VCCS__Catalog__GetBundlePreviewListRequest = (void *)0x01F50840; +const void * RTTI_bnet__CMS__ListMessagesRequest = (void *)0x01F50928; +const void * RTTI_bnet__CMS__GetMultiMessageRequest = (void *)0x01F50A28; +const void * RTTI_bnet__Status__GetExtServerStatusRequest = (void *)0x01F50AE0; +const void * RTTI_bnet__Status__GetStatusRequest = (void *)0x01F50BB0; +const void * RTTI_bnet__SessionLogoutRequest = (void *)0x01F50BE8; +const void * RTTI_bnet__NotificationLogoutRequest = (void *)0x01F50C18; +const void * RTTI_bnet__Notification__Context__OnSystemFetched = (void *)0x01F50E50; +const void * RTTI_bnet__Notification__ReceiveJob = (void *)0x01F50E90; +const void * RTTI_bnet__Notification__FilterJob = (void *)0x01F50F58; +const void * RTTI_bnet__UgcCancelUploadRequest = (void *)0x01F50F90; +const void * RTTI_bnet__UgcChunkedUploadCompletionRequest = (void *)0x01F50FC8; +const void * RTTI_bnet__UgcChunkedUploadInitiationRequest = (void *)0x01F51008; +const void * RTTI_bnet__UgcChunkUploadRequest = (void *)0x01F510A8; +const void * RTTI_bnet__CdpFileInfoRequest = (void *)0x01F510E0; +const void * RTTI_bnet__CdpKeyRequest = (void *)0x01F51190; +const void * RTTI_bnet__BaseFileDownloader = (void *)0x01F4BC28; +const void * RTTI_bnet__HttpTransport = (void *)0x01F51240; +const void * RTTI_bnet__WinHttpTransport = (void *)0x01F51270; +const void * RTTI_bnet__SessionRefreshRequest = (void *)0x01F51310; +const void * RTTI_bnet__SessionResumeRequest = (void *)0x01F51378; +const void * RTTI_bnet__ListRequiredLegalDocumentsRequest = (void *)0x01F51438; +const void * RTTI_bnet__AuthenticationFlow = (void *)0x01F4D5D0; +const void * RTTI_bnet__BeamQuickCreationRequest = (void *)0x01F51C10; +const void * RTTI_bnet__AnonymousAuthRequest = (void *)0x01F51CD0; +const void * RTTI_bnet__SessionAnonymousAccountCreateRequest = (void *)0x01F51D00; +const void * RTTI_bnet__SessionQuickCreateRequest = (void *)0x01F51D40; +const void * RTTI_bnet__SessionAuthRequest = (void *)0x01F51D78; +const void * RTTI_bnet__BeamUserCredentialsAuthenticationRequest = (void *)0x01F51E30; +const void * RTTI_bnet__BeamExternalAuthenticationRequest = (void *)0x01F51EB0; +const void * RTTI_bnet__SessionExternalAuthRequest = (void *)0x01F51EF0; +const void * RTTI_bnet__Session__GameCodeAuthRequest = (void *)0x01F51F28; +const void * RTTI_bnet__TokenUpgradeRequest = (void *)0x01F51F60; +const void * RTTI_bnet__AccountUnlinkingRequest = (void *)0x01F52010; +const void * RTTI_bnet__RetrieveExternalAccountRequest = (void *)0x01F52048; +const void * RTTI_bnet__GameAccountLinkRequest = (void *)0x01F52110; +const void * RTTI_bnet__GameAccountLinkConflictResolveRequest = (void *)0x01F52150; +const void * RTTI_bnet__GameAccountExternalLinkConflictResolveRequest = (void *)0x01F521A0; +const void * RTTI_bnet__GameAccountAuthenticationRequest = (void *)0x01F521F0; +const void * RTTI_bnet__GameAccountExternalAuthRequest = (void *)0x01F52230; +const void * RTTI_bnet__GameAccountExternalLinkRequest = (void *)0x01F52270; +const void * RTTI_bnet__Session__GameAccountGameCodeAuthRequest = (void *)0x01F522B0; +const void * RTTI_bnet__SharedSRWMutex = (void *)0x01F52338; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob = (void *)0x01F52368; +const void * RTTI_bnet__ISocket = (void *)0x01F52440; +const void * RTTI_bnet__CSocket = (void *)0x01F52468; +const void * RTTI_bnet__CSecureSocket = (void *)0x01F52490; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob = (void *)0x01F524C0; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__SocketInitJob = (void *)0x01F52500; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__SendHandshakeJob = (void *)0x01F52550; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__InitJob__ReceiveHandshakeJob = (void *)0x01F525A0; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__IWriteJobSequence = (void *)0x01F52640; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__WriteJobSequence = (void *)0x01F52710; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__WriteJobSequence__WriteJob = (void *)0x01F52760; +const void * RTTI_bnet__WebSocketUtils__WebSocketJob__ReadJob = (void *)0x01F527B8; +const void * RTTI_bnet__Notification__ListSystemRequest = (void *)0x01F53080; +const void * RTTI_bnet__Notification__ChangeFilterRequest = (void *)0x01F531A0; +const void * RTTI_bnet__Presence__AppearDoNotDisturbRequest = (void *)0x01F53278; +const void * RTTI_bnet__Presence__AppearOfflineRequest = (void *)0x01F532B8; +const void * RTTI_bnet__Presence__GetRequest = (void *)0x01F532F8; +const void * RTTI_bnet__Presence__UpdateRequest = (void *)0x01F533B8; +const void * RTTI_bnet__SessionTokenRequest = (void *)0x01F51348; +const void * RTTI_bnet__NotificationConnectRequest = (void *)0x01F53430; +const void * RTTI_bnet__SessionAccessTokenRequest = (void *)0x01F53468; +const void * RTTI_bnet__CdpAuthenticationRequest = (void *)0x01F53508; +const void * RTTI_bnet__SessionResumeTokenRequest = (void *)0x01F53640; +const void * RTTI_bnet__BeamAuthenticationRequest = (void *)0x01F51E78; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob = (void *)0x01F538E8; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__HandshakeJob = (void *)0x01F53930; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__InitializeJob = (void *)0x01F53A80; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__WriteJob = (void *)0x01F53AD0; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__ReceiveJob = (void *)0x01F53B20; +const void * RTTI_bnet__SecureSocket__pImpl__SecureSocketJob__ReceiveJob__DecodeJob = (void *)0x01F53BD0; +const void * RTTI_BSScript__IFindBoundObjectFunctor = (void *)0x01F543C0; +const void * RTTI_BSScript__IVMObjectBindInterface = (void *)0x01F543F8; +const void * RTTI_BSScript__IVMSaveLoadInterface = (void *)0x01F54430; +const void * RTTI_BSScript__IVirtualMachine = (void *)0x01F54468; +const void * RTTI_BSScript__IVMDebugInterface = (void *)0x01F54498; +const void * RTTI_BSScript__ErrorLogger = (void *)0x01F197B8; +const void * RTTI_BSScript__UnlinkedTypes__Function__ConvertTypeFunctor = (void *)0x01F544D0; +const void * RTTI_BSScript__ByteCode__PackedInstructionStream__InstructionFunctor = (void *)0x01F54570; +const void * RTTI_BSScript__IMemoryPagePolicy = (void *)0x01F545C8; +const void * RTTI_BSScript__SimpleAllocMemoryPagePolicy = (void *)0x01F54600; +const void * RTTI_BSScript__CompiledScriptLoader = (void *)0x01F54640; +const void * RTTI_BSScript__IFunction = (void *)0x01F1D038; +const void * RTTI_BSScript__NF_util__NativeFunctionBase = (void *)0x01F1D0C0; +const void * RTTI_BSScript__Internal__VirtualMachine = (void *)0x01F54678; +const void * RTTI_BSScript__Internal__IFuncCallQuery = (void *)0x01F546F0; +const void * RTTI_BSScript__Internal__RawFuncCallQuery = (void *)0x01F54728; +const void * RTTI_BSScript__IObjectProcessor = (void *)0x01F54768; +const void * RTTI_BSScript__Internal__CodeTasklet = (void *)0x01F54B10; +const void * RTTI_BSScript__Internal__AutoPropGetFunction = (void *)0x01F54B48; +const void * RTTI_BSScript__Internal__AutoPropSetFunction = (void *)0x01F54B88; +const void * RTTI_BSScript__Internal__NativeFunctionStub = (void *)0x01F54BC8; +const void * RTTI_BSScript__UnlinkedTypes__InstructionStream__InstructionFunctor = (void *)0x01F54C10; +const void * RTTI_BSScript__LinkerProcessor = (void *)0x01F54E30; +const void * RTTI_BSScript__Internal__ScriptFunction = (void *)0x01F54EA8; +const void * RTTI_BSFadeNode = (void *)0x01F54EE0; +const void * RTTI_BSShaderProperty = (void *)0x01F54F08; +const void * RTTI_BSLeafAnimNode = (void *)0x01F54F30; +const void * RTTI_BSTreeNode = (void *)0x01F54F58; +const void * RTTI_BSImagespaceShaderAlphaBlend = (void *)0x01F55068; +const void * RTTI_BSImagespaceShaderBlur3 = (void *)0x01F55140; +const void * RTTI_BSImagespaceShaderBlur5 = (void *)0x01F55170; +const void * RTTI_BSImagespaceShaderBlur7 = (void *)0x01F551A0; +const void * RTTI_BSImagespaceShaderBlur9 = (void *)0x01F551D0; +const void * RTTI_BSImagespaceShaderBlur11 = (void *)0x01F55200; +const void * RTTI_BSImagespaceShaderBlur13 = (void *)0x01F55230; +const void * RTTI_BSImagespaceShaderBlur15 = (void *)0x01F55260; +const void * RTTI_BSImagespaceShaderNonHDRBlur3 = (void *)0x01F55290; +const void * RTTI_BSImagespaceShaderNonHDRBlur5 = (void *)0x01F552C8; +const void * RTTI_BSImagespaceShaderNonHDRBlur7 = (void *)0x01F55300; +const void * RTTI_BSImagespaceShaderNonHDRBlur9 = (void *)0x01F55338; +const void * RTTI_BSImagespaceShaderNonHDRBlur11 = (void *)0x01F55370; +const void * RTTI_BSImagespaceShaderNonHDRBlur13 = (void *)0x01F553A8; +const void * RTTI_BSImagespaceShaderNonHDRBlur15 = (void *)0x01F553E0; +const void * RTTI_BSImagespaceShaderBrightPassBlur3 = (void *)0x01F55418; +const void * RTTI_BSImagespaceShaderBrightPassBlur5 = (void *)0x01F55450; +const void * RTTI_BSImagespaceShaderBrightPassBlur7 = (void *)0x01F55488; +const void * RTTI_BSImagespaceShaderBrightPassBlur9 = (void *)0x01F554C0; +const void * RTTI_BSImagespaceShaderBrightPassBlur11 = (void *)0x01F554F8; +const void * RTTI_BSImagespaceShaderBrightPassBlur13 = (void *)0x01F55538; +const void * RTTI_BSImagespaceShaderBrightPassBlur15 = (void *)0x01F55578; +const void * RTTI_BSImagespaceShaderCopy = (void *)0x01F555B8; +const void * RTTI_BSImagespaceShaderCopyDynamicFetchDisabled = (void *)0x01F555F0; +const void * RTTI_BSImagespaceShaderCopyScaleBias = (void *)0x01F55638; +const void * RTTI_BSImagespaceShaderTextureMask = (void *)0x01F55670; +const void * RTTI_BSImagespaceShaderGreyScale = (void *)0x01F556A8; +const void * RTTI_BSImagespaceShaderCopyCustomViewport = (void *)0x01F556E0; +const void * RTTI_BSImagespaceShaderDepthOfField = (void *)0x01F55720; +const void * RTTI_BSImagespaceShaderDepthOfFieldFogged = (void *)0x01F55758; +const void * RTTI_BSImagespaceShaderDepthOfFieldMaskedFogged = (void *)0x01F557A0; +const void * RTTI_BSImagespaceShaderDistantBlur = (void *)0x01F557E8; +const void * RTTI_BSImagespaceShaderDistantBlurFogged = (void *)0x01F55820; +const void * RTTI_BSImagespaceShaderDistantBlurMaskedFogged = (void *)0x01F55860; +const void * RTTI_BSImagespaceShaderDoubleVision = (void *)0x01F558A0; +const void * RTTI_BSImagespaceShaderFXAA = (void *)0x01F558D8; +const void * RTTI_BSImagespaceShaderHDRDownSample4 = (void *)0x01F55908; +const void * RTTI_BSImagespaceShaderHDRDownSample16Lum = (void *)0x01F55940; +const void * RTTI_BSImagespaceShaderHDRDownSample4RGB2Lum = (void *)0x01F55980; +const void * RTTI_BSImagespaceShaderHDRDownSample16 = (void *)0x01F559C0; +const void * RTTI_BSImagespaceShaderHDRDownSample4LumClamp = (void *)0x01F559F8; +const void * RTTI_BSImagespaceShaderHDRDownSample16LumClamp = (void *)0x01F55A40; +const void * RTTI_BSImagespaceShaderHDRDownSample4LightAdapt = (void *)0x01F55A80; +const void * RTTI_BSImagespaceShaderHDRDownSample16LightAdapt = (void *)0x01F55AD0; +const void * RTTI_BSImagespaceShaderHDRTonemapBlendCinematic = (void *)0x01F55B20; +const void * RTTI_BSImagespaceShaderHDRTonemapBlendCinematicFade = (void *)0x01F55B70; +const void * RTTI_BSImagespaceShaderLocalMap = (void *)0x01F55BB8; +const void * RTTI_BSImagespaceShaderMap = (void *)0x01F55BF0; +const void * RTTI_BSImagespaceShaderWorldMap = (void *)0x01F55C20; +const void * RTTI_BSImagespaceShaderWorldMapNoSkyBlur = (void *)0x01F55C58; +const void * RTTI_BSImagespaceShaderNoiseScrollAndBlend = (void *)0x01F55C98; +const void * RTTI_BSImagespaceShaderNoiseNormalmap = (void *)0x01F55CD8; +const void * RTTI_BSImagespaceShaderRadialBlur = (void *)0x01F55D10; +const void * RTTI_BSImagespaceShaderRadialBlurMedium = (void *)0x01F55D48; +const void * RTTI_BSImagespaceShaderRadialBlurHigh = (void *)0x01F55D88; +const void * RTTI_BSImagespaceShaderRefraction = (void *)0x01F55DC0; +const void * RTTI_BSImagespaceShaderWaterDisplacementClearSimulation = (void *)0x01F55E00; +const void * RTTI_BSImagespaceShaderWaterDisplacementTexOffset = (void *)0x01F55E50; +const void * RTTI_BSImagespaceShaderWaterDisplacementWadingRipple = (void *)0x01F55EA0; +const void * RTTI_BSImagespaceShaderWaterDisplacementRainRipple = (void *)0x01F55EF0; +const void * RTTI_BSImagespaceShaderWaterWadingHeightmap = (void *)0x01F55F38; +const void * RTTI_BSImagespaceShaderWaterRainHeightmap = (void *)0x01F55F78; +const void * RTTI_BSImagespaceShaderWaterBlendHeightmaps = (void *)0x01F55FB8; +const void * RTTI_BSImagespaceShaderWaterSmoothHeightmap = (void *)0x01F55FF8; +const void * RTTI_BSImagespaceShaderWaterDisplacementNormals = (void *)0x01F56040; +const void * RTTI_BSImagespaceShaderVolumetricLighting = (void *)0x01F56088; +const void * RTTI_BSImagespaceShaderWaterFlow = (void *)0x01F560C8; +const void * RTTI_BSImagespaceShaderApplyReflections = (void *)0x01F56100; +const void * RTTI_BSImagespaceShaderISApplyVolumetricLighting = (void *)0x01F56140; +const void * RTTI_BSImagespaceShaderISBasicCopy = (void *)0x01F56188; +const void * RTTI_BSImagespaceShaderISBlur = (void *)0x01F561C0; +const void * RTTI_BSImagespaceShaderISVolumetricLightingBlurHCS = (void *)0x01F561F0; +const void * RTTI_BSImagespaceShaderISVolumetricLightingBlurVCS = (void *)0x01F56240; +const void * RTTI_BSImagespaceShaderReflectionBlurHCS = (void *)0x01F56288; +const void * RTTI_BSImagespaceShaderReflectionBlurVCS = (void *)0x01F562C8; +const void * RTTI_BSImagespaceShaderISParallaxMaskBlurHCS = (void *)0x01F56308; +const void * RTTI_BSImagespaceShaderISParallaxMaskBlurVCS = (void *)0x01F56348; +const void * RTTI_BSImagespaceShaderISDepthOfFieldBlurHCS = (void *)0x01F56388; +const void * RTTI_BSImagespaceShaderISDepthOfFieldBlurVCS = (void *)0x01F563C8; +const void * RTTI_BSImagespaceShaderISCompositeVolumetricLighting = (void *)0x01F56410; +const void * RTTI_BSImagespaceShaderISCompositeLensFlare = (void *)0x01F56458; +const void * RTTI_BSImagespaceShaderISCompositeLensFlareVolumetricLighting = (void *)0x01F564A0; +const void * RTTI_BSImagespaceShaderISCopySubRegionCS = (void *)0x01F564F0; +const void * RTTI_BSImagespaceShaderISDebugSnow = (void *)0x01F56530; +const void * RTTI_BSImagespaceShaderISDownsample = (void *)0x01F56568; +const void * RTTI_BSImagespaceShaderISDownsampleIgnoreBrightest = (void *)0x01F565A0; +const void * RTTI_BSImagespaceShaderISDownsampleCS = (void *)0x01F565E8; +const void * RTTI_BSImagespaceShaderISDownsampleIgnoreBrightestCS = (void *)0x01F56620; +const void * RTTI_BSImagespaceShaderISExp = (void *)0x01F56668; +const void * RTTI_BSImagespaceShaderISIBLensFlares = (void *)0x01F56698; +const void * RTTI_BSImagespaceShaderISLightingComposite = (void *)0x01F566D0; +const void * RTTI_BSImagespaceShaderISLightingCompositeNoDirectionalLight = (void *)0x01F56710; +const void * RTTI_BSImagespaceShaderISLightingCompositeMenu = (void *)0x01F56760; +const void * RTTI_BSImagespaceShaderISPerlinNoiseCS = (void *)0x01F567A0; +const void * RTTI_BSImagespaceShaderISPerlinNoise2DCS = (void *)0x01F567D8; +const void * RTTI_BSImagespaceShaderReflectionsRayTracing = (void *)0x01F56818; +const void * RTTI_BSImagespaceShaderReflectionsDebugSpecMask = (void *)0x01F56860; +const void * RTTI_BSImagespaceShaderISSAOBlurH = (void *)0x01F568A8; +const void * RTTI_BSImagespaceShaderISSAOBlurV = (void *)0x01F568E0; +const void * RTTI_BSImagespaceShaderISSAOBlurHCS = (void *)0x01F56918; +const void * RTTI_BSImagespaceShaderISSAOBlurVCS = (void *)0x01F56950; +const void * RTTI_BSImagespaceShaderISSAOCameraZ = (void *)0x01F56988; +const void * RTTI_BSImagespaceShaderISSAOCameraZAndMipsCS = (void *)0x01F569C0; +const void * RTTI_BSImagespaceShaderISSAOCompositeSAO = (void *)0x01F56A00; +const void * RTTI_BSImagespaceShaderISSAOCompositeFog = (void *)0x01F56A40; +const void * RTTI_BSImagespaceShaderISSAOCompositeSAOFog = (void *)0x01F56A80; +const void * RTTI_BSImagespaceShaderISMinify = (void *)0x01F56AC0; +const void * RTTI_BSImagespaceShaderISMinifyContrast = (void *)0x01F56AF8; +const void * RTTI_BSImagespaceShaderISSAORawAO = (void *)0x01F56B38; +const void * RTTI_BSImagespaceShaderISSAORawAONoTemporal = (void *)0x01F56B70; +const void * RTTI_BSImagespaceShaderISSAORawAOCS = (void *)0x01F56BB0; +const void * RTTI_BSImagespaceShaderISSILComposite = (void *)0x01F56BE8; +const void * RTTI_BSImagespaceShaderISSILRawInd = (void *)0x01F56C20; +const void * RTTI_BSImagespaceShaderISSimpleColor = (void *)0x01F56C58; +const void * RTTI_BSImagespaceShaderISDisplayDepth = (void *)0x01F56C90; +const void * RTTI_BSImagespaceShaderISSnowSSS = (void *)0x01F56CC8; +const void * RTTI_BSImagespaceShaderISTemporalAA = (void *)0x01F56D00; +const void * RTTI_BSImagespaceShaderISTemporalAA_UI = (void *)0x01F56D38; +const void * RTTI_BSImagespaceShaderISTemporalAA_Water = (void *)0x01F56D70; +const void * RTTI_BSImagespaceShaderISUpsampleDynamicResolution = (void *)0x01F56DB0; +const void * RTTI_BSImagespaceShaderISWaterBlend = (void *)0x01F56DF8; +const void * RTTI_BSImagespaceShaderISUnderwaterMask = (void *)0x01F56E30; +const void * RTTI_ShadowSceneNode = (void *)0x01F56E70; +const void * RTTI_BSLightingShaderProperty = (void *)0x01F56E98; +const void * RTTI_BSGrassShaderProperty = (void *)0x01F56EC8; +const void * RTTI_BSShaderAccumulator = (void *)0x01F56EF8; +const void * RTTI_BSGrassShader = (void *)0x01F56F90; +const void * RTTI_BSLightingShaderMaterialBase = (void *)0x01EC5EE8; +const void * RTTI_BSLightingShaderMaterialEnvmap = (void *)0x01F56FB8; +const void * RTTI_BSLightingShaderMaterialEye = (void *)0x01F56FF0; +const void * RTTI_BSLightingShaderMaterialGlowmap = (void *)0x01F57028; +const void * RTTI_BSLightingShaderMaterialParallax = (void *)0x01F57060; +const void * RTTI_BSLightingShaderMaterialParallaxOcc = (void *)0x01F57098; +const void * RTTI_BSLightingShaderMaterialFacegen = (void *)0x01F570D8; +const void * RTTI_BSLightingShaderMaterialFacegenTint = (void *)0x01F57110; +const void * RTTI_BSLightingShaderMaterialHairTint = (void *)0x01F57150; +const void * RTTI_BSLightingShaderMaterialLandscape = (void *)0x01F57188; +const void * RTTI_BSLightingShaderMaterialLODLandscape = (void *)0x01F571C0; +const void * RTTI_BSLightingShaderMaterialSnow = (void *)0x01F57200; +const void * RTTI_BSLightingShaderMaterialMultiLayerParallax = (void *)0x01F57240; +const void * RTTI_BSEffectShaderProperty = (void *)0x01F57288; +const void * RTTI_ImageSpaceEffectParam = (void *)0x01F572B8; +const void * RTTI_ImageSpaceShaderParam = (void *)0x01F572E8; +const void * RTTI_BSWaterShaderProperty = (void *)0x01F574B0; +const void * RTTI_BSBloodSplatterShaderProperty = (void *)0x01F574E0; +const void * RTTI_BSBloodSplatterShader = (void *)0x01F57518; +const void * RTTI_BSImagespaceShaderLensFlare = (void *)0x01F57548; +const void * RTTI_BSImagespaceShaderLensFlareVisibility = (void *)0x01F57580; +const void * RTTI_BSParticleShaderProperty = (void *)0x01F575C0; +const void * RTTI_ImageSpaceEffectHDR = (void *)0x01F575F0; +const void * RTTI_BSLightingShader = (void *)0x01F57620; +const void * RTTI_BSWaterShader = (void *)0x01F57648; +const void * RTTI_ImageSpaceEffectVolumetricLighting = (void *)0x01F57670; +const void * RTTI_ImageSpaceEffectOption = (void *)0x01F576B0; +const void * RTTI_ImageSpaceEffectDepthOfField = (void *)0x01F57750; +const void * RTTI_BSSkyShader = (void *)0x01F57788; +const void * RTTI_BSSkyShaderProperty = (void *)0x01F577B0; +const void * RTTI_ImageSpaceEffect = (void *)0x01F55118; +const void * RTTI_BSEffectShaderMaterial = (void *)0x01F57AA0; +const void * RTTI_BSEffectShader = (void *)0x01F57AD0; +const void * RTTI_BSDistantTreeShaderProperty = (void *)0x01F57AF8; +const void * RTTI_BSDistantTreeShader = (void *)0x01F57B30; +const void * RTTI_BSCubeMapCamera = (void *)0x01F57B60; +const void * RTTI_BSWaterShaderMaterial = (void *)0x01F57B88; +const void * RTTI_ImageSpaceEffectWaterDisplacement = (void *)0x01F57BB8; +const void * RTTI_BSFogProperty = (void *)0x01F57BF0; +const void * RTTI_BSShadowLight = (void *)0x01F57C38; +const void * RTTI_BSBatchRenderer = (void *)0x01F57C60; +const void * RTTI_BSClearZNode = (void *)0x01F57C88; +const void * RTTI_BSImagespaceShader = (void *)0x01F550A0; +const void * RTTI_ImageSpaceEffectRefraction = (void *)0x01F57CB0; +const void * RTTI_ImageSpaceEffectRadialBlur = (void *)0x01F57CE8; +const void * RTTI_BSUtilityShader = (void *)0x01F57D20; +const void * RTTI_ImageSpaceEffectWorldMap = (void *)0x01F57D48; +const void * RTTI_NiThreadProcedure = (void *)0x01F31408; +const void * RTTI_NiMemStream = (void *)0x01F57D78; +const void * RTTI_NiCollisionObject = (void *)0x01EAEA68; +const void * RTTI_BSOrderedNode = (void *)0x01F57DA0; +const void * RTTI_BSLines = (void *)0x01F57DC8; +const void * RTTI_BSDynamicLines = (void *)0x01F57DE8; +const void * RTTI_UnitTest_BSStreamParserStream = (void *)0x01F57E10; +const void * RTTI_UnitTest_BSStreamParserData = (void *)0x01F57E48; +const void * RTTI_BSShapeConstructor = (void *)0x01F57E80; +const void * RTTI_BSBoxConstructor = (void *)0x01F57EB0; +const void * RTTI_BSOrientedBoxConstructor = (void *)0x01F57ED8; +const void * RTTI_BSSphereConstructor = (void *)0x01F57F08; +const void * RTTI_BSCylinderConstructor = (void *)0x01F57F38; +const void * RTTI_BSCapsuleConstructor = (void *)0x01F57F68; +const void * RTTI_BSArrowConstructor = (void *)0x01F57F98; +const void * RTTI_BSCircleConstructor = (void *)0x01F57FC8; +const void * RTTI_BSRingConstructor = (void *)0x01F57FF8; +const void * RTTI_BSFlatQuadConstructor = (void *)0x01F58020; +const void * RTTI_BSDiskConstructor = (void *)0x01F58050; +const void * RTTI_BSMultiIndexTriShape = (void *)0x01F58078; +const void * RTTI_BSShaderMaterial = (void *)0x01EC5F20; +const void * RTTI_BSLight = (void *)0x01F57C18; +const void * RTTI_BSShader = (void *)0x01F550D0; +const void * RTTI_NiBoneMatrixSetterI = (void *)0x01F54F80; +const void * RTTI_BSReloadShaderI = (void *)0x01F550F0; +const void * RTTI_BSParticleShader = (void *)0x01F580A8; +const void * RTTI_BSLightingShaderPropertyFloatController = (void *)0x01F580D0; +const void * RTTI_BSLightingShaderPropertyUShortController = (void *)0x01F58110; +const void * RTTI_BSLightingShaderPropertyColorController = (void *)0x01F58150; +const void * RTTI_BSEffectShaderPropertyFloatController = (void *)0x01F58190; +const void * RTTI_BSEffectShaderPropertyColorController = (void *)0x01F581D0; +const void * RTTI_BSNiAlphaPropertyTestRefController = (void *)0x01F58210; +const void * RTTI_BSPSysSimpleColorModifier = (void *)0x01F58250; +const void * RTTI_BSPSysLODModifier = (void *)0x01F58280; +const void * RTTI_BSShadowDirectionalLight = (void *)0x01F582A8; +const void * RTTI_BSShaderResourceManager = (void *)0x01F582D8; +const void * RTTI_IRendererResourceManager = (void *)0x01F58308; +const void * RTTI_ImageSpaceEffectGetHit = (void *)0x01F58338; +const void * RTTI_ImageSpaceEffectBlur = (void *)0x01F58368; +const void * RTTI_ImageSpaceEffectFullScreenBlur = (void *)0x01F58398; +const void * RTTI_ImageSpaceEffectMap = (void *)0x01F583D0; +const void * RTTI_ImageSpaceEffectNoise = (void *)0x01F58400; +const void * RTTI_BSParabolicCullingProcess = (void *)0x01F58430; +const void * RTTI_BSShadowFrustumLight = (void *)0x01F58460; +const void * RTTI_BSShadowParabolicLight = (void *)0x01F58490; +const void * RTTI_BSComputeShader = (void *)0x01F584C0; +const void * RTTI_BSMeshLODTriShape = (void *)0x01F584E8; +const void * RTTI_BSLODMultiIndexTriShape = (void *)0x01F58510; +const void * RTTI_BSSubIndexLandTriShape = (void *)0x01F58540; +const void * RTTI_BSSystemMonitor__SocketThread = (void *)0x01F58570; +const void * RTTI_BSSystemMonitor__MemOpsThread = (void *)0x01F585A8; +const void * RTTI_BSSystemUtility = (void *)0x01F58708; +const void * RTTI_BSGameDataSystemUtility = (void *)0x01F58768; +const void * RTTI_BSWin32SaveDataSystemUtility = (void *)0x01F58798; +const void * RTTI_BSSaveDataSystemUtility = (void *)0x01F587D0; +const void * RTTI_BSSaveDataSystemUtility__Entry = (void *)0x01F58840; +const void * RTTI_BSSaveDataSystemUtilityFile = (void *)0x01F58918; +const void * RTTI_BSSystemUtilitiesStrings = (void *)0x01F58988; +const void * RTTI_BSStreamSystemUtility = (void *)0x01F589B8; +const void * RTTI_CCallbackBase = (void *)0x01F585E0; +const void * RTTI_BSWin32SystemUtility = (void *)0x01F589E8; +const void * RTTI_BSCacheDriveSystemUtility = (void *)0x01F58A18; +const void * RTTI_BSSysInfoSystemUtility = (void *)0x01F58A48; +const void * RTTI_BSWin32GameDataSystemUtility = (void *)0x01F58A78; +const void * RTTI_BSAwardsSystemUtility = (void *)0x01F58AB0; +const void * RTTI_BSWin32AwardsSystemUtility = (void *)0x01F58AE0; +const void * RTTI_BSMsgDialogSystemUtility = (void *)0x01F58B18; +const void * RTTI_BSDiscBootSystemUtility = (void *)0x01F58B48; +const void * RTTI_type_info = (void *)0x01F58B78; +const void * RTTI_BSSocket = (void *)0x01F58B98; +const void * RTTI_BSSocketServer = (void *)0x01F58BB8; diff --git a/source/fs.dll/skse64/skse64/GameReferences.cpp b/source/fs.dll/skse64/skse64/GameReferences.cpp index 188d7bac..4342ac35 100644 --- a/source/fs.dll/skse64/skse64/GameReferences.cpp +++ b/source/fs.dll/skse64/skse64/GameReferences.cpp @@ -6,19 +6,19 @@ #include "skse64/GameData.h" #include "skse64/NiNodes.h" -// 123ED1FD37DCAF9CBB5808F1DFB2B9B4E6D678DC+67 -RelocAddr<_CreateRefHandleByREFR> CreateRefHandleByREFR(0x001320F0); -// D479D10F77326C177B3D5AE2C5738B0D39A1546A+5F -RelocAddr<_LookupREFRByHandle> LookupREFRByHandle(0x001328A0); -// B995A21984B048C2B4F61777E615FFFB2806F9B7+8C -RelocAddr<_LookupREFRObjectByHandle> LookupREFRObjectByHandle(0x001329D0); +// 9993FF829D7004AAE73399E0559CC28B110D4A91+C2 +RelocAddr<_CreateRefHandleByREFR> CreateRefHandleByREFR(0x00138A70); +// 526D2C6164B5B723ABF2D3B5BF05D3E20C270AA8+2C +RelocAddr<_LookupREFRByHandle> LookupREFRByHandle(0x00139010); +// AF5D1D698E25CFB06197DD5322B6F15A13ABF0B3+4D +RelocAddr<_LookupREFRObjectByHandle> LookupREFRObjectByHandle(0x00139130); -// 123ED1FD37DCAF9CBB5808F1DFB2B9B4E6D678DC+4D -RelocPtr g_invalidRefHandle(0x01EBEABC); +// AF5D1D698E25CFB06197DD5322B6F15A13ABF0B3+30 +RelocPtr g_invalidRefHandle(0x01F5A43C); -RelocAddr<_MoveRefrToPosition> MoveRefrToPosition(0x009AE5C0); -RelocAddr<_PlaceAtMe_Native> PlaceAtMe_Native(0x009951F0); -RelocAddr<_AddItem_Native> AddItem_Native(0x00993100); +RelocAddr<_MoveRefrToPosition> MoveRefrToPosition(0x009D4240); +RelocAddr<_PlaceAtMe_Native> PlaceAtMe_Native(0x009BE1B0); +RelocAddr<_AddItem_Native> AddItem_Native(0x009BC030); UInt32 GetOrCreateRefrHandle(TESObjectREFR* ref) { @@ -166,7 +166,8 @@ bool Actor::VisitFactions(FactionVisitor & visitor) return false; } -RelocPtr g_crosshairRefHandleHolder(0x02F011D0); +// 7C86FE404A52BB28611337DE8714FD037A8B834B+17 +RelocPtr g_crosshairRefHandleHolder(0x02F9CA70); CrosshairRefHandleHolder * CrosshairRefHandleHolder::GetSingleton(void) { diff --git a/source/fs.dll/skse64/skse64/GameReferences.h b/source/fs.dll/skse64/skse64/GameReferences.h index d6af867c..cbba79e7 100644 --- a/source/fs.dll/skse64/skse64/GameReferences.h +++ b/source/fs.dll/skse64/skse64/GameReferences.h @@ -124,6 +124,8 @@ public: enum { kFlag_Harvested = 0x2000, + + kChange_IsEmpty = 0x00200000, }; // currently none of these have been analyzed @@ -259,12 +261,12 @@ public: void DecRef(); MEMBER_FN_PREFIX(TESObjectREFR); - DEFINE_MEMBER_FN(GetBaseScale, float, 0x0028CC60); - DEFINE_MEMBER_FN(IsOffLimits, bool, 0x0029A330); - // E2B825B476DC5CFBC69E194AA76CB0C049AC78E3+137 - DEFINE_MEMBER_FN(GetWeight, float, 0x002A6FF0); - DEFINE_MEMBER_FN(GetReferenceName, const char *, 0x002961F0); - DEFINE_MEMBER_FN(GetWorldspace, TESWorldSpace*, 0x00299750); + DEFINE_MEMBER_FN(GetBaseScale, float, 0x0029EE80); + DEFINE_MEMBER_FN(IsOffLimits, bool, 0x002AC940); + // 9C5031E1D6707680E2D9E4A717A225C1137FED59+145 + DEFINE_MEMBER_FN(GetWeight, float, 0x002B8D40); + DEFINE_MEMBER_FN(GetReferenceName, const char *, 0x002A8800); + DEFINE_MEMBER_FN(GetWorldspace, TESWorldSpace*, 0x002ABD30); }; STATIC_ASSERT(sizeof(TESObjectREFR) == 0x98); @@ -550,14 +552,15 @@ public: UInt64 unk2A8; // 2A8 MEMBER_FN_PREFIX(Actor); - DEFINE_MEMBER_FN(QueueNiNodeUpdate, void, 0x00693110, bool updateWeight); - DEFINE_MEMBER_FN(HasPerk, bool, 0x005F9E30, BGSPerk * perk); - DEFINE_MEMBER_FN(GetLevel, UInt16, 0x005D62E0); - DEFINE_MEMBER_FN(SetRace, void, 0x00607680, TESRace*, bool isPlayer); - DEFINE_MEMBER_FN(UpdateWeaponAbility, void, 0x006313D0, TESForm*, BaseExtraList * extraData, bool bLeftHand); - DEFINE_MEMBER_FN(UpdateArmorAbility, void, 0x00631360, TESForm*, BaseExtraList * extraData); - DEFINE_MEMBER_FN(IsHostileToActor, bool, 0x005E7E40, Actor * actor); - DEFINE_MEMBER_FN(ResetAI, void, 0x005DB310, UInt32 unk1, UInt32 unk2); + DEFINE_MEMBER_FN(QueueNiNodeUpdate, void, 0x006BBB70, bool updateWeight); + // CC3C9D131FFDF35E82C6D7182C4F9E42A3ED1EF2+28 + DEFINE_MEMBER_FN(HasPerk, bool, 0x00621AA0, BGSPerk * perk); + DEFINE_MEMBER_FN(GetLevel, UInt16, 0x005FB9B0); + DEFINE_MEMBER_FN(SetRace, void, 0x0062FAA0, TESRace*, bool isPlayer); + DEFINE_MEMBER_FN(UpdateWeaponAbility, void, 0x00658070, TESForm*, BaseExtraList * extraData, bool bLeftHand); + DEFINE_MEMBER_FN(UpdateArmorAbility, void, 0x00658000, TESForm*, BaseExtraList * extraData); + DEFINE_MEMBER_FN(IsHostileToActor, bool, 0x0060EBC0, Actor * actor); + DEFINE_MEMBER_FN(ResetAI, void, 0x006019A0, UInt32 unk1, UInt32 unk2); TESForm * GetEquippedObject(bool abLeftHand); void UpdateSkinColor(); @@ -897,10 +900,10 @@ public: } MEMBER_FN_PREFIX(PlayerCharacter); - DEFINE_MEMBER_FN(GetNumTints, UInt32, 0x006B5450, UInt32 tintType); - DEFINE_MEMBER_FN(GetTintMask, TintMask *, 0x006B52A0, UInt32 tintType, UInt32 index); - DEFINE_MEMBER_FN(GetDamage, float, 0x00693050, InventoryEntryData * pForm); - DEFINE_MEMBER_FN(GetArmorValue, float, 0x00692CD0, InventoryEntryData * pForm); + DEFINE_MEMBER_FN(GetNumTints, UInt32, 0x006DEF60, UInt32 tintType); + DEFINE_MEMBER_FN(GetTintMask, TintMask *, 0x006DEDB0, UInt32 tintType, UInt32 index); + DEFINE_MEMBER_FN(GetDamage, float, 0x006BBAB0, InventoryEntryData * pForm); + DEFINE_MEMBER_FN(GetArmorValue, float, 0x006BB740, InventoryEntryData * pForm); }; STATIC_ASSERT(offsetof(PlayerCharacter, userEventEnabledEvent) == 0x2C0); diff --git a/source/fs.dll/skse64/skse64/GameResources.cpp b/source/fs.dll/skse64/skse64/GameResources.cpp index 64e16425..2cf05510 100644 --- a/source/fs.dll/skse64/skse64/GameResources.cpp +++ b/source/fs.dll/skse64/skse64/GameResources.cpp @@ -2,14 +2,14 @@ FaceGenTriDatabase * FaceGenTriDatabase::GetSingleton(void) { - // 515F6D3421B9B5634E8CFA419159BB297C282A3B+3E - static RelocPtr g_FaceGenTriDatabase(0x02F017E8); + // 9FA4657D28964C48501C6FF2E9E8E52D86D2BDEF+3E + static RelocPtr g_FaceGenTriDatabase(0x02F9D080); return *g_FaceGenTriDatabase; } BSFaceGenDB::TRI::DBTraits::Data * FaceGenTriDatabase::GetInvalidEntry(void) { - // 836BA46E0B9EB46A38D8BAD8A4A7D14584D61BB0+8E - static RelocPtr g_FaceGenTriDatabase(0x01DEA01C); - return g_FaceGenTriDatabase.GetPtr(); + // CD3B953DD742EFE4CEFC4ECA602FC9F442434777+A2 + static RelocPtr g_FaceGenTriDatabase_InvalidEntry(0x01E82A40); + return g_FaceGenTriDatabase_InvalidEntry.GetPtr(); } diff --git a/source/fs.dll/skse64/skse64/GameSettings.cpp b/source/fs.dll/skse64/skse64/GameSettings.cpp index 4834480d..09dcf084 100644 --- a/source/fs.dll/skse64/skse64/GameSettings.cpp +++ b/source/fs.dll/skse64/skse64/GameSettings.cpp @@ -1,18 +1,18 @@ #include "GameSettings.h" #include "GameAPI.h" -// 298D0E3E3DDD7D2333475E0B20F931E2ED6A0355+5A -RelocPtr g_iniSettingCollection(0x0301D758); -// 5C8EA66C14C47204F60C72DE345DC6B22BB929B4+52 -RelocPtr g_iniPrefSettingCollection(0x02F6BA48); -// FE086A335E2EB844894F7D900623A149B381723F+6B -RelocPtr g_gameSettingCollection(0x02EC58B0); +// 91546BBAE6D61CD8C6D2021DD28BEB01C32E7178+30 +RelocPtr g_iniSettingCollection(0x030B9558); +// see ??_7INIPrefSettingCollection@@6B@ +RelocPtr g_iniPrefSettingCollection(0x03007810); +// CC0A0629D6A4756EA7CC1819A40AE77FB941F585+14 +RelocPtr g_gameSettingCollection(0x02F61180); // ### we can just look these up // D1E741E48E0181F5A2371C8E8BD02C1F0810BADF+0 -RelocPtr g_mapLocalHeight(0x01DB3ED8); // fMapLocalHeight:MapMenu -// C7928A7F7ACB94729DA4D4011E03D5ADC79160F3+186 -RelocPtr g_localMapMinFrustumWidth(0x01DF5430); +RelocPtr g_mapLocalHeight(0x01E48F48); // fMapLocalHeight:MapMenu +// 2267F2663E2F5F55835C7541D7851DF11A53F787+1A2 +RelocPtr g_localMapMinFrustumWidth(0x01E8A880); UInt32 Setting::GetType(void) const { diff --git a/source/fs.dll/skse64/skse64/GameSettings.h b/source/fs.dll/skse64/skse64/GameSettings.h index 852f7b2f..a5cfc4ea 100644 --- a/source/fs.dll/skse64/skse64/GameSettings.h +++ b/source/fs.dll/skse64/skse64/GameSettings.h @@ -59,7 +59,7 @@ public: Entry items; // 118 MEMBER_FN_PREFIX(SettingCollectionList); - DEFINE_MEMBER_FN(Get_Internal, Setting *, 0x003104D0, const char * name); + DEFINE_MEMBER_FN(Get_Internal, Setting *, 0x00325220, const char * name); Setting * Get(const char * name); }; diff --git a/source/fs.dll/skse64/skse64/GameStreams.h b/source/fs.dll/skse64/skse64/GameStreams.h index 6f0ffcfb..497bb748 100644 --- a/source/fs.dll/skse64/skse64/GameStreams.h +++ b/source/fs.dll/skse64/skse64/GameStreams.h @@ -40,14 +40,14 @@ public: virtual void FunctionSwap(bool swap); MEMBER_FN_PREFIX(NiMemStream); - DEFINE_MEMBER_FN(Construct, NiMemStream *, 0x013120B0); - DEFINE_MEMBER_FN(Destroy, void, 0x01312120); - DEFINE_MEMBER_FN(Seek, void, 0x013121B0, SInt32); + DEFINE_MEMBER_FN(Construct, NiMemStream *, 0x0143AA70); + DEFINE_MEMBER_FN(Destroy, void, 0x0143AAE0); + DEFINE_MEMBER_FN(Seek, void, 0x0143AB70, SInt32); // ??_7NiMemStream@@6B@ + 18 - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00C25660, void); - DEFINE_MEMBER_FN(CopyFrom, UInt32, 0x01312180, void *); + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00C4BEF0, void); + DEFINE_MEMBER_FN(CopyFrom, UInt32, 0x0143AB40, void *); // ??_7NiMemStream@@6B@ + 28 - DEFINE_MEMBER_FN(FunctionSwap, UInt32, 0x013121F0, bool); + DEFINE_MEMBER_FN(FunctionSwap, UInt32, 0x0143ABB0, bool); void * data; // 20 UInt32 offset; // 28 @@ -77,24 +77,21 @@ public: UInt64 offset; // 30 MEMBER_FN_PREFIX(BSResourceNiBinaryStream); - DEFINE_MEMBER_FN(Construct, BSResourceNiBinaryStream *, 0x00C76060, const char * filePath, UInt32 unk1, UInt32 unk2); // unk1 = 0, unk2 = 0 - DEFINE_MEMBER_FN(ReadLine, UInt32, 0x00C765C0, char * dst, UInt32 dstLen, UInt32 terminator); + DEFINE_MEMBER_FN(Construct, BSResourceNiBinaryStream *, 0x00C9F5C0, const char * filePath, UInt32 unk1, UInt32 unk2); // unk1 = 0, unk2 = 0 + DEFINE_MEMBER_FN(ReadLine, UInt32, 0x00C9FB00, char * dst, UInt32 dstLen, UInt32 terminator); - // SE note: it looks like the Read and Write function got inlined? - // Anyway, the readFn and writeFn assigned in ctor are equivalent (in Skyrim32 one just calls the other) - // readFn(object, dst, len) -> object.Read(dst, len), in x64, the parameters match. // E93F9EA10EEEC2FC86D868E75F28A023D7453255+51 - DEFINE_MEMBER_FN(Read, UInt32, 0x00C767B0, void * dst, UInt32 len); + DEFINE_MEMBER_FN(Read, UInt32, 0x00C9FCF0, void * dst, UInt32 len); // E93F9EA10EEEC2FC86D868E75F28A023D7453255+5C - DEFINE_MEMBER_FN(Write, UInt32, 0x00C76820, void * src, UInt32 len); - DEFINE_MEMBER_FN(Destroy, void, 0x00C76340); + DEFINE_MEMBER_FN(Write, UInt32, 0x00C9FD60, void * src, UInt32 len); + DEFINE_MEMBER_FN(Destroy, void, 0x00C9F8A0); - DEFINE_MEMBER_FN(IsValid, bool, 0x00C76480, void); - DEFINE_MEMBER_FN(Seek, void, 0x00C76490, SInt32); + DEFINE_MEMBER_FN(IsValid, bool, 0x00C9F9E0, void); + DEFINE_MEMBER_FN(Seek, void, 0x00C9F9F0, SInt32); // ??_7BSResourceNiBinaryStream@@6B@ + 18 - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00C764E0, void); // return offset; + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00C9FA30, void); // return offset; // ??_7BSResourceNiBinaryStream@@6B@ + 28 - DEFINE_MEMBER_FN(EnableEndianSwap, void, 0x00C76580, bool); + DEFINE_MEMBER_FN(EnableEndianSwap, void, 0x00C9FAC0, bool); UInt32 ReadLine(char * dst, UInt32 dstLen, UInt32 terminator); UInt32 ReadLine_w(wchar_t * dst, UInt32 dstLen, UInt32 terminator); // length in characters diff --git a/source/fs.dll/skse64/skse64/GameThreads.cpp b/source/fs.dll/skse64/skse64/GameThreads.cpp index e00fd3d9..c58686ad 100644 --- a/source/fs.dll/skse64/skse64/GameThreads.cpp +++ b/source/fs.dll/skse64/skse64/GameThreads.cpp @@ -2,7 +2,7 @@ BSTaskPool * BSTaskPool::GetSingleton(void) { - // B474410E5F15240DC8FB7ABE11650955666F7775+91 - static RelocPtr g_taskPool(0x02F38978); + // 7D1E14E40FFCA18609B3FAAD0A5750A26162D096+90 + static RelocPtr g_taskPool(0x02FD48A0); return *g_taskPool; } diff --git a/source/fs.dll/skse64/skse64/GameTypes.h b/source/fs.dll/skse64/skse64/GameTypes.h index 24f20328..83eb96b6 100644 --- a/source/fs.dll/skse64/skse64/GameTypes.h +++ b/source/fs.dll/skse64/skse64/GameTypes.h @@ -79,12 +79,12 @@ public: //void LockForRead(); //void LockForWrite(); MEMBER_FN_PREFIX(BSReadWriteLock); - DEFINE_MEMBER_FN(LockForRead, void, 0x00C072D0); - DEFINE_MEMBER_FN(LockForWrite, void, 0x00C07350); - DEFINE_MEMBER_FN(UnlockRead, void, 0x00C07590); - DEFINE_MEMBER_FN(UnlockWrite, void, 0x00C075A0); - DEFINE_MEMBER_FN(LockForReadAndWrite, void, 0x00C07450); - DEFINE_MEMBER_FN(TryLockForWrite, bool, 0x00C07540); + DEFINE_MEMBER_FN(LockForRead, void, 0x00C2CD50); + DEFINE_MEMBER_FN(LockForWrite, void, 0x00C2CDD0); + DEFINE_MEMBER_FN(UnlockRead, void, 0x00C2D010); + DEFINE_MEMBER_FN(UnlockWrite, void, 0x00C2D020); + DEFINE_MEMBER_FN(LockForReadAndWrite, void, 0x00C2CED0); + DEFINE_MEMBER_FN(TryLockForWrite, bool, 0x00C2CFC0); }; STATIC_ASSERT(sizeof(BSReadWriteLock) == 0x8); @@ -127,14 +127,14 @@ public: const char * data; MEMBER_FN_PREFIX(Ref); - DEFINE_MEMBER_FN(ctor, Ref *, 0x00C28BF0, const char * buf); - // E728381B6B25FD30DF9845889144E86E5CC35A25+38 - DEFINE_MEMBER_FN(ctor_ref, Ref *, 0x00C28C80, const Ref & rhs); - DEFINE_MEMBER_FN(Set, Ref *, 0x00C28D60, const char * buf); - // F3F05A02DE2034133B5965D694745B6369FC557D+F3 - DEFINE_MEMBER_FN(Set_ref, Ref *, 0x00C28E20, const Ref & rhs); - // 77D2390F6DC57138CF0E5266EB5BBB0ACABDFBE3+A0 - DEFINE_MEMBER_FN(Release, void, 0x00C28D40); + DEFINE_MEMBER_FN(ctor, Ref *, 0x00C4F780, const char * buf); + // 31D79EFB15D5E4B34BD32D03A46EAFF65C28ACFB+CB + DEFINE_MEMBER_FN(ctor_ref, Ref *, 0x00C4F830, const Ref & rhs); + DEFINE_MEMBER_FN(Set, Ref *, 0x00C4F910, const char * buf); + // 31D79EFB15D5E4B34BD32D03A46EAFF65C28ACFB+41 + DEFINE_MEMBER_FN(Set_ref, Ref *, 0x00C4F9D0, const Ref & rhs); + // 46F6DC561A3C9677037E58B55951C58A08E41C47+4A + DEFINE_MEMBER_FN(Release, void, 0x00C50B50); Ref(); Ref(const char * buf); @@ -186,7 +186,7 @@ public: const char * Get(void) const; MEMBER_FN_PREFIX(BSString); - DEFINE_MEMBER_FN(Set, bool, 0x000F9E90, const char * str, UInt32 len); // len default 0 + DEFINE_MEMBER_FN(Set, bool, 0x00103D50, const char * str, UInt32 len); // len default 0 private: char * m_data; // 00 diff --git a/source/fs.dll/skse64/skse64/GameUtilities.cpp b/source/fs.dll/skse64/skse64/GameUtilities.cpp index 0f7df3df..5c798d0f 100644 --- a/source/fs.dll/skse64/skse64/GameUtilities.cpp +++ b/source/fs.dll/skse64/skse64/GameUtilities.cpp @@ -1,4 +1,4 @@ #include "skse64/GameUtilities.h" -RelocAddr <_CalculateCRC32_64> CalculateCRC32_64(0x00C06570); -RelocAddr <_CalculateCRC32_32> CalculateCRC32_32(0x00C064F0); +RelocAddr <_CalculateCRC32_64> CalculateCRC32_64(0x00C2C0F0); +RelocAddr <_CalculateCRC32_32> CalculateCRC32_32(0x00C2C070); diff --git a/source/fs.dll/skse64/skse64/Hooks_Camera.cpp b/source/fs.dll/skse64/skse64/Hooks_Camera.cpp index 8ec9d1be..cbfb348c 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Camera.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Camera.cpp @@ -6,7 +6,7 @@ #include "xbyak/xbyak.h" #include -RelocAddr kInstallCameraHook_Base(0x004F5C80); +RelocAddr kInstallCameraHook_Base(0x0050F050); void InstallCameraHook(TESCameraState * oldState, TESCameraState * newState) { diff --git a/source/fs.dll/skse64/skse64/Hooks_Data.cpp b/source/fs.dll/skse64/skse64/Hooks_Data.cpp index 3ae8eb6e..b564b10b 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Data.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Data.cpp @@ -10,7 +10,7 @@ UInt32 DataHandler::LoadScripts_Hook() return ret; } -RelocAddr LoadScripts_Enter(0x005B0120 + 0x3E8); +RelocAddr LoadScripts_Enter(0x005D7A20 + 0x3EB); void Hooks_Data_Commit(void) { diff --git a/source/fs.dll/skse64/skse64/Hooks_Event.cpp b/source/fs.dll/skse64/skse64/Hooks_Event.cpp index ed7acf64..16d1bd07 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Event.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Event.cpp @@ -7,7 +7,7 @@ #include "skse64/PluginManager.h" #include "skse64_common/BranchTrampoline.h" -RelocAddr PlayerControls_ctor_Call(0x005ACC20 + 0xD4B); +RelocAddr PlayerControls_ctor_Call(0x005D3920 + 0xD75); PlayerControls * PlayerControls::ctor_Hook(void) { diff --git a/source/fs.dll/skse64/skse64/Hooks_Gameplay.cpp b/source/fs.dll/skse64/skse64/Hooks_Gameplay.cpp index 7b94e1b9..d902a533 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Gameplay.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Gameplay.cpp @@ -10,11 +10,12 @@ static UInt32 g_forceContainerCategorization = 0; -// 30A34F24A97F91365E1A3F66BF53263DEDF4B0AD+FA -RelocPtr g_containerMode(0x02F4C328); -RelocAddr kHook_ContainerMode_Base(0x0085F0C0); -uintptr_t kHook_ContainerMode_Categories = kHook_ContainerMode_Base + 0x6E; -uintptr_t kHook_ContainerMode_NoCategories = kHook_ContainerMode_Base + 0x82; +// 103A70E32BCD6C07E69BAE82CDD6BFE66E9F6797+3C +RelocPtr g_containerMode(0x02FE8240); +RelocAddr kHook_ContainerMode_Base(0x0088D910); +uintptr_t kHook_ContainerMode_Start = kHook_ContainerMode_Base + 0xAE; +uintptr_t kHook_ContainerMode_Categories = kHook_ContainerMode_Base + 0xB7; +uintptr_t kHook_ContainerMode_NoCategories = kHook_ContainerMode_Base + 0xCB; void Hooks_Gameplay_EnableForceContainerCategorization(bool enable) { @@ -22,19 +23,19 @@ void Hooks_Gameplay_EnableForceContainerCategorization(bool enable) } UInt32 g_invalidateKeywordCache = 0; -RelocAddr kHook_BGSKeyword_Base(0x00333B30); +RelocAddr kHook_BGSKeyword_Base(0x003491C0); uintptr_t kHook_BGSKeyword_Create_Return = kHook_BGSKeyword_Base + 6; // 4C1457C3040DCD34A7E7B2326F1EA2023930C56B+71 -RelocAddr g_gameVersion(0x01544EA0); -RelocAddr kHook_ShowVersion_Offset(0x008EEE10 + 0x78); +RelocAddr g_gameVersion(0x0163D168); +RelocAddr kHook_ShowVersion_Offset(0x0091F210 + 0x78); static char kHook_ShowVersion_FormatString[] = "%s.%d (SKSE64 " __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER) "." __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER_MINOR) "." __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER_BETA) " rel " __PREPRO_TOKEN_STR__(SKSE_VERSION_RELEASEIDX) ")"; -RelocAddr kHook_Crosshair_LookupREFRByHandle_Enter(0x006B0570 + 0x90); +RelocAddr kHook_Crosshair_LookupREFRByHandle_Enter(0x006D9980 + 0x88); NiPointer g_curCrosshairRef; @@ -57,7 +58,7 @@ TESObjectREFR* Hooks_Gameplay_GetCrosshairRef() static UInt8 s_disableMapMenuMouseWheel = 1; -RelocAddr kHook_MapMenuMouseWheel_Enter(0x008DCEA0 + 0x18B); +RelocAddr kHook_MapMenuMouseWheel_Enter(0x0090D530 + 0x187); void Hooks_Gameplay_EnableMapMenuMouseWheel(bool enable) { @@ -99,8 +100,8 @@ void Hooks_Gameplay_Commit(void) HookContainerMode_Code code(codeBuf); g_localTrampoline.EndAlloc(code.getCurr()); - g_branchTrampoline.Write5Branch(kHook_ContainerMode_Base.GetUIntPtr() + 0x65, uintptr_t(code.getCode())); - SafeWrite16(kHook_ContainerMode_Base.GetUIntPtr() + 0x65 + 5, 0x9090); + g_branchTrampoline.Write5Branch(kHook_ContainerMode_Start, uintptr_t(code.getCode())); + SafeWrite16(kHook_ContainerMode_Start + 5, 0x9090); } // read config diff --git a/source/fs.dll/skse64/skse64/Hooks_Handlers.cpp b/source/fs.dll/skse64/skse64/Hooks_Handlers.cpp index b356e6d1..13186f2d 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Handlers.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Handlers.cpp @@ -24,33 +24,33 @@ void Hooks_Handlers_Init(void) } // ??_7WeaponRightSwingHandler@@6B@ -RelocAddr WeaponRightSwingHandler_Vtable(0x01671ED0); +RelocAddr WeaponRightSwingHandler_Vtable(0x01768AD8); // ??_7WeaponLeftSwingHandler@@6B@ -RelocAddr WeaponLeftSwingHandler_Vtable(0x01671EE8); +RelocAddr WeaponLeftSwingHandler_Vtable(0x01768AF0); // ??_7RightHandSpellFireHandler@@6B@ -RelocAddr RightHandSpellFireHandler_Vtable(0x01671F78); +RelocAddr RightHandSpellFireHandler_Vtable(0x01768B80); // ??_7LeftHandSpellFireHandler@@6B@ -RelocAddr LeftHandSpellFireHandler_Vtable(0x01671F60); +RelocAddr LeftHandSpellFireHandler_Vtable(0x01768B68); // ??_7RightHandSpellCastHandler@@6B@ -RelocAddr RightHandSpellCastHandler_Vtable(0x01671FC0); +RelocAddr RightHandSpellCastHandler_Vtable(0x01768BC8); // ??_7LeftHandSpellCastHandler@@6B@ -RelocAddr LeftHandSpellCastHandler_Vtable(0x01671FA8); +RelocAddr LeftHandSpellCastHandler_Vtable(0x01768BB0); // ??_7VoiceSpellFireHandler@@6B@ -RelocAddr VoiceSpellFireHandler_Vtable(0x01671F90); +RelocAddr VoiceSpellFireHandler_Vtable(0x01768B98); // ??_7VoiceSpellCastHandler@@6B@ -RelocAddr VoiceSpellCastHandler_Vtable(0x01671FD8); +RelocAddr VoiceSpellCastHandler_Vtable(0x01768BE0); // ??_7BowDrawnHandler@@6B@ -RelocAddr BowDrawnHandler_Vtable(0x01672308); +RelocAddr BowDrawnHandler_Vtable(0x01768F10); // ??_7BowReleaseHandler@@6B@ -RelocAddr BowReleaseHandler_Vtable(0x01672320); +RelocAddr BowReleaseHandler_Vtable(0x01768F28); // ??_7WeaponBeginDrawRightHandler@@6B@ -RelocAddr WeaponBeginDrawRightHandler_Vtable(0x01671FF0); +RelocAddr WeaponBeginDrawRightHandler_Vtable(0x01768BF8); // ??_7WeaponBeginSheatheRightHandler@@6B@ -RelocAddr WeaponBeginSheatheRightHandler_Vtable(0x01672008); +RelocAddr WeaponBeginSheatheRightHandler_Vtable(0x01768C10); // ??_7RightHandWeaponDrawHandler@@6B@ -RelocAddr RightHandWeaponDrawHandler_Vtable(0x01672020); +RelocAddr RightHandWeaponDrawHandler_Vtable(0x01768C28); // ??_7RightHandWeaponSheatheHandler@@6B@ -RelocAddr RightHandWeaponSheatheHandler_Vtable(0x01672038); +RelocAddr RightHandWeaponSheatheHandler_Vtable(0x01768C40); void Hooks_Handlers_Commit(void) { diff --git a/source/fs.dll/skse64/skse64/Hooks_NetImmerse.cpp b/source/fs.dll/skse64/skse64/Hooks_NetImmerse.cpp index badbd89b..604108ff 100644 --- a/source/fs.dll/skse64/skse64/Hooks_NetImmerse.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_NetImmerse.cpp @@ -11,10 +11,10 @@ #include "xbyak/xbyak.h" // Used by UpdatePlayerTints to create a render target of a particular size -// 799F89E4A13D41B1F88644E1F6AFA5A633684C51+345 -RelocPtr g_tintTextureWidth(0x0302BCC4); -// 799F89E4A13D41B1F88644E1F6AFA5A633684C51+33E -RelocPtr g_tintTextureHeight(0x0302BCC8); +// D55B7565783E557DBA232E15687FDD05C35FE3D1+473 +RelocPtr g_tintTextureWidth(0x030C7444); +// D55B7565783E557DBA232E15687FDD05C35FE3D1+46C +RelocPtr g_tintTextureHeight(0x030C7448); UInt32 g_tintTextureResolution = 512; @@ -32,7 +32,7 @@ struct RenderTargetInfo }; typedef void ( * _CreateRenderTarget)(void * renderTargetManager, UInt64 type, RenderTargetInfo * info); -RelocAddr<_CreateRenderTarget> CreateRenderTarget(0x00D74B60); +RelocAddr<_CreateRenderTarget> CreateRenderTarget(0x00DB18B0); _CreateRenderTarget CreateRenderTarget_Original = nullptr; void CreateRenderTarget_Hook(BSRenderManager ** targetManager, UInt64 type, RenderTargetInfo * info) @@ -65,7 +65,7 @@ void Hooks_NetImmerse_Init(void) } } -RelocAddr UpdateEquipment_Enter(0x00693110 + 0x189); +RelocAddr UpdateEquipment_Enter(0x006BBB70 + 0x197); void Hooks_NetImmerse_Commit(void) { diff --git a/source/fs.dll/skse64/skse64/Hooks_Papyrus.cpp b/source/fs.dll/skse64/skse64/Hooks_Papyrus.cpp index 8d08962f..bc8018dd 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Papyrus.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Papyrus.cpp @@ -69,16 +69,16 @@ #include "xbyak/xbyak.h" typedef void(*_RegisterPapyrusFunctions)(VMClassRegistry ** registry); -RelocAddr<_RegisterPapyrusFunctions> RegisterPapyrusFunctions(0x00980190); -RelocAddr RegisterPapyrusFunctions_Start(0x009204A0 + 0xC7F); +RelocAddr<_RegisterPapyrusFunctions> RegisterPapyrusFunctions(0x009A98F0); +RelocAddr RegisterPapyrusFunctions_Start(0x0094D8E0 + 0xCC3); -RelocAddr UnregisterFromSleep_Enter(0x00925180 + 0x31); -RelocAddr RevertGlobalData_Enter(0x0092B8A0 + 0x22); -RelocAddr RevertGlobalData_Enter2(0x0092BDE0 + 0x190); -RelocAddr SaveRegsSleep_Enter(0x0092E290 + 0x110); -RelocAddr LoadRegsSleep_Enter(0x0092F030 + 0x1E6); +RelocAddr UnregisterFromSleep_Enter(0x00952AF0 + 0x14B); +RelocAddr RevertGlobalData_Enter(0x00959AC0 + 0x22); +RelocAddr RevertGlobalData_Enter2(0x0095A000 + 0x288); +RelocAddr SaveRegsSleep_Enter(0x0095C540 + 0x390); +RelocAddr LoadRegsSleep_Enter(0x0095D620 + 0x2FB); -RelocAddr kDFQueueHook_Base(0x00931470); +RelocAddr kDFQueueHook_Base(0x0095FBD0); uintptr_t kDFQueueHook_HookAddr = kDFQueueHook_Base + 0x6E; uintptr_t kDFQueueHook_Entry_retn = kDFQueueHook_Base + 0x73; @@ -354,7 +354,7 @@ void Hooks_Papyrus_Commit() DelayFunctorQueue_Entry_Code(void * buf) : Xbyak::CodeGenerator(4096, buf) { // Need timeBudget as parameter - movss(xmm0, ptr[rsp + 0xC0]); + movss(xmm0, ptr[rsp + 0xB0]); mov(rax, (uintptr_t)DelayFunctorQueue_Hook); call(rax); diff --git a/source/fs.dll/skse64/skse64/Hooks_SaveLoad.cpp b/source/fs.dll/skse64/skse64/Hooks_SaveLoad.cpp index 66763c22..21eaa34f 100644 --- a/source/fs.dll/skse64/skse64/Hooks_SaveLoad.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_SaveLoad.cpp @@ -124,19 +124,18 @@ UInt8 TESQuest::NewGame_Hook(UInt8 * unk1, UInt8 unk2) return ret; } -RelocAddr SaveGame_HookTarget_Enter(0x00586DE0 + 0x18B); -RelocAddr SaveGame2_HookTarget_Enter(0x005875F0 + 0x138); -RelocAddr LoadGame_HookTarget_Enter(0x0058AE30 + 0x26C); -RelocAddr ProcessEvents_Enter(0x005B2FF0 + 0x7F); -RelocAddr NewGame_Enter(0x008A20E0 + 0x59); -RelocAddr DeleteSaveGame_Enter(0x005794C0 + 0x77); -RelocAddr DeleteSaveGame_Enter2(0x00579590 + 0x17); +RelocAddr SaveGame_HookTarget_Enter(0x005A87C0 + 0x2B3); +RelocAddr LoadGame_HookTarget_Enter(0x005AD3B0 + 0x2C5); +// 691ACD40B8430FBDA081477DEB2A9948ACC235F1+11F +RelocAddr ProcessEvents_Enter(0x005DACE0 + 0x9A); +RelocAddr NewGame_Enter(0x008D3370 + 0x59); +RelocAddr DeleteSaveGame_Enter(0x0059AAE0 + 0x77); +RelocAddr DeleteSaveGame_Enter2(0x0059ABB0 + 0x17); void Hooks_SaveLoad_Commit(void) { // Load & Save g_branchTrampoline.Write5Call(SaveGame_HookTarget_Enter, GetFnAddr(&BGSSaveLoadManager::SaveGame_Hook)); - g_branchTrampoline.Write5Call(SaveGame2_HookTarget_Enter, GetFnAddr(&BGSSaveLoadManager::SaveGame_Hook)); g_branchTrampoline.Write5Call(LoadGame_HookTarget_Enter, GetFnAddr(&BGSSaveLoadManager::LoadGame_Hook)); g_branchTrampoline.Write5Call(ProcessEvents_Enter, GetFnAddr(&BGSSaveLoadManager::ProcessEvents_Hook)); diff --git a/source/fs.dll/skse64/skse64/Hooks_Scaleform.cpp b/source/fs.dll/skse64/skse64/Hooks_Scaleform.cpp index d0d37e81..2c0603fe 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Scaleform.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Scaleform.cpp @@ -209,7 +209,7 @@ public: InputEventDispatcher* pInputEventDispatcher = InputEventDispatcher::GetSingleton(); if (! (pInputEventDispatcher)) return; - + pInputEventDispatcher->AddEventSink(&remapHandler); menuControls->remapMode = true; playerControls->remapMode = true; @@ -460,7 +460,7 @@ public: } #if _DEBUG - _MESSAGE("scaleform: send mod event (%s, %s, %d)", eventName, strArg, numArg); + _MESSAGE("scaleform: send mod event (%s, %s, %f)", eventName, strArg, numArg); #endif BSFixedString aEventName(eventName); @@ -924,7 +924,7 @@ public: }; typedef void * (* _UIOpenJournalMenu)(bool bUnk); -RelocAddr<_UIOpenJournalMenu> UIOpenJournalMenu(0x00000000); +RelocAddr<_UIOpenJournalMenu> UIOpenJournalMenu(0x00924F90); class SKSEScaleform_OpenJournalMenu : public GFxFunctionHandler { @@ -1148,13 +1148,13 @@ public: UInt8 unk30[0x10]; // 30 MEMBER_FN_PREFIX(StandardItemData); - DEFINE_MEMBER_FN(ctor_data, StandardItemData *, 0x00854E40, GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); + DEFINE_MEMBER_FN(ctor_data, StandardItemData *, 0x00882BC0, GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); StandardItemData * ctor_Hook(GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); static uintptr_t GetCtorHookAddress() { - static RelocAddr kCtorHookAddress(0x00856050 + 0x97); + static RelocAddr kCtorHookAddress(0x00883B90 + 0x97); return kCtorHookAddress.GetUIntPtr(); } }; @@ -1203,11 +1203,11 @@ public: MEMBER_FN_PREFIX(MagicItemData); - DEFINE_MEMBER_FN(ctor_data, MagicItemData *, 0x0089E730, GFxMovieView ** movieView, TESForm * pForm, int unk); // unk is ignored by ctor + DEFINE_MEMBER_FN(ctor_data, MagicItemData *, 0x008CF470, GFxMovieView ** movieView, TESForm * pForm, int unk); // unk is ignored by ctor static uintptr_t GetCtorHookAddress() { - static RelocAddr kCtorHookAddress(0x0089FB00 + 0x97); + static RelocAddr kCtorHookAddress(0x008D0A90 + 0x97); return kCtorHookAddress.GetUIntPtr(); } @@ -1241,14 +1241,15 @@ namespace favMenuDataHook struct FavData { GFxMovieView ** movieView; // 00 - UInt32 unk04; // 04 - GFxValue * entryList; // 08 + void * unk04; // 08 + GFxValue * entryList; // 10 }; // 1 - Item - RelocAddr kSetItemData_Base(0x00878850); - uintptr_t kSetItemData_retn = kSetItemData_Base + 0xCA; + RelocAddr kSetItemData_Base(0x008A7F60); + uintptr_t kSetItemData_hook = kSetItemData_Base + 0xC2; + uintptr_t kSetItemData_retn = kSetItemData_Base + 0xC8; void SetItemData(IMenu * menu, GFxValue * dataContainer, InventoryEntryData * objDesc) { @@ -1275,8 +1276,10 @@ namespace favMenuDataHook }; // 2 - Magic - RelocAddr kSetMagicData_Base(0x00879770); - uintptr_t kSetMagicData_retn = kSetMagicData_Base + 0xA1; + + RelocAddr kSetMagicData_Base(0x008A8F70); + uintptr_t kSetMagicData_hook = kSetMagicData_Base + 0x6B; + uintptr_t kSetMagicData_retn = kSetMagicData_Base + 0x71; void SetMagicData(GFxMovieView * movieView, GFxValue * dataContainer, TESForm * form) { @@ -1298,7 +1301,9 @@ namespace favMenuDataHook }; // 3 - VampireLord - RelocAddr kSetVampireData_Base(0x00879B40); + + RelocAddr kSetVampireData_Base(0x008A9200); + uintptr_t kSetVampireData_hook = kSetVampireData_Base + 0x92; uintptr_t kSetVampireData_retn = kSetVampireData_Base + 0x98; } @@ -1306,8 +1311,9 @@ namespace favMenuDataHook namespace enchantMenuDataHook { - RelocAddr kSetData_Base(0x00864C50); - uintptr_t kSetData_retn = kSetData_Base + 0xDF; + RelocAddr kSetData_Base(0x0089C1B0); + uintptr_t kSetData_hook = kSetData_Base + 0x4A1; + uintptr_t kSetData_retn = kSetData_Base + 0x4A6; } // SE: this function has been moved out of the class, so that its address can be obtained @@ -1384,24 +1390,16 @@ void EnchantConstructMenu_CategoryListEntry_SetData_Extended(EnchantConstructMen namespace smithingMenuDataHook { - RelocAddr kSetData_Base(0x00864B00); - - typedef void (__cdecl * _SetData_Hooked)(GFxValue * dataContainer, InventoryEntryData ** pObjDesc, SmithingMenu * menu); - - void SetData_Hooked(GFxValue * dataContainer, InventoryEntryData ** pObjDesc, SmithingMenu * menu) - { - static RelocAddr SetData_Hooked_Address(0x00870700); - ((_SetData_Hooked)(SetData_Hooked_Address.GetUIntPtr())) (dataContainer, pObjDesc, menu); - } + RelocAddr kSetData_Base(0x00892AA0); + uintptr_t kSetData_hook = kSetData_Base + 0xD6; + uintptr_t kSetData_retn = kSetData_Base + 0xDB; - void SetData_Hook(GFxValue * dataContainer, InventoryEntryData ** pObjDesc, SmithingMenu * menu) + const char * SetData_Hook(GFxValue * dataContainer, InventoryEntryData ** pObjDesc, SmithingMenu * menu) { - SetData_Hooked(dataContainer, pObjDesc, menu); + InventoryEntryData * objDesc = *pObjDesc; - if (s_bExtendData && pObjDesc && menu && menu->view) + if(s_bExtendData && objDesc && menu && menu->view) { - InventoryEntryData * objDesc = *pObjDesc; - scaleformExtend::CommonItemData(dataContainer, objDesc->type); scaleformExtend::ItemInfoData(dataContainer, objDesc); scaleformExtend::StandardItemData(dataContainer, objDesc->type); @@ -1414,6 +1412,9 @@ namespace smithingMenuDataHook (*iter)(menu->view, dataContainer, objDesc); } } + + // original code + return CALL_MEMBER_FN(objDesc, GenerateName)(); } } @@ -1421,25 +1422,17 @@ namespace smithingMenuDataHook namespace craftingMenuDataHook { - // 80050DF3D298FB230378FF3D7BC6F6D7BBAA21FB+22D - RelocAddr kSetData_Base(0x00864EF0); - - typedef void (__cdecl * _SetData_Hooked)(GFxValue * dataContainer, ConstructibleObjectMenu::EntryData * entry, ConstructibleObjectMenu * menu); - - void SetData_Hooked(GFxValue * dataContainer, ConstructibleObjectMenu::EntryData * entry, ConstructibleObjectMenu * menu) - { - static RelocAddr SetData_Hooked_Address(0x00870390); - ((_SetData_Hooked)(SetData_Hooked_Address.GetUIntPtr())) (dataContainer, entry, menu); - } + // + RelocAddr kSetData_Base(0x00892FD0); + uintptr_t kSetData_hook = kSetData_Base + 0xC4; + uintptr_t kSetData_retn = kSetData_Base + 0xC9; - void SetData_Hook(GFxValue * dataContainer, ConstructibleObjectMenu::EntryData * entry, ConstructibleObjectMenu * menu) + const char * SetData_Hook(GFxValue * dataContainer, ConstructibleObjectMenu::EntryData * entry, ConstructibleObjectMenu * menu) { - SetData_Hooked(dataContainer, entry, menu); - - if (s_bExtendData && entry && entry->object && menu && menu->view) + if(s_bExtendData && entry && entry->object && menu && menu->view) { - BGSConstructibleObject* object = entry->object; - TESForm* form = object->createdObject; + BGSConstructibleObject * object = entry->object; + TESForm * form = object->createdObject; InventoryEntryData entryData(form, 0); @@ -1453,8 +1446,12 @@ namespace craftingMenuDataHook { if(*iter) (*iter)(menu->view, dataContainer, &entryData); - } + } } + + // original code + TESFullName * fullName = DYNAMIC_CAST(entry->object->createdObject, TESForm, TESFullName); + return fullName ? fullName->GetName() : ""; } } @@ -1462,25 +1459,16 @@ namespace craftingMenuDataHook namespace alchemyMenuDataHook { - // Item data - // 33BD5B22D8D665F5A8DB6AB3EC6EB874A57E3E53+263 - RelocAddr kSetData_Base(0x00864DA0); + // + RelocAddr kSetData_Base(0x00892CE0); + uintptr_t kSetData_hook = kSetData_Base + 0xC6; + uintptr_t kSetData_retn = kSetData_Base + 0xCB; - typedef void (__cdecl * _SetData_Hooked)(GFxValue * dataContainer, AlchemyMenu::EntryData * entry, AlchemyMenu * menu); - - void SetData_Hooked(GFxValue * dataContainer, AlchemyMenu::EntryData * entry, AlchemyMenu * menu) + const char * SetData_Hook(GFxValue * dataContainer, AlchemyMenu::EntryData * entry, AlchemyMenu * menu) { - static RelocAddr SetData_Hooked_Address(0x008704F0); - ((_SetData_Hooked)(SetData_Hooked_Address.GetUIntPtr())) (dataContainer, entry, menu); - } - - void SetData_Hook(GFxValue * dataContainer, AlchemyMenu::EntryData * entry, AlchemyMenu * menu) - { - SetData_Hooked(dataContainer, entry, menu); - - if (s_bExtendData && entry && entry->data && menu && menu->view) + if(s_bExtendData && entry && entry->data && menu && menu->view) { - InventoryEntryData* entryData = entry->data; + InventoryEntryData * entryData = entry->data; scaleformExtend::CommonItemData(dataContainer, entryData->type); scaleformExtend::ItemInfoData(dataContainer, entryData); @@ -1490,45 +1478,40 @@ namespace alchemyMenuDataHook { if(*iter) (*iter)(menu->view, dataContainer, entryData); - } + } } - } + // original code + TESFullName * fullName = DYNAMIC_CAST(entry->data->type, TESForm, TESFullName); + return fullName ? fullName->GetName() : ""; + } // Category arguments // (note: this passes data in arguments to SetCategoriesList. makes it more difficult to extend) - RelocAddr kExtendCategoryArgs_Base(0x00871700); - uintptr_t kExtendCategoryArgs_retn = kExtendCategoryArgs_Base + 0x59D; + RelocAddr kExtendCategoryArgs_Base(0x008A0640); + uintptr_t kExtendCategoryArgs_hook = kExtendCategoryArgs_Base + 0x564; + uintptr_t kExtendCategoryArgs_retn = kExtendCategoryArgs_Base + 0x569; class GFxInvokeHook { public: - // effectArray is added parameter to signature of GFxValue Invoke - // SE: effectArray moved to the end of parameters, for x64 specific efficiency reasons - bool Invoke(void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj, AlchemyEffectCategory* effectArray) + // hijack unused 'result' parameter to pass effectArray + bool Invoke(void * obj, AlchemyEffectCategory * effectArray, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj) { if (s_bExtendAlchemyCategories) scaleformExtend::AlchemyCategoryArgs(effectArray, args, numArgs); // Call hooked func GFxValue::ObjectInterface* p = reinterpret_cast(this); - return p->Invoke(obj, result, name, args, numArgs, isDisplayObj); + return p->Invoke(obj, nullptr, name, args, numArgs, isDisplayObj); } }; - - // Extra unused args explanation: - // This functions hooks Invoke, which uses rcx-r9, and 3 stack parameters (rsp+20, 28 and 30 before the call instruction) - // Our wanted extra parameter, the effectsArray, happened to be at rsp+0x48, so we can add two extra dummy parms for rsp+38 and 40, and then we can access the effectArray - bool ExtendCategoryArgs_Entry_Intermediate(GFxInvokeHook *pthis, void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj, void *, void *, AlchemyEffectCategory* effectArray) - { - return pthis->Invoke(obj, result, name, args, numArgs, isDisplayObj, effectArray); - } } namespace GFxLoaderHook { - RelocPtr kCtor_Base(0x005AE010 + 0xA08); + RelocPtr kCtor_Base(0x005D4EF0 + 0xE91); // WinMain+15 GFxLoader *ctor_Hook(GFxLoader * loader) { @@ -1626,7 +1609,7 @@ void InstallHooks(GFxMovieView * view) globals.SetMember("skse", &skse); } -RelocAddr kInstallHooks_Enter(0x00ECE790 + 0x1D9); +RelocAddr kInstallHooks_Enter(0x00F11C60 + 0x1DD); void InstallHooks_Entry(GFxMovieView *pthis, UInt32 unk) { @@ -1692,30 +1675,27 @@ void Hooks_Scaleform_Commit(void) SetItemDataEntry_Code code(codeBuf); g_localTrampoline.EndAlloc(code.getCurr()); - g_branchTrampoline.Write5Branch(favMenuDataHook::kSetItemData_Base.GetUIntPtr() + 0xC4, uintptr_t(code.getCode())); - SafeWrite8(favMenuDataHook::kSetItemData_Base.GetUIntPtr() + 0xC4 + 5, 0x90); + g_branchTrampoline.Write5Branch(favMenuDataHook::kSetItemData_hook, uintptr_t(code.getCode())); + SafeWrite8(favMenuDataHook::kSetItemData_hook + 5, 0x90); } { struct SetMagicData_Entry_Code : Xbyak::CodeGenerator { SetMagicData_Entry_Code(void * buf) : Xbyak::CodeGenerator(4096, buf) { - // r15: FavData* (not this, because this function was inlined in the above one) - // rbp-9: data container - // rsi: TESForm* // The hooked call (overwritten code) movieView->CreateObject(containerObj,0,0,0) call(ptr[rax + 0x68]); // insert call to our data extend function - mov(rcx, ptr[r15]); - mov(rcx, ptr[rcx]); - lea(rdx, ptr[rbp - 0x9]); - mov(r8, rsi); + mov(rcx, ptr[rdi]); + mov(rcx, ptr[rcx]); // GFxMovieView * view + lea(rdx, ptr[rbp - 0x30]); // GFxValue * dataContainer + mov(r8, rbx); // TESForm * form mov(rax, (uintptr_t)favMenuDataHook::SetMagicData); call(rax); // The other overwritten instruction and return to original code - mov(rcx, rsi); + mov(rcx, rbx); jmp(ptr[rip]); dq(favMenuDataHook::kSetMagicData_retn); } @@ -1725,8 +1705,8 @@ void Hooks_Scaleform_Commit(void) SetMagicData_Entry_Code code(codeBuf); g_localTrampoline.EndAlloc(code.getCurr()); - g_branchTrampoline.Write5Branch(favMenuDataHook::kSetMagicData_Base.GetUIntPtr() + 0x9B, uintptr_t(code.getCode())); - SafeWrite8(favMenuDataHook::kSetMagicData_Base.GetUIntPtr() + 0x9B + 5, 0x90); + g_branchTrampoline.Write5Branch(favMenuDataHook::kSetMagicData_hook, uintptr_t(code.getCode())); + SafeWrite8(favMenuDataHook::kSetMagicData_hook + 5, 0x90); } { @@ -1758,8 +1738,8 @@ void Hooks_Scaleform_Commit(void) SetVampireData_Entry_Code code(codeBuf); g_localTrampoline.EndAlloc(code.getCurr()); - g_branchTrampoline.Write5Branch(favMenuDataHook::kSetVampireData_Base.GetUIntPtr() + 0x92, uintptr_t(code.getCode())); - SafeWrite8(favMenuDataHook::kSetVampireData_Base.GetUIntPtr() + 0x92 + 5, 0x90); + g_branchTrampoline.Write5Branch(favMenuDataHook::kSetVampireData_hook, uintptr_t(code.getCode())); + SafeWrite8(favMenuDataHook::kSetVampireData_hook + 5, 0x90); } // end of fav menu data hooks @@ -1783,14 +1763,91 @@ void Hooks_Scaleform_Commit(void) SetDataEntry_Code code(codeBuf); g_localTrampoline.EndAlloc(code.getCurr()); - g_branchTrampoline.Write5Branch(enchantMenuDataHook::kSetData_Base.GetUIntPtr() + 0xDA, uintptr_t(code.getCode())); + g_branchTrampoline.Write5Branch(enchantMenuDataHook::kSetData_hook, uintptr_t(code.getCode())); } - g_branchTrampoline.Write5Call(smithingMenuDataHook::kSetData_Base.GetUIntPtr() + 0xDD, (uintptr_t)smithingMenuDataHook::SetData_Hook); - g_branchTrampoline.Write5Call(craftingMenuDataHook::kSetData_Base.GetUIntPtr() + 0xDD, (uintptr_t)craftingMenuDataHook::SetData_Hook); - g_branchTrampoline.Write5Call(alchemyMenuDataHook::kSetData_Base.GetUIntPtr() + 0xDD, (uintptr_t)alchemyMenuDataHook::SetData_Hook); - // The call here instead of branch like in SKSE32 is not an error. This patch doesn't need asm anymore (look at alchemyMenuDataHook::ExtendCategoryArgs_Entry_Intermediate for more info) - g_branchTrampoline.Write5Call(alchemyMenuDataHook::kExtendCategoryArgs_Base.GetUIntPtr() + 0x598, (uintptr_t)alchemyMenuDataHook::ExtendCategoryArgs_Entry_Intermediate); + { + struct SmithingMenuHook : Xbyak::CodeGenerator { + SmithingMenuHook(void * buf) : Xbyak::CodeGenerator(4096, buf) + { + lea(rcx, ptr[rbp - 0x48]); // GFxValue * + mov(rdx, rbx); // InventoryEntryData ** + mov(r8, r14); // SmithingMenu * + mov(rax, (uintptr_t)smithingMenuDataHook::SetData_Hook); + call(rax); + + jmp(ptr[rip]); + dq(smithingMenuDataHook::kSetData_retn); + } + }; + + void * codeBuf = g_localTrampoline.StartAlloc(); + SmithingMenuHook code(codeBuf); + g_localTrampoline.EndAlloc(code.getCurr()); + + g_branchTrampoline.Write5Branch(smithingMenuDataHook::kSetData_hook, uintptr_t(code.getCode())); + } + + { + struct CraftingMenuHook : Xbyak::CodeGenerator { + CraftingMenuHook(void * buf) : Xbyak::CodeGenerator(4096, buf) + { + lea(rcx, ptr[rbp - 0x38]); // GFxValue * + mov(rdx, rbx); // ConstructibleObjectMenu::EntryData * + mov(r8, r14); // ConstructibleObjectMenu * + mov(rax, (uintptr_t)craftingMenuDataHook::SetData_Hook); + call(rax); + + jmp(ptr[rip]); + dq(craftingMenuDataHook::kSetData_retn); + } + }; + + void * codeBuf = g_localTrampoline.StartAlloc(); + CraftingMenuHook code(codeBuf); + g_localTrampoline.EndAlloc(code.getCurr()); + + g_branchTrampoline.Write5Branch(craftingMenuDataHook::kSetData_hook, uintptr_t(code.getCode())); + } + + { + struct AlchemyMenuHook : Xbyak::CodeGenerator { + AlchemyMenuHook(void * buf) : Xbyak::CodeGenerator(4096, buf) + { + lea(rcx, ptr[rbp - 0x38]); // GFxValue * + mov(rdx, rbx); // AlchemyMenu::EntryData * + mov(r8, r14); // AlchemyMenu * + mov(rax, (uintptr_t)alchemyMenuDataHook::SetData_Hook); + call(rax); + + jmp(ptr[rip]); + dq(alchemyMenuDataHook::kSetData_retn); + } + }; + + void * codeBuf = g_localTrampoline.StartAlloc(); + AlchemyMenuHook code(codeBuf); + g_localTrampoline.EndAlloc(code.getCurr()); + + g_branchTrampoline.Write5Branch(alchemyMenuDataHook::kSetData_hook, uintptr_t(code.getCode())); + } + + { + struct AlchemyCategoryHook : Xbyak::CodeGenerator { + AlchemyCategoryHook(void * buf) : Xbyak::CodeGenerator(4096, buf) + { + mov(r8, ptr[rbp - 0x69]); // overwrite zero in 'result' param + mov(rax, (uintptr_t)GetFnAddr(&alchemyMenuDataHook::GFxInvokeHook::Invoke)); + jmp(rax); + } + }; + + void * codeBuf = g_localTrampoline.StartAlloc(); + AlchemyCategoryHook code(codeBuf); + g_localTrampoline.EndAlloc(code.getCurr()); + + g_branchTrampoline.Write5Call(alchemyMenuDataHook::kExtendCategoryArgs_hook, uintptr_t(code.getCode())); + } // End of crafting menu data hooks // gfxloader creation hook diff --git a/source/fs.dll/skse64/skse64/Hooks_Threads.cpp b/source/fs.dll/skse64/skse64/Hooks_Threads.cpp index 911483f1..fee70fc3 100644 --- a/source/fs.dll/skse64/skse64/Hooks_Threads.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_Threads.cpp @@ -44,8 +44,9 @@ void Hooks_Threads_Init(void) } -RelocAddr ProcessTasks_HookTarget_Enter(0x005B2FF0 + 0x6B8); -RelocAddr ProcessTasks_HookTarget_Enter2(0x005B44C0 + 0x1C); +// 691ACD40B8430FBDA081477DEB2A9948ACC235F1+11F +RelocAddr ProcessTasks_HookTarget_Enter(0x005DACE0 + 0xB97); +RelocAddr ProcessTasks_HookTarget_Enter2(0x005DC810 + 0x1C); void Hooks_Threads_Commit(void) { diff --git a/source/fs.dll/skse64/skse64/Hooks_UI.cpp b/source/fs.dll/skse64/skse64/Hooks_UI.cpp index 9b32671f..9847ec1a 100644 --- a/source/fs.dll/skse64/skse64/Hooks_UI.cpp +++ b/source/fs.dll/skse64/skse64/Hooks_UI.cpp @@ -79,7 +79,7 @@ void TaskInterface::AddUITask(UIDelegate_v1* task) } } -RelocAddr ProcessEventQueue_HookTarget_Enter(0x00EBE630 + 0xA14); +RelocAddr ProcessEventQueue_HookTarget_Enter(0x00F05AF0 + 0xAB5); void Hooks_UI_Commit(void) { diff --git a/source/fs.dll/skse64/skse64/NiExtraData.cpp b/source/fs.dll/skse64/skse64/NiExtraData.cpp index 105c0dff..1c078fd0 100644 --- a/source/fs.dll/skse64/skse64/NiExtraData.cpp +++ b/source/fs.dll/skse64/skse64/NiExtraData.cpp @@ -2,13 +2,13 @@ #include "skse64/NiGeometry.h" // ??_7BSFaceGenBaseMorphExtraData@@6B@ -RelocAddr s_BSFaceGenBaseMorphExtraDataVtbl(0x01601508); +RelocAddr s_BSFaceGenBaseMorphExtraDataVtbl(0x016F9F80); // ??_7NiStringsExtraData@@6B@ -RelocAddr s_NiStringsExtraDataVtbl(0x01766B50); +RelocAddr s_NiStringsExtraDataVtbl(0x01857ED0); // ??_7NiBinaryExtraData@@6B@ -RelocAddr s_NiBinaryExtraDataVtbl(0x0176B0B0); +RelocAddr s_NiBinaryExtraDataVtbl(0x0185C7B8); // ??_7NiBooleanExtraData@@6B@ -RelocAddr s_NiBooleanExtraDataVtbl(0x0176B240); +RelocAddr s_NiBooleanExtraDataVtbl(0x0185C970); NiExtraData* NiExtraData::Create(UInt32 size, uintptr_t vtbl) { diff --git a/source/fs.dll/skse64/skse64/NiExtraData.h b/source/fs.dll/skse64/skse64/NiExtraData.h index 3414ccc8..7a149fff 100644 --- a/source/fs.dll/skse64/skse64/NiExtraData.h +++ b/source/fs.dll/skse64/skse64/NiExtraData.h @@ -220,12 +220,8 @@ public: UInt64 unk220[2]; // 220 MEMBER_FN_PREFIX(BSFaceGenAnimationData); - DEFINE_MEMBER_FN(SetExpression, void, 0x003C3F00, UInt32 type, float value); - // SE: commented calls have been inlined. Provided alternatives as normal methods. - //DEFINE_MEMBER_FN(SetPhonome, void, 0x00000000, UInt32 type, float value); - //DEFINE_MEMBER_FN(SetModifier, void, 0x00000000, UInt32 type, float value); - //DEFINE_MEMBER_FN(SetCustom, void, 0x00000000, UInt32 type, float value); - DEFINE_MEMBER_FN(Reset, void, 0x003C38E0, float value, UInt8 unk1, UInt8 unk2, UInt8 unk3, UInt8 unk4); + DEFINE_MEMBER_FN(SetExpression, void, 0x003DB7F0, UInt32 type, float value); + DEFINE_MEMBER_FN(Reset, void, 0x003DB0F0, float value, UInt8 unk1, UInt8 unk2, UInt8 unk3, UInt8 unk4); // Alternatives to inlined functions void SetPhonome(UInt32 type, float value) diff --git a/source/fs.dll/skse64/skse64/NiGeometry.cpp b/source/fs.dll/skse64/skse64/NiGeometry.cpp index cd734c94..6aae200f 100644 --- a/source/fs.dll/skse64/skse64/NiGeometry.cpp +++ b/source/fs.dll/skse64/skse64/NiGeometry.cpp @@ -1,14 +1,16 @@ #include "skse64/NiGeometry.h" #include "skse64/GameAPI.h" -RelocAddr<_CreateBSTriShape> CreateBSTriShape(0x00C67490); -RelocAddr<_CreateBSDynamicTriShape> CreateBSDynamicTriShape(0x00C72180); +// 4772884F2DDD41847925EAA949727085D82940A1+401 +RelocAddr<_CreateBSTriShape> CreateBSTriShape(0x00C90560); +// 4772884F2DDD41847925EAA949727085D82940A1+414 +RelocAddr<_CreateBSDynamicTriShape> CreateBSDynamicTriShape(0x00C9B850); // ??_7NiTriShape@@6B@ -static const RelocPtr s_NiTriShapeVtbl(0x0176D060); +static const RelocPtr s_NiTriShapeVtbl(0x0185E998); // ??_7NiTriStrips@@6B@ -static const RelocPtr s_NiTriStripsVtbl(0x0176D5A0); +static const RelocPtr s_NiTriStripsVtbl(0x0185EF50); void NiGeometryData::AllocateVerts(UInt32 numVerts) { @@ -63,11 +65,11 @@ NiSkinInstance * NiSkinInstance::Create() BSDismemberSkinInstance * BSDismemberSkinInstance::Create() { - void* memory = Heap_Allocate(sizeof(BSDismemberSkinInstance)); - memset(memory, 0, sizeof(BSDismemberSkinInstance)); - BSDismemberSkinInstance* xData = (BSDismemberSkinInstance*)memory; - CALL_MEMBER_FN(xData, ctor)(); - return xData; + typedef BSDismemberSkinInstance * (*_BSDismemberSkinInstance_Create)(); + // 4772884F2DDD41847925EAA949727085D82940A1+2E4 + static RelocAddr <_BSDismemberSkinInstance_Create> BSDismemberSkinInstance_Create(0x00C947A0); + + return BSDismemberSkinInstance_Create(); } NiTriShape * NiTriShape::Create(NiTriShapeData * geometry) diff --git a/source/fs.dll/skse64/skse64/NiGeometry.h b/source/fs.dll/skse64/skse64/NiGeometry.h index d37edd44..b0c06235 100644 --- a/source/fs.dll/skse64/skse64/NiGeometry.h +++ b/source/fs.dll/skse64/skse64/NiGeometry.h @@ -39,8 +39,8 @@ public: class NiTriBasedGeom : public NiGeometry { public: - // 2280019D608FD35C9B8EB465875A37FBCC37C462+E4 - DEFINE_MEMBER_FN_1(ctor, NiTriBasedGeom *, 0x00C91440, NiTriShapeData * geometry); + // 9D070CBFB7F7B861F270D5D29E210A479261131B+C2 + DEFINE_MEMBER_FN_1(ctor, NiTriBasedGeom *, 0x00CBD670, NiTriShapeData * geometry); }; class NiTriShape : public NiTriBasedGeom @@ -129,8 +129,8 @@ public: UInt32 unk178; // 178 UInt32 unk17C; // 17C - // C33CC4D0EB586CB83500C260EE681221A345C5AE+FF - DEFINE_MEMBER_FN_0(ctor, BSDynamicTriShape *, 0x00C72300); + // + DEFINE_MEMBER_FN_0(ctor, BSDynamicTriShape *, 0x00C9B9D0); }; STATIC_ASSERT(sizeof(BSDynamicTriShape) == 0x180); @@ -397,8 +397,6 @@ public: NiTransform m_kRootParentToSkin; // 0C BoneData * m_pkBoneData; // 40 UInt32 m_uiBones; // 44 - - // ctor - AD4780 }; STATIC_ASSERT(sizeof(NiSkinData::BoneVertData) == 0x08); @@ -427,8 +425,8 @@ public: NiSkinInstance * Clone(); MEMBER_FN_PREFIX(NiSkinInstance); - DEFINE_MEMBER_FN(Copy, NiSkinInstance*, 0x00C52750); - DEFINE_MEMBER_FN(ctor, NiSkinInstance *, 0x00C7EB60); + DEFINE_MEMBER_FN(Copy, NiSkinInstance*, 0x00C7ACC0); + DEFINE_MEMBER_FN(ctor, NiSkinInstance *, 0x00CA8A00); }; STATIC_ASSERT(offsetof(NiSkinInstance, lock) == 0x60); STATIC_ASSERT(sizeof(NiSkinInstance) == 0x88); @@ -445,7 +443,6 @@ public: static BSDismemberSkinInstance * Create(); - MEMBER_FN_PREFIX(BSDismemberSkinInstance); - DEFINE_MEMBER_FN(ctor, BSDismemberSkinInstance *, 0x00C6BC70); + // standalone constructor was inlined }; STATIC_ASSERT(sizeof(BSDismemberSkinInstance) == 0xA0); diff --git a/source/fs.dll/skse64/skse64/NiMaterial.cpp b/source/fs.dll/skse64/skse64/NiMaterial.cpp index b52dc544..12692b1d 100644 --- a/source/fs.dll/skse64/skse64/NiMaterial.cpp +++ b/source/fs.dll/skse64/skse64/NiMaterial.cpp @@ -3,9 +3,9 @@ #include "skse64/GameObjects.h" // 96D2EFF152717F366F7EAAA62CAD7EB12855423D+47 -RelocAddr<_CreateShaderMaterial> CreateShaderMaterial(0x012CFBC0); +RelocAddr<_CreateShaderMaterial> CreateShaderMaterial(0x013F4670); -RelocAddr<_CreateFacegenTintMaterial> CreateFacegenTintMaterial(0x012D26F0); +RelocAddr<_CreateFacegenTintMaterial> CreateFacegenTintMaterial(0x013F7170); void BSLightingShaderMaterial::SetTextureSet(BSTextureSet * newSet) { diff --git a/source/fs.dll/skse64/skse64/NiMaterial.h b/source/fs.dll/skse64/skse64/NiMaterial.h index 8dac2f89..5a608f47 100644 --- a/source/fs.dll/skse64/skse64/NiMaterial.h +++ b/source/fs.dll/skse64/skse64/NiMaterial.h @@ -118,8 +118,8 @@ public: void SetTextureSet(BSTextureSet * textureSet); MEMBER_FN_PREFIX(BSLightingShaderMaterial); - DEFINE_MEMBER_FN(CopyFrom, void, 0x012CEF40, BSLightingShaderMaterial * other); - DEFINE_MEMBER_FN(dtor_base, void, 0x012CEDE0); + DEFINE_MEMBER_FN(CopyFrom, void, 0x013F3AE0, BSLightingShaderMaterial * other); + DEFINE_MEMBER_FN(dtor_base, void, 0x013F3980); }; STATIC_ASSERT(sizeof(BSLightingShaderMaterial) == 0xA0); @@ -131,7 +131,8 @@ public: NiTexturePtr unkA0; // A0 inited to 0 NiTexturePtr unkA8; // A8 inited to 0 - DEFINE_MEMBER_FN(dtor, void, 0x012D0450); + // uses ??_7BSLightingShaderMaterialEye@@6B@ at +17 + DEFINE_MEMBER_FN(dtor, void, 0x013F5490); }; class BSLightingShaderMaterialEnvmap : public BSLightingShaderMaterial @@ -142,8 +143,8 @@ public: NiTexturePtr unkA0; // A0 inited to 0 NiTexturePtr unkA8; // A8 inited to 0 - // A3E31C7F999C7F658388C63EFE1489AE31F17A6B+389 - DEFINE_MEMBER_FN(dtor, void, 0x012D01F0); + // 7EF3019D0F8B78F82664DFE78C15204CD5C8C2B9+392 + DEFINE_MEMBER_FN(dtor, void, 0x013F4DB0); }; class BSLightingShaderMaterialFacegen : public BSLightingShaderMaterial @@ -156,7 +157,7 @@ public: NiTexturePtr unkB0; // B0 inited to 0 // uses ??_7BSLightingShaderMaterialFacegen@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x012D1FB0); + DEFINE_MEMBER_FN(dtor, void, 0x013F6A80); }; class BSLightingShaderMaterialGlowmap : public BSLightingShaderMaterial @@ -167,7 +168,7 @@ public: NiTexturePtr glowMap; // A0 // uses ??_7BSLightingShaderMaterialGlowmap@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x012D1050); + DEFINE_MEMBER_FN(dtor, void, 0x013F5B90); }; class BSLightingShaderMaterialParallax : public BSLightingShaderMaterial @@ -178,7 +179,7 @@ public: NiTexturePtr unkA0; // A0 // uses ??_7BSLightingShaderMaterialParallax@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x012D14F0); + DEFINE_MEMBER_FN(dtor, void, 0x013F6010); }; class BSLightingShaderMaterialMultiLayerParallax : public BSLightingShaderMaterial @@ -191,7 +192,7 @@ public: NiTexturePtr unkB0; // A0 // uses ??_7BSLightingShaderMaterialMultiLayerParallax@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x012D3B40); + DEFINE_MEMBER_FN(dtor, void, 0x013F84F0); }; class BSLightingShaderMaterialParallaxOcc : public BSLightingShaderMaterial @@ -202,7 +203,7 @@ public: NiTexturePtr unkA0; // A0 // uses ??_7BSLightingShaderMaterialParallaxOcc@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x012D1990); + DEFINE_MEMBER_FN(dtor, void, 0x013F6490); }; class BSLightingShaderMaterialFacegenTint : public BSLightingShaderMaterial @@ -228,4 +229,3 @@ extern RelocAddr<_CreateShaderMaterial> CreateShaderMaterial; // This is actually vtable+8 but it has no dependency on the 'this' ptr typedef BSLightingShaderMaterialFacegenTint * (*_CreateFacegenTintMaterial)(); extern RelocAddr<_CreateFacegenTintMaterial> CreateFacegenTintMaterial; - diff --git a/source/fs.dll/skse64/skse64/NiNodes.cpp b/source/fs.dll/skse64/skse64/NiNodes.cpp index 49dffca6..969ff56c 100644 --- a/source/fs.dll/skse64/skse64/NiNodes.cpp +++ b/source/fs.dll/skse64/skse64/NiNodes.cpp @@ -1,24 +1,14 @@ #include "skse64/NiNodes.h" #include "skse64/GameObjects.h" -const _GetBoneNames GetBoneNames = (_GetBoneNames)0x00000000; // Builds the skeleton node name list if it doesn't exist -const _GetNodeByName GetNodeByName = (_GetNodeByName)0x00000000; -const _GetNodeNameByWeaponType GetNodeNameByWeaponType = (_GetNodeNameByWeaponType)0x00000000; -const _GetInternalNode GetInternalNode = (_GetInternalNode)0x00000000; -const _SwapNodeParent SwapNodeParent = (_SwapNodeParent)0x00000000; - NiBoneNames * NiBoneNames::GetSingleton(void) { - return (NiBoneNames *)0x00000000; + // 33EBA690BF2A27ACE16840951CA740822F8A4756+9A + static RelocAddr addr(0x01F59E10); + return addr; } -NiWeaponNodes * NiWeaponNodes::GetSingleton(void) -{ - return (NiWeaponNodes *)0x00000000; -} - - -NiNode * NiNode::Create(UInt32 arrBufLen) +NiNode * NiNode::Create(UInt16 arrBufLen) { void* memory = Heap_Allocate(sizeof(NiNode)); memset(memory, 0, sizeof(NiNode)); diff --git a/source/fs.dll/skse64/skse64/NiNodes.h b/source/fs.dll/skse64/skse64/NiNodes.h index 8dd740f2..247fc28f 100644 --- a/source/fs.dll/skse64/skse64/NiNodes.h +++ b/source/fs.dll/skse64/skse64/NiNodes.h @@ -23,9 +23,9 @@ public: NiTArray m_children; // 110 - static NiNode * Create(UInt32 arrBufLen = 0); + static NiNode * Create(UInt16 arrBufLen = 0); - DEFINE_MEMBER_FN_1(ctor, NiNode*, 0x00C57A60, UInt16 arrBufLen); + DEFINE_MEMBER_FN_1(ctor, NiNode*, 0x00C7FD70, UInt16 arrBufLen); }; STATIC_ASSERT(sizeof(NiNode) == 0x128); @@ -37,7 +37,8 @@ public: static BSFadeNode * Create(); - DEFINE_MEMBER_FN_0(ctor, BSFadeNode *, 0x0128F900); + // 905B699D46B52EE8B3BD44B9DAFBC2F728A310B5+81 + DEFINE_MEMBER_FN_0(ctor, BSFadeNode *, 0x013B6440); }; STATIC_ASSERT(sizeof(BSFadeNode) == 0x158); @@ -67,7 +68,7 @@ public: }; MEMBER_FN_PREFIX(BSFaceGenNiNode); - DEFINE_MEMBER_FN(AdjustHeadMorph, void, 0x003D90E0, UInt32 unk04, UInt32 unk08, float delta); + DEFINE_MEMBER_FN(AdjustHeadMorph, void, 0x003F1300, UInt32 unk04, UInt32 unk08, float delta); }; //STATIC_ASSERT(sizeof(BSFaceGenNiNode) == 0xEC); @@ -153,10 +154,6 @@ public: NiNode * niNode; // 238 MEMBER_FN_PREFIX(LocalMapCullingProcess); - DEFINE_MEMBER_FN(ctor, void, 0x00000000); - DEFINE_MEMBER_FN(CreateMapTarget, BSRenderTargetGroup **, 0x00000000, UInt32 width, UInt32 height); - DEFINE_MEMBER_FN(Init, void, 0x00000000); - DEFINE_MEMBER_FN(Process, void, 0x00000000); }; //STATIC_ASSERT(offsetof(LocalMapCullingProcess, localMapCamera) == 0x170); @@ -256,6 +253,7 @@ public: BSFixedString animationGraphVariables[101]; }; +// this is just part of NiBoneNames starting at offset 0xB0 class NiWeaponNodes { public: @@ -275,22 +273,5 @@ public: kNumTypes }; - static NiWeaponNodes * GetSingleton(void); - BSFixedString nodes[kNumTypes]; }; - -typedef NiBoneNames * (* _GetBoneNames)(void); -extern const _GetBoneNames GetBoneNames; - -typedef NiAVObject * (* _GetNodeByName)(NiNode * parent, BSFixedString nodeName, UInt8 unk1); -extern const _GetNodeByName GetNodeByName; - -typedef BSFixedString (* _GetNodeNameByWeaponType)(UInt32 weaponType); -extern const _GetNodeNameByWeaponType GetNodeNameByWeaponType; - -typedef BSFixedString (* _GetInternalNode)(UInt32 type, UInt8 unk1); -extern const _GetInternalNode GetInternalNode; - -typedef UInt8 (* _SwapNodeParent)(NiNode * skeleton, BSFixedString sourceNode, BSFixedString destNode, UInt8 unk1); -extern const _SwapNodeParent SwapNodeParent; diff --git a/source/fs.dll/skse64/skse64/NiObjects.cpp b/source/fs.dll/skse64/skse64/NiObjects.cpp index 8f34b08e..e27c98a1 100644 --- a/source/fs.dll/skse64/skse64/NiObjects.cpp +++ b/source/fs.dll/skse64/skse64/NiObjects.cpp @@ -1,15 +1,15 @@ #include "skse64/NiObjects.h" #include "skse64/NiExtraData.h" -// A941556DD95C558F6FC490138ACEA2962E9A4F8D+2E -RelocPtr g_worldToCamMatrix(0x02F4C910); -// A941556DD95C558F6FC490138ACEA2962E9A4F8D+B0 -RelocPtr> g_viewPort(0x02F4DED0); +// 2789403034E226069B9EC04A8AC7BD367AF61384+BC +RelocPtr g_worldToCamMatrix(0x02FE8840); +// 2789403034E226069B9EC04A8AC7BD367AF61384+13E +RelocPtr> g_viewPort(0x02FE9DE8); -RelocAddr<_WorldPtToScreenPt3_Internal> WorldPtToScreenPt3_Internal(0x00C66580); +RelocAddr<_WorldPtToScreenPt3_Internal> WorldPtToScreenPt3_Internal(0x00C8F5B0); -RelocAddr<_NiAllocate> NiAllocate(0x00C24750); -RelocAddr<_NiFree> NiFree(0x00C249B0); +RelocAddr<_NiAllocate> NiAllocate(0x00C4AF80); +RelocAddr<_NiFree> NiFree(0x00C4B220); void NiRefObject::IncRef(void) { diff --git a/source/fs.dll/skse64/skse64/NiObjects.h b/source/fs.dll/skse64/skse64/NiObjects.h index 21a86181..5733d216 100644 --- a/source/fs.dll/skse64/skse64/NiObjects.h +++ b/source/fs.dll/skse64/skse64/NiObjects.h @@ -9,8 +9,6 @@ // generally other children should go in other files // especially if they can be grouped -// SE notice: all definitions updated except BSRenderTargetGroup - class NiCloningProcess; class NiStream; class NiObjectGroup; @@ -125,7 +123,7 @@ public: MEMBER_FN_PREFIX(NiObject); - DEFINE_MEMBER_FN(DeepCopy, NiStream *, 0x00C529A0, NiObject ** result); + DEFINE_MEMBER_FN(DeepCopy, NiStream *, 0x00C7AEB0, NiObject ** result); }; STATIC_ASSERT(sizeof(NiObject) == 0x10); @@ -220,8 +218,8 @@ public: UInt8 pad10A[6]; // 10A MEMBER_FN_PREFIX(NiAVObject); - // 3239A102C6E8818F0FBFEF58A1B6EA724A237258+26 - DEFINE_MEMBER_FN(UpdateNode, void, 0x00C56B50, ControllerUpdateContext * ctx); + // A5B2FC7D42E72BA4F6A679BAC0BAE17C12A4AFE1+E3 + DEFINE_MEMBER_FN(UpdateNode, void, 0x00C7EDA0, ControllerUpdateContext * ctx); }; STATIC_ASSERT(offsetof(NiAVObject, m_localTransform) == 0x48); STATIC_ASSERT(offsetof(NiAVObject, m_worldTransform) == 0x7C); @@ -243,11 +241,6 @@ public: UInt32 unk28; // 28 UInt32 unk2C; // 2C inited to FFFFFFFF NiRenderedTexture * renderedTexture[4]; // 30 - - static BSRenderTargetGroup * GetPlayerFaceMask(void) - { - return *((BSRenderTargetGroup **)0x00000000); - } }; // 20 @@ -269,10 +262,11 @@ public: UInt32 pad1C; // 1C MEMBER_FN_PREFIX(BSFaceGenModel); - DEFINE_MEMBER_FN(ctor, void, 0x003D4070); - DEFINE_MEMBER_FN(CopyFrom, void, 0x003D4150, BSFaceGenModel * other); - DEFINE_MEMBER_FN(SetModelData, bool, 0x003D47C0, const char * meshPath, void * unk1, UInt8 unk2); - DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x003D4630, BSFixedString * morphName, TESModelTri * triModel, NiAVObject ** headNode, float relative, UInt8 unk1); + DEFINE_MEMBER_FN(ctor, void, 0x003EC1A0); + DEFINE_MEMBER_FN(CopyFrom, void, 0x003EC240, BSFaceGenModel * other); + DEFINE_MEMBER_FN(SetModelData, bool, 0x003EC9C0, const char * meshPath, void * unk1, UInt8 unk2); + DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x003EC820, BSFixedString * morphName, TESModelTri * triModel, NiAVObject ** headNode, float relative, UInt8 unk1); + DEFINE_MEMBER_FN(ApplyRaceMorph, UInt8, 0x003EC6D0, BSFixedString* morphName, TESModelTri* triModel, NiAVObject** headNode, float relative, UInt8 unk1); }; // 18 @@ -283,7 +277,7 @@ public: MEMBER_FN_PREFIX(BSFaceGenMorphData); - DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x003D7860, const char ** morphName, NiAVObject * faceTrishape, float relative, UInt8 unk2); + DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x003EF6C0, const char ** morphName, NiAVObject * faceTrishape, float relative, UInt8 unk2); }; // 20 diff --git a/source/fs.dll/skse64/skse64/NiProperties.h b/source/fs.dll/skse64/skse64/NiProperties.h index 57839d96..d1fa3a46 100644 --- a/source/fs.dll/skse64/skse64/NiProperties.h +++ b/source/fs.dll/skse64/skse64/NiProperties.h @@ -197,10 +197,11 @@ public: // This function seems to fix weird lighting issues when creating armors internally // Not particularly sure what it does but it seems to mess around with a lot material flags MEMBER_FN_PREFIX(BSLightingShaderProperty); - DEFINE_MEMBER_FN(InitializeShader, UInt32, 0x012C56D0, BSGeometry * geometry); - DEFINE_MEMBER_FN(SetMaterial, UInt32, 0x01291D40, BSLightingShaderMaterial * material, bool unk1); // unk1 usually 1 - DEFINE_MEMBER_FN(SetFlags, UInt64, 0x01291C30, UInt8 unk1, UInt8 unk2); - DEFINE_MEMBER_FN(InvalidateMaterial, bool, 0x0019C3B0); - DEFINE_MEMBER_FN(InvalidateTextures, void, 0x012C5AB0, UInt32 unk1); // unk1 usually 0, called after material Releases textures + DEFINE_MEMBER_FN(InitializeShader, UInt32, 0x013E9B20, BSGeometry * geometry); + DEFINE_MEMBER_FN(SetMaterial, UInt32, 0x013B8A20, BSLightingShaderMaterial * material, bool unk1); // unk1 usually 1 + DEFINE_MEMBER_FN(SetFlags, UInt64, 0x013B8910, UInt8 unk1, UInt8 unk2); + // InvalidateMaterial was inlined away + + DEFINE_MEMBER_FN(InvalidateTextures, void, 0x013E9ED0, UInt32 unk1); // unk1 usually 0, called after material Releases textures }; -STATIC_ASSERT(offsetof(BSLightingShaderProperty, emissiveColor) == 0xF0); \ No newline at end of file +STATIC_ASSERT(offsetof(BSLightingShaderProperty, emissiveColor) == 0xF0); diff --git a/source/fs.dll/skse64/skse64/NiRTTI.cpp b/source/fs.dll/skse64/skse64/NiRTTI.cpp index 83c4cac0..9effc04f 100644 --- a/source/fs.dll/skse64/skse64/NiRTTI.cpp +++ b/source/fs.dll/skse64/skse64/NiRTTI.cpp @@ -21,413 +21,413 @@ bool IsType(NiRTTI * rtti, const NiRTTI * typeInfo) return false; } -const NiRTTI * NiRTTI_BGSDecalNode = (NiRTTI *)0x01EC4338; -const NiRTTI * NiRTTI_BSAnimGroupSequence = (NiRTTI *)0x01EC44B0; -const NiRTTI * NiRTTI_BSSplatterExtraData = (NiRTTI *)0x02EC5500; -const NiRTTI * NiRTTI_BGSAddonNodeSoundHandleExtra = (NiRTTI *)0x02EC5968; -const NiRTTI * NiRTTI_REFRSyncController = (NiRTTI *)0x02EFF9C0; -const NiRTTI * NiRTTI_bhkCartTether = (NiRTTI *)0x02F01118; -const NiRTTI * NiRTTI_bhkTiltPreventAction = (NiRTTI *)0x02F01128; -const NiRTTI * NiRTTI_bhkWheelAction = (NiRTTI *)0x02F01138; -const NiRTTI * NiRTTI_BSFaceGenAnimationData = (NiRTTI *)0x02F01780; -const NiRTTI * NiRTTI_BSFaceGenModelExtraData = (NiRTTI *)0x02F07CA0; -const NiRTTI * NiRTTI_BSFaceGenBaseMorphExtraData = (NiRTTI *)0x02F07CC8; -const NiRTTI * NiRTTI_BSFaceGenMorphData = (NiRTTI *)0x02F07CD8; -const NiRTTI * NiRTTI_BSFaceGenMorphDataHead = (NiRTTI *)0x02F07CE8; -const NiRTTI * NiRTTI_BSFaceGenMorphDataHair = (NiRTTI *)0x02F07CF8; -const NiRTTI * NiRTTI_BSFaceGenNiNode = (NiRTTI *)0x02F07D38; -const NiRTTI * NiRTTI_BSTempEffect = (NiRTTI *)0x02F0D428; -const NiRTTI * NiRTTI_BSTempEffectDebris = (NiRTTI *)0x02F0D4A8; -const NiRTTI * NiRTTI_BSTempEffectGeometryDecal = (NiRTTI *)0x02F0D4C8; -const NiRTTI * NiRTTI_BSTempEffectParticle = (NiRTTI *)0x02F0D578; -const NiRTTI * NiRTTI_BSTempEffectSimpleDecal = (NiRTTI *)0x02F0D5A0; -const NiRTTI * NiRTTI_BSTempEffectSPG = (NiRTTI *)0x02F0D5B8; -const NiRTTI * NiRTTI_bhkAutoWater = (NiRTTI *)0x02F249A0; -const NiRTTI * NiRTTI_ModelReferenceEffect = (NiRTTI *)0x02F261D8; -const NiRTTI * NiRTTI_ReferenceEffect = (NiRTTI *)0x02F26210; -const NiRTTI * NiRTTI_ShaderReferenceEffect = (NiRTTI *)0x02F26240; -const NiRTTI * NiRTTI_SummonPlacementEffect = (NiRTTI *)0x02F26270; -const NiRTTI * NiRTTI_SceneGraph = (NiRTTI *)0x02F38950; -const NiRTTI * NiRTTI_BSDoorHavokController = (NiRTTI *)0x02F3A680; -const NiRTTI * NiRTTI_BSPlayerDistanceCheckController = (NiRTTI *)0x02F3A690; -const NiRTTI * NiRTTI_BSSimpleScaleController = (NiRTTI *)0x02F3A6A0; -const NiRTTI * NiRTTI_NiObject = (NiRTTI *)0x03012388; -const NiRTTI * NiRTTI_NiAVObject = (NiRTTI *)0x030123C0; -const NiRTTI * NiRTTI_NiNode = (NiRTTI *)0x030123E0; -const NiRTTI * NiRTTI_NiObjectNET = (NiRTTI *)0x03012508; -const NiRTTI * NiRTTI_NiLight = (NiRTTI *)0x03012568; -const NiRTTI * NiRTTI_NiSwitchNode = (NiRTTI *)0x03012578; -const NiRTTI * NiRTTI_NiStringsExtraData = (NiRTTI *)0x03012588; -const NiRTTI * NiRTTI_NiCamera = (NiRTTI *)0x03012598; -const NiRTTI * NiRTTI_BSTriShape = (NiRTTI *)0x030125B0; -const NiRTTI * NiRTTI_NiProperty = (NiRTTI *)0x030125C0; -const NiRTTI * NiRTTI_NiAlphaProperty = (NiRTTI *)0x030125D8; -const NiRTTI * NiRTTI_NiSourceTexture = (NiRTTI *)0x03013608; -const NiRTTI * NiRTTI_BSFlattenedBoneTree = (NiRTTI *)0x03013618; -const NiRTTI * NiRTTI_BSDismemberSkinInstance = (NiRTTI *)0x03013660; -const NiRTTI * NiRTTI_NiStringExtraData = (NiRTTI *)0x03013670; -const NiRTTI * NiRTTI_NiTimeController = (NiRTTI *)0x03013680; -const NiRTTI * NiRTTI_NiExtraData = (NiRTTI *)0x030136A0; -const NiRTTI * NiRTTI_NiGeometryData = (NiRTTI *)0x030136B0; -const NiRTTI * NiRTTI_BSGeometry = (NiRTTI *)0x030136C8; -const NiRTTI * NiRTTI_BSDynamicTriShape = (NiRTTI *)0x030136E0; -const NiRTTI * NiRTTI_NiPointLight = (NiRTTI *)0x030136F0; -const NiRTTI * NiRTTI_NiDefaultAVObjectPalette = (NiRTTI *)0x03013700; -const NiRTTI * NiRTTI_NiBillboardNode = (NiRTTI *)0x03013728; -const NiRTTI * NiRTTI_NiDirectionalLight = (NiRTTI *)0x03013738; -const NiRTTI * NiRTTI_NiCullingProcess = (NiRTTI *)0x03013748; -const NiRTTI * NiRTTI_NiParticles = (NiRTTI *)0x03013760; -const NiRTTI * NiRTTI_NiTexture = (NiRTTI *)0x030137A0; -const NiRTTI * NiRTTI_NiSkinPartition = (NiRTTI *)0x030138B0; -const NiRTTI * NiRTTI_NiVertWeightsExtraData = (NiRTTI *)0x030138C0; -const NiRTTI * NiRTTI_NiSkinInstance = (NiRTTI *)0x030138D0; -const NiRTTI * NiRTTI_NiAVObjectPalette = (NiRTTI *)0x030138E0; -const NiRTTI * NiRTTI_NiGeometry = (NiRTTI *)0x030138F0; -const NiRTTI * NiRTTI_NiSkinData = (NiRTTI *)0x03013920; -const NiRTTI * NiRTTI_NiShadeProperty = (NiRTTI *)0x03013930; -const NiRTTI * NiRTTI_NiAlphaAccumulator = (NiRTTI *)0x03013948; -const NiRTTI * NiRTTI_NiAmbientLight = (NiRTTI *)0x03013958; -const NiRTTI * NiRTTI_NiBinaryExtraData = (NiRTTI *)0x03013968; -const NiRTTI * NiRTTI_NiBooleanExtraData = (NiRTTI *)0x03013978; -const NiRTTI * NiRTTI_NiBSPNode = (NiRTTI *)0x03013988; -const NiRTTI * NiRTTI_NiColorExtraData = (NiRTTI *)0x03013998; -const NiRTTI * NiRTTI_NiFloatExtraData = (NiRTTI *)0x030139A8; -const NiRTTI * NiRTTI_NiFloatsExtraData = (NiRTTI *)0x030139B8; -const NiRTTI * NiRTTI_NiFogProperty = (NiRTTI *)0x030139C8; -const NiRTTI * NiRTTI_NiIntegerExtraData = (NiRTTI *)0x030139E0; -const NiRTTI * NiRTTI_NiIntegersExtraData = (NiRTTI *)0x030139F0; -const NiRTTI * NiRTTI_NiParticlesData = (NiRTTI *)0x03013A38; -const NiRTTI * NiRTTI_NiParticleMeshesData = (NiRTTI *)0x03013A48; -const NiRTTI * NiRTTI_NiParticleMeshes = (NiRTTI *)0x03013A58; -const NiRTTI * NiRTTI_NiSpotLight = (NiRTTI *)0x03013A68; -const NiRTTI * NiRTTI_NiSwitchStringExtraData = (NiRTTI *)0x03013A78; -const NiRTTI * NiRTTI_NiTriShapeData = (NiRTTI *)0x03013A88; -const NiRTTI * NiRTTI_NiTriShape = (NiRTTI *)0x03013A98; -const NiRTTI * NiRTTI_NiTriStripsData = (NiRTTI *)0x03013AA8; -const NiRTTI * NiRTTI_NiTriStrips = (NiRTTI *)0x03013AB8; -const NiRTTI * NiRTTI_NiVectorExtraData = (NiRTTI *)0x03013AC8; -const NiRTTI * NiRTTI_BSLODTriShape = (NiRTTI *)0x03013AF0; -const NiRTTI * NiRTTI_NiAdditionalGeometryData = (NiRTTI *)0x03013B00; -const NiRTTI * NiRTTI_BSSegmentedTriShape = (NiRTTI *)0x03013B18; -const NiRTTI * NiRTTI_NiAccumulator = (NiRTTI *)0x03013B50; -const NiRTTI * NiRTTI_NiBackToFrontAccumulator = (NiRTTI *)0x03013B60; -const NiRTTI * NiRTTI_NiTriBasedGeomData = (NiRTTI *)0x03013B70; -const NiRTTI * NiRTTI_NiTriBasedGeom = (NiRTTI *)0x03013B80; -const NiRTTI * NiRTTI_NiCollisionData = (NiRTTI *)0x03013BC8; -const NiRTTI * NiRTTI_NiControllerManager = (NiRTTI *)0x03013C58; -const NiRTTI * NiRTTI_NiControllerSequence = (NiRTTI *)0x03013C78; -const NiRTTI * NiRTTI_NiBlendInterpolator = (NiRTTI *)0x03013CA8; -const NiRTTI * NiRTTI_NiMultiTargetTransformController = (NiRTTI *)0x03013CB8; -const NiRTTI * NiRTTI_BSMultiTargetTreadTransfController = (NiRTTI *)0x03013CC8; -const NiRTTI * NiRTTI_NiInterpController = (NiRTTI *)0x03013CD8; -const NiRTTI * NiRTTI_NiFloatData = (NiRTTI *)0x03014AA8; -const NiRTTI * NiRTTI_NiFloatInterpolator = (NiRTTI *)0x03014AB8; -const NiRTTI * NiRTTI_NiColorData = (NiRTTI *)0x03014AC8; -const NiRTTI * NiRTTI_NiColorInterpolator = (NiRTTI *)0x03014AD8; -const NiRTTI * NiRTTI_NiSingleInterpController = (NiRTTI *)0x03014AE8; -const NiRTTI * NiRTTI_NiTransformInterpolator = (NiRTTI *)0x03014AF8; -const NiRTTI * NiRTTI_NiPathInterpolator = (NiRTTI *)0x03014B08; -const NiRTTI * NiRTTI_NiBlendTransformInterpolator = (NiRTTI *)0x03014B28; -const NiRTTI * NiRTTI_NiBlendFloatInterpolator = (NiRTTI *)0x03014B38; -const NiRTTI * NiRTTI_NiFloatExtraDataController = (NiRTTI *)0x03014B48; -const NiRTTI * NiRTTI_NiTransformController = (NiRTTI *)0x03014B58; -const NiRTTI * NiRTTI_NiBlendAccumTransformInterpolator = (NiRTTI *)0x03014B70; -const NiRTTI * NiRTTI_NiInterpolator = (NiRTTI *)0x03014B80; -const NiRTTI * NiRTTI_BSBlendTreadTransfInterpolator = (NiRTTI *)0x03014BA0; -const NiRTTI * NiRTTI_NiKeyBasedInterpolator = (NiRTTI *)0x03014BB8; -const NiRTTI * NiRTTI_NiTransformData = (NiRTTI *)0x03014C38; -const NiRTTI * NiRTTI_NiPosData = (NiRTTI *)0x03014C48; -const NiRTTI * NiRTTI_NiBlendBoolInterpolator = (NiRTTI *)0x03014C58; -const NiRTTI * NiRTTI_NiBlendColorInterpolator = (NiRTTI *)0x03014C68; -const NiRTTI * NiRTTI_NiBlendPoint3Interpolator = (NiRTTI *)0x03014C78; -const NiRTTI * NiRTTI_NiBlendQuaternionInterpolator = (NiRTTI *)0x03014C88; -const NiRTTI * NiRTTI_NiBoolData = (NiRTTI *)0x03014C98; -const NiRTTI * NiRTTI_NiBoolInterpolator = (NiRTTI *)0x03014CA8; -const NiRTTI * NiRTTI_NiBoolTimelineInterpolator = (NiRTTI *)0x03014CB8; -const NiRTTI * NiRTTI_NiBSplineBasisData = (NiRTTI *)0x03014CC8; -const NiRTTI * NiRTTI_NiBSplineData = (NiRTTI *)0x03014CD8; -const NiRTTI * NiRTTI_NiBSplineColorInterpolator = (NiRTTI *)0x03014CE8; -const NiRTTI * NiRTTI_NiBSplineCompColorInterpolator = (NiRTTI *)0x03014CF8; -const NiRTTI * NiRTTI_NiBSplineCompFloatInterpolator = (NiRTTI *)0x03014D08; -const NiRTTI * NiRTTI_NiBSplineCompPoint3Interpolator = (NiRTTI *)0x03014D18; -const NiRTTI * NiRTTI_NiBSplineCompTransformInterpolator = (NiRTTI *)0x03014D28; -const NiRTTI * NiRTTI_NiBSplineFloatInterpolator = (NiRTTI *)0x03014D38; -const NiRTTI * NiRTTI_NiBSplinePoint3Interpolator = (NiRTTI *)0x03014D48; -const NiRTTI * NiRTTI_NiBSplineTransformInterpolator = (NiRTTI *)0x03014D58; -const NiRTTI * NiRTTI_NiColorExtraDataController = (NiRTTI *)0x03014D68; -const NiRTTI * NiRTTI_NiFloatsExtraDataController = (NiRTTI *)0x03014D78; -const NiRTTI * NiRTTI_NiFloatsExtraDataPoint3Controller = (NiRTTI *)0x03014D88; -const NiRTTI * NiRTTI_NiKeyframeManager = (NiRTTI *)0x03014DA0; -const NiRTTI * NiRTTI_NiLightColorController = (NiRTTI *)0x03014DB0; -const NiRTTI * NiRTTI_NiLightDimmerController = (NiRTTI *)0x03014DC0; -const NiRTTI * NiRTTI_NiLookAtController = (NiRTTI *)0x03014DD0; -const NiRTTI * NiRTTI_NiLookAtInterpolator = (NiRTTI *)0x03014DE0; -const NiRTTI * NiRTTI_NiMorphData = (NiRTTI *)0x03014DF0; -const NiRTTI * NiRTTI_NiPathController = (NiRTTI *)0x03014E00; -const NiRTTI * NiRTTI_NiPoint3Interpolator = (NiRTTI *)0x03014E10; -const NiRTTI * NiRTTI_NiQuaternionInterpolator = (NiRTTI *)0x03014E20; -const NiRTTI * NiRTTI_NiRollController = (NiRTTI *)0x03014E30; -const NiRTTI * NiRTTI_NiRotData = (NiRTTI *)0x03014E40; -const NiRTTI * NiRTTI_NiSequence = (NiRTTI *)0x03014E50; -const NiRTTI * NiRTTI_NiSequenceStreamHelper = (NiRTTI *)0x03014E70; -const NiRTTI * NiRTTI_NiStringPalette = (NiRTTI *)0x03014E80; -const NiRTTI * NiRTTI_NiTextKeyExtraData = (NiRTTI *)0x03014E90; -const NiRTTI * NiRTTI_NiUVData = (NiRTTI *)0x03014EA0; -const NiRTTI * NiRTTI_NiVisController = (NiRTTI *)0x03014EB0; -const NiRTTI * NiRTTI_BSAnimNote = (NiRTTI *)0x03014EC0; -const NiRTTI * NiRTTI_BSAnimNotes = (NiRTTI *)0x03014ED0; -const NiRTTI * NiRTTI_BSGrabIKNote = (NiRTTI *)0x03014EE0; -const NiRTTI * NiRTTI_BSLookIKNote = (NiRTTI *)0x03014EF0; -const NiRTTI * NiRTTI_BSRotAccumTransfInterpolator = (NiRTTI *)0x03014F00; -const NiRTTI * NiRTTI_BSTreadTransfInterpolator = (NiRTTI *)0x03014F10; -const NiRTTI * NiRTTI_BSFrustumFOVController = (NiRTTI *)0x03014F20; -const NiRTTI * NiRTTI_NiExtraDataController = (NiRTTI *)0x03014FB8; -const NiRTTI * NiRTTI_NiBSplineInterpolator = (NiRTTI *)0x03014FC8; -const NiRTTI * NiRTTI_NiPoint3InterpController = (NiRTTI *)0x03014FD8; -const NiRTTI * NiRTTI_NiFloatInterpController = (NiRTTI *)0x03014FE8; -const NiRTTI * NiRTTI_NiFloatController = (NiRTTI *)0x03014FF8; -const NiRTTI * NiRTTI_NiBoolInterpController = (NiRTTI *)0x03015008; -const NiRTTI * NiRTTI_NiParticleSystem = (NiRTTI *)0x03015020; -const NiRTTI * NiRTTI_NiPSysEmitterCtlr = (NiRTTI *)0x03015030; -const NiRTTI * NiRTTI_NiPSysGravityModifier = (NiRTTI *)0x03015040; -const NiRTTI * NiRTTI_BSPSysHavokUpdateModifier = (NiRTTI *)0x03015050; -const NiRTTI * NiRTTI_NiMeshParticleSystem = (NiRTTI *)0x03015068; -const NiRTTI * NiRTTI_NiPSysCylinderEmitter = (NiRTTI *)0x03015080; -const NiRTTI * NiRTTI_BSStripParticleSystem = (NiRTTI *)0x03015090; -const NiRTTI * NiRTTI_NiPSysEmitter = (NiRTTI *)0x030150A0; -const NiRTTI * NiRTTI_NiPSysModifierCtlr = (NiRTTI *)0x030150B8; -const NiRTTI * NiRTTI_NiPSysModifier = (NiRTTI *)0x030150C8; -const NiRTTI * NiRTTI_NiPSysMeshUpdateModifier = (NiRTTI *)0x030150D8; -const NiRTTI * NiRTTI_NiPSysUpdateCtlr = (NiRTTI *)0x030150E8; -const NiRTTI * NiRTTI_NiMeshPSysData = (NiRTTI *)0x030150F8; -const NiRTTI * NiRTTI_NiPSysAirFieldAirFrictionCtlr = (NiRTTI *)0x03015108; -const NiRTTI * NiRTTI_NiPSysAirFieldInheritVelocityCtlr = (NiRTTI *)0x03015118; -const NiRTTI * NiRTTI_NiPSysAirFieldModifier = (NiRTTI *)0x03015128; -const NiRTTI * NiRTTI_NiPSysAirFieldSpreadCtlr = (NiRTTI *)0x03015138; -const NiRTTI * NiRTTI_NiPSysAgeDeathModifier = (NiRTTI *)0x03015148; -const NiRTTI * NiRTTI_NiPSysBombModifier = (NiRTTI *)0x03015158; -const NiRTTI * NiRTTI_NiPSysBoundUpdateModifier = (NiRTTI *)0x03015168; -const NiRTTI * NiRTTI_NiPSysBoxEmitter = (NiRTTI *)0x03015178; -const NiRTTI * NiRTTI_NiPSysColliderManager = (NiRTTI *)0x03015188; -const NiRTTI * NiRTTI_NiPSysColorModifier = (NiRTTI *)0x03015198; -const NiRTTI * NiRTTI_NiPSysData = (NiRTTI *)0x030151A8; -const NiRTTI * NiRTTI_NiPSysDragFieldModifier = (NiRTTI *)0x030151B8; -const NiRTTI * NiRTTI_NiPSysDragModifier = (NiRTTI *)0x030151C8; -const NiRTTI * NiRTTI_NiPSysEmitterCtlrData = (NiRTTI *)0x030151D8; -const NiRTTI * NiRTTI_NiPSysEmitterDeclinationCtlr = (NiRTTI *)0x030151E8; -const NiRTTI * NiRTTI_NiPSysEmitterDeclinationVarCtlr = (NiRTTI *)0x030151F8; -const NiRTTI * NiRTTI_NiPSysEmitterInitialRadiusCtlr = (NiRTTI *)0x03015208; -const NiRTTI * NiRTTI_NiPSysEmitterLifeSpanCtlr = (NiRTTI *)0x03015218; -const NiRTTI * NiRTTI_NiPSysEmitterPlanarAngleCtlr = (NiRTTI *)0x03015228; -const NiRTTI * NiRTTI_NiPSysEmitterPlanarAngleVarCtlr = (NiRTTI *)0x03015238; -const NiRTTI * NiRTTI_NiPSysEmitterSpeedCtlr = (NiRTTI *)0x03015248; -const NiRTTI * NiRTTI_NiPSysFieldAttenuationCtlr = (NiRTTI *)0x03015258; -const NiRTTI * NiRTTI_NiPSysFieldMagnitudeCtlr = (NiRTTI *)0x03015268; -const NiRTTI * NiRTTI_NiPSysFieldMaxDistanceCtlr = (NiRTTI *)0x03015278; -const NiRTTI * NiRTTI_NiPSysGravityFieldModifier = (NiRTTI *)0x03015288; -const NiRTTI * NiRTTI_NiPSysGravityStrengthCtlr = (NiRTTI *)0x03015298; -const NiRTTI * NiRTTI_NiPSysGrowFadeModifier = (NiRTTI *)0x030152A8; -const NiRTTI * NiRTTI_NiPSysInitialRotAngleCtlr = (NiRTTI *)0x030152B8; -const NiRTTI * NiRTTI_NiPSysInitialRotAngleVarCtlr = (NiRTTI *)0x030152C8; -const NiRTTI * NiRTTI_NiPSysInitialRotSpeedCtlr = (NiRTTI *)0x030152D8; -const NiRTTI * NiRTTI_NiPSysInitialRotSpeedVarCtlr = (NiRTTI *)0x030152E8; -const NiRTTI * NiRTTI_NiPSysMeshEmitter = (NiRTTI *)0x030152F8; -const NiRTTI * NiRTTI_NiPSysModifierActiveCtlr = (NiRTTI *)0x03015328; -const NiRTTI * NiRTTI_NiPSysPlanarCollider = (NiRTTI *)0x03015338; -const NiRTTI * NiRTTI_NiPSysPositionModifier = (NiRTTI *)0x03015350; -const NiRTTI * NiRTTI_NiPSysRadialFieldModifier = (NiRTTI *)0x03015360; -const NiRTTI * NiRTTI_NiPSysResetOnLoopCtlr = (NiRTTI *)0x03015370; -const NiRTTI * NiRTTI_NiPSysRotationModifier = (NiRTTI *)0x03015380; -const NiRTTI * NiRTTI_NiPSysSpawnModifier = (NiRTTI *)0x03015390; -const NiRTTI * NiRTTI_NiPSysSphereEmitter = (NiRTTI *)0x030153A0; -const NiRTTI * NiRTTI_NiPSysSphericalCollider = (NiRTTI *)0x030153B0; -const NiRTTI * NiRTTI_NiPSysTurbulenceFieldModifier = (NiRTTI *)0x030153C0; -const NiRTTI * NiRTTI_NiPSysVortexFieldModifier = (NiRTTI *)0x030153D0; -const NiRTTI * NiRTTI_BSStripPSysData = (NiRTTI *)0x030153E0; -const NiRTTI * NiRTTI_BSPSysRecycleBoundModifier = (NiRTTI *)0x030153F8; -const NiRTTI * NiRTTI_BSPSysInheritVelocityModifier = (NiRTTI *)0x03015408; -const NiRTTI * NiRTTI_NiPSysVolumeEmitter = (NiRTTI *)0x03015418; -const NiRTTI * NiRTTI_NiPSysModifierFloatCtlr = (NiRTTI *)0x03015428; -const NiRTTI * NiRTTI_NiPSysFieldModifier = (NiRTTI *)0x03015438; -const NiRTTI * NiRTTI_NiPSysModifierBoolCtlr = (NiRTTI *)0x03015448; -const NiRTTI * NiRTTI_NiPSysCollider = (NiRTTI *)0x03015458; -const NiRTTI * NiRTTI_BSMultiBound = (NiRTTI *)0x0301D708; -const NiRTTI * NiRTTI_BSMultiBoundRoom = (NiRTTI *)0x0301D718; -const NiRTTI * NiRTTI_BSMultiBoundAABB = (NiRTTI *)0x0301D730; -const NiRTTI * NiRTTI_BSMultiBoundOBB = (NiRTTI *)0x0301D748; -const NiRTTI * NiRTTI_BSXFlags = (NiRTTI *)0x0301D768; -const NiRTTI * NiRTTI_BSValueNode = (NiRTTI *)0x0301D780; -const NiRTTI * NiRTTI_BSWindModifier = (NiRTTI *)0x03023D00; -const NiRTTI * NiRTTI_BSTempNodeManager = (NiRTTI *)0x03023D20; -const NiRTTI * NiRTTI_BSTempNode = (NiRTTI *)0x03023D30; -const NiRTTI * NiRTTI_BSOcclusionShape = (NiRTTI *)0x03023D50; -const NiRTTI * NiRTTI_BSRangeNode = (NiRTTI *)0x03023E48; -const NiRTTI * NiRTTI_BSBlastNode = (NiRTTI *)0x03024080; -const NiRTTI * NiRTTI_BSDebrisNode = (NiRTTI *)0x03024090; -const NiRTTI * NiRTTI_BSDamageStage = (NiRTTI *)0x030240A0; -const NiRTTI * NiRTTI_BSPSysArrayEmitter = (NiRTTI *)0x030240B0; -const NiRTTI * NiRTTI_PArrayPoint = (NiRTTI *)0x030240C0; -const NiRTTI * NiRTTI_BSMultiStreamInstanceTriShape = (NiRTTI *)0x030240E8; -const NiRTTI * NiRTTI_BSMultiBoundShape = (NiRTTI *)0x03024118; -const NiRTTI * NiRTTI_BSMultiBoundSphere = (NiRTTI *)0x03024128; -const NiRTTI * NiRTTI_BSOcclusionBox = (NiRTTI *)0x03024140; -const NiRTTI * NiRTTI_BSOcclusionPlane = (NiRTTI *)0x03024158; -const NiRTTI * NiRTTI_BSPortal = (NiRTTI *)0x03024168; -const NiRTTI * NiRTTI_BSPortalSharedNode = (NiRTTI *)0x03024178; -const NiRTTI * NiRTTI_BSBodyMorphOffsetsExtraData = (NiRTTI *)0x03024190; -const NiRTTI * NiRTTI_BSBehaviorGraphExtraData = (NiRTTI *)0x030241A0; -const NiRTTI * NiRTTI_NiBSBoneLODController = (NiRTTI *)0x030241B8; -const NiRTTI * NiRTTI_BSCullingProcess = (NiRTTI *)0x030241D8; -const NiRTTI * NiRTTI_BSParticleSystemManager = (NiRTTI *)0x030241F8; -const NiRTTI * NiRTTI_BSFurnitureMarkerNode = (NiRTTI *)0x03024220; -const NiRTTI * NiRTTI_BSBound = (NiRTTI *)0x030242A0; -const NiRTTI * NiRTTI_BSMultiBoundNode = (NiRTTI *)0x03024330; -const NiRTTI * NiRTTI_BSBoneMap = (NiRTTI *)0x03024340; -const NiRTTI * NiRTTI_BSAnimInteractionMarker = (NiRTTI *)0x03024358; -const NiRTTI * NiRTTI_BSSceneGraph = (NiRTTI *)0x03024370; -const NiRTTI * NiRTTI_BSPSysMultiTargetEmitterCtlr = (NiRTTI *)0x03024388; -const NiRTTI * NiRTTI_BSGeometryListCullingProcess = (NiRTTI *)0x030243A0; -const NiRTTI * NiRTTI_BSSubIndexTriShape = (NiRTTI *)0x030243B8; -const NiRTTI * NiRTTI_BSDistantObjectLargeRefExtraData = (NiRTTI *)0x030243C8; -const NiRTTI * NiRTTI_BSMasterParticleSystem = (NiRTTI *)0x03025D90; -const NiRTTI * NiRTTI_BSProceduralLightningController = (NiRTTI *)0x03025DB8; -const NiRTTI * NiRTTI_BSInvMarker = (NiRTTI *)0x03025DC8; -const NiRTTI * NiRTTI_BSBoneLODExtraData = (NiRTTI *)0x03025DE0; -const NiRTTI * NiRTTI_BSReference = (NiRTTI *)0x03025E00; -const NiRTTI * NiRTTI_BSNodeReferences = (NiRTTI *)0x03025E10; -const NiRTTI * NiRTTI_BSDecalPlacementVectorExtraData = (NiRTTI *)0x03025E20; -const NiRTTI * NiRTTI_BSParentVelocityModifier = (NiRTTI *)0x03025E30; -const NiRTTI * NiRTTI_BSWArray = (NiRTTI *)0x03025E40; -const NiRTTI * NiRTTI_BSMultiBoundCapsule = (NiRTTI *)0x03025E58; -const NiRTTI * NiRTTI_BSPSysStripUpdateModifier = (NiRTTI *)0x03025E68; -const NiRTTI * NiRTTI_BSPSysSubTexModifier = (NiRTTI *)0x03025E78; -const NiRTTI * NiRTTI_BSPSysScaleModifier = (NiRTTI *)0x03025E88; -const NiRTTI * NiRTTI_BSLagBoneController = (NiRTTI *)0x03025E98; -const NiRTTI * NiRTTI_BSNonUniformScaleExtraData = (NiRTTI *)0x03025EA8; -const NiRTTI * NiRTTI_BSNiNode = (NiRTTI *)0x03025EC0; -const NiRTTI * NiRTTI_BSInstanceTriShape = (NiRTTI *)0x03025ED0; -const NiRTTI * NiRTTI_bhkWorldObject = (NiRTTI *)0x0302CC68; -const NiRTTI * NiRTTI_bhkWorld = (NiRTTI *)0x0302CCA8; -const NiRTTI * NiRTTI_bhkRigidBody = (NiRTTI *)0x0302DDE8; -const NiRTTI * NiRTTI_bhkCollisionObject = (NiRTTI *)0x0302DE00; -const NiRTTI * NiRTTI_bhkNiCollisionObject = (NiRTTI *)0x0302DEB0; -const NiRTTI * NiRTTI_bhkAttachmentCollisionObject = (NiRTTI *)0x0302DF40; -const NiRTTI * NiRTTI_WeaponObject = (NiRTTI *)0x0302DF50; -const NiRTTI * NiRTTI_bhkRigidBodyT = (NiRTTI *)0x0302DF78; -const NiRTTI * NiRTTI_bhkWorldM = (NiRTTI *)0x0302DF88; -const NiRTTI * NiRTTI_bhkRefObject = (NiRTTI *)0x0302DFB0; -const NiRTTI * NiRTTI_bhkSerializable = (NiRTTI *)0x0302DFC0; -const NiRTTI * NiRTTI_bhkShape = (NiRTTI *)0x0302DFF0; -const NiRTTI * NiRTTI_bhkEntity = (NiRTTI *)0x0302E008; -const NiRTTI * NiRTTI_bhkPhantom = (NiRTTI *)0x0302E020; -const NiRTTI * NiRTTI_bhkAabbPhantom = (NiRTTI *)0x0302E038; -const NiRTTI * NiRTTI_bhkSphereRepShape = (NiRTTI *)0x0302E050; -const NiRTTI * NiRTTI_bhkConvexShape = (NiRTTI *)0x0302E068; -const NiRTTI * NiRTTI_bhkPCollisionObject = (NiRTTI *)0x0302E078; -const NiRTTI * NiRTTI_hkPackedNiTriStripsData = (NiRTTI *)0x0302E088; -const NiRTTI * NiRTTI_bhkShapePhantom = (NiRTTI *)0x0302E0A0; -const NiRTTI * NiRTTI_bhkSimpleShapePhantom = (NiRTTI *)0x0302E0B8; -const NiRTTI * NiRTTI_bhkCapsuleShape = (NiRTTI *)0x0302E0D0; -const NiRTTI * NiRTTI_bhkBoxShape = (NiRTTI *)0x0302E0E8; -const NiRTTI * NiRTTI_bhkSphereShape = (NiRTTI *)0x0302E100; -const NiRTTI * NiRTTI_bhkBvTreeShape = (NiRTTI *)0x0302E118; -const NiRTTI * NiRTTI_bhkNiTriStripsShape = (NiRTTI *)0x0302E130; -const NiRTTI * NiRTTI_bhkPackedNiTriStripsShape = (NiRTTI *)0x0302E158; -const NiRTTI * NiRTTI_bhkBlendCollisionObject = (NiRTTI *)0x0302E170; -const NiRTTI * NiRTTI_bhkAvoidBox = (NiRTTI *)0x0302E190; -const NiRTTI * NiRTTI_bhkLimitedHingeConstraint = (NiRTTI *)0x0302E1A8; -const NiRTTI * NiRTTI_bhkMalleableConstraint = (NiRTTI *)0x0302E1C0; -const NiRTTI * NiRTTI_bhkConstraint = (NiRTTI *)0x0302E1D8; -const NiRTTI * NiRTTI_bhkPrismaticConstraint = (NiRTTI *)0x0302E1F0; -const NiRTTI * NiRTTI_bhkAction = (NiRTTI *)0x0302E208; -const NiRTTI * NiRTTI_bhkUnaryAction = (NiRTTI *)0x0302E220; -const NiRTTI * NiRTTI_bhkTriSampledHeightFieldBvTreeShape = (NiRTTI *)0x0302E238; -const NiRTTI * NiRTTI_bhkCachingShapePhantom = (NiRTTI *)0x0302EEA8; -const NiRTTI * NiRTTI_bhkRagdollTemplateData = (NiRTTI *)0x0302EED0; -const NiRTTI * NiRTTI_bhkRagdollTemplate = (NiRTTI *)0x0302EEE0; -const NiRTTI * NiRTTI_bhkSPCollisionObject = (NiRTTI *)0x0302EEF0; -const NiRTTI * NiRTTI_bhkMouseSpringAction = (NiRTTI *)0x0302EF08; -const NiRTTI * NiRTTI_bhkHingeConstraint = (NiRTTI *)0x0302EF20; -const NiRTTI * NiRTTI_bhkCompressedMeshShape = (NiRTTI *)0x0302EF98; -const NiRTTI * NiRTTI_bhkCompressedMeshShapeData = (NiRTTI *)0x0302EFA8; -const NiRTTI * NiRTTI_bhkConvexSweepShape = (NiRTTI *)0x0302EFC0; -const NiRTTI * NiRTTI_bhkConvexTransformShape = (NiRTTI *)0x0302EFD8; -const NiRTTI * NiRTTI_bhkConvexTranslateShape = (NiRTTI *)0x0302EFF0; -const NiRTTI * NiRTTI_bhkConvexVerticesShape = (NiRTTI *)0x0302F008; -const NiRTTI * NiRTTI_bhkCylinderShape = (NiRTTI *)0x0302F020; -const NiRTTI * NiRTTI_bhkMultiSphereShape = (NiRTTI *)0x0302F038; -const NiRTTI * NiRTTI_bhkPlaneShape = (NiRTTI *)0x0302F050; -const NiRTTI * NiRTTI_bhkTriangleShape = (NiRTTI *)0x0302F068; -const NiRTTI * NiRTTI_bhkMoppBvTreeShape = (NiRTTI *)0x0302F080; -const NiRTTI * NiRTTI_bhkTransformShape = (NiRTTI *)0x0302F098; -const NiRTTI * NiRTTI_bhkListShape = (NiRTTI *)0x0302F0B0; -const NiRTTI * NiRTTI_bhkBallAndSocketConstraint = (NiRTTI *)0x0302F0C8; -const NiRTTI * NiRTTI_bhkBallSocketConstraintChain = (NiRTTI *)0x0302F0E0; -const NiRTTI * NiRTTI_bhkGroupConstraint = (NiRTTI *)0x0302F0F8; -const NiRTTI * NiRTTI_bhkHingeLimitsConstraint = (NiRTTI *)0x0302F110; -const NiRTTI * NiRTTI_bhkFixedConstraint = (NiRTTI *)0x0302F128; -const NiRTTI * NiRTTI_bhkRagdollConstraint = (NiRTTI *)0x0302F140; -const NiRTTI * NiRTTI_bhkRagdollLimitsConstraint = (NiRTTI *)0x0302F158; -const NiRTTI * NiRTTI_bhkStiffSpringConstraint = (NiRTTI *)0x0302F170; -const NiRTTI * NiRTTI_bhkWheelConstraint = (NiRTTI *)0x0302F188; -const NiRTTI * NiRTTI_bhkBreakableConstraint = (NiRTTI *)0x0302F1A0; -const NiRTTI * NiRTTI_bhkAngularDashpotAction = (NiRTTI *)0x0302F1B8; -const NiRTTI * NiRTTI_bhkDashpotAction = (NiRTTI *)0x0302F1D0; -const NiRTTI * NiRTTI_bhkLiquidAction = (NiRTTI *)0x0302F1E8; -const NiRTTI * NiRTTI_bhkMotorAction = (NiRTTI *)0x0302F208; -const NiRTTI * NiRTTI_bhkOrientHingedBodyAction = (NiRTTI *)0x0302F220; -const NiRTTI * NiRTTI_bhkSpringAction = (NiRTTI *)0x0302F238; -const NiRTTI * NiRTTI_bhkBlendController = (NiRTTI *)0x0302F248; -const NiRTTI * NiRTTI_bhkExtraData = (NiRTTI *)0x0302F258; -const NiRTTI * NiRTTI_bhkPoseArray = (NiRTTI *)0x0302F268; -const NiRTTI * NiRTTI_bhkGenericConstraint = (NiRTTI *)0x0302F288; -const NiRTTI * NiRTTI_bhkCharControllerShape = (NiRTTI *)0x0302F298; -const NiRTTI * NiRTTI_bhkCollisionBox = (NiRTTI *)0x0302F2B0; -const NiRTTI * NiRTTI_bhkShapeCollection = (NiRTTI *)0x0302F2C8; -const NiRTTI * NiRTTI_bhkPositionConstraintMotor = (NiRTTI *)0x0302F330; -const NiRTTI * NiRTTI_bhkVelocityConstraintMotor = (NiRTTI *)0x0302F340; -const NiRTTI * NiRTTI_bhkSpringDamperConstraintMotor = (NiRTTI *)0x0302F350; -const NiRTTI * NiRTTI_bhkCharacterProxy = (NiRTTI *)0x03030108; -const NiRTTI * NiRTTI_bhkCharacterRigidBody = (NiRTTI *)0x03030120; -const NiRTTI * NiRTTI_bhkHeightFieldShape = (NiRTTI *)0x03031428; -const NiRTTI * NiRTTI_bhkConstraintChain = (NiRTTI *)0x03031440; -const NiRTTI * NiRTTI_bhkBinaryAction = (NiRTTI *)0x03031458; -const NiRTTI * NiRTTI_bhkPointToPathConstraint = (NiRTTI *)0x03031490; -const NiRTTI * NiRTTI_DebugTextExtraData = (NiRTTI *)0x03032C80; -const NiRTTI * NiRTTI_BSFadeNode = (NiRTTI *)0x031D0D90; -const NiRTTI * NiRTTI_BSShaderProperty = (NiRTTI *)0x031D0DC0; -const NiRTTI * NiRTTI_BSLeafAnimNode = (NiRTTI *)0x031D0DD0; -const NiRTTI * NiRTTI_BSTreeNode = (NiRTTI *)0x031D0DE0; -const NiRTTI * NiRTTI_ShadowSceneNode = (NiRTTI *)0x031D1200; -const NiRTTI * NiRTTI_BSLightingShaderProperty = (NiRTTI *)0x031D1AF8; -const NiRTTI * NiRTTI_BSGrassShaderProperty = (NiRTTI *)0x031D1B30; -const NiRTTI * NiRTTI_BSShaderAccumulator = (NiRTTI *)0x031D1D40; -const NiRTTI * NiRTTI_BSEffectShaderProperty = (NiRTTI *)0x031D1F00; -const NiRTTI * NiRTTI_BSWaterShaderProperty = (NiRTTI *)0x03232D28; -const NiRTTI * NiRTTI_BSBloodSplatterShaderProperty = (NiRTTI *)0x03232D38; -const NiRTTI * NiRTTI_BSParticleShaderProperty = (NiRTTI *)0x032331B8; -const NiRTTI * NiRTTI_BSTextureSet = (NiRTTI *)0x03233508; -const NiRTTI * NiRTTI_BSShaderTextureSet = (NiRTTI *)0x03233518; -const NiRTTI * NiRTTI_BSSkyShaderProperty = (NiRTTI *)0x03233818; -const NiRTTI * NiRTTI_BSFadeNodeCuller = (NiRTTI *)0x032838A0; -const NiRTTI * NiRTTI_BSDistantTreeShaderProperty = (NiRTTI *)0x032838D0; -const NiRTTI * NiRTTI_BSCubeMapCamera = (NiRTTI *)0x03283AB0; -const NiRTTI * NiRTTI_BSFogProperty = (NiRTTI *)0x03283B68; -const NiRTTI * NiRTTI_BSClearZNode = (NiRTTI *)0x03495C48; -const NiRTTI * NiRTTI_NiCollisionObject = (NiRTTI *)0x03495D68; -const NiRTTI * NiRTTI_BSOrderedNode = (NiRTTI *)0x03495D78; -const NiRTTI * NiRTTI_BSLines = (NiRTTI *)0x03495D88; -const NiRTTI * NiRTTI_BSDynamicLines = (NiRTTI *)0x03495D98; -const NiRTTI * NiRTTI_BSMultiIndexTriShape = (NiRTTI *)0x03495DB8; -const NiRTTI * NiRTTI_BSLightingShaderPropertyFloatController = (NiRTTI *)0x03495E60; -const NiRTTI * NiRTTI_BSLightingShaderPropertyUShortController = (NiRTTI *)0x03495E78; -const NiRTTI * NiRTTI_BSLightingShaderPropertyColorController = (NiRTTI *)0x03495E90; -const NiRTTI * NiRTTI_BSEffectShaderPropertyFloatController = (NiRTTI *)0x03495EC8; -const NiRTTI * NiRTTI_BSEffectShaderPropertyColorController = (NiRTTI *)0x03495EE0; -const NiRTTI * NiRTTI_BSNiAlphaPropertyTestRefController = (NiRTTI *)0x03495EF0; -const NiRTTI * NiRTTI_BSPSysSimpleColorModifier = (NiRTTI *)0x03495F00; -const NiRTTI * NiRTTI_BSPSysLODModifier = (NiRTTI *)0x03495F10; -const NiRTTI * NiRTTI_BSParabolicCullingProcess = (NiRTTI *)0x03496398; -const NiRTTI * NiRTTI_BSMeshLODTriShape = (NiRTTI *)0x034963A8; -const NiRTTI * NiRTTI_BSLODMultiIndexTriShape = (NiRTTI *)0x034963B8; -const NiRTTI * NiRTTI_BSSubIndexLandTriShape = (NiRTTI *)0x034963D0; +const NiRTTI * NiRTTI_BGSDecalNode = (NiRTTI *)0x01F5FC20; +const NiRTTI * NiRTTI_BSAnimGroupSequence = (NiRTTI *)0x01F5FD80; +const NiRTTI * NiRTTI_BSSplatterExtraData = (NiRTTI *)0x02F60DD0; +const NiRTTI * NiRTTI_BGSAddonNodeSoundHandleExtra = (NiRTTI *)0x02F61238; +const NiRTTI * NiRTTI_REFRSyncController = (NiRTTI *)0x02F9B250; +const NiRTTI * NiRTTI_bhkCartTether = (NiRTTI *)0x02F9C9B8; +const NiRTTI * NiRTTI_bhkTiltPreventAction = (NiRTTI *)0x02F9C9C8; +const NiRTTI * NiRTTI_bhkWheelAction = (NiRTTI *)0x02F9C9D8; +const NiRTTI * NiRTTI_BSFaceGenAnimationData = (NiRTTI *)0x02F9D018; +const NiRTTI * NiRTTI_BSFaceGenModelExtraData = (NiRTTI *)0x02FA3540; +const NiRTTI * NiRTTI_BSFaceGenBaseMorphExtraData = (NiRTTI *)0x02FA3568; +const NiRTTI * NiRTTI_BSFaceGenMorphData = (NiRTTI *)0x02FA3578; +const NiRTTI * NiRTTI_BSFaceGenMorphDataHead = (NiRTTI *)0x02FA3588; +const NiRTTI * NiRTTI_BSFaceGenMorphDataHair = (NiRTTI *)0x02FA3598; +const NiRTTI * NiRTTI_BSFaceGenNiNode = (NiRTTI *)0x02FA35D8; +const NiRTTI * NiRTTI_BSTempEffect = (NiRTTI *)0x02FA89A8; +const NiRTTI * NiRTTI_BSTempEffectDebris = (NiRTTI *)0x02FA8A28; +const NiRTTI * NiRTTI_BSTempEffectGeometryDecal = (NiRTTI *)0x02FA8A48; +const NiRTTI * NiRTTI_BSTempEffectParticle = (NiRTTI *)0x02FA8AF8; +const NiRTTI * NiRTTI_BSTempEffectSimpleDecal = (NiRTTI *)0x02FA8B20; +const NiRTTI * NiRTTI_BSTempEffectSPG = (NiRTTI *)0x02FA8B38; +const NiRTTI * NiRTTI_bhkAutoWater = (NiRTTI *)0x02FBFF10; +const NiRTTI * NiRTTI_ModelReferenceEffect = (NiRTTI *)0x02FC1768; +const NiRTTI * NiRTTI_ReferenceEffect = (NiRTTI *)0x02FC17A0; +const NiRTTI * NiRTTI_ShaderReferenceEffect = (NiRTTI *)0x02FC17D0; +const NiRTTI * NiRTTI_SummonPlacementEffect = (NiRTTI *)0x02FC1800; +const NiRTTI * NiRTTI_SceneGraph = (NiRTTI *)0x02FD4878; +const NiRTTI * NiRTTI_BSDoorHavokController = (NiRTTI *)0x02FD6598; +const NiRTTI * NiRTTI_BSPlayerDistanceCheckController = (NiRTTI *)0x02FD65A8; +const NiRTTI * NiRTTI_BSSimpleScaleController = (NiRTTI *)0x02FD65B8; +const NiRTTI * NiRTTI_NiObject = (NiRTTI *)0x030AE130; +const NiRTTI * NiRTTI_NiAVObject = (NiRTTI *)0x030AE168; +const NiRTTI * NiRTTI_NiNode = (NiRTTI *)0x030AE188; +const NiRTTI * NiRTTI_NiObjectNET = (NiRTTI *)0x030AE308; +const NiRTTI * NiRTTI_NiLight = (NiRTTI *)0x030AE360; +const NiRTTI * NiRTTI_NiSwitchNode = (NiRTTI *)0x030AE370; +const NiRTTI * NiRTTI_NiStringsExtraData = (NiRTTI *)0x030AE380; +const NiRTTI * NiRTTI_NiCamera = (NiRTTI *)0x030AE390; +const NiRTTI * NiRTTI_BSTriShape = (NiRTTI *)0x030AE3A8; +const NiRTTI * NiRTTI_NiProperty = (NiRTTI *)0x030AE3B8; +const NiRTTI * NiRTTI_NiAlphaProperty = (NiRTTI *)0x030AE3D0; +const NiRTTI * NiRTTI_NiSourceTexture = (NiRTTI *)0x030AF408; +const NiRTTI * NiRTTI_BSFlattenedBoneTree = (NiRTTI *)0x030AF418; +const NiRTTI * NiRTTI_BSDismemberSkinInstance = (NiRTTI *)0x030AF460; +const NiRTTI * NiRTTI_NiStringExtraData = (NiRTTI *)0x030AF470; +const NiRTTI * NiRTTI_NiTimeController = (NiRTTI *)0x030AF480; +const NiRTTI * NiRTTI_NiExtraData = (NiRTTI *)0x030AF4A0; +const NiRTTI * NiRTTI_NiGeometryData = (NiRTTI *)0x030AF4B0; +const NiRTTI * NiRTTI_BSGeometry = (NiRTTI *)0x030AF4C8; +const NiRTTI * NiRTTI_BSDynamicTriShape = (NiRTTI *)0x030AF4E0; +const NiRTTI * NiRTTI_NiPointLight = (NiRTTI *)0x030AF4F0; +const NiRTTI * NiRTTI_NiDefaultAVObjectPalette = (NiRTTI *)0x030AF500; +const NiRTTI * NiRTTI_NiBillboardNode = (NiRTTI *)0x030AF528; +const NiRTTI * NiRTTI_NiDirectionalLight = (NiRTTI *)0x030AF538; +const NiRTTI * NiRTTI_NiCullingProcess = (NiRTTI *)0x030AF548; +const NiRTTI * NiRTTI_NiParticles = (NiRTTI *)0x030AF560; +const NiRTTI * NiRTTI_NiTexture = (NiRTTI *)0x030AF5A0; +const NiRTTI * NiRTTI_NiSkinPartition = (NiRTTI *)0x030AF6B0; +const NiRTTI * NiRTTI_NiVertWeightsExtraData = (NiRTTI *)0x030AF6C0; +const NiRTTI * NiRTTI_NiSkinInstance = (NiRTTI *)0x030AF6D0; +const NiRTTI * NiRTTI_NiAVObjectPalette = (NiRTTI *)0x030AF6E0; +const NiRTTI * NiRTTI_NiGeometry = (NiRTTI *)0x030AF6F0; +const NiRTTI * NiRTTI_NiSkinData = (NiRTTI *)0x030AF720; +const NiRTTI * NiRTTI_NiShadeProperty = (NiRTTI *)0x030AF730; +const NiRTTI * NiRTTI_NiAlphaAccumulator = (NiRTTI *)0x030AF748; +const NiRTTI * NiRTTI_NiAmbientLight = (NiRTTI *)0x030AF758; +const NiRTTI * NiRTTI_NiBinaryExtraData = (NiRTTI *)0x030AF768; +const NiRTTI * NiRTTI_NiBooleanExtraData = (NiRTTI *)0x030AF778; +const NiRTTI * NiRTTI_NiBSPNode = (NiRTTI *)0x030AF788; +const NiRTTI * NiRTTI_NiColorExtraData = (NiRTTI *)0x030AF798; +const NiRTTI * NiRTTI_NiFloatExtraData = (NiRTTI *)0x030AF7A8; +const NiRTTI * NiRTTI_NiFloatsExtraData = (NiRTTI *)0x030AF7B8; +const NiRTTI * NiRTTI_NiFogProperty = (NiRTTI *)0x030AF7C8; +const NiRTTI * NiRTTI_NiIntegerExtraData = (NiRTTI *)0x030AF7E0; +const NiRTTI * NiRTTI_NiIntegersExtraData = (NiRTTI *)0x030AF7F0; +const NiRTTI * NiRTTI_NiParticlesData = (NiRTTI *)0x030AF838; +const NiRTTI * NiRTTI_NiParticleMeshesData = (NiRTTI *)0x030AF848; +const NiRTTI * NiRTTI_NiParticleMeshes = (NiRTTI *)0x030AF858; +const NiRTTI * NiRTTI_NiSpotLight = (NiRTTI *)0x030AF868; +const NiRTTI * NiRTTI_NiSwitchStringExtraData = (NiRTTI *)0x030AF878; +const NiRTTI * NiRTTI_NiTriShapeData = (NiRTTI *)0x030AF888; +const NiRTTI * NiRTTI_NiTriShape = (NiRTTI *)0x030AF898; +const NiRTTI * NiRTTI_NiTriStripsData = (NiRTTI *)0x030AF8A8; +const NiRTTI * NiRTTI_NiTriStrips = (NiRTTI *)0x030AF8B8; +const NiRTTI * NiRTTI_NiVectorExtraData = (NiRTTI *)0x030AF8C8; +const NiRTTI * NiRTTI_BSLODTriShape = (NiRTTI *)0x030AF8F0; +const NiRTTI * NiRTTI_NiAdditionalGeometryData = (NiRTTI *)0x030AF900; +const NiRTTI * NiRTTI_BSSegmentedTriShape = (NiRTTI *)0x030AF918; +const NiRTTI * NiRTTI_NiBackToFrontAccumulator = (NiRTTI *)0x030AF950; +const NiRTTI * NiRTTI_NiAccumulator = (NiRTTI *)0x030AF960; +const NiRTTI * NiRTTI_NiTriBasedGeomData = (NiRTTI *)0x030AF970; +const NiRTTI * NiRTTI_NiTriBasedGeom = (NiRTTI *)0x030AF980; +const NiRTTI * NiRTTI_NiCollisionData = (NiRTTI *)0x030AF9C0; +const NiRTTI * NiRTTI_NiControllerManager = (NiRTTI *)0x030AFA58; +const NiRTTI * NiRTTI_NiControllerSequence = (NiRTTI *)0x030AFA78; +const NiRTTI * NiRTTI_NiBlendInterpolator = (NiRTTI *)0x030AFAA8; +const NiRTTI * NiRTTI_NiMultiTargetTransformController = (NiRTTI *)0x030AFAB8; +const NiRTTI * NiRTTI_BSMultiTargetTreadTransfController = (NiRTTI *)0x030AFAC8; +const NiRTTI * NiRTTI_NiInterpController = (NiRTTI *)0x030AFAD8; +const NiRTTI * NiRTTI_NiFloatData = (NiRTTI *)0x030B08A8; +const NiRTTI * NiRTTI_NiFloatInterpolator = (NiRTTI *)0x030B08B8; +const NiRTTI * NiRTTI_NiColorData = (NiRTTI *)0x030B08C8; +const NiRTTI * NiRTTI_NiColorInterpolator = (NiRTTI *)0x030B08D8; +const NiRTTI * NiRTTI_NiSingleInterpController = (NiRTTI *)0x030B08E8; +const NiRTTI * NiRTTI_NiTransformInterpolator = (NiRTTI *)0x030B08F8; +const NiRTTI * NiRTTI_NiPathInterpolator = (NiRTTI *)0x030B0908; +const NiRTTI * NiRTTI_NiBlendTransformInterpolator = (NiRTTI *)0x030B0928; +const NiRTTI * NiRTTI_NiBlendFloatInterpolator = (NiRTTI *)0x030B0938; +const NiRTTI * NiRTTI_NiFloatExtraDataController = (NiRTTI *)0x030B0948; +const NiRTTI * NiRTTI_NiTransformController = (NiRTTI *)0x030B0958; +const NiRTTI * NiRTTI_NiBlendAccumTransformInterpolator = (NiRTTI *)0x030B0968; +const NiRTTI * NiRTTI_NiInterpolator = (NiRTTI *)0x030B0980; +const NiRTTI * NiRTTI_BSBlendTreadTransfInterpolator = (NiRTTI *)0x030B09A0; +const NiRTTI * NiRTTI_NiKeyBasedInterpolator = (NiRTTI *)0x030B09B8; +const NiRTTI * NiRTTI_NiTransformData = (NiRTTI *)0x030B0A38; +const NiRTTI * NiRTTI_NiPosData = (NiRTTI *)0x030B0A48; +const NiRTTI * NiRTTI_NiBlendBoolInterpolator = (NiRTTI *)0x030B0A58; +const NiRTTI * NiRTTI_NiBlendColorInterpolator = (NiRTTI *)0x030B0A68; +const NiRTTI * NiRTTI_NiBlendPoint3Interpolator = (NiRTTI *)0x030B0A78; +const NiRTTI * NiRTTI_NiBlendQuaternionInterpolator = (NiRTTI *)0x030B0A88; +const NiRTTI * NiRTTI_NiBoolData = (NiRTTI *)0x030B0A98; +const NiRTTI * NiRTTI_NiBoolInterpolator = (NiRTTI *)0x030B0AA8; +const NiRTTI * NiRTTI_NiBoolTimelineInterpolator = (NiRTTI *)0x030B0AB8; +const NiRTTI * NiRTTI_NiBSplineBasisData = (NiRTTI *)0x030B0AC8; +const NiRTTI * NiRTTI_NiBSplineData = (NiRTTI *)0x030B0AD8; +const NiRTTI * NiRTTI_NiBSplineColorInterpolator = (NiRTTI *)0x030B0AE8; +const NiRTTI * NiRTTI_NiBSplineCompColorInterpolator = (NiRTTI *)0x030B0AF8; +const NiRTTI * NiRTTI_NiBSplineCompFloatInterpolator = (NiRTTI *)0x030B0B08; +const NiRTTI * NiRTTI_NiBSplineCompPoint3Interpolator = (NiRTTI *)0x030B0B18; +const NiRTTI * NiRTTI_NiBSplineCompTransformInterpolator = (NiRTTI *)0x030B0B28; +const NiRTTI * NiRTTI_NiBSplineFloatInterpolator = (NiRTTI *)0x030B0B38; +const NiRTTI * NiRTTI_NiBSplinePoint3Interpolator = (NiRTTI *)0x030B0B48; +const NiRTTI * NiRTTI_NiBSplineTransformInterpolator = (NiRTTI *)0x030B0B58; +const NiRTTI * NiRTTI_NiColorExtraDataController = (NiRTTI *)0x030B0B68; +const NiRTTI * NiRTTI_NiFloatsExtraDataController = (NiRTTI *)0x030B0B78; +const NiRTTI * NiRTTI_NiFloatsExtraDataPoint3Controller = (NiRTTI *)0x030B0B88; +const NiRTTI * NiRTTI_NiKeyframeManager = (NiRTTI *)0x030B0BA0; +const NiRTTI * NiRTTI_NiLightColorController = (NiRTTI *)0x030B0BB0; +const NiRTTI * NiRTTI_NiLightDimmerController = (NiRTTI *)0x030B0BC0; +const NiRTTI * NiRTTI_NiLookAtController = (NiRTTI *)0x030B0BD0; +const NiRTTI * NiRTTI_NiLookAtInterpolator = (NiRTTI *)0x030B0BE0; +const NiRTTI * NiRTTI_NiMorphData = (NiRTTI *)0x030B0BF0; +const NiRTTI * NiRTTI_NiPathController = (NiRTTI *)0x030B0C00; +const NiRTTI * NiRTTI_NiPoint3Interpolator = (NiRTTI *)0x030B0C10; +const NiRTTI * NiRTTI_NiQuaternionInterpolator = (NiRTTI *)0x030B0C20; +const NiRTTI * NiRTTI_NiRollController = (NiRTTI *)0x030B0C30; +const NiRTTI * NiRTTI_NiRotData = (NiRTTI *)0x030B0C40; +const NiRTTI * NiRTTI_NiSequence = (NiRTTI *)0x030B0C50; +const NiRTTI * NiRTTI_NiSequenceStreamHelper = (NiRTTI *)0x030B0C70; +const NiRTTI * NiRTTI_NiStringPalette = (NiRTTI *)0x030B0C80; +const NiRTTI * NiRTTI_NiTextKeyExtraData = (NiRTTI *)0x030B0C90; +const NiRTTI * NiRTTI_NiUVData = (NiRTTI *)0x030B0CA0; +const NiRTTI * NiRTTI_NiVisController = (NiRTTI *)0x030B0CB0; +const NiRTTI * NiRTTI_BSAnimNote = (NiRTTI *)0x030B0CC0; +const NiRTTI * NiRTTI_BSAnimNotes = (NiRTTI *)0x030B0CD0; +const NiRTTI * NiRTTI_BSGrabIKNote = (NiRTTI *)0x030B0CE0; +const NiRTTI * NiRTTI_BSLookIKNote = (NiRTTI *)0x030B0CF0; +const NiRTTI * NiRTTI_BSRotAccumTransfInterpolator = (NiRTTI *)0x030B0D00; +const NiRTTI * NiRTTI_BSTreadTransfInterpolator = (NiRTTI *)0x030B0D10; +const NiRTTI * NiRTTI_BSFrustumFOVController = (NiRTTI *)0x030B0D20; +const NiRTTI * NiRTTI_NiExtraDataController = (NiRTTI *)0x030B0DB8; +const NiRTTI * NiRTTI_NiBSplineInterpolator = (NiRTTI *)0x030B0DC8; +const NiRTTI * NiRTTI_NiPoint3InterpController = (NiRTTI *)0x030B0DD8; +const NiRTTI * NiRTTI_NiFloatInterpController = (NiRTTI *)0x030B0DE8; +const NiRTTI * NiRTTI_NiFloatController = (NiRTTI *)0x030B0DF8; +const NiRTTI * NiRTTI_NiBoolInterpController = (NiRTTI *)0x030B0E08; +const NiRTTI * NiRTTI_NiParticleSystem = (NiRTTI *)0x030B0E20; +const NiRTTI * NiRTTI_NiPSysEmitterCtlr = (NiRTTI *)0x030B0E30; +const NiRTTI * NiRTTI_NiPSysGravityModifier = (NiRTTI *)0x030B0E40; +const NiRTTI * NiRTTI_BSPSysHavokUpdateModifier = (NiRTTI *)0x030B0E50; +const NiRTTI * NiRTTI_NiMeshParticleSystem = (NiRTTI *)0x030B0E68; +const NiRTTI * NiRTTI_NiPSysCylinderEmitter = (NiRTTI *)0x030B0E80; +const NiRTTI * NiRTTI_BSStripParticleSystem = (NiRTTI *)0x030B0E90; +const NiRTTI * NiRTTI_NiPSysEmitter = (NiRTTI *)0x030B0EA0; +const NiRTTI * NiRTTI_NiPSysModifierCtlr = (NiRTTI *)0x030B0EB0; +const NiRTTI * NiRTTI_NiPSysModifier = (NiRTTI *)0x030B0EC8; +const NiRTTI * NiRTTI_NiPSysMeshUpdateModifier = (NiRTTI *)0x030B0ED8; +const NiRTTI * NiRTTI_NiPSysUpdateCtlr = (NiRTTI *)0x030B0EE8; +const NiRTTI * NiRTTI_NiMeshPSysData = (NiRTTI *)0x030B0EF8; +const NiRTTI * NiRTTI_NiPSysAirFieldAirFrictionCtlr = (NiRTTI *)0x030B0F08; +const NiRTTI * NiRTTI_NiPSysAirFieldInheritVelocityCtlr = (NiRTTI *)0x030B0F18; +const NiRTTI * NiRTTI_NiPSysAirFieldModifier = (NiRTTI *)0x030B0F28; +const NiRTTI * NiRTTI_NiPSysAirFieldSpreadCtlr = (NiRTTI *)0x030B0F38; +const NiRTTI * NiRTTI_NiPSysAgeDeathModifier = (NiRTTI *)0x030B0F48; +const NiRTTI * NiRTTI_NiPSysBombModifier = (NiRTTI *)0x030B0F58; +const NiRTTI * NiRTTI_NiPSysBoundUpdateModifier = (NiRTTI *)0x030B0F68; +const NiRTTI * NiRTTI_NiPSysBoxEmitter = (NiRTTI *)0x030B0F78; +const NiRTTI * NiRTTI_NiPSysColliderManager = (NiRTTI *)0x030B0F88; +const NiRTTI * NiRTTI_NiPSysColorModifier = (NiRTTI *)0x030B0F98; +const NiRTTI * NiRTTI_NiPSysData = (NiRTTI *)0x030B0FA8; +const NiRTTI * NiRTTI_NiPSysDragFieldModifier = (NiRTTI *)0x030B0FB8; +const NiRTTI * NiRTTI_NiPSysDragModifier = (NiRTTI *)0x030B0FC8; +const NiRTTI * NiRTTI_NiPSysEmitterCtlrData = (NiRTTI *)0x030B0FD8; +const NiRTTI * NiRTTI_NiPSysEmitterDeclinationCtlr = (NiRTTI *)0x030B0FE8; +const NiRTTI * NiRTTI_NiPSysEmitterDeclinationVarCtlr = (NiRTTI *)0x030B0FF8; +const NiRTTI * NiRTTI_NiPSysEmitterInitialRadiusCtlr = (NiRTTI *)0x030B1008; +const NiRTTI * NiRTTI_NiPSysEmitterLifeSpanCtlr = (NiRTTI *)0x030B1018; +const NiRTTI * NiRTTI_NiPSysEmitterPlanarAngleCtlr = (NiRTTI *)0x030B1028; +const NiRTTI * NiRTTI_NiPSysEmitterPlanarAngleVarCtlr = (NiRTTI *)0x030B1038; +const NiRTTI * NiRTTI_NiPSysEmitterSpeedCtlr = (NiRTTI *)0x030B1048; +const NiRTTI * NiRTTI_NiPSysFieldAttenuationCtlr = (NiRTTI *)0x030B1058; +const NiRTTI * NiRTTI_NiPSysFieldMagnitudeCtlr = (NiRTTI *)0x030B1068; +const NiRTTI * NiRTTI_NiPSysFieldMaxDistanceCtlr = (NiRTTI *)0x030B1078; +const NiRTTI * NiRTTI_NiPSysGravityFieldModifier = (NiRTTI *)0x030B1088; +const NiRTTI * NiRTTI_NiPSysGravityStrengthCtlr = (NiRTTI *)0x030B1098; +const NiRTTI * NiRTTI_NiPSysGrowFadeModifier = (NiRTTI *)0x030B10A8; +const NiRTTI * NiRTTI_NiPSysInitialRotAngleCtlr = (NiRTTI *)0x030B10B8; +const NiRTTI * NiRTTI_NiPSysInitialRotAngleVarCtlr = (NiRTTI *)0x030B10C8; +const NiRTTI * NiRTTI_NiPSysInitialRotSpeedCtlr = (NiRTTI *)0x030B10D8; +const NiRTTI * NiRTTI_NiPSysInitialRotSpeedVarCtlr = (NiRTTI *)0x030B10E8; +const NiRTTI * NiRTTI_NiPSysMeshEmitter = (NiRTTI *)0x030B10F8; +const NiRTTI * NiRTTI_NiPSysModifierActiveCtlr = (NiRTTI *)0x030B1128; +const NiRTTI * NiRTTI_NiPSysPlanarCollider = (NiRTTI *)0x030B1138; +const NiRTTI * NiRTTI_NiPSysPositionModifier = (NiRTTI *)0x030B1148; +const NiRTTI * NiRTTI_NiPSysRadialFieldModifier = (NiRTTI *)0x030B1158; +const NiRTTI * NiRTTI_NiPSysResetOnLoopCtlr = (NiRTTI *)0x030B1168; +const NiRTTI * NiRTTI_NiPSysRotationModifier = (NiRTTI *)0x030B1178; +const NiRTTI * NiRTTI_NiPSysSpawnModifier = (NiRTTI *)0x030B1188; +const NiRTTI * NiRTTI_NiPSysSphereEmitter = (NiRTTI *)0x030B1198; +const NiRTTI * NiRTTI_NiPSysSphericalCollider = (NiRTTI *)0x030B11A8; +const NiRTTI * NiRTTI_NiPSysTurbulenceFieldModifier = (NiRTTI *)0x030B11B8; +const NiRTTI * NiRTTI_NiPSysVortexFieldModifier = (NiRTTI *)0x030B11C8; +const NiRTTI * NiRTTI_BSStripPSysData = (NiRTTI *)0x030B11D8; +const NiRTTI * NiRTTI_BSPSysRecycleBoundModifier = (NiRTTI *)0x030B11F0; +const NiRTTI * NiRTTI_BSPSysInheritVelocityModifier = (NiRTTI *)0x030B1200; +const NiRTTI * NiRTTI_NiPSysVolumeEmitter = (NiRTTI *)0x030B1210; +const NiRTTI * NiRTTI_NiPSysModifierFloatCtlr = (NiRTTI *)0x030B1220; +const NiRTTI * NiRTTI_NiPSysFieldModifier = (NiRTTI *)0x030B1230; +const NiRTTI * NiRTTI_NiPSysModifierBoolCtlr = (NiRTTI *)0x030B1240; +const NiRTTI * NiRTTI_NiPSysCollider = (NiRTTI *)0x030B1250; +const NiRTTI * NiRTTI_BSMultiBound = (NiRTTI *)0x030B9508; +const NiRTTI * NiRTTI_BSMultiBoundRoom = (NiRTTI *)0x030B9518; +const NiRTTI * NiRTTI_BSMultiBoundAABB = (NiRTTI *)0x030B9530; +const NiRTTI * NiRTTI_BSMultiBoundOBB = (NiRTTI *)0x030B9548; +const NiRTTI * NiRTTI_BSXFlags = (NiRTTI *)0x030B9568; +const NiRTTI * NiRTTI_BSValueNode = (NiRTTI *)0x030B9580; +const NiRTTI * NiRTTI_BSWindModifier = (NiRTTI *)0x030BFB00; +const NiRTTI * NiRTTI_BSTempNodeManager = (NiRTTI *)0x030BFB20; +const NiRTTI * NiRTTI_BSTempNode = (NiRTTI *)0x030BFB30; +const NiRTTI * NiRTTI_BSOcclusionShape = (NiRTTI *)0x030BFB50; +const NiRTTI * NiRTTI_BSRangeNode = (NiRTTI *)0x030BFC48; +const NiRTTI * NiRTTI_BSBlastNode = (NiRTTI *)0x030BFE80; +const NiRTTI * NiRTTI_BSDebrisNode = (NiRTTI *)0x030BFE90; +const NiRTTI * NiRTTI_BSDamageStage = (NiRTTI *)0x030BFEA0; +const NiRTTI * NiRTTI_BSPSysArrayEmitter = (NiRTTI *)0x030BFEB0; +const NiRTTI * NiRTTI_PArrayPoint = (NiRTTI *)0x030BFEC0; +const NiRTTI * NiRTTI_BSMultiStreamInstanceTriShape = (NiRTTI *)0x030BFEE8; +const NiRTTI * NiRTTI_BSMultiBoundShape = (NiRTTI *)0x030BFF18; +const NiRTTI * NiRTTI_BSMultiBoundSphere = (NiRTTI *)0x030BFF28; +const NiRTTI * NiRTTI_BSOcclusionBox = (NiRTTI *)0x030BFF40; +const NiRTTI * NiRTTI_BSOcclusionPlane = (NiRTTI *)0x030BFF58; +const NiRTTI * NiRTTI_BSPortal = (NiRTTI *)0x030BFF68; +const NiRTTI * NiRTTI_BSPortalSharedNode = (NiRTTI *)0x030BFF78; +const NiRTTI * NiRTTI_BSBodyMorphOffsetsExtraData = (NiRTTI *)0x030BFF90; +const NiRTTI * NiRTTI_BSBehaviorGraphExtraData = (NiRTTI *)0x030BFFA0; +const NiRTTI * NiRTTI_NiBSBoneLODController = (NiRTTI *)0x030BFFB8; +const NiRTTI * NiRTTI_BSCullingProcess = (NiRTTI *)0x030BFFD8; +const NiRTTI * NiRTTI_BSParticleSystemManager = (NiRTTI *)0x030BFFF8; +const NiRTTI * NiRTTI_BSFurnitureMarkerNode = (NiRTTI *)0x030C0020; +const NiRTTI * NiRTTI_BSBound = (NiRTTI *)0x030C00A0; +const NiRTTI * NiRTTI_BSMultiBoundNode = (NiRTTI *)0x030C00C0; +const NiRTTI * NiRTTI_BSBoneMap = (NiRTTI *)0x030C00D0; +const NiRTTI * NiRTTI_BSAnimInteractionMarker = (NiRTTI *)0x030C00E8; +const NiRTTI * NiRTTI_BSSceneGraph = (NiRTTI *)0x030C0100; +const NiRTTI * NiRTTI_BSPSysMultiTargetEmitterCtlr = (NiRTTI *)0x030C0118; +const NiRTTI * NiRTTI_BSGeometryListCullingProcess = (NiRTTI *)0x030C0130; +const NiRTTI * NiRTTI_BSSubIndexTriShape = (NiRTTI *)0x030C0148; +const NiRTTI * NiRTTI_BSDistantObjectLargeRefExtraData = (NiRTTI *)0x030C0158; +const NiRTTI * NiRTTI_BSMasterParticleSystem = (NiRTTI *)0x030C1B20; +const NiRTTI * NiRTTI_BSProceduralLightningController = (NiRTTI *)0x030C1B48; +const NiRTTI * NiRTTI_BSInvMarker = (NiRTTI *)0x030C1B58; +const NiRTTI * NiRTTI_BSBoneLODExtraData = (NiRTTI *)0x030C1B70; +const NiRTTI * NiRTTI_BSReference = (NiRTTI *)0x030C1B90; +const NiRTTI * NiRTTI_BSNodeReferences = (NiRTTI *)0x030C1BA0; +const NiRTTI * NiRTTI_BSDecalPlacementVectorExtraData = (NiRTTI *)0x030C1BB0; +const NiRTTI * NiRTTI_BSParentVelocityModifier = (NiRTTI *)0x030C1BC0; +const NiRTTI * NiRTTI_BSWArray = (NiRTTI *)0x030C1BD0; +const NiRTTI * NiRTTI_BSMultiBoundCapsule = (NiRTTI *)0x030C1BE8; +const NiRTTI * NiRTTI_BSPSysStripUpdateModifier = (NiRTTI *)0x030C1BF8; +const NiRTTI * NiRTTI_BSPSysSubTexModifier = (NiRTTI *)0x030C1C08; +const NiRTTI * NiRTTI_BSPSysScaleModifier = (NiRTTI *)0x030C1C18; +const NiRTTI * NiRTTI_BSLagBoneController = (NiRTTI *)0x030C1C28; +const NiRTTI * NiRTTI_BSNonUniformScaleExtraData = (NiRTTI *)0x030C1C38; +const NiRTTI * NiRTTI_BSNiNode = (NiRTTI *)0x030C1C50; +const NiRTTI * NiRTTI_BSInstanceTriShape = (NiRTTI *)0x030C1C60; +const NiRTTI * NiRTTI_bhkWorldObject = (NiRTTI *)0x030C8158; +const NiRTTI * NiRTTI_bhkWorld = (NiRTTI *)0x030C8198; +const NiRTTI * NiRTTI_bhkRigidBody = (NiRTTI *)0x030C92D8; +const NiRTTI * NiRTTI_bhkCollisionObject = (NiRTTI *)0x030C92F0; +const NiRTTI * NiRTTI_bhkNiCollisionObject = (NiRTTI *)0x030C93A0; +const NiRTTI * NiRTTI_bhkAttachmentCollisionObject = (NiRTTI *)0x030C9420; +const NiRTTI * NiRTTI_WeaponObject = (NiRTTI *)0x030C9430; +const NiRTTI * NiRTTI_bhkRigidBodyT = (NiRTTI *)0x030C9458; +const NiRTTI * NiRTTI_bhkWorldM = (NiRTTI *)0x030C9468; +const NiRTTI * NiRTTI_bhkRefObject = (NiRTTI *)0x030C9490; +const NiRTTI * NiRTTI_bhkSerializable = (NiRTTI *)0x030C94A0; +const NiRTTI * NiRTTI_bhkShape = (NiRTTI *)0x030C94D0; +const NiRTTI * NiRTTI_bhkEntity = (NiRTTI *)0x030C94E8; +const NiRTTI * NiRTTI_bhkPhantom = (NiRTTI *)0x030C9500; +const NiRTTI * NiRTTI_bhkAabbPhantom = (NiRTTI *)0x030C9518; +const NiRTTI * NiRTTI_bhkSphereRepShape = (NiRTTI *)0x030C9530; +const NiRTTI * NiRTTI_bhkConvexShape = (NiRTTI *)0x030C9548; +const NiRTTI * NiRTTI_bhkPCollisionObject = (NiRTTI *)0x030C9558; +const NiRTTI * NiRTTI_hkPackedNiTriStripsData = (NiRTTI *)0x030C9568; +const NiRTTI * NiRTTI_bhkShapePhantom = (NiRTTI *)0x030C9580; +const NiRTTI * NiRTTI_bhkSimpleShapePhantom = (NiRTTI *)0x030C9598; +const NiRTTI * NiRTTI_bhkCapsuleShape = (NiRTTI *)0x030C95B0; +const NiRTTI * NiRTTI_bhkBoxShape = (NiRTTI *)0x030C95C8; +const NiRTTI * NiRTTI_bhkSphereShape = (NiRTTI *)0x030C95E0; +const NiRTTI * NiRTTI_bhkBvTreeShape = (NiRTTI *)0x030C95F8; +const NiRTTI * NiRTTI_bhkNiTriStripsShape = (NiRTTI *)0x030C9610; +const NiRTTI * NiRTTI_bhkPackedNiTriStripsShape = (NiRTTI *)0x030C9638; +const NiRTTI * NiRTTI_bhkBlendCollisionObject = (NiRTTI *)0x030C9650; +const NiRTTI * NiRTTI_bhkAvoidBox = (NiRTTI *)0x030C9670; +const NiRTTI * NiRTTI_bhkLimitedHingeConstraint = (NiRTTI *)0x030C9688; +const NiRTTI * NiRTTI_bhkMalleableConstraint = (NiRTTI *)0x030C96A0; +const NiRTTI * NiRTTI_bhkUnaryAction = (NiRTTI *)0x030C96B8; +const NiRTTI * NiRTTI_bhkConstraint = (NiRTTI *)0x030C96D0; +const NiRTTI * NiRTTI_bhkPrismaticConstraint = (NiRTTI *)0x030C96E8; +const NiRTTI * NiRTTI_bhkAction = (NiRTTI *)0x030C9700; +const NiRTTI * NiRTTI_bhkTriSampledHeightFieldBvTreeShape = (NiRTTI *)0x030C9718; +const NiRTTI * NiRTTI_bhkCachingShapePhantom = (NiRTTI *)0x030CA388; +const NiRTTI * NiRTTI_bhkRagdollTemplateData = (NiRTTI *)0x030CA3B0; +const NiRTTI * NiRTTI_bhkRagdollTemplate = (NiRTTI *)0x030CA3C0; +const NiRTTI * NiRTTI_bhkSPCollisionObject = (NiRTTI *)0x030CA3D0; +const NiRTTI * NiRTTI_bhkMouseSpringAction = (NiRTTI *)0x030CA3E8; +const NiRTTI * NiRTTI_bhkHingeConstraint = (NiRTTI *)0x030CA400; +const NiRTTI * NiRTTI_bhkCompressedMeshShape = (NiRTTI *)0x030CA478; +const NiRTTI * NiRTTI_bhkCompressedMeshShapeData = (NiRTTI *)0x030CA488; +const NiRTTI * NiRTTI_bhkConvexSweepShape = (NiRTTI *)0x030CA4A0; +const NiRTTI * NiRTTI_bhkConvexTransformShape = (NiRTTI *)0x030CA4B8; +const NiRTTI * NiRTTI_bhkConvexTranslateShape = (NiRTTI *)0x030CA4D0; +const NiRTTI * NiRTTI_bhkConvexVerticesShape = (NiRTTI *)0x030CA4E8; +const NiRTTI * NiRTTI_bhkCylinderShape = (NiRTTI *)0x030CA500; +const NiRTTI * NiRTTI_bhkMultiSphereShape = (NiRTTI *)0x030CA518; +const NiRTTI * NiRTTI_bhkPlaneShape = (NiRTTI *)0x030CA530; +const NiRTTI * NiRTTI_bhkTriangleShape = (NiRTTI *)0x030CA548; +const NiRTTI * NiRTTI_bhkMoppBvTreeShape = (NiRTTI *)0x030CA560; +const NiRTTI * NiRTTI_bhkTransformShape = (NiRTTI *)0x030CA578; +const NiRTTI * NiRTTI_bhkListShape = (NiRTTI *)0x030CA590; +const NiRTTI * NiRTTI_bhkBallAndSocketConstraint = (NiRTTI *)0x030CA5A8; +const NiRTTI * NiRTTI_bhkBallSocketConstraintChain = (NiRTTI *)0x030CA5C0; +const NiRTTI * NiRTTI_bhkGroupConstraint = (NiRTTI *)0x030CA5D8; +const NiRTTI * NiRTTI_bhkHingeLimitsConstraint = (NiRTTI *)0x030CA5F0; +const NiRTTI * NiRTTI_bhkFixedConstraint = (NiRTTI *)0x030CA608; +const NiRTTI * NiRTTI_bhkRagdollConstraint = (NiRTTI *)0x030CA620; +const NiRTTI * NiRTTI_bhkRagdollLimitsConstraint = (NiRTTI *)0x030CA638; +const NiRTTI * NiRTTI_bhkStiffSpringConstraint = (NiRTTI *)0x030CA650; +const NiRTTI * NiRTTI_bhkWheelConstraint = (NiRTTI *)0x030CA668; +const NiRTTI * NiRTTI_bhkBreakableConstraint = (NiRTTI *)0x030CA680; +const NiRTTI * NiRTTI_bhkAngularDashpotAction = (NiRTTI *)0x030CA698; +const NiRTTI * NiRTTI_bhkDashpotAction = (NiRTTI *)0x030CA6B0; +const NiRTTI * NiRTTI_bhkLiquidAction = (NiRTTI *)0x030CA6C8; +const NiRTTI * NiRTTI_bhkMotorAction = (NiRTTI *)0x030CA6E8; +const NiRTTI * NiRTTI_bhkOrientHingedBodyAction = (NiRTTI *)0x030CA700; +const NiRTTI * NiRTTI_bhkSpringAction = (NiRTTI *)0x030CA718; +const NiRTTI * NiRTTI_bhkBlendController = (NiRTTI *)0x030CA728; +const NiRTTI * NiRTTI_bhkExtraData = (NiRTTI *)0x030CA738; +const NiRTTI * NiRTTI_bhkPoseArray = (NiRTTI *)0x030CA748; +const NiRTTI * NiRTTI_bhkGenericConstraint = (NiRTTI *)0x030CA768; +const NiRTTI * NiRTTI_bhkCharControllerShape = (NiRTTI *)0x030CA778; +const NiRTTI * NiRTTI_bhkCollisionBox = (NiRTTI *)0x030CA790; +const NiRTTI * NiRTTI_bhkShapeCollection = (NiRTTI *)0x030CA7A8; +const NiRTTI * NiRTTI_bhkPositionConstraintMotor = (NiRTTI *)0x030CA810; +const NiRTTI * NiRTTI_bhkVelocityConstraintMotor = (NiRTTI *)0x030CA820; +const NiRTTI * NiRTTI_bhkSpringDamperConstraintMotor = (NiRTTI *)0x030CA830; +const NiRTTI * NiRTTI_bhkCharacterProxy = (NiRTTI *)0x030CB5E8; +const NiRTTI * NiRTTI_bhkCharacterRigidBody = (NiRTTI *)0x030CB600; +const NiRTTI * NiRTTI_bhkHeightFieldShape = (NiRTTI *)0x030CC908; +const NiRTTI * NiRTTI_bhkConstraintChain = (NiRTTI *)0x030CC920; +const NiRTTI * NiRTTI_bhkBinaryAction = (NiRTTI *)0x030CC938; +const NiRTTI * NiRTTI_bhkPointToPathConstraint = (NiRTTI *)0x030CC970; +const NiRTTI * NiRTTI_DebugTextExtraData = (NiRTTI *)0x030CE170; +const NiRTTI * NiRTTI_BSFadeNode = (NiRTTI *)0x0326C0E8; +const NiRTTI * NiRTTI_BSShaderProperty = (NiRTTI *)0x0326C118; +const NiRTTI * NiRTTI_BSLeafAnimNode = (NiRTTI *)0x0326C128; +const NiRTTI * NiRTTI_BSTreeNode = (NiRTTI *)0x0326C138; +const NiRTTI * NiRTTI_ShadowSceneNode = (NiRTTI *)0x0326C560; +const NiRTTI * NiRTTI_BSLightingShaderProperty = (NiRTTI *)0x0326CE30; +const NiRTTI * NiRTTI_BSGrassShaderProperty = (NiRTTI *)0x0326CE68; +const NiRTTI * NiRTTI_BSShaderAccumulator = (NiRTTI *)0x0326D080; +const NiRTTI * NiRTTI_BSEffectShaderProperty = (NiRTTI *)0x0326D220; +const NiRTTI * NiRTTI_BSWaterShaderProperty = (NiRTTI *)0x032CE048; +const NiRTTI * NiRTTI_BSBloodSplatterShaderProperty = (NiRTTI *)0x032CE058; +const NiRTTI * NiRTTI_BSParticleShaderProperty = (NiRTTI *)0x032CE448; +const NiRTTI * NiRTTI_BSTextureSet = (NiRTTI *)0x032CE798; +const NiRTTI * NiRTTI_BSShaderTextureSet = (NiRTTI *)0x032CE7A8; +const NiRTTI * NiRTTI_BSSkyShaderProperty = (NiRTTI *)0x032CEAA8; +const NiRTTI * NiRTTI_BSFadeNodeCuller = (NiRTTI *)0x0331EB30; +const NiRTTI * NiRTTI_BSDistantTreeShaderProperty = (NiRTTI *)0x0331EB60; +const NiRTTI * NiRTTI_BSCubeMapCamera = (NiRTTI *)0x0331ED40; +const NiRTTI * NiRTTI_BSFogProperty = (NiRTTI *)0x0331EDF8; +const NiRTTI * NiRTTI_BSClearZNode = (NiRTTI *)0x03530EB8; +const NiRTTI * NiRTTI_NiCollisionObject = (NiRTTI *)0x03530FD8; +const NiRTTI * NiRTTI_BSOrderedNode = (NiRTTI *)0x03530FE8; +const NiRTTI * NiRTTI_BSLines = (NiRTTI *)0x03530FF8; +const NiRTTI * NiRTTI_BSDynamicLines = (NiRTTI *)0x03531008; +const NiRTTI * NiRTTI_BSMultiIndexTriShape = (NiRTTI *)0x03531028; +const NiRTTI * NiRTTI_BSLightingShaderPropertyFloatController = (NiRTTI *)0x035310D0; +const NiRTTI * NiRTTI_BSLightingShaderPropertyUShortController = (NiRTTI *)0x035310E8; +const NiRTTI * NiRTTI_BSLightingShaderPropertyColorController = (NiRTTI *)0x03531100; +const NiRTTI * NiRTTI_BSEffectShaderPropertyFloatController = (NiRTTI *)0x03531138; +const NiRTTI * NiRTTI_BSEffectShaderPropertyColorController = (NiRTTI *)0x03531150; +const NiRTTI * NiRTTI_BSNiAlphaPropertyTestRefController = (NiRTTI *)0x03531160; +const NiRTTI * NiRTTI_BSPSysSimpleColorModifier = (NiRTTI *)0x03531170; +const NiRTTI * NiRTTI_BSPSysLODModifier = (NiRTTI *)0x03531180; +const NiRTTI * NiRTTI_BSParabolicCullingProcess = (NiRTTI *)0x03531608; +const NiRTTI * NiRTTI_BSMeshLODTriShape = (NiRTTI *)0x03531618; +const NiRTTI * NiRTTI_BSLODMultiIndexTriShape = (NiRTTI *)0x03531628; +const NiRTTI * NiRTTI_BSSubIndexLandTriShape = (NiRTTI *)0x03531640; diff --git a/source/fs.dll/skse64/skse64/NiRTTI.h b/source/fs.dll/skse64/skse64/NiRTTI.h index b2d2c56c..b9a647f5 100644 --- a/source/fs.dll/skse64/skse64/NiRTTI.h +++ b/source/fs.dll/skse64/skse64/NiRTTI.h @@ -525,8 +525,8 @@ extern const NiRTTI * NiRTTI_NiVectorExtraData; extern const NiRTTI * NiRTTI_BSLODTriShape; extern const NiRTTI * NiRTTI_NiAdditionalGeometryData; extern const NiRTTI * NiRTTI_BSSegmentedTriShape; -extern const NiRTTI * NiRTTI_NiAccumulator; extern const NiRTTI * NiRTTI_NiBackToFrontAccumulator; +extern const NiRTTI * NiRTTI_NiAccumulator; extern const NiRTTI * NiRTTI_NiTriBasedGeomData; extern const NiRTTI * NiRTTI_NiTriBasedGeom; extern const NiRTTI * NiRTTI_NiCollisionData; @@ -753,10 +753,10 @@ extern const NiRTTI * NiRTTI_bhkBlendCollisionObject; extern const NiRTTI * NiRTTI_bhkAvoidBox; extern const NiRTTI * NiRTTI_bhkLimitedHingeConstraint; extern const NiRTTI * NiRTTI_bhkMalleableConstraint; +extern const NiRTTI * NiRTTI_bhkUnaryAction; extern const NiRTTI * NiRTTI_bhkConstraint; extern const NiRTTI * NiRTTI_bhkPrismaticConstraint; extern const NiRTTI * NiRTTI_bhkAction; -extern const NiRTTI * NiRTTI_bhkUnaryAction; extern const NiRTTI * NiRTTI_bhkTriSampledHeightFieldBvTreeShape; extern const NiRTTI * NiRTTI_bhkCachingShapePhantom; extern const NiRTTI * NiRTTI_bhkRagdollTemplateData; diff --git a/source/fs.dll/skse64/skse64/NiRenderer.cpp b/source/fs.dll/skse64/skse64/NiRenderer.cpp index 12e5239b..82e6c205 100644 --- a/source/fs.dll/skse64/skse64/NiRenderer.cpp +++ b/source/fs.dll/skse64/skse64/NiRenderer.cpp @@ -1,12 +1,12 @@ #include "skse64/NiRenderer.h" -// 4EE5DE7D7BF6D392967302448BCC9612EEE6E7F9+4 -RelocPtr g_renderManager(0x03028490); +// 984B8D46444288152A10744FB7226DC9943D175E+57 +RelocPtr g_renderManager(0x030C3C40); BSRenderManager * BSRenderManager::GetSingleton() { return g_renderManager; } -// 57AB5FBCBB5E60836D42FAF78C4DFED6A7BACA41+28 -RelocPtr g_shaderResourceManager(0x030136C0); +// 56C98A6AC471728E145A8629B087CE2BE81252C1+CC +RelocPtr g_shaderResourceManager(0x030AF4C0); diff --git a/source/fs.dll/skse64/skse64/NiRenderer.h b/source/fs.dll/skse64/skse64/NiRenderer.h index f9b2e57e..237595f5 100644 --- a/source/fs.dll/skse64/skse64/NiRenderer.h +++ b/source/fs.dll/skse64/skse64/NiRenderer.h @@ -31,8 +31,9 @@ public: UInt64 unk2788[(0x2788 - 0x90) >> 3]; CRITICAL_SECTION lock; // 2790 - // 1412F0390 - CreateRenderTargets - DEFINE_MEMBER_FN_2(CreateRenderTexture, NiTexture::RendererData *, 0x00D6DBC0, UInt32 width, UInt32 height); + // 141415050 - CreateRenderTargets + + DEFINE_MEMBER_FN_2(CreateRenderTexture, NiTexture::RendererData *, 0x00DAA470, UInt32 width, UInt32 height); }; extern RelocPtr g_renderManager; diff --git a/source/fs.dll/skse64/skse64/NiSerialization.h b/source/fs.dll/skse64/skse64/NiSerialization.h index 659aad99..f2491f97 100644 --- a/source/fs.dll/skse64/skse64/NiSerialization.h +++ b/source/fs.dll/skse64/skse64/NiSerialization.h @@ -21,9 +21,9 @@ public: virtual bool SavePath(const char * path); MEMBER_FN_PREFIX(NiStream); - DEFINE_MEMBER_FN(ctor, NiStream *, 0x00C59690); - DEFINE_MEMBER_FN(dtor, void, 0x00C598F0); - DEFINE_MEMBER_FN(AddObject, void, 0x00C59AE0, NiObject * object); + DEFINE_MEMBER_FN(ctor, NiStream *, 0x00C81DB0); + DEFINE_MEMBER_FN(dtor, void, 0x00C82010); + DEFINE_MEMBER_FN(AddObject, void, 0x00C82210, NiObject * object); // void ** _vtbl; // 000 UInt64 pad004[(0x218 - 0x008) >> 3]; // 008 @@ -55,7 +55,7 @@ class BSStream : public NiStream { public: MEMBER_FN_PREFIX(BSStream); - DEFINE_MEMBER_FN(dtor, void, 0x0014CC20); + DEFINE_MEMBER_FN(dtor, void, 0x001557C0); UInt64 unk620; UInt64 unk628; @@ -68,10 +68,7 @@ public: DeepCopyStream(); virtual ~DeepCopyStream(); - // vtbl 001117394 - MEMBER_FN_PREFIX(DeepCopyStream); - DEFINE_MEMBER_FN(SaveStream, bool, 0x00C59F10, char ** buffer, UInt32 * length); - DEFINE_MEMBER_FN(LoadStream, bool, 0x00C59EC0, char * buffer, UInt32 length); + DEFINE_MEMBER_FN(SaveStream, bool, 0x00C826B0, char ** buffer, UInt32 * length); + DEFINE_MEMBER_FN(LoadStream, bool, 0x00C82660, char * buffer, UInt32 length); }; - diff --git a/source/fs.dll/skse64/skse64/NiTextures.cpp b/source/fs.dll/skse64/skse64/NiTextures.cpp index 9f9e898f..681296ad 100644 --- a/source/fs.dll/skse64/skse64/NiTextures.cpp +++ b/source/fs.dll/skse64/skse64/NiTextures.cpp @@ -1,4 +1,4 @@ #include "skse64/NiTextures.h" -RelocAddr<_CreateSourceTexture> CreateSourceTexture(0x00C68D20); -RelocAddr<_LoadTexture> LoadTexture(0x01295C30); \ No newline at end of file +RelocAddr<_CreateSourceTexture> CreateSourceTexture(0x00C91F70); +RelocAddr<_LoadTexture> LoadTexture(0x013BCA60); diff --git a/source/fs.dll/skse64/skse64/NiTextures.h b/source/fs.dll/skse64/skse64/NiTextures.h index 902a555f..fd0db58d 100644 --- a/source/fs.dll/skse64/skse64/NiTextures.h +++ b/source/fs.dll/skse64/skse64/NiTextures.h @@ -170,9 +170,9 @@ public: MEMBER_FN_PREFIX(NiRenderedTexture); DEFINE_MEMBER_FN(ctor, void, 0x00000000); - DEFINE_MEMBER_FN(UpdateVirtualImage, void, 0x00ECDF50, NiRenderedTexture * newTexture); - DEFINE_MEMBER_FN(AddVirtualImage, UInt8, 0x00ECE010, BSFixedString linkageName); - DEFINE_MEMBER_FN(ReleaseVirtualImage, void, 0x00ECDEE0); + DEFINE_MEMBER_FN(UpdateVirtualImage, void, 0x00F113F0, NiRenderedTexture * newTexture); + DEFINE_MEMBER_FN(AddVirtualImage, UInt8, 0x00F114C0, BSFixedString linkageName); + DEFINE_MEMBER_FN(ReleaseVirtualImage, void, 0x00F11380); }; // 58 @@ -201,4 +201,4 @@ typedef NiTexture * (*_CreateSourceTexture)(const BSFixedString & name); extern RelocAddr<_CreateSourceTexture> CreateSourceTexture; typedef void (*_LoadTexture)(const char * path, UInt8 unk1, NiPointer & texture, bool unk2); -extern RelocAddr<_LoadTexture> LoadTexture; \ No newline at end of file +extern RelocAddr<_LoadTexture> LoadTexture; diff --git a/source/fs.dll/skse64/skse64/ObScript.cpp b/source/fs.dll/skse64/skse64/ObScript.cpp index c0f54218..1c61d96a 100644 --- a/source/fs.dll/skse64/skse64/ObScript.cpp +++ b/source/fs.dll/skse64/skse64/ObScript.cpp @@ -1,9 +1,10 @@ #include "ObScript.h" #include "skse64_common\Relocation.h" -// 698845F80EE915EE803E515A37C1269ED6A2FE43+47 -RelocPtr g_firstObScriptCommand(0x01DB8910); -// 698845F80EE915EE803E515A37C1269ED6A2FE43+1E -RelocPtr g_firstConsoleCommand(0x01DC6F60); +// B0061DDA35158B8956EF9CFBDD3D63C5B4C96A8D+33 +RelocPtr g_firstObScriptCommand(0x01E4D9B0); +// B0061DDA35158B8956EF9CFBDD3D63C5B4C96A8D+F +RelocPtr g_firstConsoleCommand(0x01E5C000); -RelocAddr<_ObScript_ExtractArgs> ObjScript_ExtractArgs(0x002E8400); \ No newline at end of file +// 42E5B9018CCF84B813403067F1D963D8C753ED8D+4C +RelocAddr <_ObScript_ExtractArgs> ObScript_ExtractArgs(0x002FC800); diff --git a/source/fs.dll/skse64/skse64/ObScript.h b/source/fs.dll/skse64/skse64/ObScript.h index 2d2a1894..41402062 100644 --- a/source/fs.dll/skse64/skse64/ObScript.h +++ b/source/fs.dll/skse64/skse64/ObScript.h @@ -99,7 +99,7 @@ typedef bool (* ObScript_Parse)(UInt32 numParams, const ObScriptParam* paramInfo typedef bool (* ObScript_Eval)(TESObjectREFR* thisObj, void* arg1, void* arg2, double& result); typedef bool(* _ObScript_ExtractArgs)(const ObScriptParam * paramInfo, ScriptData * scriptData, UInt32& opcodeOffsetPtr, TESObjectREFR * thisObj, TESObjectREFR* containingObj, Script* scriptObj, ScriptLocals* locals, void* args1, void* args2); -extern RelocAddr<_ObScript_ExtractArgs> ObjScript_ExtractArgs; +extern RelocAddr<_ObScript_ExtractArgs> ObScript_ExtractArgs; // 02E8400 diff --git a/source/fs.dll/skse64/skse64/PapyrusArgs.h b/source/fs.dll/skse64/skse64/PapyrusArgs.h index 36275cb0..719b790f 100644 --- a/source/fs.dll/skse64/skse64/PapyrusArgs.h +++ b/source/fs.dll/skse64/skse64/PapyrusArgs.h @@ -18,10 +18,9 @@ public: ~VMArgList(); MEMBER_FN_PREFIX(VMArgList); - // 20AE20213D7A9C7AB3491192BCCB2467282AE266+44 - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x01244970, VMState * state); - // 20AE20213D7A9C7AB3491192BCCB2467282AE266+62 - DEFINE_MEMBER_FN(Get, VMValue *, 0x012449D0, VMState * state, UInt32 idx, UInt32 offset); + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x0136F0E0, VMState * state); + // FB33603AEC8921D8A9361F52478B667E583E54A1+20 + DEFINE_MEMBER_FN(Get, VMValue *, 0x0136F150, VMState * state, UInt32 idx, UInt32 offset); }; template diff --git a/source/fs.dll/skse64/skse64/PapyrusInterfaces.cpp b/source/fs.dll/skse64/skse64/PapyrusInterfaces.cpp index f957b72e..904a8af7 100644 --- a/source/fs.dll/skse64/skse64/PapyrusInterfaces.cpp +++ b/source/fs.dll/skse64/skse64/PapyrusInterfaces.cpp @@ -1,4 +1,4 @@ #include "skse64/PapyrusInterfaces.h" -// 82677E39AC1FFB7F2E1C28FBABC2FC971DB49882+F7 -RelocPtr g_objectHandlePolicy(0x031D07A8); +// B085C9577FC3BACF4719EF79E3613E2327537C10+4F +RelocPtr g_objectHandlePolicy(0x0326BBB0); diff --git a/source/fs.dll/skse64/skse64/PapyrusInterfaces.h b/source/fs.dll/skse64/skse64/PapyrusInterfaces.h index 39af9802..f535ac3f 100644 --- a/source/fs.dll/skse64/skse64/PapyrusInterfaces.h +++ b/source/fs.dll/skse64/skse64/PapyrusInterfaces.h @@ -51,5 +51,5 @@ public: // void ** _vtbl; // 00 MEMBER_FN_PREFIX(ObjectBindPolicy); - DEFINE_MEMBER_FN(BindObject, void, 0x0122DAD0, VMIdentifier ** identifier, UInt64 handle); + DEFINE_MEMBER_FN(BindObject, void, 0x0135A430, VMIdentifier ** identifier, UInt64 handle); }; diff --git a/source/fs.dll/skse64/skse64/PapyrusNativeFunctions.h b/source/fs.dll/skse64/skse64/PapyrusNativeFunctions.h index 3e79c4d4..1ac9f579 100644 --- a/source/fs.dll/skse64/skse64/PapyrusNativeFunctions.h +++ b/source/fs.dll/skse64/skse64/PapyrusNativeFunctions.h @@ -117,14 +117,14 @@ public: virtual bool Run(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state) = 0; MEMBER_FN_PREFIX(NativeFunctionBase); - DEFINE_MEMBER_FN(Impl_dtor, void, 0x01250ED0); + DEFINE_MEMBER_FN(Impl_dtor, void, 0x0137AD80); // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 6 - DEFINE_MEMBER_FN(Impl_GetParam, UInt64 *, 0x01250670, UInt32 idx, BSFixedString * nameOut, UInt64 * typeOut); - DEFINE_MEMBER_FN(Impl_Invoke, UInt32, 0x012507F0, UInt64 unk0, UInt64 unk1, VMClassRegistry * registry, VMState * unk3); + DEFINE_MEMBER_FN(Impl_GetParam, UInt64 *, 0x0137A450, UInt32 idx, BSFixedString * nameOut, UInt64 * typeOut); + DEFINE_MEMBER_FN(Impl_Invoke, UInt32, 0x0137A650, UInt64 unk0, UInt64 unk1, VMClassRegistry * registry, VMState * unk3); // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x10 - DEFINE_MEMBER_FN(Impl_Fn10, BSFixedString *, 0x01250750); + DEFINE_MEMBER_FN(Impl_Fn10, BSFixedString *, 0x0137A530); // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x12 - DEFINE_MEMBER_FN(Impl_Fn12, bool, 0x01250770, UInt32 idx, UInt64 out); + DEFINE_MEMBER_FN(Impl_Fn12, bool, 0x0137A550, UInt32 idx, UInt64 out); DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free); @@ -156,8 +156,8 @@ public: virtual bool Run(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state) = 0; MEMBER_FN_PREFIX(NativeFunction); - DEFINE_MEMBER_FN(Impl_ctor, NativeFunction *, 0x01250C80, const char * fnName, const char * className, UInt32 unk0, UInt32 numParams); - DEFINE_MEMBER_FN(Impl_dtor, void, 0x01250ED0); + DEFINE_MEMBER_FN(Impl_ctor, NativeFunction *, 0x0137AB30, const char * fnName, const char * className, UInt32 unk0, UInt32 numParams); + DEFINE_MEMBER_FN(Impl_dtor, void, 0x0137AD80); // same as NativeFunctionBase dtor void DebugRunHook(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state); diff --git a/source/fs.dll/skse64/skse64/PapyrusObjectReference.cpp b/source/fs.dll/skse64/skse64/PapyrusObjectReference.cpp index c1756f71..29b121af 100644 --- a/source/fs.dll/skse64/skse64/PapyrusObjectReference.cpp +++ b/source/fs.dll/skse64/skse64/PapyrusObjectReference.cpp @@ -378,9 +378,15 @@ namespace papyrusObjectReference UInt8 formType = pProduceRef->baseForm->formType; if (formType == kFormType_Tree || formType == kFormType_Flora) { if(isHarvested) + { pProduceRef->flags |= TESObjectREFR::kFlag_Harvested; + pProduceRef->MarkChanged(TESObjectREFR::kChange_IsEmpty); + } else + { pProduceRef->flags &= ~TESObjectREFR::kFlag_Harvested; + pProduceRef->ClearChanged(TESObjectREFR::kChange_IsEmpty); + } } TaskInterface::UpdateHarvestModel(pProduceRef); diff --git a/source/fs.dll/skse64/skse64/PapyrusVM.cpp b/source/fs.dll/skse64/skse64/PapyrusVM.cpp index 4b091e35..08ccc729 100644 --- a/source/fs.dll/skse64/skse64/PapyrusVM.cpp +++ b/source/fs.dll/skse64/skse64/PapyrusVM.cpp @@ -1,8 +1,8 @@ #include "PapyrusVM.h" #include "GameAPI.h" -// 34E44118D2A6FDD3472D1A6D43002360FBDE4EA4+15 -RelocPtr g_skyrimVM(0x01EC3B78); +// 3740B7AD44E615CF1BB4401806BB6F9DB42DA46D+12 +RelocPtr g_skyrimVM(0x01F5F4F8); void VMClassInfo::AddRef(void) { diff --git a/source/fs.dll/skse64/skse64/PapyrusVM.h b/source/fs.dll/skse64/skse64/PapyrusVM.h index f8fce7b7..0480ce42 100644 --- a/source/fs.dll/skse64/skse64/PapyrusVM.h +++ b/source/fs.dll/skse64/skse64/PapyrusVM.h @@ -78,10 +78,10 @@ public: void Release(void); MEMBER_FN_PREFIX(VMClassInfo); - DEFINE_MEMBER_FN(Destroy, void, 0x01237240); - DEFINE_MEMBER_FN(GetVariable, SInt32, 0x012385B0, BSFixedString * name); - // 1673D04F90861710999A3DC0514282C538D25FCA+187 - DEFINE_MEMBER_FN(GetFunction, IFunction*, 0x0123C760, const char * fnName); + DEFINE_MEMBER_FN(Destroy, void, 0x013626F0); + DEFINE_MEMBER_FN(GetVariable, SInt32, 0x01363980, BSFixedString * name); + // + DEFINE_MEMBER_FN(GetFunction, IFunction*, 0x013670C0, const char * fnName); }; // This type is not fully decoded or correctly sized, just enough to use the functor @@ -139,7 +139,6 @@ class VMUnlinkedClassList UInt32 unk44; // 44 }; - // 044 class VMStackInfo { @@ -391,16 +390,16 @@ public: MEMBER_FN_PREFIX(SkyrimVM); // Used by Hooks_Papyrus - // 7B34FD8669F3B7848943EE6F26F783A154F6A336+31 - DEFINE_MEMBER_FN(UnregisterFromSleep_Internal, void, 0x009247E0, UInt64 handle); - DEFINE_MEMBER_FN(RevertGlobalData_Internal, bool, 0x0092DAE0); - // E79F47684196468F785E6950402DBDAA5A668FAA+110 - DEFINE_MEMBER_FN(SaveRegSleepEventHandles_Internal, bool, 0x0092EB50, void * handleReaderWriter, void * saveStorageWrapper); - // ECCDB3740458A9BB07FA958498C66F04CE14F94C+1E6 - DEFINE_MEMBER_FN(LoadRegSleepEventHandles_Internal, bool, 0x0092FD80, void * handleReaderWriter, void * loadStorageWrapper); + // + DEFINE_MEMBER_FN(UnregisterFromSleep_Internal, void, 0x009520A0, UInt64 handle); // AE: using one function earlier due to inlining + DEFINE_MEMBER_FN(RevertGlobalData_Internal, bool, 0x0095BD90); + // 4DF4B0288419C72FBF262CE2DBBAAFE7D9713C51+390 + DEFINE_MEMBER_FN(SaveRegSleepEventHandles_Internal, bool, 0x0095D150, void * handleReaderWriter, void * saveStorageWrapper); + // 4F9ECB23ABD5935D4160213D8A06DB7A94E6B988+2FB + DEFINE_MEMBER_FN(LoadRegSleepEventHandles_Internal, bool, 0x0095E3F0, void * handleReaderWriter, void * loadStorageWrapper); // AE: using one function earlier due to inlining - // 00011FEFBFDA69F253C84165B45736A4F0AF02B8+204 - DEFINE_MEMBER_FN(QueueDelayFunctor_Internal, bool, 0x009252C0, void** pFunctor); + // 96B4034421813AABF0DBF8B2B00A84CC25FB9CA0+112 + DEFINE_MEMBER_FN(QueueDelayFunctor_Internal, bool, 0x00952F10, void** pFunctor); bool QueueDelayFunctor(void** pFunctor) { @@ -438,7 +437,7 @@ public: VMValue * Get(UInt32 idx) { return (idx < m_size) ? &m_data[idx] : NULL; } MEMBER_FN_PREFIX(Output); - DEFINE_MEMBER_FN(Resize, bool, 0x00920360, UInt32 len); + DEFINE_MEMBER_FN(Resize, bool, 0x0094D7B0, UInt32 len); }; virtual bool Copy(Output * dst) = 0; diff --git a/source/fs.dll/skse64/skse64/PapyrusValue.h b/source/fs.dll/skse64/skse64/PapyrusValue.h index dd7e1cc8..e14156b3 100644 --- a/source/fs.dll/skse64/skse64/PapyrusValue.h +++ b/source/fs.dll/skse64/skse64/PapyrusValue.h @@ -35,7 +35,7 @@ public: void Destroy(void); MEMBER_FN_PREFIX(VMIdentifier); - DEFINE_MEMBER_FN(Destroy_Internal, void, 0x01233670); + DEFINE_MEMBER_FN(Destroy_Internal, void, 0x0135EA90); }; // 10 @@ -97,7 +97,7 @@ public: VMValue * GetData(void) { return (VMValue *)(this + 1); } MEMBER_FN_PREFIX(ArrayData); - DEFINE_MEMBER_FN(Destroy, void, 0x01241E40); + DEFINE_MEMBER_FN(Destroy, void, 0x0136C5D0); }; UInt64 type; // 00 @@ -117,9 +117,9 @@ public: } data; // 04 MEMBER_FN_PREFIX(VMValue); - DEFINE_MEMBER_FN(Set, void, 0x01236E50, const VMValue * src); - DEFINE_MEMBER_FN(Destroy, void, 0x01236D10); - DEFINE_MEMBER_FN(SetArray, void, 0x01235F60, ArrayData * data); + DEFINE_MEMBER_FN(Set, void, 0x013623F0, const VMValue * src); + DEFINE_MEMBER_FN(Destroy, void, 0x013622F0); + DEFINE_MEMBER_FN(SetArray, void, 0x01361320, ArrayData * data); bool IsIdentifierArray() { diff --git a/source/fs.dll/skse64/skse64/PluginAPI.h b/source/fs.dll/skse64/skse64/PluginAPI.h index 28fce30c..7f4058b3 100644 --- a/source/fs.dll/skse64/skse64/PluginAPI.h +++ b/source/fs.dll/skse64/skse64/PluginAPI.h @@ -134,10 +134,6 @@ struct SKSETaskInterface void (* AddUITask)(UIDelegate_v1 * task); }; -//#ifdef _PPAPI - -// ### this code is unsupported and will be changed in the future - class VMClassRegistry; struct SKSEPapyrusInterface @@ -151,9 +147,6 @@ struct SKSEPapyrusInterface bool (* Register)(RegisterFunctions callback); }; -//#endif - - /**** Messaging API docs ******************************************************************** * * Messaging API allows inter-plugin communication at run-time. A plugin may register @@ -262,39 +255,79 @@ struct SKSETrampolineInterface void* (*AllocateFromLocalPool)(PluginHandle plugin, size_t size); }; -typedef bool(*_SKSEPlugin_Query)(const SKSEInterface * skse, PluginInfo * info); typedef bool(*_SKSEPlugin_Load)(const SKSEInterface * skse); -/**** plugin API docs ********************************************************** - * - * The base API is pretty simple. Create a project based on the - * skse_plugin_example project included with the SKSE source code, then define - * and export these functions: - * - * bool SKSEPlugin_Query(const SKSEInterface * skse, PluginInfo * info) +/**** plugin versioning ******************************************************** + * + * The AE version of Skyrim SE broke plugin versioning as many were written + * with the assumption that the Address Library would always be valid. + * These always report that they are compatible, then exit on startup because + * they cannot find their address library file. * - * This primary purposes of this function are to fill out the PluginInfo - * structure, and to perform basic version checks based on the info in the - * SKSEInterface structure. Return false if your plugin is incompatible with - * the version of SKSE or the runtime passed in, otherwise return true. In - * either case, fill out the PluginInfo structure. + * To work around this problem, version checking has been reimplemented and + * no longer calls any code. Plugins declare their compatibility, and SKSE + * determines whether to load the plugin. Setting this up is simple, just + * add something like this to your project: * - * Do not do anything other than fill out the PluginInfo structure and return - * true/false in this callback. + +extern "C" { +__declspec(dllexport) SKSEPluginVersionData SKSEPlugin_Version = +{ + SKSEPluginVersionData::kVersion, + + 1, + "my awesome plugin", + + "my name", + "support@example.com", + + 0, // not version independent + { RUNTIME_VERSION_1_6_318, 0 }, // compatible with 1.6.318 + + 0, // works with any version of the script extender. you probably do not need to put anything here +}; +}; + * - * If the plugin is being loaded in the context of the editor, isEditor will be - * non-zero, editorVersion will contain the current editor version, and - * runtimeVersion will be zero. In this case you can probably just return - * true, however if you have multiple DLLs implementing the same behavior, for - * example one for each version of ther runtime, only one of them should return - * true. + ******************************************************************************/ + +struct SKSEPluginVersionData +{ + enum + { + kVersion = 1, + }; + + enum + { + // set this if you are using a (potential at this time of writing) post-AE version of the Address Library + kVersionIndependent_AddressLibraryPostAE = 1 << 0, + // set this if you exclusively use signature matching to find your addresses and have NO HARDCODED ADDRESSES + kVersionIndependent_Signatures = 1 << 1, + }; + + UInt32 dataVersion; // set to kVersion + + UInt32 pluginVersion; // version number of your plugin + char name[256]; // null-terminated ASCII plugin name + + char author[256]; // null-terminated ASCII plugin author name (can be empty) + char supportEmail[256]; // null-terminated ASCII support email address (can be empty) + // this is not for showing to users, it's in case I need to contact you about + // a compatibility problem with your plugin + + // version compatibility + UInt32 versionIndependence; // set to one of the kVersionIndependent_ enums or zero + UInt32 compatibleVersions[16]; // zero-terminated list of RUNTIME_VERSION_ defines your plugin is compatible with + + UInt32 seVersionRequired; // minimum version of the script extender required, compared against PACKED_SKSE_VERSION + // you probably should just set this to 0 unless you know what you are doing +}; + +/**** plugin API docs ********************************************************** * - * The PluginInfo fields should be filled out as follows: - * - infoVersion should be set to PluginInfo::kInfoVersion - * - name should be a pointer to a null-terminated string uniquely identifying - * your plugin, it will be used in the plugin querying API - * - version is only used by the plugin query API, and will be returned to - * scripts requesting the current version of your plugin + * The base API is pretty simple. Add version data as shown in the + * SKSEPluginVersionData docs above, and export this function: * * bool SKSEPlugin_Load(const SKSEInterface * skse) * diff --git a/source/fs.dll/skse64/skse64/PluginLoadErrorDialog.rc b/source/fs.dll/skse64/skse64/PluginLoadErrorDialog.rc new file mode 100644 index 00000000..2f4352b0 --- /dev/null +++ b/source/fs.dll/skse64/skse64/PluginLoadErrorDialog.rc @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:561f840f1f55a4556a0d53ebeddfea78014d16f68973b164918b19b7ea61b096 +size 702 diff --git a/source/fs.dll/skse64/skse64/PluginManager.cpp b/source/fs.dll/skse64/skse64/PluginManager.cpp index 8a46c53c..b5aca125 100644 --- a/source/fs.dll/skse64/skse64/PluginManager.cpp +++ b/source/fs.dll/skse64/skse64/PluginManager.cpp @@ -1,11 +1,13 @@ #include "skse64/PluginManager.h" #include "common/IDirectoryIterator.h" +#include "common/IFileStream.h" #include "skse64/GameAPI.h" #include "skse64_common/Utilities.h" #include "skse64/Serialization.h" #include "skse64_common/skse_version.h" #include "skse64/PapyrusEvents.h" #include "skse64_common/BranchTrampoline.h" +#include "resource.h" PluginManager g_pluginManager; @@ -109,6 +111,14 @@ PluginManager::~PluginManager() DeInit(); } +PluginManager::LoadedPlugin::LoadedPlugin() + :handle(0) + ,load(nullptr) +{ + memset(&info, 0, sizeof(info)); + memset(&version, 0, sizeof(version)); +} + bool PluginManager::Init(void) { bool result = false; @@ -117,8 +127,12 @@ bool PluginManager::Init(void) { _MESSAGE("plugin directory = %s", m_pluginDirectory.c_str()); + // avoid realloc + m_plugins.reserve(5); + __try { + ScanPlugins(); InstallPlugins(); result = true; @@ -130,6 +144,8 @@ bool PluginManager::Init(void) } } + ReportPluginErrors(); + return result; } @@ -244,117 +260,183 @@ bool PluginManager::FindPluginDirectory(void) return result; } -void PluginManager::InstallPlugins(void) +void PluginManager::ScanPlugins(void) { - // avoid realloc - m_plugins.reserve(5); + _MESSAGE("scanning plugin directory %s", m_pluginDirectory.c_str()); + + UInt32 handleIdx = 1; // start at 1, 0 is reserved for internal use for(IDirectoryIterator iter(m_pluginDirectory.c_str(), "*.dll"); !iter.Done(); iter.Next()) { std::string pluginPath = iter.GetFullPath(); - _MESSAGE("checking plugin %s", pluginPath.c_str()); - LoadedPlugin plugin; - memset(&plugin, 0, sizeof(plugin)); + plugin.dllName = iter.Get()->cFileName; + + _MESSAGE("checking plugin %s", plugin.dllName.c_str()); + + HMODULE resourceHandle = (HMODULE)LoadLibraryEx(pluginPath.c_str(), nullptr, LOAD_LIBRARY_AS_IMAGE_RESOURCE); + if(resourceHandle) + { + if(Is64BitDLL(resourceHandle)) + { + auto * version = (const SKSEPluginVersionData *)GetResourceLibraryProcAddress(resourceHandle, "SKSEPlugin_Version"); + if(version) + { + plugin.version = *version; + Sanitize(&plugin.version); + + auto * loadStatus = CheckPluginCompatibility(plugin.version); + if(!loadStatus) + { + // compatible, add to list + + plugin.internalHandle = handleIdx; + handleIdx++; + + m_plugins.push_back(plugin); + } + else + { + LogPluginLoadError(plugin, loadStatus); + } + } + else + { + LogPluginLoadError(plugin, "no version data", 0, false); + } + } + else + { + LogPluginLoadError(plugin, "LE plugin cannot be used with SE"); + } + + FreeLibrary(resourceHandle); + } + else + { + LogPluginLoadError(plugin, "couldn't load plugin", GetLastError()); + } + } +} + +const char * PluginManager::CheckAddressLibrary(void) +{ + static bool s_checked = false; + static const char * s_status = nullptr; + + if(s_checked) + { + return s_status; + } + + char fileName[256]; + _snprintf_s(fileName, 256, "Data\\SKSE\\Plugins\\versionlib-%d-%d-%d-%d.bin", + GET_EXE_VERSION_MAJOR(RUNTIME_VERSION), + GET_EXE_VERSION_MINOR(RUNTIME_VERSION), + GET_EXE_VERSION_BUILD(RUNTIME_VERSION), + 0); + + IFileStream versionLib; + if(!versionLib.Open(fileName)) + { + m_oldAddressLibrary = true; + s_status = "disabled, address library needs to be updated"; + } + + s_checked = true; + + return s_status; +} + +void PluginManager::InstallPlugins(void) +{ + for(size_t i = 0; i < m_plugins.size(); i++) + { + auto & plugin = m_plugins[i]; + + _MESSAGE("loading plugin \"%s\"", plugin.version.name); s_currentLoadingPlugin = &plugin; - s_currentPluginHandle = m_plugins.size() + 1; // +1 because 0 is reserved for internal use + s_currentPluginHandle = plugin.internalHandle; + + std::string pluginPath = m_pluginDirectory + plugin.dllName; plugin.handle = (HMODULE)LoadLibrary(pluginPath.c_str()); if(plugin.handle) { bool success = false; - plugin.query = (_SKSEPlugin_Query)GetProcAddress(plugin.handle, "SKSEPlugin_Query"); plugin.load = (_SKSEPlugin_Load)GetProcAddress(plugin.handle, "SKSEPlugin_Load"); - - if(plugin.query && plugin.load) + if(plugin.load) { - const char * loadStatus = NULL; + const char * loadStatus = NULL; - loadStatus = SafeCallQueryPlugin(&plugin, &g_SKSEInterface); + loadStatus = SafeCallLoadPlugin(&plugin, &g_SKSEInterface); if(!loadStatus) { - loadStatus = CheckPluginCompatibility(&plugin); + success = true; + loadStatus = "loaded correctly"; + } - if(!loadStatus) - { - loadStatus = SafeCallLoadPlugin(&plugin, &g_SKSEInterface); + ASSERT(loadStatus); - if(!loadStatus) - { - loadStatus = "loaded correctly"; - success = true; - } - } + if(success) + { + _MESSAGE("plugin %s (%08X %s %08X) %s (handle %d)", + plugin.dllName.c_str(), + plugin.version.dataVersion, + plugin.version.name, + plugin.version.pluginVersion, + loadStatus, + s_currentPluginHandle); } else { - loadStatus = "reported as incompatible during query"; + LogPluginLoadError(plugin, loadStatus); } - - ASSERT(loadStatus); - - _MESSAGE("plugin %s (%08X %s %08X) %s (handle %d)", - pluginPath.c_str(), - plugin.info.infoVersion, - plugin.info.name ? plugin.info.name : "", - plugin.info.version, - loadStatus, - s_currentPluginHandle); } else { - _MESSAGE("plugin %s does not appear to be an SKSE plugin", pluginPath.c_str()); + LogPluginLoadError(plugin, "does not appear to be an SKSE plugin"); } - if(success) - { - // succeeded, add it to the list - m_plugins.push_back(plugin); - } - else + if(!success) { // failed, unload the library FreeLibrary(plugin.handle); + + // and remove from plugins list + m_plugins.erase(m_plugins.begin() + i); + + // fix iterator + i--; } } else { - _ERROR("couldn't load plugin %s (Error %d)", pluginPath.c_str(), GetLastError()); + LogPluginLoadError(plugin, "couldn't load plugin", GetLastError()); } } s_currentLoadingPlugin = NULL; s_currentPluginHandle = 0; + // make fake PluginInfo structs after m_plugins is locked + for(auto & plugin : m_plugins) + { + plugin.info.infoVersion = PluginInfo::kInfoVersion; + plugin.info.name = plugin.version.name; + plugin.info.version = plugin.version.pluginVersion; + } + // alert any listeners that plugin load has finished Dispatch_Message(0, SKSEMessagingInterface::kMessage_PostLoad, NULL, 0, NULL); // second post-load dispatch Dispatch_Message(0, SKSEMessagingInterface::kMessage_PostPostLoad, NULL, 0, NULL); } -// SEH-wrapped calls to plugin API functions to avoid bugs from bringing down the core -const char * PluginManager::SafeCallQueryPlugin(LoadedPlugin * plugin, const SKSEInterface * skse) -{ - __try - { - if(!plugin->query(skse, &plugin->info)) - { - return "reported as incompatible during query"; - } - } - __except(EXCEPTION_EXECUTE_HANDLER) - { - // something very bad happened - return "disabled, fatal error occurred while querying plugin"; - } - - return NULL; -} - const char * PluginManager::SafeCallLoadPlugin(LoadedPlugin * plugin, const SKSEInterface * skse) { __try @@ -373,6 +455,13 @@ const char * PluginManager::SafeCallLoadPlugin(LoadedPlugin * plugin, const SKSE return NULL; } +void PluginManager::Sanitize(SKSEPluginVersionData * version) +{ + version->name[sizeof(version->name) - 1] = 0; + version->author[sizeof(version->author) - 1] = 0; + version->supportEmail[sizeof(version->supportEmail) - 1] = 0; +} + enum { kCompat_BlockFromRuntime = 1 << 0, @@ -389,19 +478,20 @@ struct MinVersionEntry static const MinVersionEntry kMinVersionList[] = { - // returns true for multiple versions of the runtime - { "papyrusutil plugin", 2, "broken version check, will crash the game", kCompat_BlockFromRuntime }, - { NULL, 0, NULL } }; -// see if we have a plugin that we know causes problems -const char * PluginManager::CheckPluginCompatibility(LoadedPlugin * plugin) +const char * PluginManager::CheckPluginCompatibility(const SKSEPluginVersionData & version) { __try { - // stupid plugin check - if(!plugin->info.name) + // basic validity + if(version.dataVersion != SKSEPluginVersionData::kVersion) + { + return "disabled, bad version data"; + } + + if(!version.name[0]) { return "disabled, no name specified"; } @@ -409,9 +499,9 @@ const char * PluginManager::CheckPluginCompatibility(LoadedPlugin * plugin) // check for 'known bad' versions of plugins for(const MinVersionEntry * iter = kMinVersionList; iter->name; ++iter) { - if(!strcmp(iter->name, plugin->info.name)) + if(!strcmp(iter->name, version.name)) { - if(plugin->info.version < iter->minVersion) + if(version.pluginVersion < iter->minVersion) { #ifdef RUNTIME if(iter->compatFlags & kCompat_BlockFromRuntime) @@ -431,6 +521,52 @@ const char * PluginManager::CheckPluginCompatibility(LoadedPlugin * plugin) break; } } + + // version compatibility + const UInt32 kIndependentMask = + SKSEPluginVersionData::kVersionIndependent_AddressLibraryPostAE | + SKSEPluginVersionData::kVersionIndependent_Signatures; + + if(version.versionIndependence & ~kIndependentMask) + { + return "disabled, unsupported version independence method"; + } + + if(version.versionIndependence & SKSEPluginVersionData::kVersionIndependent_AddressLibraryPostAE) + { + const char * result = CheckAddressLibrary(); + if(result) return result; + } + else if(!version.versionIndependence) + { + bool found = false; + + for(UInt32 i = 0; i < _countof(version.compatibleVersions); i++) + { + UInt32 compatibleVersion = version.compatibleVersions[i]; + + if(compatibleVersion == RUNTIME_VERSION) + { + found = true; + break; + } + else if(!compatibleVersion) + { + break; + } + } + + if(!found) + { + return "disabled, incompatible with current runtime version"; + } + } + + // SE version compatibility + if(version.seVersionRequired > PACKED_SKSE_VERSION) + { + return "disabled, requires newer script extender"; + } } __except(EXCEPTION_EXECUTE_HANDLER) { @@ -438,12 +574,91 @@ const char * PluginManager::CheckPluginCompatibility(LoadedPlugin * plugin) return "disabled, fatal error occurred while checking plugin compatibility"; } - return NULL; + return nullptr; +} + +void PluginManager::LogPluginLoadError(const LoadedPlugin & pluginSrc, const char * errStr, UInt32 errCode, bool isError) +{ + LoadedPlugin plugin = pluginSrc; + + plugin.errorState = errStr; + plugin.errorCode = errCode; + + if(isError) + m_erroredPlugins.push_back(plugin); + + _MESSAGE("plugin %s (%08X %s %08X) %s %d (handle %d)", + plugin.dllName.c_str(), + plugin.version.dataVersion, + plugin.version.name, + plugin.version.pluginVersion, + plugin.errorState, + plugin.errorCode, + s_currentPluginHandle); +} + +void PluginManager::ReportPluginErrors() +{ +#if 0 + PluginErrorDialogBox dialog(*this); + dialog.Show(); + + return; +#endif + + if(m_erroredPlugins.empty()) + return; + + if(m_oldAddressLibrary) + UpdateAddressLibraryPrompt(); + + // With this plugin DLL load error, the thread of prophecy is severed. Update your plugins to restore the weave of fate, or persist in the doomed world you have created + + std::string message = "A DLL plugin has failed to load correctly. If a new version of Skyrim was just released, the plugin needs to be updated. Please check the mod's webpage for updates.\n"; + + for(auto & plugin : m_erroredPlugins) + { + message += "\n"; + message += plugin.dllName + ": " + plugin.errorState; + + if(plugin.errorCode) + { + char codeStr[128]; + sprintf_s(codeStr, "%08X", plugin.errorCode); + + message += " ("; + message += codeStr; + message += ")"; + } + } + + message += "\n\nContinuing to load may result in lost save data or other undesired behavior."; + message += "\nExit game? (yes highly suggested)"; + + int result = MessageBox(0, message.c_str(), "SKSE Plugin Loader", MB_YESNO); + + if(result == IDYES) + { + TerminateProcess(GetCurrentProcess(), 0); + } +} + +void PluginManager::UpdateAddressLibraryPrompt() +{ + int result = MessageBox(0, + "DLL plugins you have installed require a new version of the Address Library. Either this is a new install, or Skyrim was just updated. Visit the Address Library webpage for updates?", + "SKSE Plugin Loader", MB_YESNO); + + if(result == IDYES) + { + ShellExecute(0, nullptr, "https://www.nexusmods.com/skyrimspecialedition/mods/32444", nullptr, nullptr, 0); + TerminateProcess(GetCurrentProcess(), 0); + } } void * PluginManager::GetEventDispatcher(UInt32 dispatcherId) { - void * result = NULL; + void * result = nullptr; #ifdef RUNTIME switch(dispatcherId) @@ -475,7 +690,6 @@ void * PluginManager::GetEventDispatcher(UInt32 dispatcherId) return result; } - // Plugin communication interface struct PluginListener { PluginHandle listener; @@ -619,7 +833,7 @@ bool PluginManager::Dispatch_Message(PluginHandle sender, UInt32 messageType, vo const char * PluginManager::GetPluginNameFromHandle(PluginHandle handle) { if (handle > 0 && handle <= m_plugins.size()) - return (m_plugins[handle - 1].info.name); + return (m_plugins[handle - 1].version.name); else if (handle == 0) return "SKSE"; @@ -635,7 +849,7 @@ PluginHandle PluginManager::LookupHandleFromName(const char* pluginName) for(LoadedPluginList::iterator iter = m_plugins.begin(); iter != m_plugins.end(); ++iter) { LoadedPlugin * plugin = &(*iter); - if(!_stricmp(plugin->info.name, pluginName)) + if(!_stricmp(plugin->version.name, pluginName)) { return idx; } @@ -644,6 +858,77 @@ PluginHandle PluginManager::LookupHandleFromName(const char* pluginName) return kPluginHandle_Invalid; } +void PluginErrorDialogBox::Show() +{ + extern HINSTANCE g_moduleHandle; + + CreateDialogParam(g_moduleHandle, MAKEINTRESOURCE(IDD_PLUGINERROR), NULL, _DialogProc, (LPARAM)this); + UInt32 err = GetLastError(); +} + +INT_PTR PluginErrorDialogBox::_DialogProc(HWND window, UINT msg, WPARAM wParam, LPARAM lParam) +{ + INT_PTR result = 0; + PluginErrorDialogBox * context = nullptr; + + if(msg == WM_INITDIALOG) + { + context = (PluginErrorDialogBox *)lParam; + context->m_window = window; + SetWindowLongPtr(window, GWLP_USERDATA, lParam); + } + else + { + context = (PluginErrorDialogBox *)GetWindowLongPtr(window, GWLP_USERDATA); + } + + if(context) + result = context->DialogProc(msg, wParam, lParam); + + return result; +} + +INT_PTR PluginErrorDialogBox::DialogProc(UINT msg, WPARAM wParam, LPARAM lParam) +{ + INT_PTR result = FALSE; + + switch(msg) + { + case WM_INITDIALOG: + result = TRUE; + break; + + case WM_COMMAND: + { + bool done = false; + + switch(LOWORD(wParam)) + { + case IDCANCEL: + done = true; + m_exitGame = true; + break; + + case IDOK: + done = true; + break; + } + + if(done) + { + DestroyWindow(m_window); + } + } + break; + + default: + result = FALSE; + break; + } + + return result; +} + inline void * BranchTrampolineManager::Allocate(PluginHandle plugin, size_t size) { auto mem = m_trampoline.Allocate(size); diff --git a/source/fs.dll/skse64/skse64/PluginManager.h b/source/fs.dll/skse64/skse64/PluginManager.h index d4d65aab..e4c763b2 100644 --- a/source/fs.dll/skse64/skse64/PluginManager.h +++ b/source/fs.dll/skse64/skse64/PluginManager.h @@ -21,7 +21,6 @@ public: PluginHandle LookupHandleFromName(const char* pluginName); - UInt32 GetNumPlugins(void); static void * QueryInterface(UInt32 id); @@ -37,31 +36,70 @@ public: private: struct LoadedPlugin { - // internals - HMODULE handle; + LoadedPlugin(); + + std::string dllName; + + HMODULE handle = 0; PluginInfo info; + UInt32 internalHandle = 0; + + SKSEPluginVersionData version; + + _SKSEPlugin_Load load = nullptr; - _SKSEPlugin_Query query; - _SKSEPlugin_Load load; + const char * errorState = nullptr; + UInt32 errorCode = 0; }; bool FindPluginDirectory(void); + void ScanPlugins(void); void InstallPlugins(void); - const char * SafeCallQueryPlugin(LoadedPlugin * plugin, const SKSEInterface * skse); const char * SafeCallLoadPlugin(LoadedPlugin * plugin, const SKSEInterface * skse); - const char * CheckPluginCompatibility(LoadedPlugin * plugin); + void Sanitize(SKSEPluginVersionData * version); + const char * CheckPluginCompatibility(const SKSEPluginVersionData & version); + const char * CheckAddressLibrary(void); + + void LogPluginLoadError(const LoadedPlugin & plugin, const char * errStr, UInt32 errCode = 0, bool isError = true); + void ReportPluginErrors(); + void UpdateAddressLibraryPrompt(); typedef std::vector LoadedPluginList; std::string m_pluginDirectory; LoadedPluginList m_plugins; + LoadedPluginList m_erroredPlugins; + + bool m_oldAddressLibrary = false; + static LoadedPlugin * s_currentLoadingPlugin; static PluginHandle s_currentPluginHandle; }; +class PluginErrorDialogBox +{ +public: + PluginErrorDialogBox() = delete; + PluginErrorDialogBox(const PluginManager & mgr) + :m_owner(mgr) { } + + void Show(); + + bool ShouldExitGame() { return m_exitGame; } + +private: + static INT_PTR _DialogProc(HWND window, UINT msg, WPARAM wParam, LPARAM lParam); + INT_PTR DialogProc(UINT msg, WPARAM wParam, LPARAM lParam); + + HWND m_window = 0; + bool m_exitGame = false; + + const PluginManager & m_owner; +}; + class BranchTrampolineManager { public: diff --git a/source/fs.dll/skse64/skse64/ScaleformAPI.cpp b/source/fs.dll/skse64/skse64/ScaleformAPI.cpp index 03908d94..fe385243 100644 --- a/source/fs.dll/skse64/skse64/ScaleformAPI.cpp +++ b/source/fs.dll/skse64/skse64/ScaleformAPI.cpp @@ -18,8 +18,8 @@ public: virtual void Free(void * ptr); }; -// C70DB2D0DA8EB136C1BB8E87A7E39C173A7E4C0B+21 -RelocPtr g_scaleformHeap(0x03032C50); +// ED9B05AE7833EE13354B2DFB8CD6E79144EE0D7E+3B +RelocPtr g_scaleformHeap(0x030CD880); void * ScaleformHeap_Allocate(UInt32 size) { @@ -31,5 +31,5 @@ void ScaleformHeap_Free(void * ptr) (*(g_scaleformHeap))->Free(ptr); } -RelocAddr<_InvokeFunction> InvokeFunction(0x00ED6AC0); -RelocAddr<_GFxAllocateHeap> GFxAllocateHeap(0x00F483C0); +RelocAddr<_InvokeFunction> InvokeFunction(0x00F1F300); +RelocAddr<_GFxAllocateHeap> GFxAllocateHeap(0x00F919E0); diff --git a/source/fs.dll/skse64/skse64/ScaleformCallbacks.cpp b/source/fs.dll/skse64/skse64/ScaleformCallbacks.cpp index 6e2e7d45..a20020a2 100644 --- a/source/fs.dll/skse64/skse64/ScaleformCallbacks.cpp +++ b/source/fs.dll/skse64/skse64/ScaleformCallbacks.cpp @@ -15,7 +15,7 @@ GFxFunctionHandler::~GFxFunctionHandler() FunctionHandlerCache g_functionHandlerCache; -RelocAddr PlaySoundCallback(0x008DA5C0); +RelocAddr PlaySoundCallback(0x0090A8F0); FxResponseArgsList::FxResponseArgsList() { diff --git a/source/fs.dll/skse64/skse64/ScaleformCallbacks.h b/source/fs.dll/skse64/skse64/ScaleformCallbacks.h index abb38d3d..8699eef1 100644 --- a/source/fs.dll/skse64/skse64/ScaleformCallbacks.h +++ b/source/fs.dll/skse64/skse64/ScaleformCallbacks.h @@ -43,7 +43,6 @@ public: virtual void Invoke(Args * args) = 0; MEMBER_FN_PREFIX(GFxFunctionHandler); - //DEFINE_MEMBER_FN(Destroy, GFxFunctionHandler *, 0, UInt32 flags); }; typedef std::map FunctionHandlerCache; diff --git a/source/fs.dll/skse64/skse64/ScaleformLoader.cpp b/source/fs.dll/skse64/skse64/ScaleformLoader.cpp index ade53376..efb0c2dd 100644 --- a/source/fs.dll/skse64/skse64/ScaleformLoader.cpp +++ b/source/fs.dll/skse64/skse64/ScaleformLoader.cpp @@ -4,7 +4,7 @@ GFxLoader * GFxLoader::GetSingleton() { - // 4E9F39D1066653EF254B38406212E476F80A6C9B+AE - RelocPtr g_GFxLoader(0x02F257A0); + // D73FE972523296E269125B9E6F076AD967D7970C+F9 + RelocPtr g_GFxLoader(0x02FC0DB8); return *g_GFxLoader; } diff --git a/source/fs.dll/skse64/skse64/ScaleformLoader.h b/source/fs.dll/skse64/skse64/ScaleformLoader.h index 324bf98a..f2b68e82 100644 --- a/source/fs.dll/skse64/skse64/ScaleformLoader.h +++ b/source/fs.dll/skse64/skse64/ScaleformLoader.h @@ -18,8 +18,8 @@ public: virtual ~BSScaleformImageLoader(); virtual GImageInfoBase* LoadImage(const char * url); - DEFINE_MEMBER_FN_1(AddVirtualImage, UInt8, 0x00F45350, NiTexture ** texture); - DEFINE_MEMBER_FN_1(ReleaseVirtualImage, UInt8, 0x00F45820, NiTexture ** texture); + DEFINE_MEMBER_FN_1(AddVirtualImage, UInt8, 0x00F8E4C0, NiTexture ** texture); + DEFINE_MEMBER_FN_1(ReleaseVirtualImage, UInt8, 0x00F8E940, NiTexture ** texture); }; class GFxLoader @@ -34,8 +34,7 @@ public: static GFxLoader * GetSingleton(); MEMBER_FN_PREFIX(GFxLoader); - DEFINE_MEMBER_FN(ctor, GFxLoader *, 0x00ECE0D0); + DEFINE_MEMBER_FN(ctor, GFxLoader *, 0x00F11530); - // Note: Probably in subclass - DEFINE_MEMBER_FN(LoadMovie, bool, 0x00ECE790, IMenu* menu, GFxMovieView** viewOut, const char* name, int scaleMode, float backGroundAlpha); + DEFINE_MEMBER_FN(LoadMovie, bool, 0x00F11C60, IMenu* menu, GFxMovieView** viewOut, const char* name, int scaleMode, float backGroundAlpha); // probably in subclass }; diff --git a/source/fs.dll/skse64/skse64/ScaleformState.cpp b/source/fs.dll/skse64/skse64/ScaleformState.cpp index 7040e42c..bc7c5e2d 100644 --- a/source/fs.dll/skse64/skse64/ScaleformState.cpp +++ b/source/fs.dll/skse64/skse64/ScaleformState.cpp @@ -1,7 +1,7 @@ #include "ScaleformState.h" #include "skse64/GameAPI.h" -RelocAddr BSScaleformTranslator::GetCachedString(0x00C29900); +RelocAddr BSScaleformTranslator::GetCachedString(0x00C50510); void SKSEGFxLogger::LogMessageVarg(UInt32 messageType, const char* fmt, va_list args) { diff --git a/source/fs.dll/skse64/skse64/ScaleformTypes.h b/source/fs.dll/skse64/skse64/ScaleformTypes.h index e894e65c..df83401b 100644 --- a/source/fs.dll/skse64/skse64/ScaleformTypes.h +++ b/source/fs.dll/skse64/skse64/ScaleformTypes.h @@ -113,7 +113,7 @@ public: void Destroy(void); MEMBER_FN_PREFIX(GString); - DEFINE_MEMBER_FN(ctor, GString *, 0x00ED3A50, const char * string); + DEFINE_MEMBER_FN(ctor, GString *, 0x00F1BB50, const char * string); }; diff --git a/source/fs.dll/skse64/skse64/ScaleformValue.h b/source/fs.dll/skse64/skse64/ScaleformValue.h index 1a43c6f4..150a1a4f 100644 --- a/source/fs.dll/skse64/skse64/ScaleformValue.h +++ b/source/fs.dll/skse64/skse64/ScaleformValue.h @@ -126,26 +126,26 @@ public: public: GFxMovieRoot * root; - DEFINE_MEMBER_FN_3(HasMember, bool, 0x00ECA620, void * obj, const char * name, bool isDisplayObj); - DEFINE_MEMBER_FN_4(SetMember, bool, 0x00ECCBA0, void * obj, const char * name, GFxValue * value, bool isDisplayObj); - DEFINE_MEMBER_FN_3(DeleteMember, bool, 0x00EC9490, void * obj, const char * name, bool isDisplayObj); - DEFINE_MEMBER_FN_4(GetMember, bool, 0x00ECA150, void * obj, const char * name, GFxValue * value, bool isDisplayObj); - DEFINE_MEMBER_FN_6(Invoke, bool, 0x00ECA860, void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj); - DEFINE_MEMBER_FN_6(AttachMovie, bool, 0x00EC83A0, void * obj, GFxValue * value, const char * symbolName, const char * instanceName, SInt32 depth, void * initArgs); - DEFINE_MEMBER_FN_2(PushBack, bool, 0x00ECB300, void * obj, GFxValue * value); - DEFINE_MEMBER_FN_3(SetText, bool, 0x00ECCCF0, void * obj, const char * text, bool html); + DEFINE_MEMBER_FN_3(HasMember, bool, 0x00F0DBC0, void * obj, const char * name, bool isDisplayObj); + DEFINE_MEMBER_FN_4(SetMember, bool, 0x00F10020, void * obj, const char * name, GFxValue * value, bool isDisplayObj); + DEFINE_MEMBER_FN_3(DeleteMember, bool, 0x00F0CAA0, void * obj, const char * name, bool isDisplayObj); + DEFINE_MEMBER_FN_4(GetMember, bool, 0x00F0D710, void * obj, const char * name, GFxValue * value, bool isDisplayObj); + DEFINE_MEMBER_FN_6(Invoke, bool, 0x00F0DE30, void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj); + DEFINE_MEMBER_FN_6(AttachMovie, bool, 0x00F0B870, void * obj, GFxValue * value, const char * symbolName, const char * instanceName, SInt32 depth, void * initArgs); + DEFINE_MEMBER_FN_2(PushBack, bool, 0x00F0E780, void * obj, GFxValue * value); + DEFINE_MEMBER_FN_3(SetText, bool, 0x00F10120, void * obj, const char * text, bool html); //DEFINE_MEMBER_FN(PopBack, bool, 0x00000000, void * obj, GFxValue * value); - DEFINE_MEMBER_FN_1(GetArraySize, UInt32, 0x00EC9BD0, void * obj); + DEFINE_MEMBER_FN_1(GetArraySize, UInt32, 0x00F0D170, void * obj); //DEFINE_MEMBER_FN(SetArraySize, bool, 0x00000000, void * obj, UInt32 size); - DEFINE_MEMBER_FN_3(GetElement, bool, 0x00EC9F30, void * obj, UInt32 index, GFxValue * value); + DEFINE_MEMBER_FN_3(GetElement, bool, 0x00F0D4F0, void * obj, UInt32 index, GFxValue * value); //DEFINE_MEMBER_FN(SetElement, bool, 0x00000000, void * obj, UInt32 index, GFxValue * value); - DEFINE_MEMBER_FN_3(GotoLabeledFrame, bool, 0x00ECA570, void * obj, const char * frameLabel, bool stop); + DEFINE_MEMBER_FN_3(GotoLabeledFrame, bool, 0x00F0DB20, void * obj, const char * frameLabel, bool stop); //DEFINE_MEMBER_FN(GotoFrame, bool, 0x00000000, void * obj, UInt32 frameNumber, bool stop); - DEFINE_MEMBER_FN_2(GetDisplayInfo, bool, 0x00EC9C20, void * obj, DisplayInfo * displayInfo); - DEFINE_MEMBER_FN_2(SetDisplayInfo, bool, 0x00ECBDB0, void * obj, DisplayInfo * displayInfo); + DEFINE_MEMBER_FN_2(GetDisplayInfo, bool, 0x00F0D1D0, void * obj, DisplayInfo * displayInfo); + DEFINE_MEMBER_FN_2(SetDisplayInfo, bool, 0x00F0F000, void * obj, DisplayInfo * displayInfo); - DEFINE_MEMBER_FN_2(AddManaged_Internal, void, 0x00ECB080, GFxValue * value, void * obj); - DEFINE_MEMBER_FN_2(ReleaseManaged_Internal, void, 0x00ECB0E0, GFxValue * value, void * obj); + DEFINE_MEMBER_FN_2(AddManaged_Internal, void, 0x00F0E500, GFxValue * value, void * obj); + DEFINE_MEMBER_FN_2(ReleaseManaged_Internal, void, 0x00F0E560, GFxValue * value, void * obj); }; ObjectInterface * objectInterface; // 00 diff --git a/source/fs.dll/skse64/skse64/gamethreads.h b/source/fs.dll/skse64/skse64/gamethreads.h index bfd9e788..27d771d5 100644 --- a/source/fs.dll/skse64/skse64/gamethreads.h +++ b/source/fs.dll/skse64/skse64/gamethreads.h @@ -21,11 +21,11 @@ class BSTaskPool { public: MEMBER_FN_PREFIX(BSTaskPool); - DEFINE_MEMBER_FN(SetNiGeometryTexture, UInt32, 0x005C6BF0, NiAVObject * geometry, BGSTextureSet * textureSet); + DEFINE_MEMBER_FN(SetNiGeometryTexture, UInt32, 0x005EB9F0, NiAVObject * geometry, BGSTextureSet * textureSet); void ProcessTasks(void); - DEFINE_MEMBER_FN(ProcessTaskQueue_HookTarget, void, 0x005C1BE0); + DEFINE_MEMBER_FN(ProcessTaskQueue_HookTarget, void, 0x005E9530); static BSTaskPool * GetSingleton(void); }; diff --git a/source/fs.dll/skse64/skse64/resource.h b/source/fs.dll/skse64/skse64/resource.h new file mode 100644 index 00000000..e9e28246 --- /dev/null +++ b/source/fs.dll/skse64/skse64/resource.h @@ -0,0 +1,19 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PluginLoadErrorDialog.rc +// +#define VS_VERSION_INFO 1 +#define IDD_PLUGINERROR 2 +#define IDC_PLUGINERROR_ERRORLIST 1001 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1002 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/source/fs.dll/skse64/skse64/skse64.cpp b/source/fs.dll/skse64/skse64/skse64.cpp index ed310b01..341d3be6 100644 --- a/source/fs.dll/skse64/skse64/skse64.cpp +++ b/source/fs.dll/skse64/skse64/skse64.cpp @@ -24,7 +24,7 @@ #include "InternalSerialization.h" IDebugLog gLog; -void * g_moduleHandle = nullptr; +HINSTANCE g_moduleHandle = nullptr; void WaitForDebugger(void) { @@ -129,8 +129,7 @@ extern "C" { switch(dwReason) { case DLL_PROCESS_ATTACH: - g_moduleHandle = (void *)hDllHandle; - SKSE64_Initialize(); + g_moduleHandle = (HINSTANCE)hDllHandle; break; case DLL_PROCESS_DETACH: diff --git a/source/fs.dll/skse64/skse64/skse64.def b/source/fs.dll/skse64/skse64/skse64.def new file mode 100644 index 00000000..5663c9da --- /dev/null +++ b/source/fs.dll/skse64/skse64/skse64.def @@ -0,0 +1,2 @@ +EXPORTS +StartSKSE @1 \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64/skse64.vcxproj b/source/fs.dll/skse64/skse64/skse64.vcxproj index 06e7848f..abfe88e0 100644 --- a/source/fs.dll/skse64/skse64/skse64.vcxproj +++ b/source/fs.dll/skse64/skse64/skse64.vcxproj @@ -1,5 +1,5 @@  - + Debug_Lib_VC142 @@ -31,14 +31,6 @@ Win32Proj skse64 10.0 - - - - - - - - @@ -62,7 +54,7 @@ StaticLibrary false - v142 + v143 true MultiByte @@ -127,6 +119,7 @@ false + false false @@ -188,7 +181,7 @@ true NDEBUG;%(PreprocessorDefinitions) MultiThreaded - $(SolutionDir);$(SolutionDir)\..;%(AdditionalIncludeDirectories);$(SolutionDir)common;$(SolutionDir)skse64 + $(SolutionDir);$(SolutionDir)\..;%(AdditionalIncludeDirectories);$(SolutionDir)skse64 Windows @@ -198,9 +191,6 @@ - - - diff --git a/source/fs.dll/skse64/skse64/skse64.vcxproj.user b/source/fs.dll/skse64/skse64/skse64.vcxproj.user index be250787..88a55094 100644 --- a/source/fs.dll/skse64/skse64/skse64.vcxproj.user +++ b/source/fs.dll/skse64/skse64/skse64.vcxproj.user @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64_common/BranchTrampoline.cpp b/source/fs.dll/skse64/skse64_common/BranchTrampoline.cpp index b739c4e8..5cb76019 100644 --- a/source/fs.dll/skse64/skse64_common/BranchTrampoline.cpp +++ b/source/fs.dll/skse64/skse64_common/BranchTrampoline.cpp @@ -26,7 +26,8 @@ bool BranchTrampoline::Create(size_t len, void * module) // search backwards from module base uintptr_t moduleBase = uintptr_t(module); uintptr_t addr = moduleBase; - uintptr_t lowestOKAddress = moduleBase - 0x80000000 + (1024 * 1024 * 128); // largest 32-bit displacement with 128MB scratch space + uintptr_t maxDisplacement = 0x80000000 - (1024 * 1024 * 128); // largest 32-bit displacement with 128MB scratch space + uintptr_t lowestOKAddress = (moduleBase >= maxDisplacement) ? moduleBase - maxDisplacement : 0; addr--; while (!m_base) diff --git a/source/fs.dll/skse64/skse64_common/CMakeLists.txt b/source/fs.dll/skse64/skse64_common/CMakeLists.txt new file mode 100644 index 00000000..aecda2bf --- /dev/null +++ b/source/fs.dll/skse64/skse64_common/CMakeLists.txt @@ -0,0 +1,108 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake) + +project( + skse64_common + VERSION ${SKSE_VERSION_MAJOR}.${SKSE_VERSION_MINOR}.${SKSE_VERSION_PATCH} + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Dependencies ---- + +find_package(common REQUIRED CONFIG) + +# ---- Add source files ---- + +include(cmake/headerlist.cmake) +include(cmake/sourcelist.cmake) + +source_group( + ${PROJECT_NAME} + FILES + ${headers} + ${sources} + skse_version.rc +) + +# ---- Create library ---- + +add_library( + ${PROJECT_NAME} + STATIC + ${headers} + ${sources} + skse_version.rc +) + +add_library(skse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +target_compile_features( + ${PROJECT_NAME} + PUBLIC + cxx_std_11 +) + +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + xse::common +) + +# ---- Create an installable target ---- + +include(GNUInstallDirs) + +install( + TARGETS + ${PROJECT_NAME} + EXPORT + ${PROJECT_NAME}-targets +) + +install( + FILES + ${headers} + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +) + +configure_file( + cmake/config.cmake.in + ${PROJECT_NAME}-config.cmake + @ONLY +) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) + +install( + EXPORT + ${PROJECT_NAME}-targets + NAMESPACE + skse64:: + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) diff --git a/source/fs.dll/skse64/skse64_common/HashUtil.cpp b/source/fs.dll/skse64/skse64_common/HashUtil.cpp deleted file mode 100644 index 823c908a..00000000 --- a/source/fs.dll/skse64/skse64_common/HashUtil.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "HashUtil.h" - -static const UInt32 s_crc32Lookup[256] = -{ - 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,0xE963A535,0x9E6495A3, - 0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91, - 0x1DB71064,0x6AB020F2,0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7, - 0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9,0xFA0F3D63,0x8D080DF5, - 0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172,0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B, - 0x35B5A8FA,0x42B2986C,0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59, - 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,0xCFBA9599,0xB8BDA50F, - 0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D, - 0x76DC4190,0x01DB7106,0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433, - 0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D,0x91646C97,0xE6635C01, - 0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457, - 0x65B0D9C6,0x12B7E950,0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65, - 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,0xA4D1C46D,0xD3D6F4FB, - 0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0,0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9, - 0x5005713C,0x270241AA,0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F, - 0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,0xB7BD5C3B,0xC0BA6CAD, - 0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683, - 0xE3630B12,0x94643B84,0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1, - 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB,0x196C3671,0x6E6B06E7, - 0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC,0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5, - 0xD6D6A3E8,0xA1D1937E,0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B, - 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,0x316E8EEF,0x4669BE79, - 0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F, - 0xC5BA3BBE,0xB2BD0B28,0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D, - 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F,0x72076785,0x05005713, - 0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38,0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21, - 0x86D3D2D4,0xF1D4E242,0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777, - 0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,0x616BFFD3,0x166CCF45, - 0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB, - 0xAED16A4A,0xD9D65ADC,0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9, - 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693,0x54DE5729,0x23D967BF, - 0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D -}; - -namespace HashUtil -{ - UInt32 CRC32(const char* str, UInt32 start) - { - UInt32 result = ~start; - unsigned char* c = (unsigned char*) str; - size_t len = strlen(str); - while (len-- > 0) - result = (result >> 8) ^ s_crc32Lookup[(result & 0xFF) ^ *c++]; - return ~result; - } -} \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64_common/HashUtil.h b/source/fs.dll/skse64/skse64_common/HashUtil.h deleted file mode 100644 index 73fde8b6..00000000 --- a/source/fs.dll/skse64/skse64_common/HashUtil.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -namespace HashUtil -{ - // Calc CRC32 of null terminated string - UInt32 CRC32(const char* str, UInt32 start = 0); -} - diff --git a/source/fs.dll/skse64/skse64_common/Utilities.cpp b/source/fs.dll/skse64/skse64_common/Utilities.cpp index e60e6837..b1017854 100644 --- a/source/fs.dll/skse64/skse64_common/Utilities.cpp +++ b/source/fs.dll/skse64/skse64_common/Utilities.cpp @@ -160,6 +160,51 @@ void * GetIATAddr(void * module, const char * searchDllName, const char * search return NULL; } +const void * GetResourceLibraryProcAddress(const HMODULE module, const char * exportName) +{ + auto * base = (const UInt8 *)(uintptr_t(module) & ~3); + auto * dosHeader = (const IMAGE_DOS_HEADER *)base; + auto * ntHeader = (const IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew); + auto * exportTable = + (const IMAGE_EXPORT_DIRECTORY *)(base + ntHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress); + + auto * exportAddresses = (const UInt32 *)(base + exportTable->AddressOfFunctions); // RVA array + auto * exportNameOrdinals = (const UInt16 *)(base + exportTable->AddressOfNameOrdinals); // index in to exportNames + auto * exportNames = (const UInt32 *)(base + exportTable->AddressOfNames); // RVA array + + const void * result = nullptr; + + for(UInt32 i = 0; i < exportTable->NumberOfFunctions; i++) + { + UInt32 nameOrdinal = exportNameOrdinals[i]; + if(nameOrdinal < exportTable->NumberOfNames) + { + UInt32 nameRVA = exportNames[nameOrdinal]; + auto * name = (const char *)(base + nameRVA); + + if(!strcmp(exportName, name)) + { + UInt32 addrRVA = exportAddresses[i]; + result = (const void *)(base + addrRVA); + + break; + } + } + } + + return result; +} + +bool Is64BitDLL(const HMODULE module) +{ + auto * base = (const UInt8 *)(uintptr_t(module) & ~3); + auto * dosHeader = (const IMAGE_DOS_HEADER *)base; + auto * ntHeader = (const IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew); + + // FileHeader is PE32/64 independent + return ntHeader->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64; +} + #pragma warning (push) #pragma warning (disable : 4200) struct RTTIType diff --git a/source/fs.dll/skse64/skse64_common/Utilities.h b/source/fs.dll/skse64/skse64_common/Utilities.h index 6bd01df6..ddcea551 100644 --- a/source/fs.dll/skse64/skse64_common/Utilities.h +++ b/source/fs.dll/skse64/skse64_common/Utilities.h @@ -197,6 +197,8 @@ bool GetConfigOption_UInt32(const char * section, const char * key, UInt32 * dat const std::string & GetOSInfoStr(); void * GetIATAddr(void * module, const char * searchDllName, const char * searchImportName); +const void * GetResourceLibraryProcAddress(const HMODULE module, const char * exportName); +bool Is64BitDLL(const HMODULE module); const char * GetObjectClassName(void * objBase); void DumpClass(void * theClassPtr, UInt64 nIntsToDump); diff --git a/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj b/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj index f0f39743..f018cf03 100644 --- a/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj +++ b/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj @@ -1,5 +1,5 @@  - + Debug_VC142 @@ -44,14 +44,6 @@ Win32Proj skse64_common 10.0 - - - - - - - - @@ -69,7 +61,7 @@ StaticLibrary false - v142 + v143 true MultiByte @@ -138,7 +130,7 @@ true true NDEBUG;_LIB;%(PreprocessorDefinitions) - $(SolutionDir);$(SolutionDir)\..;%(AdditionalIncludeDirectories);$(SolutionDir)common;$(SolutionDir)skse64 + $(SolutionDir);$(SolutionDir)\..;%(AdditionalIncludeDirectories);$(SolutionDir)skse64 common/IPrefix.h MultiThreaded diff --git a/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj.user b/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj.user index be250787..88a55094 100644 --- a/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj.user +++ b/source/fs.dll/skse64/skse64_common/skse64_common.vcxproj.user @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64_common/skse_version.h b/source/fs.dll/skse64/skse64_common/skse_version.h index 410aeabf..1e674468 100644 --- a/source/fs.dll/skse64/skse64_common/skse_version.h +++ b/source/fs.dll/skse64/skse64_common/skse_version.h @@ -3,11 +3,11 @@ // these have to be macros so they can be used in the .rc #define SKSE_VERSION_INTEGER 2 -#define SKSE_VERSION_INTEGER_MINOR 0 -#define SKSE_VERSION_INTEGER_BETA 19 -#define SKSE_VERSION_VERSTRING "0, 2, 0, 19" +#define SKSE_VERSION_INTEGER_MINOR 1 +#define SKSE_VERSION_INTEGER_BETA 5 +#define SKSE_VERSION_VERSTRING "0, 2, 1, 5" #define SKSE_VERSION_PADDEDSTRING "0001" -#define SKSE_VERSION_RELEASEIDX 65 +#define SKSE_VERSION_RELEASEIDX 66 #define MAKE_EXE_VERSION_EX(major, minor, build, sub) ((((major) & 0xFF) << 24) | (((minor) & 0xFF) << 16) | (((build) & 0xFFF) << 4) | ((sub) & 0xF)) #define MAKE_EXE_VERSION(major, minor, build) MAKE_EXE_VERSION_EX(major, minor, build, 0) @@ -34,12 +34,17 @@ #define RUNTIME_VERSION_1_5_73 MAKE_EXE_VERSION(1, 5, 73) // 0x01050490 creation club #define RUNTIME_VERSION_1_5_80 MAKE_EXE_VERSION(1, 5, 80) // 0x01050500 creation club - no code or data differences #define RUNTIME_VERSION_1_5_97 MAKE_EXE_VERSION(1, 5, 97) // 0x01050610 creation club +#define RUNTIME_VERSION_1_6_317 MAKE_EXE_VERSION(1, 6, 317) // 0x010613D0 anniversary edition +#define RUNTIME_VERSION_1_6_318 MAKE_EXE_VERSION(1, 6, 318) // 0x010613E0 +#define RUNTIME_VERSION_1_6_323 MAKE_EXE_VERSION(1, 6, 323) // 0x01061430 +#define RUNTIME_VERSION_1_6_342 MAKE_EXE_VERSION(1, 6, 342) // 0x01061560 +#define RUNTIME_VERSION_1_6_353 MAKE_EXE_VERSION(1, 6, 353) // 0x01061610 #define PACKED_SKSE_VERSION MAKE_EXE_VERSION(SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA) // information about the state of the game at the time of release #define SKSE_TARGETING_BETA_VERSION 0 -#define CURRENT_RELEASE_RUNTIME RUNTIME_VERSION_1_5_97 -#define CURRENT_RELEASE_SKSE_STR "2.0.19" +#define CURRENT_RELEASE_RUNTIME RUNTIME_VERSION_1_6_353 +#define CURRENT_RELEASE_SKSE_STR "2.1.5" #endif /* __SKSE_VERSION_H__ */ diff --git a/source/fs.dll/skse64/skse64_common/skse_version.rc b/source/fs.dll/skse64/skse64_common/skse_version.rc index f5504bf6..d2c57437 100644 --- a/source/fs.dll/skse64/skse64_common/skse_version.rc +++ b/source/fs.dll/skse64/skse64_common/skse_version.rc @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:097c8fb772df3cb5c1f89f785ded91b9c7bc7cd7d7b6c757835152522f2462c7 +oid sha256:6db02cc66fd2935564d13019bf0f156e2c055e120ef66c1638263ffcfffdce91 size 897 diff --git a/source/fs.dll/skse64/skse64_loader/CMakeLists.txt b/source/fs.dll/skse64/skse64_loader/CMakeLists.txt new file mode 100644 index 00000000..c7fdb7da --- /dev/null +++ b/source/fs.dll/skse64/skse64_loader/CMakeLists.txt @@ -0,0 +1,97 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake) + +project( + skse64_loader + VERSION ${SKSE_VERSION_MAJOR}.${SKSE_VERSION_MINOR}.${SKSE_VERSION_PATCH} + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Build options ---- + +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF) + +# ---- Dependencies ---- + +if (NOT TARGET skse64_common) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../skse64_common skse64_common) # bundled +endif() + +if (NOT TARGET skse64_loader_common) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../skse64_loader_common skse64_loader_common) # bundled +endif() + +find_package(common REQUIRED CONFIG) + +# ---- Add source files ---- + +include(cmake/headerlist.cmake) +include(cmake/sourcelist.cmake) + +source_group( + ${PROJECT_NAME} + FILES + ${headers} + ${sources} +) + +# ---- Create library ---- + +add_executable( + ${PROJECT_NAME} + ${headers} + ${sources} + ${skse64_common_SOURCE_DIR}/skse_version.rc +) + +add_executable(skse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake) + +target_compile_features( + ${PROJECT_NAME} + PUBLIC + cxx_std_11 +) + +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + skse64::skse64_common + skse64::skse64_loader_common + Shlwapi.lib + Version.lib + xse::common +) + +# ---- Configure all targets ---- + +set_target_properties( + ${PROJECT_NAME} + skse64_common + skse64_loader_common + PROPERTIES + MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" +) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake) diff --git a/source/fs.dll/skse64/skse64_loader/main.cpp b/source/fs.dll/skse64/skse64_loader/main.cpp index 1f426a0e..0b6f5d73 100644 --- a/source/fs.dll/skse64/skse64_loader/main.cpp +++ b/source/fs.dll/skse64/skse64_loader/main.cpp @@ -217,13 +217,17 @@ int main(int argc, char ** argv) startupInfo.cb = sizeof(startupInfo); + DWORD createFlags = CREATE_SUSPENDED; + if(g_options.m_setPriority) + createFlags |= g_options.m_priority; + if(!CreateProcess( procPath.c_str(), NULL, // no args NULL, // default process security NULL, // default thread security FALSE, // don't inherit handles - CREATE_SUSPENDED, + createFlags, NULL, // no new environment NULL, // no new cwd &startupInfo, &procInfo)) @@ -274,14 +278,7 @@ int main(int argc, char ** argv) break; case kProcType_Normal: -#if 0 - if(InjectDLL(&procInfo, dllPath.c_str(), &procHookInfo)) - { - injectionSucceeded = true; - } -#else injectionSucceeded = InjectDLLThread(&procInfo, dllPath.c_str(), true, g_options.m_noTimeout); -#endif break; default: diff --git a/source/fs.dll/skse64/skse64_loader_common/CMakeLists.txt b/source/fs.dll/skse64/skse64_loader_common/CMakeLists.txt new file mode 100644 index 00000000..8583eb85 --- /dev/null +++ b/source/fs.dll/skse64/skse64_loader_common/CMakeLists.txt @@ -0,0 +1,113 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake) + +project( + skse64_loader_common + VERSION ${SKSE_VERSION_MAJOR}.${SKSE_VERSION_MINOR}.${SKSE_VERSION_PATCH} + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Dependencies ---- + +find_package(common REQUIRED CONFIG) + +# ---- Add source files ---- + +include(cmake/headerlist.cmake) +include(cmake/sourcelist.cmake) + +source_group( + ${PROJECT_NAME} + FILES + ${headers} + ${sources} +) + +# ---- Create library ---- + +add_library( + ${PROJECT_NAME} + STATIC + ${headers} + ${sources} +) + +add_library(skse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +target_compile_definitions( + ${PROJECT_NAME} + PRIVATE + RUNTIME + RUNTIME_VERSION=${RUNTIME_VERSION_PACKED} +) + +target_compile_features( + ${PROJECT_NAME} + PUBLIC + cxx_std_11 +) + +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + xse::common +) + +# ---- Create an installable target ---- + +include(GNUInstallDirs) + +install( + TARGETS + ${PROJECT_NAME} + EXPORT + ${PROJECT_NAME}-targets +) + +install( + FILES + ${headers} + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +) + +configure_file( + cmake/config.cmake.in + ${PROJECT_NAME}-config.cmake + @ONLY +) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) + +install( + EXPORT + ${PROJECT_NAME}-targets + NAMESPACE + skse64:: + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) diff --git a/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.cpp b/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.cpp index 57081d17..16bf02d0 100644 --- a/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.cpp +++ b/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.cpp @@ -146,6 +146,11 @@ bool IsUPXImage(const UInt8 * base) return GetImageSection(base, "UPX0") != NULL; } +bool IsWinStoreImage(const UInt8 * base) +{ + return GetImageSection(base, ".xbld") != NULL; +} + bool ScanEXE(const char * path, ProcHookInfo * hookInfo) { // open and map the file in to memory @@ -167,6 +172,7 @@ bool ScanEXE(const char * path, ProcHookInfo * hookInfo) // scan for packing type bool isSteam = IsSteamImage(fileBase); bool isUPX = IsUPXImage(fileBase); + bool isWinStore = IsWinStoreImage(fileBase); if(isUPX) { @@ -176,6 +182,10 @@ bool ScanEXE(const char * path, ProcHookInfo * hookInfo) { hookInfo->procType = kProcType_Steam; } + else if(isWinStore) + { + hookInfo->procType = kProcType_WinStore; + } else { hookInfo->procType = kProcType_Normal; @@ -238,16 +248,26 @@ bool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, switch(hookInfo->procType) { - case kProcType_Steam: _MESSAGE("steam exe"); break; - case kProcType_Normal: _MESSAGE("normal exe"); break; - case kProcType_Packed: _MESSAGE("packed exe"); break; + case kProcType_Steam: _MESSAGE("steam exe"); break; + case kProcType_Normal: _MESSAGE("normal exe"); break; + case kProcType_Packed: _MESSAGE("packed exe"); break; + case kProcType_WinStore: _MESSAGE("winstore exe"); break; case kProcType_Unknown: - default: _MESSAGE("unknown exe type"); break; + default: _MESSAGE("unknown exe type"); break; + } + + if(hookInfo->procType == kProcType_WinStore) + { + PrintLoaderError("The Windows Store (gamepass) version of Skyrim is not supported."); + return false; } bool result = false; - const UInt64 kCurVersion = 0x0001000500610000; // 1.5.97.0 + const UInt64 kCurVersion = + (UInt64(GET_EXE_VERSION_MAJOR(RUNTIME_VERSION)) << 48) | + (UInt64(GET_EXE_VERSION_MINOR(RUNTIME_VERSION)) << 32) | + (UInt64(GET_EXE_VERSION_BUILD(RUNTIME_VERSION)) << 16); // convert version resource to internal version format UInt32 versionInternal = MAKE_EXE_VERSION(version >> 48, version >> 32, version >> 16); @@ -262,12 +282,14 @@ bool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA, CURRENT_RELEASE_SKSE_STR); else PrintLoaderError( - "You are using Skyrim version %d.%d.%d, which is out of date and incompatible with this version of SKSE64. Update to the latest beta version.", - GET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal)); + "You are using Skyrim version %d.%d.%d, which is out of date and incompatible with this version of SKSE64 (%d.%d.%d). Update to the latest beta version.", + GET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal), + SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA); #else PrintLoaderError( - "You are using Skyrim version %d.%d.%d, which is out of date and incompatible with this version of SKSE64. Update to the latest version.", - GET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal)); + "You are using Skyrim version %d.%d.%d, which is out of date and incompatible with this version of SKSE64 (%d.%d.%d). Update to the latest version.", + GET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal), + SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA); #endif } else if(version > kCurVersion) @@ -288,6 +310,7 @@ bool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, { case kProcType_Steam: case kProcType_Normal: + case kProcType_WinStore: *dllSuffix = ""; result = true; @@ -301,11 +324,22 @@ bool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, } else { + char versionStr[256]; + sprintf_s(versionStr, "%d_%d_%d", GET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal)); + switch(hookInfo->procType) { case kProcType_Steam: case kProcType_Normal: - *dllSuffix = "1_5_97"; + *dllSuffix = versionStr; + + result = true; + + break; + + case kProcType_WinStore: + *dllSuffix = versionStr; + *dllSuffix += "_winstore"; result = true; diff --git a/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.h b/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.h index 36ba7c65..88fdf817 100644 --- a/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.h +++ b/source/fs.dll/skse64/skse64_loader_common/IdentifyEXE.h @@ -4,6 +4,7 @@ enum { kProcType_Steam, kProcType_Normal, + kProcType_WinStore, kProcType_Packed, diff --git a/source/fs.dll/skse64/skse64_loader_common/Inject.cpp b/source/fs.dll/skse64/skse64_loader_common/Inject.cpp index bc7c12d4..f1b61f0d 100644 --- a/source/fs.dll/skse64/skse64_loader_common/Inject.cpp +++ b/source/fs.dll/skse64/skse64_loader_common/Inject.cpp @@ -23,6 +23,51 @@ bool InjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync return result; } +/* + 48:83EC 28 | sub rsp, 28 | + 48:8BD9 | mov rbx,rcx | save to non-volatile register + 48:8D4B 10 | lea rcx,qword ptr ds:[rbx+10] | offsetof(InjectDLLThreadData, dllPath) + FF13 | call qword ptr ds:[rbx] | offsetof(InjectDLLThreadData, loadLibraryA) + 48:8BC8 | mov rcx,rax | + BA 01000000 | mov edx,1 | + FF53 08 | call qword ptr ds:[rbx+8] | offsetof(InjectDLLThreadData, getProcAddress) + FFD0 | call rax | + 48:83C4 28 | add rsp, 28 | + C3 | ret | +*/ + +struct InjectDLLThreadData +{ + InjectDLLThreadData(uintptr_t _loadLibraryA, uintptr_t _getProcAddress, const char * _dllPath) + { + memset(this, 0, sizeof(*this)); + loadLibraryA = _loadLibraryA; + getProcAddress = _getProcAddress; + strcpy_s(dllPath, sizeof(dllPath), _dllPath); + + static const UInt8 kCode[] = + { + 0x48, 0x83, 0xEC, 0x28, + 0x48, 0x8B, 0xD9, + 0x48, 0x8D, 0x4B, 0x10, + 0xFF, 0x13, + 0x48, 0x8B, 0xC8, + 0xBA, 0x01, 0x00, 0x00, 0x00, + 0xFF, 0x53, 0x08, + 0xFF, 0xD0, + 0x48, 0x83, 0xC4, 0x28, + 0xC3, + }; + + memcpy(code, kCode, sizeof(kCode)); + } + + uintptr_t loadLibraryA; // 00 + uintptr_t getProcAddress; // 08 + char dllPath[2048]; // 10 + UInt8 code[128]; // 810 +}; + static bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync, bool noTimeout) { bool result = false; @@ -47,14 +92,20 @@ static bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, // safe because kernel32 is loaded at the same address in all processes // (can change across restarts) uintptr_t loadLibraryAAddr = (uintptr_t)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA"); + uintptr_t getProcAddressAddr = (uintptr_t)GetProcAddress(GetModuleHandle("kernel32.dll"), "GetProcAddress"); _MESSAGE("hookBase = %016I64X", hookBase); _MESSAGE("loadLibraryAAddr = %016I64X", loadLibraryAAddr); + _MESSAGE("getProcAddressAddr = %016I64X", getProcAddressAddr); + + InjectDLLThreadData data(loadLibraryAAddr, getProcAddressAddr, dllPath); size_t bytesWritten; - WriteProcessMemory(process, (LPVOID)hookBase, dllPath, strlen(dllPath) + 1, &bytesWritten); + WriteProcessMemory(process, (LPVOID)hookBase, (void *)&data, sizeof(data), &bytesWritten); + + auto * remoteData = (InjectDLLThreadData *)hookBase; - HANDLE thread = CreateRemoteThread(process, NULL, 0, (LPTHREAD_START_ROUTINE)loadLibraryAAddr, (void *)hookBase, 0, NULL); + HANDLE thread = CreateRemoteThread(process, NULL, 0, (LPTHREAD_START_ROUTINE)(&remoteData->code), (void *)remoteData, 0, NULL); if(thread) { if(sync) @@ -95,268 +146,3 @@ static bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, return result; } - -// main hook - -#if 0 - -#pragma pack (push, 1) - -struct HookLayout -{ - enum - { - kNumLibs = 16, - kMaxLibNameLen = MAX_PATH - }; - - struct DoLoadLibrary - { - UInt8 push; // 68 - UInt32 strAddr; // address - UInt8 indCall1; // FF - UInt8 indCall2; // 15 - UInt32 callAddr; // address - - void Clear(void) - { - // nops - push = 0x90; - strAddr = 0x90909090; - indCall1 = 0x90; - indCall2 = 0x90; - callAddr = 0x90909090; - } - - void Setup(UInt32 _strAddr, UInt32 _callAddr) - { - push = 0x68; - strAddr = _strAddr; - indCall1 = 0xFF; - indCall2 = 0x15; - callAddr = _callAddr; - } - }; - - // code (entry point) - UInt8 infLoop1; // EB - UInt8 infLoop2; // FF - DoLoadLibrary loadLib[kNumLibs]; - UInt8 callMain1; // FF - UInt8 callMain2; // 25 - UInt32 callMainAddr; // address - - // data - char libNames[kMaxLibNameLen * kNumLibs]; - UInt32 mainAddr; - - void Init(ProcHookInfo * hookInfo) - { -#if 0 - infLoop1 = 0xEB; - infLoop2 = 0xFE; -#else - infLoop1 = 0x90; - infLoop2 = 0x90; -#endif - - for(UInt32 i = 0; i < kNumLibs; i++) - loadLib[i].Clear(); - - callMain1 = 0xFF; - callMain2 = 0x25; - callMainAddr = 0; - - memset(libNames, 0, sizeof(libNames)); - - mainAddr = 0; - } -}; - -#pragma pack (pop, 1) - -struct HookSetup -{ - HookLayout m_data; - - HANDLE m_proc; - UInt32 m_base; - UInt32 m_loadLib; - - UInt32 m_libIdx; - UInt32 m_strOffset; - - bool m_isInit; - - HookSetup() - { - m_proc = NULL; - m_base = 0; - m_loadLib = 0; - - m_libIdx = 0; - m_strOffset = 0; - - m_isInit = false; - } - - bool Init(PROCESS_INFORMATION * info, ProcHookInfo * hookInfo) - { - bool result = false; - - if(m_isInit) return true; - - m_loadLib = hookInfo->loadLibAddr; - UInt32 hookBaseAddr = hookInfo->hookCallAddr; - - m_data.Init(hookInfo); - - m_proc = OpenProcess( - PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, FALSE, info->dwProcessId); - if(m_proc) - { - m_base = (UInt32)VirtualAllocEx(m_proc, NULL, sizeof(m_data), MEM_COMMIT, PAGE_EXECUTE_READWRITE); - if(m_base) - { - UInt32 hookBaseCallAddr; - size_t bytesTransferred = 0; - - _MESSAGE("remote memory = %08X", m_base); - - // update the call - if( ReadProcessMemory(m_proc, (void *)(hookBaseAddr + 1), &hookBaseCallAddr, sizeof(hookBaseCallAddr), &bytesTransferred) && - (bytesTransferred == sizeof(hookBaseCallAddr))) - { - // adjust for relcall - hookBaseCallAddr += 5 + hookBaseAddr; - - _MESSAGE("old winmain = %08X", hookBaseCallAddr); - - m_data.mainAddr = hookBaseCallAddr; - m_data.callMainAddr = GetRemoteOffset(&m_data.mainAddr); - - UInt32 newHookDst = m_base - hookBaseAddr - 5; - if( WriteProcessMemory(m_proc, (void *)(hookBaseAddr + 1), &newHookDst, sizeof(newHookDst), &bytesTransferred) && - (bytesTransferred == sizeof(newHookDst))) - { - m_isInit = true; - result = true; - } - else - { - _ERROR("couldn't write memory (update winmain)"); - } - } - else - { - _ERROR("couldn't read memory (update winmain)"); - } - } - else - { - _ERROR("couldn't allocate memory in remote process"); - } - } - else - { - _ERROR("couldn't open process"); - } - - return result; - } - - bool AddLoadLibrary(const char * dllPath) - { - bool result = false; - - if(m_libIdx < HookLayout::kNumLibs) - { - HookLayout::DoLoadLibrary * lib = &m_data.loadLib[m_libIdx]; - char * strDst = &m_data.libNames[m_strOffset]; - m_libIdx++; - -#pragma warning (push) -#pragma warning (disable : 4996) - strcpy(strDst, dllPath); -#pragma warning (pop) - - m_strOffset += strlen(dllPath) + 1; - - lib->Setup( - GetRemoteOffset(strDst), - m_loadLib); - - if(UpdateRemoteProc()) - { - result = true; - } - } - - return result; - } - - UInt32 GetRemoteOffset(void * data) - { - return m_base + ((UInt32)data) - ((UInt32)&m_data); - } - - bool UpdateRemoteProc(void) - { - size_t bytesTransferred; - return WriteProcessMemory(m_proc, (void *)m_base, &m_data, sizeof(m_data), &bytesTransferred) && - (bytesTransferred == sizeof(m_data)); - } -}; - -HookSetup g_hookData; - -static bool DoInjectDLL(PROCESS_INFORMATION * info, const char * dllPath, ProcHookInfo * hookInfo) -{ - bool result = false; - - if(g_hookData.Init(info, hookInfo)) - { - if(g_hookData.AddLoadLibrary(dllPath)) - { - result = true; - } - else - { - _ERROR("couldn't add library to list"); - } - } - else - { - _ERROR("couldn't init hook"); - } - - return result; -} - -bool InjectDLL(PROCESS_INFORMATION * info, const char * dllPath, ProcHookInfo * hookInfo) -{ - bool result = false; - - // wrap DLL injection in SEH, if it crashes print a message - __try { - result = DoInjectDLL(info, dllPath, hookInfo); - } - __except(EXCEPTION_EXECUTE_HANDLER) - { - PrintLoaderError("DLL injection failed. In most cases, this is caused by an overly paranoid software firewall or antivirus package. Disabling either of these may solve the problem."); - result = false; - } - - return result; -} - -#else - -bool InjectDLL(PROCESS_INFORMATION * info, const char * dllPath, ProcHookInfo * hookInfo) -{ - // ### this needs to be updated for x64 - - return false; -} - -#endif diff --git a/source/fs.dll/skse64/skse64_loader_common/skse64_loader_common.vcxproj b/source/fs.dll/skse64/skse64_loader_common/skse64_loader_common.vcxproj index d4716959..f622aa7f 100644 --- a/source/fs.dll/skse64/skse64_loader_common/skse64_loader_common.vcxproj +++ b/source/fs.dll/skse64/skse64_loader_common/skse64_loader_common.vcxproj @@ -35,10 +35,6 @@ Win32Proj skse64_loader_common 8.1 - SAK - SAK - SAK - SAK diff --git a/source/fs.dll/skse64/skse64_steam_loader/CMakeLists.txt b/source/fs.dll/skse64/skse64_steam_loader/CMakeLists.txt new file mode 100644 index 00000000..18d28dd6 --- /dev/null +++ b/source/fs.dll/skse64/skse64_steam_loader/CMakeLists.txt @@ -0,0 +1,96 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake) + +project( + skse64_steam_loader + VERSION ${SKSE_VERSION_MAJOR}.${SKSE_VERSION_MINOR}.${SKSE_VERSION_PATCH} + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Build options ---- + +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF) + +# ---- Dependencies ---- + +if (NOT TARGET skse64_common) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../skse64_common skse64_common) # bundled +endif() + +if (NOT TARGET skse64_loader_common) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../skse64_loader_common skse64_loader_common) # bundled +endif() + +# ---- Add source files ---- + +include(cmake/headerlist.cmake) +include(cmake/sourcelist.cmake) + +source_group( + ${PROJECT_NAME} + FILES + ${headers} + ${sources} + skse64_steam_loader.def +) + +# ---- Create library ---- + +add_library( + ${PROJECT_NAME} + SHARED + ${headers} + ${sources} + skse64_steam_loader.def + ${skse64_common_SOURCE_DIR}/skse_version.rc +) + +add_library(skse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake) + +target_compile_features( + ${PROJECT_NAME} + PUBLIC + cxx_std_11 +) + +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + skse64::skse64_common + skse64::skse64_loader_common + Version.lib +) + +# ---- Configure all targets ---- + +set_target_properties( + ${PROJECT_NAME} + skse64_common + skse64_loader_common + PROPERTIES + MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" +) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake) diff --git a/source/fs.dll/skse64/skse64_steam_loader/main.cpp b/source/fs.dll/skse64/skse64_steam_loader/main.cpp index f90ff054..9ba957d1 100644 --- a/source/fs.dll/skse64/skse64_steam_loader/main.cpp +++ b/source/fs.dll/skse64/skse64_steam_loader/main.cpp @@ -18,8 +18,6 @@ BOOL WINAPI DllMain(HANDLE procHandle, DWORD reason, LPVOID reserved) if(reason == DLL_PROCESS_ATTACH) { g_dllHandle = procHandle; - - OnAttach(); } return TRUE; @@ -42,32 +40,33 @@ static void OnAttach(void) HookIAT(); } -typedef void (* ___telemetry_main_invoke_trigger)(void * arg); -___telemetry_main_invoke_trigger __telemetry_main_invoke_trigger_Original = NULL; +// api-ms-win-crt-runtime-l1-1-0.dll +typedef char * (*__get_narrow_winmain_command_line)(); +__get_narrow_winmain_command_line _get_narrow_winmain_command_line_Original = NULL; -static void __telemetry_main_invoke_trigger_Hook(void * arg) +static char * _get_narrow_winmain_command_line_Hook() { HookMain(_ReturnAddress()); - __telemetry_main_invoke_trigger_Original(arg); + return _get_narrow_winmain_command_line_Original(); } static void HookIAT() { - ___telemetry_main_invoke_trigger * iat = (___telemetry_main_invoke_trigger *)GetIATAddr(GetModuleHandle(NULL), "VCRUNTIME140.dll", "__telemetry_main_invoke_trigger"); + __get_narrow_winmain_command_line * iat = (__get_narrow_winmain_command_line *)GetIATAddr(GetModuleHandle(NULL), "api-ms-win-crt-runtime-l1-1-0.dll", "_get_narrow_winmain_command_line"); if(iat) { _MESSAGE("found iat at %016I64X", iat); - __telemetry_main_invoke_trigger_Original = *iat; - _MESSAGE("original thunk %016I64X", __telemetry_main_invoke_trigger_Original); + _get_narrow_winmain_command_line_Original = *iat; + _MESSAGE("original thunk %016I64X", _get_narrow_winmain_command_line_Original); - SafeWrite64(uintptr_t(iat), (UInt64)__telemetry_main_invoke_trigger_Hook); + SafeWrite64(uintptr_t(iat), (UInt64)_get_narrow_winmain_command_line_Hook); _MESSAGE("patched iat"); } else { - _MESSAGE("couldn't find __telemetry_main_invoke_trigger"); + _MESSAGE("couldn't find _get_narrow_winmain_command_line"); } } @@ -103,5 +102,30 @@ static void HookMain(void * retAddr) g_dllPath = GetRuntimeDirectory() + dllPrefix + dllSuffix + ".dll"; _MESSAGE("dll = %s", g_dllPath.c_str()); - LoadLibrary(g_dllPath.c_str()); + HMODULE dll = LoadLibrary(g_dllPath.c_str()); + if(dll) + { + typedef void (* EntryPoint)(void); + EntryPoint entryPoint = (EntryPoint)GetProcAddress(dll, "StartSKSE"); + if(entryPoint) + { + entryPoint(); + } + else + { + _ERROR("entry point not found"); + } + } + else + { + _ERROR("couldn't load DLL"); + } +} + +extern "C" +{ + void InitSKSESteamLoader() + { + OnAttach(); + } } diff --git a/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.def b/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.def new file mode 100644 index 00000000..d8f54a95 --- /dev/null +++ b/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.def @@ -0,0 +1,2 @@ +EXPORTS +InitSKSESteamLoader @1 \ No newline at end of file diff --git a/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.vcxproj b/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.vcxproj index ed39e5e1..d4d37bc5 100644 --- a/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.vcxproj +++ b/source/fs.dll/skse64/skse64_steam_loader/skse64_steam_loader.vcxproj @@ -15,12 +15,6 @@ Win32Proj skse64_steam_loader 8.1 - - - - - - diff --git a/source/fs.dll/skse64/xbyak/CMakeLists.txt b/source/fs.dll/skse64/xbyak/CMakeLists.txt new file mode 100644 index 00000000..ca90bf4c --- /dev/null +++ b/source/fs.dll/skse64/xbyak/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.18) + +# ---- Project ---- + +project( + xbyak + VERSION 4.87 + LANGUAGES CXX +) + +# ---- Include guards ---- + +if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) + message( + FATAL_ERROR + "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there." +) +endif() + +# ---- Create library ---- + +include(GNUInstallDirs) + +add_library(${PROJECT_NAME} INTERFACE) +add_library(Xbyak::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +target_include_directories( + ${PROJECT_NAME} + INTERFACE + $ + $ +) + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}_Targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${PROJECT_NAME}ConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/cmake/config.cmake.in" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" + INSTALL_DESTINATION + ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake +) + +install( + EXPORT ${PROJECT_NAME}_Targets + FILE ${PROJECT_NAME}-targets.cmake + NAMESPACE Xbyak:: + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake +) + +install( + FILES + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake +) + +install( + FILES + xbyak.h + xbyak_bin2hex.h + xbyak_mnemonic.h + xbyak_util.h + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +)