diff options
| author | Noah McQueen <67965519+Yotona@users.noreply.github.com> | 2023-05-25 00:06:38 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-25 00:06:38 -0700 |
| commit | 2baa07dbf6452e8dc5d241c6d5982be1df354e61 (patch) | |
| tree | b7f8da2a21171535982610d5490f7392841733c3 /src | |
| parent | 98317b2c174db8706dc801a02475c1f835d9585a (diff) | |
d_msg_scrn_arrow OK (#337)
* Mostly matching
* d_msg_scrn_arrow OK
* sync
Diffstat (limited to 'src')
| -rw-r--r-- | src/msg/scrn/d_msg_scrn_arrow.cpp | 311 |
1 files changed, 114 insertions, 197 deletions
diff --git a/src/msg/scrn/d_msg_scrn_arrow.cpp b/src/msg/scrn/d_msg_scrn_arrow.cpp index 4634e35c7c..7995a3beed 100644 --- a/src/msg/scrn/d_msg_scrn_arrow.cpp +++ b/src/msg/scrn/d_msg_scrn_arrow.cpp @@ -1,212 +1,129 @@ -// -// Generated By: dol2asm // Translation Unit: msg/scrn/d_msg_scrn_arrow -// #include "msg/scrn/d_msg_scrn_arrow.h" -#include "dol2asm.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/J2DGraph/J2DGrafContext.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/pane/d_pane_class.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" -// -// Types: -// - -struct dMsgScrnArrow_c { - /* 8023B9B4 */ dMsgScrnArrow_c(); - /* 8023BC78 */ ~dMsgScrnArrow_c(); - /* 8023BDC0 */ void draw(); - /* 8023BDF8 */ void setPos(f32, f32); - /* 8023BE34 */ void arwAnimeInit(); - /* 8023BE90 */ void arwAnimeMove(); - /* 8023BFC4 */ void dotAnimeInit(); - /* 8023C010 */ void dotAnimeMove(); -}; - -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 J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 8025564C */ void isVisible(); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); -}; - -// -// Forward References: -// - -extern "C" void __ct__15dMsgScrnArrow_cFv(); -extern "C" void __dt__15dMsgScrnArrow_cFv(); -extern "C" void draw__15dMsgScrnArrow_cFv(); -extern "C" void setPos__15dMsgScrnArrow_cFff(); -extern "C" void arwAnimeInit__15dMsgScrnArrow_cFv(); -extern "C" void arwAnimeMove__15dMsgScrnArrow_cFv(); -extern "C" void dotAnimeInit__15dMsgScrnArrow_cFv(); -extern "C" void dotAnimeMove__15dMsgScrnArrow_cFv(); -extern "C" extern char const* const msg_scrn_d_msg_scrn_arrow__stringBase0; - -// -// External References: -// - -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void show__13CPaneMgrAlphaFv(); -extern "C" void hide__13CPaneMgrAlphaFv(); -extern "C" void isVisible__13CPaneMgrAlphaFv(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader(); -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" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803998A0-803998A0 025F00 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_803998A0 = "zelda_window_yajirushi.blo"; -SECTION_DEAD static char const* const stringBase_803998BB = "zelda_window_yajirushi.bck"; -SECTION_DEAD static char const* const stringBase_803998D6 = "zelda_window_yajirushi.bpk"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_803998F1 = "\0\0\0\0\0\0"; -#pragma pop - -/* 803C0CF8-803C0D08 01DE18 000C+04 2/2 0/0 0/0 .data __vt__15dMsgScrnArrow_c */ -SECTION_DATA extern void* __vt__15dMsgScrnArrow_c[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15dMsgScrnArrow_cFv, - /* padding */ - NULL, -}; - -/* 80454B98-80454B9C 003198 0004+00 4/4 0/0 0/0 .sdata2 @3662 */ -SECTION_SDATA2 static u8 lit_3662[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8023B9B4-8023BC78 2362F4 02C4+00 0/0 4/4 0/0 .text __ct__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnArrow_c::dMsgScrnArrow_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/__ct__15dMsgScrnArrow_cFv.s" +/* 8023B9B4-8023BC78 2362F4 02C4+00 0/0 4/4 0/0 .text __ct__15dMsgScrnArrow_cFv */ +dMsgScrnArrow_c::dMsgScrnArrow_c() { + mScreen = new J2DScreen(); + mScreen->setPriority("zelda_window_yajirushi.blo", 0x20000, dComIfGp_getMsgArchive(0)); + dPaneClass_showNullPane(mScreen); + i_OSInitFastCast(); + + mAnmBck = (J2DAnmTransform*)J2DAnmLoaderDataBase::load( + JKRFileLoader::getGlbResource("zelda_window_yajirushi.bck", dComIfGp_getMsgArchive(0))); + mBckFrame = 0.0f; + + mAnmBpk = (J2DAnmColor*)J2DAnmLoaderDataBase::load( + JKRFileLoader::getGlbResource("zelda_window_yajirushi.bpk", dComIfGp_getMsgArchive(0))); + mAnmBpk->searchUpdateMaterialID(mScreen); + mBpkFrame = 0.0f; + + mPaneMgr0 = new CPaneMgr(mScreen, 'set_ya_n', 0, NULL); + mPaneMgr1 = new CPaneMgr(mScreen, '\0ya_next', 0, NULL); + mPaneMgr1->hide(); + mPaneMgr1->mPane->setAnimation(mAnmBck); + mScreen->search('\0yajnext')->setAnimation(mAnmBpk); + mScreen->search('yajinexl')->setAnimation(mAnmBpk); + + mPaneMgr2 = new CPaneMgr(mScreen, 'ya_end', 0, NULL); + mPaneMgr2->hide(); + mScreen->search('\0yaj_end')->setAnimation(mAnmBpk); + mScreen->search('yajiendl')->setAnimation(mAnmBpk); } -#pragma pop - -/* 8023BC78-8023BDC0 2365B8 0148+00 1/0 0/0 0/0 .text __dt__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnArrow_c::~dMsgScrnArrow_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/__dt__15dMsgScrnArrow_cFv.s" + +/* 8023BC78-8023BDC0 2365B8 0148+00 1/0 0/0 0/0 .text __dt__15dMsgScrnArrow_cFv */ +dMsgScrnArrow_c::~dMsgScrnArrow_c() { + delete mScreen; + mScreen = NULL; + + delete mAnmBck; + mAnmBck = NULL; + + delete mAnmBpk; + mAnmBpk = NULL; + + delete mPaneMgr0; + mPaneMgr0 = NULL; + + delete mPaneMgr1; + mPaneMgr1 = NULL; + + delete mPaneMgr2; + mPaneMgr2 = NULL; } -#pragma pop - -/* 8023BDC0-8023BDF8 236700 0038+00 0/0 5/5 0/0 .text draw__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::draw() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/draw__15dMsgScrnArrow_cFv.s" + +/* 8023BDC0-8023BDF8 236700 0038+00 0/0 5/5 0/0 .text draw__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::draw() { + J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); + mScreen->draw(0.0f, 0.0f, ctx); } -#pragma pop - -/* 8023BDF8-8023BE34 236738 003C+00 0/0 5/5 0/0 .text setPos__15dMsgScrnArrow_cFff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::setPos(f32 param_0, f32 param_1) { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/setPos__15dMsgScrnArrow_cFff.s" + +/* 8023BDF8-8023BE34 236738 003C+00 0/0 5/5 0/0 .text setPos__15dMsgScrnArrow_cFff */ +void dMsgScrnArrow_c::setPos(f32 x, f32 y) { + mPaneMgr0->translate(x, y); } -#pragma pop - -/* 8023BE34-8023BE90 236774 005C+00 0/0 9/9 0/0 .text arwAnimeInit__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::arwAnimeInit() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/arwAnimeInit__15dMsgScrnArrow_cFv.s" + +/* 8023BE34-8023BE90 236774 005C+00 0/0 9/9 0/0 .text arwAnimeInit__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::arwAnimeInit() { + mPaneMgr1->hide(); + mBckFrame = 0.0f; + mAnmBck->setFrame(mBckFrame); + mBpkFrame = 0.0f; + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop - -/* ############################################################################################## */ -/* 80454B9C-80454BA0 00319C 0004+00 2/2 0/0 0/0 .sdata2 @3761 */ -SECTION_SDATA2 static f32 lit_3761 = 1.0f; - -/* 80454BA0-80454BA8 0031A0 0008+00 2/2 0/0 0/0 .sdata2 @3763 */ -SECTION_SDATA2 static f64 lit_3763 = 4503601774854144.0 /* cast s32 to float */; - -/* 8023BE90-8023BFC4 2367D0 0134+00 0/0 4/4 0/0 .text arwAnimeMove__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::arwAnimeMove() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/arwAnimeMove__15dMsgScrnArrow_cFv.s" + +/* 8023BE90-8023BFC4 2367D0 0134+00 0/0 4/4 0/0 .text arwAnimeMove__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::arwAnimeMove() { + if (!mPaneMgr1->isVisible()) { + mPaneMgr1->show(); + } + if (mPaneMgr2->isVisible() == true) { + mPaneMgr2->hide(); + } + mBckFrame += 1.0f; + if (mBckFrame >= (f32)mAnmBck->getFrameMax()) { + mBckFrame -= (f32)mAnmBck->getFrameMax(); + } + mAnmBck->setFrame(mBckFrame); + mBpkFrame += 1.0f; + if (mBpkFrame >= (f32)mAnmBpk->getFrameMax()) { + mBpkFrame -= (f32)mAnmBpk->getFrameMax(); + } + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop - -/* 8023BFC4-8023C010 236904 004C+00 0/0 3/3 0/0 .text dotAnimeInit__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::dotAnimeInit() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/dotAnimeInit__15dMsgScrnArrow_cFv.s" + +/* 8023BFC4-8023C010 236904 004C+00 0/0 3/3 0/0 .text dotAnimeInit__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::dotAnimeInit() { + mPaneMgr2->hide(); + mBpkFrame = 0.0f; + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop - -/* 8023C010-8023C0DC 236950 00CC+00 0/0 3/3 0/0 .text dotAnimeMove__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::dotAnimeMove() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/dotAnimeMove__15dMsgScrnArrow_cFv.s" + +/* 8023C010-8023C0DC 236950 00CC+00 0/0 3/3 0/0 .text dotAnimeMove__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::dotAnimeMove() { + if (mPaneMgr1->isVisible() == true) { + mPaneMgr1->hide(); + } + if (!mPaneMgr2->isVisible()) { + mPaneMgr2->show(); + } + mBpkFrame += 1.0f; + if (mBpkFrame >= (f32)mAnmBpk->getFrameMax()) { + mBpkFrame -= (f32)mAnmBpk->getFrameMax(); + } + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop /* 803998A0-803998A0 025F00 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ |
