diff --git a/CMakeLists.txt b/CMakeLists.txt index 0482238c..de55a9c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,7 @@ add_library(sead OBJECT include/framework/seadMethodTreeMgr.h include/framework/seadProcessMeter.h include/framework/seadProcessMeterBar.h + include/framework/seadTask.h include/framework/seadTaskBase.h include/framework/seadTaskID.h include/framework/seadTaskMgr.h diff --git a/include/framework/seadTask.h b/include/framework/seadTask.h new file mode 100644 index 00000000..41f04459 --- /dev/null +++ b/include/framework/seadTask.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include +#include + +namespace sead +{ +class Task : public TaskBase +{ + SEAD_RTTI_BASE(TaskBase); + +public: + explicit Task(const TaskConstructArg& arg); + Task(const TaskConstructArg& arg, const char* name); + ~Task() override; + void pauseCalc(bool b) override; + void pauseDraw(bool b) override; + void pauseCalcRec(bool b) override; + void pauseDrawRec(bool b) override; + void pauseCalcChild(bool b) override; + void pauseDrawChild(bool b) override; + void attachCalcImpl() override; + void attachDrawImpl() override; + void detachCalcImpl() override; + void detachDrawImpl() override; + const RuntimeTypeInfo::Interface* getCorrespondingMethodTreeMgrTypeInfo() const override; + MethodTreeNode* getMethodTreeNode(s32 method_type) override; + virtual void calc() {} + virtual void draw() {} + +protected: + MethodTreeNode mCalcNode{nullptr}; + MethodTreeNode mDrawNode{nullptr}; +}; +} // namespace sead