summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-07-02 17:43:07 -0700
committerGitHub <noreply@github.com>2026-07-02 20:43:07 -0400
commitf93c5ba62c18e7ae593fa034a6d0bd52bc95e55e (patch)
tree3b5e95ae011585279136d26e22610ad2e881946c /src/d
parent873bb82e00fc8ee3a77eeebf50eafd5718a6f715 (diff)
d_message mostly done (#1097)
* d_message mostly done * fopMsgM_selectMessageGet fix
Diffstat (limited to 'src/d')
-rw-r--r--src/d/d_drawlist.cpp4
-rw-r--r--src/d/d_menu_option.cpp28
-rw-r--r--src/d/d_message.cpp1190
-rw-r--r--src/d/d_meter.cpp121
-rw-r--r--src/d/d_msg.cpp174
5 files changed, 1268 insertions, 249 deletions
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp
index 44f82250..6f8a0ed0 100644
--- a/src/d/d_drawlist.cpp
+++ b/src/d/d_drawlist.cpp
@@ -533,8 +533,8 @@ void dDlst_2Dm_c::draw() {
GXLoadTlut(&mTex[1].mTlutObj, GXGetTexObjTlut(&mTex[1].mTexObj));
GXSetNumChans(0);
- GXSetTevColor(GX_TEVREG0, mC0);
- GXSetTevColor(GX_TEVREG1, mC1);
+ GXSetTevColor(GX_TEVREG0, mBlack);
+ GXSetTevColor(GX_TEVREG1, mWhite);
GXSetNumTexGens(2);
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
diff --git a/src/d/d_menu_option.cpp b/src/d/d_menu_option.cpp
index f98ffc4c..19cf9eb8 100644
--- a/src/d/d_menu_option.cpp
+++ b/src/d/d_menu_option.cpp
@@ -665,29 +665,29 @@ void dMenu_Option_c::noteSet() {
msg_entry = msgGet.getMesgEntry(head_p);
msgDataProc.dataInit();
- msgDataProc.field_0x3C = mesg;
+ msgDataProc.bmgData = mesg;
msgDataProc.setOutMessage(mD38, mD3C, mD40, mD44);
msgDataProc.font[0] = mD2C;
msgDataProc.font[1] = mD30;
- msgDataProc.field_0x11C = ((J2DTextBox*)m740[0].pane)->getCharSpace();
- msgDataProc.field_0x124 = ((J2DTextBox*)m740[1].pane)->getCharSpace();
- msgDataProc.field_0x120 = ((J2DTextBox*)m740[0].pane)->getLineSpace();
- msgDataProc.field_0x0C = &msg_entry;
- msgDataProc.field_0x144 = f31;
- msgDataProc.field_0x14C = f30;
- msgDataProc.field_0x128 = 0x1D0;
- msgDataProc.field_0x12C = 0x1D0;
- msgDataProc.field_0x160 = 2;
- msgDataProc.field_0x15C = 0;
+ msgDataProc.charSpace = ((J2DTextBox*)m740[0].pane)->getCharSpace();
+ msgDataProc.rubyCharSpace = ((J2DTextBox*)m740[1].pane)->getCharSpace();
+ msgDataProc.lineSpace = ((J2DTextBox*)m740[0].pane)->getLineSpace();
+ msgDataProc.mesgEntry = &msg_entry;
+ msgDataProc.fontSize = f31;
+ msgDataProc.rubyFontSize = f30;
+ msgDataProc.lineWidth = 0x1D0;
+ msgDataProc.centerLineWidth = 0x1D0;
+ msgDataProc.sendSpeed = 2;
+ msgDataProc.spaceTimer = 0;
msgDataProc.field_0x299 = 1;
- msgDataProc.field_0x29C = 0;
+ msgDataProc.spaceFlag = 0;
msgDataProc.stringLength();
msgDataProc.stringShift();
msgDataProc.iconIdxRefresh();
- s16 r26 = msgDataProc.field_0x130;
- msgDataProc.field_0x130 = 0;
+ s16 r26 = msgDataProc.lineCount;
+ msgDataProc.lineCount = 0;
msgDataProc.stringSet();
f32 f30_2 = (m740[0].pane->getHeight() - f31 - (f32)r26 * ((J2DTextBox*)m740[0].pane)->getLineSpace()) / 2.0f;
((J2DTextBox*)m740[0].pane)->shiftSet(0.0f, f30_2);
diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp
index 923f3d4f..827966ed 100644
--- a/src/d/d_message.cpp
+++ b/src/d/d_message.cpp
@@ -1,228 +1,1238 @@
-//
-// Generated by dtk
-// Translation Unit: d_message.cpp
-//
-
#include "d/dolzel.h" // IWYU pragma: keep
#include "d/d_message.h"
+#include "d/d_meter.h"
+#include "d/d_kankyo.h"
+#include "d/d_s_play.h"
#include "f_op/f_op_msg.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/J2DGraph/J2DOrthoGraph.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "m_Do/m_Do_controller_pad.h"
+#include "stdio.h"
+
+void dMsg2_messageDataInit(sub_msg2_class* i_Msg, int);
+void dMsg2_textPosition(sub_msg2_class* i_Msg, u8 i_index);
+void dMsg2_yose_select(sub_msg2_class* i_Msg, u8 i_index);
+void dMsg2_setCharAlpha(sub_msg2_class* i_Msg, u8 i_index);
+u8 dMsg2_aimBrightness();
+
+static int dMsg2_popSpeed;
+static J2DScreen* sScreen2[3];
+static J2DPicture* bbutton_icon[8][3];
+static J2DPicture* bbutton_kage[8][3];
+static s16 bbuttonTimer[8][3];
+static dDlst_2DMSG2_c message;
+static dDlst_2Dm_c board;
+static dDlst_2DCopy_c capture;
+
+static u8 dMsg2_tex_i4_color[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x02, 0x02, 0x02, 0x03, 0x04, 0x06, 0x07, 0x09, 0x0b, 0x0d, 0x0f, 0x12, 0x16, 0x1c, 0x22, 0x2a, 0x32, 0x39,
+ 0x41, 0x4b, 0x54, 0x5e, 0x67, 0x72, 0x7c, 0x87, 0x8f, 0x98, 0xa2, 0xac, 0xb3, 0xbb, 0xc2, 0xca, 0xd0, 0xd8, 0xdd, 0xe1, 0xe7, 0xea, 0xee, 0xf1,
+ 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfe, 0xfd, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xfd,
+ 0xfd, 0xfb, 0xfb, 0xf9, 0xf7, 0xf5, 0xf3, 0xf1, 0xee, 0xea, 0xe7, 0xe1, 0xdd, 0xd8, 0xd0, 0xc9, 0xc2, 0xbc, 0xb3, 0xab, 0xa2, 0x99, 0x8f, 0x87,
+ 0x7c, 0x72, 0x68, 0x5e, 0x54, 0x4a, 0x41, 0x3a, 0x32, 0x2a, 0x22, 0x1d, 0x15, 0x12, 0x0f, 0x0d, 0x0b, 0x09, 0x07, 0x05, 0x04, 0x04, 0x03, 0x02,
+};
/* 801E73B4-801E74F4 .text dMsg2_value_init__FP14sub_msg2_classUc */
-void dMsg2_value_init(sub_msg2_class*, u8) {
- /* Nonmatching */
+// NONMATCHING - weird stuff with color OR'ing
+void dMsg2_value_init(sub_msg2_class* i_Msg, u8 i_index) {
+ static const u32 colorTable[] = {
+ 0x00000000,
+ 0xB4000000,
+ 0x82828200,
+ 0x0000AA00,
+ 0xF0F01E00,
+ 0x82FFFF00,
+ 0x6400FF00,
+ 0x50505000,
+ 0xFFB40000,
+ };
+
+ char text_buf[32];
+ char textSdw_buf[32];
+ char ruby_buf[32];
+ char rubySdw_buf[32];
+
+ const u32 color = colorTable[i_Msg->colorNo];
+ int i = i_index;
+
+ int temp_r5 = i_Msg->msgDataProc[i].getRGradAlpha();
+ int temp_r6 = i_Msg->msgDataProc[i].getRCharAlpha();
+ int var_r30 = i_Msg->msgDataProc[i].getGradAlpha();
+ int var_r29 = i_Msg->msgDataProc[i].getCharAlpha();
+
+ u32 temp_a = color | temp_r5;
+ u32 temp_b = color | temp_r6;
+ u32 temp_c = color | var_r30;
+ u32 temp_d = color | var_r29;
+
+ sprintf(text_buf, "\x1b""CC[%08x]\x1bGC[%08x]", temp_a, temp_b);
+ sprintf(ruby_buf, "\x1b""CC[%08x]\x1bGC[%08x]", temp_c, temp_d);
+ sprintf(textSdw_buf, "\x1b""CC[%08x]\x1bGC[%08x]", temp_r5, temp_r6);
+ sprintf(rubySdw_buf, "\x1b""CC[%08x]\x1bGC[%08x]", var_r30, var_r29);
+
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ strcpy(i_Msg->output_text[i], text_buf);
+ strcpy(i_Msg->output_ruby[i], ruby_buf);
+ strcpy(i_Msg->output_textSdw[i], textSdw_buf);
+ strcpy(i_Msg->output_rubySdw[i], rubySdw_buf);
+
+ mDoExt_setCurrentHeap(heap);
}
/* 801E74F4-801E75A8 .text dMsg2_setString__FP14sub_msg2_classUc */
-void dMsg2_setString(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_setString(sub_msg2_class* i_Msg, u8 i_index) {
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setString(i_Msg->output_text[i_index]);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->setString(i_Msg->output_ruby[i_index]);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setString(i_Msg->output_textSdw[i_index]);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->setString(i_Msg->output_rubySdw[i_index]);
+
+ mDoExt_setCurrentHeap(heap);
}
/* 801E75A8-801E75CC .text dMsg2_messagePaneShow__FP14sub_msg2_classUc */
-void dMsg2_messagePaneShow(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_messagePaneShow(sub_msg2_class* i_Msg, u8 i_index) {
+ i_Msg->text_pane[i_index].pane->show();
+ i_Msg->ruby_pane[i_index].pane->show();
}
/* 801E75CC-801E75F0 .text dMsg2_messagePaneHide__FP14sub_msg2_classUc */
-void dMsg2_messagePaneHide(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_messagePaneHide(sub_msg2_class* i_Msg, u8 i_index) {
+ i_Msg->text_pane[i_index].pane->hide();
+ i_Msg->ruby_pane[i_index].pane->hide();
}
/* 801E75F0-801E76DC .text dMsg2_outFontHide__FP14sub_msg2_classUc */
-void dMsg2_outFontHide(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_outFontHide(sub_msg2_class* i_Msg, u8 i_index) {
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ for (int i = 0; i < 8; i++) {
+ bbutton_icon[i][i_index]->hide();
+ bbutton_kage[i][i_index]->hide();
+
+ bbutton_icon[i][i_index]->rotate(0.0f);
+ bbutton_kage[i][i_index]->rotate(0.0f);
+
+ bbuttonTimer[i][i_index] = -1;
+ }
+
+ mDoExt_setCurrentHeap(heap);
}
/* 801E76DC-801E7714 .text dMsg2_arrowUpShow__FP14sub_msg2_class */
-void dMsg2_arrowUpShow(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_arrowUpShow(sub_msg2_class* i_Msg) {
+ fopMsgM_setInitAlpha(&i_Msg->field_0xbb0);
+ fopMsgM_setInitAlpha(&i_Msg->field_0xbe8);
}
/* 801E7714-801E774C .text dMsg2_arrowUpHide__FP14sub_msg2_class */
-void dMsg2_arrowUpHide(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_arrowUpHide(sub_msg2_class* i_Msg) {
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xbb0);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xbe8);
}
/* 801E774C-801E7784 .text dMsg2_arrowDownShow__FP14sub_msg2_class */
-void dMsg2_arrowDownShow(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_arrowDownShow(sub_msg2_class* i_Msg) {
+ fopMsgM_setInitAlpha(&i_Msg->field_0xc20);
+ fopMsgM_setInitAlpha(&i_Msg->field_0xc58);
}
/* 801E7784-801E77BC .text dMsg2_arrowDownHide__FP14sub_msg2_class */
-void dMsg2_arrowDownHide(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_arrowDownHide(sub_msg2_class* i_Msg) {
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc20);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc58);
}
/* 801E77BC-801E77F4 .text dMsg2_dotShow__FP14sub_msg2_class */
-void dMsg2_dotShow(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_dotShow(sub_msg2_class* i_Msg) {
+ fopMsgM_setInitAlpha(&i_Msg->field_0xc90);
+ fopMsgM_setInitAlpha(&i_Msg->field_0xcc8);
}
/* 801E77F4-801E782C .text dMsg2_dotHide__FP14sub_msg2_class */
-void dMsg2_dotHide(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_dotHide(sub_msg2_class* i_Msg) {
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc90);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xcc8);
}
/* 801E782C-801E79B4 .text dMsg2_multiTexInit__FP14sub_msg2_class */
-void dMsg2_multiTexInit(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_multiTexInit(sub_msg2_class* i_Msg) {
+ JKRReadTypeResource(i_Msg->Tex[0], 0x11800, 'TIMG', "hukidashi_0212.bti", dComIfGp_getMsgArchive());
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(i_Msg->Tex[0], 0x11800);
+#else
+ DCStoreRangeNoSync(i_Msg->Tex[0], 0x11800);
+#endif
+
+ if (i_Msg->mesgEntry.mTextboxType == 6) {
+ JKRReadTypeResource(i_Msg->Tex[1], 0x11800, 'TIMG', "hukidashi_06.bti", dComIfGp_getMsgArchive());
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(i_Msg->Tex[1], 0x11800);
+#else
+ DCStoreRangeNoSync(i_Msg->Tex[1], 0x11800);
+#endif
+ board.init(i_Msg->Tex[0], i_Msg->Tex[1], 1.0f, 1.0f);
+ } else if (i_Msg->mesgEntry.mTextboxType == 7) {
+ JKRReadTypeResource(i_Msg->Tex[1], 0x11800, 'TIMG', "hukidashi_07.bti", dComIfGp_getMsgArchive());
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(i_Msg->Tex[1], 0x11800);
+#else
+ DCStoreRangeNoSync(i_Msg->Tex[1], 0x11800);
+#endif
+ board.init(i_Msg->Tex[0], i_Msg->Tex[1], 1.0f, 1.0f);
+ } else {
+ JKRReadTypeResource(i_Msg->Tex[1], 0x11800, 'TIMG', "hukidashi_02.bti", dComIfGp_getMsgArchive());
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(i_Msg->Tex[1], 0x11800);
+#else
+ DCStoreRangeNoSync(i_Msg->Tex[1], 0x11800);
+#endif
+ board.init(i_Msg->Tex[0], i_Msg->Tex[1], 1.0f, 1.0f);
+ }
}
/* 801E79B4-801E7A74 .text dMsg2_fontdataInit__FP14sub_msg2_class */
-void dMsg2_fontdataInit(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_fontdataInit(sub_msg2_class* i_Msg) {
+ i_Msg->mx = mDoExt_getMesgFont();
+ JUT_ASSERT(VERSION_SELECT(555, 555, 555, 555), i_Msg->mx != NULL);
+
+ i_Msg->rx = mDoExt_getRubyFont();
+ JUT_ASSERT(VERSION_SELECT(557, 557, 558, 558), i_Msg->rx != NULL);
}
/* 801E7A74-801E7AB8 .text dMsg2_screenDataSet__FP14sub_msg2_classUc */
-void dMsg2_screenDataSet(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_screenDataSet(sub_msg2_class* i_Msg, u8 i_index) {
+ dMsg2_value_init(i_Msg, i_index);
+ dMsg2_setString(i_Msg, i_index);
}
/* 801E7AB8-801E8154 .text dMsg2_screenDataInit__FP14sub_msg2_classUc */
-void dMsg2_screenDataInit(sub_msg2_class*, u8) {
- /* Nonmatching */
+// NONMATCHING - some reg alloc
+void dMsg2_screenDataInit(sub_msg2_class* i_Msg, u8 i_index) {
+ fopMsgM_setPaneData(&i_Msg->text_pane[i_index], sScreen2[i_index]->search('tx23'));
+ fopMsgM_setPaneData(&i_Msg->ruby_pane[i_index], sScreen2[i_index]->search('tx29'));
+ fopMsgM_setPaneData(&i_Msg->textSdw_pane[i_index], sScreen2[i_index]->search('tx20'));
+ fopMsgM_setPaneData(&i_Msg->rubySdw_pane[i_index], sScreen2[i_index]->search('tx26'));
+
+ i_Msg->textSdw_pane[i_index].pane->hide();
+ i_Msg->rubySdw_pane[i_index].pane->hide();
+
+#if VERSION >= VERSION_USA
+ i_Msg->text_pane[i_index].mSizeOrig.y += 10.0f;
+ i_Msg->text_pane[i_index].mSize.y = i_Msg->text_pane[i_index].mSizeOrig.y;
+ fopMsgM_cposMove(&i_Msg->text_pane[i_index]);
+
+ i_Msg->textSdw_pane[i_index].mSizeOrig.y += 10.0f;
+ i_Msg->textSdw_pane[i_index].mSize.y = i_Msg->textSdw_pane[i_index].mSizeOrig.y;
+ fopMsgM_cposMove(&i_Msg->textSdw_pane[i_index]);
+#endif
+
+ fopMsgM_setPaneData(&i_Msg->field_0xd00[i_index], sScreen2[i_index]->search('ms22'));
+ fopMsgM_setPaneData(&i_Msg->field_0xda8[i_index], sScreen2[i_index]->search('ms20'));
+
+ sScreen2[i_index]->search('tx24')->hide();
+ sScreen2[i_index]->search('tx30')->hide();
+ sScreen2[i_index]->search('tx21')->hide();
+ sScreen2[i_index]->search('tx27')->hide();
+
+ ((J2DPicture*)i_Msg->field_0xd00[i_index].pane)->setWhite(0);
+ ((J2DPicture*)i_Msg->field_0xda8[i_index].pane)->setWhite(0);
+
+ if (i_index == 0) {
+ fopMsgM_setPaneData(&i_Msg->field_0xbb0, sScreen2[i_index]->search('yz21'));
+ fopMsgM_setPaneData(&i_Msg->field_0xc20, sScreen2[i_index]->search('yz20'));
+ fopMsgM_setPaneData(&i_Msg->field_0xc90, sScreen2[i_index]->search('dt20'));
+ fopMsgM_setPaneData(&i_Msg->field_0xbe8, sScreen2[i_index]->search('yz23'));
+ fopMsgM_setPaneData(&i_Msg->field_0xc58, sScreen2[i_index]->search('yz22'));
+ fopMsgM_setPaneData(&i_Msg->field_0xcc8, sScreen2[i_index]->search('dt21'));
+
+ ((J2DPicture*)i_Msg->field_0xbe8.pane)->setWhite(0x000000FF);
+ ((J2DPicture*)i_Msg->field_0xc58.pane)->setWhite(0x000000FF);
+ ((J2DPicture*)i_Msg->field_0xcc8.pane)->setWhite(0x000000FF);
+ } else {
+ sScreen2[i_index]->search('yz21')->hide();
+ sScreen2[i_index]->search('yz20')->hide();
+ sScreen2[i_index]->search('dt20')->hide();
+ sScreen2[i_index]->search('yz23')->hide();
+ sScreen2[i_index]->search('yz22')->hide();
+ sScreen2[i_index]->search('dt21')->hide();
+ }
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setFont(i_Msg->mx);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->setFont(i_Msg->rx);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setFont(i_Msg->mx);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->setFont(i_Msg->rx);
+
+ f32 var_f31;
+ J2DTextBox::TFontSize size;
+#if VERSION <= VERSION_JPN
+ if (!g_msgDHIO.field_0x08) {
+ size.mSizeX = (int)g_messageHIO.field_0x32;
+ size.mSizeY = (int)g_messageHIO.field_0x32;
+
+ J2DTextBox::TFontSize size2;
+ size2.mSizeX = g_msgHIO.field_0x68;
+ size2.mSizeY = g_msgHIO.field_0x68;
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setFontSize(size);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->setFontSize(size2);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setFontSize(size);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->setFontSize(size2);
+ } else {
+ size.mSizeX = g_msgHIO.field_0x70;
+ size.mSizeY = g_msgHIO.field_0x70;
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setFontSize(size);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setFontSize(size);
+ }
+#else
+ size.mSizeX = g_msgHIO.field_0x70;
+ size.mSizeY = g_msgHIO.field_0x70;
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setFontSize(size);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setFontSize(size);
+#endif
+
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setCharSpace(0.0f);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->setCharSpace(0.0f);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setCharSpace(0.0f);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->setCharSpace(0.0f);
+
+#if VERSION <= VERSION_JPN
+ if (!g_msgDHIO.field_0x08) {
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setLineSpace(42.0f);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->setLineSpace(42.0f);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setLineSpace(42.0f);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->setLineSpace(42.0f);
+ } else {
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setLineSpace(g_msgHIO.field_0x5e);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setLineSpace(g_msgHIO.field_0x5e);
+ }
+#else
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->setLineSpace(g_msgHIO.field_0x5e);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->setLineSpace(g_msgHIO.field_0x5e);
+#endif
+
+ i_Msg->field_0xeb4 = size.mSizeX;
+ i_Msg->field_0xeb8 = var_f31;
}
/* 801E8154-801E8260 .text dMsg2_ScreenDataValueInit__FP14sub_msg2_class */
-void dMsg2_ScreenDataValueInit(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_ScreenDataValueInit(sub_msg2_class* i_Msg) {
+ J2DPane* pane = i_Msg->text_pane[0].pane;
+ i_Msg->field_0xeb0 = ((J2DTextBox*)pane)->getLineSpace() / 2;
+ i_Msg->field_0xe94 = pane->getHeight() + g_messageHIO.field_0x3c;
+
+ fopMsgM_paneTrans(&i_Msg->text_pane[0], 0.0f, 0.0f);
+ fopMsgM_paneTrans(&i_Msg->text_pane[1], 0.0f, i_Msg->field_0xe94);
+ fopMsgM_paneTrans(&i_Msg->text_pane[2], 0.0f, -i_Msg->field_0xe94);
+
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xbb0);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xbe8);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc20);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc58);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xc90);
+ fopMsgM_setNowAlphaZero(&i_Msg->field_0xcc8);
+
+ for (int i = 0; i < 3; i++) {
+ dMsg2_messageDataInit(i_Msg, i);
+ }
}
/* 801E8260-801E82B8 .text dMsg2_stickInfoInit__FP14sub_msg2_class */
-void dMsg2_stickInfoInit(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_stickInfoInit(sub_msg2_class* i_Msg) {
+ if (CPad_GET_STICK_POS_Y(0) > 0.7f || CPad_GET_STICK_POS_Y(3) > 0.7f) {
+ i_Msg->field_0xedd = 1;
+ } else if (CPad_GET_STICK_POS_Y(0) < 0.7f || CPad_GET_STICK_POS_Y(3) < 0.7f) {
+ i_Msg->field_0xedd = 2;
+ } else {
+ i_Msg->field_0xedd = 0;
+ }
}
/* 801E82B8-801E833C .text dMsg2_stickInfoCheck__FP14sub_msg2_class */
-void dMsg2_stickInfoCheck(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_stickInfoCheck(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xedd == 1) {
+ if (CPad_GET_STICK_POS_Y(0) <= 0.0f || CPad_GET_STICK_POS_Y(3) <= 0.0f) {
+ i_Msg->field_0xedd = 0;
+ }
+ } else if (i_Msg->field_0xedd == 2) {
+ if (CPad_GET_STICK_POS_Y(0) >= 0.0f || CPad_GET_STICK_POS_Y(3) >= 0.0f) {
+ i_Msg->field_0xedd = 0;
+ }
+ }
}
/* 801E833C-801E84E8 .text dMsg2_multiTexDraw__FP14sub_msg2_classssss */
-void dMsg2_multiTexDraw(sub_msg2_class*, s16, s16, s16, s16) {
- /* Nonmatching */
+void dMsg2_multiTexDraw(sub_msg2_class* i_Msg, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
+ f32 var_f31 = (i_Msg->field_0xeac * g_messageHIO.field_0x5b) / 255.0f;
+
+ board.setPos(param_1, param_2, param_1 + param_3, param_2 + param_4);
+
+ if (i_Msg->mesgEntry.mTextboxType == 7) {
+ board.setBlackColor((GXColor){0xFF, 0xFF, 0xFF, 0xFF});
+ board.setWhiteColor((GXColor){0x00, 0x00, 0x00, 0x00});
+ } else {
+ board.setBlackColor((GXColor){0xF0, 0xF0, 0xF0, 0xDC});
+ board.setWhiteColor((GXColor){0x78, 0x78, 0x8C, 0x00});
+ }
+
+ board.setAlpha(var_f31);
+ board.setScroll(0, 0, 0);
+ board.setScroll(1, 0, i_Msg->field_0xec8);
+ dComIfGd_set2DOpa(&board);
}
/* 801E84E8-801E8668 .text dMsg2_messageOut__FP14sub_msg2_classUci */
-void dMsg2_messageOut(sub_msg2_class*, u8, int) {
- /* Nonmatching */
+void dMsg2_messageOut(sub_msg2_class* i_Msg, u8 i_index, int i_aimLine) {
+ i_Msg->field_0xecc[i_index] = 0;
+ dMsg2_messagePaneShow(i_Msg, i_index);
+ dMsg2_messageDataInit(i_Msg, i_index);
+
+ i_Msg->msgDataProc[i_index].setCount(0);
+ i_Msg->msgDataProc[i_index].resetNowLine();
+ i_Msg->msgDataProc[i_index].setAimLine(i_aimLine);
+ dMsg2_yose_select(i_Msg, i_index);
+ i_Msg->msgDataProc[i_index].shortCut();
+ dMsg2_setCharAlpha(i_Msg, i_index);
+ i_Msg->msgDataProc[i_index].stringSet();
+
+ for (int i = 0; i < 8; i++) {
+ u8 var_r30 = i_Msg->msgDataProc[i_index].getIconNum(i);
+ u32 var_r29 = i_Msg->msgDataProc[i_index].get_0x220(i);
+
+ if (var_r30 != 0xFF && bbuttonTimer[i][i_index] == -1) {
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ if ((var_r30 == 10 || var_r30 == 11 || var_r30 == 12 || var_r30 == 13 || var_r30 == 0x15 || var_r30 == 0x17) && var_r29 == 0) {
+ var_r29 = -1;
+ }
+
+ fopMsgM_outFontSet(bbutton_icon[i][i_index], bbutton_kage[i][i_index], &bbuttonTimer[i][i_index], var_r29, var_r30);
+
+ mDoExt_setCurrentHeap(heap);
+ }
+ }
+
+ dMsg2_setString(i_Msg, i_index);
}
/* 801E8668-801E86E8 .text dMsg2_yose_select__FP14sub_msg2_classUc */
-void dMsg2_yose_select(sub_msg2_class*, u8) {
- /* Nonmatching */
+void dMsg2_yose_select(sub_msg2_class* i_Msg, u8 i_index) {
+ i_Msg->msgDataProc[i_index].count = i_Msg->msgDataProc[i_index].stringLength();
+ i_Msg->field_0xecc[i_index] = i_Msg->msgDataProc[i_index].lineCount;
+ i_Msg->msgDataProc[i_index].lineCount = 0;
+ i_Msg->msgDataProc[i_index].stringShift();
+ dMsg2_textPosition(i_Msg, i_index);
}
/* 801E86E8-801E8798 .text dMsg2_textPosition__FP14sub_msg2_classUc */
-void dMsg2_textPosition(sub_msg2_class*, u8) {
- /* Nonmatching */
+// NONMATCHING - small reg alloc
+void dMsg2_textPosition(sub_msg2_class* i_Msg, u8 i_index) {
+ int temp_r0 = i_Msg->field_0xeb0 * (3 - i_Msg->field_0xecc[i_index]);
+ ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->shiftSet(0.0f, temp_r0);
+ ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->shiftSet(0.0f, temp_r0);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i_index].pane)->shiftSet(0.0f, temp_r0);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i_index].pane)->shiftSet(0.0f, temp_r0);
}
/* 801E8798-801E880C .text dMsg2_rubySet__FP14sub_msg2_class */
-void dMsg2_rubySet(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_rubySet(sub_msg2_class* i_Msg) {
+ if (i_Msg->msg.mStatus == 5 || i_Msg->msg.mStatus == 6 || i_Msg->msg.mStatus == 7 || i_Msg->msg.mStatus == 10) {
+ for (int i = 0; i < 3; i++) {
+ if (!g_messageHIO.field_0x4b) {
+ i_Msg->ruby_pane[i].pane->hide();
+ } else {
+ i_Msg->ruby_pane[i].pane->show();
+ }
+ }
+ }
}
/* 801E880C-801E8994 .text dMsg2_arrowMove__FP14sub_msg2_class */
-void dMsg2_arrowMove(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_arrowMove(sub_msg2_class* i_Msg) {
+ i_Msg->field_0xebc++;
+ if (i_Msg->field_0xebc > 12) {
+ i_Msg->field_0xebc -= 12;
+ }
+
+ i_Msg->field_0xc20.pane->move(i_Msg->field_0xc20.mPosTopLeftOrig.x, (i_Msg->field_0xc20.mPosTopLeftOrig.y - 3.0f) - abs(6 - i_Msg->field_0xebc));
+ i_Msg->field_0xc58.pane->move(i_Msg->field_0xc20.mPosTopLeftOrig.x, (i_Msg->field_0xc20.mPosTopLeftOrig.y - 3.0f) - abs(6 - i_Msg->field_0xebc));
+ i_Msg->field_0xbb0.pane->move(i_Msg->field_0xbb0.mPosTopLeftOrig.x, (i_Msg->field_0xbb0.mPosTopLeftOrig.y - 3.0f) + abs(6 - i_Msg->field_0xebc));
+ i_Msg->field_0xbe8.pane->move(i_Msg->field_0xbb0.mPosTopLeftOrig.x, (i_Msg->field_0xbb0.mPosTopLeftOrig.y - 3.0f) + abs(6 - i_Msg->field_0xebc));
}
/* 801E8994-801E8A70 .text dMsg2_aimAlphaSqare__FP14sub_msg2_classii */
-void dMsg2_aimAlphaSqare(sub_msg2_class*, int, int) {
- /* Nonmatching */
+// NONMATCHING - float reg alloc
+void dMsg2_aimAlphaSqare(sub_msg2_class* i_Msg, int param_0, int param_1) {
+ if (param_1 < 0) {
+ param_1 = 0;
+ } else if (param_1 > param_0) {
+ param_1 = param_0;
+ }
+
+ i_Msg->field_0xea8 = 255.0f - (255.0f - dMsg2_aimBrightness()) * (((f32)param_1 * (f32)param_1) / ((f32)param_0 * (f32)param_0));
}
/* 801E8A70-801E8B90 .text dMsg2_aimAlphaSqrt__FP14sub_msg2_classii */
-void dMsg2_aimAlphaSqrt(sub_msg2_class*, int, int) {
- /* Nonmatching */
+void dMsg2_aimAlphaSqrt(sub_msg2_class* i_Msg, int param_0, int param_1) {
+ if (param_1 < 0) {
+ param_1 = 0;
+ } else if (param_1 > param_0) {
+ param_1 = param_0;
+ }
+
+ i_Msg->field_0xea8 = 255.0f - (255.0f - dMsg2_aimBrightness()) * std::sqrtf((f32)param_1 / (f32)param_0);
}
/* 801E8B90-801E8C2C .text dMsg2_kankyoBrightness__Fv */
-void dMsg2_kankyoBrightness() {
- /* Nonmatching */
+u8 dMsg2_kankyoBrightness() {
+ GXColorS10* difcol = dKy_Get_DifCol();
+ return (difcol->r * 0.299f) + (difcol->g * 0.587f) + (difcol->b * 0.114f);
}
/* 801E8C2C-801E8C78 .text dMsg2_aimBrightness__Fv */
-void dMsg2_aimBrightness() {
- /* Nonmatching */
+// NONMATCHING
+u8 dMsg2_aimBrightness() {
+ u32 brightness = dMsg2_kankyoBrightness();
+ return g_messageHIO.field_0x29 <= brightness ? 0xFF : 0xFF - (brightness - g_messageHIO.field_0x29);
}
/* 801E8C78-801E9054 .text dMsg2_setCharAlpha__FP14sub_msg2_classUc */
-void dMsg2_setCharAlpha(sub_msg2_class*, u8) {
- /* Nonmatching */
+// NONMATCHING - some float issues
+void dMsg2_setCharAlpha(sub_msg2_class* i_Msg, u8 i_index) {
+ int temp_r6 = ((J2DTextBox*)i_Msg->text_pane[0].pane)->getLineSpace();
+ f32 temp_f1 = i_Msg->field_0xd00[0].mPosTopLeftOrig.y - i_Msg->field_0xda8[0].mPosTopLeftOrig.y;
+
+ int var_r31 = i_index;
+ f32 temp_f2 = temp_f1 + i_Msg->text_pane[var_r31].mPosTopLeft.y + (i_Msg->field_0xeb0 * (2 - i_Msg->field_0xecc[i_index]));
+
+ int temp_r27 = (temp_r6 * i_Msg->field_0xecc[i_index]);
+ int var_r26 = (int)temp_f2 + temp_r27;
+ int var_r30 = (int)(temp_f2 - g_messageHIO.field_0x38);
+ int var_r29 = var_r30 + temp_r27;
+
+ if (var_r26 < 58) {
+ int temp_r3 = var_r26 + i_Msg->mx->getHeight();
+ if (var_r26 >= 0) {
+ i_Msg->field_0xedf[0][var_r31] = dMsg2_tex_i4_color[var_r26];
+ } else {
+ i_Msg->field_0xedf[0][var_r31] = 0;
+ }
+
+ if (temp_r3 >= 0) {
+ i_Msg->field_0xedf[1][var_r31] = dMsg2_tex_i4_color[temp_r3];
+ } else {
+ i_Msg->field_0xedf[1][var_r31] = 0;
+ }
+ } else if (temp_r27 > 187) {
+ int temp_r3 = temp_r27 + i_Msg->mx->getHeight();
+ if (temp_r27 <= 239) {
+ i_Msg->field_0xedf[0][var_r31] = dMsg2_tex_i4_color[temp_r27];
+ } else {
+ i_Msg->field_0xedf[0][var_r31] = 0;
+ }
+
+ if (temp_r3 <= 239) {
+ i_Msg->field_0xedf[1][var_r31] = dMsg2_tex_i4_color[temp_r3];
+ } else {
+ i_Msg->field_0xedf[1][var_r31] = 0;
+ }
+ } else {
+ i_Msg->field_0xedf[0][var_r31] = 0xFF;
+ i_Msg->field_0xedf[1][var_r31] = 0xFF;
+ }
+
+ if (var_r29 < 58) {
+ int temp_r3 = var_r29 + i_Msg->rx->getHeight();
+ if (var_r29 >= 0) {
+ i_Msg->field_0xedf[2][var_r31] = dMsg2_tex_i4_color[var_r29];
+ } else {
+ i_Msg->field_0xedf[2][var_r31] = 0;
+ }
+
+ if (temp_r3 >= 0) {
+ i_Msg->field_0xedf[3][var_r31] = dMsg2_tex_i4_color[temp_r3];
+ } else {
+ i_Msg->field_0xedf[3][var_r31] = 0;
+ }
+ } else if (var_r30 > 187) {
+ int temp_r3 = var_r30 + i_Msg->rx->getHeight();
+ if (var_r30 <= 239) {
+ i_Msg->field_0xedf[2][var_r31] = dMsg2_tex_i4_color[var_r30];
+ } else {
+ i_Msg->field_0xedf[2][var_r31] = 0;
+ }
+
+ if (temp_r3 <= 239) {
+ i_Msg->field_0xedf[3][var_r31] = dMsg2_tex_i4_color[temp_r3];
+ } else {
+ i_Msg->field_0xedf[3][var_r31] = 0;
+ }
+ } else {
+ i_Msg->field_0xedf[2][var_r31] = 0xFF;
+ i_Msg->field_0xedf[3][var_r31] = 0xFF;
+ }
+
+ if (i_Msg->field_0xedf[0][var_r31] > (u8)i_Msg->field_0xeac) {
+ i_Msg->field_0xedf[0][var_r31] = i_Msg->field_0xeac;
+ }
+
+ if (i_Msg->field_0xedf[1][var_r31] > (u8)i_Msg->field_0xeac) {
+ i_Msg->field_0xedf[1][var_r31] = i_Msg->field_0xeac;
+ }
+
+ if (i_Msg->field_0xedf[2][var_r31] > (u8)i_Msg->field_0xeac) {
+ i_Msg->field_0xedf[2][var_r31] = i_Msg->field_0xeac;
+ }
+
+ if (i_Msg->field_0xedf[3][var_r31] > (u8)i_Msg->field_0xeac) {
+ i_Msg->field_0xedf[3][var_r31] = i_Msg->field_0xeac;
+ }
+
+ i_Msg->msgDataProc[var_r31].setCharAlpha(i_Msg->field_0xedf[0][var_r31],
+ i_Msg->field_0xedf[1][var_r31],
+ i_Msg->field_0xedf[2][var_r31],
+ i_Msg->field_0xedf[3][var_r31]);
}
/* 801E9054-801E9108 .text dMsg2_messageShow__FP14sub_msg2_class */
-void dMsg2_messageShow(sub_msg2_class*) {
- /* Nonmatching */
+void dMsg2_messageShow(sub_msg2_class* i_Msg) {
+ for (u8 i = 0; i < 3; i++) {
+ dMsg2_screenDataSet(i_Msg, i);
+ }
+
+ if (i_Msg->field_0xec4 > 0) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9c, i_Msg->field_0xec4 - i_Msg->mesgEntry.field_0x16);
+ }
+
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9d, i_Msg->field_0xec4);
+
+ if (i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus() == 7) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9e, i_Msg->field_0xec4 + i_Msg->mesgEntry.field_0x16);
+ }
}
/* 801E9108-801E9254 .text dMsg2_messageDataInit__FP14sub_msg2_classi */
-void dMsg2_messageDataInit(sub_msg2_class*, int) {
- /* Nonmatching */
+void dMsg2_messageDataInit(sub_msg2_class* i_Msg, int i_index) {
+ f32 char_space = ((J2DTextBox*)i_Msg->text_pane[i_index].pane)->getCharSpace();
+ f32 ruby_space = ((J2DTextBox*)i_Msg->ruby_pane[i_index].pane)->getCharSpace();
+
+ i_Msg->msgDataProc[i_index].dataInit();
+ i_Msg->msgDataProc[i_index].setBmgData(i_Msg->message);
+
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+ i_Msg->msgDataProc[i_index].setOutMessage(i_Msg->output_text[i_index], i_Msg->output_ruby[i_index], i_Msg->output_textSdw[i_index], i_Msg->output_rubySdw[i_index]);
+ mDoExt_setCurrentHeap(heap);
+
+ i_Msg->msgDataProc[i_index].setFont(i_Msg->mx);
+ i_Msg->msgDataProc[i_index].setRubyFont(i_Msg->rx);
+ i_Msg->msgDataProc[i_index].setCharSpace(char_space);
+ i_Msg->msgDataProc[i_index].setRubyCharSpace(ruby_space);
+ i_Msg->msgDataProc[i_index].setLineSpace(((J2DTextBox*)i_Msg->text_pane[i_index].pane)->getLineSpace());
+ i_Msg->msgDataProc[i_index].setMesgEntry(&i_Msg->mesgEntry);
+ i_Msg->msgDataProc[i_index].setFontSize(i_Msg->field_0xeb4);
+ i_Msg->msgDataProc[i_index].setRubyFontSize(i_Msg->field_0xeb8);
+ i_Msg->msgDataProc[i_index].setLineWidth(503);
+ i_Msg->msgDataProc[i_index].setCenterLineWidth(486);
+ i_Msg->msgDataProc[i_index].setSpaceFlagOff();
}
/* 801E9254-801E93B4 .text dMsg2_stopProc__FP14sub_msg2_class */
-void dMsg2_stopProc(sub_msg2_class*) {
- /* Nonmatching */
+// NONMATCHING - instruction order, missing inline?
+int dMsg2_stopProc(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xedd == 0) {
+ if (CPad_GET_STICK_POS_Y(0) > 0.7f || CPad_GET_STICK_POS_Y(3) > 0.7f) {
+ if (i_Msg->field_0xec4 != 0) {
+ i_Msg->field_0xedd = 1;
+ dMsg2_screenDataSet(i_Msg, i_Msg->field_0xe9e);
+ i_Msg->field_0xec0 = 3;
+ i_Msg->field_0xec4 -= i_Msg->mesgEntry.field_0x16;
+ i_Msg->msg.mStatus = 5;
+ mDoAud_seStart(JA_SE_SCROLL_1, NULL);
+ }
+ } else if (CPad_CHECK_TRIG_A(0) || CPad_GET_STICK_POS_Y(0) < -0.7f || CPad_GET_STICK_POS_Y(3) < -0.7f) {
+ i_Msg->field_0xedd = 2;
+ dMsg2_screenDataSet(i_Msg, i_Msg->field_0xe9c);
+ i_Msg->field_0xec0 = 1;
+ i_Msg->field_0xec4 += i_Msg->mesgEntry.field_0x16;
+ i_Msg->msg.mStatus = 5;
+ mDoAud_seStart(JA_SE_SCROLL_1, NULL);
+ } else {
+ dMeter_Info.field_0x0 = 1;
+ }
+ } else {
+ dMsg2_stickInfoCheck(i_Msg);
+ }
+
+ return 1;
}
/* 801E93B4-801E94F0 .text dMsg2_closewaitProc__FP14sub_msg2_class */
-void dMsg2_closewaitProc(sub_msg2_class*) {
- /* Nonmatching */
+// NONMATCHING - instruction order, missing inline?
+int dMsg2_closewaitProc(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xedd == 0) {
+ if (CPad_GET_STICK_POS_Y(0) > 0.7f || CPad_GET_STICK_POS_Y(3) > 0.7f) {
+ if (i_Msg->field_0xec4 != 0) {
+ i_Msg->field_0xedd = 1;
+ dMsg2_screenDataSet(i_Msg, i_Msg->field_0xe9e);
+ i_Msg->field_0xec0 = 3;
+ i_Msg->field_0xec4 -= i_Msg->mesgEntry.field_0x16;
+ i_Msg->msg.mStatus = 5;
+ mDoAud_seStart(JA_SE_SCROLL_1, NULL);
+ }
+ } else if (CPad_CHECK_TRIG_A(0) || CPad_GET_STICK_POS_Y(0) < -0.7f || CPad_GET_STICK_POS_Y(3) < -0.7f) {
+ i_Msg->field_0xedd = 2;
+ mDoAud_seStart(JA_SE_TALK_WIN_CLOSE, NULL);
+ i_Msg->msg.mStatus = 16;
+ } else {
+ dMeter_Info.field_0x0 = 4;
+ }
+ } else {
+ dMsg2_stickInfoCheck(i_Msg);
+ }
+
+ return 1;
}
/* 801E94F0-801E9660 .text dMsg2_openProc__FP14sub_msg2_class */
-void dMsg2_openProc(sub_msg2_class*) {
- /* Nonmatching */
+int dMsg2_openProc(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xe98 == 0) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9d, i_Msg->field_0xec4);
+ if (i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus() == 7) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9e, i_Msg->field_0xec4 + i_Msg->mesgEntry.field_0x16);
+ }
+ } else if (i_Msg->field_0xe98 == dMsg2_popSpeed) {
+ i_Msg->msg.mStatus = i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus();
+ }
+
+ i_Msg->field_0xeac = fopMsgM_valueIncrease(dMsg2_popSpeed, i_Msg->field_0xe98, 0) * 255.0f;
+ if (i_Msg->field_0xe98 != 0) {
+ dMsg2_messageShow(i_Msg);
+ }
+
+ if (i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus() == 7) {
+ i_Msg->field_0xc20.mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->field_0xc58.mNowAlpha = i_Msg->field_0xeac;
+ } else {
+ i_Msg->field_0xc90.mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->field_0xcc8.mNowAlpha = i_Msg->field_0xeac;
+ }
+
+ dMsg2_aimAlphaSqrt(i_Msg, dMsg2_popSpeed, i_Msg->field_0xe98);
+ dComIfG_setBrightness(i_Msg->field_0xea8);
+ i_Msg->field_0xe98++;
+ return 1;
}
/* 801E9660-801E97EC .text dMsg2_closeProc__FP14sub_msg2_class */
-void dMsg2_closeProc(sub_msg2_class*) {
- /* Nonmatching */
+int dMsg2_closeProc(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xe98 == 0) {
+ for (u8 i = 0; i < 3; i++) {
+ dMsg2_messagePaneHide(i_Msg, i);
+ dMsg2_outFontHide(i_Msg, i);
+ }
+
+ JKRFileLoader::removeResource(i_Msg->head_p, NULL);
+ i_Msg->msg.mStatus = 0x12;
+ }
+
+ i_Msg->field_0xe98--;
+ if (i_Msg->field_0xe98 < 0) {
+ i_Msg->field_0xe98 = 0;
+ }
+
+ i_Msg->field_0xeac = fopMsgM_valueIncrease(dMsg2_popSpeed, i_Msg->field_0xe98, 0) * 255.0f;
+
+ if (i_Msg->field_0xbb0.mNowAlpha != 0) {
+ i_Msg->field_0xbb0.mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->field_0xbe8.mNowAlpha = i_Msg->field_0xeac;
+ }
+
+ if (i_Msg->field_0xc20.mNowAlpha != 0) {
+ i_Msg->field_0xc20.mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->field_0xc58.mNowAlpha = i_Msg->field_0xeac;
+ }
+
+ if (i_Msg->field_0xc90.mNowAlpha != 0) {
+ i_Msg->field_0xc90.mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->field_0xcc8.mNowAlpha = i_Msg->field_0xeac;
+ }
+
+ dMsg2_aimAlphaSqare(i_Msg, dMsg2_popSpeed, i_Msg->field_0xe98);
+ dComIfG_setBrightness(i_Msg->field_0xea8);
+ return 1;
}
/* 801E97EC-801E9C44 .text dMsg2_outwaitProc__FP14sub_msg2_class */
-void dMsg2_outwaitProc(sub_msg2_class*) {
- /* Nonmatching */
+// NONMATCHING - small load order issue
+int dMsg2_outwaitProc(sub_msg2_class* i_Msg) {
+ if (i_Msg->field_0xec0 == 1 || i_Msg->field_0xec0 == 2) {
+ i_Msg->field_0xec8 += 12;
+ } else if (i_Msg->field_0xec0 == 3 || i_Msg->field_0xec0 == 4) {
+ i_Msg->field_0xec8 -= 12;
+ }
+
+ if (i_Msg->field_0xec8 > 1020) {
+ i_Msg->field_0xec8 -= 2040;
+ } else if (i_Msg->field_0xec8 < -1020) {
+ i_Msg->field_0xec8 += 2040;
+ }
+
+ if (i_Msg->field_0xec0 == 1) {
+ int temp_r4 = i_Msg->field_0xe9c;
+
+ for (int i = 0; i < 3; i++) {
+ i_Msg->text_pane[i].mPosTopLeft.y -= 12.0f;
+ }
+
+ i_Msg->field_0xede -= 85;
+
+ if (i_Msg->text_pane[temp_r4].mPosTopLeft.y < -i_Msg->field_0xe94) {
+ i_Msg->field_0xec0 = 2;
+
+ u8 temp_r3 = i_Msg->field_0xe9d;
+ i_Msg->field_0xe9d = i_Msg->field_0xe9e;
+ i_Msg->field_0xe9e = i_Msg->field_0xe9c;
+ i_Msg->field_0xe9c = temp_r3;
+
+ if (i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus() == 7) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9e, i_Msg->field_0xec4 + i_Msg->mesgEntry.field_0x16);
+ } else {
+ dMsg2_messagePaneHide(i_Msg, i_Msg->field_0xe9e);
+ dMsg2_outFontHide(i_Msg, i_Msg->field_0xe9e);
+ }
+
+ i_Msg->field_0xede = 0;
+ dMsg2_arrowUpHide(i_Msg);
+ dMsg2_arrowDownHide(i_Msg);
+ dMsg2_dotHide(i_Msg);
+ }
+ } else if (i_Msg->field_0xec0 == 3) {
+ int temp_r4 = i_Msg->field_0xe9e;
+
+ for (int i = 0; i < 3; i++) {
+ i_Msg->text_pane[i].mPosTopLeft.y += 12.0f;
+ }
+
+ i_Msg->field_0xede -= 127;
+
+ if (i_Msg->text_pane[temp_r4].mPosTopLeft.y > i_Msg->field_0xd00[0].mSizeOrig.y) {
+ i_Msg->field_0xec0 = 4;
+
+ u8 temp_r3 = i_Msg->field_0xe9d;
+ i_Msg->field_0xe9d = i_Msg->field_0xe9c;
+ i_Msg->field_0xe9c = i_Msg->field_0xe9e;
+ i_Msg->field_0xe9e = temp_r3;
+
+ if (i_Msg->field_0xec4 > 0) {
+ dMsg2_messageOut(i_Msg, i_Msg->field_0xe9c, i_Msg->field_0xec4 - i_Msg->mesgEntry.field_0x16);
+ } else {
+ dMsg2_messagePaneHide(i_Msg, i_Msg->field_0xe9c);
+ dMsg2_outFontHide(i_Msg, i_Msg->field_0xe9c);
+ }
+
+ i_Msg->field_0xede = 0;
+ dMsg2_arrowUpHide(i_Msg);
+ dMsg2_arrowDownHide(i_Msg);
+ dMsg2_dotHide(i_Msg);
+ }
+ } else if (i_Msg->field_0xec0 == 2) {
+ for (int i = 0; i < 3; i++) {
+ i_Msg->text_pane[i].mPosTopLeft.y -= 12.0f;
+ }
+
+ i_Msg->field_0xede += 43;
+
+ if (i_Msg->text_pane[i_Msg->field_0xe9d].mPosTopLeft.y <= i_Msg->text_pane[0].mPosTopLeftOrig.y) {
+ i_Msg->text_pane[i_Msg->field_0xe9c].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y - i_Msg->field_0xe94;
+ i_Msg->text_pane[i_Msg->field_0xe9d].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y;
+ i_Msg->text_pane[i_Msg->field_0xe9e].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y + i_Msg->field_0xe94;
+
+ i_Msg->field_0xec0 = 0;
+
+ if (i_Msg->msgDataProc[i_Msg->field_0xe9d].getMesgStatus() == 7) {
+ i_Msg->msg.mStatus = 7;
+ dMsg2_arrowDownShow(i_Msg);
+ } else {
+ i_Msg->msg.mStatus = 14;
+ dMsg2_dotShow(i_Msg);
+ }
+
+ i_Msg->field_0xede = 0xFF;
+
+ if (i_Msg->field_0xec4 != 0) {
+ dMsg2_arrowUpShow(i_Msg);
+ }
+ }
+
+ dMsg2_messageShow(i_Msg);
+ } else if (i_Msg->field_0xec0 == 4) {
+ for (int i = 0; i < 3; i++) {
+ i_Msg->text_pane[i].mPosTopLeft.y += 12.0f;
+ }
+
+ i_Msg->field_0xede += 37;
+
+ if (i_Msg->text_pane[i_Msg->field_0xe9d].mPosTopLeftOrig.y >= i_Msg->text_pane[0].mPosTopLeft.y) {
+ i_Msg->text_pane[i_Msg->field_0xe9c].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y - i_Msg->field_0xe94;
+ i_Msg->text_pane[i_Msg->field_0xe9d].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y;
+ i_Msg->text_pane[i_Msg->field_0xe9e].mPosTopLeft.y = i_Msg->text_pane[0].mPosTopLeftOrig.y + i_Msg->field_0xe94;
+
+ i_Msg->field_0xec0 = 0;
+ i_Msg->msg.mStatus = 7;
+ i_Msg->field_0xede = 0xFF;
+ dMsg2_arrowDownShow(i_Msg);
+
+ if (i_Msg->field_0xec4 != 0) {
+ dMsg2_arrowUpShow(i_Msg);
+ }
+ }
+
+ dMsg2_messageShow(i_Msg);
+ } else {
+ dMsg2_messageShow(i_Msg);
+ }
+
+ return 1;
}
/* 801E9C44-801E9CDC .text draw__14dDlst_2DMSG2_cFv */
void dDlst_2DMSG2_c::draw() {
- /* Nonmatching */
+ J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
+ graf->setPort();
+
+ for (int i = 0; i < 3; i++) {
+ sScreen2[2 - i]->setScissor(true);
+ sScreen2[2 - i]->draw(0.0f, 0.0f, graf);
+ }
+
+ outFontDraw();
}
/* 801E9CDC-801E9FC4 .text outFontDraw__14dDlst_2DMSG2_cFv */
+// NONMATCHING - a lot wrong here
void dDlst_2DMSG2_c::outFontDraw() {
- /* Nonmatching */
+ J2DPane* ppane = ((sub_msg2_class*)actorP)->field_0xd00[0].pane;
+ f32 var_f31 = ppane->getGlbBounds().i.y;
+ f32 var_f30 = ppane->getGlbBounds().f.y;
+
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 8; j++) {
+ sub_msg2_class* msg = (sub_msg2_class*)actorP;
+ u8 iconNum = msg->msgDataProc[i].field_0x281[j];
+ fopMsgM_msgDataProc_c* dataProc = msg->msgDataProc;
+ int temp_r6 = dataProc->field_0x168[i];
+ int temp_r4 = dataProc->field_0x1A4[i];
+ int var_r22 = dataProc->field_0x1E0[i];
+
+ if (iconNum != 0xFF) {
+ J2DTextBox* pJVar3 = (J2DTextBox*)msg->text_pane[i].pane;
+ int sp10 = (f32)temp_r6 + pJVar3->getGlbBounds().i.x;
+
+ if (var_r22 > msg->field_0xeb4) {
+ if (msg->field_0xecc[i] > 1) {
+ temp_r4 = ((msg->field_0xeb0 * (3 - temp_r4)) + pJVar3->getGlbBounds().i.y);
+ } else {
+ temp_r4 = (msg->field_0xeb0 + pJVar3->getGlbBounds().i.y);
+ }
+ } else {
+ temp_r4 = ((msg->field_0xeb0 * (3 - msg->field_0xecc[i])) + pJVar3->getGlbBounds().i.y);
+ }
+
+ u8 sp20 = msg->field_0xeac;
+ JKRHeap* heap = mDoExt_setCurrentHeap(msg->Heap);
+
+ if ((f32)temp_r4 > var_f31 && (f32)temp_r4 < var_f30 - (f32)var_r22) {
+ fopMsgM_outFontDraw(bbutton_icon[j][i], bbutton_kage[j][i], sp10, temp_r4, var_r22, &bbuttonTimer[j][i], sp20, iconNum);
+ }
+
+ mDoExt_setCurrentHeap(heap);
+ }
+ }
+ }
}
/* 801E9FC4-801EA0C8 .text draw__14dDlst_2DCopy_cFv */
+// NONMATCHING
void dDlst_2DCopy_c::draw() {
- /* Nonmatching */
+ J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
+ graf->setPort();
+
+ f32 left = -9.0f;
+ f32 top = -21.0f;
+ f32 width = 383.04376f;
+ f32 height = 78.600006f;
+
+ GXSetScissor((int)left, (int)top, (int)width, (int)height);
+ sScreen2[0]->draw(0.0f, 0.0f, graf);
+ GXSetTexCopySrc((int)left, (int)top, (int)width, (int)height);
+ GXSetTexCopyDst((int)width, (int)height, GX_TF_RGB565, GX_FALSE);
+ GXCopyTex(copyTex, REG1_S(6) == 0 ? GX_TRUE : GX_FALSE);
}
/* 801EA0C8-801EA224 .text dMsg2_Draw__FP14sub_msg2_class */
-static BOOL dMsg2_Draw(sub_msg2_class*) {
- /* Nonmatching */
+static BOOL dMsg2_Draw(sub_msg2_class* i_Msg) {
+ int sp8 = (int)(i_Msg->field_0xda8[0].mPosTopLeftOrig.x + 288.0f) - 288;
+ int sp10 = (int)(i_Msg->field_0xda8[0].mPosTopLeftOrig.y + 120.0f) - 120;
+
+ for (int i = 0; i < 3; i++) {
+ i_Msg->text_pane[i].mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->ruby_pane[i].mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->textSdw_pane[i].mNowAlpha = i_Msg->field_0xeac;
+ i_Msg->rubySdw_pane[i].mNowAlpha = i_Msg->field_0xeac;
+
+ fopMsgM_setAlpha(&i_Msg->text_pane[i]);
+ fopMsgM_setAlpha(&i_Msg->ruby_pane[i]);
+ fopMsgM_setAlpha(&i_Msg->textSdw_pane[i]);
+ fopMsgM_setAlpha(&i_Msg->rubySdw_pane[i]);
+ }
+
+ fopMsgM_setAlpha(&i_Msg->field_0xbb0);
+ fopMsgM_setAlpha(&i_Msg->field_0xbe8);
+ fopMsgM_setAlpha(&i_Msg->field_0xc20);
+ fopMsgM_setAlpha(&i_Msg->field_0xc58);
+ fopMsgM_setAlpha(&i_Msg->field_0xc90);
+ fopMsgM_setAlpha(&i_Msg->field_0xcc8);
+
+ dMsg2_multiTexDraw(i_Msg, sp8, sp10, 576, 240);
+
+ dComIfGd_set2DOpa(&message);
+ return TRUE;
}
/* 801EA224-801EA7C4 .text dMsg2_Execute__FP14sub_msg2_class */
-static BOOL dMsg2_Execute(sub_msg2_class*) {
- /* Nonmatching */
+// NONMATCHING - some float issues
+static BOOL dMsg2_Execute(sub_msg2_class* i_Msg) {
+ if (i_Msg->msg.mStatus == fopMsgStts_BOX_OPENING_e) {
+ dMsg2_openProc(i_Msg);
+ } else if (i_Msg->msg.mStatus == 5) {
+ dMsg2_outwaitProc(i_Msg);
+ } else if (i_Msg->msg.mStatus == fopMsgStts_STOP_e) {
+ dMsg2_stopProc(i_Msg);
+ } else if (i_Msg->msg.mStatus == fopMsgStts_MSG_DISPLAYED_e) {
+ dMsg2_closewaitProc(i_Msg);
+ } else if (i_Msg->msg.mStatus == fopMsgStts_MSG_ENDS_e) {
+ dMsg2_closeProc(i_Msg);
+ } else if (i_Msg->msg.mStatus == fopMsgStts_MSG_DESTROYED_e) {
+ fopMsgM_Delete(i_Msg);
+ }
+
+ dMsg2_arrowMove(i_Msg);
+
+ int temp_r4 = 0;
+ if (dComIfGs_getOptRuby()) {
+ temp_r4 = -4;
+ }
+
+ for (int i = 0; i < 3; i++) {
+ int sp64 = i_Msg->text_pane[i].mPosTopLeft.x + g_messageHIO.field_0x58;
+ int sp74 = i_Msg->text_pane[i].mPosTopLeft.y + temp_r4;
+ i_Msg->text_pane[i].pane->move(sp64, sp74);
+ i_Msg->ruby_pane[i].pane->move(sp64, sp74 - g_messageHIO.field_0x38);
+
+ int var_r21 = sp64 + 2;
+ int var_r22 = sp74 + 2;
+
+ i_Msg->textSdw_pane[i].pane->move(var_r21, var_r22);
+ i_Msg->rubySdw_pane[i].pane->move(var_r21, var_r22 - g_messageHIO.field_0x38);
+ }
+
+ dMsg2_rubySet(i_Msg);
+
+ for (int i = 0; i < 3; i++) {
+ // fakematch casting? making the members JUtility::TColor breaks the HIO constructor
+ ((J2DTextBox*)i_Msg->text_pane[i].pane)->setFontColor(*(JUtility::TColor*)&g_messageHIO.field_0x5, *(JUtility::TColor*)&g_messageHIO.field_0x5);
+ ((J2DTextBox*)i_Msg->ruby_pane[i].pane)->setFontColor(*(JUtility::TColor*)&g_messageHIO.field_0x1d, *(JUtility::TColor*)&g_messageHIO.field_0x1d);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i].pane)->setFontColor(*(JUtility::TColor*)&g_messageHIO.field_0x11, *(JUtility::TColor*)&g_messageHIO.field_0x11);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i].pane)->setFontColor(*(JUtility::TColor*)&g_messageHIO.field_0x11, *(JUtility::TColor*)&g_messageHIO.field_0x11);
+
+ ((J2DTextBox*)i_Msg->text_pane[i].pane)->setWhite(*(JUtility::TColor*)&g_messageHIO.field_0x9);
+ ((J2DTextBox*)i_Msg->ruby_pane[i].pane)->setWhite(*(JUtility::TColor*)&g_messageHIO.field_0x21);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i].pane)->setWhite(*(JUtility::TColor*)&g_messageHIO.field_0x15);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i].pane)->setWhite(*(JUtility::TColor*)&g_messageHIO.field_0x15);
+
+ ((J2DTextBox*)i_Msg->text_pane[i].pane)->setBlack(*(JUtility::TColor*)&g_messageHIO.field_0xd);
+ ((J2DTextBox*)i_Msg->ruby_pane[i].pane)->setBlack(*(JUtility::TColor*)&g_messageHIO.field_0x25);
+ ((J2DTextBox*)i_Msg->textSdw_pane[i].pane)->setBlack(*(JUtility::TColor*)&g_messageHIO.field_0x19);
+ ((J2DTextBox*)i_Msg->rubySdw_pane[i].pane)->setBlack(*(JUtility::TColor*)&g_messageHIO.field_0x19);
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (dComIfGs_getOptRuby()) {
+ i_Msg->ruby_pane[i].pane->hide();
+ i_Msg->rubySdw_pane[i].pane->hide();
+ } else {
+ if (i_Msg->ruby_pane[1].pane->isVisible()) {
+ i_Msg->ruby_pane[i].pane->show();
+ }
+
+ if (i_Msg->rubySdw_pane[i].pane->isVisible()) {
+ i_Msg->rubySdw_pane[i].pane->show();
+ }
+ }
+ }
+
+ dComIfGp_setMesgStatus(i_Msg->msg.mStatus);
+ return TRUE;
}
/* 801EA7C4-801EA7CC .text dMsg2_IsDelete__FP14sub_msg2_class */
-static BOOL dMsg2_IsDelete(sub_msg2_class*) {
- /* Nonmatching */
+static BOOL dMsg2_IsDelete(sub_msg2_class* i_Msg) {
+ return TRUE;
}
/* 801EA7CC-801EA97C .text dMsg2_Delete__FP14sub_msg2_class */
-static BOOL dMsg2_Delete(sub_msg2_class*) {
- /* Nonmatching */
+static BOOL dMsg2_Delete(sub_msg2_class* i_Msg) {
+ dComIfGp_setMesgStatus(0);
+ dComIfG_setBrightness(0xFF);
+
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ for (int i = 0; i < 3; i++) {
+ delete sScreen2[i];
+ }
+
+ i_Msg->Heap->free(i_Msg->Tex[0]);
+ i_Msg->Heap->free(i_Msg->Tex[1]);
+ mDoExt_removeMesgFont();
+ mDoExt_removeRubyFont();
+
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 8; j++) {
+ delete bbutton_icon[j][i];
+ delete bbutton_kage[j][i];
+ }
+
+ i_Msg->Heap->free(i_Msg->output_text[i]);
+ i_Msg->Heap->free(i_Msg->output_ruby[i]);
+ i_Msg->Heap->free(i_Msg->output_textSdw[i]);
+ i_Msg->Heap->free(i_Msg->output_rubySdw[i]);
+ }
+
+ dComIfGp_getMsgArchive()->removeResourceAll();
+ i_Msg->Heap->freeAll();
+ dComIfGp_setHeapLockFlag(0);
+ mDoExt_setCurrentHeap(heap);
+ return TRUE;
}
/* 801EA97C-801EAFC0 .text dMsg2_Create__FP9msg_class */
-static cPhs_State dMsg2_Create(msg_class*) {
- /* Nonmatching */
+static cPhs_State dMsg2_Create(msg_class* i_this) {
+ sub_msg2_class* i_Msg = (sub_msg2_class*)i_this;
+
+ if (dComIfGp_isHeapLockFlag() != 0 && dComIfGp_isHeapLockFlag() != 8) {
+ return cPhs_INIT_e;
+ }
+
+ i_Msg->Heap = dComIfGp_getExpHeap2D();
+ dComIfGp_setHeapLockFlag(8);
+ JKRHeap* heap = mDoExt_setCurrentHeap(i_Msg->Heap);
+
+ for (u8 i = 0; i < 3; i++) {
+ sScreen2[i] = new J2DScreen();
+ sScreen2[i]->set("hukidashi_02.blo", dComIfGp_getMsgArchive());
+ }
+
+ i_Msg->Tex[0] = (ResTIMG*)i_Msg->Heap->alloc(0x11800, 0x20);
+ JUT_ASSERT(VERSION_SELECT(2225, 2239, 2274, 2276), i_Msg->Tex[0] != NULL);
+
+ i_Msg->Tex[1] = (ResTIMG*)i_Msg->Heap->alloc(0x11800, 0x20);
+ JUT_ASSERT(VERSION_SELECT(2227, 2241, 2276, 2278), i_Msg->Tex[1] != NULL);
+
+ dMsg2_fontdataInit(i_Msg);
+
+ for (u8 i = 0; i < 3; i++) {
+ for (int j = 0; j < 8; j++) {
+ bbutton_icon[j][i] = new J2DPicture("font_07_02.bti");
+ bbutton_kage[j][i] = new J2DPicture("font_07_02.bti");
+ fopMsgM_blendInit(bbutton_icon[j][i], "font_00.bti");
+ fopMsgM_blendInit(bbutton_kage[j][i], "font_00.bti");
+
+ bbutton_icon[j][i]->hide();
+ bbutton_kage[j][i]->hide();
+ bbutton_icon[j][i]->setAlpha(0);
+ bbutton_kage[j][i]->setAlpha(0);
+
+ bbuttonTimer[j][i] = -1;
+ }
+ }
+
+ for (u8 i = 0; i < 3; i++) {
+ i_Msg->output_text[i] = (char*)i_Msg->Heap->alloc(1001, 4);
+ JUT_ASSERT(VERSION_SELECT(2250, 2264, 2299, 2301), i_Msg->output_text[i] != NULL);
+
+ i_Msg->output_ruby[i] = (char*)i_Msg->Heap->alloc(1001, 4);
+ JUT_ASSERT(VERSION_SELECT(2253, 2267, 2302, 2304), i_Msg->output_ruby[i] != NULL);
+
+ i_Msg->output_textSdw[i] = (char*)i_Msg->Heap->alloc(1001, 4);
+ JUT_ASSERT(VERSION_SELECT(2256, 2270, 2305, 2307), i_Msg->output_textSdw[i] != NULL);
+
+ i_Msg->output_rubySdw[i] = (char*)i_Msg->Heap->alloc(1001, 4);
+ JUT_ASSERT(VERSION_SELECT(2259, 2273, 2308, 2310), i_Msg->output_rubySdw[i] != NULL);
+ }
+
+ mDoExt_setCurrentHeap(heap);
+
+ if (i_this->mMsgNo == 0x33A && dComIfGs_isEventBit(0x2D80)) {
+ i_this->mMsgNo = 0x33B;
+ }
+
+ i_Msg->head_p = i_Msg->msgGet.getMesgHeader(i_this->mMsgNo);
+ JUT_ASSERT(VERSION_SELECT(2275, 2289, 2324, 2326), i_Msg->head_p);
+
+ i_Msg->message = (char*)i_Msg->msgGet.getMessage(i_Msg->head_p);
+ i_Msg->mesgEntry = i_Msg->msgGet.getMesgEntry(i_Msg->head_p);
+ i_Msg->mesgNumber = i_Msg->msgGet.getMesgNumber();
+ i_this->mStatus = 2;
+
+ dMsg2_multiTexInit(i_Msg);
+
+ for (u8 i = 0; i < 3; i++) {
+ dMsg2_screenDataInit(i_Msg, i);
+ dMsg2_screenDataSet(i_Msg, i);
+ dMsg2_messagePaneHide(i_Msg, i);
+ }
+
+ dMsg2_ScreenDataValueInit(i_Msg);
+ dMsg2_stickInfoInit(i_Msg);
+ i_Msg->field_0xec0 = 0;
+ i_Msg->field_0xe9c = 2;
+ i_Msg->field_0xe9d = 0;
+ i_Msg->field_0xe9e = 1;
+
+ dMsg2_popSpeed = g_messageHIO.field_0x3b;
+ message.setActorP(i_Msg);
+ dComIfGp_setMesgStatus(i_this->mStatus);
+ return cPhs_COMPLEATE_e;
}
+
+static msg_method_class l_dMsg2_Method = {
+ (process_method_func)dMsg2_Create,
+ (process_method_func)dMsg2_Delete,
+ (process_method_func)dMsg2_Execute,
+ (process_method_func)dMsg2_IsDelete,
+ (process_method_func)dMsg2_Draw,
+};
+
+msg_process_profile_definition g_profile_MSG2 = {
+ /* Layer ID */ fpcLy_CURRENT_e,
+ /* List ID */ 12,
+ /* List Prio */ fpcPi_CURRENT_e,
+ /* Proc Name */ fpcNm_MSG2_e,
+ /* Proc SubMtd */ &g_fpcLf_Method.base,
+ /* Size */ sizeof(sub_msg2_class),
+ /* Size Other */ 0,
+ /* Parameters */ 0,
+ /* Leaf SubMtd */ &g_fopMsg_Method,
+ /* Draw Prio */ fpcDwPi_MSG2_e,
+ /* Msg SubMtd */ &l_dMsg2_Method,
+};
diff --git a/src/d/d_meter.cpp b/src/d/d_meter.cpp
index 50f9e627..daf41de9 100644
--- a/src/d/d_meter.cpp
+++ b/src/d/d_meter.cpp
@@ -459,42 +459,51 @@ dMeter_msg_HIO_c::dMeter_msg_HIO_c() {
/* 801EF75C-801EF924 .text __ct__20dMeter_message_HIO_cFv */
dMeter_message_HIO_c::dMeter_message_HIO_c() {
- field_0x5 = 0;
- field_0x6 = 0;
- field_0x7 = 0;
- field_0x8 = 0xff;
- field_0x9 = 0xff;
- field_0xa = 0xff;
- field_0xb = 0xff;
- field_0xc = 0xff;
- field_0xd = 0xff;
- field_0xe = 0xff;
- field_0xf = 0xff;
- field_0x10 = 0;
- field_0x11 = 0xff;
- field_0x12 = 0xff;
- field_0x13 = 0xff;
- field_0x14 = 0xff;
- field_0x15 = 0xff;
- field_0x16 = 0xff;
- field_0x17 = 0xff;
- field_0x18 = 0xff;
- field_0x19 = 0xff;
- field_0x1a = 0xff;
- field_0x1b = 0xff;
- field_0x1c = 0;
- field_0x1d = 0;
- field_0x1e = 0;
- field_0x1f = 0;
- field_0x20 = 0xff;
- field_0x21 = 0xff;
- field_0x22 = 0xff;
- field_0x23 = 0xff;
- field_0x24 = 0xff;
- field_0x25 = 0xff;
- field_0x26 = 0xff;
- field_0x27 = 0xff;
- field_0x28 = 0;
+ field_0x5.r = 0;
+ field_0x5.g = 0;
+ field_0x5.b = 0;
+ field_0x5.a = 0xff;
+
+ field_0x9.r = 0xff;
+ field_0x9.g = 0xff;
+ field_0x9.b = 0xff;
+ field_0x9.a = 0xff;
+
+ field_0xd.r = 0xff;
+ field_0xd.g = 0xff;
+ field_0xd.b = 0xff;
+ field_0xd.a = 0;
+
+ field_0x11.r = 0xff;
+ field_0x11.g = 0xff;
+ field_0x11.b = 0xff;
+ field_0x11.a = 0xff;
+
+ field_0x15.r = 0xff;
+ field_0x15.g = 0xff;
+ field_0x15.b = 0xff;
+ field_0x15.a = 0xff;
+
+ field_0x19.r = 0xff;
+ field_0x19.g = 0xff;
+ field_0x19.b = 0xff;
+ field_0x19.a = 0;
+
+ field_0x1d.r = 0;
+ field_0x1d.g = 0;
+ field_0x1d.b = 0;
+ field_0x1d.a = 0xff;
+
+ field_0x21.r = 0xff;
+ field_0x21.g = 0xff;
+ field_0x21.b = 0xff;
+ field_0x21.a = 0xff;
+
+ field_0x25.r = 0xff;
+ field_0x25.g = 0xff;
+ field_0x25.b = 0xff;
+ field_0x25.a = 0;
+
field_0x29 = 0x80;
field_0x2a = 0xff;
field_0x2b = 0xff;
@@ -5783,15 +5792,15 @@ void dMeter_clockMultiMove(sub_meter_class* i_Meter) {
fVar2 = i_Meter->field_0x1868[i].mPosCenter.y;
clock[i].setPos(sVar4, sVar5, sVar4 + i_Meter->field_0x1830.mSizeOrig.x, sVar5 + i_Meter->field_0x1830.mSizeOrig.y);
GXColor color1 = {0xFF, 0XFF, 0XFF, 0XFF};
- clock[i].mC0.r = color1.r;
- clock[i].mC0.g = color1.g;
- clock[i].mC0.b = color1.b;
- clock[i].mC0.a = color1.a;
+ clock[i].mBlack.r = color1.r;
+ clock[i].mBlack.g = color1.g;
+ clock[i].mBlack.b = color1.b;
+ clock[i].mBlack.a = color1.a;
GXColor color2 = {0x00, 0x00, 0XFF, 0x00};
- clock[i].mC1.r = color2.r;
- clock[i].mC1.g = color2.g;
- clock[i].mC1.b = color2.b;
- clock[i].mC1.a = color2.a;
+ clock[i].mWhite.r = color2.r;
+ clock[i].mWhite.g = color2.g;
+ clock[i].mWhite.b = color2.b;
+ clock[i].mWhite.a = color2.a;
clock[i].setScroll(0, 0, 0);
clock[i].setScroll(1, fVar1, fVar2);
clock[i].setScale((100.0f * (1.0f / scaleX[i]) / g_meterHIO.field_0x78[i]), (100.0f * (1.0f / scaleY[i])) / g_meterHIO.field_0x78[i]);
@@ -6215,7 +6224,7 @@ void dMeter_swimPaneHide(sub_meter_class* i_Meter) {
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2d30);
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2da0);
fopMsgM_setNowAlphaZero(&i_Meter->field_0x2dd8);
- tekari.mC0.a = 0;
+ tekari.mBlack.a = 0;
}
/* 80200630-802006AC .text dMeter_swimPaneTransY__FP15sub_meter_classf */
@@ -6607,17 +6616,17 @@ void dMeter_swimTekariScroll(sub_meter_class* i_Meter) {
}
tekari.setPos(temp_r29, temp_r28, temp_r27, temp_r26);
GXColor color1 = {0xFF, 0xFF, 0xFF, 0XFF};
- tekari.mC0.r = color1.r;
- tekari.mC0.g = color1.g;
- tekari.mC0.b = color1.b;
- tekari.mC0.a = color1.a;
+ tekari.mBlack.r = color1.r;
+ tekari.mBlack.g = color1.g;
+ tekari.mBlack.b = color1.b;
+ tekari.mBlack.a = color1.a;
GXColor color2 = {0xFF, 0xFF, 0xFF, 0X00};
- tekari.mC1.r = color2.r;
- tekari.mC1.g = color2.g;
- tekari.mC1.b = color2.b;
- tekari.mC1.a = color2.a;
+ tekari.mWhite.r = color2.r;
+ tekari.mWhite.g = color2.g;
+ tekari.mWhite.b = color2.b;
+ tekari.mWhite.a = color2.a;
tekari.setScroll(0, 0, 0);
- tekari.mC0.a = 0xFF;
+ tekari.mBlack.a = 0xFF;
tekari.setScroll(1, var_r30, var_r30);
}
@@ -7164,11 +7173,11 @@ static BOOL dMeter_Draw(sub_meter_class* i_Meter) {
fopMsgM_setAlpha(&i_Meter->field_0x1948);
if (i_Meter->field_0x1830.pane->isVisible() && i_Meter->field_0x3020 == 7) {
for (s32 i = 0; i < 3; i++) {
- clock[i].mC0.a = i_Meter->field_0x1830.mNowAlpha;
+ clock[i].mBlack.a = i_Meter->field_0x1830.mNowAlpha;
}
} else {
for (s32 i = 0; i < 3; i++) {
- clock[i].mC0.a = 0;
+ clock[i].mBlack.a = 0;
}
}
fopMsgM_setAlpha(&i_Meter->field_0x1980);
diff --git a/src/d/d_msg.cpp b/src/d/d_msg.cpp
index 611bc181..f5e97e64 100644
--- a/src/d/d_msg.cpp
+++ b/src/d/d_msg.cpp
@@ -762,7 +762,7 @@ void dMsg_ScreenDataValueInitTalk(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.bmgData = (char*)i_Msg->mpMesgStr;
pcVar8 = i_Msg->output_rubSdw;
pcVar7 = i_Msg->output_textSdw;
pcVar5 = i_Msg->output_rub;
@@ -784,20 +784,20 @@ void dMsg_ScreenDataValueInitTalk(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.charSpace = iVar1;
+ i_Msg->mMsgDataProc.rubyCharSpace = iVar2;
+ i_Msg->mMsgDataProc.lineSpace = (int)((J2DTextBox*)i_Msg->m0544[0].pane)->getLineSpace();
+ i_Msg->mMsgDataProc.mesgEntry = &i_Msg->mMesgEntry;
+ i_Msg->mMsgDataProc.fontSize = i_Msg->m110C;
+ i_Msg->mMsgDataProc.rubyFontSize = i_Msg->m1110;
+ i_Msg->mMsgDataProc.lineWidth = 0x1f7;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x1e6;
+ i_Msg->mMsgDataProc.sendSpeed = g_msgHIO.field_0x82;
+ i_Msg->mMsgDataProc.spaceTimer = 2;
if (g_msgHIO.field_0x83 != 0) {
- i_Msg->mMsgDataProc.field_0x29C = 1;
+ i_Msg->mMsgDataProc.spaceFlag = 1;
} else {
- i_Msg->mMsgDataProc.field_0x29C = 0;
+ i_Msg->mMsgDataProc.spaceFlag = 0;
}
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
@@ -854,7 +854,7 @@ void dMsg_ScreenDataValueInitItem(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.bmgData = (char*)i_Msg->mpMesgStr;
pcVar8 = i_Msg->output_rubSdw;
pcVar7 = i_Msg->output_textSdw;
pcVar6 = i_Msg->output_rub;
@@ -876,24 +876,24 @@ void dMsg_ScreenDataValueInitItem(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.charSpace = (int)fVar3;
+ i_Msg->mMsgDataProc.rubyCharSpace = (int)fVar4;
+ i_Msg->mMsgDataProc.mesgEntry = &i_Msg->mMesgEntry;
+ i_Msg->mMsgDataProc.fontSize = i_Msg->m110C;
+ i_Msg->mMsgDataProc.rubyFontSize = 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;
+ i_Msg->mMsgDataProc.lineWidth = 0x1a3;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x192;
} else {
- i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
- i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
+ i_Msg->mMsgDataProc.lineWidth = 0x1f7;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x1e6;
}
- i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
- i_Msg->mMsgDataProc.field_0x15C = 2;
+ i_Msg->mMsgDataProc.sendSpeed = g_msgHIO.field_0x82;
+ i_Msg->mMsgDataProc.spaceTimer = 2;
if (g_msgHIO.field_0x83 != 0) {
- i_Msg->mMsgDataProc.field_0x29C = 1;
+ i_Msg->mMsgDataProc.spaceFlag = 1;
} else {
- i_Msg->mMsgDataProc.field_0x29C = 0;
+ i_Msg->mMsgDataProc.spaceFlag = 0;
}
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
@@ -937,7 +937,7 @@ void dMsg_ScreenDataValueInitTact(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.bmgData = (char*)i_Msg->mpMesgStr;
pcVar6 = i_Msg->output_rubSdw;
pcVar5 = i_Msg->output_textSdw;
pcVar4 = i_Msg->output_rub;
@@ -959,24 +959,24 @@ void dMsg_ScreenDataValueInitTact(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.charSpace = (int)dVar7;
+ i_Msg->mMsgDataProc.rubyCharSpace = (int)dVar8;
+ i_Msg->mMsgDataProc.mesgEntry = &i_Msg->mMesgEntry;
+ i_Msg->mMsgDataProc.fontSize = i_Msg->m110C;
+ i_Msg->mMsgDataProc.rubyFontSize = 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;
+ i_Msg->mMsgDataProc.lineWidth = 0x1a3;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x192;
} else {
- i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
- i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
+ i_Msg->mMsgDataProc.lineWidth = 0x1f7;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x1e6;
}
- i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
- i_Msg->mMsgDataProc.field_0x15C = 2;
+ i_Msg->mMsgDataProc.sendSpeed = g_msgHIO.field_0x82;
+ i_Msg->mMsgDataProc.spaceTimer = 2;
if (g_msgHIO.field_0x83 != 0) {
- i_Msg->mMsgDataProc.field_0x29C = 1;
+ i_Msg->mMsgDataProc.spaceFlag = 1;
} else {
- i_Msg->mMsgDataProc.field_0x29C = 0;
+ i_Msg->mMsgDataProc.spaceFlag = 0;
}
i_Msg->m10D0 = (i_Msg->m10D8) - i_Msg->m049C.mPosCenter.x;
i_Msg->m10D4 = (i_Msg->m10DC) - i_Msg->m049C.mPosCenter.y;
@@ -1000,7 +1000,7 @@ void dMsg_ScreenDataValueInitDemo(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.bmgData = (char*)i_Msg->mpMesgStr;
pcVar5 = i_Msg->output_rubSdw;
pcVar4 = i_Msg->output_textSdw;
pcVar2 = i_Msg->output_rub;
@@ -1022,19 +1022,19 @@ void dMsg_ScreenDataValueInitDemo(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.charSpace = dVar6;
+ i_Msg->mMsgDataProc.rubyCharSpace = dVar7;
+ i_Msg->mMsgDataProc.mesgEntry = &i_Msg->mMesgEntry;
+ i_Msg->mMsgDataProc.fontSize = i_Msg->m110C;
+ i_Msg->mMsgDataProc.rubyFontSize = i_Msg->m1110;
+ i_Msg->mMsgDataProc.lineWidth = 0x1f7;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x1e6;
+ i_Msg->mMsgDataProc.sendSpeed = g_msgHIO.field_0x82;
+ i_Msg->mMsgDataProc.spaceTimer = 2;
if (g_msgHIO.field_0x83 != 0) {
- i_Msg->mMsgDataProc.field_0x29C = 1;
+ i_Msg->mMsgDataProc.spaceFlag = 1;
} else {
- i_Msg->mMsgDataProc.field_0x29C = 0;
+ i_Msg->mMsgDataProc.spaceFlag = 0;
}
}
@@ -1081,8 +1081,8 @@ void dMsg_setString(sub_msg_class* i_Msg) {
/* 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->m1108 = i_Msg->mMsgDataProc.lineCount;
+ i_Msg->mMsgDataProc.lineCount = 0;
i_Msg->mMsgDataProc.stringShift();
i_Msg->mMsgDataProc.iconIdxRefresh();
dMsg_textPosition(i_Msg);
@@ -1950,11 +1950,11 @@ s32 dMsg_stopProc(sub_msg_class* i_Msg) {
u8 bVar1;
u32 uVar2;
- if (i_Msg->mMsgDataProc.field_0x297 != 0) {
+ if (i_Msg->mMsgDataProc.autoSendFlag != 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.autoSendFlag = 0;
#if VERSION > VERSION_DEMO
i_Msg->mMsgDataProc.field_0x296 = 0;
#endif
@@ -2003,7 +2003,7 @@ s32 dMsg_stopProc(sub_msg_class* i_Msg) {
{
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)) {
+ if (((i_Msg->mMsgDataProc.autoSendFlag == 0) && (i_Msg->mMsgDataProc.handSendFlag == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
i_Msg->mMsgDataProc.field_0x158 = 0;
#if VERSION > VERSION_DEMO
i_Msg->mMsgDataProc.field_0x296 = 0;
@@ -2330,11 +2330,11 @@ s32 dMsg_continueProc(sub_msg_class* i_Msg) {
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)) ||
+ if (((((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (i_Msg->mMsgDataProc.selectFlag != 0)) ||
(fopMsgM_checkMessageSend() || (i_Msg->mMsgNo == 0x5ac && (dComIfGp_checkMesgCancelButton())))) &&
(!dComIfGp_checkMesgBgm()))
{
- i_Msg->mMsgDataProc.field_0x294 = 0;
+ i_Msg->mMsgDataProc.selectFlag = 0;
i_Msg->m1100 = 0;
JKRFileLoader::removeResource(i_Msg->head_p, NULL);
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
@@ -2359,7 +2359,7 @@ s32 dMsg_continueProc(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.bmgData = (char*)i_Msg->mpMesgStr;
pcVar13 = i_Msg->output_rubSdw;
pcVar12 = i_Msg->output_textSdw;
pcVar10 = i_Msg->output_rub;
@@ -2381,24 +2381,24 @@ s32 dMsg_continueProc(sub_msg_class* i_Msg) {
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;
+ i_Msg->mMsgDataProc.charSpace = iVar1;
+ i_Msg->mMsgDataProc.rubyCharSpace = iVar2;
+ i_Msg->mMsgDataProc.mesgEntry = &i_Msg->mMesgEntry;
+ i_Msg->mMsgDataProc.fontSize = i_Msg->m110C;
+ i_Msg->mMsgDataProc.rubyFontSize = 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;
+ i_Msg->mMsgDataProc.lineWidth = 0x1a3;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x192;
} else {
- i_Msg->mMsgDataProc.field_0x128 = 0x1f7;
- i_Msg->mMsgDataProc.field_0x12C = 0x1e6;
+ i_Msg->mMsgDataProc.lineWidth = 0x1f7;
+ i_Msg->mMsgDataProc.centerLineWidth = 0x1e6;
}
- i_Msg->mMsgDataProc.field_0x160 = g_msgHIO.field_0x82;
- i_Msg->mMsgDataProc.field_0x15C = 2;
+ i_Msg->mMsgDataProc.sendSpeed = g_msgHIO.field_0x82;
+ i_Msg->mMsgDataProc.spaceTimer = 2;
if (g_msgHIO.field_0x83 != 0) {
- i_Msg->mMsgDataProc.field_0x29C = 1;
+ i_Msg->mMsgDataProc.spaceFlag = 1;
} else {
- i_Msg->mMsgDataProc.field_0x29C = 0;
+ i_Msg->mMsgDataProc.spaceFlag = 0;
}
dMsg_yose_select(i_Msg);
if (i_Msg->mMesgEntry.mInitialSound != 0) {
@@ -2468,7 +2468,7 @@ s32 dMsg_continueProc(sub_msg_class* i_Msg) {
{
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)) {
+ if (((i_Msg->mMsgDataProc.autoSendFlag == 0) && (i_Msg->mMsgDataProc.handSendFlag == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
i_Msg->mMsgDataProc.field_0x158 = 0;
#if VERSION > VERSION_DEMO
i_Msg->mMsgDataProc.field_0x296 = 0;
@@ -2490,11 +2490,11 @@ s32 dMsg_closewaitProc(sub_msg_class* i_Msg) {
u8 bVar1;
u32 uVar3;
- if (i_Msg->mMsgDataProc.field_0x297 != 0) {
+ if (i_Msg->mMsgDataProc.autoSendFlag != 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.autoSendFlag = 0;
#if VERSION > VERSION_DEMO
i_Msg->mMsgDataProc.field_0x296 = 0;
#endif
@@ -2505,12 +2505,12 @@ s32 dMsg_closewaitProc(sub_msg_class* i_Msg) {
dComIfGp_setMesgSendButton(i_Msg->m116A);
}
} else {
- if (i_Msg->mMsgDataProc.field_0x298 != 0) {
+ if (i_Msg->mMsgDataProc.handSendFlag != 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->mMsgDataProc.handSendFlag = 0;
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
bVar1 = i_Msg->mMesgEntry.mTextboxType;
if ((bVar1 != 5) && (bVar1 != 0xe)) {
@@ -2528,7 +2528,7 @@ s32 dMsg_closewaitProc(sub_msg_class* i_Msg) {
dMeter_Info.field_0x0 = 4;
}
} else {
- i_Msg->mMsgDataProc.field_0x298 = 0;
+ i_Msg->mMsgDataProc.handSendFlag = 0;
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
bVar1 = i_Msg->mMesgEntry.mTextboxType;
if ((bVar1 != 5) && (bVar1 != 0xe)) {
@@ -2546,11 +2546,11 @@ s32 dMsg_closewaitProc(sub_msg_class* i_Msg) {
/* 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())) ||
+ if ((((((CPad_CHECK_TRIG_A(0)) || (CPad_CHECK_TRIG_B(0))) || (i_Msg->mMsgDataProc.selectFlag != 0)) || (fopMsgM_checkMessageSend())) ||
(i_Msg->mMsgNo == 0x5ac && (dComIfGp_checkMesgCancelButton()))) &&
(!dComIfGp_checkMesgBgm()))
{
- i_Msg->mMsgDataProc.field_0x294 = 0;
+ i_Msg->mMsgDataProc.selectFlag = 0;
i_Msg->mStatus = fopMsgStts_BOX_CLOSING_e;
if ((i_Msg->mMesgEntry.mTextboxType != 5) && (i_Msg->mMesgEntry.mTextboxType != 0xe)) {
fopMsgM_setNowAlphaZero(&i_Msg->m050C);
@@ -2748,7 +2748,7 @@ s32 dMsg_initProc(sub_msg_class* i_Msg) {
/* 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.autoSendFlag = 1;
i_Msg->mMsgDataProc.field_0x158 = 30;
i_Msg->mStatus = fopMsgStts_CLOSE_WAIT_e;
}
@@ -2773,7 +2773,7 @@ s32 dMsg_outnowProc(sub_msg_class* i_Msg) {
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)) {
+ if ((i_Msg->mMsgDataProc.autoSendFlag == 0 && (i_Msg->mMsgDataProc.handSendFlag == 0)) && ((s32)i_Msg->mMsgDataProc.field_0x158 != 0)) {
i_Msg->mMsgDataProc.field_0x158 = 0;
#if VERSION > VERSION_DEMO
i_Msg->mMsgDataProc.field_0x296 = 0;
@@ -2788,12 +2788,12 @@ s32 dMsg_outnowProc(sub_msg_class* i_Msg) {
) {
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)) {
+ if (((i_Msg->mMsgDataProc.autoSendFlag == 0) && (i_Msg->mMsgDataProc.handSendFlag == 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;
+ i_Msg->mStatus = (u16)i_Msg->mMsgDataProc.mesgStatus;
for (s32 i = 0; i < 8; i++) {
cVar4 = i_Msg->mMsgDataProc.field_0x281[i];
iVar3 = i_Msg->mMsgDataProc.field_0x220[i];
@@ -2808,7 +2808,7 @@ s32 dMsg_outnowProc(sub_msg_class* i_Msg) {
uVar2 = i_Msg->mStatus;
if (uVar2 == 7) {
i_Msg->m1100 = 0;
- } else if ((uVar2 == 10) && (i_Msg->mMsgDataProc.field_0x297 == 0)) {
+ } else if ((uVar2 == 10) && (i_Msg->mMsgDataProc.autoSendFlag == 0)) {
i_Msg->m1100 = 0;
}
}