CommonLibSSE NG
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 
22  enum class ResumeReason
23  {
24  kNotResuming = 0,
26  kInitialStart = 2,
27  kFunctionReturn = 3,
29  kFunctionCall = 5
30  };
31 
32  enum class OpCode
33  {
34  kNOP,
35  kIADD,
36  kFADD,
37  kISUB,
38  kFSUB,
39  kIMUL,
40  kFMUL,
41  kIDIV,
42  kFDIV,
43  kIMOD,
44  kNOT,
45  kINEG,
46  kFNEG,
47  kASSIGN,
48  kCAST,
49  kCMP_EQ,
50  kCMP_LT,
51  kCMP_LTE,
52  kCMP_GT,
53  kCMP_GTE,
54  kJMP,
55  kJMPT,
56  kJMPF,
60  kRETURN,
61  kSTRCAT,
62  kPROPGET,
63  kPROPSET,
70  };
71 
72  ~CodeTasklet() override; // 00
73 
74  // override (IFuncCallQuery)
75  bool GetFunctionCallInfo(CallType& a_callType, BSTSmartPointer<ObjectTypeInfo>& a_arg2, BSFixedString& a_arg3, Variable& a_arg4, BSScrapArray<Variable>& a_arg5) override; // 01
76 
77  // members
78  Stack* stack; // 10
82  std::uint32_t pad2C; // 2C
84  std::uint32_t frameMemoryPage; // 38
85  std::int8_t jumpBitCount; // 3C
86  std::int8_t localVarBitCount; // 3D
87  std::int8_t memberVarBitCount; // 3E
88  std::uint8_t pad3F; // 3F
89  std::uint32_t instructionDataBitCount; // 40
90  std::uint32_t pad44; // 44
91  const void* instructionDataStart; // 48
92  };
93  static_assert(sizeof(CodeTasklet) == 0x50);
94  }
95  }
96 }
Definition: ErrorLogger.h:13
Definition: CodeTasklet.h:18
static constexpr auto RTTI
Definition: CodeTasklet.h:20
StackFrame * topFrame
Definition: CodeTasklet.h:83
std::int8_t localVarBitCount
Definition: CodeTasklet.h:86
VirtualMachine * vm
Definition: CodeTasklet.h:79
std::uint32_t frameMemoryPage
Definition: CodeTasklet.h:84
OpCode
Definition: CodeTasklet.h:33
const void * instructionDataStart
Definition: CodeTasklet.h:91
std::int8_t memberVarBitCount
Definition: CodeTasklet.h:87
std::int8_t jumpBitCount
Definition: CodeTasklet.h:85
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:80
ResumeReason
Definition: CodeTasklet.h:23
std::uint32_t pad2C
Definition: CodeTasklet.h:82
Stack * stack
Definition: CodeTasklet.h:78
std::uint32_t instructionDataBitCount
Definition: CodeTasklet.h:89
stl::enumeration< ResumeReason, std::uint32_t > resumeReason
Definition: CodeTasklet.h:81
std::uint8_t pad3F
Definition: CodeTasklet.h:88
std::uint32_t pad44
Definition: CodeTasklet.h:90
Definition: IFuncCallQuery.h:18
CallType
Definition: IFuncCallQuery.h:23
Definition: VirtualMachine.h:46
Definition: StackFrame.h:15
Definition: Stack.h:25
Definition: Variable.h:15
Definition: BSTArray.h:377
Definition: BSTSmartPointer.h:36
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSScript__Internal__CodeTasklet(691859, 399903, 0x1f7d368)