mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 13:46:21 -04:00
ab5659b201
* d_a_player_main cleanup and some demo matches * Add unions for player_main procvars * Make d_a_player_main fields private
3171 lines
133 KiB
C++
3171 lines
133 KiB
C++
/**
|
|
* d_msg.cpp
|
|
* Textboxes (normal gameplay) (talking, item collection, etc.)
|
|
*/
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
|
#include "JSystem/J2DGraph/J2DTextBox.h"
|
|
#include "JSystem/JKernel/JKRExpHeap.h"
|
|
#include "d/actor/d_a_player.h"
|
|
#include "d/actor/d_a_player_main.h"
|
|
#include "d/d_file_error.h"
|
|
#include "d/d_meter.h"
|
|
#include "d/d_msg.h"
|
|
#include "d/d_s_play.h"
|
|
#include "f_op/f_op_msg_mng.h"
|
|
#include "d/actor/d_a_npc_bs1.h"
|
|
#include "d/d_priority.h"
|
|
#include "d/d_procname.h"
|
|
#include "dolphin/types.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "m_Do/m_Do_lib.h"
|
|
#include <stdio.h>
|
|
|
|
class J2DTextBox;
|
|
struct fopMsgM_pane_class;
|
|
|
|
J2DPicture* button_icon[8];
|
|
J2DPicture* button_kage[8];
|
|
s16 buttonTimer[8];
|
|
J2DTextBox* numberPane[3];
|
|
|
|
MyScreen* sScreen;
|
|
static J2DScreen* sScreen2;
|
|
JUTFont* textFont;
|
|
JUTFont* rubyFont;
|
|
J2DPicture* arrowPane;
|
|
J2DPicture* maskPane;
|
|
f32 talkPosX;
|
|
f32 talkPosY;
|
|
s16 textOffsetY;
|
|
#if VERSION >= VERSION_USA
|
|
bool dMsg_font_flag;
|
|
#endif
|
|
JKRHeap* agb_work_area;
|
|
static dDlst_2DMSG_c message;
|
|
dDlst_2Dtact_c capture;
|
|
dDlst_2DM_c multiTex;
|
|
|
|
char* mLayout[] = {
|
|
"hukidashi_14_1.blo",
|
|
"hukidashi_14_1.blo",
|
|
"hukidashi_14_3.blo",
|
|
"hukidashi_14_5.blo",
|
|
"hukidashi_14_6.blo",
|
|
"hukidashi_14_6.blo",
|
|
"hukidashi_14_0_1.blo",
|
|
"hukidashi_14_0_2.blo"
|
|
};
|
|
|
|
const u8 mBeatNum[] = {0x03, 0x04, 0x04, 0x06, 0x06, 0x03, 0x03, 0x04};
|
|
|
|
void dMsg_textPosition(sub_msg_class*);
|
|
void dMsg_mesgOutPos(sub_msg_class*);
|
|
void dMsg_setCloseSound(sub_msg_class*, u8);
|
|
void dMsg_setCancelMode(sub_msg_class*);
|
|
|
|
/* 8020A620-8020A628 .text dMsg_getAgbWorkArea__Fv */
|
|
JKRHeap* dMsg_getAgbWorkArea() {
|
|
return agb_work_area;
|
|
}
|
|
|
|
/* 8020A628-8020A950 .text draw__13dDlst_2DMSG_cFv */
|
|
void dDlst_2DMSG_c::draw() {
|
|
/* Nonmatching */
|
|
fopMsgM_msgDataProc_c* temp_r3;
|
|
sub_msg_class* pmVar3;
|
|
sub_msg_class* pmVar2;
|
|
sub_msg_class* pmVar4;
|
|
f32 dVar3;
|
|
|
|
pmVar4 = field_0x4;
|
|
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
|
|
graf->setPort();
|
|
sScreen->draw(0.0f, 0.0f, graf);
|
|
if (sScreen2 != NULL) {
|
|
sScreen2->draw(0.0f, 0.0f, graf);
|
|
}
|
|
outFontDraw();
|
|
if (pmVar4->mStatus == fopMsgStts_SELECT_YOKO_e) {
|
|
pmVar3 = field_0x4;
|
|
temp_r3 = &pmVar3->mMsgDataProc;
|
|
temp_r3->selectArrow(arrowPane, temp_r3->field_0x26C, temp_r3->field_0x270, temp_r3->field_0x278, temp_r3->field_0x274);
|
|
} else if (pmVar4->mStatus == fopMsgStts_INPUT_e) {
|
|
pmVar2 = field_0x4;
|
|
if ((pmVar2->mMesgEntry.mTextboxType == 0) || (pmVar2->mMesgEntry.mTextboxType == 10)) {
|
|
f32 f1 = (numberPane[0]->mBounds.f.x - numberPane[0]->mBounds.i.x);
|
|
dVar3 = (f1 + numberPane[0]->getCharSpace());
|
|
if (pmVar4->mMsgNo == 0x1cfa) {
|
|
f32 f3;
|
|
f32 f4;
|
|
f4 = maskPane->mBounds.f.y - maskPane->mBounds.i.y;
|
|
f3 = maskPane->mBounds.f.x - maskPane->mBounds.i.x;
|
|
maskPane->draw(pmVar2->m10EC + (dVar3 * (2 - pmVar4->mSelectNum)), pmVar2->m10F0, f3, f4, false, false, false);
|
|
f4 = numberPane[2]->mBounds.f.x - numberPane[2]->mBounds.i.x;
|
|
f3 = numberPane[2]->mBounds.f.y - numberPane[2]->mBounds.i.y;
|
|
numberPane[2]->draw(field_0x4->m10EC, field_0x4->m10F0 + f3, f4, HBIND_CENTER);
|
|
f4 = numberPane[1]->mBounds.f.x - numberPane[1]->mBounds.i.x;
|
|
f3 = numberPane[1]->mBounds.f.y - numberPane[1]->mBounds.i.y;
|
|
numberPane[1]->draw((field_0x4->m10EC + dVar3), field_0x4->m10F0 + f3, f4, HBIND_CENTER);
|
|
f4 = numberPane[0]->mBounds.f.x - numberPane[0]->mBounds.i.x;
|
|
f3 = numberPane[0]->mBounds.f.y - numberPane[0]->mBounds.i.y;
|
|
numberPane[0]->draw(field_0x4->m10EC + (dVar3 * 2.0f), field_0x4->m10F0 + f3, f4, HBIND_CENTER);
|
|
} else {
|
|
numberPane[2]->hide();
|
|
f32 f3;
|
|
f32 f4;
|
|
f4 = maskPane->mBounds.f.y - maskPane->mBounds.i.y;
|
|
f3 = maskPane->mBounds.f.x - maskPane->mBounds.i.x;
|
|
maskPane->draw(field_0x4->m10EC + (dVar3 * (1 - pmVar4->mSelectNum)), field_0x4->m10F0, f3, f4, false, false, false);
|
|
f4 = numberPane[1]->mBounds.f.x - numberPane[1]->mBounds.i.x;
|
|
f3 = numberPane[1]->mBounds.f.y - numberPane[1]->mBounds.i.y;
|
|
numberPane[1]->draw(field_0x4->m10EC, field_0x4->m10F0 + f3, f4, HBIND_CENTER);
|
|
f4 = numberPane[0]->mBounds.f.x - numberPane[0]->mBounds.i.x;
|
|
f3 = numberPane[0]->mBounds.f.y - numberPane[0]->mBounds.i.y;
|
|
numberPane[0]->draw((field_0x4->m10EC + dVar3), field_0x4->m10F0 + f3, f4, HBIND_CENTER);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020A950-8020AC40 .text outFontDraw__13dDlst_2DMSG_cFv */
|
|
void dDlst_2DMSG_c::outFontDraw() {
|
|
/* Nonmatching */
|
|
f32 dVar1;
|
|
u8 cVar2;
|
|
J2DScreen* pJVar3;
|
|
sub_msg_class* pdVar4;
|
|
int uVar4;
|
|
int uVar5;
|
|
u8 bVar6;
|
|
int iVar7;
|
|
f32 local_38;
|
|
f32 local_30;
|
|
f32 local_28;
|
|
|
|
for (s32 i = 0; i < 8; i++) {
|
|
pdVar4 = (sub_msg_class*)this->field_0x4;
|
|
cVar2 = pdVar4->mMsgDataProc.field_0x281[i];
|
|
fopMsgM_msgDataProc_c* tmp = &pdVar4->mMsgDataProc;
|
|
iVar7 = tmp->field_0x1A4[i];
|
|
uVar5 = tmp->field_0x1E0[i];
|
|
if ((((cVar2 != 0xFF) && (cVar2 != 0x14)) && (cVar2 != 0x15)) && (cVar2 != 0x16)) {
|
|
pJVar3 = (J2DScreen*)pdVar4->m0544[0].pane;
|
|
local_38 = tmp->field_0x168[i];
|
|
dVar1 = local_38;
|
|
if (pdVar4->mMesgEntry.mTextboxType == 5) {
|
|
local_30 = g_msgHIO.field_0x5e * iVar7;
|
|
local_38 = pdVar4->m1104 * (2 - pdVar4->m1108);
|
|
iVar7 = (int)((local_30) + (local_38) + pJVar3->mBounds.i.y);
|
|
bVar6 = pdVar4->m0544[0].mNowAlpha;
|
|
} else if (pdVar4->mMesgEntry.mTextboxType == 0xe) {
|
|
local_28 = g_msgHIO.field_0x5e * iVar7;
|
|
local_30 = pdVar4->m1104;
|
|
iVar7 = (int)((local_28) + (local_30) + pJVar3->mBounds.i.y);
|
|
bVar6 = pdVar4->m0544[0].mNowAlpha;
|
|
} else {
|
|
if (pdVar4->m110C > (int)uVar5) {
|
|
if (pdVar4->m1108 > 1) {
|
|
uVar4 = uVar5 - pdVar4->m110C;
|
|
iVar7 = ((int)uVar4 / 2) + (int)(((pdVar4->m1104 * ((3 - iVar7) - (pdVar4->m1108 + -2))) + pJVar3->mBounds.i.y) - (int)(uVar5 / 2));
|
|
} else {
|
|
iVar7 = (int)(((pdVar4->m1104 << 2) + pJVar3->mBounds.i.y) - (int)(uVar5 / 2));
|
|
}
|
|
} else {
|
|
local_28 = g_msgHIO.field_0x5e * iVar7;
|
|
local_30 = pdVar4->m1104 * (3 - pdVar4->m1108);
|
|
iVar7 = (int)((local_28) + (local_30) + pJVar3->mBounds.i.y);
|
|
}
|
|
bVar6 = pdVar4->m0544[0].mNowAlpha;
|
|
}
|
|
fopMsgM_outFontDraw(button_icon[i], button_kage[i], (int)(dVar1 + pJVar3->mBounds.i.x), iVar7, uVar5, &buttonTimer[i], bVar6, cVar2);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020AC40-8020AD3C .text draw__14dDlst_2Dtact_cFv */
|
|
void dDlst_2Dtact_c::draw() {
|
|
/* Nonmatching */
|
|
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
|
|
GXBool uVar1;
|
|
f32 temp_r27;
|
|
f32 temp_r28;
|
|
f32 temp_r29;
|
|
f32 temp_r30;
|
|
|
|
graf->setPort();
|
|
temp_r30 = -9.0f;
|
|
temp_r29 = -21.0f;
|
|
temp_r28 = 383.04376f;
|
|
temp_r27 = 78.600006f;
|
|
GXSetScissor((s32)temp_r30, (s32)temp_r29, (s32)temp_r28, (s32)temp_r27);
|
|
sScreen->draw(0.0f, 0.0f, graf);
|
|
GXSetTexCopySrc((s32)temp_r30, (s32)temp_r29, (s32)temp_r28, (s32)temp_r27);
|
|
GXSetTexCopyDst((s32)temp_r28, (s32)temp_r27, GX_TF_RGB565, GX_FALSE);
|
|
if (REG1_S(6) != 0) {
|
|
uVar1 = GX_FALSE;
|
|
} else {
|
|
uVar1 = GX_TRUE;
|
|
}
|
|
GXCopyTex(field_0x8, uVar1);
|
|
}
|
|
|
|
/* 8020AD3C-8020ADD8 .text dMsg_msg_pane_parts_set__FP18fopMsgM_pane_classUc */
|
|
void dMsg_msg_pane_parts_set(fopMsgM_pane_class* pPane, u8 param_2) {
|
|
f32 tmp;
|
|
switch (param_2) {
|
|
case 1:
|
|
pPane->mPosTopLeft.y = (480.0f - (pPane->mPosTopLeftOrig.y + pPane->mSizeOrig.y)) + -26.0f;
|
|
break;
|
|
case 2:
|
|
tmp = 0.5f;
|
|
pPane->mPosTopLeft.y = 240.0f - pPane->mSizeOrig.y * tmp;
|
|
break;
|
|
default:
|
|
pPane->mPosTopLeft.y = pPane->mPosTopLeftOrig.y + 32.0f;
|
|
break;
|
|
}
|
|
tmp = 0.5f;
|
|
pPane->mPosCenter.x = pPane->mPosTopLeft.x + pPane->mSizeOrig.x * tmp;
|
|
pPane->mPosCenter.y = pPane->mPosTopLeft.y + pPane->mSizeOrig.y * tmp;
|
|
}
|
|
|
|
/* 8020ADD8-8020AE28 .text dMsg_arw_pane_parts_set__FP18fopMsgM_pane_classP18fopMsgM_pane_class */
|
|
void dMsg_arw_pane_parts_set(fopMsgM_pane_class* pDst, fopMsgM_pane_class* pSrc) {
|
|
f32 tmp = 0.5f;
|
|
pDst->mPosTopLeft.y = (pSrc->mPosTopLeft.y + pDst->mPosTopLeftOrig.y) - pSrc->mPosTopLeftOrig.y;
|
|
pDst->mPosCenter.y = pDst->mPosTopLeft.y + pDst->mSizeOrig.y * tmp;
|
|
fopMsgM_cposMove(pDst);
|
|
}
|
|
|
|
/* 8020AE28-8020B958 .text dMsg_screenDataSetTalk__FP13sub_msg_class */
|
|
void dMsg_screenDataSetTalk(sub_msg_class* i_Msg) {
|
|
sScreen = new MyScreen();
|
|
sScreen->set("hukidashi_00.blo", dComIfGp_getMsgArchive());
|
|
fopMsgM_setPaneData(&i_Msg->m049C, sScreen->search('ms00'));
|
|
fopMsgM_setPaneData(&i_Msg->mPane_Arrow, sScreen->search('yz00'));
|
|
fopMsgM_setPaneData(&i_Msg->m050C, sScreen->search('dt00'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[0], sScreen->search('tx02'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[1], sScreen->search('tx03'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[2], sScreen->search('txt0'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[3], sScreen->search('tx01'));
|
|
fopMsgM_setPaneData(&i_Msg->m011C[0], sScreen->search('txc2'));
|
|
fopMsgM_setPaneData(&i_Msg->m011C[1], sScreen->search('tec3'));
|
|
fopMsgM_setPaneData(&i_Msg->m011C[2], sScreen->search('txc0'));
|
|
fopMsgM_setPaneData(&i_Msg->m011C[3], sScreen->search('txc1'));
|
|
fopMsgM_setPaneData(&i_Msg->m01FC, sScreen->search('cur1'));
|
|
fopMsgM_setPaneData(&i_Msg->m0234, sScreen->search('cur2'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[0], sScreen->search('mc00'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[1], sScreen->search('mc01'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[2], sScreen->search('mc02'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[3], sScreen->search('mc03'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[4], sScreen->search('mc04'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[5], sScreen->search('mc05'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[6], sScreen->search('mc06'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[7], sScreen->search('mc07'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[8], sScreen->search('mc08'));
|
|
fopMsgM_setPaneData(&i_Msg->m026C[9], sScreen->search('mc09'));
|
|
for (s32 i = 0; i < 10; i++) {
|
|
i_Msg->m026C[i].mInitAlpha = 0xaa;
|
|
}
|
|
((J2DPicture*)i_Msg->m049C.pane)->setWhite(g_msgHIO.field_0x5);
|
|
((J2DPicture*)i_Msg->m049C.pane)->setBlack(g_msgHIO.field_0x9);
|
|
((J2DPicture*)i_Msg->m026C[0].pane)->setWhite(0);
|
|
((J2DPicture*)i_Msg->m026C[0].pane)->setBlack(0);
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m011C[0].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m011C[1].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m011C[2].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m011C[3].pane)->setFont(rubyFont);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFont(textFont);
|
|
}
|
|
textOffsetY = 2;
|
|
J2DTextBox::TFontSize size;
|
|
size.mSizeX = g_msgHIO.field_0x70;
|
|
size.mSizeY = g_msgHIO.field_0x70;
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m011C[0].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m011C[2].pane)->setFontSize(size);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFontSize(size);
|
|
numberPane[i]->resize(size.mSizeX, size.mSizeY);
|
|
}
|
|
maskPane->resize(size.mSizeX, size.mSizeY);
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m011C[0].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m011C[1].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m011C[2].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m011C[3].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setCharSpace(g_msgHIO.field_0x5a);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m011C[0].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m011C[2].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setLineSpace(g_msgHIO.field_0x5e);
|
|
}
|
|
fopMsgM_blendInit(&i_Msg->m01FC, "cursor_00_02.bti");
|
|
fopMsgM_blendInit(&i_Msg->m0234, "cursor_00_02.bti");
|
|
J2DTextBox::TFontSize size2;
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->getFontSize(size);
|
|
i_Msg->m110C = (int)size.mSizeX;
|
|
i_Msg->m1110 = (int)size2.mSizeX;
|
|
i_Msg->m10BC.set(((J2DPicture*)i_Msg->m050C.pane)->getBlack());
|
|
i_Msg->m10C4.set(((J2DPicture*)i_Msg->m050C.pane)->getWhite());
|
|
i_Msg->m026C[0].mUserArea = 0;
|
|
}
|
|
|
|
/* 8020B958-8020CC6C .text dMsg_screenDataSetItem__FP13sub_msg_class */
|
|
void dMsg_screenDataSetItem(sub_msg_class* i_Msg) {
|
|
ResTIMG* pRVar6;
|
|
f32 dVar12;
|
|
|
|
sScreen = new MyScreen();
|
|
sScreen->set("hukidashi_09.blo", dComIfGp_getMsgArchive());
|
|
fopMsgM_setPaneData(&i_Msg->m049C, sScreen->search('ms90'));
|
|
fopMsgM_setPaneData(&i_Msg->mPane_Arrow, sScreen->search('yz90'));
|
|
fopMsgM_setPaneData(&i_Msg->m050C, sScreen->search('dt90'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[0], sScreen->search('tx92'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[1], sScreen->search('tx93'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[2], sScreen->search('tx90'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[3], sScreen->search('tx91'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[8], sScreen->search('item'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[9], sScreen->search('rin1'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[0], sScreen->search('lig1'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[1], sScreen->search('lig2'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[2], sScreen->search('lig3'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[3], sScreen->search('lig4'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[4], sScreen->search('lig5'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[5], sScreen->search('lig6'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[6], sScreen->search('lig7'));
|
|
fopMsgM_setPaneData(&i_Msg->m0624[7], sScreen->search('lig8'));
|
|
pRVar6 = (ResTIMG*)i_Msg->mpHeap->alloc(0xc00, 0x20);
|
|
i_Msg->buffer_p = pRVar6;
|
|
JUT_ASSERT(661, i_Msg->buffer_p != NULL);
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) && (dItem_data::getTexture(i_Msg->mMsgNo - 101) != NULL)) {
|
|
JKRArchive* archive = dComIfGp_getItemIconArchive();
|
|
JKRArchive::readTypeResource(i_Msg->buffer_p, 0xc00, 'TIMG', dItem_data::getTexture(i_Msg->mMsgNo - 101), archive);
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->changeTexture(i_Msg->buffer_p, 0);
|
|
} else {
|
|
for (s32 i = 0; i < 10; i++) {
|
|
i_Msg->m0624[i].pane->hide();
|
|
}
|
|
i_Msg->m0624[8].mUserArea = 1;
|
|
dVar12 = (i_Msg->m049C.mPosCenterOrig.x - i_Msg->m0544[0].mPosCenterOrig.x);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m0544[i].mSize.x = 486.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0544[i], dVar12, 0.0f);
|
|
i_Msg->m0544[i].mPosTopLeftOrig.x = i_Msg->m0544[i].mPosTopLeft.x;
|
|
i_Msg->m0544[i].mPosCenterOrig.x = i_Msg->m0544[i].mPosCenter.x;
|
|
i_Msg->m0544[i].mSizeOrig.x = i_Msg->m0544[i].mSize.x;
|
|
}
|
|
}
|
|
if (i_Msg->mMsgNo == 0x66) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x0A280A00));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0x28FF28FF));
|
|
} else if (i_Msg->mMsgNo == 0x67) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x1414A000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0x32C8FFFF));
|
|
} else if (i_Msg->mMsgNo == 0x68) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x50500000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFFFF00FF));
|
|
} else if (i_Msg->mMsgNo == 0x69) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x50282800));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFF5050FF));
|
|
} else if (i_Msg->mMsgNo == 0x6a) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x501E8200));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xBE78FFFF));
|
|
} else if (i_Msg->mMsgNo == 0x6b) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x50280000));
|
|
;
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFF8C00FF));
|
|
} else if (i_Msg->mMsgNo == 0x74) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFFFFFFFF));
|
|
} else if (i_Msg->mMsgNo == 0x7f) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x50500000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFFFF00FF));
|
|
} else if ((((i_Msg->mMsgNo == 0x118) || (i_Msg->mMsgNo == 0x119)) || (i_Msg->mMsgNo == 0x11a)) || (i_Msg->mMsgNo == 0x11b || (i_Msg->mMsgNo == 0x11c))) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x501E8200));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xBE78FFFF));
|
|
} else if (i_Msg->mMsgNo == 0x11d) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x50280000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFF8C00FF));
|
|
} else if (i_Msg->mMsgNo == 0xd2) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0x50FFFFFF));
|
|
} else if (i_Msg->mMsgNo == 0xd3) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xAAAAFFFF));
|
|
} else if (i_Msg->mMsgNo == 0xd4) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFFC800FF));
|
|
} else if (i_Msg->mMsgNo == 0xd5) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFF5050FF));
|
|
} else if (i_Msg->mMsgNo == 0xd6) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xDC96FFFF));
|
|
} else if (i_Msg->mMsgNo == 0xd7) {
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m0624[8].pane)->setWhite(JUtility::TColor(0xFFFFFFFF));
|
|
}
|
|
if (i_Msg->mMsgNo == 0xc6) {
|
|
i_Msg->m0624[8].mSize.x = 32.0f;
|
|
i_Msg->m0624[8].mSize.y = 32.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 199) {
|
|
i_Msg->m0624[8].mSize.x = 48.0f;
|
|
i_Msg->m0624[8].mSize.y = 40.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 200) {
|
|
i_Msg->m0624[8].mSize.x = 32.0f;
|
|
i_Msg->m0624[8].mSize.y = 32.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 0xc9) {
|
|
i_Msg->m0624[8].mSize.x = 32.0f;
|
|
i_Msg->m0624[8].mSize.y = 32.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 0xca) {
|
|
i_Msg->m0624[8].mSize.x = 16.0f;
|
|
i_Msg->m0624[8].mSize.y = 40.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 0xcb) {
|
|
i_Msg->m0624[8].mSize.x = 56.0f;
|
|
i_Msg->m0624[8].mSize.y = 32.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 0xcc) {
|
|
i_Msg->m0624[8].mSize.x = 40.0f;
|
|
i_Msg->m0624[8].mSize.y = 32.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
} else if (i_Msg->mMsgNo == 0xcd) {
|
|
i_Msg->m0624[8].mSize.x = 40.0f;
|
|
i_Msg->m0624[8].mSize.y = 40.0f;
|
|
fopMsgM_paneTrans(&i_Msg->m0624[8], 0.0f, 0.0f);
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 1) {
|
|
((J2DPicture*)i_Msg->m049C.pane)->setBlack(JUtility::TColor(0x00000000));
|
|
((J2DPicture*)i_Msg->m049C.pane)->setWhite(JUtility::TColor(0xFFFFFFFF));
|
|
((J2DPicture*)i_Msg->m049C.pane)
|
|
->setCornerColor(JUtility::TColor(0x3232B4FF), JUtility::TColor(0x3232B4FF), JUtility::TColor(0x3232B496), JUtility::TColor(0x646478FF));
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFont(rubyFont);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFont(textFont);
|
|
}
|
|
textOffsetY = 2;
|
|
J2DTextBox::TFontSize size;
|
|
size.mSizeX = g_msgHIO.field_0x70;
|
|
size.mSizeY = g_msgHIO.field_0x70;
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFontSize(size);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFontSize(size);
|
|
numberPane[i]->resize(size.mSizeX, size.mSizeY);
|
|
}
|
|
maskPane->resize(size.mSizeX, size.mSizeY);
|
|
J2DTextBox::TFontSize size2;
|
|
size2.mSizeX = g_msgHIO.field_0x68;
|
|
size2.mSizeY = g_msgHIO.field_0x68;
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFontSize(size2);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFontSize(size2);
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setCharSpace(g_msgHIO.field_0x5a);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setLineSpace(g_msgHIO.field_0x5e);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->getFontSize(size);
|
|
i_Msg->m110C = (int)size.mSizeX;
|
|
i_Msg->m1110 = (int)size2.mSizeX;
|
|
i_Msg->m10BC.set(((J2DPicture*)i_Msg->m050C.pane)->getBlack());
|
|
i_Msg->m10C4.set(((J2DPicture*)i_Msg->m050C.pane)->getWhite());
|
|
i_Msg->m026C[0].mUserArea = 0;
|
|
}
|
|
|
|
/* 8020CC6C-8020D160 .text dMsg_screenDataSetDemo__FP13sub_msg_class */
|
|
void dMsg_screenDataSetDemo(sub_msg_class* i_Msg) {
|
|
sScreen = new MyScreen();
|
|
sScreen->set("hukidashi_05.blo", dComIfGp_getMsgArchive());
|
|
fopMsgM_setPaneData(&i_Msg->m0544[0], sScreen->search('tx82'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[1], sScreen->search('tx83'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[2], sScreen->search('tx80'));
|
|
fopMsgM_setPaneData(&i_Msg->m0544[3], sScreen->search('tx81'));
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFont(rubyFont);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFont(textFont);
|
|
}
|
|
textOffsetY = 2;
|
|
J2DTextBox::TFontSize size;
|
|
size.mSizeX = g_msgHIO.field_0x70;
|
|
size.mSizeY = g_msgHIO.field_0x70;
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFontSize(size);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFontSize(size);
|
|
numberPane[i]->resize(size.mSizeX, size.mSizeY);
|
|
}
|
|
maskPane->resize(size.mSizeX, size.mSizeY);
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setCharSpace(g_msgHIO.field_0x5a);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setLineSpace(g_msgHIO.field_0x5e);
|
|
}
|
|
J2DTextBox::TFontSize size2;
|
|
i_Msg->m110C = (int)size.mSizeX;
|
|
i_Msg->m1110 = (int)size2.mSizeY;
|
|
i_Msg->m026C[0].mUserArea = 0;
|
|
}
|
|
|
|
/* 8020D160-8020DAC0 .text dMsg_screenDataSetTact__FP13sub_msg_class */
|
|
void dMsg_screenDataSetTact(sub_msg_class* i_Msg) {
|
|
static const u32 ar_t[] = {'ar01', 'ar02', 'ar03', 'ar04', 'ar05', 'ar06'};
|
|
static const u32 wn_t[] = {'wn01', 'wn02', 'wn03', 'wn04', 'wn05', 'wn06'};
|
|
static const u32 bs_t[] = {'bs01', 'bs02', 'bs03', 'bs04', 'bs05', 'bs06'};
|
|
static const u32 i0_t[] = {'i011', 'i021', 'i031', 'i041', 'i051', 'i061'};
|
|
|
|
sScreen = new MyScreen();
|
|
sScreen->set("hukidashi_14.blo", dComIfGp_getMsgArchive());
|
|
if ((i_Msg->mMsgNo >= 0x5ac) && (i_Msg->mMsgNo <= 0x5b2)) {
|
|
fopMsgM_setPaneData(&i_Msg->m049C, sScreen, 'm141');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[0], sScreen, 't141');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[1], sScreen, 'r141');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[2], sScreen, 'k141');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[3], sScreen, 'b141');
|
|
sScreen->search('m142')->hide();
|
|
sScreen->search('t142')->hide();
|
|
sScreen->search('r142')->hide();
|
|
sScreen->search('k142')->hide();
|
|
sScreen->search('b142')->hide();
|
|
} else {
|
|
fopMsgM_setPaneData(&i_Msg->m049C, sScreen, 'm142');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[0], sScreen, 't142');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[1], sScreen, 'r142');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[2], sScreen, 'k142');
|
|
fopMsgM_setPaneData(&i_Msg->m0544[3], sScreen, 'b142');
|
|
sScreen->search('m141')->hide();
|
|
sScreen->search('t141')->hide();
|
|
sScreen->search('r141')->hide();
|
|
sScreen->search('k141')->hide();
|
|
sScreen->search('b141')->hide();
|
|
}
|
|
if ((i_Msg->mMsgNo == 0x5b3) || (i_Msg->mMsgNo == 0x5b4)) {
|
|
JUT_ASSERT(1036, dComIfGp_getMelodyNum() <= 7);
|
|
sScreen2 = new J2DScreen();
|
|
sScreen2->set(mLayout[dComIfGp_getMelodyNum()], dComIfGp_getMsgArchive());
|
|
for (s32 i = 0; i < mBeatNum[dComIfGp_getMelodyNum()]; i++) {
|
|
fopMsgM_setPaneData(&i_Msg->m08C4[i], sScreen2, ar_t[i]);
|
|
fopMsgM_setPaneData(&i_Msg->m0A14[i], sScreen2, wn_t[i]);
|
|
fopMsgM_setPaneData(&i_Msg->m0B64[i], sScreen2, bs_t[i]);
|
|
if (dComIfGp_getMelodyNum() >= 5) {
|
|
fopMsgM_setPaneData(&i_Msg->m0CB4[i], sScreen2, i0_t[i]);
|
|
}
|
|
}
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFont(rubyFont);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFont(textFont);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFont(rubyFont);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFont(textFont);
|
|
}
|
|
textOffsetY = 2;
|
|
J2DTextBox::TFontSize size;
|
|
size.mSizeX = g_msgHIO.field_0x70;
|
|
size.mSizeY = g_msgHIO.field_0x70;
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setFontSize(size);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setFontSize(size);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setFontSize(size);
|
|
numberPane[i]->resize(size.mSizeX, size.mSizeY);
|
|
}
|
|
maskPane->resize(size.mSizeX, size.mSizeY);
|
|
J2DTextBox::TFontSize size2;
|
|
size2.mSizeX = g_msgHIO.field_0x68;
|
|
size2.mSizeY = g_msgHIO.field_0x68;
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setFontSize(size2);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setFontSize(size2);
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setCharSpace(g_msgHIO.field_0x5a);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setCharSpace(g_msgHIO.field_0x5c);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setCharSpace(g_msgHIO.field_0x5a);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setLineSpace(g_msgHIO.field_0x5e);
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i]->setLineSpace(g_msgHIO.field_0x5e);
|
|
}
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->getFontSize(size);
|
|
i_Msg->m110C = (int)size.mSizeX;
|
|
i_Msg->m1110 = (int)size2.mSizeX;
|
|
i_Msg->m1168 = mDoAud_tact_getBeat();
|
|
i_Msg->m1144 = 0;
|
|
i_Msg->buffer_p = (ResTIMG*)i_Msg->mpHeap->alloc(0x1a280, 0x20);
|
|
JUT_ASSERT(1128, i_Msg->buffer_p != NULL);
|
|
}
|
|
|
|
/* 8020DAC0-8020DC78 .text dMsg_screenDataSet__FP13sub_msg_class */
|
|
void dMsg_screenDataSet(sub_msg_class* i_Msg) {
|
|
sScreen2 = NULL;
|
|
#if VERSION >= VERSION_USA
|
|
if (fopMsgM_hyrule_language_check(i_Msg->mMsgNo)) {
|
|
textFont = mDoExt_getRubyFont();
|
|
JUT_ASSERT(1162, textFont != NULL);
|
|
dMsg_font_flag = 1;
|
|
} else {
|
|
textFont = mDoExt_getMesgFont();
|
|
JUT_ASSERT(1167, textFont != NULL);
|
|
dMsg_font_flag = 0;
|
|
}
|
|
rubyFont = textFont;
|
|
#else
|
|
textFont = mDoExt_getMesgFont();
|
|
JUT_ASSERT(1157, textFont != NULL);
|
|
textFont = mDoExt_getRubyFont();
|
|
JUT_ASSERT(1159, textFont != NULL);
|
|
#endif
|
|
for (s32 i = 0; i < 3; i++) {
|
|
numberPane[i] = new J2DTextBox("rock_24_20_4i_usa.bfn", "0");
|
|
}
|
|
maskPane = new J2DPicture("black.bti");
|
|
switch (i_Msg->mMesgEntry.mTextboxType) {
|
|
case 5:
|
|
dMsg_screenDataSetDemo(i_Msg);
|
|
break;
|
|
case 1:
|
|
case 9:
|
|
dMsg_screenDataSetItem(i_Msg);
|
|
break;
|
|
case 0xe:
|
|
dMsg_screenDataSetTact(i_Msg);
|
|
break;
|
|
default:
|
|
dMsg_screenDataSetTalk(i_Msg);
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 8020DC78-8020DD10 .text dMsg_messagePaneShow__FP13sub_msg_class */
|
|
void dMsg_messagePaneShow(sub_msg_class* i_Msg) {
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m0544[i].pane->show();
|
|
fopMsgM_setInitAlpha(&i_Msg->m0544[i]);
|
|
}
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) || (i_Msg->mMesgEntry.mTextboxType == 1)) {
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setInitAlpha(&i_Msg->m0624[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020DD10-8020DE1C .text dMsg_messagePaneHide__FP13sub_msg_class */
|
|
void dMsg_messagePaneHide(sub_msg_class* i_Msg) {
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m0544[i].pane->hide();
|
|
}
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) || (i_Msg->mMesgEntry.mTextboxType == 1)) {
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0624[i]);
|
|
}
|
|
} else if ((i_Msg->mMesgEntry.mTextboxType == 0xe) && (i_Msg->mMsgNo == 0x5b3 || (i_Msg->mMsgNo == 0x5b4))) {
|
|
for (s32 i = 0; i < mBeatNum[dComIfGp_getMelodyNum()]; i++) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m08C4[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0A14[i]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0B64[i]);
|
|
if (dComIfGp_getMelodyNum() >= 5) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0CB4[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020DE1C-8020DEDC .text dMsg_outFontHide__FP13sub_msg_class */
|
|
void dMsg_outFontHide(sub_msg_class*) {
|
|
for (s32 i = 0; i < 8; i++) {
|
|
button_icon[i]->hide();
|
|
button_kage[i]->hide();
|
|
button_icon[i]->rotate(0.0f);
|
|
button_kage[i]->rotate(0.0f);
|
|
buttonTimer[i] = -1;
|
|
}
|
|
}
|
|
|
|
/* 8020DEDC-8020E1D0 .text dMsg_ScreenDataValueInitTalk__FP13sub_msg_class */
|
|
void dMsg_ScreenDataValueInitTalk(sub_msg_class* i_Msg) {
|
|
int iVar1;
|
|
int iVar2;
|
|
char* pcVar4;
|
|
char* pcVar5;
|
|
char* pcVar7;
|
|
char* pcVar8;
|
|
cXyz VStack_3c;
|
|
cXyz local_48;
|
|
|
|
iVar1 = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getCharSpace();
|
|
iVar2 = (int)((J2DTextBox*)i_Msg->m0544[1].pane)->getCharSpace();
|
|
VStack_3c.setall(0.0f);
|
|
if (i_Msg->mPos == VStack_3c) {
|
|
i_Msg->m10E0.x = i_Msg->m049C.mPosCenterOrig.x;
|
|
i_Msg->m10E0.y = i_Msg->m049C.mPosCenterOrig.y;
|
|
} else {
|
|
mDoLib_project(&i_Msg->mPos, &i_Msg->m10E0);
|
|
}
|
|
dMsg_mesgOutPos(i_Msg);
|
|
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
|
f32 tmp = 0.5f;
|
|
i_Msg->m1104 = (int)(((J2DTextBox*)i_Msg->m0544[0].pane)->mLineSpace * tmp);
|
|
i_Msg->m10C0 = i_Msg->m10BC;
|
|
i_Msg->m10C8 = i_Msg->m10C4;
|
|
local_48.setall(0.0f);
|
|
if ((i_Msg->mPos != local_48) && (i_Msg->mMesgEntry.mTextboxType != 10)) {
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y;
|
|
} else {
|
|
i_Msg->m10E0.x = i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10E0.y = i_Msg->m049C.mPosCenter.y;
|
|
}
|
|
i_Msg->m049C.mSize.x = 100.0f;
|
|
i_Msg->m049C.mSize.y = (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x) * 100.0f;
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
i_Msg->mMsgDataProc.dataInit();
|
|
i_Msg->mMsgDataProc.field_0x25C = i_Msg->m1164;
|
|
i_Msg->mMsgDataProc.field_0x10 = (int)&i_Msg->mPos;
|
|
i_Msg->mMsgDataProc.field_0x3C = (char*)i_Msg->mpMesgStr;
|
|
pcVar8 = i_Msg->output_rubSdw;
|
|
pcVar7 = i_Msg->output_textSdw;
|
|
pcVar5 = i_Msg->output_rub;
|
|
pcVar4 = i_Msg->output_text;
|
|
i_Msg->mMsgDataProc.field_0x60 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x40 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x64 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x44 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x68 = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x48 = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x6C = pcVar8;
|
|
i_Msg->mMsgDataProc.field_0x4C = pcVar8;
|
|
pcVar4 = i_Msg->select_rubSdw;
|
|
pcVar5 = i_Msg->select_textSdw;
|
|
pcVar7 = i_Msg->select_rub;
|
|
i_Msg->mMsgDataProc.field_0x50[0] = i_Msg->select_text;
|
|
i_Msg->mMsgDataProc.field_0x50[1] = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x50[2] = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x50[3] = pcVar4;
|
|
i_Msg->mMsgDataProc.font[0] = textFont;
|
|
i_Msg->mMsgDataProc.font[1] = rubyFont;
|
|
i_Msg->mMsgDataProc.field_0x11C = iVar1;
|
|
i_Msg->mMsgDataProc.field_0x124 = iVar2;
|
|
i_Msg->mMsgDataProc.field_0x120 = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getLineSpace();
|
|
i_Msg->mMsgDataProc.field_0x0C = &i_Msg->mMesgEntry;
|
|
i_Msg->mMsgDataProc.field_0x144 = i_Msg->m110C;
|
|
i_Msg->mMsgDataProc.field_0x14C = i_Msg->m1110;
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
|
|
i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
|
|
i_Msg->mMsgDataProc.field_0x15C = 2;
|
|
if (g_msgHIO.field_0x83 != 0) {
|
|
i_Msg->mMsgDataProc.field_0x29C = 1;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x29C = 0;
|
|
}
|
|
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
|
|
}
|
|
|
|
/* 8020E1D0-8020E690 .text dMsg_ScreenDataValueInitItem__FP13sub_msg_class */
|
|
void dMsg_ScreenDataValueInitItem(sub_msg_class* i_Msg) {
|
|
int uVar1;
|
|
int iVar2;
|
|
int iVar9;
|
|
int fVar3;
|
|
int fVar4;
|
|
char* pcVar5;
|
|
char* pcVar6;
|
|
char* pcVar7;
|
|
char* pcVar8;
|
|
|
|
fVar3 = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getCharSpace();
|
|
fVar4 = (int)((J2DTextBox*)i_Msg->m0544[1].pane)->getCharSpace();
|
|
dMsg_msg_pane_parts_set(&i_Msg->m049C, 1);
|
|
if (i_Msg->mMesgEntry.mTextboxPosition != 1) {
|
|
i_Msg->m049C.mPosCenter.y += 225.0f;
|
|
i_Msg->m049C.mPosTopLeft.y += 225.0f;
|
|
}
|
|
dMsg_arw_pane_parts_set(&i_Msg->mPane_Arrow, &i_Msg->m049C);
|
|
dMsg_arw_pane_parts_set(&i_Msg->m050C, &i_Msg->m049C);
|
|
i_Msg->m1114 = (int)(i_Msg->mPane_Arrow.mPosTopLeft.y + i_Msg->mPane_Arrow.mSizeOrig.y);
|
|
uVar1 = (int)i_Msg->m0544[0].mPosTopLeftOrig.x;
|
|
iVar2 = (int)(480.0f - (i_Msg->m0544[0].mPosTopLeftOrig.y + i_Msg->m0544[0].mSizeOrig.y));
|
|
iVar9 = iVar2 + -0x13;
|
|
if (i_Msg->mMesgEntry.mTextboxPosition != 1) {
|
|
i_Msg->m10F8 = uVar1;
|
|
i_Msg->m10FC = iVar9 + 0xE1;
|
|
} else {
|
|
i_Msg->m10F8 = uVar1;
|
|
i_Msg->m10FC = iVar9;
|
|
}
|
|
i_Msg->m0544[0].pane->move(uVar1, (iVar9 - g_msgHIO.field_0x62) - (int)textOffsetY);
|
|
i_Msg->m0544[1].pane->move(uVar1, (iVar9 - g_msgHIO.field_0x60) - (int)textOffsetY);
|
|
i_Msg->m0544[2].pane->move(uVar1 + 2, (iVar9 - g_msgHIO.field_0x62) - (int)textOffsetY + 2);
|
|
i_Msg->m0544[3].pane->move(uVar1 + 2, (iVar9 - g_msgHIO.field_0x60) - (int)textOffsetY + 2);
|
|
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
|
f32 tmp = 0.5f;
|
|
i_Msg->m1104 = (int)(((J2DTextBox*)i_Msg->m0544[0].pane)->mLineSpace * tmp);
|
|
i_Msg->m10C0 = i_Msg->m10BC;
|
|
i_Msg->m10C8 = i_Msg->m10C4;
|
|
i_Msg->m10E0.x = i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10E0.y = i_Msg->m049C.mPosCenter.y;
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y;
|
|
i_Msg->m049C.mSize.x = 100.0f;
|
|
i_Msg->m049C.mSize.y = (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x) * 100.0f;
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
i_Msg->mMsgDataProc.dataInit();
|
|
i_Msg->mMsgDataProc.field_0x10 = (int)&i_Msg->mPos;
|
|
i_Msg->mMsgDataProc.field_0x3C = (char*)i_Msg->mpMesgStr;
|
|
pcVar8 = i_Msg->output_rubSdw;
|
|
pcVar7 = i_Msg->output_textSdw;
|
|
pcVar6 = i_Msg->output_rub;
|
|
pcVar5 = i_Msg->output_text;
|
|
i_Msg->mMsgDataProc.field_0x60 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x40 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x64 = pcVar6;
|
|
i_Msg->mMsgDataProc.field_0x44 = pcVar6;
|
|
i_Msg->mMsgDataProc.field_0x68 = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x48 = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x6C = pcVar8;
|
|
i_Msg->mMsgDataProc.field_0x4C = pcVar8;
|
|
pcVar5 = i_Msg->select_rubSdw;
|
|
pcVar6 = i_Msg->select_textSdw;
|
|
pcVar7 = i_Msg->select_rub;
|
|
i_Msg->mMsgDataProc.field_0x50[0] = i_Msg->select_text;
|
|
i_Msg->mMsgDataProc.field_0x50[1] = pcVar7;
|
|
i_Msg->mMsgDataProc.field_0x50[2] = pcVar6;
|
|
i_Msg->mMsgDataProc.field_0x50[3] = pcVar5;
|
|
i_Msg->mMsgDataProc.font[0] = textFont;
|
|
i_Msg->mMsgDataProc.font[1] = rubyFont;
|
|
i_Msg->mMsgDataProc.field_0x11C = (int)fVar3;
|
|
i_Msg->mMsgDataProc.field_0x124 = (int)fVar4;
|
|
i_Msg->mMsgDataProc.field_0x0C = &i_Msg->mMesgEntry;
|
|
i_Msg->mMsgDataProc.field_0x144 = i_Msg->m110C;
|
|
i_Msg->mMsgDataProc.field_0x14C = i_Msg->m1110;
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) && (i_Msg->m0624[8].mUserArea == 0)) {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1a3;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x192;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
|
|
i_Msg->mMsgDataProc.field_0x15C = 2;
|
|
if (g_msgHIO.field_0x83 != 0) {
|
|
i_Msg->mMsgDataProc.field_0x29C = 1;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x29C = 0;
|
|
}
|
|
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
|
|
i_Msg->m0624[9].mUserArea = 0;
|
|
i_Msg->m0624[0].mUserArea = 0;
|
|
i_Msg->m049C.mUserArea = 0;
|
|
}
|
|
|
|
/* 8020E690-8020EAC4 .text dMsg_ScreenDataValueInitTact__FP13sub_msg_class */
|
|
void dMsg_ScreenDataValueInitTact(sub_msg_class* i_Msg) {
|
|
int uVar1;
|
|
int iVar2;
|
|
char* pcVar3;
|
|
char* pcVar4;
|
|
char* pcVar5;
|
|
char* pcVar6;
|
|
f32 dVar7;
|
|
f32 dVar8;
|
|
|
|
dVar7 = ((J2DTextBox*)i_Msg->m0544[0].pane)->getCharSpace();
|
|
dVar8 = ((J2DTextBox*)i_Msg->m0544[1].pane)->getCharSpace();
|
|
uVar1 = (int)i_Msg->m0544[0].mPosTopLeftOrig.x;
|
|
iVar2 = (int)i_Msg->m0544[0].mPosTopLeftOrig.y;
|
|
i_Msg->m10F8 = uVar1;
|
|
i_Msg->m10FC = iVar2;
|
|
i_Msg->m0544[0].pane->move(uVar1, (iVar2 - g_msgHIO.field_0x62) - (int)textOffsetY);
|
|
i_Msg->m0544[1].pane->move(uVar1, (iVar2 - g_msgHIO.field_0x60) - (int)textOffsetY);
|
|
i_Msg->m0544[2].pane->move(uVar1 + 2, (iVar2 - g_msgHIO.field_0x62) - (int)textOffsetY + 2);
|
|
i_Msg->m0544[3].pane->move(uVar1 + 2, (iVar2 - g_msgHIO.field_0x60) - (int)textOffsetY + 2);
|
|
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
|
i_Msg->m1104 = 0;
|
|
i_Msg->m10C0 = i_Msg->m10BC;
|
|
i_Msg->m10C8 = i_Msg->m10C4;
|
|
i_Msg->m10E0.x = i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10E0.y = i_Msg->m049C.mPosCenter.y;
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y;
|
|
i_Msg->m049C.mSize.x = 100.0f;
|
|
i_Msg->m049C.mSize.y = (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x) * 100.0f;
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
i_Msg->mMsgDataProc.dataInit();
|
|
i_Msg->mMsgDataProc.field_0x10 = (int)&i_Msg->mPos;
|
|
i_Msg->mMsgDataProc.field_0x3C = (char*)i_Msg->mpMesgStr;
|
|
pcVar6 = i_Msg->output_rubSdw;
|
|
pcVar5 = i_Msg->output_textSdw;
|
|
pcVar4 = i_Msg->output_rub;
|
|
pcVar3 = i_Msg->output_text;
|
|
i_Msg->mMsgDataProc.field_0x60 = pcVar3;
|
|
i_Msg->mMsgDataProc.field_0x40 = pcVar3;
|
|
i_Msg->mMsgDataProc.field_0x64 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x44 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x68 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x48 = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x6C = pcVar6;
|
|
i_Msg->mMsgDataProc.field_0x4C = pcVar6;
|
|
pcVar3 = i_Msg->select_rubSdw;
|
|
pcVar4 = i_Msg->select_textSdw;
|
|
pcVar5 = i_Msg->select_rub;
|
|
i_Msg->mMsgDataProc.field_0x50[0] = i_Msg->select_text;
|
|
i_Msg->mMsgDataProc.field_0x50[1] = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x50[2] = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x50[3] = pcVar3;
|
|
i_Msg->mMsgDataProc.font[0] = textFont;
|
|
i_Msg->mMsgDataProc.font[1] = rubyFont;
|
|
i_Msg->mMsgDataProc.field_0x11C = (int)dVar7;
|
|
i_Msg->mMsgDataProc.field_0x124 = (int)dVar8;
|
|
i_Msg->mMsgDataProc.field_0x0C = &i_Msg->mMesgEntry;
|
|
i_Msg->mMsgDataProc.field_0x144 = i_Msg->m110C;
|
|
i_Msg->mMsgDataProc.field_0x14C = i_Msg->m1110;
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) && (i_Msg->m0624[8].mUserArea == 0)) {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1a3;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x192;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
|
|
i_Msg->mMsgDataProc.field_0x15C = 2;
|
|
if (g_msgHIO.field_0x83 != 0) {
|
|
i_Msg->mMsgDataProc.field_0x29C = 1;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x29C = 0;
|
|
}
|
|
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
|
|
i_Msg->m0624[9].mUserArea = 0;
|
|
i_Msg->m0624[0].mUserArea = 0;
|
|
i_Msg->m0624[1].mUserArea = 0;
|
|
i_Msg->m049C.mUserArea = 0;
|
|
}
|
|
|
|
/* 8020EAC4-8020EC28 .text dMsg_ScreenDataValueInitDemo__FP13sub_msg_class */
|
|
void dMsg_ScreenDataValueInitDemo(sub_msg_class* i_Msg) {
|
|
char* pcVar1;
|
|
char* pcVar2;
|
|
char* pcVar4;
|
|
char* pcVar5;
|
|
f32 dVar6;
|
|
f32 dVar7;
|
|
|
|
dVar6 = ((J2DTextBox*)i_Msg->m0544[0].pane)->getCharSpace();
|
|
dVar7 = ((J2DTextBox*)i_Msg->m0544[1].pane)->getCharSpace();
|
|
f32 tmp = 0.5f;
|
|
i_Msg->m1104 = (((J2DTextBox*)i_Msg->m0544[0].pane)->mLineSpace * tmp);
|
|
i_Msg->mMsgDataProc.dataInit();
|
|
i_Msg->mMsgDataProc.field_0x3C = (char*)i_Msg->mpMesgStr;
|
|
pcVar5 = i_Msg->output_rubSdw;
|
|
pcVar4 = i_Msg->output_textSdw;
|
|
pcVar2 = i_Msg->output_rub;
|
|
pcVar1 = i_Msg->output_text;
|
|
i_Msg->mMsgDataProc.field_0x60 = pcVar1;
|
|
i_Msg->mMsgDataProc.field_0x40 = pcVar1;
|
|
i_Msg->mMsgDataProc.field_0x64 = pcVar2;
|
|
i_Msg->mMsgDataProc.field_0x44 = pcVar2;
|
|
i_Msg->mMsgDataProc.field_0x68 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x48 = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x6C = pcVar5;
|
|
i_Msg->mMsgDataProc.field_0x4C = pcVar5;
|
|
pcVar1 = i_Msg->select_rubSdw;
|
|
pcVar2 = i_Msg->select_textSdw;
|
|
pcVar4 = i_Msg->select_rub;
|
|
i_Msg->mMsgDataProc.field_0x50[0] = i_Msg->select_text;
|
|
i_Msg->mMsgDataProc.field_0x50[1] = pcVar4;
|
|
i_Msg->mMsgDataProc.field_0x50[2] = pcVar2;
|
|
i_Msg->mMsgDataProc.field_0x50[3] = pcVar1;
|
|
i_Msg->mMsgDataProc.font[0] = textFont;
|
|
i_Msg->mMsgDataProc.font[1] = rubyFont;
|
|
i_Msg->mMsgDataProc.field_0x11C = dVar6;
|
|
i_Msg->mMsgDataProc.field_0x124 = dVar7;
|
|
i_Msg->mMsgDataProc.field_0x0C = &i_Msg->mMesgEntry;
|
|
i_Msg->mMsgDataProc.field_0x144 = i_Msg->m110C;
|
|
i_Msg->mMsgDataProc.field_0x14C = i_Msg->m1110;
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
|
|
i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
|
|
i_Msg->mMsgDataProc.field_0x15C = 2;
|
|
if (g_msgHIO.field_0x83 != 0) {
|
|
i_Msg->mMsgDataProc.field_0x29C = 1;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x29C = 0;
|
|
}
|
|
}
|
|
|
|
/* 8020EC28-8020ED14 .text dMsg_value_init__FP13sub_msg_class */
|
|
void dMsg_value_init(sub_msg_class* i_Msg) {
|
|
char acStack_30[28];
|
|
char acStack_4c[28];
|
|
char acStack_68[28];
|
|
|
|
// clang-format off
|
|
sprintf(acStack_30, "\x1b" "CC[%08x]" "\x1b" "GM[0]",i_Msg->m1164);
|
|
sprintf(acStack_4c, "\x1b" "CC[FFFFFFFF]" "\x1b" "GM[0]");
|
|
sprintf(acStack_68,"\x1b" "CC[000000FF]" "\x1b" "GM[0]");
|
|
// clang-format on
|
|
strcpy(i_Msg->output_text, acStack_30);
|
|
strcpy(i_Msg->output_rub, acStack_4c);
|
|
strcpy(i_Msg->output_textSdw, acStack_68);
|
|
strcpy(i_Msg->output_rubSdw, acStack_68);
|
|
strcpy(i_Msg->select_text, acStack_30);
|
|
strcpy(i_Msg->select_rub, acStack_4c);
|
|
strcpy(i_Msg->select_textSdw, acStack_68);
|
|
strcpy(i_Msg->select_rubSdw, acStack_68);
|
|
i_Msg->mMsgDataProc.field_0x25C = i_Msg->m1164;
|
|
dMsg_outFontHide(i_Msg);
|
|
i_Msg->m1108 = 0;
|
|
}
|
|
|
|
/* 8020ED14-8020EDE0 .text dMsg_setString__FP13sub_msg_class */
|
|
void dMsg_setString(sub_msg_class* i_Msg) {
|
|
((J2DTextBox*)i_Msg->m0544[0].pane)->setString(i_Msg->output_text);
|
|
((J2DTextBox*)i_Msg->m0544[1].pane)->setString(i_Msg->output_rub);
|
|
((J2DTextBox*)i_Msg->m0544[2].pane)->setString(i_Msg->output_textSdw);
|
|
((J2DTextBox*)i_Msg->m0544[3].pane)->setString(i_Msg->output_rubSdw);
|
|
if ((((i_Msg->mMesgEntry.mTextboxType != 9) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) && (i_Msg->mMesgEntry.mTextboxType != 1)) &&
|
|
(i_Msg->mMesgEntry.mTextboxType != 5))
|
|
{
|
|
((J2DTextBox*)i_Msg->m011C[0].pane)->setString(i_Msg->select_text);
|
|
((J2DTextBox*)i_Msg->m011C[1].pane)->setString(i_Msg->select_rub);
|
|
((J2DTextBox*)i_Msg->m011C[2].pane)->setString(i_Msg->select_textSdw);
|
|
((J2DTextBox*)i_Msg->m011C[3].pane)->setString(i_Msg->select_rubSdw);
|
|
}
|
|
}
|
|
|
|
/* 8020EDE0-8020EE38 .text dMsg_yose_select__FP13sub_msg_class */
|
|
void dMsg_yose_select(sub_msg_class* i_Msg) {
|
|
i_Msg->mMsgDataProc.stringLength();
|
|
i_Msg->m1108 = i_Msg->mMsgDataProc.field_0x130;
|
|
i_Msg->mMsgDataProc.field_0x130 = 0;
|
|
i_Msg->mMsgDataProc.stringShift();
|
|
i_Msg->mMsgDataProc.iconIdxRefresh();
|
|
dMsg_textPosition(i_Msg);
|
|
}
|
|
|
|
/* 8020EE38-8020F080 .text dMsg_frame_openTalk__FP13sub_msg_class */
|
|
void dMsg_frame_openTalk(sub_msg_class* i_Msg) {
|
|
i_Msg->m1100++;
|
|
if (i_Msg->m1100 >= 0xd) {
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10D8;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10DC;
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, 1.0f);
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
} else {
|
|
if (i_Msg->m1100 < 10) {
|
|
f32 temp_f31 = 100.0f * (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x);
|
|
f32 temp_f30 = i_Msg->m049C.mSizeOrig.x - 100.0f;
|
|
f32 temp_f29 = i_Msg->m049C.mSizeOrig.y - temp_f31;
|
|
f32 temp_f1 = fopMsgM_valueIncrease(0xA, i_Msg->m1100, 0U);
|
|
i_Msg->m049C.mSize.x = 100.0f + (temp_f30 * temp_f1);
|
|
i_Msg->m049C.mSize.y = temp_f31 + (temp_f29 * temp_f1);
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x + (i_Msg->m10D0 * temp_f1);
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y + (i_Msg->m10D4 * temp_f1);
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
} else {
|
|
f32 temp_f2_2 = 480.0f / (i_Msg->m049C.mSizeOrig.x - 100.0f);
|
|
f32 temp_f1_2 = ((temp_f2_2 * i_Msg->m10D0) - i_Msg->m10D0);
|
|
f32 temp_f1_3 = ((temp_f2_2 * i_Msg->m10D4) - i_Msg->m10D4);
|
|
f32 temp_f1_4 = ((580.0f * (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x)) - i_Msg->m049C.mSizeOrig.y);
|
|
f32 f0_2 = (0x10000 / 6.0f);
|
|
f32 f0 = (i_Msg->m1100 - 10.0f);
|
|
f32 temp_f3_2 = cM_ssin(f0 * f0_2);
|
|
i_Msg->m049C.mSize.x = i_Msg->m049C.mSizeOrig.x + ((580.0f - i_Msg->m049C.mSizeOrig.x) * temp_f3_2);
|
|
i_Msg->m049C.mSize.y = i_Msg->m049C.mSizeOrig.y + (temp_f1_4 * temp_f3_2);
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x + i_Msg->m10D0 + (temp_f1_2 * temp_f3_2);
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y + i_Msg->m10D4 + (temp_f1_3 * temp_f3_2);
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
}
|
|
fopMsgM_setNowAlpha(&i_Msg->m049C, fopMsgM_valueIncrease(0xd, i_Msg->m1100, 0));
|
|
}
|
|
}
|
|
|
|
/* 8020F080-8020F1C0 .text dMsg_frame_openItem__FP13sub_msg_class */
|
|
void dMsg_frame_openItem(sub_msg_class* i_Msg) {
|
|
f32 dVar2;
|
|
|
|
i_Msg->m1100++;
|
|
if (i_Msg->m1100 >= 8) {
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10D8;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10DC;
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, 1.0f);
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
} else {
|
|
if (i_Msg->m1100 <= 5) {
|
|
dVar2 = fopMsgM_valueIncrease(5, i_Msg->m1100, 0);
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10E0.x + (i_Msg->m10D0 * dVar2);
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10E0.y + (i_Msg->m10D4 * dVar2);
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, (dVar2 * 0.5f) + 0.6f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m049C, dVar2);
|
|
} else {
|
|
dVar2 = fopMsgM_valueIncrease(3, i_Msg->m1100 + -5, 0);
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, (dVar2 * -0.100000024f) + 1.1f);
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020F1C0-8020F324 .text dMsg_frame_close__FP13sub_msg_class */
|
|
void dMsg_frame_close(sub_msg_class* i_Msg) {
|
|
f32 dVar3;
|
|
|
|
dMsg_messagePaneHide(i_Msg);
|
|
dMsg_outFontHide(i_Msg);
|
|
i_Msg->m1100++;
|
|
if (i_Msg->m1100 == 10) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m049C);
|
|
JKRFileLoader::removeResource(i_Msg->head_p, NULL);
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSED_e;
|
|
i_Msg->m049C.pane->hide();
|
|
} else {
|
|
f32 f1 = fopMsgM_valueIncrease(10, i_Msg->m1100, 0);
|
|
f32 tmp2 = 620.0f - i_Msg->m049C.mSizeOrig.x;
|
|
f32 f29 = (i_Msg->m049C.mSizeOrig.y / i_Msg->m049C.mSizeOrig.x) * 620.0f - i_Msg->m049C.mSizeOrig.y;
|
|
i_Msg->m049C.mSize.x = i_Msg->m049C.mSizeOrig.x + f1 * tmp2;
|
|
i_Msg->m049C.mSize.y = i_Msg->m049C.mSizeOrig.y + f1 * f29;
|
|
i_Msg->m049C.mPosCenter.x = i_Msg->m10D8;
|
|
i_Msg->m049C.mPosCenter.y = i_Msg->m10DC;
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
dVar3 = fopMsgM_valueIncrease(10, 10 - i_Msg->m1100, 0);
|
|
if (dVar3 < (i_Msg->m049C.mNowAlpha / 255.0f)) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m049C, dVar3);
|
|
}
|
|
if (i_Msg->m1100 == 1) {
|
|
dMsg_setCloseSound(i_Msg, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8020F324-8020F3F8 .text dMsg_textPosition__FP13sub_msg_class */
|
|
void dMsg_textPosition(sub_msg_class* i_Msg) {
|
|
int uVar2;
|
|
J2DTextBox* pJVar6;
|
|
J2DTextBox* pJVar3;
|
|
J2DTextBox* pJVar4;
|
|
J2DTextBox* pJVar5;
|
|
|
|
switch (i_Msg->mMesgEntry.mTextboxType) {
|
|
case 5:
|
|
uVar2 = i_Msg->m1104 * (2 - i_Msg->m1108);
|
|
break;
|
|
case 0xE:
|
|
uVar2 = 0;
|
|
break;
|
|
default:
|
|
uVar2 = i_Msg->m1104 * (3 - i_Msg->m1108);
|
|
break;
|
|
}
|
|
pJVar3 = (J2DTextBox*)i_Msg->m0544[0].pane;
|
|
pJVar3->field_0xd8 = 0.0f;
|
|
pJVar3->field_0xdc = uVar2;
|
|
pJVar4 = (J2DTextBox*)i_Msg->m0544[1].pane;
|
|
pJVar4->field_0xd8 = 0.0f;
|
|
pJVar4->field_0xdc = uVar2;
|
|
pJVar5 = (J2DTextBox*)i_Msg->m0544[2].pane;
|
|
pJVar5->field_0xd8 = 0.0f;
|
|
pJVar5->field_0xdc = uVar2;
|
|
pJVar6 = (J2DTextBox*)i_Msg->m0544[3].pane;
|
|
pJVar6->field_0xd8 = 0.0f;
|
|
pJVar6->field_0xdc = uVar2;
|
|
}
|
|
|
|
/* 8020F3F8-8020F4E0 .text dMsg_rubySet__FP13sub_msg_class */
|
|
void dMsg_rubySet(sub_msg_class* i_Msg) {
|
|
J2DScreen* pJVar2;
|
|
|
|
if (dComIfGs_getOptRuby()) {
|
|
i_Msg->m0544[1].pane->hide();
|
|
i_Msg->m0544[3].pane->hide();
|
|
if (i_Msg->mMesgEntry.mTextboxType == 9) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 0xe) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 1) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 5) {
|
|
return;
|
|
}
|
|
i_Msg->m011C[1].pane->hide();
|
|
i_Msg->m011C[3].pane->hide();
|
|
} else {
|
|
pJVar2 = (J2DScreen*)i_Msg->m0544[1].pane;
|
|
if (pJVar2->isVisible()) {
|
|
pJVar2->show();
|
|
}
|
|
pJVar2 = (J2DScreen*)i_Msg->m0544[3].pane;
|
|
if (pJVar2->isVisible()) {
|
|
pJVar2->show();
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 9) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 0xe) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 1) {
|
|
return;
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 5) {
|
|
return;
|
|
}
|
|
pJVar2 = (J2DScreen*)i_Msg->m011C[1].pane;
|
|
if (pJVar2->isVisible()) {
|
|
pJVar2->show();
|
|
}
|
|
pJVar2 = (J2DScreen*)i_Msg->m011C[3].pane;
|
|
if (!pJVar2->isVisible()) {
|
|
return;
|
|
}
|
|
pJVar2->show();
|
|
}
|
|
}
|
|
|
|
/* 8020F4E0-8020F7EC .text dMsg_mesgOutPos__FP13sub_msg_class */
|
|
void dMsg_mesgOutPos(sub_msg_class* i_Msg) {
|
|
s32 uVar1;
|
|
u8 bVar2;
|
|
u8 bVar4;
|
|
int iVar3;
|
|
cXyz local_68;
|
|
f32 local_58;
|
|
|
|
bVar4 = i_Msg->mMesgEntry.mTextboxPosition;
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
if (bVar4 == 0) {
|
|
mDoLib_project(&player->eyePos, &local_68);
|
|
talkPosX = (local_68.x + i_Msg->m10E0.x) * 0.5f;
|
|
talkPosY = (local_68.y + i_Msg->m10E0.y) * 0.5f;
|
|
local_58 = (int)g_msgHIO.field_0x6e;
|
|
if (talkPosY < local_58) {
|
|
bVar4 = 3;
|
|
} else {
|
|
bVar4 = 1;
|
|
}
|
|
}
|
|
dMsg_msg_pane_parts_set(&i_Msg->m049C, bVar4);
|
|
bVar2 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar2 != 5) && (bVar2 != 0xe)) {
|
|
dMsg_arw_pane_parts_set(&i_Msg->mPane_Arrow, &i_Msg->m049C);
|
|
dMsg_arw_pane_parts_set(&i_Msg->m050C, &i_Msg->m049C);
|
|
i_Msg->m1114 = (int)((i_Msg->mPane_Arrow).mPosTopLeft.y + (i_Msg->mPane_Arrow).mSizeOrig.y);
|
|
}
|
|
uVar1 = i_Msg->m0544[0].mPosTopLeftOrig.x;
|
|
if (bVar4 == 1) {
|
|
iVar3 = (int)(480.0f - (i_Msg->m0544[0].mPosTopLeftOrig.y + i_Msg->m0544[0].mSizeOrig.y)) + -0x13;
|
|
} else if (bVar4 == 2) {
|
|
f32 tmp = 0.5f;
|
|
iVar3 = (int)(240.0f - i_Msg->m0544[0].mSizeOrig.y * tmp);
|
|
} else {
|
|
iVar3 = (int)i_Msg->m0544[0].mPosTopLeftOrig.y + 0x20;
|
|
}
|
|
i_Msg->m10F8 = uVar1;
|
|
i_Msg->m10FC = iVar3;
|
|
i_Msg->m0544[0].pane->move((uVar1), ((iVar3 - g_msgHIO.field_0x62) - (int)textOffsetY));
|
|
i_Msg->m0544[1].pane->move((uVar1), ((iVar3 - g_msgHIO.field_0x60) - (int)textOffsetY));
|
|
i_Msg->m0544[2].pane->move((uVar1 + 2), (((iVar3 - g_msgHIO.field_0x62) - (int)textOffsetY) + 2));
|
|
i_Msg->m0544[3].pane->move((uVar1 + 2), (((iVar3 - g_msgHIO.field_0x60) - (int)textOffsetY) + 2));
|
|
}
|
|
|
|
/* 8020F7EC-8020F844 .text dMsg_arrowInit__FP13sub_msg_class */
|
|
void dMsg_arrowInit(sub_msg_class* i_Msg) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->mPane_Arrow);
|
|
i_Msg->mPane_Arrow.mPosCenter.x = i_Msg->mPane_Arrow.mPosCenterOrig.x;
|
|
i_Msg->mPane_Arrow.mPosCenter.y = i_Msg->mPane_Arrow.mPosCenterOrig.y;
|
|
i_Msg->mPane_Arrow.mSize.x = i_Msg->mPane_Arrow.mSizeOrig.x;
|
|
i_Msg->mPane_Arrow.mSize.y = i_Msg->mPane_Arrow.mSizeOrig.y;
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
|
|
static void unused_5874() {
|
|
static const Vec frameScale = {0.6f, 1.1f, 1.0f};
|
|
};
|
|
|
|
/* 8020F844-8020FC10 .text dMsg_arrowMove__FP13sub_msg_class */
|
|
void dMsg_arrowMove(sub_msg_class* i_Msg) {
|
|
/* Nonmatching */
|
|
static const s32 time[] = {0x00, 0x3C, 0x07, 0x04, 0x03, 0x02};
|
|
static const f32 scaleX[] = {1.0f, 1.3f, 0.8f, 1.2f, 1.0f};
|
|
static const f32 scaleY[] = {1.0f, 0.3f, 1.1f, 0.8f, 1.0f};
|
|
f32 fVar1;
|
|
f32 fVar2;
|
|
f32 dVar4;
|
|
s32 temp_r5;
|
|
s32 temp_r6;
|
|
s32 temp_r7;
|
|
s32 temp_r8;
|
|
s32 temp_r9;
|
|
s32 temp_r10;
|
|
s32 temp_r11;
|
|
s32 temp_r12;
|
|
s32 temp_r30;
|
|
|
|
temp_r9 = time[1];
|
|
temp_r8 = time[2];
|
|
temp_r10 = temp_r9 + temp_r8;
|
|
temp_r7 = time[3];
|
|
temp_r11 = temp_r10 + temp_r7;
|
|
temp_r6 = time[4];
|
|
temp_r12 = temp_r11 + temp_r6;
|
|
temp_r5 = time[5];
|
|
temp_r30 = temp_r12 + temp_r5;
|
|
i_Msg->m1100++;
|
|
if ((i_Msg->mPane_Arrow).mNowAlpha < (i_Msg->mPane_Arrow).mInitAlpha) {
|
|
dVar4 = fopMsgM_valueIncrease(10, i_Msg->m1100, 0);
|
|
fopMsgM_setNowAlpha(&i_Msg->mPane_Arrow, (f32)dVar4);
|
|
if (i_Msg->m1100 == 10) {
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
} else {
|
|
if (i_Msg->m1100 <= temp_r9) {
|
|
fVar1 = 1.0f;
|
|
fVar2 = fVar1;
|
|
} else if (i_Msg->m1100 <= temp_r10) {
|
|
fVar1 = (f32)(i_Msg->m1100) - temp_r9;
|
|
fVar2 = (fVar1 * fVar1) / ((f32)temp_r8 * (f32)temp_r8);
|
|
fVar1 = scaleX[0] + (fVar2 * (scaleX[1] - scaleX[0]));
|
|
fVar2 = scaleY[0] + (fVar2 * (scaleY[1] - scaleY[0]));
|
|
} else if (i_Msg->m1100 <= temp_r11) {
|
|
fVar1 = (f32)(i_Msg->m1100) - temp_r10;
|
|
fVar2 = (fVar1 * fVar1) / ((f32)temp_r7 * (f32)temp_r7);
|
|
fVar1 = scaleX[1] + (fVar2 * (scaleX[2] - scaleX[1]));
|
|
fVar2 = scaleY[1] + (fVar2 * (scaleY[2] - scaleY[1]));
|
|
} else if (i_Msg->m1100 <= temp_r12) {
|
|
fVar1 = (f32)(i_Msg->m1100) - temp_r11;
|
|
fVar2 = (fVar1 * fVar1) / ((f32)temp_r6 * (f32)temp_r6);
|
|
fVar1 = scaleX[2] + (fVar2 * (scaleX[3] - scaleX[2]));
|
|
fVar2 = scaleY[2] + (fVar2 * (scaleY[3] - scaleY[2]));
|
|
} else if (i_Msg->m1100 <= temp_r30) {
|
|
fVar1 = (f32)(i_Msg->m1100) - temp_r12;
|
|
fVar2 = (fVar1 * fVar1) / ((f32)temp_r5 * (f32)temp_r5);
|
|
fVar1 = scaleX[3] + (fVar2 * (scaleX[4] - scaleX[3]));
|
|
fVar2 = scaleY[3] + (fVar2 * (scaleY[4] - scaleY[3]));
|
|
} else {
|
|
fVar1 = 1.0f;
|
|
fVar2 = fVar1;
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
(i_Msg->mPane_Arrow).mSize.x = (i_Msg->mPane_Arrow).mSizeOrig.x * fVar1;
|
|
(i_Msg->mPane_Arrow).mSize.y = (i_Msg->mPane_Arrow).mSizeOrig.y * fVar2;
|
|
(i_Msg->mPane_Arrow).mPosCenter.y = (f32)((int)g_msgHIO.field_0x66) + ((f32)(i_Msg->m1114) - (i_Msg->mPane_Arrow).mSize.y * 0.5f);
|
|
fopMsgM_cposMove(&i_Msg->mPane_Arrow);
|
|
}
|
|
}
|
|
|
|
/* 8020FC10-8021010C .text dMsg_dotMove__FP13sub_msg_class */
|
|
void dMsg_dotMove(sub_msg_class* i_Msg) {
|
|
/* Nonmatching */
|
|
int iVar4;
|
|
f32 dVar5;
|
|
|
|
i_Msg->m1100++;
|
|
if ((i_Msg->m050C).mNowAlpha < (i_Msg->m050C).mInitAlpha) {
|
|
dVar5 = fopMsgM_valueIncrease(10, i_Msg->m1100, 0);
|
|
fopMsgM_setNowAlpha(&i_Msg->m050C, (f32)dVar5);
|
|
if (i_Msg->m1100 == 10) {
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
} else {
|
|
iVar4 = i_Msg->m1100;
|
|
if (iVar4 >= 0x3C) {
|
|
i_Msg->m10C0 = i_Msg->m10BC;
|
|
i_Msg->m10C8 = i_Msg->m10C4;
|
|
fopMsgM_setInitAlpha(&i_Msg->m050C);
|
|
i_Msg->m1100 = 0;
|
|
} else {
|
|
if (iVar4 > 0x1E) {
|
|
dVar5 = fopMsgM_valueIncrease(0x1e, 0x3c - iVar4, 0);
|
|
i_Msg->m10C0.r = (u8)(int)((f32)(i_Msg->m10BC.r) + (f32)((150.0f - (f32)(i_Msg->m10BC.r)) * dVar5));
|
|
i_Msg->m10C0.g = (u8)(int)((f32)(i_Msg->m10BC.g) + (f32)((150.0f - (f32)(i_Msg->m10BC.g)) * dVar5));
|
|
i_Msg->m10C0.b = (u8)(int)((f32)(i_Msg->m10BC.b) + (f32)((150.0f - (f32)(i_Msg->m10BC.b)) * dVar5));
|
|
i_Msg->m10C8.r = (u8)(int)((f32)(i_Msg->m10C4.r) + (f32)((255.0f - (f32)(i_Msg->m10C4.r)) * dVar5));
|
|
i_Msg->m10C8.g = (u8)(int)((f32)(i_Msg->m10C4.g) + (f32)((255.0f - (f32)(i_Msg->m10C4.g)) * dVar5));
|
|
i_Msg->m10C8.b = (u8)(int)((f32)(i_Msg->m10C4.b) + (f32)((220.0f - (f32)(i_Msg->m10C4.b)) * dVar5));
|
|
i_Msg->m050C.mNowAlpha = (u8)(int)((f32)(i_Msg->m050C.mInitAlpha) + (f32)((255.0f - (f32)(i_Msg->m050C.mInitAlpha)) * dVar5));
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease(0x1e, iVar4, 0);
|
|
i_Msg->m10C0.r = (u8)(int)((f32)(i_Msg->m10BC.r) + (f32)((150.0f - (f32)(i_Msg->m10BC.r)) * dVar5));
|
|
i_Msg->m10C0.g = (u8)(int)((f32)(i_Msg->m10BC.g) + (f32)((150.0f - (f32)(i_Msg->m10BC.g)) * dVar5));
|
|
i_Msg->m10C0.b = (u8)(int)((f32)(i_Msg->m10BC.b) + (f32)((150.0f - (f32)(i_Msg->m10BC.b)) * dVar5));
|
|
i_Msg->m10C8.r = (u8)(int)((f32)(i_Msg->m10C4.r) + (f32)((255.0f - (f32)(i_Msg->m10C4.r)) * dVar5));
|
|
i_Msg->m10C8.g = (u8)(int)((f32)(i_Msg->m10C4.g) + (f32)((255.0f - (f32)(i_Msg->m10C4.g)) * dVar5));
|
|
i_Msg->m10C8.b = (u8)(int)((f32)(i_Msg->m10C4.b) + (f32)((220.0f - (f32)(i_Msg->m10C4.b)) * dVar5));
|
|
i_Msg->m050C.mNowAlpha = (u8)(int)((f32)(i_Msg->m050C.mInitAlpha) + (f32)((255.0f - (f32)(i_Msg->m050C.mInitAlpha)) * dVar5));
|
|
}
|
|
}
|
|
((J2DPicture*)i_Msg->m050C.pane)->setBlack(JUtility::TColor(i_Msg->m10C0));
|
|
((J2DPicture*)i_Msg->m050C.pane)->setWhite(JUtility::TColor(i_Msg->m10C8));
|
|
}
|
|
}
|
|
|
|
/* 8021010C-80210194 .text dMsg_ringMove__FP13sub_msg_class */
|
|
void dMsg_ringMove(sub_msg_class* i_Msg) {
|
|
int iVar1;
|
|
f32 dVar2;
|
|
|
|
i_Msg->m0624[9].mUserArea++;
|
|
if (i_Msg->m0624[9].mUserArea >= 0x78) {
|
|
i_Msg->m0624[9].mUserArea = 0;
|
|
}
|
|
iVar1 = (int)i_Msg->m0624[9].mUserArea;
|
|
if (iVar1 < 0x3c) {
|
|
dVar2 = fopMsgM_valueIncrease(0x3c, iVar1, 0);
|
|
} else {
|
|
dVar2 = fopMsgM_valueIncrease(0x3c, 0x78 - iVar1, 0);
|
|
}
|
|
fopMsgM_setNowAlpha(i_Msg->m0624 + 9, (dVar2 * 0.25f) + 0.25f);
|
|
}
|
|
|
|
/* 80210194-802103D4 .text dMsg_lightMove__FP13sub_msg_class */
|
|
void dMsg_lightMove(sub_msg_class* i_Msg) {
|
|
i_Msg->m0624[0].mUserArea++;
|
|
if (i_Msg->m0624[0].mUserArea >= 800) {
|
|
i_Msg->m0624[0].mUserArea = 0;
|
|
}
|
|
f32 f31 = (i_Msg->m0624[0].mUserArea / 800.0f) * 360.0f;
|
|
i_Msg->m0624[0].pane->rotate(i_Msg->m0624[0].mSize.x, 0.0f, ROTATE_Z, -f31);
|
|
i_Msg->m0624[1].pane->rotate(0.0f, 0.0f, ROTATE_Z, -f31);
|
|
i_Msg->m0624[2].pane->rotate(i_Msg->m0624[2].mSize.x, i_Msg->m0624[2].mSize.y, ROTATE_Z, -f31);
|
|
i_Msg->m0624[3].pane->rotate(0.0f, i_Msg->m0624[3].mSize.y, ROTATE_Z, -f31);
|
|
i_Msg->m0624[4].pane->rotate(i_Msg->m0624[4].mSize.x, 0.0f, ROTATE_Z, f31);
|
|
i_Msg->m0624[5].pane->rotate(0.0f, 0.0f, ROTATE_Z, f31);
|
|
i_Msg->m0624[6].pane->rotate(i_Msg->m0624[6].mSize.x, i_Msg->m0624[6].mSize.y, ROTATE_Z, f31);
|
|
i_Msg->m0624[7].pane->rotate(0.0f, i_Msg->m0624[7].mSize.y, ROTATE_Z, f31);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_setInitAlpha(&i_Msg->m0624[i]);
|
|
}
|
|
}
|
|
|
|
/* 802103D4-802109A0 .text dMsg_cornerMove__FP13sub_msg_class */
|
|
void dMsg_cornerMove(sub_msg_class* param_1) {
|
|
static const u8 cc_r[] = {200, 0, 0, 0};
|
|
static const u8 cc_g[] = {128, 0, 0, 0};
|
|
static const u8 cc_b[] = {255, 0, 255, 0};
|
|
static const u8 cc2_r[] = {50, 50, 100, 50};
|
|
static const u8 cc2_g[] = {50, 50, 100, 50};
|
|
static const u8 cc2_b[] = {180, 180, 120, 180};
|
|
static const u8 cc2_a[] = {255, 150, 255, 255};
|
|
|
|
param_1->m049C.mUserArea++;
|
|
if (param_1->m049C.mUserArea >= 240) {
|
|
param_1->m049C.mUserArea = 0;
|
|
}
|
|
f32 tmp = fopMsgM_valueIncrease(0x3c, param_1->m049C.mUserArea % 0x3c, 2);
|
|
GXColor local_68[4];
|
|
if (param_1->mMesgEntry.mTextboxType == 1) {
|
|
for (int i = 0; i < 4; i++) {
|
|
int r9 = i + 1;
|
|
if (r9 >= 4) {
|
|
r9 = 0;
|
|
}
|
|
local_68[i].r = cc2_r[i] + tmp * (cc2_r[r9] - cc2_r[i]);
|
|
local_68[i].g = cc2_g[i] + tmp * (cc2_g[r9] - cc2_g[i]);
|
|
local_68[i].b = cc2_b[i] + tmp * (cc2_b[r9] - cc2_b[i]);
|
|
local_68[i].a = cc2_a[i] + tmp * (cc2_a[r9] - cc2_a[i]);
|
|
}
|
|
} else {
|
|
for (int i = 0; i < 4; i++) {
|
|
int r9 = i + 1;
|
|
if (r9 >= 4) {
|
|
r9 = 0;
|
|
}
|
|
local_68[i].r = cc_r[i] + tmp * (cc_r[r9] - cc_r[i]);
|
|
local_68[i].g = cc_g[i] + tmp * (cc_g[r9] - cc_g[i]);
|
|
local_68[i].b = cc_b[i] + tmp * (cc_b[r9] - cc_b[i]);
|
|
local_68[i].a = 255;
|
|
}
|
|
}
|
|
if (param_1->m049C.mUserArea < 0x3c) {
|
|
((J2DPicture*)param_1->m049C.pane)
|
|
->setCornerColor(
|
|
*(JUtility::TColor*)&local_68[0], *(JUtility::TColor*)&local_68[1], *(JUtility::TColor*)&local_68[3], *(JUtility::TColor*)&local_68[2]
|
|
);
|
|
} else if (param_1->m049C.mUserArea < 0x78) {
|
|
((J2DPicture*)param_1->m049C.pane)
|
|
->setCornerColor(
|
|
*(JUtility::TColor*)&local_68[1], *(JUtility::TColor*)&local_68[2], *(JUtility::TColor*)&local_68[0], *(JUtility::TColor*)&local_68[3]
|
|
);
|
|
} else if (param_1->m049C.mUserArea < 0xB4) {
|
|
((J2DPicture*)param_1->m049C.pane)
|
|
->setCornerColor(
|
|
*(JUtility::TColor*)&local_68[2], *(JUtility::TColor*)&local_68[3], *(JUtility::TColor*)&local_68[1], *(JUtility::TColor*)&local_68[0]
|
|
);
|
|
} else {
|
|
((J2DPicture*)param_1->m049C.pane)
|
|
->setCornerColor(
|
|
*(JUtility::TColor*)&local_68[3], *(JUtility::TColor*)&local_68[0], *(JUtility::TColor*)&local_68[2], *(JUtility::TColor*)&local_68[1]
|
|
);
|
|
}
|
|
}
|
|
|
|
/* 802109A0-80210AA0 .text dMsg_tactGuideShow__FP13sub_msg_classUc */
|
|
void dMsg_tactGuideShow(sub_msg_class* i_Msg, u8 param_2) {
|
|
for (s32 i = 0; i < mBeatNum[dComIfGp_getMelodyNum()]; i++) {
|
|
if (i < param_2) {
|
|
if (dComIfGp_getMelodyNum() < 5) {
|
|
fopMsgM_setInitAlpha(&i_Msg->m08C4[i]);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], 0.5f);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0B64[i]);
|
|
} else {
|
|
fopMsgM_setInitAlpha(&i_Msg->m0B64[i]);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m08C4[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0CB4[i], 0.5f);
|
|
}
|
|
} else {
|
|
i_Msg->m08C4[i].pane->hide();
|
|
i_Msg->m0A14[i].pane->hide();
|
|
i_Msg->m0B64[i].pane->hide();
|
|
if (dComIfGp_getMelodyNum() >= 5) {
|
|
i_Msg->m0CB4[i].pane->hide();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80210AA0-80210CA4 .text dMsg_numberInput__FP13sub_msg_class */
|
|
void dMsg_numberInput(sub_msg_class* i_Msg) {
|
|
static char* num_str[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
|
|
u8 uVar2;
|
|
|
|
for (s32 i = 0; i < 8; i++) {
|
|
if (i_Msg->mMsgDataProc.field_0x281[i] == 0x16) {
|
|
i_Msg->m10EC = ((i_Msg->m0544[0].pane)->mBounds.i.x + i_Msg->mMsgDataProc.field_0x168[i]);
|
|
i_Msg->m10F0 = ((i_Msg->m0544[0].pane)->mBounds.i.y + (i_Msg->m1104 * (s32)((3 - i_Msg->m1108) + (i_Msg->mMsgDataProc.field_0x1A4[i]) * 2)));
|
|
}
|
|
}
|
|
if (i_Msg->mMsgNo == 0x1cfa) {
|
|
uVar2 = i_Msg->mMsgDataProc.inputNumber(3);
|
|
i_Msg->mSelectNum = uVar2;
|
|
} else {
|
|
uVar2 = i_Msg->mMsgDataProc.inputNumber(2);
|
|
i_Msg->mSelectNum = uVar2;
|
|
}
|
|
i_Msg->mMsgDataProc.colorAnime(maskPane);
|
|
numberPane[2]->setString(num_str[dComIfGp_getMessageSetNumber() / 100]);
|
|
numberPane[1]->setString(num_str[(dComIfGp_getMessageSetNumber() % 100) / 10]);
|
|
numberPane[0]->setString(num_str[dComIfGp_getMessageSetNumber() % 10]);
|
|
daNpc_Bs1_c::m_tag_buy_item = dComIfGp_getMessageSetNumber();
|
|
if (((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (fopMsgM_checkMessageSend())) {
|
|
dMsg_setCancelMode(i_Msg);
|
|
} else {
|
|
dMeter_Info.field_0x0 = 3;
|
|
}
|
|
}
|
|
|
|
static void dummy() {
|
|
OSReport("hukidashi_021.bti");
|
|
OSReport("texture != 0");
|
|
};
|
|
|
|
/* 80210CA4-80210F28 .text dMsg_tactInput__FP13sub_msg_class */
|
|
void dMsg_tactInput(sub_msg_class* i_Msg) {
|
|
s16 sVar1;
|
|
f32 alpha;
|
|
int iVar3;
|
|
s32 melody_no;
|
|
f32 dVar5;
|
|
s32 local_38;
|
|
|
|
melody_no = dComIfGp_getMelodyNum();
|
|
if (i_Msg->m1100 < mBeatNum[melody_no]) {
|
|
if ((mBeatNum[melody_no] != mDoAud_tact_getBeat()) || (i_Msg->m1168 != mDoAud_tact_getBeat())) {
|
|
i_Msg->m1100 = 0;
|
|
i_Msg->m0624[0].mUserArea = 0;
|
|
i_Msg->m1168 = mDoAud_tact_getBeat();
|
|
dMsg_tactGuideShow(i_Msg, mBeatNum[melody_no]);
|
|
}
|
|
if (daPy_getPlayerActorClass()->checkTactInput()) {
|
|
sVar1 = daPy_getPlayerLinkActorClass()->getTactLeftHandPos();
|
|
mDoAud_tact_getMelodyPattern(melody_no, i_Msg->m1100, &local_38);
|
|
i_Msg->m1100++;
|
|
if ((sVar1 == local_38) && (mBeatNum[melody_no] == mDoAud_tact_getBeat())) {
|
|
iVar3 = (int)i_Msg->m0624[0].mUserArea;
|
|
if (iVar3 == i_Msg->m1100 + -1) {
|
|
i_Msg->m0B64[iVar3].mUserArea = 1;
|
|
i_Msg->m0624[0].mUserArea++;
|
|
}
|
|
}
|
|
if ((i_Msg->m1100 >= (mDoAud_tact_getBeat())) && (!daPy_getPlayerLinkActorClass()->checkTactLastInput())) {
|
|
i_Msg->m1100 = 0;
|
|
i_Msg->m0624[0].mUserArea = 0;
|
|
dMsg_tactGuideShow(i_Msg, mBeatNum[melody_no]);
|
|
}
|
|
} else {
|
|
if (((((melody_no != 1) && (melody_no != 5)) && (melody_no != 6)) && (melody_no != 7)) && (CPad_CHECK_TRIG_B(0) || (fopMsgM_checkMessageSend()))) {
|
|
dMsg_setCancelMode(i_Msg);
|
|
}
|
|
}
|
|
}
|
|
for (s32 i = 0; i < mBeatNum[melody_no]; i++) {
|
|
sVar1 = i_Msg->m0B64[i].mUserArea;
|
|
if ((sVar1 > 0) && (sVar1 <= 5)) {
|
|
dVar5 = fopMsgM_valueIncrease(5, (int)sVar1, 0);
|
|
alpha = (dVar5 * 0.5f) + 0.5f;
|
|
dVar5 = alpha;
|
|
if (dComIfGp_getMelodyNum() < 5) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], alpha);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0B64[i], dVar5);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], alpha);
|
|
fopMsgM_setNowAlpha(&i_Msg->m08C4[i], dVar5);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0CB4[i], dVar5);
|
|
}
|
|
if (i_Msg->m0B64[mBeatNum[melody_no] - 1].mUserArea == 5) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_DISPLAYED_e;
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
i_Msg->m0B64[i].mUserArea++;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80210F28-80210F50 .text dMsg_tactInput2__FP13sub_msg_class */
|
|
void dMsg_tactInput2(sub_msg_class*) {
|
|
if (!CPad_CHECK_TRIG_B(0)) {
|
|
return;
|
|
}
|
|
dComIfGp_setMesgCancelButton(1);
|
|
}
|
|
|
|
/* 80210F50-80210FF8 .text dMsg_subTextScale__FP13sub_msg_classf */
|
|
void dMsg_subTextScale(sub_msg_class* i_Msg, f32 param_2) {
|
|
for (s32 i = 1; i < 10; i++) {
|
|
i_Msg->m026C[i].pane->move(i_Msg->m026C[i].mPosTopLeft.x * param_2, i_Msg->m026C[i].mPosTopLeft.y * param_2);
|
|
i_Msg->m026C[i].pane->resize(i_Msg->m026C[i].mSize.x * param_2, i_Msg->m026C[i].mSize.y * param_2);
|
|
}
|
|
}
|
|
|
|
/* 80210FF8-8021172C .text dMsg_subTextSizeSet__FP13sub_msg_class */
|
|
void dMsg_subTextSizeSet(sub_msg_class* i_Msg) {
|
|
/* Nonmatching */
|
|
f32 fVar1;
|
|
f32 fVar2;
|
|
f32 fVar3;
|
|
f32 fVar5;
|
|
int uVar6;
|
|
int iVar7;
|
|
f32 dVar10;
|
|
f32 dVar11;
|
|
f32 local_78;
|
|
f32 local_68;
|
|
|
|
iVar7 = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getLineSpace();
|
|
if (i_Msg->mStatus == fopMsgStts_SELECT_2_e) {
|
|
local_78 = iVar7 + i_Msg->m110C;
|
|
} else if (i_Msg->mStatus == fopMsgStts_SELECT_3_e) {
|
|
local_78 = i_Msg->m110C + iVar7 * 2;
|
|
}
|
|
fVar1 = i_Msg->m049C.mPosCenter.y;
|
|
if (fVar1 >= 240.0f) {
|
|
local_78 = (int)g_msgHIO.field_0x7c;
|
|
fVar1 = (local_78) + (fVar1 - i_Msg->m049C.mSize.y * 0.5f);
|
|
} else {
|
|
fVar1 = (fVar1 + i_Msg->m049C.mSize.y * 0.5f) - ((int)g_msgHIO.field_0x7c);
|
|
}
|
|
local_68 = (int)g_msgHIO.field_0x78;
|
|
fVar3 = (local_68) + ((g_msgHIO.field_0x7e) * 2.0f + (i_Msg->mMsgDataProc.field_0x21C) - i_Msg->m011C[0].mSizeOrig.x);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m011C[i].mSize.x = i_Msg->m011C[i].mSizeOrig.x + fVar3;
|
|
}
|
|
i_Msg->m026C[5].mSize.x = i_Msg->m026C[5].mSizeOrig.x + fVar3;
|
|
i_Msg->m026C[8].mSize.x = i_Msg->m026C[8].mSizeOrig.x + fVar3;
|
|
i_Msg->m026C[9].mSize.x = i_Msg->m026C[9].mSizeOrig.x + fVar3;
|
|
fVar3 = ((int)g_msgHIO.field_0x7a) + (local_78 - i_Msg->m011C[0].mSizeOrig.y);
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m011C[i].mSize.y = i_Msg->m011C[i].mSizeOrig.y + fVar3;
|
|
}
|
|
i_Msg->m026C[6].mSize.y = i_Msg->m026C[6].mSizeOrig.y + fVar3;
|
|
i_Msg->m026C[7].mSize.y = i_Msg->m026C[7].mSizeOrig.y + fVar3;
|
|
i_Msg->m026C[9].mSize.y = i_Msg->m026C[9].mSizeOrig.y + fVar3;
|
|
fVar3 = (i_Msg->m026C[9].mSizeOrig.x - i_Msg->m026C[9].mSize.x) * 0.5f;
|
|
i_Msg->m026C[0].mPosCenter.x = i_Msg->m026C[0].mPosCenterOrig.x + fVar3;
|
|
i_Msg->m026C[1].mPosCenter.x = i_Msg->m026C[1].mPosCenterOrig.x + fVar3;
|
|
i_Msg->m026C[2].mPosCenter.x = i_Msg->m026C[2].mPosCenterOrig.x - fVar3;
|
|
i_Msg->m026C[3].mPosCenter.x = i_Msg->m026C[3].mPosCenterOrig.x + fVar3;
|
|
i_Msg->m026C[4].mPosCenter.x = i_Msg->m026C[4].mPosCenterOrig.x - fVar3;
|
|
i_Msg->m026C[6].mPosCenter.x = i_Msg->m026C[6].mPosCenterOrig.x + fVar3;
|
|
i_Msg->m026C[7].mPosCenter.x = i_Msg->m026C[7].mPosCenterOrig.x - fVar3;
|
|
fVar3 = (i_Msg->m011C[0].mSizeOrig.x - i_Msg->m011C[0].mSize.x) * 0.5f;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m011C[i].mPosCenter.x = ((g_msgHIO.field_0x7e) + i_Msg->m011C[i].mPosCenterOrig.x) + fVar3;
|
|
}
|
|
fVar5 = (i_Msg->m026C[9].mSizeOrig.y - i_Msg->m026C[9].mSize.y) * 0.5f;
|
|
fVar2 = i_Msg->m026C[0].mPosCenterOrig.y;
|
|
i_Msg->m026C[0].mPosCenter.y = fVar1;
|
|
i_Msg->m026C[1].mPosCenter.y = i_Msg->m026C[1].mPosCenterOrig.y - fVar5;
|
|
i_Msg->m026C[2].mPosCenter.y = i_Msg->m026C[2].mPosCenterOrig.y - fVar5;
|
|
i_Msg->m026C[3].mPosCenter.y = i_Msg->m026C[3].mPosCenterOrig.y + fVar5;
|
|
i_Msg->m026C[4].mPosCenter.y = i_Msg->m026C[4].mPosCenterOrig.y + fVar5;
|
|
i_Msg->m026C[5].mPosCenter.y = i_Msg->m026C[5].mPosCenterOrig.y - fVar5;
|
|
i_Msg->m026C[8].mPosCenter.y = i_Msg->m026C[8].mPosCenterOrig.y + fVar5;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
i_Msg->m011C[i].mPosCenter.y = i_Msg->m011C[i].mPosCenterOrig.y + (fVar1 - fVar2);
|
|
}
|
|
i_Msg->m01FC.mPosCenterOrig.x = fVar3 + i_Msg->m01FC.mPosTopLeftOrig.x + i_Msg->m01FC.mSizeOrig.x * 0.5f;
|
|
i_Msg->m0234.mPosCenterOrig.x = (g_msgHIO.field_0x7e) * 2.0f + i_Msg->m01FC.mPosCenterOrig.x + i_Msg->m01FC.mSizeOrig.x + (i_Msg->mMsgDataProc.field_0x21C);
|
|
i_Msg->m01FC.mPosCenterOrig.y = fVar5 + i_Msg->m01FC.mPosTopLeftOrig.y + i_Msg->m01FC.mSizeOrig.y * 0.5f;
|
|
i_Msg->m0234.mPosCenterOrig.y = fVar5 + i_Msg->m0234.mPosTopLeftOrig.y + i_Msg->m0234.mSizeOrig.y * 0.5f;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fopMsgM_cposMove(&i_Msg->m011C[i]);
|
|
}
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_cposMove(&i_Msg->m026C[i]);
|
|
}
|
|
if (i_Msg->m026C[9].mSize.x >= 282.0f) {
|
|
fVar1 = 2.0f;
|
|
} else {
|
|
fVar1 = 3.0f;
|
|
}
|
|
dVar11 = fVar1;
|
|
fVar3 = i_Msg->m026C[0].mSize.y * 0.5f;
|
|
i_Msg->m026C[0].pane->rotate(i_Msg->m026C[0].mSize.x * 0.5f, fVar3, ROTATE_Z, fVar1);
|
|
dVar10 = 0.5f;
|
|
for (s32 i = 0; i < 4; i++) {
|
|
fVar1 = i_Msg->m011C[i].mSize.y * dVar10;
|
|
fVar3 = fVar1 + i_Msg->m026C[0].mPosCenter.y;
|
|
fVar2 = fVar3 - i_Msg->m011C[i].mPosCenter.y;
|
|
i_Msg->m011C[i].pane->rotate(
|
|
((i_Msg->m011C[i].mSize.x * dVar10) + i_Msg->m026C[0].mPosCenter.x) - i_Msg->m011C[i].mPosCenter.x, fVar2, ROTATE_Z, dVar11
|
|
);
|
|
}
|
|
fVar1 = i_Msg->m026C[9].mSize.x;
|
|
uVar6 = (int)g_msgHIO.field_0x74;
|
|
if ((uVar6) <= fVar1) {
|
|
fVar1 = 1.0f;
|
|
} else {
|
|
fVar1 = ((int)(fVar1 / (uVar6)) + 0.5f);
|
|
}
|
|
fVar3 = i_Msg->m026C[9].mSize.y;
|
|
uVar6 = (int)g_msgHIO.field_0x74;
|
|
local_78 = uVar6;
|
|
if ((local_78) <= fVar3) {
|
|
fVar3 = 1.0f;
|
|
} else {
|
|
fVar3 = ((int)(fVar3 / (uVar6)) + 0.5f);
|
|
}
|
|
((MyPicture*)i_Msg->m026C[5].pane)->m134 = 1;
|
|
((MyPicture*)i_Msg->m026C[5].pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[5].pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[5].pane)->m12C = fVar1;
|
|
((MyPicture*)i_Msg->m026C[5].pane)->m130 = 1.0f;
|
|
((MyPicture*)i_Msg->m026C[6].pane)->m134 = 1;
|
|
((MyPicture*)i_Msg->m026C[6].pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[6].pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[6].pane)->m12C = fVar3;
|
|
((MyPicture*)i_Msg->m026C[6].pane)->m130 = 1.0f;
|
|
((MyPicture*)i_Msg->m026C[7].pane)->m134 = 1;
|
|
((MyPicture*)i_Msg->m026C[7].pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[7].pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[7].pane)->m12C = fVar3;
|
|
((MyPicture*)i_Msg->m026C[7].pane)->m130 = 1.0f;
|
|
((MyPicture*)i_Msg->m026C[8].pane)->m134 = 1;
|
|
((MyPicture*)i_Msg->m026C[8].pane)->m124 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[8].pane)->m128 = 0.0f;
|
|
((MyPicture*)i_Msg->m026C[8].pane)->m12C = fVar1;
|
|
((MyPicture*)i_Msg->m026C[8].pane)->m130 = 1.0f;
|
|
i_Msg->m026C[9].mUserArea = 0;
|
|
}
|
|
|
|
/* 8021172C-802118D8 .text dMsg_subTextOpen__FP13sub_msg_class */
|
|
void dMsg_subTextOpen(sub_msg_class* i_Msg) {
|
|
static const Vec frameScale = {1.5f, 0.96f, 1.0f};
|
|
f32 fVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
f32 dVar4;
|
|
f32 dVar5;
|
|
|
|
s32 tmp = g_msgHIO.field_0x44 + g_msgHIO.field_0x46;
|
|
i_Msg->m026C[9].mUserArea++;
|
|
dVar4 = fopMsgM_valueIncrease(tmp, (int)i_Msg->m026C[9].mUserArea, 0);
|
|
iVar3 = (int)i_Msg->m026C[9].mUserArea;
|
|
iVar2 = (int)g_msgHIO.field_0x44;
|
|
if (iVar3 < iVar2) {
|
|
dVar5 = fopMsgM_valueIncrease(iVar2, iVar3, 0);
|
|
fVar1 = (dVar5 * (frameScale.y - frameScale.x)) + frameScale.x;
|
|
} else {
|
|
dVar5 = fopMsgM_valueIncrease((int)g_msgHIO.field_0x46, iVar3 - iVar2, 0);
|
|
fVar1 = (dVar5 * (frameScale.z - frameScale.y)) + frameScale.y;
|
|
}
|
|
dMsg_subTextScale(i_Msg, (fVar1));
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m026C[i], dVar4);
|
|
}
|
|
dVar5 = (1.0f - ((1.0f - (g_msgHIO.field_0x81) / 255.0f) * dVar4));
|
|
fopMsgM_setNowAlpha(&i_Msg->m049C, 1.0f - ((1.0f - (g_msgHIO.field_0x80) / 255.0f) * dVar4));
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[0], dVar5);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[1], dVar5);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[2], dVar5);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[3], dVar5);
|
|
}
|
|
|
|
/* 802118D8-80211A8C .text dMsg_subTextClose__FP13sub_msg_class */
|
|
void dMsg_subTextClose(sub_msg_class* i_Msg) {
|
|
int iVar1;
|
|
int iVar2;
|
|
f32 dVar3;
|
|
f32 dVar4;
|
|
|
|
i_Msg->m026C[9].mUserArea++;
|
|
iVar1 = (int)i_Msg->m026C[9].mUserArea;
|
|
iVar2 = (int)g_msgHIO.field_0x48;
|
|
if (iVar1 <= iVar2) {
|
|
dVar3 = fopMsgM_valueIncrease(iVar2, iVar2 - iVar1, 0);
|
|
dVar4 = fopMsgM_valueIncrease((int)g_msgHIO.field_0x48, (int)i_Msg->m026C[9].mUserArea, 0);
|
|
dMsg_subTextScale(i_Msg, (((g_msgHIO.field_0x40 - 1.0f) * dVar4) + 1.0f));
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m026C[i], dVar3);
|
|
}
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m01FC);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0234);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[2]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[3]);
|
|
} else {
|
|
dVar3 = fopMsgM_valueIncrease((int)g_msgHIO.field_0x76, (int)g_msgHIO.field_0x76 - (iVar1 - iVar2), 0);
|
|
dVar4 = (1.0f - (1.0f - ((g_msgHIO.field_0x81) / 255.0f)) * dVar3);
|
|
fopMsgM_setNowAlpha(&i_Msg->m049C, 1.0f - ((1.0f - (g_msgHIO.field_0x80) / 255.0f) * dVar3));
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[0], dVar4);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[1], dVar4);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[2], dVar4);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[3], dVar4);
|
|
}
|
|
}
|
|
|
|
/* 80211A8C-80211B34 .text dMsg_setCloseSound__FP13sub_msg_classUc */
|
|
void dMsg_setCloseSound(sub_msg_class* i_Msg, u8 param_2) {
|
|
mDoAud_talkOut();
|
|
if ((dComIfGp_getDoStatusForce() == dActStts_CANCEL_e) || (param_2 != 0)) {
|
|
mDoAud_seStart(JA_SE_TALK_SEL_CANCEL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_TALK_WIN_CLOSE);
|
|
}
|
|
}
|
|
|
|
/* 80211B34-80211BCC .text dMsg_setCancelMode__FP13sub_msg_class */
|
|
void dMsg_setCancelMode(sub_msg_class* i_Msg) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_DISPLAYED_e;
|
|
i_Msg->m1100 = 0;
|
|
if (CPad_CHECK_TRIG_B(0)) {
|
|
i_Msg->m1169 = 1;
|
|
dComIfGp_setMesgCancelButton(1);
|
|
} else {
|
|
i_Msg->m1169 = 0;
|
|
}
|
|
dMsg_setCloseSound(i_Msg, 0);
|
|
mDoAud_talkOut();
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
}
|
|
|
|
/* 80211BCC-80211DA0 .text dMsg_messageShow__FP13sub_msg_class */
|
|
void dMsg_messageShow(sub_msg_class* i_Msg) {
|
|
u8 cVar2;
|
|
u32 iVar1;
|
|
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, 1.0f);
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
dMsg_messagePaneShow(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
i_Msg->mMsgDataProc.stringSet();
|
|
for (s32 i = 0; i < 8; i++) {
|
|
cVar2 = i_Msg->mMsgDataProc.field_0x281[i];
|
|
iVar1 = i_Msg->mMsgDataProc.field_0x220[i];
|
|
u32 var_r6 = iVar1;
|
|
if (((((u8)(cVar2 - 10U) <= 3) || (cVar2 == 0x15)) || (cVar2 == 0x17)) && (iVar1 == 0)) {
|
|
var_r6 = -1;
|
|
}
|
|
if (((cVar2 != 0xFF) && (buttonTimer[i] == -1)) && (cVar2 != 0x14 && (cVar2 != 0x15 && (cVar2 != 0x16)))) {
|
|
fopMsgM_outFontSet(button_icon[i], button_kage[i], &buttonTimer[i], var_r6, cVar2);
|
|
}
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
i_Msg->m1100 = 0;
|
|
for (s32 i = 0; i < mBeatNum[dComIfGp_getMelodyNum()]; i++) {
|
|
i_Msg->m0B64[i].mUserArea = 0;
|
|
if (dComIfGp_getMelodyNum() < 5) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], 0.5f);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0B64[i]);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m08C4[i], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0CB4[i], 0.5f);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80211DA0-8021209C .text dMsg_stopProc__FP13sub_msg_class */
|
|
s32 dMsg_stopProc(sub_msg_class* i_Msg) {
|
|
u8 bVar1;
|
|
u32 uVar2;
|
|
|
|
if (i_Msg->mMsgDataProc.field_0x297 != 0) {
|
|
uVar2 = (int)i_Msg->mMsgDataProc.field_0x158 > 0 ? i_Msg->mMsgDataProc.field_0x158 - 1 : 0;
|
|
i_Msg->mMsgDataProc.field_0x158 = uVar2;
|
|
if (uVar2 == 0) {
|
|
i_Msg->mMsgDataProc.field_0x297 = 0;
|
|
i_Msg->mMsgDataProc.field_0x296 = 0;
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
dMsg_value_init(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
dMsg_setString(i_Msg);
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 != 5) && (bVar1 != 0xe)) {
|
|
dMsg_arrowInit(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 2;
|
|
if (dComIfGp_getDoStatusForce() == dActStts_CANCEL_e) {
|
|
mDoAud_seStart(JA_SE_TALK_SEL_CANCEL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_TALK_NEXT);
|
|
}
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
} else {
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 != 5) && (bVar1 != 0xe)) {
|
|
dMsg_arrowMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 1;
|
|
}
|
|
} else {
|
|
if (((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) && (!dComIfGp_checkMesgBgm())) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
dMsg_value_init(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
dMsg_setString(i_Msg);
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_arrowInit(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 2;
|
|
if (dComIfGp_getDoStatusForce() == dActStts_CANCEL_e) {
|
|
mDoAud_seStart(JA_SE_TALK_SEL_CANCEL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_TALK_NEXT);
|
|
}
|
|
if (((i_Msg->mMesgEntry.mDrawType == 0) && (CPad_CHECK_TRIG_B(0))) && (!dComIfGp_checkMesgBgm())) {
|
|
if (i_Msg->mMsgDataProc.field_0x296 == 0) {
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
}
|
|
if (((i_Msg->mMsgDataProc.field_0x297 == 0) && (i_Msg->mMsgDataProc.field_0x298 == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
|
|
i_Msg->mMsgDataProc.field_0x158 = 0;
|
|
i_Msg->mMsgDataProc.field_0x296 = 0;
|
|
}
|
|
}
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
} else {
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_arrowMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 1;
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 8021209C-802128B0 .text dMsg_selectProc__FP13sub_msg_class */
|
|
s32 dMsg_selectProc(sub_msg_class* i_Msg) {
|
|
int uVar1;
|
|
s16 sVar3;
|
|
u8 cVar6;
|
|
u8 uVar7;
|
|
J2DTextBox* pJVar8;
|
|
u8 uVar9;
|
|
int iVar10;
|
|
int iVar11;
|
|
J2DPicture* pJVar14;
|
|
|
|
pJVar8 = (J2DTextBox*)i_Msg->m0544[0].pane;
|
|
iVar10 = (int)pJVar8->mBounds.i.x;
|
|
iVar11 = (int)pJVar8->mBounds.i.y;
|
|
uVar1 = pJVar8->getLineSpace();
|
|
sVar3 = i_Msg->m026C[0].mUserArea;
|
|
if (sVar3 == 0) {
|
|
if ((i_Msg->mStatus == fopMsgStts_SELECT_2_e) || (i_Msg->mStatus == fopMsgStts_SELECT_3_e)) {
|
|
if (((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (fopMsgM_checkMessageSend())) {
|
|
dMsg_subTextSizeSet(i_Msg);
|
|
i_Msg->m026C[0].mUserArea = 1;
|
|
mDoAud_seStart(JA_SE_TALK_SEL_WIN_OPEN);
|
|
goto end;
|
|
}
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_arrowMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 1;
|
|
} else {
|
|
if (i_Msg->mStatus == fopMsgStts_SELECT_YOKO_e) {
|
|
i_Msg->m026C[0].mUserArea = 2;
|
|
}
|
|
}
|
|
goto end;
|
|
}
|
|
if (sVar3 == 1) {
|
|
if ((int)i_Msg->m026C[9].mUserArea < (int)g_msgHIO.field_0x44 + (int)g_msgHIO.field_0x46) {
|
|
dMsg_subTextOpen(i_Msg);
|
|
goto end;
|
|
}
|
|
fopMsgM_setInitAlpha(&i_Msg->m01FC);
|
|
fopMsgM_setInitAlpha(&i_Msg->m0234);
|
|
fopMsgM_setInitAlpha(&i_Msg->m011C[0]);
|
|
fopMsgM_setInitAlpha(&i_Msg->m011C[1]);
|
|
fopMsgM_setInitAlpha(&i_Msg->m011C[2]);
|
|
fopMsgM_setInitAlpha(&i_Msg->m011C[3]);
|
|
i_Msg->m026C[9].mUserArea = 0;
|
|
fopMsgM_paneTrans(&i_Msg->m01FC, 0.0f, 0.0f);
|
|
fopMsgM_paneTrans(&i_Msg->m0234, 0.0f, 0.0f);
|
|
i_Msg->m026C[0].mUserArea = 2;
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 5) || (i_Msg->mMesgEntry.mTextboxType == 0xe)) {
|
|
goto end;
|
|
}
|
|
dMsg_arrowInit(i_Msg);
|
|
goto end;
|
|
}
|
|
if (sVar3 != 2) {
|
|
goto end;
|
|
}
|
|
if (i_Msg->mStatus == fopMsgStts_SELECT_2_e) {
|
|
uVar7 = i_Msg->mMsgDataProc.selectCheck2(arrowPane, iVar10, iVar11 + uVar1 + ((int)uVar1 / 2), uVar1);
|
|
i_Msg->mSelectNum = uVar7;
|
|
i_Msg->m026C[8].mUserArea++;
|
|
if (i_Msg->m026C[8].mUserArea >= 0x14) {
|
|
i_Msg->m026C[8].mUserArea = 0;
|
|
}
|
|
sVar3 = i_Msg->m026C[8].mUserArea;
|
|
if (sVar3 < 10) {
|
|
pJVar14 = (J2DPicture*)i_Msg->m01FC.pane;
|
|
pJVar14->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
pJVar14 = (J2DPicture*)i_Msg->m0234.pane;
|
|
pJVar14->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
} else if (sVar3 < 0x14) {
|
|
pJVar14 = (J2DPicture*)i_Msg->m01FC.pane;
|
|
pJVar14->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
pJVar14 = (J2DPicture*)i_Msg->m0234.pane;
|
|
pJVar14->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
}
|
|
fopMsgM_paneTrans(&i_Msg->m01FC, 0.0f, i_Msg->mSelectNum * uVar1);
|
|
fopMsgM_paneTrans(&i_Msg->m0234, 0.0f, i_Msg->mSelectNum * uVar1);
|
|
} else if (i_Msg->mStatus == fopMsgStts_SELECT_3_e) {
|
|
uVar7 = i_Msg->mMsgDataProc.selectCheck3(arrowPane, iVar10, iVar11, uVar1);
|
|
i_Msg->mSelectNum = uVar7;
|
|
i_Msg->m026C[8].mUserArea++;
|
|
if (i_Msg->m026C[8].mUserArea >= 0x14) {
|
|
i_Msg->m026C[8].mUserArea = 0;
|
|
}
|
|
sVar3 = i_Msg->m026C[8].mUserArea;
|
|
if (sVar3 < 10) {
|
|
pJVar14 = (J2DPicture*)i_Msg->m01FC.pane;
|
|
pJVar14->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
pJVar14 = (J2DPicture*)i_Msg->m0234.pane;
|
|
pJVar14->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f);
|
|
} else if (sVar3 < 0x14) {
|
|
pJVar14 = (J2DPicture*)i_Msg->m01FC.pane;
|
|
pJVar14->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
pJVar14 = (J2DPicture*)i_Msg->m0234.pane;
|
|
pJVar14->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f);
|
|
}
|
|
fopMsgM_paneTrans(&i_Msg->m01FC, 0.0f, i_Msg->mSelectNum * uVar1);
|
|
fopMsgM_paneTrans(&i_Msg->m0234, 0.0f, i_Msg->mSelectNum * uVar1);
|
|
} else if (i_Msg->mStatus == fopMsgStts_SELECT_YOKO_e) {
|
|
s32 var_r5 = 0;
|
|
s32 var_r6 = 0;
|
|
s32 var_r11 = 0;
|
|
for (s32 i = 0; i < 8; i++) {
|
|
cVar6 = i_Msg->mMsgDataProc.field_0x281[i];
|
|
if (cVar6 == 0x14) {
|
|
var_r5 = (int)(i_Msg->m0544[0].pane->mBounds.i.x + ((int)i_Msg->mMsgDataProc.field_0x168[i]));
|
|
var_r6 = (int)(i_Msg->m0544[0].pane->mBounds.i.y + (int)(i_Msg->m1104 * ((2 - i_Msg->m1108) + (i_Msg->mMsgDataProc.field_0x1A4[i] * 2))));
|
|
} else if (cVar6 == 0x15) {
|
|
var_r11 = (int)(i_Msg->m0544[0].pane->mBounds.i.x + ((int)i_Msg->mMsgDataProc.field_0x168[i]));
|
|
}
|
|
}
|
|
i_Msg->mSelectNum = i_Msg->mMsgDataProc.selectCheckYoko(arrowPane, var_r5, var_r6, var_r11 - var_r5);
|
|
}
|
|
if (!CPad_CHECK_TRIG_A(0)) {
|
|
if (((!CPad_CHECK_TRIG_B(0)) || (dComIfGp_getAStatus() != dActStts_CANCEL_e)) && (!fopMsgM_checkMessageSend())) {
|
|
goto end;
|
|
}
|
|
}
|
|
if ((i_Msg->mStatus == fopMsgStts_SELECT_2_e) || (i_Msg->mStatus == fopMsgStts_SELECT_3_e)) {
|
|
i_Msg->m026C[0].mUserArea = 3;
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m01FC);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0234);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[2]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m011C[3]);
|
|
} else {
|
|
i_Msg->m026C[0].mUserArea = 0;
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
i_Msg->m026C[9].mUserArea = 0;
|
|
if (CPad_CHECK_TRIG_B(0)) {
|
|
i_Msg->m1169 = 1;
|
|
dComIfGp_setMesgCancelButton(1);
|
|
} else {
|
|
i_Msg->m1169 = 0;
|
|
}
|
|
if (i_Msg->mMesgEntry.mNextMsgNo == 1) {
|
|
if (i_Msg->mSelectNum == 0) {
|
|
uVar9 = 1;
|
|
} else {
|
|
uVar9 = 0;
|
|
}
|
|
} else if (i_Msg->mMesgEntry.mNextMsgNo == 2) {
|
|
uVar9 = 0;
|
|
} else {
|
|
if (((i_Msg->mStatus == fopMsgStts_SELECT_2_e) && (i_Msg->mSelectNum == 1)) || (i_Msg->mStatus == fopMsgStts_SELECT_3_e && (i_Msg->mSelectNum == 2))) {
|
|
uVar9 = 1;
|
|
} else {
|
|
uVar9 = 0;
|
|
}
|
|
}
|
|
dMsg_setCloseSound(i_Msg, uVar9);
|
|
i_Msg->mStatus = fopMsgStts_MSG_DISPLAYED_e;
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
end:
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802128B0-80212910 .text dMsg_inputProc__FP13sub_msg_class */
|
|
s32 dMsg_inputProc(sub_msg_class* i_Msg) {
|
|
if (i_Msg->mMesgEntry.mTextboxType == 0xe) {
|
|
if (fopMsgM_tactMsgFlagCheck()) {
|
|
dMsg_tactInput2(i_Msg);
|
|
} else {
|
|
dMsg_tactInput(i_Msg);
|
|
}
|
|
} else {
|
|
dMsg_numberInput(i_Msg);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80212910-80212DC0 .text dMsg_demoProc__FP13sub_msg_class */
|
|
s32 dMsg_demoProc(sub_msg_class* i_Msg) {
|
|
s16 sVar1;
|
|
u8 cVar3;
|
|
u32 iVar2;
|
|
int iVar4;
|
|
s32 melody_no;
|
|
f32 dVar9;
|
|
f32 fVar10;
|
|
s32 lStack_68;
|
|
f32 local_64[7];
|
|
|
|
if (i_Msg->m116B == 0) {
|
|
melody_no = dComIfGp_getMelodyNum();
|
|
static bool flag = 0;
|
|
static s16 cnt = 0;
|
|
local_64[0] = 0.0f;
|
|
for (s32 i = 0; i < mBeatNum[melody_no]; i++) {
|
|
local_64[i + 1] = mDoAud_tact_getMelodyPattern((u8)melody_no, i, &lStack_68);
|
|
local_64[i + 1] += local_64[i];
|
|
}
|
|
if (i_Msg->m1100 == 0) {
|
|
cnt = 0;
|
|
mDoAud_tact_melodyPlay(melody_no);
|
|
}
|
|
if (i_Msg->m1100 < (s16)local_64[mBeatNum[melody_no]]) {
|
|
i_Msg->m1100++;
|
|
if (i_Msg->m1100 >= (s16)local_64[cnt]) {
|
|
i_Msg->m0B64[cnt].mUserArea = 1;
|
|
cnt++;
|
|
}
|
|
}
|
|
for (s32 i = 0; i < mBeatNum[melody_no]; i++) {
|
|
sVar1 = i_Msg->m0B64[i].mUserArea;
|
|
iVar4 = (int)sVar1;
|
|
if ((sVar1 > 0) && (iVar4 <= 0x23)) {
|
|
if (iVar4 < 5) {
|
|
dVar9 = fopMsgM_valueIncrease(5, iVar4, 0);
|
|
fVar10 = (dVar9 * 0.5f) + 0.5f;
|
|
dVar9 = fVar10;
|
|
if (dComIfGp_getMelodyNum() < 5) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], fVar10);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0B64[i], dVar9);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[i], fVar10);
|
|
fopMsgM_setNowAlpha(&i_Msg->m08C4[i], dVar9);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0CB4[i], dVar9);
|
|
}
|
|
} else {
|
|
fopMsgM_setInitAlpha(&i_Msg->m0A14[i]);
|
|
fopMsgM_setInitAlpha(&i_Msg->m0B64[i]);
|
|
if (dComIfGp_getMelodyNum() >= 5) {
|
|
fopMsgM_setInitAlpha(&i_Msg->m0CB4[i]);
|
|
}
|
|
}
|
|
i_Msg->m0B64[i].mUserArea++;
|
|
if (i_Msg->m0B64[mBeatNum[melody_no] - 1].mUserArea > 0x23) {
|
|
if (flag != 0) {
|
|
dMsg_messagePaneShow(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
i_Msg->mMsgDataProc.stringSet();
|
|
for (s32 j = 0; j < 8; j++) {
|
|
cVar3 = i_Msg->mMsgDataProc.field_0x281[j];
|
|
iVar2 = i_Msg->mMsgDataProc.field_0x220[j];
|
|
u32 var_r6 = iVar2;
|
|
if (((((u8)(cVar3 - 10U) <= 3) || (cVar3 == 0x15)) || (cVar3 == 0x17)) && (iVar2 == 0)) {
|
|
var_r6 = -1;
|
|
}
|
|
if (((cVar3 != 0xFF) && (buttonTimer[j] == -1)) && (cVar3 != 0x14 && (cVar3 != 0x15 && (cVar3 != 0x16)))) {
|
|
fopMsgM_outFontSet(button_icon[j], button_kage[j], &buttonTimer[j], var_r6, cVar3);
|
|
}
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0544[0]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0544[1]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0544[2]);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0544[3]);
|
|
i_Msg->m116B = 1;
|
|
flag = 0;
|
|
} else {
|
|
flag += 1;
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
for (s32 j = 0; j < mBeatNum[melody_no]; j++) {
|
|
i_Msg->m0B64[j].mUserArea = 0;
|
|
if (dComIfGp_getMelodyNum() < 5) {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[j], 0.5f);
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m0B64[j]);
|
|
} else {
|
|
fopMsgM_setNowAlpha(&i_Msg->m0A14[j], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m08C4[j], 0.5f);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0CB4[j], 0.5f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
dVar9 = fopMsgM_valueIncrease(5, i_Msg->m116B, 0);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[0], dVar9);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[1], dVar9);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[2], dVar9);
|
|
fopMsgM_setNowAlpha(&i_Msg->m0544[3], dVar9);
|
|
if (i_Msg->m116B >= 5) {
|
|
i_Msg->mStatus = fopMsgStts_INPUT_e;
|
|
} else {
|
|
i_Msg->m116B++;
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80212DC0-80213650 .text dMsg_continueProc__FP13sub_msg_class */
|
|
s32 dMsg_continueProc(sub_msg_class* i_Msg) {
|
|
int iVar1;
|
|
int iVar2;
|
|
f32 dVar3;
|
|
f32 fVar5;
|
|
char* pcVar9;
|
|
char* pcVar10;
|
|
char* pcVar12;
|
|
fopAc_ac_c* pActor;
|
|
char* pcVar13;
|
|
|
|
iVar1 = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getCharSpace();
|
|
iVar2 = (int)((J2DTextBox*)i_Msg->m0544[1].pane)->getCharSpace();
|
|
if (((((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (i_Msg->mMsgDataProc.field_0x294 != 0)) ||
|
|
(fopMsgM_checkMessageSend() || (i_Msg->mMsgNo == 0x5ac && (dComIfGp_checkMesgCancelButton())))) &&
|
|
(!dComIfGp_checkMesgBgm()))
|
|
{
|
|
i_Msg->mMsgDataProc.field_0x294 = 0;
|
|
i_Msg->m1100 = 0;
|
|
JKRFileLoader::removeResource(i_Msg->head_p, NULL);
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_arrowInit(i_Msg);
|
|
}
|
|
if (CPad_CHECK_TRIG_B(0)) {
|
|
i_Msg->m1169 = 1;
|
|
dComIfGp_setMesgCancelButton(1);
|
|
}
|
|
if (i_Msg->m1169 != 0) {
|
|
i_Msg->mMsgNo = i_Msg->field_0xf0;
|
|
i_Msg->m1169 = 0;
|
|
}
|
|
i_Msg->head_p = i_Msg->mMsgGet.getMesgHeader(i_Msg->mMsgNo);
|
|
JUT_ASSERT(4002, i_Msg->head_p);
|
|
pcVar9 = (char*)i_Msg->mMsgGet.getMessage(i_Msg->head_p);
|
|
i_Msg->mpMesgStr = (char*)pcVar9;
|
|
i_Msg->mMesgEntry = i_Msg->mMsgGet.getMesgEntry(i_Msg->head_p);
|
|
i_Msg->mMsgID = i_Msg->mMsgGet.mGroupID << 8 | i_Msg->mMsgGet.mResMsgNo;
|
|
i_Msg->m116A = 0;
|
|
i_Msg->m1164 = -1;
|
|
dMsg_value_init(i_Msg);
|
|
i_Msg->mMsgDataProc.dataInit();
|
|
i_Msg->mMsgDataProc.field_0x25C = i_Msg->m1164;
|
|
i_Msg->mMsgDataProc.field_0x3C = (char*)i_Msg->mpMesgStr;
|
|
pcVar13 = i_Msg->output_rubSdw;
|
|
pcVar12 = i_Msg->output_textSdw;
|
|
pcVar10 = i_Msg->output_rub;
|
|
pcVar9 = i_Msg->output_text;
|
|
i_Msg->mMsgDataProc.field_0x60 = pcVar9;
|
|
i_Msg->mMsgDataProc.field_0x40 = pcVar9;
|
|
i_Msg->mMsgDataProc.field_0x64 = pcVar10;
|
|
i_Msg->mMsgDataProc.field_0x44 = pcVar10;
|
|
i_Msg->mMsgDataProc.field_0x68 = pcVar12;
|
|
i_Msg->mMsgDataProc.field_0x48 = pcVar12;
|
|
i_Msg->mMsgDataProc.field_0x6C = pcVar13;
|
|
i_Msg->mMsgDataProc.field_0x4C = pcVar13;
|
|
pcVar10 = i_Msg->select_rubSdw;
|
|
pcVar12 = i_Msg->select_textSdw;
|
|
pcVar9 = i_Msg->select_rub;
|
|
i_Msg->mMsgDataProc.field_0x50[0] = i_Msg->select_text;
|
|
i_Msg->mMsgDataProc.field_0x50[1] = pcVar9;
|
|
i_Msg->mMsgDataProc.field_0x50[2] = pcVar12;
|
|
i_Msg->mMsgDataProc.field_0x50[3] = pcVar10;
|
|
i_Msg->mMsgDataProc.font[0] = textFont;
|
|
i_Msg->mMsgDataProc.font[1] = rubyFont;
|
|
i_Msg->mMsgDataProc.field_0x11C = iVar1;
|
|
i_Msg->mMsgDataProc.field_0x124 = iVar2;
|
|
i_Msg->mMsgDataProc.field_0x0C = &i_Msg->mMesgEntry;
|
|
i_Msg->mMsgDataProc.field_0x144 = i_Msg->m110C;
|
|
i_Msg->mMsgDataProc.field_0x14C = i_Msg->m1110;
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) && (i_Msg->m0624[8].mUserArea == 0)) {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1a3;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x192;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
|
|
i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
|
|
i_Msg->mMsgDataProc.field_0x15C = 2;
|
|
if (g_msgHIO.field_0x83 != 0) {
|
|
i_Msg->mMsgDataProc.field_0x29C = 1;
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x29C = 0;
|
|
}
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
dMeter_Info.field_0x0 = 2;
|
|
if (dComIfGp_getDoStatusForce() == dActStts_CANCEL_e) {
|
|
mDoAud_seStart(JA_SE_TALK_SEL_CANCEL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_TALK_NEXT);
|
|
}
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
dComIfGp_setMesgCancelButton(0);
|
|
dComIfGp_setMesgAnimeAttrInfo(i_Msg->mMesgEntry.mInitialAnimation);
|
|
u8 temp_r4_2 = i_Msg->mMesgEntry.mInitialCamera;
|
|
dComIfGp_setMesgCameraAttrInfo(i_Msg->mMesgEntry.mInitialCamera);
|
|
dComIfGp_setMessageRupee(i_Msg->mMesgEntry.mItemPrice);
|
|
if ((((i_Msg->mMesgEntry.mInitialCamera == 1) || (i_Msg->mMesgEntry.mInitialCamera == 2)) || (i_Msg->mMesgEntry.mInitialCamera == 3)) ||
|
|
(i_Msg->mMesgEntry.mInitialCamera == 4 || (i_Msg->mMesgEntry.mInitialCamera == 5)))
|
|
{
|
|
dComIfG_MesgCamInfo_c* aMsgCamInfo_p = dComIfGp_getMesgCameraInfo();
|
|
pActor = aMsgCamInfo_p->mActor[temp_r4_2 - 1];
|
|
if (pActor != NULL) {
|
|
dComIfGp_event_setTalkPartner(pActor);
|
|
}
|
|
}
|
|
if (i_Msg->mMesgEntry.mTextboxType == 1) {
|
|
dMsg_msg_pane_parts_set(&i_Msg->m049C, 1);
|
|
if (i_Msg->mMesgEntry.mTextboxPosition != 1) {
|
|
f32 tmp = 225.0f;
|
|
i_Msg->m049C.mPosCenter.y += tmp;
|
|
i_Msg->m049C.mPosTopLeft.y += tmp;
|
|
}
|
|
dMsg_arw_pane_parts_set(&i_Msg->mPane_Arrow, &i_Msg->m049C);
|
|
dMsg_arw_pane_parts_set(&i_Msg->m050C, &i_Msg->m049C);
|
|
i_Msg->m1114 = i_Msg->mPane_Arrow.mPosTopLeft.y + i_Msg->mPane_Arrow.mSizeOrig.y;
|
|
cXyz tmp;
|
|
dVar3 = (int)i_Msg->m0544[0].mPosTopLeftOrig.x;
|
|
tmp.x = dVar3;
|
|
fVar5 = ((int)(480.0f - (i_Msg->m0544[0].mPosTopLeftOrig.y + i_Msg->m0544[0].mSizeOrig.y)) - 0x13);
|
|
tmp.y = fVar5;
|
|
if (i_Msg->mMesgEntry.mTextboxPosition != 1) {
|
|
i_Msg->m10F8 = (int)tmp.x;
|
|
i_Msg->m10FC = (int)(tmp.y + 225.0f);
|
|
} else {
|
|
i_Msg->m10F8 = (int)tmp.x;
|
|
i_Msg->m10FC = (int)(tmp.y);
|
|
}
|
|
i_Msg->m0544[0].pane->move(tmp.x, tmp.y - (f32)g_msgHIO.field_0x62 - (f32)textOffsetY);
|
|
i_Msg->m0544[1].pane->move(tmp.x, tmp.y - (f32)g_msgHIO.field_0x60 - (f32)textOffsetY);
|
|
i_Msg->m0544[2].pane->move(tmp.x + 2.0f, (tmp.y - (f32)g_msgHIO.field_0x62 - (f32)textOffsetY) + 2.0f);
|
|
i_Msg->m0544[3].pane->move(tmp.x + 2.0f, (tmp.y - (f32)g_msgHIO.field_0x60 - (f32)textOffsetY) + 2.0f);
|
|
i_Msg->m10D8 = i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = i_Msg->m049C.mPosCenter.y;
|
|
fopMsgM_cposMove(&i_Msg->m049C);
|
|
} else if (i_Msg->mMesgEntry.mTextboxType != 0xe) {
|
|
dMsg_mesgOutPos(i_Msg);
|
|
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
|
}
|
|
if (((i_Msg->mMesgEntry.mDrawType == 0) && (CPad_CHECK_TRIG_B(0))) && (!dComIfGp_checkMesgBgm())) {
|
|
if (i_Msg->mMsgDataProc.field_0x296 == 0) {
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
}
|
|
if (((i_Msg->mMsgDataProc.field_0x297 == 0) && (i_Msg->mMsgDataProc.field_0x298 == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
|
|
i_Msg->mMsgDataProc.field_0x158 = 0;
|
|
i_Msg->mMsgDataProc.field_0x296 = 0;
|
|
}
|
|
}
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
} else {
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_arrowMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 1;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213650-80213830 .text dMsg_closewaitProc__FP13sub_msg_class */
|
|
s32 dMsg_closewaitProc(sub_msg_class* i_Msg) {
|
|
u8 bVar1;
|
|
u32 uVar3;
|
|
|
|
if (i_Msg->mMsgDataProc.field_0x297 != 0) {
|
|
uVar3 = (int)i_Msg->mMsgDataProc.field_0x158 > 0 ? i_Msg->mMsgDataProc.field_0x158 - 1 : 0;
|
|
i_Msg->mMsgDataProc.field_0x158 = uVar3;
|
|
if ((uVar3 == 0) || (fopMsgM_checkMessageSend())) {
|
|
i_Msg->mMsgDataProc.field_0x297 = 0;
|
|
i_Msg->mMsgDataProc.field_0x296 = 0;
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
|
|
i_Msg->m1100 = 0;
|
|
i_Msg->mMsgDataProc.field_0x158 = 0;
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
}
|
|
} else {
|
|
if (i_Msg->mMsgDataProc.field_0x298 != 0) {
|
|
uVar3 = (int)i_Msg->mMsgDataProc.field_0x158 > 0 ? i_Msg->mMsgDataProc.field_0x158 - 1 : 0;
|
|
i_Msg->mMsgDataProc.field_0x158 = uVar3;
|
|
if (uVar3 != 0) {
|
|
if ((((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (fopMsgM_checkMessageSend())) && (!dComIfGp_checkMesgBgm())) {
|
|
i_Msg->mMsgDataProc.field_0x298 = 0;
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 != 5) && (bVar1 != 0xe)) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m050C);
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
dMeter_Info.field_0x0 = 0;
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
} else {
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 != 5) && (bVar1 != 0xe)) {
|
|
dMsg_dotMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 4;
|
|
}
|
|
} else {
|
|
i_Msg->mMsgDataProc.field_0x298 = 0;
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 != 5) && (bVar1 != 0xe)) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m050C);
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
dMeter_Info.field_0x0 = 0;
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
}
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213830-80213960 .text dMsg_finishProc__FP13sub_msg_class */
|
|
s32 dMsg_finishProc(sub_msg_class* i_Msg) {
|
|
if ((((((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (i_Msg->mMsgDataProc.field_0x294 != 0)) || (fopMsgM_checkMessageSend())) ||
|
|
(i_Msg->mMsgNo == 0x5ac && (dComIfGp_checkMesgCancelButton()))) &&
|
|
(!dComIfGp_checkMesgBgm()))
|
|
{
|
|
i_Msg->mMsgDataProc.field_0x294 = 0;
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
fopMsgM_setNowAlphaZero(&i_Msg->m050C);
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
dMeter_Info.field_0x0 = 0;
|
|
i_Msg->m116A++;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
if (i_Msg->mMsgNo == 0x1072) {
|
|
mDoAud_bgmStop(0x3c);
|
|
}
|
|
} else {
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
dMsg_dotMove(i_Msg);
|
|
}
|
|
dMeter_Info.field_0x0 = 4;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213960-802139F0 .text dMsg_openTalkProc__FP13sub_msg_class */
|
|
s32 dMsg_openTalkProc(sub_msg_class* i_Msg) {
|
|
if (i_Msg->m1100 == 0xd) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
dMsg_messagePaneShow(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
dMeter_Info.field_0x0 = 2;
|
|
} else {
|
|
dMsg_frame_openTalk(i_Msg);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802139F0-80213C20 .text dMsg_openItemProc__FP13sub_msg_class */
|
|
s32 dMsg_openItemProc(sub_msg_class* i_Msg) {
|
|
cXyz local_1c;
|
|
cXyz local_28;
|
|
|
|
if (i_Msg->m1100 == 8) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
dMsg_messagePaneShow(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
if ((i_Msg->mMsgNo == 0x74) || (i_Msg->mMsgNo == 0xbe)) {
|
|
f32 tmp = 0.5f;
|
|
f32 y = (i_Msg->m0624[8].mSize.y * tmp + i_Msg->m0624[8].pane->getGlbBounds().i.y) - 240.0f;
|
|
f32 x = (i_Msg->m0624[8].mSize.x * tmp + i_Msg->m0624[8].pane->getGlbBounds().i.x) - 320.0f;
|
|
local_1c.set(x, y, 0.0f);
|
|
i_Msg->m10B4[0] = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_1c);
|
|
if (i_Msg->mMsgNo == 0xbe) {
|
|
i_Msg->m10B4[1] = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_RUPYLIGHT, &local_1c);
|
|
}
|
|
} else if (i_Msg->mMsgNo == 0x9a) {
|
|
f32 tmp = 0.5f;
|
|
f32 y = ((i_Msg->m0624[8].mSize.y * tmp + i_Msg->m0624[8].pane->getGlbBounds().i.y) - 240.0f) - 10.0f;
|
|
f32 x = ((i_Msg->m0624[8].mSize.x * tmp + i_Msg->m0624[8].pane->getGlbBounds().i.x) - 320.0f) + 10.0f;
|
|
local_28.set(x, y, 0.0f);
|
|
i_Msg->m10B4[0] = dComIfGp_particle_set2Dfore(dPa_name::ID_HM_J2_ARWG_FLAME00, &local_28);
|
|
}
|
|
dMeter_Info.field_0x0 = 2;
|
|
} else {
|
|
dMsg_frame_openItem(i_Msg);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213C20-80213E28 .text dMsg_openTactProc__FP13sub_msg_class */
|
|
s32 dMsg_openTactProc(sub_msg_class* i_Msg) {
|
|
u8 uVar2;
|
|
u8 cVar4;
|
|
u32 iVar3;
|
|
|
|
if (i_Msg->mMsgNo == 0x5ac) {
|
|
i_Msg->mStatus = fopMsgStts_INPUT_e;
|
|
} else if ((i_Msg->mMsgNo == 0x5b3) || (i_Msg->mMsgNo == 0x5b4)) {
|
|
uVar2 = dComIfGp_getMelodyNum();
|
|
if (((s32)uVar2 != 1) && ((s32)uVar2 != 5)) {
|
|
dMsg_tactGuideShow(i_Msg, mBeatNum[uVar2]);
|
|
i_Msg->mStatus = fopMsgStts_DEMO_e;
|
|
i_Msg->m116B = 0;
|
|
} else {
|
|
dMsg_tactGuideShow(i_Msg, mBeatNum[uVar2]);
|
|
dMsg_messageShow(i_Msg);
|
|
i_Msg->mStatus = fopMsgStts_INPUT_e;
|
|
i_Msg->m1168 = mDoAud_tact_getBeat();
|
|
return TRUE;
|
|
}
|
|
} else {
|
|
i_Msg->mStatus = fopMsgStts_TACT_e;
|
|
}
|
|
fopMsgM_paneScaleXY(&i_Msg->m049C, 1.0f);
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
if (i_Msg->mStatus != fopMsgStts_DEMO_e) {
|
|
dMsg_messagePaneShow(i_Msg);
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
i_Msg->mMsgDataProc.stringSet();
|
|
for (s32 i = 0; i < 8; i++) {
|
|
cVar4 = i_Msg->mMsgDataProc.field_0x281[i];
|
|
iVar3 = i_Msg->mMsgDataProc.field_0x220[i];
|
|
u32 var_r6 = iVar3;
|
|
if (((((u8)(cVar4 - 10U) <= 3) || (cVar4 == 0x15)) || (cVar4 == 0x17)) && (iVar3 == 0)) {
|
|
var_r6 = -1;
|
|
}
|
|
if (((cVar4 != 0xFF) && (buttonTimer[i] == -1)) && (cVar4 != 0x14 && (cVar4 != 0x15 && (cVar4 != 0x16)))) {
|
|
fopMsgM_outFontSet(button_icon[i], button_kage[i], &buttonTimer[i], var_r6, cVar4);
|
|
}
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
}
|
|
i_Msg->m1100 = 0;
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213E28-80213E9C .text dMsg_openDemoProc__FP13sub_msg_class */
|
|
s32 dMsg_openDemoProc(sub_msg_class* i_Msg) {
|
|
i_Msg->mStatus = fopMsgStts_MSG_TYPING_e;
|
|
dMsg_yose_select(i_Msg);
|
|
if (i_Msg->mMesgEntry.mInitialSound != 0) {
|
|
mDoAud_messageSePlay(i_Msg->mMesgEntry.mInitialSound, NULL, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()));
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
dMsg_messagePaneShow(i_Msg);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213E9C-80213EC0 .text dMsg_closeProc__FP13sub_msg_class */
|
|
s32 dMsg_closeProc(sub_msg_class* i_Msg) {
|
|
dMsg_frame_close(i_Msg);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213EC0-80213F00 .text dMsg_closeProc2__FP13sub_msg_class */
|
|
s32 dMsg_closeProc2(sub_msg_class* i_Msg) {
|
|
i_Msg->mStatus = fopMsgStts_BOX_CLOSED_e;
|
|
dMsg_messagePaneHide(i_Msg);
|
|
dMsg_outFontHide(i_Msg);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80213F00-802140CC .text dMsg_initProc__FP13sub_msg_class */
|
|
s32 dMsg_initProc(sub_msg_class* i_Msg) {
|
|
const char* pcVar3;
|
|
char acStack_28[24];
|
|
|
|
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) || (fopMsgM_demoMsgFlagCheck())) {
|
|
pcVar3 = i_Msg->mpMesgStr;
|
|
if (((u8)pcVar3[0] == 0x1A) && ((u8)pcVar3[2] == 0x02)) {
|
|
dComIfGp_setMesgCameraTagInfo((s32)(u16)((((u8)pcVar3[3] << 8) & ~0xFFFF00FF) | (((u8)pcVar3[4]) & ~0xFF00)));
|
|
i_Msg->mpMesgStr = (char*)pcVar3 + pcVar3[1];
|
|
i_Msg->mMesgCameraTagInfo = dComIfGp_getMesgCameraTagInfo();
|
|
} else if (((((u8)pcVar3[0] == 0x1A) && ((u8)pcVar3[2] == 0xFF)) && ((u8)pcVar3[3] == 0x00)) && ((u8)pcVar3[4] == 0x00)) {
|
|
if ((pcVar3[5] >= 0x00) && (pcVar3[5] <= 0x08)) {
|
|
i_Msg->m1164 = fopMsgM_getColorTable(pcVar3[5]);
|
|
// clang-format off
|
|
sprintf(acStack_28,"\x1b" "CC[%08x]" "\x1b" "GM[0]", i_Msg->m1164);
|
|
// clang-format on
|
|
strcat(i_Msg->output_text, acStack_28);
|
|
}
|
|
i_Msg->mpMesgStr = i_Msg->mpMesgStr + (s8)i_Msg->mpMesgStr[1];
|
|
} else {
|
|
switch (i_Msg->mMesgEntry.mTextboxType) {
|
|
case 5:
|
|
dMsg_ScreenDataValueInitDemo(i_Msg);
|
|
break;
|
|
case 1:
|
|
case 9:
|
|
dMsg_ScreenDataValueInitItem(i_Msg);
|
|
break;
|
|
case 0xe:
|
|
dMsg_ScreenDataValueInitTact(i_Msg);
|
|
break;
|
|
default:
|
|
dMsg_ScreenDataValueInitTalk(i_Msg);
|
|
break;
|
|
}
|
|
i_Msg->mStatus = fopMsgStts_BOX_OPENING_e;
|
|
mDoAud_talkIn();
|
|
mDoAud_seStart(JA_SE_TALK_WIN_OPEN);
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802140CC-8021411C .text dMsg_tactProc__FP13sub_msg_class */
|
|
s32 dMsg_tactProc(sub_msg_class* i_Msg) {
|
|
if (fopMsgM_checkMessageSend()) {
|
|
i_Msg->mMsgDataProc.field_0x297 = 1;
|
|
i_Msg->mMsgDataProc.field_0x158 = 0x1e;
|
|
i_Msg->mStatus = fopMsgStts_CLOSE_WAIT_e;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/* 8021411C-802143A8 .text dMsg_outnowProc__FP13sub_msg_class */
|
|
s32 dMsg_outnowProc(sub_msg_class* i_Msg) {
|
|
u16 uVar2;
|
|
u8 cVar4;
|
|
u32 iVar3;
|
|
|
|
if (i_Msg->mMesgCameraTagInfo != dComIfGp_getMesgCameraTagInfo()) {
|
|
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) || (fopMsgM_demoMsgFlagCheck())) {
|
|
dMsg_mesgOutPos(i_Msg);
|
|
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
|
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
|
fopMsgM_setInitAlpha(&i_Msg->m049C);
|
|
i_Msg->mMesgCameraTagInfo = dComIfGp_getMesgCameraTagInfo();
|
|
}
|
|
}
|
|
if (i_Msg->mMesgEntry.mDrawType == 0) {
|
|
if (((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) && (!dComIfGp_checkMesgBgm())) {
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
if ((i_Msg->mMsgDataProc.field_0x297 == 0 && (i_Msg->mMsgDataProc.field_0x298 == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
|
|
i_Msg->mMsgDataProc.field_0x158 = 0;
|
|
i_Msg->mMsgDataProc.field_0x296 = 0;
|
|
}
|
|
}
|
|
} else if ((i_Msg->mMesgEntry.mDrawType == 1) && (i_Msg->mMsgDataProc.field_0x296 == 0)) {
|
|
i_Msg->mMsgDataProc.field_0x299 = 1;
|
|
}
|
|
if (((i_Msg->mMsgDataProc.field_0x297 == 0) && (i_Msg->mMsgDataProc.field_0x298 == 0)) && ((int)i_Msg->mMsgDataProc.field_0x158 != 0)) {
|
|
i_Msg->mMsgDataProc.field_0x158 = (int)i_Msg->mMsgDataProc.field_0x158 > 0 ? i_Msg->mMsgDataProc.field_0x158 - 1 : 0;
|
|
} else {
|
|
i_Msg->mMsgDataProc.stringSet();
|
|
i_Msg->m1164 = i_Msg->mMsgDataProc.field_0x25C;
|
|
i_Msg->mStatus = (u16)i_Msg->mMsgDataProc.field_0x27C;
|
|
for (s32 i = 0; i < 8; i++) {
|
|
cVar4 = i_Msg->mMsgDataProc.field_0x281[i];
|
|
iVar3 = i_Msg->mMsgDataProc.field_0x220[i];
|
|
u32 var_r6 = iVar3;
|
|
if (((((u8)(cVar4 - 10U) <= 3) || (cVar4 == 0x15)) || (cVar4 == 0x15)) && (iVar3 == 0)) {
|
|
var_r6 = -1;
|
|
}
|
|
if (((cVar4 != 0xFF) && (buttonTimer[i] == -1)) && (cVar4 != 0x14 && (cVar4 != 0x15 && (cVar4 != 0x16)))) {
|
|
fopMsgM_outFontSet(button_icon[i], button_kage[i], &buttonTimer[i], var_r6, cVar4);
|
|
}
|
|
}
|
|
uVar2 = i_Msg->mStatus;
|
|
if (uVar2 == 7) {
|
|
i_Msg->m1100 = 0;
|
|
} else if ((uVar2 == 10) && (i_Msg->mMsgDataProc.field_0x297 == 0)) {
|
|
i_Msg->m1100 = 0;
|
|
}
|
|
}
|
|
dMsg_setString(i_Msg);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802143A8-80214560 .text dMsg_Draw__FP13sub_msg_class */
|
|
static BOOL dMsg_Draw(sub_msg_class* i_Msg) {
|
|
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (fopMsgM_setAlpha(&i_Msg->m049C), i_Msg->mMesgEntry.mTextboxType != 0xe)) {
|
|
fopMsgM_setAlpha(&i_Msg->mPane_Arrow);
|
|
fopMsgM_setAlpha(&i_Msg->m050C);
|
|
}
|
|
fopMsgM_setAlpha(&i_Msg->m0544[0]);
|
|
fopMsgM_setAlpha(&i_Msg->m0544[1]);
|
|
fopMsgM_setAlpha(&i_Msg->m0544[2]);
|
|
fopMsgM_setAlpha(&i_Msg->m0544[3]);
|
|
if ((i_Msg->mMesgEntry.mTextboxType == 9) || (i_Msg->mMesgEntry.mTextboxType == 1)) {
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setAlpha(&i_Msg->m0624[i]);
|
|
}
|
|
} else if (i_Msg->mMesgEntry.mTextboxType == 0xe) {
|
|
if ((i_Msg->mMsgNo == 0x5b3) || (i_Msg->mMsgNo == 0x5b4)) {
|
|
for (s32 i = 0; i < mBeatNum[dComIfGp_getMelodyNum()]; i++) {
|
|
fopMsgM_setAlpha(&i_Msg->m08C4[i]);
|
|
fopMsgM_setAlpha(&i_Msg->m0A14[i]);
|
|
fopMsgM_setAlpha(&i_Msg->m0B64[i]);
|
|
if (dComIfGp_getMelodyNum() >= 5) {
|
|
fopMsgM_setAlpha(&i_Msg->m0CB4[i]);
|
|
}
|
|
}
|
|
}
|
|
} else if (i_Msg->mMesgEntry.mTextboxType != 5) {
|
|
for (s32 i = 0; i < 10; i++) {
|
|
fopMsgM_setAlpha(&i_Msg->m026C[i]);
|
|
}
|
|
fopMsgM_setAlpha(&i_Msg->m01FC);
|
|
fopMsgM_setAlpha(&i_Msg->m0234);
|
|
fopMsgM_setAlpha(&i_Msg->m011C[0]);
|
|
fopMsgM_setAlpha(&i_Msg->m011C[1]);
|
|
fopMsgM_setAlpha(&i_Msg->m011C[2]);
|
|
fopMsgM_setAlpha(&i_Msg->m011C[3]);
|
|
}
|
|
dComIfGd_set2DOpa(&message);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80214560-802153B0 .text dMsg_Execute__FP13sub_msg_class */
|
|
static BOOL dMsg_Execute(sub_msg_class* i_Msg) {
|
|
u8 bVar1;
|
|
s32 fVar2;
|
|
s32 fVar3;
|
|
s32 fVar4;
|
|
GXColor GVar7;
|
|
JKRHeap* pJVar8;
|
|
MyScreen* pJVar12;
|
|
f32 dVar15;
|
|
|
|
pJVar8 = mDoExt_setCurrentHeap(i_Msg->mpHeap);
|
|
if (dComIfGp_checkMesgSendButton()) {
|
|
dComIfGp_setMesgSendButton(0);
|
|
}
|
|
if ((dComIfGp_checkMesgBgm()) && (i_Msg->mMesgEntry.mTextboxType != 9 ||
|
|
((((mDoAud_checkPlayingSubBgmFlag() != JA_BGM_ITEM_GET && (mDoAud_checkPlayingSubBgmFlag() != JA_BGM_ITEM_GET_S)) &&
|
|
(mDoAud_checkPlayingSubBgmFlag() != JA_BGM_GET_HEART)) &&
|
|
(mDoAud_checkPlayingSubBgmFlag() != JA_BGM_GET_SONG && (mDoAud_checkPlayingSubBgmFlag() != JA_BGM_MASTER_SWORD))) &&
|
|
(mDoAud_checkPlayingSubBgmFlag() != JA_BGM_GET_PEARL))))
|
|
{
|
|
dComIfGp_setMesgBgmOff();
|
|
}
|
|
if ((i_Msg->m026C[0].mUserArea == 3) || ((i_Msg->mStatus != 8 && (i_Msg->mStatus != 9)) && (i_Msg->m026C[0].mUserArea != 0))) {
|
|
if ((int)i_Msg->m026C[9].mUserArea < (int)g_msgHIO.field_0x48 + (int)g_msgHIO.field_0x76) {
|
|
dMsg_subTextClose(i_Msg);
|
|
} else {
|
|
i_Msg->m026C[9].mUserArea = 0;
|
|
i_Msg->m026C[0].mUserArea = 0;
|
|
}
|
|
}
|
|
if (i_Msg->mStatus == fopMsgStts_MSG_PREPARING_e) {
|
|
dMsg_initProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_MSG_TYPING_e) {
|
|
dMsg_outnowProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_STOP_e) {
|
|
dMsg_stopProc(i_Msg);
|
|
} else if (((i_Msg->mStatus == fopMsgStts_SELECT_2_e) || (i_Msg->mStatus == fopMsgStts_SELECT_3_e)) || (i_Msg->mStatus == fopMsgStts_SELECT_YOKO_e)) {
|
|
dMsg_selectProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_INPUT_e) {
|
|
dMsg_inputProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_DEMO_e) {
|
|
dMsg_demoProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_CLOSE_WAIT_e) {
|
|
dMsg_closewaitProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_BOX_OPENING_e) {
|
|
switch (i_Msg->mMesgEntry.mTextboxType) {
|
|
case 5:
|
|
dMsg_openDemoProc(i_Msg);
|
|
break;
|
|
case 1:
|
|
case 9:
|
|
dMsg_openItemProc(i_Msg);
|
|
break;
|
|
case 0xe:
|
|
dMsg_openTactProc(i_Msg);
|
|
break;
|
|
default:
|
|
dMsg_openTalkProc(i_Msg);
|
|
break;
|
|
}
|
|
} else if (i_Msg->mStatus == fopMsgStts_MSG_CONTINUES_e) {
|
|
dMsg_continueProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_MSG_ENDS_e) {
|
|
dMsg_finishProc(i_Msg);
|
|
} else if (i_Msg->mStatus == fopMsgStts_BOX_CLOSING_e) {
|
|
if (i_Msg->mMesgEntry.mTextboxType == 5) {
|
|
dMsg_closeProc2(i_Msg);
|
|
} else {
|
|
dMsg_closeProc(i_Msg);
|
|
}
|
|
} else if (i_Msg->mStatus == fopMsgStts_MSG_DESTROYED_e) {
|
|
fopMsgM_Delete(i_Msg);
|
|
dComIfGp_clearMesgAnimeTagInfo();
|
|
dComIfGp_clearMesgCameraTagInfo();
|
|
dComIfGp_setMesgAnimeAttrInfo(0);
|
|
dComIfGp_setMesgCameraAttrInfo(0);
|
|
} else if (i_Msg->mStatus == fopMsgStts_TACT_e) {
|
|
dMsg_tactProc(i_Msg);
|
|
}
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if ((bVar1 == 9) || (bVar1 == 1)) {
|
|
if (i_Msg->m0624[8].mNowAlpha == i_Msg->m0624[8].mInitAlpha) {
|
|
dMsg_ringMove(i_Msg);
|
|
dMsg_lightMove(i_Msg);
|
|
dMsg_cornerMove(i_Msg);
|
|
}
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Msg->m10B4[i] != NULL) {
|
|
i_Msg->m10B4[i]->playDrawParticle();
|
|
i_Msg->m10B4[i]->setGlobalAlpha(i_Msg->m0624[8].mNowAlpha);
|
|
}
|
|
}
|
|
} else if (bVar1 == 0xe) {
|
|
dMsg_cornerMove(i_Msg);
|
|
}
|
|
dMsg_rubySet(i_Msg);
|
|
f32 fvar2_2;
|
|
if (dComIfGs_getOptRuby()) {
|
|
fvar2_2 = -4.0f;
|
|
} else {
|
|
fvar2_2 = 0.0f;
|
|
}
|
|
dVar15 = fvar2_2;
|
|
fopMsgM_messageSendOff();
|
|
GVar7 = g_msgHIO.field_0x5;
|
|
bVar1 = i_Msg->mMesgEntry.mTextboxType;
|
|
if (bVar1 == 5) {
|
|
static s32 posY0 = (i_Msg->m0544[0].pane)->mBounds.i.y;
|
|
static s32 posY1 = (i_Msg->m0544[1].pane)->mBounds.i.y;
|
|
static s32 posY2 = (i_Msg->m0544[2].pane)->mBounds.i.y;
|
|
static s32 posY3 = (i_Msg->m0544[3].pane)->mBounds.i.y;
|
|
pJVar12 = (MyScreen*)i_Msg->m0544[0].pane;
|
|
s32 fVar1 = pJVar12->mBounds.i.x;
|
|
fVar2 = i_Msg->m0544[1].pane->mBounds.i.x;
|
|
fVar3 = i_Msg->m0544[2].pane->mBounds.i.x;
|
|
fVar4 = i_Msg->m0544[3].pane->mBounds.i.x;
|
|
pJVar12->move(fVar1, posY0);
|
|
i_Msg->m0544[1].pane->move(fVar2, posY1);
|
|
i_Msg->m0544[2].pane->move(fVar3, posY2);
|
|
i_Msg->m0544[3].pane->move(fVar4, posY3);
|
|
} else if ((bVar1 == 9) || (bVar1 == 1)) {
|
|
i_Msg->m049C.pane->move(i_Msg->m049C.mPosTopLeft.x, (i_Msg->m049C.mPosTopLeft.y + (int)g_msgHIO.field_0x66));
|
|
i_Msg->m050C.pane->move(i_Msg->m050C.mPosTopLeft.x, (i_Msg->m050C.mPosTopLeft.y + g_msgHIO.field_0x66));
|
|
i_Msg->m0544[0].pane->move(i_Msg->m10F8, (g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x62) - (int)textOffsetY))));
|
|
i_Msg->m0544[1].pane->move(i_Msg->m10F8, (g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x60) - (int)textOffsetY))));
|
|
i_Msg->m0544[2].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (((i_Msg->m10FC - (int)g_msgHIO.field_0x62) + 2) - (int)textOffsetY)))
|
|
);
|
|
i_Msg->m0544[3].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (((i_Msg->m10FC - (int)g_msgHIO.field_0x60) + 2) - (int)textOffsetY)))
|
|
);
|
|
} else if (bVar1 == 0xe) {
|
|
i_Msg->m049C.pane->move(i_Msg->m049C.mPosTopLeft.x, (i_Msg->m049C.mPosTopLeft.y + (int)g_msgHIO.field_0x66));
|
|
i_Msg->m0544[0].pane->move(i_Msg->m10F8, ((int)g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x62) - (int)textOffsetY))));
|
|
i_Msg->m0544[1].pane->move(i_Msg->m10F8, ((int)g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x60) - (int)textOffsetY))));
|
|
i_Msg->m0544[2].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (i_Msg->m10FC - ((int)g_msgHIO.field_0x62) + 2 - (int)textOffsetY)))
|
|
);
|
|
i_Msg->m0544[3].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (((i_Msg->m10FC - (int)g_msgHIO.field_0x60) + 2) - (int)textOffsetY)))
|
|
);
|
|
} else {
|
|
((J2DPicture*)i_Msg->m049C.pane)->setWhite(JUtility::TColor(g_msgHIO.field_0x5));
|
|
((J2DPicture*)i_Msg->m049C.pane)->setBlack(JUtility::TColor(g_msgHIO.field_0x9));
|
|
i_Msg->m049C.pane->move(i_Msg->m049C.mPosTopLeft.x, (i_Msg->m049C.mPosTopLeft.y + (int)g_msgHIO.field_0x66));
|
|
i_Msg->m050C.pane->move(i_Msg->m050C.mPosTopLeft.x, (i_Msg->m050C.mPosTopLeft.y + (int)g_msgHIO.field_0x66));
|
|
i_Msg->m0544[0].pane->move(i_Msg->m10F8, ((int)g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x62) - (int)textOffsetY))));
|
|
i_Msg->m0544[1].pane->move(i_Msg->m10F8, ((int)g_msgHIO.field_0x66 + (dVar15 + ((i_Msg->m10FC - (int)g_msgHIO.field_0x60) - (int)textOffsetY))));
|
|
i_Msg->m0544[2].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (((i_Msg->m10FC - (int)g_msgHIO.field_0x62) + 2) - (int)textOffsetY)))
|
|
);
|
|
i_Msg->m0544[3].pane->move(
|
|
i_Msg->m10F8 + 2, ((int)g_msgHIO.field_0x66 + (dVar15 + (((i_Msg->m10FC - (int)g_msgHIO.field_0x60) + 2) - (int)textOffsetY)))
|
|
);
|
|
}
|
|
dComIfGp_setMesgStatus(i_Msg->mStatus);
|
|
mDoExt_setCurrentHeap(pJVar8);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802153B0-802153B8 .text dMsg_IsDelete__FP13sub_msg_class */
|
|
static BOOL dMsg_IsDelete(sub_msg_class*) {
|
|
return TRUE;
|
|
}
|
|
|
|
/* 802153B8-80215698 .text dMsg_Delete__FP13sub_msg_class */
|
|
static BOOL dMsg_Delete(sub_msg_class* i_Msg) {
|
|
JKRHeap* pJVar1;
|
|
|
|
if (fopMsgM_demoMsgFlagCheck()) {
|
|
fopMsgM_demoMsgFlagOff();
|
|
}
|
|
if (fopMsgM_tactMsgFlagCheck()) {
|
|
fopMsgM_tactMsgFlagOff();
|
|
}
|
|
if (fopMsgM_nextMsgFlagCheck()) {
|
|
fopMsgM_nextMsgFlagOff();
|
|
}
|
|
i_Msg->m116A = 0;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
dComIfGp_setMesgCancelButton(0);
|
|
dComIfGp_setMesgStatus(0);
|
|
if (dComIfGp_checkMesgBgm()) {
|
|
dComIfGp_setMesgBgmOff();
|
|
}
|
|
pJVar1 = mDoExt_setCurrentHeap(i_Msg->mpHeap);
|
|
for (s32 i = 0; i < 2; i++) {
|
|
if (i_Msg->m10B4[i] != NULL) {
|
|
i_Msg->m10B4[i]->becomeInvalidEmitter();
|
|
i_Msg->m10B4[i]->quitImmortalEmitter();
|
|
}
|
|
}
|
|
delete (MyScreen*)sScreen;
|
|
if (sScreen2 != NULL) {
|
|
delete (J2DScreen*)sScreen2;
|
|
}
|
|
#if VERSION >= VERSION_USA
|
|
if (dMsg_font_flag != 0) {
|
|
mDoExt_removeRubyFont();
|
|
} else {
|
|
mDoExt_removeMesgFont();
|
|
}
|
|
#else
|
|
mDoExt_removeMesgFont();
|
|
mDoExt_removeRubyFont();
|
|
#endif
|
|
for (s32 i = 0; i < 8; i++) {
|
|
delete (J2DPicture*)button_icon[i];
|
|
delete (J2DPicture*)button_kage[i];
|
|
}
|
|
delete (J2DPicture*)arrowPane;
|
|
delete (J2DPicture*)maskPane;
|
|
for (s32 i = 0; i < 3; i++) {
|
|
delete (J2DTextBox*)numberPane[i];
|
|
}
|
|
i_Msg->mpHeap->free(i_Msg->output_text);
|
|
i_Msg->mpHeap->free(i_Msg->output_rub);
|
|
i_Msg->mpHeap->free(i_Msg->output_textSdw);
|
|
i_Msg->mpHeap->free(i_Msg->output_rubSdw);
|
|
i_Msg->mpHeap->free(i_Msg->select_text);
|
|
i_Msg->mpHeap->free(i_Msg->select_rub);
|
|
i_Msg->mpHeap->free(i_Msg->select_textSdw);
|
|
i_Msg->mpHeap->free(i_Msg->select_rubSdw);
|
|
agb_work_area = 0;
|
|
if (i_Msg->buffer_p != NULL) {
|
|
i_Msg->mpHeap->free(i_Msg->buffer_p);
|
|
}
|
|
dComIfGp_getMsgArchive()->removeResourceAll();
|
|
i_Msg->mpHeap->freeAll();
|
|
dComIfGp_offHeapLockFlag();
|
|
mDoExt_setCurrentHeap(pJVar1);
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80215698-80215CD0 .text dMsg_Create__FP9msg_class */
|
|
static cPhs_State dMsg_Create(msg_class* i_this) {
|
|
/* Nonmatching */
|
|
sub_msg_class* i_Msg = (sub_msg_class*)i_this;
|
|
JKRHeap* pJVar2;
|
|
|
|
if ((dComIfGp_isHeapLockFlag() != 0) && (dComIfGp_isHeapLockFlag() != 7)) {
|
|
return cPhs_INIT_e;
|
|
}
|
|
i_Msg->mpHeap = dComIfGp_getExpHeap2D();
|
|
dComIfGp_setHeapLockFlag(7);
|
|
pJVar2 = mDoExt_setCurrentHeap(i_Msg->mpHeap);
|
|
if ((i_Msg->mMsgNo >= 0xc6) && (i_Msg->mMsgNo <= 0xcd)) {
|
|
i_Msg->head_p = i_Msg->mMsgGet.getMesgHeader(dComIfGs_getTriforceNum() + 0xC6);
|
|
} else {
|
|
i_Msg->head_p = i_Msg->mMsgGet.getMesgHeader(i_Msg->mMsgNo);
|
|
}
|
|
JUT_ASSERT(5416, i_Msg->head_p);
|
|
i_Msg->mpMesgStr = (char*)i_Msg->mMsgGet.getMessage(i_Msg->head_p);
|
|
i_Msg->mMesgEntry = i_Msg->mMsgGet.getMesgEntry(i_Msg->head_p);
|
|
i_Msg->mMsgID = i_Msg->mMsgGet.mGroupID << 8 | i_Msg->mMsgGet.mResMsgNo;
|
|
i_Msg->mMesgCameraTagInfo = dComIfGp_getMesgCameraTagInfo();
|
|
dMsg_screenDataSet(i_Msg);
|
|
for (s32 i = 0; i < 8; i++) {
|
|
button_icon[i] = new J2DPicture("font_07_02.bti");
|
|
button_kage[i] = new J2DPicture("font_07_02.bti");
|
|
fopMsgM_blendInit(button_icon[i], "font_00.bti");
|
|
fopMsgM_blendInit(button_kage[i], "font_00.bti");
|
|
button_icon[i]->hide();
|
|
button_kage[i]->hide();
|
|
button_icon[i]->setAlpha(0);
|
|
button_kage[i]->setAlpha(0);
|
|
buttonTimer[i] = -1;
|
|
}
|
|
arrowPane = new J2DPicture("font_10.bti");
|
|
i_Msg->output_text = (char*)i_Msg->mpHeap->alloc(0x385, 4);
|
|
JUT_ASSERT(5444, i_Msg->output_text != NULL);
|
|
i_Msg->output_rub = (char*)i_Msg->mpHeap->alloc(0x385, 4);
|
|
JUT_ASSERT(5447, i_Msg->output_rub != NULL);
|
|
i_Msg->output_textSdw = (char*)i_Msg->mpHeap->alloc(0x385, 4);
|
|
JUT_ASSERT(5450, i_Msg->output_textSdw != NULL);
|
|
i_Msg->output_rubSdw = (char*)i_Msg->mpHeap->alloc(0x385, 4);
|
|
JUT_ASSERT(5453, i_Msg->output_rubSdw != NULL);
|
|
i_Msg->select_text = (char*)i_Msg->mpHeap->alloc(0x65, 4);
|
|
JUT_ASSERT(5456, i_Msg->select_text != NULL);
|
|
i_Msg->select_rub = (char*)i_Msg->mpHeap->alloc(0x65, 4);
|
|
JUT_ASSERT(5459, i_Msg->select_rub != NULL);
|
|
i_Msg->select_textSdw = (char*)i_Msg->mpHeap->alloc(0x65, 4);
|
|
JUT_ASSERT(5462, i_Msg->select_textSdw != NULL);
|
|
i_Msg->select_rubSdw = (char*)i_Msg->mpHeap->alloc(0x65, 4);
|
|
JUT_ASSERT(5465, i_Msg->select_rubSdw != NULL);
|
|
agb_work_area = i_Msg->mpHeap;
|
|
JUT_ASSERT(5468, agb_work_area != NULL);
|
|
i_Msg->mStatus = fopMsgStts_MSG_PREPARING_e;
|
|
i_Msg->m1164 = -1;
|
|
dMsg_value_init(i_Msg);
|
|
dMsg_setString(i_Msg);
|
|
i_Msg->m116A = 0;
|
|
dComIfGp_setMesgSendButton(i_Msg->m116A);
|
|
dComIfGp_setMesgCancelButton(0);
|
|
mDoExt_setCurrentHeap(pJVar2);
|
|
message.field_0x4 = i_Msg;
|
|
dComIfGp_setMesgStatus(i_Msg->mStatus);
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
/* 80215CD0-80215D2C .text __dt__14dDlst_2Dtact_cFv */
|
|
dDlst_2Dtact_c::~dDlst_2Dtact_c() {
|
|
}
|
|
|
|
/* 80215D2C-80215D88 .text __dt__13dDlst_2DMSG_cFv */
|
|
dDlst_2DMSG_c::~dDlst_2DMSG_c() {
|
|
}
|
|
|
|
static msg_method_class l_dMsg_Method = {
|
|
(process_method_func)dMsg_Create,
|
|
(process_method_func)dMsg_Delete,
|
|
(process_method_func)dMsg_Execute,
|
|
(process_method_func)dMsg_IsDelete,
|
|
(process_method_func)dMsg_Draw
|
|
};
|
|
|
|
msg_process_profile_definition g_profile_MSG = {
|
|
/* LayerID */ fpcLy_CURRENT_e,
|
|
/* ListID */ 12,
|
|
/* ListPrio */ fpcPi_CURRENT_e,
|
|
/* ProcName */ PROC_MSG,
|
|
/* Proc SubMtd */ &g_fpcLf_Method.base,
|
|
/* Size */ sizeof(sub_msg_class),
|
|
/* SizeOther */ 0,
|
|
/* Parameters */ 0,
|
|
/* Leaf SubMtd */ &g_fopMsg_Method,
|
|
/* Priority */ PRIO_MSG,
|
|
/* Msg SubMtd */ &l_dMsg_Method,
|
|
};
|