summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2023-07-10 18:42:34 +0300
committerGitHub <noreply@github.com>2023-07-10 18:42:34 +0300
commit018fdf29d605459fb6fc38e9036e15ad025a6fca (patch)
tree9574c68d069170e92840c1f7cbae69fefee8bf97 /src
parent63c782c0d09cd5dd6281defa7117237702cd2449 (diff)
parentda9deca3a3e5cbc8574c97dd19f3d812fff1aef2 (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.cpp13
-rw-r--r--src/msg/scrn/d_msg_scrn_place.cpp336
-rw-r--r--src/msg/scrn/d_msg_scrn_staff.cpp280
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