1#pragma once
2
3#include <framework/seadMethodTree.h>
4#include <framework/seadTaskBase.h>
5#include <prim/seadRuntimeTypeInfo.h>
6
7namespace sead
8{
9class Task : public TaskBase
10{
11 SEAD_RTTI_OVERRIDE(Task, TaskBase);
12
13public:
14 explicit Task(const TaskConstructArg& arg);
15 Task(const TaskConstructArg& arg, const char* name);
16 ~Task() override;
17 void pauseCalc(bool b) override;
18 void pauseDraw(bool b) override;
19 void pauseCalcRec(bool b) override;
20 void pauseDrawRec(bool b) override;
21 void pauseCalcChild(bool b) override;
22 void pauseDrawChild(bool b) override;
23 void attachCalcImpl() override;
24 void attachDrawImpl() override;
25 void detachCalcImpl() override;
26 void detachDrawImpl() override;
27 const RuntimeTypeInfo::Interface* getCorrespondingMethodTreeMgrTypeInfo() const override;
28 MethodTreeNode* getMethodTreeNode(s32 method_type) override;
29 virtual void calc() {}
30 virtual void draw() {}
31
32protected:
33 MethodTreeNode mCalcNode{nullptr};
34 MethodTreeNode mDrawNode{nullptr};
35};
36} // namespace sead
37