summaryrefslogtreecommitdiff
path: root/include
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 /include
parent873bb82e00fc8ee3a77eeebf50eafd5718a6f715 (diff)
d_message mostly done (#1097)
* d_message mostly done * fopMsgM_selectMessageGet fix
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h2
-rw-r--r--include/JSystem/J2DGraph/J2DTextBox.h6
-rw-r--r--include/JSystem/JKernel/JKRArchive.h4
-rw-r--r--include/d/d_drawlist.h11
-rw-r--r--include/d/d_kankyo.h1
-rw-r--r--include/d/d_message.h68
-rw-r--r--include/d/d_meter.h45
-rw-r--r--include/f_op/f_op_msg_mng.h128
-rw-r--r--include/m_Do/m_Do_controller_pad.h10
9 files changed, 172 insertions, 103 deletions
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index 19b3a3a4..5bd81613 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -89,7 +89,7 @@ public:
void hide() { mVisible = false; }
bool isVisible() { return mVisible; }
- void getBounds() {}
+ const JGeometry::TBox2<f32>& getBounds() { return mBounds; }
const JGeometry::TBox2<f32>& getGlbBounds() { return mGlobalBounds; }
f32 getRotate() const { return mRotation; }
void place(const JGeometry::TBox2<f32>&) {}
diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h
index 6e70e765..5a663fa2 100644
--- a/include/JSystem/J2DGraph/J2DTextBox.h
+++ b/include/JSystem/J2DGraph/J2DTextBox.h
@@ -66,8 +66,10 @@ public:
char* getStringPtr() const;
s32 setString(const char*, ...);
- // TODO
- void setFontColor(JUtility::TColor, JUtility::TColor) {}
+ void setFontColor(JUtility::TColor i_charColor, JUtility::TColor i_GradientColor) {
+ mCharColor = i_charColor;
+ mGradColor = i_GradientColor;
+ }
virtual ~J2DTextBox();
virtual bool setConnectParent(bool);
diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h
index 169b9a1c..53f149cd 100644
--- a/include/JSystem/JKernel/JKRArchive.h
+++ b/include/JSystem/JKernel/JKRArchive.h
@@ -236,4 +236,8 @@ inline u32 JKRReadIdResource(void* buffer, u32 bufferSize, u16 id, JKRArchive* a
return JKRReadResource(buffer, bufferSize, id, arc);
}
+inline u32 JKRReadTypeResource(void* buffer, u32 bufferSize, u32 tag, const char* name, JKRArchive* arc) {
+ return JKRArchive::readTypeResource(buffer, bufferSize, tag, name, arc);
+}
+
#endif
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index 2ecf5589..6ab8c6c9 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -149,9 +149,10 @@ public:
void setScale(f32, f32);
void setScroll(int, s16, s16);
virtual void draw();
- void setAlpha(u8) {}
- void setBlackColor(GXColor& c) { mC0 = c; }
- void setWhiteColor(GXColor& c) { mC1 = c; }
+
+ void setAlpha(u8 i_alpha) { mBlack.a = i_alpha; }
+ void setBlackColor(GXColor& c) { mBlack = c; }
+ void setWhiteColor(GXColor& c) { mWhite = c; }
public:
struct TexEntry {
@@ -169,8 +170,8 @@ public:
/* 0x0A */ s16 mY1;
/* 0x0C */ f32 mScaleX;
/* 0x10 */ f32 mScaleY;
- /* 0x14 */ GXColor mC0;
- /* 0x18 */ GXColor mC1;
+ /* 0x14 */ GXColor mBlack;
+ /* 0x18 */ GXColor mWhite;
/* 0x1C */ TexEntry mTex[2];
};
diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h
index 913cbf2b..d8666cd3 100644
--- a/include/d/d_kankyo.h
+++ b/include/d/d_kankyo.h
@@ -467,5 +467,6 @@ void dKy_contrast_flg_set(u8);
u8 dKy_contrast_flg_get();
BOOL dKyr_player_overhead_bg_chk();
void dKy_usonami_set(f32 param_0);
+GXColorS10* dKy_Get_DifCol();
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/d_message.h b/include/d/d_message.h
index 6105e3a8..6b5971c1 100644
--- a/include/d/d_message.h
+++ b/include/d/d_message.h
@@ -1,21 +1,81 @@
#ifndef D_MESSAGE_H
#define D_MESSAGE_H
-#include "dolphin/types.h"
+#include "f_op/f_op_msg_mng.h"
+#include "d/d_drawlist.h"
class sub_msg2_class;
-class dDlst_2DMSG2_c {
+class dDlst_2DMSG2_c : public dDlst_base_c {
public:
- void setActorP(sub_msg2_class*) {}
+ virtual ~dDlst_2DMSG2_c() {}
+
+ void setActorP(sub_msg2_class* i_actorp) { actorP = i_actorp; }
void draw();
void outFontDraw();
+
+ /* 0x4 */ sub_msg2_class* actorP;
};
-class dDlst_2DCopy_c {
+class dDlst_2DCopy_c : public dDlst_base_c {
public:
+ virtual ~dDlst_2DCopy_c() {}
void draw();
+
+ /* 0x4 */ u8 field_0x4[0x8 - 0x4];
+ /* 0x8 */ void* copyTex;
+};
+
+struct sub_msg2_class {
+ /* 0x000 */ msg_class msg;
+ /* 0x0FC */ u8 field_0x0FC[0x100 - 0x0FC];
+ /* 0x100 */ JKRExpHeap* Heap;
+ /* 0x104 */ JMSMesgEntry_c mesgEntry;
+ /* 0x11C */ fopMsgM_msgDataProc_c msgDataProc[3];
+ /* 0x8FC */ fopMsgM_msgGet_c msgGet;
+ /* 0x90C */ mesg_header* head_p;
+ /* 0x910 */ fopMsgM_pane_class text_pane[3];
+ /* 0x9B8 */ fopMsgM_pane_class textSdw_pane[3];
+ /* 0xA60 */ fopMsgM_pane_class ruby_pane[3];
+ /* 0xB08 */ fopMsgM_pane_class rubySdw_pane[3];
+ /* 0xBB0 */ fopMsgM_pane_class field_0xbb0;
+ /* 0xBE8 */ fopMsgM_pane_class field_0xbe8;
+ /* 0xC20 */ fopMsgM_pane_class field_0xc20;
+ /* 0xC58 */ fopMsgM_pane_class field_0xc58;
+ /* 0xC90 */ fopMsgM_pane_class field_0xc90;
+ /* 0xCC8 */ fopMsgM_pane_class field_0xcc8;
+ /* 0xD00 */ fopMsgM_pane_class field_0xd00[3];
+ /* 0xDA8 */ fopMsgM_pane_class field_0xda8[3];
+ /* 0xE50 */ JUTFont* mx;
+ /* 0xE54 */ JUTFont* rx;
+ /* 0xE58 */ ResTIMG* Tex[2];
+ /* 0xE60 */ char* message;
+ /* 0xE64 */ char* output_text[3];
+ /* 0xE70 */ char* output_ruby[3];
+ /* 0xE7C */ char* output_textSdw[3];
+ /* 0xE88 */ char* output_rubySdw[3];
+ /* 0xE94 */ f32 field_0xe94;
+ /* 0xE98 */ int field_0xe98;
+ /* 0xE9C */ u8 field_0xe9c;
+ /* 0xE9D */ u8 field_0xe9d;
+ /* 0xE9E */ u8 field_0xe9e;
+ /* 0xEA0 */ u32 mesgNumber;
+ /* 0xEA4 */ u16 colorNo;
+ /* 0xEA8 */ f32 field_0xea8;
+ /* 0xEAC */ f32 field_0xeac;
+ /* 0xEB0 */ int field_0xeb0;
+ /* 0xEB4 */ int field_0xeb4;
+ /* 0xEB8 */ int field_0xeb8;
+ /* 0xEBC */ int field_0xebc;
+ /* 0xEC0 */ u8 field_0xec0;
+ /* 0xEC4 */ int field_0xec4;
+ /* 0xEC8 */ int field_0xec8;
+ /* 0xECC */ int field_0xecc[3];
+ /* 0xED8 */ u8 field_0xED8[0xEDD - 0xED8];
+ /* 0xEDD */ u8 field_0xedd;
+ /* 0xEDE */ u8 field_0xede;
+ /* 0xEDF */ u8 field_0xedf[4][3];
};
#endif /* D_MESSAGE_H */
diff --git a/include/d/d_meter.h b/include/d/d_meter.h
index b9affa4e..8bb14863 100644
--- a/include/d/d_meter.h
+++ b/include/d/d_meter.h
@@ -386,42 +386,15 @@ public:
void genMessage(JORMContext* ctx);
/* 0x04 */ s8 mNo;
- /* 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;
- /* 0x0D */ u8 field_0xd;
- /* 0x0E */ u8 field_0xe;
- /* 0x0F */ u8 field_0xf;
- /* 0x10 */ u8 field_0x10;
- /* 0x11 */ u8 field_0x11;
- /* 0x12 */ u8 field_0x12;
- /* 0x13 */ u8 field_0x13;
- /* 0x14 */ u8 field_0x14;
- /* 0x15 */ u8 field_0x15;
- /* 0x16 */ u8 field_0x16;
- /* 0x17 */ u8 field_0x17;
- /* 0x18 */ u8 field_0x18;
- /* 0x19 */ u8 field_0x19;
- /* 0x1A */ u8 field_0x1a;
- /* 0x1B */ u8 field_0x1b;
- /* 0x1C */ u8 field_0x1c;
- /* 0x1D */ u8 field_0x1d;
- /* 0x1E */ u8 field_0x1e;
- /* 0x1F */ u8 field_0x1f;
- /* 0x20 */ u8 field_0x20;
- /* 0x21 */ u8 field_0x21;
- /* 0x22 */ u8 field_0x22;
- /* 0x23 */ u8 field_0x23;
- /* 0x24 */ u8 field_0x24;
- /* 0x25 */ u8 field_0x25;
- /* 0x26 */ u8 field_0x26;
- /* 0x27 */ u8 field_0x27;
- /* 0x28 */ u8 field_0x28;
+ /* 0x05 */ GXColor field_0x5;
+ /* 0x09 */ GXColor field_0x9;
+ /* 0x0D */ GXColor field_0xd;
+ /* 0x11 */ GXColor field_0x11;
+ /* 0x15 */ GXColor field_0x15;
+ /* 0x19 */ GXColor field_0x19;
+ /* 0x1D */ GXColor field_0x1d;
+ /* 0x21 */ GXColor field_0x21;
+ /* 0x25 */ GXColor field_0x25;
/* 0x29 */ u8 field_0x29;
/* 0x2A */ u8 field_0x2a;
/* 0x2B */ u8 field_0x2b;
diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h
index 8e0b0491..2965cea1 100644
--- a/include/f_op/f_op_msg_mng.h
+++ b/include/f_op/f_op_msg_mng.h
@@ -97,6 +97,10 @@ public:
JMSMesgEntry_c getMesgEntry(mesg_header*);
const char* getMessage(mesg_header*);
+ u32 getMesgNumber() {
+ return (mGroupID << 8) | mResMsgNo;
+ }
+
public:
/* 0x04 */ u32 mMsgIdx;
/* 0x08 */ u16 mGroupID;
@@ -150,7 +154,7 @@ public:
void dataInit();
f32 charLength(int, int, bool);
f32 rubyLength(int, bool);
- void stringLength();
+ u32 stringLength();
void stringShift();
void iconSelect(int, u8);
void iconIdxRefresh();
@@ -237,14 +241,14 @@ public:
#endif
void getIconColor(int) {}
- void getIconNum(int) {}
- void getIconPosX(int) {}
- void getIconPosY(int) {}
+ u8 getIconNum(int i_no) { return field_0x281[i_no]; }
+ int getIconPosX(int i_no) { return field_0x168[i_no]; }
+ int getIconPosY(int i_no) { return field_0x1A4[i_no]; }
void getIconScale(int) {}
- void setCharSpace(int) {}
- void setRubyCharSpace(int) {}
- void setLineSpace(int) {}
+ void setCharSpace(int i_space) { charSpace = i_space; }
+ void setRubyCharSpace(int i_space) { rubyCharSpace = i_space; }
+ void setLineSpace(int i_space) { lineSpace = i_space; }
void setOutMessage(char* param_0, char* param_1, char* param_2, char* param_3) {
field_0x60 = param_0;
@@ -258,63 +262,77 @@ public:
}
void setSelectMessage(char*, char*, char*, char*) {}
- void setMesgEntry(JMSMesgEntry_c*) {}
+ void setMesgEntry(JMSMesgEntry_c* i_entry) { mesgEntry = i_entry; }
void dec_keyWaitTimer() {}
void dec_waitTimer() {}
- void getCharAlpha() {}
- void getGradAlpha() {}
- void getLineCount() {}
- void getMesgStatus() {}
- void getNowCursorPos() {}
- void getRCharAlpha() {}
- void getRGradAlpha() {}
+ u8 getCharAlpha() { return field_0x293; } // ?
+ u8 getGradAlpha() { return field_0x292; } // ?
+ int getLineCount() { return lineCount; }
+ u8 getMesgStatus() { return mesgStatus; }
+ f32 getNowCursorPos() { return field_0x20; }
+ u8 getRCharAlpha() { return field_0x291; } // ?
+ u8 getRGradAlpha() { return field_0x290; } // ?
void getSelectFlag() {}
void getSelectLength() {}
void getStringColor() {}
void get_waitTimer() {}
- void resetNowLine() {}
+ void resetNowLine() { nowLine = 0; }
void selectArrow(J2DPicture*) {}
void setActorPosition(cXyz*) {}
- void setAimLine(int) {}
+ void setAimLine(int i_line) { aimLine = i_line; }
void setAutoSendFlagOff() {}
- void setBmgData(char*) {}
- void setCenterLineWidth(int) {}
- void setCharAlpha(u8, u8, u8, u8) {}
- void setCount(int) {}
- void setFont(JUTFont*) {}
- void setFontSize(int) {}
+ void setBmgData(char* i_data) { bmgData = i_data; }
+ void setCenterLineWidth(int i_width) { centerLineWidth = i_width; }
+
+ void setCharAlpha(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
+ field_0x290 = param_0;
+ field_0x291 = param_1;
+ field_0x292 = param_2;
+ field_0x293 = param_3;
+ }
+
+ void setCount(int i_count) { count = i_count; }
+ void setFont(JUTFont* i_font) { font[0] = i_font; }
+ void setFontSize(int i_size) { fontSize = i_size; }
void setHandSendFlagOff() {}
- void setLineCount(int) {}
- void setLineWidth(int) {}
- void setRubyFont(JUTFont*) {}
- void setRubyFontSize(int) {}
+ void setLineCount(int i_count) { lineCount = i_count; }
+ void setLineWidth(int i_width) { lineWidth = i_width; }
+ void setRubyFont(JUTFont* i_font) { font[1] = i_font; }
+ void setRubyFontSize(int i_size) { rubyFontSize = i_size; }
void setSelectFlagOff() {}
void setSelectNum(u8) {}
- void setSendSpeed(int) {}
- void setSpaceFlagOff() {}
+ void setSendSpeed(int i_speed) { sendSpeed = i_speed; }
+ void setSpaceFlagOff() { spaceFlag = 0; }
void setSpaceFlagOn() {}
- void setSpaceTimer(int) {}
+ void setSpaceTimer(int i_timer) { spaceTimer = i_timer; }
void setStringColor(u32) {}
void set_waitTimer(int) {}
void set_waitTimerZero() {}
- void shortCut() {}
+ void shortCut() {
+ field_0x299 = 1;
+ }
+
+ // fake, replace with real inline once it's figured out
+ u32 get_0x220(int i) {
+ return field_0x220[i];
+ }
public:
/* 0x004 */ JUTFont* font[2];
- /* 0x00C */ JMSMesgEntry_c* field_0x0C;
+ /* 0x00C */ JMSMesgEntry_c* mesgEntry;
/* 0x010 */ u32 field_0x10;
/* 0x014 */ f32 field_0x14;
/* 0x018 */ f32 field_0x18;
/* 0x01C */ f32 field_0x1C;
- /* 0x020 */ f32 field_0x20;
+ /* 0x020 */ f32 field_0x20; // NowCursorPos?
/* 0x024 */ f32 field_0x24;
/* 0x028 */ f32 field_0x28;
/* 0x02C */ u32 field_0x2C;
/* 0x030 */ u32 field_0x30;
/* 0x034 */ u32 field_0x34;
/* 0x038 */ u32 field_0x38;
- /* 0x03C */ const char* field_0x3C;
+ /* 0x03C */ const char* bmgData;
/* 0x040 */ char* field_0x40;
/* 0x044 */ char* field_0x44;
/* 0x048 */ char* field_0x48;
@@ -330,28 +348,28 @@ public:
/* 0x0E8 */ s32 field_0xE8[4];
/* 0x0F8 */ s32 field_0xF8[4];
/* 0x108 */ s32 field_0x108[4];
- /* 0x118 */ u32 field_0x118;
- /* 0x11C */ s32 field_0x11C;
- /* 0x120 */ s32 field_0x120;
- /* 0x124 */ s32 field_0x124;
- /* 0x128 */ s32 field_0x128;
- /* 0x12C */ u32 field_0x12C;
- /* 0x130 */ s32 field_0x130;
+ /* 0x118 */ int count;
+ /* 0x11C */ int charSpace;
+ /* 0x120 */ int lineSpace;
+ /* 0x124 */ int rubyCharSpace;
+ /* 0x128 */ int lineWidth;
+ /* 0x12C */ int centerLineWidth;
+ /* 0x130 */ int lineCount;
/* 0x134 */ u32 field_0x134;
- /* 0x138 */ u32 field_0x138;
- /* 0x13C */ u32 field_0x13C;
+ /* 0x138 */ int nowLine;
+ /* 0x13C */ int aimLine;
/* 0x140 */ u32 field_0x140;
- /* 0x144 */ s32 field_0x144;
+ /* 0x144 */ int fontSize;
/* 0x148 */ u32 field_0x148;
- /* 0x14C */ s32 field_0x14C;
+ /* 0x14C */ int rubyFontSize;
/* 0x150 */ int field_0x150;
/* 0x154 */ u32 field_0x154;
/* 0x158 */ u32 field_0x158;
- /* 0x15C */ u32 field_0x15C;
- /* 0x160 */ u32 field_0x160;
- /* 0x164 */ int field_0x164;
- /* 0x168 */ s32 field_0x168[0xF];
- /* 0x1A4 */ u32 field_0x1A4[0xF];
+ /* 0x15C */ int spaceTimer;
+ /* 0x160 */ int sendSpeed;
+ /* 0x164 */ int field_0x164; // keyWaitTimer?
+ /* 0x168 */ int field_0x168[0xF]; // IconPosX
+ /* 0x1A4 */ int field_0x1A4[0xF]; // IconPosY
/* 0x1A4 */ u32 field_0x1E0[0xF];
/* 0x21C */ int field_0x21C;
/* 0x21C */ u32 field_0x220[0xF];
@@ -363,7 +381,7 @@ public:
/* 0x270 */ f32 field_0x270;
/* 0x274 */ f32 field_0x274;
/* 0x278 */ f32 field_0x278;
- /* 0x27C */ u8 field_0x27C;
+ /* 0x27C */ u8 mesgStatus;
/* 0x27D */ u8 field_0x27D;
/* 0x27E */ u8 field_0x27E;
/* 0x27F */ u8 field_0x27F;
@@ -373,17 +391,17 @@ public:
/* 0x291 */ u8 field_0x291;
/* 0x292 */ u8 field_0x292;
/* 0x293 */ u8 field_0x293;
- /* 0x294 */ u8 field_0x294;
+ /* 0x294 */ u8 selectFlag;
/* 0x295 */ u8 field_0x295;
#if VERSION > VERSION_DEMO
/* 0x296 */ u8 field_0x296;
#endif
- /* 0x297 */ u8 field_0x297;
- /* 0x298 */ u8 field_0x298;
+ /* 0x297 */ u8 autoSendFlag;
+ /* 0x298 */ u8 handSendFlag;
/* 0x299 */ u8 field_0x299;
/* 0x29A */ u8 field_0x29A;
/* 0x29B */ u8 field_0x29B;
- /* 0x29C */ u8 field_0x29C;
+ /* 0x29C */ u8 spaceFlag;
/* 0x29D */ u8 field_0x29D;
};
diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h
index bf5ef949..bc8c9ada 100644
--- a/include/m_Do/m_Do_controller_pad.h
+++ b/include/m_Do/m_Do_controller_pad.h
@@ -33,6 +33,16 @@ extern interface_of_controller_pad g_mDoCPd_cpadInfo[4];
#define CPad_CHECK_TRIG_RIGHT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.right)
#define CPad_CHECK_TRIG_LEFT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.left)
+#define CPad_GET_STICK_POS_X(padNo) (g_mDoCPd_cpadInfo[padNo].mMainStickPosX)
+#define CPad_GET_STICK_POS_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mMainStickPosY)
+#define CPad_GET_STICK_VALUE(padNo) (g_mDoCPd_cpadInfo[padNo].mMainStickValue)
+#define CPad_GET_STICK_ANGLE(padNo) (g_mDoCPd_cpadInfo[padNo].mMainStickAngle)
+
+#define CPad_GET_SUBSTICK_POS_X(padNo) (g_mDoCPd_cpadInfo[padNo].mCStickPosX)
+#define CPad_GET_SUBSTICK_POS_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mCStickPosY)
+#define CPad_GET_SUBSTICK_VALUE(padNo) (g_mDoCPd_cpadInfo[padNo].mCStickValue)
+#define CPad_GET_SUBSTICK_ANGLE(padNo) (g_mDoCPd_cpadInfo[padNo].mCStickAngle)
+
int mDoCPd_Create();
int mDoCPd_Read();