mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-27 07:37:24 -04:00
699 lines
29 KiB
C++
699 lines
29 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: d/menu/d_menu_map_common
|
|
//
|
|
|
|
#include "d/menu/d_menu_map_common.h"
|
|
#include "d/com/d_com_inf_game.h"
|
|
#include "d/d_select_cursor.h"
|
|
#include "d/meter/d_meter_HIO.h"
|
|
#include "dol2asm.h"
|
|
#include "global.h"
|
|
|
|
/* ############################################################################################## */
|
|
/* 803BCF18-803BD02C 01A038 0114+00 2/2 0/0 0/0 .data map_icon_size */
|
|
struct map_icon_size_t {
|
|
float mXSize;
|
|
float mYSize;
|
|
u8 mIndex;
|
|
};
|
|
|
|
static map_icon_size_t map_icon_size[] = {
|
|
{1.0f, 1.0f, 0x0}, {1.0f, 1.0f, 0x1}, {40.0f, 40.0f, 0x11}, {40.0f, 40.0f, 0x2},
|
|
{40.0f, 40.0f, 0x12}, {40.0f, 40.0f, 0x4}, {40.0f, 40.0f, 0x3}, {40.0f, 40.0f, 0x5},
|
|
{40.0f, 40.0f, 0x6}, {40.0f, 40.0f, 0x7}, {40.0f, 40.0f, 0x9}, {40.0f, 40.0f, 0xa},
|
|
{40.0f, 40.0f, 0xb}, {40.0f, 40.0f, 0xc}, {40.0f, 40.0f, 0xf}, {40.0f, 40.0f, 0x10},
|
|
{40.0f, 40.0f, 0x8}, {67.5f, 40.0f, 0xd}, {40.0f, 40.0f, 0xe}, {40.0f, 40.0f, 0x13},
|
|
{40.0f, 40.0f, 0x14}, {40.0f, 40.0f, 0x15}, {40.0f, 40.0f, 0x16}};
|
|
|
|
/* 801C2718-801C27B4 1BD058 009C+00 0/0 2/2 0/0 .text __ct__16dMenuMapCommon_cFv */
|
|
dMenuMapCommon_c::dMenuMapCommon_c() {
|
|
for (int i = 0; i < 23; i++) {
|
|
mPictures[i] = NULL;
|
|
}
|
|
_60 = 0;
|
|
mpDrawCursor = NULL;
|
|
mpPortalIcon = NULL;
|
|
_6c = 0;
|
|
_c72 = 0;
|
|
_c78 = 0.0f;
|
|
_c74 = 0;
|
|
_c80 = 0.0f;
|
|
_c7c = 0.0f;
|
|
_c84 = 0.0f;
|
|
_c88 = 0.0f;
|
|
_c8c = 0.0f;
|
|
_c90 = 0;
|
|
clearIconInfo();
|
|
}
|
|
|
|
/* 801C27B4-801C28D8 1BD0F4 0124+00 1/0 2/2 0/0 .text __dt__16dMenuMapCommon_cFv */
|
|
dMenuMapCommon_c::~dMenuMapCommon_c() {
|
|
for (int i = 0; i < 23; i++) {
|
|
if (mPictures[i] != NULL) {
|
|
delete mPictures[i];
|
|
mPictures[i] = NULL;
|
|
}
|
|
}
|
|
if (_60 != NULL) {
|
|
delete _60;
|
|
_60 = NULL;
|
|
}
|
|
if (mpDrawCursor != NULL) {
|
|
delete mpDrawCursor;
|
|
mpDrawCursor = NULL;
|
|
}
|
|
if (mpPortalIcon != NULL) {
|
|
delete mpPortalIcon;
|
|
mpPortalIcon = NULL;
|
|
}
|
|
}
|
|
|
|
/* 801C28D8-801C38E4 1BD218 100C+00 0/0 2/2 0/0 .text initiate__16dMenuMapCommon_cFP10JKRArchive
|
|
*/
|
|
void dMenuMapCommon_c::initiate(JKRArchive* arc) {
|
|
ResTIMG* mp_image;
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_s_ci8_16_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[4] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[4]->append(mp_image, 0.0f);
|
|
mPictures[4]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[4]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_s_ci8_16_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[3] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[3]->append(mp_image, 0.0f);
|
|
mPictures[3]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[3]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_enter_ci8_24_02.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[20] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_enter_ci8_02.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[20]->append(mp_image, 0.0f);
|
|
mPictures[20]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[20]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_enter_s_ci8_24_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[21] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_enter_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[21]->append(mp_image, 0.0f);
|
|
mPictures[21]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[21]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_warp_24_ci8_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[22] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_warp_32_ci8_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[22]->append(mp_image, 0.0f);
|
|
mPictures[22]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[22]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_box_s_ci8_24_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[19] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_box_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[19]->append(mp_image, 0.0f);
|
|
mPictures[19]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[19]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_gray_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[14] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_key_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[14]->append(mp_image, 0.0f);
|
|
mPictures[14]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[14]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[9] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_yuki_M.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[9]->append(mp_image, 0.0f);
|
|
mPictures[9]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[9]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[10] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_yuki_W.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[10]->append(mp_image, 0.0f);
|
|
mPictures[10]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[10]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_yellow_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[11] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_gold_wolf.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[11]->append(mp_image, 0.0f);
|
|
mPictures[11]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[11]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[12] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_monkey_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[12]->append(mp_image, 0.0f);
|
|
mPictures[12]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[12]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_blue_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[15] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "ni_obacyan.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[15]->append(mp_image, 0.0f);
|
|
mPictures[15]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[15]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_blue_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[16] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "ni_obacyan.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[16]->append(mp_image, 0.0f);
|
|
mPictures[16]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[16]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[8] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG',
|
|
"im_zelda_map_icon_copy_stone_statue_snup_try_00_04.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[8]->append(mp_image, 0.0f);
|
|
mPictures[8]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[8]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_link_s_ci8_24_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[17] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_link_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[17]->append(mp_image, 0.0f);
|
|
mPictures[17]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[17]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_penant_s_ci8_24_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[2] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_penant_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[2]->append(mp_image, 0.0f);
|
|
mPictures[2]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[2]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_black_32.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[5] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_black_32.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[5]->append(mp_image, 0.0f);
|
|
mPictures[5]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[5]->setInfluencedAlpha(false, false);
|
|
|
|
mPictures[5]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
|
|
|
// todo check if this value is mPictures[23] (out of the array) or field 0x60
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_hikari_no_shizuku_try_10_00_24x24.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[23] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_hikari_no_shizuku_try_10_00_24x24.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[23]->append(mp_image, 0.0f);
|
|
mPictures[23]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[23]->setInfluencedAlpha(false, false);
|
|
|
|
mPictures[23]->setBlackWhite(JUtility::TColor(0, 240, 170, 0),
|
|
JUtility::TColor(255, 255, 230, 255));
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[6] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_zelda_map_icon_hikari_ball_03.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[6]->append(mp_image, 0.0f);
|
|
mPictures[6]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[6]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[7] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_iron_ball_ci8_32_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[7]->append(mp_image, 0.0f);
|
|
mPictures[7]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[7]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[13] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_basha_ci8.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[13]->append(mp_image, 0.0f);
|
|
mPictures[13]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[13]->setInfluencedAlpha(false, false);
|
|
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_nijumaru_40x40_ind_01.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[18] = new J2DPicture(mp_image);
|
|
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_nijumaru_40x40_ind_01.bti");
|
|
ASSERT(mp_image != 0);
|
|
mPictures[18]->append(mp_image, 0.0f);
|
|
mPictures[18]->setBasePosition(J2DBasePosition_4);
|
|
mPictures[18]->setInfluencedAlpha(false, false);
|
|
|
|
mpDrawCursor = new dSelect_cursor_c(4, 1.0f, NULL);
|
|
ASSERT(mpDrawCursor != 0);
|
|
|
|
if (arc == dComIfGp_getFmapResArchive()) {
|
|
mpPortalIcon = new dSelect_cursor_c(5, 1.0f, arc);
|
|
ASSERT(mpPortalIcon != 0);
|
|
}
|
|
}
|
|
|
|
/* 801C38E4-801C3EC4 1BE224 05E0+00 0/0 2/2 0/0 .text drawIcon__16dMenuMapCommon_cFffff
|
|
*/
|
|
void dMenuMapCommon_c::drawIcon(f32 param_1, f32 param_2, f32 param_3, f32 param_4) {
|
|
s16 tmp[128];
|
|
if (g_fmapHIO.mMapIconHIO.mIconDebug) {
|
|
debugIcon();
|
|
}
|
|
if (mpDrawCursor) {
|
|
mpDrawCursor->onUpdateFlag();
|
|
}
|
|
if (mpPortalIcon) {
|
|
mpPortalIcon->onUpdateFlag();
|
|
}
|
|
int counter = 0;
|
|
for (int i = 0; i < 128; i++) {
|
|
tmp[i] = -1;
|
|
}
|
|
|
|
for (int i = 22; i >= 0; i--) {
|
|
for (s16 j = 0; j < 128; j++) {
|
|
if (i == _70[j]._14 && _70[j]._15 != 0) {
|
|
tmp[counter] = j;
|
|
counter++;
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < 128; i++) {
|
|
s16 sVar9 = tmp[i];
|
|
if (sVar9 != -1) {
|
|
if (_70[sVar9]._14 == 0) {
|
|
if (mpDrawCursor != NULL) {
|
|
f32 local_1b4 = _70[sVar9]._0;
|
|
f32 local_1b8 = _70[sVar9]._4;
|
|
if (mpDrawCursor->getUpdateFlag() == 1) {
|
|
if (_70[sVar9]._15 == 2) {
|
|
mpDrawCursor->setAlphaRate(1.0f);
|
|
} else if (_70[sVar9]._15 == 3) {
|
|
mpDrawCursor->setAlphaRate(_c78);
|
|
} else {
|
|
mpDrawCursor->setAlphaRate(param_4 * (param_3 * _70[sVar9]._10));
|
|
}
|
|
}
|
|
f32 local_1bc = (local_1b4 + param_1);
|
|
mpDrawCursor->setPos(local_1bc, (local_1b8 + param_2));
|
|
mpDrawCursor->setScale( _70[sVar9]._8 * g_fmapHIO.mMapIconHIO.mPortalCursorScale);
|
|
mpDrawCursor->draw();
|
|
mpDrawCursor->resetUpdateFlag();
|
|
}
|
|
} else if (_70[sVar9]._14 == 1) {
|
|
if (mpPortalIcon != NULL) {
|
|
f32 local_1c0 = _70[sVar9]._0;
|
|
f32 local_1c4 = _70[sVar9]._4;
|
|
if (mpPortalIcon->getUpdateFlag() == 1) {
|
|
if (_70[sVar9]._15 == 2) {
|
|
mpPortalIcon->setAlphaRate(1.0f);
|
|
} else if (_70[sVar9]._15 == 3) {
|
|
mpPortalIcon->setAlphaRate(_c78);
|
|
} else {
|
|
mpPortalIcon->setAlphaRate(param_3 * _70[sVar9]._10);
|
|
}
|
|
}
|
|
f32 local_1c8 = (local_1c0 + param_1);
|
|
mpPortalIcon->setPos(local_1c8, (local_1c4 + param_2));
|
|
mpPortalIcon->setScale(_70[sVar9]._8 * g_fmapHIO.mMapIconHIO.mPortalIconScale);
|
|
mpPortalIcon->draw();
|
|
mpPortalIcon->resetUpdateFlag();
|
|
}
|
|
} else if (mPictures[_70[sVar9]._14] != NULL) {
|
|
f32 fVar2 = _70[sVar9]._0;
|
|
f32 fVar3 = _70[sVar9]._4;
|
|
f32 dVar11 = getIconSizeX(_70[sVar9]._14);
|
|
f32 dVar12 = getIconSizeY(_70[sVar9]._14);
|
|
f32 dVar17 = ((4.0f / 7.0f) * getIconSizeX(_70[sVar9]._14));
|
|
f32 dVar13 = ((4.0f / 7.0f) * getIconSizeY(_70[sVar9]._14));
|
|
if (_70[sVar9]._14 == 5) {
|
|
dVar11 = (dVar11 * _c7c);
|
|
dVar12 = (dVar12 * _c7c);
|
|
}
|
|
mPictures[_70[sVar9]._14]->rotate(
|
|
dVar11 / 2,
|
|
dVar12 / 2, ROTATE_Z,
|
|
_70[sVar9]._C);
|
|
if (_70[sVar9]._14 == 5) {
|
|
mPictures[_70[sVar9]._14]->setAlpha(((180.0f * _c80) / 255.0f));
|
|
_60->rotate((dVar17 / 2), (dVar13 / 2), ROTATE_Z, _70[sVar9]._C);
|
|
_60->setAlpha(_c80);
|
|
} else if (_70[sVar9]._15 == 2) {
|
|
mPictures[_70[sVar9]._14]->setAlpha(0xff);
|
|
} else if (_70[sVar9]._15 == 3) {
|
|
mPictures[_70[sVar9]._14]->setAlpha(255.0f * _c78);
|
|
} else {
|
|
mPictures[_70[sVar9]._14]->setAlpha(param_4 *
|
|
(255.0f * param_3 * _70[sVar9]._10));
|
|
}
|
|
f32 temp = (fVar2 - (dVar11 / 2));
|
|
fVar2 = param_1 + temp;
|
|
mPictures[_70[sVar9]._14]->draw(fVar2, (param_2 + (fVar3 - dVar12 / 2)), dVar11, dVar12,
|
|
false, false, false);
|
|
if (_70[sVar9]._14 == 5) {
|
|
_60->draw((fVar2 + (dVar11 / 2)) - (dVar17 / 2),
|
|
((dVar12 / 2) + (param_2 + (fVar3 - dVar12 / 2))) - (dVar13 / 2),
|
|
dVar17, dVar13, false, false, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801C3EC4-801C43A8 1BE804 04E4+00 0/0 4/4 0/0 .text iconScale__16dMenuMapCommon_cFifff
|
|
*/
|
|
void dMenuMapCommon_c::iconScale(int param_1, f32 param_2, f32 param_3, f32 param_4) {
|
|
_c88 = 1.0f + param_4;
|
|
f32 local_74[23];
|
|
local_74[17] =
|
|
g_fmapHIO.mMapIconHIO.mLinkZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mLinkZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mLinkScale[param_1]);
|
|
local_74[20] =
|
|
g_fmapHIO.mMapIconHIO.mDungeonEntranceZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mDungeonEntranceZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mDungeonEntranceScale[param_1]);
|
|
local_74[21] =
|
|
g_fmapHIO.mMapIconHIO.mRoomEntranceZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mRoomEntranceZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mRoomEntranceScale[param_1]);
|
|
local_74[22] =
|
|
g_fmapHIO.mMapIconHIO.mLV8EntranceZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mLV8EntranceZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mLV8EntranceScale[param_1]);
|
|
local_74[4] =
|
|
g_fmapHIO.mMapIconHIO.mBossZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mBossZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mBossScale[param_1]);
|
|
local_74[3] =
|
|
g_fmapHIO.mMapIconHIO.mGanonZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mGanonZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mGanonScale[param_1]);
|
|
local_74[14] =
|
|
g_fmapHIO.mMapIconHIO.mSmallKeyZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mSmallKeyZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mSmallKeyScale[param_1]);
|
|
local_74[19] =
|
|
g_fmapHIO.mMapIconHIO.mChestZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mChestZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mChestScale[param_1]);
|
|
local_74[9] =
|
|
g_fmapHIO.mMapIconHIO.mYetoZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mYetoZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mYetoScale[param_1]);
|
|
local_74[10] =
|
|
g_fmapHIO.mMapIconHIO.mYetaZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mYetaZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mYetaScale[param_1]);
|
|
local_74[11] =
|
|
g_fmapHIO.mMapIconHIO.mGoldWolfZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mGoldWolfZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mGoldWolfScale[param_1]);
|
|
local_74[12] =
|
|
g_fmapHIO.mMapIconHIO.mMonkeyZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mMonkeyZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mMonkeyScale[param_1]);
|
|
local_74[15] =
|
|
g_fmapHIO.mMapIconHIO.mOoccooZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mOoccooZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mOoccooScale[param_1]);
|
|
local_74[16] =
|
|
g_fmapHIO.mMapIconHIO.mOoccooPotZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mOoccooPotZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mOoccooPotScale[param_1]);
|
|
local_74[8] =
|
|
g_fmapHIO.mMapIconHIO.mCopyRodStatueZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mCopyRodStatueZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mCopyRodStatueScale[param_1]);
|
|
local_74[2] =
|
|
g_fmapHIO.mMapIconHIO.mDungeonWarpZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mDungeonWarpZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mDungeonWarpScale[param_1]);
|
|
local_74[5] =
|
|
g_fmapHIO.mMapIconHIO.mLightDropZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mLightDropZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mLightDropScale[param_1]);
|
|
local_74[6] =
|
|
g_fmapHIO.mMapIconHIO.mLightOrbZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mLightOrbZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mLightOrbScale[param_1]);
|
|
local_74[7] =
|
|
g_fmapHIO.mMapIconHIO.mCannonBallZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mCannonBallZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mCannonBallScale[param_1]);
|
|
local_74[13] =
|
|
g_fmapHIO.mMapIconHIO.mWagonZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mWagonZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mWagonScale[param_1]);
|
|
local_74[18] =
|
|
g_fmapHIO.mMapIconHIO.mDestinationZoomScale[param_1] -
|
|
param_2 * (g_fmapHIO.mMapIconHIO.mDestinationZoomScale[param_1] - g_fmapHIO.mMapIconHIO.mDestinationScale[param_1]);
|
|
local_74[0] = 1.0f;
|
|
local_74[1] = 1.0f;
|
|
for (int i = 0; i < 23; i++) {
|
|
if (mPictures[i] != NULL) {
|
|
if (i == 13) {
|
|
mPictures[i]->scale(((16.0f / 27.0f) +
|
|
((11.0f / 27.0f) * param_4)) *
|
|
local_74[i],
|
|
local_74[i]);
|
|
} else {
|
|
mPictures[i]->scale(local_74[i], local_74[i]);
|
|
if (i == 5) {
|
|
_60->scale(local_74[i], local_74[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
setBlendRatio(17, param_3, param_4);
|
|
setBlendRatio(20, param_3, param_4);
|
|
setBlendRatio(21, param_3, param_4);
|
|
setBlendRatio(22, param_3, param_4);
|
|
setBlendRatio(4, param_3, param_4);
|
|
setBlendRatio(3, param_3, param_4);
|
|
setBlendRatio(14, param_3, param_4);
|
|
setBlendRatio(19, param_3, param_4);
|
|
setBlendRatio(9, param_3, param_4);
|
|
setBlendRatio(10, param_3, param_4);
|
|
setBlendRatio(11, param_3, param_4);
|
|
setBlendRatio(12, param_3, param_4);
|
|
setBlendRatio(15, param_3, param_4);
|
|
setBlendRatio(16, param_3, param_4);
|
|
setBlendRatio(8, param_3, param_4);
|
|
setBlendRatio(2, param_3, param_4);
|
|
setBlendRatio(5, param_3, param_4);
|
|
setBlendRatio(6, param_3, param_4);
|
|
setBlendRatio(7, param_3, param_4);
|
|
setBlendRatio(13, param_3, param_4);
|
|
setBlendRatio(18, param_3, param_4);
|
|
}
|
|
|
|
/* 801C43A8-801C443C 1BECE8 0094+00 1/1 3/3 0/0 .text setIconInfo__16dMenuMapCommon_cFUcfffffUc */
|
|
bool dMenuMapCommon_c::setIconInfo(u8 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5,
|
|
f32 param_6, u8 param_7) {
|
|
if (mIconNum >= 128) {
|
|
return false;
|
|
}
|
|
_70[mIconNum]._0 = param_2;
|
|
_70[mIconNum]._4 = param_3;
|
|
_70[mIconNum]._8 = param_6;
|
|
_70[mIconNum]._C = param_5;
|
|
_70[mIconNum]._14 = param_1;
|
|
_70[mIconNum]._15 = param_7;
|
|
_70[mIconNum]._10 = param_4;
|
|
mIconNum++;
|
|
return true;
|
|
}
|
|
|
|
/* 801C443C-801C4494 1BED7C 0058+00 1/1 2/2 0/0 .text clearIconInfo__16dMenuMapCommon_cFv
|
|
*/
|
|
void dMenuMapCommon_c::clearIconInfo() {
|
|
mIconNum = 0;
|
|
for (int i = 0; i < 128; i++) {
|
|
_70[i]._0 = 0.0f;
|
|
_70[i]._4 = 0.0f;
|
|
_70[i]._8 = 1.0f;
|
|
_70[i]._C = 0.0f;
|
|
_70[i]._14 = 23;
|
|
_70[i]._15 = 0;
|
|
// !@bug _10 is only set to zero in the first icon.
|
|
// Shouldn't really matter though as setIconInfo sets it on init.
|
|
_70[mIconNum]._10 = 0.0f;
|
|
}
|
|
}
|
|
|
|
/* 801C4494-801C452C 1BEDD4 0098+00 1/1 0/0 0/0 .text setBlendRatio__16dMenuMapCommon_cFUcff */
|
|
void dMenuMapCommon_c::setBlendRatio(u8 param_1, f32 param_2, f32 param_3) {
|
|
if (mPictures[param_1] != NULL) {
|
|
mPictures[param_1]->setBlendRatio(param_2, param_3);
|
|
if (param_1 == 5) {
|
|
_60->setBlendRatio(param_2, param_3);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801C452C-801C4600 1BEE6C 00D4+00 0/0 1/1 0/0 .text blinkMove__16dMenuMapCommon_cFs */
|
|
void dMenuMapCommon_c::blinkMove(s16 param_1) {
|
|
_c72++;
|
|
if (_c72 >= param_1) {
|
|
_c72 -= (s16)(param_1 + 15);
|
|
}
|
|
if (_c72 < 0) {
|
|
_c78 = 1.0f;
|
|
} else if (_c72 <= param_1 / 2.0f) {
|
|
_c78 = (param_1 / 2.0f - _c72) / (param_1 / 2.0f);
|
|
} else {
|
|
_c78 = (_c72 - param_1 / 2.0f) / (param_1 / 2.0f);
|
|
}
|
|
}
|
|
|
|
/* 801C4600-801C4738 1BEF40 0138+00 0/0 1/1 0/0 .text moveLightDropAnime__16dMenuMapCommon_cFv */
|
|
void dMenuMapCommon_c::moveLightDropAnime() {
|
|
int bVar6 = 0;
|
|
if (_c88 > 1.0f) {
|
|
bVar6 = 1;
|
|
}
|
|
s16 r7 = g_fmapHIO.mMapIconHIO.mLightDropFlashFrameNum;
|
|
f32 fVar3 = g_fmapHIO.mMapIconHIO.mLightDropFlashStartScaleOut[bVar6];
|
|
f32 fVar4 = g_fmapHIO.mMapIconHIO.mLightDropFlashEndScaleOut[bVar6];
|
|
u8 bVar1 = g_fmapHIO.mMapIconHIO.mLightDropFlashStartAlphaOut[bVar6];
|
|
u8 bVar2 = g_fmapHIO.mMapIconHIO.mLightDropFlashEndAlphaOut[bVar6];
|
|
_c74++;
|
|
if (_c74 >= r7) {
|
|
_c74 -= r7;
|
|
}
|
|
f32 fVar7;
|
|
if (_c74 <= r7 / 2.0f) {
|
|
fVar7 = (r7 / 2.0f - _c74) / (r7 / 2.0f);
|
|
} else {
|
|
fVar7 = (_c74 - r7 / 2.0f) / (r7 / 2.0f);
|
|
}
|
|
_c80 = bVar1 + fVar7 * (bVar2 - bVar1);
|
|
_c7c = fVar3 + fVar7 * (fVar4 - fVar3);
|
|
}
|
|
|
|
/* 801C4738-801C4778 1BF078 0040+00 1/1 0/0 0/0 .text getIconSizeX__16dMenuMapCommon_cFUc
|
|
*/
|
|
float dMenuMapCommon_c::getIconSizeX(u8 index) {
|
|
for (int i = 0; i < ARRAY_SIZE(map_icon_size); i++) {
|
|
if (map_icon_size[i].mIndex == index) {
|
|
return map_icon_size[i].mXSize;
|
|
}
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
/* 801C4778-801C47C4 1BF0B8 004C+00 1/1 0/0 0/0 .text getIconSizeY__16dMenuMapCommon_cFUc
|
|
*/
|
|
float dMenuMapCommon_c::getIconSizeY(u8 index) {
|
|
for (int i = 0; i < ARRAY_SIZE(map_icon_size); i++) {
|
|
if (map_icon_size[i].mIndex == index) {
|
|
return map_icon_size[i].mYSize;
|
|
}
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
/* 801C47C4-801C4D54 1BF104 0590+00 1/1 0/0 0/0 .text debugIcon__16dMenuMapCommon_cFv */
|
|
void dMenuMapCommon_c::debugIcon() {
|
|
int iVar6 = -1;
|
|
for (int i = 0; i < 128; i++)
|
|
{
|
|
if (_70[i]._14 == 17) {
|
|
iVar6 = i;
|
|
break;
|
|
}
|
|
}
|
|
if (iVar6 < 0) {
|
|
return;
|
|
}
|
|
|
|
f32 dVar10 = _70[iVar6]._0;
|
|
f32 dVar9 = _70[iVar6]._4;
|
|
f32 dVar7 = _70[iVar6]._8;
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[0]) {
|
|
setIconInfo(0, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
setIconInfo(1, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (!g_fmapHIO.mMapIconHIO.mIconDisplay[1]) {
|
|
_70[iVar6]._15 = 0;
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[2]) {
|
|
setIconInfo(2, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[3]) {
|
|
setIconInfo(18, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[4]) {
|
|
setIconInfo(4, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[5]) {
|
|
setIconInfo(3, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[6]) {
|
|
setIconInfo(5, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[7]) {
|
|
setIconInfo(6, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[8]) {
|
|
setIconInfo(7, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[9]) {
|
|
setIconInfo(9, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[10]) {
|
|
setIconInfo(10, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[11]) {
|
|
setIconInfo(11, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[12]) {
|
|
setIconInfo(12, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[13]) {
|
|
setIconInfo(15, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[14]) {
|
|
setIconInfo(16, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[15]) {
|
|
setIconInfo(8, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[16]) {
|
|
setIconInfo(13, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[17]) {
|
|
setIconInfo(14, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[18]) {
|
|
setIconInfo(19, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[19]) {
|
|
setIconInfo(20, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[20]) {
|
|
setIconInfo(21, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
if (g_fmapHIO.mMapIconHIO.mIconDisplay[21]) {
|
|
setIconInfo(22, dVar10, dVar9, 0.0f, dVar7, 1.0f, 1);
|
|
}
|
|
}
|