d_menu_fishing mostly done (#375)

* d_menu_fishing mostly done

* format the cpp
This commit is contained in:
Trueffel
2023-07-19 11:47:20 +02:00
committed by GitHub
parent 51fb5ce572
commit e1069cecc5
17 changed files with 406 additions and 1626 deletions
+375 -260
View File
@@ -5,16 +5,19 @@
#include "d/menu/d_menu_fishing.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/JKernel/JKRMemArchive.h"
#include "JSystem/JUtility/TColor.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_lib.h"
#include "d/menu/d_menu_dmap.h"
#include "d/meter/d_meter2_info.h"
#include "d/meter/d_meter_HIO.h"
#include "d/msg/d_msg_string.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
//
// Forward References:
//
@@ -84,48 +87,23 @@ extern "C" void _restgpr_29();
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_drawHIO[3880];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 803BD038-803BD044 01A158 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 803BD044-803BD050 -00001 000C+00 0/1 0/0 0/0 .data @3790 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3790[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)wait_init__15dMenu_Fishing_cFv,
};
#pragma pop
/* 803BD050-803BD05C 01A170 000C+00 2/3 0/0 0/0 .data map_init_process */
SECTION_DATA static u8 map_init_process[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
typedef void (dMenu_Fishing_c::*initFunc)();
initFunc map_init_process[] = {
&dMenu_Fishing_c::wait_init,
};
/* 803BD05C-803BD068 -00001 000C+00 0/1 0/0 0/0 .data @3791 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3791[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)wait_move__15dMenu_Fishing_cFv,
};
#pragma pop
/* 803BD068-803BD074 01A188 000C+00 1/2 0/0 0/0 .data map_move_process */
SECTION_DATA static u8 map_move_process[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
typedef void (dMenu_Fishing_c::*moveFunc)();
moveFunc map_move_process[] = {
&dMenu_Fishing_c::wait_move,
};
/* 803BD074-803BD090 01A194 0010+0C 2/2 0/0 0/0 .data __vt__15dMenu_Fishing_c */
@@ -144,25 +122,69 @@ SECTION_DATA extern void* __vt__15dMenu_Fishing_c[4 + 3 /* padding */] = {
* __ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl */
dMenu_Fishing_c::dMenu_Fishing_c(JKRExpHeap* heap, STControl* stControl, CSTControl* cstControl) {
mpHeap = heap;
field_0x8 = 0;
field_0x14 = 0;
mpArchive = 0;
mpMount = 0;
mpStick = stControl;
mpCStick = cstControl;
mStatus = 1;
field_0x1fb = 0;
field_0x1f8 = 0;
}
/* 801C4D98-801C504C 1BF6D8 02B4+00 1/0 0/0 0/0 .text __dt__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMenu_Fishing_c::~dMenu_Fishing_c() {
nofralloc
#include "asm/d/menu/d_menu_fishing/__dt__15dMenu_Fishing_cFv.s"
dMenu_Fishing_c::~dMenu_Fishing_c() {
delete mpString;
mpString = NULL;
delete mpBlackTex;
mpBlackTex = NULL;
delete mpScreen;
mpScreen = NULL;
delete mpParent;
mpParent = NULL;
for (int i = 0; i < 6; i++) {
delete mpFishParent[i];
mpFishParent[i] = NULL;
for (int j = 0; j < 6; j++) {
delete mpFishParts[j][i];
mpFishParts[j][i] = NULL;
}
}
for (int i = 0; i < 2; i++) {
delete mpFishInfoParent[i];
mpFishInfoParent[i] = NULL;
}
delete mpIconScreen;
mpIconScreen = NULL;
for (int i = 0; i < 2; i++) {
if (mpButtonAB[i]) {
delete mpButtonAB[i];
mpButtonAB[i] = NULL;
}
if (mpButtonText[i]) {
delete mpButtonText[i];
mpButtonText[i] = NULL;
}
}
if (mpMount) {
mpMount->getArchive()->unmount();
mpMount->destroy();
mpMount = NULL;
}
if (mpArchive) {
mpArchive->unmount();
mpArchive = NULL;
}
}
#pragma pop
/* 801C504C-801C50B4 1BF98C 0068+00 1/1 0/0 0/0 .text _create__15dMenu_Fishing_cFv */
void dMenu_Fishing_c::_create() {
@@ -174,103 +196,113 @@ void dMenu_Fishing_c::_create() {
}
/* 801C50B4-801C514C 1BF9F4 0098+00 0/0 2/2 0/0 .text _move__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::_move() {
nofralloc
#include "asm/d/menu/d_menu_fishing/_move__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::_move() {
JKRHeap* heap = mDoExt_setCurrentHeap((JKRHeap*)mpHeap);
u8 uVar = field_0x1fb;
(this->*map_move_process[field_0x1fb])();
if (uVar != field_0x1fb) {
(this->*map_init_process[field_0x1fb])();
}
setHIO(false);
mDoExt_setCurrentHeap((JKRHeap*)heap);
}
#pragma pop
/* ############################################################################################## */
/* 80454108-8045410C 002708 0004+00 3/3 0/0 0/0 .sdata2 @3904 */
SECTION_SDATA2 static u8 lit_3904[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 8045410C-80454110 00270C 0004+00 1/1 0/0 0/0 .sdata2 @3905 */
SECTION_SDATA2 static f32 lit_3905 = 608.0f;
/* 80454110-80454114 002710 0004+00 1/1 0/0 0/0 .sdata2 @3906 */
SECTION_SDATA2 static f32 lit_3906 = 448.0f;
/* 801C514C-801C5204 1BFA8C 00B8+00 1/1 1/1 0/0 .text _draw__15dMenu_Fishing_cFv */
#ifdef NONMATCHING
// u8 lit_3904
void dMenu_Fishing_c::_draw() {
if (field_0x8) {
J2DGrafContext* pJVar1 = dComIfGp_getCurrentGrafPort();
if (mpArchive) {
J2DGrafContext* grafPort = dComIfGp_getCurrentGrafPort();
mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0,0,lit_3905,lit_3906,0,0,0);
mpScreen->draw(0,0,pJVar1);
mpIconScreen->draw(0,0,pJVar1);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0);
mpScreen->draw(0.0f, 0.0f, grafPort);
mpIconScreen->draw(0.0f, 0.0f, grafPort);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::_draw() {
nofralloc
#include "asm/d/menu/d_menu_fishing/_draw__15dMenu_Fishing_cFv.s"
}
#pragma pop
#endif
/* 801C5204-801C522C 1BFB44 0028+00 0/0 2/2 0/0 .text isSync__15dMenu_Fishing_cFv */
bool dMenu_Fishing_c::isSync() {
if (field_0x14 && !field_0x14->sync()) {
if (mpMount && !mpMount->sync()) {
return false;
}
return true;
}
/* 801C522C-801C52E4 1BFB6C 00B8+00 1/1 0/0 0/0 .text init__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::init() {
nofralloc
#include "asm/d/menu/d_menu_fishing/init__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::init() {
for (int i = 0; i < 6; i++) {
if (dComIfGs_getFishNum(i) != 0) {
setFishParam(i, dComIfGs_getFishNum(i), dComIfGs_getFishSize(i));
mpFishParent[i]->show();
} else {
mpFishParent[i]->hide();
}
}
(this->*map_init_process[field_0x1fb])();
}
#pragma pop
/* ############################################################################################## */
/* 80396068-80396068 0226C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80396068 = "/res/Layout/fishres.arc";
#pragma pop
/* 80454114-80454118 002714 0004+00 1/1 0/0 0/0 .sdata2 @4010 */
SECTION_SDATA2 static f32 lit_4010 = 1.0f;
/* 80454118-80454120 002718 0008+00 2/2 0/0 0/0 .sdata2 @4012 */
SECTION_SDATA2 static f64 lit_4012 = 4503601774854144.0 /* cast s32 to float */;
/* 801C52E4-801C5470 1BFC24 018C+00 0/0 2/2 0/0 .text _open__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::_open() {
nofralloc
#include "asm/d/menu/d_menu_fishing/_open__15dMenu_Fishing_cFv.s"
int dMenu_Fishing_c::_open() {
if (!mpMount) {
mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/fishres.arc", 0, NULL);
}
if (!mpArchive) {
if (mpMount->sync() != 0) {
if (!mpArchive) {
mpArchive = (JKRArchive*)mpMount->getArchive();
delete mpMount;
mpMount = NULL;
_create();
}
} else {
return 0;
}
}
s16 openFrames = g_drawHIO.mFishListScreen.mOpenFrames;
s16 closeFrames = g_drawHIO.mFishListScreen.mCloseFrames;
field_0x1f8 = g_drawHIO.mFishListScreen.mOpenFrames;
if (field_0x1f8 >= openFrames) {
field_0x1f8 = closeFrames;
mStatus = 2;
J2DPane* pane = mpParent->getPanePtr();
pane->mScaleX = 1.0f;
pane->mScaleY = 1.0f;
pane->calcMtx();
mpParent->setAlphaRate(1.0f);
return 1;
} else {
f32 div = field_0x1f8 / (f32)openFrames;
J2DPane* pane = mpParent->getPanePtr();
pane->mScaleX = div;
pane->mScaleY = div;
pane->calcMtx();
mpParent->setAlphaRate(div);
return 0;
}
}
#pragma pop
/* 801C5470-801C556C 1BFDB0 00FC+00 0/0 1/1 0/0 .text _close__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::_close() {
nofralloc
#include "asm/d/menu/d_menu_fishing/_close__15dMenu_Fishing_cFv.s"
int dMenu_Fishing_c::_close() {
s16 closeFrames = g_drawHIO.mFishListScreen.mCloseFrames;
field_0x1f8 = 0;
if (field_0x1f8 <= 0) {
field_0x1f8 = 0;
mStatus = 0;
J2DPane* pane = mpParent->getPanePtr();
pane->mScaleX = 0.0f;
pane->mScaleY = 0.0f;
pane->calcMtx();
mpParent->setAlphaRate(0.0f);
return 1;
} else {
f32 div = field_0x1f8 / (f32)closeFrames;
J2DPane* pane = mpParent->getPanePtr();
pane->mScaleX = div;
pane->mScaleY = div;
pane->calcMtx();
mpParent->setAlphaRate(div);
return 0;
}
return field_0x1f8 <= 0;
}
#pragma pop
/* 801C556C-801C55A8 1BFEAC 003C+00 1/0 0/0 0/0 .text wait_init__15dMenu_Fishing_cFv */
void dMenu_Fishing_c::wait_init() {
@@ -281,214 +313,203 @@ void dMenu_Fishing_c::wait_init() {
/* 801C55A8-801C55D8 1BFEE8 0030+00 1/0 0/0 0/0 .text wait_move__15dMenu_Fishing_cFv */
void dMenu_Fishing_c::wait_move() {
if (mDoGph_gInf_c::getFader()->getStatus() == 1 && mDoCPd_c::getTrigB(0)) {
mStatus = 3;
mStatus = 3;
}
}
/* ############################################################################################## */
/* 80395D90-80395DC0 0223F0 0030+00 1/1 0/0 0/0 .rodata fish_n$4060 */
SECTION_RODATA static u8 const fish_n[48] = {
0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x36, 0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x35,
0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x33, 0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x31,
0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x32, 0x66, 0x69, 0x73, 0x68, 0x5F, 0x6E, 0x5F, 0x34,
static const u64 fish_n[6] = {
'fish_n_6', 'fish_n_5', 'fish_n_3', 'fish_n_1', 'fish_n_2', 'fish_n_4',
};
COMPILER_STRIP_GATE(0x80395D90, &fish_n);
/* 80395DC0-80395DF0 022420 0030+00 0/1 0/0 0/0 .rodata fish_p0$4061 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p0[48] = {
0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x36, 0x6E, 0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x35, 0x6E,
0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x33, 0x6E, 0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x31, 0x6E,
0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x32, 0x6E, 0x66, 0x69, 0x5F, 0x70, 0x61, 0x5F, 0x34, 0x6E,
static const u64 fish_p0[6] = {
'fi_pa_6n', 'fi_pa_5n', 'fi_pa_3n', 'fi_pa_1n', 'fi_pa_2n', 'fi_pa_4n',
};
COMPILER_STRIP_GATE(0x80395DC0, &fish_p0);
#pragma pop
/* 80395DF0-80395E20 022450 0030+00 0/1 0/0 0/0 .rodata fish_p1$4062 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p1[48] = {
0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x36, 0x6E, 0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x35, 0x6E,
0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x33, 0x6E, 0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x31, 0x6E,
0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x32, 0x6E, 0x66, 0x69, 0x5F, 0x6E, 0x61, 0x5F, 0x34, 0x6E,
static const u64 fish_p1[6] = {
'fi_na_6n', 'fi_na_5n', 'fi_na_3n', 'fi_na_1n', 'fi_na_2n', 'fi_na_4n',
};
COMPILER_STRIP_GATE(0x80395DF0, &fish_p1);
#pragma pop
/* 80395E20-80395E50 022480 0030+00 0/1 0/0 0/0 .rodata fish_p2$4063 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p2[48] = {
0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x36, 0x6E, 0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x35, 0x6E,
0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x33, 0x6E, 0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x31, 0x6E,
0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x32, 0x6E, 0x66, 0x69, 0x5F, 0x6C, 0x69, 0x5F, 0x34, 0x6E,
};
COMPILER_STRIP_GATE(0x80395E20, &fish_p2);
static const u64 fish_p2[6] = {'fi_li_6n', 'fi_li_5n', 'fi_li_3n',
'fi_li_1n', 'fi_li_2n', 'fi_li_4n'};
#pragma pop
/* 80395E50-80395E80 0224B0 0030+00 0/1 0/0 0/0 .rodata fish_p3$4064 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p3[48] = {
0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x36, 0x6E, 0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x35, 0x6E,
0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x33, 0x6E, 0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x31, 0x6E,
0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x32, 0x6E, 0x62, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x34, 0x6E,
static const u64 fish_p3[6] = {
'b_box_6n', 'b_box_5n', 'b_box_3n', 'b_box_1n', 'b_box_2n', 'b_box_4n',
};
COMPILER_STRIP_GATE(0x80395E50, &fish_p3);
#pragma pop
/* 80395E80-80395EB0 0224E0 0030+00 0/1 0/0 0/0 .rodata fish_p4$4065 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p4[48] = {
0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x36, 0x6E, 0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x35, 0x6E,
0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x33, 0x6E, 0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x31, 0x6E,
0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x32, 0x6E, 0x72, 0x5F, 0x62, 0x6F, 0x78, 0x5F, 0x34, 0x6E,
static const u64 fish_p4[6] = {
'r_box_6n', 'r_box_5n', 'r_box_3n', 'r_box_1n', 'r_box_2n', 'r_box_4n',
};
COMPILER_STRIP_GATE(0x80395E80, &fish_p4);
#pragma pop
/* 80395EB0-80395EE0 022510 0030+00 0/1 0/0 0/0 .rodata fish_p5$4066 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fish_p5[48] = {
0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x36, 0x5F, 0x6E, 0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x35, 0x5F, 0x6E,
0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x33, 0x5F, 0x6E, 0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x31, 0x5F, 0x6E,
0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x32, 0x5F, 0x6E, 0x69, 0x6E, 0x66, 0x6F, 0x5F, 0x34, 0x5F, 0x6E,
static const u64 fish_p5[6] = {
'info_6_n', 'info_5_n', 'info_3_n', 'info_1_n', 'info_2_n', 'info_4_n',
};
COMPILER_STRIP_GATE(0x80395EB0, &fish_p5);
#pragma pop
/* 80395EE0-80395F10 022540 0030+00 0/1 0/0 0/0 .rodata size_1$4081 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const size_1[48] = {
0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x36, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x35,
0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x33, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x31,
0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x32, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x5F, 0x34,
static const u64 size_1[6] = {
'size_t_6', 'size_t_5', 'size_t_3', 'size_t_1', 'size_t_2', 'size_t_4',
};
COMPILER_STRIP_GATE(0x80395EE0, &size_1);
#pragma pop
/* 80395F10-80395F40 022570 0030+00 0/1 0/0 0/0 .rodata size_unit_1$4082 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const size_unit_1[48] = {
0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x36, 0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x35,
0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x33, 0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x31,
0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x32, 0x00, 0x00, 0x63, 0x6D, 0x5F, 0x74, 0x5F, 0x34,
static const u64 size_unit_1[6] = {
'cm_t_6', 'cm_t_5', 'cm_t_3', 'cm_t_1', 'cm_t_2', 'cm_t_4',
};
COMPILER_STRIP_GATE(0x80395F10, &size_unit_1);
#pragma pop
/* 80395F40-80395F70 0225A0 0030+00 0/1 0/0 0/0 .rodata count_1$4083 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const count_1[48] = {
0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x36, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x35,
0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x33, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x31,
0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x32, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x74, 0x34,
static const u64 count_1[6] = {
'count_t6', 'count_t5', 'count_t3', 'count_t1', 'count_t2', 'count_t4',
};
COMPILER_STRIP_GATE(0x80395F40, &count_1);
#pragma pop
/* 80395F70-80395FA0 0225D0 0030+00 0/1 0/0 0/0 .rodata count_unit_1$4084 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const count_unit_1[48] = {
0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x36, 0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x35,
0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x33, 0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x31,
0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x32, 0x00, 0x63, 0x6F, 0x75, 0x5F, 0x74, 0x5F, 0x34,
static const u64 count_unit_1[6] = {
'cou_t_6', 'cou_t_5', 'cou_t_3', 'cou_t_1', 'cou_t_2', 'cou_t_4',
};
COMPILER_STRIP_GATE(0x80395F70, &count_unit_1);
#pragma pop
/* 80395FA0-80395FD0 022600 0030+00 0/1 0/0 0/0 .rodata name_0$4085 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const name_0[48] = {
0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x36, 0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x35,
0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x33, 0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x31,
0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x32, 0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x34,
static const u64 name_0[6] = {
'name_6', 'name_5', 'name_3', 'name_1', 'name_2', 'name_4',
};
COMPILER_STRIP_GATE(0x80395FA0, &name_0);
#pragma pop
/* 80395FD0-80396000 022630 0030+00 0/1 0/0 0/0 .rodata fname_0$4086 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const fname_0[48] = {
0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x36, 0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x35,
0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x33, 0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x31,
0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x32, 0x66, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x5F, 0x34,
static const u64 fname_0[6] = {
'f_name_6', 'f_name_5', 'f_name_3', 'f_name_1', 'f_name_2', 'f_name_4',
};
COMPILER_STRIP_GATE(0x80395FD0, &fname_0);
#pragma pop
/* 80396000-80396018 022660 0018+00 0/1 0/0 0/0 .rodata name_id$4087 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const name_id[24] = {
0x00, 0x00, 0x05, 0x9E, 0x00, 0x00, 0x05, 0x9D, 0x00, 0x00, 0x05, 0x9B,
0x00, 0x00, 0x05, 0x99, 0x00, 0x00, 0x05, 0x9A, 0x00, 0x00, 0x05, 0x9C,
static const u32 name_id[6] = {
0x59E, 0x59D, 0x59B, 0x599, 0x59A, 0x59C,
};
COMPILER_STRIP_GATE(0x80396000, &name_id);
#pragma pop
/* 80396068-80396068 0226C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80396080 = "tt_block8x8.bti";
SECTION_DEAD static char const* const stringBase_80396090 = "zelda_fish_window.blo";
SECTION_DEAD static char const* const stringBase_803960A6 = "";
#pragma pop
/* 801C55D8-801C5D3C 1BFF18 0764+00 1/1 0/0 0/0 .text screenSetBase__15dMenu_Fishing_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::screenSetBase() {
nofralloc
#include "asm/d/menu/d_menu_fishing/screenSetBase__15dMenu_Fishing_cFv.s"
}
#pragma pop
void dMenu_Fishing_c::screenSetBase() {
ResTIMG* TIMG = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti");
mpBlackTex = new J2DPicture(TIMG);
mpBlackTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 0xff));
mpScreen = new J2DScreen();
mpScreen->setPriority("zelda_fish_window.blo", 0x20000, mpArchive);
dPaneClass_showNullPane(mpScreen);
mpParent = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
mpParent->setAlphaRate(0.0f);
for (int i = 0; i < 6; i++) {
mpFishParent[i] = new CPaneMgr(mpScreen, fish_n[i], 0, NULL);
mpFishParts[0][i] = new CPaneMgr(mpScreen, fish_p0[i], 0, NULL);
mpFishParts[1][i] = new CPaneMgr(mpScreen, fish_p1[i], 0, NULL);
mpFishParts[2][i] = new CPaneMgr(mpScreen, fish_p2[i], 0, NULL);
mpFishParts[3][i] = new CPaneMgr(mpScreen, fish_p3[i], 0, NULL);
mpFishParts[4][i] = new CPaneMgr(mpScreen, fish_p4[i], 0, NULL);
mpFishParts[5][i] = new CPaneMgr(mpScreen, fish_p5[i], 0, NULL);
}
mpFishInfoParent[0] = new CPaneMgr(mpScreen, 'info_blu', 0, NULL);
mpFishInfoParent[1] = new CPaneMgr(mpScreen, 'info_red', 0, NULL);
J2DTextBox* textBox = (J2DTextBox*)mpScreen->search('f_t00');
mpScreen->search('t_t00')->hide();
textBox->setFont(mDoExt_getSubFont());
textBox->setString(0x200, "");
mpString->getString(0x5a1, textBox, NULL, NULL, NULL, 0);
for (int i = 0; i < 6; i++) {
field_0x124[i] = (J2DTextBox*)mpScreen->search(size_1[i]);
field_0x124[i]->setFont(mDoExt_getSubFont());
field_0x124[i]->setString(0x20, "");
field_0x184[i] = (J2DTextBox*)mpScreen->search(size_unit_1[i]);
field_0x184[i]->setFont(mDoExt_getSubFont());
field_0x184[i]->setString(0x20, "");
field_0x154[i] = (J2DTextBox*)mpScreen->search(count_1[i]);
field_0x154[i]->setFont(mDoExt_getSubFont());
field_0x154[i]->setString(0x20, "");
field_0x1b4[i] = (J2DTextBox*)mpScreen->search(count_unit_1[i]);
field_0x1b4[i]->setFont(mDoExt_getSubFont());
field_0x1b4[i]->setString(0x20, "");
field_0x1cc[i] = (J2DTextBox*)mpScreen->search(name_0[i]);
mpScreen->search(fname_0[i])->hide();
field_0x1cc[i]->setFont(mDoExt_getSubFont());
field_0x1cc[i]->setString(0x20, "");
dMeter2Info_getStringKanji(name_id[i], field_0x1cc[i]->getStringPtr(), NULL);
}
field_0x1e4 = (J2DTextBox*)mpScreen->search('inf_size');
field_0x1e8 = (J2DTextBox*)mpScreen->search('inf_cou');
field_0x1e4->setFont(mDoExt_getMesgFont());
field_0x1e8->setFont(mDoExt_getMesgFont());
field_0x1e4->setString(0x20, "");
dMeter2Info_getStringKanji(0x59f, field_0x1e4->getStringPtr(), NULL);
field_0x1e8->setString(0x20, "");
dMeter2Info_getStringKanji(0x5a0, field_0x1e8->getStringPtr(), NULL);
}
/* ############################################################################################## */
/* 80396018-80396040 022678 0028+00 1/1 0/0 0/0 .rodata text_a_tag$4167 */
SECTION_RODATA static u8 const text_a_tag[40] = {
0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31,
0x5F, 0x32, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x61, 0x74, 0x65, 0x78,
0x74, 0x31, 0x5F, 0x34, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35,
};
COMPILER_STRIP_GATE(0x80396018, &text_a_tag);
static const u64 text_a_tag[5] = {'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5'};
/* 80396040-80396068 0226A0 0028+00 1/1 0/0 0/0 .rodata text_b_tag$4168 */
SECTION_RODATA static u8 const text_b_tag[40] = {
0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31,
0x5F, 0x32, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x62, 0x74, 0x65, 0x78,
0x74, 0x31, 0x5F, 0x34, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35,
};
COMPILER_STRIP_GATE(0x80396040, &text_b_tag);
/* 80396068-80396068 0226C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803960A7 = "zelda_collect_soubi_do_icon_parts.blo";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_803960CD = "\0\0";
#pragma pop
static const u64 text_b_tag[5] = {'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5'};
/* 801C5D3C-801C5EB8 1C067C 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::screenSetDoIcon() {
nofralloc
#include "asm/d/menu/d_menu_fishing/screenSetDoIcon__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::screenSetDoIcon() {
mpIconScreen = new J2DScreen();
mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive);
for (int i = 0; i < 2; i++) {
mpButtonAB[i] = NULL;
mpButtonText[i] = NULL;
}
dPaneClass_showNullPane(mpIconScreen);
for (int i = 0; i < 5; i++) {
mpAButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_a_tag[i]);
mpBButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_b_tag[i]);
mpAButtonString[i]->setFont(mDoExt_getMesgFont());
mpBButtonString[i]->setFont(mDoExt_getMesgFont());
mpAButtonString[i]->setString(0x20, "");
mpBButtonString[i]->setString(0x20, "");
}
}
#pragma pop
/* 801C5EB8-801C5F68 1C07F8 00B0+00 1/1 0/0 0/0 .text setAButtonString__15dMenu_Fishing_cFUs */
void dMenu_Fishing_c::setAButtonString(u16 i_stringID) {
@@ -517,8 +538,7 @@ void dMenu_Fishing_c::setBButtonString(u16 i_stringID) {
}
/* 801C6018-801C605C 1C0958 0044+00 1/1 0/0 0/0 .text getFigure__15dMenu_Fishing_cFi */
int dMenu_Fishing_c::getFigure(int param_0) {
u8 dMenu_Fishing_c::getFigure(int param_0) {
if (param_0 < 0) {
param_0 *= -1;
}
@@ -528,10 +548,49 @@ int dMenu_Fishing_c::getFigure(int param_0) {
if (100 <= param_0) {
return 3;
}
return (param_0 >= 10) ? 2 : 1;
if (param_0 >= 10) {
return 2;
}
return 1;
}
/* 801C605C-801C6210 1C099C 01B4+00 1/1 0/0 0/0 .text setFishParam__15dMenu_Fishing_cFiUsUc */
#ifdef NONMATCHING
// regalloc
void dMenu_Fishing_c::setFishParam(int param_0, u16 param_1, u8 param_2) {
u8 figure1 = getFigure(param_1);
u8 figure2 = getFigure(param_2);
char strBuff1[32];
char strBuff2[32];
for (int j = 1; j < 2; j++) {
// part one, param_2
dComIfGp_setMessageCountNumber(param_2);
mpString->getString(0x597, field_0x124[param_0], NULL, NULL, NULL, 0);
strcpy(strBuff1, field_0x124[param_0]->getStringPtr());
int i;
for (i = 0; strBuff1[i + figure2] != 0; i++) {
strBuff2[i] = strBuff1[i + figure2];
}
strBuff2[i] = 0;
strBuff1[figure2] = 0;
strcpy(field_0x124[param_0]->getStringPtr(), strBuff1);
strcpy(field_0x184[param_0]->getStringPtr(), strBuff2);
// part two, param_1
dComIfGp_setMessageCountNumber(param_1);
mpString->getString(0x598, field_0x154[param_0], NULL, NULL, NULL, 0);
strcpy(strBuff1, field_0x154[param_0]->getStringPtr());
int k;
for (k = 0; strBuff1[k + figure1] != 0; k++) {
strBuff2[k] = strBuff1[k + figure1];
}
strBuff2[k] = 0;
strBuff1[figure1] = 0;
strcpy(field_0x154[param_0]->getStringPtr(), strBuff1);
strcpy(field_0x1b4[param_0]->getStringPtr(), strBuff2);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -540,18 +599,90 @@ asm void dMenu_Fishing_c::setFishParam(int param_0, u16 param_1, u8 param_2) {
#include "asm/d/menu/d_menu_fishing/setFishParam__15dMenu_Fishing_cFiUsUc.s"
}
#pragma pop
#endif
/* 801C6210-801C659C 1C0B50 038C+00 2/2 0/0 0/0 .text setHIO__15dMenu_Fishing_cFb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::setHIO(bool param_0) {
nofralloc
#include "asm/d/menu/d_menu_fishing/setHIO__15dMenu_Fishing_cFb.s"
void dMenu_Fishing_c::setHIO(bool param_0) {
if (param_0 || g_drawHIO.mFishListScreen.mDebug != 0) {
for (int i = 0; i < 6; i++) {
mpFishParent[i]->paneTrans(g_drawHIO.mFishListScreen.mFishInfoPosX[i],
g_drawHIO.mFishListScreen.mFishInfoPosY[i]);
mpFishParent[i]->scale(g_drawHIO.mFishListScreen.mFishInfoScale[i],
g_drawHIO.mFishListScreen.mFishInfoScale[i]);
mpFishParts[0][i]->paneTrans(g_drawHIO.mFishListScreen.mFishIconPosX[i],
g_drawHIO.mFishListScreen.mFishIconPosY[i]);
mpFishParts[0][i]->scale(g_drawHIO.mFishListScreen.mFishIconScale[i],
g_drawHIO.mFishListScreen.mFishIconScale[i]);
mpFishParts[1][i]->paneTrans(g_drawHIO.mFishListScreen.mFishNamePosX[i],
g_drawHIO.mFishListScreen.mFishNamePosY[i]);
mpFishParts[1][i]->scale(g_drawHIO.mFishListScreen.mFishNameScale[i],
g_drawHIO.mFishListScreen.mFishNameScale[i]);
mpFishParts[2][i]->paneTrans(g_drawHIO.mFishListScreen.mFishLinePosX[i],
g_drawHIO.mFishListScreen.mFishLinePosY[i]);
mpFishParts[2][i]->scale(g_drawHIO.mFishListScreen.mFishLineScale[i],
g_drawHIO.mFishListScreen.mFishLineScale[i]);
mpFishParts[3][i]->paneTrans(g_drawHIO.mFishListScreen.mFishSizePosX[i],
g_drawHIO.mFishListScreen.mFishSizePosY[i]);
mpFishParts[3][i]->scale(g_drawHIO.mFishListScreen.mFishSizeScale[i],
g_drawHIO.mFishListScreen.mFishSizeScale[i]);
mpFishParts[4][i]->paneTrans(g_drawHIO.mFishListScreen.mFishCountPosX[i],
g_drawHIO.mFishListScreen.mFishCountPosY[i]);
mpFishParts[4][i]->scale(g_drawHIO.mFishListScreen.mFishCountScale[i],
g_drawHIO.mFishListScreen.mFishCountScale[i]);
mpFishParts[5][i]->paneTrans(g_drawHIO.mFishListScreen.mFishCountSizePosX[i],
g_drawHIO.mFishListScreen.mFishCountSizePosY[i]);
mpFishParts[5][i]->scale(g_drawHIO.mFishListScreen.mFishCountSizeScale[i],
g_drawHIO.mFishListScreen.mFishCountSizeScale[i]);
}
for (int i = 0; i < 2; i++) {
mpFishInfoParent[i]->paneTrans(g_drawHIO.mFishListScreen.mPosX[i],
g_drawHIO.mFishListScreen.mPosY[i]);
mpFishInfoParent[i]->scale(g_drawHIO.mFishListScreen.mScale[i],
g_drawHIO.mFishListScreen.mScale[i]);
}
}
if (g_drawHIO.mCollectScreen.mButtonDebugON != false || param_0) {
if (mpButtonAB[0] != NULL) {
mpButtonAB[0]->paneTrans(g_drawHIO.mCollectScreen.mAButtonPosX,
g_drawHIO.mCollectScreen.mAButtonPosY);
mpButtonAB[0]->scale(g_drawHIO.mCollectScreen.mAButtonScale,
g_drawHIO.mCollectScreen.mAButtonScale);
}
if (mpButtonAB[1] != NULL) {
mpButtonAB[1]->paneTrans(g_drawHIO.mCollectScreen.mBButtonPosX,
g_drawHIO.mCollectScreen.mBButtonPosY);
mpButtonAB[1]->scale(g_drawHIO.mCollectScreen.mBButtonScale,
g_drawHIO.mCollectScreen.mBButtonScale);
}
if (mpButtonText[0] != NULL) {
mpButtonText[0]->paneTrans(g_drawHIO.mCollectScreen.mAButtonTextPosX,
g_drawHIO.mCollectScreen.mAButtonTextPosY);
mpButtonText[0]->scale(g_drawHIO.mCollectScreen.mAButtonTextScale,
g_drawHIO.mCollectScreen.mAButtonTextScale);
}
if (mpButtonText[1] != NULL) {
mpButtonText[1]->paneTrans(g_drawHIO.mCollectScreen.mBButtonTextPosX,
g_drawHIO.mCollectScreen.mBButtonTextPosY);
mpButtonText[1]->scale(g_drawHIO.mCollectScreen.mBButtonTextScale,
g_drawHIO.mCollectScreen.mBButtonTextScale);
}
}
}
#pragma pop
/* 801C659C-801C65BC 1C0EDC 0020+00 1/0 0/0 0/0 .text draw__15dMenu_Fishing_cFv */
#ifdef NONMATCHING
// Matches but TU has to be finished and
// cleaned up with every other function
void dMenu_Fishing_c::draw() {
_draw();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -560,21 +691,5 @@ extern "C" asm void draw__15dMenu_Fishing_cFv() {
nofralloc
#include "asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s"
}
#pragma pop
/* 801C65BC-801C65F8 1C0EFC 003C+00 0/0 1/0 0/0 .text __sinit_d_menu_fishing_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_menu_fishing_cpp() {
nofralloc
#include "asm/d/menu/d_menu_fishing/__sinit_d_menu_fishing_cpp.s"
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x801C65BC, __sinit_d_menu_fishing_cpp);
#pragma pop
/* 80396068-80396068 0226C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#endif
+6 -6
View File
@@ -375,13 +375,13 @@ dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() {
mFishInfoPosX[i] = fishnPosX[i];
mFishInfoPosY[i] = fishnPosY[i];
}
mMaxSizeScale = 0.83f;
mMaxSizePosX = 5.0f;
mMaxSizePosY = -22.2f;
mScale[0] = 0.83f;
mPosX[0] = 5.0f;
mPosY[0] = -22.2f;
mCaughtNumScale = 0.83f;
mCaughtNumPosX = -189.5f;
mCaughtNumPosY = -3.95f;
mScale[1] = 0.83f;
mPosX[1] = -189.5f;
mPosY[1] = -3.95f;
mCaughtNumPosX_4x3 = -188.0f;
}