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;
115 void* liber_unknown =
nullptr;
123class FD4StepTemplateInterface;
129 FD4_RUNTIME_CLASS(FD4StepTemplateInterface);
132 virtual void execute_second(
FD4TaskData*) LIBER_INTERFACE;
133 virtual bool test_int_0x48() LIBER_INTERFACE;
134 virtual
int get_int_0x48() LIBER_INTERFACE;
135 virtual
bool unk_tree_op1() LIBER_INTERFACE;
136 virtual
bool unk_tree_op2() LIBER_INTERFACE;
137 virtual
bool unk_tree_op3() LIBER_INTERFACE;
138 virtual
bool unk_tree_op4() LIBER_INTERFACE;
139 virtual
bool unk_tree_op5() LIBER_INTERFACE;
140 virtual
bool unk_tree_op6() LIBER_INTERFACE;
141 virtual
bool unk_tree_op7() LIBER_INTERFACE;
142 virtual
bool unk_tree_op8() LIBER_INTERFACE;
143 virtual
bool unk_tree_op9() LIBER_INTERFACE;
144 virtual
bool unk_tree_op10() LIBER_INTERFACE;
151 virtual ~_unk_tree() =
default;
160class FD4StepTemplateBase :
public FD4StepTemplateInterface<FD4TaskBase> {
162 FD4_RUNTIME_CLASS(FD4StepTemplateBase);
165 virtual bool unk_tree_op11() LIBER_INTERFACE;
166 virtual
bool unk_tree_op12() LIBER_INTERFACE;
167 virtual
bool unk_tree_op13() LIBER_INTERFACE;
169 using steps_type = std::pair<
void (*)(Impl*), const
char*>;
173 void* liber_unknown =
nullptr;
174 bool liber_unknown = false;
176 void* liber_unknown =
nullptr;
177 bool liber_unknown = false;
178 bool liber_unknown = false;
180 bool liber_unknown = true;
181 const
wchar_t* state = L"NotExecuting";
182 bool liber_unknown = false;
183 int liber_unknown = 0;
187struct task_entry_group {
188 LIBER_CLASS(task_entry_group);
191 virtual ~task_entry() =
default;
204 virtual ~task_entry_group() =
default;
210 DLKR::DLPlainAdaptiveMutex mutex;
211 void* debug_menu_item;
249LIBER_ASSERTS_TEMPLATE_BEGIN(FD4StepTemplateBase,
void);
250LIBER_ASSERT_SIZE(0xB0);
251LIBER_ASSERT_OFFS(0x10, steps);
252LIBER_ASSERT_OFFS(0x18, _tree);
253LIBER_ASSERT_OFFS(0x70, unk_wstr);
254LIBER_ASSERT_OFFS(0xA0, state);
257LIBER_ASSERTS_BEGIN(task_entry_group);
258LIBER_ASSERT_SIZE(0xD0);
259LIBER_ASSERT_OFFS(0x08, entries);
260LIBER_ASSERT_OFFS(0x28, states);
261LIBER_ASSERT_OFFS(0x48, queue);
262LIBER_ASSERT_OFFS(0x80, group_id);
266LIBER_ASSERT_SIZE(0x58);
267LIBER_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:38
The base task interface.
Definition fd4_task.hpp:101
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:222
The main libER stand-in for ER allocator proxies.
Definition from_allocator.hpp:310
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, AllocatorTag > > 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 >, AllocatorTag > > map
std::map with from::allocator.
Definition from_map.hpp:25
from::set based on std::set
std::set< T, Pred, from::allocator< T, AllocatorTag > > set
std::set with from::allocator.
Definition from_set.hpp:24
from::basic_string based on std::basic_string
from::basic_string< wchar_t, std::char_traits< wchar_t >, from::default_allocator_tag > wstring
std::wstring with from::allocator.
Definition from_string.hpp:45
from::vector based on std::vector
std::vector< T, from::allocator< T, AllocatorTag > > 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:34
The data passed to tasks on execution.
Definition fd4_task.hpp:55
int get_seed() const noexcept
Get the seed.
Definition fd4_task.hpp:83
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.