1#pragma once
2
3#include <controller/seadControllerWrapper.h>
4
5namespace al {
6class IUsePadDataReader;
7class IUsePadDataWriter;
8
9class ReplayController : public sead::ControllerWrapper {
10 SEAD_RTTI_OVERRIDE(ReplayController, sead::ControllerWrapper);
11
12public:
13 ReplayController(sead::Controller* controller);
14 ~ReplayController() override;
15 void unregist();
16 void startReplay();
17 void pauseReplay();
18 void endReplay();
19 bool isReplaying() const;
20 bool isRecording() const;
21 s32 getReplayRemainFrame() const;
22 void calc(u32 prevHold, bool prevPointerOn) override;
23 void startRecord();
24 void endRecord();
25
26 void setPadDataReader(IUsePadDataReader* reader) { mPadDataReader = reader; }
27
28 void setPadDataWriter(IUsePadDataWriter* writer) { mPadDataWriter = writer; }
29
30private:
31 IUsePadDataReader* mPadDataReader = nullptr;
32 bool mIsReplaying = false;
33 IUsePadDataWriter* mPadDataWriter = nullptr;
34 bool mIsRecording = false;
35 bool mIsValidPadReplay = true;
36 bool mIsReadPadReplayData = false;
37};
38} // namespace al
39