summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-08-07 13:18:30 +0300
committerGitHub <noreply@github.com>2024-08-07 03:18:30 -0700
commit106d72032c3c62fb5fd930a1044a38bf44cc1036 (patch)
tree5b7c2dcddd96f9baaa24cd6df3a7f29efc6df81c /include
parent6bf2f3cc5578f3e3108df8337a462ee4c618915a (diff)
Work on d_msg_object (#2186)
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JGadget/linklist.h1
-rw-r--r--include/JSystem/JMessage/control.h11
-rw-r--r--include/JSystem/JMessage/processor.h9
-rw-r--r--include/JSystem/JStudio/JStudio/stb.h2
-rw-r--r--include/d/com/d_com_inf_game.h38
-rw-r--r--include/d/d_demo.h1
-rw-r--r--include/d/meter/d_meter2_info.h4
-rw-r--r--include/d/msg/d_msg_class.h89
-rw-r--r--include/d/msg/d_msg_object.h214
-rw-r--r--include/d/msg/d_msg_scrn_base.h26
-rw-r--r--include/d/msg/d_msg_scrn_howl.h2
-rw-r--r--include/d/msg/d_msg_scrn_item.h28
-rw-r--r--include/d/msg/d_msg_scrn_talk.h24
-rw-r--r--include/m_Do/m_Do_audio.h8
-rw-r--r--include/rel/d/a/obj/d_a_obj_movebox/d_a_obj_movebox.h2
15 files changed, 380 insertions, 79 deletions
diff --git a/include/JSystem/JGadget/linklist.h b/include/JSystem/JGadget/linklist.h
index 988a53cd1a..bb334f57f9 100644
--- a/include/JSystem/JGadget/linklist.h
+++ b/include/JSystem/JGadget/linklist.h
@@ -234,6 +234,7 @@ struct TLinkList : public TNodeLinkList {
const_iterator end() const { return const_iterator(const_cast<TLinkList*>(this)->end()); }
T& front() { return *begin(); }
T& back() { return *--end(); }
+ void pop_front() { erase(TNodeLinkList::begin()); }
void Push_front(T* element) { Insert(begin(), element); }
void Push_back(T* element) { Insert(end(), element); }
iterator Find(const T* element) {
diff --git a/include/JSystem/JMessage/control.h b/include/JSystem/JMessage/control.h
index 8bce73e824..f2c95d233b 100644
--- a/include/JSystem/JMessage/control.h
+++ b/include/JSystem/JMessage/control.h
@@ -28,6 +28,10 @@ struct TControl {
(TProcessor*)pRenderingProcessor_;
}
+ int setMessageCode(u32 code) {
+ return setMessageCode(code >> 16, code);
+ }
+
int setMessageCode_inReset_(TProcessor* pProcessor, u16 param_1, u16 param_2) {
if (!setMessageCode_inSequence_(pProcessor, param_1, param_2)) {
return 0;
@@ -57,6 +61,13 @@ struct TControl {
pResourceCache_ = NULL;
}
+ void render_synchronize() {
+ if (isReady_render_()) {
+ field_0x20 = pszText_update_current_;
+ oStack_renderingProcessor_ = pRenderingProcessor_->oStack_;
+ }
+ }
+
/* 0x04 */ TSequenceProcessor* pSequenceProcessor_;
/* 0x08 */ TRenderingProcessor* pRenderingProcessor_;
/* 0x0C */ u16 messageCode_;
diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h
index b636820ba7..0d55e8d00f 100644
--- a/include/JSystem/JMessage/processor.h
+++ b/include/JSystem/JMessage/processor.h
@@ -2,6 +2,7 @@
#define JMESSAGE_PROCESSOR_H
#include "JSystem/JMessage/resource.h"
+#include "algorithm.h"
namespace JMessage {
struct TResource;
@@ -63,6 +64,14 @@ struct TProcessor {
void pop() { upsz_--; }
+ TStack_& operator=(const TStack_& other) {
+ upsz_ = other.upsz_;
+ char** start = (char**)other.stack;
+ char** end = (char**)(other.stack + other.upsz_);
+ std::copy(start, end, stack);
+ return *this;
+ }
+
/* 0x0 */ u32 upsz_; // stack size
/* 0x4 */ const char* stack[4];
}; // Size: 0x14
diff --git a/include/JSystem/JStudio/JStudio/stb.h b/include/JSystem/JStudio/JStudio/stb.h
index 00b5e6fe17..fe32991cfe 100644
--- a/include/JSystem/JStudio/JStudio/stb.h
+++ b/include/JSystem/JStudio/JStudio/stb.h
@@ -143,6 +143,8 @@ public:
TObject_control& referObject_control() { return mObject_control; }
int getSuspend() const { return _54; }
void setSuspend(s32 suspend) { mObject_control.setSuspend(suspend); }
+ void suspend(s32 param_0) { mObject_control.suspend(param_0); }
+ void unsuspend(s32 param_0) { suspend(-param_0); }
private:
/* 0x04 */ u32 _4;
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 2871bbd0d6..ccf7b0d008 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -361,6 +361,9 @@ public:
s16 getItemKeyNumCount() { return mItemKeyNumCount; }
void clearNowAnimeID() { mNowAnimeID = -1; }
void clearMesgCamInfoID() { mMesgCamInfo = -1; }
+ void clearBaseAnimeID() { mBaseAnimeID = 0; }
+ void clearFaceAnimeID() { mFaceAnimeID = 0; }
+ void clearMesgCamInfoBasicID() { mMesgCamInfoBasicID = 0; }
void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; }
void clearItemMaxOilCount() { mItemMaxOilCount = 0; }
void clearItemOilCount() { mItemOilCount = 0; }
@@ -458,6 +461,8 @@ public:
void setMsgDtArchive(int i, JKRArchive* arc) { mMsgDtArchive[i] = arc; }
void setMsgCommonArchive(JKRArchive* arc) { mMsgCommonArchive = arc; }
void setMsgArchive(int i, JKRArchive* arc) { mMsgArchive[i] = arc; }
+ void setMsgObjectClass(dMsgObject_c* obj) { mMsgObjectClass = obj; }
+ void setMesgCamInfoBasicID(int id) { mMesgCamInfoBasicID = id; }
void setMesgCamInfoActor(fopAc_ac_c* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3,
fopAc_ac_c* param_4, fopAc_ac_c* param_5, fopAc_ac_c* param_6,
fopAc_ac_c* param_7, fopAc_ac_c* param_8, fopAc_ac_c* param_9,
@@ -547,6 +552,7 @@ public:
void show2dOff() { mShow2D = 0; }
u8 show2dCheck() { return mShow2D; }
s8 getLayerOld() { return mLayerOld; }
+ u8 checkMesgCancelButton() { return mMesgCancelButton; }
void setMesgCancelButton(u8 button) { mMesgCancelButton = button; }
void setMesgBgm(u8 param_0) { mMesgBgm = param_0; }
int getMessageCountNumber() { return mMessageCountNum; }
@@ -1251,6 +1257,10 @@ inline u8 dComIfGs_getCollectSmell() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(3);
}
+inline void dComIfGs_setCollectSmell(u8 smell) {
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(3, smell);
+}
+
inline u8 dComIfGs_getPohSpiritNum() {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().getPohNum();
}
@@ -2048,6 +2058,10 @@ inline dMsgObject_c* dComIfGp_getMsgObjectClass() {
return g_dComIfG_gameInfo.play.getMsgObjectClass();
}
+inline void dComIfGp_setMsgObjectClass(dMsgObject_c* obj) {
+ return g_dComIfG_gameInfo.play.setMsgObjectClass(obj);
+}
+
inline camera_class* dComIfGp_getCamera(int idx) {
return g_dComIfG_gameInfo.play.getCamera(idx);
}
@@ -2837,6 +2851,10 @@ inline void dComIfGp_setMesgCancelButton(u8 button) {
g_dComIfG_gameInfo.play.setMesgCancelButton(button);
}
+inline u8 dComIfGp_checkMesgCancelButton() {
+ return g_dComIfG_gameInfo.play.checkMesgCancelButton();
+}
+
inline void dComIfGp_setMesgBgmOn() {
g_dComIfG_gameInfo.play.setMesgBgm(1);
}
@@ -3086,8 +3104,8 @@ 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 void dComIfGp_setMesgCameraTagInfo(int id) {
+ g_dComIfG_gameInfo.play.setMesgCamInfoID(id);
}
inline void dComIfGp_setMesgCameraInfoActor(fopAc_ac_c* param_1, fopAc_ac_c* param_2,
@@ -3101,6 +3119,10 @@ inline void dComIfGp_setMesgCameraInfoActor(fopAc_ac_c* param_1, fopAc_ac_c* par
param_6, param_7, param_8, param_9, param_10);
}
+inline void dComIfGp_setMesgCameraAttrInfo(int param_1) {
+ g_dComIfG_gameInfo.play.setMesgCamInfoBasicID(param_1);
+}
+
inline int dComIfGp_getMesgCameraInfo() {
return g_dComIfG_gameInfo.play.getMesgCamInfo();
}
@@ -3608,6 +3630,18 @@ inline void dComIfGp_clearMesgCameraTagInfo() {
g_dComIfG_gameInfo.play.clearMesgCamInfoID();
}
+inline void dComIfGp_clearMesgAnimeAttrInfo() {
+ g_dComIfG_gameInfo.play.clearBaseAnimeID();
+}
+
+inline void dComIfGp_clearMesgFaceAnimeAttrInfo() {
+ g_dComIfG_gameInfo.play.clearFaceAnimeID();
+}
+
+inline void dComIfGp_clearMesgCameraAttrInfo() {
+ g_dComIfG_gameInfo.play.clearMesgCamInfoBasicID();
+}
+
inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2,
const dKy_tevstr_c* param_3, const csXyz* param_4,
const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7,
diff --git a/include/d/d_demo.h b/include/d/d_demo.h
index 4a23df2bfd..21ef9324e8 100644
--- a/include/d/d_demo.h
+++ b/include/d/d_demo.h
@@ -285,6 +285,7 @@ public:
static void offStatus(u32 status) { m_status &= ~status; }
static void setBranchData(const u8* p_data) { m_branchData = p_data; }
static s16 getBranchId() { return m_branchId; }
+ static jmessage_tControl* getMesgControl() { return m_mesgControl; }
static dDemo_camera_c* getCamera() {
JUT_ASSERT(m_object != 0);
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 2062d5fbaf..88f64e4f97 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -748,6 +748,10 @@ inline void dMeter2Info_set2DPosV(float posV) {
g_meter2_info.set2DPosV(posV);
}
+inline void dMeter2Info_offShopTalkFlag() {
+ g_meter2_info.offShopTalkFlag();
+}
+
const char* dMeter2Info_getPlusTextureName();
const char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h
index bad00f58c9..7fb11c35fa 100644
--- a/include/d/msg/d_msg_class.h
+++ b/include/d/msg/d_msg_class.h
@@ -11,7 +11,7 @@ class JUTFont;
struct JMSMesgEntry_c {
/* 0x00 */ u32 mStringOffset;
/* 0x04 */ u16 mStringId;
- /* 0x06 */ u16 field_0x04;
+ /* 0x06 */ u16 field_0x06;
/* 0x08 */ u8 field_0x08;
/* 0x09 */ u8 field_0x09;
/* 0x0A */ u8 field_0x0a;
@@ -30,6 +30,7 @@ struct JMSMesgHeader_c {
/* 0x0A */ u16 entrySize;
/* 0x0C */ u16 field_0xc;
/* 0x0E */ u16 field_0xe;
+ /* 0x10 */ JMSMesgEntry_c entries[0];
}; // Size: 0x10
class STControl;
@@ -98,6 +99,28 @@ struct jmessage_tReference : public JMessage::TReference {
void setPageEndCount(s16 i_endCount) { mPageEndCount = i_endCount; }
void onBombNameUseFlag() { mBombNameUseFlag = 1; }
void onSelectRubyFlag(int i_flag) { mSelectRubyFlag |= (1 << i_flag); }
+ void setpStatus(u16* status) { mpStatus = status; }
+ void setObjectPtr(dMsgObject_c* ptr) { mpObjectPtr = ptr; }
+ void setCountBackUp() { mCharactor.mCountBackUp = mCharactor.field_0x40e; }
+ void setSelMsgPtr(char* ptr) { mpSelMsgPtr = ptr; }
+ void setPageNum(s16 pageNum) { mPageNum = pageNum; }
+ void setStopFlag(u8 flag) { mStopFlag = flag; }
+ void setStatus(u16 status) { *mpStatus = status; }
+ void setFont(JUTFont* font) { mpFont = font; }
+ void setFontSizeX(f32 x) { mFontSizeX = x; }
+ void setFontSizeY(f32 y) { mFontSizeY = y; }
+ void setRubySize(f32 size) { mRubySize = size; }
+ void setTBoxWidth(f32 width) { mTBoxWidth = width; }
+ void setTBoxHeight(f32 height) { mTBoxHeight = height; }
+ void setLineSpace(f32 space) { mLineSpace = space; }
+ void setCharSpace(f32 space) { mCharSpace = space; }
+ void setRubyCharSpace(f32 space) { mRubyCharSpace = space; }
+ void setSelFontSize(f32 size) { mSelFontSize = size; }
+ void setSelRubySize(f32 size) { mSelRubySize = size; }
+ void setSelTBoxWidth(f32 width) { mSelTBoxWidth = width; }
+ void setSelCharSpace(f32 space) { mSelCharSpace = space; }
+ void setSelRubyCharSpace(f32 space) { mSelRubyCharSpace = space; }
+ void decSendTimer() { mSendTimer--; }
void setLineLength(int i_no, f32 i_strLen, f32 i_spaceLen) {
mStrLength[i_no] = i_strLen;
@@ -110,6 +133,13 @@ struct jmessage_tReference : public JMessage::TReference {
}
}
+ void addCharAllAlphaRate() {
+ mCharAllAlphaRate += mAddCharAllAlphaRate;
+ if (mCharAllAlphaRate > 1.0f) {
+ mCharAllAlphaRate = 1.0f;
+ }
+ }
+
dMsgObject_c* getObjectPtr() { return mpObjectPtr; }
u8 getForm() { return mForm; }
u8 getNowLightCount() { return mNowLightCount; }
@@ -134,14 +164,37 @@ struct jmessage_tReference : public JMessage::TReference {
f32 getSelRubyCharSpace() { return mSelRubyCharSpace; }
f32 getRubySize() { return mRubySize; }
f32 getRubyCharSpace() { return mRubyCharSpace; }
+ char* getSelTextPtr(int idx) { return mSelText[idx]; }
+ char* getSelRubyPtr(int idx) { return mSelRuby[idx]; }
+ char* getTextPtr() { return mText; }
+ char* getTextSPtr() { return mTextS; }
+ char* getRubyPtr() { return mRuby; }
+ u8 getSelectRubyFlag() { return mSelectRubyFlag; }
+ f32 getSelTBoxWidth() { return mSelTBoxWidth; }
+ u8 getSelectPos() { return mSelectPos; }
+ u16 getMsgID() { return mMsgID; }
+ bool isButtonTagStopFlag() { return mButtonTagStopFlag; }
+ u8 getStopFlag() { return mStopFlag; }
+ u8 getSendFlag() { return mSendFlag; }
+ u8 getFukiPosType() { return mFukiPosType; }
+ u16 getStatus() { return *mpStatus; }
+ u8 getArrange() { return mArrange; }
+
+ struct CharSoundInfo {
+ u16 data[0x200];
+ s16 field_0x40c;
+ s16 field_0x40e;
+ s16 mCountBackUp;
+ };
+ CharSoundInfo getCharSoundInfo() { return mCharactor;}
+ u32 getDemoFrame() { return mDemoFrame; }
+ u32 getRevoMessageID() { return mRevoMessageID; }
+ f32 getCharAllAlphaRate() { return mCharAllAlphaRate; }
/* 80228CB4 */ virtual ~jmessage_tReference();
/* 0x0008 */ STControl* mpStick;
- /* 0x000C */ u16 mCharactor[0x200];
- /* 0x040C */ s16 field_0x40c;
- /* 0x040E */ s16 field_0x40e;
- /* 0x0410 */ s16 mCountBackUp;
+ /* 0x000C */ CharSoundInfo mCharactor;
/* 0x0414 */ cXyz mActorPos;
/* 0x0420 */ f32 mFontSizeX;
/* 0x0424 */ f32 mFontSizeY;
@@ -188,8 +241,8 @@ struct jmessage_tReference : public JMessage::TReference {
/* 0x0A1C */ char mText[0x200];
/* 0x0C1C */ char mTextS[0x200];
/* 0x0E1C */ char mRuby[0x200];
- /* 0x101C */ u8 mSelText[3][50];
- /* 0x10B2 */ u8 mSelRuby[3][80];
+ /* 0x101C */ char mSelText[3][50];
+ /* 0x10B2 */ char mSelRuby[3][80];
/* 0x11A2 */ s8 mPageLine[40];
/* 0x11CA */ s8 mPageLineMax[40];
/* 0x11F2 */ u8 mPageType[40];
@@ -272,6 +325,9 @@ struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor,
/* 8022C8FC */ virtual bool do_jump_isReady();
/* 8022CBE4 */ virtual void do_jump(void const*, char const*);
+ u8 getMouthCheck() { return mMouthCheck; }
+ void setForceForm(u8 forceForm) { mForceForm = forceForm; }
+
/* 0x4C jmessage_tMeasureProcessor */
/* 0x9C */ const void* field_0x9c;
/* 0xA0 */ const char* field_0xa0;
@@ -330,6 +386,25 @@ struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
/* 8022D0A0 */ virtual void do_character(int);
/* 8022D74C */ virtual bool do_tag(u32, void const*, u32);
+ void setTextInitPos(float x, float y) {
+ mTextInitPosX = x;
+ mTextInitPosY = y;
+ }
+
+ void setTextScale(float x, float y) {
+ mTextInitScaleX = x;
+ mTextInitScaleY = y;
+ }
+
+ void setSelTextInitPos(int idx, float x, float y) {
+ mSelTextInitPosX[idx] = x;
+ mSelTextInitPosY[idx] = y;
+ }
+
+ void setTextInitOffsetPos(f32 offset) { mTextInitOffsetPos = offset; }
+ void setOutFont(COutFont_c* font) { mpOutFont = font; }
+ void setCharInfoPtr(CharInfo_c* info) { mCharInfoPtr = info; }
+
/* 0x038 */ COutFont_c* mpOutFont;
/* 0x03C */ CharInfo_c* mCharInfoPtr;
/* 0x040 */ s16* mpCharInfoCnt;
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index bcdb4128fe..2fc8016011 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -16,17 +16,17 @@ struct jmessage_tSequenceProcessor;
class dMsgObject_c : public msg_class {
public:
- /* 80233284 */ void _create(msg_class*);
- /* 80233590 */ void _execute();
- /* 802339BC */ void _draw();
- /* 80233AE8 */ void _delete();
+ /* 80233284 */ int _create(msg_class*);
+ /* 80233590 */ int _execute();
+ /* 802339BC */ int _draw();
+ /* 80233AE8 */ int _delete();
/* 80233D04 */ void setMessageIndex(u32, u32, bool);
/* 80233E70 */ void setMessageIndexDemo(u32, bool);
- /* 80233F84 */ int getMessageIndex(u32);
- /* 80233FD8 */ void getRevoMessageIndex(u32);
- /* 802340D4 */ void getMessageIndexAlways(u32);
- /* 80234128 */ void getMessageIDAlways(u32);
- /* 8023413C */ static s16 getMessageGroup(u32);
+ /* 80233F84 */ u32 getMessageIndex(u32);
+ /* 80233FD8 */ u32 getRevoMessageIndex(u32);
+ /* 802340D4 */ u32 getMessageIndexAlways(u32);
+ /* 80234128 */ u32 getMessageIDAlways(u32);
+ /* 8023413C */ s16 getMessageGroup(u32);
/* 80234150 */ void waitProc();
/* 80234318 */ void openProc();
/* 802349D8 */ void outnowProc();
@@ -43,15 +43,15 @@ public:
/* 802360A0 */ void talkStartInit();
/* 8023670C */ void fukiPosCalc(bool);
/* 802368E4 */ void setStatusLocal(u16);
- /* 802368F8 */ void getStatusLocal();
+ /* 802368F8 */ u16 getStatusLocal();
/* 8023690C */ void delete_screen(bool);
- /* 802369D8 */ void isSend();
+ /* 802369D8 */ u8 isSend();
/* 80236BF8 */ void readMessageGroupLocal(mDoDvdThd_mountXArchive_c**);
/* 80236C90 */ void changeFlowGroupLocal(s32);
/* 80236CD4 */ void demoMessageGroupLocal();
/* 80236D00 */ void endFlowGroupLocal();
/* 80236D0C */ void changeGroupLocal(s16);
- /* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
+ /* 80236DE4 */ bool getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 802370A8 */ u8 isGetItemMessage();
/* 802370BC */ bool isKanbanMessage();
@@ -73,12 +73,12 @@ public:
/* 802374D0 */ u8 getSelectBombNum();
/* 80237520 */ void onMsgSendControlLocal();
/* 80237530 */ void offMsgSendControlLocal();
- /* 80237550 */ void isMsgSendControlLocal();
+ /* 80237550 */ int isMsgSendControlLocal();
/* 8023755C */ void onMsgSendLocal();
/* 8023756C */ void offMsgSendLocal();
- /* 8023757C */ void isMsgSendLocal();
- /* 80237588 */ void isMouthCheckLocal();
- /* 8023759C */ void getBombBuyPriceLocal(u8);
+ /* 8023757C */ int isMsgSendLocal();
+ /* 80237588 */ bool isMouthCheckLocal();
+ /* 8023759C */ int getBombBuyPriceLocal(u8);
/* 802375E4 */ void addSelectBomBag(u8);
/* 80237610 */ void resetSelectBomBag();
/* 8023763C */ u8 getSelectBombBagIDLocal();
@@ -88,26 +88,26 @@ public:
/* 802378B8 */ static void setShopWaitTimer(u8);
/* 802378CC */ void setSelectWordFlagLocal(u8);
/* 802378D4 */ bool isHowlHearingModeLocal();
- /* 80237934 */ void isCameraCancelFlag();
- /* 80237950 */ void onCameraCancelFlag();
- /* 80237968 */ void offCameraCancelFlag();
+ /* 80237934 */ static bool isCameraCancelFlag();
+ /* 80237950 */ static void onCameraCancelFlag();
+ /* 80237968 */ static void offCameraCancelFlag();
/* 80237980 */ static bool isKillMessageFlag();
/* 80237994 */ static void onKillMessageFlag();
/* 802379AC */ static void setKillMessageFlag();
/* 802379D8 */ void setKillMessageFlagLocal();
/* 80237A74 */ static void setTalkPartner(fopAc_ac_c*);
/* 80237A88 */ static void setNowTalkFlowNo(s16);
- /* 80237A9C */ void getNowTalkFlowNo();
- /* 80237AB0 */ void setDemoMessage(u32);
+ /* 80237A9C */ static s16 getNowTalkFlowNo();
+ /* 80237AB0 */ static void setDemoMessage(u32);
/* 80237AE0 */ static void setTalkHeap(void*);
/* 80237B10 */ void setTalkHeapLocal(void*);
/* 80237B54 */ static void* getTalkHeap();
- /* 80237B68 */ void isDraw();
+ /* 80237B68 */ bool isDraw();
/* 80237BFC */ void setButtonStatusLocal();
/* 80237D88 */ void setDemoMessageLocal(u32);
- /* 80237DD8 */ void getSmellTypeMessageIDLocal();
+ /* 80237DD8 */ u16 getSmellTypeMessageIDLocal();
/* 80237E04 */ void setSmellTypeLocal(u8);
- /* 80237E58 */ void getSelectCursorPosLocal();
+ /* 80237E58 */ u8 getSelectCursorPosLocal();
/* 80237E68 */ void setSelectCursorPosLocal(u8);
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**);
@@ -117,11 +117,11 @@ public:
/* 802380C4 */ static void changeGroup(s16);
/* 802380F4 */ static bool getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
char*, char*, char*, s16*);
- /* 80238174 */ static u8* getMsgDtPtr();
+ /* 80238174 */ static void* getMsgDtPtr();
/* 80238188 */ static void setProcessID(unsigned int);
/* 8023819C */ static fopAc_ac_c* getActor();
/* 802381C0 */ static fopAc_ac_c* getpTalkActor();
- /* 802381D4 */ static u32 getIdx();
+ /* 802381D4 */ static int getIdx();
/* 802381E8 */ static u16 getNodeIdx();
/* 802381FC */ static void setStatus(u16);
/* 8023822C */ static u16 getStatus();
@@ -131,24 +131,24 @@ public:
/* 802382C8 */ static void offMsgSendControl();
/* 802382F4 */ static int isMsgSendControl();
/* 80238320 */ static void onMsgSend();
- /* 8023834C */ void offMsgSend();
- /* 80238378 */ void isMsgSend();
+ /* 8023834C */ static void offMsgSend();
+ /* 80238378 */ static int isMsgSend();
/* 802383A4 */ static bool isMouthCheck();
/* 802383D0 */ static u32 getMessageID();
- /* 802383E4 */ u32 getSmellTypeMessageID();
+ /* 802383E4 */ u16 getSmellTypeMessageID();
/* 80238410 */ static void setSmellType(u8);
/* 80238440 */ static u8 getSelectCursorPos();
/* 8023846C */ static void setSelectCursorPos(u8);
- /* 8023849C */ void setPortalMessageID(u16);
- /* 802384B0 */ void setInsectItemNo(u8);
+ /* 8023849C */ static void setPortalMessageID(u16);
+ /* 802384B0 */ static void setInsectItemNo(u8);
/* 802384C4 */ static void setLetterNameID(u16);
/* 802384D8 */ static void setArrowNum(u8);
- /* 802384EC */ void setMsgOutputType(u8);
- /* 80238500 */ void getMsgOutputType();
+ /* 802384EC */ static void setMsgOutputType(u8);
+ /* 80238500 */ static u8 getMsgOutputType();
/* 80238514 */ static const char* getWord();
- /* 80238528 */ void getSelectWord(int);
+ /* 80238528 */ static const char* getSelectWord(int);
/* 80238544 */ static void setSelectWordFlag(u8);
- /* 80238574 */ void getSelectWordFlag();
+ /* 80238574 */ static u8 getSelectWordFlag();
/* 80238588 */ static bool isHowlHearingMode();
/* 802385B4 */ static u8 getSelectBombBagID();
/* 802385E0 */ static s16 getSelectBombPrice();
@@ -166,13 +166,34 @@ public:
s16 getNowTotalPaymentLocal() { return mNowTotalPayment; }
void setNowTotalPaymentLocal(s16 i_nowTotalPayment) { mNowTotalPayment = i_nowTotalPayment; }
void onInputFlagLocal() { mInputFlag = 1; }
- void offPaymentFlagLocal() { mPaymentFlag = 0; }
+ void offInputFlagLocal() { mInputFlag = 0; }
+ void offPaymentFlagLocal() { mPaymentFlag = false; }
void offAutoMessageFlagLocal() { mAutoMessageFlag = 0; }
void onAutoMessageFlagLocal() { mAutoMessageFlag = 1; }
void setFundRaisingValueLocal(s16 i_value) { mFundRaisingValue = i_value; }
u16 getPortalMessageIDLocal() { return mPortalMessageID; }
bool isAutoMessageFlagLocal() { return mAutoMessageFlag; }
bool isPaymentFlagLocal() { return mPaymentFlag; }
+ void onPaymentFlagLocal() { mPaymentFlag = true; }
+ s16 getNowTalkFlowNoLocal() { return mNowTalkFlowNo; }
+ void setNowTalkFlowNoLocal(s16 param_0) { mNowTalkFlowNo = param_0; }
+ void setTalkPartnerLocal(fopAc_ac_c* actor) { mpTalkPartner = actor; }
+ void onCameraCancelFlagLocal() { mCameraCancelFlag = true; }
+ void offCameraCancelFlagLocal() { mCameraCancelFlag = false; }
+ void onKillMessageFlagLocal() { mKillMessageFlag = true; }
+ void setProcessIDLocal(unsigned int id) { mProcessID = id; }
+ void setPortalMessageIDLocal(u16 msgID) { mPortalMessageID = msgID; }
+ void setInsectItemNoLocal(u8 itemNo) { mInsectItemNo = itemNo; }
+ void setLetterNameIDLocal(u16 nameID) { mLetterNameID = nameID; }
+ void setArrowNumLocal(u8 arrowNum) { mArrowNum = arrowNum; }
+ void setMsgOutputTypeLocal(u8 outputType) { mMsgOutputType = outputType; }
+ void addNowTotalPrice(s16 price) { addNowTotalPriceLocal(price); }
+ void addNowTotalPriceLocal(s16 price) { mNowTotalPrice += price; }
+ void addNowTotalPayment(s16 price) { addNowTotalPaymentLocal(price); }
+ void addNowTotalPaymentLocal(s16 price) { mNowTotalPayment += price; }
+ void setBombBagIDLocal(int idx, u8 id) { mBombBagID[idx] = id; }
+ void setBombMessageIDLocal(int idx, u16 id) { mBombMessageID[idx] = id; }
+ void setBombNumLocal(int idx, u8 id) { mBombNum[idx] = id; }
u8 getSelectPushFlag() { return mSelectPushFlag; }
u8 getSelectCancelPos() { return mSelectCancelPos; }
@@ -187,10 +208,36 @@ public:
void offAutoMessageFlag() { offAutoMessageFlagLocal(); }
void onAutoMessageFlag() { onAutoMessageFlagLocal(); }
void setFundRaisingValue(s16 i_value) { setFundRaisingValueLocal(i_value); }
+ s16 getFundRaisingValue() { return getFundRaisingValueLocal(); }
+ s16 getFundRaisingValueLocal() { return mFundRaisingValue; }
u16 getPortalMessageID() { return getPortalMessageIDLocal(); }
bool isAutoMessageFlag() { return isAutoMessageFlagLocal(); }
bool isPaymentFlag() { return isPaymentFlagLocal(); }
u8 getFukiKind() { return mFukiKind; }
+ bool isKillMessageFlagLocal() { return mKillMessageFlag; }
+ void offKillMessageFlagLocal() { mKillMessageFlag = false; }
+ void* getTalkHeapLocal() { return mpTalkHeap; }
+ u8 getSelectBomBag(int idx) { return getSelectBombBagLocal(idx); }
+ u8 getSelectBombBagLocal(int idx) { return mSelectBombBag[idx]; }
+ u8 getBombNumLocal(int idx) { return mBombNum[idx]; }
+ bool isCameraCancelFlagLocal() { return mCameraCancelFlag; }
+ void* getMsgDtPtrLocal() { return mpMsgDt; }
+ // TODO: The type return is unclear. Maybe msg_class*.
+ fopAc_ac_c* getActorLocal() { return (fopAc_ac_c*)field_0x100; }
+ fopAc_ac_c* getpTalkActorLocal() { return mpTalkActor; }
+ int getIdxLocal() { return mIdx; }
+ u16 getNodeIdxLocal() { return mNodeIdx; }
+ dMsgScrnBase_c* getScrnDrawPtrLocal() { return mpScrnDraw; }
+ u32 getMessageIDLocal() { return mMessageID; }
+ u8 getMsgOutputTypeLocal() { return mMsgOutputType; }
+ const char* getWordLocal() { return mWord; }
+ const char* getSelectWordLocal(int idx) { return mSelectWord[idx]; }
+ u8 getSelectWordFlagLocal() { return mSelectWordFlag; }
+ u16 getLetterNameIDLocal() { return mLetterNameID; }
+ u16 getInsectItemNoLocal() { return mInsectItemNo; }
+ u16 getBombMessageIDLocal(int idx) { return mBombMessageID[idx]; }
+ u8 getBombBagIDLocal(int idx) { return mBombBagID[idx]; }
+ u8 getArrowNumLocal() { return mArrowNum; }
jmessage_tSequenceProcessor* getSequenceProcessor() { return mpSeqProc; }
@@ -200,39 +247,40 @@ public:
/* 0x108 */ dMsgString_c* mpMsgString;
/* 0x10C */ COutFont_c* mpOutFont;
/* 0x110 */ JMessage::TResourceContainer* mpResCont;
- /* 0x114 */ JMessage::TControl* mpCtrl;
+ /* 0x114 */ jmessage_tControl* mpCtrl;
/* 0x118 */ jmessage_tReference* mpRefer;
/* 0x11C */ jmessage_tSequenceProcessor* mpSeqProc;
/* 0x120 */ jmessage_tRenderingProcessor* mpRenProc;
/* 0x124 */ JMessage::TParse* field_0x124;
/* 0x128 */ void* mpMsgRes;
- /* 0x12C */ u8 field_0x12c[4];
+ /* 0x12C */ int field_0x12c;
/* 0x130 */ void* mpMsgDt;
/* 0x134 */ u8 field_0x134[4];
/* 0x138 */ fopAc_ac_c* mpTalkActor;
- /* 0x13C */ int field_0x13c;
+ /* 0x13C */ fopAc_ac_c* field_0x13c;
/* 0x140 */ fopAc_ac_c* mpTalkPartner;
- /* 0x144 */ void* mpTalkHeap;
- /* 0x148 */ int field_0x148;
+ /* 0x144 */ JKRExpHeap* mpTalkHeap;
+ /* 0x148 */ JKRHeap* field_0x148;
/* 0x14C */ int mProcessID;
/* 0x150 */ f32 field_0x150;
- /* 0x154 */ int mMessageID;
- /* 0x158 */ int field_0x158;
- /* 0x15C */ int field_0x15c;
+ /* 0x154 */ u32 mMessageID;
+ /* 0x158 */ u32 field_0x158;
+ /* 0x15C */ u32 field_0x15c;
/* 0x160 */ int mIdx;
- /* 0x164 */ int mNodeIdx;
+ /* 0x164 */ u16 mNodeIdx;
+ /* 0x166 */ u16 field_0x166;
/* 0x168 */ u16 field_0x168;
- /* 0x16A */ u8 field_0x16a[2];
- /* 0x16C */ u16 field_0x16c;
- /* 0x16E */ u16 field_0x16e;
- /* 0x170 */ u16 mNowTalkFlowNo;
- /* 0x172 */ u16 field_0x172;
+ /* 0x16A */ s16 field_0x16a;
+ /* 0x16C */ s16 field_0x16c;
+ /* 0x16E */ s16 field_0x16e;
+ /* 0x170 */ s16 mNowTalkFlowNo;
+ /* 0x172 */ s16 field_0x172;
/* 0x174 */ s16 mInputValue;
- /* 0x176 */ u16 mFundRaisingValue;
+ /* 0x176 */ s16 mFundRaisingValue;
/* 0x178 */ u16 field_0x178;
/* 0x17A */ s16 mNowTotalPrice;
/* 0x17C */ s16 mNowTotalPayment;
- /* 0x17E */ u16 field_0x17e;
+ /* 0x17E */ s16 field_0x17e;
/* 0x180 */ u16 mPortalMessageID;
/* 0x182 */ u16 mBombMessageID[3];
/* 0x188 */ u16 mLetterNameID;
@@ -250,7 +298,7 @@ public:
/* 0x19B */ u8 field_0x19b;
/* 0x19C */ u8 mFlowChk;
/* 0x19D */ u8 field_0x19d;
- /* 0x19E */ u8 mCameraCancelFlag;
+ /* 0x19E */ bool mCameraCancelFlag;
/* 0x19F */ u8 mInputFlag;
/* 0x1A0 */ u8 mSmellType;
/* 0x1A1 */ u8 mSelectCancelPos;
@@ -270,9 +318,9 @@ public:
/* 0x4CD */ u8 field_0x4cd;
/* 0x4CE */ u8 field_0x4ce;
/* 0x4CF */ u8 mAutoMessageFlag;
- /* 0x4D0 */ u8 mPaymentFlag;
+ /* 0x4D0 */ bool mPaymentFlag;
/* 0x4D1 */ u8 field_0x4d1;
- /* 0x4D2 */ u8 mKillMessageFlag;
+ /* 0x4D2 */ bool mKillMessageFlag;
/* 0x4D3 */ u8 mEquipBombInfo;
/* 0x4D4 */ u8 field_0x4d4;
};
@@ -304,6 +352,10 @@ inline bool dMsgObject_isKillMessageFlag() {
return dMsgObject_c::isKillMessageFlag();
}
+inline bool dMsgObject_isCameraCancelFlag() {
+ return dMsgObject_c::isCameraCancelFlag();
+}
+
inline u32 dMsgObject_getMessageID() {
return dMsgObject_c::getMessageID();
}
@@ -324,10 +376,22 @@ inline void dMsgObject_offMsgSendControl() {
dMsgObject_getMsgObjectClass()->offMsgSendControl();
}
+inline void dMsgObject_onMsgSendControl() {
+ dMsgObject_getMsgObjectClass()->onMsgSendControl();
+}
+
inline int dMsgObject_isMsgSendControl() {
return dMsgObject_getMsgObjectClass()->isMsgSendControl();
}
+inline int dMsgObject_isMsgSend() {
+ return dMsgObject_getMsgObjectClass()->isMsgSend();
+}
+
+inline void dMsgObject_offMsgSend() {
+ dMsgObject_getMsgObjectClass()->offMsgSend();
+}
+
inline const char* dMsgObject_getWord() {
return dMsgObject_c::getWord();
}
@@ -353,6 +417,14 @@ inline bool dMsgObject_getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* p
param_7, param_8);
}
+inline void dMsgObject_onCameraCancelFlag() {
+ dMsgObject_c::onCameraCancelFlag();
+}
+
+inline void dMsgObject_offCameraCancelFlag() {
+ dMsgObject_c::offCameraCancelFlag();
+}
+
inline void dMsgObject_onKillMessageFlag() {
dMsgObject_c::onKillMessageFlag();
}
@@ -409,12 +481,16 @@ inline void dMsgObject_setTalkHeap(void* heap) {
dMsgObject_c::setTalkHeap(heap);
}
+inline void dMsgObject_setMsgOutputType(u8 outputType) {
+ dMsgObject_getMsgObjectClass()->setMsgOutputType(outputType);
+}
+
class dMsgObject_HowlHIO_c {
public:
/* 80232AEC */ dMsgObject_HowlHIO_c();
/* 80238B94 */ virtual ~dMsgObject_HowlHIO_c() {}
- /* 0x04 */ s8 field_0x4;
+ /* 0x04 */ s32 field_0x4;
/* 0x08 */ JUtility::TColor mHowlLineStartCol;
/* 0x0C */ JUtility::TColor mHowlLineEndCol;
/* 0x10 */ f32 mHighlightScale;
@@ -524,10 +600,10 @@ public:
/* 0x0E0 */ f32 mBoxItemTextPosX;
/* 0x0E4 */ f32 mBoxItemTextPosY;
/* 0x0E8 */ JUtility::TColor
- mBoxStartBlack[10]; // talk, navi, midna, item, stone, wood, book, wolf,
- /* 0x110 */ JUtility::TColor mBoxEndBlack[10];
- /* 0x138 */ JUtility::TColor mBoxStartWhite[10];
- /* 0x160 */ JUtility::TColor mBoxEndWhite[10];
+ mBoxStartBlack[20]; // talk, navi, midna, item, stone, wood, book, wolf,
+ /* 0x110 */ //JUtility::TColor mBoxEndBlack[10];
+ /* 0x138 */ JUtility::TColor mBoxStartWhite[20];
+ /* 0x160 */ //JUtility::TColor mBoxEndWhite[10];
/* 0x188 */ JUtility::TColor mSelMsgInactiveCol;
/* 0x18C */ f32 mStageTitleCharPosX;
/* 0x190 */ f32 mBossNameCharPosX;
@@ -567,15 +643,15 @@ public:
/* 0x2F6 */ s16 mFlowIndex;
/* 0x2F8 */ s16 mSaveSeqMsgIndex;
/* 0x2FA */ s16 mSelWaitFrame;
- /* 0x2FC */ u16 mBoxAppearBound;
- /* 0x2FE */ u16 mBoxAppearFrame;
- /* 0x300 */ u16 mWaitFrame;
- /* 0x302 */ u16 mLightAppearFrame;
- /* 0x304 */ u16 field_0x304;
- /* 0x306 */ u16 mStageTitleFadeIn;
- /* 0x308 */ u16 mStageTitleFadeOut;
- /* 0x30A */ u16 mBossNameFadeIn;
- /* 0x30C */ u16 mBossNameFadeOut;
+ /* 0x2FC */ s16 mBoxAppearBound;
+ /* 0x2FE */ s16 mBoxAppearFrame;
+ /* 0x300 */ s16 mWaitFrame;
+ /* 0x302 */ s16 mLightAppearFrame;
+ /* 0x304 */ s16 field_0x304;
+ /* 0x306 */ s16 mStageTitleFadeIn;
+ /* 0x308 */ s16 mStageTitleFadeOut;
+ /* 0x30A */ s16 mBossNameFadeIn;
+ /* 0x30C */ s16 mBossNameFadeOut;
/* 0x30E */ u16 mStageTitleDisplayTime;
/* 0x310 */ u16 mBossNameDisplayTime;
/* 0x312 */ u16 mBatchDisplayWeight_3;
diff --git a/include/d/msg/d_msg_scrn_base.h b/include/d/msg/d_msg_scrn_base.h
index fc9f0e5663..904c4f2fb9 100644
--- a/include/d/msg/d_msg_scrn_base.h
+++ b/include/d/msg/d_msg_scrn_base.h
@@ -38,6 +38,32 @@ public:
/* 8023C4F4 */ virtual void fontAlpha(f32);
/* 80238C5C */ virtual void fukiPosCalc(u8);
+ f32 getSelTextBoxPosX(int idx) { return mSelTextBoxPosX[idx]; }
+ f32 getSelTextBoxPosY(int idx) { return mSelTextBoxPosY[idx]; }
+ f32 getTextBoxPosX() { return mTextBoxPosX; }
+ f32 getTextBoxPosY() { return mTextBoxPosY; }
+ f32 getTextBoxScaleX() { return mTextBoxScaleX; }
+ f32 getTextBoxScaleY() { return mTextBoxScaleY; }
+ f32 getTextBoxPosOffsetY() { return mTextBoxPosOffsetY; }
+ f32 getFontSizeX() { return mFontSize.mSizeX; }
+ f32 getFontSizeY() { return mFontSize.mSizeY; }
+ f32 getRubySize() { return mRubySize; }
+ f32 getTBoxWidth() { return mTBoxWidth; }
+ f32 getTBoxHeight() { return mTBoxHeight; }
+ f32 getLineSpace() { return mLineSpace; }
+ f32 getCharSpace() { return mCharSpace; }
+ f32 getRubyCharSpace() { return mRubyCharSpace; }
+ f32 getSelFontSize() { return mSelFontSize; }
+ f32 getSelRubySize() { return mSelRubySize; }
+ f32 getSelTBoxWidth() { return mSelTBoxWidth; }
+ f32 getSelCharSpace() { return mSelCharSpace; }
+ f32 getSelRubyCharSpace() { return mSelRubyCharSpace; }
+ CharInfo_c* getCharInfoPtr() { return mCharInfoPtr; }
+ void setCharAlphaRate(f32 rate) { mCharAlphaRate = rate; }
+ void setTextBoxPosOffsetY(f32 offset) { mTextBoxPosOffsetY = offset; }
+ void setMsgID(u16 msgID) { mMsgID = msgID; }
+ void setOutFont(COutFont_c* font) { mpOutFont = font; }
+
/* 0x04 */ J2DScreen* mpScreen;
/* 0x08 */ CPaneMgr* mpPmP_c;
/* 0x0C */ CPaneMgr* mpTm_c[7];
diff --git a/include/d/msg/d_msg_scrn_howl.h b/include/d/msg/d_msg_scrn_howl.h
index ed654979b4..88df8beb0a 100644
--- a/include/d/msg/d_msg_scrn_howl.h
+++ b/include/d/msg/d_msg_scrn_howl.h
@@ -42,6 +42,8 @@ struct dMsgScrnHowl_c : public dMsgScrnBase_c {
/* 80244304 */ u16 getGuideDataSize();
/* 8024438C */ u8 getGuideDataType(int);
+ bool isHearingMode() { return field_0x2798 == 3;}
+
/* 0x00C4 */ CPaneMgr* mpLineH[3];
/* 0x00D0 */ CPaneMgr* mpLineV[7];
/* 0x00EC */ CPaneMgr* mpLineAll;
diff --git a/include/d/msg/d_msg_scrn_item.h b/include/d/msg/d_msg_scrn_item.h
index 2ef77d16f8..e0f3ee596c 100644
--- a/include/d/msg/d_msg_scrn_item.h
+++ b/include/d/msg/d_msg_scrn_item.h
@@ -2,5 +2,33 @@
#define MSG_SCRN_D_MSG_SCRN_ITEM_H
#include "dolphin/types.h"
+#include "d/msg/d_msg_scrn_base.h"
+
+struct dMsgScrnItem_c : public dMsgScrnBase_c {
+ /* 8023E79C */ dMsgScrnItem_c(u8, u8, JKRExpHeap*);
+ /* 8023F51C */ ~dMsgScrnItem_c();
+ /* 8023F888 */ void exec();
+ /* 8023FB24 */ void drawSelf();
+ /* 8023FF30 */ void arwAnimeInit();
+ /* 8023FF54 */ void arwAnimeMove();
+ /* 8023FF78 */ void dotAnimeInit();
+ /* 8023FF9C */ void dotAnimeMove();
+ /* 8023FFC0 */ void setSelectString(char*, char*, char*);
+ /* 8023FFE4 */ void setSelectRubyString(char*, char*, char*);
+ /* 80240008 */ bool isSelect();
+ /* 8024002C */ void selectAnimeInit(u8, u8, f32, u8);
+ /* 8024005C */ bool selectAnimeMove(u8, u8, bool);
+ /* 80240080 */ bool selectAnimeEnd();
+ /* 802400A4 */ void fukiScale(f32);
+ /* 802400A8 */ void fukiTrans(f32, f32);
+ /* 802400CC */ void fukiAlpha(f32);
+ /* 80240174 */ void fukiPosCalc(u8);
+ /* 8024074C */ void setBtk0Animation(J2DAnmTextureSRTKey*);
+ /* 802407E8 */ void setBpk0Animation(J2DAnmColor*);
+ /* 80240844 */ void setBpk1Animation(J2DAnmColor*);
+ /* 802408A4 */ void isOugiID();
+
+ u8 field_0xc4[0x1a0 - 0xc4];
+};
#endif /* MSG_SCRN_D_MSG_SCRN_ITEM_H */
diff --git a/include/d/msg/d_msg_scrn_talk.h b/include/d/msg/d_msg_scrn_talk.h
index 41d7e19b26..ecde743238 100644
--- a/include/d/msg/d_msg_scrn_talk.h
+++ b/include/d/msg/d_msg_scrn_talk.h
@@ -2,5 +2,29 @@
#define MSG_SCRN_D_MSG_SCRN_TALK_H
#include "dolphin/types.h"
+#include "d/msg/d_msg_scrn_base.h"
+
+struct dMsgScrnTalk_c : public dMsgScrnBase_c {
+ /* 80246FF0 */ dMsgScrnTalk_c(u8, u8, JKRExpHeap*);
+ /* 80247A90 */ ~dMsgScrnTalk_c();
+ /* 80247D34 */ void exec();
+ /* 80247E4C */ void drawSelf();
+ /* 802480F0 */ void arwAnimeInit();
+ /* 80248114 */ void arwAnimeMove();
+ /* 80248138 */ void dotAnimeInit();
+ /* 8024815C */ void dotAnimeMove();
+ /* 80248180 */ void setSelectString(char*, char*, char*);
+ /* 802481AC */ void setSelectRubyString(char*, char*, char*);
+ /* 802481D8 */ bool isSelect();
+ /* 8024820C */ void selectAnimeInit(u8, u8, f32, u8);
+ /* 80248244 */ bool selectAnimeMove(u8, u8, bool);
+ /* 80248278 */ bool selectAnimeEnd();
+ /* 802482AC */ void fukiScale(f32);
+ /* 802482B0 */ void fukiTrans(f32, f32);
+ /* 802482B4 */ void fukiAlpha(f32);
+ /* 8024835C */ void fukiPosCalc(u8);
+
+ u8 field_0xc4[0x48c - 0xc4];
+};
#endif /* MSG_SCRN_D_MSG_SCRN_TALK_H */
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index e4734a7518..33bf1f74bb 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -252,4 +252,12 @@ inline void mDoAud_startFogSe() {
g_mEnvSeMgr.startFogSe();
}
+inline void mDoAud_talkOut() {
+ Z2AudioMgr::getInterface()->talkOut();
+}
+
+inline void mDoAud_talkIn() {
+ Z2AudioMgr::getInterface()->talkIn();
+}
+
#endif /* M_DO_M_DO_AUDIO_H */
diff --git a/include/rel/d/a/obj/d_a_obj_movebox/d_a_obj_movebox.h b/include/rel/d/a/obj/d_a_obj_movebox/d_a_obj_movebox.h
index cd2610477a..e501dc65f1 100644
--- a/include/rel/d/a/obj/d_a_obj_movebox/d_a_obj_movebox.h
+++ b/include/rel/d/a/obj/d_a_obj_movebox/d_a_obj_movebox.h
@@ -198,7 +198,7 @@ namespace daObjMovebox {
void off_switch2() const { fopAcM_offSwitch(this, prmZ_get_swSave2()); }
static s16 M_dir_base[4];
- static const char* M_arcname[8];
+ static const char* const M_arcname[8];
static const dCcD_SrcCyl M_cyl_src;
static const daObjMovebox::Hio_c::Attr_c M_attr[8];