summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actBaseProcCreateTaskSelector.h
blob: 40e5da31a5d4b636209463410168195d74fc2c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

#include <heap/seadDisposer.h>
#include <prim/seadDelegate.h>
#include "KingSystem/Utils/Thread/TaskQueueBase.h"
#include "KingSystem/Utils/Types.h"

namespace ksys::act {

class BaseProcCreateTaskSelector {
    SEAD_SINGLETON_DISPOSER(BaseProcCreateTaskSelector)
    BaseProcCreateTaskSelector() = default;

public:
    auto& getDelegate() { return mDelegate; }

private:
    util::Task* selectTask(const util::TaskSelectionContext& context);

    util::TaskSelectionDelegateT<BaseProcCreateTaskSelector> mDelegate{
        this, &BaseProcCreateTaskSelector::selectTask};
};
KSYS_CHECK_SIZE_NX150(BaseProcCreateTaskSelector, 0x40);

}  // namespace ksys::act