mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 22:10:59 -04:00
player misc cleanup and various match fixes
This commit is contained in:
@@ -837,7 +837,7 @@ public:
|
||||
f32 getFrame() const { return mFrame; }
|
||||
void setFrame(f32 frame) { mFrame = frame; }
|
||||
|
||||
public:
|
||||
private:
|
||||
/* 0x04 */ u8 mAttribute;
|
||||
/* 0x05 */ u8 mState;
|
||||
/* 0x06 */ s16 mStart;
|
||||
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
J3DMtxCalcMayaAnm(J3DAnmTransform* pAnmTransform)
|
||||
: J3DMtxCalcMaya(), J3DMtxCalcAnm(pAnmTransform) {}
|
||||
virtual ~J3DMtxCalcMayaAnm() {}
|
||||
virtual void calc(u16 v) { J3DMtxCalcAnm::calc(v); }
|
||||
virtual void calc(u16 jnt_no) { J3DMtxCalcAnm::calc(jnt_no); }
|
||||
};
|
||||
|
||||
enum J3DJointMtxType {
|
||||
|
||||
@@ -997,7 +997,7 @@ public:
|
||||
void makeItemType();
|
||||
void setScopeModel();
|
||||
void setPhotoBoxModel();
|
||||
void changeDragonShield(int);
|
||||
BOOL changeDragonShield(int);
|
||||
BOOL checkNewItemChange(u8);
|
||||
BOOL checkItemChangeFromButton();
|
||||
void checkItemAction();
|
||||
@@ -1480,7 +1480,7 @@ public:
|
||||
void setShipRidePos(int);
|
||||
void setShipAttentionAnmSpeed(f32);
|
||||
void setShipAttnetionBodyAngle();
|
||||
int changeShipEndProc();
|
||||
BOOL changeShipEndProc();
|
||||
void initShipBaseAnime();
|
||||
void initShipCraneAnime();
|
||||
BOOL procShipReady_init();
|
||||
@@ -1563,7 +1563,7 @@ public:
|
||||
void setBowReadyAnime();
|
||||
void setBowReloadAnime();
|
||||
BOOL checkNextActionBowReady();
|
||||
BOOL checkNextActionBowFly();
|
||||
void checkNextActionBowFly();
|
||||
BOOL checkNextBowMode();
|
||||
void setBowModel();
|
||||
BOOL procBowSubject_init();
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
daSFLG_UNK4000_e = 0x00004000,
|
||||
daSFLG_UNK8000_e = 0x00008000,
|
||||
daSFLG_UNK10000_e = 0x00010000,
|
||||
daSFLG_UNK20000_e = 0x00020000,
|
||||
daSFLG_SHOOT_CANNON_e = 0x00020000,
|
||||
daSFLG_UNK40000_e = 0x00040000,
|
||||
daSFLG_UNK80000_e = 0x00080000,
|
||||
daSFLG_UNK100000_e = 0x00100000,
|
||||
@@ -62,12 +62,15 @@ public:
|
||||
|
||||
bool checkStateFlg(daSHIP_SFLG flag) const { return mStateFlag & flag; }
|
||||
bool checkHeadNoDraw() const { return checkStateFlg(daSFLG_HEAD_NO_DRAW_e); }
|
||||
bool checkShootCannon() const { return checkStateFlg(daSFLG_SHOOT_CANNON_e); }
|
||||
|
||||
int getTactWarpPosNum() const { return mTactWarpPosNum; }
|
||||
void setTactWarpPosNum(int num) { mTactWarpPosNum = num; }
|
||||
u32 getTactWarpID() { return mTactWarpID; }
|
||||
void setTactWarpID(u32 warpID) { mTactWarpID = warpID; }
|
||||
|
||||
|
||||
Mtx& getBodyMtx() { return m0298->getModel()->getBaseTRMtx(); }
|
||||
|
||||
void checkCraneMode() const {}
|
||||
void checkCraneUpEnd() const {}
|
||||
BOOL checkForceMove() const { return getTornadoActor() || getWhirlActor(); }
|
||||
@@ -75,11 +78,9 @@ public:
|
||||
void checkRopeCntMax() const {}
|
||||
void checkRopeDownStart() const {}
|
||||
void checkSalvageDemo() const {}
|
||||
void checkShootCannon() const {}
|
||||
void checkTornadoFlg() const {}
|
||||
void checkTornadoUp() const {}
|
||||
void getBeltSpeed() const {}
|
||||
void getBodyMtx() {}
|
||||
s16 getCannonAngleX() const { return shape_angle.x + m0396 - 0x4000; }
|
||||
s16 getCannonAngleY() const { return shape_angle.y + m0394; }
|
||||
void getCraneAngle() const {}
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 802F4DC0-802F4EB0 .text calc__13J3DMtxCalcAnmFUs */
|
||||
void J3DMtxCalcAnm::calc(u16 param_0) {
|
||||
void J3DMtxCalcAnm::calc(u16 jnt_no) {
|
||||
j3dSys.setCurrentMtxCalc(this);
|
||||
J3DTransformInfo info;
|
||||
J3DAnmTransform* transform = mOne[0];
|
||||
if (transform) {
|
||||
transform->getTransform(param_0, &info);
|
||||
transform->getTransform(jnt_no, &info);
|
||||
} else {
|
||||
info = j3dSys.getModel()->getModelData()->getJointNodePointer(param_0)->getTransformInfo();
|
||||
info = j3dSys.getModel()->getModelData()->getJointNodePointer(jnt_no)->getTransformInfo();
|
||||
}
|
||||
calcTransform(param_0, info);
|
||||
calcTransform(jnt_no, info);
|
||||
}
|
||||
|
||||
/* 802F4EB0-802F4EF8 .text __ct__15J3DMtxCalcBasicFv */
|
||||
@@ -52,16 +52,16 @@ void J3DMtxCalcBasic::recursiveCalc(J3DNode* node) {
|
||||
}
|
||||
|
||||
/* 802F5090-802F525C .text calcTransform__15J3DMtxCalcBasicFUsRC16J3DTransformInfo */
|
||||
void J3DMtxCalcBasic::calcTransform(u16 param_0, const J3DTransformInfo& info) {
|
||||
void J3DMtxCalcBasic::calcTransform(u16 jnt_no, const J3DTransformInfo& info) {
|
||||
J3DSys::mCurrentS.x *= info.mScale.x;
|
||||
J3DSys::mCurrentS.y *= info.mScale.y;
|
||||
J3DSys::mCurrentS.z *= info.mScale.z;
|
||||
s32 r29;
|
||||
if (checkScaleOne(J3DSys::mCurrentS)) {
|
||||
j3dSys.getModel()->setScaleFlag(param_0, 1);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 1);
|
||||
r29 = 1;
|
||||
} else {
|
||||
j3dSys.getModel()->setScaleFlag(param_0, 0);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 0);
|
||||
r29 = 0;
|
||||
}
|
||||
Mtx mtx;
|
||||
@@ -79,17 +79,17 @@ void J3DMtxCalcBasic::calcTransform(u16 param_0, const J3DTransformInfo& info) {
|
||||
}
|
||||
MTXConcat(J3DSys::mCurrentMtx, mtx, J3DSys::mCurrentMtx);
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(param_0));
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(jnt_no));
|
||||
}
|
||||
|
||||
/* 802F525C-802F52BC .text calc__15J3DMtxCalcBasicFUs */
|
||||
void J3DMtxCalcBasic::calc(u16 param_0) {
|
||||
void J3DMtxCalcBasic::calc(u16 jnt_no) {
|
||||
j3dSys.setCurrentMtxCalc(this);
|
||||
calcTransform(param_0, j3dSys.getModel()->getModelData()->getJointNodePointer(param_0)->getTransformInfo());
|
||||
calcTransform(jnt_no, j3dSys.getModel()->getModelData()->getJointNodePointer(jnt_no)->getTransformInfo());
|
||||
}
|
||||
|
||||
/* 802F52BC-802F5508 .text calcTransform__19J3DMtxCalcSoftimageFUsRC16J3DTransformInfo */
|
||||
void J3DMtxCalcSoftimage::calcTransform(u16 param_0, const J3DTransformInfo& info) {
|
||||
void J3DMtxCalcSoftimage::calcTransform(u16 jnt_no, const J3DTransformInfo& info) {
|
||||
/* Nonmatching */
|
||||
Mtx mtx;
|
||||
J3DGetTranslateRotateMtx(
|
||||
@@ -107,10 +107,10 @@ void J3DMtxCalcSoftimage::calcTransform(u16 param_0, const J3DTransformInfo& inf
|
||||
J3DSys::mCurrentS.z = J3DSys::mCurrentS.z * info.mScale.z;
|
||||
s32 var2;
|
||||
if (checkScaleOne(J3DSys::mCurrentS)) {
|
||||
j3dSys.getModel()->setScaleFlag(param_0, 1);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 1);
|
||||
var2 = 1;
|
||||
} else {
|
||||
j3dSys.getModel()->setScaleFlag(param_0, 0);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 0);
|
||||
var2 = 0;
|
||||
}
|
||||
if (!var2) {
|
||||
@@ -127,23 +127,23 @@ void J3DMtxCalcSoftimage::calcTransform(u16 param_0, const J3DTransformInfo& inf
|
||||
mtx[2][2] = J3DSys::mCurrentMtx[2][2] * J3DSys::mCurrentS.z;
|
||||
mtx[2][3] = J3DSys::mCurrentMtx[2][3];
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
MTXCopy(mtx, model->getAnmMtx(param_0));
|
||||
MTXCopy(mtx, model->getAnmMtx(jnt_no));
|
||||
} else {
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(param_0));
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(jnt_no));
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F5508-802F5724 .text calcTransform__14J3DMtxCalcMayaFUsRC16J3DTransformInfo */
|
||||
void J3DMtxCalcMaya::calcTransform(u16 param_1, const J3DTransformInfo& param_2) {
|
||||
void J3DMtxCalcMaya::calcTransform(u16 jnt_no, const J3DTransformInfo& param_2) {
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
u8 scaleCompensate = model->getModelData()->getJointNodePointer(param_1)->getScaleCompensate();
|
||||
u8 scaleCompensate = model->getModelData()->getJointNodePointer(jnt_no)->getScaleCompensate();
|
||||
s32 tmp;
|
||||
if (param_2.mScale.x == 1.0f && param_2.mScale.y == 1.0f && param_2.mScale.z == 1.0f) {
|
||||
model->setScaleFlag(param_1, 1);
|
||||
model->setScaleFlag(jnt_no, 1);
|
||||
tmp = true;
|
||||
} else {
|
||||
model->setScaleFlag(param_1, 0);
|
||||
model->setScaleFlag(jnt_no, 0);
|
||||
tmp = false;
|
||||
}
|
||||
Mtx mtx;
|
||||
@@ -175,7 +175,7 @@ void J3DMtxCalcMaya::calcTransform(u16 param_1, const J3DTransformInfo& param_2)
|
||||
}
|
||||
MTXConcat(J3DSys::mCurrentMtx, mtx, J3DSys::mCurrentMtx);
|
||||
model = j3dSys.getModel();
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(param_1));
|
||||
MTXCopy(J3DSys::mCurrentMtx, model->getAnmMtx(jnt_no));
|
||||
J3DSys::mParentS.x = param_2.mScale.x;
|
||||
J3DSys::mParentS.y = param_2.mScale.y;
|
||||
J3DSys::mParentS.z = param_2.mScale.z;
|
||||
|
||||
@@ -56,13 +56,12 @@ BOOL daPy_lk_c::bowButton() const {
|
||||
|
||||
/* 8014A008-8014A02C .text checkBowReadyAnime__9daPy_lk_cCFv */
|
||||
BOOL daPy_lk_c::checkBowReadyAnime() const {
|
||||
return (checkUpperAnime(LKANM_BCK_ARROWRELORD)) ||
|
||||
(checkUpperAnime(LKANM_BCK_BOWWAIT));
|
||||
return checkUpperAnime(LKANM_BCK_ARROWRELORD) || checkUpperAnime(LKANM_BCK_BOWWAIT);
|
||||
}
|
||||
|
||||
/* 8014A02C-8014A080 .text checkBowAnime__9daPy_lk_cCFv */
|
||||
BOOL daPy_lk_c::checkBowAnime() const {
|
||||
return (checkBowReadyAnime()) || (checkUpperAnime(LKANM_BCK_ARROWSHOOT));
|
||||
return checkBowReadyAnime() || checkUpperAnime(LKANM_BCK_ARROWSHOOT);
|
||||
}
|
||||
|
||||
/* 8014A080-8014A180 .text makeArrow__9daPy_lk_cFv */
|
||||
@@ -74,7 +73,7 @@ void daPy_lk_c::makeArrow() {
|
||||
void daPy_lk_c::deleteArrow() {
|
||||
fopAc_ac_c* pfVar1 = mActorKeepEquip.getActor();
|
||||
|
||||
if ((pfVar1 != NULL) && (fopAcM_GetName(pfVar1) == PROC_ARROW)) {
|
||||
if (pfVar1 != NULL && fopAcM_GetName(pfVar1) == PROC_ARROW) {
|
||||
fopAcM_delete(pfVar1);
|
||||
mActorKeepEquip.clearData();
|
||||
}
|
||||
@@ -142,11 +141,12 @@ BOOL daPy_lk_c::checkNextActionBowReady() {
|
||||
}
|
||||
m355C = 1;
|
||||
} else if (daArrow_c::changeArrowMp()) {
|
||||
if (((mEquipItem != dItem_BOW_e) && (dComIfGp_setRStatus(0x22), spActionTrigger())) &&
|
||||
(arrow != NULL))
|
||||
{
|
||||
mActorKeepEquip.setData(arrow->changeArrowType());
|
||||
setBowReloadAnime();
|
||||
if (mEquipItem != dItem_BOW_e) {
|
||||
dComIfGp_setRStatus(0x22);
|
||||
if (spActionTrigger() && arrow != NULL) {
|
||||
mActorKeepEquip.setData(arrow->changeArrowType());
|
||||
setBowReloadAnime();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (checkUpperAnime(LKANM_BCK_ARROWRELORD)) {
|
||||
@@ -158,15 +158,21 @@ BOOL daPy_lk_c::checkNextActionBowReady() {
|
||||
}
|
||||
} else if (checkUpperAnime(LKANM_BCK_ARROWSHOOT)) {
|
||||
if (mFrameCtrlUpper[UPPER_MOVE2_e].getRate() < 0.01f) {
|
||||
if ((m355E == 0) && (bowButton()) && (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e || mEquipItem == getReadyItem()) && !checkNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT)) {
|
||||
if (m355E == 0 && bowButton() &&
|
||||
(mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e || mEquipItem == getReadyItem()) &&
|
||||
!checkNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT))
|
||||
{
|
||||
setBowReloadAnime();
|
||||
makeArrow();
|
||||
if (mActorKeepEquip.getActor() == NULL) {
|
||||
mDoAud_seStart(JA_SE_ITEM_TARGET_OUT);
|
||||
}
|
||||
} else if (daArrow_c::changeArrowMp()) {
|
||||
if ((mEquipItem != dItem_BOW_e) && (dComIfGp_setRStatus(0x22), spActionTrigger())) {
|
||||
daArrow_c::changeArrowTypeNotReady();
|
||||
if (mEquipItem != dItem_BOW_e) {
|
||||
dComIfGp_setRStatus(0x22);
|
||||
if (spActionTrigger()) {
|
||||
daArrow_c::changeArrowTypeNotReady();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -175,33 +181,30 @@ BOOL daPy_lk_c::checkNextActionBowReady() {
|
||||
}
|
||||
}
|
||||
|
||||
cancelItemUpperReadyAnime();
|
||||
return cancelItemUpperReadyAnime();
|
||||
}
|
||||
|
||||
/* 8014A60C-8014A680 .text checkNextActionBowFly__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkNextActionBowFly() {
|
||||
void daPy_lk_c::checkNextActionBowFly() {
|
||||
if (checkBowAnime()) {
|
||||
checkNextActionBowReady();
|
||||
} else {
|
||||
if ((itemTrigger()) && (mEquipItem == getReadyItem())) {
|
||||
setBowReadyAnime();
|
||||
m355E = 0;
|
||||
}
|
||||
} else if (itemTrigger() && mEquipItem == getReadyItem()) {
|
||||
setBowReadyAnime();
|
||||
m355E = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8014A680-8014A6F4 .text checkNextBowMode__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkNextBowMode() {
|
||||
if (mpAttention->Lockon()) {
|
||||
procBowMove_init();
|
||||
return procBowMove_init();
|
||||
} else {
|
||||
procBowSubject_init();
|
||||
return procBowSubject_init();
|
||||
}
|
||||
}
|
||||
|
||||
/* 8014A6F4-8014A834 .text setBowModel__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setBowModel() {
|
||||
/* Nonmatching - regalloc */
|
||||
J3DAnmTransform* bck = getItemAnimeResource(LKANM_BCK_ARROWRELORDA);
|
||||
JKRHeap* oldHeap = setItemHeap();
|
||||
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, LINK_BDL_BOW, 0x37221222);
|
||||
@@ -211,9 +214,10 @@ void daPy_lk_c::setBowModel() {
|
||||
}
|
||||
mDoExt_setCurrentHeap(oldHeap);
|
||||
m35EC = 0.0f;
|
||||
J3DMaterial* mesh = mpEquipItemModel->getModelData()->getJointNodePointer(0x00)->getMesh()->getNext();
|
||||
mesh->getNext()->getShape()->show();
|
||||
mesh->getShape()->hide();
|
||||
J3DMaterial* r3 = mpEquipItemModel->getModelData()->getJointNodePointer(0x00)->getMesh()->getNext();
|
||||
J3DMaterial* r4 = r3->getNext();
|
||||
r3->getShape()->show();
|
||||
r4->getShape()->hide();
|
||||
tmp_modelData->getJointNodePointer(6)->setCallBack(daPy_bowJointCB);
|
||||
tmp_modelData->getJointNodePointer(11)->setCallBack(daPy_bowJointCB);
|
||||
mpEquipItemModel->setUserArea(reinterpret_cast<u32>(this));
|
||||
@@ -280,12 +284,10 @@ BOOL daPy_lk_c::procBowMove_init() {
|
||||
BOOL daPy_lk_c::procBowMove() {
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setSpeedAndAngleAtnActor();
|
||||
} else if (!mpAttention->Lockon() && mActorKeepEquip.getActor() == NULL) {
|
||||
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
|
||||
} else {
|
||||
if ((!mpAttention->Lockon()) && (mActorKeepEquip.getActor() == NULL)) {
|
||||
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
|
||||
} else {
|
||||
setSpeedAndAngleAtn();
|
||||
}
|
||||
setSpeedAndAngleAtn();
|
||||
}
|
||||
if (!checkNextMode(0)) {
|
||||
f32 fVar1 = -1.0f;
|
||||
|
||||
@@ -328,7 +328,7 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(fVar2);
|
||||
mVelocity = fVar3;
|
||||
} else {
|
||||
if (std::fabsf(frameCtrl.mRate) < 0.01f) {
|
||||
if (std::fabsf(frameCtrl.getRate()) < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34D0--;
|
||||
}
|
||||
|
||||
@@ -501,7 +501,7 @@ BOOL daPy_lk_c::procGrabMiss() {
|
||||
}
|
||||
if (mProcVar0.m3570 == 0) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if ((int)m34D0 > 0) {
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
} else {
|
||||
setSingleMoveAnime(
|
||||
@@ -784,7 +784,7 @@ BOOL daPy_lk_c::procGrabWait() {
|
||||
}
|
||||
setBlendMoveAnime(fVar2);
|
||||
m_pbCalc[PART_UPPER_e]->setRatio(2, 1.0f);
|
||||
m35A0 = 0.0049999999f * (short)(shape_angle.y - m34DE);
|
||||
m35A0 = 0.005f * (short)(shape_angle.y - m34DE);
|
||||
onNoResetFlg1(daPyFlg1_UNK800000);
|
||||
} else if (checkNoResetFlg1(daPyFlg1_UNK800000)) {
|
||||
if (checkGrabSpecialHeavyState()) {
|
||||
|
||||
@@ -379,7 +379,7 @@ BOOL daPy_lk_c::procLadderMove() {
|
||||
m34C2 = 0;
|
||||
procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else if (std::fabsf(mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) < 0.01f) {
|
||||
if ((int)m34D0 > 0) {
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
setLadderFootSe();
|
||||
} else {
|
||||
|
||||
@@ -381,19 +381,19 @@ static BOOL daPy_auraCallback(J3DNode* node, int calcTiming) {
|
||||
}
|
||||
|
||||
/* 80103494-80103A88 .text jointBeforeCB__9daPy_lk_cFiP16J3DTransformInfoP10Quaternion */
|
||||
BOOL daPy_lk_c::jointBeforeCB(int, J3DTransformInfo*, Quaternion*) {
|
||||
BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo*, Quaternion*) {
|
||||
/* Nonmatching */
|
||||
static Mtx root_mtx;
|
||||
static Quaternion norm_quat = {0.0f, 0.0f, 0.0f, 1.0f};
|
||||
}
|
||||
|
||||
/* 80103A88-80103AAC .text daPy_jointBeforeCallback__FUlUsP16J3DTransformInfoP10Quaternion */
|
||||
static BOOL daPy_jointBeforeCallback(u32 userArea, u16 param_1, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
return reinterpret_cast<daPy_lk_c*>(userArea)->jointBeforeCB(param_1, param_2, param_3);
|
||||
static BOOL daPy_jointBeforeCallback(u32 userArea, u16 jnt_no, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
return reinterpret_cast<daPy_lk_c*>(userArea)->jointBeforeCB(jnt_no, param_2, param_3);
|
||||
}
|
||||
|
||||
/* 80103AAC-80103C1C .text jointAfterCB__9daPy_lk_cFiP16J3DTransformInfoP10Quaternion */
|
||||
BOOL daPy_lk_c::jointAfterCB(int param_1, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
BOOL daPy_lk_c::jointAfterCB(int jnt_no, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
if (m34C6 != 0) {
|
||||
if ((m34C6 & 1) != 0) {
|
||||
param_3->x = m3658.x;
|
||||
@@ -408,25 +408,25 @@ BOOL daPy_lk_c::jointAfterCB(int param_1, J3DTransformInfo* param_2, Quaternion*
|
||||
}
|
||||
m34C6 = 0;
|
||||
}
|
||||
if (param_1 == 0x22) {
|
||||
if (jnt_no == 0x22) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x22), mFootData[1].field_0x088[2]);
|
||||
} else if (param_1 == 0x27) {
|
||||
} else if (jnt_no == 0x27) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x27), mFootData[0].field_0x088[2]);
|
||||
} else if (param_1 == 0x20) {
|
||||
} else if (jnt_no == 0x20) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x20), mFootData[1].field_0x088[0]);
|
||||
} else if (param_1 == 0x21) {
|
||||
} else if (jnt_no == 0x21) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x21), mFootData[1].field_0x088[1]);
|
||||
} else if (param_1 == 0x25) {
|
||||
} else if (jnt_no == 0x25) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x25), mFootData[0].field_0x088[0]);
|
||||
} else if (param_1 == 0x26) {
|
||||
} else if (jnt_no == 0x26) {
|
||||
mDoMtx_copy(mpCLModel->getAnmMtx(0x26), mFootData[0].field_0x088[1]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80103C1C-80103C40 .text daPy_jointAfterCallback__FUlUsP16J3DTransformInfoP10Quaternion */
|
||||
static BOOL daPy_jointAfterCallback(u32 userArea, u16 param_1, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
return reinterpret_cast<daPy_lk_c*>(userArea)->jointAfterCB(param_1, param_2, param_3);
|
||||
static BOOL daPy_jointAfterCallback(u32 userArea, u16 jnt_no, J3DTransformInfo* param_2, Quaternion* param_3) {
|
||||
return reinterpret_cast<daPy_lk_c*>(userArea)->jointAfterCB(jnt_no, param_2, param_3);
|
||||
}
|
||||
|
||||
/* 80103C40-80103EE4 .text jointCB0__9daPy_lk_cFi */
|
||||
@@ -1989,7 +1989,7 @@ void daPy_lk_c::setPhotoBoxModel() {
|
||||
}
|
||||
|
||||
/* 8010CC78-8010CD34 .text changeDragonShield__9daPy_lk_cFi */
|
||||
void daPy_lk_c::changeDragonShield(int) {
|
||||
BOOL daPy_lk_c::changeDragonShield(int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -3790,7 +3790,7 @@ BOOL daPy_lk_c::procFrontRollCrash() {
|
||||
}
|
||||
if ((mAcch.ChkGroundHit()) && (checkModeFlg(ModeFlg_MIDAIR))) {
|
||||
mVelocity = 0.0f;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mRate = daPy_HIO_roll_c0::m.field_0x24;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(daPy_HIO_roll_c0::m.field_0x24);
|
||||
voiceStart(9);
|
||||
offModeFlg(ModeFlg_MIDAIR);
|
||||
onModeFlg(ModeFlg_00008000);
|
||||
|
||||
+207
-211
@@ -10,9 +10,9 @@
|
||||
* based on the original names of the functions it contains.
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_himo2.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_himo2.h"
|
||||
#include "d/d_attention.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
@@ -20,8 +20,7 @@
|
||||
|
||||
/* 80142D08-80142D68 .text checkRopeAnime__9daPy_lk_cCFv */
|
||||
BOOL daPy_lk_c::checkRopeAnime() const {
|
||||
return ((checkRopeReadyAnime()) ||
|
||||
(checkUpperAnime(LKANM_BCK_ROPETHROW)));
|
||||
return (checkRopeReadyAnime()) || (checkUpperAnime(LKANM_BCK_ROPETHROW));
|
||||
}
|
||||
|
||||
/* 80142D68-80142E0C .text freeRopeItem__9daPy_lk_cFv */
|
||||
@@ -49,8 +48,7 @@ void daPy_lk_c::freeRopeItem() {
|
||||
f32 daPy_lk_c::checkRopeRoofHit(s16 param_0) {
|
||||
cXyz local_c;
|
||||
|
||||
local_c.set(current.pos.x - 15.0f * cM_ssin(param_0), current.pos.y,
|
||||
current.pos.z - 15.0f * cM_scos(param_0));
|
||||
local_c.set(current.pos.x - 15.0f * cM_ssin(param_0), current.pos.y, current.pos.z - 15.0f * cM_scos(param_0));
|
||||
mRoofChk.SetPos(local_c);
|
||||
dComIfG_Bgsp()->RoofChk(&mRoofChk);
|
||||
}
|
||||
@@ -59,7 +57,7 @@ f32 daPy_lk_c::checkRopeRoofHit(s16 param_0) {
|
||||
int daPy_lk_c::changeRopeSwingProc() {
|
||||
if (mCyl.ChkCoHit() != 0) {
|
||||
fopAc_ac_c* pfVar2 = mCyl.GetCoHitAc();
|
||||
if (((pfVar2 != NULL)) && (fopAcM_GetName(pfVar2) == PROC_HIMO3)) {
|
||||
if ((pfVar2 != NULL) && (fopAcM_GetName(pfVar2) == PROC_HIMO3)) {
|
||||
cXyz local_24 = (pfVar2->current.pos - current.pos);
|
||||
if ((local_24.abs() - 95.0f >= 100.0f) && (pfVar2->current.pos.y > current.pos.y)) {
|
||||
return procRopeSwing_init(pfVar2, 0x1800);
|
||||
@@ -90,8 +88,7 @@ int daPy_lk_c::changeRopeEndProc(int param_0) {
|
||||
|
||||
/* 801430D4-80143138 .text checkSpecialRope__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkSpecialRope() {
|
||||
if ((!strcmp(dComIfGp_getStartStageName(), "GanonK")) && ((mActorKeepEquip.getActor() == NULL)))
|
||||
{
|
||||
if ((!strcmp(dComIfGp_getStartStageName(), "GanonK")) && (mActorKeepEquip.getActor() == NULL)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -134,103 +131,105 @@ BOOL daPy_lk_c::checkRopeSwingWall(cXyz*, cXyz*, s16*, f32*) {
|
||||
|
||||
/* 80143694-80143A44 .text setBlendRopeMoveAnime__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
|
||||
/* Nonmatching - regalloc */
|
||||
float fVar1;
|
||||
u16* puVar3;
|
||||
daPy_ANM dVar4;
|
||||
float dVar5;
|
||||
float dVar6;
|
||||
float local_48;
|
||||
daPy_ANM anm;
|
||||
f32 dVar6;
|
||||
f32 f30;
|
||||
f32 f2;
|
||||
f32 sp08;
|
||||
|
||||
dVar5 = std::fabsf(m35A4 * m35A8);
|
||||
f30 = m35A4 * m35A8;
|
||||
f2 = std::fabsf(f30);
|
||||
if (checkModeFlg(ModeFlg_00000400)) {
|
||||
local_48 = 0.0f;
|
||||
dVar4 = ANM_ROPESWINGB;
|
||||
sp08 = 0.0f;
|
||||
anm = ANM_ROPESWINGB;
|
||||
} else {
|
||||
local_48 = m_pbCalc[PART_UNDER_e]->getRatio(1);
|
||||
sp08 = m_pbCalc[PART_UNDER_e]->getRatio(1);
|
||||
if (m34D0 != 0) {
|
||||
if (m34D0 == -1) {
|
||||
dVar4 = ANM_ROPESWINGF;
|
||||
anm = ANM_ROPESWINGF;
|
||||
} else {
|
||||
dVar4 = ANM_ROPESWINGB;
|
||||
anm = ANM_ROPESWINGB;
|
||||
}
|
||||
dVar6 = 1.0f;
|
||||
cLib_chaseF(&local_48, dVar6, 0.05f);
|
||||
if (((m34D0 == -1) && (M_PI / 2 < dVar5)) || ((m34D0 == 1 && (-M_PI / 2 < dVar5)))) {
|
||||
cLib_chaseF(&sp08, dVar6, 0.05f);
|
||||
if (((m34D0 == -1) && (M_PI / 2 < f30)) || (m34D0 == 1 && (-M_PI / 2 < f30))) {
|
||||
m34D0 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((param_0 != 0) || (mStickDistance <= 0.05f)) || (spActionButton())) {
|
||||
if (dVar5 <= M_PI / 2) {
|
||||
dVar4 = ANM_ROPESWINGB;
|
||||
} else {
|
||||
dVar4 = ANM_ROPESWINGF;
|
||||
}
|
||||
dVar6 = ((0.6f * m34D4)) / daPy_HIO_rope_c0::m.field_0x0;
|
||||
if (checkSpecialRope()) {
|
||||
dVar6 *= 8.0f;
|
||||
}
|
||||
if (dVar6 > 0.6f) {
|
||||
dVar6 = 0.6f;
|
||||
}
|
||||
} else if (((param_0 != 0) || (mStickDistance <= 0.05f)) || (spActionButton())) {
|
||||
if (f2 <= M_PI / 2) {
|
||||
anm = ANM_ROPESWINGB;
|
||||
} else {
|
||||
if ((M_PI / 2 > dVar5) && (M_PI / 10 <= dVar5)) {
|
||||
setMoveAnime(0.0f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH,
|
||||
ANM_ROPESWINGF, 7, 7.0f);
|
||||
m34D0 = -1;
|
||||
return;
|
||||
}
|
||||
if ((-M_PI / 2 > dVar5) && (-2.8274333f <= dVar5)) {
|
||||
setMoveAnime(0.0f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH,
|
||||
ANM_ROPESWINGB, 7, 7.0f);
|
||||
m34D0 = 1;
|
||||
return;
|
||||
}
|
||||
if (dVar5 <= M_PI / 2) {
|
||||
dVar4 = ANM_ROPESWINGB;
|
||||
} else {
|
||||
dVar4 = ANM_ROPESWINGF;
|
||||
}
|
||||
dVar6 = (0.6f * m34D4) / daPy_HIO_rope_c0::m.field_0x0;
|
||||
if (checkSpecialRope()) {
|
||||
dVar6 *= 8.0f;
|
||||
}
|
||||
if (dVar6 > 0.6f) {
|
||||
dVar6 = 0.6f;
|
||||
}
|
||||
anm = ANM_ROPESWINGF;
|
||||
}
|
||||
dVar6 = (0.6f * m34D4) / daPy_HIO_rope_c0::m.field_0x0;
|
||||
if (checkSpecialRope()) {
|
||||
dVar6 *= 8.0f;
|
||||
}
|
||||
if (dVar6 > 0.6f) {
|
||||
dVar6 = 0.6f;
|
||||
}
|
||||
} else {
|
||||
if ((M_PI / 2 > f30) && (M_PI / 10 <= f30)) {
|
||||
setMoveAnime(0.0f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGF, 7, 7.0f);
|
||||
m34D0 = -1;
|
||||
return;
|
||||
}
|
||||
if ((-M_PI / 2 > f30) && (-2.8274333f <= f30)) {
|
||||
setMoveAnime(0.0f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGB, 7, 7.0f);
|
||||
m34D0 = 1;
|
||||
return;
|
||||
}
|
||||
if (f2 <= M_PI / 2) {
|
||||
anm = ANM_ROPESWINGB;
|
||||
} else {
|
||||
anm = ANM_ROPESWINGF;
|
||||
}
|
||||
dVar6 = (0.6f * m34D4) / daPy_HIO_rope_c0::m.field_0x0;
|
||||
if (checkSpecialRope()) {
|
||||
dVar6 *= 8.0f;
|
||||
}
|
||||
if (dVar6 > 0.6f) {
|
||||
dVar6 = 0.6f;
|
||||
}
|
||||
}
|
||||
puVar3 = (u16*)getAnmData(dVar4);
|
||||
if (*puVar3 != (m_anm_heap_under[UNDER_MOVE1_e]).mIdx) {
|
||||
cLib_addCalc(&local_48, -dVar6, 0.5f, 0.05f, 0.005f);
|
||||
if (local_48 <= 0.0f) {
|
||||
local_48 = 0.0f;
|
||||
u16 anm_bck = getAnmData(anm)->mUnderBckIdx;
|
||||
if (anm_bck != m_anm_heap_under[UNDER_MOVE1_e].mIdx) {
|
||||
cLib_addCalc(&sp08, -dVar6, 0.5f, 0.05f, 0.005f);
|
||||
if (sp08 <= 0.0f) {
|
||||
sp08 = 0.0f;
|
||||
} else {
|
||||
if (dVar4 == ANM_ROPESWINGB) {
|
||||
dVar4 = ANM_ROPESWINGF;
|
||||
if (anm == ANM_ROPESWINGB) {
|
||||
anm = ANM_ROPESWINGF;
|
||||
} else {
|
||||
dVar4 = ANM_ROPESWINGB;
|
||||
anm = ANM_ROPESWINGB;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (m34D0 == 0) {
|
||||
cLib_addCalc(&local_48, dVar6, 0.5f, 0.05f, 0.005f);
|
||||
cLib_addCalc(&sp08, dVar6, 0.5f, 0.05f, 0.005f);
|
||||
}
|
||||
}
|
||||
}
|
||||
f32 f4;
|
||||
if (param_0 != 0) {
|
||||
fVar1 = daPy_HIO_rope_c0::m.field_0x20;
|
||||
f4 = daPy_HIO_rope_c0::m.field_0x20;
|
||||
} else {
|
||||
fVar1 = -1.0f;
|
||||
f4 = -1.0f;
|
||||
}
|
||||
setMoveAnime(local_48, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, dVar4, 7, fVar1);
|
||||
setMoveAnime(sp08, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, anm, 7, f4);
|
||||
}
|
||||
|
||||
/* 80143A44-80143C5C .text throwRope__9daPy_lk_cFv */
|
||||
int daPy_lk_c::throwRope() {
|
||||
himo2_class* rope = (himo2_class*)mActorKeepEquip.getActor();
|
||||
setActAnimeUpper(LKANM_BCK_ROPETHROW, UPPER_MOVE2_e, daPy_HIO_rope_c0::m.field_0x44,
|
||||
daPy_HIO_rope_c0::m.field_0x48, daPy_HIO_rope_c0::m.field_0x8, -1.0f);
|
||||
setActAnimeUpper(
|
||||
LKANM_BCK_ROPETHROW,
|
||||
UPPER_MOVE2_e,
|
||||
daPy_HIO_rope_c0::m.field_0x44,
|
||||
daPy_HIO_rope_c0::m.field_0x48,
|
||||
daPy_HIO_rope_c0::m.field_0x8,
|
||||
-1.0f
|
||||
);
|
||||
setPriTextureAnime(0x48, 0);
|
||||
mVelocity = 0.0f;
|
||||
if (mDirection != DIR_RIGHT) {
|
||||
@@ -246,9 +245,11 @@ int daPy_lk_c::throwRope() {
|
||||
local_1c = pfVar4->eyePos;
|
||||
} else {
|
||||
f32 fVar3 = 500.0f * cM_scos(mBodyAngle.x);
|
||||
local_1c.set(current.pos.x + fVar3 * cM_ssin(shape_angle.y),
|
||||
(100.0f + current.pos.y) - 500.0f * cM_ssin(mBodyAngle.x),
|
||||
current.pos.z + fVar3 * cM_scos(shape_angle.y));
|
||||
local_1c.set(
|
||||
current.pos.x + fVar3 * cM_ssin(shape_angle.y),
|
||||
(100.0f + current.pos.y) - 500.0f * cM_ssin(mBodyAngle.x),
|
||||
current.pos.z + fVar3 * cM_scos(shape_angle.y)
|
||||
);
|
||||
}
|
||||
cXyz local_28;
|
||||
local_28.set(current.pos.x, current.pos.y + 100.0f, current.pos.z);
|
||||
@@ -293,12 +294,10 @@ BOOL daPy_lk_c::checkNextActionRopeReady() {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((cancelItemUpperReadyAnime())) {
|
||||
if (cancelItemUpperReadyAnime()) {
|
||||
return true;
|
||||
}
|
||||
} else if (((pnVar3->field_0x2DC == 5) || (pnVar3->field_0x2DC == 8)) ||
|
||||
(pnVar3->field_0x2DC == 9))
|
||||
{
|
||||
} else if (((pnVar3->field_0x2DC == 5) || (pnVar3->field_0x2DC == 8)) || (pnVar3->field_0x2DC == 9)) {
|
||||
return procRopeThrowCatch_init();
|
||||
} else {
|
||||
checkNextRopeMode();
|
||||
@@ -416,16 +415,14 @@ BOOL daPy_lk_c::procRopeSubject() {
|
||||
|
||||
/* 8014422C-80144464 .text procRopeReady_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procRopeReady_init() {
|
||||
/* Nonmatching - "extsh" mFrame */
|
||||
fopAc_ac_c* pfVar3 = 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);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mStart = daPy_HIO_rope_c0::m.field_0x1C;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mFrame = daPy_HIO_rope_c0::m.field_0x0;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mEnd = daPy_HIO_rope_c0::m.field_0x4;
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
||||
setMoveAnime(
|
||||
0.5f, daPy_HIO_rope_c0::m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGB, 7, daPy_HIO_rope_c0::m.field_0x20
|
||||
);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setStart(daPy_HIO_rope_c0::m.field_0x1C);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setEnd(daPy_HIO_rope_c0::m.field_0x4);
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
||||
m3688 = current.pos;
|
||||
m35F0 = m3688.y;
|
||||
m35F4 = m3688.y;
|
||||
@@ -484,7 +481,6 @@ BOOL daPy_lk_c::procRopeReady() {
|
||||
|
||||
/* 80144620-80144C58 .text procRopeSwing_init__9daPy_lk_cFP10fopAc_ac_cs */
|
||||
BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
|
||||
/* Nonmatching - regalloc */
|
||||
float dVar8;
|
||||
float dVar9;
|
||||
cXyz local_84;
|
||||
@@ -500,7 +496,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
|
||||
mEquipItem = dItem_GRAPPLING_HOOK_e;
|
||||
local_84 = (param_0->current.pos - current.pos);
|
||||
dVar8 = (local_84.abs() - 95.0f);
|
||||
dVar9 = pfVar7->field_0x15F8.y;
|
||||
dVar9 = ((himo2_class*)param_0)->field_0x15F8.y;
|
||||
if (dVar8 > dVar9) {
|
||||
dVar8 = dVar9;
|
||||
}
|
||||
@@ -525,7 +521,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
|
||||
local_78.x = fVar2 * local_84.x - fVar1 * local_84.z;
|
||||
local_78.y = local_84.y;
|
||||
local_78.z = fVar1 * local_84.x + fVar2 * local_84.z;
|
||||
s16 sVar4 = cM_atan2s(-local_78.x, local_78.z);
|
||||
s16 sVar4 = cM_atan2s(-local_78.z, local_78.y);
|
||||
if (sVar4 > m34D4) {
|
||||
sVar4 = m34D4;
|
||||
} else if (sVar4 < -m34D4) {
|
||||
@@ -569,12 +565,10 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
|
||||
if (pfVar7 == NULL) {
|
||||
m_old_fdata->initOldFrameMorf(15.0f, 0, 0x2A);
|
||||
}
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mStart = daPy_HIO_rope_c0::m.field_0x1C;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mFrame = daPy_HIO_rope_c0::m.field_0x0;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mEnd = daPy_HIO_rope_c0::m.field_0x4;
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setStart(daPy_HIO_rope_c0::m.field_0x1C);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setEnd(daPy_HIO_rope_c0::m.field_0x4);
|
||||
if ((pfVar7 != NULL) && (mActorKeepEquip.getActor() == NULL)) {
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
||||
}
|
||||
m34D0 = 0;
|
||||
shape_angle.x = param_1;
|
||||
@@ -583,45 +577,35 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
|
||||
|
||||
/* 80144C58-801456D8 .text procRopeSwing__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procRopeSwing() {
|
||||
/* Nonmatching, regalloc, math */
|
||||
fopAc_ac_c* pfVar5;
|
||||
short sVar8;
|
||||
short sVar9;
|
||||
short sVar10;
|
||||
float dVar11;
|
||||
float dVar12;
|
||||
float dVar13;
|
||||
short local_98[2];
|
||||
float local_94;
|
||||
cXyz cStack_90;
|
||||
cXyz local_6c;
|
||||
float local_48;
|
||||
|
||||
if (checkHangRopeActorNull()) {
|
||||
return true;
|
||||
}
|
||||
mDoMtx_multVecZero(mpCLModel->getAnmMtx(1), &local_6c);
|
||||
pfVar5 = mActorKeepRope.getActor();
|
||||
mRopePos = pfVar5->current.pos;
|
||||
|
||||
cXyz sp34;
|
||||
mDoMtx_multVecZero(mpCLModel->getAnmMtx(0x28), &sp34);
|
||||
fopAc_ac_c* rope = mActorKeepRope.getActor();
|
||||
mRopePos = rope->current.pos;
|
||||
dComIfGp_setRStatus(0x13);
|
||||
dVar12 = (m35A8 * m35A4);
|
||||
dVar13 = (m35AC * m35A4);
|
||||
f32 f30 = (m35A8 * m35A4);
|
||||
f32 dVar13 = (m35AC * m35A4);
|
||||
mDoMtx_stack_c::ZrotS(-shape_angle.z);
|
||||
mDoMtx_stack_c::XrotM(-shape_angle.x);
|
||||
mDoMtx_stack_c::YrotM(-shape_angle.y);
|
||||
mDoMtx_stack_c::transM(-current.pos.x, -current.pos.y, -current.pos.z);
|
||||
mDoMtx_stack_c::multVec(&local_6c, &cStack_90);
|
||||
cXyz sp28;
|
||||
mDoMtx_stack_c::multVec(&sp34, &sp28);
|
||||
|
||||
if (checkSpecialRope()) {
|
||||
f30 = 0.0f;
|
||||
dVar13 = 0.0f;
|
||||
dVar12 = dVar13;
|
||||
} else {
|
||||
if ((0.0f <= dVar12) && (dVar12 <= M_PI / 2)) {
|
||||
dVar12 = -0.45f * cM_ssin(cM_rad2s(dVar12));
|
||||
if ((0.0f <= f30) && (f30 <= M_PI / 2)) {
|
||||
f30 = -0.45f * cM_ssin(cM_rad2s(f30));
|
||||
} else {
|
||||
if (dVar12 <= -M_PI / 2) {
|
||||
dVar12 = 0.45f * cM_ssin(cM_rad2s(dVar12));
|
||||
if (f30 <= -M_PI / 2) {
|
||||
f30 = 0.45f * cM_ssin(cM_rad2s(f30));
|
||||
} else {
|
||||
dVar12 = 0.0f;
|
||||
f30 = 0.0f;
|
||||
}
|
||||
}
|
||||
if ((0.0f <= dVar13) && (dVar13 <= M_PI / 2)) {
|
||||
@@ -634,18 +618,19 @@ BOOL daPy_lk_c::procRopeSwing() {
|
||||
}
|
||||
}
|
||||
}
|
||||
dVar11 = 1.0f;
|
||||
m35A8 = m35A8 + (dVar11 + dVar12);
|
||||
|
||||
f32 dVar11 = 1.0f;
|
||||
m35A8 = m35A8 + (dVar11 + f30);
|
||||
m35AC = m35AC + (dVar11 + dVar13);
|
||||
local_94 = m35A8 * m35A4;
|
||||
dVar12 = (m35AC * m35A4);
|
||||
if (local_94 >= M_PI) {
|
||||
local_94 = local_94 - M_PI * 2;
|
||||
m35A8 = local_94 / m35A4;
|
||||
f32 sp0C = m35A8 * m35A4;
|
||||
f30 = (m35AC * m35A4);
|
||||
if (sp0C >= M_PI) {
|
||||
sp0C = sp0C - M_PI * 2;
|
||||
m35A8 = sp0C / m35A4;
|
||||
}
|
||||
if (dVar12 >= M_PI) {
|
||||
dVar12 = (dVar12 - M_PI * 2);
|
||||
m35AC = (dVar12 / m35A4);
|
||||
if (f30 >= M_PI) {
|
||||
f30 = (f30 - M_PI * 2);
|
||||
m35AC = (f30 / m35A4);
|
||||
}
|
||||
if ((checkModeFlg(ModeFlg_00000400)) && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
@@ -653,80 +638,95 @@ BOOL daPy_lk_c::procRopeSwing() {
|
||||
setTextureAnime(8, 0);
|
||||
}
|
||||
setBlendRopeMoveAnime(0);
|
||||
|
||||
s16 r30;
|
||||
s16 r28;
|
||||
s16 r29;
|
||||
if (checkSpecialRope()) {
|
||||
sVar10 = daPy_HIO_rope_c0::m.field_0x0 * 0.125f;
|
||||
sVar8 = 4;
|
||||
sVar9 = 8;
|
||||
r30 = daPy_HIO_rope_c0::m.field_0x0 / 8.0f;
|
||||
r28 = 4;
|
||||
r29 = 8;
|
||||
} else {
|
||||
sVar10 = daPy_HIO_rope_c0::m.field_0x0;
|
||||
sVar8 = 0x20;
|
||||
sVar9 = 0x40;
|
||||
r30 = daPy_HIO_rope_c0::m.field_0x0;
|
||||
r28 = 0x20;
|
||||
r29 = 0x40;
|
||||
}
|
||||
if (spActionButton()) {
|
||||
cLib_chaseS(&m34D4, 0, sVar8 * 10);
|
||||
cLib_chaseS(&m34D6, 0, sVar8 * 10);
|
||||
cLib_chaseS(&m34D4, 0, r28 * 10);
|
||||
cLib_chaseS(&m34D6, 0, r28 * 10);
|
||||
} else {
|
||||
cLib_chaseS(&m34D6, 0, sVar8);
|
||||
if (std::fabsf(mStickDistance) > 0.05f) {
|
||||
m34D4 += sVar9 * std::abs(cM_scos(cM_rad2s((local_94))));
|
||||
cLib_chaseS(&m34D6, 0, r28);
|
||||
f32 f1 = std::fabsf(sp0C);
|
||||
if (mStickDistance > 0.05f) {
|
||||
m34D4 += r29 * std::abs(cM_scos(cM_rad2s(f1)));
|
||||
} else {
|
||||
cLib_chaseS(&m34D4, 0, sVar8);
|
||||
cLib_chaseS(&m34D4, 0, r28);
|
||||
}
|
||||
}
|
||||
if (sVar10 > m34D4) {
|
||||
m34D4 = sVar10;
|
||||
if (m34D4 > r30) {
|
||||
m34D4 = r30;
|
||||
}
|
||||
local_98[0] = -m34D4 * cM_ssin(cM_rad2s(local_94));
|
||||
local_48 = m34D6 * cM_ssin(cM_rad2s(dVar12));
|
||||
|
||||
s16 sp08 = -m34D4 * cM_ssin(cM_rad2s(sp0C));
|
||||
s16 r29_2 = m34D6 * cM_ssin(cM_rad2s(f30));
|
||||
s16 r28_2;
|
||||
if (m34D0 != 0) {
|
||||
m_pbCalc[PART_UNDER_e]->setRatio(1, dVar13);
|
||||
sVar8 = m34D4 * cM_ssin(cM_rad2s(local_94)) + (-m34D4 * (0.5f * m34D0) * dVar13);
|
||||
dVar13 = m_pbCalc[PART_UNDER_e]->getRatio(1);
|
||||
f32 f2 = -m34D4 * cM_ssin(cM_rad2s(sp0C));
|
||||
f32 f0 = 0.5f * m34D4 * m34D0;
|
||||
r28_2 = f2 + (f0 * dVar13);
|
||||
} else {
|
||||
sVar8 = -m34D4 * cM_ssin(cM_rad2s((local_48 - 0.62831855f)));
|
||||
r28_2 = -m34D4 * cM_ssin(cM_rad2s(sp0C - 0.62831855f));
|
||||
}
|
||||
cLib_addCalcAngleS(&shape_angle.x, sVar8, 8, 0xc00, 0x100);
|
||||
dVar13 = cM_scos(cM_rad2s(dVar12));
|
||||
cLib_addCalcAngleS(&shape_angle.z, m34D6 * cM_ssin(cM_rad2s((dVar12 - 1.0995574f))), 8,
|
||||
(1024.0f + (2048.0f * dVar13)), (128.0f + (128.0f * dVar13)));
|
||||
local_6c.set(0.0f, -m35A0, 0.0f);
|
||||
cLib_addCalcAngleS(&shape_angle.x, r28_2, 8, 0xc00, 0x100);
|
||||
dVar13 = cM_scos(cM_rad2s(f30));
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.z,
|
||||
m34D6 * cM_ssin(cM_rad2s(f30 - 1.0995574f)),
|
||||
8,
|
||||
(1024.0f + (2048.0f * dVar13)),
|
||||
(128.0f + (128.0f * dVar13))
|
||||
);
|
||||
cXyz sp1C(0.0f, -m35A0, 0.0f);
|
||||
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(local_98[0], shape_angle.y, local_98[1]);
|
||||
mDoMtx_stack_c::multVec(&cStack_90, ¤t.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(sp08, shape_angle.y, r29_2);
|
||||
mDoMtx_stack_c::multVec(&sp1C, ¤t.pos);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
sVar8 = shape_angle.y;
|
||||
mDoMtx_stack_c::ZXYrotM(-m34D4 * cM_ssin(cM_rad2s((local_94 + m35A4))), sVar8, local_98[0]);
|
||||
mDoMtx_stack_c::multVec(&local_6c, &cStack_90);
|
||||
if (!checkRopeSwingWall(&local_6c, &cStack_90, local_98, &local_94)) {
|
||||
mDoMtx_stack_c::ZXYrotM(-m34D4 * cM_ssin(cM_rad2s(sp0C + m35A4)), shape_angle.y, r29_2);
|
||||
cXyz sp10;
|
||||
mDoMtx_stack_c::multVec(&sp28, &sp10);
|
||||
if (!checkRopeSwingWall(&sp34, &sp10, &sp08, &sp0C)) {
|
||||
static cXyz local_height_offset(0.0f, -105.0f, 0.0f);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
|
||||
mDoMtx_stack_c::multVec(&local_height_offset, &cStack_90);
|
||||
if (!checkRopeSwingWall(¤t.pos, &cStack_90, local_98, &local_94)) {
|
||||
mDoMtx_stack_c::multVec(&local_height_offset, &sp10);
|
||||
if (!checkRopeSwingWall(¤t.pos, &sp10, &sp08, &sp0C)) {
|
||||
resetFootEffect();
|
||||
}
|
||||
}
|
||||
dVar12 = ((f32)m34D4 / sVar10);
|
||||
|
||||
f30 = ((f32)m34D4 / r30);
|
||||
if (changeRopeEndProc(0)) {
|
||||
dVar13 = (m35A0 / (100.0f * daPy_HIO_rope_c0::m.field_0x14));
|
||||
if (dVar13 < 1.0f) {
|
||||
dVar13 = 1.0f;
|
||||
}
|
||||
mVelocity = (dVar12 * dVar13) * daPy_HIO_rope_c0::m.field_0xC;
|
||||
if (std::abs(local_94) > M_PI / 2) {
|
||||
f30 *= dVar13;
|
||||
mVelocity = daPy_HIO_rope_c0::m.field_0xC * f30;
|
||||
if (std::abs(sp0C) > M_PI / 2) {
|
||||
current.angle.y = shape_angle.y + 0x8000;
|
||||
}
|
||||
speed.y = (dVar12 * dVar13) * daPy_HIO_rope_c0::m.field_0x10;
|
||||
speed.y = daPy_HIO_rope_c0::m.field_0x10 * f30;
|
||||
procFall_init(0, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
onNoResetFlg1(daPyFlg1_UNK8000000);
|
||||
} else {
|
||||
if ((m34D4 == 0) && (m34D6 == 0)) {
|
||||
procRopeHangWait_init(0);
|
||||
} else if (dVar12 > 0.6f) {
|
||||
if (cM_scos(cM_rad2s(local_94)) > 0.77f) {
|
||||
mDoAud_seStart(JA_SE_LK_ROPE_SWING_F, &mRopePos, NULL, mReverb);
|
||||
}
|
||||
} else if ((m34D4 == 0) && (m34D6 == 0)) {
|
||||
procRopeHangWait_init(0);
|
||||
} else if (f30 > 0.6f) {
|
||||
if (cM_scos(cM_rad2s(sp0C)) > 0.77f) {
|
||||
mDoAud_seStart(JA_SE_LK_ROPE_SWING_F, &mRopePos, NULL, mReverb);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -741,13 +741,13 @@ BOOL daPy_lk_c::procRopeHangWait_init(int param_0) {
|
||||
gravity = 0.0f;
|
||||
if (param_0 == 0) {
|
||||
m34D0 = daPy_HIO_rope_c0::m.field_0x6;
|
||||
setSingleMoveAnime(ANM_ROPECATCH, 1.0f, mFrameCtrlUnder[UNDER_MOVE0_e].getEnd() - 0.001f,
|
||||
-1, daPy_HIO_rope_c0::m.field_0x28);
|
||||
setSingleMoveAnime(
|
||||
ANM_ROPECATCH, 1.0f, mFrameCtrlUnder[UNDER_MOVE0_e].getEnd() - 0.001f, -1, daPy_HIO_rope_c0::m.field_0x28
|
||||
);
|
||||
setTextureAnime(2, 0);
|
||||
} else {
|
||||
m34D0 = -1;
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x28);
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x28);
|
||||
}
|
||||
m34D4 = 0;
|
||||
return true;
|
||||
@@ -761,7 +761,7 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
float dVar4;
|
||||
|
||||
dComIfGp_setRStatus(0x13);
|
||||
if (0 < (int)m34D0) {
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
}
|
||||
if (checkHangRopeActorNull()) {
|
||||
@@ -817,8 +817,9 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
bVar1 = true;
|
||||
if (m34D0 != -1) {
|
||||
m34D0 = -1;
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x2C);
|
||||
setSingleMoveAnime(
|
||||
ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C
|
||||
);
|
||||
}
|
||||
} else if ((direction == DIR_FORWARD) || (direction == DIR_BACKWARD)) {
|
||||
procRopeSwingStart_init();
|
||||
@@ -827,8 +828,7 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
bVar1 = true;
|
||||
} else if (m34D0 == 0) {
|
||||
m34D0 = -1;
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x2C);
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C);
|
||||
}
|
||||
unaff_r29 = 0;
|
||||
bVar1 = true;
|
||||
@@ -850,13 +850,9 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
|
||||
/* 80145B38-80145C3C .text specialRopeHangUp__9daPy_lk_cFv */
|
||||
int daPy_lk_c::specialRopeHangUp() {
|
||||
/* Nonmatching - shape_angle.y */
|
||||
u32 uVar1;
|
||||
int iVar2;
|
||||
|
||||
if (checkSpecialRope()) {
|
||||
uVar1 = (int)shape_angle.y ^ 0x4000;
|
||||
iVar2 = abs((((int)uVar1 >> 1) - (uVar1 & 0x4000)) >> 0x1f);
|
||||
u32 uVar1 = shape_angle.y >= 0x4000 ? 0 : 1;
|
||||
int iVar2 = abs(uVar1);
|
||||
if (iVar2 != 0) {
|
||||
current.pos.z = -15.8f;
|
||||
shape_angle.y = 0;
|
||||
@@ -864,8 +860,8 @@ int daPy_lk_c::specialRopeHangUp() {
|
||||
current.pos.z = 15.8f;
|
||||
shape_angle.y = -0x8000;
|
||||
}
|
||||
current.pos.x = 361.39999f;
|
||||
current.pos.y = 4464.7998f;
|
||||
current.pos.x = 361.4f;
|
||||
current.pos.y = 4464.8f;
|
||||
old.pos = current.pos;
|
||||
current.angle.y = shape_angle.y;
|
||||
m3724 = current.pos;
|
||||
@@ -908,9 +904,8 @@ BOOL daPy_lk_c::procRopeUp_init() {
|
||||
} else {
|
||||
commonProcInit(daPyProc_ROPE_UP_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
|
||||
setSingleMoveAnime(ANM_ROPECLIMB, daPy_HIO_rope_c0::m.field_0x30, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x34);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].mAttribute = 0;
|
||||
setSingleMoveAnime(ANM_ROPECLIMB, daPy_HIO_rope_c0::m.field_0x30, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x34);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setAttribute(J3DFrameCtrl::EMode_NONE);
|
||||
m35A0 = dVar4;
|
||||
gravity = 0.0f;
|
||||
return true;
|
||||
@@ -943,9 +938,8 @@ BOOL daPy_lk_c::procRopeUp() {
|
||||
procRopeHangWait_init(0);
|
||||
}
|
||||
} else {
|
||||
setSingleMoveAnime(ANM_ROPECLIMB, daPy_HIO_rope_c0::m.field_0x30, 0.0f, -1,
|
||||
-1.0f);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setAttribute(0);
|
||||
setSingleMoveAnime(ANM_ROPECLIMB, daPy_HIO_rope_c0::m.field_0x30, 0.0f, -1, -1.0f);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setAttribute(J3DFrameCtrl::EMode_NONE);
|
||||
}
|
||||
} else {
|
||||
procRopeHangWait_init(0);
|
||||
@@ -987,8 +981,7 @@ BOOL daPy_lk_c::procRopeDown_init() {
|
||||
} else {
|
||||
commonProcInit(daPyProc_ROPE_DOWN_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
|
||||
setSingleMoveAnime(ANM_ROPEDOWN, daPy_HIO_rope_c0::m.field_0x38, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x3C);
|
||||
setSingleMoveAnime(ANM_ROPEDOWN, daPy_HIO_rope_c0::m.field_0x38, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x3C);
|
||||
gravity = 0.0f;
|
||||
m35A0 = 0.0f;
|
||||
return true;
|
||||
@@ -998,7 +991,7 @@ BOOL daPy_lk_c::procRopeDown_init() {
|
||||
/* 801460EC-80146240 .text procRopeDown__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procRopeDown() {
|
||||
dComIfGp_setRStatus(0x13);
|
||||
if ((checkHangRopeActorNull())) {
|
||||
if (checkHangRopeActorNull()) {
|
||||
return true;
|
||||
}
|
||||
if (!changeRopeEndProc(1)) {
|
||||
@@ -1106,8 +1099,7 @@ BOOL daPy_lk_c::procRopeMove_init() {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
}
|
||||
if (fopAcM_GetParam(mActorKeepEquip.getActor()) == 0) {
|
||||
setActAnimeUpper(LKANM_BCK_ROPETHROWWAIT, UPPER_MOVE2_e, daPy_HIO_rope_c0::m.field_0x50,
|
||||
0.0f, -1, -1.0f);
|
||||
setActAnimeUpper(LKANM_BCK_ROPETHROWWAIT, UPPER_MOVE2_e, daPy_HIO_rope_c0::m.field_0x50, 0.0f, -1, -1.0f);
|
||||
setBlendAtnMoveAnime(daPy_HIO_rope_c0::m.field_0x54);
|
||||
}
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_ROPE_AIM_e);
|
||||
@@ -1150,9 +1142,13 @@ BOOL daPy_lk_c::procRopeMove() {
|
||||
/* 80146848-801468C4 .text procRopeThrowCatch_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procRopeThrowCatch_init() {
|
||||
commonProcInit(daPyProc_ROPE_THROW_CATCH_e);
|
||||
setSingleMoveAnime(ANM_ROPETHROWCATCH, daPy_HIO_rope_c0::m.field_0x58,
|
||||
daPy_HIO_rope_c0::m.field_0x5C, daPy_HIO_rope_c0::m.field_0xA,
|
||||
daPy_HIO_rope_c0::m.field_0x64);
|
||||
setSingleMoveAnime(
|
||||
ANM_ROPETHROWCATCH,
|
||||
daPy_HIO_rope_c0::m.field_0x58,
|
||||
daPy_HIO_rope_c0::m.field_0x5C,
|
||||
daPy_HIO_rope_c0::m.field_0xA,
|
||||
daPy_HIO_rope_c0::m.field_0x64
|
||||
);
|
||||
mVelocity = 0.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_ROPE_AIM_e);
|
||||
m34D0 = 0x1e;
|
||||
@@ -1172,7 +1168,7 @@ BOOL daPy_lk_c::procRopeThrowCatch() {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
m34D0--;
|
||||
himo2_class* rope = (himo2_class*)mActorKeepEquip.getActor();
|
||||
if ((rope->field_0x2DC == 0 || (m34D0 == 0))) {
|
||||
if (rope->field_0x2DC == 0 || (m34D0 == 0)) {
|
||||
checkNextRopeMode();
|
||||
}
|
||||
}
|
||||
|
||||
+270
-275
@@ -38,7 +38,7 @@ BOOL daPy_lk_c::checkJumpRideShip() {
|
||||
if (hit_ac != NULL && fopAcM_GetName(hit_ac) == PROC_SHIP) {
|
||||
daShip_c* ship = (daShip_c*)hit_ac;
|
||||
cXyz sp20;
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, &sp20);
|
||||
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_offset, &sp20);
|
||||
sp20 = old.pos - sp20;
|
||||
if (sp20.y > 5.0f && sp20.abs2XZ() < 10000.0f) {
|
||||
return procShipJumpRide_init();
|
||||
@@ -50,9 +50,9 @@ BOOL daPy_lk_c::checkJumpRideShip() {
|
||||
|
||||
/* 8013F984-8013F9B0 .text checkShipNotNormalMode__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkShipNotNormalMode() {
|
||||
if (((m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP2) &&
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_VOYAGE1)) &&
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP1))
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP2 &&
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_VOYAGE1 &&
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -60,18 +60,18 @@ BOOL daPy_lk_c::checkShipNotNormalMode() {
|
||||
}
|
||||
|
||||
/* 8013F9B0-8013FE78 .text setShipRideArmAngle__9daPy_lk_cFiP16J3DTransformInfo */
|
||||
void daPy_lk_c::setShipRideArmAngle(int param_1, J3DTransformInfo* param_2) {
|
||||
void daPy_lk_c::setShipRideArmAngle(int jnt_no, J3DTransformInfo* param_2) {
|
||||
/* Nonmatching - regalloc, math */
|
||||
static cXyz arm_pos(0.0f, 0.0f, 0.0f);
|
||||
static cXyz armA_offset(17.0f, 0.0f, 0.0f);
|
||||
cXyz local_74;
|
||||
cXyz local_68;
|
||||
|
||||
s32 uVar3 = (param_1 == 0xA) ? 1 : 0;
|
||||
if (uVar3 != 0) {
|
||||
BOOL uVar3 = jnt_no == 0xA ? TRUE : FALSE;
|
||||
if (uVar3) {
|
||||
f32 fVar1 = m_old_fdata->getOldFrameRate();
|
||||
f32 fVar2 = 1.0f / (1.0f - fVar1);
|
||||
J3DTransformInfo* iVar4 = m_old_fdata->getOldFrameTransInfo(param_1);
|
||||
J3DTransformInfo* iVar4 = m_old_fdata->getOldFrameTransInfo(jnt_no);
|
||||
param_2->mTranslate.x *= fVar2 - iVar4->mTranslate.x * fVar1;
|
||||
param_2->mTranslate.y *= fVar2 - iVar4->mTranslate.y * fVar1;
|
||||
param_2->mTranslate.z *= fVar2 - iVar4->mTranslate.z * fVar1;
|
||||
@@ -82,17 +82,17 @@ void daPy_lk_c::setShipRideArmAngle(int param_1, J3DTransformInfo* param_2) {
|
||||
f32 dVar10 = local_68.absXZ();
|
||||
u32 uVar5 = cM_atan2s(local_68.y, dVar10);
|
||||
mDoMtx_stack_c::transS(arm_pos.x, arm_pos.y, arm_pos.z);
|
||||
f32 dVar12 = (26.299999f * cM_scos((uVar5 & 0xffff)));
|
||||
f32 dVar12 = (26.3f * cM_scos(uVar5 & 0xffff));
|
||||
f32 dVar8 = local_68.absXZ();
|
||||
dVar10 = dVar8;
|
||||
if (uVar3 == 0) {
|
||||
if (!uVar3) {
|
||||
mDoMtx_stack_c::YrotM(cM_atan2s(local_68.x, local_68.z) + -0x4000);
|
||||
if (dVar10 >= dVar12) {
|
||||
mDoMtx_stack_c::scaleM((dVar10 / dVar12), 1.0f, 1.0f);
|
||||
}
|
||||
} else {
|
||||
f32 dVar9 = (17.0f * cM_scos(uVar5 & 0xffff));
|
||||
f32 dVar11 = (dVar12 + dVar9);
|
||||
f32 dVar11 = dVar12 + dVar9;
|
||||
if (dVar10 >= dVar11) {
|
||||
mDoMtx_stack_c::YrotM(cM_atan2s(local_68.x, local_68.z) + -0x4000);
|
||||
mDoMtx_stack_c::scaleM((dVar10 / dVar11), 1.0f, 1.0f);
|
||||
@@ -100,17 +100,16 @@ void daPy_lk_c::setShipRideArmAngle(int param_1, J3DTransformInfo* param_2) {
|
||||
dVar12 = ((dVar8 + ((dVar9 * dVar9) - (dVar12 * dVar12))) / (2.0f * dVar8));
|
||||
mDoMtx_stack_c::YrotM(
|
||||
(cM_atan2s(local_68.x, local_68.z) + -0x4000) -
|
||||
cM_atan2s(std::sqrtf((dVar9 * dVar9) - (dVar12 * (dVar8 * dVar12))),
|
||||
(dVar10 * dVar12)));
|
||||
cM_atan2s(std::sqrtf((dVar9 * dVar9) - (dVar12 * (dVar8 * dVar12))), (dVar10 * dVar12))
|
||||
);
|
||||
}
|
||||
}
|
||||
mDoMtx_stack_c::ZrotM(uVar5);
|
||||
mDoMtx_stack_c::XrotM(0x4000);
|
||||
mDoMtx_copy(mDoMtx_stack_c::now, J3DSys::mCurrentMtx);
|
||||
if (uVar3 != 0) {
|
||||
if (uVar3) {
|
||||
mDoMtx_stack_c::multVec(&armA_offset, &arm_pos);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 8013FE78-8013FEF4 .text checkShipRideUseItem__9daPy_lk_cFi */
|
||||
@@ -133,7 +132,7 @@ void daPy_lk_c::initShipRideUseItem(int param_1, int param_2) {
|
||||
if (param_1 == 0) {
|
||||
return;
|
||||
}
|
||||
dComIfGp_getShipActor()->m034D = 2; // TODO probably inline setter
|
||||
dComIfGp_getShipActor()->m034D = 2; // TODO probably inline setter
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
if (param_1 == 1) {
|
||||
@@ -161,34 +160,34 @@ void daPy_lk_c::setShipRidePosUseItem() {
|
||||
|
||||
/* 80140018-801403E0 .text setShipRidePos__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (iVar1 != 0) {
|
||||
if (iVar1->mStateFlag & 0x4000) {
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
if (ship != NULL) {
|
||||
if (ship->mStateFlag & 0x4000) {
|
||||
dComIfGp_setRStatus(0x12);
|
||||
}
|
||||
if (param_0 != 0) {
|
||||
shape_angle.y = iVar1->shape_angle.y;
|
||||
shape_angle.y = ship->shape_angle.y;
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
if (mCurProc == ANM_MSTEPOVER_JMPED) {
|
||||
m353C = iVar1->shape_angle.x;
|
||||
m353E = iVar1->shape_angle.z;
|
||||
m353C = ship->shape_angle.x;
|
||||
m353E = ship->shape_angle.z;
|
||||
m3540 = 0;
|
||||
m3542 = 0;
|
||||
} else {
|
||||
m353C = m353C + m3540;
|
||||
m3540 = (s16)(m3540 + 0.75f * (s16)(iVar1->shape_angle.x - m353C));
|
||||
m3540 = (s16)(m3540 + 0.75f * (s16)(ship->shape_angle.x - m353C));
|
||||
cLib_addCalcAngleS(&m3540, 0, 5, 0x200, 0x100);
|
||||
m353E = m353E + m3542;
|
||||
m3542 += ((s16)(iVar1->shape_angle.z - m353E) >> 1);
|
||||
m3542 += ((s16)(ship->shape_angle.z - m353E) >> 1);
|
||||
cLib_addCalcAngleS(&m3542, 0, 5, 0x100, 0x30);
|
||||
}
|
||||
if (mCurProc == ANM_WARPOUT) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset3, ¤t.pos);
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_offset3, ¤t.pos);
|
||||
} else if (mCurProc == ANM_SETBOOTS && m34D8 != 0) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset2, ¤t.pos);
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_offset2, ¤t.pos);
|
||||
} else {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, ¤t.pos);
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, ¤t.pos);
|
||||
}
|
||||
if (checkShipNotNormalMode()) {
|
||||
mBodyAngle.y = 0;
|
||||
@@ -196,28 +195,27 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
cXyz local_38;
|
||||
f32 sp08;
|
||||
dKyw_get_AllWind_vec(¤t.pos, &local_38, &sp08);
|
||||
f32 fVar2 = (30.0f * sp08 + iVar1->speedF) / 30.0f;
|
||||
f32 fVar2 = (30.0f * sp08 + ship->speedF) / 30.0f;
|
||||
if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate((1.0f - daPy_HIO_ship_c0::m.field_0xC) * fVar2 +
|
||||
daPy_HIO_ship_c0::m.field_0xC);
|
||||
if ((iVar1->mStateFlag & 0x40) != 0) {
|
||||
if (iVar1->m03E4 > 0.6f) {
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(
|
||||
(1.0f - daPy_HIO_ship_c0::m.field_0xC) * fVar2 + daPy_HIO_ship_c0::m.field_0xC
|
||||
);
|
||||
if ((ship->mStateFlag & 0x40) != 0) {
|
||||
if (ship->m03E4 > 0.6f) {
|
||||
voiceStart(6);
|
||||
} else {
|
||||
if (iVar1->m03E4 > 0.2f) {
|
||||
voiceStart(7);
|
||||
}
|
||||
} else if (ship->m03E4 > 0.2f) {
|
||||
voiceStart(7);
|
||||
}
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP1, 1.0f, 0.0f, -1, 20.0f);
|
||||
}
|
||||
if (iVar1->mStateFlag & 0x80) {
|
||||
if (ship->mStateFlag & 0x80) {
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP2, 1.0f, 3.0f, -1, 3.0f);
|
||||
}
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_SHIP_JUMP2) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if ((iVar1->mStateFlag & 1) != 0) {
|
||||
if ((ship->mStateFlag & 1) != 0) {
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP1, 1.0f, 0.0f, -1, 20.0f);
|
||||
} else {
|
||||
setSingleMoveAnime(ANM_VOYAGE1, 1.0f, 0.0f, -1, 5.0f);
|
||||
@@ -228,7 +226,7 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
}
|
||||
s16 sVar4;
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_VOYAGE1) {
|
||||
sVar4 = -daPy_HIO_ship_c0::m.field_0x4 * iVar1->m03DC;
|
||||
sVar4 = -daPy_HIO_ship_c0::m.field_0x4 * ship->m03DC;
|
||||
} else {
|
||||
sVar4 = 0;
|
||||
}
|
||||
@@ -294,7 +292,7 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
}
|
||||
|
||||
/* 801405F0-80140C88 .text changeShipEndProc__9daPy_lk_cFv */
|
||||
int daPy_lk_c::changeShipEndProc() {
|
||||
BOOL daPy_lk_c::changeShipEndProc() {
|
||||
/* Nonmatching - branching */
|
||||
daBoomerang_c* pfVar4;
|
||||
|
||||
@@ -309,39 +307,36 @@ int daPy_lk_c::changeShipEndProc() {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
}
|
||||
if (((((mCurProc != daPyProc_SHIP_SCOPE_e) && (mCurProc != daPyProc_SHIP_BOW_e)) &&
|
||||
(mCurProc != daPyProc_SHIP_HOOKSHOT_e)) &&
|
||||
((mCurProc != daPyProc_SHIP_BOOMERANG_e || (mEquipItem != dItem_BOOMERANG_e)))) &&
|
||||
((ship->mStateFlag & 1) == 0))
|
||||
if (mCurProc != daPyProc_SHIP_SCOPE_e && mCurProc != daPyProc_SHIP_BOW_e && mCurProc != daPyProc_SHIP_HOOKSHOT_e &&
|
||||
(mCurProc != daPyProc_SHIP_BOOMERANG_e || mEquipItem != dItem_BOOMERANG_e) && (ship->mStateFlag & 1) == 0)
|
||||
{
|
||||
setTalkStatus();
|
||||
if (orderTalk()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if ((dComIfGp_getMiniGameType() != 1) && (ship->speedF < 3.0f)) {
|
||||
if (dComIfGp_getMiniGameType() != 1 && ship->speedF < 3.0f) {
|
||||
if (ship->m1044.absXZ() < 3.0f) {
|
||||
if (((!checkShipNotNormalMode() ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEA)) ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEB)) ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREED))
|
||||
if (((!checkShipNotNormalMode() || m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEA) ||
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEB) ||
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREED)
|
||||
{
|
||||
if (((!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) &&
|
||||
(!spActionButton())) &&
|
||||
((dComIfGp_getDoStatus() == 0 && (mCurProc == daPyProc_SHIP_PADDLE_e)))))
|
||||
if ((!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) && !spActionButton()) &&
|
||||
(dComIfGp_getDoStatus() == 0 && mCurProc == daPyProc_SHIP_PADDLE_e))
|
||||
{
|
||||
if ((!ship->checkForceMove()) && (dComIfGp_setDoStatus(29), doTrigger())) {
|
||||
return procShipGetOff_init();
|
||||
if (!ship->checkForceMove()) {
|
||||
dComIfGp_setDoStatus(29);
|
||||
if (doTrigger()) {
|
||||
return procShipGetOff_init();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((mCurProc != daPyProc_SHIP_SCOPE_e) && ((ship->mStateFlag & 1) == 0)) {
|
||||
if (mCurProc != daPyProc_SHIP_SCOPE_e && ((ship->mStateFlag & 1) == 0)) {
|
||||
if (dComIfGp_getDoStatus() == 0) {
|
||||
if ((ship->mShipMode == 1) || (ship->checkForceMove()) ||
|
||||
(((ship->speedF < 3.0f) && (ship->mShipMode != 0))))
|
||||
{
|
||||
if (ship->mShipMode == 1 || ship->checkForceMove() || (ship->speedF < 3.0f && ship->mShipMode != 0)) {
|
||||
dComIfGp_setDoStatus(8);
|
||||
}
|
||||
}
|
||||
@@ -350,54 +345,61 @@ int daPy_lk_c::changeShipEndProc() {
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipSteer_init();
|
||||
} else if (checkSetItemTrigger(dItem_BOMB_BAG_e, 1)) {
|
||||
return procShipSteer_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_BOMB_BAG_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipCannon_init();
|
||||
} else if (checkSetItemTrigger(dItem_GRAPPLING_HOOK_e, 1)) {
|
||||
return procShipCannon_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_GRAPPLING_HOOK_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipCrane_init();
|
||||
} else if (checkSetItemTrigger(dItem_TELESCOPE_e, 1)) {
|
||||
return procShipCrane_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_TELESCOPE_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipScope_init(1);
|
||||
} else if (checkSetItemTrigger(daPyItem_PHOTOBOX_e, 1)) {
|
||||
return procShipScope_init(1);
|
||||
}
|
||||
if (checkSetItemTrigger(daPyItem_PHOTOBOX_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipScope_init(0);
|
||||
} else if (checkSetItemTrigger(daPyItem_BOW_e, 1)) {
|
||||
return procShipScope_init(0);
|
||||
}
|
||||
if (checkSetItemTrigger(daPyItem_BOW_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipBow_init();
|
||||
} else if ((checkSetItemTrigger(dItem_BOOMERANG_e, 1)) &&
|
||||
(mActorKeepThrow.getActor() == NULL))
|
||||
{
|
||||
procShipBoomerang_init();
|
||||
} else if (checkSetItemTrigger(dItem_HOOKSHOT_e, 1)) {
|
||||
return procShipBow_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_BOOMERANG_e, 1) && mActorKeepThrow.getActor() == NULL) {
|
||||
return procShipBoomerang_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_HOOKSHOT_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipHookshot_init();
|
||||
} else if (checkSetItemTrigger(dItem_WIND_WAKER_e, 1)) {
|
||||
return procShipHookshot_init();
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_WIND_WAKER_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procTactWait_init(-1);
|
||||
} else if (checkSetItemTrigger(dItem_TINGLE_TUNER_e, 1)) {
|
||||
return procTactWait_init(-1);
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_TINGLE_TUNER_e, 1)) {
|
||||
fopAcM_orderTalkEvent(this, (fopAc_ac_c*)dComIfGp_getAgb());
|
||||
if (checkShipNotNormalMode()) {
|
||||
setShipRidePos(0);
|
||||
@@ -405,31 +407,38 @@ int daPy_lk_c::changeShipEndProc() {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
return true;
|
||||
} else if (checkSetItemTrigger(dItem_MAGIC_ARMOR_e, 1)) {
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_MAGIC_ARMOR_e, 1)) {
|
||||
if (checkShipNotNormalMode()) {
|
||||
setShipRidePos(0);
|
||||
} else {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
changeDragonShield(1);
|
||||
} else if (checkSetItemTrigger(daPyItem_DRINK_BOTTLE_e, 0)) {
|
||||
procBottleDrink_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
} else if (checkSetItemTrigger(dItem_FAIRY_BOTTLE_e, 0)) {
|
||||
procBottleOpen_init(0x57);
|
||||
} else if (checkSetItemTrigger(daPyItem_OPEN_BOTTLE_e, 1)) {
|
||||
procBottleOpen_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
} else if (checkSetItemTrigger(dItem_EMPTY_BOTTLE_e, 1)) {
|
||||
procBottleSwing_init(1);
|
||||
} else if (checkSetItemTrigger(dItem_HYOI_PEAR_e, 1)) {
|
||||
procFoodSet_init();
|
||||
} else if (checkSetItemTrigger(daPyItem_ESA_e, 1)) {
|
||||
procFoodThrow_init();
|
||||
} else if ((doTrigger()) && (dComIfGp_getDoStatus() == 8)) {
|
||||
procShipPaddle_init();
|
||||
return changeDragonShield(1);
|
||||
}
|
||||
if (checkSetItemTrigger(daPyItem_DRINK_BOTTLE_e, 0)) {
|
||||
return procBottleDrink_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_FAIRY_BOTTLE_e, 0)) {
|
||||
return procBottleOpen_init(0x57);
|
||||
}
|
||||
if (checkSetItemTrigger(daPyItem_OPEN_BOTTLE_e, 1)) {
|
||||
return procBottleOpen_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_EMPTY_BOTTLE_e, 1)) {
|
||||
return procBottleSwing_init(1);
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_HYOI_PEAR_e, 1)) {
|
||||
return procFoodSet_init();
|
||||
}
|
||||
if (checkSetItemTrigger(daPyItem_ESA_e, 1)) {
|
||||
return procFoodThrow_init();
|
||||
}
|
||||
if (doTrigger() && dComIfGp_getDoStatus() == 8) {
|
||||
return procShipPaddle_init();
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80140C88-80140D04 .text initShipBaseAnime__9daPy_lk_cFv */
|
||||
@@ -462,27 +471,31 @@ void daPy_lk_c::initShipCraneAnime() {
|
||||
BOOL daPy_lk_c::procShipReady_init() {
|
||||
commonProcInit(daPyProc_SHIP_READY_e);
|
||||
deleteEquipItem(TRUE);
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
setSingleMoveAnime(ANM_VJMPCL, daPy_HIO_wallCatch_c0::m.field_0x24,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x2C, daPy_HIO_wallCatch_c0::m.field_0x4,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x28);
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
setSingleMoveAnime(
|
||||
ANM_VJMPCL,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x24,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x2C,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x4,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x28
|
||||
);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
s16 sVar3 = fopAcM_searchActorAngleY((fopAc_ac_c*)iVar1, this);
|
||||
if ((s16)(sVar3 - iVar1->shape_angle.y) > 0) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge, ¤t.pos);
|
||||
shape_angle.y = iVar1->shape_angle.y + -0x4000;
|
||||
s16 sVar3 = fopAcM_searchActorAngleY(ship, this);
|
||||
if ((s16)(sVar3 - ship->shape_angle.y) > 0) {
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge, ¤t.pos);
|
||||
shape_angle.y = ship->shape_angle.y + -0x4000;
|
||||
m34D4 = shape_angle.y;
|
||||
m34D0 = 0;
|
||||
} else {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_redge, ¤t.pos);
|
||||
shape_angle.y = iVar1->shape_angle.y + 0x4000;
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_redge, ¤t.pos);
|
||||
shape_angle.y = ship->shape_angle.y + 0x4000;
|
||||
m34D4 = shape_angle.y + 0x8000;
|
||||
m34D0 = 1;
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar0.m3570 = 0;
|
||||
iVar1->m034D = 3;
|
||||
ship->m034D = 3;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1000000_e);
|
||||
swimOutAfter(1);
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
@@ -497,7 +510,7 @@ BOOL daPy_lk_c::procShipReady_init() {
|
||||
BOOL daPy_lk_c::procShipReady() {
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
|
||||
if (ship == 0) {
|
||||
if (ship == NULL) {
|
||||
return checkNextMode(0);
|
||||
}
|
||||
|
||||
@@ -520,7 +533,7 @@ BOOL daPy_lk_c::procShipReady() {
|
||||
current.pos.y = current.pos.y + (ship->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, (ship->current.pos.y + l_ship_offset.y), 2.0f);
|
||||
m35A0 = ship->current.pos.y;
|
||||
if (!(fopAcM_seenActorAngleY(this, (fopAc_ac_c*)ship) < 0x4000)) {
|
||||
if (fopAcM_seenActorAngleY(this, ship) >= 0x4000) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
}
|
||||
@@ -530,9 +543,9 @@ BOOL daPy_lk_c::procShipReady() {
|
||||
|
||||
/* 8014105C-80141140 .text procShipJumpRide_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipJumpRide_init() {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
|
||||
if (iVar1 == 0 || ((iVar1->attention_info.flags & fopAc_Attn_ACTION_SHIP_e) == 0)) {
|
||||
if (ship == NULL || ((ship->attention_info.flags & fopAc_Attn_ACTION_SHIP_e) == 0)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -541,8 +554,8 @@ BOOL daPy_lk_c::procShipJumpRide_init() {
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
iVar1->mStateFlag = iVar1->mStateFlag | 0x2000;
|
||||
ship->m034D = 2;
|
||||
ship->mStateFlag = ship->mStateFlag | 0x2000;
|
||||
setSingleMoveAnime(ANM_SLIPICE, 1.0f, 0.0f, -1, 5.0f);
|
||||
setShipRidePos(0);
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
@@ -564,9 +577,9 @@ BOOL daPy_lk_c::procShipJumpRide() {
|
||||
/* 80141180-8014123C .text procShipSteer_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipSteer_init() {
|
||||
offNoResetFlg0(daPyFlg0_UNK1);
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_STEER_e) {
|
||||
iVar1->m034D = 1;
|
||||
ship->m034D = 1;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -575,7 +588,7 @@ BOOL daPy_lk_c::procShipSteer_init() {
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
iVar1->m034D = 1;
|
||||
ship->m034D = 1;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
@@ -599,7 +612,7 @@ BOOL daPy_lk_c::procShipPaddle_init() {
|
||||
return false;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
BOOL bVar1;
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && !checkShipNotNormalMode()) {
|
||||
bVar1 = true;
|
||||
@@ -611,10 +624,10 @@ BOOL daPy_lk_c::procShipPaddle_init() {
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
ship->m034D = 2;
|
||||
initShipBaseAnime();
|
||||
if (!bVar1) {
|
||||
setOldRootQuaternion(0, shape_angle.y - iVar1->shape_angle.y, 0);
|
||||
setOldRootQuaternion(0, shape_angle.y - ship->shape_angle.y, 0);
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
@@ -632,7 +645,7 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setRStatus(0x2c);
|
||||
if ((dComIfGp_getDoStatus() == 0) && (dComIfGp_getShipActor()->speedF >= 3.0f)) {
|
||||
if (dComIfGp_getDoStatus() == 0 && dComIfGp_getShipActor()->speedF >= 3.0f) {
|
||||
dComIfGp_setDoStatus(19);
|
||||
}
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e)) {
|
||||
@@ -642,14 +655,12 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
}
|
||||
} else {
|
||||
onResetFlg0(daPyRFlg0_UNK4000000);
|
||||
if (((dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000))) &&
|
||||
(dComIfGp_event_runCheck() == 0))
|
||||
{
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && dComIfGp_event_runCheck() == 0) {
|
||||
setSubjectMode();
|
||||
}
|
||||
}
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if ((m34D0 == -1) || (m34D0 == -2)) {
|
||||
if (m34D0 == -1 || m34D0 == -2) {
|
||||
if (m34D0 == -2) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(168.0f)) {
|
||||
voiceStart(48);
|
||||
@@ -657,35 +668,31 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
voiceStart(47);
|
||||
}
|
||||
}
|
||||
if (((mStickDistance > 0.05f) || (dComIfGp_event_runCheck())) ||
|
||||
(dComIfGp_getDoStatus() != 29) || (ship->checkForceMove()) || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f))
|
||||
if ((mStickDistance > 0.05f || dComIfGp_event_runCheck()) || dComIfGp_getDoStatus() != 29 ||
|
||||
ship->checkForceMove() || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f))
|
||||
{
|
||||
initShipBaseAnime();
|
||||
m34D0 = cM_rndF(150.0f) + 300.0f;
|
||||
}
|
||||
} else {
|
||||
if (((!dComIfGp_event_runCheck()) && (dComIfGp_getDoStatus() == 29)) &&
|
||||
(mStickDistance <= 0.05f) && (!ship->checkForceMove()) && (!checkShipNotNormalMode()))
|
||||
{
|
||||
m34D0--;
|
||||
if (m34D0 == 0) {
|
||||
dVar6 = cM_rnd();
|
||||
m34D0 = -1;
|
||||
if (dVar6 < 0.3333f) {
|
||||
dVar5 = ANM_FREEA;
|
||||
} else {
|
||||
if (dVar6 < 0.6666f) {
|
||||
dVar5 = ANM_FREEB;
|
||||
m34D0 = -2;
|
||||
} else {
|
||||
dVar5 = ANM_FREED;
|
||||
}
|
||||
}
|
||||
setSingleMoveAnime(dVar5, 1.0f, 0.0f, -1, 5.0f);
|
||||
} else if (!dComIfGp_event_runCheck() && dComIfGp_getDoStatus() == 29 && mStickDistance <= 0.05f &&
|
||||
!ship->checkForceMove() && !checkShipNotNormalMode())
|
||||
{
|
||||
m34D0--;
|
||||
if (m34D0 == 0) {
|
||||
dVar6 = cM_rnd();
|
||||
m34D0 = -1;
|
||||
if (dVar6 < 0.3333f) {
|
||||
dVar5 = ANM_FREEA;
|
||||
} else if (dVar6 < 0.6666f) {
|
||||
dVar5 = ANM_FREEB;
|
||||
m34D0 = -2;
|
||||
} else {
|
||||
dVar5 = ANM_FREED;
|
||||
}
|
||||
} else {
|
||||
m34D0 = cM_rndF(150.0f) + 300.0f;
|
||||
setSingleMoveAnime(dVar5, 1.0f, 0.0f, -1, 5.0f);
|
||||
}
|
||||
} else {
|
||||
m34D0 = cM_rndF(150.0f) + 300.0f;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -693,11 +700,11 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
|
||||
/* 801416BC-801417EC .text procShipScope_init__9daPy_lk_cFi */
|
||||
BOOL daPy_lk_c::procShipScope_init(int param_0) {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_SCOPE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
ship->m034D = 2;
|
||||
setShipRidePos(0);
|
||||
setSingleMoveAnime(ANM_WAITS, daPy_HIO_move_c0::m.field_0x38, 0.0f, -1, 5.0f);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
@@ -722,14 +729,11 @@ BOOL daPy_lk_c::procShipScope() {
|
||||
}
|
||||
if (checkScopeEnd()) {
|
||||
procShipPaddle_init();
|
||||
} else {
|
||||
if ((((dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10))) &&
|
||||
(!dComIfGp_event_runCheck())) &&
|
||||
(mDemo.getDemoType() == 0))
|
||||
{
|
||||
shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(mCameraInfoIdx));
|
||||
iVar2 = 0;
|
||||
}
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10) && !dComIfGp_event_runCheck() &&
|
||||
mDemo.getDemoType() == 0)
|
||||
{
|
||||
shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(mCameraInfoIdx));
|
||||
iVar2 = 0;
|
||||
}
|
||||
offNoResetFlg0(daPyFlg0_SCOPE_CANCEL);
|
||||
setShipRidePos(iVar2);
|
||||
@@ -738,7 +742,7 @@ BOOL daPy_lk_c::procShipScope() {
|
||||
|
||||
/* 801418B4-801419B4 .text procShipBoomerang_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_BOOMERANG_e) {
|
||||
return false;
|
||||
}
|
||||
@@ -746,7 +750,7 @@ BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
commonProcInit(daPyProc_SHIP_BOOMERANG_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
ship->m034D = 2;
|
||||
mEquipItem = dItem_BOOMERANG_e;
|
||||
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
|
||||
@@ -754,7 +758,7 @@ BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
makeItemType();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e | daPyStts0_BOOMERANG_AIM_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
m34D4 = ship->shape_angle.y;
|
||||
m34DA = 0;
|
||||
return true;
|
||||
}
|
||||
@@ -764,57 +768,52 @@ BOOL daPy_lk_c::procShipBoomerang() {
|
||||
if (changeShipEndProc()) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_BOOMERANG_WAIT_e);
|
||||
return true;
|
||||
} else {
|
||||
setShipRidePos(0);
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
if (!checkUpperAnime(LKANM_BCK_BOOMCATCH)) {
|
||||
dComIfGp_setDoStatus(7);
|
||||
if (doTrigger()) {
|
||||
{
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
setShipRidePos(0);
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
if (!checkUpperAnime(LKANM_BCK_BOOMCATCH)) {
|
||||
dComIfGp_setDoStatus(7);
|
||||
if (doTrigger()) {
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
mSightPacket.offDrawFlg();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (!checkUpperAnime(LKANM_BCK_BOOMCATCH)) {
|
||||
if (mEquipItem == dItem_BOOMERANG_e) {
|
||||
if (checkUpperAnime(LKANM_BCK_BOOMWAIT)) {
|
||||
setShipAttentionAnmSpeed(daPy_HIO_boom_c0::m.field_0x18);
|
||||
checkNextActionBoomerangReady();
|
||||
if (mpAttention->Lockon()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
if (setBodyAngleToCamera()) {
|
||||
daBoomerang_c* this_01 = (daBoomerang_c*)mActorKeepEquip.getActor();
|
||||
if (this_01 != NULL) {
|
||||
{
|
||||
cXyz local_28;
|
||||
checkSightLine(this_01->getFlyMax(), &local_28);
|
||||
mSightPacket.setPos(&local_28);
|
||||
mSightPacket.onDrawFlg();
|
||||
}
|
||||
}
|
||||
}
|
||||
mSightPacket.offDrawFlg();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (!checkUpperAnime(LKANM_BCK_BOOMCATCH)) {
|
||||
if (mEquipItem == dItem_BOOMERANG_e) {
|
||||
if (checkUpperAnime(LKANM_BCK_BOOMWAIT)) {
|
||||
setShipAttentionAnmSpeed(daPy_HIO_boom_c0::m.field_0x18);
|
||||
checkNextActionBoomerangReady();
|
||||
if (mpAttention->Lockon()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
if (setBodyAngleToCamera()) {
|
||||
daBoomerang_c* this_01 = (daBoomerang_c*)mActorKeepEquip.getActor();
|
||||
if (this_01 != NULL) {
|
||||
cXyz local_28;
|
||||
checkSightLine(this_01->getFlyMax(), &local_28);
|
||||
mSightPacket.setPos(&local_28);
|
||||
mSightPacket.onDrawFlg();
|
||||
}
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
return procShipPaddle_init();
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
setShapeAngleToAtnActor();
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24);
|
||||
}
|
||||
} else {
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
return procShipPaddle_init();
|
||||
}
|
||||
setShapeAngleToAtnActor();
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24);
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -849,53 +848,49 @@ BOOL daPy_lk_c::procShipHookshot_init() {
|
||||
|
||||
/* 80141CF8-80141F2C .text procShipHookshot__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipHookshot() {
|
||||
/* Nonmatching - regalloc */
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
}
|
||||
setShipRidePos(0);
|
||||
dComIfGp_setDoStatus(7);
|
||||
daHookshot_c* pfVar4 = (daHookshot_c*)mActorKeepEquip.getActor();
|
||||
if (doTrigger() || pfVar4 == NULL ||
|
||||
(mProcVar0.m3570 != 0 && m355E == 0 && !mpAttention->Lockon()))
|
||||
{
|
||||
daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor();
|
||||
if (doTrigger() || hookshot == NULL || (mProcVar0.m3570 != 0 && m355E == 0 && !mpAttention->Lockon())) {
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
} else {
|
||||
mSightPacket.offDrawFlg();
|
||||
checkNextActionHookshotReady();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (pfVar4->checkWait()) {
|
||||
setShipAttentionAnmSpeed(1.0f);
|
||||
}
|
||||
if (mpAttention->Lockon()) {
|
||||
if (pfVar4->checkWait()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
}
|
||||
mProcVar0.m3570 = 1;
|
||||
}
|
||||
mSightPacket.offDrawFlg();
|
||||
checkNextActionHookshotReady();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
if (hookshot->checkWait()) {
|
||||
setShipAttentionAnmSpeed(1.0f);
|
||||
}
|
||||
if (mpAttention->Lockon()) {
|
||||
if (hookshot->checkWait()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
setBodyAngleToCamera();
|
||||
mProcVar0.m3570 = 0;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
if (pfVar4->checkWait()) {
|
||||
if (!mpAttention->Lockon()) {
|
||||
setHookshotSight();
|
||||
} else {
|
||||
mSightPacket.offDrawFlg();
|
||||
}
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
mProcVar0.m3570 = 1;
|
||||
} else {
|
||||
m34DA = 0;
|
||||
setBodyAngleToCamera();
|
||||
mProcVar0.m3570 = 0;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
if (hookshot->checkWait()) {
|
||||
if (!mpAttention->Lockon()) {
|
||||
setHookshotSight();
|
||||
} else {
|
||||
mSightPacket.offDrawFlg();
|
||||
}
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -933,15 +928,13 @@ BOOL daPy_lk_c::procShipBow_init() {
|
||||
|
||||
/* 80142084-80142250 .text procShipBow__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBow() {
|
||||
if ((mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK44_e) && (changeShipEndProc())) {
|
||||
if ((mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK44_e) && changeShipEndProc()) {
|
||||
return true;
|
||||
}
|
||||
setShipRidePos(0);
|
||||
if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK44_e) {
|
||||
dComIfGp_setDoStatus(7);
|
||||
if ((doTrigger()) ||
|
||||
(((!mpAttention->Lockon()) && (mActorKeepEquip.getActor() == NULL)) && (mProcVar0.m3570 != 0)))
|
||||
{
|
||||
if (doTrigger() || ((!mpAttention->Lockon() && mActorKeepEquip.getActor() == NULL) && mProcVar0.m3570 != 0)) {
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
@@ -949,11 +942,11 @@ BOOL daPy_lk_c::procShipBow() {
|
||||
} else {
|
||||
dComIfGp_evmng_cutEnd(mStaffIdx);
|
||||
}
|
||||
daShip_c* iVar1 = (daShip_c*)dComIfGp_getShipActor();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (checkUpperAnime(LKANM_BCK_BOWWAIT)) {
|
||||
setShipAttentionAnmSpeed(1.0f);
|
||||
}
|
||||
if ((mpAttention->Lockon()) && (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK44_e)) {
|
||||
if (mpAttention->Lockon() && (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK44_e)) {
|
||||
setShipAttnetionBodyAngle();
|
||||
mProcVar0.m3570 = 1;
|
||||
} else {
|
||||
@@ -962,9 +955,9 @@ BOOL daPy_lk_c::procShipBow() {
|
||||
mProcVar0.m3570 = 0;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(iVar1->shape_angle.y - m34D4);
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
m34D4 = ship->shape_angle.y;
|
||||
checkNextActionBowReady();
|
||||
m35EC = mFrameCtrlUpper[UPPER_MOVE2_e].getFrame();
|
||||
return true;
|
||||
@@ -976,12 +969,12 @@ BOOL daPy_lk_c::procShipCannon_init() {
|
||||
return false;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CANNON_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 9;
|
||||
ship->m034D = 9;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
@@ -1009,13 +1002,13 @@ BOOL daPy_lk_c::procShipCrane_init() {
|
||||
return false;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CRANE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 10;
|
||||
if ((s16)iVar1->mCurrentRopeSegmentIndex != 0) {
|
||||
ship->m034D = 10;
|
||||
if ((s16)ship->mCurrentRopeSegmentIndex != 0) {
|
||||
initShipCraneAnime();
|
||||
} else {
|
||||
initShipBaseAnime();
|
||||
@@ -1038,45 +1031,49 @@ BOOL daPy_lk_c::procShipGetOff_init() {
|
||||
return false;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_GET_OFF_e);
|
||||
deleteEquipItem(TRUE);
|
||||
setSingleMoveAnime(ANM_DASH, daPy_HIO_move_c0::m.field_0x40, 0.0f, -1, 5.0f);
|
||||
mVelocity = 8.0f;
|
||||
gravity = 0.0f;
|
||||
shape_angle.y = iVar1->shape_angle.y + -0x4000;
|
||||
shape_angle.y = ship->shape_angle.y + -0x4000;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar0.m3570 = 0;
|
||||
m370C.x = current.pos.x + cM_ssin(shape_angle.y) * l_ship_ledge.x;
|
||||
m370C.y = iVar1->current.pos.y + l_ship_ledge.y;
|
||||
m370C.y = ship->current.pos.y + l_ship_ledge.y;
|
||||
m370C.z = current.pos.z + cM_scos(shape_angle.y) * l_ship_ledge.x;
|
||||
iVar1->m034D = 5;
|
||||
ship->m034D = 5;
|
||||
mBodyAngle.y = 0;
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
m35A0 = ship->current.pos.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142A5C-80142C08 .text procShipGetOff__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipGetOff() {
|
||||
/* Nonmatching - branching */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (iVar1 == 0) {
|
||||
checkNextMode(0);
|
||||
} else if (mProcVar0.m3570 == 0) {
|
||||
current.pos.y = current.pos.y + (iVar1->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, iVar1->current.pos.y + l_ship_ledge.y, 4.0f);
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
if (ship == NULL) {
|
||||
return checkNextMode(0);
|
||||
}
|
||||
if (mProcVar0.m3570 == 0) {
|
||||
current.pos.y = current.pos.y + (ship->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, ship->current.pos.y + l_ship_ledge.y, 4.0f);
|
||||
m35A0 = ship->current.pos.y;
|
||||
s16 sVar3 = cLib_targetAngleY(¤t.pos, &m370C);
|
||||
if (cLib_distanceAngleS(sVar3, shape_angle.y) >= 0x4000) {
|
||||
setSingleMoveAnime(
|
||||
ANM_JMPST, daPy_HIO_autoJump_c0::m.field_0x20, daPy_HIO_autoJump_c0::m.field_0x2C,
|
||||
daPy_HIO_autoJump_c0::m.field_0x2, daPy_HIO_autoJump_c0::m.field_0x30);
|
||||
ANM_JMPST,
|
||||
daPy_HIO_autoJump_c0::m.field_0x20,
|
||||
daPy_HIO_autoJump_c0::m.field_0x2C,
|
||||
daPy_HIO_autoJump_c0::m.field_0x2,
|
||||
daPy_HIO_autoJump_c0::m.field_0x30
|
||||
);
|
||||
gravity = daPy_HIO_autoJump_c0::m.field_0xC;
|
||||
mVelocity = daPy_HIO_ship_c0::m.field_0x10;
|
||||
speed.y = daPy_HIO_ship_c0::m.field_0x14;
|
||||
mProcVar0.m3570 = 1;
|
||||
m34C2 = 1;
|
||||
iVar1->m034D = 6;
|
||||
ship->m034D = 6;
|
||||
onModeFlg(ModeFlg_MIDAIR);
|
||||
}
|
||||
} else {
|
||||
@@ -1084,13 +1081,11 @@ BOOL daPy_lk_c::procShipGetOff() {
|
||||
dComIfGp_evmng_cutEnd(mStaffIdx);
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
changeLandProc(daPy_HIO_autoJump_c0::m.field_0x24);
|
||||
} else {
|
||||
if (checkFanGlideProc(0)) {
|
||||
return true;
|
||||
} else if (speed.y < -gravity) {
|
||||
procFall_init(0, daPy_HIO_smallJump_c0::m.field_0x18);
|
||||
setTextureAnime(0x37, 0);
|
||||
}
|
||||
} else if (checkFanGlideProc(0)) {
|
||||
return true;
|
||||
} else if (speed.y < -gravity) {
|
||||
procFall_init(0, daPy_HIO_smallJump_c0::m.field_0x18);
|
||||
setTextureAnime(0x37, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -1098,10 +1093,10 @@ BOOL daPy_lk_c::procShipGetOff() {
|
||||
|
||||
/* 80142C08-80142C9C .text procShipRestart_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipRestart_init() {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_RESTART_e);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
ship->m034D = 2;
|
||||
setShipRidePos(1);
|
||||
setSingleMoveAnime(ANM_SEARESET, 1.0f, 0.0f, -1, -1.0f);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
|
||||
@@ -260,7 +260,7 @@ BOOL daPy_lk_c::procVomitLand() {
|
||||
checkNextMode(1);
|
||||
}
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if ((s32)m34D0 > 0) {
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
} else {
|
||||
setSingleMoveAnime(
|
||||
|
||||
+166
-152
@@ -43,30 +43,31 @@ void daPy_lk_c::setEnemyWeaponAtParam(BOOL r4) {
|
||||
BOOL daPy_lk_c::procWeaponNormalSwing_init() {
|
||||
if (mActorKeepEquip.getActor() == NULL) {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_WEAPON_NORMAL_SWING_e);
|
||||
setSingleMoveAnime(
|
||||
ANM_CUTBOKO,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x10,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x18,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x6,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x34
|
||||
);
|
||||
current.angle.y = shape_angle.y;
|
||||
m3700 = cXyz::Zero;
|
||||
m34C2 = 1;
|
||||
voiceStart(1);
|
||||
if ((mpAttention->Lockon()) || (mStickDistance <= 0.05f)) {
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
m34D4 = m34E8;
|
||||
}
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
|
||||
m351E = m34DC;
|
||||
setBlurPosResource(LKANM__CUTBOKO_POS);
|
||||
setEnemyWeaponAtParam(0);
|
||||
m34D0 = daPy_HIO_cutBoko_c0::m.field_0x4;
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_WEAPON_NORMAL_SWING_e);
|
||||
setSingleMoveAnime(
|
||||
ANM_CUTBOKO,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x10,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x18,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x6,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x34
|
||||
);
|
||||
current.angle.y = shape_angle.y;
|
||||
m3700 = cXyz::Zero;
|
||||
m34C2 = 1;
|
||||
voiceStart(1);
|
||||
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
m34D4 = m34E8;
|
||||
}
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
|
||||
m351E = m34DC;
|
||||
setBlurPosResource(LKANM__CUTBOKO_POS);
|
||||
setEnemyWeaponAtParam(0);
|
||||
m34D0 = daPy_HIO_cutBoko_c0::m.field_0x4;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -74,17 +75,17 @@ BOOL daPy_lk_c::procWeaponNormalSwing_init() {
|
||||
BOOL daPy_lk_c::procWeaponNormalSwing() {
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
|
||||
if ((swordButton()) && (mActorKeepEquip.getActor() != NULL)) {
|
||||
if (swordButton() && mActorKeepEquip.getActor() != NULL) {
|
||||
onNoResetFlg0(daPyFlg0_UNK4);
|
||||
} else {
|
||||
offNoResetFlg0(daPyFlg0_UNK4);
|
||||
}
|
||||
if ((frameCtrl.getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) {
|
||||
if (frameCtrl.getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
|
||||
if (mActorKeepEquip.getActor() == NULL) {
|
||||
m34D0 = 0;
|
||||
offNoResetFlg0(daPyFlg0_UNK4);
|
||||
}
|
||||
if ((int)m34D0 > 0) {
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
} else {
|
||||
mVelocity = 0.0f;
|
||||
@@ -103,46 +104,49 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
|
||||
mVelocity = dVar4;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
m34C2 = 1;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
m34C2 = 1;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutBoko_c0::m.field_0x38)) {
|
||||
mVelocity = std::fabsf(speedF) * daPy_HIO_cutBoko_c0::m.field_0x20 + daPy_HIO_cutBoko_c0::m.field_0x24;
|
||||
}
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutBoko_c0::m.field_0x3C)) {
|
||||
frameCtrl.setRate(daPy_HIO_cutBoko_c0::m.field_0x14);
|
||||
}
|
||||
if ((frameCtrl.getFrame() >= daPy_HIO_cutBoko_c0::m.field_0x40) &&
|
||||
(frameCtrl.getFrame() < daPy_HIO_cutBoko_c0::m.field_0x44))
|
||||
{
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
cLib_addCalc(
|
||||
&mVelocity,
|
||||
0.0f,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x30,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x28,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x2C
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutBoko_c0::m.field_0x38)) {
|
||||
mVelocity = std::fabsf(speedF) * daPy_HIO_cutBoko_c0::m.field_0x20 + daPy_HIO_cutBoko_c0::m.field_0x24;
|
||||
}
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutBoko_c0::m.field_0x3C)) {
|
||||
frameCtrl.setRate(daPy_HIO_cutBoko_c0::m.field_0x14);
|
||||
}
|
||||
if (frameCtrl.getFrame() >= daPy_HIO_cutBoko_c0::m.field_0x40 &&
|
||||
frameCtrl.getFrame() < daPy_HIO_cutBoko_c0::m.field_0x44)
|
||||
{
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
cLib_addCalc(
|
||||
&mVelocity,
|
||||
0.0f,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x30,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x28,
|
||||
daPy_HIO_cutBoko_c0::m.field_0x2C
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -167,17 +171,20 @@ BOOL daPy_lk_c::procWeaponSideSwing_init() {
|
||||
|
||||
/* 80153A68-80153C30 .text procWeaponSideSwing__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procWeaponSideSwing() {
|
||||
if ((swordButton()) && (mActorKeepEquip.getActor() != NULL)) {
|
||||
if (swordButton() && mActorKeepEquip.getActor() != NULL) {
|
||||
onNoResetFlg0(daPyFlg0_UNK4);
|
||||
} else {
|
||||
offNoResetFlg0(daPyFlg0_UNK4);
|
||||
}
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) {
|
||||
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
|
||||
mVelocity = 0.0f;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutBoko_c0::m.field_0x50) {
|
||||
}
|
||||
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutBoko_c0::m.field_0x50) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
@@ -188,32 +195,34 @@ BOOL daPy_lk_c::procWeaponSideSwing() {
|
||||
mVelocity = dVar4;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
} else {
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_cutBoko_c0::m.field_0x58) &&
|
||||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_cutBoko_c0::m.field_0x5C))
|
||||
{
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
}
|
||||
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_cutBoko_c0::m.field_0x58) &&
|
||||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_cutBoko_c0::m.field_0x5C))
|
||||
{
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -229,7 +238,7 @@ BOOL daPy_lk_c::procWeaponFrontSwingReady_init() {
|
||||
);
|
||||
current.angle.y = shape_angle.y;
|
||||
mVelocity = 0.0f;
|
||||
if ((mpAttention->Lockon()) || (mStickDistance <= 0.05f)) {
|
||||
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
m34D4 = m34E8;
|
||||
@@ -243,24 +252,26 @@ BOOL daPy_lk_c::procWeaponFrontSwingReady_init() {
|
||||
BOOL daPy_lk_c::procWeaponFrontSwingReady() {
|
||||
if (mActorKeepEquip.getActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
return procWeaponFrontSwing_init();
|
||||
} else {
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
return procWeaponFrontSwing_init();
|
||||
}
|
||||
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80153DBC-80153ED8 .text procWeaponFrontSwing_init__9daPy_lk_cFv */
|
||||
@@ -276,7 +287,7 @@ BOOL daPy_lk_c::procWeaponFrontSwing_init() {
|
||||
current.angle.y = shape_angle.y;
|
||||
mVelocity = 0.0f;
|
||||
voiceStart(1);
|
||||
if (mpAttention->Lockon() || (mStickDistance <= 0.05f)) {
|
||||
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
m34D4 = m34E8;
|
||||
@@ -293,29 +304,29 @@ BOOL daPy_lk_c::procWeaponFrontSwing_init() {
|
||||
BOOL daPy_lk_c::procWeaponFrontSwing() {
|
||||
if (mActorKeepEquip.getActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
return procWeaponFrontSwingEnd_init();
|
||||
} else {
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
} else {
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
return procWeaponFrontSwingEnd_init();
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
m34D4 = shape_angle.y;
|
||||
} else {
|
||||
cLib_addCalcAngleS(
|
||||
&shape_angle.y,
|
||||
m34D4,
|
||||
daPy_HIO_turn_c0::m.field_0x4,
|
||||
daPy_HIO_turn_c0::m.field_0x0,
|
||||
daPy_HIO_turn_c0::m.field_0x2
|
||||
);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80153FA0-80154014 .text procWeaponFrontSwingEnd_init__9daPy_lk_cFv */
|
||||
@@ -336,12 +347,13 @@ BOOL daPy_lk_c::procWeaponFrontSwingEnd_init() {
|
||||
|
||||
/* 80154014-801540B4 .text procWeaponFrontSwingEnd__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procWeaponFrontSwingEnd() {
|
||||
if ((swordButton()) && (mActorKeepEquip.getActor() != NULL)) {
|
||||
if (swordButton() && mActorKeepEquip.getActor() != NULL) {
|
||||
onNoResetFlg0(daPyFlg0_UNK4);
|
||||
} else {
|
||||
offNoResetFlg0(daPyFlg0_UNK4);
|
||||
}
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) {
|
||||
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutBoko_c0::m.field_0x7C) {
|
||||
return checkNextMode(1);
|
||||
@@ -364,27 +376,29 @@ BOOL daPy_lk_c::procWeaponThrow_init() {
|
||||
BOOL daPy_lk_c::procWeaponThrow() {
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
|
||||
if ((frameCtrl.getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) {
|
||||
checkNextMode(0);
|
||||
} else if (frameCtrl.getFrame() > 100.0f) {
|
||||
checkNextMode(1);
|
||||
} else {
|
||||
if (frameCtrl.checkPass(10.0f)) {
|
||||
daBoko_c* boko = static_cast<daBoko_c*>(mActorKeepEquip.getActor());
|
||||
s16 uVar2 = 0xf400;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
cXyz local_34 = mpAttnActorLockOn->eyePos - boko->current.pos;
|
||||
f32 dVar5 = local_34.abs();
|
||||
if (dVar5 >= 1.0f) {
|
||||
dVar5 = local_34.absXZ();
|
||||
uVar2 = cM_atan2s(-local_34.y, dVar5);
|
||||
}
|
||||
}
|
||||
boko->m2BA = 1;
|
||||
boko->m2CA = uVar2;
|
||||
voiceStart(0);
|
||||
deleteEquipItem(FALSE);
|
||||
}
|
||||
return true;
|
||||
if (frameCtrl.getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
}
|
||||
if (frameCtrl.getFrame() > 100.0f) {
|
||||
return checkNextMode(1);
|
||||
}
|
||||
|
||||
if (frameCtrl.checkPass(10.0f)) {
|
||||
daBoko_c* boko = static_cast<daBoko_c*>(mActorKeepEquip.getActor());
|
||||
s16 uVar2 = 0xf400;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
cXyz local_34 = mpAttnActorLockOn->eyePos - boko->current.pos;
|
||||
f32 dVar5 = local_34.abs();
|
||||
if (dVar5 >= 1.0f) {
|
||||
dVar5 = local_34.absXZ();
|
||||
uVar2 = cM_atan2s(-local_34.y, dVar5);
|
||||
}
|
||||
}
|
||||
boko->m2BA = 1;
|
||||
boko->m2CA = uVar2;
|
||||
voiceStart(0);
|
||||
deleteEquipItem(FALSE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3533,7 +3533,7 @@ BOOL daShip_c::execute() {
|
||||
mEvtStaffId = -1;
|
||||
}
|
||||
|
||||
offStateFlg(daSHIP_SFLG(daSFLG_UNK40_e | daSFLG_UNK80_e | daSFLG_UNK100_e | daSFLG_UNK4000_e | daSFLG_UNK20000_e | daSFLG_UNK100000_e | daSFLG_UNK8000000_e));
|
||||
offStateFlg(daSHIP_SFLG(daSFLG_UNK40_e | daSFLG_UNK80_e | daSFLG_UNK100_e | daSFLG_UNK4000_e | daSFLG_SHOOT_CANNON_e | daSFLG_UNK100000_e | daSFLG_UNK8000000_e));
|
||||
|
||||
if (m0388 > 0) {
|
||||
m0388--;
|
||||
@@ -3971,7 +3971,7 @@ BOOL daShip_c::execute() {
|
||||
|
||||
seStart(JA_SE_LK_SHIP_CANNON_FIRE, &m1038);
|
||||
|
||||
onStateFlg(daSFLG_UNK20000_e);
|
||||
onStateFlg(daSFLG_SHOOT_CANNON_e);
|
||||
|
||||
dComIfGp_setItemBombNumCount(-1);
|
||||
|
||||
|
||||
+22
-22
@@ -24,13 +24,13 @@
|
||||
static Vec dummy_2100 = {1.0f, 1.0f, 1.0f};
|
||||
|
||||
/* 8000DA70-8000DCF0 .text mDoExt_setJ3DData__FPA4_fPC16J3DTransformInfoUs */
|
||||
void mDoExt_setJ3DData(Mtx mtx, const J3DTransformInfo* transformInfo, u16 param_2) {
|
||||
void mDoExt_setJ3DData(Mtx mtx, const J3DTransformInfo* transformInfo, u16 jnt_no) {
|
||||
bool local_28;
|
||||
if (cM3d_IsZero(transformInfo->mScale.x - 1.0f) && cM3d_IsZero(transformInfo->mScale.y - 1.0f) && cM3d_IsZero(transformInfo->mScale.z - 1.0f)) {
|
||||
j3dSys.getModel()->setScaleFlag(param_2, 1);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 1);
|
||||
local_28 = true;
|
||||
} else {
|
||||
j3dSys.getModel()->setScaleFlag(param_2, 0);
|
||||
j3dSys.getModel()->setScaleFlag(jnt_no, 0);
|
||||
local_28 = false;
|
||||
}
|
||||
mtx[0][3] = transformInfo->mTranslate.x;
|
||||
@@ -48,7 +48,7 @@ void mDoExt_setJ3DData(Mtx mtx, const J3DTransformInfo* transformInfo, u16 param
|
||||
mtx[2][1] *= transformInfo->mScale.y;
|
||||
mtx[2][2] *= transformInfo->mScale.z;
|
||||
}
|
||||
if (j3dSys.getModel()->getModelData()->getJointNodePointer(param_2)->getScaleCompensate() == 1) {
|
||||
if (j3dSys.getModel()->getModelData()->getJointNodePointer(jnt_no)->getScaleCompensate() == 1) {
|
||||
f32 x = 1.0f / J3DSys::mParentS.x;
|
||||
f32 y = 1.0f / J3DSys::mParentS.y;
|
||||
f32 z = 1.0f / J3DSys::mParentS.z;
|
||||
@@ -63,7 +63,7 @@ void mDoExt_setJ3DData(Mtx mtx, const J3DTransformInfo* transformInfo, u16 param
|
||||
mtx[2][2] *= z;
|
||||
}
|
||||
mDoMtx_concat(J3DSys::mCurrentMtx, mtx, J3DSys::mCurrentMtx);
|
||||
j3dSys.getModel()->setAnmMtx(param_2, J3DSys::mCurrentMtx);
|
||||
j3dSys.getModel()->setAnmMtx(jnt_no, J3DSys::mCurrentMtx);
|
||||
J3DSys::mParentS.x = transformInfo->mScale.x;
|
||||
J3DSys::mParentS.y = transformInfo->mScale.y;
|
||||
J3DSys::mParentS.z = transformInfo->mScale.z;
|
||||
@@ -1010,26 +1010,26 @@ s32 mDoExt_resIDToIndex(JKRArchive* p_archive, u16 id) {
|
||||
}
|
||||
|
||||
/* 80011EE4-80012140 .text calc__25mDoExt_MtxCalcAnmBlendTblFUs */
|
||||
void mDoExt_MtxCalcAnmBlendTbl::calc(u16 param_0) {
|
||||
void mDoExt_MtxCalcAnmBlendTbl::calc(u16 jnt_no) {
|
||||
j3dSys.setCurrentMtxCalc(this);
|
||||
if (mNum == 1) {
|
||||
J3DTransformInfo info1;
|
||||
mAnmRatio->getAnmTransform()->getTransform(param_0, &info1);
|
||||
calcTransform(param_0, info1); // Doesn't match because J3DMtxCalcBasic's vtable is in the wrong order
|
||||
mAnmRatio->getAnmTransform()->getTransform(jnt_no, &info1);
|
||||
calcTransform(jnt_no, info1);
|
||||
return;
|
||||
}
|
||||
J3DTransformInfo info2;
|
||||
Quaternion quat1;
|
||||
Quaternion quat2;
|
||||
Quaternion quat3;
|
||||
mAnmRatio->getAnmTransform()->getTransform(param_0, &info2);
|
||||
mAnmRatio->getAnmTransform()->getTransform(jnt_no, &info2);
|
||||
JMAEulerToQuat(info2.mRotation.x, info2.mRotation.y, info2.mRotation.z, &quat1);
|
||||
quat3 = quat1;
|
||||
for (int i = 1; i < mNum; i++) {
|
||||
J3DAnmTransform* transform = mAnmRatio[i].getAnmTransform();
|
||||
if (transform) {
|
||||
J3DTransformInfo info3;
|
||||
transform->getTransform(param_0, &info3);
|
||||
transform->getTransform(jnt_no, &info3);
|
||||
f32 ratio = mAnmRatio[i].getRatio();
|
||||
f32 f30 = 1.0f - ratio;
|
||||
JMAEulerToQuat(info3.mRotation.x, info3.mRotation.y, info3.mRotation.z, &quat2);
|
||||
@@ -1045,24 +1045,24 @@ void mDoExt_MtxCalcAnmBlendTbl::calc(u16 param_0) {
|
||||
}
|
||||
Mtx mtx;
|
||||
MTXQuat(mtx, &quat3);
|
||||
mDoExt_setJ3DData(mtx, &info2, param_0);
|
||||
mDoExt_setJ3DData(mtx, &info2, jnt_no);
|
||||
}
|
||||
|
||||
/* 80012140-80012548 .text calc__28mDoExt_MtxCalcAnmBlendTblOldFUs */
|
||||
void mDoExt_MtxCalcAnmBlendTblOld::calc(u16 param_0) {
|
||||
void mDoExt_MtxCalcAnmBlendTblOld::calc(u16 jnt_no) {
|
||||
j3dSys.setCurrentMtxCalc(this);
|
||||
J3DTransformInfo info1;
|
||||
Quaternion quat1;
|
||||
Quaternion quat2;
|
||||
Quaternion quat3;
|
||||
mAnmRatio->getAnmTransform()->getTransform(param_0, &info1);
|
||||
mAnmRatio->getAnmTransform()->getTransform(jnt_no, &info1);
|
||||
JMAEulerToQuat(info1.mRotation.x, info1.mRotation.y, info1.mRotation.z, &quat1);
|
||||
quat3 = quat1;
|
||||
for (int i = 1; i < mNum; i++) {
|
||||
if (mAnmRatio[i].getAnmTransform()) {
|
||||
J3DAnmTransform* transform = mAnmRatio[i].getAnmTransform();
|
||||
J3DTransformInfo info2;
|
||||
transform->getTransform(param_0, &info2);
|
||||
transform->getTransform(jnt_no, &info2);
|
||||
f32 ratio = mAnmRatio[i].getRatio();
|
||||
f32 f30 = 1.0f - ratio;
|
||||
JMAEulerToQuat(info2.mRotation.x, info2.mRotation.y, info2.mRotation.z, &quat2);
|
||||
@@ -1078,10 +1078,10 @@ void mDoExt_MtxCalcAnmBlendTblOld::calc(u16 param_0) {
|
||||
}
|
||||
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
J3DTransformInfo* oldTransInfo = mOldFrame->getOldFrameTransInfo(param_0);
|
||||
Quaternion* oldQuat = mOldFrame->getOldFrameQuaternion(param_0);
|
||||
J3DTransformInfo* oldTransInfo = mOldFrame->getOldFrameTransInfo(jnt_no);
|
||||
Quaternion* oldQuat = mOldFrame->getOldFrameQuaternion(jnt_no);
|
||||
if (mOldFrame->getOldFrameFlg()) {
|
||||
if (mOldFrame->getOldFrameRate() > 0.0f && mOldFrame->getOldFrameStartJoint() <= param_0 && mOldFrame->getOldFrameEndJoint() > param_0) {
|
||||
if (mOldFrame->getOldFrameRate() > 0.0f && mOldFrame->getOldFrameStartJoint() <= jnt_no && mOldFrame->getOldFrameEndJoint() > jnt_no) {
|
||||
f32 oldFrameRate = mOldFrame->getOldFrameRate();
|
||||
f32 f31 = 1.0f - oldFrameRate;
|
||||
JMAQuatLerp(oldQuat, &quat1, f31, &quat3);
|
||||
@@ -1092,21 +1092,21 @@ void mDoExt_MtxCalcAnmBlendTblOld::calc(u16 param_0) {
|
||||
info1.mScale.y = info1.mScale.y * f31 + oldTransInfo->mScale.y * oldFrameRate;
|
||||
info1.mScale.z = info1.mScale.z * f31 + oldTransInfo->mScale.z * oldFrameRate;
|
||||
}
|
||||
} else if (param_0 == model->getModelData()->getJointNum() - 1) {
|
||||
} else if (jnt_no == model->getModelData()->getJointNum() - 1) {
|
||||
mOldFrame->onOldFrameFlg();
|
||||
}
|
||||
Mtx mtx;
|
||||
if (mBeforeCallback) {
|
||||
mBeforeCallback(mUserArea, param_0, &info1, &quat3);
|
||||
mBeforeCallback(mUserArea, jnt_no, &info1, &quat3);
|
||||
}
|
||||
mDoMtx_quat(mtx, &quat3);
|
||||
mDoExt_setJ3DData(mtx, &info1, param_0);
|
||||
mDoExt_setJ3DData(mtx, &info1, jnt_no);
|
||||
if (mAfterCallback) {
|
||||
mAfterCallback(mUserArea, param_0, &info1, &quat3);
|
||||
mAfterCallback(mUserArea, jnt_no, &info1, &quat3);
|
||||
}
|
||||
*oldQuat = quat3;
|
||||
*oldTransInfo = info1;
|
||||
if (param_0 == model->getModelData()->getJointNum() - 1) {
|
||||
if (jnt_no == model->getModelData()->getJointNum() - 1) {
|
||||
mOldFrame->decOldFrameMorfCounter();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user