27        class ISavePatcherInterface;
 
   28        class IStackCallbackFunctor;
 
   29        class IStackCallbackSaveInterface;
 
   30        class ObjectBindPolicy;
 
   32        struct IMemoryPagePolicy;
 
   33        struct IObjectHandlePolicy;
 
   66                void                       Update(
float a_budget) 
override;                                                                                                                                                                 
 
   87                void                       SetCallableFromTasklets1(
const char* a_className, 
const char* a_stateName, 
const char* a_fnName, 
bool a_callable) 
override;                                                                      
 
Definition: ErrorLogger.h:13
 
Severity
Definition: ErrorLogger.h:18
 
Definition: IFreezeQuery.h:8
 
Definition: IFunctionArguments.h:12
 
Definition: IFunction.h:23
 
Definition: IProfilePolicy.h:18
 
Definition: ISavePatcherInterface.h:11
 
Definition: IStackCallbackSaveInterface.h:8
 
Definition: IVMDebugInterface.h:8
 
Definition: IVMSaveLoadInterface.h:8
 
Definition: IVirtualMachine.h:39
 
Definition: VirtualMachine.h:46
 
void SendEvent(VMHandle a_handle, const BSFixedString &a_eventName, IFunctionArguments *a_args) override
 
bool InitObjectProperties(BSTSmartPointer< Object > &a_objPtr, void *a_property, bool a_arg3) override
 
std::uint16_t pad827E
Definition: VirtualMachine.h:154
 
bool GetScriptObjectType2(VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) override
 
void RegisterForStatsEvent(BSTEventSink< StatsEvent > *a_sink) override
 
bool IsCompletelyFrozen() const override
 
std::uint64_t unk94F8
Definition: VirtualMachine.h:193
 
ISavePatcherInterface * GetSavePatcherInterface() override
 
void RemoveAllDiskLoadedBoundObjects(VMHandle a_handle) override
 
bool GetParentNativeType(const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_typeInfoPtr) override
 
void BindObject(BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional) override
 
std::uint64_t unk94E8
Definition: VirtualMachine.h:191
 
void TasksToJobs(BSJobs::JobList &a_jobList) override
 
~VirtualMachine() override
 
ISavePatcherInterface * savePatcherInterface
Definition: VirtualMachine.h:139
 
void Update(float a_budget) override
 
BSTCommonLLMessageQueue< FunctionMessage > funcMsgQueue
Definition: VirtualMachine.h:148
 
bool ReloadType(const char *a_className) override
 
BSSpinLock attachedScriptsLock
Definition: VirtualMachine.h:172
 
BSTArray< SuspendedStack > overflowSuspendArray2
Definition: VirtualMachine.h:158
 
void SetCallableFromTasklets1(const char *a_className, const char *a_stateName, const char *a_fnName, bool a_callable) override
 
std::uint64_t unk93D8
Definition: VirtualMachine.h:174
 
std::uint32_t pad9404
Definition: VirtualMachine.h:178
 
bool initialized
Definition: VirtualMachine.h:153
 
BSSpinLock typeInfoLock
Definition: VirtualMachine.h:140
 
ObjectBindPolicy * objectBindPolicy
Definition: VirtualMachine.h:135
 
std::uint64_t unk94C8
Definition: VirtualMachine.h:187
 
void UnregisterForStatsEvent(BSTEventSink< StatsEvent > *a_sink) override
 
std::uint64_t unk9398
Definition: VirtualMachine.h:171
 
void SetOverstressed(bool a_set) override
 
BSTArray< FunctionMessage > overflowFuncMsgs
Definition: VirtualMachine.h:149
 
bool GetScriptObjectTypeNoLoad1(const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_typeInfoPtr) const override
 
BSTArray< BSTSmartPointer< ObjectTypeInfo > > typesToUnload
Definition: VirtualMachine.h:145
 
std::uint64_t unk94F0
Definition: VirtualMachine.h:192
 
