30 class IFunctionArguments;
31 class IVirtualMachine;
32 class IVMDebugInterface;
33 class IVMSaveLoadInterface;
37 struct PositionPlayerEvent;
38 struct TESActivateEvent;
39 struct TESActiveEffectApplyRemoveEvent;
40 struct TESActorLocationChangeEvent;
41 struct TESBookReadEvent;
42 struct TESCellAttachDetachEvent;
43 struct TESCellFullyLoadedEvent;
44 struct TESCombatEvent;
45 struct TESContainerChangedEvent;
47 struct TESDestructionStageChangedEvent;
48 struct TESEnterBleedoutEvent;
50 struct TESFastTravelEndEvent;
51 struct TESFormDeleteEvent;
52 struct TESFurnitureEvent;
53 struct TESGrabReleaseEvent;
55 struct TESInitScriptEvent;
56 struct TESLoadGameEvent;
57 struct TESLockChangedEvent;
58 struct TESMagicEffectApplyEvent;
59 struct TESMagicWardHitEvent;
60 struct TESMoveAttachDetachEvent;
61 struct TESObjectLoadedEvent;
62 struct TESObjectREFRTranslationEvent;
63 struct TESOpenCloseEvent;
64 struct TESPackageEvent;
65 struct TESPerkEntryRunEvent;
66 struct TESPlayerBowShotEvent;
67 struct TESQuestInitEvent;
68 struct TESQuestStageEvent;
70 struct TESResolveNPCTemplatesEvent;
71 struct TESSceneActionEvent;
73 struct TESScenePhaseEvent;
75 struct TESSleepStartEvent;
76 struct TESSleepStopEvent;
77 struct TESSpellCastEvent;
78 struct TESSwitchRaceCompleteEvent;
79 struct TESTopicInfoEvent;
80 struct TESTrackedStatsEvent;
81 struct TESTrapHitEvent;
82 struct TESTriggerEnterEvent;
83 struct TESTriggerEvent;
84 struct TESTriggerLeaveEvent;
85 struct TESUniqueIDChangeEvent;
189 static_assert(
sizeof(
WaitCall) == 0x10);
308 static_assert(
sizeof(
SkyrimVM) == 0x8978);
310 static_assert(
sizeof(
SkyrimVM) == 0x8998);
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition CompiledScriptLoader.h:15
Definition IFreezeQuery.h:8
Definition IFunctionArguments.h:12
Definition IStackCallbackSaveInterface.h:8
Definition IVMDebugInterface.h:8
Definition IVMSaveLoadInterface.h:47
Definition IVirtualMachine.h:40
Definition SimpleAllocMemoryPagePolicy.h:11
Definition BSTArray.h:378
Definition BSTMessageQueue.h:63
Definition BSTEvent.h:143
Definition BSTHashMap.h:21
Definition BSTSmartPointer.h:37
Definition BSTFreeList.h:28
Definition FragmentSystem.h:11
Definition HandlePolicy.h:11
Definition SkyrimScriptObjectBindPolicy.h:11
Definition SavePatcher.h:10
Definition SkyrimVM.h:148
BSTArray< BSTSmartPointer< UpdateDataEvent > > queuedOnUpdateEvents
Definition SkyrimVM.h:268
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > postRenderFunctorQueue2
Definition SkyrimVM.h:290
bool QueuePostRenderCall(const BSTSmartPointer< SkyrimScript::DelayFunctor > &a_functor)
std::uint32_t currentVMGameTime
Definition SkyrimVM.h:256
BSTSet< VMHandle > registeredSleepEvents
Definition SkyrimVM.h:280
BSScript::CompiledScriptLoader scriptLoader
Definition SkyrimVM.h:243
void RelayEvent(VMHandle handle, BSFixedString *event, BSScript::IFunctionArguments *args, ISendEventFilter *optionalFilter)
SkyrimScript::Logger logger
Definition SkyrimVM.h:244
BSSpinLock frozenLock
Definition SkyrimVM.h:251
std::uint32_t lastVMStackDumpTime
Definition SkyrimVM.h:301
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > renderSafeFunctorQueue2
Definition SkyrimVM.h:286
SkyrimScript::ObjectBindPolicy objectBindPolicy
Definition SkyrimVM.h:246
BSTHashMap< const char *, SkyrimScript::Logger * > userLogMap
Definition SkyrimVM.h:298
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > postRenderFunctorPool2
Definition SkyrimVM.h:289
std::uint32_t currentVMOverstressTime
Definition SkyrimVM.h:300
BSSpinLock currentVMTimeLock
Definition SkyrimVM.h:253
BSSpinLock InventoryEventFilterMapLock
Definition SkyrimVM.h:302
BSTArray< WaitCall > queuedWaitGameCalls
Definition SkyrimVM.h:262
BSScript::IVMDebugInterface * debugInterface
Definition SkyrimVM.h:241
BSTArray< WaitCall > queuedWaitMenuModeCalls
Definition SkyrimVM.h:261
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * postRenderQueueToReadFrom
Definition SkyrimVM.h:295
SkyrimScript::FragmentSystem fragmentSystem
Definition SkyrimVM.h:248
BSSpinLock renderSafeQueueLock
Definition SkyrimVM.h:291
std::uint32_t isFrozen
Definition SkyrimVM.h:252
SkyrimScript::HandlePolicy handlePolicy
Definition SkyrimVM.h:245
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > renderSafeFunctorPool1
Definition SkyrimVM.h:283
std::uint32_t currentVMMenuModeTime
Definition SkyrimVM.h:255
BSTArray< WaitCall > queuedWaitCalls
Definition SkyrimVM.h:260
std::uint32_t pad075C
Definition SkyrimVM.h:278
BSScript::SimpleAllocMemoryPagePolicy memoryPagePolicy
Definition SkyrimVM.h:242
BSTSmartPointer< SkyrimScript::Store > scriptStore
Definition SkyrimVM.h:247
BSTArray< BSTSmartPointer< UpdateDataEvent > > queuedOnUpdateGameEvents
Definition SkyrimVM.h:269
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * renderSafeQueueToWriteTo
Definition SkyrimVM.h:293
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > renderSafeFunctorQueue1
Definition SkyrimVM.h:284
BSTSmartPointer< BSScript::IVirtualMachine > impl
Definition SkyrimVM.h:239
std::uint32_t currentVMDaysPassed
Definition SkyrimVM.h:257
static constexpr auto RTTI
Definition SkyrimVM.h:150
BSSpinLock userLogMapLock
Definition SkyrimVM.h:297
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > renderSafeFunctorPool2
Definition SkyrimVM.h:285
std::uint32_t pad06A4
Definition SkyrimVM.h:259
BSTHashMap< VMHandle, InventoryEventFilterLists * > InventoryEventFilterMap
Definition SkyrimVM.h:303
BSTArray< BSTSmartPointer< LOSDataEvent > > queuedLOSEventChecks
Definition SkyrimVM.h:264
BSSpinLock queuedWaitEventLock
Definition SkyrimVM.h:258
BSSpinLock currentVMOverstressTimeLock
Definition SkyrimVM.h:299
static constexpr auto VTABLE
Definition SkyrimVM.h:151
BSSpinLock queuedLOSEventCheckLock
Definition SkyrimVM.h:263
std::uint32_t unk0750
Definition SkyrimVM.h:270
std::uint32_t currentLOSEventCheckIndex
Definition SkyrimVM.h:265
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > postRenderFunctorQueue1
Definition SkyrimVM.h:288
BSSpinLock queuedOnUpdateEventLock
Definition SkyrimVM.h:266
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > postRenderFunctorPool1
Definition SkyrimVM.h:287
BSTSet< VMHandle > registeredStatsEvents
Definition SkyrimVM.h:282
BSSpinLock registeredSleepEventsLock
Definition SkyrimVM.h:277
BSSpinLock postRenderQueueLock
Definition SkyrimVM.h:294
std::uint32_t currentVMTime
Definition SkyrimVM.h:254
SkyrimScript::Profiler profiler
Definition SkyrimVM.h:249
void SendAndRelayEvent(VMHandle handle, BSFixedString *event, BSScript::IFunctionArguments *args, ISendEventFilter *optionalFilter)
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * postRenderQueueToWriteTo
Definition SkyrimVM.h:296
static SkyrimVM * GetSingleton()
std::uint32_t pad071C
Definition SkyrimVM.h:267
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * renderSafeQueueToReadFrom
Definition SkyrimVM.h:292
BSSpinLock registeredStatsEventsLock
Definition SkyrimVM.h:281
BSScript::IVMSaveLoadInterface * saveLoadInterface
Definition SkyrimVM.h:240
SkyrimScript::SavePatcher savePatcher
Definition SkyrimVM.h:250
Definition AbsorbEffect.h:6
std::uint32_t FormID
Definition BSCoreTypes.h:5
constexpr REL::ID RTTI_SkyrimVM(static_cast< std::uint64_t >(689129))
std::uint32_t VMStackID
Definition BSCoreTypes.h:8
std::uint64_t VMHandle
Definition BSCoreTypes.h:7
constexpr std::array< REL::ID, 52 > VTABLE_SkyrimVM
Definition Offsets_VTABLE.h:12754
Definition BSIntrusiveRefCounted.h:8
Definition BSTSingleton.h:50
Definition SkyrimVM.h:226
virtual bool matchesFilter(VMHandle handle)=0
Definition SkyrimVM.h:218
BSTSet< FormID > itemListsForFiltering
Definition SkyrimVM.h:221
BSTSet< FormID > itemsForFiltering
Definition SkyrimVM.h:220
Definition SkyrimVM.h:192
FormID akTargetFormID
Definition SkyrimVM.h:211
LOSEventType losEventType
Definition SkyrimVM.h:212
FormID akViewerFormID
Definition SkyrimVM.h:210
PreviousLOS lastLOSCheckResult
Definition SkyrimVM.h:213
VMHandle handle
Definition SkyrimVM.h:209
std::uint32_t pad04
Definition SkyrimVM.h:208
PreviousLOS
Definition SkyrimVM.h:202
LOSEventType
Definition SkyrimVM.h:195
Definition SkyrimVM.h:154
std::uint32_t timeToSendEvent
Definition SkyrimVM.h:165
UpdateType
Definition SkyrimVM.h:157
VMHandle handle
Definition SkyrimVM.h:167
std::uint32_t updateTime
Definition SkyrimVM.h:166
UpdateType updateType
Definition SkyrimVM.h:163
std::uint16_t pad06
Definition SkyrimVM.h:164
Definition SkyrimVM.h:182
VMStackID stackID
Definition SkyrimVM.h:186
BSScript::IVirtualMachine * vm
Definition SkyrimVM.h:187
std::uint32_t timeToSendEvent
Definition SkyrimVM.h:185