1#include <game/bases/d_CourseSelectGuide.hpp>
2#include <game/bases/d_a_player_com.hpp>
3#include <game/bases/d_a_player_manager.hpp>
4#include <game/bases/d_game_display.hpp>
5#include <game/bases/d_game_com.hpp>
6#include <game/bases/d_game_key.hpp>
7#include <game/bases/d_save_mng.hpp>
8#include <game/mLib/m_video.hpp>
73 static const char *AnmNameTbl[ANIM_NAME_COUNT] = {
74 "corseSelectUIGuide_37_inInfo.brlan",
75 "corseSelectUIGuide_37_loopInfo.brlan",
76 "corseSelectUIGuide_37_outInfo.brlan",
77 "corseSelectUIGuide_37_inMapArrow.brlan",
78 "corseSelectUIGuide_37_loopArrow.brlan",
79 "corseSelectUIGuide_37_outMapArrow.brlan",
80 "corseSelectUIGuide_37_inShadow.brlan",
81 "corseSelectUIGuide_37_outShadow.brlan"
84 static const char *GROUP_NAME_DT[ANIM_COUNT] = {
85 "A00_underGuide",
"A01_zanki",
"A02_courseInfo",
86 "A00_underGuide",
"A01_zanki",
"A02_courseInfo",
87 "A00_underGuide",
"A01_zanki",
"A02_courseInfo",
88 "B00_ArrowRight",
"B01_ArrowLeft",
"B02_ArrowUp",
"B03_ArrowUnder",
89 "B00_ArrowRight",
"B01_ArrowLeft",
"B02_ArrowUp",
"B03_ArrowUnder",
90 "B00_ArrowRight",
"B01_ArrowLeft",
"B02_ArrowUp",
"B03_ArrowUnder",
95 static const int ANIME_INDEX_TBL[ANIM_COUNT] = {
96 inInfo, inInfo, inInfo,
97 loopInfo, loopInfo, loopInfo,
98 outInfo, outInfo, outInfo,
99 inMapArrow, inMapArrow, inMapArrow, inMapArrow,
100 loopArrow, loopArrow, loopArrow, loopArrow,
101 outMapArrow, outMapArrow, outMapArrow, outMapArrow,
106 static const char *NPANE_NAME_DT[N_COUNT] = {
107 "N_IconPos1P_00",
"N_IconPos2P_00",
"N_IconPos3P_00",
"N_IconPos4P_00",
109 "N_proportionL_00",
"N_proportionR_00",
"N_proportionC_00",
110 "N_guideViewC_00",
"N_guideViewR_01",
114 static const char *T_PANE_NAME_TBL[T_COUNT] = {
116 "T_cSelect_00",
"T_cSelect_pic",
117 "T_lifeNumber_00",
"T_lifeNumber_01",
"T_lifeNumber_02",
"T_lifeNumber_03",
118 "T_guideViewLS_00",
"T_guideViewL_01"
121 static const int MESSAGE_DATA_TBL[T_FIXED_COUNT] = {
126 static const char *T_PANE_FIXED_NAME_TBL[T_FIXED_COUNT] = {
132 static const char *P_PANE_NAME_TBL[P_COUNT] = {
150 if (!
mLayout.ReadResource(
"corseSelectUIGuide/corseSelectUIGuide.arc",
false)) {
153 mLayout.build(
"corseSelectUIGuide_37.brlyt", 0);
154 mLayout.AnimeResRegister(AnmNameTbl, ANIM_NAME_COUNT);
155 mLayout.GroupRegister(GROUP_NAME_DT, ANIME_INDEX_TBL, ANIM_COUNT);
159 mLayout.TPaneNameRegister(T_PANE_FIXED_NAME_TBL, MESSAGE_DATA_TBL, BMG_CATEGORY_COURSE_SELECT_GUIDE, T_FIXED_COUNT);
167 for (
int i = 0; i < ARRAY_SIZE(
mRest); i++) {
220 mLayout.ReverseAnimeStartSetup(ANIM_OUT_UNDER,
false);
221 mLayout.ReverseAnimeStartSetup(ANIM_OUT_ZANKI,
false);
222 mLayout.ReverseAnimeStartSetup(ANIM_OUT_COURSE_INFO,
false);
226 mLayout.ReverseAnimeStartSetup(ANIM_IN_SHADOW,
false);
227 mLayout.ReverseAnimeStartSetup(ANIM_IN_UNDER,
false);
228 mLayout.ReverseAnimeStartSetup(ANIM_IN_ZANKI,
false);
229 mLayout.ReverseAnimeStartSetup(ANIM_IN_COURSE_INFO,
false);
234 dGameCom::DispSizeScale(scale);
246 if (dGameCom::GetAspectRatio() == 0) {
247 clipSettings.mPos.y = mVideo::getSmth(330.0f);
248 clipSettings.mSize.x = 640.0f;
249 clipSettings.mSize.y = 330.0f;
250 clipSettings.mEnabled =
true;
252 mLayout.mClipSettings = clipSettings;
256 static const int picPaneNums[PLAYER_COUNT] = { P_marioFace_00, P_luigiFace_00, P_BkinoFace_00, P_YkinoFace_00 };
258 for (
int i = 0; i < PLAYER_COUNT; i++) {
262 int currPane = N_IconPos1P_00;
263 int playerCount = -1;
264 for (
int i = 0; i < PLAYER_COUNT; i++) {
267 if (dGameCom::PlayerEnterCheck(playerIndex)) {
276 for (
int i = 0; i < PLAYER_COUNT; i++) {
277 mpNullPanes[N_IconPos1P_00 + i]->setVisible(
false);
279 mpNullPanes[N_IconPos1P_00 + playerCount]->setVisible(
true);
283 static const int textBoxIdxs[PLAYER_COUNT] = { T_lifeNumber_00, T_lifeNumber_01, T_lifeNumber_03, T_lifeNumber_02 };
285 for (
int i = 0; i < PLAYER_COUNT; i++) {
288 int rest = daPyMng_c::getRest(playerType);
289 if (
mRest[i] != rest) {
291 int textIdx = textBoxIdxs[i];
293 dGameCom::LayoutDispNumber(rest, dGameDisplay_c::c_PLAYNUM_DIGIT, textBox,
true);
316 for (
int i = 0; i < PLAYER_COUNT; i++) {
343 !
mLayout.isAnime(ANIM_OUT_ARROW_U) || !
mLayout.isAnime(ANIM_OUT_ARROW_D) ||
344 !
mLayout.isAnime(ANIM_OUT_ARROW_L) || !
mLayout.isAnime(ANIM_OUT_ARROW_R)
372 static const int sc_startPointIcons[WORLD_USED_COUNT] = {
373 MSG_CS_ICON_START_RIGHT,
374 MSG_CS_ICON_START_UP,
375 MSG_CS_ICON_START_RIGHT,
376 MSG_CS_ICON_START_UP,
377 MSG_CS_ICON_START_RIGHT,
378 MSG_CS_ICON_START_UP,
379 MSG_CS_ICON_START_RIGHT,
380 MSG_CS_ICON_START_UP,
381 MSG_CS_ICON_START_UP,
383 dInfo_c *info = dInfo_c::m_instance;
384 MsgRes_c *msgRes = dMessage_c::getMesRes();
387 if (type == dWmLib::POINT_TYPE_PATH) {
390 }
else if (type == dWmLib::POINT_TYPE_REGULAR_COURSE || type == dWmLib::POINT_TYPE_OTHER) {
392 }
else if (type == dWmLib::POINT_TYPE_START_NODE) {
397 info->field_3b4 = actualWNo;
398 mpTextBoxes[T_worldNum_00]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, MSG_CS_CURR_WORLD, 0);
403 info->field_3b8 = actualLevelNo;
404 mpTextBoxes[T_cSelect_00]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, MSG_CS_COURSE_NUM, 0);
408 case dWmLib::COURSE_TYPE_GHOST: messageID = MSG_CS_ICON_GHOST_HOUSE;
break;
409 case dWmLib::COURSE_TYPE_TOWER: messageID = MSG_CS_ICON_TOWER;
break;
410 case dWmLib::COURSE_TYPE_CASTLE:
412 messageID = MSG_CS_ICON_CASTLE;
414 messageID = MSG_CS_ICON_W8_CASTLE;
417 case dWmLib::COURSE_TYPE_KINOKO:
418 if (dScWMap_c::IsCourseType(
mWorldNo,
mCourseNo, dScWMap_c::COURSE_TYPE_KINOKO_HOUSE_1UP)) {
419 messageID = MSG_CS_ICON_KINOKO_HOUSE_1UP;
420 }
else if (dScWMap_c::IsCourseType(
mWorldNo,
mCourseNo, dScWMap_c::COURSE_TYPE_KINOKO_HOUSE_STAR)) {
421 messageID = MSG_CS_ICON_KINOKO_HOUSE_STAR;
423 messageID = MSG_CS_ICON_KINOKO_HOUSE_RED;
426 case dWmLib::COURSE_TYPE_JUNCTION: messageID = MSG_CS_ICON_JUNCTION;
break;
427 case dWmLib::COURSE_TYPE_CANNON: messageID = MSG_CS_ICON_CANNON;
break;
428 case dWmLib::COURSE_TYPE_KOOPA_SHIP:
429 if (dWmLib::isKoopaShipAnchor()) {
430 messageID = MSG_CS_ICON_ANCHOR;
432 messageID = MSG_CS_ICON_AIRSHIP;
435 case dWmLib::COURSE_TYPE_PEACH_CASTLE:
437 messageID = MSG_CS_ICON_PEACH_CASTLE;
439 case dWmLib::COURSE_TYPE_INVALID:
441 messageID = sc_startPointIcons[
mWorldNo];
444 if (dWmLib::isStartPointKinokoHouseStar()) {
445 messageID = MSG_CS_ICON_KINOKO_HOUSE_STAR;
446 }
else if (dWmLib::isStartPointKinokoHouseRed()) {
447 messageID = MSG_CS_ICON_KINOKO_HOUSE_RED;
449 messageID = MSG_CS_ICON_KINOKO_HOUSE_1UP;
453 mpTextBoxes[T_cSelect_pic]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, messageID, 0);
459 dMj2dGame_c *saveGame = dSaveMng_c::m_instance->getSaveGame(-1);
460 dCyuukan_c *checkpoint = dInfo_c::m_instance->getCyuukan();
469 if (collectCoin != 0) {
474 && checkpoint->mCoinCollection[i] != 4
487 static const u8 flags[] = {
521 mLayout.AnimeEndSetup(ANIM_IN_COURSE_INFO);
523 }
else if (!
mLayout.isAnime(ANIM_IN_COURSE_INFO)) {
532 mLayout.LoopAnimeStartSetup(ANIM_LOOP_COURSE_INFO);
548 mLayout.AnimeEndSetup(ANIM_LOOP_COURSE_INFO);
549 mLayout.AnimeStartSetup(ANIM_OUT_COURSE_INFO,
false);
553 mLayout.AnimeEndSetup(ANIM_OUT_COURSE_INFO);
555 }
else if (!
mLayout.isAnime(ANIM_OUT_COURSE_INFO)) {
591 mLayout.AnimeEndSetup(ANIM_IN_UNDER);
592 mLayout.AnimeEndSetup(ANIM_IN_ZANKI);
595 if (
mLayout.isAnime(ANIM_IN_UNDER) ||
mLayout.isAnime(ANIM_IN_ZANKI)) {
604 mLayout.LoopAnimeStartSetup(ANIM_LOOP_UNDER);
605 mLayout.LoopAnimeStartSetup(ANIM_LOOP_ZANKI);
619 mLayout.AnimeEndSetup(ANIM_LOOP_UNDER);
620 mLayout.AnimeEndSetup(ANIM_LOOP_ZANKI);
621 mLayout.AnimeStartSetup(ANIM_OUT_UNDER,
false);
622 mLayout.AnimeStartSetup(ANIM_OUT_ZANKI,
false);
626 mLayout.AnimeEndSetup(ANIM_OUT_UNDER);
627 mLayout.AnimeEndSetup(ANIM_OUT_ZANKI);
630 if (
mLayout.isAnime(ANIM_OUT_UNDER) ||
mLayout.isAnime(ANIM_OUT_ZANKI)) {
649 mLayout.AnimeStartSetup(ANIM_IN_ARROW_U,
false);
653 mLayout.AnimeEndSetup(ANIM_IN_ARROW_U);
656 if (
mLayout.isAnime(ANIM_IN_ARROW_U) ||
mLayout.isAnime(ANIM_IN_UNDER)) {
667 mLayout.LoopAnimeStartSetup(ANIM_LOOP_ARROW_U);
678 mLayout.AnimeEndSetup(ANIM_LOOP_ARROW_U);
679 mLayout.AnimeStartSetup(ANIM_OUT_ARROW_U,
false);
684 }
else if (!
mLayout.isAnime(ANIM_OUT_ARROW_U)) {
702 mLayout.AnimeStartSetup(ANIM_IN_ARROW_D,
false);
706 mLayout.AnimeEndSetup(ANIM_IN_ARROW_D);
708 }
else if (!
mLayout.isAnime(ANIM_IN_ARROW_D)) {
717 mLayout.LoopAnimeStartSetup(ANIM_LOOP_ARROW_D);
728 mLayout.AnimeEndSetup(ANIM_LOOP_ARROW_D);
729 mLayout.AnimeStartSetup(ANIM_OUT_ARROW_D,
false);
734 }
else if (!
mLayout.isAnime(ANIM_OUT_ARROW_D)) {
752 mLayout.AnimeStartSetup(ANIM_IN_ARROW_L,
false);
756 mLayout.AnimeEndSetup(ANIM_IN_ARROW_L);
758 }
else if (!
mLayout.isAnime(ANIM_IN_ARROW_L)) {
767 mLayout.LoopAnimeStartSetup(ANIM_LOOP_ARROW_L);
778 mLayout.AnimeEndSetup(ANIM_LOOP_ARROW_L);
779 mLayout.AnimeStartSetup(ANIM_OUT_ARROW_L,
false);
784 }
else if (!
mLayout.isAnime(ANIM_OUT_ARROW_L)) {
802 mLayout.AnimeStartSetup(ANIM_IN_ARROW_R,
false);
806 mLayout.AnimeEndSetup(ANIM_IN_ARROW_R);
808 }
else if (!
mLayout.isAnime(ANIM_IN_ARROW_R)) {
817 mLayout.LoopAnimeStartSetup(ANIM_LOOP_ARROW_R);
828 mLayout.AnimeEndSetup(ANIM_LOOP_ARROW_R);
829 mLayout.AnimeStartSetup(ANIM_OUT_ARROW_R,
false);
834 }
else if (!
mLayout.isAnime(ANIM_OUT_ARROW_R)) {
853 mLayout.AnimeStartSetup(ANIM_IN_SHADOW,
false);
873 mLayout.AnimeStartSetup(ANIM_OUT_SHADOW,
false);
891#if (defined(VERSION_K) || defined(VERSION_W))
911 mLayout.AnimeStartSetup(ANIM_IN_UNDER,
false);
916 mLayout.AnimeEndSetup(ANIM_IN_UNDER);
918 }
else if (!
mLayout.isAnime(-1)) {
927 mLayout.LoopAnimeStartSetup(ANIM_LOOP_UNDER);
938 mLayout.AnimeEndSetup(ANIM_LOOP_UNDER);
939 mLayout.AnimeStartSetup(ANIM_OUT_UNDER,
false);
959 mCourseType = dWmLib::GetCourseTypeFromCourseNo(courseNo);
962 if (type != dWmLib::POINT_TYPE_PATH) {
965 dInfo_c *info = dInfo_c::m_instance;
971 if (checkpoint->isCyuukanStart(i, wNo, cNo)) {
983 MsgRes_c *msgRes = dMessage_c::getMesRes();
984 bool attached =
true;
988 dInfo_c::m_instance->mExtensionAttached = attached;
990 mpTextBoxes[T_guideViewLS_00]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, MSG_CS_BACK_TO_MARIO, 0);
992 mpTextBoxes[T_guideViewLS_00]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, MSG_CS_VIEW_MAP, 0);
994 mpTextBoxes[T_guideViewL_01]->setMessage(msgRes, BMG_CATEGORY_COURSE_SELECT_GUIDE, MSG_CS_ITEMS, 0);
@ EXTENSION_NONE
No Wii remote extension is connected.
@ EXTENSION_UNKNOWN
It has not been checked yet whether an extension is connected.
bool mLeftAnim
Whether the left arrow is in an animation.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrUp
The state manager for the up arrow for the map view.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrGuide
The state manager for the button legends and remaining lives display.
bool mHideCourseInfo
Set this to true to hide the course info.
static sFStateID_c< dCourseSelectGuide_c > StateID_LeftOnStageAnimeEndCheck
The state ID for the LeftOnStageAnimeEndCheck state.
void executeState_DownDisp()
Execution function for the DownDisp state.
bool mShowScrollGuide
Set this to true to show the button legends for the map view mode.
bool mShowRestNumber
Whether to update the remaining lives count.
void executeState_GuideExitAnimeEndCheck()
Execution function for the GuideExitAnimeEndCheck state.
bool mHideShadow
Set this to true to remove the darkening of the world map view.
bool mInMapView
Whether the HUD is in the map view mode.
void initializeState_GuideOnStageAnimeEndCheck()
Initialization function for the GuideOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_DownExitAnimeEndCheck
The state ID for the DownExitAnimeEndCheck state.
void executeState_GuideOnStageAnimeEndCheck()
Execution function for the GuideOnStageAnimeEndCheck state.
void CollectionCoinSet()
Updates the star coin icons.
void initializeState_ShadowExitAnimeEndCheck()
Initialization function for the ShadowExitAnimeEndCheck state.
void finalizeState_ScrollGuideOnStageWait()
Finalization function for the ScrollGuideOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_UpOnStageAnimeEndCheck
The state ID for the UpOnStageAnimeEndCheck state.
void initializeState_ScrollGuideOnStageWait()
Initialization function for the ScrollGuideOnStageWait state.
void executeState_LeftOnStageWait()
Execution function for the LeftOnStageWait state.
bool mEndScrollGuide
Set this to true to hide the button legends for the map view mode.
void finalizeState_DownOnStageAnimeEndCheck()
Finalization function for the DownOnStageAnimeEndCheck state.
int mRestAlphaTarget
The target transparency for mRestAlpha.
void ScissorMaskSet()
Clips the layout to the maximum allowed size.
void executeState_ShadowOnStageAnimeEndCheck()
Execution function for the ShadowOnStageAnimeEndCheck state.
bool mNoAnimCourseInfoIn
Whether the course info should simply appear instead of sliding in.
static sFStateID_c< dCourseSelectGuide_c > StateID_GuideDisp
The state ID for the GuideDisp state.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrDown
The state manager for the down arrow for the map view.
void finalizeState_WorldCourseOnStageWait()
Finalization function for the WorldCourseOnStageWait state.
void finalizeState_RightDisp()
Finalization function for the RightDisp state.
bool mHideHUD
Set this to true to hide the entire HUD.
void initializeState_UpOnStageAnimeEndCheck()
Initialization function for the UpOnStageAnimeEndCheck state.
bool mShowCourseInfo
Set this to true to show the course info.
static sFStateID_c< dCourseSelectGuide_c > StateID_ScrollGuideDisp
The state ID for the ScrollGuideDisp state.
bool mUpAnim
Whether the up arrow is in an animation.
void executeState_DownOnStageAnimeEndCheck()
Execution function for the DownOnStageAnimeEndCheck state.
void initializeState_ShadowDisp()
Initialization function for the ShadowDisp state.
void finalizeState_LeftOnStageAnimeEndCheck()
Finalization function for the LeftOnStageAnimeEndCheck state.
void finalizeState_DownExitAnimeEndCheck()
Finalization function for the DownExitAnimeEndCheck state.
int mCourseNo
The current course number. Set to a negative value if it's a course with an icon.
static sFStateID_c< dCourseSelectGuide_c > StateID_ScrollGuideExitAnimeEndCheck
The state ID for the ScrollGuideExitAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_RightOnStageWait
The state ID for the RightOnStageWait state.
void finalizeState_GuideExitAnimeEndCheck()
Finalization function for the GuideExitAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_UpOnStageWait
The state ID for the UpOnStageWait state.
void initializeState_ScrollGuideDisp()
Initialization function for the ScrollGuideDisp state.
static sFStateID_c< dCourseSelectGuide_c > StateID_GuideOnStageAnimeEndCheck
The state ID for the GuideOnStageAnimeEndCheck state.
void finalizeState_WorldCourseDisp()
Finalization function for the WorldCourseDisp state.
void executeState_DownOnStageWait()
Execution function for the DownOnStageWait state.
Remocon::EXTENSION_TYPE_e mExtension
The currently attached Wii remote extension.
void executeState_RightOnStageAnimeEndCheck()
Execution function for the RightOnStageAnimeEndCheck state.
bool mEnableAllArrows
Whether to show all map view arrows. Gets reset after 1 frame.
void initializeState_LeftDisp()
Initialization function for the LeftDisp state.
bool mEndGuide
Set this to true to hide the remaining guide.
int mWorldNo
The current world number.
LytBase_c mLayout
The layout for the window.
void initializeState_GuideDisp()
Initialization function for the GuideDisp state.
void initializeState_LeftOnStageAnimeEndCheck()
Initialization function for the LeftOnStageAnimeEndCheck state.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrLeft
The state manager for the left arrow for the map view.
int mWorldCourseOnStageTimer
Cooldown for showing the course info.
void finalizeState_GuideOnStageWait()
Finalization function for the GuideOnStageWait state.
void finalizeState_UpExitAnimeEndCheck()
Finalization function for the UpExitAnimeEndCheck state.
void initializeState_ShadowOnStageWait()
Initialization function for the ShadowOnStageWait state.
void executeState_DownExitAnimeEndCheck()
Execution function for the DownExitAnimeEndCheck state.
void executeState_LeftExitAnimeEndCheck()
Execution function for the LeftExitAnimeEndCheck state.
int mRest[PLAYER_COUNT]
The remaining lives for each player.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrWorldCourse
The state manager for the course info (world / course name).
void finalizeState_ShadowExitAnimeEndCheck()
Finalization function for the ShadowExitAnimeEndCheck state.
void executeState_RightExitAnimeEndCheck()
Execution function for the RightExitAnimeEndCheck state.
void initializeState_LeftExitAnimeEndCheck()
Initialization function for the LeftExitAnimeEndCheck state.
bool mDownAnim
Whether the down arrow is in an animation.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrShadow
The state manager for darkening the course view. [Unused?].
static sFStateID_c< dCourseSelectGuide_c > StateID_WorldCourseOnStageWait
The state ID for the WorldCourseOnStageWait state.
void initializeState_WorldCourseDisp()
Initialization function for the WorldCourseDisp state.
bool mShowShadow
Set this to true to darken the world map view.
bool mDisableArrows
Whether to stop updating the map view arrows.
void executeState_UpExitAnimeEndCheck()
Execution function for the UpExitAnimeEndCheck state.
void UpdateGuide(short courseNo, dWmLib::PointType_e type)
Updates the course-related parts of the course info guide.
static sFStateID_c< dCourseSelectGuide_c > StateID_ScrollGuideOnStageWait
The state ID for the ScrollGuideOnStageWait state.
void executeState_ShadowExitAnimeEndCheck()
Execution function for the ShadowExitAnimeEndCheck state.
void executeState_ShadowOnStageWait()
Execution function for the ShadowOnStageWait state.
void RestAlphaDisp()
Sets the opacity of the remaining lives count.
void initializeState_LeftOnStageWait()
Initialization function for the LeftOnStageWait state.
void initializeState_UpDisp()
Initialization function for the UpDisp state.
void finalizeState_ShadowDisp()
Finalization function for the ShadowDisp state.
void finalizeState_UpDisp()
Finalization function for the UpDisp state.
void executeState_UpDisp()
Execution function for the UpDisp state.
void finalizeState_LeftDisp()
Finalization function for the LeftDisp state.
static sFStateID_c< dCourseSelectGuide_c > StateID_RightExitAnimeEndCheck
The state ID for the RightExitAnimeEndCheck state.
void initializeState_WorldCourseExitAnimeEndCheck()
Initialization function for the WorldCourseExitAnimeEndCheck state.
void initializeState_DownExitAnimeEndCheck()
Initialization function for the DownExitAnimeEndCheck state.
void doDelete()
Prepares the view for deletion.
nw4r::lyt::Pane * mpNullPanes[N_COUNT]
The null panes of the view.
void finalizeState_ScrollGuideDisp()
Finalization function for the ScrollGuideDisp state.
void executeState_ScrollGuideDisp()
Execution function for the ScrollGuideDisp state.
void initializeState_WorldCourseOnStageAnimeEndCheck()
Initialization function for the WorldCourseOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_WorldCourseOnStageAnimeEndCheck
The state ID for the WorldCourseOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_GuideExitAnimeEndCheck
The state ID for the GuideExitAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_ShadowDisp
The state ID for the ShadowDisp state.
void finalizeState_DownOnStageWait()
Finalization function for the DownOnStageWait state.
void ControllerConnectCheck()
Checks for attached controller extensions and updates the button hints with the correct icon.
static const int c_DISP_WAIT_TIMER
The speed at which the opacity of the remaining lives counter is changed.
nw4r::lyt::Picture * mpPicturePanes[P_COUNT]
The picture panes of the view.
static dCourseSelectGuide_c * m_instance
The instance of the view.
void finalizeState_UpOnStageAnimeEndCheck()
Finalization function for the UpOnStageAnimeEndCheck state.
void initializeState_ScrollGuideOnStageAnimeEndCheck()
Initialization function for the ScrollGuideOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_DownOnStageWait
The state ID for the DownOnStageWait state.
void initializeState_RightOnStageAnimeEndCheck()
Initialization function for the RightOnStageAnimeEndCheck state.
void executeState_ScrollGuideExitAnimeEndCheck()
Execution function for the ScrollGuideExitAnimeEndCheck state.
void executeState_ShadowDisp()
Execution function for the ShadowDisp state.
void finalizeState_UpOnStageWait()
Finalization function for the UpOnStageWait state.
int mCourseType
The current course type.
static sFStateID_c< dCourseSelectGuide_c > StateID_DownDisp
The state ID for the DownDisp state.
bool mEnabled
Controls whether the HUD is updated every frame.
void initializeState_GuideOnStageWait()
Initialization function for the GuideOnStageWait state.
bool IsDirectionAllowed(int dir)
Returns whether the arrow for direction dir should be shown.
bool mIsCourseInfoOutAnime
Automatically set to false after the course info has been hidden.
void finalizeState_RightOnStageAnimeEndCheck()
Finalization function for the RightOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_GuideOnStageWait
The state ID for the GuideOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_LeftDisp
The state ID for the LeftDisp state.
void finalizeState_ScrollGuideOnStageAnimeEndCheck()
Finalization function for the ScrollGuideOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_LeftOnStageWait
The state ID for the LeftOnStageWait state.
bool mMapView
Whether the HUD should process the map view elements.
void initializeState_RightDisp()
Initialization function for the RightDisp state.
void initializeState_UpExitAnimeEndCheck()
Initialization function for the UpExitAnimeEndCheck state.
void finalizeState_ShadowOnStageAnimeEndCheck()
Finalization function for the ShadowOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_WorldCourseExitAnimeEndCheck
The state ID for the WorldCourseExitAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_LeftExitAnimeEndCheck
The state ID for the LeftExitAnimeEndCheck state.
void initializeState_RightOnStageWait()
Initialization function for the RightOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_ShadowOnStageAnimeEndCheck
The state ID for the ShadowOnStageAnimeEndCheck state.
void finalizeState_GuideOnStageAnimeEndCheck()
Finalization function for the GuideOnStageAnimeEndCheck state.
void executeState_WorldCourseOnStageAnimeEndCheck()
Execution function for the WorldCourseOnStageAnimeEndCheck state.
void executeState_WorldCourseOnStageWait()
Execution function for the WorldCourseOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_UpDisp
The state ID for the UpDisp state.
LytTextBox_c * mpTextBoxes[T_COUNT]
The textboxes of the view.
static sFStateID_c< dCourseSelectGuide_c > StateID_ScrollGuideOnStageAnimeEndCheck
The state ID for the ScrollGuideOnStageAnimeEndCheck state.
void initializeState_ScrollGuideExitAnimeEndCheck()
Initialization function for the ScrollGuideExitAnimeEndCheck state.
bool createLayout()
Creates the layout and initializes the class state.
void finalizeState_WorldCourseOnStageAnimeEndCheck()
Finalization function for the WorldCourseOnStageAnimeEndCheck state.
void initializeState_RightExitAnimeEndCheck()
Initialization function for the RightExitAnimeEndCheck state.
void initializeState_DownOnStageWait()
Initialization function for the DownOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_DownOnStageAnimeEndCheck
The state ID for the DownOnStageAnimeEndCheck state.
static sFStateID_c< dCourseSelectGuide_c > StateID_UpExitAnimeEndCheck
The state ID for the UpExitAnimeEndCheck state.
void executeState_ScrollGuideOnStageAnimeEndCheck()
Execution function for the ScrollGuideOnStageAnimeEndCheck state.
void CourseSelectSet(dWmLib::PointType_e type)
Updates the textbox that displays the current course.
void finalizeState_LeftExitAnimeEndCheck()
Finalization function for the LeftExitAnimeEndCheck state.
void finalizeState_GuideDisp()
Finalization function for the GuideDisp state.
void executeState_WorldCourseDisp()
Execution function for the WorldCourseDisp state.
void initializeState_ShadowOnStageAnimeEndCheck()
Initialization function for the ShadowOnStageAnimeEndCheck state.
void executeState_GuideOnStageWait()
Execution function for the GuideOnStageWait state.
void executeState_ScrollGuideOnStageWait()
Execution function for the ScrollGuideOnStageWait state.
void initializeState_DownOnStageAnimeEndCheck()
Initialization function for the DownOnStageAnimeEndCheck state.
void finalizeState_ScrollGuideExitAnimeEndCheck()
Finalization function for the ScrollGuideExitAnimeEndCheck state.
void finalizeState_WorldCourseExitAnimeEndCheck()
Finalization function for the WorldCourseExitAnimeEndCheck state.
void draw()
Draws the view.
bool mInitialized
Whether the layout has been fully initialized.
void RestNumberDisp()
Fills in the text boxes showing the remaining lives count.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrRight
The state manager for the right arrow for the map view.
dCourseSelectGuide_c()
Constructs a new course select guide instance.
void initializeState_DownDisp()
Initialization function for the DownDisp state.
void finalizeState_ShadowOnStageWait()
Finalization function for the ShadowOnStageWait state.
void finalizeState_DownDisp()
Finalization function for the DownDisp state.
void executeState_RightDisp()
Execution function for the RightDisp state.
static sFStateID_c< dCourseSelectGuide_c > StateID_RightOnStageAnimeEndCheck
The state ID for the RightOnStageAnimeEndCheck state.
void executeState_UpOnStageWait()
Execution function for the UpOnStageWait state.
void initializeState_UpOnStageWait()
Initialization function for the UpOnStageWait state.
bool mRightAnim
Whether the right arrow is in an animation.
void finalizeState_LeftOnStageWait()
Finalization function for the LeftOnStageWait state.
virtual ~dCourseSelectGuide_c()
Destroys the instance.
static sFStateID_c< dCourseSelectGuide_c > StateID_ShadowExitAnimeEndCheck
The state ID for the ShadowExitAnimeEndCheck state.
sFStateMgr_c< dCourseSelectGuide_c, sStateMethodUsr_FI_c > mStateMgrScrollGuide
The state manager for the button legends during the map view.
bool mCourseInfoAnim
Whether the course information is in an animation.
void initializeState_GuideExitAnimeEndCheck()
Initialization function for the GuideExitAnimeEndCheck state.
void finalizeState_RightExitAnimeEndCheck()
Finalization function for the RightExitAnimeEndCheck state.
void initializeState_WorldCourseOnStageWait()
Initialization function for the WorldCourseOnStageWait state.
bool mBeginGuide
Set this to true to show the remaining guide.
static sFStateID_c< dCourseSelectGuide_c > StateID_WorldCourseDisp
The state ID for the WorldCourseDisp state.
static sFStateID_c< dCourseSelectGuide_c > StateID_ShadowOnStageWait
The state ID for the ShadowOnStageWait state.
void executeState_LeftDisp()
Execution function for the LeftDisp state.
void finalizeState_RightOnStageWait()
Finalization function for the RightOnStageWait state.
static sFStateID_c< dCourseSelectGuide_c > StateID_RightDisp
The state ID for the RightDisp state.
void executeState_GuideDisp()
Execution function for the GuideDisp state.
void executeState_WorldCourseExitAnimeEndCheck()
Execution function for the WorldCourseExitAnimeEndCheck state.
bool mNoHUDAppearAnim
Whether the HUD should be shown without an animation.
void executeState_RightOnStageWait()
Execution function for the RightOnStageWait state.
void executeState_LeftOnStageAnimeEndCheck()
Execution function for the LeftOnStageAnimeEndCheck state.
void executeState_UpOnStageAnimeEndCheck()
Execution function for the UpOnStageAnimeEndCheck state.
int mGuideOnStageTimer
Cooldown for showing the remaining guide HUD.
nw4r::lyt::Pane * mpRootPane
The root pane of the view.
void PlayerIconSet()
Updates the player icons in the remaining lives info to the active player.
u8 mMoveDirection
A bitmask describing which arrows should be shown in the free move view.
void execute()
The main loop of the view.
Represents the slot-specific save data for the game.
u8 isCollectCoin(int world, int level, int coin) const
Checks if the given Star Coin has been obtained in the given world/level.
static int getPlayerIndex(PLAYER_CHARACTER_e)
A two-dimensional floating point vector.
A three-dimensional floating point vector.
static T::GlobalData_t mData
PLAYER_CHARACTER_e
The identifiers for each character.
#define STAR_COIN_COUNT
The amount of Star Coins per level.
#define CHECKPOINT_COUNT
The maximum number of checkpoints supported.
@ STAGE_START_KINOKO_HOUSE
The toad house on the starting node of each world.
static const PLAYER_CHARACTER_e sc_PLAYER_ORDER[]
#define STATE_DEFINE(class, name)
Defines a state.