CommonLibVR
CodeTasklet.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/I/IFuncCallQuery.h"
4 
5 namespace RE
6 {
7  namespace BSScript
8  {
9  class ErrorLogger;
10  class Stack;
11  class StackFrame;
12 
13  namespace Internal
14  {
15  class VirtualMachine;
16 
17  class CodeTasklet : public IFuncCallQuery
18  {
19  public:
20  inline static constexpr auto RTTI = RTTI_BSScript__Internal__CodeTasklet;
21  inline static constexpr auto VTABLE = VTABLE_BSScript__Internal__CodeTasklet;
22 
23  enum class ResumeReason
24  {
25  kNotResuming = 0,
27  kInitialStart = 2,
28  kFunctionReturn = 3,
30  kFunctionCall = 5
31  };
32 
33  enum class OpCode
34  {
35  kNOP,
36  kIADD,
37  kFADD,
38  kISUB,
39  kFSUB,
40  kIMUL,
41  kFMUL,
42  kIDIV,
43  kFDIV,
44  kIMOD,
45  kNOT,
46  kINEG,
47  kFNEG,
48  kASSIGN,
49  kCAST,
50  kCMP_EQ,
51  kCMP_LT,
52  kCMP_LTE,
53  kCMP_GT,
54  kCMP_GTE,
55  kJMP,
56  kJMPT,
57  kJMPF,
61  kRETURN,
62  kSTRCAT,
63  kPROPGET,
64  kPROPSET,
71  };
72 
73  ~CodeTasklet() override; // 00
74 
75  // override (IFuncCallQuery)
76  bool GetFunctionCallInfo(CallType& a_callType, BSTSmartPointer<ObjectTypeInfo>& a_arg2, BSFixedString& a_arg3, Variable& a_arg4, BSScrapArray<Variable>& a_arg5) override; // 01
77 
78  // members
79  Stack* stack; // 10
83  std::uint32_t pad2C; // 2C
85  std::uint32_t frameMemoryPage; // 38
86  std::int8_t jumpBitCount; // 3C
87  std::int8_t localVarBitCount; // 3D
88  std::int8_t memberVarBitCount; // 3E
89  std::uint8_t pad3F; // 3F
90  std::uint32_t instructionDataBitCount; // 40
91  std::uint32_t pad44; // 44
92  const void* instructionDataStart; // 48
93  };
94  static_assert(sizeof(CodeTasklet) == 0x50);
95  }
96  }
97 }
Definition: ErrorLogger.h:13
Definition: CodeTasklet.h:18
static constexpr auto RTTI
Definition: CodeTasklet.h:20
StackFrame * topFrame
Definition: CodeTasklet.h:84
std::int8_t localVarBitCount
Definition: CodeTasklet.h:87
VirtualMachine * vm
Definition: CodeTasklet.h:80
std::uint32_t frameMemoryPage
Definition: CodeTasklet.h:85
OpCode
Definition: CodeTasklet.h:34
const void * instructionDataStart
Definition: CodeTasklet.h:92
std::int8_t memberVarBitCount
Definition: CodeTasklet.h:88
std::int8_t jumpBitCount
Definition: CodeTasklet.h:86
bool GetFunctionCallInfo(CallType &a_callType, BSTSmartPointer< ObjectTypeInfo > &a_arg2, BSFixedString &a_arg3, Variable &a_arg4, BSScrapArray< Variable > &a_arg5) override
ErrorLogger * errorLogger
Definition: CodeTasklet.h:81
ResumeReason
Definition: CodeTasklet.h:24
std::uint32_t pad2C
Definition: CodeTasklet.h:83
Stack * stack
Definition: CodeTasklet.h:79
std::uint32_t instructionDataBitCount
Definition: CodeTasklet.h:90
stl::enumeration< ResumeReason, std::uint32_t > resumeReason
Definition: CodeTasklet.h:82
static constexpr auto VTABLE
Definition: CodeTasklet.h:21
std::uint8_t pad3F
Definition: CodeTasklet.h:89
std::uint32_t pad44
Definition: CodeTasklet.h:91
Definition: IFuncCallQuery.h:18
CallType
Definition: IFuncCallQuery.h:24
Definition: VirtualMachine.h:46
Definition: StackFrame.h:15
Definition: Stack.h:25
Definition: Variable.h:15
Definition: BSTArray.h:378
Definition: BSTSmartPointer.h:37
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSScript__Internal__CodeTasklet
Definition: Offsets_VTABLE.h:9467
constexpr REL::ID RTTI_BSScript__Internal__CodeTasklet(static_cast< std::uint64_t >(691859))