CommonLibVR
ProcessLists.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSAtomic.h"
4 #include "RE/B/BSContainer.h"
5 #include "RE/B/BSPointerHandle.h"
6 #include "RE/B/BSTArray.h"
7 #include "RE/B/BSTList.h"
8 #include "RE/B/BSTSingleton.h"
9 #include "RE/B/BSTSmartPointer.h"
10 #include "RE/C/Crime.h"
11 #include "RE/N/NiSmartPointer.h"
12 
13 namespace RE
14 {
15  class Actor;
16  class BSTempEffect;
17  class ModelReferenceEffect;
18  class ShaderReferenceEffect;
19  class SyncQueueObj;
20 
21  class ProcessLists : public BSTSingletonSDM<ProcessLists>
22  {
23  public:
25  {
26  public:
27  inline static constexpr auto RTTI = RTTI_ProcessLists__GetActorsFilter;
28  inline static constexpr auto VTABLE = VTABLE_ProcessLists__GetActorsFilter;
29 
30  virtual ~GetActorsFilter(); // 00
31 
32  // add
33  virtual bool IsValid(Actor* a_actor) = 0; // 01
34  };
35  static_assert(sizeof(GetActorsFilter) == 0x8);
36 
38 
41  void ForAllActors(std::function<BSContainer::ForEachResult(Actor*)> a_callback);
42  void ForEachHighActor(std::function<BSContainer::ForEachResult(Actor*)> a_callback);
47  std::int16_t RequestHighestDetectionLevelAgainstActor(Actor* a_actor, std::uint32_t& a_LOSCount);
49  void StopCombatAndAlarmOnActor(Actor* a_actor, bool a_notAlarm);
50 
51  // members
52  bool runDetection; // 001
53  bool showDetectionStats; // 002
54  std::uint8_t pad003; // 003
56  bool processHigh; // 008
57  bool processLow; // 009
58  bool processMHigh; // 00A
59  bool processMLow; // 00B
60  bool runEditorSchedules; // 00C
61  bool showDialogueSubtitles; // 00D
62  std::uint8_t unk00E; // 00E
63  std::uint8_t pad00F; // 00F
64  std::int32_t numberHighActors; // 010
65  float unk014; // 014
66  std::uint32_t unk018; // 018
67  float removeExcessDeadTimer; // 01C
69  std::uint32_t unk028; // 028
70  std::uint32_t pad02C; // 02C
76  BSSimpleList<Crime*>* globalCrimes[PackageNS::CRIME_TYPES::kTotal]; // 0B0
78  mutable BSSpinLock globalEffectsLock; // 100
80  mutable BSSpinLock magicEffectsLock; // 120
83  std::uint64_t unk148; // 148
84  std::uint64_t unk150; // 150
93  std::uint32_t currentLowActor; // 1D8
94  std::uint32_t currentMiddleHighActor; // 1DC
95  std::uint32_t currentMiddleLowActor; // 1E0
96  bool runSchedules; // 1E4
97  bool runMovement; // 1E5
98  bool runAnimations; // 1E6
100  std::uint64_t unk1E8; // 1E8
101  private:
102  KEEP_FOR_RE()
103  };
104  static_assert(sizeof(ProcessLists) == 0x1F0);
105 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: Actor.h:133
Definition: BSAtomic.h:84
Definition: BSTList.h:10
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: BSTempEffect.h:29
Definition: ModelReferenceEffect.h:20
Definition: ProcessLists.h:25
static constexpr auto VTABLE
Definition: ProcessLists.h:28
virtual bool IsValid(Actor *a_actor)=0
static constexpr auto RTTI
Definition: ProcessLists.h:27
Definition: ProcessLists.h:22
float removeExcessDeadTimer
Definition: ProcessLists.h:67
void ForEachMagicTempEffect(std::function< BSContainer::ForEachResult(BSTempEffect *)> a_callback)
bool updateActorsInPlayerCell
Definition: ProcessLists.h:99
std::uint32_t unk028
Definition: ProcessLists.h:69
BSTArray< ObjectRefHandle > tempShouldMoves
Definition: ProcessLists.h:85
bool processMHigh
Definition: ProcessLists.h:58
BSTArray< ActorHandle > initPackageLocationsQueue
Definition: ProcessLists.h:87
bool runAnimations
Definition: ProcessLists.h:98
std::uint32_t unk018
Definition: ProcessLists.h:66
BSTArray< ActorHandle > * allProcesses[4]
Definition: ProcessLists.h:75
ActorHandle statdetect
Definition: ProcessLists.h:55
static ProcessLists * GetSingleton()
std::uint32_t pad02C
Definition: ProcessLists.h:70
BSTArray< NiPointer< BSTempEffect > > interfaceEffects
Definition: ProcessLists.h:81
std::uint64_t unk150
Definition: ProcessLists.h:84
std::uint64_t unk148
Definition: ProcessLists.h:83
std::int16_t RequestHighestDetectionLevelAgainstActor(Actor *a_actor, std::uint32_t &a_LOSCount)
std::int32_t numberHighActors
Definition: ProcessLists.h:64
BSSpinLock globalEffectsLock
Definition: ProcessLists.h:78
BSSpinLock magicEffectsLock
Definition: ProcessLists.h:80
std::uint64_t unk1E8
Definition: ProcessLists.h:100
std::uint8_t unk00E
Definition: ProcessLists.h:62
void StopAllMagicEffects(TESObjectREFR &a_ref)
bool showDetectionStats
Definition: ProcessLists.h:53
std::uint32_t currentMiddleLowActor
Definition: ProcessLists.h:95
std::uint32_t currentMiddleHighActor
Definition: ProcessLists.h:94
float GetSystemTimeClock()
float playerKnockObjectCommentTimer
Definition: ProcessLists.h:92
bool runDetection
Definition: ProcessLists.h:52
void ForAllActors(std::function< BSContainer::ForEachResult(Actor *)> a_callback)
bool runMovement
Definition: ProcessLists.h:97
BSTArray< BSTSmartPointer< SyncQueueObj > > syncPositionQueue
Definition: ProcessLists.h:90
BSSimpleList< ActorHandle > aliveActorList
Definition: ProcessLists.h:86
BSSpinLock interfaceEffectsLock
Definition: ProcessLists.h:82
float playerActionCommentTimer
Definition: ProcessLists.h:91
BSTArray< ActorHandle > lowActorHandles
Definition: ProcessLists.h:72
BSTArray< ActorHandle > initAnimPositionQueue
Definition: ProcessLists.h:89
void ClearCachedFactionFightReactions() const
bool processHigh
Definition: ProcessLists.h:56
BSTArray< NiPointer< BSTempEffect > > magicEffects
Definition: ProcessLists.h:79
BSSemaphore movementSyncSema
Definition: ProcessLists.h:68
float unk014
Definition: ProcessLists.h:65
bool runSchedules
Definition: ProcessLists.h:96
bool runEditorSchedules
Definition: ProcessLists.h:60
bool processMLow
Definition: ProcessLists.h:59
BSTArray< ActorHandle > middleHighActorHandles
Definition: ProcessLists.h:73
void ForEachHighActor(std::function< BSContainer::ForEachResult(Actor *)> a_callback)
BSTArray< ActorHandle > highActorHandles
Definition: ProcessLists.h:71
BSSimpleList< Crime * > * globalCrimes[PackageNS::CRIME_TYPES::kTotal]
Definition: ProcessLists.h:76
BSSpinLock packageLocationsQueueLock
Definition: ProcessLists.h:88
void ForEachModelEffect(std::function< BSContainer::ForEachResult(ModelReferenceEffect *)> a_callback)
std::uint8_t pad00F
Definition: ProcessLists.h:63
std::uint32_t currentLowActor
Definition: ProcessLists.h:93
bool showDialogueSubtitles
Definition: ProcessLists.h:61
bool AreHostileActorsNear(BSScrapArray< ActorHandle > *a_arrayOut)
void StopCombatAndAlarmOnActor(Actor *a_actor, bool a_notAlarm)
void ForEachShaderEffect(std::function< BSContainer::ForEachResult(ShaderReferenceEffect *)> a_callback)
BSTArray< ActorHandle > middleLowActorHandles
Definition: ProcessLists.h:74
std::uint8_t pad003
Definition: ProcessLists.h:54
bool processLow
Definition: ProcessLists.h:57
BSTArray< NiPointer< BSTempEffect > > globalTempEffects
Definition: ProcessLists.h:77
Definition: ShaderReferenceEffect.h:21
Definition: TESObjectREFR.h:113
ForEachResult
Definition: BSContainer.h:6
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_ProcessLists__GetActorsFilter
Definition: Offsets_VTABLE.h:12565
constexpr REL::ID RTTI_ProcessLists__GetActorsFilter(static_cast< std::uint64_t >(686514))
Definition: BSTSingleton.h:50