player_grab 100%, cleanup

This commit is contained in:
LagoLunatic
2025-04-17 00:53:33 -04:00
parent ad22472b1a
commit 7d0c280adf
14 changed files with 566 additions and 604 deletions
+6 -6
View File
@@ -54,7 +54,8 @@ namespace daObjBarrel {
};
const Attr_c& attr() const { return M_attr; }
void get_slant_angle() {}
s16 get_slant_angle() { return m61C; }
void set_slant_angle(s16 angle) { m61C = angle; }
bool pos_init() {
if (mMode == MODE_WAIT) {
current.pos = home.pos;
@@ -66,7 +67,6 @@ namespace daObjBarrel {
}
}
int prm_get_cull() const { return daObj::PrmAbstract<Prm_e>(this, PRM_CULL_W, PRM_CULL_S); }
void set_slant_angle(s16) {}
static BOOL solidHeapCB(fopAc_ac_c*);
bool create_heap();
@@ -132,18 +132,18 @@ namespace daObjBarrel {
/* 0x4A0 */ dCcD_Stts mStts;
/* 0x4DC */ dCcD_Cyl mCyl;
/* 0x60C */ int mMode;
/* 0x610 */ short m610;
/* 0x612 */ short m612;
/* 0x610 */ s16 m610;
/* 0x612 */ s16 m612;
/* 0x614 */ int mTimer;
/* 0x618 */ float mLastGroundY;
/* 0x61C */ short m61C;
/* 0x61C */ s16 m61C;
/* 0x61E */ u8 m61E[0x620 - 0x61E];
/* 0x620 */ bool mOnGround;
/* 0x621 */ s8 mInitTimer;
/* 0x622 */ bool mForceExec;
/* 0x623 */ bool mSunk;
/* 0x624 */ cXyz mMove;
/* 0x630 */ short m630;
/* 0x630 */ s16 m630;
}; // Size: 0x634
STATIC_ASSERT(sizeof(Act_c) == 0x634);
+1 -1
View File
@@ -134,7 +134,7 @@ public:
void setCrane() {}
void setGetOffFirst() {}
void setGetOffSecond() {}
void setPaddleMove() {}
void setPaddleMove() { m034D = 2; }
void setReadyFirst() {}
void setReadySecond() {}
void setStartModeThrow() {}
+3 -3
View File
@@ -71,10 +71,10 @@ void daPy_lk_c::makeArrow() {
/* 8014A180-8014A1CC .text deleteArrow__9daPy_lk_cFv */
void daPy_lk_c::deleteArrow() {
fopAc_ac_c* pfVar1 = mActorKeepEquip.getActor();
fopAc_ac_c* equip_actor = mActorKeepEquip.getActor();
if (pfVar1 != NULL && fopAcM_GetName(pfVar1) == PROC_ARROW) {
fopAcM_delete(pfVar1);
if (equip_actor != NULL && fopAcM_GetName(equip_actor) == PROC_ARROW) {
fopAcM_delete(equip_actor);
mActorKeepEquip.clearData();
}
}
+1 -1
View File
@@ -384,7 +384,7 @@ BOOL daPy_lk_c::procClimbMoveUpDown() {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.0f) {
dVar2 *= -1.0f;
}
(mFrameCtrlUnder[UNDER_MOVE0_e]).setRate(dVar2);
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(dVar2);
checkBgClimbMove();
}
return true;
+1 -1
View File
@@ -36,7 +36,7 @@ f32 daPy_lk_c::getCrawlMoveSpeed() {
fVar1 = fVar1 - 17.0f;
}
return (daPy_HIO_crouch_c0::m.field_0x3C * mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) *
cM_ssin(cM_rad2s(0.18479957f * fVar1));
cM_fsin((M_PI / 17) * fVar1);
}
/* 80138868-801389D0 .text setCrawlMoveDirectionArrow__9daPy_lk_cFv */
+9 -12
View File
@@ -284,7 +284,7 @@ BOOL daPy_lk_c::dProcDamage_init() {
/* 8012DEA0-8012DF24 .text dProcDamage__9daPy_lk_cFv */
BOOL daPy_lk_c::dProcDamage() {
mVelocity = -2.0f * cM_ssin(cM_rad2s(m35A0 * mFrameCtrlUnder[UNDER_MOVE0_e].getFrame()));
mVelocity = -2.0f * cM_fsin(m35A0 * mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
dComIfGp_evmng_cutEnd(mStaffIdx);
}
@@ -345,7 +345,6 @@ BOOL daPy_lk_c::dProcHoldup() {
BOOL daPy_lk_c::dProcOpenTreasure_init() {
float fVar1;
daPy_ANM dVar2;
daBoko_c* pfVar4;
if (mCurProc == daPyProc_DEMO_OPEN_TREASURE_e) {
return true;
@@ -361,13 +360,13 @@ BOOL daPy_lk_c::dProcOpenTreasure_init() {
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 3.0f);
mVelocity = 0.0f;
if (mEquipItem == daPyItem_BOKO_e) {
pfVar4 = (daBoko_c*)mActorKeepEquip.getActor();
if (pfVar4 != NULL) {
daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor();
if (boko != NULL) {
mDoMtx_trans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z);
mDoMtx_YrotM(mDoMtx_stack_c::now, (shape_angle.y + 0x2000));
MtxP mtx = mDoMtx_stack_c::now;
if (pfVar4->mpModel != NULL) {
pfVar4->mpModel->setBaseTRMtx(mtx);
if (boko->mpModel != NULL) {
boko->mpModel->setBaseTRMtx(mtx);
}
}
}
@@ -1566,8 +1565,6 @@ BOOL daPy_lk_c::dProcStandItemPut_init() {
/* 8013116C-80131274 .text dProcStandItemPut__9daPy_lk_cFv */
BOOL daPy_lk_c::dProcStandItemPut() {
fopAc_ac_c* pfVar2;
if (mProcVar0.m3570 == 1) {
if (m_old_fdata->getOldFrameRate() < 0.01f) {
setSingleMoveAnime(
@@ -1581,10 +1578,10 @@ BOOL daPy_lk_c::dProcStandItemPut() {
voiceStart(7);
}
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > -0.01f) {
pfVar2 = mActorKeepGrab.getActor();
if (pfVar2 != NULL) {
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
if (grab_actor != NULL) {
mDoAud_seStart(
JA_SE_LK_W_DAIZA_ATTACH, &pfVar2->current.pos, NULL, dComIfGp_getReverb(pfVar2->current.roomNo)
JA_SE_LK_W_DAIZA_ATTACH, &grab_actor->current.pos, NULL, dComIfGp_getReverb(grab_actor->current.roomNo)
);
}
freeGrabItem();
@@ -2199,7 +2196,7 @@ BOOL daPy_lk_c::dProcShipSit_init() {
initShipRideUseItem(iVar1, 1);
daShip_c* ship = dComIfGp_getShipActor();
ship->onLinkSit();
ship->m034D = 2;
ship->setPaddleMove();
return true;
}
File diff suppressed because it is too large Load Diff
+29 -30
View File
@@ -580,7 +580,7 @@ JKRHeap* daPy_lk_c::setItemHeap() {
/* 80104240-80104280 .text setBlurPosResource__9daPy_lk_cFUs */
void daPy_lk_c::setBlurPosResource(u16 index) {
JKRReadIdxResource(mSwBlur.mpPosBuffer, 0x4800, index, dComIfGp_getAnmArchive());
JKRReadIdxResource(mSwBlur.mpPosBuffer, sizeof(Vec) * 2 * 0x300, index, dComIfGp_getAnmArchive());
}
/* 80104280-80104364 .text getItemAnimeResource__9daPy_lk_cFUs */
@@ -1810,7 +1810,7 @@ BOOL daPy_lk_c::checkEquipAnime() const {
/* 8010C570-8010C71C .text deleteEquipItem__9daPy_lk_cFi */
void daPy_lk_c::deleteEquipItem(BOOL param_1) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
fopAc_ac_c* equip_actor = mActorKeepEquip.getActor();
if (param_1 && (mEquipItem != daPyItem_NONE_e && mEquipItem != daPyItem_BOKO_e)) {
if (mEquipItem == daPyItem_SWORD_e) {
@@ -1823,11 +1823,11 @@ void daPy_lk_c::deleteEquipItem(BOOL param_1) {
if (mEquipItem == daPyItem_SWORD_e) {
mDoAud_bgmSetSwordUsing(0);
} else if (mEquipItem == daPyItem_BOKO_e) {
if (equipActor != NULL) {
fopAcM_cancelCarryNow(equipActor);
if (equip_actor != NULL) {
fopAcM_cancelCarryNow(equip_actor);
}
} else if (equipActor != NULL) {
fopAcM_delete(equipActor);
} else if (equip_actor != NULL) {
fopAcM_delete(equip_actor);
}
if ((mEquipItem == dItem_GRAPPLING_HOOK_e && checkRopeAnime()) ||
@@ -2452,7 +2452,7 @@ BOOL daPy_lk_c::changeDamageProc() {
setDamageEmitter();
changePlayer(this);
setDamagePoint(-damage);
fopAc_ac_c* grabActor = mActorKeepGrab.getActor();
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
if (daPy_dmEcallBack_c::checkElec()) {
if (procElecDamage_init(NULL)) {
return TRUE;
@@ -2465,11 +2465,11 @@ BOOL daPy_lk_c::changeDamageProc() {
if (checkGrabWear() &&
mCyl.GetTgHitAc() && fopAcM_GetName(mCyl.GetTgHitAc()) == PROC_NZ &&
grabActor
grab_actor != NULL
) {
cXyz* damageVec = getDamageVec(&mCyl);
grabActor->shape_angle.y = cM_atan2s(damageVec->x, damageVec->z);
grabActor->shape_angle.x = 0x2000;
grab_actor->shape_angle.y = cM_atan2s(damageVec->x, damageVec->z);
grab_actor->shape_angle.x = 0x2000;
return procLargeDamage_init(-4, 1, 0, 0);
}
if (spl == 7 || spl == 2 || spl == 10) {
@@ -2536,7 +2536,6 @@ BOOL daPy_lk_c::changeAutoJumpProc() {
/* 80111424-80111A80 .text changeDemoProc__9daPy_lk_cFv */
BOOL daPy_lk_c::changeDemoProc() {
static const Vec tact_scale = {2.5f, 2.5f, 2.5f};
fopAc_ac_c* pfVar6;
if (!dComIfGp_event_runCheck()) {
return false;
@@ -2602,9 +2601,9 @@ BOOL daPy_lk_c::changeDemoProc() {
return procShipPaddle_init();
} else {
onNoResetFlg0(daPyFlg0_UNK100000);
pfVar6 = mActorKeepGrab.getActor();
if (pfVar6 != NULL) {
if ((fopAcM_CheckStatus(pfVar6, fopAcStts_UNK10000_e)) &&
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
if (grab_actor != NULL) {
if ((fopAcM_CheckStatus(grab_actor, fopAcStts_UNK10000_e)) &&
(!checkGrabSpecialHeavyState()))
{
return procGrabThrow_init(0);
@@ -2666,8 +2665,8 @@ BOOL daPy_lk_c::changeDemoProc() {
}
return procTactWait_init(mDemo.getParam0());
} else if (demo_mode == daPy_demo_c::DEMO_UNK33_e) {
pfVar6 = mActorKeepGrab.getActor();
if ((pfVar6 == NULL) || (pfVar6 != dComIfGp_getCb1Player())) {
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
if ((grab_actor == NULL) || (grab_actor != dComIfGp_getCb1Player())) {
deleteEquipItem(FALSE);
freeGrabItem();
mActorKeepGrab.setData(dComIfGp_getCb1Player());
@@ -5601,12 +5600,12 @@ BOOL daPy_lk_c::execute() {
if (dComIfGp_event_runCheck()) {
mStaffIdx = dComIfGp_evmng_getMyStaffId("Link", this);
if (eventInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(0x4) && mEquipItem == daPyItem_BOKO_e) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
if (equipActor) {
fopAc_ac_c* equip_actor = mActorKeepEquip.getActor();
if (equip_actor) {
s16 angle = shape_angle.y + 0x8000;
equipActor->speed.y = 0.0f;
equipActor->speedF = 5.0f;
equipActor->current.angle.y = angle;
equip_actor->speed.y = 0.0f;
equip_actor->speedF = 5.0f;
equip_actor->current.angle.y = angle;
}
deleteEquipItem(FALSE);
}
@@ -5684,15 +5683,15 @@ BOOL daPy_lk_c::execute() {
m34C2 = 0;
}
fopAc_ac_c* grabActor = mActorKeepGrab.getActor();
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
fopAc_ac_c* equip_actor = mActorKeepEquip.getActor();
if (grabActor && !fopAcM_checkCarryNow(grabActor)) {
if (grab_actor && !fopAcM_checkCarryNow(grab_actor)) {
freeGrabItem();
}
if (mEquipItem == daPyItem_BOKO_e) {
if (equipActor == NULL || !fopAcM_checkCarryNow(equipActor)) {
if (equip_actor == NULL || !fopAcM_checkCarryNow(equip_actor)) {
deleteEquipItem(FALSE);
}
}
@@ -5890,11 +5889,11 @@ BOOL daPy_lk_c::execute() {
checkFallCode();
}
equipActor = mActorKeepEquip.getActor();
if (equipActor) {
equipActor->tevStr.mRoomNo = tevStr.mRoomNo;
equipActor->tevStr.mEnvrIdxOverride = tevStr.mEnvrIdxOverride;
equipActor->current.roomNo = roomNo;
equip_actor = mActorKeepEquip.getActor();
if (equip_actor) {
equip_actor->tevStr.mRoomNo = tevStr.mRoomNo;
equip_actor->tevStr.mEnvrIdxOverride = tevStr.mEnvrIdxOverride;
equip_actor->current.roomNo = roomNo;
}
setWorldMatrix();
+4 -4
View File
@@ -192,7 +192,7 @@ void daPy_swBlur_c::initSwBlur(MtxP mtx, int idx, f32 blurTopRate, int blurColor
mBlurTopRate = blurTopRate;
mBlurColorType = blurColorType;
mDoMtx_multVec(mtx, mpPosBuffer + i, &field_0x034[0]);
mDoMtx_multVec(mtx, mpPosBuffer + i + 0, &field_0x034[0]);
mDoMtx_multVec(mtx, mpPosBuffer + i + 1, &field_0x304[0]);
field_0x034[0] += (field_0x034[0] - field_0x304[0]) * mBlurTopRate;
@@ -242,7 +242,7 @@ void daPy_swBlur_c::copySwBlur(MtxP mtx, int param_2) {
cXyz sp38 = field_0x028 - sp50;
field_0x028 = sp50;
for (i = 0; i < var_r31 && buffIdx >= 0; i++) {
mDoMtx_multVec(mtx, mpPosBuffer + buffIdx, &field_0x034[i]);
mDoMtx_multVec(mtx, mpPosBuffer + buffIdx + 0, &field_0x034[i]);
mDoMtx_multVec(mtx, mpPosBuffer + buffIdx + 1, &field_0x304[i]);
field_0x034[i] += (field_0x034[i] - field_0x304[i]) * mBlurTopRate;
@@ -312,9 +312,9 @@ void daPy_swBlur_c::draw() {
s16 r28 = 0x00;
GXBegin(GX_QUADS, GX_VTXFMT0, 4 + field_0x014*4);
for (int i = field_0x014; i >= 0; i--) {
GXPosition3f32(field_0x034[i].x, field_0x034[i].y, field_0x034[i].z);
GXPosition3f32(field_0x034[i+0].x, field_0x034[i+0].y, field_0x034[i+0].z);
GXTexCoord2s16(r29, 0x00);
GXPosition3f32(field_0x304[i].x, field_0x304[i].y, field_0x304[i].z);
GXPosition3f32(field_0x304[i+0].x, field_0x304[i+0].y, field_0x304[i+0].z);
GXTexCoord2s16(r29, 0xFF);
GXPosition3f32(field_0x304[i+1].x, field_0x304[i+1].y, field_0x304[i+1].z);
GXTexCoord2s16(r28, 0xFF);
+51 -58
View File
@@ -26,18 +26,18 @@ BOOL daPy_lk_c::checkRopeAnime() const {
/* 80142D68-80142E0C .text freeRopeItem__9daPy_lk_cFv */
void daPy_lk_c::freeRopeItem() {
if (mEquipItem == dItem_GRAPPLING_HOOK_e) {
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
fopAc_ac_c* rope = mActorKeepRope.getActor();
if (mActorKeepEquip.getActor() != NULL) {
onResetFlg0(daPyRFlg0_UNK40000000);
}
if (pfVar2 != NULL) {
if (fopAcM_GetName(pfVar2) == PROC_HIMO2) {
fopAcM_SetParam(pfVar2, 4);
if (rope != NULL) {
if (fopAcM_GetName(rope) == PROC_HIMO2) {
fopAcM_SetParam(rope, 4);
mActorKeepRope.clearData();
onResetFlg0(daPyRFlg0_UNK40000000);
} else if (fopAcM_GetName(pfVar2) == PROC_HIMO3) {
} else if (fopAcM_GetName(rope) == PROC_HIMO3) {
mEquipItem = daPyItem_NONE_e;
fopAcM_SetParam(pfVar2, 3);
fopAcM_SetParam(rope, 3);
mActorKeepRope.clearData();
}
}
@@ -270,8 +270,8 @@ int daPy_lk_c::throwRope() {
/* 80143C5C-80143DF4 .text checkNextActionRopeReady__9daPy_lk_cFv */
BOOL daPy_lk_c::checkNextActionRopeReady() {
himo2_class* pnVar3 = (himo2_class*)mActorKeepEquip.getActor();
u32 uVar2 = fopAcM_GetParam(pnVar3);
himo2_class* rope = (himo2_class*)mActorKeepEquip.getActor();
u32 uVar2 = fopAcM_GetParam(rope);
if (uVar2 == 2) {
return procRopeReady_init();
} else if (uVar2 == 0) {
@@ -297,7 +297,7 @@ BOOL daPy_lk_c::checkNextActionRopeReady() {
if (cancelItemUpperReadyAnime()) {
return true;
}
} else if (((pnVar3->field_0x2DC == 5) || (pnVar3->field_0x2DC == 8)) || (pnVar3->field_0x2DC == 9)) {
} else if (((rope->field_0x2DC == 5) || (rope->field_0x2DC == 8)) || (rope->field_0x2DC == 9)) {
return procRopeThrowCatch_init();
} else {
checkNextRopeMode();
@@ -415,7 +415,7 @@ BOOL daPy_lk_c::procRopeSubject() {
/* 8014422C-80144464 .text procRopeReady_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeReady_init() {
fopAc_ac_c* pfVar3 = mActorKeepEquip.getActor();
fopAc_ac_c* rope = mActorKeepEquip.getActor();
commonProcInit(daPyProc_ROPE_READY_e);
setMoveAnime(
0.5f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGB, 7, daPy_HIO_rope_c0::m.field_0x20
@@ -427,14 +427,14 @@ BOOL daPy_lk_c::procRopeReady_init() {
m35F0 = m3688.y;
m35F4 = m3688.y;
current.pos.y += 95.0f;
m370C.x = pfVar3->current.pos.x;
m370C.x = rope->current.pos.x;
if (m3600 >= 0.0f) {
m370C.y = pfVar3->current.pos.y - m3600;
m370C.y = rope->current.pos.y - m3600;
} else {
if ((checkBossGomaStage()) && (pfVar3->current.pos.y - current.pos.y > 700.0f)) {
m370C.y = pfVar3->current.pos.y - 700.0f;
if ((checkBossGomaStage()) && (rope->current.pos.y - current.pos.y > 700.0f)) {
m370C.y = rope->current.pos.y - 700.0f;
} else {
mGndChk.SetPos(&pfVar3->current.pos);
mGndChk.SetPos(&rope->current.pos);
f32 dVar4 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (dVar4 > ((current.pos.y - 125.0f) - 50.0f)) {
m370C.y = 50.0f + (125.0f + dVar4);
@@ -444,15 +444,15 @@ BOOL daPy_lk_c::procRopeReady_init() {
}
}
m3600 = m370C.y;
m370C.z = pfVar3->current.pos.z;
m370C.z = rope->current.pos.z;
gravity = 0.0f;
mVelocity = 0.0f;
m35A0 = 0.0f;
fopAcM_SetParam(pfVar3, 3);
fopAcM_SetParam(rope, 3);
m34D4 = 0x1800;
shape_angle.y = cM_atan2s((m370C.x - current.pos.x), (m370C.z - current.pos.z));
current.angle.y = shape_angle.y;
mRopePos = pfVar3->current.pos;
mRopePos = rope->current.pos;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
return true;
}
@@ -462,8 +462,7 @@ BOOL daPy_lk_c::procRopeReady() {
if (!checkItemModeActorPointer()) {
return true;
}
fopAc_ac_c* pfVar2 = mActorKeepEquip.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepEquip.getActor()->current.pos;
m370C.x = mRopePos.x;
m370C.z = mRopePos.z;
cXyz local_48 = (m370C - current.pos);
@@ -600,19 +599,19 @@ BOOL daPy_lk_c::procRopeSwing() {
dVar13 = 0.0f;
} else {
if ((0.0f <= f30) && (f30 <= M_PI / 2)) {
f30 = -0.45f * cM_ssin(cM_rad2s(f30));
f30 = -0.45f * cM_fsin(f30);
} else {
if (f30 <= -M_PI / 2) {
f30 = 0.45f * cM_ssin(cM_rad2s(f30));
f30 = 0.45f * cM_fsin(f30);
} else {
f30 = 0.0f;
}
}
if ((0.0f <= dVar13) && (dVar13 <= M_PI / 2)) {
dVar13 = -0.45f * cM_ssin(cM_rad2s(dVar13));
dVar13 = -0.45f * cM_fsin(dVar13);
} else {
if (dVar13 <= -M_PI / 2) {
dVar13 = 0.45f * cM_ssin(cM_rad2s(dVar13));
dVar13 = 0.45f * cM_fsin(dVar13);
} else {
dVar13 = 0.0f;
}
@@ -658,7 +657,7 @@ BOOL daPy_lk_c::procRopeSwing() {
cLib_chaseS(&m34D6, 0, r28);
f32 f1 = std::fabsf(sp0C);
if (mStickDistance > 0.05f) {
m34D4 += r29 * std::abs(cM_scos(cM_rad2s(f1)));
m34D4 += r29 * std::abs(cM_fcos(f1));
} else {
cLib_chaseS(&m34D4, 0, r28);
}
@@ -667,32 +666,32 @@ BOOL daPy_lk_c::procRopeSwing() {
m34D4 = r30;
}
s16 sp08 = -m34D4 * cM_ssin(cM_rad2s(sp0C));
s16 r29_2 = m34D6 * cM_ssin(cM_rad2s(f30));
s16 sp08 = -m34D4 * cM_fsin(sp0C);
s16 r29_2 = m34D6 * cM_fsin(f30);
s16 r28_2;
if (m34D0 != 0) {
dVar13 = m_pbCalc[PART_UNDER_e]->getRatio(1);
f32 f2 = -m34D4 * cM_ssin(cM_rad2s(sp0C));
f32 f2 = -m34D4 * cM_fsin(sp0C);
f32 f0 = 0.5f * m34D4 * m34D0;
r28_2 = f2 + (f0 * dVar13);
} else {
r28_2 = -m34D4 * cM_ssin(cM_rad2s(sp0C - 0.62831855f));
r28_2 = -m34D4 * cM_fsin(sp0C - (M_PI / 5));
}
cLib_addCalcAngleS(&shape_angle.x, r28_2, 8, 0xc00, 0x100);
dVar13 = cM_scos(cM_rad2s(f30));
dVar13 = cM_fcos(f30);
cLib_addCalcAngleS(
&shape_angle.z,
m34D6 * cM_ssin(cM_rad2s(f30 - 1.0995574f)),
m34D6 * cM_fsin(f30 - 1.0995574f),
8,
(1024.0f + (2048.0f * dVar13)),
(128.0f + (128.0f * dVar13))
0x400 + (0x800 * dVar13),
0x80 + (0x80 * dVar13)
);
cXyz sp1C(0.0f, -m35A0, 0.0f);
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(sp08, shape_angle.y, r29_2);
mDoMtx_stack_c::multVec(&sp1C, &current.pos);
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(-m34D4 * cM_ssin(cM_rad2s(sp0C + m35A4)), shape_angle.y, r29_2);
mDoMtx_stack_c::ZXYrotM(-m34D4 * cM_fsin(sp0C + m35A4), shape_angle.y, r29_2);
cXyz sp10;
mDoMtx_stack_c::multVec(&sp28, &sp10);
if (!checkRopeSwingWall(&sp34, &sp10, &sp08, &sp0C)) {
@@ -722,7 +721,7 @@ BOOL daPy_lk_c::procRopeSwing() {
} else if ((m34D4 == 0) && (m34D6 == 0)) {
procRopeHangWait_init(0);
} else if (f30 > 0.6f) {
if (cM_scos(cM_rad2s(sp0C)) > 0.77f) {
if (cM_fcos(sp0C) > 0.77f) {
mDoAud_seStart(JA_SE_LK_ROPE_SWING_F, &mRopePos, NULL, mReverb);
}
}
@@ -733,8 +732,8 @@ BOOL daPy_lk_c::procRopeSwing() {
/* 801456D8-801457FC .text procRopeHangWait_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procRopeHangWait_init(int param_0) {
commonProcInit(daPyProc_ROPE_HANG_WAIT_e);
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
@@ -769,8 +768,8 @@ BOOL daPy_lk_c::procRopeHangWait() {
}
if (!changeRopeEndProc(1)) {
bVar1 = false;
fopAc_ac_c* pfVar3 = mActorKeepRope.getActor();
mRopePos = pfVar3->current.pos;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
s16 r30 = 0;
@@ -875,8 +874,8 @@ int daPy_lk_c::specialRopeHangUp() {
/* 80145C3C-80145DBC .text procRopeUp_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeUp_init() {
fopAc_ac_c* pfVar3 = mActorKeepRope.getActor();
mRopePos = pfVar3->current.pos;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
mProcVar0.m3570 = 0;
f32 dVar4;
if (checkBossGomaStage()) {
@@ -887,7 +886,7 @@ BOOL daPy_lk_c::procRopeUp_init() {
dVar5 = (dVar5 - 60.0f);
if (dVar5 < dVar4) {
dVar4 = dVar5;
} else if ((fopAcM_GetName(pfVar3)) == PROC_HIMO2 || (checkSpecialRope())) {
} else if ((fopAcM_GetName(rope)) == PROC_HIMO2 || (checkSpecialRope())) {
mProcVar0.m3570 = 1;
}
}
@@ -919,8 +918,7 @@ BOOL daPy_lk_c::procRopeUp() {
return true;
}
if (!changeRopeEndProc(1)) {
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
@@ -957,8 +955,8 @@ BOOL daPy_lk_c::procRopeUp() {
/* 80145F64-801460EC .text procRopeDown_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeDown_init() {
fopAc_ac_c* pfVar4 = mActorKeepRope.getActor();
mRopePos = pfVar4->current.pos;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
if (mActorKeepEquip.getActor() != NULL) {
if (m3604 >= 0.0f) {
m35A4 = m3600 - m3604;
@@ -973,8 +971,8 @@ BOOL daPy_lk_c::procRopeDown_init() {
}
}
} else {
himo2_class* pfVar5 = (himo2_class*)mActorKeepRope.getActor();
m35A4 = mRopePos.y - pfVar5->field_0x15F8.y;
himo2_class* rope = (himo2_class*)mActorKeepRope.getActor();
m35A4 = mRopePos.y - rope->field_0x15F8.y;
}
if (current.pos.y <= m35A4) {
return procRopeHangWait_init(1);
@@ -995,8 +993,7 @@ BOOL daPy_lk_c::procRopeDown() {
return true;
}
if (!changeRopeEndProc(1)) {
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
int direction = getDirectionFromAngle(m34DC);
@@ -1025,8 +1022,7 @@ BOOL daPy_lk_c::procRopeDown() {
/* 80146240-801463E8 .text procRopeSwingStart_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeSwingStart_init() {
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
commonProcInit(daPyProc_ROPE_SWING_START_e);
m35A0 = mRopePos.abs(current.pos);
m35A4 = 500.0f / m35A0;
@@ -1040,8 +1036,7 @@ BOOL daPy_lk_c::procRopeSwingStart_init() {
}
gravity = 0.0f;
m34D0 = 0;
pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
return true;
}
@@ -1055,8 +1050,7 @@ BOOL daPy_lk_c::procRopeSwingStart() {
return true;
}
if (!changeRopeEndProc(1)) {
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
if (m34D0 == 1) {
if (!cLib_addCalcAngleS(&shape_angle.x, m34D4, 5, 0x180, 0x40)) {
procRopeSwing_init(NULL, shape_angle.x);
@@ -1194,8 +1188,7 @@ BOOL daPy_lk_c::procRopeUpHang() {
if (checkHangRopeActorNull()) {
return true;
}
fopAc_ac_c* pfVar2 = mActorKeepRope.getActor();
mRopePos = pfVar2->current.pos;
mRopePos = mActorKeepRope.getActor()->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
+28 -30
View File
@@ -293,18 +293,16 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
/* 801405F0-80140C88 .text changeShipEndProc__9daPy_lk_cFv */
BOOL daPy_lk_c::changeShipEndProc() {
/* Nonmatching - branching */
daBoomerang_c* pfVar4;
/* Nonmatching - missing daShip_c inline */
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
if (ship == NULL) {
return checkNextMode(0);
}
offNoResetFlg0(daPyFlg0_SHIP_DROP);
if (doTrigger()) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
}
if (mCurProc != daPyProc_SHIP_SCOPE_e && mCurProc != daPyProc_SHIP_BOW_e && mCurProc != daPyProc_SHIP_HOOKSHOT_e &&
@@ -341,44 +339,44 @@ BOOL daPy_lk_c::changeShipEndProc() {
}
}
if (checkSetItemTrigger(NORMAL_SAIL, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipSteer_init();
}
if (checkSetItemTrigger(dItem_BOMB_BAG_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipCannon_init();
}
if (checkSetItemTrigger(dItem_GRAPPLING_HOOK_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipCrane_init();
}
if (checkSetItemTrigger(dItem_TELESCOPE_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipScope_init(1);
}
if (checkSetItemTrigger(daPyItem_PHOTOBOX_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipScope_init(0);
}
if (checkSetItemTrigger(daPyItem_BOW_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipBow_init();
}
@@ -386,16 +384,16 @@ BOOL daPy_lk_c::changeShipEndProc() {
return procShipBoomerang_init();
}
if (checkSetItemTrigger(dItem_HOOKSHOT_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procShipHookshot_init();
}
if (checkSetItemTrigger(dItem_WIND_WAKER_e, 1)) {
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
if (pfVar4 != NULL) {
pfVar4->onCancelFlg();
daBoomerang_c* boomerang = (daBoomerang_c*)mActorKeepThrow.getActor();
if (boomerang != NULL) {
boomerang->onCancelFlg();
}
return procTactWait_init(-1);
}
+2 -4
View File
@@ -291,7 +291,7 @@ void daPy_lk_c::setSwimTimerStartStop() {
float swimTimerRate = getSwimTimerRate();
if (swimTimerRate > 0.5f) {
target = cM_scos(cM_rad2s((1.0f - swimTimerRate) * M_PI)) * -daPy_HIO_swim_c0::m.field_0x78;
target = cM_fcos((1.0f - swimTimerRate) * M_PI) * -daPy_HIO_swim_c0::m.field_0x78;
if (mFrameCtrlUnder->checkPass(0.0f) && mCurProc != daPyProc_SWIM_UP_e) {
if (mProcVar0.m3570 && !checkNoResetFlg0(daPyFlg0_UNK4000)) {
@@ -392,7 +392,6 @@ BOOL daPy_lk_c::procSwimUp() {
/* 8013DB24-8013DCDC .text procSwimWait_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
float fVar2;
u32 uVar3;
J3DFrameCtrl* mFrameCtrl = mFrameCtrlUnder;
@@ -400,8 +399,7 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
if (param_1) {
fVar2 = mFrameCtrl->getFrame() / (float)mFrameCtrl->getEnd();
uVar3 = cM_rad2s(fVar2 * M_PI);
mVelocity = speedF * (1.0f - daPy_HIO_swim_c0::m.field_0x60) + speedF * std::fabsf(cM_scos(uVar3)) * daPy_HIO_swim_c0::m.field_0x60;
mVelocity = speedF * (1.0f - daPy_HIO_swim_c0::m.field_0x60) + speedF * std::fabsf(cM_fcos(fVar2 * M_PI)) * daPy_HIO_swim_c0::m.field_0x60;
}
else {
fVar2 = 0.0f;
+4 -4
View File
@@ -1519,8 +1519,8 @@ BOOL daPy_lk_c::procCutRoll() {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
uVar1 = current.angle.y;
if (mAcch.ChkWallHit() && (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK2B_e)) {
fVar2 = 25.0f + (mAcchCir[0]).GetWallR();
local_48.set(current.pos.x, current.pos.y + (mAcchCir[0]).GetWallH(), current.pos.z);
fVar2 = 25.0f + mAcchCir[0].GetWallR();
local_48.set(current.pos.x, current.pos.y + mAcchCir[0].GetWallH(), current.pos.z);
f32 cos = cM_scos(uVar1);
f32 sin = cM_ssin(uVar1);
local_3c.x = local_48.x + fVar2 * sin;
@@ -1825,8 +1825,8 @@ BOOL daPy_lk_c::procCutReverse() {
/* 80159390-80159500 .text procJumpCut_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procJumpCut_init(int param_0) {
fopAc_ac_c* uVar1 = mActorKeepEquip.getActor();
if (daPy_dmEcallBack_c::checkCurse() || (mEquipItem == daPyItem_BOKO_e && uVar1 == NULL)) {
fopAc_ac_c* equip_actor = mActorKeepEquip.getActor();
if (daPy_dmEcallBack_c::checkCurse() || (mEquipItem == daPyItem_BOKO_e && equip_actor == NULL)) {
return false;
}
+4 -4
View File
@@ -3735,7 +3735,7 @@ BOOL daShip_c::execute() {
onStateFlg(daSFLG_UNK100_e);
}
fopAcM_posMoveF(this, (cXyz *)&mStts);
fopAcM_posMoveF(this, mStts.GetCCMoveP());
m1044 = cXyz::Zero;
}
@@ -3778,7 +3778,7 @@ BOOL daShip_c::execute() {
}
else {
prev_speedF = current.pos.y;
fopAcM_posMoveF(this, (cXyz *)&mStts);
fopAcM_posMoveF(this, mStts.GetCCMoveP());
current.pos.y = prev_speedF;
}
if (r23) {
@@ -3796,7 +3796,7 @@ BOOL daShip_c::execute() {
speed.x = (speedF * cM_ssin(current.angle.y)) * cM_scos(m0370);
speed.y = -speedF * cM_ssin(m0370);
speed.z = (speedF * cM_scos(current.angle.y)) * cM_scos(m0370);
fopAcM_posMove(this, (cXyz *)&mStts);
fopAcM_posMove(this, mStts.GetCCMoveP());
if (dComIfGp_event_runCheck()) {
m1044 = cXyz::Zero;
@@ -3835,7 +3835,7 @@ BOOL daShip_c::execute() {
speed.y = -speedF * cM_ssin(m0370);
}
speed.z = (speedF * cM_scos(current.angle.y)) * cM_scos(m0370);
fopAcM_posMove(this, (cXyz*)&mStts);
fopAcM_posMove(this, mStts.GetCCMoveP());
}
}
}