summaryrefslogtreecommitdiff
path: root/include/d/flag/skipflag_manager.h
blob: 99f24259d23861b296138fccf1a4f4d2d36f558d (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
#ifndef D_FLAG_SKIPFLAG_MANAGER_H
#define D_FLAG_SKIPFLAG_MANAGER_H

#include "d/flag/bitwise_flag_helper.h"
#include "d/flag/flag_space.h"

class SkipflagManager {
public:
    SkipflagManager();
    void init();

    void setCommitFlag(u16 flag);
    void copyFromSave();
    void setFlag(u16 flag);
    bool checkFlag(u16 flag);
    bool commit();
    static SkipflagManager *sInstance;

private:
    void doCopyFromSave();

    static u16 sSkipFlags[16];

    bool mShouldCommit;
    BitwiseFlagHelper mFlagHelper;
    FlagSpace mFlagSpace;
};

#endif