NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_info.hpp
1#pragma once
2#include <types.h>
3#include <game/bases/d_cyuukan.hpp>
4#include <game/mLib/m_vec.hpp>
6
7class dInfo_c {
8public:
9 /// @unofficial
11 GAME_MODE_NORMAL,
12 GAME_MODE_SUPER_GUIDE,
13 GAME_MODE_TITLE,
14 GAME_MODE_TITLE_REPLAY,
15 GAME_MODE_HINT_MOVIE
16 };
17
19 u32 mReplayDuration;
20 u8 mMovieType;
21 u8 mEntrance;
22 u8 mArea;
23 bool mIsReplay;
24 GameMode_e mGameMode;
25 u8 mWorld1;
26 u8 mLevel1;
27 u8 mWorld2;
28 u8 mLevel2;
29 };
30
31 /// @unofficial
32 /// @todo Fill out this enum.
34 GAME_FLAG_DISABLE_ACTOR_CREATE = BIT_FLAG(0), ///< Disables map actor creation.
35 GAME_FLAG_MULTIPLAYER_MODE = BIT_FLAG(4), ///< Whether the game is in a multiplayer mode.
36 GAME_FLAG_IS_FREE_MODE = BIT_FLAG(5), ///< Whether the game is in Free Mode.
37 GAME_FLAG_IS_COIN_BATTLE = BIT_FLAG(6), ///< Whether the game is in Coin Battle mode.
38 GAME_FLAG_AUTO_SKIP = BIT_FLAG(19), ///< Whether to automatically skip the Wii strap and controller information screens.
39 };
40
41 struct enemy_s {
42 int mSubworld;
43 int mPathIndex;
44 PATH_DIRECTION_e mWalkDirection;
45 bool m_0c;
46 };
47
48 dInfo_c();
49
50 void GetMapEnemyInfo(int, int, enemy_s &);
51 void SetMapEnemyInfo(int, int, int, int);
52 void FUN_800bbc40(int, int, int);
53
54 void startGame(const dInfo_c::StartGameInfo_s &);
55
56 u8 getCourse() const { return m_startGameInfo.mLevel1; }
57 u8 getWorld() const { return m_startGameInfo.mWorld1; }
58 dCyuukan_c *getCyuukan() { return &mCyuukan; }
59
60 static dInfo_c *getInstance() { return m_instance; }
61
62 char pad1[0x8];
63 dCyuukan_c mCyuukan;
64 int mCurrentCourseWorld;
65 int mCurrentCourseNo;
66 int mCurrentCourseNode;
67 char pad2[0xc];
68 int m_54;
69 u8 pad3[0x8];
70 int m_60;
71 u8 pad4[0x8];
72 bool m_6c;
73 u8 pad5[0x2c];
74 int m_9c;
75 u8 pad6[0x2e4];
76 int mCharIDs[4];
77 bool mIsWorldSelect; ///< Whether the World Select Menu is being displayed.
78 u8 pad7[0x1e];
79 bool mClearCyuukan; ///< Clear the checkpoint data if this is @p true. [Used for the backdoor entrance of 7-C]
80 int mDisplayCourseWorld;
81 int mDisplayCourseNum;
82 u8 pad8[0x14];
83 int mTextBoxMessageGroup;
84 int mTextBoxMessageID;
85 u8 pad9[0x1];
86 bool mExtensionAttached;
87 u8 m_3da;
88 u8 pad10[0x7];
89 int mCourseSelectPageNum;
90 int mCourseSelectIndexInPage;
91 u8 pad11[0x712];
92 bool mFukidashiActionPerformed[4][0x16];
93 u32 pad12;
94
95 static dInfo_c *m_instance;
96 static unsigned int mGameFlag; ///< See GAME_FLAG_e
97 static StartGameInfo_s m_startGameInfo;
98};
bool mClearCyuukan
Clear the checkpoint data if this is true. [Used for the backdoor entrance of 7-C].
Definition d_info.hpp:79
static unsigned int mGameFlag
See GAME_FLAG_e.
Definition d_info.hpp:96
GAME_FLAG_e
Definition d_info.hpp:33
@ GAME_FLAG_MULTIPLAYER_MODE
Whether the game is in a multiplayer mode.
Definition d_info.hpp:35
@ GAME_FLAG_IS_COIN_BATTLE
Whether the game is in Coin Battle mode.
Definition d_info.hpp:37
@ GAME_FLAG_AUTO_SKIP
Whether to automatically skip the Wii strap and controller information screens.
Definition d_info.hpp:38
@ GAME_FLAG_IS_FREE_MODE
Whether the game is in Free Mode.
Definition d_info.hpp:36
@ GAME_FLAG_DISABLE_ACTOR_CREATE
Disables map actor creation.
Definition d_info.hpp:34
bool mIsWorldSelect
Whether the World Select Menu is being displayed.
Definition d_info.hpp:77