summaryrefslogtreecommitdiff
path: root/src/KingSystem/Event/evtManager.h
blob: 4c002fd925a2c41e8d38f37d2448b7e401a69b49 (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
#pragma once

#include <heap/seadDisposer.h>

namespace ksys::act {
class Actor;
}

namespace ksys::evt {

class Event;
class Metadata;

// TODO
class Manager {
    SEAD_SINGLETON_DISPOSER(Manager)
    Manager();
    virtual ~Manager();

public:
    void init(sead::Heap* heap);

    Event* getActiveEvent() const;
    bool hasActiveEvent() const;

    sead::Heap* getEventHeap() const { return mEventHeap; }

    bool callEvent(const Metadata& metadata, act::Actor* actor = nullptr, void* x = nullptr);

private:
    u8 pad_20[0x1d178 - 0x20];
    sead::Heap* mEventHeap;
};

}  // namespace ksys::evt