diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-01-27 03:57:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-26 17:57:16 -0800 |
| commit | 9d331d712e6cc84e9b9399f7efc161422d236142 (patch) | |
| tree | be3cf14b0f7356f00e9c58f0738b090903653179 /src/msg/scrn/d_msg_scrn_light.cpp | |
| parent | 1ea10fcc63d502aecf0aed02f831dbdb141a1034 (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/scrn/d_msg_scrn_light.cpp')
| -rw-r--r-- | src/msg/scrn/d_msg_scrn_light.cpp | 426 |
1 files changed, 201 insertions, 225 deletions
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 */ |
