NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_wipe_dokan.hpp
1#pragma once
2#include <game/mLib/m_fader_base.hpp>
3#include <game/bases/d_lytbase.hpp>
4#include <lib/nw4r/ut/color.hpp>
5
6/// @brief A fader that animates a wavy texture across the screen.
7/// @details Seen when entering a cloud area, for example.
8/// [This transition was used for the pipe transition earlier in development,
9/// which is why this class is called "dWipeDokan_c" (Dokan means "pipe")].
10/// @ingroup bases
11class dWipeDokan_c : public mFaderBase_c {
12public:
13
14 /// @brief The possible actions performed in ::calc.
15 enum ACTION_e {
16 OPEN_SETUP, ///< Prepare the fade-out transition.
17 ANIME_END_CHECK, ///< Fade has begun, waiting for it to end.
18 CLOSE_SETUP, ///< Prepare the fade-in transition.
19 IDLE ///< The fade has not been started.
20 };
21
22 /// @brief The animations for this fader.
23 enum ANIM_e {
24 IN_DOWN, ///< Downward fade-in.
25 OUT_UP, ///< Upward fade-out.
26 OUT_DOWN, ///< Downward fade-out.
27 IN_UP ///< Upward fade-in.
28 };
29
30 dWipeDokan_c(nw4r::ut::Color, mFaderBase_c::EStatus stat); ///< See mFaderBase_c::mFaderBase_c.
31 ~dWipeDokan_c(); ///< Destroys the fader.
32
33 /// @brief Loads the resources and creates the layout for the fader.
34 /// @return Whether the creation was successful.
35 bool createLayout();
36
37 /// @brief Prepares the fade-out transition.
38 void OpenSetup();
39
40 /// @brief Checks if the fade animation has finished yet.
41 /// @details If the animation has finished, sets the status accordingly
42 /// and switches back to the ::IDLE action.
43 void AnimeEndCheck();
44
45 /// @brief Returns whether the wipe should go upwards or downwards.
46 /// @return True = fade-in upwards, fade-out downwards.
47 /// False = fade-in downwards, fade-out upwards.
48 bool MuKiDecision();
49
50 /// @brief Prepares the fade-in transition.
51 void CloseSetup();
52
53 virtual int calc();
54 virtual void draw();
55
56 /// @brief Sets the fader's status.
57 /// @details The only allowed values are ::OPAQUE and ::HIDDEN.
58 virtual void setStatus(mFaderBase_c::EStatus stat);
59
60 virtual bool fadeIn();
61 virtual bool fadeOut();
62
63 static dWipeDokan_c *m_instance; ///< The instance of the fader.
64
65private:
66 LytBase_c mLyt; ///< The layout for the fader.
67 nw4r::lyt::Pane *mpRootPane; ///< The root pane of the fader layout.
68 nw4r::lyt::Picture *mpPic[1]; ///< The picture pane containing the fader texture.
69 ACTION_e mAction; ///< The action to be performed in ::calc.
70 bool mIsCreated; ///< Whether the layout for the fader has been created.
71};
void OpenSetup()
Prepares the fade-out transition.
void CloseSetup()
Prepares the fade-in transition.
virtual bool fadeIn()
Initiates a fade in from pure blacked-out.
ANIM_e
The animations for this fader.
@ IN_DOWN
Downward fade-in.
@ IN_UP
Upward fade-in.
@ OUT_DOWN
Downward fade-out.
@ OUT_UP
Upward fade-out.
ACTION_e mAction
The action to be performed in calc.
LytBase_c mLyt
The layout for the fader.
bool mIsCreated
Whether the layout for the fader has been created.
virtual bool fadeOut()
Initiates a fade out from no-obstruction.
~dWipeDokan_c()
Destroys the fader.
virtual void setStatus(mFaderBase_c::EStatus stat)
Sets the fader's status.
void AnimeEndCheck()
Checks if the fade animation has finished yet.
ACTION_e
The possible actions performed in calc.
@ OPEN_SETUP
Prepare the fade-out transition.
@ CLOSE_SETUP
Prepare the fade-in transition.
@ ANIME_END_CHECK
Fade has begun, waiting for it to end.
@ IDLE
The fade has not been started.
nw4r::lyt::Picture * mpPic[1]
The picture pane containing the fader texture.
bool MuKiDecision()
Returns whether the wipe should go upwards or downwards.
virtual int calc()
Calculates the fader at the current frame.
static dWipeDokan_c * m_instance
The instance of the fader.
nw4r::lyt::Pane * mpRootPane
The root pane of the fader layout.
virtual void draw()
Draws the fader.
bool createLayout()
Loads the resources and creates the layout for the fader.
dWipeDokan_c(nw4r::ut::Color, mFaderBase_c::EStatus stat)
See mFaderBase_c::mFaderBase_c.
mFaderBase_c(const mColor &color, EStatus status)
Constructs a new fader.
EStatus
The fader's status.
A 32-bit RGBA color.
Definition color.hpp:8