1 | #pragma once |
---|---|
2 | |
3 | #include <time/seadTickTime.h> |
4 | #include "KingSystem/Utils/Types.h" |
5 | |
6 | namespace ksys::util { |
7 | |
8 | class InitTimeInfo { |
9 | public: |
10 | InitTimeInfo() = default; |
11 | explicit InitTimeInfo(sead::TickTime start_time) : mInitStartTime(start_time) {} |
12 | |
13 | sead::TickTime getInitStartTime() const { return mInitStartTime; } |
14 | sead::TickSpan getInitDuration() const { return mInitDuration; } |
15 | |
16 | void finish() { mInitDuration = sead::TickTime().diff(mInitStartTime); } |
17 | |
18 | private: |
19 | sead::TickTime mInitStartTime; |
20 | sead::TickSpan mInitDuration; |
21 | }; |
22 | KSYS_CHECK_SIZE_NX150(InitTimeInfo, 0x10); |
23 | |
24 | struct InitConstants { |
25 | InitConstants() { |
26 | _0 = 0; |
27 | _4 = 0x8004EF; |
28 | } |
29 | |
30 | u32 _0; |
31 | u32 _4; |
32 | }; |
33 | |
34 | class InitTimeInfoEx { |
35 | public: |
36 | explicit InitTimeInfoEx(sead::TickTime start_time = {}) : mInfo(start_time) { |
37 | mConstants._0 = 0; |
38 | mConstants._4 = 0x8004EF; |
39 | } |
40 | |
41 | InitTimeInfo& getInfo() { return mInfo; } |
42 | const InitTimeInfo& getInfo() const { return mInfo; } |
43 | |
44 | private: |
45 | InitConstants mConstants; |
46 | InitTimeInfo mInfo; |
47 | }; |
48 | KSYS_CHECK_SIZE_NX150(InitTimeInfoEx, 0x18); |
49 | |
50 | } // namespace ksys::util |
51 |