bool DispatchMethodCall1(BSTSmartPointer< Object > &a_obj, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
BSSpinLock frozenStacksLock
Definition: VirtualMachine.h:168
 
void CalculateFullReloadList(void) const override
 
BSSpinLock suspendQueueLock
Definition: VirtualMachine.h:159
 
BSTArray< QueuedUnbindRefs > queuedUnbinds
Definition: VirtualMachine.h:186
 
void UnregisterForLogEvent(BSTEventSink< LogEvent > *a_sink) override
 
bool overstressed
Definition: VirtualMachine.h:152
 
ObjectBindPolicy * GetObjectBindPolicy1() override
 
BSTHashMap< VMTypeID, BSFixedString > typeIDToObjectType
Definition: VirtualMachine.h:143
 
IFreezeQuery * freezeQuery
Definition: VirtualMachine.h:136
 
void ForEachBoundObject(VMHandle a_handle, IForEachScriptObjectFunctor *a_functor) override
 
bool CreateObject1(const BSFixedString &a_className, void *a_property, BSTSmartPointer< Object > &a_objPtr) override
 
VMStackID nextStackID
Definition: VirtualMachine.h:167
 
void RemoveAllBoundObjects(VMHandle a_handle) override
 
std::uint32_t unk938C
Definition: VirtualMachine.h:169
 
void TraceStack(const char *a_str, VMStackID a_stackID, Severity a_severity=Severity::kInfo) override
 
bool CreateArray2(TypeInfo::RawType a_typeID, const BSFixedString &a_className, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr) override
 
BSSpinLock runningStacksLock
Definition: VirtualMachine.h:164
 
bool GetScriptObjectType1(const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) override
 
IObjectHandlePolicy * handlePolicy
Definition: VirtualMachine.h:134
 
bool GetVariableValue1(const BSTSmartPointer< Object > &a_objPtr, std::uint32_t a_index, Variable &a_out) const override
 
BSTHashMap< UnkKey, UnkValue > unk9478
Definition: VirtualMachine.h:184
 
static VirtualMachine * GetSingleton()
 
BSTHashMap< BSFixedString, BSTSmartPointer< ObjectTypeInfo > > objectTypeMap
Definition: VirtualMachine.h:142
 
void SetLinkedCallback(ITypeLinkedCallback *a_callback) override
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > * stacksToSuspend
Definition: VirtualMachine.h:162
 
std::uint64_t unk94E0
Definition: VirtualMachine.h:190
 
BSTArray< SuspendedStack > * stacksToSuspendOverflow
Definition: VirtualMachine.h:163
 
IObjectHandlePolicy * GetObjectHandlePolicy1() override
 
void SendEventAll(const BSFixedString &a_eventName, IFunctionArguments *a_args) override
 
std::uint64_t unk9500
Definition: VirtualMachine.h:194
 
bool BindNativeMethod(IFunction *a_fn) override
 
IStackCallbackSaveInterface * stackCallbackSaveInterface
Definition: VirtualMachine.h:137
 
bool GetPropertyValue(BSTSmartPointer< Object > &a_obj, const char *a_propertyName, Variable &a_getVal) override
 
BSTHashMap< VMStackID, BSTSmartPointer< Stack > > waitingLatentReturns
Definition: VirtualMachine.h:166
 
BSTArray< SuspendedStack > overflowSuspendArray1
Definition: VirtualMachine.h:157
 
bool DispatchUnboundMethodCall(void) override
 
void HandleLoadedBinding(BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional) override
 
BSSpinLock funcQueueLock
Definition: VirtualMachine.h:146
 
std::uint64_t unk9390
Definition: VirtualMachine.h:170
 
ErrorLogger * errorLogger
Definition: VirtualMachine.h:132
 
BSSpinLock objectResetLock
Definition: VirtualMachine.h:180
 
void HandleCObjectDeletion(VMHandle a_handle) override
 
bool FindBoundObject(VMHandle a_handle, const char *a_className, BSTSmartPointer< Object > &a_result) const override
 
bool TypeIsValid(const BSFixedString &a_className) override
 
std::uint64_t unk94D0
Definition: VirtualMachine.h:188
 
bool DispatchMethodCall2(VMHandle a_handle, const BSFixedString &a_className, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
bool CreateArray1(const TypeInfo &a_typeInfo, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr) override
 
BSTArray< void * > unk93E0
Definition: VirtualMachine.h:175
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > * stacksToResume
Definition: VirtualMachine.h:160
 
BSSpinLock queuedUnbindLock
Definition: VirtualMachine.h:185
 
void Unk_03(void) override
 
void MoveBoundObjects(VMHandle a_from, VMHandle a_to) override
 
void UpdateTasklets(float a_budget) override
 
void SetCallableFromTasklets2(const char *a_className, const char *a_fnName, bool a_callable) override
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > suspendQueue1
Definition: VirtualMachine.h:155
 
const ObjectBindPolicy * GetObjectBindPolicy2() const override
 
bool RegisterObjectType(VMTypeID a_typeID, const char *a_className) override
 
BSTHashMap< VMStackID, BSTSmartPointer< Stack > > allRunningStacks
Definition: VirtualMachine.h:165
 
LinkerProcessor linker
Definition: VirtualMachine.h:141
 
BSTArray< BSTSmartPointer< Array > > arrays
Definition: VirtualMachine.h:179
 
bool DispatchStaticCall(const BSFixedString &a_className, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
bool TypeCanBeBound(const BSFixedString &a_className, VMHandle a_handle) override
 
BSTArray< BSTSmartPointer< Object > > objectsAwaitingReset
Definition: VirtualMachine.h:181
 
void RegisterForLogEvent(BSTEventSink< LogEvent > *a_sink) override
 
VMHandle GetBoundHandle(const BSTSmartPointer< Object > &a_objPtr) const override
 
IProfilePolicy * profilePolicy
Definition: VirtualMachine.h:138
 
bool SetPropertyValue(BSTSmartPointer< Object > &a_obj, const char *a_propertyName, Variable &a_setVal) override
 
bool IsWaitingOnLatent(VMStackID a_stackID) const override
 
bool CreateObject2(const BSFixedString &a_className, BSTSmartPointer< Object > &a_result) override
 
std::uint32_t nextArrayToClean
Definition: VirtualMachine.h:177
 
bool GetScriptObjectTypeNoLoad2(VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) const override
 
BSTArray< CodeTasklet * > vmTasks
Definition: VirtualMachine.h:150
 
std::uint64_t unk9508
Definition: VirtualMachine.h:195
 
IMemoryPagePolicy * memoryPagePolicy
Definition: VirtualMachine.h:133
 
void ResetAllBoundObjects(VMHandle a_handle) override
 
BSTHashMap< UnkKey, UnkValue > unk9448
Definition: VirtualMachine.h:183
 
BSTHashMap< BSFixedString, VMTypeID > objectTypeToTypeID
Definition: VirtualMachine.h:144
 
void GetScriptObjectsWithATypeID(BSScrapArray< BSFixedString > &a_results) const override
 
const IObjectHandlePolicy * GetObjectHandlePolicy2() const override
 
BSTArray< SuspendedStack > * stacksToResumeOverflow
Definition: VirtualMachine.h:161
 
ErrorLogger * GetErrorLogger() override
 
bool CastObject(const BSTSmartPointer< Object > &a_fromObjPtr, const BSTSmartPointer< ObjectTypeInfo > &a_toTypeInfoPtr, BSTSmartPointer< Object > &a_toObjPtr) override
 
std::uint32_t uiWaitingFunctionMessages
Definition: VirtualMachine.h:151
 
BSSpinLock arraysLock
Definition: VirtualMachine.h:176
 
bool GetTypeIDForScriptObject(const BSFixedString &a_className, VMTypeID &a_typeID) const override
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > suspendQueue2
Definition: VirtualMachine.h:156
 
void UnbindObject(const BSTSmartPointer< Object > &a_objPtr) override
 
std::uint64_t unk94D8
Definition: VirtualMachine.h:189
 
static constexpr auto RTTI
Definition: VirtualMachine.h:48
 
bool CreateObjectWithProperties(const BSFixedString &a_className, std::uint32_t a_numProperties, BSTSmartPointer< Object > &a_objPtr) override
 
BSTHashMap< VMHandle, BSTSmallSharedArray< AttachedScript > > attachedScripts
Definition: VirtualMachine.h:173
 
std::uint64_t unk9518
Definition: VirtualMachine.h:196
 
void ReturnFromLatent(VMStackID a_stackID, const Variable &a_val) override
 
bool GetVariableValue2(VMHandle a_handle, const BSFixedString &a_className, std::int32_t a_variableIndex, Variable &a_out) const override
 
std::uint64_t unk9440
Definition: VirtualMachine.h:182
 
BSTStaticFreeList< FunctionMessage, 1024 > funcMsgPool
Definition: VirtualMachine.h:147
 
Definition: LinkerProcessor.h:18
 
Definition: BSScriptObjectBindPolicy.h:16
 
Definition: TypeInfo.h:10
 
RawType
Definition: TypeInfo.h:13
 
Definition: Variable.h:15
 
Definition: BSAtomic.h:49
 
Definition: BSTArray.h:377
 
Definition: BSTMessageQueue.h:63
 
Definition: BSTMessageQueue.h:81
 
Definition: BSTEvent.h:146
 
Definition: BSTEvent.h:28
 
Definition: BSTHashMap.h:21
 
Definition: BSTSmartPointer.h:37
 
Definition: BSTFreeList.h:28
 
Definition: AbsorbEffect.h:6
 
std::uint32_t VMTypeID
Definition: BSCoreTypes.h:9
 
std::uint32_t VMStackID
Definition: BSCoreTypes.h:8
 
std::uint64_t VMHandle
Definition: BSCoreTypes.h:7
 
constexpr REL::ID RTTI_BSScript__Internal__VirtualMachine
Definition: Offsets_RTTI.h:2200
 
Definition: IMemoryPagePolicy.h:8
 
Definition: IObjectHandlePolicy.h:13
 
Definition: IVMObjectBindInterface.h:13
 
Definition: VirtualMachine.h:51
 
BSTSmartPointer< Object > obj
Definition: VirtualMachine.h:54
 
std::uint32_t pad0C
Definition: VirtualMachine.h:56
 
std::uint32_t refCount
Definition: VirtualMachine.h:55