1#ifndef SEAD_TASKBASE_H_
2#define SEAD_TASKBASE_H_
4#include <container/seadTList.h>
5#include <container/seadTreeNode.h>
6#include <framework/seadHeapPolicies.h>
7#include <framework/seadTaskID.h>
8#include <heap/seadDisposer.h>
9#include <prim/seadBitFlag.h>
10#include <prim/seadDelegateEventSlot.h>
11#include <prim/seadNamable.h>
12#include <prim/seadRuntimeTypeInfo.h>
72 static_assert(
sizeof(
CreateArg) == 0x80,
"sead::TaskBase::CreateArg size mismatch");
135 template <
typename T>
146 if (parent() !=
nullptr)
147 return parent()->val();
154 return mHeapArray.getPrimaryHeap();
180static_assert(
sizeof(
TaskBase) == 0x74,
"sead::TaskBase size mismatch");
Definition seadFramework.h:24
Definition seadHeapPolicies.h:10
Definition seadHeapPolicies.h:75
Definition seadDisposer.h:12
Definition seadNamable.h:9
Definition seadMethodTreeMgr.h:13
Definition seadMethodTree.h:17
Definition seadTList.h:13
Definition seadTList.h:49
Definition seadTaskBase.h:26
MethodTreeMgr * getMethodTreeMgr() const
Heap * getHeap()
Definition seadTaskBase.h:152
T * getParameter() const
Definition seadTaskBase.h:136
BitFlag32 mInternalFlag
Definition seadTaskBase.h:169
Tag getTag() const
Definition seadTaskBase.h:162
TaskMgr * mTaskMgr
Definition seadTaskBase.h:172
virtual void onDestroy()
Definition seadTaskBase.h:109
TaskMgr * getTaskMgr() const
Definition seadTaskBase.h:157
HeapArray mHeapArray
Definition seadTaskBase.h:171
virtual void enterCommon()
TaskBase(const TaskConstructArg &arg)
virtual void pauseDraw(bool b)=0
State
Definition seadTaskBase.h:35
@ cDestroyable
Definition seadTaskBase.h:42
@ cDying
Definition seadTaskBase.h:41
@ cPrepareDone
Definition seadTaskBase.h:38
@ cPrepare
Definition seadTaskBase.h:37
@ cRunning
Definition seadTaskBase.h:40
@ cCreated
Definition seadTaskBase.h:36
@ cSleep
Definition seadTaskBase.h:39
@ cDead
Definition seadTaskBase.h:43
virtual void onEvent(const TaskEvent &)
TaskParameter * mParameter
Definition seadTaskBase.h:168
void detachDraw()
Definition seadTaskBase.h:121
virtual void pauseCalcRec(bool b)=0
void detachCalcDraw()
Definition seadTaskBase.h:126
TaskBase(const TaskConstructArg &arg, const char *name)
virtual void attachDrawImpl()=0
virtual const RuntimeTypeInfo::Interface * getCorrespondingMethodTreeMgrTypeInfo() const =0
Tag mTag
Definition seadTaskBase.h:174
virtual void pauseCalcChild(bool b)
Definition seadTaskBase.h:87
virtual void pauseDrawChild(bool b)
Definition seadTaskBase.h:91
virtual void attachCalcImpl()=0
virtual void detachCalcImpl()=0
virtual void detachDrawImpl()=0
ListNode mTaskListNode
Definition seadTaskBase.h:170
TaskClassID mClassID
Definition seadTaskBase.h:175
virtual void pauseDrawRec(bool b)=0
virtual MethodTreeNode * getMethodTreeNode(s32 method_type)=0
TListNode< TaskBase * > ListNode
Definition seadTaskBase.h:30
State mState
Definition seadTaskBase.h:173
void detachCalc()
Definition seadTaskBase.h:116
Tag
Definition seadTaskBase.h:47
@ cSystem
Definition seadTaskBase.h:48
@ cApp
Definition seadTaskBase.h:49
TaskBase * getParentTask() const
Definition seadTaskBase.h:144
virtual void pauseCalc(bool b)=0
Framework * getFramework() const
TList< TaskBase * > List
Definition seadTaskBase.h:31
Definition seadTaskID.h:40
Definition seadTaskMgr.h:19
Definition seadTaskParameter.h:9
Definition seadTaskID.h:83
Definition seadRuntimeTypeInfo.h:6
Definition seadAssert.h:44
BitFlag< u32 > BitFlag32
Definition seadBitFlag.h:125
#define SEAD_RTTI_BASE(CLASS)
Definition seadRuntimeTypeInfo.h:75
Definition seadRuntimeTypeInfo.h:9
Definition seadTaskBase.h:53
TaskBase * src_task
Definition seadTaskBase.h:64
void(* SingletonFunc)(TaskBase *)
Definition seadTaskBase.h:54
SingletonFunc instance_cb
Definition seadTaskBase.h:69
FaderTaskBase * fader
Definition seadTaskBase.h:63
Tag tag
Definition seadTaskBase.h:68
TaskBase ** created_task
Definition seadTaskBase.h:65
DelegateEvent< TaskBase * >::Slot * create_callback
Definition seadTaskBase.h:66
TaskBase * parent
Definition seadTaskBase.h:61
TaskClassID factory
Definition seadTaskBase.h:59
CreateArg(const TaskClassID &class_id)
TaskParameter * parameter
Definition seadTaskBase.h:62
HeapPolicies heap_policies
Definition seadTaskBase.h:60
TaskUserID user_id
Definition seadTaskBase.h:67
Definition seadTaskID.h:14