d_meter_map / some d_a_alink

This commit is contained in:
TakaRikka
2021-12-27 05:15:35 -08:00
parent c8ee25ec81
commit d933770d16
38 changed files with 1748 additions and 1704 deletions
+154 -83
View File
@@ -21,6 +21,7 @@
#include "m_Do/m_Do_mtx.h"
#include "rel/d/a/d_a_crod/d_a_crod.h"
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
#include "rel/d/a/d_a_horse/d_a_horse.h"
//
// Types:
@@ -6429,46 +6430,40 @@ asm void daAlink_c::setNeckAngle() {
/* 800A2160-800A2198 09CAA0 0038+00 1/0 0/0 0/0 .text getStickAngleFromPlayerShape__9daAlink_cCFPs
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool daAlink_c::getStickAngleFromPlayerShape(s16* param_0) const {
nofralloc
#include "asm/d/a/d_a_alink/getStickAngleFromPlayerShape__9daAlink_cCFPs.s"
bool daAlink_c::getStickAngleFromPlayerShape(s16* param_0) const {
// inline uses literal
// if (checkInputOnR()) {
if (field_0x33ac > lit_6021) {
*param_0 = field_0x2fe2 - mCollisionRot.y;
return true;
}
*param_0 = 0;
return false;
}
#pragma pop
/* 800A2198-800A21E0 09CAD8 0048+00 42/42 0/0 0/0 .text commonLineCheck__9daAlink_cFP4cXyzP4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) {
nofralloc
#include "asm/d/a/d_a_alink/commonLineCheck__9daAlink_cFP4cXyzP4cXyz.s"
bool daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) {
mLinkLinChk.Set(param_0, param_1, this);
return dComIfG_Bgsp().LineCross(&mLinkLinChk);
}
#pragma pop
/* 800A21E0-800A2280 09CB20 00A0+00 18/18 0/0 2/2 .text
* getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) {
nofralloc
#include "asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s"
s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) {
if ((param_1 != 0 || dComIfG_Bgsp().ChkPolySafe(param_0)) && dComIfG_Bgsp().ChkMoveBG_NoDABg(param_0) && dComIfG_Bgsp().GetActorPointer(param_0)) {
return fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(param_0));
}
return 0xFD;
}
#pragma pop
/* 800A2280-800A22E8 09CBC0 0068+00 2/2 0/0 0/0 .text checkGoronRide__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::checkGoronRide() {
nofralloc
#include "asm/d/a/d_a_alink/checkGoronRide__9daAlink_cFv.s"
fopAc_ac_c* daAlink_c::checkGoronRide() {
if (mLinkAcch.ChkGroundHit() && getMoveBGActorName(mLinkAcch.m_gnd, 0) == 0x21) {
return dComIfG_Bgsp().GetActorPointer(mLinkAcch.m_gnd);
}
return NULL;
}
#pragma pop
/* ############################################################################################## */
/* 80453224-80453228 001824 0004+00 1/1 0/0 0/0 .sdata2 @56018 */
@@ -8409,35 +8404,54 @@ asm void daAlink_c::handBgCheck() {
#pragma pop
/* 800A3C8C-800A3CE4 09E5CC 0058+00 11/11 0/0 0/0 .text setItemHeap__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRHeap* daAlink_c::setItemHeap() {
nofralloc
#include "asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s"
JKRHeap* daAlink_c::setItemHeap() {
if (!i_checkResetFlg0(RFLG0_UNK_4000)) {
field_0x2fa0 ^= 1;
i_onResetFlg0(RFLG0_UNK_4000);
}
return mItemHeap[field_0x2fa0].setAnimeHeap();
}
#pragma pop
/* 800A3CE4-800A3D0C 09E624 0028+00 4/4 0/0 0/0 .text setIdxMask__9daAlink_cFPUsPUs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::setIdxMask(u16* param_0, u16* param_1) {
nofralloc
#include "asm/d/a/d_a_alink/setIdxMask__9daAlink_cFPUsPUs.s"
void daAlink_c::setIdxMask(u16* param_0, u16* param_1) {
if (*param_0 == 0xFFFF) {
u16 tmp = (*param_1 >> 12) & 0xF;
*param_1 &= 0xFFF;
if (tmp != 0) {
*param_0 = tmp;
}
}
}
#pragma pop
/* 800A3D0C-800A3D7C 09E64C 0070+00 5/5 0/0 0/0 .text
* getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl */
// setIdxMask param loads backwards
#ifdef NONMATCHING
void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 param_1, u32 buf_size) {
p_anmHeap->setBufferSize(buf_size);
u16 tmp2 = 0xFFFF;
u16* tmp1 = &param_1;
setIdxMask(tmp1, &tmp2);
if (tmp2 == 0xFFFF) {
return p_anmHeap->loadDataIdx(*tmp1);
} else {
return p_anmHeap->loadDataDemoRID(*tmp1, tmp2);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 param_2) {
asm void* daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 param_2) {
nofralloc
#include "asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s"
}
#pragma pop
#endif
/* 800A3D7C-800A3E30 09E6BC 00B4+00 16/16 0/0 0/0 .text initModel__9daAlink_cFP12J3DModelDataUlUl
*/
@@ -15548,8 +15562,55 @@ BOOL daAlink_c::checkSlope() const {
return field_0x3174 != 8 && field_0x2ff0 < -field_0x3122;
}
inline daHorse_c* i_dComIfGp_getHorseActor() {
return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1);
}
/* 800B221C-800B23FC 0ACB5C 01E0+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi
*/
// need to figure out member function pointer calls
#ifdef NONMATCHING
void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2) {
if (checkEventRun() || param_2 != 0 || mSpecialMode != 0) {
if (p_pos != NULL) {
mCurrent.mPosition = *p_pos;
mNext.mPosition = mCurrent.mPosition;
field_0x3798 = mCurrent.mPosition;
i_onEndResetFlg0(ERFLG0_UNK_800000);
i_onEndResetFlg2(ERFLG2_UNK_100);
if (mDemo.getDemoMode() != 0x59) {
mSpeed.y = FLOAT_LABEL(lit_6108);
}
}
mCollisionRot.y = param_1;
mCurrent.mAngle.y = param_1;
field_0x2fe6 = mCollisionRot.y;
if ((mActionID == 0x145 || mActionID == 0xE2) && !i_checkWolf()) {
if (field_0x3198 != 0) {
field_0x37c8.x = mCurrent.mPosition.x;
field_0x37c8.z = mCurrent.mPosition.z;
}
}
if (i_checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) {
field_0x3118 = mCollisionRot.y;
}
if (checkHorseRide() || checkSpinnerRide()) {
fopAc_ac_c* rideAc = mRideActor.getActor();
rideAc->mCurrent.mPosition = mCurrent.mPosition;
rideAc->mCollisionRot.y = mCollisionRot.y;
rideAc->mCurrent.mAngle.y = mCollisionRot.y;
rideAc->mSpeed.y = FLOAT_LABEL(lit_6108);
} else {
i_dComIfGp_getHorseActor()->setHorsePosAndAngle(&mCurrent.mPosition, mCollisionRot.y);
}
field_0x814.ClrCcMove();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -15558,27 +15619,48 @@ asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int p
#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s"
}
#pragma pop
#endif
/* 800B23FC-800B24F4 0ACD3C 00F8+00 1/0 0/0 0/0 .text
* setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, csXyz const* param_1) {
nofralloc
#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz.s"
void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
if (checkEventRun() || mSpecialMode != 0) {
if (p_pos != NULL) {
mCurrent.mPosition = *p_pos;
mNext.mPosition = mCurrent.mPosition;
field_0x3798 = mCurrent.mPosition;
i_onEndResetFlg0(ERFLG0_UNK_800000);
i_onEndResetFlg2(ERFLG2_UNK_100);
mSpeed.y = FLOAT_LABEL(lit_6108);
}
if (p_angle != NULL) {
mCollisionRot = *p_angle;
mCurrent.mAngle.y = mCollisionRot.y;
field_0x2fe6 = mCollisionRot.y;
}
field_0x814.ClrCcMove();
}
}
#pragma pop
/* 800B24F4-800B25CC 0ACE34 00D8+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPA4_f */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::setPlayerPosAndAngle(f32 (*param_0)[4]) {
nofralloc
#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPA4_f.s"
void daAlink_c::setPlayerPosAndAngle(Mtx param_0) {
if (checkEventRun() || mSpecialMode != 0) {
mCurrent.mPosition.x = param_0[0][3];
mCurrent.mPosition.y = param_0[1][3];
mCurrent.mPosition.z = param_0[2][3];
mNext.mPosition = mCurrent.mPosition;
field_0x3798 = mCurrent.mPosition;
i_onEndResetFlg0(ERFLG0_UNK_800000);
i_onEndResetFlg2(ERFLG2_UNK_100);
mDoMtx_MtxToRot(param_0, &mCollisionRot);
mCurrent.mAngle.y = mCollisionRot.y;
field_0x2fe6 = mCollisionRot.y;
mSpeed.y = FLOAT_LABEL(lit_6108);
field_0x814.ClrCcMove();
}
}
#pragma pop
/* 800B25CC-800B25E8 0ACF0C 001C+00 16/16 0/0 0/0 .text itemTriggerCheck__9daAlink_cFUc
*/
@@ -16384,14 +16466,9 @@ asm void daAlink_c::itemUnequip(u16 param_0, f32 param_1) {
#pragma pop
/* 800B97EC-800B983C 0B412C 0050+00 2/2 0/0 0/0 .text checkFastUnequip__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::checkFastUnequip() {
nofralloc
#include "asm/d/a/d_a_alink/checkFastUnequip__9daAlink_cFv.s"
bool daAlink_c::checkFastUnequip() {
return mActionID == PREACTION_UNEQUIP || mActionID == HORSE_GETOFF || checkEventRun();
}
#pragma pop
/* 800B983C-800B994C 0B417C 0110+00 10/10 0/0 0/0 .text allUnequip__9daAlink_cFi */
#pragma push
@@ -16435,14 +16512,13 @@ asm BOOL daAlink_c::checkGroundSpecialMode() {
/* 800BA09C-800BA0D0 0B49DC 0034+00 4/4 0/0 0/0 .text commonCheckNextAction__9daAlink_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::commonCheckNextAction(int param_0) {
nofralloc
#include "asm/d/a/d_a_alink/commonCheckNextAction__9daAlink_cFi.s"
void daAlink_c::commonCheckNextAction(int param_0) {
if (i_checkWolf()) {
checkNextActionWolf(param_0);
} else {
checkNextAction(param_0);
}
}
#pragma pop
/* 800BA0D0-800BA6A0 0B4A10 05D0+00 91/91 0/0 0/0 .text checkNextAction__9daAlink_cFi */
#pragma push
@@ -16927,10 +17003,6 @@ asm void daAlink_c::returnKeepItemData() {
}
#pragma pop
inline daHorse_c* i_dComIfGp_getHorseActor() {
return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1);
}
/* 800BF8D0-800BF9F0 0BA210 0120+00 2/2 0/0 0/0 .text setItemModel__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
@@ -29627,15 +29699,14 @@ asm void daAlink_c::procIronBallReturn() {
}
#pragma pop
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL daAlink_c::checkEventRun() const {
nofralloc
#include "asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s"
inline BOOL i_dComIfGp_event_runCheck() {
return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
BOOL daAlink_c::checkEventRun() const {
return i_dComIfGp_event_runCheck() || checkPlayerDemoMode();
}
#pragma pop
/* 80115C50-80115D08 110590 00B8+00 2/2 0/0 0/0 .text createNpcTks__9daAlink_cFP4cXyziUl
*/
+18 -29
View File
@@ -8,58 +8,47 @@
#include "dolphin/types.h"
BOOL e_wb_class::checkWait() {
return unk1460 == 0x2A;
return field_0x5b4 == 0x2A;
}
void e_wb_class::setPlayerRideNow() {
unk1680 = 0x67;
unk1460 = 0;
unk1726 |= 3;
field_0x690 = 0x67;
field_0x5b4 = 0;
field_0x6be |= 3;
}
void e_wb_class::setPlayerRide() {
unk1680 = 0x65;
unk1460 = 0;
unk1726 |= 3;
field_0x690 = 0x65;
field_0x5b4 = 0;
field_0x6be |= 3;
mZ2Ride.setLinkRiding(true);
}
void e_wb_class::getOff() {
if (!checkDownDamage() || unk1680 == 0x67) {
unk1680 = 0;
if (!checkDownDamage() || field_0x690 == 0x67) {
field_0x690 = 0;
} else {
unk1682 = 0;
field_0x692 = 0;
}
unk1460 = 0;
unk1726 &= 0xfffc;
field_0x5b4 = 0;
field_0x6be &= 0xfffc;
mZ2Ride.setLinkRiding(false);
}
BOOL e_wb_class::checkDownDamage() {
bool downDamage = false;
s16 tmp = unk1680;
if (tmp != 0x65 && tmp != 0x66 && tmp != 0x15) {
downDamage = true;
}
return downDamage;
return field_0x690 != 0x65 && field_0x690 != 0x66 && field_0x690 != 0x15;
}
u8 e_wb_class::checkNormalRideMode() const {
bool normalRideMode = false;
if (unk1680 != 0x66 || unk1460 < 1) {
normalRideMode = 1;
}
return normalRideMode;
return field_0x690 != 0x66 || field_0x5b4 < 1;
}
void e_wb_class::setRunRideMode() {
if (unk1680 == 0x65) {
unk1460 = 0;
unk1680 = 0x15;
unk1682 = 0x65;
if (field_0x690 == 0x65) {
field_0x5b4 = 0;
field_0x690 = 0x15;
field_0x692 = 0x65;
}
}
-4
View File
@@ -28,10 +28,6 @@ struct dSmplMdl_draw_c {
/* 80049058 */ void removeModel(J3DModelData*, int);
};
struct dMapInfo_n {
/* 8003EE5C */ void getMapPlayerPos();
};
struct dComIfG_resLoader_c {
/* 8002F314 */ dComIfG_resLoader_c();
/* 8002F328 */ ~dComIfG_resLoader_c();
-15
View File
@@ -19,25 +19,10 @@ struct daSus_c {
/* 800315A4 */ void execute();
};
struct dTres_c {
struct list_class {};
/* 8009BCB4 */ void addData(dTres_c::list_class*, s8);
};
struct dSvBit_HIO_c {
/* 8025C1F8 */ void init();
};
struct dDrawPath_c {
struct room_class {};
};
struct dMpath_c {
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FA40 */ void setPointer(s8, void*, int);
};
struct cMl {
/* 80263228 */ void memalignB(int, u32);
};
-87
View File
@@ -17,47 +17,6 @@ struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct ResTIMG {};
struct dRenderingMap_c {
/* 8003CD38 */ void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const;
/* 8003CDAC */ void renderingMap();
};
struct dDrawPath_c {
struct line_class {};
struct poly_class {};
struct group_class {};
struct floor_class {};
struct room_class {};
/* 8002ABF0 */ bool isDrawType(int);
/* 8002AD3C */ ~dDrawPath_c();
/* 8002AD84 */ void getLineColor(int, int);
/* 8003CA40 */ void rendering(dDrawPath_c::poly_class const*);
/* 8003CB00 */ void rendering(dDrawPath_c::group_class const*);
/* 8003CC24 */ void rendering(dDrawPath_c::room_class const*);
/* 8003C94C */ void rendering(dDrawPath_c::line_class const*);
/* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*);
/* 8003CCC4 */ void drawPath();
};
struct dRenderingFDAmap_c {
/* 8002ABF8 */ ~dRenderingFDAmap_c();
/* 8003CE78 */ void setTevSettingNonTextureDirectColor() const;
/* 8003CF40 */ void setTevSettingIntensityTextureToCI() const;
/* 8003D0AC */ void drawBack() const;
/* 8003D188 */ void preRenderingMap();
/* 8003D320 */ void postRenderingMap();
/* 8003D3C0 */ void renderingDecoration(dDrawPath_c::line_class const*);
/* 8003D68C */ void getDecoLineColor(int, int);
/* 8003D6B8 */ void getDecorationLineWidth(int);
};
struct dMpath_n {
struct dTexObjAggregate_c {
/* 8003C85C */ void create();
@@ -68,14 +27,6 @@ struct dMpath_n {
static u8 m_texObjAgg[28];
};
struct dDlst_base_c {
/* 8002ABEC */ void draw();
};
struct _GXTlutObj {};
struct _GXTexObj {};
//
// Forward References:
//
@@ -118,46 +69,8 @@ extern "C" void getLineColor__11dDrawPath_cFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void C_MTXOrtho();
extern "C" void GXSetVtxDesc();
extern "C" void GXClearVtxDesc();
extern "C" void GXSetVtxAttrFmt();
extern "C" void GXSetArray();
extern "C" void GXSetTexCoordGen2();
extern "C" void GXSetNumTexGens();
extern "C" void GXPixModeSync();
extern "C" void GXBegin();
extern "C" void GXSetLineWidth();
extern "C" void GXSetPointSize();
extern "C" void GXSetCullMode();
extern "C" void GXSetTexCopySrc();
extern "C" void GXSetTexCopyDst();
extern "C" void GXSetCopyFilter();
extern "C" void GXCopyTex();
extern "C" void GXSetNumChans();
extern "C" void GXSetChanCtrl();
extern "C" void GXLoadTexObj();
extern "C" void GXSetNumIndStages();
extern "C" void GXSetTevColorIn();
extern "C" void GXSetTevAlphaIn();
extern "C" void GXSetTevColorOp();
extern "C" void GXSetTevAlphaOp();
extern "C" void GXSetTevColor();
extern "C" void GXSetTevKColorSel();
extern "C" void GXSetAlphaCompare();
extern "C" void GXSetTevOrder();
extern "C" void GXSetNumTevStages();
extern "C" void GXSetFog();
extern "C" void GXSetBlendMode();
extern "C" void GXSetZMode();
extern "C" void GXSetZCompLoc();
extern "C" void GXSetDither();
extern "C" void GXSetProjection();
extern "C" void GXLoadPosMtxImm();
extern "C" void GXSetCurrentMtx();
extern "C" void GXSetViewport();
extern "C" void GXSetScissor();
extern "C" void GXSetClipMode();
extern "C" void __register_global_object();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
+1 -168
View File
@@ -11,122 +11,12 @@
// Types:
//
struct stage_tgsc_data_class {};
struct renderingPlusDoor_c {
/* 8002B0B4 */ ~renderingPlusDoor_c();
/* 80040518 */ void afterDrawPath();
/* 80040574 */ void drawDoor1();
/* 800405B8 */ void drawDoor2();
/* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool);
/* 80040710 */ void checkDispDoorS(int, int, f32);
/* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool);
/* 8004145C */ void beforeDrawPath();
};
struct dTres_c {
struct data_s {};
struct typeGroupData_c {};
/* 8009C360 */ void getFirstData(u8);
/* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*);
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
static u8 mTypeGroupListAll[204 + 4 /* padding */];
};
struct Vec {};
struct renderingPlusDoorAndCursor_c {
/* 8002B008 */ ~renderingPlusDoorAndCursor_c();
/* 800402FC */ void afterDrawPath();
/* 80040A94 */ void getFirstData(u8);
/* 80040AB8 */ void getNextData(dTres_c::typeGroupData_c*);
/* 80040ADC */ void getIconPosition(dTres_c::typeGroupData_c*) const;
/* 80040B00 */ void drawTreasure();
/* 80040E84 */ void drawTreasureAfterPlayer();
/* 80041208 */ void drawIconSingle(Vec const&, f32, f32);
/* 800412C0 */ void drawCursor(Vec const&, s16, int, f32);
};
struct dDrawPath_c {
struct room_class {};
struct group_class {};
struct line_class {};
struct poly_class {};
/* 8002ABF0 */ bool isDrawType(int);
/* 8002AD84 */ void getLineColor(int, int);
/* 8003CA40 */ void rendering(dDrawPath_c::poly_class const*);
/* 8003CC24 */ void rendering(dDrawPath_c::room_class const*);
/* 8003C94C */ void rendering(dDrawPath_c::line_class const*);
/* 8003CCC4 */ void drawPath();
};
struct renderingDAmap_c {
/* 8002B150 */ ~renderingDAmap_c();
/* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const;
/* 8003FCC8 */ void init(u8*, u16, u16, u16, u16);
/* 8003FD08 */ void entry(f32, f32, f32, int, s8);
/* 8003FD9C */ void isSwitch(dDrawPath_c::group_class const*);
/* 8003FE18 */ void draw();
/* 8003FE4C */ void getBackColor() const;
/* 8003FE54 */ void isRenderingFloor(int);
/* 8003FE6C */ void setSingleRoomSetting();
/* 8003FE70 */ void isDrawRoom(int, int) const;
/* 8003FF14 */ void preDrawPath();
/* 8003FFC4 */ void postDrawPath();
/* 8003FFEC */ void getRoomNoSingle();
/* 8003FFF4 */ void getFirstDrawRoomNo();
/* 80040094 */ void getNextDrawRoomNo(int);
/* 80040134 */ void getFirstRoomPointer();
/* 800401E8 */ void getNextRoomPointer();
/* 800402C0 */ void isDrawPath();
/* 800402E0 */ bool getFirstDrawLayerNo();
/* 800402E8 */ void getNextDrawLayerNo(int);
/* 800409B4 */ void isDrawRoomIcon(int, int) const;
/* 800409E0 */ void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool,
Vec const*) const;
/* 80040AE4 */ void getIconGroupNumber(u8) const;
};
struct mDoMtx_stack_c {
/* 8000CE38 */ void scaleM(f32, f32, f32);
static u8 now[48];
};
struct dSv_memBit_c {
/* 80034934 */ void isDungeonItem(int) const;
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dStage_roomControl_c {
static u8 mStatus[65792];
};
struct dStage_FileList2_dt_c {};
struct dRenderingMap_c {
/* 8003CDAC */ void renderingMap();
};
struct dRenderingFDAmap_c {
/* 8003CE78 */ void setTevSettingNonTextureDirectColor() const;
/* 8003CF40 */ void setTevSettingIntensityTextureToCI() const;
/* 8003D188 */ void preRenderingMap();
/* 8003D320 */ void postRenderingMap();
/* 8003D68C */ void getDecoLineColor(int, int);
/* 8003D6B8 */ void getDecorationLineWidth(int);
};
struct dMpath_n {
struct dTexObjAggregate_c {
/* 8003C85C */ void create();
@@ -136,44 +26,6 @@ struct dMpath_n {
static u8 m_texObjAgg[28];
};
struct dMpath_c {
/* 8003F758 */ u8 isExistMapPathData();
/* 8003F760 */ void getTopBottomFloorNo(s8*, s8*);
/* 8003F7E8 */ void createWork();
/* 8003FA40 */ void setPointer(s8, void*, int);
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FB70 */ void create();
/* 8003FBD0 */ void reset();
/* 8003FC70 */ void remove();
static u8 mLayerList[4];
static f32 mMinX;
static f32 mMaxX;
static f32 mMinZ;
static f32 mMaxZ;
static f32 mAllCenterX;
static f32 mAllCenterZ;
static f32 mAllSizeX;
static f32 mAllSizeZ;
};
struct dMapInfo_n {
/* 8003ECA0 */ void chkGetCompass();
/* 8003ECD8 */ void chkGetMap();
/* 8003ED10 */ void isVisitedRoom(int);
/* 8003ED60 */ void correctionOriginPos(s8, Vec*);
/* 8003EDC0 */ void offsetPlus(dStage_FileList2_dt_c const*, Vec*);
/* 8003EDEC */ void rotAngle(dStage_FileList2_dt_c const*, Vec*);
/* 8003EE5C */ void getMapPlayerPos();
/* 8003EF20 */ void getMapPlayerAngleY();
/* 8003EF70 */ void getConstRestartIconPointer();
/* 8003F02C */ void getMapRestartPos();
/* 8003F0F8 */ void getMapRestartAngleY();
/* 8003F19C */ void getRoomCenter(int, f32*, f32*);
/* 8003F1F4 */ void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*);
/* 8003F24C */ void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*);
};
struct dMapInfo_c {
/* 8003F40C */ void calcFloorNo(f32, bool, int);
/* 8003F570 */ void calcNowStayFloorNo(f32, bool);
@@ -187,12 +39,6 @@ struct dMapInfo_c {
static u8 mNowStayRoomNo[4];
};
struct dDlst_base_c {};
struct dDlst_list_c {
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
};
//
// Forward References:
//
@@ -316,19 +162,9 @@ extern "C" void getFirstData__7dTres_cFUc();
extern "C" void getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c();
extern "C" void getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c();
extern "C" void* __nw__FUl();
extern "C" void PSMTXTrans();
extern "C" void PSMTXMultVec();
extern "C" void PSMTXMultVecArray();
extern "C" void GXSetVtxDesc();
extern "C" void GXClearVtxDesc();
extern "C" void GXSetVtxAttrFmt();
extern "C" void GXSetArray();
extern "C" void GXSetMisc();
extern "C" void GXBegin();
extern "C" void GXLoadTexObj();
extern "C" void GXInvalidateTexAll();
extern "C" void GXSetTevColor();
extern "C" void GXLoadPosMtxImm();
extern "C" void _savegpr_20();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
@@ -343,15 +179,12 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void floor();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 m_texObjAgg__8dMpath_n[28];
extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */];
extern "C" extern u8 g_fmapHIO[1188];
extern "C" extern u32 __float_max;
extern "C" extern u8 struct_80450D64[4];
//
// Declarations:
@@ -432,7 +265,7 @@ SECTION_SDATA2 static u8 lit_3796[4] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMapInfo_n::getMapPlayerPos() {
asm Vec dMapInfo_n::getMapPlayerPos() {
nofralloc
#include "asm/d/map/d_map_path_dmap/getMapPlayerPos__10dMapInfo_nFv.s"
}
+2 -2
View File
@@ -401,7 +401,7 @@ bool dMw_DOWN_TRIGGER() {
return mDoCPd_c::getTrigDown(mDoCPd_c::PAD_0);
}
bool dMw_LEFT_TRIGGER() {
BOOL dMw_LEFT_TRIGGER() {
if (mDoCPd_c::getTrigLeft(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
return true;
} else {
@@ -409,7 +409,7 @@ bool dMw_LEFT_TRIGGER() {
}
}
bool dMw_RIGHT_TRIGGER() {
BOOL dMw_RIGHT_TRIGGER() {
if (mDoCPd_c::getTrigRight(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
return true;
} else {
-7
View File
@@ -290,13 +290,6 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
// Declarations:
//
/* ############################################################################################## */
/* 80399338-80399338 025998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80399338 = "F_SP00";
#pragma pop
/* 804549C8-804549CC 002FC8 0004+00 9/9 0/0 0/0 .sdata2 @4662 */
SECTION_SDATA2 static u8 lit_4662[4] = {
0x00,
+1
View File
@@ -5,6 +5,7 @@
#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"
+22
View File
@@ -1685,6 +1685,27 @@ dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
}
/* 80200BCC-80200CD4 1FB50C 0108+00 2/1 0/0 0/0 .text __dt__16dMeter_fmapHIO_cFv */
#ifdef NONMATCHING
dMeter_fmapHIO_c::~dMeter_fmapHIO_c() {
if (field_0xc != NULL) {
mDoExt_getGameHeap()->free(field_0xc);
field_0xc = NULL;
}
if (field_0x10 != NULL) {
mDoExt_getGameHeap()->free(field_0x10);
field_0x10 = NULL;
}
if (field_0x8 != NULL) {
field_0x8->unmount();
delete field_0x8;
field_0x8 = NULL;
}
delete mMapIconHIO;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1694,6 +1715,7 @@ extern "C" asm void __dt__16dMeter_fmapHIO_cFv() {
#include "asm/d/meter/d_meter_HIO/__dt__16dMeter_fmapHIO_cFv.s"
}
#pragma pop
#endif
/* 80200CD4-80200D58 1FB614 0084+00 1/1 0/0 0/0 .text __ct__18dMeter_cursorHIO_cFv */
dMeter_cursorHIO_c::dMeter_cursorHIO_c() {
+563 -182
View File
@@ -4,68 +4,14 @@
//
#include "d/meter/d_meter_map.h"
#include "d/com/d_com_inf_game.h"
#include "d/menu/d_menu_window.h"
#include "d/msg/d_msg_object.h"
#include "f_op/f_op_overlap_mng.h"
#include "Z2AudioLib/Z2AudioMgr.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct mDoCPd_c {
static u8 m_cpadInfo[256];
};
struct dSv_memBit_c {
/* 80034934 */ void isDungeonItem(int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 8003498C */ void onEventBit(u16);
/* 800349BC */ void isEventBit(u16) const;
};
struct dStage_roomControl_c {
/* 80024384 */ void getStatusRoomDt(int);
};
struct dMsgObject_c {
/* 8023822C */ void getStatus();
};
struct dMap_c {
/* 80029874 */ dMap_c(int, int, int, int);
/* 8002A32C */ void _move(f32, f32, int, f32);
/* 8002AB54 */ void _draw();
};
struct dMapInfo_n {
/* 8003EE5C */ void getMapPlayerPos();
};
struct dDlst_base_c {};
struct dDlst_list_c {
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct J2DPicture {
/* 802FC708 */ J2DPicture(ResTIMG const*);
};
//
// Forward References:
//
@@ -132,78 +78,156 @@ extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_meter2_info[248];
extern "C" extern u8 struct_80450D64[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* 8020D49C-8020D528 207DDC 008C+00 1/1 0/0 0/0 .text isEnableDispMap__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::isEnableDispMap() {
nofralloc
#include "asm/d/meter/d_meter_map/isEnableDispMap__11dMeterMap_cFv.s"
inline BOOL dComIfGp_event_runCheck() {
return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
inline u16 dComIfGp_event_checkHind(u16 flag) {
if (!dComIfGp_event_runCheck()) {
return false;
}
return g_dComIfG_gameInfo.play.getEvent().checkHind(flag);
}
inline u16 dComIfGp_event_chkEventFlag(u16 flag) {
return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag);
}
inline dStage_stageDt_c* dComIfGp_getStage() {
return &g_dComIfG_gameInfo.play.getStage();
}
inline daPy_py_c* daPy_getPlayerActorClass() {
return (daPy_py_c*)dComIfGp_getPlayer(0);
}
inline BOOL dComIfGs_isEventBit(u16 id) {
return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
}
/* 8020D49C-8020D528 207DDC 008C+00 1/1 0/0 0/0 .text isEnableDispMap__11dMeterMap_cFv */
bool dMeterMap_c::isEnableDispMap() {
bool minimapEnable = false;
stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo();
if (pstag != NULL && getMapDispSizeTypeNo() != 0) {
minimapEnable = dStage_stagInfo_GetMiniMap(pstag) != 0;
}
bool enableMap = false;
if (minimapEnable && dMpath_c::isExistMapPathData()) {
enableMap = true;
}
return enableMap;
}
#pragma pop
/* 8020D528-8020D650 207E68 0128+00 3/3 0/0 0/0 .text getMapDispSizeTypeNo__11dMeterMap_cFv */
// stayNo load block in wrong order
#ifdef NONMATCHING
int dMeterMap_c::getMapDispSizeTypeNo() {
int uvar6 = 7;
int stayNo = dComIfGp_roomControl_getStayNo();
dStage_FileList_dt_c* fList = dComIfGp_roomControl_getStatusRoomDt(stayNo)->mRoomDt.getFileListInfo();
if (fList != NULL) {
uvar6 = dStage_FileList_dt_getMiniMap(fList);
}
u32 stageMapSizeTypeNo = dStage_stagInfo_GetMiniMap(dComIfGp_getStage()->getStagInfo());
s32 mapDispType = dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo());
if (mapDispType == 1) {
uvar6 = 1;
} else if (uvar6 == 7) {
uvar6 = stageMapSizeTypeNo;
}
int mapDispSizeType = 0;
switch (uvar6) {
case 0:
break;
case 1:
if (mapDispType == 1) {
mapDispSizeType = 4;
} else {
mapDispSizeType = 1;
}
break;
case 2:
if (mapDispType != 1) {
mapDispSizeType = 2;
}
break;
case 3:
if (mapDispType == 1) {
mapDispSizeType = 5;
} else {
mapDispSizeType = 3;
}
break;
}
return mapDispSizeType;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::getMapDispSizeTypeNo() {
asm int dMeterMap_c::getMapDispSizeTypeNo() {
nofralloc
#include "asm/d/meter/d_meter_map/getMapDispSizeTypeNo__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 8020D650-8020D690 207F90 0040+00 5/5 3/3 0/0 .text
* isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo() {
nofralloc
#include "asm/d/meter/d_meter_map/isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv.s"
}
#pragma pop
bool dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo() {
if (isEnableDispMap() && getMapDispSizeTypeNo()) {
return true;
}
/* ############################################################################################## */
/* 80454820-80454828 002E20 0004+04 1/1 0/0 0/0 .sdata2 @4076 */
SECTION_SDATA2 static f32 lit_4076[1 + 1 /* padding */] = {
421.0f,
/* padding */
0.0f,
};
return false;
}
/* 8020D690-8020D698 207FD0 0008+00 2/2 0/0 0/0 .text
* getMapDispEdgeBottomY_Layout__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::getMapDispEdgeBottomY_Layout() {
nofralloc
#include "asm/d/meter/d_meter_map/getMapDispEdgeBottomY_Layout__11dMeterMap_cFv.s"
f32 dMeterMap_c::getMapDispEdgeBottomY_Layout() {
return 421.0f;
}
#pragma pop
/* 8020D698-8020D72C 207FD8 0094+00 2/2 0/0 0/0 .text isEventRunCheck__11dMeterMap_cFv */
// missing gameinfo load
#ifdef NONMATCHING
bool dMeterMap_c::isEventRunCheck() {
if (dComIfGp_event_runCheck()) {
return true;
} else if (dMsgObject_isTalkNowCheck()) {
return true;
}
return dComIfGp_event_runCheck() != field_0x30 ? 1 : 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::isEventRunCheck() {
asm bool dMeterMap_c::isEventRunCheck() {
nofralloc
#include "asm/d/meter/d_meter_map/isEventRunCheck__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80454828-80454830 002E28 0008+00 3/3 0/0 0/0 .sdata2 @4100 */
@@ -211,14 +235,21 @@ SECTION_SDATA2 static f64 lit_4100 = 4503601774854144.0 /* cast s32 to float */;
/* 8020D72C-8020D75C 20806C 0030+00 2/2 0/0 0/0 .text getMapDispEdgeLeftX_Layout__11dMeterMap_cFv
*/
#ifdef NONMATCHING
// matches with literal
f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() {
return field_0x28 + 35;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::getMapDispEdgeLeftX_Layout() {
asm f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() {
nofralloc
#include "asm/d/meter/d_meter_map/getMapDispEdgeLeftX_Layout__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80454830-80454834 002E30 0004+00 2/2 0/0 0/0 .sdata2 @4128 */
@@ -237,18 +268,29 @@ SECTION_SDATA2 static f64 lit_4131 = 4503599627370496.0 /* cast u32 to float */;
/* 8020D75C-8020D7E4 20809C 0088+00 0/0 1/1 0/0 .text getMapDispEdgeTop__11dMeterMap_cFv
*/
// matches with literals
#ifdef NONMATCHING
f32 dMeterMap_c::getMapDispEdgeTop() {
f32 tmp = 0.0f;
if (mMap != NULL) {
tmp = mMap->getTexSizeY() - mMap->getTexelPerCm() * (mMap->getPackZ() - mMap->getPackPlusZ()) - mMap->getTopEdgePlus();
}
return getMapDispEdgeBottomY_Layout() - tmp;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::getMapDispEdgeTop() {
asm f32 dMeterMap_c::getMapDispEdgeTop() {
nofralloc
#include "asm/d/meter/d_meter_map/getMapDispEdgeTop__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 8020D7E4-8020D7EC 208124 0008+00 2/2 0/0 0/0 .text getDispPosInside_OffsetX__11dMeterMap_cFv */
bool dMeterMap_c::getDispPosInside_OffsetX() {
return false;
s16 dMeterMap_c::getDispPosInside_OffsetX() {
return 0;
}
/* ############################################################################################## */
@@ -257,51 +299,56 @@ SECTION_SDATA2 static f32 lit_4159 = -36.0f;
/* 8020D7EC-8020D874 20812C 0088+00 2/2 0/0 0/0 .text getDispPosOutSide_OffsetX__11dMeterMap_cFv
*/
// calculation order is wrong
#ifdef NONMATCHING
s16 dMeterMap_c::getDispPosOutSide_OffsetX() {
f32 dvar3 = -36.0f - mSizeW;
f32 tmp = 0.0f;
if (mMap != NULL) {
tmp = (mMap->getTexelPerCm() * mMap->getPackX()) + (mMap->getRightEdgePlus() + (mMap->getTexelPerCm() * mMap->getPackPlusZ()));
tmp += dvar3;
}
return tmp - getMapDispEdgeLeftX_Layout();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::getDispPosOutSide_OffsetX() {
asm s16 dMeterMap_c::getDispPosOutSide_OffsetX() {
nofralloc
#include "asm/d/meter/d_meter_map/getDispPosOutSide_OffsetX__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 8020D874-8020D8BC 2081B4 0048+00 2/2 2/2 0/0 .text setDispPosInsideFlg_SE_On__11dMeterMap_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::setDispPosInsideFlg_SE_On() {
nofralloc
#include "asm/d/meter/d_meter_map/setDispPosInsideFlg_SE_On__11dMeterMap_cFv.s"
void dMeterMap_c::setDispPosInsideFlg_SE_On() {
if (isEnableDispMapAndMapDispSizeTypeNo()) {
dComIfGp_mapShow();
field_0x2d = 1;
field_0x2e = 7;
}
}
#pragma pop
/* 8020D8BC-8020D8F8 2081FC 003C+00 1/1 2/2 0/0 .text setDispPosOutsideFlg_SE_On__11dMeterMap_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::setDispPosOutsideFlg_SE_On() {
nofralloc
#include "asm/d/meter/d_meter_map/setDispPosOutsideFlg_SE_On__11dMeterMap_cFv.s"
void dMeterMap_c::setDispPosOutsideFlg_SE_On() {
dComIfGp_mapHide();
field_0x2d = 0;
field_0x2e = 7;
}
#pragma pop
/* 8020D8F8-8020D900 -00001 0008+00 0/0 0/0 0/0 .text setMapAlpha__11dMeterMap_cFUc */
void dMeterMap_c::setMapAlpha(u8 param_0) {
*(u8*)(((u8*)this) + 44) /* this->field_0x2c */ = (u8)(param_0);
void dMeterMap_c::setMapAlpha(u8 alpha) {
mMapAlpha = alpha;
}
/* 8020D900-8020D948 208240 0048+00 3/3 1/1 0/0 .text isMapOpenCheck__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMeterMap_c::isMapOpenCheck() {
nofralloc
#include "asm/d/meter/d_meter_map/isMapOpenCheck__11dMeterMap_cFv.s"
bool dMeterMap_c::isMapOpenCheck() {
return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 7 ? false : true;
}
#pragma pop
/* ############################################################################################## */
/* 803BF2D8-803BF2F8 -00001 0020+00 1/1 0/0 0/0 .data @4516 */
@@ -316,36 +363,102 @@ SECTION_DATA static void* lit_4516[8] = {
(void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x190),
};
/* 803BF2F8-803BF308 01C418 0010+00 2/2 0/0 0/0 .data __vt__11dMeterMap_c */
SECTION_DATA extern void* __vt__11dMeterMap_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__11dMeterMap_cFv,
(void*)__dt__11dMeterMap_cFv,
};
/* 8020D948-8020D990 208288 0048+00 0/0 1/1 0/0 .text __ct__11dMeterMap_cFP9J2DScreen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeterMap_c::dMeterMap_c(J2DScreen* param_0) {
nofralloc
#include "asm/d/meter/d_meter_map/__ct__11dMeterMap_cFP9J2DScreen.s"
dMeterMap_c::dMeterMap_c(J2DScreen* p_scrn) {
_create(p_scrn);
}
#pragma pop
/* 8020D990-8020D9EC 2082D0 005C+00 1/0 0/0 0/0 .text __dt__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeterMap_c::~dMeterMap_c() {
nofralloc
#include "asm/d/meter/d_meter_map/__dt__11dMeterMap_cFv.s"
dMeterMap_c::~dMeterMap_c() {
_delete();
}
#pragma pop
/* 8020D9EC-8020DC50 20832C 0264+00 1/1 0/0 0/0 .text _create__11dMeterMap_cFP9J2DScreen
*/
// matches with auto gen literals
#ifdef NONMATCHING
void dMeterMap_c::_create(J2DScreen* param_0) {
s32 sizeX;
s32 sizeY;
s32 dispSizeW;
s32 dispSizeH;
getMapDispSizeTypeNo();
switch (getMapDispSizeTypeNo()) {
case 1:
dispSizeW = 216;
dispSizeH = 216;
sizeX = 144;
sizeY = 144;
break;
case 2:
dispSizeW = 216;
dispSizeH = 216;
sizeX = 216;
sizeY = 216;
break;
case 3:
dispSizeW = 216;
dispSizeH = 216;
sizeX = 96;
sizeY = 96;
break;
case 0:
case 4:
dispSizeW = 144;
dispSizeH = 144;
sizeX = 144;
sizeY = 144;
break;
case 5:
dispSizeW = 144;
dispSizeH = 144;
sizeX = 96;
sizeY = 96;
break;
}
mSizeW = (s16)sizeX;
mSizeH = (s16)sizeY;
mMap = new dMap_c(sizeX, sizeY, dispSizeW, dispSizeH);
mMapJ2DPicture = new J2DPicture(mMap->getResTIMGPointer());
mIsCompass = dComIfGs_isDungeonItemCompass();
mIsMap = dComIfGs_isDungeonItemMap();
field_0x14 = 0;
field_0x2a = 0;
if (dComIfGp_checkMapShow()) {
field_0x2d = 1;
if (!isEnableDispMapAndMapDispSizeTypeNo()) {
field_0x2d = 0;
}
if (!isMapOpenCheck()) {
field_0x2d = 0;
}
} else {
field_0x2d = 0;
}
if (field_0x2d != 0) {
field_0x2d = 1;
field_0x28 = getDispPosInside_OffsetX();
dMeter2Info_setMapStatus(1);
} else {
field_0x2d = 0;
field_0x28 = getDispPosOutSide_OffsetX();
dMeter2Info_setMapStatus(0);
}
field_0x2e = 0;
field_0x28 = 0;
field_0x30 = 0;
field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -354,16 +467,26 @@ asm void dMeterMap_c::_create(J2DScreen* param_0) {
#include "asm/d/meter/d_meter_map/_create__11dMeterMap_cFP9J2DScreen.s"
}
#pragma pop
#endif
/* 8020DC50-8020DCE4 208590 0094+00 1/1 0/0 0/0 .text _delete__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::_delete() {
nofralloc
#include "asm/d/meter/d_meter_map/_delete__11dMeterMap_cFv.s"
void dMeterMap_c::_delete() {
if (mMapJ2DPicture != NULL) {
delete mMapJ2DPicture;
}
if (mMap != NULL) {
delete mMap;
}
if (isEnableDispMapAndMapDispSizeTypeNo()) {
if (field_0x2d != 0) {
dComIfGp_mapShow();
} else {
dComIfGp_mapHide();
}
}
}
#pragma pop
/* ############################################################################################## */
/* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -373,6 +496,50 @@ SECTION_DEAD static char const* const stringBase_80398208 = "F_SP115";
#pragma pop
/* 8020DCE4-8020DF1C 208624 0238+00 0/0 1/1 0/0 .text _move__11dMeterMap_cFUl */
// just regalloc
#ifdef NONMATCHING
void dMeterMap_c::_move(u32 param_0) {
if (!field_0x2b && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118])) {
if (strcmp(dComIfGp_getStartStageName(), "F_SP115") == 0) {
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[119]);
} else {
field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]);
dMeter2Info_setPauseStatus(2);
}
}
int stayNo = dComIfGp_roomControl_getStayNo();
field_0x14 = param_0;
field_0x2a = checkMoveStatus();
if (field_0x2a == 1 || field_0x2a == 2 || field_0x2a == 3 ||
dMeter2Info_getPauseStatus() == 7 ||
dMeter2Info_getPauseStatus() == 2 ||
dMeter2Info_getPauseStatus() == 6 ||
dMeter2Info_getPauseStatus() == 4 ||
dMeter2Info_getPauseStatus() == 3 ||
dMeter2Info_getPauseStatus() == 5) {
ctrlShowMap();
}
if (field_0x2d != 0) {
if (field_0x28 != getDispPosInside_OffsetX()) {
cLib_addCalcAngleS(&field_0x28, getDispPosInside_OffsetX(), 2, 60, 10);
}
}
else {
cLib_addCalcAngleS(&field_0x28, getDispPosOutSide_OffsetX(), 2, 60, 10);
}
Vec map_pos = dMapInfo_n::getMapPlayerPos();
field_0x18 = field_0x28 + getMapDispEdgeLeftX_Layout();
field_0x1c = getMapDispEdgeBottomY_Layout() - mSizeH;
mMap->_move(map_pos.x, map_pos.z, stayNo, map_pos.y);
field_0x30 = dComIfGp_event_runCheck();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -381,32 +548,122 @@ asm void dMeterMap_c::_move(u32 param_0) {
#include "asm/d/meter/d_meter_map/_move__11dMeterMap_cFUl.s"
}
#pragma pop
#endif
/* 8020DF1C-8020DF68 20885C 004C+00 0/0 1/1 0/0 .text _draw__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::_draw() {
nofralloc
#include "asm/d/meter/d_meter_map/_draw__11dMeterMap_cFv.s"
void dMeterMap_c::_draw() {
mMap->_draw();
dComIfGd_set2DOpa(this);
}
#pragma pop
/* 8020DF68-8020E070 2088A8 0108+00 1/0 0/0 0/0 .text draw__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::draw() {
nofralloc
#include "asm/d/meter/d_meter_map/draw__11dMeterMap_cFv.s"
void dMeterMap_c::draw() {
if (mMap != NULL && mMap->isDraw()) {
dComIfGp_getCurrentGrafPort()->setup2D();
f32 sizeX = mSizeW;
f32 sizeY = mSizeH;
f32 tmp2 = field_0x18;
f32 tmp3 = field_0x1c;
mMapJ2DPicture->setAlpha(mMapAlpha);
mMapJ2DPicture->draw(tmp2, tmp3, sizeX, sizeY, false, false, false);
mMapJ2DPicture->calcMtx();
}
}
#pragma pop
/* ############################################################################################## */
/* 80454844-80454848 002E44 0004+00 3/3 0/0 0/0 .sdata2 @4515 */
SECTION_SDATA2 static f32 lit_4515 = -1.0f;
/* 8020E070-8020E45C 2089B0 03EC+00 2/1 0/0 0/0 .text ctrlShowMap__11dMeterMap_cFv */
// matches with literals
#ifdef NONMATCHING
void dMeterMap_c::ctrlShowMap() {
if (!dMeter2Info_isGameStatus(1)) {
if (!isMapOpenCheck() && !isEventRunCheck()) {
if (dMw_LEFT_TRIGGER() || dMw_RIGHT_TRIGGER()) {
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SYS_ERROR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
} else {
if (dMeter2Info_getPauseStatus() == 1 || dMeter2Info_getPauseStatus() == 7 ||
dMeter2Info_getPauseStatus() == 3 || dMeter2Info_getPauseStatus() == 5 ||
dMeter2Info_getPauseStatus() == 2 || dMeter2Info_getPauseStatus() == 6) {
if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) {
setDispPosInsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
dMeter2Info_setMapStatus(1);
}
if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0 && isFmapScreen()) {
switch (dMeter2Info_getPauseStatus()) {
case 1:
dMeter2Info_setMapStatus(4);
break;
case 2:
dMeter2Info_setMapStatus(7);
break;
case 3:
dMeter2Info_setMapStatus(8);
break;
case 5:
dMeter2Info_setMapStatus(9);
break;
case 6:
dMeter2Info_setMapStatus(5);
break;
case 7:
dMeter2Info_setMapStatus(3);
break;
}
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
dMeter2Info_resetPauseStatus();
} else {
if (dMeter2Info_getPauseStatus() == 4) {
dMeter2Info_resetPauseStatus();
if (isDmapScreen()) {
if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) {
setDispPosInsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
dMeter2Info_setMapStatus(1);
}
if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0) {
dMeter2Info_setMapStatus(6);
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
}
} else if (!mDoCPd_c::getTrigUp(0) && !mDoCPd_c::getTrigDown(0)) {
keyCheck();
}
}
if (mIsCompass != dComIfGs_isDungeonItemCompass()) {
if (!isDispPosInsideFlg()) {
setDispPosInsideFlg_SE_On();
dMeter2Info_setMapStatus(1);
}
mIsCompass = dComIfGs_isDungeonItemCompass();
}
if (mIsMap != dComIfGs_isDungeonItemMap()) {
if (!isDispPosInsideFlg()) {
setDispPosInsideFlg_SE_On();
dMeter2Info_setMapStatus(1);
}
mIsMap = dComIfGs_isDungeonItemMap();
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -415,48 +672,117 @@ asm void dMeterMap_c::ctrlShowMap() {
#include "asm/d/meter/d_meter_map/ctrlShowMap__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 8020E45C-8020E4C8 208D9C 006C+00 1/1 0/0 0/0 .text checkMoveStatus__11dMeterMap_cFv */
// field_0x2d compare is weird
#ifdef NONMATCHING
u8 dMeterMap_c::checkMoveStatus() {
if (isShow(field_0x14)) {
if (isEnableDispMapAndMapDispSizeTypeNo()) {
if (isDispPosInsideFlg()) {
return 1;
}
return 2;
}
return 3;
}
return 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::checkMoveStatus() {
asm u8 dMeterMap_c::checkMoveStatus() {
nofralloc
#include "asm/d/meter/d_meter_map/checkMoveStatus__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 8020E4C8-8020E620 208E08 0158+00 2/2 0/0 0/0 .text isShow__11dMeterMap_cFUl */
// extra gameinfo label load for dComIfGp_event_checkHind
#ifdef NONMATCHING
bool dMeterMap_c::isShow(u32 param_0) {
if ((param_0 & 0x4000) || fopOvlpM_IsDoingReq() || ((param_0 & 0x40) && dComIfGp_event_checkHind(0x100) && !dComIfGp_event_chkEventFlag(0x40)) ||
daPy_getPlayerActorClass()->i_getSumouMode() || (param_0 & 0x200000) || (param_0 & 0x100) ||
(param_0 & 0x80) || (param_0 & 0x40000000) || (param_0 & 0x1000) ||
(param_0 & 0x100000) || (param_0 & 0x20000) || (param_0 & 8) ||
(param_0 & 0x10) || (param_0 & 0x1000000) || (param_0 & 0x800000) ||
(param_0 & 0x20) || (param_0 & 0x4000000) || (param_0 & 0x10000000) ||
(param_0 & 0x800) || (param_0 & 0x20000000) || daPy_getPlayerActorClass()->checkEnemyAttentionLock() || dMeter2Info_isGameStatus(2)) {
return false;
}
return true;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::isShow(u32 param_0) {
asm bool dMeterMap_c::isShow(u32 param_0) {
nofralloc
#include "asm/d/meter/d_meter_map/isShow__11dMeterMap_cFUl.s"
}
#pragma pop
#endif
/* 8020E620-8020E70C 208F60 00EC+00 3/3 0/0 0/0 .text isFmapScreen__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::isFmapScreen() {
nofralloc
#include "asm/d/meter/d_meter_map/isFmapScreen__11dMeterMap_cFv.s"
bool dMeterMap_c::isFmapScreen() {
if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 ||
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 5 ||
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 3 ||
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 4 ||
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6) {
return true;
}
return false;
}
#pragma pop
/* 8020E70C-8020E754 20904C 0048+00 3/3 0/0 0/0 .text isDmapScreen__11dMeterMap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterMap_c::isDmapScreen() {
nofralloc
#include "asm/d/meter/d_meter_map/isDmapScreen__11dMeterMap_cFv.s"
bool dMeterMap_c::isDmapScreen() {
return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 1 ? 1 : 0;
}
#pragma pop
/* 8020E754-8020E9CC 209094 0278+00 0/0 1/1 0/0 .text meter_map_move__11dMeterMap_cFUl */
// matches with literals
#ifdef NONMATCHING
void dMeterMap_c::meter_map_move(u32 param_0) {
if (isShow(param_0) && isMapOpenCheck()) {
if (dMeter2Info_getPauseStatus() == 6) {
if (!dMeter2Info_isSub2DStatus(1) && isFmapScreen()) {
dMeter2Info_setMapStatus(3);
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
dMeter2Info_resetPauseStatus();
} else {
if (dMw_LEFT_TRIGGER() && !dComIfGp_event_runCheck() && !dMsgObject_isTalkNowCheck() &&
(dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) {
if (dMeter2Info_getMapStatus() == 0 && !dMeter2Info_isSub2DStatus(1)) {
if (isFmapScreen() || isDmapScreen()) {
dMeter2Info_setMapStatus(2);
dMeter2Info_setMapKeyDirection(0x200);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
}
}
else if (dMw_RIGHT_TRIGGER() && !dComIfGp_event_runCheck() && !dMsgObject_isTalkNowCheck() &&
(dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) {
if (!dMeter2Info_isSub2DStatus(1)) {
if (isFmapScreen() || isDmapScreen()) {
dMeter2Info_setMapStatus(2);
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
}
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -465,8 +791,62 @@ asm void dMeterMap_c::meter_map_move(u32 param_0) {
#include "asm/d/meter/d_meter_map/meter_map_move__11dMeterMap_cFUl.s"
}
#pragma pop
#endif
/* 8020E9CC-8020ED60 20930C 0394+00 1/1 0/0 0/0 .text keyCheck__11dMeterMap_cFv */
// matches with literals
#ifdef NONMATCHING
void dMeterMap_c::keyCheck() {
if (dMw_LEFT_TRIGGER() && !isEventRunCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) {
if (dMeter2Info_getMapStatus() == 1) {
if (isDispPosInsideFlg()) {
setDispPosOutsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_setMapStatus(0);
}
} else if (dMeter2Info_getMapStatus() == 0) {
if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) {
dMeter2Info_setMapStatus(2);
dMeter2Info_setMapKeyDirection(0x200);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
} else {
setDispPosInsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
dMeter2Info_setMapStatus(1);
}
}
} else if (dMw_RIGHT_TRIGGER() && !isEventRunCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) {
if (dMeter2Info_getMapStatus() == 0) {
if (isEnableDispMapAndMapDispSizeTypeNo()) {
if (!isDispPosInsideFlg()) {
setDispPosInsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
dMeter2Info_setMapStatus(1);
}
} else if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) {
dMeter2Info_setMapStatus(2);
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
}
} else if (dMeter2Info_getMapStatus() == 1 && isDispPosInsideFlg()) {
if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) {
dMeter2Info_setMapStatus(2);
dMeter2Info_setMapKeyDirection(0x400);
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_set2DVibration();
} else {
setDispPosOutsideFlg_SE_On();
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
dMeter2Info_setMapStatus(0);
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -475,5 +855,6 @@ asm void dMeterMap_c::keyCheck() {
#include "asm/d/meter/d_meter_map/keyCheck__11dMeterMap_cFv.s"
}
#pragma pop
#endif
/* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+1 -238
View File
@@ -12,32 +12,8 @@
// Types:
//
struct msg_class {};
struct JKRHeap {
/* 802CE784 */ void getTotalFreeSize();
};
struct JKRArchive {
struct EMountMode {};
};
struct mDoDvdThd_mountXArchive_c {
/* 800161E0 */ void create(char const*, u8, JKRArchive::EMountMode, JKRHeap*);
};
struct mDoCPd_c {
static u8 m_cpadInfo[256];
};
struct jmessage_tControl {};
struct Vec {};
struct cXyz {
/* 8026702C */ bool operator==(Vec const&) const;
};
struct jmessage_tReference {
/* 80228B04 */ jmessage_tReference();
/* 80229034 */ void pageSend();
@@ -58,49 +34,11 @@ struct jmessage_tRenderingProcessor {
/* 8022E12C */ void resetRendering();
};
struct fopAc_ac_c {};
struct daPy_py_c {
static u8 m_midnaActor[4];
};
struct dSv_player_item_record_c {
/* 80033F7C */ void getBombNum(u8) const;
};
struct dSv_player_item_c {
/* 80033030 */ void getItem(int, bool) const;
};
struct dSv_player_get_item_c {
/* 80033E60 */ void onFirstBit(u8);
};
struct dSv_event_tmp_flag_c {
static u8 const tempBitLabels[370 + 2 /* padding */];
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 8003498C */ void onEventBit(u16);
/* 800349A4 */ void offEventBit(u16);
/* 800349BC */ void isEventBit(u16) const;
/* 800349E0 */ void setEventReg(u16, u8);
/* 80034A04 */ void getEventReg(u16) const;
};
struct dMsgString_c {
/* 80249C20 */ dMsgString_c();
/* 80249D28 */ ~dMsgString_c();
};
struct JUTFont {};
struct JKRExpHeap {};
struct dMsgScrnTree_c {
/* 80248954 */ dMsgScrnTree_c(JUTFont*, JKRExpHeap*);
};
@@ -155,154 +93,11 @@ struct dMsgScrnBase_c {
/* 8023C3EC */ void setRubyString(char*);
};
struct J2DTextBox {};
struct COutFont_c {
/* 80225C94 */ COutFont_c(u8);
};
struct dMsgObject_c {
/* 80233284 */ void _create(msg_class*);
/* 80233590 */ void _execute();
/* 802339BC */ void _draw();
/* 80233AE8 */ void _delete();
/* 80233D04 */ void setMessageIndex(u32, u32, bool);
/* 80233E70 */ void setMessageIndexDemo(u32, bool);
/* 80233F84 */ void getMessageIndex(u32);
/* 80233FD8 */ void getRevoMessageIndex(u32);
/* 802340D4 */ void getMessageIndexAlways(u32);
/* 80234128 */ void getMessageIDAlways(u32);
/* 8023413C */ void getMessageGroup(u32);
/* 80234150 */ void waitProc();
/* 80234318 */ void openProc();
/* 802349D8 */ void outnowProc();
/* 80234CCC */ void outwaitProc();
/* 80234FF0 */ void stopProc();
/* 80234FF4 */ void continueProc();
/* 8023531C */ void selectProc();
/* 8023587C */ void selectEndProc();
/* 802358D4 */ void inputProc();
/* 80235AD4 */ void finishProc();
/* 80235CC0 */ void endProc();
/* 80235EBC */ void deleteProc();
/* 8023609C */ void textmodeProc();
/* 802360A0 */ void talkStartInit();
/* 8023670C */ void fukiPosCalc(bool);
/* 802368E4 */ void setStatusLocal(u16);
/* 802368F8 */ void getStatusLocal();
/* 8023690C */ void delete_screen(bool);
/* 802369D8 */ void isSend();
/* 80236BF8 */ void readMessageGroupLocal(mDoDvdThd_mountXArchive_c**);
/* 80236C90 */ void changeFlowGroupLocal(s32);
/* 80236CD4 */ void demoMessageGroupLocal();
/* 80236D00 */ void endFlowGroupLocal();
/* 80236D0C */ void changeGroupLocal(s16);
/* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 802370A8 */ void isGetItemMessage();
/* 802370BC */ void isKanbanMessage();
/* 802370E8 */ void isHowlMessage();
/* 802370FC */ void isMidonaMessage();
/* 80237138 */ void isMidonaNormalTalkWait();
/* 802371B0 */ void isMidonaTalkWait();
/* 802371E4 */ void isPlaceMessage();
/* 802371F8 */ void isBossMessage();
/* 8023720C */ bool isBookMessage();
/* 80237214 */ void isStaffMessage();
/* 80237228 */ void isSaveMessage();
/* 8023723C */ void isTalkMessage();
/* 802372CC */ void getSmellName();
/* 80237334 */ void getPortalName();
/* 8023738C */ void getBombName();
/* 8023741C */ void getInsectName();
/* 80237478 */ void getLetterName();
/* 802374D0 */ void getSelectBombNum();
/* 80237520 */ void onMsgSendControlLocal();
/* 80237530 */ void offMsgSendControlLocal();
/* 80237550 */ void isMsgSendControlLocal();
/* 8023755C */ void onMsgSendLocal();
/* 8023756C */ void offMsgSendLocal();
/* 8023757C */ void isMsgSendLocal();
/* 80237588 */ void isMouthCheckLocal();
/* 8023759C */ void getBombBuyPriceLocal(u8);
/* 802375E4 */ void addSelectBomBag(u8);
/* 80237610 */ void resetSelectBomBag();
/* 8023763C */ void getSelectBombBagIDLocal();
/* 8023768C */ void getSelectBombPriceLocal();
/* 8023773C */ void setEquipBombInfoLocal();
/* 80237748 */ void updateEquipBombInfoLocal();
/* 802378B8 */ void setShopWaitTimer(u8);
/* 802378CC */ void setSelectWordFlagLocal(u8);
/* 802378D4 */ void isHowlHearingModeLocal();
/* 80237934 */ void isCameraCancelFlag();
/* 80237950 */ void onCameraCancelFlag();
/* 80237968 */ void offCameraCancelFlag();
/* 80237980 */ void isKillMessageFlag();
/* 80237994 */ void onKillMessageFlag();
/* 802379AC */ void setKillMessageFlag();
/* 802379D8 */ void setKillMessageFlagLocal();
/* 80237A74 */ void setTalkPartner(fopAc_ac_c*);
/* 80237A88 */ void setNowTalkFlowNo(s16);
/* 80237A9C */ void getNowTalkFlowNo();
/* 80237AB0 */ void setDemoMessage(u32);
/* 80237AE0 */ void setTalkHeap(void*);
/* 80237B10 */ void setTalkHeapLocal(void*);
/* 80237B54 */ void getTalkHeap();
/* 80237B68 */ void isDraw();
/* 80237BFC */ void setButtonStatusLocal();
/* 80237D88 */ void setDemoMessageLocal(u32);
/* 80237DD8 */ void getSmellTypeMessageIDLocal();
/* 80237E04 */ void setSmellTypeLocal(u8);
/* 80237E58 */ void getSelectCursorPosLocal();
/* 80237E68 */ void setSelectCursorPosLocal(u8);
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ void readMessageGroup(mDoDvdThd_mountXArchive_c**);
/* 8023803C */ void changeFlowGroup(s32);
/* 8023806C */ void demoMessageGroup();
/* 80238098 */ void endFlowGroup();
/* 802380C4 */ void changeGroup(s16);
/* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 80238174 */ void getMsgDtPtr();
/* 80238188 */ void setProcessID(unsigned int);
/* 8023819C */ void getActor();
/* 802381C0 */ void getpTalkActor();
/* 802381D4 */ void getIdx();
/* 802381E8 */ void getNodeIdx();
/* 802381FC */ void setStatus(u16);
/* 8023822C */ void getStatus();
/* 80238258 */ void getScrnDrawPtr();
/* 8023826C */ void setTalkActor(fopAc_ac_c*);
/* 8023829C */ void onMsgSendControl();
/* 802382C8 */ void offMsgSendControl();
/* 802382F4 */ void isMsgSendControl();
/* 80238320 */ void onMsgSend();
/* 8023834C */ void offMsgSend();
/* 80238378 */ void isMsgSend();
/* 802383A4 */ void isMouthCheck();
/* 802383D0 */ void getMessageID();
/* 802383E4 */ void getSmellTypeMessageID();
/* 80238410 */ void setSmellType(u8);
/* 80238440 */ void getSelectCursorPos();
/* 8023846C */ void setSelectCursorPos(u8);
/* 8023849C */ void setPortalMessageID(u16);
/* 802384B0 */ void setInsectItemNo(u8);
/* 802384C4 */ void setLetterNameID(u16);
/* 802384D8 */ void setArrowNum(u8);
/* 802384EC */ void setMsgOutputType(u8);
/* 80238500 */ void getMsgOutputType();
/* 80238514 */ void getWord();
/* 80238528 */ void getSelectWord(int);
/* 80238544 */ void setSelectWordFlag(u8);
/* 80238574 */ void getSelectWordFlag();
/* 80238588 */ void isHowlHearingMode();
/* 802385B4 */ void getSelectBombBagID();
/* 802385E0 */ void getSelectBombPrice();
/* 8023860C */ void setEquipBombInfo();
/* 80238638 */ void getItemEquipButton();
/* 8023864C */ void setSelectCancelPos(u8);
};
struct dMsgObject_HowlHIO_c {
/* 80232AEC */ dMsgObject_HowlHIO_c();
/* 80238B94 */ ~dMsgObject_HowlHIO_c();
@@ -313,26 +108,6 @@ struct dMsgObject_HIO_c {
/* 80238BDC */ ~dMsgObject_HIO_c();
};
struct dMeter2_c {
/* 8021F6EC */ void emphasisButtonDelete();
};
struct dMeter2Info_c {
/* 8021C1DC */ void isFloatingMessageVisible();
/* 8021C218 */ void resetFloatingMessage();
/* 8021C238 */ void decMsgKeyWaitTimer();
};
struct dEvt_control_c {
/* 8004368C */ void setPtT(void*);
};
struct dDlst_base_c {};
struct dDlst_list_c {
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
};
struct dDemo_c {
static u8 m_control[4];
static u8 m_mesgControl[4];
@@ -351,8 +126,6 @@ struct Z2SeqMgr {
/* 802AFF8C */ void changeBgmStatus(s32);
};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
@@ -361,12 +134,6 @@ struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct JUtility {
struct TColor {
/* 80193960 */ TColor();
};
};
struct JMessage {
struct TControl {
/* 802A75D4 */ void reset();
@@ -661,15 +428,11 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void sprintf();
extern "C" void strcpy();
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_meter2_info[248];
extern "C" extern u8 data_80450B70[4];
extern "C" u8 m_control__7dDemo_c[4];
extern "C" u8 m_mesgControl__7dDemo_c[4];
@@ -2090,7 +1853,7 @@ asm void dMsgObject_c::setStatus(u16 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgObject_c::getStatus() {
asm u16 dMsgObject_c::getStatus() {
nofralloc
#include "asm/d/msg/d_msg_object/getStatus__12dMsgObject_cFv.s"
}
+1 -1
View File
@@ -287,7 +287,7 @@ asm void mDoMtx_QuatConcat(Quaternion const* param_0, Quaternion const* param_1,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoMtx_MtxToRot(f32 const (*param_0)[4], csXyz* param_1) {
asm void mDoMtx_MtxToRot(MtxP param_0, csXyz* param_1) {
nofralloc
#include "asm/m_Do/m_Do_mtx/mDoMtx_MtxToRot__FPA4_CfP5csXyz.s"
}