summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2023-12-08 15:02:34 -0500
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2023-12-08 15:02:34 -0500
commit009b4fb35e5a1d010fcf98590dfbcc7071fc28f8 (patch)
tree9bfe43176d1a4ed528aac99f600f9694e0c9077e /src
parent46ffaf283912a736ce6dc6922a4fb31b17cbe708 (diff)
d_a_player_food done
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_player_food.inc32
-rw-r--r--src/d/actor/d_a_player_main.cpp32
2 files changed, 47 insertions, 17 deletions
diff --git a/src/d/actor/d_a_player_food.inc b/src/d/actor/d_a_player_food.inc
index 15b734fe..c633943a 100644
--- a/src/d/actor/d_a_player_food.inc
+++ b/src/d/actor/d_a_player_food.inc
@@ -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 */
diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp
index 5a8809d0..ba19f140 100644
--- a/src/d/actor/d_a_player_main.cpp
+++ b/src/d/actor/d_a_player_main.cpp
@@ -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);