work on daalink, fop actor, mDo machine, msg_scrn, + various (#201)

* work on fop actor / actor mng, daalink, d_a_obj_item

* d_a_title mostly decompiled

* daalink / d_event / JMessage / dmsg_out_font work

* msg_scrn_base / msg_scrn_boss

* some work on mDo machine, d_menu_save, d_tresure, and various

* remove asm

* progress
This commit is contained in:
TakaRikka
2022-06-29 13:19:09 -07:00
committed by GitHub
parent cd5b02450c
commit 046d178003
412 changed files with 12030 additions and 16833 deletions
+504 -225
View File
@@ -4,48 +4,10 @@
//
#include "d/msg/d_msg_out_font.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct ResTIMG {};
struct J2DTextBox {};
struct J2DRotateAxis {};
struct J2DPicture {
/* 802FC708 */ J2DPicture(ResTIMG const*);
};
struct J2DPane {
/* 802F71DC */ void rotate(f32, f32, J2DRotateAxis, f32);
/* 802F7AFC */ void getParentPane();
};
struct COutFont_c {
/* 80225C94 */ COutFont_c(u8);
/* 80225D60 */ ~COutFont_c();
/* 80225E7C */ void setPane(J2DPicture*);
/* 80225EA8 */ void createPane();
/* 80226CF8 */ void initialize();
/* 80226D4C */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
/* 80226DA8 */ void setAlphaRatio(f32);
/* 80226DB0 */ void draw(J2DTextBox*, f32, f32, f32);
/* 80228448 */ void reset(J2DTextBox*);
/* 80228490 */ void setBlendAnime(J2DPicture*, s16);
/* 80228530 */ void getBtiName(int);
};
struct COutFontSet_c {
/* 80225BB8 */ COutFontSet_c();
/* 80225BF4 */ ~COutFontSet_c();
/* 80225C3C */ void initialize();
/* 80225C70 */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
};
#include "d/com/d_com_inf_game.h"
//
// Forward References:
@@ -85,8 +47,7 @@ extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_26();
extern "C" void _restgpr_29();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_MsgObject_HIO_c[1040];
extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c;
//
// Declarations:
@@ -291,121 +252,13 @@ SECTION_DATA static void* lit_5000[65] = {
(void*)(((char*)draw__10COutFont_cFP10J2DTextBoxfff) + 0x1248),
};
/* 803BFCAC-803BFDC4 -00001 0118+00 1/1 0/0 0/0 .data mpIconName$5045 */
SECTION_DATA static void* mpIconName[70] = {
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x4B),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x57),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x63),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x6F),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x7B),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x87),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x93),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x9F),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xAB),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xDE),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xEA),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x10B),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x121),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x12D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x139),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x159),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x16D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x179),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x185),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x191),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x19D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xF),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x19D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1A9),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1B5),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1C1),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1CD),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1D9),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1E5),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1F1),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1FD),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x27),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x33),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1F1),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1FD),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x209),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x215),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x221),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x22D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x239),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x245),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x251),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x25D),
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x269),
};
/* 803BFDC4-803BFDE8 01CEE4 0024+00 2/2 0/0 0/0 .data __vt__10COutFont_c */
SECTION_DATA extern void* __vt__10COutFont_c[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10COutFont_cFv,
(void*)setPane__10COutFont_cFP10J2DPicture,
(void*)createPane__10COutFont_cFv,
(void*)draw__10COutFont_cFP10J2DTextBoxfff,
(void*)reset__10COutFont_cFP10J2DTextBox,
(void*)drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc,
(void*)setAlphaRatio__10COutFont_cFf,
};
/* 803BFDE8-803BFDF8 01CF08 000C+04 2/2 0/0 0/0 .data __vt__13COutFontSet_c */
SECTION_DATA extern void* __vt__13COutFontSet_c[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__13COutFontSet_cFv,
/* padding */
NULL,
};
/* 80225BB8-80225BF4 2204F8 003C+00 1/1 0/0 0/0 .text __ct__13COutFontSet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm COutFontSet_c::COutFontSet_c() {
nofralloc
#include "asm/d/msg/d_msg_out_font/__ct__13COutFontSet_cFv.s"
COutFontSet_c::COutFontSet_c() {
initialize();
}
#pragma pop
/* 80225BF4-80225C3C 220534 0048+00 1/0 0/0 0/0 .text __dt__13COutFontSet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm COutFontSet_c::~COutFontSet_c() {
nofralloc
#include "asm/d/msg/d_msg_out_font/__dt__13COutFontSet_cFv.s"
}
#pragma pop
COutFontSet_c::~COutFontSet_c() {}
/* ############################################################################################## */
/* 80454A10-80454A14 003010 0004+00 4/4 0/0 0/0 .sdata2 @3748 */
@@ -420,57 +273,85 @@ SECTION_SDATA2 static u8 lit_3748[4] = {
SECTION_SDATA2 static f32 lit_3749 = 1.0f;
/* 80225C3C-80225C70 22057C 0034+00 2/2 0/0 0/0 .text initialize__13COutFontSet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFontSet_c::initialize() {
nofralloc
#include "asm/d/msg/d_msg_out_font/initialize__13COutFontSet_cFv.s"
void COutFontSet_c::initialize() {
mpTextBoxPtr = NULL;
f32 tmp_0 = FLOAT_LABEL(lit_3748);
mPosX = tmp_0;
mPosY = tmp_0;
f32 tmp_1 = lit_3749;
mSizeX = tmp_1;
mSizeY = tmp_1;
mAlpha = 255;
mType = 0x47;
}
#pragma pop
/* 80225C70-80225C94 2205B0 0024+00 1/1 0/0 0/0 .text
* drawFont__13COutFontSet_cFP10J2DTextBoxUcffffUlUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFontSet_c::drawFont(J2DTextBox* param_0, u8 param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5, u32 param_6, u8 param_7) {
nofralloc
#include "asm/d/msg/d_msg_out_font/drawFont__13COutFontSet_cFP10J2DTextBoxUcffffUlUc.s"
void COutFontSet_c::drawFont(J2DTextBox* p_textBox, u8 type, f32 posX, f32 posY,
f32 sizeX, f32 sizeY, u32 color, u8 alpha) {
mpTextBoxPtr = p_textBox;
mPosX = posX;
mPosY = posY;
mSizeX = sizeX;
mSizeY = sizeY;
mAlpha = alpha;
mColor = color;
mType = type;
}
#pragma pop
/* 80225C94-80225D60 2205D4 00CC+00 0/0 5/5 0/0 .text __ct__10COutFont_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm COutFont_c::COutFont_c(u8 param_0) {
nofralloc
#include "asm/d/msg/d_msg_out_font/__ct__10COutFont_cFUc.s"
COutFont_c::COutFont_c(u8 param_0) {
field_0x242 = param_0;
for (int i = 0; i < 35; i++) {
mpOfs[i] = new COutFontSet_c();
}
for (int i = 0; i < 70; i++) {
mpPane[i] = NULL;
field_0x1b4[i] = 0;
}
mAlphaRatio = FLOAT_LABEL(lit_3748);
f32 tmp_1 = lit_3749;
field_0x1b0 = tmp_1;
field_0x1ac = tmp_1;
field_0x240 = 0;
mRupeeColor = 0;
}
#pragma pop
/* 80225D60-80225E7C 2206A0 011C+00 1/0 0/0 0/0 .text __dt__10COutFont_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm COutFont_c::~COutFont_c() {
nofralloc
#include "asm/d/msg/d_msg_out_font/__dt__10COutFont_cFv.s"
COutFont_c::~COutFont_c() {
for (int i = 0; i < 35; i++) {
delete mpOfs[i];
mpOfs[i] = NULL;
}
if (field_0x240) {
field_0x240 = 0;
for (int i = 0; i < 70; i++) {
if (mpPane[i] != NULL) {
delete mpPane[i];
mpPane[i] = NULL;
}
}
}
if (dComIfGp_getExpHeap2D() == NULL) {
dComIfGp_getItemIconArchive()->removeResourceAll();
}
}
#pragma pop
/* 80225E7C-80225EA8 2207BC 002C+00 1/0 0/0 0/0 .text setPane__10COutFont_cFP10J2DPicture
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::setPane(J2DPicture* param_0) {
nofralloc
#include "asm/d/msg/d_msg_out_font/setPane__10COutFont_cFP10J2DPicture.s"
void COutFont_c::setPane(J2DPicture* p_pic) {
for (int i = 0; i < 70; i++) {
mpPane[i] = p_pic;
p_pic++;
}
field_0x240 = false;
}
#pragma pop
/* ############################################################################################## */
/* 80454A18-80454A20 003018 0008+00 2/2 0/0 0/0 .sdata2 @4397 */
@@ -487,36 +368,29 @@ asm void COutFont_c::createPane() {
#pragma pop
/* 80226CF8-80226D4C 221638 0054+00 0/0 2/2 0/0 .text initialize__10COutFont_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::initialize() {
nofralloc
#include "asm/d/msg/d_msg_out_font/initialize__10COutFont_cFv.s"
void COutFont_c::initialize() {
for (int i = 0; i < 35; i++) {
mpOfs[i]->initialize();
}
}
#pragma pop
/* 80226D4C-80226DA8 22168C 005C+00 1/0 0/0 0/0 .text
* drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::drawFont(J2DTextBox* param_0, u8 param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5, u32 param_6, u8 param_7) {
nofralloc
#include "asm/d/msg/d_msg_out_font/drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc.s"
void COutFont_c::drawFont(J2DTextBox* p_textBox, u8 type, f32 posX, f32 posY,
f32 sizeX, f32 sizeY, u32 color, u8 alpha) {
posY += lit_3749;
for (int i = 0; i < 35; i++) {
if (mpOfs[i]->getType() == 0x47) {
mpOfs[i]->drawFont(p_textBox, type, posX, posY, sizeX, sizeY, color, alpha);
return;
}
}
}
#pragma pop
/* 80226DA8-80226DB0 2216E8 0008+00 1/0 0/0 0/0 .text setAlphaRatio__10COutFont_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::setAlphaRatio(f32 param_0) {
nofralloc
#include "asm/d/msg/d_msg_out_font/setAlphaRatio__10COutFont_cFf.s"
void COutFont_c::setAlphaRatio(f32 ratio) {
mAlphaRatio = ratio;
}
#pragma pop
/* ############################################################################################## */
/* 80454A20-80454A24 003020 0004+00 1/1 0/0 0/0 .sdata2 @4986 */
@@ -560,6 +434,336 @@ SECTION_SDATA2 static f64 lit_5001 = 4503601774854144.0 /* cast s32 to float */;
/* 80226DB0-80228448 2216F0 1698+00 2/0 0/0 0/0 .text draw__10COutFont_cFP10J2DTextBoxfff
*/
#ifdef NONMATCHING
void COutFont_c::draw(J2DTextBox* p_textBox, f32 param_1, f32 param_2, f32 param_3) {
s16 sp256[70];
for (int i = 0; i < 70; i++) {
sp256[i] = field_0x1b4[i];
}
for (int i = 0; i < 35; i++) {
u8 type = mpOfs[i]->getType();
J2DTextBox* tbox = mpOfs[i]->getTextBoxPtr();
if (p_textBox == tbox && type != 0x47) {
f32 local_10c = 1.0f;
f32 local_110 = 1.0f;
if (p_textBox != NULL) {
for (J2DPane* pane = p_textBox; pane != NULL; pane = pane->getParentPane()) {
local_10c *= pane->getScaleX();
local_110 *= pane->getScaleY();
}
}
f32 posX = param_1 + param_3 * (local_10c * mpOfs[i]->getPosX());
f32 posY = param_2 + (local_110 * mpOfs[i]->getPosY());
f32 sizeX = local_10c * mpOfs[i]->getSizeX();
f32 sizeY = local_110 * mpOfs[i]->getSizeY();
if (mpPane[type] != NULL) {
mpPane[type]->setAlpha(mAlphaRatio * mpPane[i]->getAlpha());
switch (type) {
case 10:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, true);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
break;
case 11:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, true);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, true);
break;
case 29:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, true);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 80, 80, 255));
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, true);
break;
case 12:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, false);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, false);
break;
case 5:
case 6: {
posY += 1.0f;
sizeY -= 3.0f;
JUtility::TColor black = mpPane[type]->getBlack();
JUtility::TColor white = mpPane[type]->getWhite();
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
mpPane[type]->setBlackWhite(black, white);
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
}
case 9:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 80) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
if (field_0x1b4[type] < 20) {
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
} else if (field_0x1b4[type] < 40) {
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
} else if (field_0x1b4[type] < 60) {
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
} else {
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
}
break;
case 14:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 20) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
break;
case 15:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 20) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
break;
case 16:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 20) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 17:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 20) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
break;
case 18:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 40) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
if (field_0x1b4[type] < 20) {
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
} else {
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
}
break;
case 19:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 40) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
if (field_0x1b4[type] < 20) {
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
} else {
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
}
break;
case 13:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 24:
case 27:
case 28:
case 43:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 42:
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 20:
case 21:
case 22:
field_0x1b4[type]++;
if (field_0x1b4[type] >= 28) {
field_0x1b4[type] = 0;
}
mpPane[type]->rotate(0.5f * posX, 0.5f * posY, ROTATE_Z, (360.0f * (f32)field_0x1b4[type]) / 28.0f);
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 25: // some issues in here, 2020
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 18) {
field_0x1b4[type] -= 18;
}
}
f32 alpha;
if (field_0x1b4[type] < 9) {
alpha = field_0x1b4[type];
} else {
alpha = 18.0f - field_0x1b4[type];
}
mpPane[26]->setAlpha(((alpha / 9.0f) * 205.0f + 50.0f) * mAlphaRatio);
f32 tmpX = 0.5f * (g_MsgObject_HIO_c.mPortalIconScale - 1.0f) * sizeX;
f32 tmpY = 0.5f * (g_MsgObject_HIO_c.mPortalIconScale - 1.0f) * sizeY;
mpPane[26]->draw(posX - tmpX, posY - tmpY, g_MsgObject_HIO_c.mPortalIconScale * sizeX, g_MsgObject_HIO_c.mPortalIconScale * sizeY, false, false, false);
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 26:
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 30:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 255, 255, 255));
mpPane[type]->draw(posX + (0.5f * (sizeX * (field_0x1ac - 1.0f))), posY + (0.5f * (sizeY * (field_0x1b0 - 1.0f))), sizeX * field_0x1ac, sizeY * field_0x1b0, false, false, false);
break;
case 31:
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
case 40:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 41:
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 44:
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + ((posY + -3.0f) - 4.0f), sizeX, sizeY * 1.25f, false, false, false);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 45:
mpPane[type]->draw(posX, (posY + -3.0f) - 4.0f, sizeX, sizeY * 1.25f, false, false, false);
break;
case 46:
case 47:
case 55:
case 56:
case 57:
case 58:
case 61:
case 69:
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 49:
case 50:
case 65:
case 66:
case 67:
case 68:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 40) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 255, 255, 255));
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 48:
case 59:
case 60:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 40) {
field_0x1b4[type] = 0;
}
setBlendAnime(mpPane[type], field_0x1b4[type]);
}
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
case 62:
if (sp256[type] == field_0x1b4[type]) {
field_0x1b4[type]++;
if (field_0x1b4[type] >= 10) {
field_0x1b4[type] = 0;
}
if (field_0x1b4[type] < 5) {
mpPane[type]->setBlendRatio(1.0f, 0.0f);
} else {
mpPane[type]->setBlendRatio(0.0f, 1.0f);
}
}
mpPane[type]->draw(posX, -3.0f + posY, sizeX, 1.25f * sizeY, false, false, false);
break;
default:
JUtility::TColor black = mpPane[type]->getBlack();
JUtility::TColor white = mpPane[type]->getWhite();
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
mpPane[type]->setBlackWhite(black, white);
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
break;
}
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -568,17 +772,20 @@ asm void COutFont_c::draw(J2DTextBox* param_0, f32 param_1, f32 param_2, f32 par
#include "asm/d/msg/d_msg_out_font/draw__10COutFont_cFP10J2DTextBoxfff.s"
}
#pragma pop
#endif
/* 80228448-80228490 222D88 0048+00 1/0 0/0 0/0 .text reset__10COutFont_cFP10J2DTextBox
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::reset(J2DTextBox* param_0) {
nofralloc
#include "asm/d/msg/d_msg_out_font/reset__10COutFont_cFP10J2DTextBox.s"
void COutFont_c::reset(J2DTextBox* p_textBox) {
if (p_textBox != NULL) {
for (int i = 0; i < 35; i++) {
if (p_textBox == mpOfs[i]->getTextBoxPtr()) {
mpOfs[i]->setTextBoxPtr(NULL);
mpOfs[i]->resetType();
}
}
}
}
#pragma pop
/* 80228490-80228530 222DD0 00A0+00 1/1 0/0 0/0 .text setBlendAnime__10COutFont_cFP10J2DPictures
*/
@@ -592,13 +799,85 @@ asm void COutFont_c::setBlendAnime(J2DPicture* param_0, s16 param_1) {
#pragma pop
/* 80228530-80228578 222E70 0048+00 1/1 0/0 0/0 .text getBtiName__10COutFont_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void COutFont_c::getBtiName(int param_0) {
nofralloc
#include "asm/d/msg/d_msg_out_font/getBtiName__10COutFont_cFi.s"
const char* COutFont_c::getBtiName(int nameIdx) {
static char* mpIconName[70] = {
"font_00.bti",
"font_01.bti",
"font_09.bti",
"font_04.bti",
"font_05.bti",
"font_02.bti",
"font_03.bti",
"font_06.bti",
"font_08.bti",
"font_07_01.bti",
"font_10.bti",
"font_10.bti",
"font_10.bti",
"font_10.bti",
"font_07_01.bti",
"font_07_01.bti",
"font_07_01.bti",
"font_07_01.bti",
"font_07_01.bti",
"font_07_01.bti",
"font_15.bti",
"font_15.bti",
"font_15.bti",
"font_12.bti",
"font_15.bti",
"im_map_icon_portal_4ia_40_05.bti",
"font_16_backlight.bti",
"font_13.bti",
"font_14.bti",
"font_10.bti",
"im_zelda_item_icon_rupy_13.bti",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"st_bompoach_lv1.bti",
"font_46.bti",
"font_47.bti",
"font_35.bti",
"font_36.bti",
"font_19.bti",
"font_20.bti",
"font_19.bti",
"font_22.bti",
"font_23.bti",
"font_24.bti",
"font_25.bti",
"font_40.bti",
"font_39.bti",
"font_29.bti",
"font_28.bti",
"font_30.bti",
"font_31.bti",
"font_29.bti",
"font_28.bti",
"font_32.bti",
"font_33.bti",
"font_41.bti",
"font_42.bti",
"font_50.bti",
"font_49.bti",
"font_51.bti",
"font_52.bti",
"font_53.bti",
};
if (nameIdx >= 31 && nameIdx <= 40) {
return dMeter2Info_getNumberTextureName(nameIdx - 31);
}
return mpIconName[nameIdx];
}
#pragma pop
/* 80399350-80399350 0259B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */