summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JMessage/processor.h176
-rw-r--r--include/d/com/d_com_inf_game.h29
-rw-r--r--include/d/d_gameover.h4
-rw-r--r--include/d/d_stage.h5
-rw-r--r--include/d/d_timer.h2
-rw-r--r--include/d/event/d_event_data.h3
-rw-r--r--include/d/kankyo/d_kankyo.h3
-rw-r--r--include/d/kankyo/d_kankyo_wether.h18
-rw-r--r--include/d/menu/d_menu_window.h2
-rw-r--r--include/d/meter/d_meter2.h2
-rw-r--r--include/d/meter/d_meter2_info.h42
-rw-r--r--include/d/msg/d_msg_class.h449
-rw-r--r--include/d/msg/d_msg_flow.h4
-rw-r--r--include/d/msg/d_msg_object.h77
-rw-r--r--include/d/msg/d_msg_unit.h14
-rw-r--r--include/d/save/d_save.h8
-rw-r--r--include/dolphin/gx/GX.h6
-rw-r--r--include/dolphin/gx/GXAttr.h8
-rw-r--r--include/dolphin/gx/GXDraw.h17
-rw-r--r--include/f_op/f_op_msg.h16
-rw-r--r--include/f_op/f_op_msg_mng.h4
-rw-r--r--include/m_Do/m_Do_ext.h39
-rw-r--r--include/m_Do/m_Do_mtx.h2
-rw-r--r--include/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.h23
24 files changed, 695 insertions, 258 deletions
diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h
index 5ca3f9c77a..f90f03264b 100644
--- a/include/JSystem/JMessage/processor.h
+++ b/include/JSystem/JMessage/processor.h
@@ -3,7 +3,6 @@
#include "JSystem/JMessage/resource.h"
#include "JSystem/JUtility/JUTFont.h"
-#include "SSystem/SComponent/c_xyz.h"
#include "init.h"
namespace JMessage {
@@ -11,6 +10,8 @@ struct TResource;
struct TResourceContainer;
struct TReference {
+ TReference() { pcResource_ = NULL; }
+
/* 802A7AF8 */ virtual ~TReference();
/* 802A7B40 */ virtual const char* do_word(u32) const;
@@ -183,6 +184,7 @@ struct TProcessor {
const TResource* getResourceCache() const { return pResourceCache_; }
const char* getCurrent() const { return pszCurrent_; }
+ const TReference* getReference() const { return pReference_; }
const TResource* getResource_groupID_uncached(u16 groupID) const {
return pReference_->getResource_groupID(groupID);
@@ -268,7 +270,8 @@ struct TSequenceProcessor : public TProcessor {
TControl* getControl() const { return pControl_; }
static const void* process_setMessageIndex_(const TSequenceProcessor* pProcessor, u16 param_1) {
- return process_setMessageCode_(pProcessor, pProcessor->getResourceCache()->getGroupID(), param_1);
+ return process_setMessageCode_(pProcessor, pProcessor->getResourceCache()->getGroupID(),
+ param_1);
}
static const void* process_setMessageCode_(const TSequenceProcessor* pProcessor, u32 param_1) {
@@ -291,173 +294,4 @@ struct TRenderingProcessor : public TProcessor {
};
}; // namespace JMessage
-struct STControl;
-struct dMsgObject_c;
-struct jmessage_tReference : public JMessage::TReference {
- /* 80228B04 */ jmessage_tReference();
- /* 80228D28 */ void calcDistance();
- /* 80228DE0 */ void getLineMax();
- /* 80228E6C */ void isKanban();
- /* 80228EA0 */ void isPlaceName();
- /* 80228ED4 */ void isBossName();
- /* 80228F08 */ void isSaveSeq();
- /* 80228F3C */ void isBook();
- /* 80228F70 */ void isStaffRoll();
- /* 80228FA4 */ void isHowl();
- /* 80228FD8 */ void isMidona();
- /* 8022900C */ void resetReference();
- /* 80229034 */ void pageSend();
- /* 80229168 */ void selectMessage();
- /* 802294A8 */ void inputNumber();
- /* 80229730 */ void getWord(int);
- /* 80229744 */ void resetWord();
- /* 80229768 */ void setCharactor(u16);
- /* 80229788 */ void addCharactor(u16);
- /* 802297B0 */ void resetCharactor();
- /* 802297E4 */ void shiftCharCountBuffer();
- /* 80229810 */ void resetCharCountBuffer();
- /* 80229848 */ void allsetCharCountBuffer();
- /* 8022986C */ void isCharSend();
- /* 802298DC */ void isLightSend();
- /* 8022994C */ void isLightEnd();
- /* 802299AC */ void decideOutFontRupeeColor(int);
- /* 80232A20 */ void getActorPos();
-
- /* 80238C78 */ void setActorPos(cXyz pos) { mActorPos = pos; }
-
- /* 80228CB4 */ virtual ~jmessage_tReference();
-
-private:
- /* 0x0008 */ STControl* mpStick;
- /* 0x000C */ u16 field_0xc[0x200];
- /* 0x040C */ s16 field_0x40c;
- /* 0x040E */ s16 field_0x40e;
- /* 0x0410 */ s16 mCountBackUp;
- /* 0x0414 */ cXyz mActorPos;
- /* 0x0420 */ f32 mFontSizeX;
- /* 0x0424 */ f32 mFontSizeY;
- /* 0x0428 */ f32 mRubySize;
- /* 0x042C */ f32 mTBoxWidth;
- /* 0x0430 */ f32 mTBoxHeight;
- /* 0x0434 */ f32 mLineSpace;
- /* 0x0438 */ f32 mCharSpace;
- /* 0x043C */ f32 mRubyCharSpace;
- /* 0x0440 */ f32 mSelFontSize;
- /* 0x0444 */ f32 mSelRubySize;
- /* 0x0448 */ f32 mSelTBoxWidth;
- /* 0x044C */ f32 mSelCharSpace;
- /* 0x0450 */ f32 mSelRubyCharSpace;
- /* 0x0454 */ f32 mDistanceScale;
- /* 0x0458 */ f32 mAddCharAllAlphaRate;
- /* 0x045C */ f32 mCharAllAlphaRate;
- /* 0x0460 */ f32 mAddCharAlpha;
- /* 0x0464 */ f32 mCharAlpha;
- /* 0x0468 */ f32 mStrLength[40];
- /* 0x0508 */ f32 mSpaceLength[40];
- /* 0x05A8 */ f32 mSelLength[3];
- /* 0x05B4 */ u32 mDemoFrame;
- /* 0x05B8 */ u32 mRevoMessageID;
- /* 0x05BC */ u16* mpStatus;
- /* 0x05C0 */ dMsgObject_c* mpObjectPtr;
- /* 0x05C4 */ char* mpSelMsgPtr;
- /* 0x05C8 */ JUTFont* mpFont;
- /* 0x05CC */ s16 mStartLineCount;
- /* 0x05CE */ s16 mEndLineCount;
- /* 0x05D0 */ u16 mLineCount;
- /* 0x05D2 */ s16 field_0x5d2;
- /* 0x05D4 */ s16 mPageEndCount;
- /* 0x05D6 */ s16 mSendTimer;
- /* 0x05D8 */ s16 mCharCnt;
- /* 0x05DA */ s16 mPageNum;
- /* 0x05DC */ u8 mNowLightCount;
- /* 0x05DD */ u8 mDrawLightCount;
- /* 0x05DE */ u16 mMsgID;
- /* 0x05E0 */ u16 mLineScale[40];
- /* 0x0630 */ u16 mTopTagScale;
- /* 0x0632 */ u16 mNowTagScale;
- /* 0x0634 */ char mWord[10][100];
- /* 0x0A1C */ char mTextPtr[0x200];
- /* 0x0C1C */ char mTextSPtr[0x200];
- /* 0x0E1C */ char mRuby[0x200];
- /* 0x101C */ u8 mSelText[3][50];
- /* 0x10B2 */ u8 mSelRuby[3][80];
- /* 0x11A2 */ s8 mPageLine[40];
- /* 0x11CA */ s8 mPageLineMax[40];
- /* 0x11F2 */ u8 mPageType[40];
- /* 0x121A */ u8 mLineArrange[40];
- /* 0x1242 */ u8 mSelectNum;
- /* 0x1243 */ u8 mSelectType;
- /* 0x1244 */ u8 mSelectPos;
- /* 0x1245 */ u8 mFukiPosType;
- /* 0x1246 */ u8 mFukiKind;
- /* 0x1247 */ u8 mForm;
- /* 0x1248 */ u8 field_0x1248;
- /* 0x1249 */ u8 mNowColorType;
- /* 0x124A */ u8 mTopColorType;
- /* 0x124B */ bool mButtonTagStopFlag;
- /* 0x124C */ u8 mSendFlag;
- /* 0x124D */ u8 mStopFlag;
- /* 0x124E */ u8 mSelectRubyFlag;
- /* 0x124F */ u8 mInputFigure;
- /* 0x1250 */ u8 mOutFontRupeeColor;
- /* 0x1251 */ s8 mNowWordCount;
- /* 0x1252 */ s8 mTopWordCount;
- /* 0x1253 */ u8 mCharCountBuffer[31];
- /* 0x1272 */ bool mLightBatchFlag;
- /* 0x1273 */ bool mBatchFlag;
- /* 0x1274 */ bool mSelectSetCancelFlag;
- /* 0x1275 */ bool mBombNameUseFlag;
- /* 0x1276 */ bool mBatchColorFlag;
-}; // Size: 0x1278
-
-struct jmessage_tControl;
-struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor {
- /* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*);
- /* 8022C904 */ void do_name1();
- /* 8022C908 */ void do_space(u32);
- /* 8022CA24 */ void do_rubyset(void const*, u32);
- /* 8022CAAC */ void push_word();
- /* 8022CB10 */ void messageSePlay(u8, u8, cXyz*);
- /* 8022CBE8 */ void calcStringLength();
-
- /* 8023299C */ virtual ~jmessage_tSequenceProcessor();
- /* 8022B654 */ virtual void do_reset();
- /* 8022B658 */ virtual void do_begin(void const*, char const*);
- /* 8022BA3C */ virtual void do_end();
- /* 8022BFE0 */ virtual void do_character(int);
- /* 8022C1A0 */ virtual bool do_tag(u32, void const*, u32);
- /* 8022BB7C */ virtual bool do_isReady();
- /* 8022C8FC */ virtual bool do_jump_isReady();
- /* 8022CBE4 */ virtual void do_jump(void const*, char const*);
-};
-
-struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
- /* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*);
- /* 8022E12C */ void resetRendering();
- /* 8022E17C */ void do_widthcenter();
- /* 8022E260 */ void do_selwidthcenter(int);
- /* 8022E318 */ void do_heightcenter();
- /* 8022E7CC */ void do_color(u8);
- /* 8022E860 */ void do_scale(f32);
- /* 8022E960 */ void do_linedown(s16);
- /* 8022E9C0 */ void do_transY(s16, bool);
- /* 8022EAE4 */ void do_outfont(u8, u32);
- /* 8022ED10 */ void do_arrow2();
- /* 8022EECC */ void getLineLength(int);
- /* 8022EF00 */ void do_strcat(char*, bool, bool, bool);
- /* 8022F148 */ void do_rubyset(void const*, u32);
- /* 8022F384 */ void do_rubystrcat(char*, char*, f32, f32);
- /* 8022F53C */ void do_name1();
- /* 8022F540 */ void do_numset(s16);
- /* 8022F734 */ void push_word();
- /* 8022F784 */ void getCharInfo(f32, f32, f32, f32, f32);
-
- /* 8023293C */ virtual ~jmessage_tRenderingProcessor();
- /* 8022CDC8 */ virtual void do_reset();
- /* 8022CDCC */ virtual void do_begin(void const*, char const*);
- /* 8022CFD8 */ virtual void do_end();
- /* 8022D0A0 */ virtual void do_character(int);
- /* 8022D74C */ virtual void do_tag(u32, void const*, u32);
-};
-
#endif /* JMESSAGE_PROCESSOR_H */
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index cc18f4a398..9d6c0083a0 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -289,7 +289,7 @@ public:
f32 getItemLifeCount() { return mItemLifeCount; }
s16 getItemMaxArrowNumCount() { return mItemMaxArrowNumCount; }
void clearNowAnimeID() { mNowAnimeID = -1; }
- void clearMesgCamInfoID() { mMesgCamInfo = (void*)-1; }
+ void clearMesgCamInfoID() { mMesgCamInfo = -1; }
void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; }
void clearItemLifeCount() {
mItemLifeCount = 0.0f;
@@ -401,6 +401,10 @@ public:
setCameraAttentionStatus(camIdx, 0);
}
+ void setMesgCamInfoID(int param_0) {
+ mMesgCamInfo = param_0;
+ }
+
void setStatus(u16 status) { mStatus = status; }
s32 checkStatus(u16 flags) { return flags & mStatus; }
@@ -634,7 +638,7 @@ public:
/* 0x04FAB */ u8 field_0x4fab; // related to setWarpItemData
/* 0x04FAC */ u8 field_0x4fac; // related to setWarpItemData
/* 0x04FAD */ u8 field_0x4fad[3];
- /* 0x04FB0 */ void* mMesgCamInfo;
+ /* 0x04FB0 */ int mMesgCamInfo;
/* 0x04FB4 */ int mMesgCamInfoBasicID;
/* 0x04FB8 */ fopAc_ac_c* mMesgCamInfoActor1;
/* 0x04FBC */ fopAc_ac_c* mMesgCamInfoActor2;
@@ -838,6 +842,7 @@ int dComIfGs_isItemFirstBit(u8 i_no);
u16 dComIfGs_getRupee();
static u16 dComIfGs_getLife();
s8 dComIfGs_BossLife_public_Get();
+u8 dComIfGs_checkGetInsectNum();
inline void dComIfGs_init() {
g_dComIfG_gameInfo.info.init();
@@ -1379,6 +1384,18 @@ inline char* dComIfGs_getPlayerName() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().getLinkName();
}
+inline char* dComIfGs_getHorseName() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().getHorseName();
+}
+
+inline u32 dComIfGs_getRaceGameTime() {
+ return g_dComIfG_gameInfo.info.getMiniGame().getRaceGameTime();
+}
+
+inline u32 dComIfGs_getBalloonScore() {
+ return g_dComIfG_gameInfo.info.getMiniGame().getBalloonScore();
+}
+
inline u8 dComIfGs_getTransformStatus() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getTransformStatus();
}
@@ -1469,6 +1486,10 @@ inline int dComIfGs_getTmpReg(u16 i_reg) {
return g_dComIfG_gameInfo.info.getTmp().getEventReg(i_reg);
}
+inline u8 i_dComIfGs_getEventReg(u16 reg) {
+ return g_dComIfG_gameInfo.info.getEvent().getEventReg(reg);
+}
+
inline void dComIfGs_setWarashibeItem(u8 i_itemNo) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setWarashibeItem(i_itemNo);
}
@@ -2384,6 +2405,10 @@ inline u8 dComIfGp_getMesgStatus() {
return g_dComIfG_gameInfo.play.getMesgStatus();
}
+inline void dComIfGp_setMesgCameraTagInfo(int param_0) {
+ g_dComIfG_gameInfo.play.setMesgCamInfoID(param_0);
+}
+
inline s32 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
diff --git a/include/d/d_gameover.h b/include/d/d_gameover.h
index 7ddd006b4a..3e2c20b081 100644
--- a/include/d/d_gameover.h
+++ b/include/d/d_gameover.h
@@ -3,7 +3,7 @@
#include "SSystem/SComponent/c_phase.h"
#include "d/menu/d_menu_save.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"
@@ -23,7 +23,7 @@ public:
class dDlst_Gameover_CAPTURE_c : public dDlst_base_c {
public:
/* 8019ACF8 */ virtual void draw();
- /* 8019C2CC */ virtual ~dDlst_Gameover_CAPTURE_c();
+ /* 8019C2CC */ virtual ~dDlst_Gameover_CAPTURE_c();
};
class dMsgScrnLight_c;
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 56093e0d47..1a5d48ca69 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -273,7 +273,10 @@ public:
// PPNT
struct dStage_dPnt_c {
- /* 0x0 */ int field_0x0;
+ /* 0x0 */ u8 field_0x0;
+ /* 0x1 */ u8 field_0x1;
+ /* 0x2 */ u8 field_0x2;
+ /* 0x3 */ u8 field_0x3;
/* 0x4 */ cXyz m_position;
}; // Size: 0x10
diff --git a/include/d/d_timer.h b/include/d/d_timer.h
index 63d6f14f7c..ef75f4045d 100644
--- a/include/d/d_timer.h
+++ b/include/d/d_timer.h
@@ -5,7 +5,7 @@
#include "JSystem/JKernel/JKRExpHeap.h"
#include "SSystem/SComponent/c_phase.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
#include "d/msg/d_msg_object.h"
#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h
index b5857f5141..1b2d413e90 100644
--- a/include/d/event/d_event_data.h
+++ b/include/d/event/d_event_data.h
@@ -2,9 +2,8 @@
#define D_EVENT_D_EVENT_DATA_H
#include "d/d_stage.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
#include "d/save/d_save.h"
-#include "dolphin/types.h"
struct event_binary_data_header {
/* 0x00 */ u32 eventTop; // offset to Event chunk
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index 051412b54e..d55cc9097a 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -38,6 +38,9 @@ static void GxXFog_set();
u8 dKy_pol_argument_get(cBgS_PolyInfo const* i_poly);
void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int param_3);
void dKy_bg_MAxx_proc(void* param_0);
+void dKy_change_colpat(u8 colpat);
+void dKy_BossLight_set(cXyz* param_0, _GXColor* param_1, f32 param_2, u8 param_3);
+void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend);
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE() {}
diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h
index b6f66d3783..90c1fe3bb8 100644
--- a/include/d/kankyo/d_kankyo_wether.h
+++ b/include/d/kankyo/d_kankyo_wether.h
@@ -22,6 +22,9 @@ static void squal_proc();
void dKyw_rain_set(int count);
void dKyw_wind_set();
cXyz dKyw_get_wind_vecpow();
+void dKyw_evt_wind_set(s16 angleX, s16 angleY);
+void dKyw_custom_windpower(f32 pow);
+void dKyw_evt_wind_set_go();
class dKankyo_sun_Packet : public J3DPacket {
public:
@@ -133,9 +136,18 @@ public:
virtual void draw();
virtual ~dKankyo_snow_Packet();
-private:
- /* 0x10 */ u8* mpTex;
- /* 0x14 */ SNOW_EFF mSnowEff[500];
+ /* 0x0010 */ u8* mpTex;
+ /* 0x0014 */ SNOW_EFF mSnowEff[500];
+ /* 0x6D74 */ cXyz field_0x6d74;
+ /* 0x6D80 */ f32 field_0x6d80;
+ /* 0x6D84 */ f32 field_0x6d84;
+ /* 0x6D88 */ u16 field_0x6d88;
+ /* 0x6D8A */ u16 field_0x6d8a;
+ /* 0x6D8C */ u32 field_0x6d8c;
+ /* 0x6D90 */ u8 field_0x6d90;
+ /* 0x6D91 */ u8 field_0x6d91;
+ /* 0x6D92 */ u8 field_0x6d92;
+ /* 0x6D93 */ u8 field_0x6d93;
};
struct STAR_EFF {
diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h
index 8734194867..0713418675 100644
--- a/include/d/menu/d_menu_window.h
+++ b/include/d/menu/d_menu_window.h
@@ -4,7 +4,7 @@
#include "d/d_drawlist.h"
#include "d/menu/d_menu_collect.h"
#include "d/meter/d_meter2_info.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h
index 02e8c4ce49..75198c5793 100644
--- a/include/d/meter/d_meter2.h
+++ b/include/d/meter/d_meter2.h
@@ -5,7 +5,7 @@
#include "d/com/d_com_inf_game.h"
#include "d/meter/d_meter2_draw.h"
#include "d/meter/d_meter_map.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
#include "dolphin/types.h"
class dMeterMap_c;
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index eb02183a84..b1ebbbc3ba 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -5,29 +5,11 @@
#include "d/d_resorce.h"
#include "d/menu/d_menu_window.h"
#include "d/meter/d_meter2.h"
+#include "d/msg/d_msg_class.h"
#include "d/msg/d_msg_flow.h"
#include "d/pane/d_pane_class.h"
-#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
-struct JMSMesgEntry_c {
- /* 0x00 */ u32 mStringOffset;
- /* 0x04 */ u16 mStringId;
- /* 0x06 */ u16 field_0x04;
- /* 0x08 */ u8 field_0x08;
- /* 0x09 */ u8 field_0x09;
- /* 0x0A */ u8 field_0x0a;
- /* 0x0B */ u8 field_0x0b;
- /* 0x0C */ u8 field_0x0c;
- /* 0x0D */ u8 field_0x0d;
- /* 0x0E */ u8 field_0x0e;
- /* 0x0F */ u8 field_0x0f;
- /* 0x10 */ u8 field_0x10;
- /* 0x11 */ u8 field_0x11;
- /* 0x12 */ u8 field_0x12;
- /* 0x13 */ u8 field_0x13;
-}; // Size: 0x14
-
struct dMenu_LetterData {
u16 mSubject;
u16 mName;
@@ -89,7 +71,7 @@ public:
void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8);
u8 getItemType(u8);
int readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
- J2DPicture*, int);
+ J2DPicture*, int);
void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
s16 get2ndTexture(u8);
s16 get3rdTexture(u8);
@@ -162,6 +144,10 @@ public:
s16 getMsgKeyWaitTimer() { return mMsgKeyWaitTimer; }
u8 getGameOverType() { return mGameOverType; }
void setGameOverType(u8 i_gameoverType) { mGameOverType = i_gameoverType; }
+ void setMsgKeyWaitTimer(s16 i_waitTimer) { mMsgKeyWaitTimer = i_waitTimer; }
+ u32 getMsgTimeMs() { return mMsgTimeMs; }
+ u32 getTimeMs() { return mTimeMs; }
+ u8 getNowCount() { return mNowCount; }
public:
/* 0x04 */ u8 unk4[4];
@@ -516,6 +502,22 @@ inline void dMeter2Info_setGameOverType(u8 i_gameoverType) {
g_meter2_info.setGameOverType(i_gameoverType);
}
+inline void dMeter2Info_setMsgKeyWaitTimer(s16 i_waitTimer) {
+ g_meter2_info.setMsgKeyWaitTimer(i_waitTimer);
+}
+
+inline u32 dMeter2Info_getMsgTimeMs() {
+ return g_meter2_info.getMsgTimeMs();
+}
+
+inline u32 dMeter2Info_getTimeMs() {
+ return g_meter2_info.getTimeMs();
+}
+
+inline u8 dMeter2Info_getNowCount() {
+ return g_meter2_info.getNowCount();
+}
+
char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
u8 dMeter2Info_getNewLetterNum();
diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h
index 8ac1d507e5..1b04e9eaf8 100644
--- a/include/d/msg/d_msg_class.h
+++ b/include/d/msg/d_msg_class.h
@@ -1,22 +1,437 @@
#ifndef D_MSG_D_MSG_CLASS_H
#define D_MSG_D_MSG_CLASS_H
-#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
-
-
-class msg_class : public leafdraw_class {
-public:
- /* 0xC0 */ int mMsgType;
- /* 0xC4 */ create_tag_class mDwTg;
- /* 0xD8 */ leafdraw_method_class* mSubMtd;
- /* 0xDC */ fopAc_ac_c* mpActor;
- /* 0xE0 */ cXyz mPos;
- /* 0xEC */ u32 mMsgID;
- /* 0xF0 */ u32 field_0xf0;
- /* 0xF4 */ u32 field_0xf4;
- /* 0xF8 */ u16 mMode;
- /* 0xFA */ u8 mSelectedChoiceIdx;
-}; // Size: 0xFC
+#include "JSystem/JMessage/control.h"
+#include "JSystem/JMessage/processor.h"
+#include "d/msg/d_msg_out_font.h"
+#include "f_op/f_op_msg.h"
+
+struct JMSMesgEntry_c {
+ /* 0x00 */ u32 mStringOffset;
+ /* 0x04 */ u16 mStringId;
+ /* 0x06 */ u16 field_0x04;
+ /* 0x08 */ u8 field_0x08;
+ /* 0x09 */ u8 field_0x09;
+ /* 0x0A */ u8 field_0x0a;
+ /* 0x0B */ u8 field_0x0b;
+ /* 0x0C */ u8 field_0x0c;
+ /* 0x0D */ u8 field_0x0d;
+ /* 0x0E */ u8 field_0x0e;
+ /* 0x0F */ u8 field_0x0f;
+ /* 0x10 */ u32 field_0x10;
+}; // Size: 0x14
+
+struct JMSMesgHeader_c {
+ /* 0x00 */ u32 magic;
+ /* 0x04 */ u32 sectionSize;
+ /* 0x08 */ u16 entryCount;
+ /* 0x0A */ u16 entrySize;
+ /* 0x0C */ u16 field_0xc;
+ /* 0x0E */ u16 field_0xe;
+}; // Size: 0x10
+
+struct STControl;
+struct dMsgObject_c;
+struct jmessage_tReference : public JMessage::TReference {
+ /* 80228B04 */ jmessage_tReference();
+ /* 80228D28 */ void calcDistance();
+ /* 80228DE0 */ u8 getLineMax();
+ /* 80228E6C */ bool isKanban();
+ /* 80228EA0 */ bool isPlaceName();
+ /* 80228ED4 */ bool isBossName();
+ /* 80228F08 */ bool isSaveSeq();
+ /* 80228F3C */ bool isBook();
+ /* 80228F70 */ bool isStaffRoll();
+ /* 80228FA4 */ u8 isHowl();
+ /* 80228FD8 */ bool isMidona();
+ /* 8022900C */ void resetReference();
+ /* 80229034 */ void pageSend();
+ /* 80229168 */ void selectMessage();
+ /* 802294A8 */ void inputNumber();
+ /* 80229730 */ const char* getWord(int);
+ /* 80229744 */ void resetWord();
+ /* 80229768 */ void setCharactor(u16);
+ /* 80229788 */ void addCharactor(u16);
+ /* 802297B0 */ void resetCharactor();
+ /* 802297E4 */ void shiftCharCountBuffer();
+ /* 80229810 */ void resetCharCountBuffer();
+ /* 80229848 */ void allsetCharCountBuffer();
+ /* 8022986C */ bool isCharSend();
+ /* 802298DC */ bool isLightSend();
+ /* 8022994C */ bool isLightEnd();
+ /* 802299AC */ void decideOutFontRupeeColor(int);
+ /* 80232A20 */ cXyz getActorPos();
+
+ /* 80238C78 */ void setActorPos(cXyz pos) { mActorPos = pos; }
+
+ bool isSelectSetCancelFlag() { return mSelectSetCancelFlag != 0; }
+ BOOL isSelectRubyFlag(int i_flag) {
+ return mSelectRubyFlag & (u8)(1 << i_flag) ? 1 : 0;
+ }
+
+ void setAddCharAllAlphaRate(f32 i_alphaRate) { mAddCharAllAlphaRate = i_alphaRate; }
+ void setCharAllAlphaRate(f32 i_alphaRate) { mCharAllAlphaRate = i_alphaRate; }
+ void resetNowLightCount() { mNowLightCount = 0; }
+ void resetDrawLightCount() { mDrawLightCount = 0; }
+ void setBatchColorFlag(u8 i_flag) { mBatchColorFlag = i_flag; }
+ void setSendTimer(s16 i_timer) { mSendTimer = i_timer; }
+ void setSendFlag(u8 i_flag) { mSendFlag = i_flag; }
+ void setSelectNum(u8 i_num) { mSelectNum = i_num; }
+ void setSelectType(u8 i_type) { mSelectType = i_type; }
+ void resetInputFigure() { mInputFigure = 0; }
+ void onButtonTagStopFlag() { mButtonTagStopFlag = 1; }
+ void setDemoFrame(u32 i_frame) { mDemoFrame = i_frame; }
+ void setNowColorType(u8 i_colorType) { mNowColorType = i_colorType; }
+ void setNowTagScale(u16 i_tagScale) { mNowTagScale = i_tagScale; }
+ void setRevoMessageID(u32 i_msgID) { mRevoMessageID = i_msgID; }
+ void setPageLine(int i_no, s8 i_pageLine) { mPageLine[i_no] = i_pageLine; }
+ void setPageLineMax(int i_no, s8 i_pageLineMax) { mPageLineMax[i_no] = i_pageLineMax; }
+ void setPageType(int i_no, u8 i_pageType) { mPageType[i_no] = i_pageType; }
+ void setLineArrange(int i_no, u8 i_arrange) { mLineArrange[i_no] = i_arrange; }
+ void setLineScale(int i_no, u16 i_lineScale) { mLineScale[i_no] = i_lineScale; }
+ void setSelLength(int i_no, f32 i_selLength) { mSelLength[i_no] = i_selLength; }
+ void offSelectRubyFlag(int i_flag) { mSelectRubyFlag &= ~(u8)(1 << i_flag); }
+ void setPageEndCount(s16 i_endCount) { mPageEndCount = i_endCount; }
+ void onBombNameUseFlag() { mBombNameUseFlag = 1; }
+ void onSelectRubyFlag(int i_flag) { mSelectRubyFlag |= (1 << i_flag); }
+
+ void setLineLength(int i_no, f32 i_strLen, f32 i_spaceLen) {
+ mStrLength[i_no] = i_strLen;
+ mSpaceLength[i_no] = i_spaceLen;
+ }
+
+ void setSelectPos(u8 i_pos) {
+ if (!isSelectSetCancelFlag()) {
+ mSelectPos = i_pos;
+ }
+ }
+
+ dMsgObject_c* getObjectPtr() { return mpObjectPtr; }
+ u8 getForm() { return mForm; }
+ u8 getNowLightCount() { return mNowLightCount; }
+ u8 getCharCountBuffer(int i_no) { return mCharCountBuffer[i_no]; }
+ u8 getDrawLightCount() { return mDrawLightCount; }
+ u8 getFukiKind() { return mFukiKind; }
+ s16 getSendTimer() { return mSendTimer; }
+ u8 getSelectNum() { return mSelectNum; }
+ u8 getSelectType() { return mSelectType; }
+ const char* getSelMsgPtr() { return mpSelMsgPtr; }
+ f32 getDistanceScale() { return mDistanceScale; }
+
+ /* 80228CB4 */ virtual ~jmessage_tReference();
+
+ /* 0x0008 */ STControl* mpStick;
+ /* 0x000C */ u16 mCharactor[0x200];
+ /* 0x040C */ s16 field_0x40c;
+ /* 0x040E */ s16 field_0x40e;
+ /* 0x0410 */ s16 mCountBackUp;
+ /* 0x0414 */ cXyz mActorPos;
+ /* 0x0420 */ f32 mFontSizeX;
+ /* 0x0424 */ f32 mFontSizeY;
+ /* 0x0428 */ f32 mRubySize;
+ /* 0x042C */ f32 mTBoxWidth;
+ /* 0x0430 */ f32 mTBoxHeight;
+ /* 0x0434 */ f32 mLineSpace;
+ /* 0x0438 */ f32 mCharSpace;
+ /* 0x043C */ f32 mRubyCharSpace;
+ /* 0x0440 */ f32 mSelFontSize;
+ /* 0x0444 */ f32 mSelRubySize;
+ /* 0x0448 */ f32 mSelTBoxWidth;
+ /* 0x044C */ f32 mSelCharSpace;
+ /* 0x0450 */ f32 mSelRubyCharSpace;
+ /* 0x0454 */ f32 mDistanceScale;
+ /* 0x0458 */ f32 mAddCharAllAlphaRate;
+ /* 0x045C */ f32 mCharAllAlphaRate;
+ /* 0x0460 */ f32 mAddCharAlpha;
+ /* 0x0464 */ f32 mCharAlpha;
+ /* 0x0468 */ f32 mStrLength[40];
+ /* 0x0508 */ f32 mSpaceLength[40];
+ /* 0x05A8 */ f32 mSelLength[3];
+ /* 0x05B4 */ u32 mDemoFrame;
+ /* 0x05B8 */ u32 mRevoMessageID;
+ /* 0x05BC */ u16* mpStatus;
+ /* 0x05C0 */ dMsgObject_c* mpObjectPtr;
+ /* 0x05C4 */ char* mpSelMsgPtr;
+ /* 0x05C8 */ JUTFont* mpFont;
+ /* 0x05CC */ s16 mStartLineCount;
+ /* 0x05CE */ s16 mEndLineCount;
+ /* 0x05D0 */ u16 mLineCount;
+ /* 0x05D2 */ s16 field_0x5d2;
+ /* 0x05D4 */ s16 mPageEndCount;
+ /* 0x05D6 */ s16 mSendTimer;
+ /* 0x05D8 */ s16 mCharCnt;
+ /* 0x05DA */ s16 mPageNum;
+ /* 0x05DC */ u8 mNowLightCount;
+ /* 0x05DD */ u8 mDrawLightCount;
+ /* 0x05DE */ u16 mMsgID;
+ /* 0x05E0 */ u16 mLineScale[40];
+ /* 0x0630 */ u16 mTopTagScale;
+ /* 0x0632 */ u16 mNowTagScale;
+ /* 0x0634 */ char mWord[10][100];
+ /* 0x0A1C */ char mText[0x200];
+ /* 0x0C1C */ char mTextS[0x200];
+ /* 0x0E1C */ char mRuby[0x200];
+ /* 0x101C */ u8 mSelText[3][50];
+ /* 0x10B2 */ u8 mSelRuby[3][80];
+ /* 0x11A2 */ s8 mPageLine[40];
+ /* 0x11CA */ s8 mPageLineMax[40];
+ /* 0x11F2 */ u8 mPageType[40];
+ /* 0x121A */ u8 mLineArrange[40];
+ /* 0x1242 */ u8 mSelectNum;
+ /* 0x1243 */ u8 mSelectType;
+ /* 0x1244 */ u8 mSelectPos;
+ /* 0x1245 */ u8 mFukiPosType;
+ /* 0x1246 */ u8 mFukiKind;
+ /* 0x1247 */ u8 mForm;
+ /* 0x1248 */ u8 mArrange;
+ /* 0x1249 */ u8 mNowColorType;
+ /* 0x124A */ u8 mTopColorType;
+ /* 0x124B */ bool mButtonTagStopFlag;
+ /* 0x124C */ u8 mSendFlag;
+ /* 0x124D */ u8 mStopFlag;
+ /* 0x124E */ u8 mSelectRubyFlag;
+ /* 0x124F */ u8 mInputFigure;
+ /* 0x1250 */ u8 mOutFontRupeeColor;
+ /* 0x1251 */ s8 mNowWordCount;
+ /* 0x1252 */ s8 mTopWordCount;
+ /* 0x1253 */ u8 mCharCountBuffer[31];
+ /* 0x1272 */ bool mLightBatchFlag;
+ /* 0x1273 */ bool mBatchFlag;
+ /* 0x1274 */ bool mSelectSetCancelFlag;
+ /* 0x1275 */ bool mBombNameUseFlag;
+ /* 0x1276 */ u8 mBatchColorFlag;
+}; // Size: 0x1278
+
+struct jmessage_tMeasureProcessor : public JMessage::TRenderingProcessor {
+ /* 80229A28 */ jmessage_tMeasureProcessor(jmessage_tReference const*);
+ /* 8022B0B0 */ void do_scale(f32);
+ /* 8022B18C */ void do_space(u32);
+ /* 8022B3EC */ void do_pageType(int);
+ /* 8022B454 */ void do_name1();
+ /* 8022B458 */ void do_rubyset(void const*, u32);
+ /* 8022B4E0 */ void push_word(char*);
+
+ /* 8022B5F4 */ virtual ~jmessage_tMeasureProcessor();
+ /* 80229AC4 */ virtual void do_begin(void const*, char const*);
+ /* 80229CB4 */ virtual void do_end();
+ /* 80229E3C */ virtual void do_character(int);
+ /* 8022A268 */ virtual bool do_tag(u32, void const*, u32);
+
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ s16 mTotalLineCnt;
+ /* 0x3E */ s16 field_0x3e;
+ /* 0x40 */ s16 field_0x40;
+ /* 0x42 */ u16 field_0x42;
+ /* 0x44 */ u8 field_0x44;
+ /* 0x45 */ u8 mSelectType;
+ /* 0x46 */ u8 field_0x46;
+ /* 0x47 */ u8 field_0x47;
+ /* 0x48 */ s8 field_0x48;
+ /* 0x49 */ s8 field_0x49;
+ /* 0x4A */ u8 mPageLineMax;
+ /* 0x4B */ u8 field_0x4b;
+ /* 0x4C */ u8 field_0x4c;
+ /* 0x4D */ u8 field_0x4d;
+}; // Size: 0x50
+
+struct jmessage_tControl;
+struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor,
+ public jmessage_tMeasureProcessor {
+ /* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*);
+ /* 8022C904 */ void do_name1();
+ /* 8022C908 */ void do_space(u32);
+ /* 8022CA24 */ void do_rubyset(void const*, u32);
+ /* 8022CAAC */ void push_word();
+ /* 8022CB10 */ void messageSePlay(u8, u8, cXyz*);
+ /* 8022CBE8 */ void calcStringLength();
+
+ /* 8023299C */ virtual ~jmessage_tSequenceProcessor();
+ /* 8022B654 */ virtual void do_reset();
+ /* 8022B658 */ virtual void do_begin(void const*, char const*);
+ /* 8022BA3C */ virtual void do_end();
+ /* 8022BFE0 */ virtual void do_character(int);
+ /* 8022C1A0 */ virtual bool do_tag(u32, void const*, u32);
+ /* 8022BB7C */ virtual bool do_isReady();
+ /* 8022C8FC */ virtual bool do_jump_isReady();
+ /* 8022CBE4 */ virtual void do_jump(void const*, char const*);
+
+ /* 0x4C jmessage_tMeasureProcessor */
+ /* 0x9C */ const void* field_0x9c;
+ /* 0xA0 */ const char* field_0xa0;
+ /* 0xA4 */ u16 field_0xa4;
+ /* 0xA6 */ u16 field_0xa6;
+ /* 0xA8 */ s16 field_0xa8;
+ /* 0xAA */ u16 field_0xaa;
+ /* 0xAC */ u8 field_0xac;
+ /* 0xAD */ u8 field_0xad;
+ /* 0xAE */ u8 field_0xae;
+ /* 0xAF */ u8 mForceForm;
+ /* 0xB0 */ u8 mMouthCheck;
+ /* 0xB1 */ u8 field_0xb1;
+ /* 0xB2 */ u8 field_0xb2;
+ /* 0xB3 */ u8 field_0xb3;
+ /* 0xB4 */ u8 field_0xb4;
+ /* 0xB5 */ s8 field_0xb5;
+};
+
+struct CharInfo_c;
+struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
+ /* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*);
+ /* 8022E12C */ void resetRendering();
+ /* 8022E17C */ void do_widthcenter();
+ /* 8022E260 */ void do_selwidthcenter(int);
+ /* 8022E318 */ void do_heightcenter();
+ /* 8022E7CC */ void do_color(u8);
+ /* 8022E860 */ void do_scale(f32);
+ /* 8022E960 */ void do_linedown(s16);
+ /* 8022E9C0 */ void do_transY(s16, bool);
+ /* 8022EAE4 */ void do_outfont(u8, u32);
+ /* 8022ED10 */ void do_arrow2();
+ /* 8022EECC */ void getLineLength(int);
+ /* 8022EF00 */ void do_strcat(char*, bool, bool, bool);
+ /* 8022F148 */ void do_rubyset(void const*, u32);
+ /* 8022F384 */ void do_rubystrcat(char*, char*, f32, f32);
+ /* 8022F53C */ void do_name1();
+ /* 8022F540 */ void do_numset(s16);
+ /* 8022F734 */ void push_word();
+ /* 8022F784 */ void getCharInfo(f32, f32, f32, f32, f32);
+
+ /* 8023293C */ virtual ~jmessage_tRenderingProcessor();
+ /* 8022CDC8 */ virtual void do_reset();
+ /* 8022CDCC */ virtual void do_begin(void const*, char const*);
+ /* 8022CFD8 */ virtual void do_end();
+ /* 8022D0A0 */ virtual void do_character(int);
+ /* 8022D74C */ virtual bool do_tag(u32, void const*, u32);
+
+ /* 0x038 */ COutFont_c* mpOutFont;
+ /* 0x03C */ CharInfo_c* mCharInfoPtr;
+ /* 0x040 */ s16* mpCharInfoCnt;
+ /* 0x044 */ f32 field_0x44;
+ /* 0x048 */ f32 field_0x48;
+ /* 0x04C */ f32 field_0x4c;
+ /* 0x050 */ f32 mTextInitPosX;
+ /* 0x054 */ f32 mTextInitPosY;
+ /* 0x058 */ f32 mTextInitScaleX;
+ /* 0x05C */ f32 mTextInitScaleY;
+ /* 0x060 */ f32 mSelTextInitPosX[3];
+ /* 0x06C */ f32 mSelTextInitPosY[3];
+ /* 0x078 */ f32 mTextInitOffsetPos;
+ /* 0x07C */ f32 field_0x7c[40];
+ /* 0x11C */ int field_0x11c;
+ /* 0x120 */ u32 mCCColor;
+ /* 0x124 */ u32 mGCColor;
+ /* 0x128 */ f32 field_0x128;
+ /* 0x12C */ f32 field_0x12c;
+ /* 0x130 */ f32 field_0x130;
+ /* 0x134 */ f32 field_0x134;
+ /* 0x138 */ f32 field_0x138;
+ /* 0x13C */ u16 field_0x13c;
+ /* 0x13E */ u16 field_0x13e;
+ /* 0x140 */ u16 field_0x140;
+ /* 0x142 */ u16 field_0x142;
+ /* 0x144 */ u16 field_0x144;
+ /* 0x146 */ u16 field_0x146;
+ /* 0x148 */ u16 field_0x148;
+ /* 0x14A */ u16 field_0x14a;
+ /* 0x14C */ u8 field_0x14c;
+ /* 0x14D */ u8 field_0x14d;
+ /* 0x14E */ u8 field_0x14e;
+ /* 0x14F */ u8 field_0x14f;
+ /* 0x150 */ u8 mColorNo;
+ /* 0x151 */ u8 field_0x151;
+ /* 0x152 */ u8 field_0x152[0x184 - 0x152];
+ /* 0x184 */ u8 field_0x184;
+ /* 0x185 */ u8 field_0x185;
+ /* 0x186 */ u8 field_0x186;
+ /* 0x187 */ u8 field_0x187;
+};
+
+struct jmessage_string_tControl : public JMessage::TControl {
+ /* 8022FB5C */ jmessage_string_tControl();
+
+ /* 802328DC */ virtual ~jmessage_string_tControl();
+};
+
+struct jmessage_string_tReference : public JMessage::TReference {
+ /* 8022F8C0 */ jmessage_string_tReference();
+ /* 8022F9AC */ void init(J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
+ /* 8022FA2C */ void setCharactor(u16);
+ /* 8022FA30 */ void addCharactor(u16);
+ /* 8022FA34 */ void resetCharactor();
+ /* 8022FA38 */ void getLineLength(int);
+ /* 8022FA6C */ void addLineLength(int, f32);
+ /* 8022FA98 */ void getOutfontLength(int);
+ /* 8022FACC */ void setOutfontLength(int, f32);
+ /* 8022FAF0 */ void clearOutfontLength(int);
+ /* 8022FB24 */ void getLineCountNowPage();
+
+ /* 8022F94C */ virtual ~jmessage_string_tReference();
+
+ /* 0x08 */ J2DTextBox* mPanePtr;
+ /* 0x0C */ J2DTextBox* mRubyPanePtr;
+ /* 0x10 */ COutFont_c* mOutFontPtr;
+ /* 0x14 */ JUTFont* mpFont;
+ /* 0x18 */ f32 mLineLength[12];
+ /* 0x48 */ f32 mOutfontLength[12];
+ /* 0x78 */ u32 mCCColor;
+ /* 0x7C */ u32 mGCColor;
+ /* 0x80 */ s16 mLineCount;
+ /* 0x82 */ u8 mLineMax;
+ /* 0x83 */ u8 mNowPage;
+ /* 0x84 */ u8 mFlags;
+};
+
+struct jmessage_string_tMeasureProcessor : public JMessage::TRenderingProcessor {
+ /* 8022FB98 */ jmessage_string_tMeasureProcessor(jmessage_string_tReference const*);
+ /* 8023098C */ void do_rubyset(void const*, u32);
+
+ /* 80230A5C */ virtual ~jmessage_string_tMeasureProcessor();
+ /* 8022FBE4 */ virtual void do_begin(void const*, char const*);
+ /* 8022FC14 */ virtual void do_end();
+ /* 8022FC28 */ virtual void do_character(int);
+ /* 8022FDF0 */ virtual void do_tag(u32, void const*, u32);
+
+ /* 0x38 */ jmessage_string_tReference* mpReference;
+};
+
+struct jmessage_string_tSequenceProcessor : public JMessage::TSequenceProcessor, public jmessage_string_tMeasureProcessor {
+ /* 80230A08 */ jmessage_string_tSequenceProcessor(jmessage_string_tReference const*,
+ jmessage_string_tControl*);
+
+ /* 80232858 */ virtual ~jmessage_string_tSequenceProcessor();
+ /* 80230ABC */ virtual void do_reset();
+ /* 80230AC0 */ virtual void do_begin(void const*, char const*);
+ /* 80230B7C */ virtual void do_end();
+ /* 80230B88 */ virtual void do_character(int);
+ /* 80230B8C */ virtual void do_tag(u32, void const*, u32);
+ /* 80230B80 */ virtual bool do_isReady();
+ /* 80230BBC */ virtual bool do_jump_isReady();
+ /* 80230BC4 */ virtual void do_jump(void const*, char const*);
+};
+
+struct jmessage_string_tRenderingProcessor : public JMessage::TRenderingProcessor {
+ /* 80230BC8 */ jmessage_string_tRenderingProcessor(jmessage_string_tReference const*);
+ /* 80230C20 */ void getLineCountNowPage();
+ /* 80231D70 */ void do_widthcenter();
+ /* 80231EF0 */ void do_heightcenter();
+ /* 80232044 */ void do_strcat(char*);
+ /* 802320B0 */ void do_rubyset(void const*, u32);
+ /* 80232260 */ void do_rubystrcat(char*);
+ /* 802322CC */ void do_outfont(u8);
+ /* 8023256C */ void do_color(u8);
+ /* 80232600 */ void do_scale(f32);
+ /* 80232690 */ void do_linedown(s16);
+ /* 802326E4 */ void do_numset(s16);
+ /* 802327BC */ void push_word(char const*);
+
+ /* 802327F8 */ virtual ~jmessage_string_tRenderingProcessor();
+ /* 80230C5C */ virtual void do_reset();
+ /* 80230CA0 */ virtual void do_begin(void const*, char const*);
+ /* 80230CE8 */ virtual void do_end();
+ /* 80230D48 */ virtual void do_character(int);
+ /* 80231110 */ virtual void do_tag(u32, void const*, u32);
+
+ /* 0x38 */ jmessage_string_tReference* mpReference;
+};
#endif /* D_MSG_D_MSG_CLASS_H */
diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h
index 378fb187a1..4e975d941b 100644
--- a/include/d/msg/d_msg_flow.h
+++ b/include/d/msg/d_msg_flow.h
@@ -1,9 +1,7 @@
#ifndef D_MSG_D_MSG_FLOW_H
#define D_MSG_D_MSG_FLOW_H
-#include "d/msg/d_msg_class.h"
-#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+#include "f_op/f_op_msg.h"
// all mesg_flow_node structs members might be wrong
struct mesg_flow_node {
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index 7f7c74f6f2..8f9c3f73d0 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -7,7 +7,6 @@
#include "JSystem/JMessage/resource.h"
#include "d/com/d_com_inf_game.h"
#include "d/msg/d_msg_class.h"
-#include "dolphin/types.h"
class COutFont_c;
class dMsgScrnBase_c;
@@ -20,7 +19,7 @@ public:
/* 80233AE8 */ void _delete();
/* 80233D04 */ void setMessageIndex(u32, u32, bool);
/* 80233E70 */ void setMessageIndexDemo(u32, bool);
- /* 80233F84 */ void getMessageIndex(u32);
+ /* 80233F84 */ int getMessageIndex(u32);
/* 80233FD8 */ void getRevoMessageIndex(u32);
/* 802340D4 */ void getMessageIndexAlways(u32);
/* 80234128 */ void getMessageIDAlways(u32);
@@ -51,24 +50,24 @@ public:
/* 80236D0C */ void changeGroupLocal(s16);
/* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
- /* 802370A8 */ BOOL isGetItemMessage();
- /* 802370BC */ BOOL isKanbanMessage();
- /* 802370E8 */ BOOL isHowlMessage();
+ /* 802370A8 */ u8 isGetItemMessage();
+ /* 802370BC */ bool isKanbanMessage();
+ /* 802370E8 */ u8 isHowlMessage();
/* 802370FC */ bool isMidonaMessage();
- /* 80237138 */ void isMidonaNormalTalkWait();
- /* 802371B0 */ void isMidonaTalkWait();
- /* 802371E4 */ void isPlaceMessage();
- /* 802371F8 */ void isBossMessage();
+ /* 80237138 */ bool isMidonaNormalTalkWait();
+ /* 802371B0 */ bool isMidonaTalkWait();
+ /* 802371E4 */ bool isPlaceMessage();
+ /* 802371F8 */ bool isBossMessage();
/* 8023720C */ bool isBookMessage();
- /* 80237214 */ void isStaffMessage();
- /* 80237228 */ void isSaveMessage();
- /* 8023723C */ void isTalkMessage();
- /* 802372CC */ void getSmellName();
- /* 80237334 */ void getPortalName();
- /* 8023738C */ void getBombName();
- /* 8023741C */ void getInsectName();
- /* 80237478 */ void getLetterName();
- /* 802374D0 */ void getSelectBombNum();
+ /* 80237214 */ bool isStaffMessage();
+ /* 80237228 */ bool isSaveMessage();
+ /* 8023723C */ bool isTalkMessage();
+ /* 802372CC */ const char* getSmellName();
+ /* 80237334 */ const char* getPortalName();
+ /* 8023738C */ const char* getBombName();
+ /* 8023741C */ const char* getInsectName();
+ /* 80237478 */ const char* getLetterName();
+ /* 802374D0 */ u8 getSelectBombNum();
/* 80237520 */ void onMsgSendControlLocal();
/* 80237530 */ void offMsgSendControlLocal();
/* 80237550 */ void isMsgSendControlLocal();
@@ -145,7 +144,7 @@ public:
/* 802384D8 */ static void setArrowNum(u8);
/* 802384EC */ void setMsgOutputType(u8);
/* 80238500 */ void getMsgOutputType();
- /* 80238514 */ void getWord();
+ /* 80238514 */ static const char* getWord();
/* 80238528 */ void getSelectWord(int);
/* 80238544 */ void setSelectWordFlag(u8);
/* 80238574 */ void getSelectWordFlag();
@@ -159,8 +158,29 @@ public:
void setShopWaitTimerLocal(u8 timer) { mShopWaitTimer = timer; }
void setSelectCancelPosLocal(u8 pos) { mSelectCancelPos = pos; }
u8 getItemEquipButtonLocal() { return mItemEquipButton; }
+ s16 getInputValueLocal() { return mInputValue; }
+ void setInputValueLocal(s16 i_inputValue) { mInputValue = i_inputValue; }
+ s16 getNowTotalPriceLocal() { return mNowTotalPrice; }
+ s16 getNowTotalPaymentLocal() { return mNowTotalPayment; }
+ void onInputFlagLocal() { mInputFlag = 1; }
+ void offAutoMessageFlagLocal() { mAutoMessageFlag = 0; }
+ void onAutoMessageFlagLocal() { mAutoMessageFlag = 1; }
+ void setFundRaisingValueLocal(s16 i_value) { mFundRaisingValue = i_value; }
+ u16 getPortalMessageIDLocal() { return mPortalMessageID; }
+
u8 getSelectPushFlag() { return mSelectPushFlag; }
u8 getSelectCancelPos() { return mSelectCancelPos; }
+ s16 getInputValue() { return getInputValueLocal(); }
+ void setInputValue(s16 i_inputValue) { setInputValueLocal(i_inputValue); }
+ s16 getNowTotalPrice() { return getNowTotalPriceLocal(); }
+ s16 getNowTotalPayment() { return getNowTotalPaymentLocal(); }
+ void onInputFlag() { onInputFlagLocal(); }
+ void offAutoMessageFlag() { offAutoMessageFlagLocal(); }
+ void onAutoMessageFlag() { onAutoMessageFlagLocal(); }
+ void setFundRaisingValue(s16 i_value) { setFundRaisingValueLocal(i_value); }
+ u16 getPortalMessageID() { return getPortalMessageIDLocal(); }
+
+ jmessage_tSequenceProcessor* getSequenceProcessor() { return mpSeqProc; }
/* 0x0FC */ int field_0xfc;
/* 0x100 */ msg_class* field_0x100;
@@ -195,11 +215,11 @@ public:
/* 0x16E */ u16 field_0x16e;
/* 0x170 */ u16 mNowTalkFlowNo;
/* 0x172 */ u16 field_0x172;
- /* 0x174 */ u16 mInputValue;
+ /* 0x174 */ s16 mInputValue;
/* 0x176 */ u16 mFundRaisingValue;
/* 0x178 */ u16 field_0x178;
- /* 0x17A */ u16 mNowTotalPrice;
- /* 0x17C */ u16 mNowTotalPayment;
+ /* 0x17A */ s16 mNowTotalPrice;
+ /* 0x17C */ s16 mNowTotalPayment;
/* 0x17E */ u16 field_0x17e;
/* 0x180 */ u16 mPortalMessageID;
/* 0x182 */ u16 mBombMessageID[3];
@@ -278,6 +298,10 @@ inline void dMsgObject_setDemoMessage(u32 param_0) {
dMsgObject_getMsgObjectClass()->setDemoMessage(param_0);
}
+inline const char* dMsgObject_getWord() {
+ return dMsgObject_c::getWord();
+}
+
inline void dMsgObject_setShopWaitTimer(u8 timer) {
dMsgObject_c::setShopWaitTimer(timer);
}
@@ -478,13 +502,12 @@ public:
/* 0x310 */ u16 mBossNameDisplayTime;
/* 0x312 */ u16 mBatchDisplayWeight_3;
/* 0x314 */ u16 mCharDisplayWeight_5;
- /* 0x316 */ u16 mBatchDisplayWeight_8;
- /* 0x318 */ u16 mBatchDisplayWeight_9;
- /* 0x31A */ u16 mHaloDelayFrame;
- /* 0x31C */ u16 mHaloDelayFrameSpirit;
+ /* 0x316 */ s16 mBatchDisplayWeight_8;
+ /* 0x318 */ s16 mBatchDisplayWeight_9;
+ /* 0x31A */ s16 mHaloDelayFrame;
+ /* 0x31C */ s16 mHaloDelayFrameSpirit;
/* 0x31E */ bool mSaveSeqMsgDebug;
/* 0x31F */ bool mMsgDebug;
- /* 0x320 */ u8 field_0x320;
/* 0x320 */ bool mTextColorDebug;
/* 0x321 */ u8 mTextColorUpperR[9]; // Default, Red, Green, Blue, Yellow, L.Blue, Purple, Grey, Orange,
/* 0x32A */ u8 mTextColorUpperG[9];
diff --git a/include/d/msg/d_msg_unit.h b/include/d/msg/d_msg_unit.h
index af9ade818b..f32b1e6b44 100644
--- a/include/d/msg/d_msg_unit.h
+++ b/include/d/msg/d_msg_unit.h
@@ -3,4 +3,18 @@
#include "dolphin/types.h"
+class dMsgUnit_c {
+public:
+ /* 80238C94 */ dMsgUnit_c();
+ /* 80238CEC */ void setTag(int, int, char*, bool);
+
+ /* 80238CA4 */ virtual ~dMsgUnit_c();
+};
+
+extern dMsgUnit_c g_msg_unit;
+
+inline void dMsgUnit_setTag(int param_0, int param_1, char* param_2) {
+ g_msg_unit.setTag(param_0, param_1, param_2, true);
+}
+
#endif /* D_MSG_D_MSG_UNIT_H */
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 387be9e51b..8071645b43 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -385,7 +385,7 @@ public:
u16 getMaxLife() { return mMaxLife; }
u16 getLife() const { return mLife; }
- u16 getRupee() { return mRupee; }
+ u16 getRupee() const { return mRupee; }
u16 getOil() { return mOil; }
u16 getMaxOil() const { return mMaxOil; }
u8& getMagic() { return mMagic; }
@@ -678,6 +678,7 @@ class dSv_player_info_c {
public:
void init();
char* getLinkName() { return mPlayerName; }
+ char* getHorseName() { return mHorseName; }
void setPlayerName(const char* i_name) { strcpy((char*)mPlayerName, i_name); }
void setHorseName(const char* i_name) { strcpy((char*)mHorseName, i_name); }
void setTotalTime(s64 i_time) { mTotalTime = i_time; }
@@ -851,6 +852,9 @@ class dSv_MiniGame_c {
public:
void init();
+ u32 getRaceGameTime() const { return mRaceGameTime; }
+ u32 getBalloonScore() const { return mBalloonScore; }
+
private:
/* 0x00 */ u8 unk0;
/* 0x01 */ u8 unk1[3];
@@ -1040,6 +1044,7 @@ public:
dSv_player_c& getPlayer() { return mPlayer; }
dSv_event_c& getEvent() { return mEvent; }
dSv_memory_c& getSave(int i_stageNo) { return mSave[i_stageNo]; }
+ dSv_MiniGame_c& getMiniGame() { return mMiniGame; }
void putSave(int i_stageNo, dSv_memory_c mem) { mSave[i_stageNo] = mem; }
static const int STAGE_MAX = 32;
@@ -1084,6 +1089,7 @@ public:
dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; }
dSv_event_c& getEvent() { return mSavedata.getEvent(); }
dSv_danBit_c& getDan() { return mDan; }
+ dSv_MiniGame_c& getMiniGame() { return mSavedata.getMiniGame(); }
s64 getStartTime() const { return mStartTime; }
s64 getSaveTotalTime() const { return mSaveTotalTime; }
void setStartTime(s64 time) { mStartTime = time; }
diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h
index d2d03f349f..a34161b4b6 100644
--- a/include/dolphin/gx/GX.h
+++ b/include/dolphin/gx/GX.h
@@ -53,6 +53,12 @@ inline void GXPosition3f32(f32 x, f32 y, f32 z) {
GXFIFO.f32 = z;
}
+inline void GXNormal3f32(f32 x, f32 y, f32 z) {
+ GXFIFO.f32 = x;
+ GXFIFO.f32 = y;
+ GXFIFO.f32 = z;
+}
+
inline void GXPosition2f32(f32 x, f32 z) {
GXFIFO.f32 = x;
GXFIFO.f32 = z;
diff --git a/include/dolphin/gx/GXAttr.h b/include/dolphin/gx/GXAttr.h
index 9b9bbdf4ee..7cebd8d6fd 100644
--- a/include/dolphin/gx/GXAttr.h
+++ b/include/dolphin/gx/GXAttr.h
@@ -29,9 +29,15 @@ void GXSetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList* list);
void __GXSetVAT(void);
void GXSetArray(GXAttr attr, void* base, u8);
void GXInvalidateVtxCache(void);
-void GXSetTexCoordGen2(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx, GXBool renormalize, u32 pt_mtx);
+void GXSetTexCoordGen2(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx,
+ GXBool renormalize, u32 pt_mtx);
void GXSetNumTexGens(u8 numTexGens);
+void GXGetVtxAttrFmtv(GXVtxFmt param_0, GXVtxAttrFmtList* param_1);
+void GXGetVtxAttrFmt(GXVtxFmt param_0, int param_1, GXCompCnt* param_2, GXCompType* param_3,
+ u8* param_4);
+void GXGetVtxDescv(GXVtxDescList* attrPtr);
+
#ifdef __cplusplus
};
#endif
diff --git a/include/dolphin/gx/GXDraw.h b/include/dolphin/gx/GXDraw.h
new file mode 100644
index 0000000000..6e31b179f6
--- /dev/null
+++ b/include/dolphin/gx/GXDraw.h
@@ -0,0 +1,17 @@
+#ifndef GXDRAW_H
+#define GXDRAW_H
+
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/gx/GXEnum.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GXDrawCylinder(u8 numEdges);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* GXDRAW_H */
diff --git a/include/f_op/f_op_msg.h b/include/f_op/f_op_msg.h
index 5ba7d17fb4..1e093473c6 100644
--- a/include/f_op/f_op_msg.h
+++ b/include/f_op/f_op_msg.h
@@ -1,8 +1,22 @@
#ifndef F_OP_F_OP_MSG_H
#define F_OP_F_OP_MSG_H
-#include "dolphin/types.h"
#include "f_pc/f_pc_leaf.h"
+#include "f_op/f_op_actor.h"
+
+class msg_class : public leafdraw_class {
+public:
+ /* 0xC0 */ int mMsgType;
+ /* 0xC4 */ create_tag_class mDwTg;
+ /* 0xD8 */ leafdraw_method_class* mSubMtd;
+ /* 0xDC */ fopAc_ac_c* mpActor;
+ /* 0xE0 */ cXyz mPos;
+ /* 0xEC */ u32 mMsgID;
+ /* 0xF0 */ u32 field_0xf0;
+ /* 0xF4 */ u32 field_0xf4;
+ /* 0xF8 */ u16 mMode;
+ /* 0xFA */ u8 mSelectedChoiceIdx;
+}; // Size: 0xFC
extern leafdraw_method_class g_fopMsg_Method;
diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h
index 8e115fd700..15fa6eae40 100644
--- a/include/f_op/f_op_msg_mng.h
+++ b/include/f_op/f_op_msg_mng.h
@@ -1,9 +1,7 @@
#ifndef F_F_OP_MSG_MNG_H_
#define F_F_OP_MSG_MNG_H_
-#include "d/msg/d_msg_class.h"
-#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+#include "f_op/f_op_msg.h"
struct msg_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 474820b6b3..40d5d75aee 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -8,6 +8,7 @@
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "global.h"
#include "m_Do/m_Do_audio.h"
+#include "m_Do/m_Do_mtx.h"
class mDoExt_baseAnm {
public:
@@ -481,6 +482,44 @@ private:
/* 0x18 */ mDoExt_3Dline_c* field_0x18;
};
+class mDoExt_cubePacket : public J3DPacket {
+public:
+ mDoExt_cubePacket(cXyz& i_position, cXyz& i_size, csXyz& i_angle, const GXColor& i_color) {
+ mPosition = i_position;
+ mSize = i_size;
+ mAngle = i_angle;
+ mColor = i_color;
+ }
+
+ virtual void draw();
+ virtual ~mDoExt_cubePacket() {}
+
+ /* 0x10 */ cXyz mPosition;
+ /* 0x1C */ cXyz mSize;
+ /* 0x28 */ csXyz mAngle;
+ /* 0x2E */ GXColor mColor;
+};
+
+class mDoExt_cylinderPacket : public J3DPacket {
+public:
+ mDoExt_cylinderPacket(cXyz& i_position, f32 i_radius, f32 i_height, const GXColor& i_color, u8 param_4) {
+ mPosition = i_position;
+ mRadius = i_radius;
+ mHeight = i_height;
+ mColor = i_color;
+ field_0x28 = param_4;
+ }
+
+ virtual void draw();
+ virtual ~mDoExt_cylinderPacket() {}
+
+ /* 0x10 */ cXyz mPosition;
+ /* 0x1C */ f32 mRadius;
+ /* 0x20 */ f32 mHeight;
+ /* 0x24 */ GXColor mColor;
+ /* 0x28 */ u8 field_0x28;
+};
+
JKRSolidHeap* mDoExt_createSolidHeapFromGame(u32 i_size, u32 i_alignment);
void mDoExt_destroySolidHeap(JKRSolidHeap* i_heap);
u32 mDoExt_adjustSolidHeap(JKRSolidHeap* i_heap);
diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h
index a415fd414d..dff4b20c56 100644
--- a/include/m_Do/m_Do_mtx.h
+++ b/include/m_Do/m_Do_mtx.h
@@ -24,6 +24,7 @@ void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, Ve
s16 param_4);
void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]);
void mDoMtx_ZrotM(Mtx mtx, s16 z);
+void mDoMtx_inverseTranspose(f32 const (*param_0)[4], f32 (*param_1)[4]);
inline void mDoMtx_multVecSR(Mtx m, const Vec* src, Vec* dst) {
PSMTXMultVecSR(m, src, dst);
@@ -98,6 +99,7 @@ public:
static void XrotM(s16 x) { mDoMtx_XrotM(now, x); }
static void ZrotM(s16 z) { mDoMtx_ZrotM(now, z); }
static void inverse() { PSMTXInverse(now, now); }
+ static void inverseTranspose() { mDoMtx_inverseTranspose(now, now); }
static void concat(const Mtx m) { PSMTXConcat(now, m, now); }
static void revConcat(const Mtx m) { PSMTXConcat(m, now, now); }
static void copy(const Mtx m) { PSMTXCopy(m, now); }
diff --git a/include/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.h b/include/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.h
index ea64262f62..cc30b2b861 100644
--- a/include/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.h
+++ b/include/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.h
@@ -1,6 +1,27 @@
#ifndef D_A_KYTAG06_H
#define D_A_KYTAG06_H
-#include "dolphin/types.h"
+#include "f_op/f_op_actor_mng.h"
+#include "d/d_path.h"
+
+class kytag06_class : public fopAc_ac_c {
+public:
+ /* 0x568 */ dPath* mpPath;
+ /* 0x56C */ f32 mWindPower;
+ /* 0x570 */ f32 field_0x570;
+ /* 0x574 */ int field_0x574;
+ /* 0x578 */ int field_0x578;
+ /* 0x57C */ int field_0x57c;
+ /* 0x580 */ u32 field_0x580[4];
+ /* 0x590 */ u8 mMode;
+ /* 0x591 */ u8 field_0x591;
+ /* 0x592 */ u8 field_0x592;
+ /* 0x593 */ u8 mType;
+ /* 0x594 */ u8 mPathNo;
+ /* 0x595 */ u8 mSwNo;
+ /* 0x596 */ u8 field_0x596;
+ /* 0x597 */ u8 field_0x597;
+ /* 0x598 */ u8 field_0x598;
+};
#endif /* D_A_KYTAG06_H */