Files
dusklight/src/d/menu/d_menu_map_common.cpp
T
2024-02-18 09:55:58 +02:00

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);
}
}