11#include <detail/preprocessor.hpp>
32#define CS_TASK_GROUP_ID(INDEX) \
33 (INDEX ^ LIBER_BIT_FLAG(28) ^ LIBER_BIT_FLAG(31))
41using cstgi =
unsigned int;
62 return this->delta_time.
time;
71 return static_cast<CS::CSTaskGroup
>(
116 void* liber_unknown =
nullptr;
124class FD4StepTemplateInterface;
130 FD4_RUNTIME_CLASS(FD4StepTemplateInterface);
133 virtual bool is_step_init() = 0;
134 virtual int get_step_index() = 0;
137 virtual bool liber_unknown() = 0;
138 virtual bool liber_unknown() = 0;
139 virtual bool liber_unknown() = 0;
140 virtual bool liber_unknown() = 0;
141 virtual bool liber_unknown() = 0;
142 virtual bool liber_unknown() = 0;
143 virtual bool liber_unknown() = 0;
144 virtual bool liber_unknown() = 0;
145 virtual bool liber_unknown() = 0;
146 virtual bool liber_unknown() = 0;
153 virtual ~_unk_tree() =
default;
162class FD4StepTemplateBase :
public FD4StepTemplateInterface<FD4TaskBase> {
164 FD4_RUNTIME_CLASS(FD4StepTemplateBase);
167 virtual bool unk_tree_op11() = 0;
168 virtual bool unk_tree_op12() = 0;
169 virtual bool unk_tree_op13() = 0;
171 using steps_type = std::pair<void (*)(Impl*),
const char*>;
175 void* liber_unknown =
nullptr;
176 bool liber_unknown =
false;
178 void* liber_unknown =
nullptr;
179 bool liber_unknown =
false;
180 bool liber_unknown =
false;
182 bool liber_unknown =
true;
183 const wchar_t* state = L
"NotExecuting";
184 bool liber_unknown =
false;
185 int liber_unknown = 0;
189struct task_entry_group {
190 LIBER_CLASS(task_entry_group);
193 virtual ~task_entry() =
default;
206 virtual ~task_entry_group() =
default;
212 DLKR::DLPlainAdaptiveMutex mutex;
213 void* debug_menu_item;
251LIBER_ASSERTS_TEMPLATE_BEGIN(FD4StepTemplateBase,
void);
252LIBER_ASSERT_SIZE(0xB0);
253LIBER_ASSERT_OFFS(0x10, steps);
254LIBER_ASSERT_OFFS(0x18, _tree);
255LIBER_ASSERT_OFFS(0x70, unk_wstr);
256LIBER_ASSERT_OFFS(0xA0, state);
259LIBER_ASSERTS_BEGIN(task_entry_group);
260LIBER_ASSERT_SIZE(0xD0);
261LIBER_ASSERT_OFFS(0x08, entries);
262LIBER_ASSERT_OFFS(0x28, states);
263LIBER_ASSERT_OFFS(0x48, queue);
264LIBER_ASSERT_OFFS(0x80, group_id);
268LIBER_ASSERT_SIZE(0x58);
269LIBER_ASSERT_OFFS(0x40, cs_task);
The main namespace CS task interface.
Definition task.hpp:242
A wrapper around a Windows Critical Section.
Definition kernel_runtime.hpp:34
The base task interface.
Definition fd4_task.hpp:102
virtual void execute(FD4TaskData *data)=0
Virtual method that is called when the task is executed.
Singleton responsible for managing all tasks.
Definition fd4_task.hpp:224
The main libER stand-in for ER allocator proxies.
Definition from_allocator.hpp:308
FD4ComponentBase implementation.
#define CS_TASK_GROUP_ID(INDEX)
Convert a task group id into a task group index, or back.
Definition fd4_task.hpp:32
ELDEN RING allocation interface and from::allocator.
from::deque based on std::deque
std::deque< T, from::allocator< T > > deque
std::deque with from::allocator.
Definition from_deque.hpp:23
from::map based on std::map
std::map< K, V, Pred, from::allocator< std::pair< const K, V > > > map
std::map with from::allocator.
Definition from_map.hpp:24
from::set based on std::set
std::set< T, Pred, from::allocator< T > > set
std::set with from::allocator.
Definition from_set.hpp:23
from::basic_string based on std::basic_string
from::basic_string< wchar_t, std::char_traits< wchar_t > > wstring
std::wstring with from::allocator.
Definition from_string.hpp:41
from::vector based on std::vector
std::vector< T, from::allocator< T > > vector
std::vector with from::allocator.
Definition from_vector.hpp:23
Dantelion2 kernel object management and synchronization.
FD4_SINGLETON_CLASS implementation.
Reflection implementation for a given class.
Definition component.hpp:32
The data passed to tasks on execution.
Definition fd4_task.hpp:55
int get_seed() const noexcept
Get the seed.
Definition fd4_task.hpp:84
CS::CSTaskGroup get_task_group() const noexcept
Get the task group.
Definition fd4_task.hpp:70
float get_dt() const noexcept
Get the delta time.
Definition fd4_task.hpp:61
A basic floating point time class.
Definition time.hpp:20
float time
The time.
Definition time.hpp:27
unsigned int cstgi
Typedef of a special unsigned integer type that may represent a task id.
Definition task.hpp:31
All CS::CSTask taskgroups in order.