From 30103693f5fcf530812179a0d8cccb327ca9c775 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 1 Jul 2024 23:35:25 -0700 Subject: [PATCH] d_s_open_sub work --- include/JSystem/J2DGraph/J2DTextBox.h | 1 + include/d/d_s_open.h | 27 ++- include/f_op/f_op_msg_mng.h | 95 ++++++++ include/m_Do/m_Do_ext.h | 3 + src/d/d_s_open_sub.cpp | 313 +++++++++++++++++++++++++- src/f_op/f_op_msg_mng.cpp | 92 -------- 6 files changed, 433 insertions(+), 98 deletions(-) diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h index 6b25eb80e..7ca55c48a 100644 --- a/include/JSystem/J2DGraph/J2DTextBox.h +++ b/include/JSystem/J2DGraph/J2DTextBox.h @@ -52,6 +52,7 @@ public: void setBlack(JUtility::TColor c) { mBlack = c; } void setWhite(JUtility::TColor c) { mBlack = c; } void setLineSpace(f32 x) { mLineSpace = x; } + f32 getLineSpace() const { return mLineSpace; } void setCharSpace(f32 x) { mCharSpace = x; } void draw(f32, f32, f32, J2DTextBoxHBinding); char* getStringPtr() const; diff --git a/include/d/d_s_open.h b/include/d/d_s_open.h index b0799c2e1..7fd3f0f6b 100644 --- a/include/d/d_s_open.h +++ b/include/d/d_s_open.h @@ -2,6 +2,7 @@ #define D_S_OPEN #include "d/d_drawlist.h" +#include "f_op/f_op_msg_mng.h" #include "f_op/f_op_scene.h" class J2DScreen; @@ -13,6 +14,24 @@ public: virtual ~dScnOpen_message_c(); void set_message(u32, int); void exec(); + +public: + /* 0x0000 */ u8 field_0x00[0x2000]; + /* 0x2004 */ fopMsgM_msgDataProc_c mMsgDataProc; + /* 0x22A4 */ u8 field_0x22a4[0x22c0 - 0x22a4]; + /* 0x22C0 */ u32 field_0x22c0; + /* 0x22C4 */ J2DTextBox* field_0x22c4; + /* 0x22C8 */ J2DTextBox* field_0x22c8; + /* 0x22CC */ JUTFont* tFont; + /* 0x22D0 */ JUTFont* rFont; + /* 0x22D4 */ JKRExpHeap* exp_heap; + /* 0x22D8 */ f32 field_0x22d8; + /* 0x22DC */ u32 field_0x22dc; + /* 0x22E0 */ u32 field_0x22e0; + /* 0x22E4 */ u32 field_0x22e4; + /* 0x22E8 */ u8 field_0x22e8; + /* 0x22EC */ u32 field_0x22ec; + /* 0x22F0 */ u32 field_0x22f0; }; class dScnOpen_proc_c : public dDlst_base_c { @@ -37,8 +56,12 @@ public: /* 0x030 */ J2DPane* mak2; /* 0x034 */ J2DTextBox* tx1; /* 0x038 */ J2DTextBox* tx2; - /* 0x03C */ u8 pad[0x2B0 - 0x03C]; - /* 0x2B0 */ s32 field_0x2b0; + /* 0x03C */ fopMsgM_pane_class pane[11]; + /* 0x2A4 */ f32 mPosX; + /* 0x2A8 */ f32 mAlpha; + /* 0x2AC */ s32 mTimer; + /* 0x2B0 */ s32 mState; + /* 0x2B4 */ f32 mScale; /* 0x010 */ u8 pad2[0x014]; }; diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h index 255f6beca..45789156d 100644 --- a/include/f_op/f_op_msg_mng.h +++ b/include/f_op/f_op_msg_mng.h @@ -55,6 +55,101 @@ struct fopMsgM_pane_alpha_class { /* 0x05 */ u8 mNowAlpha; }; +class fopMsgM_msgDataProc_c { +public: + fopMsgM_msgDataProc_c(); + virtual ~fopMsgM_msgDataProc_c(); + void dataInit(); + void charLength(int, int, bool); + void rubyLength(int, bool); + void stringLength(); + void stringShift(); + void iconSelect(int, u8); + void iconIdxRefresh(); + void selectCheck2(J2DPane*, int, int, int); + void selectCheck3(J2DPane*, int, int, int); + void selectCheckYoko(J2DPane*, int, int, int); + void inputNumber(int); + void selectArrow(J2DPicture*, f32, f32, f32, f32); + void selectArrow(J2DPicture*, f32, f32); + void colorAnime(J2DPicture*); + void stringSet(); + void setSelectFlagYokoOn(); + void setSelectFlagOn(); + void setHandSendFlagOn(); + void setAutoSendFlagOn(); + void getHandSendFlag(); + void getAutoSendFlag(); + void getString(char*, u32); + void getString(char*, char*, char*, char*, u32, f32*, f32*, int*); + void getRubyString(char*, char*, char*, char*, char*, char*, f32*, f32*, int*); + void tag_len_kaisen_game(int*, f32*, int*, int*, int*); + void tag_len_rupee(int*, f32*, int*, int*, int*); + void tag_len_num_input(int*, f32*, int*, int*, int*); + void tag_len_sword_game(int*, f32*, int*, int*, int*); + void tag_len_letter_game(int*, f32*, int*, int*, int*); + void tag_len_letter_game_max(int*, f32*, int*, int*, int*); + void tag_len_fish(int*, f32*, int*, int*, int*); + void tag_len_fish_rupee(int*, f32*, int*, int*, int*); + void tag_len_letter(int*, f32*, int*, int*, int*); + void tag_len_rescue(int*, f32*, int*, int*, int*); + void tag_len_forest_timer(int*, f32*, int*, int*, int*); + void tag_len_birdman(int*, f32*, int*, int*, int*); + void tag_len_point(int*, f32*, int*, int*, int*); + void tag_len_get_pendant(int*, f32*, int*, int*, int*); + void tag_len_rev_pendant(int*, f32*, int*, int*, int*); + void tag_len_pig_timer(int*, f32*, int*, int*, int*); + void tag_len_get_bomb(int*, f32*, int*, int*, int*); + void tag_len_get_arrow(int*, f32*, int*, int*, int*); + void tag_len_stock_bokobaba(int*, f32*, int*, int*, int*); + void tag_len_stock_dokuro(int*, f32*, int*, int*, int*); + void tag_len_stock_chuchu(int*, f32*, int*, int*, int*); + void tag_len_stock_pendant(int*, f32*, int*, int*, int*); + void tag_len_stock_hane(int*, f32*, int*, int*, int*); + void tag_len_stock_kenshi(int*, f32*, int*, int*, int*); + void tag_len_terry_rupee(int*, f32*, int*, int*, int*); + void tag_len_input_bokobaba(int*, f32*, int*, int*, int*); + void tag_len_input_dokuro(int*, f32*, int*, int*, int*); + void tag_len_input_chuchu(int*, f32*, int*, int*, int*); + void tag_len_input_pendant(int*, f32*, int*, int*, int*); + void tag_len_input_hane(int*, f32*, int*, int*, int*); + void tag_len_input_kenshi(int*, f32*, int*, int*, int*); + void tag_kaisen_game(); + void tag_rupee(); + void tag_num_input(); + void tag_sword_game(); + void tag_letter_game(); + void tag_letter_game_max(); + void tag_fish(); + void tag_fish_rupee(); + void tag_letter(); + void tag_rescue(); + void tag_forest_timer(); + void tag_birdman(); + void tag_point(); + void tag_get_pendant(); + void tag_rev_pendant(); + void tag_pig_timer(); + void tag_get_bomb(); + void tag_get_arrow(); + void tag_stock_bokobaba(); + void tag_stock_dokuro(); + void tag_stock_chuchu(); + void tag_stock_pendant(); + void tag_stock_hane(); + void tag_stock_kenshi(); + void tag_terry_rupee(); + void tag_input_bokobaba(); + void tag_input_dokuro(); + void tag_input_chuchu(); + void tag_input_pendant(); + void tag_input_hane(); + void tag_input_kenshi(); + +public: + /* 0x000 */ u8 field_0x00[0x29C]; +}; + typedef int (*fopMsgCreateFunc)(void*); JKRExpHeap* fopMsgM_createExpHeap(u32, JKRHeap*); diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 3019e8c7e..1dd331c9f 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -651,6 +651,9 @@ JKRHeap* mDoExt_setCurrentHeap(JKRHeap* pHeap); JUTFont* mDoExt_getMesgFont(); JUTFont* mDoExt_getRubyFont(); +void mDoExt_removeMesgFont(); +void mDoExt_removeRubyFont(); + extern JKRExpHeap* zeldaHeap; extern JKRExpHeap* gameHeap; extern JKRExpHeap* commandHeap; diff --git a/src/d/d_s_open_sub.cpp b/src/d/d_s_open_sub.cpp index f57ca3566..02a6ae08a 100644 --- a/src/d/d_s_open_sub.cpp +++ b/src/d/d_s_open_sub.cpp @@ -6,6 +6,8 @@ #include "d/d_s_open.h" #include "d/d_com_inf_game.h" #include "f_op/f_op_msg_mng.h" +#include "f_op/f_op_overlap_mng.h" +#include "JSystem/J2DGraph/J2DOrthoGraph.h" #include "JSystem/J2DGraph/J2DScreen.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "JSystem/JKernel/JKRExpHeap.h" @@ -22,13 +24,24 @@ void dScnOpen_message_c::exec() { } /* 80233524-80233620 .text __ct__18dScnOpen_message_cFP10JKRExpHeap */ -dScnOpen_message_c::dScnOpen_message_c(JKRExpHeap*) { +dScnOpen_message_c::dScnOpen_message_c(JKRExpHeap* heap) { /* Nonmatching */ + exp_heap = heap; + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); + tFont = mDoExt_getMesgFont(); + JUT_ASSERT(0xCD, tFont != NULL); + rFont = mDoExt_getRubyFont(); + JUT_ASSERT(0xD0, rFont != NULL); + mDoExt_setCurrentHeap(old_heap); } /* 80233620-80233698 .text __dt__18dScnOpen_message_cFv */ dScnOpen_message_c::~dScnOpen_message_c() { /* Nonmatching */ + mDoExt_removeMesgFont(); + mDoExt_removeRubyFont(); + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); + mDoExt_setCurrentHeap(old_heap); } /* 80233698-80233B0C .text __ct__15dScnOpen_proc_cFv */ @@ -36,7 +49,7 @@ dScnOpen_proc_c::dScnOpen_proc_c() { /* Nonmatching */ exp_heap = fopMsgM_createExpHeap(0x20000); JUT_ASSERT(0xe2, exp_heap != NULL); - JKRHeap* oldHeap = mDoExt_setCurrentHeap(exp_heap); + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); m_Screen = new J2DScreen(); JUT_ASSERT(0xe7, m_Screen != NULL); m_message = new dScnOpen_message_c(exp_heap); @@ -56,21 +69,313 @@ dScnOpen_proc_c::dScnOpen_proc_c() { tx1 = (J2DTextBox*)m_Screen->search('\0tx1'); tx2 = (J2DTextBox*)m_Screen->search('\0tx2'); tx1->move(tx1->mBounds.i.x, 376.0f); + m_message->field_0x22c4 = tx1; + m_message->field_0x22c8 = tx2; + m_message->field_0x22c4->setFont(m_message->tFont); + m_message->field_0x22c8->setFont(m_message->rFont); + m_message->field_0x22c8->setLineSpace(m_message->field_0x22c4->getLineSpace()); + for (s32 i = 0; i < (s32)ARRAY_SIZE(pane); i++) { + fopMsgM_setPaneData(&pane[i], &d1[i]); + fopMsgM_setNowAlpha(&pane[i], 0.0f); + fopMsgM_setAlpha(&pane[i]); + } + + for (s32 i = 7; i < 9; i++) { + fopMsgM_setNowAlpha(&pane[i], 1.0f); + fopMsgM_setAlpha(&pane[i]); + } + + m_message->set_message(0, 0); + mState = 0; + mDoExt_setCurrentHeap(old_heap); } /* 80233B0C-80233BE4 .text __dt__15dScnOpen_proc_cFv */ dScnOpen_proc_c::~dScnOpen_proc_c() { - /* Nonmatching */ + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); + delete m_Screen; + m_Screen = NULL; + delete m_message; + m_message = NULL; + mDoExt_setCurrentHeap(old_heap); + fopMsgM_destroyExpHeap(exp_heap); } /* 80233BE4-802344D8 .text proc_execute__15dScnOpen_proc_cFv */ void dScnOpen_proc_c::proc_execute() { /* Nonmatching */ + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); + m_message->exec(); + switch (mState) { + case 0: + mTimer = 0; + mState = 1; + case 1: + if (mTimer >= 90) + mState = 2; + else + mTimer++; + if (mTimer == 40 && ! fopOvlpM_IsPeek()) + mDoAud_bgmStreamPrepare(JA_STRM_DEMO_01_01); + break; + case 2: + mDoAud_bgmStreamPlay(); + m_message->set_message(0x58e, 1); + fopMsgM_paneTrans(&pane[9], 0.0f, -190.0f); + fopMsgM_paneTrans(&pane[10], 0.0f, -190.0f); + mState = 3; + case 3: + if (m_message->field_0x22e8 != 0) + mState = 4; + break; + case 4: + fopMsgM_paneTrans(&pane[9], 0.0f, 0.0f); + fopMsgM_paneTrans(&pane[10], 0.0f, 0.0f); + mTimer = 0; + mState = 5; + case 5: + if (mTimer >= 60) + mState = 6; + else + mTimer++; + break; + case 6: + fopMsgM_setNowAlpha(&pane[0], 0.0f); + mPosX = 0.0f; + mAlpha = 0.0f; + mState = 7; + case 7: + mPosX -= 0.5719626f; + mAlpha += 0.067f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 8; + } + fopMsgM_paneTrans(&pane[0], 0.0f, mPosX); + fopMsgM_setNowAlpha(&pane[0], mAlpha); + break; + case 8: + m_message->set_message(0x579, 2); + fopMsgM_setNowAlpha(&pane[0], 1.0f); + mState = 9; + case 9: + mPosX -= 0.5719626f; + if (m_message->field_0x22e8 != 0) + mState = 10; + fopMsgM_paneTrans(&pane[0], 0.0f, mPosX); + break; + case 10: + fopMsgM_setNowAlpha(&pane[0], 1.0f); + fopMsgM_setNowAlpha(&pane[1], 0.0f); + mAlpha = 0; + mState = 11; + case 11: + mPosX -= 0.5719626f; + mAlpha += 0.0223f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 12; + } + fopMsgM_paneTrans(&pane[0], 0.0f, mPosX); + fopMsgM_setNowAlpha(&pane[0], 1.0f - mAlpha); + fopMsgM_setNowAlpha(&pane[1], mAlpha); + break; + case 12: + m_message->set_message(0x57b, 3); + mState = 13; + case 13: + if (m_message->field_0x22e8 != 0) + mState = 14; + break; + case 14: + mAlpha = 1.0f; + mState = 15; + case 15: + mAlpha -= 0.067f; + if (mAlpha <= 0.0f) { + mAlpha = 0.0f; + mState = 16; + } + fopMsgM_setNowAlpha(&pane[1], mAlpha); + break; + case 16: + mAlpha = 0.0f; + mState = 17; + case 17: + mAlpha += 0.067f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 18; + } + fopMsgM_setNowAlpha(&pane[2], mAlpha); + break; + case 18: + m_message->set_message(0x57e, 2); + fopMsgM_setNowAlpha(&pane[2], 1.0f); + mState = 19; + case 19: + if (m_message->field_0x22e8 != 0) + mState = 20; + break; + case 20: + mAlpha = 1.0f; + mState = 21; + case 21: + mAlpha -= 0.067f; + if (mAlpha <= 0.0f) { + mAlpha = 0.0f; + mState = 22; + } + fopMsgM_setNowAlpha(&pane[2], mAlpha); + break; + case 22: + mPosX = 0.0f; + mAlpha = 0.0f; + mState = 23; + case 23: + mPosX -= 0.4748201f; + mAlpha += 0.067f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 24; + } + fopMsgM_paneTrans(&pane[3], mPosX, 0.0f); + fopMsgM_setNowAlpha(&pane[3], mAlpha); + fopMsgM_setNowAlpha(&pane[4], mAlpha); + break; + case 24: + m_message->set_message(0x580, 5); + fopMsgM_setNowAlpha(&pane[3], 1.0f); + fopMsgM_setNowAlpha(&pane[4], 1.0f); + mState = 25; + case 25: + mPosX -= 0.4748201f; + if (m_message->field_0x22e8 != 0) + mState = 26; + fopMsgM_paneTrans(&pane[3], mPosX, 0.0f); + break; + case 26: + fopMsgM_setNowAlpha(&pane[3], 1.0f); + fopMsgM_setNowAlpha(&pane[4], 1.0f); + fopMsgM_setNowAlpha(&pane[5], 0.0f); + mAlpha = 0.0f; + mState = 27; + case 27: + mPosX -= 0.4748201f; + mAlpha += 0.0223f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 28; + } + fopMsgM_paneTrans(&pane[3], mPosX, 0.0f); + fopMsgM_setNowAlpha(&pane[3], 1.0f - mAlpha); + fopMsgM_setNowAlpha(&pane[4], 1.0f - mAlpha); + fopMsgM_setNowAlpha(&pane[5], mAlpha); + break; + case 28: + m_message->set_message(0x585, 4); + fopMsgM_setNowAlpha(&pane[5], 1.0f); + mState = 29; + case 29: + if (m_message->field_0x22e8 != 0) + mState = 30; + break; + case 30: + mAlpha = 1.0f; + mState = 31; + case 31: + mAlpha -= 0.067f; + if (mAlpha <= 0.0f) { + mAlpha = 0.0f; + mState = 32; + } + fopMsgM_setNowAlpha(&pane[5], mAlpha); + break; + case 32: + mTimer = 0; + mState = 31; + case 33: + if (mTimer >= 90) + mState = 34; + else + mTimer++; + break; + case 34: + m_message->set_message(0x589, 1); + fopMsgM_paneTrans(&pane[9], 0.0f, -190.0f); + fopMsgM_paneTrans(&pane[10], 0.0f, -190.0f); + mState = 35; + case 35: + if (m_message->field_0x22e8 != 0) + mState = 36; + break; + case 36: + fopMsgM_paneTrans(&pane[9], 0.0f, 0.0f); + fopMsgM_paneTrans(&pane[10], 0.0f, 0.0f); + mTimer = 0; + mState = 37; + case 37: + if (mTimer >= 60) + mState = 38; + else + mTimer++; + break; + case 38: + mScale = 2.0f; + mAlpha = 0.0f; + mState = 39; + case 39: + mScale -= 0.0007633588f; + mAlpha += 0.067f; + if (mAlpha >= 1.0f) { + mAlpha = 1.0f; + mState = 40; + } + fopMsgM_setNowAlpha(&pane[7], mAlpha); + fopMsgM_paneScaleXY(&pane[7], mScale); + break; + case 40: + m_message->set_message(0x58a, 4); + fopMsgM_setNowAlpha(&pane[6], 1.0f); + mState = 41; + case 41: + mScale -= 0.0007633588f; + if (mScale < 1.0f) + mScale = 1.0f; + fopMsgM_paneScaleXY(&pane[6], mScale); + if (m_message->field_0x22e8 != 0) + mState = 42; + break; + case 42: + mAlpha = 1.0f; + mState = 43; + case 43: + mAlpha -= 0.067f; + if (mAlpha <= 0.0f) { + mAlpha = 0.0f; + mState = 44; + } + fopMsgM_setNowAlpha(&pane[6], mAlpha); + break; + case 44: + break; + } + + f32 alpha = m_message->field_0x22d8; + fopMsgM_setNowAlpha(&pane[9], alpha); + fopMsgM_setNowAlpha(&pane[10], alpha); + for (s32 i = 0; i < (s32)ARRAY_SIZE(pane); i++) + fopMsgM_setAlpha(&pane[i]); + mDoExt_setCurrentHeap(old_heap); } /* 802344D8-80234550 .text proc_draw__15dScnOpen_proc_cFv */ void dScnOpen_proc_c::proc_draw() { - /* Nonmatching */ + JKRHeap* old_heap = mDoExt_setCurrentHeap(exp_heap); + J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort(); + graf->setPort(); + m_Screen->draw(0.0f, 0.0f, graf); + mDoExt_setCurrentHeap(old_heap); } /* 80234550-80234570 .text draw__15dScnOpen_proc_cFv */ diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index b73ac9b21..1fcb40956 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -564,98 +564,6 @@ void* fopMsgM_itemMsgGet_c::getMessage(mesg_header*) { /* Nonmatching */ } -class fopMsgM_msgDataProc_c { -public: - fopMsgM_msgDataProc_c() {} - virtual ~fopMsgM_msgDataProc_c() {}; - void dataInit(); - void charLength(int, int, bool); - void rubyLength(int, bool); - void stringLength(); - void stringShift(); - void iconSelect(int, u8); - void iconIdxRefresh(); - void selectCheck2(J2DPane*, int, int, int); - void selectCheck3(J2DPane*, int, int, int); - void selectCheckYoko(J2DPane*, int, int, int); - void inputNumber(int); - void selectArrow(J2DPicture*, f32, f32, f32, f32); - void selectArrow(J2DPicture*, f32, f32); - void colorAnime(J2DPicture*); - void stringSet(); - void setSelectFlagYokoOn(); - void setSelectFlagOn(); - void setHandSendFlagOn(); - void setAutoSendFlagOn(); - void getHandSendFlag(); - void getAutoSendFlag(); - void getString(char*, u32); - void getString(char*, char*, char*, char*, u32, f32*, f32*, int*); - void getRubyString(char*, char*, char*, char*, char*, char*, f32*, f32*, int*); - void tag_len_kaisen_game(int*, f32*, int*, int*, int*); - void tag_len_rupee(int*, f32*, int*, int*, int*); - void tag_len_num_input(int*, f32*, int*, int*, int*); - void tag_len_sword_game(int*, f32*, int*, int*, int*); - void tag_len_letter_game(int*, f32*, int*, int*, int*); - void tag_len_letter_game_max(int*, f32*, int*, int*, int*); - void tag_len_fish(int*, f32*, int*, int*, int*); - void tag_len_fish_rupee(int*, f32*, int*, int*, int*); - void tag_len_letter(int*, f32*, int*, int*, int*); - void tag_len_rescue(int*, f32*, int*, int*, int*); - void tag_len_forest_timer(int*, f32*, int*, int*, int*); - void tag_len_birdman(int*, f32*, int*, int*, int*); - void tag_len_point(int*, f32*, int*, int*, int*); - void tag_len_get_pendant(int*, f32*, int*, int*, int*); - void tag_len_rev_pendant(int*, f32*, int*, int*, int*); - void tag_len_pig_timer(int*, f32*, int*, int*, int*); - void tag_len_get_bomb(int*, f32*, int*, int*, int*); - void tag_len_get_arrow(int*, f32*, int*, int*, int*); - void tag_len_stock_bokobaba(int*, f32*, int*, int*, int*); - void tag_len_stock_dokuro(int*, f32*, int*, int*, int*); - void tag_len_stock_chuchu(int*, f32*, int*, int*, int*); - void tag_len_stock_pendant(int*, f32*, int*, int*, int*); - void tag_len_stock_hane(int*, f32*, int*, int*, int*); - void tag_len_stock_kenshi(int*, f32*, int*, int*, int*); - void tag_len_terry_rupee(int*, f32*, int*, int*, int*); - void tag_len_input_bokobaba(int*, f32*, int*, int*, int*); - void tag_len_input_dokuro(int*, f32*, int*, int*, int*); - void tag_len_input_chuchu(int*, f32*, int*, int*, int*); - void tag_len_input_pendant(int*, f32*, int*, int*, int*); - void tag_len_input_hane(int*, f32*, int*, int*, int*); - void tag_len_input_kenshi(int*, f32*, int*, int*, int*); - void tag_kaisen_game(); - void tag_rupee(); - void tag_num_input(); - void tag_sword_game(); - void tag_letter_game(); - void tag_letter_game_max(); - void tag_fish(); - void tag_fish_rupee(); - void tag_letter(); - void tag_rescue(); - void tag_forest_timer(); - void tag_birdman(); - void tag_point(); - void tag_get_pendant(); - void tag_rev_pendant(); - void tag_pig_timer(); - void tag_get_bomb(); - void tag_get_arrow(); - void tag_stock_bokobaba(); - void tag_stock_dokuro(); - void tag_stock_chuchu(); - void tag_stock_pendant(); - void tag_stock_hane(); - void tag_stock_kenshi(); - void tag_terry_rupee(); - void tag_input_bokobaba(); - void tag_input_dokuro(); - void tag_input_chuchu(); - void tag_input_pendant(); - void tag_input_hane(); - void tag_input_kenshi(); -}; - /* 8002E7DC-8002E95C .text dataInit__21fopMsgM_msgDataProc_cFv */ void fopMsgM_msgDataProc_c::dataInit() { /* Nonmatching */