tp/src/d/d_meter2_info.cpp

1700 lines
64 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "d/d_meter2_info.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/JUtility/JUTFont.h"
#include "JSystem/JMessage/JMessage.h"
#include "d/actor/d_a_npc.h"
#include "d/d_meter2.h"
#include "d/d_meter_map.h"
#include "d/d_msg_object.h"
#include "d/d_msg_class.h"
#include "d/d_item_data.h"
enum ITEMICON_RES_FILE_ID {
ITEMICON_BTI_ARI_MESU_00=0x3,
ITEMICON_BTI_ARI_OSU_00=0x4,
ITEMICON_BTI_BATTA_MESU_00=0x5,
ITEMICON_BTI_BATTA_OSU_00=0x6,
ITEMICON_BTI_CHOCHO_MESU_00=0x7,
ITEMICON_BTI_CHOCHO_OSU_00=0x8,
ITEMICON_BTI_DANGOMUSHI_MESU_00=0x9,
ITEMICON_BTI_DANGOMUSHI_OSU_00=0xA,
ITEMICON_BTI_IM_BOM_MUSHI_48=0xB,
ITEMICON_BTI_IM_BOM_NORMAL_48=0xC,
ITEMICON_BTI_IM_BOM_SUICHU_48=0xD,
ITEMICON_BTI_IM_BOTTLE=0xE,
ITEMICON_BTI_IM_BOTTLE_HATCHINOKO=0xF,
ITEMICON_BTI_IM_BOTTLE_MIMIZU=0x10,
ITEMICON_BTI_IM_BOTTLE_NAKAMI=0x11,
ITEMICON_BTI_IM_BOTTLE_NAKAMI_HALF=0x12,
ITEMICON_BTI_IM_BOTTLE_NAKAMI_NAKAMI_SOUP=0x13,
ITEMICON_BTI_IM_BOTTLE_POU=0x14,
ITEMICON_BTI_IM_CHEESE_48=0x15,
ITEMICON_BTI_IM_COPY_ROD_48=0x16,
ITEMICON_BTI_IM_D_MKEY_3PARTS_MIX_48=0x17,
ITEMICON_BTI_IM_FISHING_48=0x18,
ITEMICON_BTI_IM_FISHING_HACHINOKO_48=0x19,
ITEMICON_BTI_IM_FISHING_MIMIZU_48=0x1A,
ITEMICON_BTI_IM_FISHING_SANGO_MIMIKAZARI=0x1B,
ITEMICON_BTI_IM_FISHING_SANGO_MIMIKAZARI_HACHINOKO=0x1C,
ITEMICON_BTI_IM_FISHING_SANGO_MIMIKAZARI_MIMIZU=0x1D,
ITEMICON_BTI_IM_HONNY_48=0x1E,
ITEMICON_BTI_IM_HOOKSHOT_48=0x1F,
ITEMICON_BTI_IM_IRONBALL_48=0x20,
ITEMICON_BTI_IM_ITEM_ICON_BOSS_KEY_48=0x21,
ITEMICON_BTI_IM_KAKIOKI_48=0x22,
ITEMICON_BTI_IM_KANTERA_OFF_48=0x23,
ITEMICON_BTI_IM_KINOBOU_48=0x24,
ITEMICON_BTI_IM_MAGNE_BOOTS_06=0x25,
ITEMICON_BTI_IM_MUSUKO_48=0x26,
ITEMICON_BTI_IM_NAVI_TRY_00_07=0x27,
ITEMICON_BTI_IM_OBACHAN_48=0x28,
ITEMICON_BTI_IM_PUMPKIN_48=0x29,
ITEMICON_BTI_IM_SANGO_MIMIKAZARI_48=0x2A,
ITEMICON_BTI_IM_SPPINER_48=0x2B,
ITEMICON_BTI_IM_W_HOOKSHOT_48=0x2C,
ITEMICON_BTI_IM_ZELDA_ITEM_ICON_RUPY_13=0x2D,
ITEMICON_BTI_IM_ZELDA_ITEM_ICON_RUPY_L_13=0x2E,
ITEMICON_BTI_KABUTO_MESU_00=0x2F,
ITEMICON_BTI_KABUTO_OSU_00=0x30,
ITEMICON_BTI_KAGERO_MESU_00=0x31,
ITEMICON_BTI_KAGERO_OSU_00=0x32,
ITEMICON_BTI_KAMAKIRI_MESU_00=0x33,
ITEMICON_BTI_KAMAKIRI_OSU_00=0x34,
ITEMICON_BTI_KATATUMURI_MESU_00=0x35,
ITEMICON_BTI_KATATUMURI_OSU_00=0x36,
ITEMICON_BTI_KUWAGATA_MESU_00=0x37,
ITEMICON_BTI_KUWAGATA_OSU_00=0x38,
ITEMICON_BTI_LETTER_=0x39,
ITEMICON_BTI_NANAHUSHI_MESU_00=0x3A,
ITEMICON_BTI_NANAHUSHI_OSU_00=0x3B,
ITEMICON_BTI_NI_HAIRIANOTATE_48=0x3C,
ITEMICON_BTI_NI_ITEM_ICON_MAKIMONO=0x3D,
ITEMICON_BTI_NI_ITEM_ICON_POU=0x3E,
ITEMICON_BTI_NI_KEY_SHINSHITU_48=0x3F,
ITEMICON_BTI_NI_KINOTATE_48=0x40,
ITEMICON_BTI_NI_MAGICARMOR_48=0x41,
ITEMICON_BTI_NI_MASTERSWORD_48=0x42,
ITEMICON_BTI_NI_MKEY_PARTS1_GET_47_56=0x43,
ITEMICON_BTI_NI_MKEY_PARTS2_47_56=0x44,
ITEMICON_BTI_NI_MKEY_PARTS2_GET_47_56=0x45,
ITEMICON_BTI_NI_MKEY_PARTS3_GET_47_56=0x46,
ITEMICON_BTI_NI_SAIFU1_48=0x47,
ITEMICON_BTI_NI_SAIFU2_48=0x48,
ITEMICON_BTI_NI_SAIFU3_48=0x49,
ITEMICON_BTI_NI_YADUTU1_48=0x4A,
ITEMICON_BTI_NI_YADUTU2_48=0x4B,
ITEMICON_BTI_NI_YADUTU3_48=0x4C,
ITEMICON_BTI_NI_ZOURANOFUKU_48=0x4D,
ITEMICON_BTI_O_FISHING_LURE=0x4E,
ITEMICON_BTI_O_GD_KOMONSHO=0x4F,
ITEMICON_BTI_O_HEART_KAKERA_48=0x50,
ITEMICON_BTI_O_HEART_UTUWA_48=0x51,
ITEMICON_BTI_O_HIKARI_POD=0x52,
ITEMICON_BTI_ST_ARROWS=0x53,
ITEMICON_BTI_ST_BILL=0x54,
ITEMICON_BTI_ST_BOMPOACH_LV1=0x55,
ITEMICON_BTI_ST_BOMPOACH_LV2=0x56,
ITEMICON_BTI_ST_COPY_ROD_B=0x57,
ITEMICON_BTI_ST_FIGURE=0x58,
ITEMICON_BTI_ST_HAWKEYE=0x59,
ITEMICON_BTI_ST_LEN_LETTER=0x5A,
ITEMICON_BTI_ST_PACHINKO=0x5B,
ITEMICON_BTI_ST_PACHINKO_SEED=0x5C,
ITEMICON_BTI_ST_PENDANT=0x5D,
ITEMICON_BTI_TENTOMUSHI_MESU_00=0x5E,
ITEMICON_BTI_TENTOMUSHI_OSU_00=0x5F,
ITEMICON_BTI_TONBO_MESU_00=0x60,
ITEMICON_BTI_TONBO_OSU_00=0x61,
ITEMICON_BTI_TT_BOOMERANG_05=0x62,
ITEMICON_BTI_TT_BOTTLE_48=0x63,
ITEMICON_BTI_TT_BOTTLE_HALFMILK_48=0x64,
ITEMICON_BTI_TT_BOTTLE_MILK_48=0x65,
ITEMICON_BTI_TT_BOTTLE_OIL_48=0x66,
ITEMICON_BTI_TT_BOTTLE_RECOVERY_48=0x67,
ITEMICON_BTI_TT_BOTTLE_WATER_48=0x68,
ITEMICON_BTI_TT_BOW_06=0x69,
ITEMICON_BTI_TT_HOOK_SHOT_01=0x6A,
ITEMICON_BTI_TT_ITUMONOFUKU_S3TC=0x6B,
ITEMICON_BTI_TT_KANTERA_48=0x6C,
ITEMICON_BTI_TT_KEY_BOSS_48=0x6D,
ITEMICON_BTI_TT_KEY_NORMAL_48=0x6E,
ITEMICON_BTI_TT_KMPS_48=0x6F,
ITEMICON_BTI_TT_KOKIRINOKEN_S3_TC=0x70,
ITEMICON_BTI_TT_MAP_48=0x71,
ITEMICON_BTI_TT_SWORD_48=0x72,
ITEMICON_BTI_TT_WOOD_SHIELD_48=0x73,
ITEMICON_BTI_TTDELUNOTATE_S3_TC=0x74,
ITEMICON_BTI_ZELDA_HEART_PARTS1_GET=0x75,
ITEMICON_BTI_ZELDA_HEART_PARTS2_GET=0x76,
ITEMICON_BTI_ZELDA_HEART_PARTS3_GET=0x77,
ITEMICON_BTI_ZELDA_HEART_PARTS4_GET=0x78,
};
enum dMeter2_ItemType {
ItemType_DEFAULT,
ItemType_GREEN_RUPEE,
ItemType_BLUE_RUPEE,
ItemType_YELLOW_RUPEE,
ItemType_RED_RUPEE,
ItemType_PURPLE_RUPEE,
ItemType_ORANGE_RUPEE,
ItemType_SILVER_RUPEE,
ItemType_EMPTY_BOTTLE,
ItemType_RED_BOTTLE,
ItemType_GREEN_BOTTLE,
ItemType_BLUE_BOTTLE,
ItemType_MILK_BOTTLE,
ItemType_HALF_MILK_BOTTLE,
ItemType_OIL_BOTTLE,
ItemType_WATER_BOTTLE,
ItemType_HOT_SPRING,
ItemType_LV1_SOUP,
ItemType_LV2_3_SOUP,
ItemType_UGLY_SOUP,
ItemType_CHUCHU_RED,
ItemType_CHUCHU_BLUE,
ItemType_CHUCHU_GREEN,
ItemType_CHUCHU_YELLOW,
ItemType_CHUCHU_PURPLE,
ItemType_CHUCHU_RARE,
ItemType_CHUCHU_BLACK,
ItemType_POU_FIRE,
ItemType_FAIRY,
ItemType_BEE_CHILD,
ItemType_WORM,
ItemType_DROP_BOTTLE,
ItemType_BOMB_ARROW = 33,
ItemType_HAWK_ARROW,
};
/* 8021BDDC-8021BE20 21671C 0044+00 1/1 0/0 0/0 .text __ct__13dMeter2Info_cFv */
dMeter2Info_c::dMeter2Info_c() {
init();
mTempBits = 0;
}
dMeter2Info_c::~dMeter2Info_c() {}
/* 8021BE68-8021C0E0 2167A8 0278+00 1/1 1/1 0/0 .text init__13dMeter2Info_cFv */
void dMeter2Info_c::init() {
mMsgResource = NULL;
mStageMsgResource = NULL;
mMsgUnitResource = NULL;
mMeterClass = NULL;
mMeterMap = NULL;
mMenuWindowClass = NULL;
for (int i = 0; i < 4; i++) {
mMeterItemPanePtr[i] = NULL;
}
unk_0x8 = 0;
mSub2DStatus = 0;
mHorseLifeCount = 0;
mMsgKeyWaitTimer = 0;
unk_0x98 = 0;
mWindowStatus = 0;
unk_0xba = 0;
unk_0x54 = 0.0f;
unk_0x58 = 0.0f;
unk_0x5c = 0.0f;
unk_0x60 = 1.0f;
unk_0x64 = 30.0f;
unk_0x68 = 304.0f;
unk_0x6c = 224.0f;
m2DWidth = 608.0f;
m2DHeight = 448.0f;
m2DPosH = 0.0f;
m2DPosV = 0.0f;
unk_0x80 = 0.0f;
mTimeMs = 0;
mMsgTimeMs = 0;
mNowCount = 0;
mMaxCount = 0;
mShopTalkFlag = false;
mMapStatus = 0;
mMapKeyDirection = 0;
mBlinkButton = 0;
mOilGaugeBackUp = 0;
allUseButton();
resetDirectUseItem();
resetGameStatus();
resetTouchKeyCheck();
resetWindowAccept();
mMeterString = 0;
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = 0xFFFF;
mFloatingMessageTimer = 0;
mFloatingMessageWakuVisible = 0;
resetWarpStatus();
resetPauseStatus();
mGameOverType = 0;
mInsectSelectType = 0xFF;
setWarpInfo("", cXyz(0.0f, 0.0f, 0.0f), 0, 0, 0, 0);
for (int i = 0; i < 4; i++) {
changeWater(i + SLOT_11);
}
for (int i = 0; i < 4; i++) {
mSaveSelItemIdx[i] = 0;
mSaveMixItemIdx[i] = 0;
mSaveSelItemIdxMG[i] = 0;
mSaveMixItemIdxMG[i] = 0;
}
mSaveBombNum = 0;
mSaveArrowNum = 0;
mSaveBowItem = 0;
mSaveBombItem = 0;
mSaveBombNumMG = 0;
mSaveArrowNumMG = 0;
mSaveBowItemMG = 0;
mSaveBombItemMG = 0;
mRentalBombBagIdx = 0xFF;
mMiniGameItemSetFlag = 0;
mMiniGameCount = 0;
setSaveStageName("");
setCollectCursorPosXY(0, 0);
mTableMapRegionNo = 0xFF;
mGoldWolfMapType = 0;
mScopeZoomPointer = 0;
mItemExplainWindowStatus = 0;
mLifeGaugeSE = 0;
mMapDrugFlag = false;
for (int i = 0; i < 3; i++) {
if (dComIfGs_isLightDropGetFlag(i)) {
mLightDropGetFlag[i] = 0xFF;
} else {
mLightDropGetFlag[i] = 0;
}
}
}
/* 8021C0E0-8021C11C 216A20 003C+00 0/0 1/1 2/2 .text setFloatingMessage__13dMeter2Info_cFUssb */
int dMeter2Info_c::setFloatingMessage(u16 i_msgID, s16 i_msgTimer, bool i_wakuVisible) {
if (dComIfGp_event_runCheck()) {
return 0;
}
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = i_msgID;
mFloatingMessageTimer = i_msgTimer;
mFloatingMessageWakuVisible = i_wakuVisible;
return 1;
}
/* 8021C11C-8021C1DC 216A5C 00C0+00 0/0 0/0 1/1 .text setFloatingFlow__13dMeter2Info_cFUssb */
int dMeter2Info_c::setFloatingFlow(u16 i_flowID, s16 i_msgTimer, bool i_wakuVisible) {
if (dComIfGp_event_runCheck()) {
return 0;
}
mFloatingFlowID = i_flowID;
dMsgFlow_c flow;
flow.init(NULL, i_flowID, 0, NULL);
flow.doFlow(NULL, NULL, 0);
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = flow.getMsgNo();
mFloatingMessageTimer = i_msgTimer;
mFloatingMessageWakuVisible = i_wakuVisible;
return 1;
}
/* 8021C1DC-8021C1F0 216B1C 0014+00 0/0 4/4 0/0 .text isFloatingMessageVisible__13dMeter2Info_cFv
*/
bool dMeter2Info_c::isFloatingMessageVisible() {
if (mFloatingMessageTimer > 0) {
return true;
}
return false;
}
/* 8021C1F0-8021C218 216B30 0028+00 0/0 1/1 0/0 .text decFloatingMessageTimer__13dMeter2Info_cFv
*/
s16 dMeter2Info_c::decFloatingMessageTimer() {
if (mFloatingMessageTimer > 0) {
mFloatingMessageTimer--;
} else {
mFloatingMessageTimer = 0;
}
return mFloatingMessageTimer;
}
/* 8021C218-8021C238 216B58 0020+00 0/0 3/3 0/0 .text resetFloatingMessage__13dMeter2Info_cFv */
void dMeter2Info_c::resetFloatingMessage() {
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = 0xFFFF;
mFloatingMessageTimer = 0;
mFloatingMessageWakuVisible = false;
}
/* 8021C238-8021C250 216B78 0018+00 0/0 2/2 0/0 .text decMsgKeyWaitTimer__13dMeter2Info_cFv */
void dMeter2Info_c::decMsgKeyWaitTimer() {
if (mMsgKeyWaitTimer > 0) {
mMsgKeyWaitTimer--;
}
}
/* 8021C250-8021C370 216B90 0120+00 0/0 16/16 0/0 .text
* getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
void dMeter2Info_c::getString(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
strcpy(o_string, "");
u8* msgRes;
if (mMsgResource == NULL) {
msgRes = (u8*)JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
if (msgRes == NULL) {
return;
}
} else {
msgRes = (u8*)mMsgResource;
}
JMSMesgInfo_c* bmg_inf = (JMSMesgInfo_c*)(msgRes + sizeof(bmg_header_t));
u8* bmg_data = (u8*)bmg_inf + bmg_inf->header.size + sizeof(bmg_section_t); // pointer to start of message data
char* string_ptr = NULL;
for (u16 i = 0; i < bmg_inf->entry_num; i++) {
u8* entry = ((u8*)bmg_inf + (i * sizeof(JMSMesgEntry_c)));
// check if i_stringID equals the message entry "Message ID"
if (i_stringID == *(u16*)(entry + 0x14)) {
string_ptr = (char*)(bmg_data + *(u32*)(entry + 0x10)); // use entry "String Offset" to get string pointer
strcpy(o_string, string_ptr);
if (i_msgEntry != NULL) {
memcpy(i_msgEntry, entry + 0x10, sizeof(JMSMesgEntry_c));
}
return;
}
}
if (mMsgResource == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
/* 8021C370-8021C544 216CB0 01D4+00 0/0 1/1 0/0 .text
* getStringKana__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
void dMeter2Info_c::getStringKana(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
strcpy(o_string, "");
u8* msgRes;
if (mMsgResource == NULL) {
msgRes = (u8*)JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
if (msgRes == NULL) {
return;
}
} else {
msgRes = (u8*)mMsgResource;
}
JMSMesgInfo_c* bmg_inf = (JMSMesgInfo_c*)(msgRes + sizeof(bmg_header_t));
u8* bmg_data = (u8*)bmg_inf + bmg_inf->header.size;
u8* string_data = bmg_data + sizeof(bmg_section_t);
char* string_ptr = NULL;
for (u16 i = 0; i < bmg_inf->entry_num; i++) {
// check if i_stringID equals the message entry "Message ID"
if (i_stringID == bmg_inf->entries[i].message_id) {
string_ptr = (char*)(string_data + bmg_inf->entries[i].string_offset); // use entry "String Offset" to get string pointer
int var_r29 = 0;
int sp14 = 0;
int sp10 = 0;
while (var_r29 < 0x200) {
if ((u8)string_ptr[var_r29] == 0x1A) {
if ((u8)string_ptr[var_r29 + 2] == 0xFF && (u8)string_ptr[var_r29 + 3] == 0 && (u8)string_ptr[var_r29 + 4] == 2) {
sp10 = string_ptr[var_r29 + 1] - 6;
sp14 = string_ptr[var_r29 + 5] * 2;
for (int spC = 0; spC < sp10; spC++) {
*o_string = string_ptr[var_r29 + spC + 6];
o_string++;
}
}
var_r29 += string_ptr[var_r29 + 1];
continue;
}
if (sp14 > 0) {
sp14--;
} else {
*o_string = string_ptr[var_r29];
o_string++;
}
if (string_ptr[var_r29] == '\0') {
break;
}
var_r29++;
}
if (i_msgEntry != NULL) {
memcpy(i_msgEntry, &bmg_inf->entries[i], sizeof(JMSMesgEntry_c));
}
return;
}
}
if (mMsgResource == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
/* 8021C544-8021C6A4 216E84 0160+00 0/0 32/32 1/1 .text
* getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
void dMeter2Info_c::getStringKanji(u32 i_stringID, char* o_string, JMSMesgEntry_c* i_msgEntry) {
strcpy(o_string, "");
u8* msgRes;
if (mMsgResource == NULL) {
msgRes = (u8*)JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
if (msgRes == NULL) {
return;
}
} else {
msgRes = (u8*)mMsgResource;
}
JMSMesgInfo_c* bmg_inf = (JMSMesgInfo_c*)(msgRes + sizeof(bmg_header_t));
u8* bmg_data = (u8*)bmg_inf + bmg_inf->header.size;
u8* string_data = bmg_data + sizeof(bmg_section_t);
char* string_ptr = NULL;
for (u16 i = 0; i < bmg_inf->entry_num; i++) {
// check if i_stringID equals the message entry "Message ID"
if (i_stringID == bmg_inf->entries[i].message_id) {
string_ptr = (char*)(string_data + bmg_inf->entries[i].string_offset); // use entry "String Offset" to get string pointer
int var_r29 = 0;
while (var_r29 < 0x200) {
if ((u8)string_ptr[var_r29] == 0x1A) {
var_r29 += string_ptr[var_r29 + 1];
continue;
}
*o_string = string_ptr[var_r29];
o_string++;
if (string_ptr[var_r29] == '\0') {
break;
}
var_r29++;
}
if (i_msgEntry != NULL) {
memcpy(i_msgEntry, &bmg_inf->entries[i], 0x14);
}
return;
}
}
if (mMsgResource == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
/* 8021C6A4-8021C7F4 216FE4 0150+00 0/0 1/1 0/0 .text
* getStringLength__13dMeter2Info_cFP10J2DTextBoxPc */
f32 dMeter2Info_c::getStringLength(J2DTextBox* i_textbox, char* i_string) {
f32 str_width = 0.0f;
f32 str_len = 0.0f;
JUTFont* font = i_textbox->getFont();
char* string = i_string;
f32 charSpace = i_textbox->getCharSpace();
J2DTextBox::TFontSize fontSize;
i_textbox->getFontSize(fontSize);
for (; *string != 0; string++) {
if (*string == '\n') {
if (str_len < str_width) {
str_len = str_width;
}
str_width = 0.0f;
} else {
int c = (u8)*string;
str_width += charSpace + (fontSize.mSizeX * ((f32)font->getWidth(c) / (f32)font->getCellWidth()));
}
}
if (str_len < str_width) {
str_len = str_width;
}
return str_len;
}
/* 8021C7FC-8021C934 21713C 0138+00 0/0 3/3 0/0 .text
* getStringLength__13dMeter2Info_cFP7JUTFontffPc */
f32 dMeter2Info_c::getStringLength(JUTFont* i_font, f32 param_2, f32 param_3, char* i_string) {
f32 str_width = 0.0f;
f32 str_len = 0.0f;
for (char* string = i_string; *string != '\0'; string++) {
if (*string == '\n') {
if (str_len < str_width) {
str_len = str_width;
}
str_width = 0.0f;
} else {
int c = (u8)*string;
str_width += param_3 + param_2 * ((f32)i_font->getWidth(c) / (f32)i_font->getCellWidth());
}
}
if (str_len < str_width) {
str_len = str_width;
}
return str_len;
}
/* 8021C934-8021C950 217274 001C+00 0/0 2/2 0/0 .text onDirectUseItem__13dMeter2Info_cFi
*/
void dMeter2Info_c::onDirectUseItem(int param_0) {
mDirectUseItem |= (u8)(1 << param_0);
}
/* 8021C950-8021C970 217290 0020+00 0/0 4/4 0/0 .text isDirectUseItem__13dMeter2Info_cFi */
BOOL dMeter2Info_c::isDirectUseItem(int param_0) {
return (mDirectUseItem & (u8)(1 << param_0)) ? TRUE : FALSE;
}
/* 80430188-80430280 05CEA8 00F8+00 4/4 267/267 70/70 .bss g_meter2_info */
dMeter2Info_c g_meter2_info;
/* 8021C970-8021C9DC 2172B0 006C+00 0/0 0/0 5/5 .text setMeterString__13dMeter2Info_cFl */
int dMeter2Info_c::setMeterString(s32 i_string) {
if (mMeterString != 0) {
return 0;
}
if (i_string == 0) {
return 0;
}
if (dMeter2Info_getMeterClass() != NULL &&
(dMeter2Info_getMeterClass()->getSubContents() == 0 ||
(dMeter2Info_getMeterClass()->getSubContents() == 5 &&
dMeter2Info_getMeterClass()->getSubContentsStringType() == 0)))
{
mMeterString = i_string;
return 1;
}
return 0;
}
/* 8021C9DC-8021CA04 21731C 0028+00 1/1 3/3 0/0 .text resetWarpStatus__13dMeter2Info_cFv */
void dMeter2Info_c::resetWarpStatus() {
if (mWarpStatus == 2) {
dComIfGs_resetLastWarpAcceptStage();
}
mWarpStatus = 0;
}
/* 8021CA04-8021CA70 217344 006C+00 0/0 2/2 3/3 .text warpInProc__13dMeter2Info_cFv */
void dMeter2Info_c::warpInProc() {
dComIfGs_setWarpMarkFlag(0);
dComIfGs_resetLastWarpAcceptStage();
if (dComIfGs_getItem(SLOT_18, true) != fpcNm_ITEM_LV7_DUNGEON_EXIT) {
dComIfGs_setItem(SLOT_18, fpcNm_ITEM_DUNGEON_EXIT);
}
}
/* 8021CA70-8021CC00 2173B0 0190+00 0/0 1/1 0/0 .text warpOutProc__13dMeter2Info_cFv */
void dMeter2Info_c::warpOutProc() {
dComIfGs_setLastWarpAcceptStage(dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()));
cXyz pos(dComIfGs_getRestartRoomPos());
csXyz angle(0, dComIfGs_getRestartRoomAngleY(), 0);
s8 room_no = dComIfGs_getRestartRoomNo();
if (strcmp(dComIfGp_getStartStageName(), "D_MN01") == 0) {
s32 index = -1;
if (room_no == 0) {
index = 1;
} else if (room_no == 5) {
index = 2;
} else if (room_no == 6) {
index = 2;
} else if (room_no == 9) {
index = 4;
}
if (index != -1) {
daNpcF_getPlayerInfoFromPlayerList(index, room_no, pos, angle);
}
} else if (!strcmp(dComIfGp_getStartStageName(), "D_MN07") && room_no == 0) {
daNpcF_getPlayerInfoFromPlayerList(5, room_no, pos, angle);
}
dComIfGs_setWarpItemData(dComIfGp_getStartStageName(), pos, angle.y, room_no, 0, 1);
dComIfGs_setItem(SLOT_18, fpcNm_ITEM_DUNGEON_BACK);
}
/* 8021CC00-8021CC0C 217540 000C+00 0/0 1/1 1/1 .text resetMeterString__13dMeter2Info_cFv
*/
void dMeter2Info_c::resetMeterString() {
mMeterString = 0;
}
/* 8021CC0C-8021CC80 21754C 0074+00 1/1 1/1 0/0 .text
* setWarpInfo__13dMeter2Info_cFPCcRC4cXyzsUcUcUc */
void dMeter2Info_c::setWarpInfo(const char* i_stageName, const cXyz& i_position, s16 i_angle,
u8 i_roomNo, u8 param_4, u8 i_warpPlayerNo) {
strcpy(mWarpInfo.mStageName, i_stageName);
mWarpInfo.mPosition = i_position;
mWarpInfo.mAngle = (s16)i_angle;
mWarpInfo.mRoomNo = (u8)i_roomNo;
mWarpInfo.unk_0x17 = (u8)param_4;
mWarpInfo.mPlayerNo = (u8)i_warpPlayerNo;
}
/* 8021CC80-8021CF08 2175C0 0288+00 2/2 0/0 0/0 .text getItemType__13dMeter2Info_cFUc */
u8 dMeter2Info_c::getItemType(u8 i_itemNo) {
u8 type;
switch (i_itemNo) {
case fpcNm_ITEM_GREEN_RUPEE:
type = ItemType_GREEN_RUPEE;
break;
case fpcNm_ITEM_BLUE_RUPEE:
type = ItemType_BLUE_RUPEE;
break;
case fpcNm_ITEM_YELLOW_RUPEE:
type = ItemType_YELLOW_RUPEE;
break;
case fpcNm_ITEM_RED_RUPEE:
type = ItemType_RED_RUPEE;
break;
case fpcNm_ITEM_PURPLE_RUPEE:
case fpcNm_ITEM_LINKS_SAVINGS:
type = ItemType_PURPLE_RUPEE;
break;
case fpcNm_ITEM_ORANGE_RUPEE:
type = ItemType_ORANGE_RUPEE;
break;
case fpcNm_ITEM_SILVER_RUPEE:
type = ItemType_SILVER_RUPEE;
break;
case fpcNm_ITEM_EMPTY_BOTTLE:
type = ItemType_EMPTY_BOTTLE;
break;
case fpcNm_ITEM_RED_BOTTLE:
case fpcNm_ITEM_RED_BOTTLE_2:
type = ItemType_RED_BOTTLE;
break;
case fpcNm_ITEM_GREEN_BOTTLE:
type = ItemType_GREEN_BOTTLE;
break;
case fpcNm_ITEM_BLUE_BOTTLE:
type = ItemType_BLUE_BOTTLE;
break;
case fpcNm_ITEM_MILK_BOTTLE:
type = ItemType_MILK_BOTTLE;
break;
case fpcNm_ITEM_HALF_MILK_BOTTLE:
type = ItemType_HALF_MILK_BOTTLE;
break;
case fpcNm_ITEM_OIL_BOTTLE:
case fpcNm_ITEM_OIL_BOTTLE_2:
case fpcNm_ITEM_OIL_BOTTLE3:
type = ItemType_OIL_BOTTLE;
break;
case fpcNm_ITEM_WATER_BOTTLE:
type = ItemType_WATER_BOTTLE;
break;
case fpcNm_ITEM_HOT_SPRING:
case fpcNm_ITEM_HOT_SPRING_2:
type = ItemType_HOT_SPRING;
break;
case fpcNm_ITEM_LV1_SOUP:
type = ItemType_LV1_SOUP;
break;
case fpcNm_ITEM_LV2_SOUP:
case fpcNm_ITEM_LV3_SOUP:
type = ItemType_LV2_3_SOUP;
break;
case fpcNm_ITEM_UGLY_SOUP:
type = ItemType_UGLY_SOUP;
break;
case fpcNm_ITEM_CHUCHU_RED:
type = ItemType_CHUCHU_RED;
break;
case fpcNm_ITEM_CHUCHU_BLUE:
type = ItemType_CHUCHU_BLUE;
break;
case fpcNm_ITEM_CHUCHU_GREEN:
type = ItemType_CHUCHU_GREEN;
break;
case fpcNm_ITEM_CHUCHU_YELLOW:
type = ItemType_CHUCHU_YELLOW;
break;
case fpcNm_ITEM_CHUCHU_PURPLE:
type = ItemType_CHUCHU_PURPLE;
break;
case fpcNm_ITEM_CHUCHU_RARE:
type = ItemType_CHUCHU_RARE;
break;
case fpcNm_ITEM_CHUCHU_BLACK:
type = ItemType_CHUCHU_BLACK;
break;
case fpcNm_ITEM_POU_FIRE1:
case fpcNm_ITEM_POU_FIRE2:
case fpcNm_ITEM_POU_FIRE3:
case fpcNm_ITEM_POU_FIRE4:
type = ItemType_POU_FIRE;
break;
case fpcNm_ITEM_FAIRY:
type = ItemType_FAIRY;
break;
case fpcNm_ITEM_BEE_CHILD:
case fpcNm_ITEM_SHOP_BEE_CHILD:
type = ItemType_BEE_CHILD;
break;
case fpcNm_ITEM_WORM:
type = ItemType_WORM;
break;
case fpcNm_ITEM_FAIRY_DROP:
case fpcNm_ITEM_DROP_BOTTLE:
type = ItemType_DROP_BOTTLE;
break;
case fpcNm_ITEM_BOMB_ARROW:
type = ItemType_BOMB_ARROW;
break;
case fpcNm_ITEM_HAWK_ARROW:
type = ItemType_HAWK_ARROW;
break;
default:
type = 0;
break;
}
return type;
}
/* 8021CF08-8021D36C 217848 0464+00 0/0 9/9 0/0 .text
* readItemTexture__13dMeter2Info_cFUcPvP10J2DPicturePvP10J2DPicturePvP10J2DPicturePvP10J2DPicturei
*/
int dMeter2Info_c::readItemTexture(u8 i_itemNo, void* i_texBuf1, J2DPicture* i_pic1, void* i_texBuf2,
J2DPicture* i_pic2, void* i_texBuf3, J2DPicture* i_pic3,
void* i_texBuf4, J2DPicture* i_pic4, int param_9) {
u8 itemType = getItemType(i_itemNo);
int tex_num = 0;
if (i_texBuf1 != NULL) {
if ((i_itemNo == fpcNm_ITEM_KANTERA && dComIfGs_getOil() == 0) || i_itemNo == fpcNm_ITEM_KANTERA2) {
u32 size = JKRReadIdxResource(i_texBuf1, 0xC00, ITEMICON_BTI_IM_KANTERA_OFF_48, dComIfGp_getItemIconArchive());
JUT_ASSERT(1166, size != 0);
} else if (i_itemNo == fpcNm_ITEM_COPY_ROD && !daPy_getPlayerActorClass()->checkCopyRodTopUse() && param_9 == -1) {
u32 size = JKRReadIdxResource(i_texBuf1, 0xC00, ITEMICON_BTI_ST_COPY_ROD_B, dComIfGp_getItemIconArchive());
JUT_ASSERT(1173, size != 0);
} else if ((itemType == ItemType_POU_FIRE || itemType == ItemType_FAIRY || itemType == ItemType_BEE_CHILD || itemType == ItemType_WORM) && i_texBuf3 == NULL) {
u32 size = JKRReadIdxResource(i_texBuf1, 0xC00, get2ndTexture(itemType), dComIfGp_getItemIconArchive());
JUT_ASSERT(1222, size != 0);
} else {
u32 size;
if (param_9 >= 0) {
size = JKRReadIdxResource(i_texBuf1, 0xC00, param_9, dComIfGp_getItemIconArchive());
} else {
size = JKRReadIdxResource(i_texBuf1, 0xC00, dItem_data::getTexture(i_itemNo), dComIfGp_getItemIconArchive());
}
JUT_ASSERT(1238, size != 0);
}
DCStoreRangeNoSync(i_texBuf1, 0xC00);
if (i_pic1 != NULL) {
if ((itemType == ItemType_POU_FIRE || itemType == ItemType_FAIRY || itemType == ItemType_BEE_CHILD || itemType == ItemType_WORM) && i_texBuf3 == NULL) {
set2ndColor(itemType, i_pic1);
} else {
set1stColor(itemType, i_pic1);
}
const ResTIMG* img = i_pic1->changeTexture((ResTIMG*)i_texBuf1, 0);
JUT_ASSERT(1284, img != 0);
}
tex_num++;
if (i_texBuf2 != NULL && get2ndTexture(itemType) > 0) {
if ((itemType == ItemType_POU_FIRE || itemType == ItemType_FAIRY || itemType == ItemType_BEE_CHILD || itemType == ItemType_WORM) && i_texBuf3 == NULL) {
u32 size = JKRReadIdxResource(i_texBuf2, 0xC00, get3rdTexture(itemType), dComIfGp_getItemIconArchive());
JUT_ASSERT(1327, size != 0);
DCStoreRangeNoSync(i_texBuf2, 0xC00);
if (i_pic2 != NULL) {
set3rdColor(itemType, i_pic2);
const ResTIMG* img = i_pic2->changeTexture((ResTIMG*)i_texBuf2, 0);
JUT_ASSERT(1333, img != 0);
}
tex_num++;
} else {
u32 size = JKRReadIdxResource(i_texBuf2, 0xC00, get2ndTexture(itemType), dComIfGp_getItemIconArchive());
JUT_ASSERT(1342, size != 0);
DCStoreRangeNoSync(i_texBuf2, 0xC00);
if (i_pic2 != NULL) {
set2ndColor(itemType, i_pic2);
const ResTIMG* img = i_pic2->changeTexture((ResTIMG*)i_texBuf2, 0);
JUT_ASSERT(1348, img != 0);
}
tex_num++;
if (i_texBuf3 != NULL && get3rdTexture(itemType) > 0) {
u32 size = JKRReadIdxResource(i_texBuf3, 0xC00, get3rdTexture(itemType), dComIfGp_getItemIconArchive());
JUT_ASSERT(1358, size != 0);
DCStoreRangeNoSync(i_texBuf3, 0xC00);
if (i_pic3 != NULL) {
set3rdColor(itemType, i_pic3);
const ResTIMG* img = i_pic3->changeTexture((ResTIMG*)i_texBuf3, 0);
JUT_ASSERT(1364, img != 0);
}
tex_num++;
if (i_texBuf4 != NULL && get4thTexture(itemType) > 0) {
u32 size = JKRReadIdxResource(i_texBuf4, 0xC00, get4thTexture(itemType), dComIfGp_getItemIconArchive());
JUT_ASSERT(1374, size != 0);
DCStoreRangeNoSync(i_texBuf4, 0xC00);
if (i_pic4 != NULL) {
set4thColor(itemType, i_pic4);
const ResTIMG* img = i_pic4->changeTexture((ResTIMG*)i_texBuf4, 0);
JUT_ASSERT(1380, img != 0);
}
tex_num++;
}
}
}
}
}
return tex_num;
}
/* 8021D36C-8021D44C 217CAC 00E0+00 0/0 2/2 0/0 .text
* setItemColor__13dMeter2Info_cFUcP10J2DPictureP10J2DPictureP10J2DPictureP10J2DPicture */
void dMeter2Info_c::setItemColor(u8 i_itemNo, J2DPicture* i_pic1, J2DPicture* i_pic2,
J2DPicture* i_pic3, J2DPicture* i_pic4) {
u8 itemType = getItemType(i_itemNo);
if (i_pic1 != NULL) {
set1stColor(itemType, i_pic1);
if (i_pic2 != NULL) {
if ((itemType == ItemType_POU_FIRE || itemType == ItemType_FAIRY || itemType == ItemType_BEE_CHILD || itemType == ItemType_WORM) &&
i_pic3 == NULL)
{
set3rdColor(itemType, i_pic2);
} else {
set2ndColor(itemType, i_pic2);
if (i_pic3 != NULL) {
set3rdColor(itemType, i_pic3);
if (i_pic4 != NULL) {
set4thColor(itemType, i_pic4);
}
}
}
}
}
}
/* 8021D44C-8021D4B8 217D8C 006C+00 2/1 0/0 0/0 .text get2ndTexture__13dMeter2Info_cFUc
*/
s16 dMeter2Info_c::get2ndTexture(u8 i_itemType) {
switch (i_itemType) {
case ItemType_GREEN_RUPEE:
case ItemType_BLUE_RUPEE:
case ItemType_YELLOW_RUPEE:
case ItemType_RED_RUPEE:
case ItemType_PURPLE_RUPEE:
case ItemType_ORANGE_RUPEE:
case ItemType_SILVER_RUPEE:
return ITEMICON_BTI_IM_ZELDA_ITEM_ICON_RUPY_L_13;
case ItemType_EMPTY_BOTTLE:
case ItemType_RED_BOTTLE:
case ItemType_GREEN_BOTTLE:
case ItemType_BLUE_BOTTLE:
case ItemType_MILK_BOTTLE:
case ItemType_HALF_MILK_BOTTLE:
case ItemType_OIL_BOTTLE:
case ItemType_WATER_BOTTLE:
case ItemType_HOT_SPRING:
case ItemType_LV1_SOUP:
case ItemType_LV2_3_SOUP:
case ItemType_UGLY_SOUP:
case ItemType_CHUCHU_RED:
case ItemType_CHUCHU_BLUE:
case ItemType_CHUCHU_GREEN:
case ItemType_CHUCHU_YELLOW:
case ItemType_CHUCHU_PURPLE:
case ItemType_CHUCHU_RARE:
case ItemType_CHUCHU_BLACK:
case ItemType_DROP_BOTTLE:
return ITEMICON_BTI_IM_BOTTLE;
case ItemType_POU_FIRE:
return ITEMICON_BTI_IM_BOTTLE_POU;
case ItemType_FAIRY:
return ITEMICON_BTI_IM_NAVI_TRY_00_07;
case ItemType_BEE_CHILD:
return ITEMICON_BTI_IM_BOTTLE_HATCHINOKO;
case ItemType_WORM:
return ITEMICON_BTI_IM_BOTTLE_MIMIZU;
case ItemType_BOMB_ARROW:
case ItemType_HAWK_ARROW:
case 35:
return ITEMICON_BTI_TT_BOW_06;
case 36:
return ITEMICON_BTI_IM_SANGO_MIMIKAZARI_48;
default:
case 32:
return -1;
}
}
/* 8021D4B8-8021D4FC 217DF8 0044+00 1/1 0/0 0/0 .text get3rdTexture__13dMeter2Info_cFUc
*/
s16 dMeter2Info_c::get3rdTexture(u8 i_itemType) {
switch (i_itemType) {
case ItemType_GREEN_RUPEE:
case ItemType_BLUE_RUPEE:
case ItemType_YELLOW_RUPEE:
case ItemType_RED_RUPEE:
case ItemType_PURPLE_RUPEE:
case ItemType_ORANGE_RUPEE:
case ItemType_SILVER_RUPEE:
return ITEMICON_BTI_IM_ZELDA_ITEM_ICON_RUPY_L_13;
case ItemType_POU_FIRE:
case ItemType_FAIRY:
case ItemType_BEE_CHILD:
case ItemType_WORM:
return ITEMICON_BTI_IM_BOTTLE;
default:
return -1;
}
}
/* 8021D4FC-8021D524 217E3C 0028+00 1/1 0/0 0/0 .text get4thTexture__13dMeter2Info_cFUc
*/
s16 dMeter2Info_c::get4thTexture(u8 i_itemType) {
switch (i_itemType) {
case ItemType_GREEN_RUPEE:
case ItemType_BLUE_RUPEE:
case ItemType_YELLOW_RUPEE:
case ItemType_RED_RUPEE:
case ItemType_PURPLE_RUPEE:
case ItemType_ORANGE_RUPEE:
case ItemType_SILVER_RUPEE:
return ITEMICON_BTI_IM_ZELDA_ITEM_ICON_RUPY_L_13;
default:
return -1;
}
}
/* 8021D524-8021D644 217E64 0120+00 2/2 0/0 0/0 .text set1stColor__13dMeter2Info_cFUcP10J2DPicture
*/
void dMeter2Info_c::set1stColor(u8 i_itemType, J2DPicture* i_pic) {
static GXColor const black_color[37] = {
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x60, 0x00, 0x00}, {0x00, 0x00, 0xC0, 0x00},
{0xA0, 0x60, 0x00, 0x00}, {0xA0, 0x00, 0x00, 0x00}, {0x40, 0x00, 0x60, 0x00},
{0xE0, 0x00, 0x00, 0x00}, {0x40, 0x40, 0x40, 0x00}, {0x6E, 0x6E, 0x64, 0x00},
{0x32, 0x00, 0x00, 0x00}, {0x00, 0x7F, 0x00, 0x00}, {0x00, 0x00, 0x7F, 0x00},
{0xAF, 0x9B, 0x6E, 0x00}, {0xAA, 0x9B, 0x6E, 0x00}, {0x55, 0x37, 0x14, 0x00},
{0x6E, 0x6E, 0x6E, 0x00}, {0x6E, 0x6E, 0x6E, 0x00}, {0xFF, 0x58, 0x00, 0x00},
{0x6C, 0x3E, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x32, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x7F, 0x00}, {0x00, 0x7F, 0x00, 0x00}, {0x55, 0x37, 0x14, 0x00},
{0x00, 0x00, 0x22, 0x00}, {0x2B, 0x18, 0x22, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x46, 0x46, 0x41, 0x00}, {0x46, 0x46, 0x41, 0x00}, {0x46, 0x46, 0x41, 0x00},
{0x46, 0x46, 0x41, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00},
};
static GXColor const white_color[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0x60, 0xFF, 0x00, 0xFF}, {0x00, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0x00, 0xFF}, {0xFF, 0x80, 0x80, 0xFF}, {0xBE, 0x40, 0xFF, 0xFF},
{0xFF, 0xC0, 0x00, 0xFF}, {0xC0, 0xC0, 0xC0, 0xFF}, {0xF5, 0xF5, 0xFF, 0xFF},
{0xFF, 0xD2, 0xAA, 0xFF}, {0xEF, 0xF5, 0xC9, 0xFF}, {0xB0, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xF0, 0xFF}, {0xFF, 0xFF, 0xF0, 0xFF}, {0xFF, 0xFF, 0xD7, 0xFF},
{0xF5, 0xF5, 0xFF, 0xFF}, {0xF5, 0xF5, 0xFF, 0xFF}, {0xFF, 0xFF, 0xC2, 0xFF},
{0xFF, 0x9D, 0x00, 0xFF}, {0xC8, 0xC8, 0xC8, 0xFF}, {0xFF, 0xD2, 0xAA, 0xFF},
{0xB0, 0xFF, 0xFF, 0xFF}, {0xEF, 0xF5, 0xC9, 0xFF}, {0xFF, 0xFF, 0xD7, 0xFF},
{0xD7, 0xCF, 0xF5, 0xFF}, {0xFF, 0xFF, 0x33, 0xFF}, {0xC8, 0xC8, 0xC8, 0xFF},
{0xF5, 0xF5, 0xFF, 0xFF}, {0xF5, 0xF5, 0xFF, 0xFF}, {0xF5, 0xF5, 0xFF, 0xFF},
{0xF5, 0xF5, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_lu[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0x00},
{0xFF, 0x78, 0xAF, 0xFF}, {0x5C, 0xB4, 0x16, 0xFF}, {0xA4, 0xFF, 0x00, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0x00, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0x78, 0xAF, 0xFF},
{0xA4, 0xFF, 0x00, 0xFF}, {0x5C, 0xB4, 0x16, 0xFF}, {0xFF, 0xFF, 0x00, 0xFF},
{0xC9, 0xB4, 0xFF, 0xFF}, {0x3C, 0x0A, 0x00, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xFF, 0xFF, 0x00},
{0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xA0, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_ru[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0x00},
{0xFF, 0xFF, 0x73, 0xFF}, {0xFF, 0xFF, 0x2A, 0xFF}, {0x98, 0xFF, 0x00, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0x73, 0xFF},
{0x98, 0xFF, 0x00, 0xFF}, {0xFF, 0xFF, 0x2A, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0x39, 0xFF}, {0xFF, 0xFF, 0x00, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xFF, 0xFF, 0x00},
{0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xA0, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_ld[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0x78, 0x6E, 0x3C, 0xFF},
{0xFF, 0x00, 0x00, 0xFF}, {0x3C, 0x32, 0x50, 0xFF}, {0x00, 0x00, 0x74, 0xFF},
{0xFA, 0xC8, 0x9B, 0xFF}, {0xFA, 0xC8, 0x9B, 0xFF}, {0x46, 0x87, 0x00, 0xFF},
{0x5A, 0xB4, 0xB4, 0xFF}, {0x5A, 0xB4, 0xB4, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0xFF, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x74, 0xFF}, {0x3C, 0x32, 0x50, 0xFF}, {0x46, 0x87, 0x00, 0xFF},
{0x3C, 0x32, 0x50, 0x49}, {0xFF, 0xFF, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0xE0, 0x00, 0xE0, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_rd[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0x78, 0x6E, 0x3C, 0xFF},
{0xFF, 0x96, 0x00, 0xFF}, {0x55, 0x42, 0x00, 0xFF}, {0x61, 0x48, 0xFF, 0xFF},
{0xFF, 0xFF, 0xAA, 0xFF}, {0xFF, 0xFF, 0xAA, 0xFF}, {0xAF, 0x91, 0x23, 0xFF},
{0xE6, 0xFA, 0xFF, 0xFF}, {0xE6, 0xFA, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0xFF, 0x96, 0x00, 0xFF},
{0x61, 0x48, 0xFF, 0xFF}, {0x55, 0x42, 0x00, 0xFF}, {0xAF, 0x91, 0x23, 0xFF},
{0x3C, 0x09, 0x4E, 0xFF}, {0xBA, 0x98, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF}, {0x00, 0x00, 0x00, 0xFF},
{0x00, 0x00, 0x00, 0xFF}, {0xE0, 0x00, 0xE0, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
i_pic->setBlackWhite(*(JUtility::TColor*)&black_color[i_itemType],
*(JUtility::TColor*)&white_color[i_itemType]);
i_pic->setCornerColor(*(JUtility::TColor*)&vertex_color_lu[i_itemType],
*(JUtility::TColor*)&vertex_color_ru[i_itemType],
*(JUtility::TColor*)&vertex_color_ld[i_itemType],
*(JUtility::TColor*)&vertex_color_rd[i_itemType]);
}
/* 8021D644-8021D764 217F84 0120+00 2/2 0/0 0/0 .text set2ndColor__13dMeter2Info_cFUcP10J2DPicture
*/
void dMeter2Info_c::set2ndColor(u8 i_itemType, J2DPicture* i_pic) {
static GXColor const black_color[37] = {
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x86, 0xD4, 0x00}, {0xE6, 0x1E, 0xFF, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00},
};
static GXColor const white_color[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xF5, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xC8, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_lu[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0x00, 0x00, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_ru[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0x00, 0xFF, 0xFF, 0x58}, {0xFF, 0xFF, 0xFF, 0x58}, {0xFF, 0xFF, 0xFF, 0x58},
{0xFF, 0xFF, 0xFF, 0x58}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_ld[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
static GXColor const vertex_color_rd[37] = {
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xCD, 0xFF, 0xFF, 0xFF}, {0xCD, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
};
i_pic->setBlackWhite(*(JUtility::TColor*)&black_color[i_itemType],
*(JUtility::TColor*)&white_color[i_itemType]);
i_pic->setCornerColor(*(JUtility::TColor*)&vertex_color_lu[i_itemType],
*(JUtility::TColor*)&vertex_color_ru[i_itemType],
*(JUtility::TColor*)&vertex_color_ld[i_itemType],
*(JUtility::TColor*)&vertex_color_rd[i_itemType]);
}
/* 8021D764-8021DB64 2180A4 0400+00 2/2 0/0 0/0 .text set3rdColor__13dMeter2Info_cFUcP10J2DPicture
*/
void dMeter2Info_c::set3rdColor(u8 i_itemType, J2DPicture* i_pic) {
if (i_itemType == ItemType_POU_FIRE) {
i_pic->setBlackWhite(JUtility::TColor(0, 0, 0, 0),
JUtility::TColor(0xff, 0xff, 0xff, 0xff));
i_pic->setCornerColor(
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff),
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff));
} else if (i_itemType == ItemType_FAIRY || i_itemType == ItemType_BEE_CHILD || i_itemType == ItemType_WORM) {
i_pic->setBlackWhite(JUtility::TColor(0, 0, 0, 0),
JUtility::TColor(0xff, 0xff, 0xff, 0xff));
i_pic->setCornerColor(
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff),
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xcd, 0xff, 0xff, 0xff));
} else {
i_pic->setBlackWhite(JUtility::TColor(0, 0, 0, 0),
JUtility::TColor(0xff, 0xff, 0xff, 0xff));
i_pic->setCornerColor(
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff),
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff));
}
}
/* 8021DB64-8021DCC4 2184A4 0160+00 2/2 0/0 0/0 .text set4thColor__13dMeter2Info_cFUcP10J2DPicture
*/
void dMeter2Info_c::set4thColor(u8 i_itemType, J2DPicture* i_pic) {
i_pic->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0xff, 0xff, 0xff, 0xff));
i_pic->setCornerColor(
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff),
JUtility::TColor(0xff, 0xff, 0xff, 0xff), JUtility::TColor(0xff, 0xff, 0xff, 0xff));
}
/* 8021DCC4-8021DCE0 218604 001C+00 0/0 2/2 0/0 .text setHotSpringTimer__13dMeter2Info_cFUc */
void dMeter2Info_c::setHotSpringTimer(u8 i_slotNo) {
int i_bottleIdx = i_slotNo - 11;
JUT_ASSERT(2699, i_bottleIdx >= 0 && i_bottleIdx <= dSv_player_item_c::BOTTLE_MAX);
mHotSpringTimer[i_bottleIdx] = 900;
}
/* 8021DCE0-8021DD5C 218620 007C+00 0/0 1/1 0/0 .text decHotSpringTimer__13dMeter2Info_cFv */
void dMeter2Info_c::decHotSpringTimer() {
for (int i = 0; i < 4; i++) {
if (mHotSpringTimer[i] != 0) {
mHotSpringTimer[i]--;
if (mHotSpringTimer[i] == 0) {
changeWater(i + SLOT_11);
}
}
}
}
/* 8021DD5C-8021DE18 21869C 00BC+00 2/2 1/1 0/0 .text changeWater__13dMeter2Info_cFUc */
void dMeter2Info_c::changeWater(u8 i_slotNo) {
int i_bottleIdx = i_slotNo - SLOT_11;
JUT_ASSERT(2739, i_bottleIdx >= 0 && i_bottleIdx <= dSv_player_item_c::BOTTLE_MAX);
mHotSpringTimer[i_bottleIdx] = 0;
if (dComIfGs_getItem(i_slotNo, true) == fpcNm_ITEM_HOT_SPRING) {
dComIfGs_setItem(i_slotNo, fpcNm_ITEM_WATER_BOTTLE);
for (int i = 0; i < 3; i++) {
if (i_slotNo == dComIfGs_getSelectItemIndex(i)) {
dComIfGp_setSelectItem(i);
}
}
}
}
/* 8021DE18-8021E0C4 218758 02AC+00 0/0 3/3 3/3 .text setMiniGameItem__13dMeter2Info_cFUc
*/
void dMeter2Info_c::setMiniGameItem(u8 i_minigameFlag) {
bool item_set = false;
if (mMiniGameItemSetFlag != 0) {
item_set = true;
}
if (mRentalBombBagIdx == 0xFF) {
u8 setRentBagIdx = false;
for (int bagIdx = 0; bagIdx < 3; bagIdx++) {
if (!setRentBagIdx && dComIfGs_getItem((u8)(bagIdx + SLOT_15), true) == fpcNm_ITEM_NONE) {
mRentalBombBagIdx = bagIdx;
setRentBagIdx = true;
}
}
if (!setRentBagIdx) {
mRentalBombBagIdx = 2;
}
}
mMiniGameItemSetFlag = i_minigameFlag;
for (int i = 0; i < 2; i++) {
mSaveMixItemIdx[i] = dComIfGs_getMixItemIndex(i);
mSaveSelItemIdx[i] = dComIfGs_getSelectItemIndex(i);
}
mSaveBombNum = dComIfGs_getBombNum(mRentalBombBagIdx);
mSaveArrowNum = dComIfGs_getArrowNum();
mSaveBowItem = dComIfGs_getItem(SLOT_4, false);
mSaveBombItem = dComIfGs_getItem((u8)(mRentalBombBagIdx + SLOT_15), false);
if (item_set) {
for (int i = 0; i < 2; i++) {
dComIfGs_setMixItemIndex(i, mSaveMixItemIdxMG[i]);
dComIfGs_setSelectItemIndex(i, mSaveSelItemIdxMG[i]);
}
dComIfGs_setItem(SLOT_4, mSaveBowItemMG);
dComIfGp_setItem(SLOT_4, mSaveBowItemMG);
dComIfGs_setItem((u8)(mRentalBombBagIdx + SLOT_15), mSaveBombItemMG);
dComIfGp_setItem((u8)(mRentalBombBagIdx + SLOT_15), mSaveBombItemMG);
dComIfGs_setBombNum(mRentalBombBagIdx, mSaveBombNumMG);
dComIfGs_setArrowNum(mSaveArrowNumMG);
}
dComIfGs_setItem((u8)(mRentalBombBagIdx + SLOT_15), fpcNm_ITEM_NORMAL_BOMB);
dComIfGp_setItem((u8)(mRentalBombBagIdx + SLOT_15), fpcNm_ITEM_NORMAL_BOMB);
if (mMiniGameItemSetFlag != 3) {
dComIfGs_setItem(SLOT_4, fpcNm_ITEM_BOW);
dComIfGp_setItem(SLOT_4, fpcNm_ITEM_BOW);
dComIfGs_setMixItemIndex(SELECT_ITEM_Y, 0xFF);
dComIfGs_setSelectItemIndex(SELECT_ITEM_Y, 0xFF);
dComIfGs_setMixItemIndex(SELECT_ITEM_X, SLOT_4);
dComIfGs_setSelectItemIndex(SELECT_ITEM_X, (u8)(mRentalBombBagIdx + SLOT_15));
}
if (!item_set) {
dComIfGs_setBombNum(mRentalBombBagIdx, 30);
dComIfGs_setArrowNum(dComIfGs_getArrowMax());
}
}
/* 8021E0C4-8021E268 218A04 01A4+00 0/0 3/3 4/4 .text resetMiniGameItem__13dMeter2Info_cFb */
void dMeter2Info_c::resetMiniGameItem(bool i_saveItem) {
if (mMiniGameItemSetFlag != 0) {
if (i_saveItem) {
for (int i = 0; i < 2; i++) {
mSaveMixItemIdxMG[i] = dComIfGs_getMixItemIndex(i);
mSaveSelItemIdxMG[i] = dComIfGs_getSelectItemIndex(i);
}
mSaveBombNumMG = dComIfGs_getBombNum(mRentalBombBagIdx);
mSaveArrowNumMG = dComIfGs_getArrowNum();
mSaveBowItemMG = dComIfGs_getItem(SLOT_4, false);
mSaveBombItemMG = dComIfGs_getItem((u8)(mRentalBombBagIdx + SLOT_15), false);
}
for (int i = 0; i < 2; i++) {
dComIfGs_setMixItemIndex(i, mSaveMixItemIdx[i]);
dComIfGs_setSelectItemIndex(i, mSaveSelItemIdx[i]);
}
dComIfGs_setItem(SLOT_4, mSaveBowItem);
dComIfGp_setItem(SLOT_4, mSaveBowItem);
dComIfGs_setItem((u8)(mRentalBombBagIdx + SLOT_15), mSaveBombItem);
dComIfGp_setItem((u8)(mRentalBombBagIdx + SLOT_15), mSaveBombItem);
dComIfGs_setBombNum(mRentalBombBagIdx, mSaveBombNum);
dComIfGs_setArrowNum(mSaveArrowNum);
if (!i_saveItem) {
mMiniGameItemSetFlag = 0;
mRentalBombBagIdx = 0xFF;
}
}
}
/* 8021E268-8021E290 218BA8 0028+00 0/0 0/0 5/5 .text setMiniGameCount__13dMeter2Info_cFSc */
void dMeter2Info_c::setMiniGameCount(s8 i_count) {
if (i_count < -99) {
i_count = -99;
}
if (i_count > 99) {
i_count = 99;
}
mMiniGameCount = i_count;
}
/* 8021E290-8021E2B4 218BD0 0024+00 1/1 2/2 0/0 .text setSaveStageName__13dMeter2Info_cFPCc */
void dMeter2Info_c::setSaveStageName(const char* i_stageName) {
strcpy(mSaveStageName, i_stageName);
}
/* 8021E2B4-8021E2C8 218BF4 0014+00 0/0 0/0 1/1 .text dMeter2Info_getNowLifeGauge__Fv */
s16 dMeter2Info_getNowLifeGauge() {
return dMeter2Info_getMeterClass()->getNowLifeGauge();
}
/* 8021E2C8-8021E2DC 218C08 0014+00 0/0 11/11 3/3 .text dMeter2Info_getNumberTextureName__Fi */
const char* dMeter2Info_getNumberTextureName(int i_num) {
static const char* tex_name[10] = {
"im_font_number_32_32_ganshinkyo_0_02.bti", "im_font_number_32_32_ganshinkyo_1_02.bti",
"im_font_number_32_32_ganshinkyo_2_02.bti", "im_font_number_32_32_ganshinkyo_3_02.bti",
"im_font_number_32_32_ganshinkyo_4_03.bti", "im_font_number_32_32_ganshinkyo_5_02.bti",
"im_font_number_32_32_ganshinkyo_6_02.bti", "im_font_number_32_32_ganshinkyo_7_02.bti",
"im_font_number_32_32_ganshinkyo_8_02.bti", "im_font_number_32_32_ganshinkyo_9_02.bti",
};
JUT_ASSERT(2986, i_num >= 0 && i_num <= 9);
return tex_name[i_num];
}
const char* dMeter2Info_getPlusTextureName() {
static const char* tex_name = "im_plus_metal_24x24_00.bti";
return tex_name;
}
/* 8021E308-8021E4B0 218C48 01A8+00 0/0 3/3 0/0 .text dMeter2Info_getPixel__FffffffPC7ResTIMG */
bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX,
f32 i_sizeY, ResTIMG const* i_resTimg) {
f32 temp_f31 = i_posX - param_2;
f32 temp_f30 = i_posY - param_3;
if (temp_f31 < 0.0f || temp_f31 >= (u32)i_sizeX || temp_f30 < 0.0f || temp_f30 >= (u32)i_sizeY) {
return 0;
}
JUT_ASSERT(3060, i_resTimg->format == GX_TF_C8 && i_resTimg->indexTexture && i_resTimg->colorFormat == GX_TL_RGB5A3);
u32 timg_width = i_resTimg->width;
u32 s = (temp_f31 * (f32)timg_width) / i_sizeX;
u32 t = (temp_f30 * (f32)i_resTimg->height) / i_sizeY;
JUT_ASSERT(3065, s < i_resTimg->width && t < i_resTimg->height);
u32 sp1C = (t & ~3) * ((timg_width + 7) & ~7) + ((s & ~7) * 4 + (s & 7)) + (t & 3) * 8;
u8* pixel = (u8*)((u32)i_resTimg + (i_resTimg->imageOffset + sp1C));
JUT_ASSERT(3074, *pixel < i_resTimg->numColors);
u16* palette_p = (u16*)((u32)i_resTimg + i_resTimg->paletteOffset);
u16 var_r24 = (u16)palette_p[*pixel];
if (var_r24 & 0x8000) {
return 1;
}
return var_r24 & 0x7000;
}
/* 8021E4B0-8021E530 218DF0 0080+00 0/0 2/2 1/1 .text dMeter2Info_setCloth__FUcb */
void dMeter2Info_setCloth(u8 i_clothId, bool i_offItemBit) {
switch (i_clothId) {
case fpcNm_ITEM_WEAR_CASUAL:
case fpcNm_ITEM_WEAR_KOKIRI:
case fpcNm_ITEM_ARMOR:
case fpcNm_ITEM_WEAR_ZORA:
break;
default:
OS_REPORT("cloth item id error!! ==> %d\n", i_clothId);
i_clothId = fpcNm_ITEM_WEAR_CASUAL;
i_offItemBit = false;
}
if (i_offItemBit && dComIfGs_getSelectEquipClothes() != fpcNm_ITEM_NONE) {
dComIfGs_offItemFirstBit(dComIfGs_getSelectEquipClothes());
}
dComIfGs_setSelectEquipClothes(i_clothId);
dComIfGp_setSelectEquipClothes(i_clothId);
}
/* 8021E530-8021E5D4 218E70 00A4+00 0/0 3/3 3/3 .text dMeter2Info_setSword__FUcb */
void dMeter2Info_setSword(u8 i_itemId, bool i_offItemBit) {
switch (i_itemId) {
case fpcNm_ITEM_NONE:
case fpcNm_ITEM_WOOD_STICK:
case fpcNm_ITEM_SWORD:
case fpcNm_ITEM_MASTER_SWORD:
case fpcNm_ITEM_LIGHT_SWORD:
break;
default:
OS_REPORT("sword item id error!! ==> %d\n", i_itemId);
i_itemId = fpcNm_ITEM_NONE;
i_offItemBit = false;
}
if (i_offItemBit && dComIfGs_getSelectEquipSword() != 0xFF) {
dComIfGs_offItemFirstBit(dComIfGs_getSelectEquipSword());
}
dComIfGs_setSelectEquipSword(i_itemId);
dComIfGp_setSelectEquipSword(i_itemId);
}
/* 8021E5D4-8021E660 218F14 008C+00 0/0 3/3 0/0 .text dMeter2Info_setShield__FUcb */
void dMeter2Info_setShield(u8 i_itemId, bool i_offItemBit) {
switch (i_itemId) {
case fpcNm_ITEM_NONE:
case fpcNm_ITEM_WOOD_SHIELD:
case fpcNm_ITEM_SHIELD:
case fpcNm_ITEM_HYLIA_SHIELD:
break;
default:
OS_REPORT("shield item id error!! ==> %d\n", i_itemId);
i_itemId = fpcNm_ITEM_NONE;
i_offItemBit = false;
}
if (i_offItemBit && dComIfGs_getSelectEquipShield() != 0xFF) {
dComIfGs_offItemFirstBit(dComIfGs_getSelectEquipShield());
}
dComIfGs_setSelectEquipShield(i_itemId);
dComIfGp_setSelectEquipShield(i_itemId);
}
/* 8021E660-8021E668 218FA0 0008+00 0/0 1/1 0/0 .text dMeter2Info_is2DActiveTouchArea__Fv
*/
bool dMeter2Info_is2DActiveTouchArea() {
return false;
}
/* 8021E668-8021E688 218FA8 0020+00 0/0 1/1 0/0 .text dMeter2Info_isMapOpenCheck__Fv */
bool dMeter2Info_isMapOpenCheck() {
return dMeter2Info_getMeterMapClass()->isMapOpenCheck();
}
/* 8021E688-8021E6E4 218FC8 005C+00 0/0 2/2 0/0 .text dMeter2Info_isItemOpenCheck__Fv */
bool dMeter2Info_isItemOpenCheck() {
if (daPy_getPlayerActorClass()->checkCanoeSlider() || daPy_getPlayerActorClass()->getSumouMode() || dMeter2Info_isSub2DStatus(1)) {
return false;
}
return true;
}
/* 803BF81C-803BFA1C 01C93C 0200+00 3/3 6/6 0/0 .data letter_data__12dMenu_Letter */
dMenu_LetterData dMenu_Letter::letter_data[64] = {
{0x09C5, 0x0A29, 0x0A8D, 0x010B}, {0x09C6, 0x0A2A, 0x0A8E, 0x0237},
{0x09C7, 0x0A2B, 0x0A8F, 0x0236}, {0x09C8, 0x0A2C, 0x0A90, 0x0037},
{0x09C9, 0x0A2D, 0x0A91, 0x0039}, {0x09CA, 0x0A2E, 0x0A92, 0x0067},
{0x09CB, 0x0A2F, 0x0A93, 0x0109}, {0x09CC, 0x0A30, 0x0A94, 0x004D},
{0x09CD, 0x0A31, 0x0A95, 0x0119}, {0x09CE, 0x0A32, 0x0A96, 0x0108},
{0x09CF, 0x0A33, 0x0A97, 0x010C}, {0x09D4, 0x0A38, 0x0A9E, 0x010C},
{0x09D1, 0x0A35, 0x0A9B, 0x00B6}, {0x09D2, 0x0A36, 0x0A9C, 0x0067},
{0x09D5, 0x0A39, 0x0AA0, 0x031C}, {0x09D6, 0x0A3A, 0x0AA1, 0x010A},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
{0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000},
};
/* 8021E6E4-8021E754 219024 0070+00 1/1 2/2 0/0 .text dMeter2Info_getRecieveLetterNum__Fv
*/
u8 dMeter2Info_getRecieveLetterNum() {
u8 letterNum = 0;
for (int i = 0; i < 0x40; i++) {
if (dComIfGs_isLetterGetFlag(i)) {
letterNum++;
}
}
return letterNum;
}
/* 8021E754-8021E804 219094 00B0+00 0/0 4/4 2/2 .text dMeter2Info_getNewLetterNum__Fv */
u8 dMeter2Info_getNewLetterNum() {
u8 letterNum = 0;
for (int i = 0; i < 0x40; i++) {
if (!dComIfGs_isLetterGetFlag(i) && dMenu_Letter::getLetterName(i) != 0) {
u16 letterEvent = dMenu_Letter::getLetterEventFlag(i);
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[letterEvent])) {
letterNum++;
}
}
}
return letterNum;
}
/* 8021E804-8021E8DC 219144 00D8+00 0/0 1/1 0/0 .text dMeter2Info_setNewLetterSender__Fv
*/
int dMeter2Info_setNewLetterSender() {
u8 check = 0;
for (int i = 0; i < 0x40; i++) {
if (!dComIfGs_isLetterGetFlag(i) && dMenu_Letter::getLetterName(i) != 0) {
u16 letterEvent = dMenu_Letter::getLetterEventFlag(i);
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[letterEvent])) {
if (check == 0) {
u16 letterName = dMenu_Letter::getLetterName(i);
dMsgObject_c::setLetterNameID(letterName);
} else {
dMsgObject_c::setLetterNameID(0);
return 0;
}
check++;
}
}
}
return 0;
}
/* 8021E8DC-8021E9D0 21921C 00F4+00 0/0 1/1 0/0 .text dMeter2Info_recieveLetter__Fv */
int dMeter2Info_recieveLetter() {
int rv = FALSE;
u8 letterNum = dMeter2Info_getRecieveLetterNum();
for (int i = 0; i < 64; i++) {
if (!dComIfGs_isLetterGetFlag(i) && dMenu_Letter::getLetterName(i) != 0) {
u16 eventFlag = dMenu_Letter::getLetterEventFlag(i);
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[eventFlag])) {
dComIfGs_onLetterGetFlag(i);
if (dComIfGs_getGetNumber(letterNum) == 0) {
dComIfGs_setGetNumber(letterNum, i + 1);
} else {
for (int j = 0; j < 0x40; j++) {
OS_REPORT("letter info =====> %d, %d\n", j, dComIfGs_getGetNumber(j) - 1);
}
JUT_ASSERT(3552, 0);
}
letterNum++;
rv = TRUE;
}
}
}
return rv;
}
/* 8021E9D0-8021E9D4 219310 0004+00 0/0 33/33 0/0 .text dMeter2Info_set2DVibration__Fv */
void dMeter2Info_set2DVibration() {}
/* 8021E9D4-8021E9D8 219314 0004+00 0/0 12/12 0/0 .text dMeter2Info_set2DVibrationM__Fv
*/
void dMeter2Info_set2DVibrationM() {}