mirror of https://github.com/zeldaret/tp.git
1448 lines
56 KiB
C++
1448 lines
56 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: d/d_menu_letter
|
|
//
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
|
|
#include "d/d_menu_letter.h"
|
|
#include "JSystem/J2DGraph/J2DGrafContext.h"
|
|
#include "JSystem/J2DGraph/J2DTextBox.h"
|
|
#include "JSystem/JKernel/JKRMemArchive.h"
|
|
#include "stdio.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_select_cursor.h"
|
|
#include "d/d_meter2_info.h"
|
|
#include "d/d_meter_HIO.h"
|
|
#include "d/d_msg_string.h"
|
|
#include "dol2asm.h"
|
|
#include "dolphin/types.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "m_Do/m_Do_graphic.h"
|
|
#include "d/d_msg_scrn_arrow.h"
|
|
#include "d/d_lib.h"
|
|
|
|
#if VERSION == VERSION_GCN_JPN
|
|
#define LINE_MAX 9
|
|
#else
|
|
#define LINE_MAX 12
|
|
#endif
|
|
|
|
typedef void (dMenu_Letter_c::*initFunc)();
|
|
static initFunc map_init_process[] = {
|
|
&dMenu_Letter_c::wait_init,
|
|
&dMenu_Letter_c::slide_right_init,
|
|
&dMenu_Letter_c::slide_left_init,
|
|
&dMenu_Letter_c::read_open_init,
|
|
&dMenu_Letter_c::read_move_init,
|
|
&dMenu_Letter_c::read_next_fadeout_init,
|
|
&dMenu_Letter_c::read_next_fadein_init,
|
|
&dMenu_Letter_c::read_close_init,
|
|
};
|
|
|
|
typedef void (dMenu_Letter_c::*moveFunc)();
|
|
static moveFunc map_move_process[] = {
|
|
&dMenu_Letter_c::wait_move,
|
|
&dMenu_Letter_c::slide_right_move,
|
|
&dMenu_Letter_c::slide_left_move,
|
|
&dMenu_Letter_c::read_open_move,
|
|
&dMenu_Letter_c::read_move_move,
|
|
&dMenu_Letter_c::read_next_fadeout_move,
|
|
&dMenu_Letter_c::read_next_fadein_move,
|
|
&dMenu_Letter_c::read_close_move,
|
|
};
|
|
|
|
/* 801DCDC0-801DCF34 1D7700 0174+00 0/0 2/2 0/0 .text
|
|
* __ct__14dMenu_Letter_cFP10JKRExpHeapP9STControlP10CSTControl */
|
|
dMenu_Letter_c::dMenu_Letter_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i_cstick) {
|
|
mpHeap = i_heap;
|
|
mpMount = NULL;
|
|
mpArchive = NULL;
|
|
mpStick = i_stick;
|
|
mpCStick = i_cstick;
|
|
mStatus = 1;
|
|
mProcess = 0;
|
|
field_0x368 = 0;
|
|
field_0x36a = 0;
|
|
mIndex = 0;
|
|
field_0x36f = 0;
|
|
field_0x372 = 0;
|
|
field_0x3e2 = 0;
|
|
field_0x3e3 = 0;
|
|
field_0x3e4 = 0;
|
|
field_0x370 = 0xff;
|
|
field_0x371 = 0xff;
|
|
letter_init_calc();
|
|
field_0x358 = 0.0f;
|
|
field_0x35c = 0.0f;
|
|
field_0x360 = field_0x364 = 1.0f;
|
|
for (int i = 0; i < 9; i++) {
|
|
for (int j = 0; j < 6; j++) {
|
|
field_0x376[i][j] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 801DCF34-801DD36C 1D7874 0438+00 1/0 0/0 0/0 .text __dt__14dMenu_Letter_cFv */
|
|
dMenu_Letter_c::~dMenu_Letter_c() {
|
|
delete mpDrawCursor;
|
|
mpDrawCursor = NULL;
|
|
|
|
delete mpArrow;
|
|
mpArrow = NULL;
|
|
|
|
delete mpString;
|
|
mpString = NULL;
|
|
|
|
delete mpMenuScreen;
|
|
mpMenuScreen = NULL;
|
|
|
|
delete mpMenuDMYScreen;
|
|
mpMenuDMYScreen = NULL;
|
|
|
|
delete mpBaseScreen;
|
|
mpBaseScreen = NULL;
|
|
|
|
delete mpSdwScreen;
|
|
mpSdwScreen = NULL;
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
delete mpLetterScreen[i];
|
|
mpLetterScreen[i] = NULL;
|
|
|
|
delete field_0x2ec[i];
|
|
field_0x2ec[i] = NULL;
|
|
|
|
if (field_0x2f4[i] != NULL) {
|
|
delete field_0x2f4[i];
|
|
field_0x2f4[i] = NULL;
|
|
}
|
|
|
|
delete mpTextParent[i];
|
|
mpTextParent[i] = NULL;
|
|
}
|
|
|
|
delete mpLineParent;
|
|
mpLineParent = NULL;
|
|
|
|
delete mpBlackTex;
|
|
mpBlackTex = NULL;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
delete mpParent[i];
|
|
mpParent[i] = NULL;
|
|
}
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
delete mpLetterParent[i];
|
|
mpLetterParent[i] = NULL;
|
|
}
|
|
|
|
delete mpDMYParent;
|
|
mpDMYParent = NULL;
|
|
|
|
delete mpIconScreen;
|
|
mpIconScreen = NULL;
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
if (mpButtonAB[i] != NULL) {
|
|
delete mpButtonAB[i];
|
|
mpButtonAB[i] = NULL;
|
|
}
|
|
|
|
if (mpButtonText[i] != NULL) {
|
|
delete mpButtonText[i];
|
|
mpButtonText[i] = NULL;
|
|
}
|
|
}
|
|
|
|
if (mpMount != NULL) {
|
|
JKRUnmountArchive(mpMount->getArchive());
|
|
mpMount->destroy();
|
|
mpMount = NULL;
|
|
}
|
|
|
|
if (mpArchive != NULL) {
|
|
JKRUnmountArchive(mpArchive);
|
|
mpArchive = NULL;
|
|
}
|
|
dComIfGp_getMsgArchive(0)->removeResourceAll();
|
|
}
|
|
|
|
/* 801DD36C-801DD474 1D7CAC 0108+00 1/1 0/0 0/0 .text _create__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::_create() {
|
|
mpDrawCursor = new dSelect_cursor_c(2, 1.0f, NULL);
|
|
JUT_ASSERT(231, mpDrawCursor != NULL);
|
|
#if VERSION == VERSION_SHIELD_DEBUG
|
|
mpDrawCursor->setParam(1.01f, 0.85f, 0.02f, 0.5f, 0.5f);
|
|
#else
|
|
mpDrawCursor->setParam(1.06f, 0.9f, 0.02f, 0.4f, 0.4f);
|
|
#endif
|
|
mpDrawCursor->setAlphaRate(0.0f);
|
|
mpDrawCursor->setScale(0.0f);
|
|
mpDrawCursor->offPlayAnime(0);
|
|
|
|
mpString = new dMsgString_c();
|
|
JUT_ASSERT(245, mpString != NULL);
|
|
|
|
mpArrow = new dMsgScrnArrow_c();
|
|
JUT_ASSERT(249, mpArrow != NULL);
|
|
|
|
screenSetMenu();
|
|
screenSetBase();
|
|
screenSetShadow();
|
|
screenSetLetter();
|
|
screenSetDoIcon();
|
|
setHIO(true);
|
|
init();
|
|
}
|
|
|
|
|
|
/* 801DD474-801DD50C 1D7DB4 0098+00 0/0 2/2 0/0 .text _move__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::_move() {
|
|
JKRHeap* heap = mDoExt_setCurrentHeap((JKRHeap*)mpHeap);
|
|
u8 process = mProcess;
|
|
(this->*map_move_process[mProcess])();
|
|
if (process != mProcess) {
|
|
(this->*map_init_process[mProcess])();
|
|
}
|
|
setHIO(false);
|
|
mDoExt_setCurrentHeap(heap);
|
|
}
|
|
|
|
/* 801DD50C-801DD934 1D7E4C 0428+00 1/1 1/1 0/0 .text _draw__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::_draw() {
|
|
if (mpArchive == NULL) {
|
|
return;
|
|
}
|
|
J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
|
|
u8 prevAlpha = mpBlackTex->getAlpha();
|
|
mpBlackTex->setAlpha(0xff);
|
|
mpBlackTex->draw(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(),
|
|
mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF(), false, false, false);
|
|
mpBlackTex->setAlpha(prevAlpha);
|
|
mpBaseScreen->draw(0.0f, 0.0f, grafContext);
|
|
u32 left, top, width, height;
|
|
GXGetScissor(&left, &top, &width, &height);
|
|
CPaneMgr afStack_138;
|
|
Mtx mtx;
|
|
Vec local_178;
|
|
local_178 = afStack_138.getGlobalVtx(field_0x1ec, &mtx, 0, false, 0);
|
|
f32 x1 = local_178.x;
|
|
f32 y1 = local_178.y;
|
|
Vec local_184;
|
|
local_184 = afStack_138.getGlobalVtx(field_0x1ec, &mtx, 3, false, 0);
|
|
f32 dVar17 = mDoGph_gInf_c::getWidthF() / 608.0f;
|
|
f32 dVar16 = mDoGph_gInf_c::getHeightF() / 448.0f;
|
|
f32 fVar1 = (x1 - mDoGph_gInf_c::getMinXF()) / dVar17;
|
|
f32 fVar2 = y1 / dVar16;
|
|
grafContext->scissor(fVar1, fVar2,
|
|
(local_184.x - x1) / dVar17,
|
|
(local_184.y - y1) / dVar16);
|
|
grafContext->setScissor();
|
|
mpMenuScreen->draw(field_0x358, 0.0f, grafContext);
|
|
if (mProcess == 2 || mProcess == 1) {
|
|
mpMenuDMYScreen->draw(field_0x358 + field_0x35c, 0.0f, grafContext);
|
|
}
|
|
grafContext->scissor(
|
|
left,
|
|
top,
|
|
width,
|
|
height);
|
|
grafContext->setScissor();
|
|
if (mProcess != 2 && mProcess != 1) {
|
|
mpDrawCursor->draw();
|
|
}
|
|
if (mProcess == 3 || mProcess == 4 || mProcess == 5 || mProcess == 6 || mProcess == 7) {
|
|
mpBlackTex->draw(
|
|
mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getWidthF(),
|
|
mDoGph_gInf_c::getHeightF(), 0, false, 0);
|
|
u8 dVar1 = field_0x3ac[field_0x36f * 6 + mIndex] - 1;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpLetterScreen[i]->draw(0.0f, 0.0f, grafContext);
|
|
}
|
|
for (int i = 0; i < 2; i++) {
|
|
J2DTextBox* uVar10 = NULL;
|
|
if (field_0x2f4[i] != NULL) {
|
|
uVar10 = (J2DTextBox*)field_0x2f4[i]->getPanePtr();
|
|
}
|
|
J2DTextBox* uVar18 = (J2DTextBox*)field_0x2ec[i]->getPanePtr();
|
|
mpString->getStringPage(dMenu_Letter::getLetterText(dVar1), field_0x3e3 - 1, LINE_MAX,
|
|
uVar18, uVar10, NULL, NULL, 0);
|
|
}
|
|
mpString->drawOutFont((J2DTextBox*)field_0x2ec[1]->getPanePtr(), -1.0f);
|
|
if (mProcess == 4) {
|
|
mpArrow->draw();
|
|
}
|
|
}
|
|
mpIconScreen->draw(0.0f, 0.0f, grafContext);
|
|
}
|
|
|
|
/* 801DD934-801DD95C 1D8274 0028+00 0/0 2/2 0/0 .text isSync__14dMenu_Letter_cFv */
|
|
bool dMenu_Letter_c::isSync() {
|
|
if (mpMount != NULL && mpMount->sync() == false) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
/* 801DD95C-801DDA20 1D829C 00C4+00 1/1 0/0 0/0 .text letter_init_calc__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::letter_init_calc() {
|
|
m_letter_num = getLetterNum();
|
|
for (int i = 0; i < 54; i++) {
|
|
if (i < m_letter_num) {
|
|
field_0x3ac[i] = dComIfGs_getGetNumber(m_letter_num - i - 1);
|
|
} else {
|
|
field_0x3ac[i] = 0xff;
|
|
}
|
|
}
|
|
if (m_letter_num < 6) {
|
|
field_0x373 = m_letter_num;
|
|
} else {
|
|
field_0x373 = 6;
|
|
}
|
|
if (m_letter_num % 6 == 0) {
|
|
field_0x374 = m_letter_num / 6;
|
|
} else {
|
|
field_0x374 = m_letter_num / 6 + 1;
|
|
}
|
|
}
|
|
|
|
/* 801DDA20-801DDA74 1D8360 0054+00 1/1 0/0 0/0 .text init__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::init() {
|
|
setPageText();
|
|
changeActiveColor();
|
|
(this->*map_init_process[mProcess])();
|
|
}
|
|
|
|
/* 801DDA74-801DDC98 1D83B4 0224+00 0/0 2/2 0/0 .text _open__14dMenu_Letter_cFv */
|
|
int dMenu_Letter_c::_open() {
|
|
if (mpMount == NULL) {
|
|
mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/letres.arc", 0, NULL);
|
|
}
|
|
if (!mpArchive) {
|
|
if (mpMount->sync() != 0) {
|
|
if (!mpArchive) {
|
|
mpArchive = (JKRArchive*)mpMount->getArchive();
|
|
delete mpMount;
|
|
mpMount = NULL;
|
|
_create();
|
|
}
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s16 openWindowFrame =
|
|
g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME];
|
|
s16 closeWindowFrame =
|
|
g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME];
|
|
field_0x368 = g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME];
|
|
if (field_0x368 >= openWindowFrame) {
|
|
field_0x368 = closeWindowFrame;
|
|
mStatus = 2;
|
|
for (int i = 0; i < 3; i++) {
|
|
mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale,
|
|
g_drawHIO.mLetterSelectScreen.mWindowScale);
|
|
mpParent[i]->setAlphaRate(1.0f);
|
|
}
|
|
setCursorPos();
|
|
mpDrawCursor->setAlphaRate(1.0f);
|
|
mpDrawCursor->setScale(1.0f);
|
|
mpDrawCursor->onPlayAnime(0);
|
|
return 1;
|
|
} else {
|
|
f32 div = (f32)field_0x368 / (f32)openWindowFrame;
|
|
for (int i = 0; i < 3; i++) {
|
|
mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale * div,
|
|
g_drawHIO.mLetterSelectScreen.mWindowScale * div);
|
|
mpParent[i]->setAlphaRate(div);
|
|
}
|
|
setCursorPos();
|
|
mpDrawCursor->setAlphaRate(div);
|
|
mpDrawCursor->setScale(div);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/* 801DDC98-801DDE18 1D85D8 0180+00 0/0 1/1 0/0 .text _close__14dMenu_Letter_cFv */
|
|
int dMenu_Letter_c::_close() {
|
|
s16 closeWindowFrame =
|
|
g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME];
|
|
field_0x368 = 0;
|
|
if (field_0x368 <= 0) {
|
|
field_0x368 = 0;
|
|
mStatus = 0;
|
|
for (int i = 0; i < 3; i++) {
|
|
mpParent[i]->scale(0.0f, 0.0f);
|
|
mpParent[i]->setAlphaRate(0.0f);
|
|
}
|
|
setCursorPos();
|
|
mpDrawCursor->setAlphaRate(0.0f);
|
|
mpDrawCursor->setScale(0.0f);
|
|
return 1;
|
|
} else {
|
|
f32 div = (f32)field_0x368 / (f32)closeWindowFrame;
|
|
for (int i = 0; i < 3; i++) {
|
|
mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale * div,
|
|
g_drawHIO.mLetterSelectScreen.mWindowScale * div);
|
|
mpParent[i]->setAlphaRate(div);
|
|
}
|
|
setCursorPos();
|
|
mpDrawCursor->setAlphaRate(div);
|
|
mpDrawCursor->setScale(div);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/* 801DDE18-801DDE54 1D8758 003C+00 1/0 0/0 0/0 .text wait_init__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::wait_init() {
|
|
setAButtonString(0x40c);
|
|
setBButtonString(0x3f9);
|
|
}
|
|
|
|
/* 801DDE54-801DE164 1D8794 0310+00 1/0 0/0 0/0 .text wait_move__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::wait_move() {
|
|
u8 oldIndex = mIndex;
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 1) {
|
|
if (mDoCPd_c::getTrigB(PAD_1) != 0) {
|
|
mpDrawCursor->offPlayAnime(0);
|
|
mStatus = 3;
|
|
} else if (mDoCPd_c::getTrigA(PAD_1)) {
|
|
mProcess = 3;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
} else if (mpStick->checkUpTrigger()) {
|
|
if (mIndex) {
|
|
mIndex--;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
}
|
|
|
|
} else if (mpStick->checkDownTrigger()) {
|
|
if (mIndex < field_0x373 - 1) {
|
|
mIndex++;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
}
|
|
} else if (mDoCPd_c::getTrigR(PAD_1)) {
|
|
if (field_0x36f < field_0x374 - 1) {
|
|
field_0x372 = field_0x36f;
|
|
field_0x36f++;
|
|
mProcess = 2;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_NEXT, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
|
|
-1.0f, 0);
|
|
}
|
|
} else if (mDoCPd_c::getTrigL(PAD_1)) {
|
|
if (field_0x36f) {
|
|
field_0x372 = field_0x36f;
|
|
field_0x36f--;
|
|
mProcess = 1;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_NEXT, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
|
|
-1.0f, 0);
|
|
}
|
|
}
|
|
|
|
if (mProcess == 1 || mProcess == 2) {
|
|
#if VERSION == VERSION_GCN_JPN
|
|
J2DTextBox* textBox = (J2DTextBox*)mpBaseScreen->search('t_t00');
|
|
mpBaseScreen->search('f_t_00')->hide();
|
|
#else
|
|
J2DTextBox* textBox = (J2DTextBox*)mpBaseScreen->search('f_t_00');
|
|
mpBaseScreen->search('t_t00')->hide();
|
|
#endif
|
|
dComIfGp_setMessageCountNumber(field_0x374 + (field_0x36f + 1) * 100);
|
|
mpString->getString(0x4d6, textBox, NULL, NULL, NULL, 0);
|
|
}
|
|
if (oldIndex != mIndex) {
|
|
changeActiveColor();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 801DE164-801DE1E8 1D8AA4 0084+00 1/0 0/0 0/0 .text slide_right_init__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::slide_right_init() {
|
|
field_0x358 = -field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale();
|
|
field_0x35c = field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale();
|
|
changePageLight();
|
|
copyDMYMenu();
|
|
setAButtonString(0);
|
|
setBButtonString(0);
|
|
}
|
|
|
|
/* 801DE1E8-801DE24C 1D8B28 0064+00 1/0 0/0 0/0 .text slide_right_move__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::slide_right_move() {
|
|
cLib_addCalc2(&field_0x358, 0.0f, 0.5f, 50.0f);
|
|
if (fabsf(field_0x358) < 0.1f) {
|
|
field_0x358 = 0.0f;
|
|
mProcess = 0;
|
|
}
|
|
}
|
|
|
|
/* 801DE24C-801DE2D0 1D8B8C 0084+00 1/0 0/0 0/0 .text slide_left_init__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::slide_left_init() {
|
|
field_0x358 = field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale();
|
|
field_0x35c = -field_0x1ec->getWidth() * mDoGph_gInf_c::getInvScale();
|
|
changePageLight();
|
|
copyDMYMenu();
|
|
setAButtonString(0);
|
|
setBButtonString(0);
|
|
}
|
|
|
|
/* 801DE2D0-801DE334 1D8C10 0064+00 1/0 0/0 0/0 .text slide_left_move__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::slide_left_move() {
|
|
cLib_addCalc2(&field_0x358, 0.0f, 0.5f, 50.0f);
|
|
if (fabsf(field_0x358) < 0.1f) {
|
|
field_0x358 = 0.0f;
|
|
mProcess = 0;
|
|
}
|
|
}
|
|
|
|
/* 801DE334-801DE564 1D8C74 0230+00 1/0 0/0 0/0 .text read_open_init__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_open_init() {
|
|
field_0x36a = 0;
|
|
u8 idx = field_0x3ac[field_0x36f * 6 + mIndex] - 1;
|
|
field_0x3e3 = 1;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->scale(0.0f, 0.0f);
|
|
mpTextParent[i]->setAlphaRate(0.0f);
|
|
J2DTextBox* text1 = NULL;
|
|
if (field_0x2f4[i] != 0) {
|
|
text1 = (J2DTextBox*)field_0x2f4[i]->getPanePtr();
|
|
}
|
|
J2DTextBox* text2 = (J2DTextBox*)field_0x2ec[i]->getPanePtr();
|
|
mpString->getStringPage(dMenu_Letter::getLetterText(idx), field_0x3e3 - 1, LINE_MAX, text2, text1,
|
|
NULL, NULL, NULL);
|
|
}
|
|
field_0x3e2 = mpString->getPageMax(LINE_MAX);
|
|
if (field_0x3e2 > 1) {
|
|
char acStack_30[20];
|
|
sprintf(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x1e4[i]->show();
|
|
strcpy(field_0x1e4[i]->getStringPtr(), acStack_30);
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x1e4[i]->hide();
|
|
}
|
|
}
|
|
if (!dComIfGs_isLetterReadFlag(idx)) {
|
|
dComIfGs_onLetterReadFlag(idx);
|
|
field_0x34[mIndex][4]->hide();
|
|
}
|
|
setAButtonString(0);
|
|
setBButtonString(0);
|
|
mpBlackTex->setAlpha(0);
|
|
}
|
|
|
|
/* 801DE564-801DE70C 1D8EA4 01A8+00 1/0 0/0 0/0 .text read_open_move__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_open_move() {
|
|
s16 openLetterFrame =
|
|
g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::LETTER_FRAME];
|
|
field_0x36a++;
|
|
if (field_0x36a >= openLetterFrame) {
|
|
mProcess = 4;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale,
|
|
g_drawHIO.mLetterSelectScreen.mLetterWindowScale);
|
|
mpTextParent[i]->setAlphaRate(1.0f);
|
|
}
|
|
mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha);
|
|
} else {
|
|
f32 div = (f32)field_0x36a / (f32)openLetterFrame;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div,
|
|
g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div);
|
|
mpTextParent[i]->setAlphaRate(div);
|
|
}
|
|
mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha * div);
|
|
}
|
|
}
|
|
|
|
/* 801DE70C-801DE824 1D904C 0118+00 1/0 0/0 0/0 .text read_move_init__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_move_init() {
|
|
mpArrow->arwAnimeInit();
|
|
mpArrow->dotAnimeInit();
|
|
if (field_0x3e2 > 1) {
|
|
if (field_0x3e3 == field_0x3e2) {
|
|
setAButtonString(0);
|
|
setBButtonString(0x3f9);
|
|
} else {
|
|
setAButtonString(0x408);
|
|
setBButtonString(0x3f9);
|
|
}
|
|
CPaneMgr paneMgr;
|
|
J2DPane* pane = mpLetterScreen[0]->search('set_ya_n');
|
|
Vec pos = paneMgr.getGlobalVtxCenter(pane, false, 0);
|
|
mpArrow->setPos(pos.x, pos.y);
|
|
} else {
|
|
setAButtonString(0);
|
|
setBButtonString(0x3f9);
|
|
}
|
|
}
|
|
|
|
/* 801DE824-801DEA48 1D9164 0224+00 1/0 0/0 0/0 .text read_move_move__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_move_move() {
|
|
if (mDoCPd_c::getTrigA(PAD_1) != 0) {
|
|
if (field_0x3e3 == field_0x3e2) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
mProcess = 7;
|
|
} else {
|
|
mProcess = 5;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_NEXT_PAGE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
dMeter2Info_set2DVibration();
|
|
field_0x3e4 = 1;
|
|
}
|
|
} else if (mDoCPd_c::getTrigB(PAD_1) != 0) {
|
|
if (field_0x3e3 <= 1) {
|
|
mProcess = 7;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
} else {
|
|
mProcess = 5;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_LETTER_NEXT_PAGE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
dMeter2Info_set2DVibration();
|
|
field_0x3e4 = 0;
|
|
}
|
|
} else if (field_0x3e2 > 1) {
|
|
if (field_0x3e3 == field_0x3e2) {
|
|
mpArrow->dotAnimeMove();
|
|
} else {
|
|
mpArrow->arwAnimeMove();
|
|
}
|
|
CPaneMgr paneMgr;
|
|
J2DPane* pane = mpLetterScreen[0]->search('set_ya_n');
|
|
Vec pos = paneMgr.getGlobalVtxCenter(pane, false, 0);
|
|
mpArrow->setPos(pos.x, pos.y);
|
|
}
|
|
}
|
|
|
|
/* 801DEA48-801DEA94 1D9388 004C+00 1/0 0/0 0/0 .text read_next_fadeout_init__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_next_fadeout_init() {
|
|
field_0x36a = g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME];
|
|
setAButtonString(0);
|
|
setBButtonString(0);
|
|
}
|
|
|
|
/* 801DEA94-801DEBD8 1D93D4 0144+00 1/0 0/0 0/0 .text read_next_fadeout_move__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_next_fadeout_move() {
|
|
s16 closeWindowFrame =
|
|
g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::WINDOW_FRAME];
|
|
field_0x36a--;
|
|
if (field_0x36a <= 0) {
|
|
mProcess = 6;
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2ec[i]->setAlphaRate(0.0f);
|
|
|
|
if (field_0x2f4[i] != NULL) {
|
|
field_0x2f4[i]->setAlphaRate(0.0f);
|
|
}
|
|
}
|
|
if (field_0x3e4 != 0) {
|
|
field_0x3e3++;
|
|
} else {
|
|
field_0x3e3--;
|
|
}
|
|
} else {
|
|
f32 div = (f32)field_0x36a / (f32)closeWindowFrame;
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2ec[i]->setAlphaRate(div);
|
|
if (field_0x2f4[i]) {
|
|
field_0x2f4[i]->setAlphaRate(div);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801DEBD8-801DED04 1D9518 012C+00 1/0 0/0 0/0 .text read_next_fadein_init__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::read_next_fadein_init() {
|
|
field_0x36a = 0;
|
|
u8 idx = field_0x3ac[field_0x36f * 6 + mIndex] - 1;
|
|
for (int i = 0; i < 2; i++) {
|
|
J2DTextBox* text1 = NULL;
|
|
if (field_0x2f4[i] != 0) {
|
|
text1 = (J2DTextBox*)field_0x2f4[i]->getPanePtr();
|
|
}
|
|
J2DTextBox* text2 = (J2DTextBox*)field_0x2ec[i]->getPanePtr();
|
|
mpString->getStringPage(dMenu_Letter::getLetterText(idx), field_0x3e3 - 1, LINE_MAX, text2, text1, NULL, NULL, NULL);
|
|
}
|
|
char acStack_30[10];
|
|
sprintf(acStack_30, "%d/%d", field_0x3e3, field_0x3e2);
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x1e4[i]->show();
|
|
strcpy(field_0x1e4[i]->getStringPtr(), acStack_30);
|
|
}
|
|
}
|
|
|
|
/* 801DED04-801DEE20 1D9644 011C+00 1/0 0/0 0/0 .text read_next_fadein_move__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::read_next_fadein_move() {
|
|
s16 openLetterFrame =
|
|
g_drawHIO.mLetterSelectScreen.mOpenFrame[dMeter_drawLetterHIO_c::LETTER_FRAME];
|
|
field_0x36a++;
|
|
if (field_0x36a >= openLetterFrame) {
|
|
mProcess = 4;
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2ec[i]->setAlphaRate(1.0f);
|
|
if (field_0x2f4[i] != NULL) {
|
|
field_0x2f4[i]->setAlphaRate(1.0f);
|
|
}
|
|
}
|
|
} else {
|
|
f32 div = (f32)field_0x36a / (f32)openLetterFrame;
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2ec[i]->setAlphaRate(div);
|
|
if (field_0x2f4[i] != NULL) {
|
|
field_0x2f4[i]->setAlphaRate(div);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801DEE20-801DEE6C 1D9760 004C+00 1/0 0/0 0/0 .text read_close_init__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_close_init() {
|
|
field_0x36a = g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME];
|
|
setAButtonString(0);
|
|
setBButtonString(0);
|
|
}
|
|
|
|
/* 801DEE6C-801DF010 1D97AC 01A4+00 1/0 0/0 0/0 .text read_close_move__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::read_close_move() {
|
|
s16 closeLetterFrame =
|
|
g_drawHIO.mLetterSelectScreen.mCloseFrame[dMeter_drawLetterHIO_c::LETTER_FRAME];
|
|
field_0x36a--;
|
|
if (field_0x36a <= 0) {
|
|
mProcess = 0;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->scale(0.0f, 0.0f);
|
|
mpTextParent[i]->setAlphaRate(0.0f);
|
|
}
|
|
mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha);
|
|
} else {
|
|
f32 div = (f32)field_0x36a / (f32)closeLetterFrame;
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div,
|
|
g_drawHIO.mLetterSelectScreen.mLetterWindowScale * div);
|
|
mpTextParent[i]->setAlphaRate(div);
|
|
}
|
|
mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha * div);
|
|
}
|
|
}
|
|
|
|
/* 801DF010-801DFA28 1D9950 0A18+00 1/1 0/0 0/0 .text screenSetMenu__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::screenSetMenu() {
|
|
static const u64 tag_sub0[6] = {
|
|
'menu_t0s', 'menu_t1s', 'menu_t2s', 'menu_t3s', 'menu_t4s', 'menu_t5s',
|
|
};
|
|
static const u64 tag_sub1[6] = {
|
|
'menu_t0', 'menu_t1', 'menu_t2', 'menu_t3', 'menu_t4', 'menu_t5',
|
|
};
|
|
static const u64 tag_name0[6] = {
|
|
'menu_t6s', 'menu_f7s', 'menu_f8s', 'menu_t9s', 'menu_10s', 'menu_11s',
|
|
};
|
|
static const u64 tag_name1[6] = {
|
|
'menu_f6', 'menu_f7', 'menu_t8', 'menu_t9', 'menu_t10', 'menu_t11',
|
|
};
|
|
static const u64 ftag_sub0[6] = {
|
|
'fenu_t0s', 'fenu_t1s', 'fenu_t2s', 'fenu_t3s', 'fenu_t4s', 'fenu_t5s',
|
|
};
|
|
static const u64 ftag_sub1[6] = {
|
|
'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5',
|
|
};
|
|
static const u64 ftag_name0[6] = {
|
|
'fenu_t6s', 'fenu_t7s', 'fenu_f8s', 'fenu_t9s', 'fenu_10s', 'fenu_11s',
|
|
};
|
|
static const u64 ftag_name1[6] = {
|
|
'fenu_t6', 'fenu_t7', 'fenu_t8', 'fenu_t9', 'fenu_t10', 'fenu_t11',
|
|
};
|
|
static const u64 tag_letter[6] = {
|
|
'let_00_n', 'let_01_n', 'let_02_n', 'let_03_n', 'let_04_n', 'let_05_n',
|
|
};
|
|
static const u64 tag_frame[6] = {
|
|
'flame_00', 'flame_01', 'flame_02', 'flame_03', 'flame_04', 'flame_05',
|
|
};
|
|
static const u64 tag_menu0[6] = {
|
|
#if VERSION == VERSION_GCN_JPN
|
|
'menu_t0', 'menu_t1', 'menu_t2', 'menu_t3', 'menu_t4', 'menu_t5',
|
|
#else
|
|
'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5',
|
|
#endif
|
|
};
|
|
static const u64 tag_menu1[6] = {
|
|
#if VERSION == VERSION_GCN_JPN
|
|
'menu_f6', 'menu_f7', 'menu_t8', 'menu_t9', 'menu_t10', 'menu_t11',
|
|
#else
|
|
'fenu_t6', 'fenu_t7', 'fenu_t8', 'fenu_t9', 'fenu_t10', 'fenu_t11',
|
|
#endif
|
|
};
|
|
static const u64 tag_midoku[6] = {
|
|
'midoku_0', 'midoku_1', 'midoku_2', 'midoku_3', 'midoku_4', 'midoku_5',
|
|
};
|
|
|
|
mpMenuScreen = new J2DScreen();
|
|
JUT_ASSERT(1146, mpMenuScreen != NULL);
|
|
bool fg = mpMenuScreen->setPriority("zelda_letter_select_6menu.blo", 0x20000, mpArchive);
|
|
JUT_ASSERT(1156, fg != false);
|
|
dPaneClass_showNullPane(mpMenuScreen);
|
|
mpParent[0] = new CPaneMgr(mpMenuScreen, 'n_all', 2, NULL);
|
|
JUT_ASSERT(1161, mpParent[0] != NULL);
|
|
mpParent[0]->setAlphaRate(0.0f);
|
|
for (int i = 0; i < 6; i++) {
|
|
#if VERSION == VERSION_GCN_JPN
|
|
field_0x124[i][0] = (J2DTextBox*)mpMenuScreen->search(tag_sub0[i]);
|
|
field_0x124[i][1] = (J2DTextBox*)mpMenuScreen->search(tag_sub1[i]);
|
|
field_0x124[i][2] = (J2DTextBox*)mpMenuScreen->search(tag_name0[i]);
|
|
field_0x124[i][3] = (J2DTextBox*)mpMenuScreen->search(tag_name1[i]);
|
|
mpMenuScreen->search(ftag_sub0[i])->hide();
|
|
mpMenuScreen->search(ftag_sub1[i])->hide();
|
|
mpMenuScreen->search(ftag_name0[i])->hide();
|
|
mpMenuScreen->search(ftag_name1[i])->hide();
|
|
#else
|
|
field_0x124[i][0] = (J2DTextBox*)mpMenuScreen->search(ftag_sub0[i]);
|
|
field_0x124[i][1] = (J2DTextBox*)mpMenuScreen->search(ftag_sub1[i]);
|
|
field_0x124[i][2] = (J2DTextBox*)mpMenuScreen->search(ftag_name0[i]);
|
|
field_0x124[i][3] = (J2DTextBox*)mpMenuScreen->search(ftag_name1[i]);
|
|
mpMenuScreen->search(tag_sub0[i])->hide();
|
|
mpMenuScreen->search(tag_sub1[i])->hide();
|
|
mpMenuScreen->search(tag_name0[i])->hide();
|
|
mpMenuScreen->search(tag_name1[i])->hide();
|
|
#endif
|
|
for (int j = 0; j < 4; j++) {
|
|
field_0x124[i][j]->setFont(mDoExt_getMesgFont());
|
|
field_0x124[i][j]->setString(0x40, "");
|
|
}
|
|
}
|
|
for (int i = 0; i < 6; i++) {
|
|
mpLetterParent[i] = new CPaneMgr(mpMenuScreen, tag_letter[i], 0, NULL);
|
|
JUT_ASSERT(1212, mpLetterParent[i] != NULL);
|
|
}
|
|
for (int i = 0; i < 6; i++) {
|
|
field_0x34[i][0] = mpMenuScreen->search(tag_frame[i]);
|
|
field_0x34[i][1] = mpMenuScreen->search(tag_menu0[i]);
|
|
field_0x34[i][2] = mpMenuScreen->search(tag_menu1[i]);
|
|
field_0x34[i][3] = mpMenuScreen->search(tag_letter[i]);
|
|
field_0x34[i][4] = mpMenuScreen->search(tag_midoku[i]);
|
|
if (i < field_0x373) {
|
|
field_0x34[i][3]->show();
|
|
field_0x34[i][4]->show();
|
|
} else {
|
|
field_0x34[i][3]->hide();
|
|
field_0x34[i][4]->hide();
|
|
}
|
|
}
|
|
for (int i = 0; i < 4; i++) {
|
|
if (i == 0) {
|
|
field_0x328[i] = ((J2DPicture*)field_0x34[0][i])->getBlack();
|
|
field_0x348[i] = ((J2DPicture*)field_0x34[0][i])->getWhite();
|
|
field_0x318[i] = ((J2DPicture*)field_0x34[1][i])->getBlack();
|
|
field_0x338[i] = ((J2DPicture*)field_0x34[1][i])->getWhite();
|
|
field_0x328[i].a = 0xff;
|
|
field_0x318[i].a = 0xff;
|
|
} else if (i == 3) {
|
|
field_0x328[i] = field_0x124[i][1]->getBlack();
|
|
field_0x348[i] = field_0x124[i][1]->getWhite();
|
|
field_0x318[i] = field_0x124[i][1]->getBlack();
|
|
field_0x338[i] = field_0x124[i][1]->getWhite();
|
|
} else {
|
|
// Unclear what type is field_0x34
|
|
field_0x328[i] = ((J2DTextBox*)field_0x34[0][i])->getBlack();
|
|
field_0x348[i] = ((J2DTextBox*)field_0x34[0][i])->getWhite();
|
|
field_0x318[i] = ((J2DTextBox*)field_0x34[1][i])->getBlack();
|
|
field_0x338[i] = ((J2DTextBox*)field_0x34[1][i])->getWhite();
|
|
}
|
|
}
|
|
mpMenuDMYScreen = new J2DScreen();
|
|
JUT_ASSERT(1270, mpMenuDMYScreen != NULL);
|
|
fg = mpMenuDMYScreen->setPriority("zelda_letter_select_6menu.blo", 0x20000, mpArchive);
|
|
JUT_ASSERT(1280, fg != false);
|
|
dPaneClass_showNullPane(mpMenuDMYScreen);
|
|
mpDMYParent = new CPaneMgr(mpMenuDMYScreen, 'n_all', 2, NULL);
|
|
JUT_ASSERT(1285, mpDMYParent != NULL);
|
|
for (int i = 0; i < 6; i++) {
|
|
#if VERSION == VERSION_GCN_JPN
|
|
field_0x184[i][0] = (J2DTextBox*)mpMenuDMYScreen->search(tag_sub0[i]);
|
|
field_0x184[i][1] = (J2DTextBox*)mpMenuDMYScreen->search(tag_sub1[i]);
|
|
field_0x184[i][2] = (J2DTextBox*)mpMenuDMYScreen->search(tag_name0[i]);
|
|
field_0x184[i][3] = (J2DTextBox*)mpMenuDMYScreen->search(tag_name1[i]);
|
|
mpMenuDMYScreen->search(ftag_sub0[i])->hide();
|
|
mpMenuDMYScreen->search(ftag_sub1[i])->hide();
|
|
mpMenuDMYScreen->search(ftag_name0[i])->hide();
|
|
mpMenuDMYScreen->search(ftag_name1[i])->hide();
|
|
#else
|
|
field_0x184[i][0] = (J2DTextBox*)mpMenuDMYScreen->search(ftag_sub0[i]);
|
|
field_0x184[i][1] = (J2DTextBox*)mpMenuDMYScreen->search(ftag_sub1[i]);
|
|
field_0x184[i][2] = (J2DTextBox*)mpMenuDMYScreen->search(ftag_name0[i]);
|
|
field_0x184[i][3] = (J2DTextBox*)mpMenuDMYScreen->search(ftag_name1[i]);
|
|
mpMenuDMYScreen->search(tag_sub0[i])->hide();
|
|
mpMenuDMYScreen->search(tag_sub1[i])->hide();
|
|
mpMenuDMYScreen->search(tag_name0[i])->hide();
|
|
mpMenuDMYScreen->search(tag_name1[i])->hide();
|
|
#endif
|
|
for (int j = 0; j < 4; j = j + 1) {
|
|
field_0x184[i][j]->setFont(mDoExt_getMesgFont());
|
|
field_0x184[i][j]->setString(0x40, "");
|
|
}
|
|
}
|
|
for (int i = 0; i < 6; i++) {
|
|
field_0xac[i][0] = (J2DTextBox*)mpMenuDMYScreen->search(tag_frame[i]);
|
|
field_0xac[i][1] = (J2DTextBox*)mpMenuDMYScreen->search(tag_menu0[i]);
|
|
field_0xac[i][2] = (J2DTextBox*)mpMenuDMYScreen->search(tag_menu1[i]);
|
|
field_0xac[i][3] = (J2DTextBox*)mpMenuDMYScreen->search(tag_letter[i]);
|
|
field_0xac[i][4] = (J2DTextBox*)mpMenuDMYScreen->search(tag_midoku[i]);
|
|
}
|
|
}
|
|
|
|
/* 801DFA58-801E0330 1DA398 08D8+00 1/1 0/0 0/0 .text screenSetBase__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::screenSetBase() {
|
|
static const u64 tag_pip[9] = {
|
|
'pi_00_n', 'pi_01_n', 'pi_02_n', 'pi_03_n', 'pi_04_n',
|
|
'pi_05_n', 'pi_06_n', 'pi_07_n', 'pi_08_n',
|
|
};
|
|
static const u64 tag_pil[9] = {
|
|
'pi_l_00', 'pi_l_01', 'pi_l_02', 'pi_l_03', 'pi_l_04',
|
|
'pi_l_05', 'pi_l_06', 'pi_l_07', 'pi_l_08',
|
|
};
|
|
static const u64 tag_pii[9] = {
|
|
'pi_00', 'pi_01', 'pi_02', 'pi_03', 'pi_04', 'pi_05', 'pi_06', 'pi_07', 'pi_08',
|
|
};
|
|
|
|
mpBaseScreen = new J2DScreen();
|
|
JUT_ASSERT(1357, mpBaseScreen != NULL);
|
|
bool fg = mpBaseScreen->setPriority("zelda_letter_select_base.blo", 0x20000, mpArchive);
|
|
JUT_ASSERT(1361, fg != false);
|
|
dPaneClass_showNullPane(mpBaseScreen);
|
|
mpBaseScreen->search('wi_btn_n')->hide();
|
|
mpParent[1] = new CPaneMgr(mpBaseScreen, 'n_all', 2, NULL);
|
|
JUT_ASSERT(1372, mpParent[1] != NULL);
|
|
mpParent[1]->setAlphaRate(0.0f);
|
|
#if VERSION == VERSION_GCN_JPN
|
|
J2DTextBox* piVar9 = (J2DTextBox*)mpBaseScreen->search('t_t00');
|
|
mpBaseScreen->search('f_t_00')->hide();
|
|
#else
|
|
J2DTextBox* piVar9 = (J2DTextBox*)mpBaseScreen->search('f_t_00');
|
|
mpBaseScreen->search('t_t00')->hide();
|
|
#endif
|
|
piVar9->setString(0x40, "");
|
|
piVar9->setFont(mDoExt_getSubFont());
|
|
dComIfGp_setMessageCountNumber(field_0x374 + (field_0x36f + 1) * 100);
|
|
mpString->getString(0x4d6, piVar9, NULL, NULL, NULL, 0);
|
|
#if VERSION == VERSION_GCN_JPN
|
|
J2DTextBox* text1 = (J2DTextBox*)mpBaseScreen->search('wps_text');
|
|
J2DTextBox* text2 = (J2DTextBox*)mpBaseScreen->search('w_p_text');
|
|
J2DTextBox* text3 = (J2DTextBox*)mpBaseScreen->search('g_ps_txt');
|
|
J2DTextBox* text4 = (J2DTextBox*)mpBaseScreen->search('g_p_text');
|
|
mpBaseScreen->search('fwpstex1')->hide();
|
|
mpBaseScreen->search('fwp_tex1')->hide();
|
|
mpBaseScreen->search('fgps_tx1')->hide();
|
|
mpBaseScreen->search('fgp_tex1')->hide();
|
|
#else
|
|
J2DTextBox* text1 = (J2DTextBox*)mpBaseScreen->search('fwpstex1');
|
|
J2DTextBox* text2 = (J2DTextBox*)mpBaseScreen->search('fwp_tex1');
|
|
J2DTextBox* text3 = (J2DTextBox*)mpBaseScreen->search('fgps_tx1');
|
|
J2DTextBox* text4 = (J2DTextBox*)mpBaseScreen->search('fgp_tex1');
|
|
mpBaseScreen->search('wps_text')->hide();
|
|
mpBaseScreen->search('w_p_text')->hide();
|
|
mpBaseScreen->search('g_ps_txt')->hide();
|
|
mpBaseScreen->search('g_p_text')->hide();
|
|
#endif
|
|
text1->setString(0x40, "");
|
|
text2->setString(0x40, "");
|
|
text3->setString(0x40, "");
|
|
text4->setString(0x40, "");
|
|
text1->setFont(mDoExt_getMesgFont());
|
|
text2->setFont(mDoExt_getMesgFont());
|
|
text3->setFont(mDoExt_getMesgFont());
|
|
text4->setFont(mDoExt_getMesgFont());
|
|
dMeter2Info_getStringKanji(0x4d7, text1->getStringPtr(), 0);
|
|
dMeter2Info_getStringKanji(0x4d7, text2->getStringPtr(), 0);
|
|
dMeter2Info_getStringKanji(0x4d7, text3->getStringPtr(), 0);
|
|
dMeter2Info_getStringKanji(0x4d7, text4->getStringPtr(), 0);
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_00'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_01'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_02'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_03'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_04'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_05'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_06'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_07'))->setFont(mDoExt_getMesgFont());
|
|
((J2DTextBox*)mpBaseScreen->search('pi_no_08'))->setFont(mDoExt_getMesgFont());
|
|
field_0x1ec = (J2DTextBox*)mpBaseScreen->search('let_area');
|
|
for (int i = 0; i < 9; i++) {
|
|
field_0x1f0[i] = (J2DTextBox*)mpBaseScreen->search(tag_pip[i]);
|
|
if (field_0x374 > 1 && i < field_0x374) {
|
|
field_0x1f0[i]->show();
|
|
} else {
|
|
field_0x1f0[i]->hide();
|
|
}
|
|
mpPageLight[i] = (J2DPicture*)mpBaseScreen->search(tag_pil[i]);
|
|
if (i == field_0x36f) {
|
|
mpPageLight[i]->show();
|
|
} else {
|
|
mpPageLight[i]->hide();
|
|
}
|
|
field_0x238[i] = (J2DTextBox*)mpBaseScreen->search(tag_pii[i]);
|
|
}
|
|
if (field_0x374 > 1) {
|
|
J2DPane* pJVar6 = mpBaseScreen->search('pi_n');
|
|
f32 dVar18 = field_0x1f0[1]->getBounds().i.x - field_0x1f0[0]->getBounds().i.x;
|
|
f32 dVar17 = dVar18 * (field_0x374 - 1);
|
|
f32 dVar16 = (pJVar6->getWidth() / 2) - (dVar17 / 2);
|
|
for (int i = 0; i < 9; i++) {
|
|
f32 y = field_0x1f0[i]->getBounds().i.y;
|
|
field_0x1f0[i]->move(dVar16 + dVar18 * i, y);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E0330-801E03D8 1DAC70 00A8+00 1/1 0/0 0/0 .text screenSetShadow__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::screenSetShadow() {
|
|
mpSdwScreen = new J2DScreen();
|
|
mpSdwScreen->setPriority("zelda_letter_select_shadow.blo", 0x20000, mpArchive);
|
|
dPaneClass_showNullPane(mpSdwScreen);
|
|
mpParent[2] = new CPaneMgr(mpSdwScreen, 'n_all', 2, NULL);
|
|
mpParent[2]->setAlphaRate(0.0f);
|
|
}
|
|
|
|
/* 801E03D8-801E09A8 1DAD18 05D0+00 1/1 0/0 0/0 .text screenSetLetter__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::screenSetLetter() {
|
|
mpLetterScreen[0] = new J2DScreen();
|
|
JUT_ASSERT(1507, mpLetterScreen[0] != NULL);
|
|
bool fg = mpLetterScreen[0]->setPriority("zelda_letter_window_base.blo", 0x20000, mpArchive);
|
|
JUT_ASSERT(1511, fg != false);
|
|
dPaneClass_showNullPane(mpLetterScreen[0]);
|
|
|
|
#if VERSION == VERSION_GCN_JPN
|
|
if (dComIfGs_getOptUnk0() == 0) {
|
|
field_0x2ec[0] = new CPaneMgr(mpLetterScreen[0], 't3f_s', 0, NULL);
|
|
field_0x2ec[1] = new CPaneMgr(mpLetterScreen[0], 'mg_3flin', 0, NULL);
|
|
field_0x2f4[0] = new CPaneMgr(mpLetterScreen[0], 'mg_3f_s', 0, NULL);
|
|
field_0x2f4[1] = new CPaneMgr(mpLetterScreen[0], 'mg_3f', 0, NULL);
|
|
mpLetterScreen[0]->search('t4_s')->hide();
|
|
mpLetterScreen[0]->search('mg_e4lin')->hide();
|
|
mpLetterScreen[0]->search('t3_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3line')->hide();
|
|
mpLineParent = new CPaneMgr(mpLetterScreen[0], 'jp_fri_n', 0, NULL);
|
|
JUT_ASSERT(1530, mpLineParent != NULL);
|
|
for (int i = 0; i < 12; i++) {
|
|
static u64 const line_tag[12] = {
|
|
'line00', 'line01', 'line02', 'line03', 'line04', 'line05',
|
|
'line06', 'line07', 'line08',
|
|
};
|
|
|
|
if (line_tag[i] != 0) {
|
|
field_0x25c[i] = (J2DTextBox*)mpLetterScreen[0]->search(line_tag[i]);
|
|
} else {
|
|
field_0x25c[i] = NULL;
|
|
}
|
|
}
|
|
mpLetterScreen[0]->search('jp_n')->hide();
|
|
mpLetterScreen[0]->search('us_n')->hide();
|
|
|
|
((J2DTextBox*)field_0x2f4[0]->getPanePtr())->setLineSpace(((J2DTextBox*)field_0x2ec[0]->getPanePtr())->getLineSpace());
|
|
((J2DTextBox*)field_0x2f4[1]->getPanePtr())->setLineSpace(((J2DTextBox*)field_0x2ec[1]->getPanePtr())->getLineSpace());
|
|
} else {
|
|
field_0x2ec[0] = new CPaneMgr(mpLetterScreen[0], 't3_s', 0, NULL);
|
|
field_0x2ec[1] = new CPaneMgr(mpLetterScreen[0], 'mg_3line', 0, NULL);
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2f4[i] = NULL;
|
|
}
|
|
mpLetterScreen[0]->search('t4_s')->hide();
|
|
mpLetterScreen[0]->search('mg_e4lin')->hide();
|
|
mpLetterScreen[0]->search('t3f_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3flin')->hide();
|
|
mpLetterScreen[0]->search('mg_3f_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3f')->hide();
|
|
mpLineParent = new CPaneMgr(mpLetterScreen[0], 'jp_n', 0, NULL);
|
|
JUT_ASSERT(1530, mpLineParent != NULL);
|
|
for (int i = 0; i < 12; i++) {
|
|
static u64 const line_tag[12] = {
|
|
'line21', 'line22', 'line23', 'line24', 'line25', 'line26',
|
|
'line27', 'line28', 'line29',
|
|
};
|
|
|
|
if (line_tag[i] != 0) {
|
|
field_0x25c[i] = (J2DTextBox*)mpLetterScreen[0]->search(line_tag[i]);
|
|
} else {
|
|
field_0x25c[i] = NULL;
|
|
}
|
|
}
|
|
|
|
mpLetterScreen[0]->search('jp_fri_n')->hide();
|
|
mpLetterScreen[0]->search('us_n')->hide();
|
|
}
|
|
#else
|
|
static u64 const line_tag[12] = {
|
|
'line09', 'line10', 'line11', 'line12', 'line13', 'line14',
|
|
'line15', 'line16', 'line17', 'line18', 'line19', 'line20',
|
|
};
|
|
|
|
field_0x2ec[0] = new CPaneMgr(mpLetterScreen[0], 't4_s', 0, NULL);
|
|
field_0x2ec[1] = new CPaneMgr(mpLetterScreen[0], 'mg_e4lin', 0, NULL);
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x2f4[i] = NULL;
|
|
}
|
|
mpLetterScreen[0]->search('t3f_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3flin')->hide();
|
|
mpLetterScreen[0]->search('mg_3f_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3f')->hide();
|
|
mpLetterScreen[0]->search('t3_s')->hide();
|
|
mpLetterScreen[0]->search('mg_3line')->hide();
|
|
mpLineParent = new CPaneMgr(mpLetterScreen[0], 'us_n', 0, NULL);
|
|
JUT_ASSERT(1530, mpLineParent != NULL);
|
|
for (int i = 0; i < 12; i++) {
|
|
if (line_tag[i] != 0) {
|
|
field_0x25c[i] = (J2DTextBox*)mpLetterScreen[0]->search(line_tag[i]);
|
|
} else {
|
|
field_0x25c[i] = NULL;
|
|
}
|
|
}
|
|
mpLetterScreen[0]->search('jp_fri_n')->hide();
|
|
mpLetterScreen[0]->search('jp_n')->hide();
|
|
#endif
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
((J2DTextBox*)field_0x2ec[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
|
#if VERSION == VERSION_GCN_JPN
|
|
((J2DTextBox*)field_0x2ec[i]->getPanePtr())->setString(0x210, "");
|
|
#else
|
|
((J2DTextBox*)field_0x2ec[i]->getPanePtr())->setString(0x200, "");
|
|
#endif
|
|
if (field_0x2f4[i] != NULL) {
|
|
((J2DTextBox*)field_0x2f4[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
|
#if VERSION == VERSION_GCN_JPN
|
|
((J2DTextBox*)field_0x2f4[i]->getPanePtr())->setString(0x210, "");
|
|
#else
|
|
((J2DTextBox*)field_0x2f4[i]->getPanePtr())->setString(0x200, "");
|
|
#endif
|
|
}
|
|
}
|
|
field_0x1e4[0] = (J2DTextBox*)mpLetterScreen[0]->search('p_texts');
|
|
field_0x1e4[1] = (J2DTextBox*)mpLetterScreen[0]->search('p_text');
|
|
for (int i = 0; i < 2; i++) {
|
|
field_0x1e4[i]->setFont(mDoExt_getSubFont());
|
|
field_0x1e4[i]->setString(0x10, "");
|
|
}
|
|
mpLetterScreen[1] = new J2DScreen();
|
|
JUT_ASSERT(1627, mpLetterScreen[1] != NULL);
|
|
fg = mpLetterScreen[1]->setPriority("zelda_letter_window_spot.blo", 0x20000, mpArchive);
|
|
JUT_ASSERT(1631, fg != false);
|
|
dPaneClass_showNullPane(mpLetterScreen[1]);
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i] = new CPaneMgr(mpLetterScreen[i], 'n_all', 2, NULL);
|
|
JUT_ASSERT(1636, mpTextParent[i] != NULL);
|
|
mpTextParent[i]->scale(0.0f, 0.0f);
|
|
mpTextParent[i]->setAlphaRate(0.0f);
|
|
}
|
|
ResTIMG* local_30 = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti");
|
|
mpBlackTex = new J2DPicture(local_30);
|
|
JUT_ASSERT(1644, mpBlackTex != NULL);
|
|
mpBlackTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
|
mpBlackTex->setAlpha(0);
|
|
}
|
|
|
|
/* 801E09A8-801E0B24 1DB2E8 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::screenSetDoIcon() {
|
|
static const u64 text_a_tag[5] = {
|
|
'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5',
|
|
};
|
|
static const u64 text_b_tag[5] = {
|
|
'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5',
|
|
};
|
|
|
|
mpIconScreen = new J2DScreen();
|
|
mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive);
|
|
for (int i = 0; i < 2; i++) {
|
|
mpButtonAB[i] = NULL;
|
|
mpButtonText[i] = NULL;
|
|
}
|
|
dPaneClass_showNullPane(mpIconScreen);
|
|
for (int i = 0; i < 5; i++) {
|
|
mpAButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_a_tag[i]);
|
|
mpBButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_b_tag[i]);
|
|
mpAButtonString[i]->setFont(mDoExt_getMesgFont());
|
|
mpBButtonString[i]->setFont(mDoExt_getMesgFont());
|
|
mpAButtonString[i]->setString(0x20, "");
|
|
mpBButtonString[i]->setString(0x20, "");
|
|
}
|
|
}
|
|
|
|
|
|
/* 801E0B24-801E0BB0 1DB464 008C+00 3/3 0/0 0/0 .text setCursorPos__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::setCursorPos() {
|
|
Vec pos = mpLetterParent[mIndex]->getGlobalVtxCenter(mpLetterParent[mIndex]->mPane, false, 0);
|
|
mpDrawCursor->setPos(pos.x, pos.y, mpLetterParent[mIndex]->getPanePtr(), false);
|
|
}
|
|
|
|
/* 801E0BB0-801E0E34 1DB4F0 0284+00 3/3 0/0 0/0 .text changeActiveColor__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::changeActiveColor() {
|
|
setCursorPos();
|
|
for (int i = 0; (int)i < 6; i++) {
|
|
if (i == mIndex) {
|
|
((J2DPicture*)field_0x34[i][0])->setBlackWhite(field_0x318[0], field_0x338[0]);
|
|
((J2DTextBox*)field_0x34[i][1])->setBlackWhite(field_0x318[1], field_0x338[1]);
|
|
((J2DTextBox*)field_0x34[i][2])->setBlackWhite(field_0x318[2], field_0x338[2]);
|
|
field_0x124[i][1]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
field_0x124[i][3]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
mpLetterParent[i]->scale(field_0x360, field_0x360);
|
|
} else {
|
|
((J2DPicture*)field_0x34[i][0])->setBlackWhite(field_0x328[0], field_0x348[0]);
|
|
((J2DTextBox*)field_0x34[i][1])->setBlackWhite(field_0x328[1], field_0x348[1]);
|
|
((J2DTextBox*)field_0x34[i][2])->setBlackWhite(field_0x328[2], field_0x348[2]);
|
|
field_0x124[i][1]->setBlackWhite(field_0x328[3], field_0x348[3]);
|
|
field_0x124[i][3]->setBlackWhite(field_0x328[3], field_0x348[3]);
|
|
mpLetterParent[i]->scale(field_0x364, field_0x364);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E0E34-801E0E84 1DB774 0050+00 2/2 0/0 0/0 .text changePageLight__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::changePageLight() {
|
|
for (int i = 0; i < 9; i++) {
|
|
if (i == field_0x36f) {
|
|
mpPageLight[i]->show();
|
|
} else {
|
|
mpPageLight[i]->hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E0E84-801E1038 1DB7C4 01B4+00 2/2 0/0 0/0 .text setPageText__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::setPageText() {
|
|
int dVar1 = field_0x36f * 6;
|
|
for (int i = 0; i < field_0x373; i++) {
|
|
u8 idx = field_0x3ac[i + dVar1] - 1;
|
|
mpString->getString(dMenu_Letter::getLetterSubject(idx),field_0x124[i][0], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterSubject(idx),field_0x124[i][1], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterName(idx),field_0x124[i][2], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterName(idx),field_0x124[i][3], NULL, NULL, NULL, 0);
|
|
}
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i < field_0x373) {
|
|
u8 idx = field_0x3ac[i + dVar1] - 1;
|
|
if (!dComIfGs_isLetterReadFlag(idx)) {
|
|
field_0x34[i][4]->show();
|
|
} else {
|
|
field_0x34[i][4]->hide();
|
|
}
|
|
} else {
|
|
field_0x34[i][4]->hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E1038-801E11EC 1DB978 01B4+00 1/1 0/0 0/0 .text setDMYPageText__14dMenu_Letter_cFv
|
|
*/
|
|
void dMenu_Letter_c::setDMYPageText() {
|
|
int dVar1 = field_0x372 * 6;
|
|
for (int i = 0; i < field_0x373; i++) {
|
|
u8 idx = field_0x3ac[i + dVar1] - 1;
|
|
mpString->getString(dMenu_Letter::getLetterSubject(idx),field_0x184[i][0], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterSubject(idx),field_0x184[i][1], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterName(idx),field_0x184[i][2], NULL, NULL, NULL, 0);
|
|
mpString->getString(dMenu_Letter::getLetterName(idx),field_0x184[i][3], NULL, NULL, NULL, 0);
|
|
}
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i < field_0x373) {
|
|
u8 idx = field_0x3ac[i + dVar1] - 1;
|
|
if (!dComIfGs_isLetterReadFlag(idx)) {
|
|
field_0xac[i][4]->show();
|
|
} else {
|
|
field_0xac[i][4]->hide();
|
|
}
|
|
} else {
|
|
field_0xac[i][4]->hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E11EC-801E1518 1DBB2C 032C+00 2/2 0/0 0/0 .text copyDMYMenu__14dMenu_Letter_cFv */
|
|
void dMenu_Letter_c::copyDMYMenu() {
|
|
setDMYPageText();
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i == mIndex) {
|
|
((J2DPicture*)field_0xac[i][0])->setBlackWhite(field_0x318[0], field_0x338[0]);
|
|
field_0xac[i][1]->setBlackWhite(field_0x318[1], field_0x338[1]);
|
|
field_0xac[i][2]->setBlackWhite(field_0x318[2], field_0x338[2]);
|
|
field_0x184[i][1]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
field_0x184[i][3]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
field_0xac[i][3]->scale(field_0x360, field_0x360);
|
|
} else {
|
|
((J2DPicture*)field_0xac[i][0])->setBlackWhite(field_0x328[0], field_0x348[0]);
|
|
field_0xac[i][1]->setBlackWhite(field_0x328[1], field_0x348[1]);
|
|
field_0xac[i][2]->setBlackWhite(field_0x328[2], field_0x348[2]);
|
|
field_0x184[i][1]->setBlackWhite(field_0x328[3], field_0x348[3]);
|
|
field_0x184[i][3]->setBlackWhite(field_0x328[3], field_0x348[3]);
|
|
field_0xac[i][3]->scale(field_0x364, field_0x364);
|
|
}
|
|
if (i < field_0x373) {
|
|
field_0xac[i][3]->show();
|
|
} else {
|
|
field_0xac[i][3]->hide();
|
|
}
|
|
}
|
|
mIndex = 0;
|
|
int dVar1 = (m_letter_num - 6 * field_0x36f) & 0xff;
|
|
if (dVar1 < 6) {
|
|
field_0x373 = dVar1;
|
|
} else {
|
|
field_0x373 = 6;
|
|
}
|
|
changeActiveColor();
|
|
setPageText();
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i < field_0x373) {
|
|
field_0x34[i][3]->show();
|
|
} else {
|
|
field_0x34[i][3]->hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801E1518-801E15C8 1DBE58 00B0+00 7/7 0/0 0/0 .text setAButtonString__14dMenu_Letter_cFUs */
|
|
void dMenu_Letter_c::setAButtonString(u16 i_stringID) {
|
|
if (i_stringID == 0) {
|
|
for (int i = 0; i < 5; i++) {
|
|
strcpy(mpAButtonString[i]->getStringPtr(), "");
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 5; i++) {
|
|
dMeter2Info_getStringKanji(i_stringID, mpAButtonString[i]->getStringPtr(), NULL);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 801E15C8-801E1678 1DBF08 00B0+00 7/7 0/0 0/0 .text setBButtonString__14dMenu_Letter_cFUs */
|
|
void dMenu_Letter_c::setBButtonString(u16 i_stringID) {
|
|
if (i_stringID == 0) {
|
|
for (int i = 0; i < 5; i++) {
|
|
strcpy(mpBButtonString[i]->getStringPtr(), "");
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 5; i++) {
|
|
dMeter2Info_getStringKanji(i_stringID, mpBButtonString[i]->getStringPtr(), NULL);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* 801E1678-801E1748 1DBFB8 00D0+00 1/1 0/0 0/0 .text getLetterNum__14dMenu_Letter_cFv */
|
|
u8 dMenu_Letter_c::getLetterNum() {
|
|
u8 letterNum = 0;
|
|
if (g_drawHIO.mLetterSelectScreen.mLetterNum > 0) {
|
|
for (int i = 0; i < g_drawHIO.mLetterSelectScreen.mLetterNum; i++) {
|
|
if (dMenu_Letter::getLetterSubject(i) != 0 || dMenu_Letter::getLetterName(i) != 0 ||
|
|
dMenu_Letter::getLetterText(i) != 0)
|
|
{
|
|
dComIfGs_onLetterGetFlag(i);
|
|
dComIfGs_setGetNumber(letterNum, i + 1);
|
|
letterNum++;
|
|
}
|
|
}
|
|
} else {
|
|
letterNum = dMeter2Info_getRecieveLetterNum();
|
|
}
|
|
return letterNum;
|
|
}
|
|
|
|
/* 801E1748-801E1D10 1DC088 05C8+00 2/2 0/0 0/0 .text setHIO__14dMenu_Letter_cFb */
|
|
void dMenu_Letter_c::setHIO(bool i_useHIO) {
|
|
if (i_useHIO || g_drawHIO.mLetterSelectScreen.mDebugON) {
|
|
for (int i = 0; i < 3; i++) {
|
|
mpParent[i]->paneTrans(g_drawHIO.mLetterSelectScreen.mWindowPosX,
|
|
g_drawHIO.mLetterSelectScreen.mWindowPosY);
|
|
mpParent[i]->scale(g_drawHIO.mLetterSelectScreen.mWindowScale,
|
|
g_drawHIO.mLetterSelectScreen.mWindowScale);
|
|
}
|
|
mpDMYParent->paneTrans(g_drawHIO.mLetterSelectScreen.mWindowPosX,
|
|
g_drawHIO.mLetterSelectScreen.mWindowPosY);
|
|
mpDMYParent->scale(g_drawHIO.mLetterSelectScreen.mWindowScale,
|
|
g_drawHIO.mLetterSelectScreen.mWindowScale);
|
|
for (int i = 0; i < 9; i++) {
|
|
mpPageLight[i]->setBlackWhite(g_drawHIO.mLetterSelectScreen.mSelectPageIconBack,
|
|
g_drawHIO.mLetterSelectScreen.mSelectPageIconFront);
|
|
if (i == field_0x36f) {
|
|
field_0x238[i]->setAlpha(0xff);
|
|
} else {
|
|
field_0x238[i]->setAlpha(g_drawHIO.mLetterSelectScreen.mUnselectPageIconAlpha);
|
|
}
|
|
}
|
|
field_0x318[0].set(g_drawHIO.mLetterSelectScreen.mSelectBarBack);
|
|
field_0x338[0].set(g_drawHIO.mLetterSelectScreen.mSelectBarFront);
|
|
field_0x318[3].set(g_drawHIO.mLetterSelectScreen.mSelectTextBack);
|
|
field_0x338[3].set(g_drawHIO.mLetterSelectScreen.mSelectTextFront);
|
|
field_0x360 = g_drawHIO.mLetterSelectScreen.mSelectBarScale;
|
|
field_0x364 = g_drawHIO.mLetterSelectScreen.mUnselectBarScale;
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i == mIndex) {
|
|
((J2DPicture*)field_0x34[i][0])->setBlackWhite(field_0x318[0], field_0x338[0]);
|
|
field_0x124[i][1]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
field_0x124[i][3]->setBlackWhite(field_0x318[3], field_0x338[3]);
|
|
mpLetterParent[i]->scale(field_0x360, field_0x360);
|
|
} else {
|
|
mpLetterParent[i]->scale(field_0x364, field_0x364);
|
|
}
|
|
}
|
|
for (int i = 0; i < 2; i++) {
|
|
mpTextParent[i]->paneTrans(g_drawHIO.mLetterSelectScreen.mLetterWindowPosX,
|
|
g_drawHIO.mLetterSelectScreen.mLetterWindowPosY);
|
|
if (mProcess == 4 || mProcess == 5 || mProcess == 6) {
|
|
mpTextParent[i]->scale(g_drawHIO.mLetterSelectScreen.mLetterWindowScale,
|
|
g_drawHIO.mLetterSelectScreen.mLetterWindowScale);
|
|
}
|
|
}
|
|
if (((mProcess == 4) || (mProcess == 5)) ||
|
|
(mProcess == 6))
|
|
{
|
|
mpBlackTex->setAlpha(g_drawHIO.mLetterSelectScreen.mWindowBGAlpha);
|
|
}
|
|
mpLineParent->paneTrans(g_drawHIO.mLetterSelectScreen.mLetterLinePosX,
|
|
g_drawHIO.mLetterSelectScreen.mLetterLinePosY);
|
|
for (int i = 0; i < 12; i++) {
|
|
if (field_0x25c[i] != NULL) {
|
|
field_0x25c[i]->setAlpha(g_drawHIO.mLetterSelectScreen.mLetterLineAlpha);
|
|
}
|
|
}
|
|
((J2DTextBox*)field_0x2ec[1]->getPanePtr())->setBlackWhite(g_drawHIO.mLetterSelectScreen.mLetterTextBack, g_drawHIO.mLetterSelectScreen.mLetterTextFront);
|
|
}
|
|
if (g_drawHIO.mCollectScreen.mButtonDebugON != 0 || i_useHIO) {
|
|
if (mpButtonAB[0] != NULL) {
|
|
mpButtonAB[0]->paneTrans(g_drawHIO.mCollectScreen.mButtonAPosX, g_drawHIO.mCollectScreen.mButtonAPosY);
|
|
mpButtonAB[0]->scale(g_drawHIO.mCollectScreen.mButtonAScale, g_drawHIO.mCollectScreen.mButtonAScale);
|
|
}
|
|
if (mpButtonAB[1] != NULL) {
|
|
mpButtonAB[1]->paneTrans(g_drawHIO.mCollectScreen.mButtonBPosX, g_drawHIO.mCollectScreen.mButtonBPosY);
|
|
mpButtonAB[1]->scale(g_drawHIO.mCollectScreen.mButtonBScale, g_drawHIO.mCollectScreen.mButtonBScale);
|
|
}
|
|
if (mpButtonText[0] != NULL) {
|
|
mpButtonText[0]->paneTrans(g_drawHIO.mCollectScreen.mButtonATextPosX, g_drawHIO.mCollectScreen.mButtonATextPosY);
|
|
mpButtonText[0]->scale(g_drawHIO.mCollectScreen.mButtonATextScale, g_drawHIO.mCollectScreen.mButtonATextScale);
|
|
}
|
|
if (mpButtonText[1] != NULL) {
|
|
mpButtonText[1]->paneTrans(g_drawHIO.mCollectScreen.mButtonBTextPosX, g_drawHIO.mCollectScreen.mButtonBTextPosY);
|
|
mpButtonText[1]->scale(g_drawHIO.mCollectScreen.mButtonBTextScale, g_drawHIO.mCollectScreen.mButtonBTextScale);
|
|
}
|
|
}
|
|
}
|