d_a_player_food done

This commit is contained in:
LagoLunatic
2023-12-08 15:02:34 -05:00
parent 46ffaf2839
commit 009b4fb35e
4 changed files with 54 additions and 20 deletions
+3 -3
View File
@@ -2352,7 +2352,7 @@ public:
/* 0x34BA */ u8 m34BA;
/* 0x34BB */ u8 mCurrItemHeapIdx;
/* 0x34BC */ u8 m34BC;
/* 0x34BD */ u8 mLastUsedEquipItem;
/* 0x34BD */ u8 mLastUsedItemButtonIdx;
/* 0x34BE */ u8 m34BE;
/* 0x34BF */ s8 mReverb;
/* 0x34C0 */ u8 mLeftHandIdx;
@@ -2532,9 +2532,9 @@ public:
/* 0x4284 */ dCcD_Cyl mAtCyl;
/* 0x43B4 */ dCcD_Cyl mLightCyl;
/* 0x44E4 */ dCcD_Cps mAtCps[3];
/* 0x488C */ dCcD_Cps mFanWindCps1;
/* 0x488C */ dCcD_Cps mFanWindCps;
/* 0x49C4 */ dCcD_Sph mFanWindSph;
/* 0x4AF0 */ dCcD_Cps mFanWindCps2;
/* 0x4AF0 */ dCcD_Cps mFanLightCps;
struct ProcInitTableEntry {
/* 0x00 */ ProcFunc mProcFunc;
+4
View File
@@ -958,6 +958,10 @@ inline void dComIfGs_setReserveItemEmpty() {
g_dComIfG_gameInfo.save.getPlayer().getBagItem().setReserveItemEmpty();
}
inline void dComIfGs_setReserveBaitEmpty(u8 i_btnIdx) {
g_dComIfG_gameInfo.save.getPlayer().getBagItem().setBaitItemEmpty(i_btnIdx);
}
inline void dComIfGs_setEventReg(u16 i_reg, u8 i_no) {
g_dComIfG_gameInfo.save.getEvent().setEventReg(i_reg, i_no);
}
+31 -1
View File
@@ -112,7 +112,37 @@ BOOL daPy_lk_c::procFoodThrow_init() {
/* 801546F4-80154880 .text procFoodThrow__9daPy_lk_cFv */
BOOL daPy_lk_c::procFoodThrow() {
/* Nonmatching */
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[0];
setShipRidePosUseItem();
if (frameCtrl.getRate() < 0.01f) {
if (mDemo.getDemoType() != 5) {
dComIfGp_evmng_cutEnd(mStaffIdx);
} else {
dComIfGp_event_reset();
u32 playerPID = fopAcM_GetID(this);
dCam_getBody()->EndEventCamera(playerPID);
endDemoMode();
}
} else if (frameCtrl.checkPass(9.0f)) {
seStartOnlyReverb(JA_SE_LK_ESA_THROW);
void* esa = fopAcM_fastCreate(PROC_ESA, 0xFFFF0014, &field_0x2d4, fopAcM_GetRoomNo(this), &shape_angle);
if (esa) {
m3630 = fopAcM_GetID(esa);
if (mDemo.getDemoType() != 5) {
u8 btnIdx = dComIfGp_event_getTalkXYBtn();
if (btnIdx == 1) {
dComIfGs_setReserveBaitEmpty(0);
} else if (btnIdx == 2) {
dComIfGs_setReserveBaitEmpty(1);
} else {
dComIfGs_setReserveBaitEmpty(2);
}
} else {
dComIfGs_setReserveBaitEmpty(mLastUsedItemButtonIdx);
}
}
}
return TRUE;
}
/* 80154880-80154A48 .text procFoodSet_init__9daPy_lk_cFv */
+16 -16
View File
@@ -2405,9 +2405,9 @@ void daPy_lk_c::voiceStart(u32 param_1) {
/* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemButton() const {
if (mLastUsedEquipItem == 0) {
if (mLastUsedItemButtonIdx == 0) {
return m34C9 & 0x04;
} else if (mLastUsedEquipItem == 1) {
} else if (mLastUsedItemButtonIdx == 1) {
return m34C9 & 0x08;
} else {
return m34C9 & 0x10;
@@ -2416,9 +2416,9 @@ BOOL daPy_lk_c::itemButton() const {
/* 801031DC-80103214 .text itemTrigger__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemTrigger() const {
if (mLastUsedEquipItem == 0) {
if (mLastUsedItemButtonIdx == 0) {
return mPressedButtonsBitfield & 0x04;
} else if (mLastUsedEquipItem == 1) {
} else if (mLastUsedItemButtonIdx == 1) {
return mPressedButtonsBitfield & 0x08;
} else {
return mPressedButtonsBitfield & 0x10;
@@ -2449,17 +2449,17 @@ BOOL daPy_lk_c::checkGroupItem(int param_1, int itemNo) {
/* 801032E4-801033E4 .text checkSetItemTrigger__9daPy_lk_cFii */
BOOL daPy_lk_c::checkSetItemTrigger(int param_1, int param_2) {
if (param_2 == 0 || daPy_dmEcallBack_c::m_type != 1) {
if (param_2 == 0 || !daPy_dmEcallBack_c::checkCurse()) {
if (mPressedButtonsBitfield & 0x04 && checkGroupItem(param_1, dComIfGp_getSelectItem(0))) {
mLastUsedEquipItem = 0;
mLastUsedItemButtonIdx = 0;
return TRUE;
}
if (mPressedButtonsBitfield & 0x08 && checkGroupItem(param_1, dComIfGp_getSelectItem(1))) {
mLastUsedEquipItem = 1;
mLastUsedItemButtonIdx = 1;
return TRUE;
}
if (mPressedButtonsBitfield & 0x10 && checkGroupItem(param_1, dComIfGp_getSelectItem(2))) {
mLastUsedEquipItem = 2;
mLastUsedItemButtonIdx = 2;
return TRUE;
}
}
@@ -4320,7 +4320,7 @@ BOOL daPy_lk_c::playerDelete() {
mDoAud_seDeleteObject(&mSwordTopPos);
mDoAud_seDeleteObject(&mRopePos);
mDoAud_seDeleteObject(&m338C.field_0x08);
mDoAud_seDeleteObject(&mFanWindCps1.GetEndP());
mDoAud_seDeleteObject(&mFanWindCps.GetEndP());
for (i = 0; i < (int)ARRAY_SIZE(m_anm_heap_under); i++) {
mDoExt_destroySolidHeap(m_anm_heap_under[i].mpAnimeHeap);
@@ -4636,15 +4636,15 @@ void daPy_lk_c::playerInit() {
mAtCps[2].SetStts(&mStts);
mAtCyl.Set(l_at_cyl_src);
mAtCyl.SetStts(&mStts);
mFanWindCps1.Set(l_fan_wind_cps_src);
mFanWindCps1.SetR(70.0f);
mFanWindCps1.SetStts(&mStts);
mFanWindCps.Set(l_fan_wind_cps_src);
mFanWindCps.SetR(70.0f);
mFanWindCps.SetStts(&mStts);
mFanWindSph.Set(l_fan_wind_sph_src);
mFanWindSph.SetStts(&mStts);
mFanWindCps2.Set(l_fan_wind_cps_src);
mFanWindCps2.SetStts(&mStts);
mFanWindCps2.SetAtType(AT_TYPE_LIGHT);
mFanWindCps2.SetR(20.0f);
mFanLightCps.Set(l_fan_wind_cps_src);
mFanLightCps.SetStts(&mStts);
mFanLightCps.SetAtType(AT_TYPE_LIGHT);
mFanLightCps.SetR(20.0f);
for (int i = 0; i < (int)ARRAY_SIZE(m_anm_heap_under); i++) {
createAnimeHeap(&m_anm_heap_under[i].mpAnimeHeap, HEAP_TYPE_UNDER_UPPER_e);