summaryrefslogtreecommitdiff
path: root/src/KingSystem/System/Account.h
blob: f10a87741099776fe74ddfd102017ee063a0b123 (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
37
#pragma once

#include <heap/seadDisposer.h>
#include <prim/seadTypedBitFlag.h>
#include "KingSystem/Utils/Types.h"

namespace nn::account {
class Uid;
class UserHandle;
}  // namespace nn::account

namespace ksys {

class Account {
    SEAD_SINGLETON_DISPOSER(Account)
    Account() = default;
    virtual ~Account();

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

    nn::account::UserHandle* getUserHandle() const;
    void getUserId(nn::account::Uid* uid) const;

private:
    enum class Flag : u8 {
        HasUserHandle = 0x1,
        HasOpenedUserSuccessfully = 0x2,
    };

    [[maybe_unused]] void* _28 = nullptr;
    sead::TypedBitFlag<Flag> mFlags;
    nn::account::UserHandle* mUserHandle = nullptr;
};
KSYS_CHECK_SIZE_NX150(Account, 0x40);

}  // namespace ksys