tp/src/d/meter/d_meter2_info.cpp

1594 lines
58 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.

//
// Generated By: dol2asm
// Translation Unit: d/meter/d_meter2_info
//
#include "d/meter/d_meter2_info.h"
#include "d/com/d_com_inf_game.h"
#include "d/msg/d_msg_object.h"
#include "d/save/d_save.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/a/d_a_npc.h"
#include "d/d_item_data.h"
//
// Forward References:
//
extern "C" void __ct__13dMeter2Info_cFv();
extern "C" void __dt__13dMeter2Info_cFv();
extern "C" void init__13dMeter2Info_cFv();
extern "C" void setFloatingMessage__13dMeter2Info_cFUssb();
extern "C" void setFloatingFlow__13dMeter2Info_cFUssb();
extern "C" void isFloatingMessageVisible__13dMeter2Info_cFv();
extern "C" void decFloatingMessageTimer__13dMeter2Info_cFv();
extern "C" void resetFloatingMessage__13dMeter2Info_cFv();
extern "C" void decMsgKeyWaitTimer__13dMeter2Info_cFv();
extern "C" void getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c();
extern "C" void getStringKana__13dMeter2Info_cFUlPcP14JMSMesgEntry_c();
extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c();
extern "C" void getStringLength__13dMeter2Info_cFP10J2DTextBoxPc();
extern "C" void getFont__10J2DTextBoxCFv();
extern "C" void getStringLength__13dMeter2Info_cFP7JUTFontffPc();
extern "C" void onDirectUseItem__13dMeter2Info_cFi();
extern "C" void isDirectUseItem__13dMeter2Info_cFi();
extern "C" void setMeterString__13dMeter2Info_cFl();
extern "C" void resetWarpStatus__13dMeter2Info_cFv();
extern "C" void warpInProc__13dMeter2Info_cFv();
extern "C" void warpOutProc__13dMeter2Info_cFv();
extern "C" void resetMeterString__13dMeter2Info_cFv();
extern "C" void setWarpInfo__13dMeter2Info_cFPCcRC4cXyzsUcUcUc();
extern "C" void getItemType__13dMeter2Info_cFUc();
extern "C" void
readItemTexture__13dMeter2Info_cFUcPvP10J2DPicturePvP10J2DPicturePvP10J2DPicturePvP10J2DPicturei();
extern "C" void
setItemColor__13dMeter2Info_cFUcP10J2DPictureP10J2DPictureP10J2DPictureP10J2DPicture();
extern "C" void get2ndTexture__13dMeter2Info_cFUc();
extern "C" void get3rdTexture__13dMeter2Info_cFUc();
extern "C" void get4thTexture__13dMeter2Info_cFUc();
extern "C" void set1stColor__13dMeter2Info_cFUcP10J2DPicture();
extern "C" void set2ndColor__13dMeter2Info_cFUcP10J2DPicture();
extern "C" void set3rdColor__13dMeter2Info_cFUcP10J2DPicture();
extern "C" void set4thColor__13dMeter2Info_cFUcP10J2DPicture();
extern "C" void setHotSpringTimer__13dMeter2Info_cFUc();
extern "C" void decHotSpringTimer__13dMeter2Info_cFv();
extern "C" void changeWater__13dMeter2Info_cFUc();
extern "C" void setMiniGameItem__13dMeter2Info_cFUc();
extern "C" void resetMiniGameItem__13dMeter2Info_cFb();
extern "C" void setMiniGameCount__13dMeter2Info_cFSc();
extern "C" void setSaveStageName__13dMeter2Info_cFPCc();
extern "C" void dMeter2Info_getNowLifeGauge__Fv();
extern "C" void dMeter2Info_getNumberTextureName__Fi();
extern "C" void dMeter2Info_getPlusTextureName__Fv();
extern "C" void dMeter2Info_getPixel__FffffffPC7ResTIMG();
extern "C" void dMeter2Info_setCloth__FUcb();
extern "C" void dMeter2Info_setSword__FUcb();
extern "C" void dMeter2Info_setShield__FUcb();
extern "C" bool dMeter2Info_is2DActiveTouchArea__Fv();
extern "C" void dMeter2Info_isMapOpenCheck__Fv();
extern "C" void dMeter2Info_isItemOpenCheck__Fv();
extern "C" void dMeter2Info_getRecieveLetterNum__Fv();
extern "C" void dMeter2Info_getNewLetterNum__Fv();
extern "C" void dMeter2Info_setNewLetterSender__Fv();
extern "C" void dMeter2Info_recieveLetter__Fv();
extern "C" void dMeter2Info_set2DVibration__Fv();
extern "C" void dMeter2Info_set2DVibrationM__Fv();
extern "C" void __sinit_d_meter2_info_cpp();
extern "C" extern char const* const d_meter_d_meter2_info__stringBase0;
extern "C" u8 letter_data__12dMenu_Letter[512];
//
// External References:
//
extern "C" void dComIfGs_setSelectItemIndex__FiUc();
extern "C" void dComIfGs_setMixItemIndex__FiUc();
extern "C" void dComIfGs_getMixItemIndex__Fi();
extern "C" void dComIfGp_setSelectItem__Fi();
extern "C" void dComIfGs_setSelectEquipClothes__FUc();
extern "C" void dComIfGs_setSelectEquipSword__FUc();
extern "C" void dComIfGs_setSelectEquipShield__FUc();
extern "C" void dComIfGs_setWarpItemData__FPCc4cXyzsScUcUc();
extern "C" void dComIfGs_setWarpMarkFlag__FUc();
extern "C" void getSelectItemIndex__21dSv_player_status_a_cCFi();
extern "C" void setItem__17dSv_player_item_cFiUc();
extern "C" void getItem__17dSv_player_item_cCFib();
extern "C" void offFirstBit__21dSv_player_get_item_cFUc();
extern "C" void setBombNum__24dSv_player_item_record_cFUcUc();
extern "C" void getBombNum__24dSv_player_item_record_cCFUc();
extern "C" void isLightDropGetFlag__16dSv_light_drop_cCFUc();
extern "C" void onLetterGetFlag__17dSv_letter_info_cFi();
extern "C" void isLetterGetFlag__17dSv_letter_info_cCFi();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz();
extern "C" void isMapOpenCheck__11dMeterMap_cFv();
extern "C" void setLetterNameID__12dMsgObject_cFUs();
extern "C" void __ct__10dMsgFlow_cFv();
extern "C" void __dt__10dMsgFlow_cFv();
extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
extern "C" void getMsgNo__10dMsgFlow_cFv();
extern "C" void __ct__5csXyzFsss();
extern "C" void __dl__FPv();
extern "C" void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive();
extern "C" void readIdxResource__10JKRArchiveFPvUlUl();
extern "C" void __register_global_object();
extern "C" void __cvt_fp2unsigned();
extern "C" void _savegpr_19();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_19();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" void* item_resource__10dItem_data[1530];
//
// Declarations:
//
/* ############################################################################################## */
/* 80399168-80399168 0257C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80399168 = "";
SECTION_DEAD static char const* const stringBase_80399169 = "zel_00.bmg";
#pragma pop
/* 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() {}
/* ############################################################################################## */
/* 80454998-8045499C 002F98 0004+00 4/4 0/0 0/0 .sdata2 @3916 */
SECTION_SDATA2 static u8 lit_3916[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 8045499C-804549A0 002F9C 0004+00 1/1 0/0 0/0 .sdata2 @3917 */
SECTION_SDATA2 static f32 lit_3917 = 1.0f;
/* 804549A0-804549A4 002FA0 0004+00 1/1 0/0 0/0 .sdata2 @3918 */
SECTION_SDATA2 static f32 lit_3918 = 30.0f;
/* 804549A4-804549A8 002FA4 0004+00 1/1 0/0 0/0 .sdata2 @3919 */
SECTION_SDATA2 static f32 lit_3919 = 304.0f;
/* 804549A8-804549AC 002FA8 0004+00 1/1 0/0 0/0 .sdata2 @3920 */
SECTION_SDATA2 static f32 lit_3920 = 224.0f;
/* 804549AC-804549B0 002FAC 0004+00 1/1 0/0 0/0 .sdata2 @3921 */
SECTION_SDATA2 static f32 lit_3921 = 608.0f;
/* 804549B0-804549B8 002FB0 0004+04 1/1 0/0 0/0 .sdata2 @3922 */
SECTION_SDATA2 static f32 lit_3922[1 + 1 /* padding */] = {
448.0f,
/* padding */
0.0f,
};
/* 8021BE68-8021C0E0 2167A8 0278+00 1/1 1/1 0/0 .text init__13dMeter2Info_cFv */
// just some float issues
#ifdef NONMATCHING
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;
}
unk8 = 0;
mSub2DStatus = 0;
mHorseLifeCount = 0;
mMsgKeyWaitTimer = 0;
unk152 = 0;
mWindowStatus = 0;
unk186 = 0;
unk84 = FLOAT_LABEL(lit_3916);
unk88 = FLOAT_LABEL(lit_3916);
unk92 = FLOAT_LABEL(lit_3916);
unk96 = 1.0f;
unk100 = 30.0f;
unk104 = 304.0f;
unk108 = 224.0f;
m2DWidth = 608.0f;
m2DHeight = 448.0f;
m2DPosH = FLOAT_LABEL(lit_3916);
m2DPosV = FLOAT_LABEL(lit_3916);
unk128 = FLOAT_LABEL(lit_3916);
mTimeMs = 0;
mMsgTimeMs = 0;
mNowCount = 0;
mMaxCount = 0;
mShopTalkFlag = false;
mMapStatus = 0;
mMapKeyDirection = 0;
mBlinkButton = 0;
mOilGaugeBackUp = 0;
mUseButton = -1;
mDirectUseItem = 0;
mGameStatus = 0;
mTouchKeyCheck = 0;
mWindowAccept = -1;
mMeterString = 0;
mFloatingFlowID = 0;
mFloatingMessageID = 0;
mFloatingMessageTimer = 0;
mFloatingMessageWakuVisible = 0;
resetWarpStatus();
mPauseStatus = 0;
mGameOverType = 0;
mInsectSelectType = 0xFF;
cXyz tmp(FLOAT_LABEL(lit_3916), FLOAT_LABEL(lit_3916), FLOAT_LABEL(lit_3916));
setWarpInfo("", tmp, 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("");
mCollectCursorPosX = 0;
mCollectCursorPosY = 0;
mTableMapRegionNo = 0xFF;
mGoldWolfMapType = 0;
unk231 = 0;
mItemExplainWindowStatus = 0;
mLifeGaugeSE = 0;
mMapDrugFlag = 0;
for (int i = 0; i < 3; i++) {
if (dComIfGs_isLightDropGetFlag(i)) {
mLightDropGetFlag[i] = 0xFF;
} else {
mLightDropGetFlag[i] = 0;
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::init() {
nofralloc
#include "asm/d/meter/d_meter2_info/init__13dMeter2Info_cFv.s"
}
#pragma pop
#endif
/* 8021C0E0-8021C11C 216A20 003C+00 0/0 1/1 2/2 .text setFloatingMessage__13dMeter2Info_cFUssb */
int dMeter2Info_c::setFloatingMessage(u16 msgID, s16 msgTimer, bool wakuVisible) {
if (i_dComIfGp_event_runCheck()) {
return 0;
}
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = msgID;
mFloatingMessageTimer = msgTimer;
mFloatingMessageWakuVisible = wakuVisible;
return 1;
}
/* 8021C11C-8021C1DC 216A5C 00C0+00 0/0 0/0 1/1 .text setFloatingFlow__13dMeter2Info_cFUssb */
int dMeter2Info_c::setFloatingFlow(u16 flowID, s16 msgTimer, bool wakuVisible) {
if (i_dComIfGp_event_runCheck()) {
return 0;
}
mFloatingFlowID = flowID;
dMsgFlow_c flow;
flow.init(NULL, flowID, 0, NULL);
flow.doFlow(NULL, NULL, 0);
mFloatingFlowID = 0xFFFF;
mFloatingMessageID = flow.getMsgNo();
mFloatingMessageTimer = msgTimer;
mFloatingMessageWakuVisible = wakuVisible;
return 1;
}
/* 8021C1DC-8021C1F0 216B1C 0014+00 0/0 4/4 0/0 .text isFloatingMessageVisible__13dMeter2Info_cFv
*/
int dMeter2Info_c::isFloatingMessageVisible() {
return mFloatingMessageTimer > 0;
}
/* 8021C1F0-8021C218 216B30 0028+00 0/0 1/1 0/0 .text decFloatingMessageTimer__13dMeter2Info_cFv
*/
int 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 = -1;
mFloatingMessageID = -1;
mFloatingMessageTimer = 0;
mFloatingMessageWakuVisible = 0;
}
/* 8021C238-8021C250 216B78 0018+00 0/0 2/2 0/0 .text decMsgKeyWaitTimer__13dMeter2Info_cFv */
void dMeter2Info_c::decMsgKeyWaitTimer() {
if (mMsgKeyWaitTimer <= 0) {
return;
}
mMsgKeyWaitTimer--;
}
/* 8021C250-8021C370 216B90 0120+00 0/0 16/16 0/0 .text
* getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
// missing branch
#ifdef NONMATCHING
void dMeter2Info_c::getString(u32 stringID, char* outStr, JMSMesgEntry_c* p_msgEntry) {
strcpy(outStr, "");
u8* msgRes = (u8*)mMsgResource;
if (msgRes == NULL) {
JKRArchive* msgDtArc = dComIfGp_getMsgDtArchive(0);
msgRes = (u8*)JKRArchive::getGlbResource('ROOT', "zel_00.bmg", msgDtArc);
if (msgRes == NULL) {
return;
}
}
u8* inf = msgRes + 0x20;
u32 stringOffset = (*(u32*)(msgRes + 0x24));
u8* strPtr = inf + stringOffset + 8;
u16 i;
for (i = 0; i < *(u16*)(inf + 8); i++) {
u8* entry = (inf + (i * 0x14));
if (stringID == *(u16*)(entry + 0x14)) {
strcpy(outStr, (char*)(strPtr + *(u32*)(entry + 0x10)));
if (p_msgEntry == NULL) {
return;
}
memcpy(p_msgEntry, entry + 0x10, 0x14);
return;
}
}
if (mMsgResource == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::getString(u32 stringID, char* outStr, JMSMesgEntry_c* p_msgEntry) {
nofralloc
#include "asm/d/meter/d_meter2_info/getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c.s"
}
#pragma pop
#endif
/* 8021C370-8021C544 216CB0 01D4+00 0/0 1/1 0/0 .text
* getStringKana__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::getStringKana(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
nofralloc
#include "asm/d/meter/d_meter2_info/getStringKana__13dMeter2Info_cFUlPcP14JMSMesgEntry_c.s"
}
#pragma pop
/* 8021C544-8021C6A4 216E84 0160+00 0/0 32/32 1/1 .text
* getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::getStringKanji(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
nofralloc
#include "asm/d/meter/d_meter2_info/getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c.s"
}
#pragma pop
/* ############################################################################################## */
/* 804549B8-804549C0 002FB8 0008+00 2/2 0/0 0/0 .sdata2 @4108 */
SECTION_SDATA2 static f64 lit_4108 = 4503601774854144.0 /* cast s32 to float */;
/* 8021C6A4-8021C7F4 216FE4 0150+00 0/0 1/1 0/0 .text
* getStringLength__13dMeter2Info_cFP10J2DTextBoxPc */
#ifdef NONMATCHING
f32 dMeter2Info_c::getStringLength(J2DTextBox* p_textBox, char* str) {
f32 strWidth = 0.0f;
f32 strLength = strWidth;
JUTFont* font = p_textBox->getFont();
f32 charSpace = p_textBox->getCharSpace();
J2DTextBox::TFontSize fontSize;
p_textBox->getFontSize(fontSize);
for (; *str != 0; str++) {
if (*str == '\n') {
if (strLength < strWidth) {
strLength = strWidth;
}
strWidth = 0.0f;
} else {
strWidth += charSpace + (fontSize.mSizeX * ((f32)font->getWidth(*str) / (f32)font->getCellWidth()));
}
}
if (strLength < strWidth) {
strLength = strWidth;
}
return strLength;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dMeter2Info_c::getStringLength(J2DTextBox* param_0, char* param_1) {
nofralloc
#include "asm/d/meter/d_meter2_info/getStringLength__13dMeter2Info_cFP10J2DTextBoxPc.s"
}
#pragma pop
#endif
/* 8021C7F4-8021C7FC 217134 0008+00 0/0 1/0 0/0 .text getFont__10J2DTextBoxCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JUTFont* J2DTextBox::getFont() const {
nofralloc
#include "asm/d/meter/d_meter2_info/getFont__10J2DTextBoxCFv.s"
}
#pragma pop
/* 8021C7FC-8021C934 21713C 0138+00 0/0 3/3 0/0 .text
* getStringLength__13dMeter2Info_cFP7JUTFontffPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dMeter2Info_c::getStringLength(JUTFont* param_0, f32 param_1, f32 param_2,
char* param_3) {
nofralloc
#include "asm/d/meter/d_meter2_info/getStringLength__13dMeter2Info_cFP7JUTFontffPc.s"
}
#pragma pop
/* 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)) != 0;
}
/* 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 meterStr) {
if (mMeterString != 0) {
return 0;
}
if (meterStr == 0) {
return 0;
}
if (dMeter2Info_getMeterClass() != NULL &&
(dMeter2Info_getMeterClass()->getSubContents() == 0 ||
(dMeter2Info_getMeterClass()->getSubContents() == 5 && dMeter2Info_getMeterClass()->getSubContentsStringType() == 0))) {
mMeterString = meterStr;
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) != LV7_DUNGEON_EXIT) {
dComIfGs_setItem(SLOT_18, DUNGEON_EXIT);
}
}
/* 8021CA70-8021CC00 2173B0 0190+00 0/0 1/1 0/0 .text warpOutProc__13dMeter2Info_cFv */
void dMeter2Info_c::warpOutProc() {
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
s32 saveTbl = i_dStage_stagInfo_GetSaveTbl(stag_info);
dComIfGs_setLastWarpAcceptStage(saveTbl);
cXyz warpPos(dComIfGs_getRestartRoomPos());
csXyz warpAngle(0, dComIfGs_getRestartRoomAngleY(), 0);
s8 warpRoomNo = dComIfGs_getRestartRoomNo();
if (!strcmp(dComIfGp_getStartStageName(), "D_MN01")) {
s32 index = -1;
if (warpRoomNo == 0) {
index = 1;
} else if (warpRoomNo == 5) {
index = 2;
} else if (warpRoomNo == 6) {
index = 2;
} else if (warpRoomNo == 9) {
index = 4;
}
if (index != -1) {
daNpcF_getPlayerInfoFromPlayerList(index, warpRoomNo, warpPos, warpAngle);
}
} else if (!strcmp(dComIfGp_getStartStageName(), "D_MN07") && warpRoomNo == 0) {
daNpcF_getPlayerInfoFromPlayerList(5, warpRoomNo, warpPos, warpAngle);
}
dComIfGs_setWarpItemData(dComIfGp_getStartStageName(), warpPos, warpAngle.y, warpRoomNo, 0, 1);
dComIfGs_setItem(SLOT_18, 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 p5, u8 i_warpPlayerNo) {
strcpy(mWarpInfo.mStageName, i_stageName);
mWarpInfo.mPosition = i_position;
mWarpInfo.mAngle = i_angle;
mWarpInfo.mRoomNo = i_roomNo;
mWarpInfo.unk79 = p5;
mWarpInfo.mWarpPlayerNo = i_warpPlayerNo;
}
/* 8021CC80-8021CF08 2175C0 0288+00 2/2 0/0 0/0 .text getItemType__13dMeter2Info_cFUc */
// probably missing fallthrough cases
#ifdef NONMATCHING
u8 dMeter2Info_c::getItemType(u8 itemNo) {
switch (itemNo) {
case 1:
return 1;
case 2:
return 2;
case 3:
return 3;
case 4:
return 4;
case 5:
case 0xED:
return 5;
case 6:
return 6;
case 7:
return 7;
case 0x60:
return 8;
case 0x61:
case 0x69:
return 9;
case 0x62:
return 10;
case 0x63:
return 11;
case 0x64:
return 12;
case 0x65:
return 13;
case 0x66:
case 0x68:
case 0x9D:
return 14;
case 0x67:
return 15;
case 0x6B:
case 0x6D:
return 0x10;
// case 0x6E:
case 0x6F:
case 0x7D:
return 0x11;
case 0x7F:
return 0x12;
case 0x6A:
return 0x13;
case 0x78:
return 0x14;
case 0x79:
return 0x15;
case 0x7A:
return 0x16;
case 0x7B:
case 0x7E:
return 0x17;
case 0x7C:
return 0x18;
case 0x77:
return 0x19;
case 0x9F:
return 0x1A;
case 0xF2:
return 0x1B;
case 0x6C:
return 0x1C;
case 0x76:
case 0x9E:
return 0x1D;
case 0x70:
case 0x71:
case 0x72:
case 0x74:
return 0x1E;
case 0x73:
case 0x75:
return 0x1F;
case 0x59:
return 33;
case 0x5A:
return 34;
default:
return 0;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u8 dMeter2Info_c::getItemType(u8 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_info/getItemType__13dMeter2Info_cFUc.s"
}
#pragma pop
#endif
/* 8021CF08-8021D36C 217848 0464+00 0/0 9/9 0/0 .text
* readItemTexture__13dMeter2Info_cFUcPvP10J2DPicturePvP10J2DPicturePvP10J2DPicturePvP10J2DPicturei
*/
#ifdef NONMATCHING
int dMeter2Info_c::readItemTexture(u8 itemNo, void* param_1, J2DPicture* param_2, void* param_3,
J2DPicture* param_4, void* param_5, J2DPicture* param_6,
void* param_7, J2DPicture* param_8, int param_9) {
u8 itemType = getItemType(itemNo);
int ret = 0;
if (param_1 != NULL) {
if ((itemNo == KANTERA && dComIfGs_getOil() == 0) || itemNo == KANTERA2) {
dComIfGp_getItemIconArchive()->readIdxResource(param_1, 0xC00, 0x23);
} else if (itemNo == COPY_ROD && !daPy_getPlayerActorClass()->checkCopyRodTopUse() && param_9 == -1) {
dComIfGp_getItemIconArchive()->readIdxResource(param_1, 0xC00, 0x57);
} else if ((itemType == 0x1B || itemType == 0x1C || itemType == 0x1D || itemType == 0x1E) && param_5 == NULL) {
dComIfGp_getItemIconArchive()->readIdxResource(param_1, 0xC00, get2ndTexture(itemType));
} else if (param_9 >= 0) {
dComIfGp_getItemIconArchive()->readIdxResource(param_1, 0xC00, param_9);
} else {
dComIfGp_getItemIconArchive()->readIdxResource(param_1, 0xC00, dItem_data::getTexture(itemNo));
}
DCStoreRangeNoSync(param_1, 0xC00);
if (param_2 != NULL) {
if ((itemType == 0x1B || itemType == 0x1C || itemType == 0x1D || itemType == 0x1E) && param_5 == NULL) {
set2ndColor(itemType, param_2);
} else {
set1stColor(itemType, param_2);
}
param_2->changeTexture((ResTIMG*)param_1, 0);
}
ret = 1;
if (param_3 != NULL && get2ndTexture(itemType) > 0) {
if ((itemType == 0x1B || itemType == 0x1C || itemType == 0x1D || itemType == 0x1E) && param_5 == NULL) {
dComIfGp_getItemIconArchive()->readIdxResource(param_3, 0xC00, get3rdTexture(itemType));
DCStoreRangeNoSync(param_3, 0xC00);
if (param_4 != NULL) {
set3rdColor(itemType, param_4);
param_4->changeTexture((ResTIMG*)param_3, 0);
}
ret = 2;
} else {
dComIfGp_getItemIconArchive()->readIdxResource(param_3, 0xC00, get2ndTexture(itemType));
DCStoreRangeNoSync(param_3, 0xC00);
if (param_4 != NULL) {
set2ndColor(itemType, param_4);
param_4->changeTexture((ResTIMG*)param_3, 0);
}
ret = 2;
if (param_5 != NULL && get3rdTexture(itemType) > 0) {
dComIfGp_getItemIconArchive()->readIdxResource(param_5, 0xC00, get3rdTexture(itemType));
DCStoreRangeNoSync(param_5, 0xC00);
if (param_6 != NULL) {
set3rdColor(itemType, param_6);
param_6->changeTexture((ResTIMG*)param_5, 0);
}
ret = 3;
if (param_7 != NULL && get4thTexture(itemType) > 0) {
dComIfGp_getItemIconArchive()->readIdxResource(param_3, 0xC00, get4thTexture(itemType));
DCStoreRangeNoSync(param_7, 0xC00);
if (param_8 != NULL) {
set4thColor(itemType, param_8);
param_8->changeTexture((ResTIMG*)param_7, 0);
}
ret = 4;
}
}
}
}
}
return ret;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int dMeter2Info_c::readItemTexture(u8 param_0, void* param_1, J2DPicture* param_2, void* param_3,
J2DPicture* param_4, void* param_5, J2DPicture* param_6,
void* param_7, J2DPicture* param_8, int param_9) {
nofralloc
#include "asm/d/meter/d_meter2_info/func_8021CF08.s"
}
#pragma pop
#endif
/* 8021D36C-8021D44C 217CAC 00E0+00 0/0 2/2 0/0 .text
* setItemColor__13dMeter2Info_cFUcP10J2DPictureP10J2DPictureP10J2DPictureP10J2DPicture */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::setItemColor(u8 param_0, J2DPicture* param_1, J2DPicture* param_2,
J2DPicture* param_3, J2DPicture* param_4) {
nofralloc
#include "asm/d/meter/d_meter2_info/setItemColor__13dMeter2Info_cFUcP10J2DPictureP10J2DPictureP10J2DPictureP10J2DPicture.s"
}
#pragma pop
/* 8021D44C-8021D4B8 217D8C 006C+00 2/1 0/0 0/0 .text get2ndTexture__13dMeter2Info_cFUc
*/
s16 dMeter2Info_c::get2ndTexture(u8 itemType) {
switch (itemType) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
return 0x2e;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 31:
return 0xe;
case 27:
return 0x14;
case 28:
return 0x27;
case 29:
return 0xf;
case 30:
return 0x10;
case 33:
case 34:
case 35:
return 0x69;
case 36:
return 0x2a;
default:
case 32:
return -1;
}
}
/* 8021D4B8-8021D4FC 217DF8 0044+00 1/1 0/0 0/0 .text get3rdTexture__13dMeter2Info_cFUc
*/
// one instruction off
#ifdef NONMATCHING
s16 dMeter2Info_c::get3rdTexture(u8 itemType) {
switch (itemType) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
return 0x2e;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 31:
return 0x0e;
default:
return -1;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s16 dMeter2Info_c::get3rdTexture(u8 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_info/get3rdTexture__13dMeter2Info_cFUc.s"
}
#pragma pop
#endif
/* 8021D4FC-8021D524 217E3C 0028+00 1/1 0/0 0/0 .text get4thTexture__13dMeter2Info_cFUc
*/
s16 dMeter2Info_c::get4thTexture(u8 itemType) {
switch (itemType) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
return 0x2e;
default:
return -1;
}
}
/* ############################################################################################## */
/* 80398A78-80398B0C 0250D8 0094+00 2/2 0/0 0/0 .rodata black_color$4634 */
SECTION_RODATA static GXColor const black_color_4634[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},
};
COMPILER_STRIP_GATE(0x80398A78, &black_color_4634);
/* 80398B0C-80398BA0 02516C 0094+00 0/1 0/0 0/0 .rodata white_color$4635 */
#pragma push
#pragma force_active on
SECTION_RODATA static GXColor const white_color_4635[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},
};
COMPILER_STRIP_GATE(0x80398B0C, &white_color_4635);
#pragma pop
/* 80398BA0-80398C34 025200 0094+00 0/1 0/0 0/0 .rodata vertex_color_lu$4636 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_lu_4636[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398BA0, &vertex_color_lu_4636);
#pragma pop
/* 80398C34-80398CC8 025294 0094+00 0/1 0/0 0/0 .rodata vertex_color_ru$4637 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_ru_4637[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398C34, &vertex_color_ru_4637);
#pragma pop
/* 80398CC8-80398D5C 025328 0094+00 0/1 0/0 0/0 .rodata vertex_color_ld$4638 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_ld_4638[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398CC8, &vertex_color_ld_4638);
#pragma pop
/* 80398D5C-80398DF0 0253BC 0094+00 0/1 0/0 0/0 .rodata vertex_color_rd$4639 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_rd_4639[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398D5C, &vertex_color_rd_4639);
#pragma pop
/* 8021D524-8021D644 217E64 0120+00 2/2 0/0 0/0 .text set1stColor__13dMeter2Info_cFUcP10J2DPicture
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::set1stColor(u8 param_0, J2DPicture* param_1) {
nofralloc
#include "asm/d/meter/d_meter2_info/set1stColor__13dMeter2Info_cFUcP10J2DPicture.s"
}
#pragma pop
/* ############################################################################################## */
/* 80398DF0-80398E84 025450 0094+00 0/1 0/0 0/0 .rodata black_color$4675 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const black_color_4675[148] = {
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,
};
COMPILER_STRIP_GATE(0x80398DF0, &black_color_4675);
#pragma pop
/* 80398E84-80398F18 0254E4 0094+00 0/1 0/0 0/0 .rodata white_color$4676 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const white_color_4676[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398E84, &white_color_4676);
#pragma pop
/* 80398F18-80398FAC 025578 0094+00 0/1 0/0 0/0 .rodata vertex_color_lu$4677 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_lu_4677[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398F18, &vertex_color_lu_4677);
#pragma pop
/* 80398FAC-80399040 02560C 0094+00 0/1 0/0 0/0 .rodata vertex_color_ru$4678 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_ru_4678[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x80398FAC, &vertex_color_ru_4678);
#pragma pop
/* 80399040-803990D4 0256A0 0094+00 0/1 0/0 0/0 .rodata vertex_color_ld$4679 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_ld_4679[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
COMPILER_STRIP_GATE(0x80399040, &vertex_color_ld_4679);
#pragma pop
/* 803990D4-80399168 025734 0094+00 0/1 0/0 0/0 .rodata vertex_color_rd$4680 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const vertex_color_rd_4680[148] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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,
};
COMPILER_STRIP_GATE(0x803990D4, &vertex_color_rd_4680);
#pragma pop
/* 8021D644-8021D764 217F84 0120+00 2/2 0/0 0/0 .text set2ndColor__13dMeter2Info_cFUcP10J2DPicture
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::set2ndColor(u8 param_0, J2DPicture* param_1) {
nofralloc
#include "asm/d/meter/d_meter2_info/set2ndColor__13dMeter2Info_cFUcP10J2DPicture.s"
}
#pragma pop
/* 8021D764-8021DB64 2180A4 0400+00 2/2 0/0 0/0 .text set3rdColor__13dMeter2Info_cFUcP10J2DPicture
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::set3rdColor(u8 param_0, J2DPicture* param_1) {
nofralloc
#include "asm/d/meter/d_meter2_info/set3rdColor__13dMeter2Info_cFUcP10J2DPicture.s"
}
#pragma pop
/* 8021DB64-8021DCC4 2184A4 0160+00 2/2 0/0 0/0 .text set4thColor__13dMeter2Info_cFUcP10J2DPicture
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_c::set4thColor(u8 param_0, J2DPicture* param_1) {
nofralloc
#include "asm/d/meter/d_meter2_info/set4thColor__13dMeter2Info_cFUcP10J2DPicture.s"
}
#pragma pop
/* 8021DCC4-8021DCE0 218604 001C+00 0/0 2/2 0/0 .text setHotSpringTimer__13dMeter2Info_cFUc */
void dMeter2Info_c::setHotSpringTimer(u8 slotNo) {
int i_bottleIdx = slotNo - 11;
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;
mHotSpringTimer[i_bottleIdx] = 0;
if (dComIfGs_getItem(i_slotNo, true) == HOT_SPRING) {
dComIfGs_setItem(i_slotNo, 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 minigameFlag) {
bool mgItemSet = false;
if (mMiniGameItemSetFlag != 0) {
mgItemSet = true;
}
if (mRentalBombBagIdx == 0xFF) {
bool setRentBagIdx = false;
for (int bagIdx = 0; bagIdx < 3; bagIdx++) {
if (!setRentBagIdx && dComIfGs_getItem((u8)(bagIdx + SLOT_15), true) == NO_ITEM) {
mRentalBombBagIdx = bagIdx;
setRentBagIdx = true;
}
}
if (!setRentBagIdx) {
mRentalBombBagIdx = 2;
}
}
mMiniGameItemSetFlag = 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 (mgItemSet) {
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), NORMAL_BOMB);
dComIfGp_setItem((u8)(mRentalBombBagIdx + SLOT_15), NORMAL_BOMB);
if (mMiniGameItemSetFlag != 3) {
dComIfGs_setItem(SLOT_4, BOW);
dComIfGp_setItem(SLOT_4, 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 (!mgItemSet) {
dComIfGs_setBombNum(mRentalBombBagIdx, 30);
u8 arrow_max = dComIfGs_getArrowMax();
dComIfGs_setArrowNum(arrow_max);
}
}
/* 8021E0C4-8021E268 218A04 01A4+00 0/0 3/3 4/4 .text resetMiniGameItem__13dMeter2Info_cFb */
void dMeter2Info_c::resetMiniGameItem(bool saveMGItem) {
if (mMiniGameItemSetFlag != 0) {
if (saveMGItem) {
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 (!saveMGItem) {
mMiniGameItemSetFlag = 0;
mRentalBombBagIdx = 0xFF;
}
}
}
/* 8021E268-8021E290 218BA8 0028+00 0/0 0/0 5/5 .text setMiniGameCount__13dMeter2Info_cFSc */
void dMeter2Info_c::setMiniGameCount(s8 count) {
if (count < -99) {
count = -99;
}
if (count > 99) {
count = 99;
}
mMiniGameCount = 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 */
char* dMeter2Info_getNumberTextureName(int nameIdx) {
static 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",
};
return tex_name[nameIdx];
}
char* dMeter2Info_getPlusTextureName() {
static char* tex_name;
static s8 initTexName;
if (!initTexName) {
tex_name = "im_plus_metal_24x24_00.bti";
initTexName = true;
}
return tex_name;
}
/* ############################################################################################## */
/* 804549C0-804549C8 002FC0 0008+00 1/1 0/0 0/0 .sdata2 @5206 */
SECTION_SDATA2 static f64 lit_5206 = 4503599627370496.0 /* cast u32 to float */;
/* 8021E308-8021E4B0 218C48 01A8+00 0/0 3/3 0/0 .text dMeter2Info_getPixel__FffffffPC7ResTIMG */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_getPixel(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4,
f32 param_5, ResTIMG const* param_6) {
nofralloc
#include "asm/d/meter/d_meter2_info/dMeter2Info_getPixel__FffffffPC7ResTIMG.s"
}
#pragma pop
/* 8021E4B0-8021E530 218DF0 0080+00 0/0 2/2 1/1 .text dMeter2Info_setCloth__FUcb */
void dMeter2Info_setCloth(u8 i_clothId, bool param_1) {
switch (i_clothId) {
case WEAR_CASUAL:
case WEAR_KOKIRI:
case ARMOR:
case WEAR_ZORA:
break;
default:
i_clothId = WEAR_CASUAL;
param_1 = false;
}
if (param_1 && dComIfGs_getSelectEquipClothes() != NO_ITEM) {
u8 equip_cloth = dComIfGs_getSelectEquipClothes();
dComIfGs_offItemFirstBit(equip_cloth);
}
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 param_1) {
switch (i_itemId) {
case NO_ITEM:
case WOOD_STICK:
case SWORD:
case MASTER_SWORD:
case LIGHT_SWORD:
break;
default:
i_itemId = NO_ITEM;
param_1 = false;
}
if (param_1 && dComIfGs_getSelectEquipSword() != 0xFF) {
u8 tmp = dComIfGs_getSelectEquipSword();
dComIfGs_offItemFirstBit(tmp);
}
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 param_1) {
switch (i_itemId) {
case NO_ITEM:
case WOOD_SHIELD:
case SHIELD:
case HYLIA_SHIELD:
break;
default:
i_itemId = NO_ITEM;
param_1 = false;
}
if (param_1 && dComIfGs_getSelectEquipShield() != 0xFF) {
u8 tmp = dComIfGs_getSelectEquipShield();
dComIfGs_offItemFirstBit(tmp);
}
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()->i_getSumouMode() || dMeter2Info_isSub2DStatus(1)) {
return false;
}
return true;
}
/* 803BF81C-803BFA1C 01C93C 0200+00 3/3 6/6 0/0 .data letter_data__12dMenu_Letter */
SECTION_DATA 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 (i_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
*/
// regalloc
#ifdef NONMATCHING
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 (i_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;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int dMeter2Info_setNewLetterSender() {
nofralloc
#include "asm/d/meter/d_meter2_info/dMeter2Info_setNewLetterSender__Fv.s"
}
#pragma pop
#endif
/* 8021E8DC-8021E9D0 21921C 00F4+00 0/0 1/1 0/0 .text dMeter2Info_recieveLetter__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Info_recieveLetter() {
nofralloc
#include "asm/d/meter/d_meter2_info/dMeter2Info_recieveLetter__Fv.s"
}
#pragma pop
/* 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() {}
/* 80399168-80399168 0257C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */