11#include <detail/preprocessor.hpp>
148 return this->task_group;
207 struct cstg_control {
208 cstg_control(
cstgi id,
bool active) : id(
id), active(active) {}
244 LIBER_INTERFACE_CLASS(
CSTask);
246 virtual ~CSTask() LIBER_INTERFACE_ONLY;
254 return this->task_groups;
258 virtual void add_task_group(
const wchar_t* name) LIBER_INTERFACE_ONLY;
259 virtual bool unk_set_task_group(
cstgi) LIBER_INTERFACE_ONLY;
260 virtual bool set_task_group_state(
cstgi id,
261 bool state) LIBER_INTERFACE_ONLY;
262 virtual void debug_print() LIBER_INTERFACE_ONLY;
263 virtual
void queue_tasks(
void* unk1,
void* unk2) LIBER_INTERFACE_ONLY;
266 void* liber_unknown[8];
267 void* task_seeds_0x30[6];
268 void* task_seeds_0x60[6];
272LIBER_ASSERTS_BEGIN(
CSTask);
273LIBER_ASSERT_SIZE(0xE8);
An internal proxy object for CS::CSEzTask instances inside ELDEN RING's task management system.
Definition task.hpp:131
virtual CSTaskGroup get_task_group() const noexcept
Get the task group this proxy was registered at.
Definition task.hpp:147
LIBERAPI void execute(FD4::FD4TaskData *data) override
Executes the proxied task.
Inherit from this minimal task interface to create a custom task.
Definition task.hpp:51
LIBERAPI CSTaskGroup get_task_group() const noexcept
Get the task group this task is currently registered at.
void execute(FD4::FD4TaskData *data) final
FD4::FD4TaskBase execute method that calls eztask_execute.
Definition task.hpp:70
virtual LIBERAPI void free_task()
Free the task, suspending its execution after it has been registered.
virtual LIBERAPI void register_task(CSTaskGroup task_group)
Register a task to be called in a specified task group.
virtual void eztask_execute(FD4::FD4TaskData *data)=0
Virtual method that is called when a CS::CSEzTask is executed.
Base of CS::CSTask.
Definition task.hpp:206
cstgi task_group_count
The total count of all task groups.
Definition task.hpp:233
from::vector< cstg_control > task_groups
A vector of structures that describe every task group.
Definition task.hpp:227
The only way the CS::CSTask singleton can be accessed.
Definition task.hpp:178
liber::optref< CSTask > get() noexcept
Get the associated CSTask instance.
Definition task.hpp:192
The main namespace CS task interface.
Definition task.hpp:242
const auto & get_task_groups() const noexcept
Get every task group.
Definition task.hpp:253
A child task executed by tasks and steppers in ELDEN RING.
Definition task.hpp:160
The base task interface.
Definition fd4_task.hpp:101
The main libER stand-in for ER allocator proxies.
Definition from_allocator.hpp:310
FD4ComponentBase implementation.
Namespace FD4 task interface.
ELDEN RING allocation interface and from::allocator.
from::vector based on std::vector
std::vector< T, from::allocator< T, AllocatorTag > > vector
std::vector with from::allocator.
Definition from_vector.hpp:23
FD4_SINGLETON_CLASS implementation.
The data passed to tasks on execution.
Definition fd4_task.hpp:55
A std::optional<std::reference_wrapper<T>> wrapper for lvalue references.
Definition optref.hpp:31
unsigned int cstgi
Typedef of a special unsigned integer type that may represent a task id.
Definition task.hpp:31
CSTaskGroup
Enum of all tasks, in order of their execution.
Definition taskgroups.inl:13