summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNoah McQueen <67965519+Yotona@users.noreply.github.com>2023-05-25 00:06:38 -0700
committerGitHub <noreply@github.com>2023-05-25 00:06:38 -0700
commit2baa07dbf6452e8dc5d241c6d5982be1df354e61 (patch)
treeb7f8da2a21171535982610d5490f7392841733c3 /src
parent98317b2c174db8706dc801a02475c1f835d9585a (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.cpp311
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 */