NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_WiiStrap.cpp
1#include <game/bases/d_WiiStrap.hpp>
2#include <game/bases/d_game_com.hpp>
3#include <game/bases/d_lytbase.hpp>
4#include <game/mLib/m_fader.hpp>
5#include <lib/revolution/SC.h>
6#include <MSL/string.h>
7
8BASE_PROFILE(WII_STRAP, dWiiStrap_c);
9
10dWiiStrap_c::dWiiStrap_c() : mHasLoadedLayout(false) {}
11
12dWiiStrap_c::~dWiiStrap_c() {}
13
15 if (mHasLoadedLayout) {
16 return SUCCEEDED;
17 }
18 if (!createLayout()) {
19 return NOT_READY;
20 }
21 mHasLoadedLayout = true;
22 mVisible = true;
23 return SUCCEEDED;
24}
25
26bool dWiiStrap_c::createLayout() {
27 static const char *AnmNameTblEng[ANIM_NAME_COUNT] = { "wiiStrap_EngEU_00_roop.brlan" };
28 static const char *AnmNameTblFra[ANIM_NAME_COUNT] = { "wiiStrap_FraEU_00_roop.brlan" };
29 static const char *AnmNameTblGer[ANIM_NAME_COUNT] = { "wiiStrap_GerEU_00_roop.brlan" };
30 static const char *AnmNameTblIta[ANIM_NAME_COUNT] = { "wiiStrap_ItaEU_00_roop.brlan" };
31 static const char *AnmNameTblSpa[ANIM_NAME_COUNT] = { "wiiStrap_SpaEU_00_roop.brlan" };
32 static const char *AnmNameTblNed[ANIM_NAME_COUNT] = { "wiiStrap_NedEU_00_roop.brlan" };
33
34 static const char *GROUP_NAME_DT[ANIM_COUNT] = { "A00_Strap" };
35
36 static const int ANIME_INDEX_TBL[ANIM_COUNT] = { roop };
37
38 if (mHasLoadedLayout) {
39 return true;
40 }
41
42 switch (dGameCom::GetLanguageHBM()) {
43 case SC_LANG_NL:
44 if (!mLayout.ReadResource3("WiiStrap/WiiStrap.arc", 2)) {
45 return false;
46 }
47 break;
48 default:
49 if (!mLayout.ReadResourceEx("WiiStrap/WiiStrap.arc", 2, true)) {
50 return false;
51 }
52 break;
53 }
54
55
56 char filename[100];
57 memset(filename, 0, ARRAY_SIZE(filename));
58 strncat(filename, "wiiStrap_", ARRAY_MAX_STRLEN(filename));
59 switch (dGameCom::GetLanguageHBM()) {
60 default:
61 strncat(filename, "EngEU_00", ARRAY_MAX_STRLEN(filename)); break;
62 case SC_LANG_FR:
63 strncat(filename, "FraEU_00", ARRAY_MAX_STRLEN(filename)); break;
64 case SC_LANG_DE:
65 strncat(filename, "GerEU_00", ARRAY_MAX_STRLEN(filename)); break;
66 case SC_LANG_IT:
67 strncat(filename, "ItaEU_00", ARRAY_MAX_STRLEN(filename)); break;
68 case SC_LANG_SP:
69 strncat(filename, "SpaEU_00", ARRAY_MAX_STRLEN(filename)); break;
70 case SC_LANG_NL:
71 strncat(filename, "NedEU_00", ARRAY_MAX_STRLEN(filename)); break;
72 }
73 strncat(filename, ".brlyt", ARRAY_MAX_STRLEN(filename));
74
75 mLayout.build(filename, nullptr);
76
77 switch (dGameCom::GetLanguageHBM()) {
78 default:
79 mLayout.AnimeResRegister(AnmNameTblEng, ANIM_NAME_COUNT); break;
80 case SC_LANG_FR:
81 mLayout.AnimeResRegister(AnmNameTblFra, ANIM_NAME_COUNT); break;
82 case SC_LANG_DE:
83 mLayout.AnimeResRegister(AnmNameTblGer, ANIM_NAME_COUNT); break;
84 case SC_LANG_IT:
85 mLayout.AnimeResRegister(AnmNameTblIta, ANIM_NAME_COUNT); break;
86 case SC_LANG_SP:
87 mLayout.AnimeResRegister(AnmNameTblSpa, ANIM_NAME_COUNT); break;
88 case SC_LANG_NL:
89 mLayout.AnimeResRegister(AnmNameTblNed, ANIM_NAME_COUNT); break;
90 }
91 mLayout.GroupRegister(GROUP_NAME_DT, ANIME_INDEX_TBL, ANIM_COUNT);
92 mLayout.LoopAnimeStartSetup(ANIM_STRAP);
93
94 return true;
95}
96
99 return NOT_READY;
100 }
101 return mFader_c::mFader->getStatus() == mFaderBase_c::HIDDEN;
102}
103
105 if (mHasLoadedLayout && mVisible) {
106 mLayout.AnimePlay();
107 mLayout.calc();
108 }
109 return SUCCEEDED;
110}
111
113 if (mHasLoadedLayout && mVisible) {
114 mLayout.entry();
115 }
116 return SUCCEEDED;
117}
118
120 return mLayout.doDelete();
121}
virtual int preExecute()
pre method for the execute operation.
Definition d_base.cpp:54
Displays the Wii Strap safety warning screen.
virtual int create()
do method for the create operation.
virtual int draw()
do method for the draw operation.
virtual int doDelete()
do method for the delete operation.
virtual int preExecute()
pre method for the execute operation.
virtual int execute()
do method for the execute operation.
bool mVisible
Whether the screen is currently visible.
LytBase_c mLayout
The layout for the screen.
bool mHasLoadedLayout
Whether the layout has been loaded.
@ NOT_READY
The step could not completed at this time.
Definition f_base.hpp:45
@ SUCCEEDED
The step was completed successfully.
Definition f_base.hpp:46
@ HIDDEN
The screen is completely unblocked.
static mFaderBase_c * mFader
The fader currently in use.
Definition m_fader.hpp:18
#define BASE_PROFILE(profName, className)
Creates a basic profile, using the profile number as the execute and draw order value.
Definition f_profile.hpp:23