summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-06-29 21:07:14 -0700
committerGitHub <noreply@github.com>2026-06-30 00:07:14 -0400
commit0d27cf3652fa213384b40f599f1c41f726e5e091 (patch)
treea0e710eb6619784c063c5b8bc61e6f0b07fd5e33 /include
parent0bb5696cd89ce890b4543da9f46c2053ce6aec03 (diff)
d_name mostly done (#1082)
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DPicture.h2
-rw-r--r--include/d/d_com_inf_game.h2
-rw-r--r--include/d/d_name.h202
-rw-r--r--include/global.h6
4 files changed, 186 insertions, 26 deletions
diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h
index 94c71491..dd55e7e8 100644
--- a/include/JSystem/J2DGraph/J2DPicture.h
+++ b/include/JSystem/J2DGraph/J2DPicture.h
@@ -114,7 +114,7 @@ public:
void setCornerColor(JUtility::TColor c) { setCornerColor(c, c, c, c); }
void setBinding(J2DBinding v) { mBinding = v; }
- void setMirror(J2DMirror v) {} // untested { mFlag = (mFlag & ~0x03) | v; }
+ void setMirror(J2DMirror v) { mFlag = (mFlag & 0x04) | v; }
J2DMirror getMirror() const { return J2DMirror(mFlag & 0x03); }
void setTumble(bool v) {} // untested { mFlag = (mFlag & ~0x04) | (v << 2); }
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index 44660cf3..1e879522 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -593,6 +593,7 @@ public:
void setFontArchive(JKRArchive * pArc) { mpFont0Archive = pArc; }
void setMsgDtArchive(JKRArchive * pArc) { mpEnglishTextArchive = pArc; }
JKRArchive* getMsgDtArchive() { return mpEnglishTextArchive; }
+ JKRArchive* getNameResArchive() { return mpNameResArchive; }
#if VERSION > VERSION_JPN
void setMsgDt2Archive(JKRArchive * pArc) { mpHyruleTextArchive = pArc; }
JKRArchive* getMsgDt2Archive() { return mpHyruleTextArchive; }
@@ -3880,6 +3881,7 @@ inline void dComIfGp_setWindResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.p
inline void dComIfGp_setFontArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setFontArchive(pArc); }
inline void dComIfGp_setMsgDtArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setMsgDtArchive(pArc); }
inline JKRArchive* dComIfGp_getMsgDtArchive() { return g_dComIfG_gameInfo.play.getMsgDtArchive(); }
+inline JKRArchive* dComIfGp_getNameResArchive() { return g_dComIfG_gameInfo.play.getNameResArchive(); }
#if VERSION > VERSION_JPN
inline void dComIfGp_setMsgDt2Archive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setMsgDt2Archive(pArc); }
inline JKRArchive* dComIfGp_getMsgDt2Archive() { return g_dComIfG_gameInfo.play.getMsgDt2Archive(); }
diff --git a/include/d/d_name.h b/include/d/d_name.h
index 6b85e1eb..85358404 100644
--- a/include/d/d_name.h
+++ b/include/d/d_name.h
@@ -3,35 +3,122 @@
#include "d/d_drawlist.h"
#include "m_Do/m_Do_hostIO.h"
+#include "f_op/f_op_msg_mng.h"
-class dNm_HIO_c {
+class dNm_HIO_c : public JORReflexible {
public:
dNm_HIO_c();
+ virtual ~dNm_HIO_c() {}
void genMessage(JORMContext* ctx) { /* TODO */ }
+
+ /* 0x04 */ s8 id;
+ /* 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[0x26 - 0x24];
+ /* 0x26 */ s16 field_0x26;
+ /* 0x28 */ s16 field_0x28;
+ /* 0x2A */ s16 field_0x2a[3];
+ /* 0x30 */ s16 field_0x30[3];
+ /* 0x36 */ s16 field_0x36[3];
+ /* 0x3C */ s16 field_0x3c[3];
+ /* 0x42 */ s16 field_0x42;
+ /* 0x44 */ s16 field_0x44;
+ /* 0x46 */ s16 field_0x46;
+ /* 0x48 */ s16 field_0x48;
};
+class J2DScreen;
+
class dDlst_NameIN_c : public dDlst_base_c {
public:
virtual ~dDlst_NameIN_c() {}
void draw();
+
+ /* 0x4 */ J2DScreen* NameInScr;
+ /* 0x8 */ JUTFont* font;
+};
+
+class STControl;
+
+class ChrInfo_c {
+public:
+ /* 0x0 */ u8 column;
+ /* 0x1 */ u8 row;
+ /* 0x2 */ u8 set;
+ /* 0x3 */ u8 field_0x3;
+ /* 0x4 */ int character;
};
class dName_c {
public:
+ enum {
+ PROC_MOJI_SELECT,
+ PROC_MENU_SELECT,
+ PROC_MENU_BUTTON_ANIME,
+ PROC_END_WAIT
+ };
+
+ enum {
+ MOJI_HIRA, // hiragana characters
+ MOJI_KATA, // katakana characters
+ MOJI_EIGO, // english characters
+ };
+
+ enum {
+ MENU_HIRA, // (JPN )hiragana menu, (PAL) uppercase menu
+ MENU_KATA, // (JPN )katakana menu, (PAL) lowercase menu
+#if VERSION < VERSION_PAL
+ MENU_EIGO, // english menu
+#endif
+ MENU_BACKSPACE,
+ MENU_END,
+
+ MENU_MAX = 5,
+ };
+
dName_c() {}
virtual ~dName_c() {}
void draw() { _draw(); }
- int isInputEnd() { return mIsInputEnd; }
- char* getInputStrPtr() { return mInputStr; }
- void setNextNameStr(char* i_name) { strcpy(mNextNameStr, i_name); }
+ int isInputEnd() { return isInputEnd_; }
+ char* getInputStrPtr() { return inputStr; }
+ void setNextNameStr(char* i_name) { strcpy(nextNameStr, i_name); }
void _create();
void initial();
void _delete();
void _move();
- void nameCheck();
+ int nameCheck();
void playNameSet(int);
bool _open();
bool _close();
@@ -39,9 +126,9 @@ public:
void nameCursorAnime();
void EndWait();
void MojiSelect();
- void mojiChange(u8);
+ int mojiChange(u8);
void selectMojiSet();
- void getMoji();
+ int getMoji();
void setMoji(int);
void setNameText();
void nameCursorMove();
@@ -60,28 +147,93 @@ public:
void _draw();
void screenSet();
void paneTransInit();
- void PaneTranceTitle(s16, u8, f32, f32, u8, int);
- void PaneTranceName(s16, u8, f32, f32, u8, int);
- void PaneTranceBase0(s16, u8, f32, f32, u8, int);
- void PaneTranceBase(s16, u8, f32, f32, u8, int);
- void PaneTranceHira(s16, u8, f32, f32, u8, int);
- void PaneTranceKata(s16, u8, f32, f32, u8, int);
- void PaneTranceEisu(s16, u8, f32, f32, u8, int);
- void PaneTranceArrow(s16, u8, f32, f32, u8, int);
- void PaneTranceEnd(s16, u8, f32, f32, u8, int);
+ int PaneTranceTitle(s16, u8, f32, f32, u8, int);
+ int PaneTranceName(s16, u8, f32, f32, u8, int);
+ int PaneTranceBase0(s16, u8, f32, f32, u8, int);
+ int PaneTranceBase(s16, u8, f32, f32, u8, int);
+ int PaneTranceHira(s16, u8, f32, f32, u8, int);
+ int PaneTranceKata(s16, u8, f32, f32, u8, int);
+ int PaneTranceEisu(s16, u8, f32, f32, u8, int);
+ int PaneTranceArrow(s16, u8, f32, f32, u8, int);
+ int PaneTranceEnd(s16, u8, f32, f32, u8, int);
void displayInit();
void NameStrSet();
- /* 0x0004 */ u8 field_0x4[0x0008 - 0x0004];
- /* 0x0008 */ dDlst_NameIN_c field_0x8;
- /* 0x000C */ u8 field_0xc[0x290B - 0x000C];
- /* 0x290B */ u8 mIsInputEnd;
- /* 0x290C */ u8 field_0x290c[0x2A5C - 0x290C];
- /* 0x2A5C */ char mInputStr[8];
- /* 0x2A64 */ u8 field_0x2964[0x2AD0 - 0x2A64];
- /* 0x2AD0 */ char mNextNameStr[0x2AE8 - 0x2AD0];
+ void _deleteSp();
+
+ #if VERSION <= VERSION_JPN
+ BOOL checkDakuon(int, u8);
+ BOOL setDakuon(int, u8);
+ #endif
+
+ /* 0x0004 */ JKRArchive* archive;
+ /* 0x0008 */ dDlst_NameIN_c nameIn;
+ /* 0x0014 */ fopMsgM_pane_class field_0x14;
+ /* 0x004C */ fopMsgM_pane_class eisuMojiPanes[13];
+ /* 0x0324 */ fopMsgM_pane_class kataMojiPanes[13];
+ /* 0x05FC */ fopMsgM_pane_class hiraMojiPanes[13];
+ /* 0x08D4 */ fopMsgM_pane_class field_0x8d4[3];
+ /* 0x097C */ fopMsgM_pane_class field_0x97c[5];
+ /* 0x0A94 */ fopMsgM_pane_class finBtnPane;
+ /* 0x0ACC */ fopMsgM_pane_class field_0xacc[10];
+ /* 0x0CFC */ fopMsgM_pane_class field_0xcfc[5];
+ /* 0x0E14 */ fopMsgM_pane_class yazBtnPane;
+ /* 0x0E4C */ fopMsgM_pane_class field_0xe4c[10];
+ /* 0x107C */ fopMsgM_pane_class field_0x107c[5];
+ /* 0x1194 */ fopMsgM_pane_class englBtnPane;
+ /* 0x11CC */ fopMsgM_pane_class field_0x11cc[10];
+ /* 0x13FC */ fopMsgM_pane_class field_0x13fc[5];
+ /* 0x1514 */ fopMsgM_pane_class kanaBtnPane;
+ /* 0x154C */ fopMsgM_pane_class field_0x154c[10];
+ /* 0x177C */ fopMsgM_pane_class field_0x177c[5];
+ /* 0x1894 */ fopMsgM_pane_class hiraBtnPane;
+ /* 0x18CC */ fopMsgM_pane_class field_0x18cc[10];
+ /* 0x1AFC */ fopMsgM_pane_class field_0x1afc[5];
+ /* 0x1C14 */ fopMsgM_pane_class namePane;
+ /* 0x1C4C */ fopMsgM_pane_class field_0x1c4c;
+ /* 0x1C84 */ fopMsgM_pane_class field_0x1c84[5];
+ /* 0x1D9C */ fopMsgM_pane_class field_0x1d9c[7];
+ /* 0x1F24 */ fopMsgM_pane_class field_0x1f24[7];
+ /* 0x20AC */ fopMsgM_pane_class titlePane;
+ /* 0x20E4 */ fopMsgM_pane_class field_0x20e4[5];
+ /* 0x21FC */ fopMsgM_pane_class field_0x21fc[7];
+ /* 0x2384 */ fopMsgM_pane_class field_0x2384[7];
+ /* 0x250C */ fopMsgM_pane_class field_0x250c[9];
+ /* 0x2704 */ fopMsgM_pane_class field_0x2704[9];
+ /* 0x28FC */ STControl* stick;
+ /* 0x2900 */ u8 charColumn;
+ /* 0x2901 */ u8 charRow;
+ /* 0x2902 */ u8 mojiSet;
+ /* 0x2903 */ u8 selProc;
+ /* 0x2904 */ u8 selMenu;
+ /* 0x2905 */ u8 field_0x2905;
+ /* 0x2906 */ u8 field_0x2906;
+ /* 0x2907 */ u8 curPos;
+ /* 0x2908 */ u8 field_0x2908;
+ /* 0x2909 */ u8 field_0x2909;
+ /* 0x290A */ u8 field_0x290a;
+ /* 0x290B */ u8 isInputEnd_;
+ /* 0x290C */ u8 prevMojiSet;
+ /* 0x290D */ u8 field_0x290d;
+ /* 0x290E */ u8 field_0x290E[0x2910 - 0x290E];
+ /* 0x2910 */ s16 paneTransTimer;
+ /* 0x2912 */ u8 field_0x2912[0x2914 - 0x2912];
+ /* 0x2914 */ char nameBuffer[320];
+ /* 0x2A54 */ char* pCurTxt;
+ /* 0x2A58 */ char* pNameTxt;
+ /* 0x2A5C */ char inputStr[20];
+ /* 0x2A70 */ ChrInfo_c chrInfo[8];
+ /* 0x2AB0 */ u8 field_0x2ab0[MENU_MAX][4];
+ /* 0x2AC4 */ f32 field_0x2ac4;
+ /* 0x2AC8 */ f32 field_0x2ac8;
+ /* 0x2ACC */ f32 field_0x2acc;
+ /* 0x2AD0 */ char nextNameStr[20];
+ /* 0x2AE4 */ u32 inputCompleteSound;
+#if VERSION == VERSION_PAL
+ /* 0x2AE8 */ char* field_0x2ae8;
+#endif
};
-STATIC_ASSERT(sizeof(dName_c) == 0x2AE8);
+//STATIC_ASSERT(sizeof(dName_c) == 0x2AE8);
#endif /* D_NAME_H */
diff --git a/include/global.h b/include/global.h
index ff4ac7d1..a598a4a0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -73,4 +73,10 @@ extern void __sync();
#define DEMO_SELECT(DEMO, RETAIL) (RETAIL)
#endif
+#ifdef __MWERKS__
+#define SJIS(character, value) character
+#else
+#define SJIS(character, value) ((u32)value)
+#endif
+
#endif