mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-27 15:57:23 -04:00
4812 lines
144 KiB
C++
4812 lines
144 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: d_menu_collect.cpp
|
|
//
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
#include "d/d_menu_collect.h"
|
|
#include "dolphin/types.h"
|
|
#include "stdio.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "JAZelAudio/JAZelAudio_SE.h"
|
|
#include "d/d_meter.h"
|
|
|
|
dMc_HIO_c g_mcHIO;
|
|
|
|
// Number of beats in each baton song.
|
|
static const s32 tact_beat[] = {
|
|
/* Wind's Requiem */ 3,
|
|
/* Ballad of Gales */ 4,
|
|
/* Command Melody */ 4,
|
|
/* Earth God's Lyric */ 6,
|
|
/* Wind God's Aria */ 6,
|
|
/* Song of Passing */ 3,
|
|
};
|
|
|
|
/* 8019BE8C-8019BF14 .text __ct__9dMc_HIO_cFv */
|
|
dMc_HIO_c::dMc_HIO_c() {
|
|
m46 = 40;
|
|
m48 = 10;
|
|
m4A = 120;
|
|
m4C = 100;
|
|
m54 = 4.0f;
|
|
m5C = 0xff;
|
|
m5D = 70;
|
|
m52 = 130;
|
|
m4E = 250;
|
|
m50 = 20;
|
|
m58.set(0xFF, 0xAA, 0x00, 0x00);
|
|
m44 = 13;
|
|
}
|
|
|
|
/* 8019BF14-8019CB5C .text screenSet__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::screenSet() {
|
|
static const u32 l_ft[] = {
|
|
'ft00',
|
|
'ft01',
|
|
'ft02',
|
|
'ft03',
|
|
'ft04',
|
|
'ft05',
|
|
'ft06',
|
|
'ft07',
|
|
'ft08',
|
|
'ft09',
|
|
'ft10',
|
|
'ft11',
|
|
'ft12',
|
|
'ft13',
|
|
'ft14',
|
|
};
|
|
|
|
static const u32 l_fd[] = {
|
|
'fd00',
|
|
'fd01',
|
|
'fd02',
|
|
'fd03',
|
|
'fd04',
|
|
'fd05',
|
|
'fd06',
|
|
'fd07',
|
|
'fd08',
|
|
'fd09',
|
|
'fd10',
|
|
'fd11',
|
|
'fd12',
|
|
'fd13',
|
|
'fd14',
|
|
};
|
|
|
|
static const u32 l_car[] = {
|
|
'car1',
|
|
'car2',
|
|
'car3',
|
|
'car4',
|
|
};
|
|
|
|
static const u32 l_tri[] = {
|
|
'tri0',
|
|
'tri1',
|
|
'tri2',
|
|
'tri3',
|
|
'tri4',
|
|
'tri5',
|
|
'tri6',
|
|
'tri7',
|
|
};
|
|
|
|
static const u32 l_sit[] = {
|
|
'it16',
|
|
'it14',
|
|
'it15',
|
|
};
|
|
|
|
static const u32 l_sik[] = {
|
|
'ik16',
|
|
'ik14',
|
|
'ik15',
|
|
};
|
|
|
|
static const u32 l_ci[] = {
|
|
'ci10',
|
|
'ci09',
|
|
'ci08',
|
|
'ci07',
|
|
'ci06',
|
|
'ci05',
|
|
'ci04',
|
|
'ci03',
|
|
'ci02',
|
|
'ci01',
|
|
'ci00',
|
|
};
|
|
|
|
static const u32 l_htp[] = {
|
|
'htp2',
|
|
'htp1',
|
|
'htp3',
|
|
};
|
|
|
|
static const u32 l_tit[] = {
|
|
'it08',
|
|
'it09',
|
|
'it10',
|
|
'it11',
|
|
'it12',
|
|
'it13',
|
|
};
|
|
|
|
static const u32 l_tik[] = {'ik08', 'ik09', 'ik10', 'ik11', 'ik12', 'ik13'};
|
|
|
|
static const u32 l_cn[] = {'cn01', 'cn02', 'cn03', 'cn04', 'cn05', 'cn06'};
|
|
|
|
static const u32 l_wn[] = {'wn01', 'wn02', 'wn03', 'wn04', 'wn05', 'wn06'};
|
|
|
|
static const u32 l_i0[] = {'i011', 'i021', 'i031', 'i041', 'i051', 'i061'};
|
|
|
|
static const u32 l_i1[] = {'i012', 'i022', 'i032', 'i042', 'i052', 'i062'};
|
|
|
|
static const u32 l_bs[] = {'bs01', 'bs02', 'bs03', 'bs04', 'bs05', 'bs06'};
|
|
|
|
static const u32 l_hmb[] = {'hmb1', 'hmb2', 'hmb3', 'hmb4', 'hmb5', 'hmb6'};
|
|
|
|
static const u32 l_wit[] = {'it00', 'it01', 'it02', 'it03', 'it04'};
|
|
|
|
static const u32 l_wik[] = {'ik00', 'ik01', 'ik02', 'ik03', 'ik04'};
|
|
|
|
static const u32 l_ip[] = {'ip09', 'ip07', 'ip05', 'ip03', 'ip01'};
|
|
|
|
static const u32 l_wk[] = {
|
|
'wk00',
|
|
'wk01',
|
|
'wk02',
|
|
'wk03',
|
|
};
|
|
|
|
static char* triTex[8] = {
|
|
"triforce_00.bti",
|
|
"triforce_01.bti",
|
|
"triforce_02.bti",
|
|
"triforce_03.bti",
|
|
"triforce_04.bti",
|
|
"triforce_05.bti",
|
|
"triforce_06.bti",
|
|
"triforce_07.bti",
|
|
};
|
|
static char* symTex[3] = {
|
|
"god_symbol_02.bti",
|
|
"god_symbol_00.bti",
|
|
"god_symbol_01.bti",
|
|
};
|
|
static char* wepTex[5] = {
|
|
"sword_00.bti",
|
|
"shield_00.bti",
|
|
"gloves_00.bti",
|
|
"amulet_00.bti",
|
|
"amulet_01.bti",
|
|
};
|
|
|
|
J2DPane* mPane = scrn->search('ROOT');
|
|
m2478 = mPane;
|
|
|
|
fopMsgM_setPaneData(&m008, scrn, 'ft15');
|
|
fopMsgM_setPaneData(&m040, scrn, 'ft16');
|
|
fopMsgM_setPaneData(&m078, scrn, 'ft17');
|
|
|
|
for (int i = 0; i < (s32)ARRAY_SIZE(m0B0); i++) {
|
|
fopMsgM_setPaneData(&m0B0[i], scrn, l_ft[i]);
|
|
fopMsgM_setPaneData(&m3F8[i], scrn, l_fd[i]);
|
|
|
|
m0B0[i].mUserArea = 0xFFFF;
|
|
}
|
|
|
|
fopMsgM_setPaneData(&m740, scrn, 'str0');
|
|
fopMsgM_setPaneData(&m778, scrn, 'st00');
|
|
fopMsgM_setPaneData(&m7B0, scrn, 'nt00');
|
|
fopMsgM_setPaneData(&m7E8, scrn, 'nk00');
|
|
fopMsgM_setPaneData(&m820, scrn, 'no11');
|
|
|
|
m820.mUserArea = m820.pane->mRotation;
|
|
|
|
if (m820.mUserArea > 180)
|
|
m820.mUserArea -= 360;
|
|
|
|
((J2DTextBox*)(m740).pane)->setFont(mpRubyFont);
|
|
((J2DTextBox*)(m778).pane)->setFont(mpFont);
|
|
|
|
((J2DTextBox*)(m740).pane)->setWhite(0xFFFFFFFF);
|
|
((J2DTextBox*)(m740).pane)->setCharColor(0x000000FF);
|
|
((J2DTextBox*)(m740).pane)->setGradColor(0x000000FF);
|
|
|
|
((J2DTextBox*)(m778).pane)->setWhite(0xFFFFFFFF);
|
|
((J2DTextBox*)(m778).pane)->setCharColor(0x000000FF);
|
|
((J2DTextBox*)(m778).pane)->setGradColor(0x000000FF);
|
|
|
|
fopMsgM_setPaneData(&m858, scrn, 'wd');
|
|
((J2DTextBox*)(m858).pane)->setFont(mpFont);
|
|
|
|
outFont->setPane(mpFont, &m858, &m008, &m040, &m078);
|
|
|
|
fopMsgM_setPaneData(&m890[0], scrn, 'nm00');
|
|
((J2DTextBox*)(m890[0]).pane)->setFont(mpFont);
|
|
|
|
fopMsgM_setPaneData(&m890[1], scrn, 'nm01');
|
|
((J2DTextBox*)(m890[1]).pane)->setFont(mpFont);
|
|
|
|
fopMsgM_setPaneData(&m900, scrn, 'itnm');
|
|
fopMsgM_setPaneData(&m938, scrn, 'itnk');
|
|
fopMsgM_setPaneData(&m970, scrn, 'msk0');
|
|
fopMsgM_setPaneData(&m9A8, scrn, 'tl00');
|
|
fopMsgM_setPaneData(&m9E0, scrn, 'tk00');
|
|
|
|
for(int i = 0; i < 4; i++) {
|
|
fopMsgM_setPaneData(&mA18[i], scrn, l_car[i]);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&mAF8, scrn, 'wdsv');
|
|
fopMsgM_setPaneData(&mB30, scrn, 'wdop');
|
|
|
|
for(int i = 0; i < 4; i++) {
|
|
fopMsgM_setPaneData(&mB68[i], scrn, l_wk[i]);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&mC48, scrn, 'num1');
|
|
fopMsgM_setPaneData(&mC80, scrn, 'num2');
|
|
fopMsgM_setPaneData(&mCB8, scrn, 'numc');
|
|
fopMsgM_setPaneData(&mCF0, scrn, 'cmap');
|
|
fopMsgM_setPaneData(&mD28, scrn, 'wk1');
|
|
fopMsgM_setPaneData(&mD60, scrn, 'wk0');
|
|
fopMsgM_setPaneData(&mD98, scrn, 'trim');
|
|
fopMsgM_setPaneData(&mDD0, scrn, 'tril');
|
|
|
|
mD98.pane->show();
|
|
mDD0.pane->show();
|
|
|
|
for(int i = 0; i < 8; i++) {
|
|
fopMsgM_setPaneData(&mE08[i], scrn, l_tri[i]);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&mFC8, scrn, 'trib');
|
|
|
|
for(int i = 0; i < 3; i++) {
|
|
fopMsgM_setPaneData(&m1000[i], scrn, l_sit[i]);
|
|
fopMsgM_setPaneData(&m10A8[i], scrn, l_sik[i]);
|
|
}
|
|
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_DINS_PEARL)) {
|
|
alphaChange(&m1000[1], 0.5f);
|
|
alphaChange(&m10A8[1], 0.5f);
|
|
}
|
|
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_FARORES_PEARL)) {
|
|
alphaChange(&m1000[2], 0.5f);
|
|
alphaChange(&m10A8[2], 0.5f);
|
|
}
|
|
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_NAYRUS_PEARL)) {
|
|
alphaChange(&m1000[0], 0.5f);
|
|
alphaChange(&m10A8[0], 0.5f);
|
|
}
|
|
|
|
for(int i = 0; i < 11; i++) {
|
|
fopMsgM_setPaneData(&m1150[i], scrn, l_ci[i]);
|
|
}
|
|
|
|
for(int i = 0; i < 3; i++) {
|
|
fopMsgM_setPaneData(&m13B8[i], scrn, l_htp[i]);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&m1460, scrn, 'htpb');
|
|
|
|
for(int i = 0; i < 6; i++) {
|
|
fopMsgM_setPaneData(&m1498[i], scrn, l_tit[i]);
|
|
fopMsgM_setPaneData(&m15E8[i], scrn, l_tik[i]);
|
|
fopMsgM_setPaneData(&m17A8[i], scrn, l_cn[i]);
|
|
fopMsgM_pane_class* pPane = &m18F8[i];
|
|
fopMsgM_setPaneData(pPane, scrn, l_wn[i]);
|
|
fopMsgM_setPaneData(&m1A48[i], scrn, l_i0[i]);
|
|
fopMsgM_setPaneData(&m1B98[i], scrn, l_i1[i]);
|
|
fopMsgM_setPaneData(&m1CE8[i], scrn, l_bs[i]);
|
|
fopMsgM_setPaneData(&m1E38[i], scrn, l_hmb[i]);
|
|
|
|
m18F8[i].mPosCenterOrig.x -= 4.0f;
|
|
m18F8[i].mPosCenterOrig.y -= 4.0f;
|
|
|
|
fopMsgM_paneTrans(&m18F8[i], 0.0f, 0.0f);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&m1738, scrn, 'i111');
|
|
fopMsgM_setPaneData(&m1770, scrn, 'i122');
|
|
fopMsgM_setPaneData(&m1F88, scrn, 'cc43');
|
|
fopMsgM_setPaneData(&m1FC0, scrn, 'cc32');
|
|
fopMsgM_setPaneData(&m1FF8, scrn, 'cc21');
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setPaneData(&m2030[i], scrn, l_wit[i]);
|
|
fopMsgM_setPaneData(&m2148[i], scrn, l_wik[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setPaneData(&m2260[i], scrn, l_ip[i]);
|
|
}
|
|
|
|
fopMsgM_setPaneData(&m2378, scrn, 'ip00');
|
|
fopMsgM_setPaneData(&m23B0, scrn, 'cc14');
|
|
fopMsgM_setPaneData(&m23E8, scrn, 'cc07');
|
|
fopMsgM_setPaneData(&m2420, scrn, 'cc00');
|
|
|
|
#if VERSION == VERSION_PAL
|
|
if (dComIfGs_getPalLanguage() != 0) {
|
|
char sp58[24];
|
|
sprintf(sp58, "title_collect_%d.bti", dComIfGs_getPalLanguage());
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(mTitleCollectTexBuffer, 0x1000, 'TIMG', sp58, mpArc);
|
|
J2DPicture* r3 = (J2DPicture*)scrn->search('tlcl');
|
|
r3->changeTexture(mTitleCollectTexBuffer, 0);
|
|
sprintf(sp58, "word_save_%d.bti", dComIfGs_getPalLanguage());
|
|
JKRArchive::readTypeResource(mWordSaveTexBuffer, 0xc00, 'TIMG', sp58, mpArc);
|
|
J2DPicture* r3_2 = (J2DPicture*)scrn->search('wdsv');
|
|
r3_2->changeTexture(mWordSaveTexBuffer, 0);
|
|
sprintf(sp58, "word_option_%d.bti", dComIfGs_getPalLanguage());
|
|
JKRArchive::readTypeResource(mWordOptionTexBuffer, 0xc00, 'TIMG', sp58, mpArc);
|
|
J2DPicture* r3_3 = (J2DPicture*)scrn->search('wdop');
|
|
r3_3->changeTexture(mWordOptionTexBuffer, 0);
|
|
}
|
|
#endif
|
|
|
|
{
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(mTactTexBuffer, 0xc00, 'TIMG', "baton.bti", archive);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mTactTexBuffer, 0xc00);
|
|
#else
|
|
DCStoreRangeNoSync(mTactTexBuffer, 0xc00);
|
|
#endif
|
|
}
|
|
|
|
{
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(mMapTexBuffer, 0xc00, 'TIMG', "cmap_treasure2.bti", archive);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mMapTexBuffer, 0xc00);
|
|
#else
|
|
DCStoreRangeNoSync(mMapTexBuffer, 0xc00);
|
|
#endif
|
|
}
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
((J2DPicture*)m1498[i].pane)->changeTexture(mTactTexBuffer, 0);
|
|
((J2DPicture*)m15E8[i].pane)->changeTexture(mTactTexBuffer, 0);
|
|
}
|
|
|
|
((J2DPicture*)mCF0.pane)->changeTexture(mMapTexBuffer, 0);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
char* r6 = triTex[i];
|
|
JKRArchive::readTypeResource(mTriforceTexBuffer[i], 0xc00, 'TIMG', r6, archive);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mTriforceTexBuffer[i], 0xc00);
|
|
#else
|
|
DCStoreRangeNoSync(mTriforceTexBuffer[i], 0xc00);
|
|
#endif
|
|
((J2DPicture*)mE08[i].pane)->changeTexture(mTriforceTexBuffer[i], 0);
|
|
}
|
|
|
|
mE08[4].mUserArea = -1;
|
|
m27A8 = mE08[4].mPosCenterOrig.x - mFC8.mPosCenterOrig.x;
|
|
m27AC = mE08[4].mPosCenterOrig.y - mFC8.mPosCenterOrig.y;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
char* r6 = symTex[i];
|
|
JKRArchive::readTypeResource(mSymbolTexBuffer[i], 0xc00, 'TIMG', r6, archive);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mSymbolTexBuffer[i], 0xc00);
|
|
#else
|
|
DCStoreRangeNoSync(mSymbolTexBuffer[i], 0xc00);
|
|
#endif
|
|
((J2DPicture*)m1000[i].pane)->changeTexture(mSymbolTexBuffer[i], 0);
|
|
((J2DPicture*)m10A8[i].pane)->changeTexture(mSymbolTexBuffer[i], 0);
|
|
}
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
char* r6 = wepTex[i];
|
|
JKRArchive::readTypeResource(mItemTexBuffer[i], 0xc00, 'TIMG', r6, archive);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[i], 0xc00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[i], 0xc00);
|
|
#endif
|
|
((J2DPicture*)m2030[i].pane)->changeTexture(mItemTexBuffer[i], 0);
|
|
((J2DPicture*)m2148[i].pane)->changeTexture(mItemTexBuffer[i], 0);
|
|
}
|
|
|
|
char print_format[0x10];
|
|
|
|
sprintf(print_format, "rupy_num_%02d.bti", dComIfGs_getCollectMapNum() / 10);
|
|
((J2DPicture*)mC48.pane)->changeTexture(print_format, 0);
|
|
|
|
sprintf(print_format, "rupy_num_%02d.bti", dComIfGs_getCollectMapNum() % 10);
|
|
((J2DPicture*)mC80.pane)->changeTexture(print_format, 0);
|
|
}
|
|
|
|
/* 8019CB5C-8019CD40 .text initialize__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::initialize() {
|
|
mTimer = 0;
|
|
m27F2 = 0;
|
|
m27DC = 0;
|
|
m858.mUserArea = 10;
|
|
mA18[0].mUserArea = 0;
|
|
mA18[1].mUserArea = 0;
|
|
m27E4 = 0;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1498[i].mUserArea = 0;
|
|
}
|
|
|
|
m15E8[0].mUserArea = 0;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 0;
|
|
}
|
|
|
|
m1498[0].mUserArea = 0;
|
|
|
|
m27EA = 0;
|
|
mTriggerInfo = 0;
|
|
mCollectMode = 0;
|
|
m27EF = 0;
|
|
|
|
tactGuideHide();
|
|
|
|
if (mNowItem <= 5 && dComIfGs_isTact(mNowItem)) {
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 1;
|
|
}
|
|
|
|
tactGuideShow(mNowItem, false);
|
|
}
|
|
else {
|
|
tactBaseShow();
|
|
}
|
|
|
|
if (mNowItem <= 0xd || mNowItem >= 0x13) {
|
|
collectPriority();
|
|
}
|
|
else {
|
|
weponPriority();
|
|
}
|
|
|
|
noteInit();
|
|
outFontInit();
|
|
itemBitCheck();
|
|
|
|
m970.mInitAlpha = 0x82;
|
|
m27E6 = 0;
|
|
m27E8 = 0;
|
|
|
|
((J2DWindow*)mB68[1].pane)->getContentsColor(m2488);
|
|
}
|
|
|
|
/* 8019CD40-8019D540 .text cursorAnime__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::cursorAnime() {
|
|
short x_trans;
|
|
short y_trans;
|
|
|
|
switch(mNowItem) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
for(int i = 0; i < 4; i++) {
|
|
mA18[i].mPosCenterOrig.x = m1498[mNowItem].mPosCenter.x + m2788[i];
|
|
mA18[i].mPosCenterOrig.y = m1498[mNowItem].mPosCenter.y + m2798[i];
|
|
}
|
|
break;
|
|
case 6:
|
|
mA18[0].mPosCenterOrig.x = mB30.mPosCenter.x - mB30.mSize.x / 2.0f;
|
|
mA18[0].mPosCenterOrig.y = mB30.mPosCenter.y + mB30.mSize.y / 2.0f;
|
|
|
|
mA18[1].mPosCenterOrig.x = mB30.mPosCenter.x + mB30.mSize.x / 2.0f;
|
|
mA18[1].mPosCenterOrig.y = mB30.mPosCenter.y + mB30.mSize.y / 2.0f;
|
|
|
|
mA18[2].mPosCenterOrig.x = mB30.mPosCenter.x - mB30.mSize.x / 2.0f;
|
|
mA18[2].mPosCenterOrig.y = mB30.mPosCenter.y - mB30.mSize.y / 2.0f;
|
|
|
|
mA18[3].mPosCenterOrig.x = mB30.mPosCenter.x + mB30.mSize.x / 2.0f;
|
|
mA18[3].mPosCenterOrig.y = mB30.mPosCenter.y - mB30.mSize.y / 2.0f;
|
|
break;
|
|
case 7:
|
|
mA18[0].mPosCenterOrig.x = mAF8.mPosCenter.x - mAF8.mSize.x / 2.0f;
|
|
mA18[0].mPosCenterOrig.y = mAF8.mPosCenter.y + mAF8.mSize.y / 2.0f;
|
|
|
|
mA18[1].mPosCenterOrig.x = mAF8.mPosCenter.x + mAF8.mSize.x / 2.0f;
|
|
mA18[1].mPosCenterOrig.y = mAF8.mPosCenter.y + mAF8.mSize.y / 2.0f;
|
|
|
|
mA18[2].mPosCenterOrig.x = mAF8.mPosCenter.x - mAF8.mSize.x / 2.0f;
|
|
mA18[2].mPosCenterOrig.y = mAF8.mPosCenter.y - mAF8.mSize.y / 2.0f;
|
|
|
|
mA18[3].mPosCenterOrig.x = mAF8.mPosCenter.x + mAF8.mSize.x / 2.0f;
|
|
mA18[3].mPosCenterOrig.y = mAF8.mPosCenter.y - mAF8.mSize.y / 2.0f;
|
|
break;
|
|
case 8:
|
|
for(int i = 0; i < 4; i++) {
|
|
mA18[i].mPosCenterOrig.x = m13B8[2].mPosTopLeft.x + m2788[i];
|
|
mA18[i].mPosCenterOrig.y = m13B8[2].mPosTopLeft.y + m2798[i];
|
|
}
|
|
break;
|
|
case 9:
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) || dComIfGs_getCollectMapNum()) {
|
|
for(int i = 0; i < 4; i++) {
|
|
mA18[i].mPosCenterOrig.x = mCF0.mPosCenter.x + m2788[i];
|
|
mA18[i].mPosCenterOrig.y = mCF0.mPosCenter.y + m2798[i];
|
|
}
|
|
}
|
|
else {
|
|
mA18[0].mPosCenterOrig.x = mD60.mPosCenter.x - mD60.mSize.x / 2.0f;
|
|
mA18[0].mPosCenterOrig.y = mD60.mPosCenter.y + mD60.mSize.y / 2.0f;
|
|
|
|
mA18[1].mPosCenterOrig.x = mD60.mPosCenter.x + mD60.mSize.x / 2.0f;
|
|
mA18[1].mPosCenterOrig.y = mD60.mPosCenter.y + mD60.mSize.y / 2.0f;
|
|
|
|
mA18[2].mPosCenterOrig.x = mD60.mPosCenter.x - mD60.mSize.x / 2.0f;
|
|
mA18[2].mPosCenterOrig.y = mD60.mPosCenter.y - mD60.mSize.y / 2.0f;
|
|
|
|
mA18[3].mPosCenterOrig.x = mD60.mPosCenter.x + mD60.mSize.x / 2.0f;
|
|
mA18[3].mPosCenterOrig.y = mD60.mPosCenter.y - mD60.mSize.y / 2.0f;
|
|
}
|
|
break;
|
|
case 10:
|
|
mA18[0].mPosCenterOrig.x = mE08[4].mPosCenter.x - mFC8.mSize.x / 2.0f;
|
|
mA18[0].mPosCenterOrig.y = mE08[4].mPosCenter.y + mFC8.mSize.y / 2.0f;
|
|
|
|
mA18[1].mPosCenterOrig.x = mE08[4].mPosCenter.x + mFC8.mSize.x / 2.0f;
|
|
mA18[1].mPosCenterOrig.y = mE08[4].mPosCenter.y + mFC8.mSize.y / 2.0f;
|
|
|
|
mA18[2].mPosCenterOrig.x = mE08[4].mPosCenter.x - mFC8.mSize.x / 2.0f;
|
|
mA18[2].mPosCenterOrig.y = mE08[4].mPosCenter.y - mFC8.mSize.y / 2.0f;
|
|
|
|
mA18[3].mPosCenterOrig.x = mE08[4].mPosCenter.x + mFC8.mSize.x / 2.0f;
|
|
mA18[3].mPosCenterOrig.y = mE08[4].mPosCenter.y - mFC8.mSize.y / 2.0f;
|
|
break;
|
|
case 11:
|
|
case 12:
|
|
case 13:
|
|
for(int i = 0; i < 4; i++) {
|
|
mA18[i].mPosCenterOrig.x = mE08[mNowItem - 2].mPosCenter.x + m2788[i];
|
|
mA18[i].mPosCenterOrig.y = mE08[mNowItem - 2].mPosCenter.y + m2798[i];
|
|
}
|
|
break;
|
|
case 14:
|
|
case 15:
|
|
case 16:
|
|
case 17:
|
|
case 18:
|
|
for(int i = 0; i < 4; i++) {
|
|
mA18[i].mPosCenterOrig.x = m1CE8[mNowItem + 1].mPosCenter.x + m2788[i];
|
|
mA18[i].mPosCenterOrig.y = m1CE8[mNowItem + 1].mPosCenter.y + m2798[i];
|
|
}
|
|
break;
|
|
case 19: {
|
|
float x1 = (m1498[2].mPosCenter.x + m1498[3].mPosCenter.x) / 2.0f;
|
|
float y1 = m1498[0].mPosCenter.y;
|
|
float x2 = ((m1498[5].mPosTopLeft.x + m1498[5].mSize.x) - m1498[0].mPosTopLeft.x) / 2.0f;
|
|
float y2 = m1498[0].mSize.y / 2.0f;
|
|
|
|
mA18[0].mPosCenterOrig.x = x1 - x2;
|
|
mA18[0].mPosCenterOrig.y = y1 + y2;
|
|
|
|
mA18[1].mPosCenterOrig.x = x1 + x2;
|
|
mA18[1].mPosCenterOrig.y = y1 + y2;
|
|
|
|
mA18[2].mPosCenterOrig.x = x1 - x2;
|
|
mA18[2].mPosCenterOrig.y = y1 - y2;
|
|
|
|
mA18[3].mPosCenterOrig.x = x1 + x2;
|
|
mA18[3].mPosCenterOrig.y = y1 - y2;
|
|
break;
|
|
}
|
|
case 20:
|
|
mA18[0].mPosCenterOrig.x = m1150[8].mPosCenter.x - m1150[8].mSize.x / 2.0f;
|
|
mA18[0].mPosCenterOrig.y = m1150[8].mPosCenter.y + m1150[8].mSize.y / 2.0f;
|
|
|
|
mA18[1].mPosCenterOrig.x = m1150[8].mPosCenter.x + m1150[8].mSize.x / 2.0f;
|
|
mA18[1].mPosCenterOrig.y = m1150[8].mPosCenter.y + m1150[8].mSize.y / 2.0f;
|
|
|
|
mA18[2].mPosCenterOrig.x = m1150[8].mPosCenter.x - m1150[8].mSize.x / 2.0f;
|
|
mA18[2].mPosCenterOrig.y = m1150[8].mPosCenter.y - m1150[8].mSize.y / 2.0f;
|
|
|
|
mA18[3].mPosCenterOrig.x = m1150[8].mPosCenter.x + m1150[8].mSize.x / 2.0f;
|
|
mA18[3].mPosCenterOrig.y = m1150[8].mPosCenter.y - m1150[8].mSize.y / 2.0f;
|
|
}
|
|
|
|
/* Possible bug?
|
|
`x_trans` and `y_trans` can be uninitialized if both conditionals
|
|
return FALSE leading to possible unsafe behavior (not sure if
|
|
`mUserArea` can be >= 20)?
|
|
*/
|
|
if (mA18[0].mUserArea < 10) {
|
|
for (int i = 0; i < 4; i++) {
|
|
J2DPicture* picture = (J2DPicture*)mA18[i].pane;
|
|
picture->setBlendColorRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
picture->setBlendAlphaRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
}
|
|
|
|
x_trans = 7;
|
|
y_trans = 7;
|
|
}
|
|
else if (mA18[0].mUserArea < 20) {
|
|
for (int i = 0; i < 4; i++) {
|
|
J2DPicture* picture = (J2DPicture*)mA18[i].pane;
|
|
picture->setBlendColorRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
picture->setBlendAlphaRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
}
|
|
|
|
x_trans = 14;
|
|
y_trans = 14;
|
|
}
|
|
|
|
fopMsgM_paneTrans(&mA18[0], -x_trans, y_trans);
|
|
fopMsgM_paneTrans(&mA18[1], x_trans, y_trans);
|
|
fopMsgM_paneTrans(&mA18[2], -x_trans, -y_trans);
|
|
fopMsgM_paneTrans(&mA18[3], x_trans, -y_trans);
|
|
|
|
mA18[0].mUserArea++;
|
|
|
|
if (mA18[0].mUserArea >= 20) {
|
|
mA18[0].mUserArea = 0;
|
|
}
|
|
}
|
|
|
|
/* 8019D540-8019D5A8 .text stickDirection__15dMenu_Collect_cFUc */
|
|
int dMenu_Collect_c::stickDirection(unsigned char param_1) {
|
|
int ret = 0xFF;
|
|
switch (param_1) {
|
|
case 5:
|
|
return 0;
|
|
case 1:
|
|
return 1;
|
|
case 9:
|
|
return 2;
|
|
case 8:
|
|
return 3;
|
|
case 10:
|
|
return 4;
|
|
case 2:
|
|
return 5;
|
|
case 6:
|
|
return 6;
|
|
case 4:
|
|
ret = 7;
|
|
default:
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
/* 8019D5A8-8019E570 .text cursorMainMove__15dMenu_Collect_cFv */
|
|
u8 dMenu_Collect_c::cursorMainMove() {
|
|
int direction;
|
|
bool found;
|
|
u8 old_item;
|
|
f32 trans;
|
|
u8 tact_no[6];
|
|
|
|
static const u8 item[][8] = {
|
|
{0x0E, 0x0F, 0x06, 0x06, 0x06, 0x01, 0xFF, 0xFF},
|
|
{0xFF, 0x00, 0x06, 0x06, 0x06, 0x02, 0xFF, 0xFF},
|
|
{0xFF, 0x01, 0x06, 0x06, 0x08, 0x03, 0xFF, 0xFF},
|
|
{0xFF, 0x02, 0x06, 0x08, 0x08, 0x04, 0xFF, 0xFF},
|
|
{0xFF, 0x03, 0x08, 0x08, 0x09, 0x05, 0xFF, 0xFF},
|
|
{0xFF, 0x04, 0x08, 0x09, 0x09, 0x0A, 0xFF, 0xFF},
|
|
{0x00, 0x10, 0x07, 0x07, 0x07, 0x08, 0x01, 0x01},
|
|
{0x06, 0x11, 0xFF, 0xFF, 0xFF, 0x08, 0x06, 0x06},
|
|
{0x06, 0x06, 0x08, 0xFF, 0x09, 0x09, 0x09, 0x03},
|
|
{0x08, 0x08, 0x08, 0xFF, 0x0C, 0x0C, 0x0B, 0x05},
|
|
{0x05, 0x05, 0x09, 0x0B, 0x0C, 0x0E, 0x0E, 0xFF},
|
|
{0x05, 0x09, 0x0C, 0x0C, 0x0D, 0x0F, 0x10, 0x0A},
|
|
{0x09, 0x09, 0x09, 0xFF, 0x0D, 0x0D, 0x0B, 0x0B},
|
|
{0x0B, 0x0C, 0x0C, 0xFF, 0x11, 0x11, 0x10, 0x0B},
|
|
{0x0A, 0x0A, 0x0A, 0x0F, 0x0F, 0x00, 0x00, 0xFF},
|
|
{0x0A, 0x0A, 0x0B, 0x10, 0x10, 0x00, 0x00, 0x0E},
|
|
{0x0A, 0x0B, 0x0D, 0x11, 0x11, 0x06, 0x06, 0x0F},
|
|
{0x0B, 0x0D, 0x12, 0x12, 0x12, 0x06, 0x10, 0x10},
|
|
{0x0D, 0x0D, 0xFF, 0xFF, 0xFF, 0x07, 0x11, 0x11},
|
|
{0x0E, 0x0E, 0x0F, 0x06, 0x0A, 0x0A, 0x0A, 0xFF},
|
|
{0x05, 0x09, 0x09, 0xFF, 0x11, 0x10, 0x0F, 0x0A},
|
|
};
|
|
|
|
direction = 0xFF;
|
|
|
|
u8 trigger = stick->checkTrigger();
|
|
u8 previous_item = mNowItem;
|
|
|
|
u8 moved;
|
|
u8 next_item;
|
|
|
|
next_item = 0xFF;
|
|
moved = false;
|
|
|
|
if (stick->checkRightTrigger()) {
|
|
moved = true;
|
|
} else if (stick->checkLeftTrigger()) {
|
|
moved = true;
|
|
}
|
|
|
|
if (stick->checkUpTrigger()) {
|
|
moved = true;
|
|
} else if (stick->checkDownTrigger()) {
|
|
moved = true;
|
|
}
|
|
|
|
if (moved) {
|
|
direction = stickDirection(trigger);
|
|
}
|
|
|
|
if ((u8)direction != 0xFF) {
|
|
found = false;
|
|
old_item = mNowItem;
|
|
|
|
next_item = item[mNowItem][(u8)direction];
|
|
|
|
switch (next_item) {
|
|
case 0:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 0;
|
|
tact_no[1] = 1;
|
|
tact_no[2] = 2;
|
|
tact_no[3] = 3;
|
|
tact_no[4] = 4;
|
|
tact_no[5] = 5;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
next_item = 0x0E;
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
tact_no[0] = 1;
|
|
tact_no[1] = 2;
|
|
tact_no[2] = 3;
|
|
tact_no[3] = 4;
|
|
tact_no[4] = 5;
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 1;
|
|
tact_no[1] = 0;
|
|
tact_no[2] = 2;
|
|
tact_no[3] = 3;
|
|
tact_no[4] = 4;
|
|
tact_no[5] = 5;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
tact_no[0] = 0;
|
|
|
|
if (dComIfGs_isTact(0)) {
|
|
next_item = tact_no[0];
|
|
} else {
|
|
next_item = 0x0E;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
tact_no[0] = 2;
|
|
tact_no[1] = 3;
|
|
tact_no[2] = 4;
|
|
tact_no[3] = 5;
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 2;
|
|
tact_no[1] = 1;
|
|
tact_no[2] = 3;
|
|
tact_no[3] = 0;
|
|
tact_no[4] = 4;
|
|
tact_no[5] = 5;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
tact_no[0] = 1;
|
|
tact_no[1] = 0;
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x0E;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
tact_no[0] = 3;
|
|
tact_no[1] = 4;
|
|
tact_no[2] = 5;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 3;
|
|
tact_no[1] = 2;
|
|
tact_no[2] = 4;
|
|
tact_no[3] = 1;
|
|
tact_no[4] = 5;
|
|
tact_no[5] = 0;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
tact_no[0] = 2;
|
|
tact_no[1] = 1;
|
|
tact_no[2] = 0;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x0E;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
tact_no[0] = 4;
|
|
tact_no[1] = 5;
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 4;
|
|
tact_no[1] = 3;
|
|
tact_no[2] = 5;
|
|
tact_no[3] = 2;
|
|
tact_no[4] = 1;
|
|
tact_no[5] = 0;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
tact_no[0] = 3;
|
|
tact_no[1] = 2;
|
|
tact_no[2] = 1;
|
|
tact_no[3] = 0;
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x0E;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
tact_no[0] = 5;
|
|
|
|
if (dComIfGs_isTact(5)) {
|
|
next_item = tact_no[0];
|
|
found = true;
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
if (old_item > 5) {
|
|
tact_no[0] = 5;
|
|
tact_no[1] = 4;
|
|
tact_no[2] = 3;
|
|
tact_no[3] = 2;
|
|
tact_no[4] = 1;
|
|
tact_no[5] = 0;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x13;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isTact(next_item)) {
|
|
if ((u8)direction == 0 || (u8)direction == 1) {
|
|
tact_no[0] = 4;
|
|
tact_no[1] = 3;
|
|
tact_no[2] = 2;
|
|
tact_no[3] = 1;
|
|
tact_no[4] = 0;
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
if (dComIfGs_isTact(tact_no[i])) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x0E;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 0x0B:
|
|
if (old_item != 0x0B && old_item != 0x0C && old_item != 0x0D) {
|
|
tact_no[0] = 0x0B;
|
|
tact_no[1] = 0x0C;
|
|
tact_no[2] = 0x0D;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isSymbol(tact_no[i] - 0x0B)) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x14;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isSymbol(next_item - 0x0B)) {
|
|
if ((u8)direction == 1) {
|
|
next_item = 9;
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
next_item = 0x11;
|
|
} else if ((u8)direction == 0 || (u8)direction == 7) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 0x0C:
|
|
if (old_item != 0x0B && old_item != 0x0C && old_item != 0x0D) {
|
|
tact_no[0] = 0x0C;
|
|
tact_no[1] = 0x0B;
|
|
tact_no[2] = 0x0D;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isSymbol(tact_no[i] - 0x0B)) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x14;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isSymbol(next_item - 0x0B)) {
|
|
if ((u8)direction == 1) {
|
|
next_item = 9;
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
next_item = 0x0B;
|
|
|
|
if (!dComIfGs_isSymbol(0)) {
|
|
next_item = 0x11;
|
|
}
|
|
} else if ((u8)direction == 0 || (u8)direction == 7) {
|
|
next_item = 0x0B;
|
|
|
|
if (!dComIfGs_isSymbol(0)) {
|
|
next_item = 10;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 0x0D:
|
|
if (old_item != 0x0B && old_item != 0x0C && old_item != 0x0D) {
|
|
tact_no[0] = 0x0D;
|
|
tact_no[1] = 0x0C;
|
|
tact_no[2] = 0x0B;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isSymbol(tact_no[i] - 0x0B)) {
|
|
next_item = tact_no[i];
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
next_item = 0x14;
|
|
}
|
|
} else if (old_item == next_item || !dComIfGs_isSymbol(next_item - 0x0B)) {
|
|
if ((u8)direction == 1) {
|
|
next_item = 0x0C;
|
|
|
|
if (!dComIfGs_isSymbol(1)) {
|
|
next_item = 9;
|
|
}
|
|
} else if ((u8)direction == 5 || (u8)direction == 6) {
|
|
next_item = 0x11;
|
|
} else if ((u8)direction == 0 || (u8)direction == 7) {
|
|
next_item = 0x0B;
|
|
|
|
if (!dComIfGs_isSymbol(0)) {
|
|
next_item = 9;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (next_item != 0xFF) {
|
|
mNowItem = next_item;
|
|
}
|
|
|
|
if (mNowItem != previous_item) {
|
|
if (((mNowItem <= 0x0D || mNowItem >= 0x13) && (previous_item > 0x0D && previous_item < 0x13)) ||
|
|
((previous_item <= 0x0D || previous_item >= 0x13) && (mNowItem > 0x0D && mNowItem < 0x13))) {
|
|
mA18[1].mUserArea = 10;
|
|
}
|
|
|
|
tactGuideHide();
|
|
|
|
if (mNowItem <= 5 && dComIfGs_isTact(mNowItem)) {
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 1;
|
|
}
|
|
|
|
tactGuideShow(mNowItem, true);
|
|
} else {
|
|
tactBaseShow();
|
|
}
|
|
|
|
m858.mUserArea = 0;
|
|
itemnameSet();
|
|
mDoAud_seStart(JA_SE_ITM_MENU_CURSOR);
|
|
}
|
|
|
|
switch (mNowItem) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_CHOOSE_e);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_INFO_e);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (mA18[1].mUserArea) {
|
|
trans = 10.0f;
|
|
|
|
mA18[1].mUserArea--;
|
|
|
|
s16 amount = 5 - abs(5 - mA18[1].mUserArea);
|
|
|
|
trans *= fopMsgM_valueIncrease(5, amount, 0);
|
|
|
|
mainTrans(-trans, 0.0f);
|
|
subTrans(trans, 0.0f);
|
|
|
|
if (mA18[1].mUserArea == 5) {
|
|
if (mNowItem <= 0x0D || mNowItem >= 0x13) {
|
|
collectPriority();
|
|
} else {
|
|
weponPriority();
|
|
}
|
|
}
|
|
}
|
|
|
|
return moved;
|
|
}
|
|
|
|
/* 8019E570-8019E584 .text noteCheck__15dMenu_Collect_cFv */
|
|
u8 dMenu_Collect_c::noteCheck() {
|
|
return m7E8.mUserArea == 1;
|
|
}
|
|
|
|
/* 8019E584-8019E624 .text noteInit__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::noteInit() {
|
|
m7E8.mUserArea = 0;
|
|
m7B0.mUserArea = 0;
|
|
|
|
m820.pane->rotate(m820.mSizeOrig.x / 2.0f, m820.mSizeOrig.y / 2.0f, ROTATE_Z, m820.mUserArea);
|
|
|
|
fopMsgM_paneTrans(&m820, 0.0f, 0.0f);
|
|
}
|
|
|
|
/* 8019E624-8019E898 .text noteAppear__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::noteAppear() {
|
|
float fVar1;
|
|
|
|
if (m7E8.mUserArea == 1) {
|
|
if (m7B0.mUserArea <= 0x11) {
|
|
noteOpen();
|
|
} else if (m7B0.mUserArea > 0x12) {
|
|
noteClose();
|
|
} else {
|
|
m970.mNowAlpha = 0x82;
|
|
m970.mInitAlpha = 0x82;
|
|
|
|
if (m27EB != 0) {
|
|
fVar1 = m0B0[m27E0].mPosCenter.x;
|
|
m27F0 = mMsgProc.selectCheckYoko(
|
|
(J2DPane*)m0B0[m27E0].pane,
|
|
fVar1,
|
|
m0B0[m27E0].mPosCenter.y,
|
|
m0B0[m27E0].mPosTopLeft.x - fVar1
|
|
);
|
|
|
|
if (m27F0 != m27F1) {
|
|
mDoAud_seStart(JA_SE_TALK_CURSOR);
|
|
m27F1 = m27F0;
|
|
}
|
|
}
|
|
|
|
if (CPad_CHECK_TRIG_A(0) & 1) {
|
|
if (mNowItem == 0x12) {
|
|
if (m27F0 == 0) {
|
|
dComIfGs_onCollect(4, 1);
|
|
mDoAud_seStart(JA_SE_ITEM_EQUIP_ON);
|
|
} else {
|
|
dComIfGs_offCollect(4, 1);
|
|
mDoAud_seStart(JA_SE_ITEM_EQUIP_OFF);
|
|
}
|
|
}
|
|
|
|
m7B0.mUserArea++;
|
|
mDoAud_seStart(JA_SE_ITM_MENU_EXP_OUT);
|
|
} else if (CPad_CHECK_TRIG_B(0)) {
|
|
m7B0.mUserArea++;
|
|
|
|
if (mNowItem == 0x12) {
|
|
mDoAud_seStart(JA_SE_ITM_MENU_CANCEL);
|
|
}
|
|
|
|
mDoAud_seStart(JA_SE_ITM_MENU_EXP_OUT);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8019E898-8019EA98 .text noteOpen__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::noteOpen() {
|
|
float fVar2 = 320.0f - m820.mPosCenterOrig.x;
|
|
float fVar3 = 240.0f - m820.mPosCenterOrig.y;
|
|
float fVar1 = 1.0f - fopMsgM_valueIncrease(0x11, 0x11 - m7B0.mUserArea, 0);
|
|
|
|
if (m7B0.mUserArea >= 0x11) {
|
|
fopMsgM_setInitAlpha(&m970);
|
|
fopMsgM_setInitAlpha(&m740);
|
|
fopMsgM_setInitAlpha(&m778);
|
|
mDoAud_seStart(JA_SE_ITM_MENU_EXP_IN);
|
|
}
|
|
else {
|
|
fopMsgM_setNowAlpha(&m970, fVar1);
|
|
fopMsgM_setNowAlpha(&m740, fVar1);
|
|
fopMsgM_setNowAlpha(&m778, fVar1);
|
|
}
|
|
|
|
m820.pane->rotate(m820.mSize.x / 2.0f, m820.mSize.y / 2.0f, ROTATE_Z, m820.mUserArea + fVar1 * (float)(-3 - m820.mUserArea));
|
|
|
|
if (m7B0.mUserArea < 5) {
|
|
fVar1 = (m7B0.mUserArea * 0.8f) / 5.0f;
|
|
}
|
|
else {
|
|
fVar1 = (1.0f - fopMsgM_valueIncrease(0xc, 0x11 - m7B0.mUserArea, 0)) * 0.19999999f + 0.8f;
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m820, fVar2 * fVar1, fVar3 * fVar1);
|
|
m7B0.mUserArea++;
|
|
}
|
|
|
|
/* 8019EA98-8019ECC8 .text noteClose__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::noteClose() {
|
|
float fVar2 = (640.0f - m820.mPosCenterOrig.x) - 320.0f;
|
|
float fVar3 = (480.0f - m820.mPosCenterOrig.y) - 240.0f;
|
|
float fVar4 = 320.0f - m820.mPosCenterOrig.x;
|
|
float fVar5 = 240.0f - m820.mPosCenterOrig.y;
|
|
|
|
float fVar1 = fopMsgM_valueIncrease(10, m7B0.mUserArea + -0x12, 0);
|
|
|
|
fopMsgM_paneTrans(&m820, (fVar2 * fVar1) + fVar4, (fVar3 * fVar1) + fVar5);
|
|
|
|
m820.pane->rotate(m820.mSize.x / 2.0f, m820.mSize.y / 2.0f, ROTATE_Z, (fVar1 * 123.0f) + -3.0f);
|
|
|
|
m7B0.mUserArea++;
|
|
|
|
if (m7B0.mUserArea > 0x1c) {
|
|
fopMsgM_setInitAlpha(&m7B0);
|
|
fopMsgM_setInitAlpha(&m7E8);
|
|
fopMsgM_setInitAlpha(&m820);
|
|
fopMsgM_setNowAlphaZero(&m970);
|
|
fopMsgM_setNowAlphaZero(&m740);
|
|
fopMsgM_setNowAlphaZero(&m778);
|
|
|
|
m7E8.mUserArea = 0;
|
|
m7B0.mUserArea = 0;
|
|
|
|
m820.pane->rotate(m820.mSize.x / 2.0f, m820.mSize.y / 2.0f, ROTATE_Z, m820.mUserArea);
|
|
noteInit();
|
|
}
|
|
else {
|
|
fopMsgM_setNowAlpha(&m7B0, 1.0f - fVar1);
|
|
fopMsgM_setNowAlpha(&m7E8, 1.0f - fVar1);
|
|
fopMsgM_setNowAlpha(&m820, 1.0f - fVar1);
|
|
fopMsgM_setNowAlpha(&m970, 1.0f - fVar1);
|
|
fopMsgM_setNowAlpha(&m740, 1.0f - fVar1);
|
|
fopMsgM_setNowAlpha(&m778, 1.0f - fVar1);
|
|
}
|
|
}
|
|
|
|
/* 8019ECC8-8019EFE0 .text mainTrans__15dMenu_Collect_cFff */
|
|
void dMenu_Collect_c::mainTrans(float i_transX, float i_transY) {
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_paneTrans(&mA18[i], i_transX, i_transY);
|
|
}
|
|
|
|
fopMsgM_paneTrans(&mAF8, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mB30, i_transX, i_transY);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_paneTrans(&mB68[i], i_transX, i_transY);
|
|
}
|
|
|
|
fopMsgM_paneTrans(&mC48, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mC80, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mCB8, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mCF0, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mD28, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&mD60, i_transX, i_transY);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_paneTrans(&mE08[i], i_transX, i_transY);
|
|
}
|
|
|
|
fopMsgM_paneTrans(&mFC8, i_transX, i_transY);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_paneTrans(&m1000[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m10A8[i], i_transX, i_transY);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_paneTrans(&m1150[i], i_transX, i_transY);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_paneTrans(&m13B8[i], i_transX, i_transY);
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m1460, i_transX, i_transY);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_paneTrans(&m1498[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m15E8[i], i_transX, i_transY);
|
|
|
|
if (mNowItem <= 5 && dComIfGs_isTact(mNowItem) && mCollectMode != 5) {
|
|
tactTrans(mNowItem, i_transX, i_transY);
|
|
} else {
|
|
fopMsgM_paneTrans(&m17A8[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m18F8[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1A48[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1B98[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1CE8[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1E38[i], i_transX, i_transY);
|
|
}
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m1738, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1770, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m1FF8, i_transX, i_transY);
|
|
}
|
|
|
|
/* 8019EFE0-8019F094 .text subTrans__15dMenu_Collect_cFff */
|
|
void dMenu_Collect_c::subTrans(float i_transX, float i_transY) {
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_paneTrans(&m2030[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m2148[i], i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m2260[i], i_transX, i_transY);
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m2378, i_transX, i_transY);
|
|
fopMsgM_paneTrans(&m2420, i_transX, i_transY);
|
|
}
|
|
|
|
/* 8019F094-8019F0B8 .text titleTrans__15dMenu_Collect_cFff */
|
|
void dMenu_Collect_c::titleTrans(float i_transX, float i_transY) {
|
|
fopMsgM_paneTrans(&m9E0, i_transX, i_transY);
|
|
}
|
|
|
|
/* 8019F0B8-8019F144 .text noteRotate__15dMenu_Collect_cFff */
|
|
void dMenu_Collect_c::noteRotate(float i_transY, float i_angle) {
|
|
fopMsgM_paneTrans(&m820, 0.0f, i_transY);
|
|
m820.pane->rotate(m820.mSize.x / 2.0f, m820.mSize.y / 2.0f, ROTATE_Z, i_angle);
|
|
}
|
|
|
|
/* 8019F144-8019F1C8 .text nameTrans__15dMenu_Collect_cFff */
|
|
void dMenu_Collect_c::nameTrans(float i_transX, float i_transY) {
|
|
fopMsgM_paneTrans(&m858, i_transX, i_transY);
|
|
|
|
outFont->setLeftUpPos(m858.mPosTopLeft.x, m858.mPosTopLeft.y);
|
|
outFont->move();
|
|
|
|
fopMsgM_paneTrans(&m938, i_transX, i_transY);
|
|
}
|
|
|
|
/* 8019F1C8-8019F49C .text mainOpenProc__15dMenu_Collect_cFsss */
|
|
void dMenu_Collect_c::mainOpenProc(short i_step, short i_max, short i_offset) {
|
|
if (i_max >= i_step) {
|
|
float open_t = fopMsgM_valueIncrease(i_max, i_step, 0);
|
|
|
|
mainTrans(i_offset * fopMsgM_valueIncrease(i_max, i_max - i_step, 0), 0.0f);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&mA18[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&mAF8, open_t);
|
|
fopMsgM_setNowAlpha(&mB30, open_t);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlpha(&mB68[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&mC48, open_t);
|
|
fopMsgM_setNowAlpha(&mC80, open_t);
|
|
fopMsgM_setNowAlpha(&mCB8, open_t);
|
|
fopMsgM_setNowAlpha(&mCF0, open_t);
|
|
fopMsgM_setNowAlpha(&mD28, open_t);
|
|
fopMsgM_setNowAlpha(&mD60, open_t);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlpha(&mE08[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&mFC8, open_t);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlpha(&m1000[i], open_t);
|
|
fopMsgM_setNowAlpha(&m10A8[i], open_t);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_setNowAlpha(&m1150[i], open_t);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlpha(&m13B8[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&m1460, open_t);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_setNowAlpha(&m1498[i], open_t);
|
|
fopMsgM_setNowAlpha(&m15E8[i], open_t);
|
|
fopMsgM_setNowAlpha(&m17A8[i], open_t);
|
|
fopMsgM_setNowAlpha(&m18F8[i], open_t);
|
|
fopMsgM_setNowAlpha(&m1A48[i], open_t);
|
|
fopMsgM_setNowAlpha(&m1B98[i], open_t);
|
|
fopMsgM_setNowAlpha(&m1CE8[i], open_t);
|
|
fopMsgM_setNowAlpha(&m1E38[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&m1738, open_t);
|
|
fopMsgM_setNowAlpha(&m1770, open_t);
|
|
fopMsgM_setNowAlpha(&m1F88, open_t);
|
|
fopMsgM_setNowAlpha(&m1FC0, open_t);
|
|
fopMsgM_setNowAlpha(&m1FF8, open_t);
|
|
}
|
|
}
|
|
|
|
/* 8019F49C-8019F5B4 .text subOpenProc__15dMenu_Collect_cFsss */
|
|
void dMenu_Collect_c::subOpenProc(short i_step, short i_max, short i_offset) {
|
|
if (i_max >= i_step) {
|
|
float open_t = fopMsgM_valueIncrease(i_max, i_step, 0);
|
|
|
|
subTrans(i_offset * fopMsgM_valueIncrease(i_max, i_max - i_step, 0), 0.0f);
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setNowAlpha(&m2030[i], open_t);
|
|
fopMsgM_setNowAlpha(&m2148[i], open_t);
|
|
fopMsgM_setNowAlpha(&m2260[i], open_t);
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&m2378, open_t);
|
|
fopMsgM_setNowAlpha(&m23B0, open_t);
|
|
fopMsgM_setNowAlpha(&m23E8, open_t);
|
|
fopMsgM_setNowAlpha(&m2420, open_t);
|
|
}
|
|
}
|
|
|
|
/* 8019F5B4-8019F674 .text titleOpenProc__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::titleOpenProc(short i_step, short i_max) {
|
|
if (i_max >= i_step) {
|
|
fopMsgM_valueIncrease(i_max, i_step, 0);
|
|
|
|
titleTrans(0.0f, fopMsgM_valueIncrease(i_max, i_max - i_step, 0) * -100.0f);
|
|
|
|
fopMsgM_setInitAlpha(&m9A8);
|
|
fopMsgM_setInitAlpha(&m9E0);
|
|
|
|
if (i_step == 1) {
|
|
mDoAud_seStart(JA_SE_ITM_MENU_PANEL_IN);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8019F674-8019F738 .text noteOpenProc__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::noteOpenProc(short i_step, short i_max) {
|
|
if (i_max >= i_step) {
|
|
fopMsgM_valueIncrease(i_max, i_step, 0);
|
|
f32 t = fopMsgM_valueIncrease(i_max, i_max - i_step, 0);
|
|
f32 angle = m820.mUserArea + t * (45 - m820.mUserArea);
|
|
|
|
f32 f1 = t * 200.0f;
|
|
noteRotate(f1, angle);
|
|
|
|
fopMsgM_setInitAlpha(&m7B0);
|
|
fopMsgM_setInitAlpha(&m7E8);
|
|
}
|
|
}
|
|
|
|
/* 8019F738-8019F7C4 .text nameOpenProc__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::nameOpenProc(short i_step, short i_max) {
|
|
if (i_max >= i_step) {
|
|
fopMsgM_valueIncrease(i_max, i_step, 0);
|
|
nameTrans(0.0f, fopMsgM_valueIncrease(i_max, i_max - i_step, 0) * 50.0f);
|
|
|
|
fopMsgM_setInitAlpha(&m890[0]);
|
|
fopMsgM_setInitAlpha(&m900);
|
|
fopMsgM_setInitAlpha(&m938);
|
|
}
|
|
}
|
|
|
|
/* 8019F7C4-8019FE64 .text itemBitCheck__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemBitCheck() {
|
|
static const u8 melody[6] = {
|
|
0, 1, 2, 3, 4, 5,
|
|
};
|
|
|
|
static const u8 triforce[8] = {
|
|
0, 1, 2, 3, 4, 5, 6, 7,
|
|
};
|
|
|
|
static const u8 symbol[3] = {
|
|
0, 1, 2,
|
|
};
|
|
|
|
static const u8 collect[5] = {
|
|
0, 1, 2, 3, 4,
|
|
};
|
|
|
|
/* Baton songs: show/hide each song icon based on whether the song is learned */
|
|
for (int i = 0; i < 6; i++) {
|
|
if (dComIfGs_isTact(melody[i])) {
|
|
m1498[i].pane->show();
|
|
m15E8[i].pane->show();
|
|
|
|
if (i == 3) {
|
|
m1738.pane->show();
|
|
} else if (i == 4) {
|
|
m1770.pane->show();
|
|
}
|
|
} else {
|
|
m1498[i].pane->hide();
|
|
m15E8[i].pane->hide();
|
|
|
|
if (i == 3) {
|
|
m1738.pane->hide();
|
|
} else if (i == 4) {
|
|
m1770.pane->hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Life containers: show only the number the player has unlocked */
|
|
for (int i = 0; i < 3; i++) {
|
|
if (i < dComIfGs_getMaxLife() % 4) {
|
|
m13B8[i].pane->show();
|
|
} else {
|
|
m13B8[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
/* Map chart section: hidden unless the map event is set or the collect map count is nonzero */
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) || dComIfGs_getCollectMapNum() != 0) {
|
|
mC48.pane->show();
|
|
mC80.pane->show();
|
|
mCB8.pane->show();
|
|
mCF0.pane->show();
|
|
mD28.pane->show();
|
|
} else {
|
|
mC48.pane->hide();
|
|
mC80.pane->hide();
|
|
mCB8.pane->hide();
|
|
mCF0.pane->hide();
|
|
mD28.pane->hide();
|
|
}
|
|
|
|
/* Triforce count: store current total and switch the display depending on whether the full triforce has been collected. */
|
|
m27F3 = dComIfGs_getTriforceNum();
|
|
|
|
if (m27F3 == 8 && mCollectMode != 5) {
|
|
if (m27F3 != mE08[4].mUserArea) {
|
|
for (int i = 0; i < 8; i++) {
|
|
if (i == 4) {
|
|
mE08[i].pane->show();
|
|
} else {
|
|
mE08[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
((J2DPicture*)mE08[4].pane)->changeTexture("triforce.bti", 0);
|
|
|
|
JKRArchive* r5 = mpArc;
|
|
ResTIMG* timg = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "triforce.bti", r5);
|
|
|
|
mE08[4].mPosCenterOrig = mFC8.mPosCenterOrig;
|
|
mE08[4].mPosCenter = mFC8.mPosCenter;
|
|
|
|
mE08[4].mSize.x = timg->width * 1.45f;
|
|
mE08[4].mSize.y = timg->height * 1.45f;
|
|
|
|
fopMsgM_cposMove(&mE08[4]);
|
|
|
|
mE08[4].mUserArea = m27F3;
|
|
}
|
|
} else {
|
|
if (m27F3 != mE08[4].mUserArea) {
|
|
JKRArchive* r7 = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(
|
|
mTriforceTexBuffer[4],
|
|
0xC00,
|
|
'TIMG',
|
|
"triforce_04.bti",
|
|
r7
|
|
);
|
|
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mTriforceTexBuffer[4], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mTriforceTexBuffer[4], 0xC00);
|
|
#endif
|
|
|
|
((J2DPicture*)mE08[4].pane)->changeTexture(
|
|
mTriforceTexBuffer[4],
|
|
0
|
|
);
|
|
|
|
mE08[4].mPosCenterOrig.x = mFC8.mPosCenterOrig.x - m27A8;
|
|
mE08[4].mPosCenterOrig.y = mFC8.mPosCenterOrig.y - m27AC;
|
|
|
|
mE08[4].mPosCenter.x = mFC8.mPosCenter.x - m27A8;
|
|
mE08[4].mPosCenter.y = mFC8.mPosCenter.y - m27AC;
|
|
|
|
mE08[4].mSize = mE08[4].mSizeOrig;
|
|
|
|
fopMsgM_cposMove(&mE08[4]);
|
|
}
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
if (dComIfGs_isTriforce(triforce[i])) {
|
|
mE08[i].pane->show();
|
|
} else {
|
|
mE08[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
mE08[4].mUserArea = m27F3;
|
|
}
|
|
|
|
/* Goddess symbols */
|
|
for (int i = 0; i < 3; i++) {
|
|
if (dComIfGs_isSymbol(symbol[i])) {
|
|
m1000[i].pane->show();
|
|
m10A8[i].pane->show();
|
|
} else {
|
|
m1000[i].pane->hide();
|
|
m10A8[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
/* Collection items / quest items */
|
|
for (int i = 0; i < 5; i++) {
|
|
if (dComIfGs_isCollect(collect[i], 0) ||
|
|
dComIfGs_isCollect(collect[i], 1) ||
|
|
dComIfGs_isCollect(collect[i], 2) ||
|
|
dComIfGs_isCollect(collect[i], 3))
|
|
{
|
|
m2030[i].pane->show();
|
|
m2148[i].pane->show();
|
|
m2260[i].pane->show();
|
|
} else {
|
|
m2030[i].pane->hide();
|
|
m2148[i].pane->hide();
|
|
m2260[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
/* Special last collect-item window tint, depending on whether its item is owned */
|
|
if (dComIfGs_isCollect(4, 0) && !dComIfGs_isCollect(4, 1)) {
|
|
((J2DWindow*)m2260[4].pane)->setContentsColor(JUtility::TColor(0x505000FF));
|
|
((J2DWindow*)m2260[4].pane)->setWhite(JUtility::TColor(0x505050FF));
|
|
((J2DWindow*)m2260[4].pane)->setBlack(JUtility::TColor(0x50505000));
|
|
} else {
|
|
((J2DWindow*)m2260[4].pane)->setContentsColor(JUtility::TColor(0xFFB400FF));
|
|
((J2DWindow*)m2260[4].pane)->setWhite(JUtility::TColor(0xFFB400FF));
|
|
((J2DWindow*)m2260[4].pane)->setBlack(JUtility::TColor(0x50500000));
|
|
|
|
}
|
|
}
|
|
|
|
/* 8019FE64-801A0194 .text itemScale__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemScale() {
|
|
int now = mNowItem;
|
|
|
|
for (int i = 0; i < 0x15; i++) {
|
|
switch (i) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5: {
|
|
if (i == now) {
|
|
fopMsgM_paneScaleXY(&m1498[i], g_menuHIO.field_0x8);
|
|
fopMsgM_paneScaleXY(&m15E8[i], g_menuHIO.field_0x8);
|
|
} else {
|
|
fopMsgM_paneScaleXY(&m1498[i], 1.0f);
|
|
fopMsgM_paneScaleXY(&m15E8[i], 1.0f);
|
|
}
|
|
|
|
if (now == 3) {
|
|
m2478->insertChild(m1498[0].pane, m1738.pane);
|
|
fopMsgM_paneScaleXY(&m1738, g_menuHIO.field_0x8);
|
|
|
|
J2DPane* pane = m1738.pane;
|
|
float y = m1738.mSize.y / 2.0f;
|
|
float x = m1738.mSize.x / 2.0f;
|
|
|
|
pane->mBasePosition.x = x;
|
|
pane->mBasePosition.y = y;
|
|
pane->mRotationAxis = ROTATE_Z;
|
|
pane->calcMtx();
|
|
} else {
|
|
m2478->insertChild(m15E8[5].pane, m1738.pane);
|
|
fopMsgM_paneScaleXY(&m1738, 1.0f);
|
|
|
|
J2DPane* pane = m1738.pane;
|
|
float y = m1738.mSize.y / 2.0f;
|
|
float x = m1738.mSize.x / 2.0f;
|
|
|
|
pane->mBasePosition.x = x;
|
|
pane->mBasePosition.y = y;
|
|
pane->mRotationAxis = ROTATE_Z;
|
|
pane->calcMtx();
|
|
}
|
|
|
|
if (now == 4) {
|
|
m2478->insertChild(m1498[0].pane, m1770.pane);
|
|
fopMsgM_paneScaleXY(&m1770, g_menuHIO.field_0x8);
|
|
|
|
J2DPane* pane = m1770.pane;
|
|
float y = m1770.mSize.y / 2.0f;
|
|
float x = m1770.mSize.x / 2.0f;
|
|
|
|
pane->mBasePosition.x = x;
|
|
pane->mBasePosition.y = y;
|
|
pane->mRotationAxis = ROTATE_Z;
|
|
pane->calcMtx();
|
|
} else {
|
|
m2478->insertChild(m15E8[5].pane, m1770.pane);
|
|
fopMsgM_paneScaleXY(&m1770, 1.0f);
|
|
|
|
J2DPane* pane = m1770.pane;
|
|
float y = m1770.mSize.y / 2.0f;
|
|
float x = m1770.mSize.x / 2.0f;
|
|
|
|
pane->mBasePosition.x = x;
|
|
pane->mBasePosition.y = y;
|
|
pane->mRotationAxis = ROTATE_Z;
|
|
pane->calcMtx();
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 10:
|
|
break;
|
|
|
|
case 9:
|
|
if (i == now) {
|
|
fopMsgM_paneScaleXY(&mCF0, g_menuHIO.field_0x8);
|
|
fopMsgM_paneScaleXY(&mCF0, g_menuHIO.field_0x8);
|
|
} else {
|
|
fopMsgM_paneScaleXY(&mCF0, 1.0f);
|
|
fopMsgM_paneScaleXY(&mCF0, 1.0f);
|
|
}
|
|
break;
|
|
|
|
case 11:
|
|
case 12:
|
|
case 13: {
|
|
if (i == now) {
|
|
fopMsgM_paneScaleXY(&m1000[i - 11], g_menuHIO.field_0x8);
|
|
fopMsgM_paneScaleXY(&m10A8[i - 11], g_menuHIO.field_0x8);
|
|
} else {
|
|
fopMsgM_paneScaleXY(&m1000[i - 11], 1.0f);
|
|
fopMsgM_paneScaleXY(&m10A8[i - 11], 1.0f);
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
case 14:
|
|
case 15:
|
|
case 16:
|
|
case 17:
|
|
case 18: {
|
|
if (i == now) {
|
|
fopMsgM_paneScaleXY(&m2030[i - 14], g_menuHIO.field_0x8);
|
|
fopMsgM_paneScaleXY(&m2148[i - 14], g_menuHIO.field_0x8);
|
|
} else {
|
|
fopMsgM_paneScaleXY(&m2030[i - 14], 1.0f);
|
|
fopMsgM_paneScaleXY(&m2148[i - 14], 1.0f);
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A0194-801A05DC .text collectPriority__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::collectPriority() {
|
|
m2478->insertChild(mA18[0].pane, mAF8.pane);
|
|
m2478->insertChild(mAF8.pane, mB30.pane);
|
|
m2478->insertChild(mB30.pane, mB68[3].pane);
|
|
m2478->insertChild(mB68[3].pane, mB68[2].pane);
|
|
m2478->insertChild(mB68[2].pane, mB68[1].pane);
|
|
m2478->insertChild(mB68[1].pane, mB68[0].pane);
|
|
m2478->insertChild(mB68[0].pane, mC48.pane);
|
|
m2478->insertChild(mC48.pane, mC80.pane);
|
|
m2478->insertChild(mC80.pane, mCB8.pane);
|
|
m2478->insertChild(mCB8.pane, mCF0.pane);
|
|
m2478->insertChild(mCF0.pane, mD28.pane);
|
|
m2478->insertChild(mD28.pane, mD60.pane);
|
|
m2478->insertChild(mD60.pane, mD98.pane);
|
|
m2478->insertChild(mD98.pane, mDD0.pane);
|
|
m2478->insertChild(mDD0.pane, mE08[0].pane);
|
|
|
|
for (int i = 1; i < 8; i++) {
|
|
m2478->insertChild(mE08[i - 1].pane, mE08[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(mE08[7].pane, mFC8.pane);
|
|
m2478->insertChild(mFC8.pane, m1000[0].pane);
|
|
m2478->insertChild(m1000[0].pane, m1000[1].pane);
|
|
m2478->insertChild(m1000[1].pane, m1000[2].pane);
|
|
m2478->insertChild(m1000[2].pane, m10A8[0].pane);
|
|
m2478->insertChild(m10A8[0].pane, m10A8[1].pane);
|
|
m2478->insertChild(m10A8[1].pane, m10A8[2].pane);
|
|
m2478->insertChild(m10A8[2].pane, m1150[0].pane);
|
|
|
|
for (int i = 1; i < 11; i++) {
|
|
m2478->insertChild(m1150[i - 1].pane, m1150[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1150[10].pane, m13B8[0].pane);
|
|
m2478->insertChild(m13B8[0].pane, m13B8[1].pane);
|
|
m2478->insertChild(m13B8[1].pane, m13B8[2].pane);
|
|
m2478->insertChild(m13B8[2].pane, m1460.pane);
|
|
m2478->insertChild(m1460.pane, m1498[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m1498[i - 1].pane, m1498[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1498[5].pane, m15E8[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m15E8[i - 1].pane, m15E8[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m15E8[5].pane, m1738.pane);
|
|
m2478->insertChild(m1738.pane, m1770.pane);
|
|
m2478->insertChild(m1770.pane, m17A8[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m17A8[i - 1].pane, m17A8[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m17A8[5].pane, m18F8[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m18F8[i - 1].pane, m18F8[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m18F8[5].pane, m1A48[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m1A48[i - 1].pane, m1A48[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1A48[5].pane, m1B98[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m1B98[i - 1].pane, m1B98[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1B98[5].pane, m1CE8[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m1CE8[i - 1].pane, m1CE8[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1CE8[5].pane, m1E38[0].pane);
|
|
|
|
for (int i = 1; i < 6; i++) {
|
|
m2478->insertChild(m1E38[i - 1].pane, m1E38[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m1E38[5].pane, m1FF8.pane);
|
|
}
|
|
|
|
/* 801A05DC-801A06F4 .text weponPriority__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::weponPriority() {
|
|
m2478->insertChild(mA18[0].pane, m2030[0].pane);
|
|
|
|
for (int i = 1; i < 5; i++) {
|
|
m2478->insertChild(m2030[i - 1].pane, m2030[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m2030[4].pane, m2148[0].pane);
|
|
|
|
for (int i = 1; i < 5; i++) {
|
|
m2478->insertChild(m2148[i - 1].pane, m2148[i].pane);
|
|
}
|
|
|
|
m2478->insertChild(m2148[4].pane, m2260[0].pane);
|
|
m2478->insertChild(m2260[0].pane, m2260[1].pane);
|
|
m2478->insertChild(m2260[1].pane, m2260[2].pane);
|
|
m2478->insertChild(m2260[2].pane, m2260[3].pane);
|
|
m2478->insertChild(m2260[3].pane, m2260[4].pane);
|
|
m2478->insertChild(m2260[4].pane, m2378.pane);
|
|
m2478->insertChild(m2378.pane, m2420.pane);
|
|
}
|
|
|
|
/* 801A06F4-801A0A4C .text tactGuideShow__15dMenu_Collect_cFUcb */
|
|
void dMenu_Collect_c::tactGuideShow(u8 i_song, bool i_fadeIn) {
|
|
static const s16 rotate_angle[5] = {
|
|
225,
|
|
225,
|
|
135,
|
|
45,
|
|
315,
|
|
};
|
|
|
|
float rightOffset;
|
|
float xOffset = 0.0f;
|
|
|
|
if (tact_beat[i_song] == 3) {
|
|
xOffset = (m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x) * 1.5f;
|
|
} else if (tact_beat[i_song] == 4) {
|
|
xOffset = m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x;
|
|
}
|
|
|
|
s32 pattern[6];
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1498[i].mUserArea = mDoAud_tact_getMelodyPattern(i_song, i, &pattern[i]);
|
|
|
|
if (i_fadeIn && i < tact_beat[i_song]) {
|
|
fopMsgM_setInitAlpha(&m17A8[i]);
|
|
fopMsgM_setInitAlpha(&m18F8[i]);
|
|
fopMsgM_setInitAlpha(&m1A48[i]);
|
|
fopMsgM_setInitAlpha(&m1B98[i]);
|
|
fopMsgM_setInitAlpha(&m1CE8[i]);
|
|
fopMsgM_setInitAlpha(&m1E38[i]);
|
|
}
|
|
|
|
if (i < tact_beat[i_song]) {
|
|
m1E38[i].pane->show();
|
|
}
|
|
}
|
|
|
|
int i = 0;
|
|
int patternOffset = 0;
|
|
int paneOffset = 0;
|
|
|
|
rightOffset = xOffset + 7.0f;
|
|
|
|
for (; i < tact_beat[i_song];
|
|
i++, patternOffset += 4, paneOffset += 0x38) {
|
|
if (m1E38[i].mUserArea == 1) {
|
|
|
|
m1A48[i].pane->rotate(
|
|
m1A48[i].mSizeOrig.x / 2.0f,
|
|
m1A48[i].mSizeOrig.y / 2.0f,
|
|
ROTATE_Z,
|
|
rotate_angle[pattern[i]]
|
|
);
|
|
|
|
if (pattern[i] == 0) {
|
|
m17A8[i].pane->show();
|
|
m18F8[i].pane->show();
|
|
m1A48[i].pane->show();
|
|
m1B98[i].pane->show();
|
|
m1CE8[i].pane->show();
|
|
m1E38[i].pane->show();
|
|
|
|
fopMsgM_paneTrans(&m17A8[i], xOffset, 0.0f);
|
|
} else {
|
|
m17A8[i].pane->show();
|
|
m18F8[i].pane->show();
|
|
m1A48[i].pane->show();
|
|
m1B98[i].pane->hide();
|
|
m1CE8[i].pane->show();
|
|
m1E38[i].pane->show();
|
|
|
|
switch (pattern[i]) {
|
|
case 1:
|
|
fopMsgM_paneTrans( &m17A8[i], xOffset, -7.0f);
|
|
break;
|
|
|
|
case 2:
|
|
fopMsgM_paneTrans(&m17A8[i], rightOffset, 0.0f);
|
|
break;
|
|
|
|
case 3:
|
|
fopMsgM_paneTrans( &m17A8[i], xOffset, 7.0f);
|
|
break;
|
|
|
|
case 4:
|
|
fopMsgM_paneTrans(&m17A8[i], xOffset - 7.0f, 0.0f);
|
|
break;
|
|
}
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m18F8[i], xOffset, 0.0f);
|
|
fopMsgM_paneTrans(&m1A48[i], xOffset, 0.0f);
|
|
fopMsgM_paneTrans(&m1B98[i], xOffset, 0.0f);
|
|
fopMsgM_paneTrans(&m1CE8[i], xOffset, 0.0f);
|
|
fopMsgM_paneTrans(&m1E38[i], xOffset, 0.0f);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A0A4C-801A0C58 .text tactDemoMode__15dMenu_Collect_cFUc */
|
|
void dMenu_Collect_c::tactDemoMode(u8) {
|
|
s16 stepMark[8];
|
|
|
|
stepMark[0] = 0;
|
|
stepMark[1] = m1498[0].mUserArea;
|
|
stepMark[2] = stepMark[1] + m1498[1].mUserArea;
|
|
stepMark[3] = stepMark[2] + m1498[2].mUserArea;
|
|
stepMark[4] = stepMark[3] + m1498[3].mUserArea;
|
|
stepMark[5] = stepMark[4] + m1498[4].mUserArea;
|
|
stepMark[6] = stepMark[5] + m1498[5].mUserArea;
|
|
stepMark[7] = stepMark[6] + 10;
|
|
|
|
if (cursorMainMove()) {
|
|
itemScale();
|
|
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
itemnameMove();
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
}
|
|
|
|
mDoAud_tact_melodyStop();
|
|
outFontMove();
|
|
mCollectMode = 0;
|
|
} else {
|
|
s16 counter = m15E8[0].mUserArea;
|
|
|
|
if (counter < stepMark[6]) {
|
|
m15E8[0].mUserArea = counter + 1;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (stepMark[i] <= m15E8[0].mUserArea) {
|
|
m1E38[i].mUserArea = 1;
|
|
} else {
|
|
m1E38[i].mUserArea = 0;
|
|
}
|
|
}
|
|
|
|
tactGuideShow(mNowItem, true);
|
|
} else if (counter < stepMark[7]) {
|
|
m15E8[0].mUserArea = counter + 1;
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 1;
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 0;
|
|
}
|
|
|
|
m15E8[0].mUserArea = 0;
|
|
tactGuideShow(mNowItem, true);
|
|
mCollectMode = 2;
|
|
|
|
dComIfGp_setAStatusForce(dActStts_BLANK_e);
|
|
}
|
|
}
|
|
|
|
dComIfGp_setAStatusForce(dActStts_RETURN_e);
|
|
}
|
|
|
|
/* 801A0C58-801A1344 .text tactPlayMode__15dMenu_Collect_cFUc */
|
|
void dMenu_Collect_c::tactPlayMode(u8 i_song) {
|
|
static const s16 rotate_angle[5] = {
|
|
225,
|
|
225,
|
|
135,
|
|
45,
|
|
315,
|
|
};
|
|
|
|
s32 pattern[6];
|
|
f32 xOffset = 0.0f;
|
|
if (m15E8[0].mUserArea < tact_beat[i_song]) {
|
|
s32 temp = tact_beat[i_song];
|
|
|
|
if (temp == 3) {
|
|
xOffset = (m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x) * 1.5f;
|
|
mDoAud_tact_setBeat(0);
|
|
} else if (temp == 4) {
|
|
xOffset = m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x;
|
|
mDoAud_tact_setBeat(4);
|
|
} else {
|
|
mDoAud_tact_setBeat(2);
|
|
}
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1498[i].mUserArea =
|
|
mDoAud_tact_getMelodyPattern(
|
|
i_song,
|
|
i,
|
|
&pattern[i]
|
|
);
|
|
|
|
if (i < tact_beat[i_song]) {
|
|
if (i < m15E8[0].mUserArea) {
|
|
fopMsgM_setInitAlpha(&m17A8[i]);
|
|
fopMsgM_setInitAlpha(&m18F8[i]);
|
|
fopMsgM_setInitAlpha(&m1A48[i]);
|
|
fopMsgM_setInitAlpha(&m1B98[i]);
|
|
fopMsgM_setInitAlpha(&m1CE8[i]);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&m17A8[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&m18F8[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&m1A48[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&m1B98[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&m1CE8[i], 0.5f);
|
|
}
|
|
|
|
fopMsgM_setInitAlpha(&m1E38[i]);
|
|
}
|
|
|
|
if (i < tact_beat[i_song]) {
|
|
m1E38[i].pane->show();
|
|
}
|
|
}
|
|
|
|
s32 direction = mDoAud_getTactDirection(0, m27DC);
|
|
|
|
bool inputReady = false;
|
|
|
|
if (direction != m27DC) {
|
|
m27DC = direction;
|
|
|
|
if (direction != 0) {
|
|
inputReady = true;
|
|
m27E4 = 0;
|
|
} else {
|
|
if (pattern[m15E8[0].mUserArea] == 0) {
|
|
m27E4 = g_mcHIO.m44;
|
|
} else {
|
|
m27E4 = 0;
|
|
}
|
|
}
|
|
} else if (direction == 0) {
|
|
if (m27E4 > 0) {
|
|
m27E4--;
|
|
|
|
if (m27E4 == 0) {
|
|
inputReady = true;
|
|
}
|
|
}
|
|
} else {
|
|
m27E4 = 0;
|
|
}
|
|
|
|
if (inputReady) {
|
|
mDoAud_tact_judge(
|
|
m15E8[0].mUserArea,
|
|
m27DC
|
|
);
|
|
|
|
if (m27DC == pattern[m15E8[0].mUserArea]) {
|
|
m1E38[m15E8[0].mUserArea].mUserArea = 1;
|
|
m15E8[0].mUserArea++;
|
|
|
|
if (m15E8[0].mUserArea == tact_beat[i_song]) {
|
|
m27E4 = 10;
|
|
}
|
|
|
|
for (int i = 0; i < tact_beat[i_song]; i++) {
|
|
f32 rightOffset = xOffset + 7.0f;
|
|
|
|
if (m1E38[i].mUserArea == 1) {
|
|
m1A48[i].pane->rotate(
|
|
m1A48[i].mSizeOrig.x / 2.0f,
|
|
m1A48[i].mSizeOrig.y / 2.0f,
|
|
ROTATE_Z,
|
|
rotate_angle[pattern[i]]
|
|
);
|
|
|
|
if (pattern[i] == 0) {
|
|
m17A8[i].pane->show();
|
|
m18F8[i].pane->show();
|
|
m1A48[i].pane->show();
|
|
m1B98[i].pane->show();
|
|
m1CE8[i].pane->show();
|
|
m1E38[i].pane->show();
|
|
|
|
fopMsgM_paneTrans(
|
|
&m17A8[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
} else {
|
|
m17A8[i].pane->show();
|
|
m18F8[i].pane->show();
|
|
m1A48[i].pane->show();
|
|
m1B98[i].pane->hide();
|
|
m1CE8[i].pane->show();
|
|
m1E38[i].pane->show();
|
|
|
|
switch (pattern[i]) {
|
|
case 1:
|
|
fopMsgM_paneTrans(
|
|
&m17A8[i],
|
|
xOffset,
|
|
-7.0f
|
|
);
|
|
break;
|
|
|
|
case 2:
|
|
fopMsgM_paneTrans(
|
|
&m17A8[i],
|
|
rightOffset,
|
|
0.0f
|
|
);
|
|
break;
|
|
|
|
case 3:
|
|
fopMsgM_paneTrans(
|
|
&m17A8[i],
|
|
xOffset,
|
|
7.0f
|
|
);
|
|
break;
|
|
|
|
case 4:
|
|
fopMsgM_paneTrans(
|
|
&m17A8[i],
|
|
xOffset - 7.0f,
|
|
0.0f
|
|
);
|
|
break;
|
|
}
|
|
}
|
|
|
|
fopMsgM_paneTrans(
|
|
&m18F8[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
|
|
fopMsgM_paneTrans(
|
|
&m1A48[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
|
|
fopMsgM_paneTrans(
|
|
&m1B98[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
|
|
fopMsgM_paneTrans(
|
|
&m1CE8[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
|
|
fopMsgM_paneTrans(
|
|
&m1E38[i],
|
|
xOffset,
|
|
0.0f
|
|
);
|
|
|
|
fopMsgM_setInitAlpha(&m17A8[i]);
|
|
fopMsgM_setInitAlpha(&m18F8[i]);
|
|
fopMsgM_setInitAlpha(&m1A48[i]);
|
|
fopMsgM_setInitAlpha(&m1B98[i]);
|
|
fopMsgM_setInitAlpha(&m1CE8[i]);
|
|
}
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 0;
|
|
}
|
|
|
|
m15E8[0].mUserArea = 0;
|
|
mDoAud_seStart(JA_SE_COLL_TAKT_WRONG);
|
|
}
|
|
}
|
|
|
|
if (CPad_CHECK_TRIG_A(0)) {
|
|
mCollectMode = 1;
|
|
m15E8[0].mUserArea = 0;
|
|
|
|
tactGuideHide();
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i < tact_beat[mNowItem]) {
|
|
m1E38[i].pane->show();
|
|
}
|
|
}
|
|
|
|
mDoAud_tact_melodyPlay(mNowItem);
|
|
} else if (cursorMainMove()) {
|
|
itemScale();
|
|
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
itemnameMove();
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
}
|
|
|
|
outFontMove();
|
|
mCollectMode = 0;
|
|
}
|
|
} else {
|
|
if (--m27E4 <= 0) {
|
|
mDoAud_seStart(JA_SE_COLL_TAKT_RIGHT);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 0;
|
|
}
|
|
|
|
m15E8[0].mUserArea = 0;
|
|
|
|
tactGuideShow(mNowItem, true);
|
|
mCollectMode = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A1344-801A1598 .text tactTrans__15dMenu_Collect_cFUcff */
|
|
void dMenu_Collect_c::tactTrans(u8 i_song, f32 i_transX, f32 i_transY) {
|
|
f32 y = i_transY;
|
|
f32 x = i_transX;
|
|
|
|
if (tact_beat[i_song] == 3) {
|
|
x += (m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x) * 1.5f;
|
|
} else if (tact_beat[i_song] == 4) {
|
|
x += (m17A8[1].mPosCenterOrig.x - m17A8[0].mPosCenterOrig.x);
|
|
}
|
|
|
|
s32 pattern[6];
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1498[i].mUserArea = (s16)mDoAud_tact_getMelodyPattern(i_song, i, &pattern[i]);
|
|
}
|
|
|
|
for (int i = 0; i < tact_beat[i_song]; i++) {
|
|
int dir = pattern[i];
|
|
|
|
switch (dir) {
|
|
case 0:
|
|
fopMsgM_paneTrans(&m17A8[i], x, y);
|
|
break;
|
|
case 1:
|
|
fopMsgM_paneTrans(&m17A8[i], x, y - 7.0f);
|
|
break;
|
|
case 2:
|
|
fopMsgM_paneTrans(&m17A8[i], x + 7.0f, y);
|
|
break;
|
|
case 3:
|
|
fopMsgM_paneTrans(&m17A8[i], x, y + 7.0f);
|
|
break;
|
|
case 4:
|
|
fopMsgM_paneTrans(&m17A8[i], x - 7.0f, y);
|
|
break;
|
|
}
|
|
|
|
fopMsgM_paneTrans(&m18F8[i], x, y);
|
|
fopMsgM_paneTrans(&m1A48[i], x, y);
|
|
fopMsgM_paneTrans(&m1B98[i], x, y);
|
|
fopMsgM_paneTrans(&m1CE8[i], x, y);
|
|
fopMsgM_paneTrans(&m1E38[i], x, y);
|
|
}
|
|
}
|
|
|
|
/* 801A1598-801A1600 .text tactBaseShow__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::tactBaseShow() {
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_paneTrans(&m1E38[i], 0.0f, 0.0f);
|
|
m1E38[i].pane->show();
|
|
}
|
|
}
|
|
|
|
/* 801A1600-801A2958 .text cornerMove__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::cornerMove() {
|
|
int r4 = 0xF0;
|
|
J2DWindow::TContentsColor outColor;
|
|
JUtility::TColor sp1C;
|
|
|
|
m27E6++;
|
|
|
|
if (m27E6 >= r4) {
|
|
m27E6 = 0;
|
|
}
|
|
|
|
int r4_2 = m27E6 % 60;
|
|
f32 t = fopMsgM_valueIncrease(60, r4_2, 2);
|
|
|
|
if (m27E6 < 60) {
|
|
outColor.mTL.r = m2488.mTL.r + (m2488.mBL.r - m2488.mTL.r) * t;
|
|
outColor.mTL.g = m2488.mTL.g + (m2488.mBL.g - m2488.mTL.g) * t;
|
|
outColor.mTL.b = m2488.mTL.b + (m2488.mBL.b - m2488.mTL.b) * t;
|
|
outColor.mTL.a = m2488.mTL.a + (m2488.mBL.a - m2488.mTL.a) * t;
|
|
outColor.mTR.r = m2488.mTR.r + (m2488.mTL.r - m2488.mTR.r) * t;
|
|
outColor.mTR.g = m2488.mTR.g + (m2488.mTL.g - m2488.mTR.g) * t;
|
|
outColor.mTR.b = m2488.mTR.b + (m2488.mTL.b - m2488.mTR.b) * t;
|
|
outColor.mTR.a = m2488.mTR.a + (m2488.mTL.a - m2488.mTR.a) * t;
|
|
outColor.mBL.r = m2488.mBL.r + (m2488.mBR.r - m2488.mBL.r) * t;
|
|
outColor.mBL.g = m2488.mBL.g + (m2488.mBR.g - m2488.mBL.g) * t;
|
|
outColor.mBL.b = m2488.mBL.b + (m2488.mBR.b - m2488.mBL.b) * t;
|
|
outColor.mBL.a = m2488.mBL.a + (m2488.mBR.a - m2488.mBL.a) * t;
|
|
outColor.mBR.r = m2488.mBR.r + (m2488.mTR.r - m2488.mBR.r) * t;
|
|
outColor.mBR.g = m2488.mBR.g + (m2488.mTR.g - m2488.mBR.g) * t;
|
|
outColor.mBR.b = m2488.mBR.b + (m2488.mTR.b - m2488.mBR.b) * t;
|
|
outColor.mBR.a = m2488.mBR.a + (m2488.mTR.a - m2488.mBR.a) * t;
|
|
} else if (m27E6 < 120) {
|
|
outColor.mTR.r = m2488.mTL.r + (m2488.mBL.r - m2488.mTL.r) * t;
|
|
outColor.mTR.g = m2488.mTL.g + (m2488.mBL.g - m2488.mTL.g) * t;
|
|
outColor.mTR.b = m2488.mTL.b + (m2488.mBL.b - m2488.mTL.b) * t;
|
|
outColor.mTR.a = m2488.mTL.a + (m2488.mBL.a - m2488.mTL.a) * t;
|
|
outColor.mBR.r = m2488.mTR.r + (m2488.mTL.r - m2488.mTR.r) * t;
|
|
outColor.mBR.g = m2488.mTR.g + (m2488.mTL.g - m2488.mTR.g) * t;
|
|
outColor.mBR.b = m2488.mTR.b + (m2488.mTL.b - m2488.mTR.b) * t;
|
|
outColor.mBR.a = m2488.mTR.a + (m2488.mTL.a - m2488.mTR.a) * t;
|
|
outColor.mTL.r = m2488.mBL.r + (m2488.mBR.r - m2488.mBL.r) * t;
|
|
outColor.mTL.g = m2488.mBL.g + (m2488.mBR.g - m2488.mBL.g) * t;
|
|
outColor.mTL.b = m2488.mBL.b + (m2488.mBR.b - m2488.mBL.b) * t;
|
|
outColor.mTL.a = m2488.mBL.a + (m2488.mBR.a - m2488.mBL.a) * t;
|
|
outColor.mBL.r = m2488.mBR.r + (m2488.mTR.r - m2488.mBR.r) * t;
|
|
outColor.mBL.g = m2488.mBR.g + (m2488.mTR.g - m2488.mBR.g) * t;
|
|
outColor.mBL.b = m2488.mBR.b + (m2488.mTR.b - m2488.mBR.b) * t;
|
|
outColor.mBL.a = m2488.mBR.a + (m2488.mTR.a - m2488.mBR.a) * t;
|
|
} else if (m27E6 < 180) {
|
|
outColor.mBR.r = m2488.mTL.r + (m2488.mBL.r - m2488.mTL.r) * t;
|
|
outColor.mBR.g = m2488.mTL.g + (m2488.mBL.g - m2488.mTL.g) * t;
|
|
outColor.mBR.b = m2488.mTL.b + (m2488.mBL.b - m2488.mTL.b) * t;
|
|
outColor.mBR.a = m2488.mTL.a + (m2488.mBL.a - m2488.mTL.a) * t;
|
|
outColor.mBL.r = m2488.mTR.r + (m2488.mTL.r - m2488.mTR.r) * t;
|
|
outColor.mBL.g = m2488.mTR.g + (m2488.mTL.g - m2488.mTR.g) * t;
|
|
outColor.mBL.b = m2488.mTR.b + (m2488.mTL.b - m2488.mTR.b) * t;
|
|
outColor.mBL.a = m2488.mTR.a + (m2488.mTL.a - m2488.mTR.a) * t;
|
|
outColor.mTR.r = m2488.mBL.r + (m2488.mBR.r - m2488.mBL.r) * t;
|
|
outColor.mTR.g = m2488.mBL.g + (m2488.mBR.g - m2488.mBL.g) * t;
|
|
outColor.mTR.b = m2488.mBL.b + (m2488.mBR.b - m2488.mBL.b) * t;
|
|
outColor.mTR.a = m2488.mBL.a + (m2488.mBR.a - m2488.mBL.a) * t;
|
|
outColor.mTL.r = m2488.mBR.r + (m2488.mTR.r - m2488.mBR.r) * t;
|
|
outColor.mTL.g = m2488.mBR.g + (m2488.mTR.g - m2488.mBR.g) * t;
|
|
outColor.mTL.b = m2488.mBR.b + (m2488.mTR.b - m2488.mBR.b) * t;
|
|
outColor.mTL.a = m2488.mBR.a + (m2488.mTR.a - m2488.mBR.a) * t;
|
|
} else {
|
|
outColor.mBL.r = m2488.mTL.r + (m2488.mBL.r - m2488.mTL.r) * t;
|
|
outColor.mBL.g = m2488.mTL.g + (m2488.mBL.g - m2488.mTL.g) * t;
|
|
outColor.mBL.b = m2488.mTL.b + (m2488.mBL.b - m2488.mTL.b) * t;
|
|
outColor.mBL.a = m2488.mTL.a + (m2488.mBL.a - m2488.mTL.a) * t;
|
|
outColor.mTL.r = m2488.mTR.r + (m2488.mTL.r - m2488.mTR.r) * t;
|
|
outColor.mTL.g = m2488.mTR.g + (m2488.mTL.g - m2488.mTR.g) * t;
|
|
outColor.mTL.b = m2488.mTR.b + (m2488.mTL.b - m2488.mTR.b) * t;
|
|
outColor.mTL.a = m2488.mTR.a + (m2488.mTL.a - m2488.mTR.a) * t;
|
|
outColor.mBR.r = m2488.mBL.r + (m2488.mBR.r - m2488.mBL.r) * t;
|
|
outColor.mBR.g = m2488.mBL.g + (m2488.mBR.g - m2488.mBL.g) * t;
|
|
outColor.mBR.b = m2488.mBL.b + (m2488.mBR.b - m2488.mBL.b) * t;
|
|
outColor.mBR.a = m2488.mBL.a + (m2488.mBR.a - m2488.mBL.a) * t;
|
|
outColor.mTR.r = m2488.mBR.r + (m2488.mTR.r - m2488.mBR.r) * t;
|
|
outColor.mTR.g = m2488.mBR.g + (m2488.mTR.g - m2488.mBR.g) * t;
|
|
outColor.mTR.b = m2488.mBR.b + (m2488.mTR.b - m2488.mBR.b) * t;
|
|
outColor.mTR.a = m2488.mBR.a + (m2488.mTR.a - m2488.mBR.a) * t;
|
|
}
|
|
|
|
((J2DWindow*)mB68[1].pane)->setContentsColor(outColor);
|
|
|
|
m27E8++;
|
|
|
|
if (m27E8 >= g_mcHIO.m50 * 2) {
|
|
m27E8 = 0;
|
|
}
|
|
|
|
f32 pulse;
|
|
|
|
if (m27E8 < g_mcHIO.m50) {
|
|
pulse = fopMsgM_valueIncrease(
|
|
g_mcHIO.m50,
|
|
m27E8,
|
|
0
|
|
);
|
|
} else {
|
|
pulse = fopMsgM_valueIncrease(
|
|
g_mcHIO.m50,
|
|
g_mcHIO.m50 * 2 - m27E8,
|
|
0
|
|
);
|
|
}
|
|
|
|
f32 f2 = 255.0f;
|
|
f32 f0 = (f2 - g_mcHIO.m58.r);
|
|
f0 *= pulse;
|
|
sp1C.r = f2 - f0;
|
|
sp1C.g = 128.0f - (128.0f - g_mcHIO.m58.g) * pulse;
|
|
sp1C.b = -(-(f32)g_mcHIO.m58.b * pulse);
|
|
sp1C.a = 0xFF;
|
|
((J2DWindow*)mB68[1].pane)->setWhite(sp1C);
|
|
}
|
|
|
|
/* 801A2958-801A2A4C .text triforceAnime__15dMenu_Collect_cFUc */
|
|
void dMenu_Collect_c::triforceAnime(u8 i_maxAlpha) {
|
|
s16 halfPeriod = g_mcHIO.m4E;
|
|
|
|
mDD0.mUserArea++;
|
|
|
|
if (mDD0.mUserArea >= halfPeriod * 2) {
|
|
mDD0.mUserArea = 0;
|
|
}
|
|
|
|
if (halfPeriod > mDD0.mUserArea) {
|
|
mDD0.mNowAlpha = i_maxAlpha * fopMsgM_valueIncrease(halfPeriod, mDD0.mUserArea, 0);
|
|
} else if (halfPeriod * 2 > mDD0.mUserArea) {
|
|
mDD0.mNowAlpha = i_maxAlpha * fopMsgM_valueIncrease(halfPeriod, halfPeriod * 2 - mDD0.mUserArea, 0);
|
|
}
|
|
}
|
|
|
|
/* 801A2A4C-801A2AC8 .text tactGuideHide__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::tactGuideHide() {
|
|
for(int i = 0; i < 6; i++) {
|
|
m1E38[i].mUserArea = 0;
|
|
|
|
m17A8[i].pane->hide();
|
|
m18F8[i].pane->hide();
|
|
m1A48[i].pane->hide();
|
|
m1B98[i].pane->hide();
|
|
m1CE8[i].pane->hide();
|
|
m1E38[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
/* 801A2AC8-801A2CA4 .text itemnameMove__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemnameMove() {
|
|
u8 now_item = mNowItem;
|
|
|
|
switch (now_item) {
|
|
case 0x12:
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7: {
|
|
m858.mUserArea++;
|
|
|
|
if (m858.mUserArea > 0x82) {
|
|
m858.mUserArea = 0x0B;
|
|
}
|
|
|
|
int timer = m858.mUserArea;
|
|
int temp;
|
|
|
|
if (timer <= 10) {
|
|
float t = fopMsgM_valueIncrease(10, timer, 0);
|
|
fopMsgM_setNowAlpha(&m890[0], t);
|
|
fopMsgM_setNowAlpha(&m890[1], 1.0f - t);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
} else if (timer <= 60) {
|
|
fopMsgM_setInitAlpha(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
} else if (timer <= 70) {
|
|
temp = timer - 60;
|
|
float t = fopMsgM_valueIncrease( 10, temp, 0);
|
|
fopMsgM_setNowAlpha(&m890[0], 1.0f - t);
|
|
fopMsgM_setNowAlpha(&m858, t);
|
|
} else if (timer <= 120) {
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setInitAlpha(&m858);
|
|
} else if (timer <= 130) {
|
|
temp = timer - 120;
|
|
float t = fopMsgM_valueIncrease(10, temp, 0);
|
|
fopMsgM_setNowAlpha(&m890[0], t);
|
|
fopMsgM_setNowAlpha(&m858, 1.0f - t);
|
|
}
|
|
|
|
outFont->move();
|
|
break;
|
|
}
|
|
default: {
|
|
s16 timer = m858.mUserArea;
|
|
|
|
if (timer < 10) {
|
|
m858.mUserArea = timer + 1;
|
|
}
|
|
|
|
int alpha_timer = m858.mUserArea;
|
|
|
|
if (alpha_timer <= 10) {
|
|
float t = fopMsgM_valueIncrease(10, alpha_timer, 0);
|
|
fopMsgM_setNowAlpha(&m890[0], t);
|
|
fopMsgM_setNowAlpha(&m890[1], 1.0f - t);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
} else {
|
|
fopMsgM_setInitAlpha(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A2CA4-801A36AC .text itemnameSet__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemnameSet() {
|
|
/* Nonmatching */
|
|
fopMsgM_itemMsgGet_c msgGet;
|
|
u32 msgNo = 0;
|
|
int i = 0;
|
|
|
|
J2DTextBox::TFontSize copiedFontSize;
|
|
J2DTextBox::TFontSize nameFontSize;
|
|
J2DTextBox::TFontSize initialFontSize;
|
|
|
|
initialFontSize.mSizeY = 29.0f;
|
|
initialFontSize.mSizeX = 29.0f;
|
|
|
|
((J2DTextBox*)m858.pane)->setFontSize(initialFontSize);
|
|
|
|
((J2DTextBox*)m890[0].pane)->getFontSize(copiedFontSize);
|
|
((J2DTextBox*)m890[1].pane)->setFontSize(copiedFontSize);
|
|
|
|
((J2DTextBox*)m890[1].pane)->setCharSpace(((J2DTextBox*)m890[0].pane)->getCharSpace());
|
|
|
|
while (name[0][i] != '\0') {
|
|
name[1][i] = name[0][i];
|
|
i++;
|
|
}
|
|
|
|
name[1][i] = '\0';
|
|
|
|
((J2DTextBox*)m890[1].pane)->setString(name[1]);
|
|
strcpy(name[0], "");
|
|
|
|
if (mCollectMode != 5) {
|
|
switch (mNowItem) {
|
|
case 0:
|
|
if (dComIfGs_isTact(0)) {
|
|
msgNo = dItem_data::getItemMesgNum(109);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
if (dComIfGs_isTact(1)) {
|
|
msgNo = dItem_data::getItemMesgNum(110);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (dComIfGs_isTact(2)) {
|
|
msgNo = dItem_data::getItemMesgNum(112);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
if (dComIfGs_isTact(3)) {
|
|
msgNo = dItem_data::getItemMesgNum(113);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
if (dComIfGs_isTact(4)) {
|
|
msgNo = dItem_data::getItemMesgNum(114);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
if (dComIfGs_isTact(5)) {
|
|
msgNo = dItem_data::getItemMesgNum(111);
|
|
|
|
outFont->messageSet(0x1FA);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 6:
|
|
msgNo = 0x19D;
|
|
|
|
outFont->messageSet(0x1FB);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
break;
|
|
|
|
case 7:
|
|
msgNo = 0x1F8;
|
|
|
|
outFont->messageSet(0x1FC);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
break;
|
|
|
|
case 8:
|
|
if (dComIfGs_getMaxLife() % 4 != 0) {
|
|
msgNo = dItem_data::getItemMesgNum(7);
|
|
}
|
|
break;
|
|
|
|
case 9:
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) ||
|
|
dComIfGs_getCollectMapNum() != 0) {
|
|
msgNo = 0x1F7;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
if (dComIfGs_getTriforceNum() == 8) {
|
|
msgNo = 0x1C4;
|
|
} else if (dComIfGs_getTriforceNum() == 0) {
|
|
msgNo = 0;
|
|
} else {
|
|
msgNo = dItem_data::getItemMesgNum(97);
|
|
}
|
|
break;
|
|
|
|
case 0x0B:
|
|
if (dComIfGs_isSymbol(0)) {
|
|
msgNo = dItem_data::getItemMesgNum(105);
|
|
}
|
|
break;
|
|
|
|
case 0x0C:
|
|
if (dComIfGs_isSymbol(1)) {
|
|
msgNo = dItem_data::getItemMesgNum(106);
|
|
}
|
|
break;
|
|
|
|
case 0x0D:
|
|
if (dComIfGs_isSymbol(2)) {
|
|
msgNo = dItem_data::getItemMesgNum(107);
|
|
}
|
|
break;
|
|
|
|
case 0x0E: {
|
|
u32 equipMsg = dItem_data::getItemMesgNum(dComIfGs_getSelectEquip(0));
|
|
|
|
msgNo = equipMsg;
|
|
|
|
if (equipMsg == 0) {
|
|
msgNo = 0;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x0F: {
|
|
u32 equipMsg = dItem_data::getItemMesgNum(dComIfGs_getSelectEquip(1));
|
|
|
|
msgNo = equipMsg;
|
|
|
|
if (equipMsg == 0) {
|
|
msgNo = 0;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x10: {
|
|
u32 equipMsg = dItem_data::getItemMesgNum(dComIfGs_getSelectEquip(2));
|
|
|
|
msgNo = equipMsg;
|
|
|
|
if (equipMsg == 0) {
|
|
msgNo = 0;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x11:
|
|
if (dComIfGs_isCollect(3, 0)) {
|
|
msgNo = dItem_data::getItemMesgNum(66);
|
|
}
|
|
break;
|
|
|
|
case 0x12:
|
|
if (dComIfGs_isCollect(4, 0)) {
|
|
msgNo = dItem_data::getItemMesgNum(67);
|
|
|
|
outFont->messageSet(0x1FD);
|
|
outFont->setLeftUpPos(
|
|
m858.mPosTopLeft.x,
|
|
m858.mPosTopLeft.y
|
|
);
|
|
}
|
|
break;
|
|
|
|
case 0x13:
|
|
if (!dComIfGs_isTact(0) &&
|
|
!dComIfGs_isTact(1) &&
|
|
!dComIfGs_isTact(2) &&
|
|
!dComIfGs_isTact(3) &&
|
|
!dComIfGs_isTact(4) &&
|
|
!dComIfGs_isTact(5)) {
|
|
msgNo = 0;
|
|
} else {
|
|
msgNo = 0;
|
|
}
|
|
break;
|
|
|
|
case 0x14:
|
|
if (!dComIfGs_isSymbol(0) &&
|
|
!dComIfGs_isSymbol(1) &&
|
|
!dComIfGs_isSymbol(2)) {
|
|
msgNo = 0;
|
|
} else {
|
|
msgNo = 0;
|
|
}
|
|
break;
|
|
}
|
|
} else {
|
|
msgNo = (s16)(mNowItem + 0x1C2);
|
|
}
|
|
|
|
if (msgNo == 0) {
|
|
((J2DTextBox*)m890[0].pane)->setString(name[0]);
|
|
return;
|
|
}
|
|
|
|
JUTFont::TWidth width;
|
|
JUTFont::TWidth firstWidth;
|
|
u8 characterWidth;
|
|
|
|
mesg_header* head_p = msgGet.getMesgHeader(msgNo);
|
|
JUT_ASSERT(VERSION_SELECT(0xBD1, 0xBD1, 0xBD1, 0xBD1), head_p);
|
|
|
|
((J2DTextBox*)m890[0].pane)->getFontSize(nameFontSize);
|
|
nameFontSize.mSizeX = nameFontSize.mSizeY;
|
|
|
|
const char* mesg = msgGet.getMessage(head_p);
|
|
const char* current;
|
|
|
|
bool firstCharacter = false;
|
|
|
|
f32 fontScale = nameFontSize.mSizeY / mpFont->getCellWidth();
|
|
|
|
f32 measuredWidth;
|
|
|
|
current = mesg;
|
|
|
|
while (*current != '\0') {
|
|
char appendBuf[3];
|
|
|
|
appendBuf[0] = appendBuf[1] = appendBuf[2] = '\0';
|
|
|
|
if ((u8)current[0] == 0x1A) {
|
|
// Control code.
|
|
current++;
|
|
int codeLen = *current;
|
|
current += codeLen - 1;
|
|
continue;
|
|
}
|
|
|
|
int c;
|
|
|
|
int hi_nibble = ((u8)current[0] >> 4) & 0xF;
|
|
if ((hi_nibble == 8) || (hi_nibble == 9)) {
|
|
// Multi-byte Shift JIS character.
|
|
int hi = (u8)current++[0];
|
|
int lo = (u8)current++[0];
|
|
c = hi << 8 | lo;
|
|
|
|
appendBuf[0] = hi;
|
|
appendBuf[1] = lo;
|
|
appendBuf[2] = '\0';
|
|
} else {
|
|
c = (u8)current++[0];
|
|
appendBuf[0] = c;
|
|
appendBuf[1] = '\0';
|
|
}
|
|
|
|
mpFont->getWidthEntry(c, &width);
|
|
|
|
characterWidth = width.field_0x1;
|
|
|
|
strcat(name[0], appendBuf);
|
|
|
|
if (!firstCharacter) {
|
|
mpFont->getWidthEntry(c, &firstWidth);
|
|
|
|
measuredWidth = fontScale * (characterWidth + firstWidth.field_0x0);
|
|
|
|
firstCharacter = true;
|
|
} else {
|
|
measuredWidth += (s16)characterWidth * fontScale;
|
|
}
|
|
}
|
|
|
|
f32 paneWidth = ((J2DTextBox*)m890[0].pane)->getBounds().f.x - ((J2DTextBox*)m890[0].pane)->getBounds().i.x;
|
|
|
|
if (paneWidth < measuredWidth) {
|
|
nameFontSize.mSizeX = (s32)((nameFontSize.mSizeX * paneWidth) / measuredWidth);
|
|
}
|
|
|
|
((J2DTextBox*)m890[0].pane)->setFontSize(nameFontSize);
|
|
((J2DTextBox*)m890[0].pane)->setCharSpace(0.0f);
|
|
((J2DTextBox*)m890[0].pane)->setString(name[0]);
|
|
}
|
|
|
|
/* 801A36AC-801A42D0 .text itemnoteSet__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemnoteSet() {
|
|
/* Nonmatching - regswap */
|
|
fopMsgM_itemMsgGet_c msgGet;
|
|
int triforceCount;
|
|
u32 msgNo;
|
|
|
|
msgNo = 0;
|
|
triforceCount = 0;
|
|
|
|
if (dComIfGs_getOptRuby() != 0) {
|
|
fopMsgM_paneTrans(&m778, 0.0f, -4.0f);
|
|
} else {
|
|
fopMsgM_paneTrans(&m778, 0.0f, 0.0f);
|
|
}
|
|
|
|
strcpy(note[0], "");
|
|
strcpy(note[1], "");
|
|
strcpy(dummy[0], "");
|
|
strcpy(dummy[1], "");
|
|
|
|
outFontInit();
|
|
|
|
if (dComIfGs_getOptRuby() != 0) {
|
|
m740.pane->hide();
|
|
} else {
|
|
m740.pane->show();
|
|
}
|
|
|
|
f32 rubyFontSize = ((J2DTextBox*)m740.pane)->mFontSizeX;
|
|
|
|
#if VERSION == VERSION_DEMO
|
|
f32 f30 = ((J2DTextBox*)m778.pane)->mFontSizeX;
|
|
#else
|
|
J2DTextBox::TFontSize msgFontSize;
|
|
msgFontSize.mSizeX = g_msgHIO.field_0x70;
|
|
msgFontSize.mSizeY = g_msgHIO.field_0x70;
|
|
|
|
((J2DTextBox*)m778.pane)->setFontSize(msgFontSize);
|
|
((J2DTextBox*)m778.pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
#endif
|
|
|
|
switch (mNowItem) {
|
|
case 0:
|
|
if (dComIfGs_isTact(0)) {
|
|
msgNo = dItem_data::getItemMesgNum(109) + 200;
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
if (dComIfGs_isTact(1)) {
|
|
msgNo = dItem_data::getItemMesgNum(110) + 200;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (dComIfGs_isTact(2)) {
|
|
msgNo = dItem_data::getItemMesgNum(111) + 200;
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
if (dComIfGs_isTact(3)) {
|
|
msgNo = dItem_data::getItemMesgNum(112) + 200;
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
if (dComIfGs_isTact(4)) {
|
|
msgNo = dItem_data::getItemMesgNum(113) + 200;
|
|
}
|
|
break;
|
|
|
|
case 5:
|
|
if (dComIfGs_isTact(5)) {
|
|
msgNo = dItem_data::getItemMesgNum(114) + 200;
|
|
}
|
|
break;
|
|
|
|
case 6:
|
|
msgNo = 0x265;
|
|
break;
|
|
|
|
case 7:
|
|
msgNo = 0x2C0;
|
|
break;
|
|
|
|
case 8:
|
|
if (dComIfGs_getMaxLife() % 4 != 0) {
|
|
msgNo = dItem_data::getItemMesgNum(7) + 200;
|
|
}
|
|
break;
|
|
|
|
case 9:
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) ||
|
|
dComIfGs_getCollectMapNum() != 0) {
|
|
msgNo = 0x2BF;
|
|
}
|
|
break;
|
|
|
|
case 10:
|
|
for (int i = 0; i < 8; i++) {
|
|
if (dComIfGs_isTriforce(i)) {
|
|
triforceCount++;
|
|
}
|
|
}
|
|
|
|
if (triforceCount > 0) {
|
|
if (triforceCount == 8) {
|
|
msgNo = 0x28C;
|
|
} else {
|
|
msgNo = dItem_data::getItemMesgNum(97) + 200;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 0x0B:
|
|
if (dComIfGs_isSymbol(0)) {
|
|
msgNo = dItem_data::getItemMesgNum(105) + 200;
|
|
}
|
|
break;
|
|
|
|
case 0x0C:
|
|
if (dComIfGs_isSymbol(1)) {
|
|
msgNo = dItem_data::getItemMesgNum(106) + 200;
|
|
}
|
|
break;
|
|
|
|
case 0x0D:
|
|
if (dComIfGs_isSymbol(2)) {
|
|
msgNo = dItem_data::getItemMesgNum(107) + 200;
|
|
}
|
|
break;
|
|
|
|
case 0x0E: {
|
|
u8 item = dComIfGs_getSelectEquip(0);
|
|
u32 itemMsgNo = dItem_data::getItemMesgNum(item);
|
|
|
|
if (itemMsgNo == 0) {
|
|
msgNo = 0x25C;
|
|
} else {
|
|
msgNo = itemMsgNo + 200;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x0F: {
|
|
u8 item = dComIfGs_getSelectEquip(1);
|
|
u32 itemMsgNo = dItem_data::getItemMesgNum(item);
|
|
|
|
if (itemMsgNo == 0) {
|
|
msgNo = 0x25C;
|
|
} else {
|
|
msgNo = itemMsgNo + 200;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x10: {
|
|
u8 item = dComIfGs_getSelectEquip(2);
|
|
u32 itemMsgNo = dItem_data::getItemMesgNum(item);
|
|
|
|
if (itemMsgNo == 0) {
|
|
msgNo = 0x25C;
|
|
} else {
|
|
msgNo = itemMsgNo + 200;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 0x11:
|
|
if (dComIfGs_isCollect(3, 0)) {
|
|
msgNo = dItem_data::getItemMesgNum(66) + 200;
|
|
}
|
|
break;
|
|
|
|
case 0x12:
|
|
if (dComIfGs_isCollect(4, 0)) {
|
|
msgNo = dItem_data::getItemMesgNum(67) + 200;
|
|
}
|
|
break;
|
|
|
|
case 0x13:
|
|
if (!dComIfGs_isTact(0) &&
|
|
!dComIfGs_isTact(1) &&
|
|
!dComIfGs_isTact(2) &&
|
|
!dComIfGs_isTact(3) &&
|
|
!dComIfGs_isTact(4) &&
|
|
!dComIfGs_isTact(5)) {
|
|
msgNo = 0;
|
|
} else {
|
|
msgNo = 0x25C;
|
|
}
|
|
break;
|
|
|
|
case 0x14:
|
|
if (!dComIfGs_isSymbol(0) &&
|
|
!dComIfGs_isSymbol(1) &&
|
|
!dComIfGs_isSymbol(2)) {
|
|
msgNo = 0;
|
|
} else {
|
|
msgNo = 0x25C;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (msgNo == 0) {
|
|
return;
|
|
}
|
|
|
|
mesg_header* head_p = msgGet.getMesgHeader(msgNo);
|
|
JUT_ASSERT(VERSION_SELECT(0xCD3, 0xCD3, 0xCD3, 0xCD3), head_p);
|
|
|
|
const char* bmgData = msgGet.getMessage(head_p);
|
|
|
|
JMSMesgEntry_c mesgEntry;
|
|
mesgEntry = msgGet.getMesgEntry(head_p);
|
|
|
|
mMsgProc.dataInit();
|
|
mMsgProc.setBmgData((char*)bmgData);
|
|
mMsgProc.setOutMessage(note[0], note[1], dummy[0], dummy[1]);
|
|
mMsgProc.setFont(mpFont);
|
|
mMsgProc.setRubyFont(mpRubyFont);
|
|
mMsgProc.setCharSpace(((J2DTextBox*)m778.pane)->getCharSpace());
|
|
mMsgProc.setRubyCharSpace(((J2DTextBox*)m740.pane)->getCharSpace());
|
|
mMsgProc.setLineSpace(((J2DTextBox*)m778.pane)->getLineSpace());
|
|
mMsgProc.setMesgEntry(&mesgEntry);
|
|
#if VERSION == VERSION_DEMO
|
|
mMsgProc.setFontSize(f30);
|
|
#else
|
|
mMsgProc.setFontSize(msgFontSize.mSizeX);
|
|
#endif
|
|
mMsgProc.setRubyFontSize(rubyFontSize);
|
|
mMsgProc.setLineWidth(0x1FE);
|
|
mMsgProc.setCenterLineWidth(0x1E6);
|
|
mMsgProc.setSendSpeed(2);
|
|
mMsgProc.setSpaceTimer(0);
|
|
mMsgProc.shortCut();
|
|
mMsgProc.setSpaceFlagOff();
|
|
mMsgProc.stringLength();
|
|
mMsgProc.stringShift();
|
|
mMsgProc.iconIdxRefresh();
|
|
|
|
s16 lineCount = mMsgProc.lineCount;
|
|
mMsgProc.lineCount = 0;
|
|
|
|
f32 lineSpace = ((J2DTextBox*)m778.pane)->getLineSpace();
|
|
|
|
int lineAdjust = 3 - lineCount;
|
|
f32 yShift = lineAdjust * (lineSpace / 2.0f);
|
|
|
|
((J2DTextBox*)m740.pane)->shiftSet(0.0f, yShift);
|
|
((J2DTextBox*)m778.pane)->shiftSet(0.0f, yShift);
|
|
|
|
mMsgProc.stringSet();
|
|
|
|
((J2DTextBox*)m778.pane)->setString(note[0]);
|
|
((J2DTextBox*)m740.pane)->setString(note[1]);
|
|
|
|
int halfLine = (((J2DTextBox*)m778.pane)->getLineSpace() / 2.0f);
|
|
|
|
for (int i = 0; i < 15; i++) {
|
|
u8 iconNo = mMsgProc.getIconNum(i);
|
|
u32 iconColor = mMsgProc.getIconColor(i);
|
|
|
|
if (iconColor == 0xFFFFFFFF) {
|
|
iconColor = 0xFF;
|
|
}
|
|
|
|
if (iconNo != 0xFF && m0B0[i].mUserArea == -1) {
|
|
if (iconNo == 0x14) {
|
|
if (m27EB == 0) {
|
|
m27E0 = i;
|
|
m0B0[i].mUserArea = 0;
|
|
}
|
|
|
|
m0B0[m27E0].mPosCenter.x = mMsgProc.getIconPosX(i);
|
|
m0B0[m27E0].mPosCenter.y = (halfLine * (lineAdjust + mMsgProc.getIconPosY(i) * 2));
|
|
|
|
m27EB = 1;
|
|
} else if (iconNo == 0x15) {
|
|
if (m27EB == 0) {
|
|
m27EB = 1;
|
|
m27F0 = 0;
|
|
m27E0 = i;
|
|
m0B0[i].mUserArea = 0;
|
|
} else {
|
|
m27F0 = 1;
|
|
}
|
|
|
|
m0B0[m27E0].mPosTopLeft.x = mMsgProc.getIconPosX(i);
|
|
|
|
m0B0[m27E0].mPosTopLeft.y = (halfLine * (lineAdjust + mMsgProc.getIconPosY(i) * 2));
|
|
|
|
fopMsgM_blendDraw(&m0B0[m27E0], "font_10.bti");
|
|
|
|
J2DPicture* pic = (J2DPicture*)m0B0[m27E0].pane;
|
|
|
|
pic->setBlendColorRatio(
|
|
0.0f,
|
|
1.0f,
|
|
1.0f,
|
|
1.0f
|
|
);
|
|
|
|
pic->setBlendAlphaRatio(
|
|
0.0f,
|
|
1.0f,
|
|
1.0f,
|
|
1.0f
|
|
);
|
|
|
|
if (mNowItem == 0x12) {
|
|
if (dComIfGs_isCollect(4, 1)) {
|
|
m27F0 = 0;
|
|
mMsgProc.field_0x27D = 0;
|
|
} else {
|
|
m27F0 = 1;
|
|
mMsgProc.field_0x27D = 1;
|
|
}
|
|
}
|
|
|
|
m27F1 = m27F0;
|
|
} else if (iconNo != 0x16) {
|
|
m0B0[i].mPosTopLeft.x = mMsgProc.getIconPosX(i);
|
|
m0B0[i].mPosTopLeft.y = (halfLine * (lineAdjust + mMsgProc.getIconPosY(i) * 2));
|
|
|
|
m0B0[i].mPosTopLeftOrig.y = iconNo;
|
|
|
|
fopMsgM_outFontSet(
|
|
(J2DPicture*)m0B0[i].pane,
|
|
&m0B0[i].mUserArea,
|
|
iconColor,
|
|
iconNo
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A42D0-801A45BC .text itemSet__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::itemSet() {
|
|
if (dComIfGs_isCollect(0, 3)) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[0], 0xC00, 'TIMG', "sword_03.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
else if (dComIfGs_isCollect(0, 2)) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[0], 0xC00, 'TIMG', "sword_02.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
else if (dComIfGs_isCollect(0, 1)) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[0], 0xC00, 'TIMG', "sword_01.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
else if (dComIfGs_isCollect(0, 0) != 0) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[0], 0xC00, 'TIMG', "sword_00.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[0], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
|
|
if (dComIfGs_isCollect(1, 1)) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[1], 0xC00, 'TIMG', "shield_01.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[1], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[1], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
else if (dComIfGs_isCollect(1, 0)) {
|
|
JKRReadTypeResource(
|
|
mItemTexBuffer[1], 0xC00, 'TIMG', "shield_00.bti",
|
|
dComIfGp_getItemIconArchive()
|
|
);
|
|
#if VERSION <= VERSION_JPN
|
|
DCFlushRangeNoSync(mItemTexBuffer[1], 0xC00);
|
|
#else
|
|
DCStoreRangeNoSync(mItemTexBuffer[1], 0xC00);
|
|
#endif
|
|
((J2DPicture*)m2030[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
((J2DPicture*)m2148[0].pane)->changeTexture(mItemTexBuffer[0], 0);
|
|
}
|
|
}
|
|
|
|
/* 801A45BC-801A4658 .text outFontInit__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::outFontInit() {
|
|
for (int i = 0; i < 15; i++) {
|
|
m0B0[i].mUserArea = -1;
|
|
|
|
m0B0[i].pane->rotate(0.0f);
|
|
|
|
fopMsgM_setNowAlphaZero(&m0B0[i]);
|
|
}
|
|
|
|
m27E0 = -1;
|
|
m27EB = 0;
|
|
m27F0 = 0;
|
|
}
|
|
|
|
/* 801A4658-801A4774 .text outFontMove__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::outFontMove() {
|
|
for (int i = 0; i < 15; i++) {
|
|
if (m0B0[i].mUserArea != -1) {
|
|
m3F8[i].mPosTopLeft.x = m0B0[i].mPosTopLeft.x + (m778.mPosTopLeft.x + (m820.mPosTopLeft.x + m7B0.mPosTopLeft.x));
|
|
m3F8[i].mPosTopLeft.y = m0B0[i].mPosTopLeft.y + (m778.mPosTopLeft.y + (m820.mPosTopLeft.y + m7B0.mPosTopLeft.y));
|
|
|
|
if (i == m27E0 && m27F0 == 0) {
|
|
m3F8[i].mPosTopLeft.x -= (m0B0[i].mPosTopLeft.x - m0B0[i].mPosCenter.x);
|
|
}
|
|
|
|
f32 rotOffX = m820.mPosCenter.x - m3F8[i].mPosTopLeft.x;
|
|
f32 rotOffY = m820.mPosCenter.y - m3F8[i].mPosTopLeft.y;
|
|
|
|
m3F8[i].pane->rotate(rotOffX, rotOffY, ROTATE_Z, m820.pane->mRotation);
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&m0B0[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A4774-801A48AC .text outFontDraw__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::outFontDraw() {
|
|
for (int i = 0; i < 15; i++) {
|
|
if (m0B0[i].mUserArea != -1) {
|
|
m0B0[i].mNowAlpha = m778.pane->getAlpha();
|
|
|
|
if (i == m27E0) {
|
|
mMsgProc.selectArrow((J2DPicture*)m0B0[i].pane, g_msgHIO.field_0x70, g_msgHIO.field_0x70);
|
|
|
|
m3F8[i].pane->move(m3F8[i].mPosTopLeft.x, m3F8[i].mPosTopLeft.y);
|
|
|
|
fopMsgM_setAlpha(&m0B0[i]);
|
|
} else {
|
|
fopMsgM_outFontDraw2(
|
|
(J2DPicture*)m0B0[i].pane,
|
|
(J2DPicture*)m3F8[i].pane,
|
|
(int)m3F8[i].mPosTopLeft.x,
|
|
(int)m3F8[i].mPosTopLeft.y,
|
|
g_msgHIO.field_0x70,
|
|
g_msgHIO.field_0x70,
|
|
&m0B0[i].mUserArea,
|
|
m0B0[i].mNowAlpha,
|
|
m0B0[i].mPosTopLeftOrig.y
|
|
);
|
|
}
|
|
} else {
|
|
fopMsgM_setAlpha(&m0B0[i]);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A48AC-801A4A28 .text collectItemGetCheck__15dMenu_Collect_cFUc */
|
|
bool dMenu_Collect_c::collectItemGetCheck(unsigned char param_1) {
|
|
switch(param_1) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
return dComIfGs_isTact(param_1);
|
|
#if VERSION == VERSION_DEMO
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
return true;
|
|
#else
|
|
case 6:
|
|
case 7:
|
|
return true;
|
|
case 8:
|
|
return dComIfGs_getMaxLife() % 4;
|
|
case 9:
|
|
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) || dComIfGs_getCollectMapNum()) {
|
|
return true;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
#endif
|
|
case 10:
|
|
for (int i = 0; i < 8; i++) {
|
|
if (dComIfGs_isTriforce(i)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
case 0xb:
|
|
case 0xc:
|
|
case 0xd:
|
|
return dComIfGs_isSymbol(param_1 - 0xb);
|
|
case 0xe:
|
|
case 0xf:
|
|
case 0x10:
|
|
case 0x11:
|
|
case 0x12:
|
|
return dComIfGs_checkCollect(param_1 - 0xe);;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/* 801A4A28-801A4F18 .text _create__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_create() {
|
|
scrn = new MyScreen();
|
|
JUT_ASSERT(VERSION_SELECT(0xe4a, 0xe4a, 0xe4a, 0xe4a), scrn != NULL);
|
|
scrn->set("menu_collect_01.blo", mpArc);
|
|
|
|
stick = new STControl(5, 2, 3, 2);
|
|
JUT_ASSERT(VERSION_SELECT(0xe4e, 0xe4e, 0xe4e, 0xe4e), stick != NULL);
|
|
|
|
cstick = new CSTControl(5, 2, 3, 2);
|
|
JUT_ASSERT(VERSION_SELECT(0xe51, 0xe51, 0xe51, 0xe51), cstick != NULL);
|
|
|
|
stick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x800);
|
|
|
|
outFont = new dDlst_2DOutFont_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xe55, 0xe55, 0xe55, 0xe55), outFont != NULL);
|
|
|
|
outFont->m74 = 1;
|
|
|
|
dMo_c = new dMenu_Option_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xe59, 0xe59, 0xe59, 0xe59), dMo_c != NULL);
|
|
|
|
dMo_c->setArchive(mpOptArc);
|
|
dMo_c->setFont(mpFont, mpRubyFont);
|
|
dMo_c->setTextArea(note[0], note[1], dummy[0], dummy[1]);
|
|
dMo_c->_create();
|
|
|
|
dMs_c = new dMenu_save_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xe63, 0xe63, 0xe63, 0xe63), dMs_c != NULL);
|
|
|
|
dMs_c->setUseType(1);
|
|
dMs_c->_create();
|
|
|
|
screenSet();
|
|
initialize();
|
|
|
|
for(int i = 0; i < 3; i++) {
|
|
m247C[i] = NULL;
|
|
}
|
|
|
|
g_mcHIO.mNo = mDoHIO_createChild("コレクト画面", &g_mcHIO);
|
|
|
|
for(int i = 0; i < 4; i++) {
|
|
((J2DPicture*)mA18[i].pane)->append("cursor_00_02.bti", 1.0f);
|
|
|
|
m2788[i] = mA18[i].mPosCenterOrig.x - m1498[0].mPosCenterOrig.x;
|
|
m2798[i] = mA18[i].mPosCenterOrig.y - m1498[0].mPosCenterOrig.y;
|
|
}
|
|
|
|
for(int i = 0; i < 15; i++) {
|
|
((J2DPicture*)m0B0[i].pane)->changeTexture("font_07_02.bti", 0);
|
|
fopMsgM_blendInit(&m0B0[i], "font_00.bti");
|
|
}
|
|
|
|
cursorAnime();
|
|
}
|
|
|
|
/* 801A4F18-801A5498 .text _create3__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_create3() {
|
|
scrn = new MyScreen();
|
|
JUT_ASSERT(VERSION_SELECT(3638, 3651, 3727, 3727), scrn != NULL);
|
|
scrn->set("menu_collect_01.blo", mpArc);
|
|
|
|
stick = new STControl(5, 2, 3, 2);
|
|
JUT_ASSERT(VERSION_SELECT(3642, 3655, 3731, 3731), stick != NULL);
|
|
|
|
cstick = new CSTControl(5, 2, 3, 2);
|
|
JUT_ASSERT(VERSION_SELECT(3645, 3658, 3734, 3734), cstick != NULL);
|
|
|
|
stick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x800);
|
|
|
|
outFont = new dDlst_2DOutFont_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xE9A, 0xE9A, 0xE9A, 0xE9A), outFont != NULL);
|
|
|
|
dMo_c = new dMenu_Option_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xE9D, 0xE9D, 0xE9D, 0xE9D), dMo_c != NULL);
|
|
|
|
dMo_c->setArchive(mpOptArc);
|
|
dMo_c->setFont(mpFont, mpRubyFont);
|
|
dMo_c->setTextArea(note[0], note[1], dummy[0], dummy[1]);
|
|
dMo_c->_create();
|
|
|
|
dMs_c = new dMenu_save_c();
|
|
JUT_ASSERT(VERSION_SELECT(0xEA6, 0xEA6, 0xEA6, 0xEA6), dMs_c != NULL);
|
|
|
|
dMs_c->setUseType(1);
|
|
dMs_c->_create();
|
|
|
|
screenSet();
|
|
|
|
mTimer = 0;
|
|
m27F2 = 0;
|
|
m27DC = 0;
|
|
m858.mUserArea = 10;
|
|
m27E4 = 0;
|
|
m27EA = 0;
|
|
mTriggerInfo = 0;
|
|
mCollectMode = 5;
|
|
m27EF = 0;
|
|
|
|
tactGuideHide();
|
|
tactBaseShow();
|
|
noteInit();
|
|
outFontInit();
|
|
itemBitCheck();
|
|
|
|
m970.mInitAlpha = 0x82;
|
|
m27E6 = 0;
|
|
m27E8 = 0;
|
|
|
|
((J2DWindow*)mB68[1].pane)->getContentsColor(m2488);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
m247C[i] = 0;
|
|
}
|
|
|
|
g_mcHIO.mNo = mDoHIO_createChild("コレクト画面", &g_mcHIO);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mA18[i].pane->hide();
|
|
}
|
|
|
|
for (int i = 0; i < 15; i++) {
|
|
((J2DPicture*)m0B0[i].pane)->changeTexture("font_07_02.bti", 0);
|
|
fopMsgM_blendInit(&m0B0[i], "font_00.bti");
|
|
}
|
|
}
|
|
|
|
/* 801A5498-801A55D0 .text _delete__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_delete() {
|
|
delete scrn;
|
|
delete stick;
|
|
delete cstick;
|
|
|
|
if (outFont != NULL) {
|
|
delete outFont;
|
|
}
|
|
|
|
dMo_c->_delete();
|
|
delete dMo_c;
|
|
|
|
dMs_c->_delete();
|
|
delete dMs_c;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
if (m247C[i] != NULL) {
|
|
m247C[i]->becomeInvalidEmitter();
|
|
m247C[i]->quitImmortalEmitter();
|
|
m247C[i] = NULL;
|
|
}
|
|
}
|
|
|
|
mpArc->removeResourceAll();
|
|
mDoHIO_deleteChild(g_mcHIO.mNo);
|
|
}
|
|
|
|
/* 801A55D0-801A5A7C .text _move__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_move() {
|
|
itemBitCheck();
|
|
|
|
if (m27F3 == 8) {
|
|
triforceAnime(g_mcHIO.m52);
|
|
}
|
|
|
|
if (mCollectMode == 0) {
|
|
if (!noteCheck()) {
|
|
if (!CPad_CHECK_TRIG_START(0) &&
|
|
!mDoCPd_L_LOCK_BUTTON(0) &&
|
|
!mDoCPd_R_LOCK_BUTTON(0))
|
|
{
|
|
if (CPad_CHECK_TRIG_A(0)) {
|
|
if (mNowItem <= 5 && dComIfGs_isTact(mNowItem)) {
|
|
mCollectMode = 1;
|
|
m15E8[0].mUserArea = 0;
|
|
|
|
tactGuideHide();
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
if (i < tact_beat[mNowItem]) {
|
|
m1E38[i].pane->show();
|
|
}
|
|
}
|
|
|
|
mDoAud_tact_melodyPlay(mNowItem);
|
|
} else if (mNowItem == 6) {
|
|
mCollectMode = 4;
|
|
dMo_c->initialize();
|
|
mDoAud_seStart(JA_SE_ITM_MENU_OPT_IN);
|
|
} else if (mNowItem == 7) {
|
|
#if VERSION > VERSION_DEMO
|
|
mCollectMode = 3;
|
|
dMs_c->initialize();
|
|
mDoAud_seStart(JA_SE_ITM_MENU_OPT_IN);
|
|
#endif
|
|
} else if (mNowItem == 0x11) {
|
|
if (dComIfGs_isCollect(3, 0)) {
|
|
dComIfGs_onCollect(3, 1);
|
|
}
|
|
}
|
|
|
|
if (((mNowItem >= 0xA && mNowItem <= 0x12) ||
|
|
(mNowItem == 8 && dComIfGs_getMaxLife() % 4) ||
|
|
(mNowItem == 9 && (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908) ||
|
|
dComIfGs_getCollectMapNum()))) &&
|
|
collectItemGetCheck(mNowItem))
|
|
{
|
|
fopMsgM_setInitAlpha(&m740);
|
|
fopMsgM_setInitAlpha(&m778);
|
|
fopMsgM_setInitAlpha(&m7B0);
|
|
fopMsgM_setInitAlpha(&m7E8);
|
|
fopMsgM_setInitAlpha(&m820);
|
|
|
|
m7E8.mUserArea = 1;
|
|
m7B0.mUserArea = 1;
|
|
|
|
itemnoteSet();
|
|
mDoAud_seStart(JA_SE_ITEM_EXP_OPEN);
|
|
}
|
|
} else if (!CPad_CHECK_TRIG_B(0)) {
|
|
cursorMainMove();
|
|
itemScale();
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
noteAppear();
|
|
}
|
|
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
itemnameMove();
|
|
} else {
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
}
|
|
|
|
outFontMove();
|
|
} else if (mCollectMode == 1) {
|
|
tactDemoMode(mNowItem);
|
|
itemnameMove();
|
|
} else if (mCollectMode == 2) {
|
|
tactPlayMode(mNowItem);
|
|
itemnameMove();
|
|
} else if (mCollectMode == 3) {
|
|
switch (dMs_c->getSaveStatus()) {
|
|
case 0:
|
|
mCollectMode = 0;
|
|
break;
|
|
case 1:
|
|
dMs_c->_open();
|
|
break;
|
|
case 2:
|
|
dMs_c->_move();
|
|
break;
|
|
case 3:
|
|
dMs_c->_close();
|
|
break;
|
|
}
|
|
|
|
dComIfGp_setAStatusForce(dActStts_RETURN_e);
|
|
} else if (mCollectMode == 4) {
|
|
switch (dMo_c->getQuitStatus()) {
|
|
case 0:
|
|
mCollectMode = 0;
|
|
break;
|
|
case 1:
|
|
dMo_c->_open();
|
|
break;
|
|
case 2:
|
|
dMo_c->_move();
|
|
break;
|
|
case 3:
|
|
dMo_c->_close();
|
|
break;
|
|
}
|
|
|
|
dComIfGp_setAStatusForce(dActStts_RETURN_e);
|
|
}
|
|
|
|
if (mCollectMode != 4 && mCollectMode != 3) {
|
|
cursorAnime();
|
|
cornerMove();
|
|
}
|
|
}
|
|
|
|
/* 801A5A7C-801A5B9C .text _move3__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_move3() {
|
|
s16 step1 = g_mcHIO.m46;
|
|
s16 step2 = g_mcHIO.m48;
|
|
s16 step3 = g_mcHIO.m4A;
|
|
s16 step4 = g_mcHIO.m4C;
|
|
|
|
s16 t1 = step1;
|
|
s16 t2 = step1 + step2;
|
|
s16 t3 = t2 + step3;
|
|
s16 t4 = t3 + step4;
|
|
|
|
mTimer++;
|
|
|
|
if (mTimer <= t1) {
|
|
if (mTimer == 1) {
|
|
mDoAud_seStart(JA_SE_TRIFORCE_BECOME_ONE);
|
|
}
|
|
|
|
animeStep1(step1, mTimer);
|
|
} else if (mTimer <= t2) {
|
|
animeStep2(step2, mTimer - t1);
|
|
} else if (mTimer <= t3) {
|
|
animeStep3(step3, mTimer - t2);
|
|
} else if (mTimer <= t4) {
|
|
animeStep4(step4, mTimer - t3);
|
|
|
|
if (mTimer == t4) {
|
|
mCollectMode = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A5B9C-801A68EC .text _draw__15dMenu_Collect_cFv */
|
|
void dMenu_Collect_c::_draw() {
|
|
if (m27EA == 0) {
|
|
fopMsgM_setAlpha(&m740);
|
|
fopMsgM_setAlpha(&m778);
|
|
fopMsgM_setAlpha(&m7B0);
|
|
fopMsgM_setAlpha(&m7E8);
|
|
fopMsgM_setAlpha(&m820);
|
|
outFont->setAlpha(m858.mNowAlpha);
|
|
fopMsgM_setAlpha(&m890[0]);
|
|
fopMsgM_setAlpha(&m890[1]);
|
|
fopMsgM_setAlpha(&m900);
|
|
fopMsgM_setAlpha(&m938);
|
|
fopMsgM_setAlpha(&m970);
|
|
fopMsgM_setAlpha(&m9A8);
|
|
fopMsgM_setAlpha(&m9E0);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&mA18[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&mAF8);
|
|
fopMsgM_setAlpha(&mB30);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setAlpha(&mB68[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&mC48);
|
|
fopMsgM_setAlpha(&mC80);
|
|
fopMsgM_setAlpha(&mCB8);
|
|
fopMsgM_setAlpha(&mCF0);
|
|
fopMsgM_setAlpha(&mD28);
|
|
fopMsgM_setAlpha(&mD60);
|
|
fopMsgM_setAlpha(&mD98);
|
|
fopMsgM_setAlpha(&mDD0);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_setAlpha(&mE08[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&mFC8);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setAlpha(&m1000[i]);
|
|
fopMsgM_setAlpha(&m10A8[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_setAlpha(&m1150[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setAlpha(&m13B8[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&m1460);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_setAlpha(&m1498[i]);
|
|
fopMsgM_setAlpha(&m15E8[i]);
|
|
fopMsgM_setAlpha(&m17A8[i]);
|
|
fopMsgM_setAlpha(&m18F8[i]);
|
|
fopMsgM_setAlpha(&m1A48[i]);
|
|
fopMsgM_setAlpha(&m1B98[i]);
|
|
fopMsgM_setAlpha(&m1CE8[i]);
|
|
fopMsgM_setAlpha(&m1E38[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&m1738);
|
|
fopMsgM_setAlpha(&m1770);
|
|
fopMsgM_setAlpha(&m1F88);
|
|
fopMsgM_setAlpha(&m1FC0);
|
|
fopMsgM_setAlpha(&m1FF8);
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setAlpha(&m2030[i]);
|
|
fopMsgM_setAlpha(&m2148[i]);
|
|
fopMsgM_setAlpha(&m2260[i]);
|
|
}
|
|
|
|
fopMsgM_setAlpha(&m2378);
|
|
fopMsgM_setAlpha(&m23B0);
|
|
fopMsgM_setAlpha(&m23E8);
|
|
fopMsgM_setAlpha(&m2420);
|
|
} else {
|
|
float alpha_scale = fopMsgM_valueIncrease(10, mTimer, 0);
|
|
|
|
if (mTriggerInfo != 1 && mTriggerInfo != 2) {
|
|
// Fade the top-level panes with the transition factor.
|
|
m740.pane->setAlpha((m740.mNowAlpha * alpha_scale));
|
|
m778.pane->setAlpha((m778.mNowAlpha * alpha_scale));
|
|
m7B0.pane->setAlpha((m7B0.mNowAlpha * alpha_scale));
|
|
m7E8.pane->setAlpha((m7E8.mNowAlpha * alpha_scale));
|
|
m820.pane->setAlpha((m820.mNowAlpha * alpha_scale));
|
|
outFont->setAlpha((m858.mNowAlpha * alpha_scale));
|
|
m890[0].pane->setAlpha((m890[0].mNowAlpha * alpha_scale));
|
|
m890[1].pane->setAlpha((m890[1].mNowAlpha * alpha_scale));
|
|
m900.pane->setAlpha((m900.mNowAlpha * alpha_scale));
|
|
m938.pane->setAlpha((m938.mNowAlpha * alpha_scale));
|
|
m9A8.pane->setAlpha((m9A8.mNowAlpha * alpha_scale));
|
|
m9E0.pane->setAlpha((m9E0.mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
m970.pane->setAlpha((m970.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mA18[i].pane->setAlpha((mA18[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
mAF8.pane->setAlpha((mAF8.mNowAlpha * alpha_scale));
|
|
mB30.pane->setAlpha((mB30.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
mB68[i].pane->setAlpha((mB68[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
mC48.pane->setAlpha((mC48.mNowAlpha * alpha_scale));
|
|
mC80.pane->setAlpha((mC80.mNowAlpha * alpha_scale));
|
|
mCB8.pane->setAlpha((mCB8.mNowAlpha * alpha_scale));
|
|
mCF0.pane->setAlpha((mCF0.mNowAlpha * alpha_scale));
|
|
mD28.pane->setAlpha((mD28.mNowAlpha * alpha_scale));
|
|
mD60.pane->setAlpha((mD60.mNowAlpha * alpha_scale));
|
|
mD98.pane->setAlpha((mD98.mNowAlpha * alpha_scale));
|
|
mDD0.pane->setAlpha((mDD0.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
mE08[i].pane->setAlpha((mE08[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
mFC8.pane->setAlpha((mFC8.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
m1000[i].pane->setAlpha((m1000[i].mNowAlpha * alpha_scale));
|
|
m10A8[i].pane->setAlpha((m10A8[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
m1150[i].pane->setAlpha((m1150[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
m13B8[i].pane->setAlpha((m13B8[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
m1460.pane->setAlpha((m1460.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
m1498[i].pane->setAlpha((m1498[i].mNowAlpha * alpha_scale));
|
|
m15E8[i].pane->setAlpha((m15E8[i].mNowAlpha * alpha_scale));
|
|
m17A8[i].pane->setAlpha((m17A8[i].mNowAlpha * alpha_scale));
|
|
m18F8[i].pane->setAlpha((m18F8[i].mNowAlpha * alpha_scale));
|
|
m1A48[i].pane->setAlpha((m1A48[i].mNowAlpha * alpha_scale));
|
|
m1B98[i].pane->setAlpha((m1B98[i].mNowAlpha * alpha_scale));
|
|
m1CE8[i].pane->setAlpha((m1CE8[i].mNowAlpha * alpha_scale));
|
|
m1E38[i].pane->setAlpha((m1E38[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
|
|
m1738.pane->setAlpha((m1738.mNowAlpha * alpha_scale));
|
|
m1770.pane->setAlpha((m1770.mNowAlpha * alpha_scale));
|
|
m1F88.pane->setAlpha((m1F88.mNowAlpha * alpha_scale));
|
|
m1FC0.pane->setAlpha((m1FC0.mNowAlpha * alpha_scale));
|
|
m1FF8.pane->setAlpha((m1FF8.mNowAlpha * alpha_scale));
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
m2030[i].pane->setAlpha((m2030[i].mNowAlpha * alpha_scale));
|
|
m2148[i].pane->setAlpha((m2148[i].mNowAlpha * alpha_scale));
|
|
m2260[i].pane->setAlpha((m2260[i].mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
m2378.pane->setAlpha((m2378.mNowAlpha * alpha_scale));
|
|
m23B0.pane->setAlpha((m23B0.mNowAlpha * alpha_scale));
|
|
m23E8.pane->setAlpha((m23E8.mNowAlpha * alpha_scale));
|
|
m2420.pane->setAlpha((m2420.mNowAlpha * alpha_scale));
|
|
}
|
|
|
|
outFontDraw();
|
|
|
|
J2DOrthoGraph* graph = dComIfGp_getCurrentGrafPort();
|
|
graph->setPort();
|
|
|
|
scrn->draw(0.0f, 0.0f, graph);
|
|
dMo_c->_draw();
|
|
dMs_c->_draw();
|
|
}
|
|
|
|
/* 801A68EC-801A6B28 .text _open__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_open() {
|
|
bool ret = false;
|
|
|
|
if (mTimer == 0) {
|
|
for(int i = 0; i < 2; i++) {
|
|
strcpy(name[i], "");
|
|
strcpy(note[i], "");
|
|
((J2DTextBox*)m890[i].pane)->setString(name[i]);
|
|
}
|
|
|
|
((J2DTextBox*)m778.pane)->setString(note[0]);
|
|
((J2DTextBox*)m740.pane)->setString(note[1]);
|
|
|
|
itemnameSet();
|
|
itemnoteSet();
|
|
itemSet();
|
|
|
|
switch(mNowItem) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_CHOOSE_e);
|
|
}
|
|
else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
break;
|
|
default:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_INFO_e);
|
|
}
|
|
else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
}
|
|
}
|
|
|
|
mTimer++;
|
|
|
|
if (mTimer <= 10) {
|
|
if (mTriggerInfo == 2) {
|
|
mainOpenProc(mTimer, 10, -100);
|
|
subOpenProc(mTimer, 10, -100);
|
|
}
|
|
else {
|
|
mainOpenProc(mTimer, 10, 100);
|
|
subOpenProc(mTimer, 10, 100);
|
|
}
|
|
|
|
titleOpenProc(mTimer, 10);
|
|
noteOpenProc(mTimer, 10);
|
|
nameOpenProc(mTimer, 10);
|
|
}
|
|
|
|
if (mTimer >= 10) {
|
|
ret = true;
|
|
mDoAud_seStart(JA_SE_ITM_MENU_ITEMS_IN);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* 801A6B28-801A6CC8 .text _open3__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_open3() {
|
|
bool ret = false;
|
|
|
|
if (mTimer == 0) {
|
|
for(int i = 0; i < 2; i++) {
|
|
strcpy(name[i], "");
|
|
strcpy(note[i], "");
|
|
((J2DTextBox*)m890[i].pane)->setString(name[i]);
|
|
}
|
|
|
|
((J2DTextBox*)m778.pane)->setString(note[0]);
|
|
((J2DTextBox*)m740.pane)->setString(note[1]);
|
|
|
|
mNowItem = 1;
|
|
|
|
itemnameSet();
|
|
itemnoteSet();
|
|
itemSet();
|
|
|
|
dComIfGp_setDoStatusForce(dActStts_HIDDEN_e);
|
|
dComIfGp_setAStatusForce(dActStts_HIDDEN_e);
|
|
}
|
|
|
|
mTimer++;
|
|
|
|
if (mTimer <= 10) {
|
|
mainOpenProc(mTimer, 10, 100);
|
|
subOpenProc(mTimer, 10, 100);
|
|
titleOpenProc(mTimer, 10);
|
|
noteOpenProc(mTimer, 10);
|
|
nameOpenProc(mTimer, 10);
|
|
}
|
|
|
|
if (mTimer >= 10) {
|
|
mTimer = 0;
|
|
ret = true;
|
|
mDoAud_seStart(JA_SE_ITM_MENU_ITEMS_IN);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* 801A6CC8-801A71EC .text _close__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_close() {
|
|
bool ret = false;
|
|
|
|
mTimer--;
|
|
|
|
float main = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float sub = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float title = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float name = 50.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float note = fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
|
|
f32 angle;
|
|
f32 rotation;
|
|
if (mTriggerInfo == 2) {
|
|
mainTrans(-main, 0.0f);
|
|
subTrans(-sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
} else if (mTriggerInfo == 1) {
|
|
mainTrans(main, 0.0f);
|
|
subTrans(sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
}
|
|
|
|
if (mTimer > 0) {
|
|
m27EA = 1;
|
|
} else {
|
|
ret = true;
|
|
m27EA = 0;
|
|
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
|
|
for (int i = 0; i < 15; i++) {
|
|
fopMsgM_setNowAlphaZero(&m0B0[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m740);
|
|
fopMsgM_setNowAlphaZero(&m778);
|
|
fopMsgM_setNowAlphaZero(&m7B0);
|
|
fopMsgM_setNowAlphaZero(&m7E8);
|
|
fopMsgM_setNowAlphaZero(&m820);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m900);
|
|
fopMsgM_setNowAlphaZero(&m938);
|
|
fopMsgM_setNowAlphaZero(&m970);
|
|
fopMsgM_setNowAlphaZero(&m9A8);
|
|
fopMsgM_setNowAlphaZero(&m9E0);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mA18[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mAF8);
|
|
fopMsgM_setNowAlphaZero(&mB30);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mB68[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mC48);
|
|
fopMsgM_setNowAlphaZero(&mC80);
|
|
fopMsgM_setNowAlphaZero(&mCB8);
|
|
fopMsgM_setNowAlphaZero(&mCF0);
|
|
fopMsgM_setNowAlphaZero(&mD28);
|
|
fopMsgM_setNowAlphaZero(&mD60);
|
|
fopMsgM_setNowAlphaZero(&mD98);
|
|
fopMsgM_setNowAlphaZero(&mDD0);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlphaZero(&mE08[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mFC8);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1000[i]);
|
|
fopMsgM_setNowAlphaZero(&m10A8[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1150[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m13B8[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1460);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1498[i]);
|
|
fopMsgM_setNowAlphaZero(&m15E8[i]);
|
|
fopMsgM_setNowAlphaZero(&m17A8[i]);
|
|
fopMsgM_setNowAlphaZero(&m18F8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1A48[i]);
|
|
fopMsgM_setNowAlphaZero(&m1B98[i]);
|
|
fopMsgM_setNowAlphaZero(&m1CE8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1E38[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1738);
|
|
fopMsgM_setNowAlphaZero(&m1770);
|
|
fopMsgM_setNowAlphaZero(&m1F88);
|
|
fopMsgM_setNowAlphaZero(&m1FC0);
|
|
fopMsgM_setNowAlphaZero(&m1FF8);
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setNowAlphaZero(&m2030[i]);
|
|
fopMsgM_setNowAlphaZero(&m2148[i]);
|
|
fopMsgM_setNowAlphaZero(&m2260[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m2378);
|
|
fopMsgM_setNowAlphaZero(&m23B0);
|
|
fopMsgM_setNowAlphaZero(&m23E8);
|
|
fopMsgM_setNowAlphaZero(&m2420);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/* 801A71EC-801A7710 .text _close3__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_close3() {
|
|
bool ret = false;
|
|
|
|
mTimer--;
|
|
|
|
float main = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float sub = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float title = -100.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float name = 50.0f * fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
float note = fopMsgM_valueIncrease(10, 10 - mTimer, 0);
|
|
|
|
f32 angle;
|
|
f32 rotation;
|
|
|
|
if (mTriggerInfo == 2) {
|
|
mainTrans(-main, 0.0f);
|
|
subTrans(-sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
} else if (mTriggerInfo == 1) {
|
|
mainTrans(main, 0.0f);
|
|
subTrans(sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
}
|
|
|
|
if (mTimer > 0) {
|
|
m27EA = 1;
|
|
} else {
|
|
ret = true;
|
|
m27EA = 0;
|
|
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
|
|
for (int i = 0; i < 15; i++) {
|
|
fopMsgM_setNowAlphaZero(&m0B0[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m740);
|
|
fopMsgM_setNowAlphaZero(&m778);
|
|
fopMsgM_setNowAlphaZero(&m7B0);
|
|
fopMsgM_setNowAlphaZero(&m7E8);
|
|
fopMsgM_setNowAlphaZero(&m820);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m900);
|
|
fopMsgM_setNowAlphaZero(&m938);
|
|
fopMsgM_setNowAlphaZero(&m970);
|
|
fopMsgM_setNowAlphaZero(&m9A8);
|
|
fopMsgM_setNowAlphaZero(&m9E0);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mA18[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mAF8);
|
|
fopMsgM_setNowAlphaZero(&mB30);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mB68[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mC48);
|
|
fopMsgM_setNowAlphaZero(&mC80);
|
|
fopMsgM_setNowAlphaZero(&mCB8);
|
|
fopMsgM_setNowAlphaZero(&mCF0);
|
|
fopMsgM_setNowAlphaZero(&mD28);
|
|
fopMsgM_setNowAlphaZero(&mD60);
|
|
fopMsgM_setNowAlphaZero(&mD98);
|
|
fopMsgM_setNowAlphaZero(&mDD0);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlphaZero(&mE08[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mFC8);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1000[i]);
|
|
fopMsgM_setNowAlphaZero(&m10A8[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1150[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m13B8[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1460);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1498[i]);
|
|
fopMsgM_setNowAlphaZero(&m15E8[i]);
|
|
fopMsgM_setNowAlphaZero(&m17A8[i]);
|
|
fopMsgM_setNowAlphaZero(&m18F8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1A48[i]);
|
|
fopMsgM_setNowAlphaZero(&m1B98[i]);
|
|
fopMsgM_setNowAlphaZero(&m1CE8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1E38[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1738);
|
|
fopMsgM_setNowAlphaZero(&m1770);
|
|
fopMsgM_setNowAlphaZero(&m1F88);
|
|
fopMsgM_setNowAlphaZero(&m1FC0);
|
|
fopMsgM_setNowAlphaZero(&m1FF8);
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setNowAlphaZero(&m2030[i]);
|
|
fopMsgM_setNowAlphaZero(&m2148[i]);
|
|
fopMsgM_setNowAlphaZero(&m2260[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m2378);
|
|
fopMsgM_setNowAlphaZero(&m23B0);
|
|
fopMsgM_setNowAlphaZero(&m23E8);
|
|
fopMsgM_setNowAlphaZero(&m2420);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/* 801A7710-801A7A5C .text animeStep1__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::animeStep1(short param_1, short param_2) {
|
|
short step = param_2;
|
|
short step_max = param_1;
|
|
|
|
float alpha_scale = fopMsgM_valueIncrease(step_max, step, 0);
|
|
mDD0.mNowAlpha = alpha_scale * 255.0f;
|
|
mD98.mNowAlpha = g_mcHIO.m5C * alpha_scale;
|
|
|
|
if (step_max - 8 == step) {
|
|
cXyz pos(
|
|
mE08[7].mPosCenter.x - 320.0f,
|
|
mE08[7].mPosCenter.y - 240.0f,
|
|
0.0f
|
|
);
|
|
|
|
if (m247C[2] == NULL) {
|
|
m247C[2] = dComIfGp_particle_set2DmenuFore(dPa_name::ID_HM_J2_RUPYLIGHT, &pos);
|
|
m247C[2]->setGlobalAlpha(0xFF);
|
|
}
|
|
} else if (step_max - 4 == step) {
|
|
cXyz pos(
|
|
mE08[1].mPosCenter.x - 320.0f,
|
|
mE08[1].mPosCenter.y - 240.0f,
|
|
0.0f
|
|
);
|
|
|
|
if (m247C[1] == NULL) {
|
|
m247C[1] = dComIfGp_particle_set2DmenuFore(dPa_name::ID_HM_J2_RUPYLIGHT, &pos);
|
|
m247C[1]->setGlobalAlpha(0xFF);
|
|
}
|
|
}
|
|
|
|
if (param_1 == param_2) {
|
|
for (int i = 0; i < 8; i++) {
|
|
if (i == 4) {
|
|
mE08[i].pane->show();
|
|
} else {
|
|
mE08[i].pane->hide();
|
|
}
|
|
}
|
|
|
|
((J2DPicture*)mE08[4].pane)->changeTexture("triforce.bti", 0);
|
|
ResTIMG* timg = (ResTIMG*)JKRArchive::getGlbResource('TIMG', "triforce.bti", mpArc);
|
|
|
|
mE08[4].mPosCenterOrig.x = mFC8.mPosCenterOrig.x;
|
|
mE08[4].mPosCenterOrig.y = mFC8.mPosCenterOrig.y;
|
|
mE08[4].mPosCenter.x = mFC8.mPosCenter.x;
|
|
mE08[4].mPosCenter.y = mFC8.mPosCenter.y;
|
|
|
|
mE08[4].mSize.x = timg->width * 1.45f;
|
|
mE08[4].mSize.y = timg->height * 1.45f;
|
|
|
|
fopMsgM_cposMove(&mE08[4]);
|
|
|
|
cXyz pos(mE08[6].mPosCenter.x - 320.0f, mE08[6].mPosCenter.y - 240.0f, 0.0f);
|
|
|
|
if (m247C[0] == NULL) {
|
|
m247C[0] = dComIfGp_particle_set2DmenuFore(dPa_name::ID_HM_J2_RUPYLIGHT, &pos);
|
|
m247C[0]->setGlobalAlpha(0xFF);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A7A5C-801A7B70 .text animeStep2__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::animeStep2(short param_1, short param_2) {
|
|
float t_in = fopMsgM_valueIncrease(param_1, param_2, 0);
|
|
float t_out = fopMsgM_valueIncrease(param_1, param_1 - param_2, 2);
|
|
|
|
fopMsgM_paneScaleXY(&mD98, (g_mcHIO.m54 - 1.0f) * t_in + 1.0f);
|
|
mD98.mNowAlpha = (u8)(g_mcHIO.m5C * t_out);
|
|
|
|
if (param_1 == param_2) {
|
|
mNowItem = 2;
|
|
itemnameSet();
|
|
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setInitAlpha(&m890[1]);
|
|
}
|
|
}
|
|
|
|
/* 801A7B70-801A7CBC .text animeStep3__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::animeStep3(short param_1, short param_2) {
|
|
float alpha_t = fopMsgM_valueIncrease(param_1, param_1 - param_2, 1);
|
|
float name_t = fopMsgM_valueIncrease(param_1, param_2, 2);
|
|
|
|
mDD0.mNowAlpha = alpha_t * 255.0f;
|
|
|
|
fopMsgM_setNowAlpha(&m890[0], name_t);
|
|
fopMsgM_setNowAlpha(&m890[1], 1.0f - name_t);
|
|
|
|
const s16 emitterPaneIdx[3] = {6, 1, 7};
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
cXyz pos(
|
|
mE08[emitterPaneIdx[i]].mPosCenter.x - 320.0f,
|
|
mE08[emitterPaneIdx[i]].mPosCenter.y - 240.0f,
|
|
0.0f
|
|
);
|
|
|
|
if (m247C[i] != NULL) {
|
|
m247C[i]->setGlobalTranslation(
|
|
pos.x,
|
|
pos.y,
|
|
pos.z
|
|
);
|
|
|
|
m247C[i]->playDrawParticle();
|
|
m247C[i]->setGlobalAlpha(0xFF);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801A7CBC-801A7D60 .text animeStep4__15dMenu_Collect_cFss */
|
|
void dMenu_Collect_c::animeStep4(short param_1, short param_2) {
|
|
s16 quarter = param_1 / 4;
|
|
s16 step = param_2;
|
|
|
|
if (step == quarter) {
|
|
if (m247C[0] != NULL) {
|
|
m247C[0]->setGlobalAlpha(0);
|
|
}
|
|
} else if (step == quarter * 2) {
|
|
if (m247C[1] != NULL) {
|
|
m247C[1]->setGlobalAlpha(0);
|
|
}
|
|
} else if (step == quarter * 3) {
|
|
if (m247C[2] != NULL) {
|
|
m247C[2]->setGlobalAlpha(0);
|
|
}
|
|
}
|
|
|
|
triforceAnime(g_mcHIO.m5D);
|
|
}
|
|
|
|
/* 801A7D60-801A7F88 .text _open2__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_open2() {
|
|
const s16 open_frames = g_menuHIO.field_0x92;
|
|
bool ret = false;
|
|
|
|
if (mTimer == 0) {
|
|
for (int i = 0; i < 2; i++) {
|
|
strcpy(name[i], "");
|
|
strcpy(note[i], "");
|
|
((J2DTextBox*)m890[i].pane)->setString(name[i]);
|
|
}
|
|
|
|
((J2DTextBox*)m778.pane)->setString(note[0]);
|
|
((J2DTextBox*)m740.pane)->setString(note[1]);
|
|
|
|
itemnameSet();
|
|
itemnoteSet();
|
|
itemSet();
|
|
|
|
switch (mNowItem) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_CHOOSE_e);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
break;
|
|
default:
|
|
if (collectItemGetCheck(mNowItem)) {
|
|
dComIfGp_setDoStatusForce(dActStts_INFO_e);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
}
|
|
}
|
|
}
|
|
|
|
mTimer++;
|
|
|
|
if (mTimer <= open_frames) {
|
|
if (mTriggerInfo == 2) {
|
|
mainOpenProc(mTimer, open_frames, -100);
|
|
subOpenProc(mTimer, open_frames, -100);
|
|
} else {
|
|
mainOpenProc(mTimer, open_frames, 100);
|
|
subOpenProc(mTimer, open_frames, 100);
|
|
}
|
|
|
|
titleOpenProc(mTimer, open_frames);
|
|
noteOpenProc(mTimer, open_frames);
|
|
nameOpenProc(mTimer, open_frames);
|
|
}
|
|
|
|
if (mTimer >= open_frames) {
|
|
ret = true;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* 801A7F88-801A84B4 .text _close2__15dMenu_Collect_cFv */
|
|
bool dMenu_Collect_c::_close2() {
|
|
bool ret = false;
|
|
mTimer--;
|
|
|
|
f32 main = -100.0f * fopMsgM_valueIncrease(g_menuHIO.field_0x92, g_menuHIO.field_0x92 - mTimer, 0);
|
|
float sub = -100.0f * fopMsgM_valueIncrease(g_menuHIO.field_0x92, g_menuHIO.field_0x92 - mTimer, 0);
|
|
float title = -100.0f * fopMsgM_valueIncrease(g_menuHIO.field_0x92, g_menuHIO.field_0x92 - mTimer, 0);
|
|
float name = 50.0f * fopMsgM_valueIncrease(g_menuHIO.field_0x92, g_menuHIO.field_0x92 - mTimer, 0);
|
|
float note = fopMsgM_valueIncrease(g_menuHIO.field_0x92, g_menuHIO.field_0x92 - mTimer, 0);
|
|
|
|
f32 angle;
|
|
f32 rotation;
|
|
|
|
if (mTriggerInfo == 2) {
|
|
mainTrans(-main, 0.0f);
|
|
subTrans(-sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
} else if (mTriggerInfo == 1) {
|
|
mainTrans(main, 0.0f);
|
|
subTrans(sub, 0.0f);
|
|
titleTrans(0.0f, title);
|
|
|
|
angle = m820.mUserArea + (45 - m820.mUserArea) * note;
|
|
rotation = 200.0f * note;
|
|
|
|
noteRotate(rotation, angle);
|
|
nameTrans(0.0f, name);
|
|
}
|
|
|
|
if (mTimer > 0) {
|
|
m27EA = 1;
|
|
} else {
|
|
ret = true;
|
|
m27EA = 0;
|
|
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
|
|
|
for (int i = 0; i < 15; i++) {
|
|
fopMsgM_setNowAlphaZero(&m0B0[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m740);
|
|
fopMsgM_setNowAlphaZero(&m778);
|
|
fopMsgM_setNowAlphaZero(&m7B0);
|
|
fopMsgM_setNowAlphaZero(&m7E8);
|
|
fopMsgM_setNowAlphaZero(&m820);
|
|
fopMsgM_setNowAlphaZero(&m858);
|
|
fopMsgM_setNowAlphaZero(&m890[0]);
|
|
fopMsgM_setNowAlphaZero(&m890[1]);
|
|
fopMsgM_setNowAlphaZero(&m900);
|
|
fopMsgM_setNowAlphaZero(&m938);
|
|
fopMsgM_setNowAlphaZero(&m970);
|
|
fopMsgM_setNowAlphaZero(&m9A8);
|
|
fopMsgM_setNowAlphaZero(&m9E0);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mA18[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mAF8);
|
|
fopMsgM_setNowAlphaZero(&mB30);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
fopMsgM_setNowAlphaZero(&mB68[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mC48);
|
|
fopMsgM_setNowAlphaZero(&mC48);
|
|
fopMsgM_setNowAlphaZero(&mC80);
|
|
fopMsgM_setNowAlphaZero(&mCF0);
|
|
fopMsgM_setNowAlphaZero(&mD28);
|
|
fopMsgM_setNowAlphaZero(&mD60);
|
|
fopMsgM_setNowAlphaZero(&mD98);
|
|
fopMsgM_setNowAlphaZero(&mDD0);
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlphaZero(&mE08[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&mFC8);
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1000[i]);
|
|
fopMsgM_setNowAlphaZero(&m10A8[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 11; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1150[i]);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlphaZero(&m13B8[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1460);
|
|
|
|
for (int i = 0; i < 6; i++) {
|
|
fopMsgM_setNowAlphaZero(&m1498[i]);
|
|
fopMsgM_setNowAlphaZero(&m15E8[i]);
|
|
fopMsgM_setNowAlphaZero(&m17A8[i]);
|
|
fopMsgM_setNowAlphaZero(&m18F8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1A48[i]);
|
|
fopMsgM_setNowAlphaZero(&m1B98[i]);
|
|
fopMsgM_setNowAlphaZero(&m1CE8[i]);
|
|
fopMsgM_setNowAlphaZero(&m1E38[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m1738);
|
|
fopMsgM_setNowAlphaZero(&m1770);
|
|
fopMsgM_setNowAlphaZero(&m1F88);
|
|
fopMsgM_setNowAlphaZero(&m1FC0);
|
|
fopMsgM_setNowAlphaZero(&m1FF8);
|
|
|
|
for (int i = 0; i < 5; i++) {
|
|
fopMsgM_setNowAlphaZero(&m2030[i]);
|
|
fopMsgM_setNowAlphaZero(&m2148[i]);
|
|
fopMsgM_setNowAlphaZero(&m2260[i]);
|
|
}
|
|
|
|
fopMsgM_setNowAlphaZero(&m2378);
|
|
fopMsgM_setNowAlphaZero(&m23B0);
|
|
fopMsgM_setNowAlphaZero(&m23E8);
|
|
fopMsgM_setNowAlphaZero(&m2420);
|
|
}
|
|
|
|
return ret;
|
|
}
|