diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-07-10 18:42:34 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-10 18:42:34 +0300 |
| commit | 018fdf29d605459fb6fc38e9036e15ad025a6fca (patch) | |
| tree | 9574c68d069170e92840c1f7cbae69fefee8bf97 /src | |
| parent | 63c782c0d09cd5dd6281defa7117237702cd2449 (diff) | |
| parent | da9deca3a3e5cbc8574c97dd19f3d812fff1aef2 (diff) | |
Merge pull request #367 from Trueffeloot/work11
Few files OK
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/map/d_map_path_fmap.cpp | 13 | ||||
| -rw-r--r-- | src/msg/scrn/d_msg_scrn_place.cpp | 336 | ||||
| -rw-r--r-- | src/msg/scrn/d_msg_scrn_staff.cpp | 280 |
3 files changed, 182 insertions, 447 deletions
diff --git a/src/d/map/d_map_path_fmap.cpp b/src/d/map/d_map_path_fmap.cpp index 61c4e42e9b..81515cebf8 100644 --- a/src/d/map/d_map_path_fmap.cpp +++ b/src/d/map/d_map_path_fmap.cpp @@ -255,21 +255,10 @@ void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 i_typeGroupNo, } /* 8003D818-8003D868 038158 0050+00 1/1 1/1 0/0 .text isArrival__22dMenu_Fmap_room_data_cFv */ -#ifdef NONMATCHING bool dMenu_Fmap_room_data_c::isArrival() { - u8 table_no = mp_parentStage->getStageArc()->getVisitedRoomSaveTableNo(); + u8 table_no = mp_parentStage->getStageArc()->mVisitedRoomSaveTableNo; return dComIfGs_isSaveVisitedRoom(table_no, m_roomNo) != false; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dMenu_Fmap_room_data_c::isArrival() { - nofralloc -#include "asm/d/map/d_map_path_fmap/isArrival__22dMenu_Fmap_room_data_cFv.s" -} -#pragma pop -#endif /* 8003D868-8003D92C 0381A8 00C4+00 1/1 0/0 0/0 .text * buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii */ diff --git a/src/msg/scrn/d_msg_scrn_place.cpp b/src/msg/scrn/d_msg_scrn_place.cpp index 9bbd0669c4..fa3b5df2bd 100644 --- a/src/msg/scrn/d_msg_scrn_place.cpp +++ b/src/msg/scrn/d_msg_scrn_place.cpp @@ -1,257 +1,143 @@ -// -// Generated By: dol2asm -// Translation Unit: msg/scrn/d_msg_scrn_place -// +/** + * d_msg_scrn_place.cpp + * + */ #include "msg/scrn/d_msg_scrn_place.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DGrafContext.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "d/msg/d_msg_object.h" +#include "d/pane/d_pane_class.h" -// -// Types: -// +extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c; -struct dMsgScrnPlace_c { - /* 802463CC */ dMsgScrnPlace_c(); - /* 802467C4 */ ~dMsgScrnPlace_c(); - /* 80246924 */ void exec(); - /* 80246A44 */ void drawSelf(); - /* 80246A9C */ void fukiAlpha(f32); - /* 80246B28 */ void fukiScale(f32); - /* 80246B2C */ void fukiTrans(f32, f32); - /* 80246B30 */ void fontAlpha(f32); -}; - -struct dMsgScrnBase_c { - /* 80238C40 */ void setSelectRubyString(char*, char*, char*); - /* 80238C44 */ void setSelectString(char*, char*, char*); - /* 80238C48 */ bool selectAnimeMove(u8, u8, bool); - /* 80238C50 */ void selectAnimeInit(u8, u8, f32, u8); - /* 80238C54 */ void arwAnimeMove(); - /* 80238C58 */ void arwAnimeInit(); - /* 80238C5C */ void fukiPosCalc(u8); - /* 80238C60 */ bool isSelect(); - /* 80238C68 */ bool selectAnimeEnd(); - /* 80238C70 */ void dotAnimeMove(); - /* 80238C74 */ void dotAnimeInit(); - /* 8023C0DC */ dMsgScrnBase_c(); - /* 8023C124 */ ~dMsgScrnBase_c(); - /* 8023C16C */ void init(); - /* 8023C234 */ void multiDraw(); - /* 8023C274 */ void draw(); - /* 8023C32C */ void drawOutFont(f32, f32, f32); - /* 8023C574 */ void isTalkNow(); -}; - -struct JKRExpHeap {}; - -struct JKRArchive {}; - -struct J2DTextBox { - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); -}; - -struct CPaneMgrAlpha { - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802542E8 */ void getGlobalPosX(); - /* 80254364 */ void getGlobalPosY(); - /* 802545B0 */ void paneTrans(f32, f32); -}; - -// -// Forward References: -// - -extern "C" void __ct__15dMsgScrnPlace_cFv(); -extern "C" void __dt__15dMsgScrnPlace_cFv(); -extern "C" void exec__15dMsgScrnPlace_cFv(); -extern "C" void drawSelf__15dMsgScrnPlace_cFv(); -extern "C" void fukiAlpha__15dMsgScrnPlace_cFf(); -extern "C" void fukiScale__15dMsgScrnPlace_cFf(); -extern "C" void fukiTrans__15dMsgScrnPlace_cFff(); -extern "C" void fontAlpha__15dMsgScrnPlace_cFf(); -extern "C" extern char const* const msg_scrn_d_msg_scrn_place__stringBase0; - -// -// External References: -// - -extern "C" void mDoExt_getRubyFont__Fv(); -extern "C" void dCam_getBody__Fv(); -extern "C" void setSelectRubyString__14dMsgScrnBase_cFPcPcPc(); -extern "C" void setSelectString__14dMsgScrnBase_cFPcPcPc(); -extern "C" bool selectAnimeMove__14dMsgScrnBase_cFUcUcb(); -extern "C" void selectAnimeInit__14dMsgScrnBase_cFUcUcfUc(); -extern "C" void arwAnimeMove__14dMsgScrnBase_cFv(); -extern "C" void arwAnimeInit__14dMsgScrnBase_cFv(); -extern "C" void fukiPosCalc__14dMsgScrnBase_cFUc(); -extern "C" bool isSelect__14dMsgScrnBase_cFv(); -extern "C" bool selectAnimeEnd__14dMsgScrnBase_cFv(); -extern "C" void dotAnimeMove__14dMsgScrnBase_cFv(); -extern "C" void dotAnimeInit__14dMsgScrnBase_cFv(); -extern "C" void __ct__14dMsgScrnBase_cFv(); -extern "C" void __dt__14dMsgScrnBase_cFv(); -extern "C" void init__14dMsgScrnBase_cFv(); -extern "C" void multiDraw__14dMsgScrnBase_cFv(); -extern "C" void draw__14dMsgScrnBase_cFv(); -extern "C" void drawOutFont__14dMsgScrnBase_cFfff(); -extern "C" void isTalkNow__14dMsgScrnBase_cFv(); -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void getGlobalPosX__8CPaneMgrFv(); -extern "C" void getGlobalPosY__8CPaneMgrFv(); -extern "C" void paneTrans__8CPaneMgrFff(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_29(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_MsgObject_HIO_c[1040]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80399B78-80399B78 0261D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399B78 = "zelda_stage_title_foreign.blo"; -SECTION_DEAD static char const* const stringBase_80399B96 = ""; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80399B97 = ""; -#pragma pop +/* 802463CC-802467C4 240D0C 03F8+00 0/0 1/1 0/0 .text __ct__15dMsgScrnPlace_cFv */ +dMsgScrnPlace_c::dMsgScrnPlace_c() { + static u64 t_tag[7] = { + 'sfontb0', 'sfontb1', 'sfontb2', 'sfontl0', 'sfontl1', 'sfontl2', 'sfont00', + }; + init(); + + dCamera_c* camera = dCam_getBody(); + if (camera->mTrimSize && dCam_getBody()->mTrimSize != 4) { + mScaleX = g_MsgObject_HIO_c.mStageTitleCharPosY; + mScaleY = g_MsgObject_HIO_c.mStageTitleBasePosY; + } else { + mScaleY = 0.0f; + mScaleX = 0.0f; + } + + mpScreen = new J2DScreen(); + mpScreen->setPriority("zelda_stage_title_foreign.blo", 0x20000, dComIfGp_getMsgArchive(4)); + dPaneClass_showNullPane(mpScreen); + + mpPmp_c = new CPaneMgr(mpScreen, 'n_all', 2, NULL); + mpPmp_c->scale(g_MsgObject_HIO_c.mStageTitleScaleX, g_MsgObject_HIO_c.mStageTitleScaleY); + + mpFontParent = new CPaneMgr(mpScreen, 's_font_n', 0, NULL); + mpFontParent->scale(g_MsgObject_HIO_c.mStageTitleCharSizeX, + g_MsgObject_HIO_c.mStageTitleCharSizeY); + mpFontParent->paneTrans(g_MsgObject_HIO_c.mStageTitleCharPosX, + g_MsgObject_HIO_c.mStageTitleCharPosY - mScaleX); + + mpBaseParent = new CPaneMgr(mpScreen, 'base_n', 2, NULL); + mpBaseParent->scale(g_MsgObject_HIO_c.mStageTitleBaseSizeX, + g_MsgObject_HIO_c.mStageTitleBaseSizeY); + mpBaseParent->paneTrans(g_MsgObject_HIO_c.mStageTitleBasePosX, + g_MsgObject_HIO_c.mStageTitleBasePosY - mScaleY); + + for (int i = 0; i < 7; i++) { + mpTm_c[i] = new CPaneMgr(mpScreen, t_tag[i], 0, NULL); + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getRubyFont()); + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setString(0x80, ""); + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setCharSpace(1.0f); + } + + ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize); + mTBoxWidth = mpTm_c[0]->getSizeX(); + mTBoxHeight = mpTm_c[0]->getSizeY(); + mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace(); + mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace(); + + for (int i = 0; i < 7; i++) { + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace); + ((J2DTextBox*)mpTm_c[i]->getPanePtr()) + ->resize(mpTm_c[i]->getSizeX() * 1.2f, mpTm_c[i]->getSizeY()); + } + + mTextBoxPosX = mpTm_c[0]->getGlobalPosX(); + mTextBoxPosY = mpTm_c[0]->getGlobalPosY(); +} -/* 803C12B0-803C12E8 01E3D0 0038+00 1/1 0/0 0/0 .data t_tag$3877 */ -SECTION_DATA static u8 t_tag[56] = { - 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x62, 0x30, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, - 0x62, 0x31, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x62, 0x32, 0x00, 0x73, 0x66, 0x6F, - 0x6E, 0x74, 0x6C, 0x30, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x6C, 0x31, 0x00, 0x73, - 0x66, 0x6F, 0x6E, 0x74, 0x6C, 0x32, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x30, 0x30, -}; +/* 802467C4-80246924 241104 0160+00 1/0 0/0 0/0 .text __dt__15dMsgScrnPlace_cFv */ +dMsgScrnPlace_c::~dMsgScrnPlace_c() { + delete mpScreen; + mpScreen = NULL; -/* 803C12E8-803C1340 01E408 0058+00 2/2 0/0 0/0 .data __vt__15dMsgScrnPlace_c */ -SECTION_DATA extern void* __vt__15dMsgScrnPlace_c[22] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__14dMsgScrnBase_cFv, - (void*)__dt__15dMsgScrnPlace_cFv, - (void*)exec__15dMsgScrnPlace_cFv, - (void*)multiDraw__14dMsgScrnBase_cFv, - (void*)drawSelf__15dMsgScrnPlace_cFv, - (void*)setSelectString__14dMsgScrnBase_cFPcPcPc, - (void*)setSelectRubyString__14dMsgScrnBase_cFPcPcPc, - (void*)arwAnimeInit__14dMsgScrnBase_cFv, - (void*)arwAnimeMove__14dMsgScrnBase_cFv, - (void*)dotAnimeInit__14dMsgScrnBase_cFv, - (void*)dotAnimeMove__14dMsgScrnBase_cFv, - (void*)isSelect__14dMsgScrnBase_cFv, - (void*)selectAnimeInit__14dMsgScrnBase_cFUcUcfUc, - (void*)selectAnimeMove__14dMsgScrnBase_cFUcUcb, - (void*)selectAnimeEnd__14dMsgScrnBase_cFv, - (void*)fukiScale__15dMsgScrnPlace_cFf, - (void*)fukiTrans__15dMsgScrnPlace_cFff, - (void*)fukiAlpha__15dMsgScrnPlace_cFf, - (void*)fontAlpha__15dMsgScrnPlace_cFf, - (void*)fukiPosCalc__14dMsgScrnBase_cFUc, -}; + delete mpPmp_c; + mpPmp_c = NULL; -/* 80454CE8-80454CEC 0032E8 0004+00 2/2 0/0 0/0 .sdata2 @3998 */ -SECTION_SDATA2 static u8 lit_3998[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; + delete mpFontParent; + mpFontParent = NULL; -/* 80454CEC-80454CF0 0032EC 0004+00 3/3 0/0 0/0 .sdata2 @3999 */ -SECTION_SDATA2 static f32 lit_3999 = 1.0f; + delete mpBaseParent; + mpBaseParent = NULL; -/* 80454CF0-80454CF8 0032F0 0004+04 1/1 0/0 0/0 .sdata2 @4000 */ -SECTION_SDATA2 static f32 lit_4000[1 + 1 /* padding */] = { - 6.0f / 5.0f, - /* padding */ - 0.0f, -}; + for (int i = 0; i < 7; i++) { + delete mpTm_c[i]; + mpTm_c[i] = NULL; + } -/* 802463CC-802467C4 240D0C 03F8+00 0/0 1/1 0/0 .text __ct__15dMsgScrnPlace_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnPlace_c::dMsgScrnPlace_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_place/__ct__15dMsgScrnPlace_cFv.s" + dComIfGp_getMsgArchive(4)->removeResourceAll(); } -#pragma pop - -/* 802467C4-80246924 241104 0160+00 1/0 0/0 0/0 .text __dt__15dMsgScrnPlace_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnPlace_c::~dMsgScrnPlace_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_place/__dt__15dMsgScrnPlace_cFv.s" -} -#pragma pop /* 80246924-80246A44 241264 0120+00 1/0 0/0 0/0 .text exec__15dMsgScrnPlace_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnPlace_c::exec() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_place/exec__15dMsgScrnPlace_cFv.s" +void dMsgScrnPlace_c::exec() { + mpPmp_c->scale(g_MsgObject_HIO_c.mStageTitleScaleX, g_MsgObject_HIO_c.mStageTitleScaleY); + + mpFontParent->scale(g_MsgObject_HIO_c.mStageTitleCharSizeX, + g_MsgObject_HIO_c.mStageTitleCharSizeY); + mpFontParent->paneTrans(g_MsgObject_HIO_c.mStageTitleCharPosX, + g_MsgObject_HIO_c.mStageTitleCharPosY - mScaleX); + + mpBaseParent->scale(g_MsgObject_HIO_c.mStageTitleBaseSizeX, + g_MsgObject_HIO_c.mStageTitleBaseSizeY); + mpBaseParent->paneTrans(g_MsgObject_HIO_c.mStageTitleBasePosX, + g_MsgObject_HIO_c.mStageTitleBasePosY - mScaleY); + + if (isTalkNow()) { + fukiAlpha(1.0f); + } } -#pragma pop /* 80246A44-80246A9C 241384 0058+00 1/0 0/0 0/0 .text drawSelf__15dMsgScrnPlace_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnPlace_c::drawSelf() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_place/drawSelf__15dMsgScrnPlace_cFv.s" +void dMsgScrnPlace_c::drawSelf() { + J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort(); + grafContext->setup2D(); + drawOutFont(0.0f, 0.0f, 1.0f); } -#pragma pop /* 80246A9C-80246B28 2413DC 008C+00 1/0 0/0 0/0 .text fukiAlpha__15dMsgScrnPlace_cFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnPlace_c::fukiAlpha(f32 param_0) { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_place/fukiAlpha__15dMsgScrnPlace_cFf.s" +void dMsgScrnPlace_c::fukiAlpha(f32 i_rate) { + mpPmp_c->setAlphaRate(i_rate); + mpBaseParent->setAlphaRate(i_rate * g_MsgObject_HIO_c.mStageTitleBaseAlpha); + + for (int i = 0; i < 7; i++) { + mpTm_c[i]->setAlphaRate(i_rate); + } } -#pragma pop /* 80246B28-80246B2C 241468 0004+00 1/0 0/0 0/0 .text fukiScale__15dMsgScrnPlace_cFf */ -void dMsgScrnPlace_c::fukiScale(f32 param_0) { +void dMsgScrnPlace_c::fukiScale(f32) { /* empty function */ } /* 80246B2C-80246B30 24146C 0004+00 1/0 0/0 0/0 .text fukiTrans__15dMsgScrnPlace_cFff */ -void dMsgScrnPlace_c::fukiTrans(f32 param_0, f32 param_1) { +void dMsgScrnPlace_c::fukiTrans(f32, f32) { /* empty function */ } /* 80246B30-80246B34 241470 0004+00 1/0 0/0 0/0 .text fontAlpha__15dMsgScrnPlace_cFf */ -void dMsgScrnPlace_c::fontAlpha(f32 param_0) { +void dMsgScrnPlace_c::fontAlpha(f32) { /* empty function */ } - -/* 80399B78-80399B78 0261D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/msg/scrn/d_msg_scrn_staff.cpp b/src/msg/scrn/d_msg_scrn_staff.cpp index 74b4e35a29..b84c880ddd 100644 --- a/src/msg/scrn/d_msg_scrn_staff.cpp +++ b/src/msg/scrn/d_msg_scrn_staff.cpp @@ -1,231 +1,93 @@ -// -// Generated By: dol2asm -// Translation Unit: msg/scrn/d_msg_scrn_staff -// +/** + * d_msg_scrn_staff.cpp + * +*/ #include "msg/scrn/d_msg_scrn_staff.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct dMsgScrnStaff_c { - /* 80246B34 */ dMsgScrnStaff_c(u8); - /* 80246DD8 */ ~dMsgScrnStaff_c(); - /* 80246EE8 */ void exec(); - /* 80246F68 */ void drawSelf(); - /* 80246FC0 */ void fukiAlpha(f32); - /* 80246FE4 */ void fukiScale(f32); - /* 80246FE8 */ void fukiTrans(f32, f32); - /* 80246FEC */ void fontAlpha(f32); -}; - -struct dMsgScrnBase_c { - /* 80238C40 */ void setSelectRubyString(char*, char*, char*); - /* 80238C44 */ void setSelectString(char*, char*, char*); - /* 80238C48 */ bool selectAnimeMove(u8, u8, bool); - /* 80238C50 */ void selectAnimeInit(u8, u8, f32, u8); - /* 80238C54 */ void arwAnimeMove(); - /* 80238C58 */ void arwAnimeInit(); - /* 80238C5C */ void fukiPosCalc(u8); - /* 80238C60 */ bool isSelect(); - /* 80238C68 */ bool selectAnimeEnd(); - /* 80238C70 */ void dotAnimeMove(); - /* 80238C74 */ void dotAnimeInit(); - /* 8023C0DC */ dMsgScrnBase_c(); - /* 8023C124 */ ~dMsgScrnBase_c(); - /* 8023C16C */ void init(); - /* 8023C234 */ void multiDraw(); - /* 8023C274 */ void draw(); - /* 8023C32C */ void drawOutFont(f32, f32, f32); - /* 8023C574 */ void isTalkNow(); -}; - -struct JKRExpHeap {}; - -struct JKRArchive {}; - -struct J2DTextBox { - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); -}; +#include "JSystem/J2DGraph/J2DGrafContext.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "d/msg/d_msg_object.h" +#include "d/pane/d_pane_class.h" -struct CPaneMgrAlpha { - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802542E8 */ void getGlobalPosX(); - /* 80254364 */ void getGlobalPosY(); -}; - -// -// Forward References: -// - -extern "C" void __ct__15dMsgScrnStaff_cFUc(); -extern "C" void __dt__15dMsgScrnStaff_cFv(); -extern "C" void exec__15dMsgScrnStaff_cFv(); -extern "C" void drawSelf__15dMsgScrnStaff_cFv(); -extern "C" void fukiAlpha__15dMsgScrnStaff_cFf(); -extern "C" void fukiScale__15dMsgScrnStaff_cFf(); -extern "C" void fukiTrans__15dMsgScrnStaff_cFff(); -extern "C" void fontAlpha__15dMsgScrnStaff_cFf(); -extern "C" extern char const* const msg_scrn_d_msg_scrn_staff__stringBase0; - -// -// External References: -// - -extern "C" void mDoExt_getMesgFont__Fv(); -extern "C" void setSelectRubyString__14dMsgScrnBase_cFPcPcPc(); -extern "C" void setSelectString__14dMsgScrnBase_cFPcPcPc(); -extern "C" bool selectAnimeMove__14dMsgScrnBase_cFUcUcb(); -extern "C" void selectAnimeInit__14dMsgScrnBase_cFUcUcfUc(); -extern "C" void arwAnimeMove__14dMsgScrnBase_cFv(); -extern "C" void arwAnimeInit__14dMsgScrnBase_cFv(); -extern "C" void fukiPosCalc__14dMsgScrnBase_cFUc(); -extern "C" bool isSelect__14dMsgScrnBase_cFv(); -extern "C" bool selectAnimeEnd__14dMsgScrnBase_cFv(); -extern "C" void dotAnimeMove__14dMsgScrnBase_cFv(); -extern "C" void dotAnimeInit__14dMsgScrnBase_cFv(); -extern "C" void __ct__14dMsgScrnBase_cFv(); -extern "C" void __dt__14dMsgScrnBase_cFv(); -extern "C" void init__14dMsgScrnBase_cFv(); -extern "C" void multiDraw__14dMsgScrnBase_cFv(); -extern "C" void draw__14dMsgScrnBase_cFv(); -extern "C" void drawOutFont__14dMsgScrnBase_cFfff(); -extern "C" void isTalkNow__14dMsgScrnBase_cFv(); -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void getGlobalPosX__8CPaneMgrFv(); -extern "C" void getGlobalPosY__8CPaneMgrFv(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void _savegpr_26(); -extern "C" void _restgpr_26(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_MsgObject_HIO_c[1040]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80399B98-80399B98 0261F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399B98 = "zelda_staff_roll.blo"; -SECTION_DEAD static char const* const stringBase_80399BAD = ""; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80399BAE = "\0"; -#pragma pop +extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c; /* 803C1340-803C1370 01E460 0030+00 1/1 0/0 0/0 .data t_tag$3752 */ -SECTION_DATA static u8 t_tag[48] = { - 0x00, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5F, 0x73, 0x00, 0x00, 0x00, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x5F, 0x73, 0x00, 0x00, 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, - 0x00, 0x00, 0x6C, 0x65, 0x66, 0x74, 0x5F, 0x73, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x65, 0x66, 0x74, -}; - -/* 803C1370-803C13C8 01E490 0058+00 2/2 0/0 0/0 .data __vt__15dMsgScrnStaff_c */ -SECTION_DATA extern void* __vt__15dMsgScrnStaff_c[22] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__14dMsgScrnBase_cFv, - (void*)__dt__15dMsgScrnStaff_cFv, - (void*)exec__15dMsgScrnStaff_cFv, - (void*)multiDraw__14dMsgScrnBase_cFv, - (void*)drawSelf__15dMsgScrnStaff_cFv, - (void*)setSelectString__14dMsgScrnBase_cFPcPcPc, - (void*)setSelectRubyString__14dMsgScrnBase_cFPcPcPc, - (void*)arwAnimeInit__14dMsgScrnBase_cFv, - (void*)arwAnimeMove__14dMsgScrnBase_cFv, - (void*)dotAnimeInit__14dMsgScrnBase_cFv, - (void*)dotAnimeMove__14dMsgScrnBase_cFv, - (void*)isSelect__14dMsgScrnBase_cFv, - (void*)selectAnimeInit__14dMsgScrnBase_cFUcUcfUc, - (void*)selectAnimeMove__14dMsgScrnBase_cFUcUcb, - (void*)selectAnimeEnd__14dMsgScrnBase_cFv, - (void*)fukiScale__15dMsgScrnStaff_cFf, - (void*)fukiTrans__15dMsgScrnStaff_cFff, - (void*)fukiAlpha__15dMsgScrnStaff_cFf, - (void*)fontAlpha__15dMsgScrnStaff_cFf, - (void*)fukiPosCalc__14dMsgScrnBase_cFUc, -}; - -/* 80454CF8-80454CFC 0032F8 0004+00 2/2 0/0 0/0 .sdata2 @3842 */ -SECTION_SDATA2 static u8 lit_3842[4] = { - 0x00, - 0x00, - 0x00, - 0x00, +static u64 t_tag[6] = { + 'right_s', 'right', 'center_s', 'center', 'left_s', 'left', }; /* 80246B34-80246DD8 241474 02A4+00 0/0 1/1 0/0 .text __ct__15dMsgScrnStaff_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnStaff_c::dMsgScrnStaff_c(u8 param_0) { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_staff/__ct__15dMsgScrnStaff_cFUc.s" +dMsgScrnStaff_c::dMsgScrnStaff_c(u8 param_0) { + init(); + + field_0xd0 = 0.0f; + field_0xcc = 0.0f; + + mpScreen = new J2DScreen(); + mpScreen->setPriority("zelda_staff_roll.blo", 0x20000, dComIfGp_getMsgArchive(6)); + dPaneClass_showNullPane(mpScreen); + + mpPmp_c = new CPaneMgr(mpScreen, 'ROOT', 2, NULL); + mpScreen->search('left_n')->hide(); + mpScreen->search('right_n')->hide(); + + for (int i = 0; i < 6; i++) { + mpTm_c[i] = new CPaneMgr(mpScreen, t_tag[i], NULL, NULL); + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont()); + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setString(0x200, ""); + } + + ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize); + mTBoxWidth = mpTm_c[0]->getSizeX(); + mTBoxHeight = mpTm_c[0]->getSizeY(); + mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace(); + mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace(); + + for (int i = 0; i < 6; i++) { + ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace); + ((J2DTextBox*)mpTm_c[i]->getPanePtr()) + ->resize(mpTm_c[i]->getSizeX(), mpTm_c[i]->getSizeY()); + } + + mTextBoxPosX = mpTm_c[0]->getGlobalPosX(); + mTextBoxPosY = mpTm_c[0]->getGlobalPosY(); } -#pragma pop /* 80246DD8-80246EE8 241718 0110+00 1/0 0/0 0/0 .text __dt__15dMsgScrnStaff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnStaff_c::~dMsgScrnStaff_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_staff/__dt__15dMsgScrnStaff_cFv.s" -} -#pragma pop +dMsgScrnStaff_c::~dMsgScrnStaff_c() { + delete mpScreen; + mpScreen = NULL; -/* ############################################################################################## */ -/* 80454CFC-80454D00 0032FC 0004+00 2/2 0/0 0/0 .sdata2 @3877 */ -SECTION_SDATA2 static f32 lit_3877 = 1.0f; + delete mpPmp_c; + mpPmp_c = NULL; + + for (int i = 0; i < 6; i++) { + delete mpTm_c[i]; + mpTm_c[i] = 0; + } + + dComIfGp_getMsgArchive(6)->removeResourceAll(); +} /* 80246EE8-80246F68 241828 0080+00 1/0 0/0 0/0 .text exec__15dMsgScrnStaff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnStaff_c::exec() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_staff/exec__15dMsgScrnStaff_cFv.s" +void dMsgScrnStaff_c::exec() { + mpPmp_c->scale(g_MsgObject_HIO_c.mStageTitleScaleX, g_MsgObject_HIO_c.mStageTitleScaleY); + if (isTalkNow()) { + fukiAlpha(1.0f); + } } -#pragma pop /* 80246F68-80246FC0 2418A8 0058+00 1/0 0/0 0/0 .text drawSelf__15dMsgScrnStaff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnStaff_c::drawSelf() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_staff/drawSelf__15dMsgScrnStaff_cFv.s" +void dMsgScrnStaff_c::drawSelf() { + J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort(); + grafContext->setup2D(); + drawOutFont(0.0f, 0.0f, 1.0f); } -#pragma pop /* 80246FC0-80246FE4 241900 0024+00 1/0 0/0 0/0 .text fukiAlpha__15dMsgScrnStaff_cFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnStaff_c::fukiAlpha(f32 param_0) { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_staff/fukiAlpha__15dMsgScrnStaff_cFf.s" +void dMsgScrnStaff_c::fukiAlpha(f32 i_rate) { + mpPmp_c->setAlphaRate(i_rate); } -#pragma pop /* 80246FE4-80246FE8 241924 0004+00 1/0 0/0 0/0 .text fukiScale__15dMsgScrnStaff_cFf */ void dMsgScrnStaff_c::fukiScale(f32 param_0) { @@ -240,6 +102,4 @@ void dMsgScrnStaff_c::fukiTrans(f32 param_0, f32 param_1) { /* 80246FEC-80246FF0 24192C 0004+00 1/0 0/0 0/0 .text fontAlpha__15dMsgScrnStaff_cFf */ void dMsgScrnStaff_c::fontAlpha(f32 param_0) { /* empty function */ -} - -/* 80399B98-80399B98 0261F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +}
\ No newline at end of file |
