summaryrefslogtreecommitdiff
path: root/src/KingSystem/Event/evtActorBindings.h
blob: 81d13792d97252731d9e8a442af15f1fb07e55d7 (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
26
27
28
29
30
31
32
33
34
35
36
#pragma once

#include <container/seadPtrArray.h>

namespace evfl {
struct ResActor;
}

namespace sead {
class Heap;
}

namespace ksys::evt {

class ActorBinding;

class ActorBindings {
public:
    ActorBindings() = default;
    virtual ~ActorBindings();

    void allocBindings(sead::Heap* heap);
    void allocBindingsActions(sead::Heap* heap);
    void allocBindingsQueries(sead::Heap* heap);
    ActorBinding* bindActor(const evfl::ResActor* res_actor, sead::Heap* heap);

    int isInitialized() const { return mInitialized; }
    int getNumBindings() const { return mBindings.size(); }

private:
    sead::PtrArray<ActorBinding> mBindings;
    int mNumActorsToAlloc = 0;
    int mInitialized = 0;
};

}  // namespace ksys::evt