27 class IFunctionArguments;
28 class IVirtualMachine;
29 class IVMDebugInterface;
30 class IVMSaveLoadInterface;
34 struct PositionPlayerEvent;
35 struct TESActivateEvent;
36 struct TESActiveEffectApplyRemoveEvent;
37 struct TESActorLocationChangeEvent;
38 struct TESBookReadEvent;
39 struct TESCellAttachDetachEvent;
40 struct TESCellFullyLoadedEvent;
41 struct TESCombatEvent;
42 struct TESContainerChangedEvent;
44 struct TESDestructionStageChangedEvent;
45 struct TESEnterBleedoutEvent;
47 struct TESFastTravelEndEvent;
48 struct TESFormDeleteEvent;
49 struct TESFurnitureEvent;
50 struct TESGrabReleaseEvent;
52 struct TESInitScriptEvent;
53 struct TESLoadGameEvent;
54 struct TESLockChangedEvent;
55 struct TESMagicEffectApplyEvent;
56 struct TESMagicWardHitEvent;
57 struct TESMoveAttachDetachEvent;
58 struct TESObjectLoadedEvent;
59 struct TESObjectREFRTranslationEvent;
60 struct TESOpenCloseEvent;
61 struct TESPackageEvent;
62 struct TESPerkEntryRunEvent;
63 struct TESPlayerBowShotEvent;
64 struct TESQuestInitEvent;
65 struct TESQuestStageEvent;
67 struct TESResolveNPCTemplatesEvent;
68 struct TESSceneActionEvent;
70 struct TESScenePhaseEvent;
72 struct TESSleepStartEvent;
73 struct TESSleepStopEvent;
74 struct TESSpellCastEvent;
75 struct TESSwitchRaceCompleteEvent;
76 struct TESTopicInfoEvent;
77 struct TESTrackedStatsEvent;
78 struct TESTrapHitEvent;
79 struct TESTriggerEnterEvent;
80 struct TESTriggerEvent;
81 struct TESTriggerLeaveEvent;
82 struct TESUniqueIDChangeEvent;
170 static_assert(
sizeof(
WaitCall) == 0x10);
279 static_assert(
sizeof(
SkyrimVM) == 0x8978);
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:39
Definition: SimpleAllocMemoryPagePolicy.h:11
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: BSTMessageQueue.h:63
Definition: BSTEvent.h:143
Definition: BSTEvent.h:19
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: Profiler.h:12
Definition: SavePatcher.h:10
Definition: SkyrimVM.h:139
BSTArray< BSTSmartPointer< UpdateDataEvent > > queuedOnUpdateEvents
Definition: SkyrimVM.h:249
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > postRenderFunctorQueue2
Definition: SkyrimVM.h:264
bool QueuePostRenderCall(const BSTSmartPointer< SkyrimScript::DelayFunctor > &a_functor)
std::uint32_t currentVMGameTime
Definition: SkyrimVM.h:237
BSTSet< VMHandle > registeredSleepEvents
Definition: SkyrimVM.h:254
BSScript::CompiledScriptLoader scriptLoader
Definition: SkyrimVM.h:224
void RelayEvent(VMHandle handle, BSFixedString *event, BSScript::IFunctionArguments *args, ISendEventFilter *optionalFilter)
SkyrimScript::Logger logger
Definition: SkyrimVM.h:225
BSSpinLock frozenLock
Definition: SkyrimVM.h:232
std::uint32_t lastVMStackDumpTime
Definition: SkyrimVM.h:275
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > renderSafeFunctorQueue2
Definition: SkyrimVM.h:260
SkyrimScript::ObjectBindPolicy objectBindPolicy
Definition: SkyrimVM.h:227
BSTHashMap< const char *, SkyrimScript::Logger * > userLogMap
Definition: SkyrimVM.h:272
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > postRenderFunctorPool2
Definition: SkyrimVM.h:263
std::uint32_t currentVMOverstressTime
Definition: SkyrimVM.h:274
BSSpinLock currentVMTimeLock
Definition: SkyrimVM.h:234
BSSpinLock InventoryEventFilterMapLock
Definition: SkyrimVM.h:276
BSTArray< WaitCall > queuedWaitGameCalls
Definition: SkyrimVM.h:243
BSScript::IVMDebugInterface * debugInterface
Definition: SkyrimVM.h:222
BSTArray< WaitCall > queuedWaitMenuModeCalls
Definition: SkyrimVM.h:242
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * postRenderQueueToReadFrom
Definition: SkyrimVM.h:269
SkyrimScript::FragmentSystem fragmentSystem
Definition: SkyrimVM.h:229
BSSpinLock renderSafeQueueLock
Definition: SkyrimVM.h:265
std::uint32_t isFrozen
Definition: SkyrimVM.h:233
SkyrimScript::HandlePolicy handlePolicy
Definition: SkyrimVM.h:226
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > renderSafeFunctorPool1
Definition: SkyrimVM.h:257
std::uint32_t currentVMMenuModeTime
Definition: SkyrimVM.h:236
BSTArray< WaitCall > queuedWaitCalls
Definition: SkyrimVM.h:241
std::uint32_t pad075C
Definition: SkyrimVM.h:253
BSScript::SimpleAllocMemoryPagePolicy memoryPagePolicy
Definition: SkyrimVM.h:223
BSTSmartPointer< SkyrimScript::Store > scriptStore
Definition: SkyrimVM.h:228
BSTArray< BSTSmartPointer< UpdateDataEvent > > queuedOnUpdateGameEvents
Definition: SkyrimVM.h:250
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * renderSafeQueueToWriteTo
Definition: SkyrimVM.h:267
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > renderSafeFunctorQueue1
Definition: SkyrimVM.h:258
static SkyrimVM * GetSingleton()
BSTSmartPointer< BSScript::IVirtualMachine > impl
Definition: SkyrimVM.h:220
std::uint32_t currentVMDaysPassed
Definition: SkyrimVM.h:238
static constexpr auto RTTI
Definition: SkyrimVM.h:141
BSSpinLock userLogMapLock
Definition: SkyrimVM.h:271
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > renderSafeFunctorPool2
Definition: SkyrimVM.h:259
std::uint32_t pad06A4
Definition: SkyrimVM.h:240
BSTHashMap< VMHandle, InventoryEventFilterLists * > InventoryEventFilterMap
Definition: SkyrimVM.h:277
BSTArray< BSTSmartPointer< LOSDataEvent > > queuedLOSEventChecks
Definition: SkyrimVM.h:245
BSSpinLock queuedWaitEventLock
Definition: SkyrimVM.h:239
BSSpinLock currentVMOverstressTimeLock
Definition: SkyrimVM.h:273
static constexpr auto VTABLE
Definition: SkyrimVM.h:142
BSSpinLock queuedLOSEventCheckLock
Definition: SkyrimVM.h:244
std::uint32_t unk0750
Definition: SkyrimVM.h:251
std::uint32_t currentLOSEventCheckIndex
Definition: SkyrimVM.h:246
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > postRenderFunctorQueue1
Definition: SkyrimVM.h:262
BSSpinLock queuedOnUpdateEventLock
Definition: SkyrimVM.h:247
BSTStaticFreeList< BSTSmartPointer< SkyrimScript::DelayFunctor >, 512 > postRenderFunctorPool1
Definition: SkyrimVM.h:261
BSTSet< VMHandle > registeredStatsEvents
Definition: SkyrimVM.h:256
BSSpinLock registeredSleepEventsLock
Definition: SkyrimVM.h:252
BSSpinLock postRenderQueueLock
Definition: SkyrimVM.h:268
std::uint32_t currentVMTime
Definition: SkyrimVM.h:235
SkyrimScript::Profiler profiler
Definition: SkyrimVM.h:230
void SendAndRelayEvent(VMHandle handle, BSFixedString *event, BSScript::IFunctionArguments *args, ISendEventFilter *optionalFilter)
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * postRenderQueueToWriteTo
Definition: SkyrimVM.h:270
std::uint32_t pad071C
Definition: SkyrimVM.h:248
BSTCommonLLMessageQueue< BSTSmartPointer< SkyrimScript::DelayFunctor > > * renderSafeQueueToReadFrom
Definition: SkyrimVM.h:266
BSSpinLock registeredStatsEventsLock
Definition: SkyrimVM.h:255
BSScript::IVMSaveLoadInterface * saveLoadInterface
Definition: SkyrimVM.h:221
SkyrimScript::SavePatcher savePatcher
Definition: SkyrimVM.h:231
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:207
virtual bool matchesFilter(VMHandle handle)=0
Definition: SkyrimVM.h:199
BSTSet< FormID > itemListsForFiltering
Definition: SkyrimVM.h:202
BSTSet< FormID > itemsForFiltering
Definition: SkyrimVM.h:201
Definition: SkyrimVM.h:173
FormID akTargetFormID
Definition: SkyrimVM.h:192
LOSEventType losEventType
Definition: SkyrimVM.h:193
FormID akViewerFormID
Definition: SkyrimVM.h:191
PreviousLOS lastLOSCheckResult
Definition: SkyrimVM.h:194
VMHandle handle
Definition: SkyrimVM.h:190
std::uint32_t pad04
Definition: SkyrimVM.h:189
PreviousLOS
Definition: SkyrimVM.h:183
LOSEventType
Definition: SkyrimVM.h:176
Definition: SkyrimVM.h:145
std::uint32_t timeToSendEvent
Definition: SkyrimVM.h:156
UpdateType
Definition: SkyrimVM.h:148
VMHandle handle
Definition: SkyrimVM.h:158
std::uint32_t updateTime
Definition: SkyrimVM.h:157
UpdateType updateType
Definition: SkyrimVM.h:154
std::uint16_t pad06
Definition: SkyrimVM.h:155
Definition: SkyrimVM.h:163
VMStackID stackID
Definition: SkyrimVM.h:167
BSScript::IVirtualMachine * vm
Definition: SkyrimVM.h:168
std::uint32_t timeToSendEvent
Definition: SkyrimVM.h:166