summaryrefslogtreecommitdiff
path: root/src/msg
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-27 03:57:16 +0200
committerGitHub <noreply@github.com>2024-01-26 17:57:16 -0800
commit9d331d712e6cc84e9b9399f7efc161422d236142 (patch)
treebe3cf14b0f7356f00e9c58f0738b090903653179 /src/msg
parent1ea10fcc63d502aecf0aed02f831dbdb141a1034 (diff)
d_msg_scrn_light,d_msg_scrn_kanban ok (#2050)
* d_msg_scrn_light ok * d_msg_scrn_kanban OK
Diffstat (limited to 'src/msg')
-rw-r--r--src/msg/scrn/d_msg_scrn_kanban.cpp363
-rw-r--r--src/msg/scrn/d_msg_scrn_light.cpp426
2 files changed, 331 insertions, 458 deletions
diff --git a/src/msg/scrn/d_msg_scrn_kanban.cpp b/src/msg/scrn/d_msg_scrn_kanban.cpp
index 03c1323202..b6c6156f70 100644
--- a/src/msg/scrn/d_msg_scrn_kanban.cpp
+++ b/src/msg/scrn/d_msg_scrn_kanban.cpp
@@ -1,264 +1,161 @@
//
-// Generated By: dol2asm
-// Translation Unit: msg/scrn/d_msg_scrn_kanban
+// d_msg_scrn_kanban
//
#include "msg/scrn/d_msg_scrn_kanban.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct JKRExpHeap {};
-
-struct dMsgScrnKanban_c {
- /* 80244E38 */ dMsgScrnKanban_c(JKRExpHeap*);
- /* 8024534C */ ~dMsgScrnKanban_c();
- /* 80245528 */ void exec();
- /* 80245618 */ void draw();
- /* 802456A0 */ void fukiAlpha(f32);
- /* 80245754 */ void fukiScale(f32);
- /* 80245758 */ void fukiTrans(f32, 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();
- /* 8023C300 */ void drawSelf();
- /* 8023C4F4 */ void fontAlpha(f32);
- /* 8023C574 */ void isTalkNow();
-};
-
-struct JKRHeap {
- /* 802CE784 */ void getTotalFreeSize();
-};
-
-struct JKRFileLoader {
- /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
-};
-
-struct JKRArchive {};
-
-struct J2DGrafContext {};
-
-struct J2DScreen {
- /* 802F8498 */ J2DScreen();
- /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
- /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
- /* 802F9690 */ void animation();
-};
-
-struct J2DPane {
- /* 802F7FCC */ void animationTransform();
-};
-
-struct J2DAnmLoaderDataBase {
- /* 80308A6C */ void load(void const*);
-};
-
-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__16dMsgScrnKanban_cFP10JKRExpHeap();
-extern "C" void __dt__16dMsgScrnKanban_cFv();
-extern "C" void exec__16dMsgScrnKanban_cFv();
-extern "C" void draw__16dMsgScrnKanban_cFv();
-extern "C" void fukiAlpha__16dMsgScrnKanban_cFf();
-extern "C" void fukiScale__16dMsgScrnKanban_cFf();
-extern "C" void fukiTrans__16dMsgScrnKanban_cFff();
-extern "C" extern char const* const msg_scrn_d_msg_scrn_kanban__stringBase0;
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRFileLoader.h"
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "JSystem/J2DGraph/J2DAnmLoader.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
+#include "d/pane/d_pane_class.h"
+#include "d/com/d_com_inf_game.h"
+#include "d/msg/d_msg_object.h"
+#include "d/msg/d_msg_out_font.h"
//
// External References:
//
-extern "C" void mDoExt_getMesgFont__Fv();
-extern "C" void dComIfGp_getSubHeap2D__Fi();
-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 drawSelf__14dMsgScrnBase_cFv();
-extern "C" void fontAlpha__14dMsgScrnBase_cFf();
-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 getTotalFreeSize__7JKRHeapFv();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
-extern "C" void animationTransform__7J2DPaneFv();
-extern "C" void __ct__9J2DScreenFv();
-extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
-extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
-extern "C" void animation__9J2DScreenFv();
-extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 g_MsgObject_HIO_c[1040];
-
-//
-// Declarations:
-//
+extern dMsgObject_HIO_c g_MsgObject_HIO_c;
/* ############################################################################################## */
/* 80399AA0-80399AB8 026100 0018+00 1/1 0/0 0/0 .rodata t_tag$3768 */
-SECTION_RODATA static u8 const t_tag[24] = {
- 0x6D, 0x67, 0x5F, 0x65, 0x34, 0x6C, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x34, 0x5F, 0x77, 0x00, 0x00, 0x00, 0x00, 0x74, 0x34, 0x5F, 0x73,
-};
-COMPILER_STRIP_GATE(0x80399AA0, &t_tag);
-
-/* 80399AB8-80399AB8 026118 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80399AB8 = "zelda_kanban_stone_a.blo";
-SECTION_DEAD static char const* const stringBase_80399AD1 = "zelda_kanban_stone_a.bck";
-SECTION_DEAD static char const* const stringBase_80399AEA = "zelda_kanban_stone_a.btk";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80399B03 = "\0\0\0\0";
-#pragma pop
-
-/* 803C1240-803C1298 01E360 0058+00 2/2 0/0 0/0 .data __vt__16dMsgScrnKanban_c */
-SECTION_DATA extern void* __vt__16dMsgScrnKanban_c[22] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)draw__16dMsgScrnKanban_cFv,
- (void*)__dt__16dMsgScrnKanban_cFv,
- (void*)exec__16dMsgScrnKanban_cFv,
- (void*)multiDraw__14dMsgScrnBase_cFv,
- (void*)drawSelf__14dMsgScrnBase_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__16dMsgScrnKanban_cFf,
- (void*)fukiTrans__16dMsgScrnKanban_cFff,
- (void*)fukiAlpha__16dMsgScrnKanban_cFf,
- (void*)fontAlpha__14dMsgScrnBase_cFf,
- (void*)fukiPosCalc__14dMsgScrnBase_cFUc,
-};
-
-/* 80454CC0-80454CC4 0032C0 0004+00 2/2 0/0 0/0 .sdata2 @3944 */
-SECTION_SDATA2 static u8 lit_3944[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80454CC4-80454CC8 0032C4 0004+00 3/3 0/0 0/0 .sdata2 @3945 */
-SECTION_SDATA2 static f32 lit_3945 = 1.0f;
-
-/* 80454CC8-80454CD0 0032C8 0004+04 1/1 0/0 0/0 .sdata2 @3946 */
-SECTION_SDATA2 static f32 lit_3946[1 + 1 /* padding */] = {
- 6.0f / 5.0f,
- /* padding */
- 0.0f,
+static u64 const t_tag[3] = {
+ 'mg_e4lin',
+ 'f4_w',
+ 't4_s',
};
/* 80244E38-8024534C 23F778 0514+00 0/0 1/1 0/0 .text __ct__16dMsgScrnKanban_cFP10JKRExpHeap */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnKanban_c::dMsgScrnKanban_c(JKRExpHeap* param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_kanban/__ct__16dMsgScrnKanban_cFP10JKRExpHeap.s"
+dMsgScrnKanban_c::dMsgScrnKanban_c(JKRExpHeap* param_0) {
+ if (param_0 != NULL) {
+ field_0xd4 = param_0;
+ } else {
+ field_0xd4 = dComIfGp_getSubHeap2D(7);
+ }
+ s32 uVar14 = field_0xd4->getTotalFreeSize();
+ init();
+ mpScreen = new J2DScreen();
+ JUT_ASSERT(43, mpScreen != 0);
+ bool fg = mpScreen->setPriority("zelda_kanban_stone_a.blo", 0x1020000, dComIfGp_getMsgArchive(2));
+ JUT_ASSERT(45, fg != false);
+ dPaneClass_showNullPane(mpScreen);
+ OSInitFastCast();
+ field_0xcc = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_kanban_stone_a.bck", dComIfGp_getMsgArchive(2)));
+ field_0xd0 = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_kanban_stone_a.btk", dComIfGp_getMsgArchive(2)));
+ field_0xd0->searchUpdateMaterialID(mpScreen);
+ field_0xd8 = 0.0f;
+ mpPmp_c = new CPaneMgr(mpScreen, 'n_size', 2, NULL);
+ JUT_ASSERT(60, mpPmp_c != 0);
+ mpPmp_c->getPanePtr()->setAnimation(field_0xcc);
+ field_0xcc->setFrame(1.0f);
+ mpPmp_c->getPanePtr()->animationTransform();
+ mpPmp_c->getPanePtr()->setAnimation((J2DAnmTransform*)NULL);
+ mpPmp_c->scale(g_MsgObject_HIO_c.mBoxStoneScaleX, g_MsgObject_HIO_c.mBoxStoneScaleY);
+ mpBack_c = new CPaneMgr(mpScreen, 'back_b', 0, NULL);
+ JUT_ASSERT(68, mpBack_c != 0);
+ mpSpot_c = new CPaneMgr(mpScreen, 'spot00', 0, NULL);
+ JUT_ASSERT(72, mpSpot_c != 0);
+ mpSpot_c->getPanePtr()->setAnimation(field_0xd0);
+ for (int i = 0; i < 3; i++) {
+ mpTm_c[i] = new CPaneMgr(mpScreen, t_tag[i], 0, NULL);
+ JUT_ASSERT(81, mpTm_c[i] != 0);
+ ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
+ }
+ mpScreen->search('n_3line')->hide();
+ mpScreen->search('n_3fline')->hide();
+ mpScreen->search('n_e4line')->show();
+ ((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 < 3; i = i + 1) {
+ ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace);
+ mpTm_c[i]->resize(1.2f * mpTm_c[i]->getSizeX(), mpTm_c[i]->getSizeY());
+ }
+ mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
+ mTextBoxPosY = mpTm_c[0]->CPaneMgr::getGlobalPosY();
+ mTextBoxPosOffsetY = 0.0f;
+ for (int i = 0; i < 3; i++) {
+ if (mpTmr_c[i] != NULL) {
+ ((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setLineSpace(mLineSpace);
+ if (i == 0) {
+ J2DTextBox::TFontSize fontSize;
+ ((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getFontSize(fontSize);
+ mRubySize = fontSize.mSizeX;
+ mRubyCharSpace = ((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getCharSpace();
+ }
+ mpTmr_c[i]->resize(1.2f * mpTmr_c[i]->getSizeX(),
+ mpTmr_c[i]->getSizeY());
+ }
+ }
+ OS_REPORT("remain ===> %d\n", uVar14 - field_0xd4->getTotalFreeSize());
}
-#pragma pop
/* 8024534C-80245528 23FC8C 01DC+00 1/0 0/0 0/0 .text __dt__16dMsgScrnKanban_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnKanban_c::~dMsgScrnKanban_c() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_kanban/__dt__16dMsgScrnKanban_cFv.s"
+dMsgScrnKanban_c::~dMsgScrnKanban_c() {
+ delete mpScreen;
+ mpScreen = NULL;
+ delete field_0xcc;
+ field_0xcc = NULL;
+ delete field_0xd0;
+ field_0xd0 = NULL;
+ delete mpPmp_c;
+ mpPmp_c = NULL;
+ delete mpBack_c;
+ mpBack_c = NULL;
+ delete mpSpot_c;
+ mpSpot_c = NULL;
+
+ for (int i = 0; i < 3; i++) {
+ delete mpTm_c[i];
+ mpTm_c[i] = NULL;
+ if (mpTmr_c[i] != NULL) {
+ delete mpTmr_c[i];
+ mpTmr_c[i] = NULL;
+ }
+ }
+ dComIfGp_getMsgArchive(2)->removeResourceAll();
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80454CD0-80454CD8 0032D0 0008+00 1/1 0/0 0/0 .sdata2 @4033 */
-SECTION_SDATA2 static f64 lit_4033 = 4503601774854144.0 /* cast s32 to float */;
/* 80245528-80245618 23FE68 00F0+00 1/0 0/0 0/0 .text exec__16dMsgScrnKanban_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnKanban_c::exec() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_kanban/exec__16dMsgScrnKanban_cFv.s"
+void dMsgScrnKanban_c::exec() {
+ field_0xd8 += 1.0f;
+ if (field_0xd8 >= field_0xd0->getFrameMax()) {
+ field_0xd8 -= field_0xd0->getFrameMax();
+ }
+ field_0xd0->setFrame(field_0xd8);
+ mpScreen->animation();
+ if (isTalkNow()) {
+ fukiAlpha(1.0f);
+ }
+ mpPmp_c->scale(g_MsgObject_HIO_c.mBoxStoneScaleX, g_MsgObject_HIO_c.mBoxStoneScaleY);
}
-#pragma pop
/* 80245618-802456A0 23FF58 0088+00 1/0 0/0 0/0 .text draw__16dMsgScrnKanban_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnKanban_c::draw() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_kanban/draw__16dMsgScrnKanban_cFv.s"
+void dMsgScrnKanban_c::draw() {
+ J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
+ grafContext->setup2D();
+ mpScreen->draw(0.0f, 0.0f, grafContext);
+ mpOutFont->draw(NULL, 0.0f, 0.0f, 1.0f);
}
-#pragma pop
/* 802456A0-80245754 23FFE0 00B4+00 1/0 0/0 0/0 .text fukiAlpha__16dMsgScrnKanban_cFf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnKanban_c::fukiAlpha(f32 param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_kanban/fukiAlpha__16dMsgScrnKanban_cFf.s"
+void dMsgScrnKanban_c::fukiAlpha(f32 param_0) {
+ mpBack_c->setAlphaRate(param_0);
+ mpPmp_c->setAlphaRate(param_0 * g_MsgObject_HIO_c.mBoxStoneAlphaP);
+ mpSpot_c->setAlphaRate(param_0);
+ for (int i = 0; i < 3; i++) {
+ mpTm_c[i]->setAlphaRate(param_0 * mCharAlphaRate);
+ if (mpTmr_c[i] != NULL) {
+ mpTmr_c[i]->setAlphaRate(param_0 * mCharAlphaRate);
+ }
+ }
}
-#pragma pop
-
/* 80245754-80245758 240094 0004+00 1/0 0/0 0/0 .text fukiScale__16dMsgScrnKanban_cFf */
void dMsgScrnKanban_c::fukiScale(f32 param_0) {
/* empty function */
diff --git a/src/msg/scrn/d_msg_scrn_light.cpp b/src/msg/scrn/d_msg_scrn_light.cpp
index ea30a183f9..d2a818683a 100644
--- a/src/msg/scrn/d_msg_scrn_light.cpp
+++ b/src/msg/scrn/d_msg_scrn_light.cpp
@@ -1,258 +1,234 @@
//
-// Generated By: dol2asm
-// Translation Unit: msg/scrn/d_msg_scrn_light
+// d_msg_scrn_light
//
#include "msg/scrn/d_msg_scrn_light.h"
-#include "dol2asm.h"
-#include "dolphin/types.h"
+#include "JSystem/JKernel/JKRFileLoader.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "JSystem/J2DGraph/J2DAnmLoader.h"
+#include "d/pane/d_pane_class.h"
+#include "d/com/d_com_inf_game.h"
-//
-// Types:
-//
-
-struct JUtility {
- struct TColor {};
-};
-
-struct dMsgScrnLight_c {
- /* 80245934 */ dMsgScrnLight_c(u8, u8);
- /* 80245B00 */ ~dMsgScrnLight_c();
- /* 80245C04 */ void draw(f32*, f32, f32, f32, f32, f32, u8);
- /* 80245F90 */ void draw(f32*, f32, f32, f32, f32, f32, f32, JUtility::TColor,
- JUtility::TColor);
- /* 802460DC */ void drawCommon(f32, f32, f32, f32, f32);
-};
-
-struct dMsgScrnLight_HIO_c {
- /* 8024575C */ dMsgScrnLight_HIO_c();
- /* 802457C4 */ void updateColor(u8);
- /* 80246348 */ ~dMsgScrnLight_HIO_c();
-};
-
-struct JKRFileLoader {
- /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
-};
-
-struct JKRExpHeap {};
-
-struct JKRArchive {};
-
-struct J2DGrafContext {};
-
-struct J2DScreen {
- /* 802F8498 */ J2DScreen();
- /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
- /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
- /* 802F9690 */ void animation();
-};
-
-struct J2DPane {
- /* 802F7FCC */ void animationTransform();
-};
-
-struct J2DAnmLoaderDataBase {
- /* 80308A6C */ void load(void const*);
-};
-
-struct CPaneMgrAlpha {
- /* 802557D0 */ void setAlphaRate(f32);
- /* 80255828 */ void getAlphaRate();
-};
-
-struct CPaneMgr {
- /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
- /* 80254458 */ void setBlackWhite(JUtility::TColor, JUtility::TColor);
-};
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__19dMsgScrnLight_HIO_cFv();
-extern "C" void updateColor__19dMsgScrnLight_HIO_cFUc();
-extern "C" void __ct__15dMsgScrnLight_cFUcUc();
-extern "C" void __dt__15dMsgScrnLight_cFv();
-extern "C" void draw__15dMsgScrnLight_cFPffffffUc();
-extern "C" void draw__15dMsgScrnLight_cFPfffffffQ28JUtility6TColorQ28JUtility6TColor();
-extern "C" void drawCommon__15dMsgScrnLight_cFfffff();
-extern "C" void __dt__19dMsgScrnLight_HIO_cFv();
-extern "C" void __sinit_d_msg_scrn_light_cpp();
-extern "C" extern char const* const msg_scrn_d_msg_scrn_light__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
-extern "C" void setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor();
-extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
-extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
-extern "C" void getAlphaRate__13CPaneMgrAlphaFv();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
-extern "C" void animationTransform__7J2DPaneFv();
-extern "C" void __ct__9J2DScreenFv();
-extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
-extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
-extern "C" void animation__9J2DScreenFv();
-extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
-extern "C" void __register_global_object();
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 data_804510D8[8];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 803C1298-803C12A4 01E3B8 000C+00 2/2 0/0 0/0 .data __vt__15dMsgScrnLight_c */
-SECTION_DATA extern void* __vt__15dMsgScrnLight_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15dMsgScrnLight_cFv,
-};
-
-/* 803C12A4-803C12B0 01E3C4 000C+00 2/2 0/0 0/0 .data __vt__19dMsgScrnLight_HIO_c */
-SECTION_DATA extern void* __vt__19dMsgScrnLight_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__19dMsgScrnLight_HIO_cFv,
-};
+extern u8 data_804510D8[8];
/* 8024575C-802457C4 24009C 0068+00 1/1 0/0 0/0 .text __ct__19dMsgScrnLight_HIO_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnLight_HIO_c::dMsgScrnLight_HIO_c() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/__ct__19dMsgScrnLight_HIO_cFv.s"
+dMsgScrnLight_HIO_c::dMsgScrnLight_HIO_c() {
+ field_0x5 = 0;
+ for (int i = 0; i < 9; i++) {
+ field_0x6[i] = 0xa0;
+ field_0x18[i] = 0x87;
+ field_0x2a[i] = 0x14;
+ field_0x3c[i] = 0x0;
+ field_0xf[i] = 0xe1;
+ field_0x21[i] = 0xd2;
+ field_0x33[i] = 0x6e;
+ field_0x45[i] = 0xd2;
+ }
}
-#pragma pop
/* 802457C4-80245934 240104 0170+00 1/1 0/0 0/0 .text updateColor__19dMsgScrnLight_HIO_cFUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnLight_HIO_c::updateColor(u8 param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/updateColor__19dMsgScrnLight_HIO_cFUc.s"
+void dMsgScrnLight_HIO_c::updateColor(u8 param_0) {
+ switch(param_0) {
+ case 0:
+ for (int i = 0; i < 9; i++) {
+ field_0x6[i] = 0xa0;
+ field_0x18[i] = 0x87;
+ field_0x2a[i] = 0x14;
+ field_0x3c[i] = 0x0;
+ field_0xf[i] = 0xe1;
+ field_0x21[i] = 0xd2;
+ field_0x33[i] = 0x6e;
+ field_0x45[i] = 0xa0;
+ }
+ break;
+ case 2:
+ for (int i = 0; i < 9; i++) {
+ field_0x6[i] = 0xff;
+ field_0x18[i] = 0xfa;
+ field_0x2a[i] = 0x96;
+ field_0x3c[i] = 0x0;
+ field_0xf[i] = 0xff;
+ field_0x21[i] = 0xff;
+ field_0x33[i] = 0x6e;
+ field_0x45[i] = 0xd2;
+ }
+ break;
+ case 1:
+ for (int i = 0; i < 9; i++) {
+ field_0x6[i] = 0x28;
+ field_0x18[i] = 0x6e;
+ field_0x2a[i] = 0xb4;
+ field_0x3c[i] = 0x0;
+ field_0xf[i] = 0x28;
+ field_0x21[i] = 0x6e;
+ field_0x33[i] = 0xb4;
+ field_0x45[i] = 0x78;
+ }
+ break;
+ case 4:
+ for (int i = 0; i < 9; i++) {
+ field_0x6[i] = 0x46;
+ field_0x18[i] = 0x96;
+ field_0x2a[i] = 0x0;
+ field_0x3c[i] = 0x0;
+ field_0xf[i] = 0x46;
+ field_0x21[i] = 0x96;
+ field_0x33[i] = 0x0;
+ field_0x45[i] = 0x96;
+ }
+ break;
+ }
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80399B08-80399B08 026168 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80399B08 = "zelda_message_window_text_light.blo";
-SECTION_DEAD static char const* const stringBase_80399B2C = "zelda_message_window_text_light.bck";
-SECTION_DEAD static char const* const stringBase_80399B50 = "zelda_message_window_text_light.bpk";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80399B74 = "\0\0\0";
-#pragma pop
-
-/* 804306C8-804306D4 05D3E8 000C+00 1/1 0/0 0/0 .bss @3735 */
-static u8 lit_3735[12];
/* 804306D4-80430728 05D3F4 0050+04 3/3 0/0 0/0 .bss g_MsgScrnLight_HIO_c */
-static u8 g_MsgScrnLight_HIO_c[80 + 4 /* padding */];
-
-/* 80454CD8-80454CDC 0032D8 0004+00 4/4 0/0 0/0 .sdata2 @3808 */
-SECTION_SDATA2 static u8 lit_3808[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
+dMsgScrnLight_HIO_c g_MsgScrnLight_HIO_c;
/* 80245934-80245B00 240274 01CC+00 0/0 4/4 1/1 .text __ct__15dMsgScrnLight_cFUcUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnLight_c::dMsgScrnLight_c(u8 param_0, u8 param_1) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/__ct__15dMsgScrnLight_cFUcUc.s"
+dMsgScrnLight_c::dMsgScrnLight_c(u8 param_1, u8 param_2) {
+ field_0x20 = param_1;
+ field_0x21 = param_2;
+ if (data_804510D8[0] == 0) {
+ g_MsgScrnLight_HIO_c.field_0x4 = -1;
+ }
+ data_804510D8[0]++;
+ g_MsgScrnLight_HIO_c.updateColor(param_1);
+ mpScreen = new J2DScreen();
+ JUT_ASSERT(250, mpScreen != 0);
+ bool fg = mpScreen->setPriority("zelda_message_window_text_light.blo", 0x20000,
+ dComIfGp_getMain2DArchive());
+ JUT_ASSERT(254, fg != false);
+ dPaneClass_showNullPane(mpScreen);
+ OSInitFastCast();
+ void* uVar7 = JKRGetNameResource("zelda_message_window_text_light.bck", dComIfGp_getMain2DArchive());
+ field_0x8 = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(uVar7);
+ field_0x14 = 0.0f;
+ uVar7 = JKRGetNameResource("zelda_message_window_text_light.bpk", dComIfGp_getMain2DArchive());
+ field_0xc = (J2DAnmColor*)J2DAnmLoaderDataBase::load(uVar7);
+ field_0xc->searchUpdateMaterialID(mpScreen);
+ field_0x18 = 0.0f;
+ mpParent_c = new CPaneMgr(mpScreen, 'moya00', 0, NULL);
+ JUT_ASSERT(269, mpParent_c != 0);
+ mpParent_c->getPanePtr()->setAnimation(field_0x8);
+ mpParent_c->getPanePtr()->setAnimation(field_0xc);
+ field_0x22 = 1;
+ field_0x1c = 0.0f;
}
-#pragma pop
/* 80245B00-80245C04 240440 0104+00 1/0 0/0 0/0 .text __dt__15dMsgScrnLight_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnLight_c::~dMsgScrnLight_c() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/__dt__15dMsgScrnLight_cFv.s"
+dMsgScrnLight_c::~dMsgScrnLight_c() {
+ data_804510D8[0]--;
+ delete mpScreen;
+ mpScreen = NULL;
+ delete field_0x8;
+ field_0x8 = NULL;
+ delete field_0xc;
+ field_0xc = NULL;
+ delete mpParent_c;
+ mpParent_c = NULL;
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80454CDC-80454CE0 0032DC 0004+00 2/2 0/0 0/0 .sdata2 @3869 */
-SECTION_SDATA2 static f32 lit_3869 = 1.0f;
-
-/* 80454CE0-80454CE8 0032E0 0008+00 2/2 0/0 0/0 .sdata2 @3871 */
-SECTION_SDATA2 static f64 lit_3871 = 4503601774854144.0 /* cast s32 to float */;
/* 80245C04-80245F90 240544 038C+00 0/0 2/2 0/0 .text draw__15dMsgScrnLight_cFPffffffUc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnLight_c::draw(f32* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4,
- f32 param_5, u8 param_6) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/draw__15dMsgScrnLight_cFPffffffUc.s"
+void dMsgScrnLight_c::draw(f32* param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5,
+ f32 param_6, u8 param_7) {
+ if (g_MsgScrnLight_HIO_c.field_0x5 != 0) {
+ if (param_7 < 9) {
+ mpParent_c->setBlackWhite(JUtility::TColor(g_MsgScrnLight_HIO_c.field_0x6[param_7],
+ g_MsgScrnLight_HIO_c.field_0x18[param_7],
+ g_MsgScrnLight_HIO_c.field_0x2a[param_7],
+ g_MsgScrnLight_HIO_c.field_0x3c[param_7]),
+ JUtility::TColor(g_MsgScrnLight_HIO_c.field_0xf[param_7],
+ g_MsgScrnLight_HIO_c.field_0x21[param_7],
+ g_MsgScrnLight_HIO_c.field_0x33[param_7],
+ g_MsgScrnLight_HIO_c.field_0x45[param_7]));
+ } else {
+ mpParent_c->setBlackWhite(mpParent_c->getInitBlack(), mpParent_c->getInitWhite());
+ }
+ } else {
+ if (field_0x20 == 0) {
+ mpParent_c->setBlackWhite(JUtility::TColor(0xa0, 0x87, 0x14, 0),
+ JUtility::TColor(0xe1, 0xd2, 0x6e, 0xa0));
+ } else if (field_0x20 == 2) {
+ mpParent_c->setBlackWhite(JUtility::TColor(0xff, 0xff, 0x96, 0),
+ JUtility::TColor(0xff, 0xff, 0x6e, 0xd2));
+ } else if (field_0x20 == 1) {
+ mpParent_c->setBlackWhite(JUtility::TColor(0x28, 0x6e, 0xb4, 0),
+ JUtility::TColor(0x28, 0x6e, 0xb4, 0x78));
+ } else if (field_0x20 == 4) {
+ mpParent_c->setBlackWhite(JUtility::TColor(0x46, 0x96, 0, 0),
+ JUtility::TColor(0x46, 0x96, 0, 0x96));
+ } else {
+ mpParent_c->setBlackWhite(mpParent_c->getInitBlack(), mpParent_c->getInitWhite());
+ }
+ }
+ if (field_0x22 != 0) {
+ *param_1 += 1.0f;
+ if (*param_1 >= field_0x8->getFrameMax()) {
+ *param_1 = 0.0f;
+ }
+ field_0x14 = *param_1;
+ field_0x18 = *param_1;
+ }
+ drawCommon(param_2, param_3, param_4, param_5, param_6);
}
-#pragma pop
/* 80245F90-802460DC 2408D0 014C+00 0/0 1/1 1/1 .text
* draw__15dMsgScrnLight_cFPfffffffQ28JUtility6TColorQ28JUtility6TColor */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnLight_c::draw(f32* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4,
- f32 param_5, f32 param_6, JUtility::TColor param_7,
- JUtility::TColor param_8) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/draw__15dMsgScrnLight_cFPfffffffQ28JUtility6TColorQ28JUtility6TColor.s"
+void dMsgScrnLight_c::draw(f32* param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5,
+ f32 param_6, f32 param_7, JUtility::TColor param_8,
+ JUtility::TColor param_9) {
+ mpParent_c->setBlackWhite(param_8, param_9);
+ if (field_0x22 != 0) {
+ *param_1 += param_7;
+ if (*param_1 >= field_0x8->getFrameMax()) {
+ *param_1 = 0.0f;
+ }
+ field_0x14 = *param_1;
+ field_0x18 = *param_1;
+ }
+ drawCommon(param_2, param_3, param_4, param_5, param_6);
}
-#pragma pop
/* 802460DC-80246348 240A1C 026C+00 2/2 0/0 0/0 .text drawCommon__15dMsgScrnLight_cFfffff
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnLight_c::drawCommon(f32 param_0, f32 param_1, f32 param_2, f32 param_3,
- f32 param_4) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/drawCommon__15dMsgScrnLight_cFfffff.s"
+void dMsgScrnLight_c::drawCommon(f32 param_1, f32 param_2, f32 param_3, f32 param_4,
+ f32 param_5) {
+ J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
+ grafContext->setup2D();
+ f32 dVar9 = mpParent_c->getAlphaRate();
+ if (((field_0x21 == 3 || field_0x21 == 0x5) &&
+ param_5 < field_0x1c) ||
+ (field_0x21 != 3 && field_0x21 != 0x5 && 1.0f != param_5))
+ {
+ if (field_0x22 != 0) {
+ mpParent_c->getPanePtr()->setAnimation((J2DAnmTransform*)NULL);
+ mpParent_c->getPanePtr()->setAnimation((J2DAnmColor*)NULL);
+ field_0x22 = 0;
+ }
+ mpParent_c->setAlphaRate(dVar9 * param_5);
+ } else if (field_0x22 == 0) {
+ mpParent_c->getPanePtr()->setAnimation(field_0x8);
+ mpParent_c->getPanePtr()->setAnimation(field_0xc);
+ field_0x22 = 01;
+ }
+ if (field_0x22 != 0) {
+ field_0x8->setFrame(field_0x14);
+ field_0xc->setFrame(field_0x18);
+ mpParent_c->getPanePtr()->animationTransform();
+ mpScreen->animation();
+ }
+ mpParent_c->translate(param_1, param_2);
+ f32 dVar11 = mpParent_c->getInitScaleX();
+ f32 dVar12 = mpParent_c->getInitScaleY();
+ mpParent_c->scale(dVar11 * param_3, dVar12 * param_4);
+ mpScreen->draw(0.0f, 0.0f, grafContext);
+ if (1.0f != param_5) {
+ mpParent_c->setAlphaRate(dVar9);
+ }
+ field_0x1c = param_5;
}
-#pragma pop
-
-/* 80246348-80246390 240C88 0048+00 2/1 0/0 0/0 .text __dt__19dMsgScrnLight_HIO_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnLight_HIO_c::~dMsgScrnLight_HIO_c() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/__dt__19dMsgScrnLight_HIO_cFv.s"
-}
-#pragma pop
-
-/* 80246390-802463CC 240CD0 003C+00 0/0 1/0 0/0 .text __sinit_d_msg_scrn_light_cpp */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void __sinit_d_msg_scrn_light_cpp() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_light/__sinit_d_msg_scrn_light_cpp.s"
-}
-#pragma pop
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80246390, __sinit_d_msg_scrn_light_cpp);
-#pragma pop
/* 80399B08-80399B08 026168 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */