New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
MainGame.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadSafeArray.h>
4#include <heap/seadDisposer.h>
5#include <prim/seadBitFlag.h>
6
7#include <graphics/Mii_IconFacelineObj.h>
8#include <graphics/Mii_IconRenderBuffer.h>
9#include <system/SaveMgr.h>
10
20static_assert(sizeof(CourseExitType) == 4, "CourseExitType size mismatch");
21
23{
27 cCourseBeatenType_TreasureChestFail // Maybe for when Nabbit steals the treasure chest for idling too long on the ambush??
28};
29static_assert(sizeof(CourseBeatenType) == 4, "CourseBeatenType size mismatch");
30
36static_assert(sizeof(CSSwitchState) == 1, "W6SwitchState size mismatch");
37
39{
40 // createInstance() Address: 0x029CDCAC
41 // deleteInstance() Address: Deleted
42 // sInstance Address: 0x101E7D7C
43 // SingletonDisposer_::~SingletonDisposer_() Address: 0x029CEBF0
44 // SingletonDisposer_::sStaticDisposer Address: 0x101E7D80
45 // SingletonDisposer_::vtbl Address: 0x1018A110
47
48public:
49 // Address: 0x029CD2E8
51
52 // Address: 0x029CEAD4
53 void initMiiIconRenderBuffer(sead::Heap* heap = nullptr);
54
55 bool isSinglePlayerDRC() const
56 {
57 return mIsSinglePlayerDRC;
58 }
59
60 bool isMultiplayer() const
61 {
62 return !mIsSinglePlayerDRC;
63 }
64
65 bool isNewGame() const
66 {
67 return mIsNewGame;
68 }
69
70 void setNewGame(bool new_game)
71 {
72 mIsNewGame = new_game;
73 }
74
75 bool isShadowkunQuest() const
76 {
77 return mIsShadowkunQuest;
78 }
79
81 {
82 return mCourseExitType;
83 }
84
86 {
87 mCourseExitType = type;
88 }
89
94
99
100 bool isOtehon() const
101 {
102 return mReplayFlag.isOnBit(0);
103 }
104
106 {
107 return mCSSwitchState;
108 }
109
111 {
112 return mAirshipLocation;
113 }
114
115 /**
116 * @return Bitfield of type @c SaveData::WorldCompletionFlag
117 */
119 {
120 return mWorldCompletionFlag;
121 }
122
123 /**
124 * @return Bitfield of type @c SaveData::ChibiYoshiAvailableFlag
125 */
127 {
128 return mChibiYoshiAvailableFlag;
129 }
130
132 {
133 return mLevelStat;
134 }
135
136 /**
137 * @return Bitfield of type @c SaveData::GameCompletionFlag
138 */
140 {
141 return mGameCompletionFlag;
142 }
143
144protected:
153 u32 _30[(0x78 - 0x30) / sizeof(u32)];
155 u32 _7c[(0x1C8 - 0x7C) / sizeof(u32)];
157 u32 _1cc[(0x208 - 0x1CC) / sizeof(u32)];
159 bool _20a;
163 u32 _210[(0x31C - 0x210) / sizeof(u32)];
165 u32 _3d8[(0x82C - 0x3D8) / sizeof(u32)];
170 u32 _830[(0x180E4 - 0x830) / sizeof(u32)];
172 u32 _18544[(0x18548 - 0x18544) / sizeof(u32)];
178 u32 _21dfc[(0x21E18 - 0x21DFC) / sizeof(u32)];
179};
180static_assert(sizeof(MainGame) == 0x21E18, "MainGame size mismatch");
CourseBeatenType
Definition MainGame.h:23
@ cCourseBeatenType_Secret
Definition MainGame.h:25
@ cCourseBeatenType_TreasureChestFail
Definition MainGame.h:27
@ cCourseBeatenType_TreasureChest
Definition MainGame.h:26
@ cCourseBeatenType_Normal
Definition MainGame.h:24
CSSwitchState
Definition MainGame.h:32
@ cCSSwitchState_Blue
Definition MainGame.h:34
@ cCSSwitchState_Red
Definition MainGame.h:33
CourseExitType
Definition MainGame.h:12
@ cCourseExitType_Dead
Definition MainGame.h:16
@ cCourseExitType_Beaten
Definition MainGame.h:15
@ cCourseExitType_OtehonReplay
Definition MainGame.h:17
@ cCourseExitType_InsideCourse
Definition MainGame.h:18
@ cCourseExitType_Exit
Definition MainGame.h:14
@ cCourseExitType_ChallengeRetry
Definition MainGame.h:13
Definition MainGame.h:39
u32 _18
Definition MainGame.h:147
Mii::IconFacelineObj _18548
Definition MainGame.h:173
bool isOtehon() const
Definition MainGame.h:100
bool mPlayAsMii
Definition MainGame.h:169
u8 _20b
Definition MainGame.h:160
u32 _28
Definition MainGame.h:151
SaveData::LevelStat & getLevelStat()
Definition MainGame.h:131
u32 _830[(0x180E4 - 0x830)/sizeof(u32)]
Definition MainGame.h:170
bool _20a
Definition MainGame.h:159
sead::BitFlag8 mChibiYoshiAvailableFlag
Definition MainGame.h:162
CSSwitchState mCSSwitchState
Definition MainGame.h:154
sead::BitFlag8 & getChibiYoshiAvailableFlag()
Definition MainGame.h:126
Mii::IconRenderBuffer _180e4
Definition MainGame.h:171
u32 _1cc[(0x208 - 0x1CC)/sizeof(u32)]
Definition MainGame.h:157
void initMiiIconRenderBuffer(sead::Heap *heap=nullptr)
void setCourseExitType(CourseExitType type)
Definition MainGame.h:85
bool mIsShadowkunQuest
Definition MainGame.h:177
sead::BitFlag8 mGameCompletionFlag
Definition MainGame.h:166
CourseExitType getCourseExitType() const
Definition MainGame.h:80
u32 _21dfc[(0x21E18 - 0x21DFC)/sizeof(u32)]
Definition MainGame.h:178
CourseBeatenType getCourseBeatenType() const
Definition MainGame.h:90
sead::SafeArray< Mii::IconRenderBuffer, 30 > _19a9c
Definition MainGame.h:175
sead::BitFlag16 mWorldCompletionFlag
Definition MainGame.h:158
bool mIsNewGame
Definition MainGame.h:148
bool isNewGame() const
Definition MainGame.h:65
bool isMultiplayer() const
Definition MainGame.h:60
SaveData::CSLocation mAirshipLocation
Definition MainGame.h:156
u32 _7c[(0x1C8 - 0x7C)/sizeof(u32)]
Definition MainGame.h:155
u32 _18544[(0x18548 - 0x18544)/sizeof(u32)]
Definition MainGame.h:172
sead::BitFlag32 mReplayFlag
Definition MainGame.h:152
u32 _3d8[(0x82C - 0x3D8)/sizeof(u32)]
Definition MainGame.h:165
bool isSinglePlayerDRC() const
Definition MainGame.h:55
void setCourseBeatenType(CourseBeatenType type)
Definition MainGame.h:95
u32 _10
Definition MainGame.h:145
u8 _20c
Definition MainGame.h:161
u32 _30[(0x78 - 0x30)/sizeof(u32)]
Definition MainGame.h:153
bool mPlayAsNabbitOrMii
Definition MainGame.h:168
SaveData::LevelStat mLevelStat
Definition MainGame.h:164
CSSwitchState getCSSwitchState() const
Definition MainGame.h:105
sead::BitFlag8 & getGameCompletionFlag()
Definition MainGame.h:139
CourseBeatenType mCourseBeatenType
Definition MainGame.h:150
sead::SafeArray< Mii::IconRenderBuffer, 4 > _1891c
Definition MainGame.h:174
SaveData::CSLocation & getAirshipLocation()
Definition MainGame.h:110
void setNewGame(bool new_game)
Definition MainGame.h:70
bool mIsSinglePlayerDRC
Definition MainGame.h:146
sead::BitFlag16 & getWorldCompletionFlag()
Definition MainGame.h:118
bool isShadowkunQuest() const
Definition MainGame.h:75
u32 _210[(0x31C - 0x210)/sizeof(u32)]
Definition MainGame.h:163
u8 _21ddc[30]
Definition MainGame.h:176
CourseExitType mCourseExitType
Definition MainGame.h:149
u8 _82d
Definition MainGame.h:167