NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_s_stage.hpp
1#pragma once
2#include <game/bases/d_scene.hpp>
3#include <game/bases/d_info.hpp>
4#include <game/bases/d_fader.hpp>
5#include <game/mLib/m_vec.hpp>
7
8class dScStage_c : public dScene_c {
9public:
10 enum Exit_e {
11 EXIT_0,
12 EXIT_1,
13 EXIT_2,
14 EXIT_3
15 };
16
17 /// @brief The possible stage loop types.
19 LOOP_NONE, ///< No stage looping occurs.
20 LOOP_EDGES, ///< The stage loops around on the zone edges. Only works for specific zone sizes.
21 LOOP_SECTION, ///< The stage loops in specific sections.
22 LOOP_COUNT,
23 };
24
25 static void play();
26
27 typedef void (*changePosFunc)(mVec3_c *);
28 static void setChangePosFunc(int);
29
30 static void setTitleReplayRandomTable();
31
32 static void setNextScene(u16, int, Exit_e, dFader_c::fader_type_e);
33
34 static void createReplayDataHeap(EGG::Heap *heap, ulong size, int options);
35
36 char pad[0x1198];
37 u8 mCurrWorld;
38 u8 mCurrCourse;
39 u8 mCurrFile;
40 u8 mCurrAreaNo;
41 u8 mCurrLayer;
42
43 u8 getCurrWorld() const { return mCurrWorld; }
44 u8 getCurrArea() const { return mCurrAreaNo; }
45
46 static dScStage_c *getInstance() { return m_instance; }
47 static NOINLINE Exit_e getExitMode() { return m_exitMode; }
48
49 static float getLoopPosX(float x);
50 static u32 m_exeFrame;
51 static int m_loopType;
52 static PLAYER_TYPE_e mCollectionCoin[STAR_COIN_COUNT];
53
54 static const char mCdArcName[];
55
56 static bool m_isCourseOut; ///< Whether the game is transitioning from a stage scene to a non-stage scene.
57 static bool m_KoopaJrEscape;
58 static dInfo_c::GameMode_e m_gameMode;
59 static Exit_e m_exitMode;
60
61 static int m_miniGame;
62 static bool m_isStaffCredit;
63 static changePosFunc changePos;
64 static dScStage_c *m_instance;
65
66 ACTOR_PARAM_CONFIG(File, 8, 4);
67 ACTOR_PARAM_CONFIG(NextGotoID, 0, 8);
68};
LOOP_TYPE_e
The possible stage loop types.
Definition d_s_stage.hpp:18
@ LOOP_NONE
No stage looping occurs.
Definition d_s_stage.hpp:19
@ LOOP_SECTION
The stage loops in specific sections.
Definition d_s_stage.hpp:21
@ LOOP_EDGES
The stage loops around on the zone edges. Only works for specific zone sizes.
Definition d_s_stage.hpp:20
static bool m_isCourseOut
Whether the game is transitioning from a stage scene to a non-stage scene.
Definition d_s_stage.hpp:56
dScene_c()
Creates a new scene.
Definition d_scene.cpp:23
A three-dimensional floating point vector.
Definition m_vec.hpp:122
PLAYER_TYPE_e
The identifiers for each player type.
#define STAR_COIN_COUNT
The amount of Star Coins per level.