mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-09 12:05:52 -04:00
Merge remote-tracking branch 'Upstream/master'
This commit is contained in:
+289
-93
@@ -20,6 +20,7 @@
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "rel/d/a/d_a_crod/d_a_crod.h"
|
||||
#include "rel/d/a/d_a_horse/d_a_horse.h"
|
||||
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
|
||||
|
||||
//
|
||||
@@ -6429,46 +6430,41 @@ 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 void 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 +8405,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 = ¶m_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
|
||||
*/
|
||||
@@ -14470,7 +14485,7 @@ COMPILER_STRIP_GATE(0x80391FEC, &swimOffset);
|
||||
static u8 lit_4409[12];
|
||||
|
||||
/* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */
|
||||
static f32 l_waitBaseAnime[3];
|
||||
static Vec l_waitBaseAnime;
|
||||
|
||||
/* 80425520-8042552C 052240 000C+00 0/1 0/0 0/0 .bss @4410 */
|
||||
#pragma push
|
||||
@@ -15548,8 +15563,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 +15620,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 +16467,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 +16513,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 +17004,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
|
||||
@@ -17963,9 +18036,7 @@ bool daAlink_c::procSlideLandInit(int param_0) {
|
||||
field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.field_0x10;
|
||||
field_0x3198 = 1;
|
||||
field_0x2f99 = 4;
|
||||
field_0x3588.x = l_waitBaseAnime[0];
|
||||
field_0x3588.y = l_waitBaseAnime[1];
|
||||
field_0x3588.z = l_waitBaseAnime[2];
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_FORWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mBackwardLandAnm);
|
||||
field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.field_0x10;
|
||||
@@ -18411,9 +18482,132 @@ static u8 lit_4420[12];
|
||||
#pragma pop
|
||||
|
||||
/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */
|
||||
static f32 l_wolfBaseAnime[3];
|
||||
static Vec l_wolfBaseAnime;
|
||||
|
||||
inline dEvt_control_c& i_dComIfGp_getEvent() {
|
||||
return g_dComIfG_gameInfo.play.getEvent();
|
||||
}
|
||||
|
||||
bool daMidna_c::checkMidnaRealBody() {
|
||||
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
|
||||
}
|
||||
|
||||
/* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */
|
||||
// 1 missing instruction, lots of regalloc. maybe related
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::procCoMetamorphoseInit() {
|
||||
int svar8 = 0;
|
||||
|
||||
if (i_dComIfGp_getEvent().i_isOrderOK()) {
|
||||
if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) {
|
||||
return 0;
|
||||
}
|
||||
mDemo.i_setSpecialDemoType();
|
||||
mDamageTimer = 0;
|
||||
svar8 = 1;
|
||||
}
|
||||
|
||||
if (!commonProcInitNotSameProc(METAMORPHOSE)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
field_0x3198 = svar8;
|
||||
field_0x3008 = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x347c = 1.0f;
|
||||
mFallVoiceInit = 0;
|
||||
|
||||
if ((i_checkWolf() && mDemo.getDemoMode() == 0x39) ||
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x3A)) {
|
||||
field_0x300a = 1;
|
||||
mSpeed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
if (i_checkWolf()) {
|
||||
mCommonCounter = mCollisionRot.x;
|
||||
}
|
||||
} else {
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
if (i_checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) {
|
||||
field_0x3010 = 1;
|
||||
}
|
||||
field_0x300a = 0;
|
||||
|
||||
if (i_checkWolf()) {
|
||||
// Transform Wolf -> Human
|
||||
setSingleAnimeWolfBase(ANM_TRANFORM_HUMAN);
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x347c = 0.5f;
|
||||
field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed;
|
||||
mCommonCounter = mCollisionRot.x;
|
||||
|
||||
daMidna_c* midna = getMidnaActor();
|
||||
if (i_checkMidnaRide() && midna->checkMidnaRealBody() && midna->checkDemoTypeNone()) {
|
||||
midna->changeOriginalDemo();
|
||||
midna->changeDemoMode(15);
|
||||
}
|
||||
} else {
|
||||
// Transform Human -> Wolf
|
||||
if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) {
|
||||
voiceStart(Z2SE_AL_V_TRANSFORM);
|
||||
}
|
||||
setSingleAnimeBase(ANM_TRANSFORM_WOLF);
|
||||
setMetamorphoseModel(1);
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed;
|
||||
|
||||
cXyz pos(mCurrent.mPosition.x + (cM_ssin(mCollisionRot.y) * 100.0f),
|
||||
mCurrent.mPosition.y + 300.0f,
|
||||
mCurrent.mPosition.z + (cM_scos(mCollisionRot.y) * 100.0f));
|
||||
mLinkGndChk.SetPos(&pos);
|
||||
|
||||
f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk);
|
||||
if (gnd_cross != -1000000000.0f) {
|
||||
pos.y = -1000000000.0f;
|
||||
cXyz tmp_4c = mCurrent.mPosition;
|
||||
cXyz tmp_58 = pos;
|
||||
BOOL check = false;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i == 3) {
|
||||
tmp_4c.y = gnd_cross + 5.0f;
|
||||
} else {
|
||||
tmp_4c.y = mCurrent.mPosition.y + field_0x18B0[i].GetWallH();
|
||||
}
|
||||
tmp_58.y = tmp_4c.y;
|
||||
|
||||
if (commonLineCheck(&tmp_4c, &tmp_58) && dBgS_CheckBWallPoly(mLinkLinChk)) {
|
||||
if (dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) {
|
||||
check = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (check) {
|
||||
mCommonCounter = field_0x2ff0;
|
||||
} else {
|
||||
pos -= mCurrent.mPosition;
|
||||
pos.atan2sY_XZ();
|
||||
mCommonCounter = svar8;
|
||||
|
||||
if (cM_deg2s(70.0f) < abs(mCommonCounter)) {
|
||||
mCommonCounter = field_0x2ff0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mCommonCounter = 0;
|
||||
}
|
||||
}
|
||||
mSpeed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3012 = 0;
|
||||
}
|
||||
|
||||
field_0x3484 = mCurrent.mPosition.y;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -18422,6 +18616,7 @@ asm bool daAlink_c::procCoMetamorphoseInit() {
|
||||
#include "asm/d/a/d_a_alink/procCoMetamorphoseInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80392070-8039207C 01E6D0 000C+00 0/1 0/0 0/0 .rodata @74273 */
|
||||
@@ -19258,11 +19453,11 @@ u8 daAlink_c::getClothesChangeWaitTimer() const {
|
||||
|
||||
/* 800D01A8-800D01E0 0CAAE8 0038+00 1/0 0/0 0/0 .text checkHorseStart__9daAlink_cFv */
|
||||
u32 daPy_py_c::getLastSceneMode() {
|
||||
return dComIfGs_getLastSceneMode();
|
||||
return dComIfGs_getLastSceneMode() & 0xF;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkHorseStart() {
|
||||
return checkHorseStart(getLastSceneMode() & 0xF, getStartMode());
|
||||
return checkHorseStart(getLastSceneMode(), getStartMode());
|
||||
}
|
||||
|
||||
/* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv
|
||||
@@ -22110,7 +22305,7 @@ fopAc_ac_c* daAlink_c::getBoomerangActor() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkBoomerangChargeEnd() {
|
||||
asm bool daAlink_c::checkBoomerangChargeEnd() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkBoomerangChargeEnd__9daAlink_cFv.s"
|
||||
}
|
||||
@@ -29505,15 +29700,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
|
||||
*/
|
||||
@@ -31624,12 +31818,14 @@ BOOL daAlink_lockCursor_c::create() {
|
||||
}
|
||||
|
||||
/* 80126350-80126354 120C90 0004+00 0/0 4/0 0/0 .text setAnimation__7J2DPaneFP15J2DAnmTevRegKey */
|
||||
void J2DPane::setAnimation(J2DAnmTevRegKey* param_0) {
|
||||
// void J2DPane::setAnimation(J2DAnmTevRegKey* param_0) {
|
||||
extern "C" void setAnimation__7J2DPaneFP15J2DAnmTevRegKey() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80126354-80126358 120C94 0004+00 0/0 4/0 0/0 .text setAnimation__7J2DPaneFP11J2DAnmColor */
|
||||
void J2DPane::setAnimation(J2DAnmColor* param_0) {
|
||||
// void J2DPane::setAnimation(J2DAnmColor* param_0) {
|
||||
extern "C" void setAnimation__7J2DPaneFP11J2DAnmColor() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+253
-361
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
@@ -23,12 +24,6 @@ struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DAnmLoaderDataBaseFlag {};
|
||||
|
||||
struct J3DAnmLoaderDataBase {
|
||||
/* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -146,6 +141,10 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
inline s8 dComIfGp_getPlayerCameraID(int idx) {
|
||||
return g_dComIfG_gameInfo.play.getPlayerCameraID(idx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453600-80453608 001C00 0004+04 6/6 0/0 0/0 .sdata2 @4215 */
|
||||
SECTION_SDATA2 static f32 lit_4215[1 + 1 /* padding */] = {
|
||||
@@ -302,37 +301,15 @@ asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) {
|
||||
#endif
|
||||
|
||||
/* 8015EA0C-8015EA20 15934C 0014+00 0/0 3/3 0/0 .text setParamData__9daPy_py_cFiiii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s"
|
||||
u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) {
|
||||
return param_3 | (param_0 & 0x3F | (param_1 & 0x1F) << 0xC | param_2 << 0x18);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015EA20-8015EA48 159360 0028+00 0/0 10/10 3/3 .text checkFishingRodItem__9daPy_py_cFi
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
BOOL daPy_py_c::checkFishingRodItem(int i_item_id) {
|
||||
bool is_fishing_item = false;
|
||||
|
||||
if (i_item_id == FISHING_ROD_1 || i_item_id < BEE_ROD || i_item_id <= JEWEL_WORM_ROD) {
|
||||
is_fishing_item = true;
|
||||
}
|
||||
|
||||
return is_fishing_item;
|
||||
BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) {
|
||||
return i_itemNo == FISHING_ROD_1 || (i_itemNo >= BEE_ROD && i_itemNo <= JEWEL_WORM_ROD);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL daPy_py_c::checkFishingRodItem(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkFishingRodItem__9daPy_py_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8015EA48-8015EA88 159388 0040+00 0/0 3/3 0/0 .text checkBombItem__9daPy_py_cFi */
|
||||
#pragma push
|
||||
@@ -345,25 +322,22 @@ asm BOOL daPy_py_c::checkBombItem(int param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 8015EA88-8015EAD8 1593C8 0050+00 0/0 5/5 0/0 .text checkBottleItem__9daPy_py_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL daPy_py_c::checkBottleItem(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s"
|
||||
// is there a way to write this with a switch?
|
||||
BOOL daPy_py_c::checkBottleItem(int i_itemNo) {
|
||||
return (i_itemNo >= EMPTY_BOTTLE && i_itemNo <= FAIRY) || i_itemNo == BEE_CHILD ||
|
||||
i_itemNo == WORM || i_itemNo == FAIRY_DROP || i_itemNo == CHUCHU_BLACK ||
|
||||
(i_itemNo >= CHUCHU_RARE && i_itemNo <= LV3_SOUP);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015EAD8-8015EB40 159418 0068+00 0/0 3/3 0/0 .text checkDrinkBottleItem__9daPy_py_cFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkDrinkBottleItem(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkDrinkBottleItem__9daPy_py_cFi.s"
|
||||
// is there a way to write this with a switch?
|
||||
BOOL daPy_py_c::checkDrinkBottleItem(int i_itemNo) {
|
||||
return (i_itemNo >= RED_BOTTLE && i_itemNo <= HALF_MILK_BOTTLE) || i_itemNo == RED_BOTTLE_2 ||
|
||||
i_itemNo == UGLY_SOUP || i_itemNo == HOT_SPRING || i_itemNo == BEE_CHILD ||
|
||||
i_itemNo == CHUCHU_BLACK || i_itemNo == FAIRY_DROP ||
|
||||
(i_itemNo >= CHUCHU_RARE && i_itemNo != CHUCHU_YELLOW && i_itemNo <= LV3_SOUP);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015EB40-8015EB68 159480 0028+00 0/0 4/4 0/0 .text checkOilBottleItem__9daPy_py_cFi */
|
||||
BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) {
|
||||
@@ -388,14 +362,11 @@ BOOL daPy_py_c::checkHookshotItem(int i_itemNo) {
|
||||
}
|
||||
|
||||
/* 8015EBD8-8015EC28 159518 0050+00 0/0 3/3 0/0 .text checkTradeItem__9daPy_py_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL daPy_py_c::checkTradeItem(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s"
|
||||
BOOL daPy_py_c::checkTradeItem(int i_itemNo) {
|
||||
return (i_itemNo >= LETTER && i_itemNo <= IRIAS_PENDANT) || i_itemNo == ANCIENT_DOCUMENT ||
|
||||
i_itemNo == AIR_LETTER || i_itemNo == ANCIENT_DOCUMENT2 || i_itemNo == RAFRELS_MEMO ||
|
||||
i_itemNo == TKS_LETTER || i_itemNo == ASHS_SCRIBBLING;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015EC28-8015EC48 159568 0020+00 0/0 2/2 0/0 .text checkDungeonWarpItem__9daPy_py_cFi
|
||||
*/
|
||||
@@ -450,33 +421,46 @@ void daPy_anmHeap_c::initData() {
|
||||
}
|
||||
|
||||
/* 8015EDC4-8015EE00 159704 003C+00 0/0 1/1 1/1 .text mallocBuffer__14daPy_anmHeap_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void* daPy_anmHeap_c::mallocBuffer() {
|
||||
void* buf = new (0x20) void*[mBufferSize];
|
||||
mBuffer = buf;
|
||||
mBuffer = new (0x20) char[mBufferSize];
|
||||
return mBuffer;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void* daPy_anmHeap_c::mallocBuffer() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8015EE00-8015EF84 159740 0184+00 0/0 1/1 1/1 .text
|
||||
* createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE.s"
|
||||
void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE heap_type) {
|
||||
u32 size;
|
||||
|
||||
if (heap_type == 4) {
|
||||
size = mBufferSize;
|
||||
} else if (heap_type == 3) {
|
||||
size = 0x50;
|
||||
} else if (heap_type == 0) {
|
||||
size = 0x40;
|
||||
} else if (heap_type == 1) {
|
||||
size = 0x40;
|
||||
} else {
|
||||
size = 0xA0;
|
||||
}
|
||||
|
||||
JKRHeap* tmp;
|
||||
mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20);
|
||||
|
||||
if (heap_type == 4) {
|
||||
char* tmpWork = new char[size];
|
||||
} else if (heap_type == 3) {
|
||||
mDoExt_transAnmBas* tmpTransBas = new mDoExt_transAnmBas(NULL);
|
||||
} else if (heap_type == 0) {
|
||||
J3DAnmTransformKey* tmpTrans = new J3DAnmTransformKey();
|
||||
} else if (heap_type == 1) {
|
||||
J3DAnmTexPattern* tmpTp = new J3DAnmTexPattern();
|
||||
} else {
|
||||
J3DAnmTextureSRTKey* tmpTk = new J3DAnmTextureSRTKey();
|
||||
}
|
||||
|
||||
mDoExt_setCurrentHeap(tmp);
|
||||
mDoExt_adjustSolidHeap(mAnimeHeap);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453648-80453650 001C48 0008+00 1/0 0/0 0/0 .sdata2 sumouArcName$4614 */
|
||||
@@ -519,59 +503,66 @@ SECTION_SDATA2 static char lastGanonArcName[8] = "B_gnd";
|
||||
SECTION_SDATA2 static char pigGanonArcName[8] = "B_mgn";
|
||||
|
||||
/* 8015EF84-8015F068 1598C4 00E4+00 3/3 0/0 0/0 .text loadData__14daPy_anmHeap_cFUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmBase* daPy_anmHeap_c::loadData(u16 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/loadData__14daPy_anmHeap_cFUs.s"
|
||||
void* daPy_anmHeap_c::loadData(u16 id) {
|
||||
if (mArcNo == 0xFFFF) {
|
||||
dComIfGp_getAnmArchive()->readIdxResource(mBuffer, mBufferSize, id);
|
||||
JKRHeap* heap = setAnimeHeap();
|
||||
void* data = J3DAnmLoaderDataBase::load(mBuffer, UNK_FLAG0);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
return data;
|
||||
}
|
||||
|
||||
if (mArcNo == 0) {
|
||||
return dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), id);
|
||||
}
|
||||
|
||||
return dComIfG_getObjectRes(arcName[mArcNo - 1], id);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F068-8015F0D0 1599A8 0068+00 0/0 9/9 5/5 .text loadDataIdx__14daPy_anmHeap_cFUs */
|
||||
J3DAnmBase* daPy_anmHeap_c::loadDataIdx(u16 pID) {
|
||||
J3DAnmBase* tmp;
|
||||
void* daPy_anmHeap_c::loadDataIdx(u16 id) {
|
||||
void* data;
|
||||
|
||||
if (pID == mIdx && mArcNo == 0xffff) {
|
||||
tmp = NULL;
|
||||
if (id == mIdx && mArcNo == 0xFFFF) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mIdx = pID;
|
||||
mArcNo = 0xffff;
|
||||
if (mPriIdx == 0xffff) {
|
||||
tmp = loadData(pID);
|
||||
mIdx = id;
|
||||
mArcNo = 0xFFFF;
|
||||
if (mPriIdx == 0xFFFF) {
|
||||
data = loadData(id);
|
||||
} else {
|
||||
tmp = NULL;
|
||||
data = NULL;
|
||||
}
|
||||
}
|
||||
return tmp;
|
||||
return data;
|
||||
}
|
||||
|
||||
/* 8015F0D0-8015F118 159A10 0048+00 0/0 3/3 0/0 .text loadDataPriIdx__14daPy_anmHeap_cFUs
|
||||
*/
|
||||
J3DAnmBase* daPy_anmHeap_c::loadDataPriIdx(u16 pID) {
|
||||
J3DAnmBase* tmp;
|
||||
void* daPy_anmHeap_c::loadDataPriIdx(u16 id) {
|
||||
void* data;
|
||||
|
||||
if (pID == mPriIdx || mArcNo != 0xffff) {
|
||||
tmp = NULL;
|
||||
if (id == mPriIdx || mArcNo != 0xFFFF) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mPriIdx = pID;
|
||||
tmp = loadData(pID);
|
||||
mPriIdx = id;
|
||||
data = loadData(id);
|
||||
}
|
||||
return tmp;
|
||||
return data;
|
||||
}
|
||||
|
||||
/* 8015F118-8015F168 159A58 0050+00 0/0 5/5 5/5 .text loadDataDemoRID__14daPy_anmHeap_cFUsUs */
|
||||
J3DAnmBase* daPy_anmHeap_c::loadDataDemoRID(u16 pID, u16 pArcNo) {
|
||||
J3DAnmBase* tmp;
|
||||
void* daPy_anmHeap_c::loadDataDemoRID(u16 id, u16 arc_no) {
|
||||
void* data;
|
||||
|
||||
if (pID == mIdx && pArcNo == mArcNo) {
|
||||
tmp = NULL;
|
||||
if (id == mIdx && arc_no == mArcNo) {
|
||||
data = NULL;
|
||||
} else {
|
||||
mIdx = pID;
|
||||
mArcNo = pArcNo;
|
||||
tmp = loadData(pID);
|
||||
mIdx = id;
|
||||
mArcNo = arc_no;
|
||||
data = loadData(id);
|
||||
}
|
||||
return tmp;
|
||||
return data;
|
||||
}
|
||||
|
||||
/* 8015F168-8015F1A0 159AA8 0038+00 1/1 4/4 0/0 .text setAnimeHeap__14daPy_anmHeap_cFv */
|
||||
@@ -582,148 +573,16 @@ JKRHeap* daPy_anmHeap_c::setAnimeHeap() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BA0C0-803BA14C 0171E0 0089+03 1/1 0/0 0/0 .data l_sightDL */
|
||||
SECTION_DATA static u8 l_sightDL[137 + 3 /* padding */] = {
|
||||
0x10,
|
||||
0x00,
|
||||
0x00,
|
||||
0x10,
|
||||
0x40,
|
||||
0xFF,
|
||||
0xFF,
|
||||
0x42,
|
||||
0x80,
|
||||
0x08,
|
||||
0x30,
|
||||
0x3C,
|
||||
0xF3,
|
||||
0xCF,
|
||||
0x00,
|
||||
0x10,
|
||||
0x00,
|
||||
0x00,
|
||||
0x10,
|
||||
0x18,
|
||||
0x3C,
|
||||
0xF3,
|
||||
0xCF,
|
||||
0x00,
|
||||
0x61,
|
||||
0x28,
|
||||
0x38,
|
||||
0x03,
|
||||
0xC0,
|
||||
0x61,
|
||||
0xC0,
|
||||
0x08,
|
||||
0x42,
|
||||
0x8F,
|
||||
0x61,
|
||||
0xC1,
|
||||
0x08,
|
||||
0xE6,
|
||||
0x70,
|
||||
0x61,
|
||||
0x43,
|
||||
0x00,
|
||||
0x00,
|
||||
0x01,
|
||||
0x61,
|
||||
0x40,
|
||||
0x00,
|
||||
0x00,
|
||||
0x06,
|
||||
0x61,
|
||||
0x41,
|
||||
0x00,
|
||||
0x04,
|
||||
0xAD,
|
||||
0x61,
|
||||
0xF3,
|
||||
0x64,
|
||||
0x00,
|
||||
0x00,
|
||||
0x10,
|
||||
0x00,
|
||||
0x00,
|
||||
0x10,
|
||||
0x3F,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x01,
|
||||
0x10,
|
||||
0x00,
|
||||
0x00,
|
||||
0x10,
|
||||
0x09,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x61,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x01,
|
||||
0x98,
|
||||
0x00,
|
||||
0x04,
|
||||
0x01,
|
||||
0x01,
|
||||
0x00,
|
||||
0x01,
|
||||
0x01,
|
||||
0xFF,
|
||||
0x01,
|
||||
0x00,
|
||||
0x00,
|
||||
0x01,
|
||||
0x01,
|
||||
0xFF,
|
||||
0x00,
|
||||
0x01,
|
||||
0x00,
|
||||
0xFF,
|
||||
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,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
SECTION_DATA static u8 l_sightDL[137] = {
|
||||
0x10, 0x00, 0x00, 0x10, 0x40, 0xFF, 0xFF, 0x42, 0x80, 0x08, 0x30, 0x3C, 0xF3, 0xCF, 0x00, 0x10,
|
||||
0x00, 0x00, 0x10, 0x18, 0x3C, 0xF3, 0xCF, 0x00, 0x61, 0x28, 0x38, 0x03, 0xC0, 0x61, 0xC0, 0x08,
|
||||
0x42, 0x8F, 0x61, 0xC1, 0x08, 0xE6, 0x70, 0x61, 0x43, 0x00, 0x00, 0x01, 0x61, 0x40, 0x00, 0x00,
|
||||
0x06, 0x61, 0x41, 0x00, 0x04, 0xAD, 0x61, 0xF3, 0x64, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00,
|
||||
0x00, 0x01, 0x98, 0x00, 0x04, 0x01, 0x01, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x01, 0x01,
|
||||
0xFF, 0x00, 0x01, 0x00, 0xFF, 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, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80453678-8045367C 001C78 0004+00 1/1 0/0 0/0 .sdata2 @4668 */
|
||||
@@ -759,14 +618,10 @@ asm void daPy_sightPacket_c::setSight() {
|
||||
|
||||
/* 8015F384-8015F398 159CC4 0014+00 0/0 1/1 0/0 .text
|
||||
* setSightImage__18daPy_sightPacket_cFP7ResTIMG */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_sightPacket_c::setSightImage(ResTIMG* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setSightImage__18daPy_sightPacket_cFP7ResTIMG.s"
|
||||
void daPy_sightPacket_c::setSightImage(ResTIMG* p_img) {
|
||||
mpImg = p_img;
|
||||
mpData = (u8*)p_img + p_img->texDataOffset;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F398-8015F3C4 159CD8 002C+00 0/0 8/8 10/10 .text checkMasterSwordEquip__9daPy_py_cFv */
|
||||
BOOL daPy_py_c::checkMasterSwordEquip() {
|
||||
@@ -811,72 +666,74 @@ s16 daPy_py_c::checkNowWolfEyeUp() {
|
||||
|
||||
/* 8015F438-8015F478 159D78 0040+00 0/0 0/0 1/1 .text forceRestartRoom__9daPy_py_cFiUli
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/forceRestartRoom__9daPy_py_cFiUli.s"
|
||||
// move these inlines?
|
||||
inline BOOL i_dComIfGp_event_runCheck() {
|
||||
return g_dComIfG_gameInfo.play.getEvent().runCheck();
|
||||
}
|
||||
|
||||
void daAlink_c::startRestartRoomFromOut(int param_0, u32 param_1, int param_2) {
|
||||
startRestartRoom(param_1, param_2, param_0, i_dComIfGp_event_runCheck());
|
||||
}
|
||||
|
||||
void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) {
|
||||
daAlink_getAlinkActorClass()->startRestartRoomFromOut(param_0, param_1, param_2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F478-8015F4B8 159DB8 0040+00 0/0 0/0 3/3 .text
|
||||
* setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi */
|
||||
#ifdef NONMATCHING
|
||||
void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) {
|
||||
daAlink_getAlinkActorClass()->setFmChainPosFromOut(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
/* 8015F4B8-8015F4F0 159DF8 0038+00 0/0 0/0 1/1 .text cancelFmChainGrab__9daPy_py_cFv */
|
||||
void daPy_py_c::cancelFmChainGrab() {
|
||||
daAlink_getAlinkActorClass()->cancelFmChainGrabFromOut();
|
||||
}
|
||||
|
||||
/* 8015F4F0-8015F520 159E30 0030+00 0/0 0/0 17/17 .text setLookPos__9daPy_py_cFP4cXyz */
|
||||
void daPy_py_c::setLookPos(cXyz* p_pos) {
|
||||
daAlink_getAlinkActorClass()->setLookPosFromOut(p_pos);
|
||||
}
|
||||
|
||||
/* 8015F520-8015F55C 159E60 003C+00 0/0 0/0 4/4 .text setPlayerSe__9daPy_py_cFUl */
|
||||
void daPy_py_c::setPlayerSe(u32 se_id) {
|
||||
daAlink_getAlinkActorClass()->seStartOnlyReverb(se_id);
|
||||
}
|
||||
|
||||
/* 8015F55C-8015F60C 159E9C 00B0+00 1/1 0/0 2/2 .text
|
||||
* linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
inline daPy_py_c* daPy_getPlayerActorClass() {
|
||||
return (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
}
|
||||
|
||||
bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* p_ac) {
|
||||
bool check_carry = false;
|
||||
bool ret = false;
|
||||
|
||||
if (fopAcM_checkCarryNow(p_ac)) {
|
||||
if (daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(p_ac)) {
|
||||
check_carry = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (check_carry && dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2) != 0) {
|
||||
ret = true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8015F4B8-8015F4F0 159DF8 0038+00 0/0 0/0 1/1 .text cancelFmChainGrab__9daPy_py_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::cancelFmChainGrab() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/cancelFmChainGrab__9daPy_py_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F4F0-8015F520 159E30 0030+00 0/0 0/0 17/17 .text setLookPos__9daPy_py_cFP4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setLookPos(cXyz* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setLookPos__9daPy_py_cFP4cXyz.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F520-8015F55C 159E60 003C+00 0/0 0/0 4/4 .text setPlayerSe__9daPy_py_cFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setPlayerSe(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setPlayerSe__9daPy_py_cFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F55C-8015F60C 159E9C 00B0+00 1/1 0/0 2/2 .text
|
||||
* linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) {
|
||||
asm bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8015F60C-8015F660 159F4C 0054+00 0/0 0/0 2/2 .text
|
||||
* wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */
|
||||
@@ -889,36 +746,47 @@ asm void daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
u32 daPy_py_c::getLastSceneMode() {
|
||||
return dComIfGs_getLastSceneMode() & 0xF;
|
||||
}
|
||||
|
||||
/* 8015F660-8015F698 159FA0 0038+00 2/2 1/1 1/1 .text checkRoomRestartStart__9daPy_py_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkRoomRestartStart() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkRoomRestartStart__9daPy_py_cFv.s"
|
||||
bool daPy_py_c::checkRoomRestartStart() {
|
||||
u8 mode = getLastSceneMode();
|
||||
|
||||
if (mode == 4 || mode == 8 || mode == 5) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
inline dStage_stageDt_c* dComIfGp_getStage() {
|
||||
return &g_dComIfG_gameInfo.play.getStage();
|
||||
}
|
||||
|
||||
inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) {
|
||||
return param_0->field_0x09 >> 1 & 0x1f;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F698-8015F730 159FD8 0098+00 0/0 2/2 1/1 .text checkCarryStartLightBallA__9daPy_py_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 daPy_py_c::checkCarryStartLightBallA() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s"
|
||||
u32 daPy_py_c::checkCarryStartLightBallA() {
|
||||
if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() ||
|
||||
dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) {
|
||||
return FALSE;
|
||||
}
|
||||
return dComIfGs_getLastSceneMode() & 0x100000;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F730-8015F7C8 15A070 0098+00 0/0 2/2 1/1 .text checkCarryStartLightBallB__9daPy_py_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 daPy_py_c::checkCarryStartLightBallB() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s"
|
||||
u32 daPy_py_c::checkCarryStartLightBallB() {
|
||||
if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() ||
|
||||
dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) {
|
||||
return FALSE;
|
||||
}
|
||||
return dComIfGs_getLastSceneMode() & 0x80000;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
float daPy_py_c::getSpinnerRideSpeed() const {
|
||||
float rideSpeed;
|
||||
@@ -942,14 +810,9 @@ asm void daPy_py_c::checkSpinnerReflectEffect() {
|
||||
|
||||
/* 8015F89C-8015F8C8 15A1DC 002C+00 0/0 0/0 7/7 .text checkBoomerangCharge__9daPy_py_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkBoomerangCharge() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/checkBoomerangCharge__9daPy_py_cFv.s"
|
||||
bool daPy_py_c::checkBoomerangCharge() {
|
||||
return daAlink_getAlinkActorClass()->checkBoomerangChargeEnd();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F8C8-8015F8D0 15A208 0008+00 0/0 0/0 1/1 .text checkBoomerangChargeTime__9daPy_py_cFv */
|
||||
bool daPy_py_c::checkBoomerangChargeTime() {
|
||||
@@ -964,46 +827,74 @@ daBoomerang_c* daPy_py_c::getThrowBoomerangActor() {
|
||||
|
||||
/* 8015F8E4-8015F914 15A224 0030+00 0/0 0/0 2/2 .text
|
||||
* cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c.s"
|
||||
void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* p_ac) {
|
||||
daAlink_getAlinkActorClass()->cancelBoomerangLock(p_ac);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F914-8015F954 15A254 0040+00 0/0 0/0 2/2 .text setPlayerDamage__9daPy_py_cFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setPlayerDamage(int param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setPlayerDamage__9daPy_py_cFii.s"
|
||||
void daPy_py_c::setPlayerDamage(int param_0, int param_1) {
|
||||
daAlink_getAlinkActorClass()->setDamagePoint(param_0, 0, param_1, 0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F954-8015F968 15A294 0014+00 0/0 3/3 0/0 .text setMidnaMotionNum__9daPy_py_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setMidnaMotionNum(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setMidnaMotionNum__9daPy_py_cFi.s"
|
||||
void daPy_py_c::setMidnaMotionNum(int motion_num) {
|
||||
if (m_midnaActor != NULL) {
|
||||
m_midnaActor->setMotionNum(motion_num);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F968-8015F97C 15A2A8 0014+00 0/0 3/3 0/0 .text setMidnaFaceNum__9daPy_py_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::setMidnaFaceNum(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_player/setMidnaFaceNum__9daPy_py_cFi.s"
|
||||
void daPy_py_c::setMidnaFaceNum(int face_num) {
|
||||
if (m_midnaActor != NULL) {
|
||||
m_midnaActor->setFaceNum(face_num);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015F97C-8015FA2C 15A2BC 00B0+00 0/0 7/7 2/2 .text daPy_addCalcShort__FPsssss */
|
||||
// 1 instruction in wrong place
|
||||
#ifdef NONMATCHING
|
||||
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
|
||||
s16 temp_r0;
|
||||
s16 temp_r0_2;
|
||||
s16 temp_r8;
|
||||
s16 temp_r9;
|
||||
s32 temp_r10;
|
||||
s32 temp_r4;
|
||||
s32 temp_r5;
|
||||
s32 phi_r4;
|
||||
|
||||
temp_r8 = *param_0;
|
||||
temp_r9 = (s16)param_1;
|
||||
temp_r10 = temp_r9 - temp_r8;
|
||||
|
||||
if (temp_r8 != temp_r9) {
|
||||
temp_r5 = temp_r10 / param_2;
|
||||
temp_r0 = (s16)param_4;
|
||||
if (temp_r5 > temp_r0 || temp_r5 < -temp_r0) {
|
||||
temp_r0_2 = param_3;
|
||||
temp_r4 = -temp_r0_2;
|
||||
phi_r4 = temp_r4;
|
||||
if (temp_r5 < temp_r4) {
|
||||
phi_r4 = temp_r5;
|
||||
} else if (temp_r5 > temp_r0_2) {
|
||||
phi_r4 = temp_r0_2;
|
||||
}
|
||||
*param_0 += phi_r4;
|
||||
} else if (temp_r10 >= 0) {
|
||||
*param_0 = temp_r8 + param_4;
|
||||
if (temp_r9 - *param_0 <= 0) {
|
||||
*param_0 = param_1;
|
||||
}
|
||||
} else {
|
||||
*param_0 = temp_r8 - param_4;
|
||||
if (temp_r9 - *param_0 >= 0) {
|
||||
*param_0 = param_1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return temp_r9 - *param_0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1012,6 +903,7 @@ asm void daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3,
|
||||
#include "asm/d/a/d_a_player/daPy_addCalcShort__FPsssss.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BA14C-803BA160 01726C 0010+04 0/0 4/4 0/0 .data __vt__18daPy_sightPacket_c */
|
||||
|
||||
+1
-1
@@ -533,7 +533,7 @@ bool dBgS::GetUnderwaterRoofCode(cBgS_PolyInfo const& poly) {
|
||||
}
|
||||
|
||||
/* 80074E00-80074E50 06F740 0050+00 0/0 13/13 5/5 .text GetWallCode__4dBgSFRC13cBgS_PolyInfo */
|
||||
bool dBgS::GetWallCode(cBgS_PolyInfo const& poly) {
|
||||
s32 dBgS::GetWallCode(cBgS_PolyInfo const& poly) {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetWallCode(poly);
|
||||
|
||||
+1
-1
@@ -1157,7 +1157,7 @@ asm void dBgW::GetLinkNo(cBgS_PolyInfo const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dBgW::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
asm s32 dBgW::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
|
||||
@@ -761,7 +761,7 @@ asm void dBgWKCol::GetLinkNo(cBgS_PolyInfo const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
asm s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
@@ -392,7 +388,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
inline u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) {
|
||||
inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) {
|
||||
return param_0->field_0x09 >> 1 & 0x1f;
|
||||
}
|
||||
|
||||
|
||||
@@ -2216,7 +2216,8 @@ asm void J2DPane::makeMatrix(f32 param_0, f32 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 80053C3C-80053C44 04E57C 0008+00 0/0 1/0 0/0 .text getTypeID__7J2DPaneCFv */
|
||||
s32 J2DPane::getTypeID() const {
|
||||
// s32 J2DPane::getTypeID() const {
|
||||
extern "C" s32 getTypeID__7J2DPaneCFv() {
|
||||
return 16;
|
||||
}
|
||||
|
||||
@@ -3097,7 +3098,8 @@ s32 dDlst_shadowRealPoly_c::getTriMax() {
|
||||
|
||||
/* 800569B0-800569B4 0512F0 0004+00 1/0 7/0 0/0 .text
|
||||
* searchUpdateMaterialID__10J2DAnmBaseFP9J2DScreen */
|
||||
void J2DAnmBase::searchUpdateMaterialID(J2DScreen* param_0) {
|
||||
// void J2DAnmBase::searchUpdateMaterialID(J2DScreen* param_0) {
|
||||
extern "C" void searchUpdateMaterialID__10J2DAnmBaseFP9J2DScreen() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
|
||||
+4
-7
@@ -31,10 +31,6 @@ struct mDoGph_gInf_c {
|
||||
static u8 mZbufferTimg[4];
|
||||
};
|
||||
|
||||
struct mDoExt_transAnmBas {
|
||||
/* 8003C784 */ ~mDoExt_transAnmBas();
|
||||
};
|
||||
|
||||
struct dBgWKCol {
|
||||
/* 8007E7D0 */ void initKCollision(void*);
|
||||
};
|
||||
@@ -996,8 +992,8 @@ asm void* dRes_control_c::getRes(char const* param_0, char const* param_1, dRes_
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c* param_2,
|
||||
int param_3) {
|
||||
asm void* dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c* param_2,
|
||||
int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci.s"
|
||||
}
|
||||
@@ -1096,7 +1092,8 @@ s32 J3DAnmTransform::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm mDoExt_transAnmBas::~mDoExt_transAnmBas() {
|
||||
// asm mDoExt_transAnmBas::~mDoExt_transAnmBas() {
|
||||
extern "C" asm void __dt__18mDoExt_transAnmBasFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__18mDoExt_transAnmBasFv.s"
|
||||
}
|
||||
|
||||
+918
-323
File diff suppressed because it is too large
Load Diff
@@ -3177,7 +3177,7 @@ asm void dKy_depth_dist_set(void* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dKy_darkworld_check() {
|
||||
asm bool dKy_darkworld_check() {
|
||||
nofralloc
|
||||
#include "asm/d/kankyo/d_kankyo/dKy_darkworld_check__Fv.s"
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+152
-152
@@ -4,125 +4,160 @@
|
||||
//
|
||||
|
||||
#include "d/menu/d_menu_window_HIO.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dSv_player_get_item_c {
|
||||
/* 80033EC8 */ void isFirstBit(u8) const;
|
||||
};
|
||||
|
||||
struct dMw_HIO_c {
|
||||
/* 801F9AFC */ dMw_HIO_c();
|
||||
/* 801F9B38 */ void init();
|
||||
/* 801F9E14 */ bool getBombFlag();
|
||||
/* 801F9E1C */ bool getArrowFlag();
|
||||
/* 801F9E24 */ bool getPachinkoFlag();
|
||||
/* 801F9EE0 */ ~dMw_HIO_c();
|
||||
};
|
||||
|
||||
struct dMw_DHIO_c {
|
||||
/* 801F9E2C */ dMw_DHIO_c();
|
||||
/* 801F9E98 */ ~dMw_DHIO_c();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__9dMw_HIO_cFv();
|
||||
extern "C" void init__9dMw_HIO_cFv();
|
||||
extern "C" bool getBombFlag__9dMw_HIO_cFv();
|
||||
extern "C" bool getArrowFlag__9dMw_HIO_cFv();
|
||||
extern "C" bool getPachinkoFlag__9dMw_HIO_cFv();
|
||||
extern "C" void __ct__10dMw_DHIO_cFv();
|
||||
extern "C" void __dt__10dMw_DHIO_cFv();
|
||||
extern "C" void __dt__9dMw_HIO_cFv();
|
||||
extern "C" void __sinit_d_menu_window_HIO_cpp();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void isFirstBit__21dSv_player_get_item_cCFUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BE8E0-803BE8EC 01BA00 000C+00 2/2 0/0 0/0 .data __vt__10dMw_DHIO_c */
|
||||
SECTION_DATA extern void* __vt__10dMw_DHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10dMw_DHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803BE8EC-803BE8F8 01BA0C 000C+00 2/2 0/0 0/0 .data __vt__9dMw_HIO_c */
|
||||
SECTION_DATA extern void* __vt__9dMw_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__9dMw_HIO_cFv,
|
||||
};
|
||||
inline int dComIfGs_isItemFirstBit(u8 i_no) {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no);
|
||||
}
|
||||
|
||||
/* 801F9AFC-801F9B38 1F443C 003C+00 1/1 0/0 0/0 .text __ct__9dMw_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMw_HIO_c::dMw_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s"
|
||||
dMw_HIO_c::dMw_HIO_c() {
|
||||
init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450748-8045074C 0001C8 0003+01 1/1 0/0 0/0 .sdata m_cloth_item$3797 */
|
||||
SECTION_SDATA static u8 m_cloth_item[3 + 1 /* padding */] = {
|
||||
0x2F,
|
||||
0x30,
|
||||
0x31,
|
||||
/* padding */
|
||||
0x00,
|
||||
static u8 m_cloth_item[3] = {
|
||||
WEAR_KOKIRI,
|
||||
ARMOR,
|
||||
WEAR_ZORA,
|
||||
};
|
||||
|
||||
/* 8045074C-80450750 0001CC 0004+00 1/1 0/0 0/0 .sdata m_sword_item$3798 */
|
||||
SECTION_SDATA static u8 m_sword_item[4] = {
|
||||
0x28,
|
||||
0x29,
|
||||
0x49,
|
||||
0x3F,
|
||||
static u8 m_sword_item[4] = {
|
||||
SWORD,
|
||||
MASTER_SWORD,
|
||||
LIGHT_SWORD,
|
||||
WOOD_STICK,
|
||||
};
|
||||
|
||||
/* 80450750-80450758 0001D0 0003+05 1/1 0/0 0/0 .sdata m_shield_item$3799 */
|
||||
SECTION_SDATA static u8 m_shield_item[3 + 5 /* padding */] = {
|
||||
0x2B,
|
||||
0x2C,
|
||||
0x2A,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
static u8 m_shield_item[3] = {
|
||||
SHIELD,
|
||||
HYLIA_SHIELD,
|
||||
WOOD_SHIELD,
|
||||
};
|
||||
|
||||
/* 801F9B38-801F9E14 1F4478 02DC+00 1/1 0/0 0/0 .text init__9dMw_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_HIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s"
|
||||
void dMw_HIO_c::init() {
|
||||
mArrowFlag = 0;
|
||||
mBombFlag = 0;
|
||||
mPachinkoFlag = 0;
|
||||
|
||||
mLifeCopy = 0;
|
||||
mLife = 0;
|
||||
mMaxLifeCopy = 0;
|
||||
mMaxLife = 0;
|
||||
mMagicCopy = 0;
|
||||
mMagic = 0;
|
||||
mMaxMagicCopy = 0;
|
||||
mMaxMagic = 0;
|
||||
mOilCopy = 0;
|
||||
mOil = 0;
|
||||
mMaxOilCopy = 0;
|
||||
mMaxOil = 0;
|
||||
mOxygenCopy = 0;
|
||||
mOxygen = 0;
|
||||
mMaxOxygenCopy = 0;
|
||||
mMaxOxygen = 0;
|
||||
mEnableMagicCopy = false;
|
||||
mEnableMagic = false;
|
||||
mEnableArrowDropsCopy = false;
|
||||
mEnableArrowDrops = false;
|
||||
mRupeesCopy = 0;
|
||||
mRupees = 0;
|
||||
mWalletSizeCopy = WALLET;
|
||||
mWalletSize = WALLET;
|
||||
mKeysCopy = 0;
|
||||
mKeys = 0;
|
||||
field_0x47 = 0;
|
||||
field_0x23 = 0;
|
||||
mEnableOxygenMeterCopy = false;
|
||||
mEnableOxygenMeter = false;
|
||||
mPoesCopy = 0;
|
||||
mPoes = 0;
|
||||
mDonationAmountCopy = 0;
|
||||
mDonationAmount = 0;
|
||||
|
||||
for (int i = 0; i < 24; i++) {
|
||||
mItemsCopy[i] = NO_ITEM;
|
||||
mItems[i] = NO_ITEM;
|
||||
field_0x7a[i] = 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mBottleNumCopy[i] = 0;
|
||||
mBottleNum[i] = 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mBombNumCopy[i] = 0;
|
||||
mBombNum[i] = 0;
|
||||
}
|
||||
|
||||
mScentCopy = NO_ITEM;
|
||||
mScent = NO_ITEM;
|
||||
field_0xa8 = 0;
|
||||
field_0xf4 = 0;
|
||||
field_0xea = 0;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
bool swordBit = dComIfGs_isItemFirstBit(m_sword_item[i]);
|
||||
mSwordsCopy[i] = swordBit;
|
||||
mSwords[i] = swordBit;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
bool shieldBit = dComIfGs_isItemFirstBit(m_shield_item[i]);
|
||||
mShieldsCopy[i] = shieldBit;
|
||||
mShields[i] = shieldBit;
|
||||
|
||||
bool clothesBit = dComIfGs_isItemFirstBit(m_cloth_item[i]);
|
||||
mClothesCopy[i] = clothesBit;
|
||||
mClothes[i] = clothesBit;
|
||||
}
|
||||
|
||||
mBombBagLV2Copy = false;
|
||||
mBombBagLV2 = false;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mLV2KeyShardsCopy[i] = false;
|
||||
mLV2KeyShards[i] = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mLV5ItemCopy[i] = false;
|
||||
mLV5Item[i] = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 24; i++) {
|
||||
mGoldBugCopy[i] = false;
|
||||
mGoldBug[i] = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x101[i] = 0;
|
||||
field_0xf9[i] = 0;
|
||||
field_0x111[i] = 0;
|
||||
field_0x109[i] = 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mFusedShadowCopy[i] = false;
|
||||
mFusedShadow[i] = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mMirrorShardCopy[i] = false;
|
||||
mMirrorShard[i] = false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9E14-801F9E1C 1F4754 0008+00 0/0 1/1 0/0 .text getBombFlag__9dMw_HIO_cFv */
|
||||
bool dMw_HIO_c::getBombFlag() {
|
||||
@@ -140,64 +175,29 @@ bool dMw_HIO_c::getPachinkoFlag() {
|
||||
}
|
||||
|
||||
/* 801F9E2C-801F9E98 1F476C 006C+00 1/1 0/0 0/0 .text __ct__10dMw_DHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMw_DHIO_c::dMw_DHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s"
|
||||
dMw_DHIO_c::dMw_DHIO_c() {
|
||||
for (int i = 0; i < 32; i++) {
|
||||
mMap[i] = false;
|
||||
mCompass[i] = false;
|
||||
mBossKey[i] = false;
|
||||
mBossClear[i] = false;
|
||||
mHeartContainer[i] = false;
|
||||
mBossDemo[i] = false;
|
||||
mPortal[i] = false;
|
||||
mMidBossClear[i] = false;
|
||||
mMapCopy[i] = false;
|
||||
mCompassCopy[i] = false;
|
||||
mBossKeyCopy[i] = false;
|
||||
mBossClearCopy[i] = false;
|
||||
mHeartContainerCopy[i] = false;
|
||||
mBossDemoCopy[i] = false;
|
||||
mPortalCopy[i] = false;
|
||||
mMidBossClearCopy[i] = false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9E98-801F9EE0 1F47D8 0048+00 2/1 0/0 0/0 .text __dt__10dMw_DHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMw_DHIO_c::~dMw_DHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9EE0-801F9F28 1F4820 0048+00 2/1 0/0 0/0 .text __dt__9dMw_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMw_HIO_c::~dMw_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8042E860-8042E86C 05B580 000C+00 1/1 0/0 0/0 .bss @3773 */
|
||||
static u8 lit_3773[12];
|
||||
|
||||
/* 8042E86C-8042E99C 05B58C 0130+00 0/1 4/4 0/0 .bss g_mwHIO */
|
||||
extern u8 g_mwHIO[304];
|
||||
u8 g_mwHIO[304];
|
||||
|
||||
/* 8042E99C-8042E9A8 05B6BC 000C+00 0/1 0/0 0/0 .bss @3774 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 lit_3774[12];
|
||||
#pragma pop
|
||||
dMw_HIO_c g_mwHIO;
|
||||
|
||||
/* 8042E9A8-8042EBB0 05B6C8 0208+00 0/1 1/1 0/0 .bss g_mwDHIO */
|
||||
extern u8 g_mwDHIO[520];
|
||||
u8 g_mwDHIO[520];
|
||||
|
||||
/* 801F9F28-801F9F84 1F4868 005C+00 0/0 1/0 0/0 .text __sinit_d_menu_window_HIO_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_menu_window_HIO_cpp() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x801F9F28, __sinit_d_menu_window_HIO_cpp);
|
||||
#pragma pop
|
||||
dMw_DHIO_c g_mwDHIO;
|
||||
|
||||
+338
-60
@@ -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,
|
||||
@@ -308,31 +301,332 @@ SECTION_SDATA2 static u8 lit_4662[4] = {
|
||||
/* 804549CC-804549D0 002FCC 0004+00 13/13 0/0 0/0 .sdata2 @4663 */
|
||||
SECTION_SDATA2 static f32 lit_4663 = 1.0f;
|
||||
|
||||
/* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2_c::_create() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/_create__9dMeter2_cFv.s"
|
||||
inline u16 dComIfGs_getLife() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife();
|
||||
}
|
||||
|
||||
inline u16 i_dComIfGs_getRupee() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getRupee();
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_getRStatus() {
|
||||
return g_dComIfG_gameInfo.play.getRStatus();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setBottleStatus(u8 param_0, u8 param_1) {
|
||||
g_dComIfG_gameInfo.play.setBottleStatus(param_0, param_1);
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_getDoStatus() {
|
||||
return g_dComIfG_gameInfo.play.getDoStatus();
|
||||
}
|
||||
|
||||
inline void dMeter2Info_offUseButton(int flag) {
|
||||
g_meter2_info.offUseButton(flag);
|
||||
}
|
||||
|
||||
/* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */
|
||||
// this can be cleaned up with float literals when everything else is decompiled
|
||||
int dMeter2_c::_create() {
|
||||
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
|
||||
if (dStage_stagInfo_GetUpButton(stag_info) == 1) {
|
||||
mpHeap = fopMsgM_createExpHeap(0x5A400, NULL);
|
||||
} else {
|
||||
mpHeap = fopMsgM_createExpHeap(0x60800, NULL);
|
||||
}
|
||||
|
||||
JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
mpHeap->getTotalFreeSize();
|
||||
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP00")) {
|
||||
dMeter2Info_setNowCount(0);
|
||||
dMeter2Info_setMaxCount(0);
|
||||
}
|
||||
|
||||
field_0x128 = 0;
|
||||
field_0x12c = field_0x128;
|
||||
field_0x124 = 0;
|
||||
mSubContents = 0;
|
||||
mSubContentsStringType = 0;
|
||||
field_0x1e6 = 0;
|
||||
field_0x1e7 = 0;
|
||||
|
||||
mItemMaxNum[2] = dComIfGs_getArrowMax();
|
||||
mArrowNum = dComIfGs_getArrowNum();
|
||||
mItemMaxNum[3] = dComIfGs_getPachinkoMax();
|
||||
mPachinkoNum = dComIfGs_getPachinkoNum();
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mBombMax[i] = dComIfGs_getBombMax(dComIfGs_getItem((u8)(i + SLOT_15), 1));
|
||||
mBombNum[i] = dComIfGs_getBombNum(i);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mItemMaxNum[i] = dComIfGs_getSelectItemIndex(i);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mBottleNum[i] = dComIfGs_getBottleNum(i);
|
||||
}
|
||||
|
||||
field_0x1e8 = 0;
|
||||
field_0x1e9 = 0;
|
||||
field_0x1ea = 0;
|
||||
field_0x1eb = 0;
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
field_0x1b8[i] = 0;
|
||||
}
|
||||
|
||||
field_0x1ec = 0;
|
||||
field_0x1ed = 0;
|
||||
field_0x1ee = 0;
|
||||
|
||||
mNowLifeGauge = dComIfGs_getLife();
|
||||
dComIfGp_setItemNowLife((u8)mNowLifeGauge);
|
||||
|
||||
mMaxLife = dComIfGs_getMaxLife();
|
||||
|
||||
mNowMagic = dComIfGs_getMagic();
|
||||
dComIfGp_setItemNowMagic(mNowMagic);
|
||||
|
||||
mMaxMagic = dComIfGs_getMaxMagic();
|
||||
|
||||
mNowOil = dComIfGs_getOil();
|
||||
dComIfGp_setItemNowOil(mNowOil);
|
||||
|
||||
mMaxOil = dComIfGs_getMaxOil();
|
||||
|
||||
mNowOxygen = dComIfGp_getOxygen();
|
||||
dComIfGp_setNowOxygen(mNowOxygen);
|
||||
|
||||
mMaxOxygen = dComIfGp_getMaxOxygen();
|
||||
|
||||
field_0x130 = FLOAT_LABEL(lit_4662);
|
||||
|
||||
u8 dark_area = dComIfGp_getStartStageDarkArea();
|
||||
mLightDropNum = dComIfGs_getLightDropNum(dark_area);
|
||||
|
||||
mNeedLightDropNum = dComIfGp_getNeedLightDropNum();
|
||||
|
||||
mRupeeNum = i_dComIfGs_getRupee();
|
||||
mKeyNum = dComIfGs_getKeyNum();
|
||||
|
||||
field_0x1c4 = dComIfGp_getDoStatus();
|
||||
field_0x1dc = dComIfGp_isDoSetFlag(2);
|
||||
|
||||
int i = 0;
|
||||
f32 temp0 = FLOAT_LABEL(lit_4662);
|
||||
for (; i < 2; i++) {
|
||||
field_0x134[i] = temp0;
|
||||
field_0x13c[i] = temp0;
|
||||
}
|
||||
field_0x144 = lit_4663;
|
||||
|
||||
field_0x1c5 = dComIfGp_getAStatus();
|
||||
field_0x1c6 = 0;
|
||||
field_0x1dd = dComIfGp_isASetFlag(2);
|
||||
|
||||
i = 0;
|
||||
f32 temp1 = FLOAT_LABEL(lit_4662);
|
||||
for (; i < 2; i++) {
|
||||
field_0x148[i] = temp1;
|
||||
field_0x150[i] = temp1;
|
||||
}
|
||||
field_0x158 = lit_4663;
|
||||
|
||||
field_0x1e4 = 0;
|
||||
field_0x1e2 = dComIfGs_getSelectEquipSword();
|
||||
field_0x1e3 = 0;
|
||||
|
||||
field_0x1fe = 0;
|
||||
field_0x1fd = 0;
|
||||
field_0x1ff = 0;
|
||||
field_0x200 = 0;
|
||||
field_0x201 = 0;
|
||||
|
||||
field_0x1c7 = dComIfGs_getCollectSmell();
|
||||
field_0x1c8 = dComIfGp_getRStatus();
|
||||
field_0x1de = dComIfGp_isRSetFlag(2);
|
||||
field_0x1df = dComIfGp_isXSetFlag(2);
|
||||
field_0x1e0 = dComIfGp_isYSetFlag(2);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dComIfGp_setSelectItem(i);
|
||||
}
|
||||
|
||||
field_0x1d2[0] = dComIfGp_getSelectItem(0);
|
||||
field_0x1d2[2] = dComIfGp_getSelectItem(1);
|
||||
field_0x1d2[1] = dComIfGp_getXStatus();
|
||||
field_0x1d2[3] = dComIfGp_getYStatus();
|
||||
f32 temp2 = FLOAT_LABEL(lit_4662);
|
||||
field_0x188 = temp2;
|
||||
field_0x18c = temp2;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1d6[i] = dMeter2Info_isDirectUseItem(i);
|
||||
field_0x1d8[i] = dComIfGp_getSelectItemNum(i);
|
||||
}
|
||||
|
||||
field_0x1e1 = 0;
|
||||
field_0x1b4 = 0;
|
||||
|
||||
f32 temp3 = FLOAT_LABEL(lit_4662);
|
||||
field_0x15c = temp3;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
field_0x160[i] = temp3;
|
||||
field_0x174[i] = temp3;
|
||||
}
|
||||
field_0x190 = 0;
|
||||
|
||||
field_0x1c9 = dComIfGp_getZStatus();
|
||||
field_0x1ca = dComIfGp_get3DStatus();
|
||||
field_0x1cb = dComIfGp_getCStickStatus();
|
||||
field_0x1cc = dComIfGp_getSButtonStatus();
|
||||
field_0x1cd = dComIfGp_getNunStatus();
|
||||
field_0x1ce = dComIfGp_getRemoConStatus();
|
||||
field_0x1cf = dComIfGp_getNunZStatus();
|
||||
field_0x1d0 = dComIfGp_getNunCStatus();
|
||||
field_0x1d1 = dComIfGp_getBottleStatus();
|
||||
|
||||
field_0x1ac = dMeter2Info_isUseButton(16);
|
||||
field_0x19a = 0;
|
||||
|
||||
mpMeterDraw = new dMeter2Draw_c(mpHeap);
|
||||
|
||||
field_0x130 = mpMeterDraw->getNowLightDropRateCalc();
|
||||
mpHeap->getTotalFreeSize();
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x128 == 0) {
|
||||
if (field_0x1d2[i * 2] == BOMB_BAG_LV1 || field_0x1d2[i * 2] == NORMAL_BOMB ||
|
||||
field_0x1d2[i * 2] == WATER_BOMB || field_0x1d2[i * 2] == POKE_BOMB) {
|
||||
mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i),
|
||||
dComIfGp_getSelectItemMaxNum(i));
|
||||
} else if (field_0x1d2[i * 2] == BEE_CHILD) {
|
||||
mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i),
|
||||
dComIfGp_getSelectItemMaxNum(i));
|
||||
} else if (field_0x1d2[i * 2] == BOW || field_0x1d2[i * 2] == LIGHT_ARROW ||
|
||||
field_0x1d2[i * 2] == ARROW_LV1 || field_0x1d2[i * 2] == ARROW_LV2 ||
|
||||
field_0x1d2[i * 2] == ARROW_LV3 || field_0x1d2[i * 2] == HAWK_ARROW) {
|
||||
mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax());
|
||||
} else if (field_0x1d2[i * 2] == PACHINKO) {
|
||||
mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax());
|
||||
} else if (field_0x1d2[i * 2] == BOMB_ARROW) {
|
||||
u8 item_num = dComIfGp_getSelectItemNum(i);
|
||||
u8 item_max = dComIfGp_getSelectItemMaxNum(i);
|
||||
if (item_num > mArrowNum) {
|
||||
item_num = mArrowNum;
|
||||
}
|
||||
u8 temp = dComIfGs_getArrowMax() & 0xFF;
|
||||
if (item_max < temp) {
|
||||
item_max = temp;
|
||||
}
|
||||
mpMeterDraw->setItemNum(i, item_num, item_max);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mpMap = NULL;
|
||||
if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) {
|
||||
mpMap = new dMeterMap_c(mpMeterDraw->getMainScreenPtr());
|
||||
} else {
|
||||
if (g_meter2_info.mMapStatus == 2) {
|
||||
g_meter2_info.mMapStatus = 0;
|
||||
}
|
||||
}
|
||||
dMeter2Info_setMeterMapClass(mpMap);
|
||||
|
||||
mpHeap->getTotalFreeSize();
|
||||
mpSubHeap = fopMsgM_createExpHeap(0x5000, mpHeap);
|
||||
field_0x108 = NULL;
|
||||
field_0x110 = NULL;
|
||||
field_0x114 = NULL;
|
||||
field_0x118 = NULL;
|
||||
|
||||
mpHeap->getTotalFreeSize();
|
||||
field_0x11c = NULL;
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
return 4;
|
||||
}
|
||||
|
||||
inline BOOL dComIfGs_isEventBit(u16 id) {
|
||||
return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id);
|
||||
}
|
||||
|
||||
inline BOOL dComIfGp_event_runCheck() {
|
||||
return g_dComIfG_gameInfo.play.getEvent().runCheck();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021F128-8021F370 219A68 0248+00 1/1 0/0 0/0 .text _execute__9dMeter2_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2_c::_execute() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/_execute__9dMeter2_cFv.s"
|
||||
int dMeter2_c::_execute() {
|
||||
JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
|
||||
if (!dComIfGs_isCollectMirror(0) && dComIfGs_isEventBit(0x5420)) {
|
||||
dComIfGs_onCollectMirror(0);
|
||||
}
|
||||
|
||||
if (!dComIfGs_isCollectCrystal(3) && dComIfGs_isEventBit(0x5410)) {
|
||||
dComIfGs_onCollectCrystal(3);
|
||||
}
|
||||
|
||||
checkStatus();
|
||||
mpMeterDraw->exec(field_0x124);
|
||||
|
||||
moveLife();
|
||||
moveKantera();
|
||||
moveOxygen();
|
||||
moveLightDrop();
|
||||
moveRupee();
|
||||
moveKey();
|
||||
moveButtonXY();
|
||||
moveButtonA();
|
||||
moveButtonB();
|
||||
moveButtonR();
|
||||
moveButtonZ();
|
||||
moveButton3D();
|
||||
moveButtonC();
|
||||
moveButtonS();
|
||||
moveButtonCross();
|
||||
moveTouchSubMenu();
|
||||
moveBombNum();
|
||||
moveArrowNum();
|
||||
movePachinkoNum();
|
||||
moveBottleNum();
|
||||
|
||||
if (mpMap != NULL) {
|
||||
mpMap->_move(field_0x124);
|
||||
} else {
|
||||
dMeterMap_c::meter_map_move(field_0x124);
|
||||
}
|
||||
|
||||
moveSubContents();
|
||||
move2DContents();
|
||||
|
||||
if (!dComIfGp_isPauseFlag() && !dComIfGp_event_runCheck()) {
|
||||
dMeter2Info_decHotSpringTimer();
|
||||
}
|
||||
|
||||
dMeter2Info_allUseButton();
|
||||
dMeter2Info_offUseButton(0x800);
|
||||
dMeter2Info_resetGameStatus();
|
||||
dComIfGp_setNunStatus(0, 0, 0);
|
||||
dComIfGp_setRemoConStatus(0, 0, 0);
|
||||
dComIfGp_setNunZStatus(0, 0);
|
||||
dComIfGp_setNunCStatus(0, 0);
|
||||
dComIfGp_setBottleStatus(0, 0);
|
||||
dComIfGp_setCStickStatus(0, 0, 0);
|
||||
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021F370-8021F49C 219CB0 012C+00 1/1 0/0 0/0 .text _draw__9dMeter2_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2_c::_draw() {
|
||||
asm int dMeter2_c::_draw() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/_draw__9dMeter2_cFv.s"
|
||||
}
|
||||
@@ -350,7 +644,7 @@ SECTION_SDATA2 static f32 lit_4837[1 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2_c::_delete() {
|
||||
asm int dMeter2_c::_delete() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/_delete__9dMeter2_cFv.s"
|
||||
}
|
||||
@@ -367,15 +661,16 @@ asm void dMeter2_c::emphasisButtonDelete() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021F780-8021F7B0 21A0C0 0030+00 0/0 0/0 1/1 .text setLifeZero__9dMeter2_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2_c::setLifeZero() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/setLifeZero__9dMeter2_cFv.s"
|
||||
inline void i_dComIfGp_setItemLifeCount(f32 amount, u8 type) {
|
||||
g_dComIfG_gameInfo.play.setItemLifeCount(amount, type);
|
||||
}
|
||||
|
||||
/* 8021F780-8021F7B0 21A0C0 0030+00 0/0 0/0 1/1 .text setLifeZero__9dMeter2_cFv */
|
||||
void dMeter2_c::setLifeZero() {
|
||||
dComIfGs_setLife(1);
|
||||
setNowLifeGauge(1);
|
||||
i_dComIfGp_setItemLifeCount(lit_4837[0], 0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BFA28-803BFA54 -00001 002C+00 1/1 0/0 0/0 .data @5038 */
|
||||
@@ -831,45 +1126,30 @@ asm void dMeter2_c::isPachinkoEquip() {
|
||||
#pragma pop
|
||||
|
||||
/* 80225AA0-80225AC0 2203E0 0020+00 1/0 0/0 0/0 .text dMeter2_Draw__FP9dMeter2_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dMeter2_Draw(dMeter2_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/dMeter2_Draw__FP9dMeter2_c.s"
|
||||
static int dMeter2_Draw(dMeter2_c* p_meter) {
|
||||
return p_meter->_draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225AC0-80225AE0 220400 0020+00 1/0 0/0 0/0 .text dMeter2_Execute__FP9dMeter2_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dMeter2_Execute(dMeter2_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/dMeter2_Execute__FP9dMeter2_c.s"
|
||||
static int dMeter2_Execute(dMeter2_c* p_meter) {
|
||||
return p_meter->_execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225AE0-80225AE8 220420 0008+00 1/0 0/0 0/0 .text dMeter2_IsDelete__FP9dMeter2_c */
|
||||
static bool dMeter2_IsDelete(dMeter2_c* param_0) {
|
||||
return true;
|
||||
static int dMeter2_IsDelete(dMeter2_c* p_meter) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80225AE8-80225B08 220428 0020+00 1/0 0/0 0/0 .text dMeter2_Delete__FP9dMeter2_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dMeter2_Delete(dMeter2_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/dMeter2_Delete__FP9dMeter2_c.s"
|
||||
static int dMeter2_Delete(dMeter2_c* p_meter) {
|
||||
return p_meter->_delete();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225B08-80225BB8 220448 00B0+00 1/0 0/0 0/0 .text dMeter2_Create__FP9msg_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dMeter2_Create(msg_class* param_0) {
|
||||
static asm int dMeter2_Create(msg_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2/dMeter2_Create__FP9msg_class.s"
|
||||
}
|
||||
@@ -877,10 +1157,8 @@ static asm void dMeter2_Create(msg_class* param_0) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BFA54-803BFA68 -00001 0014+00 1/0 0/0 0/0 .data l_dMeter2_Method */
|
||||
SECTION_DATA static void* l_dMeter2_Method[5] = {
|
||||
(void*)dMeter2_Create__FP9msg_class, (void*)dMeter2_Delete__FP9dMeter2_c,
|
||||
(void*)dMeter2_Execute__FP9dMeter2_c, (void*)dMeter2_IsDelete__FP9dMeter2_c,
|
||||
(void*)dMeter2_Draw__FP9dMeter2_c,
|
||||
SECTION_DATA static dMeter2_Method l_dMeter2_Method[5] = {
|
||||
(dMeter2_Method)dMeter2_Create, dMeter2_Delete, dMeter2_Execute, dMeter2_IsDelete, dMeter2_Draw,
|
||||
};
|
||||
|
||||
/* 803BFA68-803BFA90 -00001 0028+00 0/0 0/0 1/0 .data g_profile_METER2 */
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
//
|
||||
|
||||
#include "d/meter/d_meter2_draw.h"
|
||||
#include "JSystem/J2DGraph/J2DAnmLoader.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/meter/d_meter_HIO.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,35 +14,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dSv_player_item_c {
|
||||
/* 80033030 */ void getItem(int, bool) const;
|
||||
};
|
||||
|
||||
struct dSv_light_drop_c {
|
||||
/* 80034340 */ void getLightDropNum(u8) const;
|
||||
/* 8003439C */ void isLightDropGetFlag(u8) const;
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dMsgObject_c {
|
||||
/* 802370E8 */ void isHowlMessage();
|
||||
/* 8023822C */ void getStatus();
|
||||
};
|
||||
|
||||
struct JMSMesgEntry_c {};
|
||||
|
||||
struct dMeter2Info_c {
|
||||
/* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*);
|
||||
/* 8021C370 */ void getStringKana(u32, char*, JMSMesgEntry_c*);
|
||||
/* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*);
|
||||
/* 8021C950 */ void isDirectUseItem(int);
|
||||
/* 8021CF08 */ void readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*,
|
||||
J2DPicture*, void*, J2DPicture*, int);
|
||||
};
|
||||
|
||||
struct dKantera_icon_c {
|
||||
/* 801AE938 */ dKantera_icon_c();
|
||||
/* 801AEB7C */ void setAlphaRate(f32);
|
||||
@@ -48,12 +22,6 @@ struct dKantera_icon_c {
|
||||
/* 801AEC44 */ void setNowGauge(u16, u16);
|
||||
};
|
||||
|
||||
struct dItem_data {
|
||||
static void* item_resource[1530];
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
@@ -63,10 +31,6 @@ struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct J2DAnmLoaderDataBase {
|
||||
/* 80308A6C */ void load(void const*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -258,13 +222,8 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" void* item_resource__10dItem_data[1530];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_drawHIO[3880];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
@@ -745,6 +704,60 @@ SECTION_DEAD static char const* const stringBase_80398A0A = "zelda_game_image_sa
|
||||
#pragma pop
|
||||
|
||||
/* 80211E64-80212190 20C7A4 032C+00 1/1 0/0 0/0 .text initMagic__13dMeter2Draw_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::initMagic() {
|
||||
field_0x550 = 0.0f;
|
||||
field_0x554 = 0.0f;
|
||||
|
||||
mpMagicParent = new CPaneMgr(mpKanteraScreen, 'magic_n', 2, NULL);
|
||||
mpMagicBase = new CPaneMgr(mpKanteraScreen, 'mm_base', 0, NULL);
|
||||
mpMagicFrameL = new CPaneMgr(mpKanteraScreen, 'm_w_l_n', 2, NULL);
|
||||
mpMagicFrameR = new CPaneMgr(mpKanteraScreen, 'm_w_r_n', 2, NULL);
|
||||
mpMagicMeter = new CPaneMgr(mpKanteraScreen, 'mm_00', 0, NULL);
|
||||
|
||||
void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x53c = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x540 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x540->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x544 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x544->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
field_0x558 = 0.0f;
|
||||
mpMagicParent->setAlphaRate(0.0f);
|
||||
|
||||
f32 offsetX = g_drawHIO.mLifeTopPosX;
|
||||
f32 offsetY = 0.0f;
|
||||
|
||||
if (dComIfGs_getMaxLife() <= 50) {
|
||||
offsetY = g_drawHIO.mLifeTopPosY;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x5fc[i] = 0.0f;
|
||||
field_0x742[i] = 0;
|
||||
}
|
||||
|
||||
u8 magic = dComIfGs_getMagic();
|
||||
u8 max_magic = dComIfGs_getMaxMagic();
|
||||
drawMagic(max_magic, magic, g_drawHIO.mMagicMeterPosX + offsetX,
|
||||
g_drawHIO.mMagicMeterPosY + offsetY);
|
||||
setAlphaMagicChange(true);
|
||||
|
||||
u16 oil = dComIfGs_getOil();
|
||||
u16 max_oil = dComIfGs_getMaxOil();
|
||||
drawKantera(max_oil, oil, g_drawHIO.mLanternMeterPosX + offsetX,
|
||||
g_drawHIO.mLanternMeterPosY + (g_drawHIO.mNoMagicPosY + offsetY));
|
||||
setAlphaKanteraChange(true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -753,6 +766,7 @@ asm void dMeter2Draw_c::initMagic() {
|
||||
#include "asm/d/meter/d_meter2_draw/initMagic__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80398640-803986C0 024CA0 0080+00 0/1 0/0 0/0 .rodata tuta_0$5094 */
|
||||
@@ -1072,6 +1086,26 @@ asm void dMeter2Draw_c::drawKanteraScreen(u8 param_0) {
|
||||
SECTION_SDATA2 static f32 lit_6175 = 0.03125f;
|
||||
|
||||
/* 80215290-80215380 20FBD0 00F0+00 1/1 0/0 0/0 .text drawMagic__13dMeter2Draw_cFssff */
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::drawMagic(s16 max_count, s16 now_count, f32 x_pos, f32 y_pos) {
|
||||
f32 x_diff = mpMagicFrameR->getInitPosX() - mpMagicFrameL->getInitPosX();
|
||||
|
||||
field_0x584 = mpMagicMeter->getInitSizeX() * (lit_6175 * now_count);
|
||||
field_0x590 = mpMagicMeter->getInitSizeY();
|
||||
|
||||
field_0x59c = mpMagicFrameL->getInitPosX() * x_diff * (max_count * lit_6175);
|
||||
field_0x5a8 = mpMagicFrameL->getInitPosY();
|
||||
|
||||
field_0x5b4 = mpMagicBase->getInitSizeX() * (max_count * lit_6175);
|
||||
field_0x5c0 = mpMagicBase->getInitSizeY();
|
||||
|
||||
field_0x5cc = g_drawHIO.mMagicMeterScale;
|
||||
field_0x5d8 = g_drawHIO.mMagicMeterScale;
|
||||
|
||||
field_0x5e4 = x_pos;
|
||||
field_0x5f0 = y_pos;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1080,6 +1114,7 @@ asm void dMeter2Draw_c::drawMagic(s16 param_0, s16 param_1, f32 param_2, f32 par
|
||||
#include "asm/d/meter/d_meter2_draw/drawMagic__13dMeter2Draw_cFssff.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80215380-802154A8 20FCC0 0128+00 2/2 0/0 0/0 .text setAlphaMagicChange__13dMeter2Draw_cFb */
|
||||
#pragma push
|
||||
@@ -1207,7 +1242,7 @@ void dMeter2Draw_c::setAlphaLightDropChange(bool param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getNowLightDropRateCalc() {
|
||||
asm f32 dMeter2Draw_c::getNowLightDropRateCalc() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getNowLightDropRateCalc__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
+28
-54
@@ -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() {
|
||||
@@ -1875,65 +1897,17 @@ extern "C" asm void __dt__16dMeter_drawHIO_cFv() {
|
||||
/* 8020123C-80201284 1FBB7C 0048+00 2/1 0/0 0/0 .text __dt__16dMeter_menuHIO_cFv */
|
||||
dMeter_menuHIO_c::~dMeter_menuHIO_c() {}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8042EBB0-8042EBBC 05B8D0 000C+00 1/1 0/0 0/0 .bss @3766 */
|
||||
static u8 lit_3766[12];
|
||||
|
||||
/* 8042EBBC-8042EBC8 05B8DC 000C+00 0/1 0/0 0/0 .bss @3767 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 lit_3767[12];
|
||||
#pragma pop
|
||||
/* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */
|
||||
dMeter_menuHIO_c g_menuHIO;
|
||||
|
||||
/* 8042EBC8-8042FAF0 05B8E8 0F28+00 0/1 157/157 0/0 .bss g_drawHIO */
|
||||
extern u8 g_drawHIO[3880];
|
||||
u8 g_drawHIO[3880];
|
||||
|
||||
/* 8042FAF0-8042FAFC 05C810 000C+00 0/1 0/0 0/0 .bss @3768 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 lit_3768[12];
|
||||
#pragma pop
|
||||
dMeter_drawHIO_c g_drawHIO;
|
||||
|
||||
/* 8042FAFC-8042FC54 05C81C 0158+00 0/1 19/19 0/0 .bss g_ringHIO */
|
||||
extern u8 g_ringHIO[344];
|
||||
u8 g_ringHIO[344];
|
||||
|
||||
/* 8042FC54-8042FC60 05C974 000C+00 0/1 0/0 0/0 .bss @3769 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 lit_3769[12];
|
||||
#pragma pop
|
||||
dMeter_ringHIO_c g_ringHIO;
|
||||
|
||||
/* 8042FC60-80430104 05C980 04A4+00 0/1 54/54 0/0 .bss g_fmapHIO */
|
||||
extern u8 g_fmapHIO[1188];
|
||||
u8 g_fmapHIO[1188];
|
||||
|
||||
/* 80430104-80430110 05CE24 000C+00 0/1 0/0 0/0 .bss @3770 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 lit_3770[12];
|
||||
#pragma pop
|
||||
dMeter_fmapHIO_c g_fmapHIO;
|
||||
|
||||
/* 80430110-80430158 05CE30 0044+04 0/1 6/6 1/1 .bss g_cursorHIO */
|
||||
extern u8 g_cursorHIO[68 + 4 /* padding */];
|
||||
u8 g_cursorHIO[68 + 4 /* padding */];
|
||||
|
||||
/* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */
|
||||
extern u8 g_menuHIO[8];
|
||||
u8 g_menuHIO[8];
|
||||
|
||||
/* 80201284-80201328 1FBBC4 00A4+00 0/0 1/0 0/0 .text __sinit_d_meter_HIO_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_meter_HIO_cpp() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter_HIO/__sinit_d_meter_HIO_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80201284, __sinit_d_meter_HIO_cpp);
|
||||
#pragma pop
|
||||
dMeter_cursorHIO_c g_cursorHIO;
|
||||
|
||||
+580
-182
@@ -4,67 +4,13 @@
|
||||
//
|
||||
|
||||
#include "d/meter/d_meter_map.h"
|
||||
#include "Z2AudioLib/Z2AudioMgr.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/menu/d_menu_window.h"
|
||||
#include "d/msg/d_msg_object.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*);
|
||||
};
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
|
||||
//
|
||||
// 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 void 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,31 @@ 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 +301,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 +365,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 +469,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 +498,46 @@ 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 +546,127 @@ 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 +675,122 @@ 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 +799,71 @@ 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 +872,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
-239
@@ -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,10 @@ 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 +107,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 +125,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 +133,6 @@ struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JUtility {
|
||||
struct TColor {
|
||||
/* 80193960 */ TColor();
|
||||
};
|
||||
};
|
||||
|
||||
struct JMessage {
|
||||
struct TControl {
|
||||
/* 802A75D4 */ void reset();
|
||||
@@ -661,15 +427,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 +1852,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"
|
||||
}
|
||||
|
||||
@@ -1970,20 +1970,22 @@ SECTION_DEAD static char const* const pad_80379296 = "\0";
|
||||
/* 80035BD0-80035C88 030510 00B8+00 0/0 3/3 0/0 .text initdata_to_card__10dSv_info_cFPci
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void dSv_info_c::initdata_to_card(char* param_0, int fileNo) {
|
||||
int dSv_info_c::initdata_to_card(char* param_0, int fileNo) {
|
||||
char* ptr = param_0 + (fileNo * 0xa94);
|
||||
dSv_save_c tmp;
|
||||
|
||||
tmp.init();
|
||||
tmp.getPlayer().getPlayerInfo().setPlayerName("");
|
||||
tmp.getPlayer().getPlayerInfo().setHorseName("");
|
||||
memcpy(¶m_0 + fileNo * 0xa94, &tmp, 0x958);
|
||||
memcpy(&ptr, &tmp, 0x958);
|
||||
printf("INIT size:%d\n", 0x958);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSv_info_c::initdata_to_card(char* param_0, int param_1) {
|
||||
asm int dSv_info_c::initdata_to_card(char* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save/initdata_to_card__10dSv_info_cFPci.s"
|
||||
}
|
||||
|
||||
@@ -553,7 +553,7 @@ s32 fopAcM_create(s16 procName, u16 enemyNo, u32 parameter, const cXyz* pPos, in
|
||||
fopAcM_prm_class* params =
|
||||
createAppend(enemyNo, parameter, pPos, roomNo, pRot, pScale, subType, 0xFFFFFFFF);
|
||||
if (params == NULL) {
|
||||
return 0xFFFFFFFF;
|
||||
return -1;
|
||||
} else {
|
||||
return fpcSCtRq_Request(fpcLy_CurrentLayer(), procName, (stdCreateFunc)pCreateFunc, NULL,
|
||||
params);
|
||||
|
||||
@@ -40,8 +40,6 @@ struct dMeter2Info_c {
|
||||
/* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*);
|
||||
};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct cMl {
|
||||
/* 80263228 */ void memalignB(int, u32);
|
||||
};
|
||||
|
||||
@@ -60,7 +60,7 @@ s32 fpcLf_Create(leafdraw_class* pLeaf) {
|
||||
profDef = (leaf_process_profile_definition*)pLeaf->mBase.mpProf;
|
||||
pLeaf->mpDrawMtd = profDef->mLfDrwMth;
|
||||
pLeaf->mBase.mSubType = fpcBs_MakeOfType(&g_fpcLf_type);
|
||||
fpcDwPi_Init(&pLeaf->mDwPi, profDef->unk20);
|
||||
fpcDwPi_Init(&pLeaf->mDwPi, profDef->mPriority);
|
||||
pLeaf->mbUnk0 = 0;
|
||||
}
|
||||
return fpcMtd_Create(&pLeaf->mpDrawMtd->mBase, pLeaf);
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user