d_msg - 99% matching (#899)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
This commit is contained in:
123456789758
2025-11-14 22:51:12 -05:00
committed by GitHub
parent 909a2a0dd6
commit 9075155201
18 changed files with 3045 additions and 161 deletions
+10
View File
@@ -423,7 +423,9 @@ public:
void setOperateWindOn() { mOperateWind = 2; }
u8 checkMesgSendButton() { return mMesgSendButton; }
void setMesgSendButton(u8 button) { mMesgSendButton = button; }
u8 checkMesgCancelButton() { return mMesgCancelButton; }
void setMesgCancelButton(u8 button) { mMesgCancelButton = button; }
void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; }
void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] &= ~flag; }
@@ -2568,10 +2570,18 @@ inline void dComIfGp_setOperateWindOn() {
g_dComIfG_gameInfo.play.setOperateWindOn();
}
inline void dComIfGp_setMesgSendButton(u8 button) {
g_dComIfG_gameInfo.play.setMesgSendButton(button);
}
inline u8 dComIfGp_checkMesgSendButton() {
return g_dComIfG_gameInfo.play.checkMesgSendButton();
}
inline void dComIfGp_setMesgCancelButton(u8 button) {
g_dComIfG_gameInfo.play.setMesgCancelButton(button);
}
inline u8 dComIfGp_checkMesgCancelButton() {
return g_dComIfG_gameInfo.play.checkMesgCancelButton();
}
+3 -2
View File
@@ -1,11 +1,12 @@
#ifndef D_FILE_ERROR_H
#define D_FILE_ERROR_H
#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/d_drawlist.h"
class MyScreen {
class MyScreen :public J2DScreen {
public:
void createPane(const J2DPane::J2DScrnBlockHeader&, JSURandomInputStream*, J2DPane*) {}
J2DPane* createPane(const J2DPane::J2DScrnBlockHeader&, JSURandomInputStream*, J2DPane*) {}
};
class dFe_HIO_c {
+2 -8
View File
@@ -294,14 +294,8 @@ public:
void genMessage(JORMContext* ctx);
/* 0x04 */ u8 field_0x4[0x05 - 0x04];
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9;
/* 0x0A */ u8 field_0xa;
/* 0x0B */ u8 field_0xb;
/* 0x0C */ u8 field_0xc;
/* 0x05 */ GXColor field_0x5;
/* 0x09 */ GXColor field_0x9;
/* 0x0D */ u8 field_0xd;
/* 0x0E */ u8 field_0xe;
/* 0x0F */ u8 field_0xf;
+67 -1
View File
@@ -2,18 +2,84 @@
#ifndef D_MSG_H
#define D_MSG_H
#include "JSystem/JParticle/JPAEmitter.h"
#include "d/d_drawlist.h"
#include "f_op/f_op_msg.h"
#include "f_op/f_op_msg_mng.h"
class msg_class;
class sub_msg_class;
class sub_msg_class : public msg_class {
public:
/* 0x00FC */ JKRExpHeap* mpHeap;
/* 0x0100 */ mesg_entry mMesgEntry;
/* 0x0118 */ mesg_header* head_p;
/* 0x011C */ fopMsgM_pane_class m011C[4];
/* 0x01FC */ fopMsgM_pane_class m01FC;
/* 0x0234 */ fopMsgM_pane_class m0234;
/* 0x026C */ fopMsgM_pane_class m026C[10];
/* 0x049C */ fopMsgM_pane_class m049C;
/* 0x04D4 */ fopMsgM_pane_class mPane_Arrow;
/* 0x050C */ fopMsgM_pane_class m050C;
/* 0x0544 */ fopMsgM_pane_class m0544[4];
/* 0x0624 */ fopMsgM_pane_class m0624[10];
/* 0x0854 */ u8 m854[0x8C4 - 0x854];
/* 0x08C4 */ fopMsgM_pane_class m08C4[6];
/* 0x0A14 */ fopMsgM_pane_class m0A14[6];
/* 0x0B64 */ fopMsgM_pane_class m0B64[6];
/* 0x0CB4 */ fopMsgM_pane_class m0CB4[6];
/* 0x0E04 */ fopMsgM_msgDataProc_c mMsgDataProc;
/* 0x10A4 */ fopMsgM_msgGet_c mMsgGet;
/* 0x10B4 */ JPABaseEmitter* m10B4[2];
/* 0x10BC */ JUtility::TColor m10BC;
/* 0x10C0 */ JUtility::TColor m10C0;
/* 0x10C4 */ JUtility::TColor m10C4;
/* 0x10C8 */ JUtility::TColor m10C8;
/* 0x10CC */ ResTIMG* buffer_p;
/* 0x10D0 */ f32 m10D0;
/* 0x10D4 */ f32 m10D4;
/* 0x10D8 */ int m10D8;
/* 0x10DC */ int m10DC;
/* 0x10E0 */ cXyz m10E0;
/* 0x10EC */ f32 m10EC;
/* 0x10F0 */ f32 m10F0;
/* 0x10F4 */ u8 m10F4[0x10F8 - 0x10F4];
/* 0x10F8 */ int m10F8;
/* 0x10FC */ int m10FC;
/* 0x1100 */ int m1100;
/* 0x1104 */ int m1104;
/* 0x1108 */ int m1108;
/* 0x110C */ int m110C;
/* 0x1110 */ int m1110;
/* 0x1114 */ int m1114;
/* 0x1118 */ int mMesgCameraTagInfo;
/* 0x111C */ char* mpMesgStr;
/* 0x1120 */ char* output_text;
/* 0x1124 */ char* output_rub;
/* 0x1128 */ char* output_textSdw;
/* 0x112C */ char* output_rubSdw;
/* 0x1130 */ char* select_text;
/* 0x1134 */ char* select_rub;
/* 0x1138 */ char* select_textSdw;
/* 0x113C */ char* select_rubSdw;
/* 0x1140 */ int mMsgID;
/* 0x1144 */ int m1144;
/* 0x1148 */ u8 m1148[0x1164 - 0x1148];
/* 0x1164 */ int m1164;
/* 0x1168 */ u8 m1168;
/* 0x1169 */ u8 m1169;
/* 0x116A */ u8 m116A;
/* 0x116B */ u8 m116B;
};
class dDlst_2DMSG_c : public dDlst_base_c {
public:
virtual ~dDlst_2DMSG_c();
virtual void draw();
void outFontDraw();
msg_class* field_0x4;
sub_msg_class* field_0x4;
};
class dDlst_2Dtact_c : public dDlst_base_c {
+8 -2
View File
@@ -10,7 +10,10 @@ enum fopMsg_MessageStatus_e {
fopMsgStts_MSG_PREPARING_e = 0x01,
fopMsgStts_BOX_OPENING_e = 0x02,
fopMsgStts_MSG_TYPING_e = 0x06,
fopMsgStts_UNKA_e = 0x0A,
fopMsgStts_STOP_e = 0x07,
fopMsgStts_SELECT_2_e = 0x08, // Selection box with 2 choices
fopMsgStts_SELECT_3_e = 0x09, // Selection box with 3 choices
fopMsgStts_CLOSE_WAIT_e = 0x0A, // Waiting for player input before closing the text box
fopMsgStts_UNKB_e = 0x0B,
fopMsgStts_UNKD_e = 0x0D,
fopMsgStts_MSG_DISPLAYED_e = 0x0E,
@@ -19,7 +22,10 @@ enum fopMsg_MessageStatus_e {
fopMsgStts_BOX_CLOSING_e = 0x11,
fopMsgStts_BOX_CLOSED_e = 0x12,
fopMsgStts_MSG_DESTROYED_e = 0x13,
fopMsgStts_UNK15_e = 0x15,
fopMsgStts_SELECT_YOKO_e = 0x14, // Selection box with 2 choices (arranged horizontally)?
fopMsgStts_INPUT_e = 0x15, // Wind Waker song tutorial (practicing)/numbers input (auction)
fopMsgStts_TACT_e = 0x16, // Close text box after playing Wind Waker song
fopMsgStts_DEMO_e = 0x17, // Wind Waker song tutorial (demonstration)
};
struct msg_method_class {
+6 -1
View File
@@ -128,7 +128,7 @@ public:
virtual void drawSelf(f32, f32, Mtx*);
virtual void drawFullSet2(f32, f32, f32, f32, J2DBinding, J2DMirror, bool, Mtx*);
private:
public:
/* 0x124 */ f32 m124;
/* 0x128 */ f32 m128;
/* 0x12C */ f32 m12C;
@@ -324,6 +324,7 @@ void fopMsgM_Delete(void* process);
fopMsg_prm_class* fopMsgM_GetAppend(void* msg);
void fopMsgM_destroyExpHeap(JKRExpHeap*);
f32 fopMsgM_valueIncrease(int param_0, int param_1, u8 param_2);
bool fopMsgM_hyrule_language_check(u32 msgNo);
s32 fopMsgM_setStageLayer(void*);
fpc_ProcID fopMsgM_messageSet(u32 i_msgNo, fopAc_ac_c* i_actorP);
fpc_ProcID fopMsgM_messageSet(u32 param_0, cXyz*);
@@ -359,6 +360,8 @@ void fopMsgM_setAlpha(fopMsgM_pane_alpha_class*);
u32 fopMsgM_searchMessageNumber(u32);
void fopMsgM_messageSendOn();
void fopMsgM_messageSendOff();
bool fopMsgM_checkMessageSend();
u32 fopMsgM_tactMessageSet();
void fopMsgM_demoMsgFlagOn();
@@ -368,6 +371,8 @@ bool fopMsgM_demoMsgFlagCheck();
void fopMsgM_tactMsgFlagOn();
void fopMsgM_tactMsgFlagOff();
bool fopMsgM_tactMsgFlagCheck();
void fopMsgM_nextMsgFlagOff();
bool fopMsgM_nextMsgFlagCheck();
void fopMsgM_blendInit(fopMsgM_pane_class* i_this, const char* data);
void fopMsgM_blendInit(J2DPicture* pic, const char* data);
+1 -1
View File
@@ -1580,7 +1580,7 @@ BOOL daNpc_Cb1_c::execTalk(BOOL param_1) {
fopMsgM_messageSet(mMsgNo);
}
}
else if(l_msg->mStatus == fopMsgStts_UNK15_e) {
else if(l_msg->mStatus == fopMsgStts_INPUT_e) {
if(param_1) {
if(dComIfGp_checkMesgCancelButton()) {
l_msg->mStatus = fopMsgStts_MSG_ENDS_e;
+1 -1
View File
@@ -2311,7 +2311,7 @@ BOOL daNpc_Md_c::talk(int r4) {
fopMsgM_messageSet(mMsgNo);
m313A = 0;
}
} else if (msgStatus == fopMsgStts_UNK15_e) {
} else if (msgStatus == fopMsgStts_INPUT_e) {
if (r4 != 0) {
if (dComIfGp_checkMesgCancelButton()) {
l_msg->mStatus = fopMsgStts_MSG_ENDS_e;
+1 -1
View File
@@ -1641,7 +1641,7 @@ BOOL daNpc_Os_c::talk() {
fopMsgM_messageSet(field_0x780);
}
}
else if(l_msg->mStatus != fopMsgStts_UNK15_e && l_msg->mStatus != fopMsgStts_MSG_TYPING_e && l_msg->mStatus == fopMsgStts_BOX_CLOSED_e) {
else if(l_msg->mStatus != fopMsgStts_INPUT_e && l_msg->mStatus != fopMsgStts_MSG_TYPING_e && l_msg->mStatus == fopMsgStts_BOX_CLOSED_e) {
l_msg->mStatus = fopMsgStts_MSG_DESTROYED_e;
return true;
+1 -1
View File
@@ -6289,7 +6289,7 @@ u16 daNpcPeople_c::talk2(int param_1, fopAc_ac_c* param_2) {
}
break;
case fopMsgStts_UNKA_e:
case fopMsgStts_CLOSE_WAIT_e:
if(m7A8 == 0) {
chkMsg();
m7A8 = 1;
+1 -1
View File
@@ -540,7 +540,7 @@ void daObjMknjD::Act_c::privateCut() {
case ACT_LESSON: {
u16 msgStatus = talk(1);
if (msgStatus == fopMsgStts_BOX_CLOSED_e || msgStatus == fopMsgStts_UNK15_e) {
if (msgStatus == fopMsgStts_BOX_CLOSED_e || msgStatus == fopMsgStts_INPUT_e) {
doCutEnd = true;
}
break;
+4 -4
View File
@@ -514,13 +514,13 @@ u16 daTag_Hint_c::talk() {
break;
case 2:
sVar3 = l_msg->mStatus;
if (sVar3 == 0xe) {
if (sVar3 == fopMsgStts_MSG_DISPLAYED_e) {
l_msg->mStatus = next_msgStatus(&m290);
if (l_msg->mStatus == 0xf) {
if (l_msg->mStatus == fopMsgStts_MSG_CONTINUES_e) {
fopMsgM_messageSet(m290);
}
} else if (sVar3 == 0x12) {
l_msg->mStatus = 0x13;
} else if (sVar3 == fopMsgStts_BOX_CLOSED_e) {
l_msg->mStatus = fopMsgStts_MSG_DESTROYED_e;
m294 = -1;
}
break;
+1 -1
View File
@@ -208,7 +208,7 @@ void daTag_Island_c::demoInitTact_Bf() {
/* 00000778-000007C8 .text demoProcTact_Bf__14daTag_Island_cFv */
BOOL daTag_Island_c::demoProcTact_Bf() {
if (talk() == fopMsgStts_UNK15_e)
if (talk() == fopMsgStts_INPUT_e)
dComIfGp_evmng_cutEnd(mStaffId);
return TRUE;
}
+4 -4
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_mesg.cpp
//
/**
* d_mesg.cpp
* Textboxes (cutscenes)
*/
#include "d/dolzel.h" // IWYU pragma: keep
#include "d/d_mesg.h"
+8 -8
View File
@@ -339,14 +339,14 @@ dMeter_menuHIO_c::dMeter_menuHIO_c() {
/* 801EF57C-801EF75C .text __ct__16dMeter_msg_HIO_cFv */
dMeter_msg_HIO_c::dMeter_msg_HIO_c() {
field_0x5 = 0x1e;
field_0x6 = 0x1e;
field_0x7 = 0x1e;
field_0x8 = 0xd7;
field_0x9 = 0x1e;
field_0xa = 0x1e;
field_0xb = 0x4b;
field_0xc = 0;
field_0x5.r = 0x1e;
field_0x5.g = 0x1e;
field_0x5.b = 0x1e;
field_0x5.a = 0xd7;
field_0x9.r = 0x1e;
field_0x9.g = 0x1e;
field_0x9.b = 0x4b;
field_0x9.a = 0;
field_0x5a = 0;
field_0x5c = 0;
field_0x5e = 0x1e;
+2 -2
View File
@@ -40,8 +40,8 @@ dMn_HIO_c::dMn_HIO_c() {
void dMetronome_c::screenSet() {
static const u32 cn_t2[] = { 'cn08', 'cn09', 'cn10', 'cn11', 'cn12', 'cn13' };
static const u32 wn_t2[] = { 'wn08', 'wn09', 'wn10', 'wn11', 'wn12', 'wn13' };
static const u32 i11_t2[] = { 'i081', 'i091', 'i101', 'i111', 'i121', 'i131' };
static const u32 i12_t2[] = { 'i082', 'i092', 'i102', 'i112', 'i122', 'i132' };
static const u32 i12_t2[] = { 'i081', 'i091', 'i101', 'i111', 'i121', 'i131' };
static const u32 i11_t2[] = { 'i082', 'i092', 'i102', 'i112', 'i122', 'i132' };
static const u32 bs_t2[] = { 'bs08', 'bs09', 'bs10', 'bs11', 'bs12', 'bs13' };
static const u32 cn_t1[] = { 'cn01', 'cn02', 'cn03', 'cn04', 'cn05', 'cn06', 'cn07' };
+2924 -122
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -813,7 +813,7 @@ bool fopMsgM_getScopeMode() {
/* 8002C624-8002C650 .text fopMsgM_forceSendOn__Fv */
bool fopMsgM_forceSendOn() {
if (dComIfGp_getScopeMesgStatus() == fopMsgStts_UNKA_e) {
if (dComIfGp_getScopeMesgStatus() == fopMsgStts_CLOSE_WAIT_e) {
pushButton = true;
return true;
}