d_a_player_main cleanup and some demo matches (#1016)

* d_a_player_main cleanup and some demo matches

* Add unions for player_main procvars

* Make d_a_player_main fields private
This commit is contained in:
LagoLunatic
2026-05-21 19:18:46 -04:00
committed by GitHub
parent d10eaa3ef8
commit ab5659b201
50 changed files with 2670 additions and 2630 deletions
+1
View File
@@ -21,3 +21,4 @@ IncludeCategories:
Priority: -1000
IndentCaseBlocks: true
IndentCaseLabels: true
AllowAllArgumentsOnNextLine: false
+1 -1
View File
@@ -20,7 +20,7 @@ public:
public:
cBgS_LinChk() { ct(); }
void ct();
void Set2(cXyz* pStart, cXyz* pEnd, fpc_ProcID actorPid);
void Set2(cXyz* pi_start, cXyz* pi_end, fpc_ProcID pi_actor);
virtual ~cBgS_LinChk() {}
+1 -1
View File
@@ -17,7 +17,7 @@ struct himo2_s {
}; // Size: 0x24
struct himo2_class {
BOOL setTargetPos(cXyz*, float*, float*);
BOOL setTargetPos(cXyz*, f32*, f32*);
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0290 */ u8 m0290[0x029C - 0x0290];
+37 -19
View File
@@ -1257,10 +1257,10 @@ public:
void setSeAnime(daPy_anmHeap_c const*, J3DFrameCtrl*);
void initSeAnime();
void resetSeAnime();
int setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32);
BOOL setSingleMoveAnime(daPy_ANM, f32, f32, s16, f32);
BOOL setActAnimeUpper(u16, daPy_UPPER, f32, f32, s16, f32);
BOOL resetActAnimeUpper(daPy_UPPER, f32);
int setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32 i_morf);
BOOL setSingleMoveAnime(daPy_ANM, f32, f32, s16, f32 i_morf);
BOOL setActAnimeUpper(u16, daPy_UPPER, f32, f32, s16, f32 i_morf);
BOOL resetActAnimeUpper(daPy_UPPER, f32 i_morf);
void animeUpdate();
void simpleAnmPlay(J3DAnmBase*);
void setHandModel(daPy_ANM);
@@ -1584,7 +1584,9 @@ public:
f32 checkRopeRoofHit(s16);
int changeRopeSwingProc();
int changeRopeEndProc(int);
#if VERSION > VERSION_DEMO
BOOL checkSpecialRope();
#endif
int changeRopeToHangProc();
BOOL checkRopeSwingWall(cXyz*, cXyz*, s16*, f32*);
void setBlendRopeMoveAnime(int);
@@ -1782,7 +1784,7 @@ public:
BOOL procCutExA();
BOOL procCutExB_init();
BOOL procCutExB();
BOOL procCutTurn_init(int);
BOOL procCutTurn_init(BOOL);
BOOL procCutTurn();
BOOL procCutRoll_init();
BOOL procCutRoll();
@@ -1929,13 +1931,13 @@ public:
BOOL checkFaceTypeNot() const { return mFace == daPyFace_NONE; }
BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.0f; }
void setFootEffectPosType(u8 type) { mFootEffectPosType = type; }
int checkIsland() const { return mRestartPoint; }
const s16 getTactLeftHandPos() const { return mProcVar3.m34D6; }
void checkBothItemEquipAnime() const {}
void checkDoubleItemEquipAnime() const {}
void checkIsland() const {}
void checkRopeThrowAnime() const {}
void checkSwordEquipAnime() const {}
void getTactLeftHandPos() const {}
void setSpeedAndAngleBoomerang() {}
void setSpeedAndAngleBow() {}
void setSpeedAndAngleHookshot() {}
@@ -1989,10 +1991,10 @@ public:
virtual MtxP getModelJointMtx(u16 idx) { return mpCLModel->getAnmMtx(idx); }
virtual f32 getOldSpeedY() { return mOldSpeed.y; }
virtual BOOL setHookshotCarryOffset(fpc_ProcID, const cXyz*);
virtual BOOL checkComboCutTurn() const { return mCurProc == daPyProc_CUT_TURN_e && mProcVar0.m3570 != 0; }
virtual BOOL checkComboCutTurn() const { return mCurProc == daPyProc_CUT_TURN_e && mProcVar6.m3570 != 0; }
virtual void cancelChangeTextureAnime() { resetDemoTextureAnime(); }
public:
private:
/* 0x0320 */ request_of_phase_process_class mPhase;
/* 0x0328 */ J3DModelData* mpCLModelData;
/* 0x032C */ J3DModel* mpCLModel;
@@ -2155,12 +2157,26 @@ public:
/* 0x34CC */ u8 m34CC;
/* 0x34CD */ u8 m34CD;
/* 0x34CE */ u8 m34CE;
/* 0x34D0 */ s16 m34D0; // TODO: procvar
/* 0x34D2 */ s16 m34D2; // TODO: procvar
/* 0x34D4 */ s16 m34D4; // TODO: procvar
/* 0x34D6 */ s16 m34D6; // TODO: procvar
/* 0x34D8 */ s16 m34D8; // TODO: procvar
/* 0x34DA */ s16 m34DA; // TODO: procvar
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
// (The exact setup may need to be simplified later)
/* 0x34D0 */ union {
s16 m34D0;
} mProcVar0;
/* 0x34D2 */ union {
s16 m34D2;
} mProcVar1;
/* 0x34D4 */ union {
s16 m34D4;
} mProcVar2;
/* 0x34D6 */ union {
s16 m34D6;
} mProcVar3;
/* 0x34D8 */ union {
s16 m34D8;
} mProcVar4;
/* 0x34DA */ union {
s16 m34DA;
} mProcVar5;
/* 0x34DC */ s16 m34DC;
/* 0x34DE */ s16 m34DE;
/* 0x34E0 */ s16 m34E0;
@@ -2233,12 +2249,14 @@ public:
/* 0x356C */ int mCameraInfoIdx;
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
// (The exact setup may need to be simplified later)
union {
/* 0x3570 */ union {
s32 m3570;
daPy_ANM mDamageAnm;
int mBottleItem;
} /* 0x3570 */ mProcVar0;
/* 0x3574 */ s32 m3574; // TODO: procvar
} mProcVar6;
/* 0x3574 */ union {
s32 m3574;
} mProcVar7;
/* 0x3578 */ int m3578;
/* 0x357C */ int m357C;
/* 0x3580 */ int m3580;
@@ -2256,7 +2274,7 @@ public:
/* 0x35B0 */ f32 mStickDistance;
/* 0x35B4 */ f32 m35B4;
/* 0x35B8 */ f32 m35B8;
/* 0x35BC */ f32 mVelocity;
/* 0x35BC */ f32 mNormalSpeed;
/* 0x35C0 */ u8 m35C0[0x35C4 - 0x35C0];
/* 0x35C4 */ f32 m35C4;
/* 0x35C8 */ f32 m35C8;
+2 -2
View File
@@ -4109,8 +4109,8 @@ inline void dComIfGp_particle_swapFrameBufferTexture() {
g_dComIfG_gameInfo.play.getParticle()->swapFrameBufferTexture();
}
inline void dComIfGp_particle_draw(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->draw(inf); }
inline void dComIfGp_particle_drawP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawP1(inf); }
inline void dComIfGp_particle_draw(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawNormal(inf); }
inline void dComIfGp_particle_drawP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawNormalP1(inf); }
inline void dComIfGp_particle_drawToon(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawToon(inf); }
inline void dComIfGp_particle_drawToonP1(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawToonP1(inf); }
inline void dComIfGp_particle_drawProjection(JPADrawInfo* inf) { if (g_dComIfG_gameInfo.play.getParticle() != NULL) g_dComIfG_gameInfo.play.getParticle()->drawProjection(inf); }
+24 -12
View File
@@ -491,8 +491,8 @@ public:
return set(dPtclGroup_ShipTail_e, particleID, pos, angle, scale, alpha, &mSingleRippleEcallBack, -1, NULL, NULL, NULL);
}
void draw(JPADrawInfo* inf) { draw(inf, dPtclGroup_Normal_e); }
void drawP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_NormalP1_e); }
void drawNormal(JPADrawInfo* inf) { draw(inf, dPtclGroup_Normal_e); }
void drawNormalP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_NormalP1_e); }
void drawToon(JPADrawInfo* inf) { draw(inf, dPtclGroup_Toon_e); }
void drawToonP1(JPADrawInfo* inf) { draw(inf, dPtclGroup_ToonP1_e); }
void drawProjection(JPADrawInfo* inf) { draw(inf, dPtclGroup_Projection_e); }
@@ -503,39 +503,51 @@ public:
void draw2DmenuFore(JPADrawInfo* inf) { draw(inf, dPtclGroup_2DmenuFore_e); }
void draw2DmenuBack(JPADrawInfo* inf) { draw(inf, dPtclGroup_2DmenuBack_e); }
u32 getParticleNum() { return mEmitterMng->getParticleNumber(); }
u32 getEmitterNum() { return mEmitterMng->getEmitterNumber(); }
int addModelEmitter(dPa_modelEmitter_c *emitter) { return mModelControl->add(emitter); }
void drawModelParticle() { mModelControl->draw(); }
JKRHeap * getHeap() { return mHeap; }
JKRHeap * getHeap() { return mHeap; }
void getHeapSize() {}
void getSceneHeap() {}
void getSceneHeapSize() {}
static dPa_selectTexEcallBack* getTsuboSelectTexEcallBack(int index) { return &mTsubo[index]; }
static dPa_selectTexEcallBack mTsubo[4];
static dPa_setColorEcallBack* getLifeBallSetColorEcallBack(int idx) { return &mLifeBall[idx]; }
static dPa_setColorEcallBack mLifeBall[3];
static bool isStatus(u8 status) { return mStatus & status; }
static void onStatus(u8 status) { mStatus |= status; }
static void offStatus(u8 status) { mStatus &= ~status; }
static u8 mStatus;
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
static void forceDeleteEmitter(JPABaseEmitter* emitter) { mEmitterMng->forceDeleteEmitter(emitter); }
u32 getParticleNum() { return mEmitterMng->getParticleNumber(); }
u32 getEmitterNum() { return mEmitterMng->getEmitterNumber(); }
static JPAEmitterManager* mEmitterMng;
static dPa_stripesEcallBack mStripes;
static dPa_kageroEcallBack* getKageroEcallBack() { return &mKagero; }
static dPa_kageroEcallBack mKagero;
static dPa_smokeEcallBack* getSmokeEcallback() { return &mSmokeEcallback; }
static dPa_smokeEcallBack mSmokeEcallback;
static dPa_smokePcallBack* getSmokePcallback() { return &mSmokePcallback; }
static dPa_smokePcallBack mSmokePcallback;
static dPa_singleRippleEcallBack mSingleRippleEcallBack;
static dPa_ripplePcallBack* getRipplePcallBack() { return &mRipplePcallBack; }
static dPa_ripplePcallBack mRipplePcallBack;
static dPa_bombSmokeEcallBack mBombSmokeEcallBack;
static MtxP getWindViewMatrix() { return mWindViewMatrix; }
static Mtx mWindViewMatrix;
static dPa_selectTexEcallBack* getTsuboSelectTexEcallBack(int index) { return &mTsubo[index]; }
static bool isStatus(u8 status) { return mStatus & status; }
static void onStatus(u8 status) { mStatus |= status; }
static void offStatus(u8 status) { mStatus &= ~status; }
static u8 mStatus;
/* 0x0000 */ JKRSolidHeap* mHeap;
/* 0x0004 */ JPAResourceManager* mCommonResMng;
+11 -1
View File
@@ -17,7 +17,17 @@ public:
void setWalletSize(u8 size) { mWalletSize = size; }
int getRupee() { return mRupee; }
void setRupee(u16 rupee) { mRupee = rupee; }
u16 getRupeeMax() { return 0; } // TODO
u16 getRupeeMax() {
switch (mWalletSize) {
case 0:
return 200;
case 1:
return 1000;
case 2:
default:
return 5000;
}
}
u8 getMagic() { return mMagic; }
void setMagic(u8 magic) { mMagic = magic; }
u8 getMaxMagic() { return mMaxMagic; }
+3 -1
View File
@@ -224,11 +224,13 @@ public:
mOldFrameEndJoint = 0;
mOldFrameMorfCounter = 0.0f;
field_0x8 = 0.0f;
#if VERSION > VERSION_DEMO
field_0x10 = 0.0f;
field_0x14 = 0.0f;
#endif
}
void initOldFrameMorf(f32, u16, u16);
void initOldFrameMorf(f32 i_morf, u16 i_frameStartJoint, u16 i_frameEndJoint);
void decOldFrameMorfCounter();
bool getOldFrameFlg() { return mOldFrameFlg; }
+5 -5
View File
@@ -299,11 +299,11 @@ bool TControl::forward(u32 param_0) {
bool rv = mObject_control.forward(param_0);
int uVar7 = 0xf;
int uVar6 = 0;
JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> aTStack_38(&mObjectContainer);
while (aTStack_38) {
JStudio::stb::TObject& this_00 = *aTStack_38;
rv = this_00.forward(param_0) || rv;
int uVar3 = this_00.getStatus();
JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> enumerator(&mObjectContainer);
while (enumerator) {
JStudio::stb::TObject& object = *enumerator;
rv = object.forward(param_0) || rv;
int uVar3 = object.getStatus();
uVar7 &= uVar3;
uVar6 |= uVar3;
}
+4 -4
View File
@@ -18,10 +18,10 @@ void cBgS_LinChk::ct() {
}
/* 80247480-80247500 .text Set2__11cBgS_LinChkFP4cXyzP4cXyzUi */
void cBgS_LinChk::Set2(cXyz* pStart, cXyz* pEnd, fpc_ProcID actorPid) {
mLin.SetStartEnd(*pStart, *pEnd);
field_0x40 = *pEnd;
SetActorPid(actorPid);
void cBgS_LinChk::Set2(cXyz* pi_start, cXyz* pi_end, fpc_ProcID pi_actor) {
mLin.SetStartEnd(*pi_start, *pi_end);
field_0x40 = *pi_end;
SetActorPid(pi_actor);
ClrHit();
ClearPi();
}
+21 -16
View File
@@ -585,25 +585,30 @@ static cPhs_State daBdkobj_Create(fopAc_ac_c* a_this) {
fopAcM_SetMtx(i_this, i_this->model->getBaseTRMtx());
if (i_this->m298 == 2) {
return (dComIfG_Bgsp()->Regist(i_this->pm_bgw, i_this) != 0) ? cPhs_ERROR_e : (cPhs_ERROR_e - 1);
} else {
i_this->mStts.Init(0xFF, 0xFF, a_this);
i_this->mCyl.Set(cc_cyl_src);
i_this->mCyl.SetStts(&i_this->mStts);
if (i_this->m298 == 0) {
i_this->mCyl.SetH(REG6_F(0) + 300.0f);
i_this->mCyl.SetR(REG6_F(1) + 200.0f);
if (dComIfG_Bgsp()->Regist(i_this->pm_bgw, i_this)) {
return cPhs_ERROR_e;
} else {
i_this->mCyl.SetH(REG6_F(2) + 300.0f);
i_this->mCyl.SetR(REG6_F(3) + 200.0f);
}
for (s32 i = 0; i < 3; i++) {
i_this->mEffs[i].mStts.Init(0xC8, 0xFF, a_this);
i_this->mEffs[i].mSph.Set(hahen_sph_src);
i_this->mEffs[i].mSph.SetStts(&i_this->mEffs[i].mStts);
return cPhs_COMPLEATE_e;
}
}
i_this->mStts.Init(0xFF, 0xFF, a_this);
i_this->mCyl.Set(cc_cyl_src);
i_this->mCyl.SetStts(&i_this->mStts);
if (i_this->m298 == 0) {
i_this->mCyl.SetH(REG6_F(0) + 300.0f);
i_this->mCyl.SetR(REG6_F(1) + 200.0f);
} else {
i_this->mCyl.SetH(REG6_F(2) + 300.0f);
i_this->mCyl.SetR(REG6_F(3) + 200.0f);
}
for (s32 i = 0; i < 3; i++) {
i_this->mEffs[i].mStts.Init(0xC8, 0xFF, a_this);
i_this->mEffs[i].mSph.Set(hahen_sph_src);
i_this->mEffs[i].mSph.SetStts(&i_this->mEffs[i].mStts);
}
return cPhs_COMPLEATE_e;
}
+52 -51
View File
@@ -888,60 +888,61 @@ static BOOL useHeapInit(fopAc_ac_c* i_actor) {
if (!i_this->mpMorf || !i_this->mpMorf->getModel()) {
return FALSE;
} else {
for (s32 i = 0; i < 0xd; i++) {
modelData = (J3DModelData*)dComIfG_getObjectRes("Bwds", body_bdl[i]);
model = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
i_this->mp02BC[i] = model;
if (i_this->mp02BC[i] == NULL) {
return FALSE;
}
}
}
for (s32 i = 0; i < 0x2; i++) {
i_this->mp18B0[i] = new mDoExt_McaMorf(
(J3DModelData*)dComIfG_getObjectRes("Bwd", s_bdl[i]),
NULL,
NULL,
(J3DAnmTransformKey*)dComIfG_getObjectRes("Bwd", s_bck[i]),
J3DFrameCtrl::EMode_LOOP,
1.0f,
0,
-1,
0,
NULL,
0,
0x11020203
);
if (!i_this->mp18B0[i] || !i_this->mp18B0[i]->getModel()) {
return FALSE;
}
modelData = i_this->mp18B0[i]->getModel()->getModelData();
i_this->mp18B8[i] = new mDoExt_btkAnm();
if (!i_this->mp18B8[i]) {
return FALSE;
}
int ret = i_this->mp18B8[i]->init(
modelData, (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Bwd", s_btk[i]), TRUE, J3DFrameCtrl::EMode_LOOP
);
if (!ret) {
return FALSE;
}
i_this->mp18C0[i] = new mDoExt_brkAnm();
ret = i_this->mp18C0[i]->init(
modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes("Bwd", s_brk[i]), TRUE, J3DFrameCtrl::EMode_LOOP
);
if (!ret) {
return FALSE;
}
for (s32 i = 0; i < 0xd; i++) {
modelData = (J3DModelData*)dComIfG_getObjectRes("Bwds", body_bdl[i]);
model = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
i_this->mp02BC[i] = model;
if (i_this->mp02BC[i] == NULL) {
return FALSE;
}
}
for (s32 i = 0; i < 0x2; i++) {
i_this->mp18B0[i] = new mDoExt_McaMorf(
(J3DModelData*)dComIfG_getObjectRes("Bwd", s_bdl[i]),
NULL,
NULL,
(J3DAnmTransformKey*)dComIfG_getObjectRes("Bwd", s_bck[i]),
J3DFrameCtrl::EMode_LOOP,
1.0f,
0,
-1,
0,
NULL,
0,
0x11020203
);
if (!i_this->mp18B0[i] || !i_this->mp18B0[i]->getModel()) {
return FALSE;
}
modelData = i_this->mp18B0[i]->getModel()->getModelData();
i_this->mp18B8[i] = new mDoExt_btkAnm();
if (!i_this->mp18B8[i]) {
return FALSE;
}
int ret = i_this->mp18B8[i]->init(
modelData, (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Bwd", s_btk[i]), TRUE, J3DFrameCtrl::EMode_LOOP
);
if (!ret) {
return FALSE;
}
i_this->mp18C0[i] = new mDoExt_brkAnm();
ret = i_this->mp18C0[i]->init(
modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes("Bwd", s_brk[i]), TRUE, J3DFrameCtrl::EMode_LOOP
);
if (!ret) {
return FALSE;
}
}
return TRUE;
}
+46 -48
View File
@@ -728,68 +728,66 @@ cXyz daGoal_Flag_c::get_cloth_anim_factor(cXyz* i_posArr, cXyz* i_nrmArr, cXyz*
f32 dot = i_windVecP->getDotProduct(i_nrmArr[index]);
if ((i_row == 0 || i_row == 4) && (i_col == 0 || i_col == 8)) {
return cXyz::Zero;
} else {
cXyz anim_factor = i_nrmArr[index] * dot;
anim_factor.y += l_HIO.mFlagSagFactor * ((float)i_row * 0.25f);
if (i_col != 0) {
}
cXyz anim_factor = i_nrmArr[index] * dot;
anim_factor.y += l_HIO.mFlagSagFactor * ((float)i_row * 0.25f);
if (i_col != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row * 9)],
&anim_factor, 250.0f);
if (i_row != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row * 9)],
&pos, &i_posArr[i_col + (i_row - 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row - 1) * 9],
&anim_factor, 277.3085f);
}
if (i_row != 4) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row + 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row + 1) * 9],
&anim_factor, 277.3085f);
}
if (i_col != 8) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + i_row * 9],
&anim_factor, 250.0f);
if (i_row != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row - 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row - 1) * 9],
&anim_factor, 277.3085f);
}
if (i_row != 4) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row + 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col - 1) + (i_row + 1) * 9],
&anim_factor, 277.3085f);
}
if (i_col != 8) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + i_row * 9],
&anim_factor, 250.0f);
if (i_row != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row - 1) * 9],
&anim_factor, 277.3085f);
}
if (i_row != 4) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row + 1) * 9],
&anim_factor, 277.3085f);
}
}
return anim_factor;
} else {
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row * 9)],
&anim_factor, 250.0f);
if (i_row != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row - 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row - 1) * 9],
&anim_factor, 277.3085f);
}
if (i_row != 4) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row + 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row + 1) * 9],
&anim_factor, 277.3085f);
}
return anim_factor;
}
return anim_factor;
}
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row * 9)],
&anim_factor, 250.0f);
if (i_row != 0) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row - 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row - 1) * 9],
&anim_factor, 277.3085f);
}
if (i_row != 4) {
get_cloth_anim_sub_factor(
&pos, &i_posArr[i_col + (i_row + 1) * 9],
&anim_factor, 120.0f);
get_cloth_anim_sub_factor(
&pos, &i_posArr[(i_col + 1) + (i_row + 1) * 9],
&anim_factor, 277.3085f);
}
return anim_factor;
}
/* 00001CC0-00001CE0 .text checkCreateHeap__FP10fopAc_ac_c */
+48 -48
View File
@@ -691,58 +691,58 @@ int himo2_bg_check(himo2_class* i_this) {
if (i_this->m02A2 != 0) {
return FALSE;
} else {
i_this->m2574.CrrPos(g_dComIfG_gameInfo.play.mBgS);
if ((i_this->m2574.ChkWallHit() || i_this->m2574.ChkRoofHit()) || i_this->m2574.ChkGroundHit()) {
i_this->m02DC = 9;
actor->speedF *= -1.0f;
i_this->m0308 = 30;
cBgS_PolyInfo local_24;
flag = i_this->m2574.GetOnePolyInfo(&local_24);
JUT_ASSERT(DEMO_SELECT(1534, 1569), flag == NULL);
uVar3 = dComIfG_Bgsp()->GetMtrlSndId(local_24);
mDoAud_seStart(JA_SE_LK_SW_HIT_S, &actor->current.pos, uVar3, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
iVar4 = dComIfG_Bgsp()->GetAttributeCode(local_24);
if ((iVar4 == dBgS_Attr_WOOD_e) || (iVar4 == dBgS_Attr_STONE_e)) {
local_38.x = actor->current.angle.x;
local_38.y = actor->current.angle.y;
local_38.z = actor->current.angle.z;
local_38.y = actor->current.angle.y + 0x8000;
mDoAud_seStart(JA_SE_LK_MS_WEP_HIT, &actor->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
if (iVar4 == dBgS_Attr_WOOD_e) {
pJVar5 = dComIfGp_particle_set(
dPa_name::ID_AK_JN_ELEMENTKIKUZU00,
&actor->current.pos,
&local_38,
NULL,
0xFF,
NULL,
-1,
&actor->tevStr.mColorK0,
&actor->tevStr.mColorK0,
NULL
);
if (pJVar5 != NULL) {
pJVar5->mSpread = 0.2f;
pJVar5->mVolumeSweep = 0.15f;
}
} else {
local_38.x = local_38.x + 0x4000;
pJVar5 = dComIfGp_particle_set(dPa_name::ID_AK_JN_ELEMENTHIBANA00, &actor->current.pos, &local_38);
if (pJVar5 != NULL) {
pJVar5->mInitialVelAxis = 15.0f;
}
dKy_Sound_set(actor->current.pos, 100, fopAcM_GetID(actor), 5);
}
}
i_this->m2574.CrrPos(g_dComIfG_gameInfo.play.mBgS);
if ((i_this->m2574.ChkWallHit() || i_this->m2574.ChkRoofHit()) || i_this->m2574.ChkGroundHit()) {
i_this->m02DC = 9;
actor->speedF *= -1.0f;
i_this->m0308 = 30;
cBgS_PolyInfo local_24;
flag = i_this->m2574.GetOnePolyInfo(&local_24);
JUT_ASSERT(DEMO_SELECT(1534, 1569), flag == NULL);
uVar3 = dComIfG_Bgsp()->GetMtrlSndId(local_24);
mDoAud_seStart(JA_SE_LK_SW_HIT_S, &actor->current.pos, uVar3, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
iVar4 = dComIfG_Bgsp()->GetAttributeCode(local_24);
if ((iVar4 == dBgS_Attr_WOOD_e) || (iVar4 == dBgS_Attr_STONE_e)) {
local_38.x = actor->current.angle.x;
local_38.y = actor->current.angle.y;
local_38.z = actor->current.angle.z;
local_38.y = actor->current.angle.y + 0x8000;
mDoAud_seStart(JA_SE_LK_MS_WEP_HIT, &actor->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
if (iVar4 == dBgS_Attr_WOOD_e) {
pJVar5 = dComIfGp_particle_set(
dPa_name::ID_AK_JN_ELEMENTKIKUZU00,
&actor->current.pos,
&local_38,
NULL,
0xFF,
NULL,
-1,
&actor->tevStr.mColorK0,
&actor->tevStr.mColorK0,
NULL
);
if (pJVar5 != NULL) {
pJVar5->mRate = 8.0f;
pJVar5->mMaxFrame = 1;
pJVar5->mSpread = 0.2f;
pJVar5->mVolumeSweep = 0.15f;
}
} else {
local_38.x = local_38.x + 0x4000;
pJVar5 = dComIfGp_particle_set(dPa_name::ID_AK_JN_ELEMENTHIBANA00, &actor->current.pos, &local_38);
if (pJVar5 != NULL) {
pJVar5->mInitialVelAxis = 15.0f;
}
dKy_Sound_set(actor->current.pos, 100, fopAcM_GetID(actor), 5);
}
if (pJVar5 != NULL) {
pJVar5->mRate = 8.0f;
pJVar5->mMaxFrame = 1;
}
return true;
} else {
return false;
}
return true;
} else {
return false;
}
}
+2 -29
View File
@@ -421,21 +421,7 @@ static u32 daNpc_Bs1_getBuyItemMax(int i_itemCost, int i_itemNo) {
int beastNum = dComIfGs_getBeastNum(beastIdx);
int currRupee = dComIfGs_getRupee();
u8 walletSize = dComIfGs_getWalletSize();
u16 maxRupees;
switch (walletSize) {
case 0:
maxRupees = 200;
break;
case 1:
maxRupees = 1000;
break;
case 2:
default:
maxRupees = 5000;
break;
}
u16 maxRupees = dComIfGs_getRupeeMax();
int r4 = maxRupees - currRupee;
int r5 = r4 / i_itemCost;
@@ -449,20 +435,7 @@ static u32 daNpc_Bs1_getBuyItemMax(int i_itemCost, int i_itemNo) {
/* 00001088-000010EC .text daNpc_Bs1_setPayRupee__Fii */
static void daNpc_Bs1_setPayRupee(int unknownParam1, int unknownParam2) {
int rupee = dComIfGs_getRupee();
u16 maxRupees;
switch (dComIfGs_getWalletSize()) {
case 0:
maxRupees = 200;
break;
case 1:
maxRupees = 1000;
break;
case 2:
default:
maxRupees = 5000;
break;
}
u16 maxRupees = dComIfGs_getRupeeMax();
int r5 = maxRupees - rupee;
int paymentTotal = cLib_maxLimit(unknownParam1 * unknownParam2, r5);
+5 -5
View File
@@ -960,14 +960,14 @@ int daNpc_Fa1_c::CreateHeap() {
0x11020203);
if (mpMorf == NULL) {
return false;
} else if (mpMorf->getModel() == NULL) {
}
if (mpMorf->getModel() == NULL) {
mpMorf = NULL;
return false;
} else {
mMcaMorfCallback1.setNeckJoint(pModelData->getJointName()->getIndex("neck"));
mMcaMorfCallback1.setNeckAngle(0);
return true;
}
mMcaMorfCallback1.setNeckJoint(pModelData->getJointName()->getIndex("neck"));
mMcaMorfCallback1.setNeckAngle(0);
return true;
}
/* 800FD61C-800FD6DC .text setMtx__11daNpc_Fa1_cFv */
+13 -12
View File
@@ -618,19 +618,20 @@ J3DModelData* daNpc_Jb1_c::create_Anm() {
} else if(mpMorf->getModel() == NULL) {
mpMorf = NULL;
return NULL;
} else {
m_lmp_brk = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes("Jb", JB_BRK_JB_LAMP);
JUT_ASSERT(VERSION_SELECT(0x464, 0x46E, 0x473, 0x473), m_lmp_brk != NULL);
bool temp = mBrkAnm.init(mpMorf->getModel()->getModelData(), m_lmp_brk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0);
if(temp == false) {
mpMorf = NULL;
return NULL;
} else {
field_0x834 = 0;
m_cse_jnt_num = mpMorf->getModel()->getModelData()->getJointName()->getIndex("jb_case");
JUT_ASSERT(VERSION_SELECT(0x46F, 0x479, 0x47E, 0x47E), m_cse_jnt_num >= 0);
}
}
m_lmp_brk = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes("Jb", JB_BRK_JB_LAMP);
JUT_ASSERT(VERSION_SELECT(0x464, 0x46E, 0x473, 0x473), m_lmp_brk != NULL);
bool temp = mBrkAnm.init(mpMorf->getModel()->getModelData(), m_lmp_brk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0);
if(temp == false) {
mpMorf = NULL;
return NULL;
} else {
field_0x834 = 0;
m_cse_jnt_num = mpMorf->getModel()->getModelData()->getJointName()->getIndex("jb_case");
JUT_ASSERT(VERSION_SELECT(0x46F, 0x479, 0x47E, 0x47E), m_cse_jnt_num >= 0);
}
return a_mdl_dat;
}
+46 -45
View File
@@ -589,20 +589,21 @@ void daNpc_Ls1_c::play_btk_anm() {
void daNpc_Ls1_c::setAnm_anm(daNpc_Ls1_c::anm_prm_c* i_anmPrmP) {
if (i_anmPrmP->mBckResIndex < 0 || mBckResIndex == i_anmPrmP->mBckResIndex) {
return;
} else {
int id = bckResID(i_anmPrmP->mBckResIndex);
dNpc_setAnmIDRes(
mpMorf,
i_anmPrmP->mLoopMode,
i_anmPrmP->mMorf, i_anmPrmP->mSpeed,
id, -1,
mArcName
);
mBckResIndex = i_anmPrmP->mBckResIndex;
mbMorfAnimStopped = false;
m831 = 0;
mPrevMorfFrame = 0.0f;
}
dNpc_setAnmIDRes(
mpMorf,
i_anmPrmP->mLoopMode,
i_anmPrmP->mMorf,
i_anmPrmP->mSpeed,
bckResID(i_anmPrmP->mBckResIndex),
-1,
mArcName
);
mBckResIndex = i_anmPrmP->mBckResIndex;
mbMorfAnimStopped = false;
m831 = 0;
mPrevMorfFrame = 0.0f;
}
/* 00001584-000015F4 .text setAnm_NUM__11daNpc_Ls1_cFii */
@@ -2139,46 +2140,46 @@ BOOL daNpc_Ls1_c::_execute() {
if (m83A && demoActorID == 0) {
return TRUE;
} else {
partner_search();
checkOrder();
if (!demo()) {
int staff_id = -1;
if (dComIfGp_event_runCheck() && eventInfo.checkCommandTalk() == false) {
staff_id = isEventEntry();
}
}
if (staff_id >= 0 || m834) {
event_proc(staff_id);
} else {
(this->*mCurrProcFunc)(NULL);
}
partner_search();
checkOrder();
if (!demo()) {
int staff_id = -1;
if (dComIfGp_event_runCheck() && eventInfo.checkCommandTalk() == false) {
staff_id = isEventEntry();
}
lookBack();
if (mType != 0) {
fopAcM_posMoveF(this, mStts.GetCCMoveP());
mObjAcch.CrrPos(*dComIfG_Bgsp());
}
play_animation();
if (staff_id >= 0 || m834) {
event_proc(staff_id);
} else {
m83A = false;
(this->*mCurrProcFunc)(NULL);
}
eventOrder();
mAngle = current.angle;
if (!m83B) {
shape_angle = current.angle;
lookBack();
if (mType != 0) {
fopAcM_posMoveF(this, mStts.GetCCMoveP());
mObjAcch.CrrPos(*dComIfG_Bgsp());
}
tevStr.mRoomNo = dComIfG_Bgsp()->GetRoomId(mObjAcch.m_gnd);
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mObjAcch.m_gnd);
setMtx(false);
play_animation();
} else {
m83A = false;
}
if (!m841) {
setCollision(40.0f, 100.0f);
}
eventOrder();
mAngle = current.angle;
if (!m83B) {
shape_angle = current.angle;
}
tevStr.mRoomNo = dComIfG_Bgsp()->GetRoomId(mObjAcch.m_gnd);
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mObjAcch.m_gnd);
setMtx(false);
if (!m841) {
setCollision(40.0f, 100.0f);
}
return TRUE;
+41 -41
View File
@@ -1726,49 +1726,49 @@ BOOL daNpc_Rsh1_c::_execute() {
if (lookat_dist > REG10_F(10) + 5000.0f) {
return TRUE;
} else {
mJntCtrl.setParam(
l_HIO.mNpcHIO.mMaxBackboneX,
l_HIO.mNpcHIO.mMaxBackboneY,
l_HIO.mNpcHIO.mMinBackboneX,
l_HIO.mNpcHIO.mMinBackboneY,
l_HIO.mNpcHIO.mMaxHeadX,
l_HIO.mNpcHIO.mMaxHeadY,
l_HIO.mNpcHIO.mMinHeadX,
l_HIO.mNpcHIO.mMinHeadY,
l_HIO.mNpcHIO.mMaxTurnStep
);
playTexPatternAnm();
mMorfIsStop = mpMorf->play(&eyePos, 0, 0);
if (mpMorf->getFrame() < mMorfPrevFrame) {
mMorfIsStop = true;
}
mMorfPrevFrame = mpMorf->getFrame();
checkOrder();
(this->*mCurrProc)(NULL);
mShopCamAct.move();
if (mpShopItems) {
mpShopItems->Item_Move();
}
eventOrder();
lookBack();
setAttention();
fopAcM_posMoveF(this, mStts.GetCCMoveP());
mAcch.CrrPos(*dComIfG_Bgsp());
tevStr.mRoomNo = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mAcch.m_gnd);
set_mtx();
setCollision();
}
mJntCtrl.setParam(
l_HIO.mNpcHIO.mMaxBackboneX,
l_HIO.mNpcHIO.mMaxBackboneY,
l_HIO.mNpcHIO.mMinBackboneX,
l_HIO.mNpcHIO.mMinBackboneY,
l_HIO.mNpcHIO.mMaxHeadX,
l_HIO.mNpcHIO.mMaxHeadY,
l_HIO.mNpcHIO.mMinHeadX,
l_HIO.mNpcHIO.mMinHeadY,
l_HIO.mNpcHIO.mMaxTurnStep
);
playTexPatternAnm();
mMorfIsStop = mpMorf->play(&eyePos, 0, 0);
if (mpMorf->getFrame() < mMorfPrevFrame) {
mMorfIsStop = true;
}
mMorfPrevFrame = mpMorf->getFrame();
checkOrder();
(this->*mCurrProc)(NULL);
mShopCamAct.move();
if (mpShopItems) {
mpShopItems->Item_Move();
}
eventOrder();
lookBack();
setAttention();
fopAcM_posMoveF(this, mStts.GetCCMoveP());
mAcch.CrrPos(*dComIfG_Bgsp());
tevStr.mRoomNo = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mAcch.m_gnd);
set_mtx();
setCollision();
return TRUE;
}
+49 -49
View File
@@ -98,16 +98,16 @@ BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* enemy) {
current.angle.y = fopAcM_searchActorAngleY(this, enemy);
shape_angle.y = current.angle.y;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
m34D0 = 0;
mProcVar0.m34D0 = 0;
m370C.x = enemy->current.pos.x - enemy->getBtBodyR() * cM_ssin(enemy->shape_angle.y);
m370C.y = enemy->current.pos.y;
m370C.z = enemy->current.pos.z - enemy->getBtBodyR() * cM_scos(enemy->shape_angle.y);
if (m_HIO->mBattle.mBJump.m.field_0x18 <= 0.0f) {
speed.y = m35A0;
mVelocity = m35A4;
mProcVar0.m3570 = 1;
mNormalSpeed = m35A4;
mProcVar6.m3570 = 1;
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
voiceStart(6);
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
@@ -117,23 +117,23 @@ BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* enemy) {
/* 8013E72C-8013E860 .text procBtJump__9daPy_lk_cFv */
BOOL daPy_lk_c::procBtJump() {
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m_HIO->mBattle.mBJump.m.field_0x18) {
speed.y = m35A0;
mVelocity = m35A4;
mProcVar0.m3570 = 1;
mNormalSpeed = m35A4;
mProcVar6.m3570 = 1;
}
} else {
if (mAcch.ChkGroundHit()) {
return changeLandProc(m_HIO->mBattle.mBJump.m.field_0xC);
}
if (mProcVar0.m3570 == 1) {
m34D0++;
if (mProcVar6.m3570 == 1) {
mProcVar0.m34D0++;
if (speed.y < -gravity) {
return procBtJumpCut_init(&m370C);
}
} else {
u32 uVar2 = cM_atan2s(mVelocity, -speed.y);
u32 uVar2 = cM_atan2s(mNormalSpeed, -speed.y);
f32 temp = cM_ssin(uVar2 * 2);
m34F2 = -m_HIO->mBattle.mBJump.m.field_0x6 * temp;
setFallVoice();
@@ -158,11 +158,11 @@ BOOL daPy_lk_c::procBtJumpCut_init(cXyz* param_0) {
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_MJMPCMS));
}
m35EC = m_HIO->mBattle.mBJump.m.field_0x30;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
gravity = 0.0f;
speed.y = 0.0f;
m370C = *param_0;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
dComIfGp_setPlayerStatus0(0, (daPyStts0_UNK2_e | daPyStts0_UNK400_e));
voiceStart(1);
setBlurPosResource(LKANM__BTJUMPCUT_POS);
@@ -175,7 +175,7 @@ BOOL daPy_lk_c::procBtJumpCut_init(cXyz* param_0) {
BOOL daPy_lk_c::procBtJumpCut() {
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
if (speed.y < 0.0f && m_HIO->mBattle.mBJump.m.field_0x0 == 1) {
u32 uVar2 = cM_atan2s(mVelocity, -speed.y);
u32 uVar2 = cM_atan2s(mNormalSpeed, -speed.y);
f32 temp = cM_ssin(uVar2 * 2);
m34F2 = -m_HIO->mBattle.mBJump.m.field_0x6 * temp;
}
@@ -195,13 +195,13 @@ BOOL daPy_lk_c::procBtJumpCut() {
return changeLandProc(m_HIO->mBattle.mBJump.m.field_0xC);
}
if (mProcVar0.m3570 == 0 && mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (mProcVar6.m3570 == 0 && mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
gravity = m_HIO->mBattle.mBJump.m.field_0x3C;
speed.y = m_HIO->mBattle.mBJump.m.field_0x34;
mVelocity = m_HIO->mBattle.mBJump.m.field_0x38;
mProcVar0.m3570 = 1;
} else if (mProcVar0.m3570 == 1 && speed.y < -gravity && m_HIO->mBattle.mBJump.m.field_0x0 == 1) {
mProcVar0.m3570 = 2;
mNormalSpeed = m_HIO->mBattle.mBJump.m.field_0x38;
mProcVar6.m3570 = 1;
} else if (mProcVar6.m3570 == 1 && speed.y < -gravity && m_HIO->mBattle.mBJump.m.field_0x0 == 1) {
mProcVar6.m3570 = 2;
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1, m_HIO->mBattle.mBJump.m.field_0x40);
offModeFlg(ModeFlg_00000400);
setTextureAnime(0x37, 0);
@@ -216,7 +216,7 @@ BOOL daPy_lk_c::procBtJumpCut() {
/* 8013EBD0-8013EC50 .text procBtSlide__9daPy_lk_cFv */
BOOL daPy_lk_c::procBtSlide() {
f32 dVar1 = cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mBattle.mBSlide.m.field_0x4,
m_HIO->mBattle.mBSlide.m.field_0x8,
@@ -225,7 +225,7 @@ BOOL daPy_lk_c::procBtSlide() {
if (dVar1 <= 0.001f) {
checkNextMode(0);
}
if (mVelocity < 2.5f) {
if (mNormalSpeed < 2.5f) {
resetFootEffect();
}
return true;
@@ -234,7 +234,7 @@ BOOL daPy_lk_c::procBtSlide() {
/* 8013EC50-8013EE64 .text procBtRoll_init__9daPy_lk_cFP13fopEn_enemy_c */
BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
commonProcInit(daPyProc_BT_ROLL_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
cXyz local_38;
local_38.x = 0.5f * (current.pos.x + (enemy->current.pos.x - enemy->getBtBodyR() * cM_ssin(enemy->shape_angle.y)));
@@ -243,10 +243,10 @@ BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
daPy_ANM anm;
if (mDirection == DIR_LEFT) {
m34D4 = -0x7FF0;
mProcVar2.m34D4 = -0x7FF0;
anm = ANM_MROLLL;
} else {
m34D4 = 0x7FF0;
mProcVar2.m34D4 = 0x7FF0;
anm = ANM_MROLLR;
}
setSingleMoveAnime(
@@ -260,7 +260,7 @@ BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
cXyz local_2c = current.pos - local_38;
f32 dVar5 = local_2c.absXZ();
m35A0 = dVar5;
m34D6 = cM_atan2s(local_2c.x, local_2c.z);
mProcVar3.m34D6 = cM_atan2s(local_2c.x, local_2c.z);
shape_angle.y = fopAcM_searchActorAngleY(this, enemy);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
setFootEffectPosType(4);
@@ -271,27 +271,27 @@ BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
/* 8013EE64-8013F010 .text procBtRoll__9daPy_lk_cFv */
BOOL daPy_lk_c::procBtRoll() {
s16 sVar1 = m34D4;
s16 sVar1 = mProcVar2.m34D4;
cLib_addCalcAngleS(
&m34D4, 0, m_HIO->mBattle.mBRoll.m.field_0x4, m_HIO->mBattle.mBRoll.m.field_0x0, m_HIO->mBattle.mBRoll.m.field_0x2
&mProcVar2.m34D4, 0, m_HIO->mBattle.mBRoll.m.field_0x4, m_HIO->mBattle.mBRoll.m.field_0x0, m_HIO->mBattle.mBRoll.m.field_0x2
);
s16 sVar3 = sVar1 - m34D4;
s16 sVar3 = sVar1 - mProcVar2.m34D4;
if (sVar1 > 0) {
current.angle.y = m34D6 + 0x4000;
current.angle.y = mProcVar3.m34D6 + 0x4000;
} else {
current.angle.y = m34D6 + -0x4000;
current.angle.y = mProcVar3.m34D6 + -0x4000;
}
cXyz local_28;
local_28.x = current.pos.x - m35A0 * cM_ssin(m34D6);
local_28.x = current.pos.x - m35A0 * cM_ssin(mProcVar3.m34D6);
local_28.y = current.pos.y;
local_28.z = current.pos.z - m35A0 * cM_scos(m34D6);
m34D6 += sVar3;
current.pos.x = local_28.x + m35A0 * cM_ssin(m34D6);
current.pos.z = local_28.z + m35A0 * cM_scos(m34D6);
shape_angle.y = m34D6 + 0x8000;
if (abs((int)sVar3) < m_HIO->mBattle.mBRoll.m.field_0x2) {
local_28.z = current.pos.z - m35A0 * cM_scos(mProcVar3.m34D6);
mProcVar3.m34D6 += sVar3;
current.pos.x = local_28.x + m35A0 * cM_ssin(mProcVar3.m34D6);
current.pos.z = local_28.z + m35A0 * cM_scos(mProcVar3.m34D6);
shape_angle.y = mProcVar3.m34D6 + 0x8000;
if (abs(sVar3) < m_HIO->mBattle.mBRoll.m.field_0x2) {
resetFootEffect();
}
@@ -314,12 +314,12 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
s16 angle_y_delta = current.angle.y - shape_angle.y;
if (angle_y_delta > 0) {
dVar4 = ANM_MROLLLC;
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
m34EC = 1;
setBlurPosResource(LKANM__BTROTATECUTL_POS);
} else {
dVar4 = ANM_MROLLRC;
mProcVar0.m3570 = -1;
mProcVar6.m3570 = -1;
m34EC = -1;
setBlurPosResource(LKANM__BTROTATECUTR_POS);
}
@@ -340,8 +340,8 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
m35EC = m_HIO->mBattle.mBRoll.m.field_0x20;
m370C = *param_0;
m34D4 = 0;
mVelocity = m_HIO->mBattle.mBRoll.m.field_0x28;
mProcVar2.m34D4 = 0;
mNormalSpeed = m_HIO->mBattle.mBRoll.m.field_0x28;
speed.y = m_HIO->mBattle.mBRoll.m.field_0x2C;
gravity = m_HIO->mBattle.mBRoll.m.field_0x30;
voiceStart(1);
@@ -360,20 +360,20 @@ BOOL daPy_lk_c::procBtRollCut() {
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
s16 sVar2 = cLib_targetAngleY(&current.pos, &m370C);
cLib_addCalcAngleS(&shape_angle.y, sVar2, 5, 0x5e8, 0x13c);
current.angle.y = shape_angle.y + mProcVar0.m3570 * 0x4000;
current.angle.y = shape_angle.y + mProcVar6.m3570 * 0x4000;
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (m34D4 == 0) {
m34D4 = 1;
if (mProcVar2.m34D4 == 0) {
mProcVar2.m34D4 = 1;
onResetFlg0(daPyRFlg0_UNK2);
} else if (m34D4 == 1) {
} else if (mProcVar2.m34D4 == 1) {
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1, m_HIO->mBattle.mBRoll.m.field_0x38);
offModeFlg(ModeFlg_00000400);
setTextureAnime(0x37, 0);
resetSeAnime();
m34D4 = 2;
mProcVar2.m34D4 = 2;
}
if (m34D4 > 1) {
int iVar3 = mProcVar0.m3570;
if (mProcVar2.m34D4 > 1) {
int iVar3 = mProcVar6.m3570;
if ((iVar3 > 0 && m34EC < 0) || (iVar3 < 0 && m34EC > 0)) {
cLib_addCalcAngleS(&m34EC, -iVar3, 4, m_HIO->mBattle.mBRoll.m.field_0xA, 0x200);
} else {
@@ -405,7 +405,7 @@ BOOL daPy_lk_c::procBtVerticalJump_init(fopEn_enemy_c* enemy) {
m_HIO->mBattle.mBVerJump.m.field_0x0,
m_HIO->mBattle.mBVerJump.m.field_0x10
);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
gravity = m_HIO->mBattle.mBVerJump.m.field_0x14;
speed.y = m_HIO->mBattle.mBVerJump.m.field_0x18;
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
@@ -503,7 +503,7 @@ BOOL daPy_lk_c::procBtVerticalJumpLand_init() {
BOOL daPy_lk_c::procBtVerticalJumpLand() {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
procBackJump_init();
mVelocity = m_HIO->mBattle.mBVerJump.m.field_0x3C;
mNormalSpeed = m_HIO->mBattle.mBVerJump.m.field_0x3C;
speed.y = m_HIO->mBattle.mBVerJump.m.field_0x40;
}
return true;
+2 -2
View File
@@ -143,7 +143,7 @@ BOOL daPy_lk_c::procBoomerangSubject_init() {
commonProcInit(daPyProc_BOOMERANG_SUBJECT_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, m_HIO->mBasic.m.field_0xC);
@@ -221,7 +221,7 @@ BOOL daPy_lk_c::procBoomerangMove() {
if (!checkNextMode(0)) {
f32 fVar1 = -1.0f;
if (std::fabsf(mVelocity) < 0.001f) {
if (std::fabsf(mNormalSpeed) < 0.001f) {
onModeFlg(ModeFlg_00000001);
if (mDirection != DIR_RIGHT) {
mDirection = DIR_RIGHT;
+38 -38
View File
@@ -102,7 +102,7 @@ BOOL daPy_lk_c::procBottleDrink_init(u16 param_0) {
int iVar1 = checkShipRideUseItem(1);
commonProcInit(daPyProc_BOTTLE_DRINK_e);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(
ANM_BINDRINKPRE,
1.0f,
@@ -116,8 +116,8 @@ BOOL daPy_lk_c::procBottleDrink_init(u16 param_0) {
keepItemData();
setBottleModel(param_0);
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK2000_e);
mProcVar0.m3570 = 1;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar0.m3570, 0);
mProcVar6.m3570 = 1;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar6.m3570, 0);
initShipRideUseItem(iVar1, 2);
return true;
}
@@ -220,7 +220,7 @@ BOOL daPy_lk_c::procBottleOpen_init(u16 param_0) {
int iVar1 = checkShipRideUseItem(1);
commonProcInit(daPyProc_BOTTLE_OPEN_e);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(
ANM_BINOPENPRE,
1.0f,
@@ -232,18 +232,18 @@ BOOL daPy_lk_c::procBottleOpen_init(u16 param_0) {
setBottleModel(param_0);
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK4000_e);
if (mEquipItem == dItem_FAIRY_BOTTLE_e) {
mProcVar0.m3570 = 3;
mProcVar6.m3570 = 3;
} else {
mProcVar0.m3570 = 2;
mProcVar6.m3570 = 2;
}
if (mDemo.getDemoMode() != daPy_demo_c::DEMO_BO_OPEN_e) {
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar0.m3570, 0);
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar6.m3570, 0);
}
initShipRideUseItem(iVar1, 2);
m34D4 = 0;
m34D6 = 0;
m34D0 = -1;
m34D8 = 0;
mProcVar2.m34D4 = 0;
mProcVar3.m34D6 = 0;
mProcVar0.m34D0 = -1;
mProcVar4.m34D8 = 0;
return true;
}
@@ -277,7 +277,7 @@ BOOL daPy_lk_c::procBottleOpen() {
mRightHandIdx = 8;
}
} else {
if (m32E4.getEmitter() && m34D4 == 0 && m32E4.getEmitter()->getParticleList() && m32E4.getEmitter()->getParticleList()->getLast()) {
if (m32E4.getEmitter() && mProcVar2.m34D4 == 0 && m32E4.getEmitter()->getParticleList() && m32E4.getEmitter()->getParticleList()->getLast()) {
JGeometry::TVec3<f32> temp;
m32E4.getEmitter()->getParticleList()->getLast()->getObject()->getGlobalPosition(temp);
cXyz sp64(temp.x, temp.y + 100.0f, temp.z);
@@ -315,9 +315,9 @@ BOOL daPy_lk_c::procBottleOpen() {
cXyz sp40;
cXyz sp34;
if (f1 > temp.y + 15.0f) {
m34D4 = 1;
mProcVar2.m34D4 = 1;
sp64.y = f1;
m34D4 = 1;
mProcVar2.m34D4 = 1;
static const Vec splash_scale = {0.3f, 0.3f, 0.3f};
JPABaseEmitter* emitter = dComIfGp_particle_setP1(
dPa_name::ID_IT_JN_WP_SHIBUKI, &sp64,
@@ -333,7 +333,7 @@ BOOL daPy_lk_c::procBottleOpen() {
dComIfGp_particle_setSingleRipple(dPa_name::ID_IT_JN_WP_HAMON03, &sp64, NULL, (cXyz*)&ripple_scale);
} else {
m370C = sp64;
m34D0 = 1;
mProcVar0.m34D0 = 1;
}
sp58.set(sp64.x, sp64.y, sp64.z);
sp4C.set(sp64.x, sp64.y + 5.0f, sp64.z);
@@ -348,7 +348,7 @@ BOOL daPy_lk_c::procBottleOpen() {
sp40 = sp64 - sp58;
mAtCps[0].SetStartEnd(sp58, sp64);
mAtCps[0].SetAtVec(sp40);
m34D6 = 1;
mProcVar3.m34D6 = 1;
}
if (frameCtrl.getRate() < 0.01f) {
mActorKeepRope.clearData();
@@ -359,7 +359,7 @@ BOOL daPy_lk_c::procBottleOpen() {
} else {
dComIfGp_evmng_cutEnd(mStaffIdx);
}
} else if (m34D8 == 0) {
} else if (mProcVar4.m34D8 == 0) {
if (
(mEquipItem == dItem_WATER_BOTTLE_e || mEquipItem == dItem_FOREST_WATER_e) &&
(frameCtrl.checkPass(9.0f))
@@ -380,7 +380,7 @@ BOOL daPy_lk_c::procBottleOpen() {
(mEquipItem != dItem_FAIRY_BOTTLE_e && mEquipItem != dItem_FOREST_WATER_e && frameCtrl.getFrame() >= m_HIO->mItem.mBottle.m.field_0x4C)
) {
mpBottleContentsModel = NULL;
m34D8 = 1;
mProcVar4.m34D8 = 1;
if (checkSpecialDemoMode()) {
dComIfGs_setEquipBottleItemEmpty(mReadyItemBtn);
} else if (dComIfGp_event_getTalkXYBtn() == dTalkBtn_X_e) {
@@ -402,16 +402,16 @@ BOOL daPy_lk_c::procBottleOpen() {
}
}
if (m34D0 > 0) {
m34D0--;
if (m34D0 == 0) {
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
if (mProcVar0.m34D0 == 0) {
cXyz sp28(
m370C.x + cM_rndFX(45.0f),
m370C.y,
m370C.z + cM_rndFX(45.0f)
);
fopKyM_create(PROC_WATER_MARK, 1, &sp28);
m34D0 = 3;
mProcVar0.m34D0 = 3;
}
}
@@ -427,7 +427,7 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
setBottleModel(dItem_EMPTY_BOTTLE_e);
}
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
fopAc_ac_c* catch_target = dComIfGp_att_getCatghTarget();
BOOL bVar1;
if (catch_target != 0) {
@@ -461,9 +461,9 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
);
m35A0 = m_HIO->mItem.mBottle.m.field_0x18;
}
mProcVar0.m3570 = 0;
m3574 = 0;
m34D4 = 0;
mProcVar6.m3570 = 0;
mProcVar7.m3574 = 0;
mProcVar2.m34D4 = 0;
voiceStart(7);
initShipRideUseItem(iVar2, 2);
return true;
@@ -472,9 +472,9 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
/* 80153064-80153338 .text procBottleSwing__9daPy_lk_cFv */
BOOL daPy_lk_c::procBottleSwing() {
setShipRidePosUseItem();
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (eventInfo.checkCommandCatch()) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
u8 bVar5 = dComIfGp_event_getPreItemNo();
if (bVar5 == dItem_WATER_BOTTLE_e) {
seStartOnlyReverb(JA_SE_LK_SCOOP_WATER);
@@ -482,13 +482,13 @@ BOOL daPy_lk_c::procBottleSwing() {
bVar5 = dItem_FOREST_WATER_e;
if (dComIfGs_checkBottle(dItem_FOREST_WATER_e)) {
m3628 = fpcM_ERROR_PROCESS_ID_e;
m3574 = 1;
mProcVar7.m3574 = 1;
} else {
dComIfGs_getpItemRecord()->resetTimer(36000);
}
}
}
if (m3574 == 0) {
if (mProcVar7.m3574 == 0) {
setBottleModel(bVar5);
dComIfGs_setEquipBottleItemIn(mReadyItemBtn, mEquipItem);
m355E = 0;
@@ -503,20 +503,20 @@ BOOL daPy_lk_c::procBottleSwing() {
}
}
}
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || m34D4 != 0) {
if (m3574 != 0) {
if (m34D4 == 0) {
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || mProcVar2.m34D4 != 0) {
if (mProcVar7.m3574 != 0) {
if (mProcVar2.m34D4 == 0) {
offModeFlg(ModeFlg_00000400);
onModeFlg(ModeFlg_00000100);
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
m34D4 = 1;
mProcVar2.m34D4 = 1;
}
if (checkEndMessage(0x14a2)) {
dComIfGp_event_reset();
endDemoMode();
}
} else {
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
procBottleGet_init();
} else {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
@@ -527,7 +527,7 @@ BOOL daPy_lk_c::procBottleSwing() {
}
}
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m35A0) {
if (mProcVar0.m3570 == 0 && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
if (mProcVar6.m3570 == 0 && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
checkNextMode(1);
}
}
@@ -547,8 +547,8 @@ BOOL daPy_lk_c::procBottleGet_init() {
);
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK1000_e);
m3628 = fpcM_ERROR_PROCESS_ID_e;
mProcVar0.m3570 = 0;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar0.m3570, 0);
mProcVar6.m3570 = 0;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar6.m3570, 0);
if (mEquipItem == dItem_FOREST_WATER_e) {
m32F0.makeEmitter(dPa_name::ID_AK_JN_FORESTWATER00, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
}
+2 -2
View File
@@ -246,7 +246,7 @@ BOOL daPy_lk_c::procBowSubject_init() {
}
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, m_HIO->mBasic.m.field_0xC);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_BOW_AIM_e);
@@ -301,7 +301,7 @@ BOOL daPy_lk_c::procBowMove() {
}
if (!checkNextMode(0)) {
f32 fVar1 = -1.0f;
if (std::fabsf(mVelocity) < 0.001f) {
if (std::fabsf(mNormalSpeed) < 0.001f) {
onModeFlg(ModeFlg_00000001);
if (mDirection != DIR_RIGHT) {
mDirection = DIR_RIGHT;
+29 -28
View File
@@ -13,6 +13,7 @@
#include "d/dolzel.h" // IWYU pragma: keep
#include "d/actor/d_a_player_main.h"
#include "d/actor/d_a_player_HIO.h"
#include "d/d_s_play.h"
/* 80135B50-80135B74 .text getClimbMoveAnmSpeed__9daPy_lk_cFv */
f32 daPy_lk_c::getClimbMoveAnmSpeed() {
@@ -210,7 +211,7 @@ void daPy_lk_c::checkBgClimbMove() {
/* 80136588-801365F4 .text procClimbUpStart_init_sub__9daPy_lk_cFv */
void daPy_lk_c::procClimbUpStart_init_sub() {
setSingleMoveAnime(ANM_LADDERUPST, m_HIO->mLadder.m.field_0x4, 0.0f, -1, m_HIO->mLadder.m.field_0x8);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
m34C2 = 4;
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK10000_e);
}
@@ -220,7 +221,7 @@ BOOL daPy_lk_c::procClimbUpStart_init() {
commonProcInit(daPyProc_CLIMB_UP_START_e);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
if (mEquipItem == daPyItem_NONE_e) {
if (checkEquipAnime()) {
@@ -230,7 +231,7 @@ BOOL daPy_lk_c::procClimbUpStart_init() {
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m3598 = 0.0f;
}
f32 fVar2 = cM_ssin(m352C);
@@ -239,7 +240,7 @@ BOOL daPy_lk_c::procClimbUpStart_init() {
current.pos.z = m3724.z + 25.0f * fVar1;
shape_angle.y = m352C + 0x8000;
current.angle.y = shape_angle.y;
m34D4 = 0;
mProcVar2.m34D4 = 0;
return true;
}
@@ -249,7 +250,7 @@ BOOL daPy_lk_c::procClimbUpStart() {
return true;
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (checkNoUpperAnime()) {
procLadderUpStart_init_sub();
}
@@ -258,9 +259,9 @@ BOOL daPy_lk_c::procClimbUpStart() {
m34C2 = 5;
if (frameCtrl.getRate() < 0.01f) {
dComIfGp_setDoStatus(dActStts_LET_GO_e);
if (m34D4 == 0) {
if (mProcVar2.m34D4 == 0) {
setLadderFootSe();
m34D4 = 1;
mProcVar2.m34D4 = 1;
}
if (doTrigger()) {
m34C2 = 0;
@@ -281,7 +282,7 @@ BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) {
commonProcInit(daPyProc_CLIMB_DOWN_START_e);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
deleteEquipItem(TRUE);
setSingleMoveAnime(ANM_LADDERDWST, m_HIO->mLadder.m.field_0x14, 30.0f, -1, 3.0f);
@@ -289,11 +290,11 @@ BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) {
setOldRootQuaternion(0, -0x8000, 0);
shape_angle.y = param_0 + 0x8000;
current.angle.y = shape_angle.y;
current.pos.x = current.pos.x - 35.0f * cM_ssin(param_0);
current.pos.y = current.pos.y - 20.0f;
current.pos.z = current.pos.z - 35.0f * cM_scos(param_0);
current.pos.x -= (35.0f + DEMO_SELECT(REG4_F(11), 0.0f)) * cM_ssin(param_0);
current.pos.y -= (20.0f + DEMO_SELECT(REG4_F(10), 0.0f));
current.pos.z -= (35.0f + DEMO_SELECT(REG4_F(11), 0.0f)) * cM_scos(param_0);
m35E0 = 43.67353f;
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
return true;
}
@@ -332,14 +333,14 @@ BOOL daPy_lk_c::procClimbMoveUpDown_init(int param_0) {
dVar3 *= -1.0f;
}
if (param_0 != 0) {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
if (mDirection == DIR_FORWARD) {
dVar2 = ANM_LADDERLTOR;
} else {
dVar2 = ANM_LADDERRTOL;
}
} else {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
if (mDirection == DIR_FORWARD) {
dVar2 = ANM_LADDERRTOL;
} else {
@@ -355,9 +356,9 @@ BOOL daPy_lk_c::procClimbMoveUpDown_init(int param_0) {
m34C2 = 7;
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
m34D0 = 1;
mProcVar0.m34D0 = 1;
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK10000_e);
return true;
}
@@ -374,11 +375,11 @@ BOOL daPy_lk_c::procClimbMoveUpDown() {
m34C2 = 0;
procFall_init(1, m_HIO->mWallCatch.m.field_0x54);
} else if (std::fabsf(mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) < 0.01f) {
if (m34D0 != 0) {
m34D0 = 0;
if (mProcVar0.m34D0 != 0) {
mProcVar0.m34D0 = 0;
setLadderFootSe();
} else {
changeClimbMoveProc(mProcVar0.m3570);
changeClimbMoveProc(mProcVar6.m3570);
}
} else {
f32 dVar2 = getLadderMoveAnmSpeed();
@@ -398,9 +399,9 @@ BOOL daPy_lk_c::procClimbMoveSide_init(int param_0) {
dVar4 = getClimbMoveAnmSpeed();
commonProcInit(daPyProc_CLIMB_MOVE_SIDE_e);
m34D4 = m34E8 - shape_angle.y;
mProcVar2.m34D4 = m34E8 - shape_angle.y;
m34C2 = 7;
mProcVar0.m3570 = param_0;
mProcVar6.m3570 = param_0;
if (param_0 != 0) {
dVar2 = ANM_FCLIMBSLIDELUP;
if (mDirection == DIR_RIGHT) {
@@ -421,9 +422,9 @@ BOOL daPy_lk_c::procClimbMoveSide_init(int param_0) {
);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
m34D0 = 1;
mProcVar0.m34D0 = 1;
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK10000_e);
cXyz local_38 = mRightHandPos - mLeftHandPos;
dVar4 = local_38.absXZ();
@@ -443,11 +444,11 @@ BOOL daPy_lk_c::procClimbMoveSide() {
m34C2 = 0;
procFall_init(1, m_HIO->mWallCatch.m.field_0x54);
} else if (std::fabsf(mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) < 0.01f) {
if (m34D0 != 0) {
m34D0 = 0;
if (mProcVar0.m34D0 != 0) {
mProcVar0.m34D0 = 0;
setLadderFootSe();
} else {
changeClimbMoveProc(mProcVar0.m3570);
changeClimbMoveProc(mProcVar6.m3570);
}
} else {
f32 dVar5 = getClimbMoveAnmSpeed();
@@ -458,8 +459,8 @@ BOOL daPy_lk_c::procClimbMoveSide() {
cXyz local_28 = mRightHandPos - mLeftHandPos;
dVar5 = local_28.absXZ();
f32 fVar1 = std::fabsf(dVar5 - m35A0) * m_HIO->mLadder.m.field_0x40;
f32 fVar2 = fVar1 * cM_ssin(m34D4);
current.pos.y += fVar1 * cM_scos(m34D4);
f32 fVar2 = fVar1 * cM_ssin(mProcVar2.m34D4);
current.pos.y += fVar1 * cM_scos(mProcVar2.m34D4);
current.pos.x += fVar2 * cM_scos(shape_angle.y);
current.pos.z -= fVar2 * cM_ssin(shape_angle.y);
m35A0 = dVar5;
+52 -54
View File
@@ -19,7 +19,7 @@
/* 801387A4-801387EC .text getCrawlMoveAnmSpeed__9daPy_lk_cFv */
f32 daPy_lk_c::getCrawlMoveAnmSpeed() {
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
return getAnmSpeedStickRate(0.5f, 2.0f);
}
return getAnmSpeedStickRate(m_HIO->mCrouch.m.field_0x34, m_HIO->mCrouch.m.field_0x30);
@@ -39,21 +39,21 @@ void daPy_lk_c::setCrawlMoveDirectionArrow() {
u8 direction = 0;
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
BOOL bVar = cLib_distanceAngleS(fopCamM_GetAngleY(cam), shape_angle.y) > 0x4000;
if (mProcVar0.m3570 & 4) {
if (mProcVar6.m3570 & 4) {
if (!bVar) {
direction |= 1;
} else {
direction |= 4;
}
}
if (mProcVar0.m3570 & 8) {
if (mProcVar6.m3570 & 8) {
if (!bVar) {
direction |= 4;
} else {
direction |= 1;
}
}
if (mProcVar0.m3570 & 1) {
if (mProcVar6.m3570 & 1) {
if (shape_angle.y == current.angle.y) {
if (!bVar) {
direction |= 8;
@@ -89,7 +89,6 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) {
cXyz sp40;
cXyz sp34;
cXyz sp28;
f32 spC;
s16 spA;
s16 sp8;
f32 temp_f31 = cM_ssin(current.angle.y);
@@ -142,6 +141,7 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) {
}
f32 x1 = param_1->x - (75.0f * temp_f31);
f32 y1 = param_1->z - (75.0f * temp_f30);
f32 spC;
if (cM3d_Len2dSqPntAndSegLine(
0.5f * (sp34.x + sp28.x),
0.5f * (sp34.z + sp28.z),
@@ -208,24 +208,22 @@ void daPy_lk_c::crawlBgCheck(cXyz* param_0, cXyz* param_1) {
}
/* 801390B8-801392BC .text checkCrawlSideWall__9daPy_lk_cFP4cXyzP4cXyzP4cXyzP4cXyzPsPs */
BOOL daPy_lk_c::checkCrawlSideWall(
cXyz* param_1, cXyz* param_2, cXyz* param_3, cXyz* param_4, s16* param_5, s16* param_6
) {
BOOL daPy_lk_c::checkCrawlSideWall(cXyz* param_1, cXyz* param_2, cXyz* param_3, cXyz* param_4, s16* param_5, s16* param_6) {
cXyz local_78;
cXyz local_90;
mLinkLinChk.Set(param_1, param_2, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
*param_3 = mLinkLinChk.GetCross();
cM3dGPla* pfVar1 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_5 = cM_atan2s(pfVar1->GetNP()->x, pfVar1->GetNP()->z);
local_90 = *param_3 + (pfVar1->mNormal * 75.0f);
cM3dGPla* plane = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_5 = cM_atan2s(plane->GetNP()->x, plane->GetNP()->z);
local_90 = *param_3 + (plane->mNormal * 75.0f);
local_78 = (local_90 + *param_3) * 0.5f;
mLinkLinChk.Set(&local_78, &local_90, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
*param_4 = mLinkLinChk.GetCross();
pfVar1 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_6 = cM_atan2s(pfVar1->GetNP()->x, pfVar1->GetNP()->z);
plane = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_6 = cM_atan2s(plane->GetNP()->x, plane->GetNP()->z);
cXyz local_9c = *param_3 - *param_4;
f32 temp_f31 = local_9c.abs2XZ();
if (cLib_distanceAngleS(*param_5, *param_6) > 0x7F00 && temp_f31 < 5625.0f && temp_f31 > 3600.0f) {
@@ -255,7 +253,7 @@ void daPy_lk_c::setDoStatusCrawl() {
}
}
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e) &&
(mCurProc != daPyProc_CRAWL_MOVE_e || mProcVar0.m3570 == 0))
(mCurProc != daPyProc_CRAWL_MOVE_e || mProcVar6.m3570 == 0))
{
setBodyAngleToCamera();
if (mBodyAngle.x > 0) {
@@ -278,7 +276,7 @@ BOOL daPy_lk_c::procCrawlStart_init() {
m_HIO->mCrouch.m.field_0x6,
m_HIO->mCrouch.m.field_0x2C
);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
m35A0 = 1.0f / (m_HIO->mCrouch.m.field_0x28 - m_HIO->mCrouch.m.field_0x24);
m35E4 = 0.0f;
@@ -355,7 +353,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
onResetFlg0(daPyRFlg0_CRAWL_AUTO_MOVE);
}
m35A0 = -1.0f;
mProcVar0.m3570 = var_r29 ^ 1;
mProcVar6.m3570 = var_r29 ^ 1;
shape_angle.x = param_0;
shape_angle.z = param_1;
m35E4 = 1.0f;
@@ -443,8 +441,8 @@ BOOL daPy_lk_c::procCrawlMove() {
((mAnmRatioUnder[UNDER_MOVE0_e]).getAnmTransform())->setFrame(fVar1);
}
}
iVar9 = mProcVar0.m3570;
mProcVar0.m3570 = 0;
iVar9 = mProcVar6.m3570;
mProcVar6.m3570 = 0;
s16 sp0A;
s16 sp08;
@@ -464,15 +462,15 @@ BOOL daPy_lk_c::procCrawlMove() {
if (!bVar5 && (checkCrawlSideWall(&spF4, &spE8, &spD0, &spC4, &sp0A, &sp08) ||
checkCrawlSideWall(&spF4, &spDC, &spC4, &spD0, &sp08, &sp0A)))
{
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
onResetFlg0(daPyRFlg0_CRAWL_AUTO_MOVE);
m370C = ((spD0 + spC4) * 0.5f) - spB8;
m34D4 = sp0A + 0x4000;
mProcVar2.m34D4 = sp0A + 0x4000;
}
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
if (frameCtrl.getRate()) {
cLib_addCalcAngleS(&shape_angle.y, m34D4, 5, 0x1000, 0x800);
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.m34D4, 5, 0x1000, 0x800);
current.angle.y = shape_angle.y;
}
@@ -518,9 +516,9 @@ BOOL daPy_lk_c::procCrawlMove() {
}
}
dVar11 = getCrawlMoveSpeed();
mVelocity = dVar11;
if (mVelocity < 0.0f) {
mVelocity *= -1.0f;
mNormalSpeed = dVar11;
if (mNormalSpeed < 0.0f) {
mNormalSpeed *= -1.0f;
current.angle.y = shape_angle.y + 0x8000;
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_back_offset, &sp88);
crawlBgCheck(&sp88, &sp10C);
@@ -538,12 +536,12 @@ BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) {
commonProcInit(daPyProc_CRAWL_AUTO_MOVE_e);
m370C = *param_1;
m35E4 = 1.0f;
mProcVar0.m3570 = param_0;
m34D0 = 20;
m34D6 = 300;
mProcVar6.m3570 = param_0;
mProcVar0.m34D0 = 20;
mProcVar3.m34D6 = 300;
dComIfGp_setPlayerStatus0(0, daPyStts0_CRAWL_e);
setCrawlMoveDirectionArrow();
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
onResetFlg0(daPyRFlg0_CRAWL_AUTO_MOVE);
for (int i = 0; i < 3; i++) {
mAcchCir[i].SetWallR(9.99f);
@@ -561,7 +559,7 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
onResetFlg0(daPyRFlg0_CRAWL_AUTO_MOVE);
s16 sVar4 = shape_angle.y;
s16 sVar5 = current.angle.y;
if (m34D0 > 0) {
if (mProcVar0.m34D0 > 0) {
if (frameCtrl.checkPass(0.0f) || frameCtrl.checkPass(17.0f)) {
f32 fVar2;
if (frameCtrl.checkPass(0.0f)) {
@@ -572,60 +570,60 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
frameCtrl.setRate(0.0f);
frameCtrl.setFrame(fVar2);
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(fVar2);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
} else if (std::fabsf(frameCtrl.getRate()) < 0.01f) {
mVelocity = 0.0f;
m34D0--;
mNormalSpeed = 0.0f;
mProcVar0.m34D0--;
}
setCrawlMoveDirectionArrow();
setDoStatusCrawl();
shape_angle.y = sVar4;
current.angle.y = sVar5;
} else if (m34D0 == 0) {
} else if (mProcVar0.m34D0 == 0) {
setCrawlMoveDirectionArrow();
if (mStickDistance > 0.05f) {
int direction = getDirectionFromShapeAngle();
f32 fVar2 = cM_ssin(shape_angle.y);
f32 fVar3 = cM_scos(shape_angle.y);
if (direction == DIR_LEFT && (mProcVar0.m3570 & 4)) {
if (direction == DIR_LEFT && (mProcVar6.m3570 & 4)) {
m370C.x += 75.0f * fVar3;
m370C.z -= 75.0f * fVar2;
m34D4 = current.angle.y + 0x4000;
mProcVar2.m34D4 = current.angle.y + 0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
m34D0 = -1;
} else if (direction == DIR_RIGHT && (mProcVar0.m3570 & 8)) {
mProcVar0.m34D0 = -1;
} else if (direction == DIR_RIGHT && (mProcVar6.m3570 & 8)) {
m370C.x -= 75.0f * fVar3;
m370C.z += 75.0f * fVar2;
m34D4 = current.angle.y + -0x4000;
mProcVar2.m34D4 = current.angle.y + -0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
m34D0 = -1;
} else if ((mProcVar0.m3570 & 1) && ((shape_angle.y == current.angle.y && direction == DIR_FORWARD) ||
mProcVar0.m34D0 = -1;
} else if ((mProcVar6.m3570 & 1) && ((shape_angle.y == current.angle.y && direction == DIR_FORWARD) ||
(shape_angle.y != current.angle.y && direction == DIR_BACKWARD)))
{
m370C.x += 75.0f * cM_ssin(current.angle.y);
m370C.z += 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
mProcVar0.m34D0 = -1;
} else if ((shape_angle.y == current.angle.y && direction == DIR_BACKWARD) ||
(shape_angle.y != current.angle.y && direction == DIR_FORWARD))
{
current.angle.y += 0x8000;
m370C.x -= 75.0f * cM_ssin(current.angle.y);
m370C.z -= 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
mProcVar0.m34D0 = -1;
}
if (m34D0 == -1) {
if (mProcVar0.m34D0 == -1) {
dComIfGp_setAdvanceDirection(0);
if (shape_angle.y == current.angle.y) {
frameCtrl.setRate(2.0f);
@@ -643,11 +641,11 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
}
} else {
BOOL bVar1 = true;
if (m34D6 > 0) {
m34D6--;
if (mProcVar3.m34D6 > 0) {
mProcVar3.m34D6--;
}
if (std::fabsf(m35A0) > 0.5f) {
if (cLib_addCalcAngleS(&shape_angle.y, m34D4, 5, 0x480, 0x80)) {
if (cLib_addCalcAngleS(&shape_angle.y, mProcVar2.m34D4, 5, 0x480, 0x80)) {
bVar1 = 0;
}
if (m35A0 < -0.5f) {
@@ -662,12 +660,12 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
if (cLib_distanceAngleS(cM_atan2s(local_28.x, local_28.z), current.angle.y) < 0x6000) {
bVar1 = false;
}
mVelocity = getCrawlMoveSpeed();
if (mVelocity < 0.0f) {
mVelocity *= -1.0f;
mNormalSpeed = getCrawlMoveSpeed();
if (mNormalSpeed < 0.0f) {
mNormalSpeed *= -1.0f;
current.angle.y = shape_angle.y + 0x8000;
}
if (bVar1 != 0 || m34D6 == 0) {
if (bVar1 != 0 || mProcVar3.m34D6 == 0) {
procCrawlMove_init(shape_angle.x, shape_angle.z);
}
}
@@ -711,7 +709,7 @@ BOOL daPy_lk_c::procCrawlEnd_init(int param_1, s16 param_2, s16 param_3) {
m3700.x = auStack_58.mTranslate.x;
m3700.y = auStack_58.mTranslate.y;
m3700.z = auStack_58.mTranslate.z;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
shape_angle.x = param_2;
shape_angle.z = param_3;
m35A0 = 1.0f / (m_HIO->mCrouch.m.field_0xE - m_HIO->mCrouch.m.field_0x48);
File diff suppressed because it is too large Load Diff
+84 -72
View File
@@ -189,16 +189,16 @@ BOOL daPy_lk_c::procFanSwing_init() {
m_HIO->mItem.mFan.m.field_0x14
);
setFanModel();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
voiceStart(7);
setAtParam(AT_TYPE_FAN_SWING, 1, dCcG_At_Spl_UNK0, dCcG_SE_WOOD, dCcG_AtHitMark_Nrm_e, CUT_TYPE_NONE, 50.0f);
m35EC = m_HIO->mItem.mFan.m.field_0x10;
if (setShapeFanLeaf()) {
m34D0 = 1;
mProcVar0.m34D0 = 1;
seStartOnlyReverb(JA_SE_LK_FAN_PRE_SWING);
dComIfGp_setPlayerStatus1(0, daPyStts1_DEKU_LEAF_FAN_e);
} else {
m34D0 = 0;
mProcVar0.m34D0 = 0;
}
return true;
}
@@ -223,7 +223,7 @@ BOOL daPy_lk_c::procFanSwing() {
return true;
}
if (frameCtrl.checkPass(4.0f) && m34D0 != 0) {
if (frameCtrl.checkPass(4.0f) && mProcVar0.m34D0 != 0) {
if (mFanSwingCb.getEmitter() != NULL) {
mFanSwingCb.deleteCallBack();
}
@@ -233,19 +233,19 @@ BOOL daPy_lk_c::procFanSwing() {
if (frameCtrl.getFrame() < 22.0f) {
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mMove.m.field_0x24,
m_HIO->mMove.m.field_0x1C,
m_HIO->mMove.m.field_0x20
);
} else if (mProcVar0.m3570 == 0) {
if (m34D0 != 0) {
} else if (mProcVar6.m3570 == 0) {
if (mProcVar0.m34D0 != 0) {
if (!checkHeavyStateOn() &&
(!mAcch.ChkGroundHit() || checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) ||
!dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd) || !dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd)))
{
mVelocity = 10.0f;
mNormalSpeed = 10.0f;
current.angle.y = shape_angle.y + 0x8000;
if (mCurrAttributeCode == dBgS_Attr_ICE_e) {
m36A0.x += 10.0f * cM_ssin(current.angle.y);
@@ -283,12 +283,12 @@ BOOL daPy_lk_c::procFanSwing() {
if (!strcmp(dComIfGp_getStartStageName(), "Adanmae")) {
dComIfGp_particle_setP1(dPa_name::ID_AK_SN_VOLCANICASHESFAN00, &local_48, &shape_angle);
}
dPa_control_c::mSmokeEcallback.onWindOff();
dPa_control_c::getSmokeEcallback()->onWindOff();
int iStack_84;
pJVar5 = dComIfGp_particle_setSimpleLand(
attrib_code, &local_48, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_84, 0x17
);
dPa_control_c::mSmokeEcallback.offWindOff();
dPa_control_c::getSmokeEcallback()->offWindOff();
if (pJVar5) {
csXyz local_80;
local_80.y = shape_angle.y + 0x8000;
@@ -311,14 +311,14 @@ BOOL daPy_lk_c::procFanSwing() {
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
}
voiceStart(1);
mProcVar0.m3570 = 1;
} else if (cLib_addCalc(&mVelocity, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) {
mProcVar6.m3570 = 1;
} else if (cLib_addCalc(&mNormalSpeed, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) {
resetFootEffect();
}
m35EC = frameCtrl.getFrame();
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
checkNextMode(0);
}
@@ -343,33 +343,30 @@ BOOL daPy_lk_c::procFanGlide_init(int param_0) {
setParachuteFanModel(fVar1);
m3600 = 0.0f;
m3604 = 0.0f;
m34D0 = 0;
m34D4 = 0;
m34D6 = 0;
m34D8 = 0;
mProcVar0.m3570 = 0;
m34DA = 0;
mProcVar0.m34D0 = 0;
mProcVar2.m34D4 = 0;
mProcVar3.m34D6 = 0;
mProcVar4.m34D8 = 0;
mProcVar6.m3570 = 0;
mProcVar5.m34DA = 0;
m3730 = cXyz::Zero;
voiceStart(5);
seStartOnlyReverb(JA_SE_LK_FAN_CHUTE_OPEN);
m3574 = m_HIO->mItem.mFan.m.field_0x8;
mProcVar7.m3574 = m_HIO->mItem.mFan.m.field_0x8;
if (!checkHeavyStateOn()) {
dComIfGp_setItemMagicCount(-1);
}
dComIfGp_setPlayerStatus1(0, daPyStts1_DEKU_LEAF_FLY_e);
m34D2 = m_HIO->mItem.mFan.m.field_0xA;
mProcVar1.m34D2 = m_HIO->mItem.mFan.m.field_0xA;
return true;
}
/* 8014CB94-8014D778 .text procFanGlide__9daPy_lk_cFv */
BOOL daPy_lk_c::procFanGlide() {
cXyz local_60;
cXyz local_54;
cXyz local_48;
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
if ((int)m34D2 != 0) {
m34D2--;
if ((int)mProcVar1.m34D2 != 0) {
mProcVar1.m34D2--;
}
if (frameCtrl.checkPass(4.0f)) {
JPABaseEmitter* emitter = dComIfGp_particle_setP1(dPa_name::ID_AK_JN_LEAFPARACHUTE00, &current.pos);
@@ -377,53 +374,64 @@ BOOL daPy_lk_c::procFanGlide() {
emitter->setGlobalRTMatrix(mpCLModel->getAnmMtx(0xf));
}
}
if (frameCtrl.getRate() < 0.01f && mProcVar0.m3570 == 0 && m32E4.getEmitter() == NULL) {
if (frameCtrl.getRate() < 0.01f && mProcVar6.m3570 == 0 && m32E4.getEmitter() == NULL) {
m32E4.makeEmitter(dPa_name::ID_AK_JN_LEAFPARACHUTE01, mpCLModel->getAnmMtx(0xf), &current.pos, NULL);
}
if (frameCtrl.getFrame() > 2.0f || mProcVar0.m3570 != 0) {
if (frameCtrl.getFrame() > 2.0f || mProcVar6.m3570 != 0) {
if (mAcch.ChkGroundHit()) {
#if VERSION == VERSION_DEMO
if (!checkHeavyStateOn()) {
return procLand_init(m_HIO->mItem.mFan.m.field_0x50, 1);
} else {
return changeLandProc(m_HIO->mItem.mFan.m.field_0x50);
}
#else
if (checkHeavyStateOn()) {
return changeLandProc(m_HIO->mItem.mFan.m.field_0x50);
} else {
return procLand_init(m_HIO->mItem.mFan.m.field_0x50, 1);
}
#endif
} else if (checkJumpFlower() || checkJumpRideShip()) {
return true;
}
if (m3280.getEmitter() != NULL) {
if ((int)m34DA == 0) {
if ((int)mProcVar5.m34DA == 0) {
seStartOnlyReverb(JA_SE_LK_FAN_CHUTE_WATER);
m34DA = 6;
mProcVar5.m34DA = 6;
} else {
m34DA--;
mProcVar5.m34DA--;
}
}
if (m34D0 <= 0) {
if (mProcVar0.m34D0 <= 0) {
if (!checkHeavyStateOn()) {
maxFallSpeed = m_HIO->mItem.mFan.m.field_0x38;
if (m34D0 == 0) {
if (mProcVar0.m34D0 == 0) {
speed.y = m_HIO->mItem.mFan.m.field_0x40;
mVelocity = m_HIO->mItem.mFan.m.field_0x48;
mNormalSpeed = m_HIO->mItem.mFan.m.field_0x48;
} else {
speed.y = m_HIO->mItem.mFan.m.field_0x44;
}
}
m34D0 = 1;
mProcVar0.m34D0 = 1;
} else {
if (!dComIfGp_event_runCheck()) {
m3574--;
if (m3574 == 0 && dComIfGs_getMagic() >= 1) {
#if VERSION > VERSION_DEMO
if (!dComIfGp_event_runCheck())
#endif
{
mProcVar7.m3574--;
if (mProcVar7.m3574 == 0 && dComIfGs_getMagic() >= 1) {
dComIfGp_setItemMagicCount(-1);
m3574 = m_HIO->mItem.mFan.m.field_0x8;
mProcVar7.m3574 = m_HIO->mItem.mFan.m.field_0x8;
}
}
if (m34D2 == 0) {
if (mProcVar1.m34D2 == 0) {
dComIfGp_setDoStatus(dActStts_CANCEL_e);
}
if ((m34D2 == 0 && (doTrigger() || cancelTrigger())) || (dComIfGs_getMagic() < 1 && m3574 == 0)) {
if ((mProcVar1.m34D2 == 0 && (doTrigger() || cancelTrigger())) || (dComIfGs_getMagic() < 1 && mProcVar7.m3574 == 0)) {
m3688 = current.pos;
m35F0 = m3688.y;
seStartOnlyReverb(JA_SE_LK_FAN_CHUTE_CLOSE);
@@ -436,7 +444,7 @@ BOOL daPy_lk_c::procFanGlide() {
gravity = m_HIO->mItem.mFan.m.field_0x3C;
maxFallSpeed = m_HIO->mItem.mFan.m.field_0x38;
}
if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && frameCtrl.getRate() < 0.01f && mProcVar0.m3570 == 0) {
if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && frameCtrl.getRate() < 0.01f && mProcVar6.m3570 == 0) {
// Using the Deku Leaf while gliding to create a burst of air around you.
setSingleMoveAnime(
ANM_USEFANB,
@@ -465,27 +473,29 @@ BOOL daPy_lk_c::procFanGlide() {
if (pdVar11->ChkWallHit() &&
(cLib_distanceAngleS(current.angle.y, pdVar11->GetWallAngleY()) > 0x6000))
{
mVelocity *= -1.0f;
mNormalSpeed *= -1.0f;
break;
}
}
}
if (checkHeavyStateOn()) {
cLib_chaseF(&mVelocity, 0.0f, (0.1f * m_HIO->mAutoJump.m.field_0x3C));
cLib_chaseF(&mNormalSpeed, 0.0f, (0.1f * m_HIO->mAutoJump.m.field_0x3C));
}
cXyz local_60;
f32 local_64;
dKyw_get_AllWind_vec(&mHeadTopPos, &local_60, &local_64);
int uVar6 = m34E8 - shape_angle.y;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
(m_HIO->mItem.mFan.m.field_0x48 * mStickDistance) * cM_scos(uVar6),
0.5f,
(0.1f + 0.4f * mStickDistance),
0.01f
);
cLib_addCalcAngleS(&m34D4, (512.0f * mStickDistance) * cM_ssin(uVar6), 5, 0x40, 8);
cLib_addCalcAngleS(&mProcVar2.m34D4, (512.0f * mStickDistance) * cM_ssin(uVar6), 5, 0x40, 8);
cXyz local_54;
f32 dVar13;
if (mWindCyl.ChkTgHit()) {
local_54 = *mWindCyl.GetTgRVecP();
@@ -493,11 +503,11 @@ BOOL daPy_lk_c::procFanGlide() {
if (dVar13 > 50.0f) {
local_54 *= (50.0f / dVar13);
}
f32 fVar1 = 1.0f;
dVar13 = 20.0f;
f32 fVar1 = 1.0f;
local_64 = 1.0f;
if (mProcVar0.m3570 == 0) {
mProcVar0.m3570 = 1;
if (mProcVar6.m3570 == 0) {
mProcVar6.m3570 = 1;
setSingleMoveAnime(ANM_USEFANB2, fVar1, 0.0f, -1, m_HIO->mItem.mFan.m.field_0x30);
mpParachuteFanMorf->setAnm(
getItemAnimeResource(LKANM_BCK_FANB2A),
@@ -514,12 +524,14 @@ BOOL daPy_lk_c::procFanGlide() {
if (local_64 >= 1.0f) {
local_64 = 1.0f;
}
local_54.x = local_64 * m_HIO->mItem.mFan.m.field_0x4C * local_60.x;
local_54.y = 0.5f * local_64 * local_60.y;
local_54.z = local_64 * m_HIO->mItem.mFan.m.field_0x4C * local_60.z;
local_54.set(
local_64 * m_HIO->mItem.mFan.m.field_0x4C * local_60.x,
0.5f * local_64 * local_60.y,
local_64 * m_HIO->mItem.mFan.m.field_0x4C * local_60.z
);
dVar13 = 3.0f;
if (mProcVar0.m3570 != 0) {
mProcVar0.m3570 = 0;
if (mProcVar6.m3570 != 0) {
mProcVar6.m3570 = 0;
setSingleMoveAnime(
ANM_USEFANB,
m_HIO->mItem.mFan.m.field_0x20,
@@ -543,11 +555,11 @@ BOOL daPy_lk_c::procFanGlide() {
cLib_addCalc(&m3730.y, local_54.y, 0.5f, dVar13, 1.0f);
cLib_addCalc(&m3730.z, local_54.z, 0.5f, dVar13, 1.0f);
current.pos += m3730;
shape_angle.y = shape_angle.y + m34D4;
shape_angle.y = shape_angle.y + mProcVar2.m34D4;
current.angle.y = shape_angle.y;
f32 sin = cM_ssin(shape_angle.y);
f32 cos = cM_scos(shape_angle.y);
local_48.set(m3730.x * cos - m3730.z * sin, m3730.y, m3730.x * sin + m3730.z * cos);
cXyz local_48(m3730.x * cos - m3730.z * sin, m3730.y, m3730.x * sin + m3730.z * cos);
f32 mult = 1.0f / 50.0f;
f32 f4 = -local_48.x * mult;
@@ -564,21 +576,21 @@ BOOL daPy_lk_c::procFanGlide() {
f3 = -1.0f;
}
int r0 = m34D4 * -8;
s16 r4 = 0x1800 * (f3 + (mNormalSpeed * mult));
int r0 = mProcVar2.m34D4 * -8;
s16 r30 = (r0 + (f4 * 0x1800));
s16 prev = m34F2;
s16 r4 = 0x1800 * (f3 + (mVelocity * mult));
cLib_addCalcAngleS(&m34F2, r4, 5, 0x800, 0x100);
m34E0 = m34E0 + m34D6;
m34E0 = m34E0 + mProcVar3.m34D6;
m34E0 -= (s16)(m34F2 - prev);
m34D6 += ((s16)(m34F2 - prev) >> 1);
if (m34D6 > 0x380) {
m34D6 = 0x380;
} else if (m34D6 < -0x380) {
m34D6 = -0x380;
mProcVar3.m34D6 += ((s16)(m34F2 - prev) >> 1);
if (mProcVar3.m34D6 > 0x380) {
mProcVar3.m34D6 = 0x380;
} else if (mProcVar3.m34D6 < -0x380) {
mProcVar3.m34D6 = -0x380;
}
cLib_addCalcAngleS(&m34E0, 0, 5, 0x80, 0x30);
cLib_addCalcAngleS(&m34D6, 0, 5, 0x50, 0x30);
cLib_addCalcAngleS(&mProcVar3.m34D6, 0, 5, 0x50, 0x30);
if (m34E0 > 0x2000) {
m34E0 = 0x2000;
} else if (m34E0 < -0x2000) {
@@ -586,16 +598,16 @@ BOOL daPy_lk_c::procFanGlide() {
}
prev = m34F4;
cLib_addCalcAngleS(&m34F4, r30, 5, 0x800, 0x100);
m34E4 += m34D8;
m34E4 += mProcVar4.m34D8;
m34E4 -= (s16)(prev - m34F4);
m34D8 += (s16)(prev - m34F4);
if (m34D8 > 0x380) {
m34D8 = 0x380;
} else if (m34D8 < -0x380) {
m34D8 = -0x380;
mProcVar4.m34D8 += (s16)(prev - m34F4);
if (mProcVar4.m34D8 > 0x380) {
mProcVar4.m34D8 = 0x380;
} else if (mProcVar4.m34D8 < -0x380) {
mProcVar4.m34D8 = -0x380;
}
cLib_addCalcAngleS(&m34E4, 0, 5, 0x80, 0x30);
cLib_addCalcAngleS(&m34D8, 0, 5, 0x50, 0x30);
cLib_addCalcAngleS(&mProcVar4.m34D8, 0, 5, 0x50, 0x30);
if (m34E4 > 0x2000) {
m34E4 = 0x2000;
} else if (m34E4 < -0x2000) {
+12 -12
View File
@@ -85,7 +85,7 @@ BOOL daPy_lk_c::procFoodThrow_init() {
}
}
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
daPy_matAnm_c::offMabaFlg();
setSingleMoveAnime(
@@ -98,8 +98,8 @@ BOOL daPy_lk_c::procFoodThrow_init() {
keepItemData();
if (checkSpecialDemoMode()) {
mProcVar0.m3570 = 6;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar0.m3570, 0);
mProcVar6.m3570 = 6;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar6.m3570, 0);
}
initShipRideUseItem(temp, 2);
@@ -176,7 +176,7 @@ BOOL daPy_lk_c::procFoodSet_init() {
commonProcInit(daPyProc_FOOD_SET_e);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(
ANM_SETHYOINOMI,
m_HIO->mItem.mFood.m.field_0x10,
@@ -188,12 +188,12 @@ BOOL daPy_lk_c::procFoodSet_init() {
setHyoiModel();
if (checkSpecialDemoMode()) {
mProcVar0.m3570 = 1;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar0.m3570, 0);
mProcVar6.m3570 = 1;
dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", &mProcVar6.m3570, 0);
}
initShipRideUseItem(temp, 2);
m34D0 = 1 * 30;
mProcVar0.m34D0 = 1 * 30;
return TRUE;
}
@@ -211,17 +211,17 @@ BOOL daPy_lk_c::procFoodSet() {
if (std::abs(frameCtrl.getRate()) < 0.01f) {
if (!checkSpecialDemoMode()) {
dComIfGp_evmng_cutEnd(mStaffIdx);
} else if (m34D0 < 0) {
} else if (mProcVar0.m34D0 < 0) {
dComIfGp_event_reset();
deleteEquipItem(FALSE);
fpc_ProcID playerPID = fopAcM_GetID(this);
dCam_getBody()->EndEventCamera(playerPID);
endDemoMode();
} else if (m34D0 == 0) {
m34D0 = -1;
} else if (mProcVar0.m34D0 == 0) {
mProcVar0.m34D0 = -1;
frameCtrl.setRate(-m_HIO->mItem.mFood.m.field_0x10);
} else if (m34D0 > 0) {
m34D0--;
} else if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
}
}
+41 -38
View File
@@ -76,7 +76,7 @@ void daPy_lk_c::setGrabItemPos() {
if (grab_actor != NULL) {
if (mCurProc == daPyProc_GRAB_READY_e) {
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(shape_angle.y - m34D4);
mDoMtx_stack_c::YrotM(shape_angle.y - mProcVar2.m34D4);
mDoMtx_stack_c::multVec(&m370C, &grab_actor->current.pos);
} else {
s8 sVar2 = current.roomNo;
@@ -306,7 +306,7 @@ void daPy_lk_c::initGrabNextMode() {
/* 8013B56C-8013B6F4 .text procGrabReady_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procGrabReady_init() {
commonProcInit(daPyProc_GRAB_READY_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
if (mEquipItem == daPyItem_NONE_e) {
if (checkEquipAnime()) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
@@ -318,11 +318,11 @@ BOOL daPy_lk_c::procGrabReady_init() {
m_HIO->mGrab.m.field_0x0,
m_HIO->mGrab.m.field_0x28
);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
if ((checkPowerGloveEquip() ||
!fopAcM_CheckStatus(mpAttnActorA, fopAcStts_UNK10000_e)) &&
@@ -341,7 +341,7 @@ BOOL daPy_lk_c::procGrabReady_init() {
}
shape_angle.y = fopAcM_searchActorAngleY(this, mpAttnActorA);
current.angle.y = shape_angle.y;
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
m370C = mpAttnActorA->current.pos - m3748;
return true;
}
@@ -353,9 +353,9 @@ BOOL daPy_lk_c::procGrabReady() {
if (grab_actor == NULL && mActorKeepRope.getActor() == NULL) {
return checkNextMode(0);
}
if (mProcVar0.m3570 == 2 && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
if (mProcVar6.m3570 == 2 && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
procGrabUp_init();
} else if (mProcVar0.m3570 == 1 && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
} else if (mProcVar6.m3570 == 1 && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
if (grab_actor != NULL) {
if (fopAcM_GetName(grab_actor) == PROC_BOKO) {
mEquipItem = daPyItem_BOKO_e;
@@ -377,7 +377,7 @@ BOOL daPy_lk_c::procGrabReady() {
m_HIO->mGrab.m.field_0x10,
m_HIO->mGrab.m.field_0x44
);
mProcVar0.m3570 = 2;
mProcVar6.m3570 = 2;
} else {
procGrabUp_init();
}
@@ -386,7 +386,7 @@ BOOL daPy_lk_c::procGrabReady() {
} else {
checkNextMode(0);
}
} else if (mProcVar0.m3570 == 0 && checkNoUpperAnime()) {
} else if (mProcVar6.m3570 == 0 && checkNoUpperAnime()) {
setSingleMoveAnime(
ANM_GRABP,
m_HIO->mGrab.m.field_0x20,
@@ -394,7 +394,7 @@ BOOL daPy_lk_c::procGrabReady() {
m_HIO->mGrab.m.field_0x0,
m_HIO->mGrab.m.field_0x28
);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
}
return true;
}
@@ -477,8 +477,8 @@ BOOL daPy_lk_c::procGrabMiss_init() {
m_HIO->mGrab.m.field_0x4,
m_HIO->mGrab.m.field_0x44
);
mProcVar0.m3570 = 0;
m34D0 = m_HIO->mGrab.m.field_0x6;
mProcVar6.m3570 = 0;
mProcVar0.m34D0 = m_HIO->mGrab.m.field_0x6;
dComIfGs_onEventBit(dSv_event_flag_c::UNK_4020);
return true;
}
@@ -488,10 +488,10 @@ BOOL daPy_lk_c::procGrabMiss() {
if (mActorKeepRope.getActor() == NULL) {
checkNextMode(0);
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
setSingleMoveAnime(
ANM_GRABP,
@@ -500,7 +500,7 @@ BOOL daPy_lk_c::procGrabMiss() {
m_HIO->mGrab.m.field_0x8,
m_HIO->mGrab.m.field_0x54
);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
freeGrabItem();
}
}
@@ -517,7 +517,9 @@ BOOL daPy_lk_c::procGrabThrow_init(int param_0) {
if (mCurProc == daPyProc_GRAB_THROW_e) {
return false;
}
commonProcInit(daPyProc_GRAB_THROW_e);
if (fopAcM_CheckStatus(mActorKeepGrab.getActor(), fopAcStts_UNK10000_e)) {
setSingleMoveAnime(
ANM_GRABRE,
@@ -526,7 +528,7 @@ BOOL daPy_lk_c::procGrabThrow_init(int param_0) {
m_HIO->mGrab.m.field_0x1C,
m_HIO->mGrab.m.field_0xA0
);
m3574 = 0;
mProcVar7.m3574 = 0;
} else {
setSingleMoveAnime(
ANM_GRABTHROW,
@@ -535,11 +537,12 @@ BOOL daPy_lk_c::procGrabThrow_init(int param_0) {
m_HIO->mGrab.m.field_0xA,
m_HIO->mGrab.m.field_0x64
);
m3574 = 1;
mProcVar7.m3574 = 1;
}
m35A0 = mVelocity;
m35A0 = mNormalSpeed;
dComIfGp_clearPlayerStatus1(0, daPyStts1_UNK40000_e);
mProcVar0.m3570 = param_0;
mProcVar6.m3570 = param_0;
return true;
}
@@ -549,9 +552,9 @@ BOOL daPy_lk_c::procGrabThrow() {
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
cLib_addCalc(
&mVelocity, 0.0f, m_HIO->mMove.m.field_0x24, m_HIO->mMove.m.field_0x1C, m_HIO->mMove.m.field_0x20
&mNormalSpeed, 0.0f, m_HIO->mMove.m.field_0x24, m_HIO->mMove.m.field_0x1C, m_HIO->mMove.m.field_0x20
);
if (m3574 == 0) {
if (mProcVar7.m3574 == 0) {
if (frameCtrl.getRate() < 0.01f) {
setSingleMoveAnime(
ANM_GRABTHROW,
@@ -560,7 +563,7 @@ BOOL daPy_lk_c::procGrabThrow() {
m_HIO->mGrab.m.field_0xA,
m_HIO->mGrab.m.field_0x64
);
m3574 = 1;
mProcVar7.m3574 = 1;
}
return true;
}
@@ -581,14 +584,14 @@ BOOL daPy_lk_c::procGrabThrow() {
}
if (frameCtrl.getRate() < 0.01f) {
if (mProcVar0.m3570 != 0) {
mProcVar0.m3570 = 0;
if (mProcVar6.m3570 != 0) {
mProcVar6.m3570 = 0;
setAnimeEquipSword(0);
}
checkNextMode(0);
} else if (frameCtrl.getFrame() > m_HIO->mGrab.m.field_0x60) {
if (mProcVar0.m3570 != 0) {
mProcVar0.m3570 = 0;
if (mProcVar6.m3570 != 0) {
mProcVar6.m3570 = 0;
setAnimeEquipSword(0);
}
checkNextMode(1);
@@ -604,10 +607,10 @@ BOOL daPy_lk_c::procGrabPut_init() {
commonProcInit(daPyProc_GRAB_PUT_e);
if (checkGrabWear()) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
setSingleMoveAnime(ANM_GRABWAIT, m_HIO->mGrab.m.field_0x78, 0.0f, -1, m_HIO->mGrab.m.field_0x7C);
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
setSingleMoveAnime(
ANM_GRABUP,
m_HIO->mGrab.m.field_0x68,
@@ -616,7 +619,7 @@ BOOL daPy_lk_c::procGrabPut_init() {
m_HIO->mGrab.m.field_0x74
);
}
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
if (grab_actor != NULL) {
m370C = grab_actor->current.pos;
@@ -640,9 +643,9 @@ BOOL daPy_lk_c::procGrabPut() {
}
}
if (mProcVar0.m3570 == 1) {
if (mProcVar6.m3570 == 1) {
if (!checkGrabWear()) {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
setSingleMoveAnime(
ANM_GRABUP,
m_HIO->mGrab.m.field_0x68,
@@ -719,12 +722,12 @@ BOOL daPy_lk_c::procGrabWait_init() {
}
m_pbCalc[PART_UPPER_e]->setRatio(2, 0.0f);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m35A0 = 0.0f;
if (m35D8 <= -29.0f) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
return true;
}
@@ -744,8 +747,8 @@ BOOL daPy_lk_c::procGrabWait() {
setSpeedAndAngleNormal(m_HIO->mMove.m.field_0x0);
}
if (m35D8 <= -29.0f) {
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.0f) && mProcVar0.m3570 == 0) {
mProcVar0.m3570 = 1;
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.0f) && mProcVar6.m3570 == 0) {
mProcVar6.m3570 = 1;
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_GRABWAIT) {
seStartMapInfo(JA_SE_LK_BARREL_PUT_ON);
}
@@ -789,7 +792,7 @@ BOOL daPy_lk_c::procGrabHeavyWait_init() {
setActAnimeUpper(LKANM_BCK_GRABWAITB, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
m_pbCalc[PART_UPPER_e]->setRatio(2, 0.0f);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m35A0 = 0.0f;
return true;
}
+24 -24
View File
@@ -178,9 +178,9 @@ BOOL daPy_lk_c::procHammerSideSwing_init() {
m_HIO->mItem.mHam.m.field_0x14
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
voiceStart(1);
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
setBlurPosResource(LKANM__HAMMERSIDE_POS);
setAtParam(AT_TYPE_SKULL_HAMMER, 4, dCcG_At_Spl_UNK0, dCcG_SE_METAL, dCcG_AtHitMark_Nrm_e, CUT_TYPE_HAMMER_SIDESWING, 50.0f);
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_HAMSWINGAA));
@@ -192,20 +192,20 @@ BOOL daPy_lk_c::procHammerSideSwing_init() {
BOOL daPy_lk_c::procHammerSideSwing() {
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mItem.mHam.m.field_0x10) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTREL)) {
@@ -214,11 +214,11 @@ BOOL daPy_lk_c::procHammerSideSwing() {
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -248,11 +248,11 @@ BOOL daPy_lk_c::procHammerFrontSwingReady_init() {
m_HIO->mItem.mHam.m.field_0x28
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
if (checkAttentionLock() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
mProcVar2.m34D4 = m34E8;
}
setAtParam(AT_TYPE_SKULL_HAMMER, 4, dCcG_At_Spl_UNK0, dCcG_SE_METAL, dCcG_AtHitMark_Nrm_e, CUT_TYPE_HAMMER_FRONTSWING, 50.0f);
voiceStart(7);
@@ -270,11 +270,11 @@ BOOL daPy_lk_c::procHammerFrontSwingReady() {
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -295,19 +295,19 @@ BOOL daPy_lk_c::procHammerFrontSwing_init() {
0.0f
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
voiceStart(1);
if (checkAttentionLock() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
mProcVar2.m34D4 = m34E8;
}
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
setBlurPosResource(LKANM__HAMMERFRONT_POS);
mCutType = CUT_TYPE_HAMMER_FRONTSWING;
offResetFlg0(daPyRFlg0_NOT_ATTACKING);
onResetFlg0(daPy_RFLG0(daPyRFlg0_UNK1 | daPyRFlg0_UNK2));
m34D0 = 0;
mProcVar0.m34D0 = 0;
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_HAMSWINGBHITA));
m35EC = m_HIO->mItem.mHam.m.field_0x30;
return true;
@@ -318,10 +318,10 @@ BOOL daPy_lk_c::procHammerFrontSwing() {
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
f32 f1 = mFrameCtrlUnder[UNDER_MOVE0_e].getRate();
if (f1 < 0.01f) {
if (m34D0 == 0) {
if (mProcVar0.m34D0 == 0) {
return procHammerFrontSwingEnd_init();
} else {
m34D0--;
mProcVar0.m34D0--;
}
return true;
}
@@ -358,7 +358,7 @@ BOOL daPy_lk_c::procHammerFrontSwing() {
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(f5);
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f);
m35EC = f5;
m34D0 = 10;
mProcVar0.m34D0 = 10;
setHammerQuake(&mGndChk, &sp08, r26);
return true;
}
@@ -369,11 +369,11 @@ BOOL daPy_lk_c::procHammerFrontSwing() {
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -395,7 +395,7 @@ BOOL daPy_lk_c::procHammerFrontSwingEnd_init() {
m_HIO->mItem.mHam.m.field_0x40
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mCutType = CUT_TYPE_HAMMER_FRONTSWING;
offResetFlg0(daPyRFlg0_NOT_ATTACKING);
return true;
+41 -30
View File
@@ -215,7 +215,7 @@ BOOL daPy_lk_c::procHangStart_init() {
}
commonProcInit(daPyProc_HANG_START_e);
#if VERSION > VERSION_DEMO
mProcVar0.m3570 = sVar3;
mProcVar6.m3570 = sVar3;
#endif
setSingleMoveAnime(
ANM_VJMPCHA,
@@ -227,7 +227,7 @@ BOOL daPy_lk_c::procHangStart_init() {
current.pos = local_1c;
shape_angle.y = m352C + 0x8000;
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
mHangGroundH = mAcch.GetGroundH();
@@ -240,11 +240,22 @@ BOOL daPy_lk_c::procHangStart() {
return true;
}
if (((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) ||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mWallCatch.m.field_0x50)) &&
(mStickDistance > 0.05f || mProcVar0.m3570 != 0))
if (
(mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mWallCatch.m.field_0x50)) &&
(
mStickDistance > 0.05f
#if VERSION > VERSION_DEMO
|| mProcVar6.m3570 != 0
#endif
)
)
{
if (getDirectionFromShapeAngle() == DIR_FORWARD || mProcVar0.m3570 != 0) {
if (
getDirectionFromShapeAngle() == DIR_FORWARD
#if VERSION > VERSION_DEMO
|| mProcVar6.m3570 != 0
#endif
) {
procHangClimb_init(m_HIO->mWallCatch.m.field_0x2C);
}
} else {
@@ -330,7 +341,7 @@ BOOL daPy_lk_c::procHangFallStart_init(cM3dGPla* param_0) {
setSingleMoveAnime(
ANM_HANGING, m_HIO->mHang.m.field_0x4, m_HIO->mHang.m.field_0x8, m_HIO->mHang.m.field_0x0, morf
);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
voiceStart(11);
@@ -379,8 +390,8 @@ BOOL daPy_lk_c::procHangUp_init(int param_0) {
m_HIO->mHang.m.field_0x20
);
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
mProcVar0.m3570 = param_0;
mVelocity = 0.0f;
mProcVar6.m3570 = param_0;
mNormalSpeed = 0.0f;
return true;
}
@@ -394,13 +405,13 @@ BOOL daPy_lk_c::procHangUp() {
return true;
}
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) ||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mHang.m.field_0x1C))
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f ||
mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mHang.m.field_0x1C)
{
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
procHangClimb_init(m_HIO->mWallCatch.m.field_0x2C);
} else if (changeHangMoveProc(mProcVar0.m3570)) {
procHangMove_init(mProcVar0.m3570);
} else if (changeHangMoveProc(mProcVar6.m3570)) {
procHangMove_init(mProcVar6.m3570);
} else {
procHangWait_init();
}
@@ -414,7 +425,7 @@ BOOL daPy_lk_c::procHangWait_init() {
setSingleMoveAnime(ANM_VJMPCHA, 0.0f, m_HIO->mWallCatch.m.field_0x2, -1, 5.0f);
setTextureAnime(9, 0);
mpSeAnmFrameCtrl = NULL;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
return true;
@@ -457,7 +468,7 @@ BOOL daPy_lk_c::procHangMove_init(int param_0) {
}
setSingleMoveAnime(anm, getHangMoveAnmSpeed(), 0.0f, -1, m_HIO->mHang.m.field_0x2C);
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
cXyz local_1c = mLeftHandPos - mRightHandPos;
m35A0 = local_1c.absXZ();
return true;
@@ -483,24 +494,24 @@ BOOL daPy_lk_c::procHangMove() {
m34EC = sVar3;
} else {
cXyz local_64 = mRightHandPos - mLeftHandPos;
float dVar12 = local_64.absXZ();
f32 dVar12 = local_64.absXZ();
if (changeHangMoveProc(4)) {
mVelocity = std::fabsf(dVar12 - m35A0) * m_HIO->mHang.m.field_0x30;
float fVar1 = cM_ssin(shape_angle.y);
float fVar2 = cM_scos(shape_angle.y);
float dVar13 = cM_ssin(current.angle.y);
float dVar11 = cM_scos(current.angle.y);
mNormalSpeed = std::fabsf(dVar12 - m35A0) * m_HIO->mHang.m.field_0x30;
f32 fVar1 = cM_ssin(shape_angle.y);
f32 fVar2 = cM_scos(shape_angle.y);
f32 dVar13 = cM_ssin(current.angle.y);
f32 dVar11 = cM_scos(current.angle.y);
cXyz local_70;
local_70.set(
current.pos.x + (mVelocity * dVar13) - 30.0f * fVar1,
current.pos.x + (mNormalSpeed * dVar13) - 30.0f * fVar1,
current.pos.y - 5.0f,
current.pos.z + (mVelocity * dVar11) - 30.0f * fVar2
current.pos.z + (mNormalSpeed * dVar11) - 30.0f * fVar2
);
cXyz local_7c;
local_7c.set(local_70.x + 60.0f * fVar1, local_70.y, local_70.z + 60.0f * fVar2);
mLinkLinChk.Set(&local_70, &local_7c, this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
} else {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
s16 sVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z) + 0x8000;
@@ -524,13 +535,13 @@ BOOL daPy_lk_c::procHangMove() {
}
} else {
current.pos.x = (mLinkLinChk.GetLinP()->GetEndP()->x - 1.5f * triPla->GetNP()->x) -
(mVelocity * dVar13);
(mNormalSpeed * dVar13);
current.pos.z = (mLinkLinChk.GetLinP()->GetEndP()->z - 1.5f * triPla->GetNP()->z) -
(mVelocity * dVar11);
(mNormalSpeed * dVar11);
}
}
} else {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
}
m35A0 = dVar12;
}
@@ -557,7 +568,7 @@ BOOL daPy_lk_c::procHangClimb_init(f32 param_0) {
m_HIO->mWallCatch.m.field_0x28
);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK200_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
voiceStart(32);
return true;
}
@@ -602,7 +613,7 @@ BOOL daPy_lk_c::procHangWallCatch_init() {
current.pos = local_1c;
shape_angle.y = m352C + 0x8000;
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
return true;
+4 -4
View File
@@ -138,7 +138,7 @@ BOOL daPy_lk_c::checkNextActionHookshotReady() {
} else if (!itemButton() && m355E != 0) {
m355E = 0;
hookshot->setShot();
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
daPy_matAnm_c::offMabaFlg();
seStartOnlyReverb(JA_SE_LK_HS_SHOOT);
voiceStart(41);
@@ -202,7 +202,7 @@ BOOL daPy_lk_c::procHookshotSubject_init() {
commonProcInit(daPyProc_HOOKSHOT_SUBJECT_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setActAnimeUpper(LKANM_BCK_HOOKSHOTWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
setSingleMoveAnime(ANM_ATNLS, 0.0f, 0.0f, -1, m_HIO->mBasic.m.field_0xC);
@@ -283,7 +283,7 @@ BOOL daPy_lk_c::procHookshotMove() {
}
if (!checkNextMode(0)) {
f32 fVar1 = -1.0f;
if (std::fabsf(mVelocity) < 0.001f) {
if (std::fabsf(mNormalSpeed) < 0.001f) {
onModeFlg(ModeFlg_00000001);
if (mDirection != DIR_LEFT) {
mDirection = DIR_LEFT;
@@ -314,7 +314,7 @@ BOOL daPy_lk_c::procHookshotFly_init() {
setSingleMoveAnime(ANM_HOOKSHOTJMP, 1.0f, 0.0f, -1, 0.0f);
mBodyAngle.x = 0;
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m34C2 = 11;
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK10_e);
voiceStart(6);
+20 -20
View File
@@ -94,7 +94,7 @@ int daPy_lk_c::setMoveBGLadderCorrect() {
/* 801333A8-80133414 .text procLadderUpStart_init_sub__9daPy_lk_cFv */
void daPy_lk_c::procLadderUpStart_init_sub() {
setSingleMoveAnime(ANM_LADDERUPST, m_HIO->mLadder.m.field_0x4, 0.0f, -1, m_HIO->mLadder.m.field_0x8);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
m34C2 = 4;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000000_e);
}
@@ -104,7 +104,7 @@ BOOL daPy_lk_c::procLadderUpStart_init() {
commonProcInit(daPyProc_LADDER_UP_START_e);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
if (mEquipItem == daPyItem_NONE_e) {
if (checkEquipAnime()) {
@@ -114,7 +114,7 @@ BOOL daPy_lk_c::procLadderUpStart_init() {
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m3598 = 0.0f;
}
f32 fVar1 = cM_ssin(m352C);
@@ -127,7 +127,7 @@ BOOL daPy_lk_c::procLadderUpStart_init() {
m370C.x = (m3724.x + fVar1 * 20.5f) - fVar2;
m370C.y = m3724.y + 37.5f;
m370C.z = fVar1 + (m3724.z + fVar2 * 20.5f);
m34D4 = 0;
mProcVar2.m34D4 = 0;
return true;
}
@@ -137,7 +137,7 @@ BOOL daPy_lk_c::procLadderUpStart() {
return true;
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (checkNoUpperAnime()) {
procLadderUpStart_init_sub();
}
@@ -146,9 +146,9 @@ BOOL daPy_lk_c::procLadderUpStart() {
m34C2 = 5;
if (frameCtrl.getRate() < 0.01f) {
dComIfGp_setDoStatus(dActStts_LET_GO_e);
if (m34D4 == 0) {
if (mProcVar2.m34D4 == 0) {
setLadderFootSe();
m34D4 = 1;
mProcVar2.m34D4 = 1;
}
if (doTrigger()) {
m34C2 = 0;
@@ -179,7 +179,7 @@ BOOL daPy_lk_c::procLadderUpEnd_init(int param_0) {
m34C2 = 7;
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000000_e);
return true;
@@ -207,7 +207,7 @@ BOOL daPy_lk_c::procLadderUpEnd() {
/* 801337B4-8013384C .text procLadderDownStart_init_sub__9daPy_lk_cFv */
void daPy_lk_c::procLadderDownStart_init_sub() {
setSingleMoveAnime(ANM_LADDERDWST, m_HIO->mLadder.m.field_0x14, 0.0f, -1, m_HIO->mLadder.m.field_0x18);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
m34C2 = 4;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000000_e);
setOldRootQuaternion(0, -0x8000, 0);
@@ -220,7 +220,7 @@ BOOL daPy_lk_c::procLadderDownStart_init() {
commonProcInit(daPyProc_LADDER_DOWN_START_e);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
shape_angle.y = m352C + 0x8000;
current.angle.y = m352C;
@@ -232,7 +232,7 @@ BOOL daPy_lk_c::procLadderDownStart_init() {
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m3598 = 0.0f;
}
f32 fVar1 = cM_ssin(m352C);
@@ -252,7 +252,7 @@ BOOL daPy_lk_c::procLadderDownStart() {
return true;
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (checkNoUpperAnime()) {
procLadderDownStart_init_sub();
}
@@ -328,9 +328,9 @@ BOOL daPy_lk_c::procLadderMove_init(int param_0, int direction, cXyz* param_2) {
daPy_ANM anm;
if (param_0 != 0) {
if (uVar3 != 0) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m370C.x = m370C.x - 2.0f * cM_scos(shape_angle.y);
m370C.z = m370C.z - -2.0f * cM_ssin(shape_angle.y);
}
@@ -340,7 +340,7 @@ BOOL daPy_lk_c::procLadderMove_init(int param_0, int direction, cXyz* param_2) {
anm = ANM_LADDERRTOL;
}
} else {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
if (dVar4 >= 0.0f) {
anm = ANM_LADDERRTOL;
} else {
@@ -360,9 +360,9 @@ BOOL daPy_lk_c::procLadderMove_init(int param_0, int direction, cXyz* param_2) {
m34C2 = 7;
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speedF = 0.0f;
m34D0 = 1;
mProcVar0.m34D0 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000000_e);
return true;
}
@@ -379,11 +379,11 @@ BOOL daPy_lk_c::procLadderMove() {
m34C2 = 0;
procFall_init(1, m_HIO->mWallCatch.m.field_0x54);
} else if (std::fabsf(mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
setLadderFootSe();
} else {
changeLadderMoveProc(mProcVar0.m3570);
changeLadderMoveProc(mProcVar6.m3570);
}
} else {
f32 dVar2 = getLadderMoveAnmSpeed();
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -582,7 +582,7 @@ void daPy_lk_c::setAuraEffect() {
var_f28 = 1.5f;
}
} else {
var_f31 = std::fabsf(mVelocity) / m_HIO->mMove.m.field_0x18;
var_f31 = std::fabsf(mNormalSpeed) / m_HIO->mMove.m.field_0x18;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
@@ -634,7 +634,7 @@ void daPy_lk_c::setWaterRipple() {
}
// Probably fakematch (May use inlines?)
if ((var_r3 && m34D6 != 0) ||
if ((var_r3 && mProcVar3.m34D6 != 0) ||
(
mCurProc != daPyProc_VOMIT_WAIT_e &&
!var_r3 &&
@@ -678,11 +678,11 @@ void daPy_lk_c::setWaterRipple() {
if (checkModeFlg(ModeFlg_SWIM)) {
if (!mSwimTailEcallBack[0].getEnd()) {
mSwimTailEcallBack[0].setSpeedRate(std::fabsf(mVelocity / mMaxNormalSpeed));
mSwimTailEcallBack[0].setSpeedRate(std::fabsf(mNormalSpeed / mMaxNormalSpeed));
}
if (!mSwimTailEcallBack[1].getEnd()) {
mSwimTailEcallBack[1].setSpeedRate(std::fabsf(mVelocity / mMaxNormalSpeed));
mSwimTailEcallBack[1].setSpeedRate(std::fabsf(mNormalSpeed / mMaxNormalSpeed));
}
cXyz local_1c;
cMtx_multVec(mpCLModel->getAnmMtx(15), &wave_offset, &local_1c);
@@ -1018,9 +1018,9 @@ void daPy_lk_c::setFootEffect() {
cXyz sp44 = m370C;
mDoMtx_multVecZero(mpCLModel->getAnmMtx(0x1), &m370C);
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
current.angle.y = shape_angle.y - 0x4000;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
} else {
cXyz sp38 = m370C - sp44;
current.angle.y = cM_atan2s(sp38.x, sp38.z);
+22 -22
View File
@@ -20,7 +20,7 @@ BOOL daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel pp_label) {
if (checkPowerGloveEquip()) {
cLib_onBit<dBgW::PushPullLabel>(pp_label, dBgW::PPLABEL_HEAVY);
}
if (mProcVar0.m3570) {
if (mProcVar6.m3570) {
cLib_onBit<dBgW::PushPullLabel>(pp_label, dBgW::PPLABEL_UNK4);
}
}
@@ -31,12 +31,12 @@ BOOL daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel pp_label) {
}
if (pp_label != dBgW::PPLABEL_NONE) {
if (pp_actor->shape_angle.y != m34D4) {
if (pp_actor->shape_angle.y != mProcVar2.m34D4) {
cXyz local_28 = current.pos - m370C;
mDoMtx_stack_c::transS(m370C);
mDoMtx_stack_c::YrotM(pp_actor->shape_angle.y - m34D4);
mDoMtx_stack_c::YrotM(pp_actor->shape_angle.y - mProcVar2.m34D4);
mDoMtx_stack_c::multVec(&local_28, &current.pos);
s16 var_r28 = pp_actor->shape_angle.y - m34D4;
s16 var_r28 = pp_actor->shape_angle.y - mProcVar2.m34D4;
shape_angle.y += var_r28;
current.angle.y += var_r28;
}
@@ -44,15 +44,15 @@ BOOL daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel pp_label) {
current.pos.z += pp_actor->current.pos.z - m370C.z;
}
m370C = pp_actor->current.pos;
m34D4 = pp_actor->shape_angle.y;
mProcVar2.m34D4 = pp_actor->shape_angle.y;
return TRUE;
}
/* 80151644-801517C0 .text procPushPullWait_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procPushPullWait_init(int param_0) {
commonProcInit(daPyProc_PUSH_PULL_WAIT_e);
mProcVar0.m3570 = param_0;
mVelocity = 0.0f;
mProcVar6.m3570 = param_0;
mNormalSpeed = 0.0f;
if (param_0 == 0 || mEquipItem == daPyItem_NONE_e) {
if (checkEquipAnime()) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
@@ -61,15 +61,15 @@ BOOL daPy_lk_c::procPushPullWait_init(int param_0) {
setSingleMoveAnime(
ANM_WAITPUSHPULL, m_HIO->mPushpull.m.field_0x0, 0.0f, -1, m_HIO->mPushpull.m.field_0x4
);
m34D6 = 0;
mProcVar3.m34D6 = 0;
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
m3598 = 0.0f;
m34D6 = 1;
mProcVar3.m34D6 = 1;
}
if (param_0 != 0) {
m34D4 = m352C + 0x8000;
mProcVar2.m34D4 = m352C + 0x8000;
m370C.x = m3724.x + 40.0f * cM_ssin(m352C);
m370C.y = current.pos.y;
m370C.z = m3724.z + 40.0f * cM_scos(m352C);
@@ -82,26 +82,26 @@ BOOL daPy_lk_c::procPushPullWait_init(int param_0) {
BOOL daPy_lk_c::procPushPullWait() {
dComIfGp_setRStatus(dActStts_GRAB_e);
setFrontWallType();
if (m34D6 != 0) {
if (mProcVar3.m34D6 != 0) {
if (checkNoUpperAnime()) {
setSingleMoveAnime(
ANM_WAITPUSHPULL, m_HIO->mPushpull.m.field_0x0, 0.0f, -1, m_HIO->mPushpull.m.field_0x4
);
m34D6 = 0;
mProcVar3.m34D6 = 0;
}
} else if (spActionButton() && checkResetFlg0(daPyRFlg0_UNK8)) {
if (mProcVar0.m3570 != 0) {
s16 sVar1 = cLib_addCalcAngleS(&shape_angle.y, m34D4, 3, 0x800, 0x100);
if (mProcVar6.m3570 != 0) {
s16 sVar1 = cLib_addCalcAngleS(&shape_angle.y, mProcVar2.m34D4, 3, 0x800, 0x100);
current.angle.y = shape_angle.y;
f32 dVar2 = cLib_addCalc(&current.pos.x, m370C.x, 0.5f, 10.0f, 1.0f);
dVar2 += cLib_addCalc(&current.pos.z, m370C.z, 0.5f, 10.0f, 1.0f);
if (sVar1 == 0 && dVar2 < 5.0f && checkNoUpperAnime()) {
current.pos.x = m370C.x;
current.pos.z = m370C.z;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (mStickDistance > 0.05f) {
int direction = getDirectionFromShapeAngle();
if (direction == DIR_FORWARD) {
@@ -127,7 +127,7 @@ BOOL daPy_lk_c::procPushMove_init() {
commonProcInit(daPyProc_PUSH_MOVE_e);
setSingleMoveAnime(ANM_WALKPUSH, m_HIO->mPushpull.m.field_0x8, 0.0f, -1, m_HIO->mPushpull.m.field_0xC);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
return true;
@@ -153,10 +153,10 @@ BOOL daPy_lk_c::procPushMove() {
}
return procPushPullWait_init(0);
}
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
voiceStart(19);
}
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
setPushPullKeepData(dBgW::PPLABEL_PUSH);
}
return true;
@@ -170,7 +170,7 @@ BOOL daPy_lk_c::procPullMove_init() {
commonProcInit(daPyProc_PULL_MOVE_e);
setSingleMoveAnime(ANM_WALKPULL, m_HIO->mPushpull.m.field_0x10, 0.0f, -1, m_HIO->mPushpull.m.field_0x14);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
return true;
@@ -222,10 +222,10 @@ BOOL daPy_lk_c::procPullMove() {
}
return procPushPullWait_init(0);
}
if (mProcVar0.m3570 == 1) {
if (mProcVar6.m3570 == 1) {
voiceStart(19);
}
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
setPushPullKeepData(dBgW::PPLABEL_PULL);
}
return true;
+137 -153
View File
@@ -87,6 +87,7 @@ int daPy_lk_c::changeRopeEndProc(int param_0) {
return false;
}
#if VERSION > VERSION_DEMO
/* 801430D4-80143138 .text checkSpecialRope__9daPy_lk_cFv */
BOOL daPy_lk_c::checkSpecialRope() {
if (!strcmp(dComIfGp_getStartStageName(), "GanonK") && mActorKeepEquip.getActor() == NULL) {
@@ -95,10 +96,11 @@ BOOL daPy_lk_c::checkSpecialRope() {
return false;
}
}
#endif
/* 80143138-8014327C .text changeRopeToHangProc__9daPy_lk_cFv */
int daPy_lk_c::changeRopeToHangProc() {
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
return false;
}
f32 fVar1 = cM_ssin(shape_angle.y);
@@ -129,7 +131,7 @@ BOOL daPy_lk_c::checkRopeSwingWall(cXyz* r4, cXyz* r5, s16* r6, f32* r7) {
mLinkLinChk.Set(r4, r5, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
f32 f1 = -*r6 / (f32)m34D4;
f32 f1 = -*r6 / (f32)mProcVar2.m34D4;
if (f1 > 1.0f) {
f1 = 1.0f;
} else if (f1 < -1.0f) {
@@ -191,16 +193,16 @@ void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
anm = ANM_ROPESWINGB;
} else {
sp08 = m_pbCalc[PART_UNDER_e]->getRatio(1);
if (m34D0 != 0) {
if (m34D0 == -1) {
if (mProcVar0.m34D0 != 0) {
if (mProcVar0.m34D0 == -1) {
anm = ANM_ROPESWINGF;
} else {
anm = ANM_ROPESWINGB;
}
dVar6 = 1.0f;
cLib_chaseF(&sp08, dVar6, 0.05f);
if (((m34D0 == -1) && (M_PI / 2 < f30)) || (m34D0 == 1 && (-M_PI / 2 < f30))) {
m34D0 = 0;
if (((mProcVar0.m34D0 == -1) && (M_PI / 2 < f30)) || (mProcVar0.m34D0 == 1 && (-M_PI / 2 < f30))) {
mProcVar0.m34D0 = 0;
}
} else if (((param_0 != 0) || (mStickDistance <= 0.05f)) || (spActionButton())) {
if (f2 <= M_PI / 2) {
@@ -208,9 +210,9 @@ void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
} else {
anm = ANM_ROPESWINGF;
}
dVar6 = (0.6f * m34D4) / m_HIO->mItem.mRope.m.field_0x0;
if (checkSpecialRope()) {
dVar6 *= 8.0f;
dVar6 = (0.6f * mProcVar2.m34D4) / m_HIO->mItem.mRope.m.field_0x0;
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
dVar6 *= DEMO_SELECT(3.0f, 8.0f);
}
if (dVar6 > 0.6f) {
dVar6 = 0.6f;
@@ -218,12 +220,12 @@ void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
} else {
if ((M_PI / 2 > f30) && (M_PI / 10 <= f30)) {
setMoveAnime(0.0f, m_HIO->mItem.mRope.m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGF, 7, 7.0f);
m34D0 = -1;
mProcVar0.m34D0 = -1;
return;
}
if ((-M_PI / 2 > f30) && (-2.8274333f <= f30)) {
setMoveAnime(0.0f, m_HIO->mItem.mRope.m.field_0x18, 1.0f, ANM_ROPECATCH, ANM_ROPESWINGB, 7, 7.0f);
m34D0 = 1;
mProcVar0.m34D0 = 1;
return;
}
if (f2 <= M_PI / 2) {
@@ -231,9 +233,9 @@ void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
} else {
anm = ANM_ROPESWINGF;
}
dVar6 = (0.6f * m34D4) / m_HIO->mItem.mRope.m.field_0x0;
if (checkSpecialRope()) {
dVar6 *= 8.0f;
dVar6 = (0.6f * mProcVar2.m34D4) / m_HIO->mItem.mRope.m.field_0x0;
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
dVar6 *= DEMO_SELECT(3.0f, 8.0f);
}
if (dVar6 > 0.6f) {
dVar6 = 0.6f;
@@ -252,7 +254,7 @@ void daPy_lk_c::setBlendRopeMoveAnime(int param_0) {
}
}
} else {
if (m34D0 == 0) {
if (mProcVar0.m34D0 == 0) {
cLib_addCalc(&sp08, dVar6, 0.5f, 0.05f, 0.005f);
}
}
@@ -278,7 +280,7 @@ int daPy_lk_c::throwRope() {
-1.0f
);
setPriTextureAnime(0x48, 0);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
if (mDirection != DIR_RIGHT) {
mDirection = DIR_RIGHT;
}
@@ -394,7 +396,7 @@ BOOL daPy_lk_c::procRopeSubject_init() {
commonProcInit(daPyProc_ROPE_SUBJECT_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
if (fopAcM_GetParam(mActorKeepEquip.getActor()) == 0) {
setActAnimeUpper(LKANM_BCK_ROPETHROWWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
@@ -407,7 +409,7 @@ BOOL daPy_lk_c::procRopeSubject_init() {
seStartSystem(JA_SE_CAMERA_L_MOVE);
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m3600 = -1.0f;
m3604 = -1.0f;
@@ -494,10 +496,10 @@ BOOL daPy_lk_c::procRopeReady_init() {
m3600 = m370C.y;
m370C.z = rope->current.pos.z;
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m35A0 = 0.0f;
fopAcM_SetParam(rope, 3);
m34D4 = 0x1800;
mProcVar2.m34D4 = 0x1800;
shape_angle.y = cM_atan2s((m370C.x - current.pos.x), (m370C.z - current.pos.z));
current.angle.y = shape_angle.y;
mRopePos = rope->current.pos;
@@ -516,7 +518,7 @@ BOOL daPy_lk_c::procRopeReady() {
cXyz local_48 = m370C - current.pos;
f32 dVar5 = local_48.abs();
cLib_chaseF(&m35A0, 50.0f, 5.0f);
shape_angle.x = (0.025f * (m34D4 * m35A0));
shape_angle.x = (0.025f * (mProcVar2.m34D4 * m35A0));
if (dVar5 > m35A0) {
current.pos += local_48 * (m35A0 / dVar5);
}
@@ -528,13 +530,10 @@ 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) {
float dVar8;
float dVar9;
cXyz local_84;
cXyz local_78;
himo2_class* pfVar7 = (himo2_class*)param_0;
commonProcInit(daPyProc_ROPE_SWING_e);
cXyz local_84;
if (param_0 != NULL) {
mActorKeepRope.setData(param_0);
if (fopAcM_GetName(param_0) == PROC_HIMO3) {
@@ -542,10 +541,10 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
deleteEquipItem(TRUE);
mEquipItem = dItem_GRAPPLING_HOOK_e;
local_84 = param_0->current.pos - current.pos;
dVar8 = (local_84.abs() - 95.0f);
dVar9 = ((himo2_class*)param_0)->m1120[34].m10.y;
if (dVar8 > dVar9) {
dVar8 = dVar9;
f32 dVar8 = (local_84.abs() - 95.0f);
cXyz* temp = &((himo2_class*)param_0)->m1120[34].m10;
if (dVar8 > DEMO_SELECT(temp->z, temp->y)) {
dVar8 = DEMO_SELECT(temp->z, temp->y);
}
local_84.normalize();
current.pos = (param_0->current.pos - (local_84 * dVar8));
@@ -553,57 +552,50 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
} else {
param_0 = mActorKeepRope.getActor();
}
local_84 = param_0->current.pos - current.pos;
m35A0 = local_84.abs();
f32 dVar11 = std::sqrtf(2.0f / m35A0);
m35A4 = dVar11;
dVar11 = M_PI / 2 / m35A4;
m35A4 = std::sqrtf(2.0f / m35A0);
f32 dVar11 = (M_PI / 2.0f) / m35A4;
if (pfVar7 != NULL) {
m34D4 = m_HIO->mItem.mRope.m.field_0x0;
#if VERSION == VERSION_DEMO
if (strcmp(dComIfGp_getStartStageName(), "GanonK") == 0) {
m34D4 /= 3;
mProcVar2.m34D4 = m_HIO->mItem.mRope.m.field_0x0;
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
mProcVar2.m34D4 /= DEMO_SELECT(3, 8.0f);
}
#else
if (checkSpecialRope()) {
m34D4 *= 0.125f;
}
#endif
f32 fVar1 = cM_ssin(shape_angle.y);
f32 fVar2 = cM_scos(shape_angle.y);
cXyz local_78;
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.z, local_78.y);
if (sVar4 > m34D4) {
sVar4 = m34D4;
} else if (sVar4 < -m34D4) {
sVar4 = -m34D4;
if (sVar4 > mProcVar2.m34D4) {
sVar4 = mProcVar2.m34D4;
} else if (sVar4 < -mProcVar2.m34D4) {
sVar4 = -mProcVar2.m34D4;
}
dVar8 = ((f32)sVar4 / m34D4);
dVar9 = std::sqrtf(1.0f - (dVar8 * dVar8));
dVar8 = cM_atan2f(dVar8, dVar9);
m35A8 = dVar8 / m35A4;
dVar8 = std::sqrtf(local_78.y * local_78.y + local_78.z * local_78.z);
m34D6 = cM_atan2s(-local_78.x, dVar8);
if (m34D6 > 0) {
f32 dVar8 = ((f32)sVar4 / mProcVar2.m34D4);
m35A8 = cM_atan2f(dVar8, std::sqrtf(1.0f - (dVar8 * dVar8))) / m35A4;
f32 dVar8_3 = std::sqrtf(local_78.y * local_78.y + local_78.z * local_78.z);
mProcVar3.m34D6 = cM_atan2s(-local_78.x, dVar8_3);
if (mProcVar3.m34D6 > 0) {
m35AC = dVar11;
} else {
m35AC = -dVar11;
}
} else {
m34D4 = abs(param_1);
mProcVar2.m34D4 = abs(param_1);
if (param_1 < 0) {
m35A8 = dVar11;
} else {
m35A8 = -dVar11;
}
m34D6 = 0;
mProcVar3.m34D6 = 0;
m35AC = 0.0f;
}
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
gravity = 0.0f;
mRopePos = param_0->current.pos;
@@ -623,7 +615,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
if ((pfVar7 != NULL) && (mActorKeepEquip.getActor() == NULL)) {
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
}
m34D0 = 0;
mProcVar0.m34D0 = 0;
shape_angle.x = param_1;
return true;
}
@@ -731,43 +723,40 @@ BOOL daPy_lk_c::procRopeSwing() {
}
if (spActionButton()) {
cLib_chaseS(&m34D4, 0, r28 * 10);
cLib_chaseS(&m34D6, 0, r28 * 10);
cLib_chaseS(&mProcVar2.m34D4, 0, r28 * 10);
cLib_chaseS(&mProcVar3.m34D6, 0, r28 * 10);
} else {
cLib_chaseS(&m34D6, 0, r28);
cLib_chaseS(&mProcVar3.m34D6, 0, r28);
f32 f1 = std::fabsf(sp0C);
if (mStickDistance > 0.05f) {
m34D4 += r29 * std::abs(cM_fcos(f1));
mProcVar2.m34D4 += r29 * std::abs(cM_fcos(f1));
} else {
cLib_chaseS(&m34D4, 0, r28);
cLib_chaseS(&mProcVar2.m34D4, 0, r28);
}
}
if (m34D4 > r30) {
m34D4 = r30;
if (mProcVar2.m34D4 > r30) {
mProcVar2.m34D4 = r30;
}
s16 sp08 = -m34D4 * cM_fsin(sp0C);
s16 r29_2 = m34D6 * cM_fsin(f30_2);
s16 sp08 = -mProcVar2.m34D4 * cM_fsin(sp0C);
s16 r29_2 = mProcVar3.m34D6 * cM_fsin(f30_2);
s16 r28_2;
if (m34D0 != 0) {
f32 f1 = m_pbCalc[PART_UNDER_e]->getRatio(1);
f32 f2 = -m34D4 * cM_fsin(sp0C);
f32 f0 = 0.5f * m34D4 * m34D0;
r28_2 = f2 + (f0 * f1);
if (mProcVar0.m34D0 != 0) {
r28_2 = -mProcVar2.m34D4 * cM_fsin(sp0C) + (0.5f * mProcVar2.m34D4 * mProcVar0.m34D0 * m_pbCalc[PART_UNDER_e]->getRatio(1));
} else {
r28_2 = -m34D4 * cM_fsin(sp0C - (M_PI / 5));
r28_2 = -mProcVar2.m34D4 * cM_fsin(sp0C - (M_PI / 5));
}
cLib_addCalcAngleS(&shape_angle.x, r28_2, 8, 0xc00, 0x100);
dVar13 = cM_fcos(f30_2);
cLib_addCalcAngleS(
&shape_angle.z, m34D6 * cM_fsin(f30_2 - 1.0995574f), 8, 0x400 + (0x800 * dVar13), 0x80 + (0x80 * dVar13)
&shape_angle.z, mProcVar3.m34D6 * cM_fsin(f30_2 - 1.0995574f), 8, 0x400 + (0x800 * dVar13), 0x80 + (0x80 * dVar13)
);
cXyz sp1C(0.0f, -m35A0, 0.0f);
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(sp08, shape_angle.y, r29_2);
mDoMtx_stack_c::multVec(&sp1C, &current.pos);
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(-m34D4 * cM_fsin(sp0C + m35A4), shape_angle.y, r29_2);
mDoMtx_stack_c::ZXYrotM(-mProcVar2.m34D4 * cM_fsin(sp0C + m35A4), shape_angle.y, r29_2);
cXyz sp10;
mDoMtx_stack_c::multVec(&sp28, &sp10);
if (!checkRopeSwingWall(&sp34, &sp10, &sp08, &sp0C)) {
@@ -780,21 +769,21 @@ BOOL daPy_lk_c::procRopeSwing() {
}
}
f32 f30_3 = ((f32)m34D4 / r30);
f32 f30_3 = ((f32)mProcVar2.m34D4 / r30);
if (changeRopeEndProc(0)) {
dVar13 = (m35A0 / (100.0f * m_HIO->mItem.mRope.m.field_0x14));
if (dVar13 < 1.0f) {
dVar13 = 1.0f;
}
f30_3 *= dVar13;
mVelocity = m_HIO->mItem.mRope.m.field_0xC * f30_3;
mNormalSpeed = m_HIO->mItem.mRope.m.field_0xC * f30_3;
if (std::abs(sp0C) > M_PI / 2) {
current.angle.y = shape_angle.y + 0x8000;
}
speed.y = m_HIO->mItem.mRope.m.field_0x10 * f30_3;
procFall_init(0, m_HIO->mWallCatch.m.field_0x54);
onNoResetFlg1(daPyFlg1_UNK8000000);
} else if ((m34D4 == 0) && (m34D6 == 0)) {
} else if ((mProcVar2.m34D4 == 0) && (mProcVar3.m34D6 == 0)) {
procRopeHangWait_init(0);
} else if (f30_3 > 0.6f) {
if (cM_fcos(sp0C) > 0.77f) {
@@ -815,50 +804,47 @@ BOOL daPy_lk_c::procRopeHangWait_init(int param_0) {
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
gravity = 0.0f;
if (param_0 == 0) {
m34D0 = m_HIO->mItem.mRope.m.field_0x6;
mProcVar0.m34D0 = m_HIO->mItem.mRope.m.field_0x6;
setSingleMoveAnime(
ANM_ROPECATCH, 1.0f, mFrameCtrlUnder[UNDER_MOVE0_e].getEnd() - 0.001f, -1, m_HIO->mItem.mRope.m.field_0x28
);
setTextureAnime(2, 0);
} else {
m34D0 = -1;
mProcVar0.m34D0 = -1;
setSingleMoveAnime(ANM_ROPEWAIT, m_HIO->mItem.mRope.m.field_0x24, 0.0f, -1, m_HIO->mItem.mRope.m.field_0x28);
}
m34D4 = 0;
mProcVar2.m34D4 = 0;
return true;
}
/* 801457FC-80145B38 .text procRopeHangWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeHangWait() {
BOOL r30;
s16 r29;
float dVar4;
dComIfGp_setRStatus(dActStts_STOP_e);
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
}
if (checkHangRopeActorNull()) {
return true;
}
if (!changeRopeEndProc(1)) {
r30 = false;
BOOL r30 = false;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
s16 r29;
if (mStickDistance > 0.05f) {
int direction = getDirectionFromAngle(m34DC);
if (spActionButton()) {
if (direction == DIR_FORWARD) {
if (abs((int)m34D4) <= 0x80) {
if (abs((int)mProcVar2.m34D4) <= 0x80) {
procRopeUp_init();
} else {
r30 = true;
r29 = 0;
}
} else if (direction == DIR_BACKWARD) {
if (abs((int)m34D4) <= 0x80) {
if (abs((int)mProcVar2.m34D4) <= 0x80) {
procRopeDown_init();
} else {
r30 = true;
@@ -867,32 +853,30 @@ BOOL daPy_lk_c::procRopeHangWait() {
} else {
if (direction == DIR_LEFT) {
s16 r5 = 512.0f * mStickDistance;
if (r5 > m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 += r0;
if (m34D4 > r5) {
m34D4 = r5;
if (r5 > mProcVar2.m34D4) {
mProcVar2.m34D4 += (s16)(64.0f * mStickDistance);
if (mProcVar2.m34D4 > r5) {
mProcVar2.m34D4 = r5;
}
r29 = m34D4;
r29 = mProcVar2.m34D4;
} else {
r29 = r5;
}
} else { // DIR_RIGHT
s16 r5 = -512.0f * mStickDistance;
if (r5 < m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 -= r0;
if (m34D4 < r5) {
m34D4 = r5;
if (r5 < mProcVar2.m34D4) {
mProcVar2.m34D4 -= (s16)(64.0f * mStickDistance);
if (mProcVar2.m34D4 < r5) {
mProcVar2.m34D4 = r5;
}
r29 = m34D4;
r29 = mProcVar2.m34D4;
} else {
r29 = r5;
}
}
r30 = true;
if (m34D0 != -1) {
m34D0 = -1;
if (mProcVar0.m34D0 != -1) {
mProcVar0.m34D0 = -1;
setSingleMoveAnime(
ANM_ROPEWAIT, m_HIO->mItem.mRope.m.field_0x24, 0.0f, -1, m_HIO->mItem.mRope.m.field_0x2C
);
@@ -905,8 +889,8 @@ BOOL daPy_lk_c::procRopeHangWait() {
r30 = true;
}
} else {
if (m34D0 == 0) {
m34D0 = -1;
if (mProcVar0.m34D0 == 0) {
mProcVar0.m34D0 = -1;
setSingleMoveAnime(
ANM_ROPEWAIT, m_HIO->mItem.mRope.m.field_0x24, 0.0f, -1, m_HIO->mItem.mRope.m.field_0x2C
);
@@ -915,14 +899,15 @@ BOOL daPy_lk_c::procRopeHangWait() {
r30 = true;
}
if (r30) {
cLib_addCalcAngleS(&m34D4, r29, 3, 0x40, 0x10);
if (m34D4 > 0) {
cLib_addCalcAngleS(&mProcVar2.m34D4, r29, 3, 0x40, 0x10);
f32 dVar4;
if (mProcVar2.m34D4 > 0) {
dVar4 = checkRopeRoofHit(shape_angle.y + 0x2000);
} else {
dVar4 = checkRopeRoofHit(shape_angle.y + -0x2000);
}
if (5.0f + (dVar4 - 60.0f) > current.pos.y) {
shape_angle.y = shape_angle.y + m34D4;
shape_angle.y = shape_angle.y + mProcVar2.m34D4;
current.angle.y = shape_angle.y;
}
}
@@ -932,7 +917,7 @@ BOOL daPy_lk_c::procRopeHangWait() {
/* 80145B38-80145C3C .text specialRopeHangUp__9daPy_lk_cFv */
int daPy_lk_c::specialRopeHangUp() {
if (checkSpecialRope()) {
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
u32 uVar1 = shape_angle.y >= 0x4000 ? 0 : 1;
int iVar2 = abs(uVar1);
if (iVar2 != 0) {
@@ -959,7 +944,7 @@ int daPy_lk_c::specialRopeHangUp() {
BOOL daPy_lk_c::procRopeUp_init() {
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
f32 dVar4;
if (checkBossGomaStage()) {
dVar4 = mRopePos.y - 200.0f;
@@ -969,15 +954,8 @@ BOOL daPy_lk_c::procRopeUp_init() {
dVar5 = dVar5 - 60.0f;
if (dVar5 < dVar4) {
dVar4 = dVar5;
} else if (
fopAcM_GetName(rope) == PROC_HIMO2 ||
#if VERSION == VERSION_DEMO
!strcmp(dComIfGp_getStartStageName(), "GanonK")
#else
checkSpecialRope()
#endif
) {
mProcVar0.m3570 = 1;
} else if (fopAcM_GetName(rope) == PROC_HIMO2 || DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
mProcVar6.m3570 = 1;
}
}
if (dVar4 <= current.pos.y) {
@@ -1022,7 +1000,10 @@ BOOL daPy_lk_c::procRopeUp() {
procRopeDown_init();
} else if (direction == DIR_FORWARD) {
if (m35A0 <= current.pos.y) {
if (!specialRopeHangUp()) {
#if VERSION > VERSION_DEMO
if (!specialRopeHangUp())
#endif
{
procRopeHangWait_init(0);
}
} else {
@@ -1047,6 +1028,7 @@ BOOL daPy_lk_c::procRopeUp() {
BOOL daPy_lk_c::procRopeDown_init() {
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
if (mActorKeepEquip.getActor() != NULL) {
if (m3604 >= 0.0f) {
m35A4 = m3600 - m3604;
@@ -1062,18 +1044,20 @@ BOOL daPy_lk_c::procRopeDown_init() {
}
} else {
himo2_class* rope = (himo2_class*)mActorKeepRope.getActor();
m35A4 = mRopePos.y - rope->m1120[34].m10.y;
cXyz* temp = &rope->m1120[34].m10;
m35A4 = mRopePos.y - DEMO_SELECT(temp->z, temp->y);
}
if (current.pos.y <= m35A4) {
return procRopeHangWait_init(1);
} else {
commonProcInit(daPyProc_ROPE_DOWN_e);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
setSingleMoveAnime(ANM_ROPEDOWN, m_HIO->mItem.mRope.m.field_0x38, 0.0f, -1, m_HIO->mItem.mRope.m.field_0x3C);
gravity = 0.0f;
m35A0 = 0.0f;
return true;
}
commonProcInit(daPyProc_ROPE_DOWN_e);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
setSingleMoveAnime(ANM_ROPEDOWN, m_HIO->mItem.mRope.m.field_0x38, 0.0f, -1, m_HIO->mItem.mRope.m.field_0x3C);
gravity = 0.0f;
m35A0 = 0.0f;
return true;
}
/* 801460EC-80146240 .text procRopeDown__9daPy_lk_cFv */
@@ -1120,12 +1104,12 @@ BOOL daPy_lk_c::procRopeSwingStart_init() {
m35A4 = 1.0f;
}
setSingleMoveAnime(ANM_ROPESWINGB, 1.0f, 0.0f, -1, 20.0f);
m34D4 = 2048.0f * m35A4;
if (checkSpecialRope()) {
m34D4 *= 0.125f;
mProcVar2.m34D4 = 2048.0f * m35A4;
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
mProcVar2.m34D4 /= DEMO_SELECT(3, 8.0f);
}
gravity = 0.0f;
m34D0 = 0;
mProcVar0.m34D0 = 0;
mRopePos = mActorKeepRope.getActor()->current.pos;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e);
return true;
@@ -1141,38 +1125,38 @@ BOOL daPy_lk_c::procRopeSwingStart() {
}
if (!changeRopeEndProc(1)) {
mRopePos = mActorKeepRope.getActor()->current.pos;
if (m34D0 == 1) {
if (!cLib_addCalcAngleS(&shape_angle.x, m34D4, 5, 0x180, 0x40)) {
if (mProcVar0.m34D0 == 1) {
if (!cLib_addCalcAngleS(&shape_angle.x, mProcVar2.m34D4, 5, 0x180, 0x40)) {
procRopeSwing_init(NULL, shape_angle.x);
}
} else {
if (!cLib_addCalcAngleS(&shape_angle.x, m34D4, 5, 0xa0, 0x40)) {
if (m34D4 > 0) {
if (!cLib_addCalcAngleS(&shape_angle.x, mProcVar2.m34D4, 5, 0xa0, 0x40)) {
if (mProcVar2.m34D4 > 0) {
setSingleMoveAnime(ANM_ROPESWINGF, 1.0f, 0.0f, -1, 10.0f);
m34D4 = -4096.0f * m35A4;
mProcVar2.m34D4 = -4096.0f * m35A4;
} else {
setSingleMoveAnime(ANM_ROPESWINGB, 1.0f, 0.0f, -1, 10.0f);
m34D4 = 4096.0f * m35A4;
mProcVar2.m34D4 = 4096.0f * m35A4;
}
m34D0 = 1;
if (checkSpecialRope()) {
m34D4 *= 0.125f;
mProcVar0.m34D0 = 1;
if (DEMO_SELECT(!strcmp(dComIfGp_getStartStageName(), "GanonK"), checkSpecialRope())) {
mProcVar2.m34D4 /= DEMO_SELECT(3, 8.0f);
}
}
}
#if VERSION == VERSION_DEMO
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, 0);
mDoMtx_stack_c::multVec(&local_28, &current.pos);
#endif
#if VERSION > VERSION_DEMO
if (mAcch.ChkWallHit()) {
procRopeSwing_init(NULL, shape_angle.x);
}
#endif
}
#if VERSION > VERSION_DEMO
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, 0);
mDoMtx_stack_c::multVec(&local_28, &current.pos);
#if VERSION == VERSION_DEMO
if (mAcch.ChkWallHit()) {
procRopeSwing_init(NULL, shape_angle.x);
}
#endif
return true;
}
@@ -1215,7 +1199,7 @@ BOOL daPy_lk_c::procRopeMove() {
}
if (checkNextMode(0) == 0) {
f32 fVar1 = -1.0f;
if (std::abs(mVelocity) < 0.001f) {
if (std::abs(mNormalSpeed) < 0.001f) {
onModeFlg(ModeFlg_00000001);
if (mDirection != DIR_RIGHT) {
mDirection = DIR_RIGHT;
@@ -1240,9 +1224,9 @@ BOOL daPy_lk_c::procRopeThrowCatch_init() {
m_HIO->mItem.mRope.m.field_0xA,
m_HIO->mItem.mRope.m.field_0x64
);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
dComIfGp_setPlayerStatus0(0, daPyStts0_ROPE_AIM_e);
m34D0 = 0x1e;
mProcVar0.m34D0 = 0x1e;
return true;
}
@@ -1257,9 +1241,9 @@ BOOL daPy_lk_c::procRopeThrowCatch() {
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e);
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
m34D0--;
mProcVar0.m34D0--;
himo2_class* rope = (himo2_class*)mActorKeepEquip.getActor();
if (rope->m02DC == 0 || (m34D0 == 0)) {
if (rope->m02DC == 0 || (mProcVar0.m34D0 == 0)) {
checkNextRopeMode();
}
}
@@ -1274,7 +1258,7 @@ BOOL daPy_lk_c::procRopeUpHang_init() {
gravity = 0.0f;
shape_angle.y = m352C + 0x8000;
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
current.pos.y -= 80.0f;
return true;
+96 -94
View File
@@ -188,7 +188,7 @@ void daPy_lk_c::setShipRidePos(int param_0) {
}
if (mCurProc == ANM_WARPOUT) {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_offset3, &current.pos);
} else if (mCurProc == ANM_SETBOOTS && m34D8 != 0) {
} else if (mCurProc == ANM_SETBOOTS && mProcVar4.m34D8 != 0) {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_offset2, &current.pos);
} else {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_offset, &current.pos);
@@ -264,32 +264,30 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
int direction = getDirectionFromAngle(m34DC);
if (direction == DIR_LEFT) {
s16 r5 = 512.0f * mStickDistance;
if (r5 > m34DA) {
s16 r0 = 64.0f * mStickDistance;
m34DA += r0;
if (m34DA > r5) {
m34DA = r5;
if (r5 > mProcVar5.m34DA) {
mProcVar5.m34DA += (s16)(64.0f * mStickDistance);
if (mProcVar5.m34DA > r5) {
mProcVar5.m34DA = r5;
}
r30 = m34DA;
r30 = mProcVar5.m34DA;
} else {
r30 = r5;
}
} else if (direction == DIR_RIGHT) {
s16 r5 = -512.0f * mStickDistance;
if (r5 < m34DA) {
s16 r0 = 64.0f * mStickDistance;
m34DA -= r0;
if (m34DA < r5) {
m34DA = r5;
if (r5 < mProcVar5.m34DA) {
mProcVar5.m34DA -= (s16)(64.0f * mStickDistance);
if (mProcVar5.m34DA < r5) {
mProcVar5.m34DA = r5;
}
r30 = m34DA;
r30 = mProcVar5.m34DA;
} else {
r30 = r5;
}
}
}
cLib_addCalcAngleS(&m34DA, r30, 3, 0x40, 0x10);
shape_angle.y = shape_angle.y + m34DA;
cLib_addCalcAngleS(&mProcVar5.m34DA, r30, 3, 0x40, 0x10);
shape_angle.y = shape_angle.y + mProcVar5.m34DA;
}
current.angle.y = shape_angle.y;
@@ -402,19 +400,23 @@ BOOL daPy_lk_c::changeShipEndProc() {
}
if (checkSetItemTrigger(dItem_TINGLE_TUNER_e, 1)) {
fopAcM_orderTalkEvent(this, (fopAc_ac_c*)dComIfGp_getAgb());
#if VERSION > VERSION_DEMO
if (checkShipNotNormalMode()) {
setShipRidePos(0);
} else {
setShipRidePos(1);
}
#endif
return true;
}
if (checkSetItemTrigger(dItem_MAGIC_ARMOR_e, 1)) {
#if VERSION > VERSION_DEMO
if (checkShipNotNormalMode()) {
setShipRidePos(0);
} else {
setShipRidePos(1);
}
#endif
return changeDragonShield(1);
}
if (checkSetItemTrigger(daPyItem_DRINK_BOTTLE_e, 0)) {
@@ -457,12 +459,12 @@ void daPy_lk_c::initShipCraneAnime() {
if (dComIfGp_getShipActor()->getCraneBaseAngle() > 0) {
dVar1 = ANM_SALVRWAIT;
mProcVar0.m3570 = 3;
m3574 = 3;
mProcVar6.m3570 = 3;
mProcVar7.m3574 = 3;
} else {
dVar1 = ANM_SALVLWAIT;
mProcVar0.m3570 = 2;
m3574 = 2;
mProcVar6.m3570 = 2;
mProcVar7.m3574 = 2;
}
daPy_matAnm_c::offMabaFlg();
setSingleMoveAnime(dVar1, 1.0f, 0.0f, -1, 10.0f);
@@ -481,21 +483,21 @@ BOOL daPy_lk_c::procShipReady_init() {
m_HIO->mWallCatch.m.field_0x28
);
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
s16 sVar3 = fopAcM_searchActorAngleY(ship, this);
if ((s16)(sVar3 - ship->shape_angle.y) > 0) {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_ledge, &current.pos);
shape_angle.y = ship->shape_angle.y + -0x4000;
m34D4 = shape_angle.y;
m34D0 = 0;
mProcVar2.m34D4 = shape_angle.y;
mProcVar0.m34D0 = 0;
} else {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_redge, &current.pos);
shape_angle.y = ship->shape_angle.y + 0x4000;
m34D4 = shape_angle.y + 0x8000;
m34D0 = 1;
mProcVar2.m34D4 = shape_angle.y + 0x8000;
mProcVar0.m34D0 = 1;
}
current.angle.y = shape_angle.y;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
ship->setReadyFirst();
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1000000_e);
swimOutAfter(1);
@@ -515,15 +517,15 @@ BOOL daPy_lk_c::procShipReady() {
return checkNextMode(0);
}
if (mProcVar0.m3570 == 0) {
if (m34D0 == 0) {
if (mProcVar6.m3570 == 0) {
if (mProcVar0.m34D0 == 0) {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_ledge, &current.pos);
} else {
mDoMtx_multVec(ship->getBodyMtx(), &l_ship_redge, &current.pos);
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
mProcVar0.m3570 = 1;
mVelocity = 6.0f;
mProcVar6.m3570 = 1;
mNormalSpeed = 6.0f;
setSingleMoveAnime(ANM_WALK, m_HIO->mMove.m.field_0x40, 0.0f, -1, 5.0f);
m34C2 = 10;
offModeFlg(ModeFlg_HANG | ModeFlg_00000400);
@@ -554,7 +556,7 @@ BOOL daPy_lk_c::procShipJumpRide_init() {
deleteEquipItem(TRUE);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
ship->setPaddleMove();
ship->onJumpRideFlg();
setSingleMoveAnime(ANM_SLIPICE, 1.0f, 0.0f, -1, 5.0f);
@@ -587,7 +589,7 @@ BOOL daPy_lk_c::procShipSteer_init() {
commonProcInit(daPyProc_SHIP_STEER_e);
deleteEquipItem(TRUE);
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
speed.y = 0.0f;
ship->setSteerMove();
initShipBaseAnime();
@@ -624,7 +626,7 @@ BOOL daPy_lk_c::procShipPaddle_init() {
deleteEquipItem(TRUE);
gravity = 0.0f;
speed.y = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
ship->setPaddleMove();
initShipBaseAnime();
if (!bVar1) {
@@ -632,7 +634,7 @@ BOOL daPy_lk_c::procShipPaddle_init() {
}
setShipRidePos(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
m34D0 = 300.0f + cM_rndF(150.0f);
mProcVar0.m34D0 = 300.0f + cM_rndF(150.0f);
return true;
}
@@ -661,8 +663,8 @@ BOOL daPy_lk_c::procShipPaddle() {
}
}
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
if (m34D0 == -1 || m34D0 == -2) {
if (m34D0 == -2) {
if (mProcVar0.m34D0 == -1 || mProcVar0.m34D0 == -2) {
if (mProcVar0.m34D0 == -2) {
if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(168.0f)) {
voiceStart(48);
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(105.0f)) {
@@ -673,27 +675,27 @@ BOOL daPy_lk_c::procShipPaddle() {
ship->checkForceMove() || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f))
{
initShipBaseAnime();
m34D0 = cM_rndF(150.0f) + 300.0f;
mProcVar0.m34D0 = cM_rndF(150.0f) + 300.0f;
}
} else if (!dComIfGp_event_runCheck() && dComIfGp_getDoStatus() == dActStts_GET_OUT_SHIP_e && mStickDistance <= 0.05f &&
!ship->checkForceMove() && !checkShipNotNormalMode())
{
m34D0--;
if (m34D0 == 0) {
mProcVar0.m34D0--;
if (mProcVar0.m34D0 == 0) {
dVar6 = cM_rnd();
m34D0 = -1;
mProcVar0.m34D0 = -1;
if (dVar6 < 0.3333f) {
dVar5 = ANM_FREEA;
} else if (dVar6 < 0.6666f) {
dVar5 = ANM_FREEB;
m34D0 = -2;
mProcVar0.m34D0 = -2;
} else {
dVar5 = ANM_FREED;
}
setSingleMoveAnime(dVar5, 1.0f, 0.0f, -1, 5.0f);
}
} else {
m34D0 = cM_rndF(150.0f) + 300.0f;
mProcVar0.m34D0 = cM_rndF(150.0f) + 300.0f;
}
return true;
@@ -759,8 +761,8 @@ BOOL daPy_lk_c::procShipBoomerang_init() {
makeItemType();
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e | daPyStts0_BOOMERANG_AIM_e);
setShipRidePos(0);
m34D4 = ship->shape_angle.y;
m34DA = 0;
mProcVar2.m34D4 = ship->shape_angle.y;
mProcVar5.m34DA = 0;
return true;
}
@@ -791,7 +793,7 @@ BOOL daPy_lk_c::procShipBoomerang() {
if (checkAttentionLock()) {
setShipAttnetionBodyAngle();
} else {
m34DA = 0;
mProcVar5.m34DA = 0;
if (setBodyAngleToCamera()) {
daBoomerang_c* this_01 = (daBoomerang_c*)mActorKeepEquip.getActor();
if (this_01 != NULL) {
@@ -803,7 +805,7 @@ BOOL daPy_lk_c::procShipBoomerang() {
}
}
if (mpAttnActorLockOn == NULL) {
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
shape_angle.y += (s16)(ship->shape_angle.y - mProcVar2.m34D4);
}
}
} else {
@@ -814,7 +816,7 @@ BOOL daPy_lk_c::procShipBoomerang() {
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(m_HIO->mAtnMove.m.field_0x24);
}
}
m34D4 = ship->shape_angle.y;
mProcVar2.m34D4 = ship->shape_angle.y;
return true;
}
@@ -837,11 +839,11 @@ BOOL daPy_lk_c::procShipHookshot_init() {
makeItemType();
dComIfGp_setPlayerStatus0(0, daPyStts0_HOOKSHOT_AIM_e | daPyStts0_SHIP_RIDE_e);
setShipRidePos(0);
m34D4 = ship->shape_angle.y;
mProcVar2.m34D4 = ship->shape_angle.y;
if (checkAttentionLock()) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
return true;
@@ -855,7 +857,7 @@ BOOL daPy_lk_c::procShipHookshot() {
setShipRidePos(0);
dComIfGp_setDoStatus(dActStts_RETURN_e);
daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor();
if (doTrigger() || hookshot == NULL || (mProcVar0.m3570 != 0 && m355E == 0 && !checkAttentionLock())) {
if (doTrigger() || hookshot == NULL || (mProcVar6.m3570 != 0 && m355E == 0 && !checkAttentionLock())) {
procShipPaddle_init();
deleteEquipItem(TRUE);
return true;
@@ -870,16 +872,16 @@ BOOL daPy_lk_c::procShipHookshot() {
if (hookshot->checkWait()) {
setShipAttnetionBodyAngle();
} else {
m34DA = 0;
mProcVar5.m34DA = 0;
}
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
m34DA = 0;
mProcVar5.m34DA = 0;
setBodyAngleToCamera();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
if (mpAttnActorLockOn == NULL) {
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
shape_angle.y += (s16)(ship->shape_angle.y - mProcVar2.m34D4);
}
if (hookshot->checkWait()) {
if (!checkAttentionLock()) {
@@ -891,7 +893,7 @@ BOOL daPy_lk_c::procShipHookshot() {
} else {
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e);
}
m34D4 = ship->shape_angle.y;
mProcVar2.m34D4 = ship->shape_angle.y;
return true;
}
@@ -916,12 +918,12 @@ BOOL daPy_lk_c::procShipBow_init() {
setBowReadyAnime();
dComIfGp_setPlayerStatus0(0, daPyStts0_BOW_AIM_e | daPyStts0_SHIP_RIDE_e);
setShipRidePos(0);
m34D4 = ship->shape_angle.y;
m34DA = 0;
mProcVar2.m34D4 = ship->shape_angle.y;
mProcVar5.m34DA = 0;
if (checkAttentionLock() && !checkBowMiniGame()) {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
return true;
@@ -935,7 +937,7 @@ BOOL daPy_lk_c::procShipBow() {
setShipRidePos(0);
if (!checkBowMiniGame()) {
dComIfGp_setDoStatus(dActStts_RETURN_e);
if (doTrigger() || ((!checkAttentionLock() && mActorKeepEquip.getActor() == NULL) && mProcVar0.m3570 != 0)) {
if (doTrigger() || ((!checkAttentionLock() && mActorKeepEquip.getActor() == NULL) && mProcVar6.m3570 != 0)) {
procShipPaddle_init();
deleteEquipItem(TRUE);
return true;
@@ -949,16 +951,16 @@ BOOL daPy_lk_c::procShipBow() {
}
if (checkAttentionLock() && !checkBowMiniGame()) {
setShipAttnetionBodyAngle();
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
m34DA = 0;
mProcVar5.m34DA = 0;
setBodyAngleToCamera();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
if (mpAttnActorLockOn == NULL) {
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
shape_angle.y += (s16)(ship->shape_angle.y - mProcVar2.m34D4);
}
m34D4 = ship->shape_angle.y;
mProcVar2.m34D4 = ship->shape_angle.y;
checkNextActionBowReady();
m35EC = mFrameCtrlUpper[UPPER_MOVE2_e].getFrame();
return true;
@@ -974,7 +976,7 @@ BOOL daPy_lk_c::procShipCannon_init() {
commonProcInit(daPyProc_SHIP_CANNON_e);
deleteEquipItem(TRUE);
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
ship->setCannon();
initShipBaseAnime();
setShipRidePos(1);
@@ -1007,7 +1009,7 @@ BOOL daPy_lk_c::procShipCrane_init() {
commonProcInit(daPyProc_SHIP_CRANE_e);
deleteEquipItem(TRUE);
gravity = 0.0f;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
ship->setCrane();
if (ship->getRopeCnt() != 0) {
initShipCraneAnime();
@@ -1017,7 +1019,7 @@ BOOL daPy_lk_c::procShipCrane_init() {
setShipRidePos(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK2_e);
m34D4 = 0;
mProcVar2.m34D4 = 0;
return true;
}
@@ -1050,8 +1052,8 @@ BOOL daPy_lk_c::procShipCrane() {
}
#endif
} else if (ship->checkSalvageDemo()) {
if (m34D4 == 0 && ship->checkCraneUpEnd()) {
m34D4 = 1;
if (mProcVar2.m34D4 == 0 && ship->checkCraneUpEnd()) {
mProcVar2.m34D4 = 1;
daPy_ANM anm;
if (ship->getCraneBaseAngle() > 0) {
// TODO: is this salvage type stuff an inline?
@@ -1082,13 +1084,13 @@ BOOL daPy_lk_c::procShipCrane() {
offModeFlg(ModeFlg_00000100);
onModeFlg(ModeFlg_00000400);
setSingleMoveAnime(anm, 1.0f, 0.0f, -1, 5.0f);
} else if (mProcVar0.m3570 == 0) {
} else if (mProcVar6.m3570 == 0) {
if (ship->getCraneBaseAngle() > 0) {
setSingleMoveAnime(ANM_SALVRWAIT, 1.0f, 0.0f, -1, 5.0f);
mProcVar0.m3570 = 3;
mProcVar6.m3570 = 3;
} else {
setSingleMoveAnime(ANM_SALVLWAIT, 1.0f, 0.0f, -1, 5.0f);
mProcVar0.m3570 = 2;
mProcVar6.m3570 = 2;
}
}
} else {
@@ -1100,37 +1102,37 @@ BOOL daPy_lk_c::procShipCrane() {
dComIfGp_setDoStatus(dActStts_STOP_e);
}
#endif
if (mProcVar0.m3570 == 3 && ship->getCraneBaseAngle() < 0) {
mProcVar0.m3570 = 0;
if (mProcVar6.m3570 == 3 && ship->getCraneBaseAngle() < 0) {
mProcVar6.m3570 = 0;
setSingleMoveAnime(ANM_SALVLR, 1.0f, 0.0f, -1, 5.0f);
offModeFlg(ModeFlg_00000100);
onModeFlg(ModeFlg_00000400);
m3574 = 2;
} else if (mProcVar0.m3570 == 2 && ship->getCraneBaseAngle() > 0) {
mProcVar0.m3570 = 0;
mProcVar7.m3574 = 2;
} else if (mProcVar6.m3570 == 2 && ship->getCraneBaseAngle() > 0) {
mProcVar6.m3570 = 0;
setSingleMoveAnime(ANM_SALVLR, -1.0f, 0.0f, -1, 5.0f);
offModeFlg(ModeFlg_00000100);
onModeFlg(ModeFlg_00000400);
m3574 = 3;
} else if (mProcVar0.m3570 == 0) {
mProcVar7.m3574 = 3;
} else if (mProcVar6.m3570 == 0) {
if (std::fabsf(mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) < 0.01f) {
if (m3574 == 3) {
if (mProcVar7.m3574 == 3) {
setSingleMoveAnime(ANM_SALVRWAIT, 1.0f, 0.0f, -1, 5.0f);
mProcVar0.m3570 = 3;
mProcVar6.m3570 = 3;
onModeFlg(ModeFlg_00000100);
offModeFlg(ModeFlg_00000400);
} else {
setSingleMoveAnime(ANM_SALVLWAIT, 1.0f, 0.0f, -1, 5.0f);
mProcVar0.m3570 = 2;
mProcVar6.m3570 = 2;
onModeFlg(ModeFlg_00000100);
offModeFlg(ModeFlg_00000400);
}
} else if ((m3574 == 3 && ship->getCraneBaseAngle() < 0) || (m3574 == 2 && ship->getCraneBaseAngle() > 0)) {
} else if ((mProcVar7.m3574 == 3 && ship->getCraneBaseAngle() < 0) || (mProcVar7.m3574 == 2 && ship->getCraneBaseAngle() > 0)) {
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-1.0f * mFrameCtrlUnder[UNDER_MOVE0_e].getRate());
if (m3574 == 3) {
m3574 = 2;
if (mProcVar7.m3574 == 3) {
mProcVar7.m3574 = 2;
} else {
m3574 = 3;
mProcVar7.m3574 = 3;
}
}
} else if (ship->checkRopeCntMax()) {
@@ -1142,7 +1144,7 @@ BOOL daPy_lk_c::procShipCrane() {
}
}
if (checkModeFlg(ModeFlg_00000100) || mProcVar0.m3570 == 0) {
if (checkModeFlg(ModeFlg_00000100) || mProcVar6.m3570 == 0) {
onModeFlg(ModeFlg_00000080 | ModeFlg_08000000);
} else {
offModeFlg(ModeFlg_00000080 | ModeFlg_08000000);
@@ -1163,11 +1165,11 @@ BOOL daPy_lk_c::procShipGetOff_init() {
commonProcInit(daPyProc_SHIP_GET_OFF_e);
deleteEquipItem(TRUE);
setSingleMoveAnime(ANM_DASH, m_HIO->mMove.m.field_0x40, 0.0f, -1, 5.0f);
mVelocity = 8.0f;
mNormalSpeed = 8.0f;
gravity = 0.0f;
shape_angle.y = ship->shape_angle.y + -0x4000;
current.angle.y = shape_angle.y;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
m370C.x = current.pos.x + cM_ssin(shape_angle.y) * l_ship_ledge.x;
m370C.y = ship->current.pos.y + l_ship_ledge.y;
m370C.z = current.pos.z + cM_scos(shape_angle.y) * l_ship_ledge.x;
@@ -1183,7 +1185,7 @@ BOOL daPy_lk_c::procShipGetOff() {
if (ship == NULL) {
return checkNextMode(0);
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
current.pos.y = current.pos.y + (ship->current.pos.y - m35A0);
cLib_chaseF(&current.pos.y, ship->current.pos.y + l_ship_ledge.y, 4.0f);
m35A0 = ship->current.pos.y;
@@ -1197,9 +1199,9 @@ BOOL daPy_lk_c::procShipGetOff() {
m_HIO->mAutoJump.m.field_0x30
);
gravity = m_HIO->mAutoJump.m.field_0xC;
mVelocity = m_HIO->mShip.m.field_0x10;
mNormalSpeed = m_HIO->mShip.m.field_0x10;
speed.y = m_HIO->mShip.m.field_0x14;
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
m34C2 = 1;
ship->setGetOffSecond();
onModeFlg(ModeFlg_MIDAIR);
+18 -18
View File
@@ -80,12 +80,12 @@ void daPy_lk_c::setSpeedAndAngleSwim() {
setNormalSpeedF(fVar1, m_HIO->mSwim.m.field_0x18, m_HIO->mSwim.m.field_0x1C, m_HIO->mSwim.m.field_0x20);
if (bVar3 && mVelocity < 5.0f) {
if (bVar3 && mNormalSpeed < 5.0f) {
current.angle.y = m34E8;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
}
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
}
}
@@ -134,10 +134,10 @@ BOOL daPy_lk_c::changeSwimProc() {
offNoResetFlg0(daPyFlg0_UNK100);
mMaxNormalSpeed = m_HIO->mSwim.m.field_0xC;
mVelocity *= 0.75f;
mNormalSpeed *= 0.75f;
if (mVelocity >= mMaxNormalSpeed) {
mVelocity = mMaxNormalSpeed;
if (mNormalSpeed >= mMaxNormalSpeed) {
mNormalSpeed = mMaxNormalSpeed;
}
m35C4 = 0.0f;
@@ -265,7 +265,7 @@ void daPy_lk_c::setSwimMoveAnime(daPy_ANM swimMoveAnm) {
f32 endFrame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd();
setSingleMoveAnime(
swimMoveAnm,
(std::fabsf(mVelocity) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50) / mMaxNormalSpeed) +
(std::fabsf(mNormalSpeed) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50) / mMaxNormalSpeed) +
m_HIO->mSwim.m.field_0x50 +
(getSwimTimerRate() * m_HIO->mSwim.m.field_0x74),
0.0f,
@@ -307,12 +307,12 @@ void daPy_lk_c::setSwimTimerStartStop() {
target = cM_fcos((1.0f - swimTimerRate) * M_PI) * -m_HIO->mSwim.m.field_0x78;
if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(0.0f) && mCurProc != daPyProc_SWIM_UP_e) {
if (mProcVar0.m3570 && !checkNoResetFlg0(daPyFlg0_UNK4000)) {
if (mProcVar6.m3570 && !checkNoResetFlg0(daPyFlg0_UNK4000)) {
voiceStart(0x22);
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
else {
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
}
}
}
@@ -365,7 +365,7 @@ BOOL daPy_lk_c::procSwimUp_init(BOOL param_1) {
}
}
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
return TRUE;
}
@@ -412,7 +412,7 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
if (param_1) {
fVar2 = frameCtrl.getFrame() / (f32)frameCtrl.getEnd();
mVelocity = speedF * (1.0f - m_HIO->mSwim.m.field_0x60) + speedF * std::fabsf(cM_fcos(fVar2 * M_PI)) * m_HIO->mSwim.m.field_0x60;
mNormalSpeed = speedF * (1.0f - m_HIO->mSwim.m.field_0x60) + speedF * std::fabsf(cM_fcos(fVar2 * M_PI)) * m_HIO->mSwim.m.field_0x60;
}
else {
fVar2 = 0.0f;
@@ -433,16 +433,16 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
}
m35C4 = m_HIO->mSwim.m.field_0x48;
m34D4 = 0;
mProcVar0.m3570 = 0;
mProcVar2.m34D4 = 0;
mProcVar6.m3570 = 0;
return TRUE;
}
/* 8013DCDC-8013DE8C .text procSwimWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procSwimWait() {
setSpeedAndAngleSwim();
m34D4 += (s16)((cM_rndF(0.3f) + 0.85f) * m_HIO->mSwim.m.field_0x2);
m35C4 = cM_ssin(m34D4) * m_HIO->mSwim.m.field_0x4C + m_HIO->mSwim.m.field_0x48;
mProcVar2.m34D4 += (s16)((cM_rndF(0.3f) + 0.85f) * m_HIO->mSwim.m.field_0x2);
m35C4 = cM_ssin(mProcVar2.m34D4) * m_HIO->mSwim.m.field_0x4C + m_HIO->mSwim.m.field_0x48;
if (changeSwimOutProc()) {
return TRUE;
@@ -514,7 +514,7 @@ BOOL daPy_lk_c::procSwimMove_init(BOOL param_1) {
dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e);
m35C4 = m_HIO->mSwim.m.field_0x5C;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
return TRUE;
}
@@ -575,7 +575,7 @@ BOOL daPy_lk_c::procSwimMove() {
}
}
else {
frameCtrl.setRate((std::fabsf(mVelocity) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50)) / mMaxNormalSpeed + m_HIO->mSwim.m.field_0x50 + (f32)(getSwimTimerRate() * m_HIO->mSwim.m.field_0x74));
frameCtrl.setRate((std::fabsf(mNormalSpeed) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50)) / mMaxNormalSpeed + m_HIO->mSwim.m.field_0x50 + (f32)(getSwimTimerRate() * m_HIO->mSwim.m.field_0x74));
}
if (mDirection == DIR_BACKWARD) {
+178 -150
View File
@@ -56,20 +56,20 @@ void daPy_lk_c::setSwordModel(BOOL r28)
},
};
u8* buffer;
J3DModelData* modelData;
J3DAnmTransform* bck = checkNormalSwordEquip() ? getItemAnimeResource(LKANM_BCK_CUTAA) : getItemAnimeResource(LKANM_BCK_CUTAMS);
mEquipItem = daPyItem_SWORD_e;
JKRHeap* oldHeap = setItemHeap();
const sword_model_tbl_s& model_tbl = checkNormalSwordEquip() ? sword_model_tbl[0] : sword_model_tbl[1];
J3DModelData* modelData = initModel(&mpEquipItemModel, model_tbl.bladeModel, 0x37221222);
modelData = initModel(&mpEquipItemModel, model_tbl.bladeModel, 0x37221222);
BOOL ret = mSwordAnim.init(modelData, bck, false, J3DFrameCtrl::EMode_LOOP);
if (!ret) {
JUT_ASSERT(86, FALSE);
}
u8* buffer;
if (!checkNormalSwordEquip()) {
buffer = new (0x20) u8[0x400];
JKRReadIdxResource(buffer, 0x400, LKANM_BTK_TSWMS, dComIfGp_getAnmArchive());
@@ -256,7 +256,7 @@ BOOL daPy_lk_c::checkDemoShieldNoDraw() {
/* 801554C8-80155544 .text checkDemoSwordNoDraw__9daPy_lk_cFi */
BOOL daPy_lk_c::checkDemoSwordNoDraw(BOOL param_0) {
if ((mEquipItem == daPyItem_SWORD_e || param_0) &&
(dComIfGs_isEventBit(dSv_event_flag_c::UNK_3F40) || (mCurProc == daPyProc_DEMO_TOOL_e && m34D6 == 1)))
(dComIfGs_isEventBit(dSv_event_flag_c::UNK_3F40) || (mCurProc == daPyProc_DEMO_TOOL_e && mProcVar3.m34D6 == 1)))
{
return true;
} else {
@@ -275,7 +275,7 @@ BOOL daPy_lk_c::checkChanceMode() {
/* 80155574-8015559C .text checkCutRollChange__9daPy_lk_cCFv */
BOOL daPy_lk_c::checkCutRollChange() const {
if (mCurProc == daPyProc_CUT_TURN_MOVE_e && m34D0 >= 0) {
if (mCurProc == daPyProc_CUT_TURN_MOVE_e && mProcVar0.m34D0 >= 0) {
return true;
}
return false;
@@ -444,7 +444,7 @@ int daPy_lk_c::changeCutProc() {
}
} else if (bVar1 == 6) {
if (direction == DIR_FORWARD) {
procCutTurn_init(1);
procCutTurn_init(TRUE);
} else if (direction == DIR_NONE) {
procCutExB_init();
} else if (direction == DIR_RIGHT) {
@@ -575,7 +575,7 @@ BOOL daPy_lk_c::procCutA_init(s16 param_0) {
m3700 = cXyz::Zero;
m34C2 = 1;
voiceStart(0);
m34D4 = param_0;
mProcVar2.m34D4 = param_0;
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
m3522 = m_HIO->mCut.mCutA.m.field_0x0;
m351E = m34DC;
@@ -596,21 +596,21 @@ BOOL daPy_lk_c::procCutA() {
}
m3522 = m_HIO->mCut.mCutA.m.field_0x0;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutA.m.field_0xC) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTRER)) {
@@ -628,11 +628,11 @@ BOOL daPy_lk_c::procCutA() {
m34C2 = 1;
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -640,7 +640,7 @@ BOOL daPy_lk_c::procCutA() {
}
current.angle.y = shape_angle.y;
if (frameCtrl.checkPass(m_HIO->mCut.mCutA.m.field_0x28)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutA.m.field_0x10 + m_HIO->mCut.mCutA.m.field_0x14;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutA.m.field_0x10 + m_HIO->mCut.mCutA.m.field_0x14;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutA.m.field_0x2C && frameCtrl.getFrame() < m_HIO->mCut.mCutA.m.field_0x30)
{
@@ -651,7 +651,7 @@ BOOL daPy_lk_c::procCutA() {
onResetFlg0(daPyRFlg0_UNK2);
}
cLib_addCalc(
&mVelocity, 0.0f, m_HIO->mCut.mCutA.m.field_0x20, m_HIO->mCut.mCutA.m.field_0x18, m_HIO->mCut.mCutA.m.field_0x1C
&mNormalSpeed, 0.0f, m_HIO->mCut.mCutA.m.field_0x20, m_HIO->mCut.mCutA.m.field_0x18, m_HIO->mCut.mCutA.m.field_0x1C
);
return true;
@@ -678,7 +678,7 @@ BOOL daPy_lk_c::procCutF_init(s16 param_0) {
m3700 = cXyz::Zero;
m34C2 = 1;
voiceStart(0);
m34D4 = param_0;
mProcVar2.m34D4 = param_0;
m351E = m34DC;
m3522 = m_HIO->mCut.mCutF.m.field_0x0;
onNoResetFlg0(daPyFlg0_UNK4);
@@ -700,21 +700,21 @@ BOOL daPy_lk_c::procCutF() {
mpCutfBtk->setFrame(frameCtrl.getFrame());
m3522 = m_HIO->mCut.mCutF.m.field_0x0;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutF.m.field_0xC) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTRER)) {
@@ -731,11 +731,11 @@ BOOL daPy_lk_c::procCutF() {
m34C2 = 1;
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -743,7 +743,7 @@ BOOL daPy_lk_c::procCutF() {
}
current.angle.y = shape_angle.y;
if (frameCtrl.checkPass(m_HIO->mCut.mCutF.m.field_0x28)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutF.m.field_0x10 + m_HIO->mCut.mCutF.m.field_0x14;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutF.m.field_0x10 + m_HIO->mCut.mCutF.m.field_0x14;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutF.m.field_0x2C && frameCtrl.getFrame() < m_HIO->mCut.mCutF.m.field_0x30)
{
@@ -754,7 +754,7 @@ BOOL daPy_lk_c::procCutF() {
onResetFlg0(daPyRFlg0_UNK2);
}
cLib_addCalc(
&mVelocity, 0.0f, m_HIO->mCut.mCutF.m.field_0x20, m_HIO->mCut.mCutF.m.field_0x18, m_HIO->mCut.mCutF.m.field_0x1C
&mNormalSpeed, 0.0f, m_HIO->mCut.mCutF.m.field_0x20, m_HIO->mCut.mCutF.m.field_0x18, m_HIO->mCut.mCutF.m.field_0x1C
);
return true;
}
@@ -778,7 +778,7 @@ BOOL daPy_lk_c::procCutR_init(s16 param_0) {
m3700 = cXyz::Zero;
m34C2 = 1;
voiceStart(0);
m34D4 = param_0;
mProcVar2.m34D4 = param_0;
m351E = m34DC;
m3522 = m_HIO->mCut.mCutR.m.field_0x0;
onNoResetFlg0(daPyFlg0_UNK4);
@@ -799,21 +799,21 @@ BOOL daPy_lk_c::procCutR() {
}
m3522 = m_HIO->mCut.mCutR.m.field_0x0;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutR.m.field_0xC) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
@@ -832,11 +832,11 @@ BOOL daPy_lk_c::procCutR() {
m34C2 = 1;
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -844,7 +844,7 @@ BOOL daPy_lk_c::procCutR() {
}
current.angle.y = shape_angle.y;
if (frameCtrl.checkPass(m_HIO->mCut.mCutR.m.field_0x28)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutR.m.field_0x10 + m_HIO->mCut.mCutR.m.field_0x14;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutR.m.field_0x10 + m_HIO->mCut.mCutR.m.field_0x14;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutR.m.field_0x2C && frameCtrl.getFrame() < m_HIO->mCut.mCutR.m.field_0x30)
{
@@ -855,7 +855,7 @@ BOOL daPy_lk_c::procCutR() {
onResetFlg0(daPyRFlg0_UNK2);
}
cLib_addCalc(
&mVelocity, 0.0f, m_HIO->mCut.mCutR.m.field_0x20, m_HIO->mCut.mCutR.m.field_0x18, m_HIO->mCut.mCutR.m.field_0x1C
&mNormalSpeed, 0.0f, m_HIO->mCut.mCutR.m.field_0x20, m_HIO->mCut.mCutR.m.field_0x18, m_HIO->mCut.mCutR.m.field_0x1C
);
return true;
}
@@ -879,7 +879,7 @@ BOOL daPy_lk_c::procCutL_init(s16 param_0) {
m3700 = cXyz::Zero;
m34C2 = 1;
voiceStart(0);
m34D4 = param_0;
mProcVar2.m34D4 = param_0;
m351E = m34DC;
m3522 = m_HIO->mCut.mCutL.m.field_0x0;
onNoResetFlg0(daPyFlg0_UNK4);
@@ -900,21 +900,21 @@ BOOL daPy_lk_c::procCutL() {
}
m3522 = m_HIO->mCut.mCutL.m.field_0x0;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_LEFT;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutL.m.field_0xC) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_LEFT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTREL)) {
@@ -931,11 +931,11 @@ BOOL daPy_lk_c::procCutL() {
m34C2 = 1;
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -943,7 +943,7 @@ BOOL daPy_lk_c::procCutL() {
}
current.angle.y = shape_angle.y;
if (frameCtrl.checkPass(m_HIO->mCut.mCutL.m.field_0x28)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutL.m.field_0x10 + m_HIO->mCut.mCutL.m.field_0x14;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutL.m.field_0x10 + m_HIO->mCut.mCutL.m.field_0x14;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutL.m.field_0x2C && frameCtrl.getFrame() < m_HIO->mCut.mCutL.m.field_0x30)
{
@@ -954,7 +954,7 @@ BOOL daPy_lk_c::procCutL() {
onResetFlg0(daPyRFlg0_UNK2);
}
cLib_addCalc(
&mVelocity, 0.0f, m_HIO->mCut.mCutL.m.field_0x20, m_HIO->mCut.mCutL.m.field_0x18, m_HIO->mCut.mCutL.m.field_0x1C
&mNormalSpeed, 0.0f, m_HIO->mCut.mCutL.m.field_0x20, m_HIO->mCut.mCutL.m.field_0x18, m_HIO->mCut.mCutL.m.field_0x1C
);
return true;
}
@@ -977,7 +977,7 @@ BOOL daPy_lk_c::procCutEA_init() {
m35EC = m_HIO->mCut.mCutEA.m.field_0x8;
m3700 = cXyz::Zero;
m34C2 = 1;
m34D0 = m_HIO->mCut.mCutEA.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutEA.m.field_0x2;
onNoResetFlg0(daPyFlg0_UNK4);
voiceStart(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
@@ -998,10 +998,10 @@ BOOL daPy_lk_c::procCutEA() {
offNoResetFlg0(daPyFlg0_UNK4);
}
if (frameCtrl.getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
@@ -1021,7 +1021,7 @@ BOOL daPy_lk_c::procCutEA() {
}
if (frameCtrl.checkPass(m_HIO->mCut.mCutEA.m.field_0x24)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutEA.m.field_0xC + m_HIO->mCut.mCutEA.m.field_0x10;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutEA.m.field_0xC + m_HIO->mCut.mCutEA.m.field_0x10;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutEA.m.field_0x28 &&
frameCtrl.getFrame() < m_HIO->mCut.mCutEA.m.field_0x2C)
@@ -1034,7 +1034,7 @@ BOOL daPy_lk_c::procCutEA() {
}
m34C2 = 1;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutEA.m.field_0x1C,
m_HIO->mCut.mCutEA.m.field_0x14,
@@ -1061,7 +1061,7 @@ BOOL daPy_lk_c::procCutEB_init() {
m35EC = m_HIO->mCut.mCutEB.m.field_0x8;
m3700 = cXyz::Zero;
m34C2 = 1;
m34D0 = m_HIO->mCut.mCutEB.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutEB.m.field_0x2;
onNoResetFlg0(daPyFlg0_UNK4);
voiceStart(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
@@ -1082,10 +1082,10 @@ BOOL daPy_lk_c::procCutEB() {
offNoResetFlg0(daPyFlg0_UNK4);
}
if (frameCtrl.getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_LEFT;
checkNextMode(0);
return true;
@@ -1102,7 +1102,7 @@ BOOL daPy_lk_c::procCutEB() {
}
if (frameCtrl.checkPass(m_HIO->mCut.mCutEB.m.field_0x24)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutEB.m.field_0xC + m_HIO->mCut.mCutEB.m.field_0x10;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutEB.m.field_0xC + m_HIO->mCut.mCutEB.m.field_0x10;
}
if (frameCtrl.getFrame() >= m_HIO->mCut.mCutEB.m.field_0x28 &&
frameCtrl.getFrame() < m_HIO->mCut.mCutEB.m.field_0x2C)
@@ -1115,7 +1115,7 @@ BOOL daPy_lk_c::procCutEB() {
}
m34C2 = 1;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutEB.m.field_0x1C,
m_HIO->mCut.mCutEB.m.field_0x14,
@@ -1142,7 +1142,7 @@ BOOL daPy_lk_c::procCutExA_init() {
m35EC = m_HIO->mCut.mCutExA.m.field_0xC;
m3700 = cXyz::Zero;
m34C2 = 1;
m34D0 = m_HIO->mCut.mCutExA.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutExA.m.field_0x2;
onNoResetFlg0(daPyFlg0_UNK4);
voiceStart(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
@@ -1163,21 +1163,24 @@ BOOL daPy_lk_c::procCutExA() {
}
m3522 = m_HIO->mCut.mCutExA.m.field_0x4;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutExA.m.field_0x1C) {
f32 dVar4 = mVelocity;
mVelocity = 0.0f;
f32 dVar4 = mNormalSpeed;
mNormalSpeed = 0.0f;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
} else if (frameCtrl.checkPass(11.0f)) {
mNormalSpeed = dVar4;
}
#if VERSION > VERSION_DEMO
else if (frameCtrl.checkPass(11.0f)) {
onModeFlg(ModeFlg_00000080);
}
#endif
if (changeCutReverseProc(ANM_CUTREL)) {
return true;
}
@@ -1205,7 +1208,7 @@ BOOL daPy_lk_c::procCutExA() {
}
m34C2 = 1;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutEA.m.field_0x1C,
m_HIO->mCut.mCutEA.m.field_0x14,
@@ -1232,7 +1235,7 @@ BOOL daPy_lk_c::procCutExB_init() {
m35EC = m_HIO->mCut.mCutExB.m.field_0x8;
m3700 = cXyz::Zero;
m34C2 = 1;
m34D0 = m_HIO->mCut.mCutExB.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutExB.m.field_0x2;
onNoResetFlg0(daPyFlg0_UNK4);
voiceStart(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
@@ -1254,16 +1257,19 @@ BOOL daPy_lk_c::procCutExB() {
}
if (frameCtrl.getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
checkNextMode(0);
return true;
}
} else if (frameCtrl.checkPass(14.0f)) {
}
#if VERSION > VERSION_DEMO
else if (frameCtrl.checkPass(14.0f)) {
onModeFlg(ModeFlg_00000080);
}
#endif
if (changeCutReverseProc(ANM_CUTREL)) {
return true;
@@ -1291,7 +1297,7 @@ BOOL daPy_lk_c::procCutExB() {
}
m34C2 = 1;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutEA.m.field_0x1C,
m_HIO->mCut.mCutEA.m.field_0x14,
@@ -1301,11 +1307,11 @@ BOOL daPy_lk_c::procCutExB() {
}
/* 80157D3C-80158220 .text procCutTurn_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procCutTurn_init(int param_0) {
BOOL daPy_lk_c::procCutTurn_init(BOOL param_0) {
float fVar1;
commonProcInit(daPyProc_CUT_TURN_e);
if (param_0 != 0) {
if (param_0) {
fVar1 = m_HIO->mCut.mCutTurn.m.field_0xC;
} else {
fVar1 = m_HIO->mCut.mCutTurn.m.field_0x8;
@@ -1335,18 +1341,26 @@ BOOL daPy_lk_c::procCutTurn_init(int param_0) {
}
if (checkNormalSwordEquip()) {
m35A4 = m_HIO->mCut.mCutTurn.m.field_0x40;
#if VERSION == VERSION_DEMO
mAtCyl.SetAtAtp(2);
#else
if (checkNoResetFlg1(daPyFlg1_SOUP_POWER_UP)) {
mAtCyl.SetAtAtp(4);
} else {
mAtCyl.SetAtAtp(2);
}
#endif
} else {
m35A4 = m_HIO->mCut.mCutTurn.m.field_0x44;
#if VERSION == VERSION_DEMO
mAtCyl.SetAtAtp(4);
#else
if (checkNoResetFlg1(daPyFlg1_SOUP_POWER_UP)) {
mAtCyl.SetAtAtp(8);
} else {
mAtCyl.SetAtAtp(4);
}
#endif
}
setBlurPosResource(LKANM__CUTTURN_POS);
} else {
@@ -1354,10 +1368,14 @@ BOOL daPy_lk_c::procCutTurn_init(int param_0) {
u32 boko_type;
if (boko == NULL) {
boko_type = daBoko_c::Type_BOKO_STICK_e;
#if VERSION > VERSION_DEMO
mAtCyl.SetAtAtp(1);
#endif
} else {
boko_type = fopAcM_GetParam(boko);
#if VERSION > VERSION_DEMO
mAtCyl.SetAtAtp(boko->getAtPoint());
#endif
}
if (boko_type == daBoko_c::Type_BOKO_STICK_e) {
m35A4 = m_HIO->mCut.mCutTurn.m.field_0x60;
@@ -1378,7 +1396,7 @@ BOOL daPy_lk_c::procCutTurn_init(int param_0) {
m35EC = fVar1;
m3700 = cXyz::Zero;
m34C2 = 1;
m34D0 = m_HIO->mCut.mCutTurn.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutTurn.m.field_0x2;
current.angle.y = shape_angle.y;
m3578 = 0;
voiceStart(1);
@@ -1415,14 +1433,14 @@ BOOL daPy_lk_c::procCutTurn_init(int param_0) {
m35A0 = 21.0f;
}
}
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
if (m34C4 == 6) {
onNoResetFlg0(daPyFlg0_UNK4);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
mCutCount = 0;
}
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m34C4 = 0;
endFlameDamageEmitter();
return true;
@@ -1432,15 +1450,15 @@ BOOL daPy_lk_c::procCutTurn_init(int param_0) {
BOOL daPy_lk_c::procCutTurn() {
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
m35EC = frameCtrl.getFrame();
if ((mProcVar0.m3570 != 0 && swordButton()) && m34C5 == 0) {
if ((mProcVar6.m3570 != 0 && swordButton()) && m34C5 == 0) {
onNoResetFlg0(daPyFlg0_UNK4);
} else {
offNoResetFlg0(daPyFlg0_UNK4);
}
if (frameCtrl.getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
mDirection = DIR_RIGHT;
checkNextMode(0);
@@ -1530,7 +1548,7 @@ BOOL daPy_lk_c::procCutRoll_init() {
#endif
}
mAtCyl.SetR(m35A4 * 0.5f);
m34D0 = m_HIO->mCut.mCutRoll.m.field_0x2;
mProcVar0.m34D0 = m_HIO->mCut.mCutRoll.m.field_0x2;
current.angle.y = shape_angle.y;
setFootEffectPosType(4);
dComIfGp_setPlayerStatus0(0, daPyStts0_SPIN_ATTACK_e);
@@ -1540,22 +1558,21 @@ BOOL daPy_lk_c::procCutRoll_init() {
/* 801585D8-801588F0 .text procCutRoll__9daPy_lk_cFv */
BOOL daPy_lk_c::procCutRoll() {
s16 uVar1;
f32 fVar2;
s16 sVar3;
cXyz local_48;
cXyz local_3c;
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
uVar1 = current.angle.y;
s16 uVar1 = current.angle.y;
if (mAcch.ChkWallHit() && (mDemo.getDemoMode() != daPy_demo_c::DEMO_CUT_ROLL_e)) {
fVar2 = 25.0f + mAcchCir[0].GetWallR();
local_48.set(current.pos.x, current.pos.y + mAcchCir[0].GetWallH(), current.pos.z);
f32 cos = cM_scos(uVar1);
f32 sin = cM_ssin(uVar1);
local_3c.x = local_48.x + fVar2 * sin;
local_3c.y = local_48.y;
local_3c.z = local_48.z + fVar2 * cos;
local_3c.set(
local_48.x + fVar2 * cM_ssin(current.angle.y),
local_48.y,
local_48.z + fVar2 * cM_scos(current.angle.y)
);
mLinkLinChk.Set(&local_48, &local_3c, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
@@ -1577,14 +1594,14 @@ BOOL daPy_lk_c::procCutRoll() {
sVar3 = current.angle.y - uVar1;
if (dComIfGp_event_runCheck()) {
if (mDemo.getDemoMode() != daPy_demo_c::DEMO_CUT_ROLL_e) {
m34D0 = 0;
mProcVar0.m34D0 = 0;
} else {
m34D0 = 5;
mProcVar0.m34D0 = 5;
}
}
if (m34D0 > 0) {
m34D0--;
mVelocity = m_HIO->mCut.mCutRoll.m.field_0x14;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
mNormalSpeed = m_HIO->mCut.mCutRoll.m.field_0x14;
m34EC -= m_HIO->mCut.mCutRoll.m.field_0x4 + sVar3;
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
onResetFlg0(daPyRFlg0_UNK1);
@@ -1592,7 +1609,7 @@ BOOL daPy_lk_c::procCutRoll() {
onResetFlg0(daPyRFlg0_UNK2);
cLib_chaseF(mAtCyl.GetRP(), m35A4, 18.0f);
seStartMapInfo(JA_SE_LK_V_KAITEN_S);
} else if (cLib_addCalc(&mVelocity, 0.0f, 0.1f, 2.5f, 1.0f) < 0.5f) {
} else if (cLib_addCalc(&mNormalSpeed, 0.0f, 0.1f, 2.5f, 1.0f) < 0.5f) {
shape_angle.y = shape_angle.y + m34EC;
current.angle.y = shape_angle.y;
if (dComIfGp_event_runCheck() && (mDemo.getDemoMode() != daPy_demo_c::DEMO_CUT_ROLL_e)) {
@@ -1601,8 +1618,7 @@ BOOL daPy_lk_c::procCutRoll() {
procCutRollEnd_init();
}
} else {
f32 f2 = -0x200 + m_HIO->mCut.mCutRoll.m.field_0x4 + sVar3;
m34EC -= (0x200 + (f2 * (mVelocity / m_HIO->mCut.mCutRoll.m.field_0x14)));
m34EC -= (0x200 + ((m_HIO->mCut.mCutRoll.m.field_0x4 - 0x200 + sVar3) * (mNormalSpeed / m_HIO->mCut.mCutRoll.m.field_0x14)));
}
} else {
seStartMapInfo(JA_SE_LK_V_KAITEN_S);
@@ -1614,9 +1630,9 @@ BOOL daPy_lk_c::procCutRoll() {
BOOL daPy_lk_c::procCutRollEnd_init() {
commonProcInit(daPyProc_CUT_ROLL_END_e);
setSingleMoveAnime(ANM_WAITQ, m_HIO->mMove.m.field_0x84, 0.0f, -1, m_HIO->mBasic.m.field_0xC);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
m34D0 = m_HIO->mCut.mCutRoll.m.field_0x6;
mProcVar0.m34D0 = m_HIO->mCut.mCutRoll.m.field_0x6;
static JGeometry::TVec3<f32> emitter_trans(0.0f, 55.0f, 0.0f);
static JGeometry::TVec3<f32> particle_scale(0.76f, 0.76f, 0.76f);
JPABaseEmitter* emitter =
@@ -1634,8 +1650,8 @@ BOOL daPy_lk_c::procCutRollEnd_init() {
/* 80158A40-80158A98 .text procCutRollEnd__9daPy_lk_cFv */
BOOL daPy_lk_c::procCutRollEnd() {
seStartOnlyReverb(JA_SE_CM_MD_PIYO);
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
checkNextMode(0);
}
@@ -1652,7 +1668,7 @@ BOOL daPy_lk_c::procCutTurnCharge_init() {
m_HIO->mCut.mCutTurnR.m.field_0x4,
m_HIO->mCut.mCutTurnR.m.field_0x14
);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
return true;
}
@@ -1696,9 +1712,9 @@ BOOL daPy_lk_c::procCutTurnMove_init() {
pcVar4 = checkNormalSwordEquip() ? NULL : (cXyz*)&eff_scale;
m32E4.makeEmitter(dPa_name::ID_AK_JN_CHARGEPOWER00, mpCLModel->getAnmMtx(8), &current.pos, pcVar4);
m32F0.makeEmitter(dPa_name::ID_AK_JN_CHARGEPOWER01, mpCLModel->getAnmMtx(8), &current.pos, pcVar4);
m34D0 = 47;
mProcVar0.m34D0 = 47;
} else {
m34D0 = -1;
mProcVar0.m34D0 = -1;
}
dComIfGp_setPlayerStatus0(0, daPyStts0_SPIN_ATTACK_e);
@@ -1709,13 +1725,13 @@ BOOL daPy_lk_c::procCutTurnMove_init() {
BOOL daPy_lk_c::procCutTurnMove() {
setShapeAngleToAtnActor();
m34E6 = shape_angle.y;
if (0 < m34D0) {
m34D0--;
if (m34D0 == 0) {
if (0 < mProcVar0.m34D0) {
mProcVar0.m34D0--;
if (mProcVar0.m34D0 == 0) {
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK20000_e);
}
}
if (m34D0 != -1) {
if (mProcVar0.m34D0 != -1) {
seStartSystem(JA_SE_LK_SWORD_CHARGE);
}
if (changeSlideProc()) {
@@ -1735,16 +1751,16 @@ BOOL daPy_lk_c::procCutTurnMove() {
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
dVar6 = ANM_CUTTURNPWLR;
in_f30 = m_HIO->mCut.mCutTurnR.m.field_0x24;
mVelocity *= 0.5f;
mNormalSpeed *= 0.5f;
} else if (mDirection != direction) {
mVelocity *= 0.5f;
mNormalSpeed *= 0.5f;
}
} else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
dVar6 = ANM_CUTTURNPWFB;
in_f30 = m_HIO->mCut.mCutTurnR.m.field_0x1C;
mVelocity *= 0.5f;
mNormalSpeed *= 0.5f;
} else if (mDirection != direction) {
mVelocity *= 0.5f;
mNormalSpeed *= 0.5f;
}
if (mDirection == direction) {
dVar8 = m_HIO->mMove.m.field_0x14 * mStickDistance;
@@ -1765,7 +1781,7 @@ BOOL daPy_lk_c::procCutTurnMove() {
} else { // DIR_LEFT
dVar8 = m_HIO->mCut.mCutTurnR.m.field_0x20;
}
f32 dVar7 = mVelocity / mMaxNormalSpeed;
f32 dVar7 = mNormalSpeed / mMaxNormalSpeed;
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(dVar7 * dVar8);
if (dVar8 >= 0.0f) {
mFrameCtrlUnder[UNDER_MOVE0_e].setLoop(mFrameCtrlUnder[UNDER_MOVE0_e].getStart());
@@ -1774,7 +1790,7 @@ BOOL daPy_lk_c::procCutTurnMove() {
}
initSeAnime();
m3598 = 1.0f - ((1.0f - m_HIO->mCut.mCutTurnR.m.field_0x28) * dVar7);
if (mVelocity <= 0.001f) {
if (mNormalSpeed <= 0.001f) {
onModeFlg(ModeFlg_00000001);
m3598 = 0.0f;
} else {
@@ -1785,11 +1801,11 @@ BOOL daPy_lk_c::procCutTurnMove() {
mFrameCtrlUpper[UPPER_MOVE0_e].setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getEnd() - 0.001f);
mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame());
}
} else if (m34D0 == 0) {
} else if (mProcVar0.m34D0 == 0) {
procCutRoll_init();
} else {
mVelocity = speedF;
procCutTurn_init(0);
mNormalSpeed = speedF;
procCutTurn_init(FALSE);
}
return true;
@@ -1797,7 +1813,7 @@ BOOL daPy_lk_c::procCutTurnMove() {
/* 80159130-801592A4 .text procCutReverse_init__9daPy_lk_cFQ29daPy_lk_c8daPy_ANM */
BOOL daPy_lk_c::procCutReverse_init(daPy_ANM param_0) {
dComIfGp_getVibration().StartShock(4, -0x31, cXyz(0.0f, 1.0f, 0.0f));
dComIfGp_getVibration().StartShock(DEMO_SELECT(2, 4), DEMO_SELECT(1, -0x31), cXyz(0.0f, 1.0f, 0.0f));
if (param_0 == ANM_JATTACK) {
return true;
}
@@ -1814,7 +1830,7 @@ BOOL daPy_lk_c::procCutReverse_init(daPy_ANM param_0) {
m_HIO->mCut.m.field_0x6,
m_HIO->mCut.m.field_0x38
);
mVelocity = 12.0f;
mNormalSpeed = 12.0f;
current.angle.y = shape_angle.y + 0x8000;
m3522 = 0;
voiceStart(37);
@@ -1829,7 +1845,7 @@ BOOL daPy_lk_c::procCutReverse_init(daPy_ANM param_0) {
/* 801592A4-80159390 .text procCutReverse__9daPy_lk_cFv */
BOOL daPy_lk_c::procCutReverse() {
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mGuard.m.field_0x18,
m_HIO->mGuard.m.field_0x1C,
@@ -1868,7 +1884,7 @@ BOOL daPy_lk_c::procJumpCut_init(int param_0) {
m_HIO->mCut.mCutJump.m.field_0x6,
m_HIO->mCut.mCutJump.m.field_0x28
);
mVelocity = m_HIO->mCut.mCutJump.m.field_0x2C;
mNormalSpeed = m_HIO->mCut.mCutJump.m.field_0x2C;
speed.y = m_HIO->mCut.mCutJump.m.field_0x30;
gravity = m_HIO->mCut.mCutJump.m.field_0x34;
} else {
@@ -1879,12 +1895,12 @@ BOOL daPy_lk_c::procJumpCut_init(int param_0) {
m_HIO->mCut.mCutJump.m.field_0x0,
m_HIO->mCut.mCutJump.m.field_0x10
);
mVelocity = m_HIO->mCut.mCutJump.m.field_0x14;
mNormalSpeed = m_HIO->mCut.mCutJump.m.field_0x14;
speed.y = m_HIO->mCut.mCutJump.m.field_0x18;
gravity = m_HIO->mCut.mCutJump.m.field_0x1C;
}
current.angle.y = shape_angle.y;
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
voiceStart(1);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
if (mEquipItem == daPyItem_BOKO_e) {
@@ -1904,9 +1920,9 @@ BOOL daPy_lk_c::procJumpCut() {
if (current.angle.y == shape_angle.y && changeCutReverseProc(ANM_JATTACK)) {
current.angle.y = current.angle.y + 0x8000;
mVelocity = 27.0f;
mNormalSpeed = 27.0f;
} else if (current.angle.y != shape_angle.y) {
cLib_addCalc(&mVelocity, 5.0f, 0.2f, 1.0f, 0.1f);
cLib_addCalc(&mNormalSpeed, 5.0f, 0.2f, 1.0f, 0.1f);
}
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m_HIO->mCut.mCutJump.m.field_0x48) &&
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < m_HIO->mCut.mCutJump.m.field_0x4C))
@@ -1937,7 +1953,7 @@ BOOL daPy_lk_c::procJumpCutLand_init() {
onModeFlg(ModeFlg_DAMAGE);
}
}
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(
ANM_JATTACKLAND,
m_HIO->mCut.mCutJump.m.field_0x38,
@@ -1946,7 +1962,7 @@ BOOL daPy_lk_c::procJumpCutLand_init() {
m_HIO->mCut.mCutJump.m.field_0x40
);
if (mEquipItem == daPyItem_NONE_e) {
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
} else {
onResetFlg0(daPyRFlg0_UNK2);
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
@@ -1960,9 +1976,9 @@ BOOL daPy_lk_c::procJumpCutLand_init() {
onNoResetFlg0(daPyFlg0_CUT_AT_FLG);
}
setJumpCutAtParam();
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
}
m34D0 = m_HIO->mCut.mCutJump.m.field_0x4;
mProcVar0.m34D0 = m_HIO->mCut.mCutJump.m.field_0x4;
current.angle.y = shape_angle.y + 0x8000;
setFootEffectPosType(3);
onResetFlg0(daPyRFlg0_RIGHT_FOOT_ON_GROUND);
@@ -1979,25 +1995,34 @@ BOOL daPy_lk_c::procJumpCutLand_init() {
BOOL daPy_lk_c::procJumpCutLand() {
current.angle.y = shape_angle.y;
resetFootEffect();
if (mProcVar0.m3570 != 0 && changeCutReverseProc(ANM_CUTRER)) {
if (mProcVar6.m3570 != 0 && changeCutReverseProc(ANM_CUTRER)) {
return true;
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
checkNextMode(1);
} else {
checkNextMode(0);
}
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mCut.mCutJump.m.field_0x44) {
checkNextMode(1);
} else if (mProcVar0.m3570 != 0) {
mProcVar0.m3570 = 0;
if (abs(m3578) > 0xf800 && !daPy_dmEcallBack_c::checkCurse() &&
(mEquipItem == daPyItem_SWORD_e || mEquipItem == daPyItem_BOKO_e))
{
procCutTurn_init(1);
} else if (mProcVar6.m3570 != 0) {
mProcVar6.m3570 = 0;
if (
abs(m3578) > 0xf800 &&
#if VERSION > VERSION_DEMO
!daPy_dmEcallBack_c::checkCurse() &&
#endif
(
mEquipItem == daPyItem_SWORD_e
#if VERSION > VERSION_DEMO
|| mEquipItem == daPyItem_BOKO_e
#endif
)
) {
procCutTurn_init(TRUE);
} else {
onResetFlg0(daPyRFlg0_UNK2);
}
@@ -2012,12 +2037,12 @@ BOOL daPy_lk_c::procCutExMJ_init(int param_0) {
commonProcInit(daPyProc_CUT_EX_MJ_e);
if (param_0 != 0) {
dVar3 = ANM_MROLLRC;
m34D6 = 0x71;
mProcVar3.m34D6 = 0x71;
setBlurPosResource(LKANM__BTROTATECUTR_POS);
m35A0 = m_HIO->mCut.mCutExMJ.m.field_0x20;
} else {
dVar3 = ANM_MROLLLC;
m34D6 = 0x70;
mProcVar3.m34D6 = 0x70;
setBlurPosResource(LKANM__BTROTATECUTL_POS);
m35A0 = m_HIO->mCut.mCutExMJ.m.field_0x24;
}
@@ -2047,10 +2072,10 @@ BOOL daPy_lk_c::procCutExMJ_init(int param_0) {
}
speed.y = m_HIO->mCut.mCutExMJ.m.field_0x10;
gravity = m_HIO->mCut.mCutExMJ.m.field_0x14;
m34D4 = 0;
mProcVar2.m34D4 = 0;
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
offNoResetFlg0(daPyFlg0_CUT_AT_FLG);
mVelocity = 7.5f;
mNormalSpeed = 7.5f;
return true;
}
@@ -2066,16 +2091,16 @@ BOOL daPy_lk_c::procCutExMJ() {
m3522 = m_HIO->mCut.mCutExMJ.m.field_0x2;
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (m34D4 == 0) {
m34D4 = 1;
} else if (m34D4 == 1) {
if (mProcVar2.m34D4 == 0) {
mProcVar2.m34D4 = 1;
} else if (mProcVar2.m34D4 == 1) {
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1, m_HIO->mCut.mCutExMJ.m.field_0x1C);
offModeFlg(ModeFlg_00000400);
setTextureAnime(0x37, 0);
resetSeAnime();
m34D4 = 2;
mProcVar2.m34D4 = 2;
}
if (m34D6 == 0x71) {
if (mProcVar3.m34D6 == 0x71) {
if (!(m34EC > 0) || m34EC > 0x4000) {
m34EC -= 0x1800;
} else {
@@ -2106,7 +2131,7 @@ BOOL daPy_lk_c::procCutExMJ() {
gravity = m_HIO->mCut.mCutExMJ.m.field_0x18;
}
setFallVoice();
if (m34D4 != 2 && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m35A0)) {
if (mProcVar2.m34D4 != 2 && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m35A0)) {
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
onResetFlg0(daPyRFlg0_UNK1);
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
@@ -2114,7 +2139,7 @@ BOOL daPy_lk_c::procCutExMJ() {
onResetFlg0(daPyRFlg0_UNK2);
}
if (current.pos.y < m3688.y - 200.0f) {
cLib_chaseF(&mVelocity, 0.0f, (0.1f * m_HIO->mAutoJump.m.field_0x3C));
cLib_chaseF(&mNormalSpeed, 0.0f, (0.1f * m_HIO->mAutoJump.m.field_0x3C));
}
return true;
}
@@ -2157,21 +2182,24 @@ BOOL daPy_lk_c::procCutKesa() {
}
m3522 = m_HIO->mCut.mCutKesa.m.field_0x2;
if (frameCtrl.getRate() < 0.01f) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
checkNextMode(0);
return true;
}
if (frameCtrl.getFrame() > m_HIO->mCut.mCutKesa.m.field_0x18) {
f32 dVar4 = mVelocity;
mVelocity = 0.0f;
f32 dVar4 = mNormalSpeed;
mNormalSpeed = 0.0f;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
} else if (frameCtrl.checkPass(16.0f)) {
mNormalSpeed = dVar4;
}
#if VERSION > VERSION_DEMO
else if (frameCtrl.checkPass(16.0f)) {
onModeFlg(ModeFlg_00000080);
}
#endif
if (changeCutReverseProc(ANM_CUTREL)) {
return true;
@@ -2199,7 +2227,7 @@ BOOL daPy_lk_c::procCutKesa() {
}
m34C2 = 1;
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutEA.m.field_0x1C,
m_HIO->mCut.mCutEA.m.field_0x14,
+147 -149
View File
@@ -28,7 +28,7 @@ u32 daPy_lk_c::getDayNightParamData() {
u32 spawnType = dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) ? 2 : 0;
u32 eventIdx = 0xCC;
u32 extraParams = dComIfGp_getShipActor() != NULL ? 0x140 : 0x40;
return setParamData(current.roomNo, spawnType, eventIdx, extraParams);
return setParamData(fopAcM_GetRoomNo(this), spawnType, eventIdx, extraParams);
}
/* 8014D7D4-8014D8AC .text setTactModel__9daPy_lk_cFv */
@@ -53,9 +53,8 @@ void daPy_lk_c::setTactModel() {
/* 8014D8AC-8014D8F4 .text checkNpcStatus__9daPy_lk_cFv */
BOOL daPy_lk_c::checkNpcStatus() {
daPy_py_c* partner = (daPy_py_c*)dComIfGp_getCb1Player();
if (partner) {
if (!partner->checkNpcNotChange() && partner->current.roomNo == fopAcM_GetRoomNo(this)) {
if (dComIfGp_getCb1Player()) {
if (!((daPy_py_c*)dComIfGp_getCb1Player())->checkNpcNotChange() && fopAcM_GetRoomNo(dComIfGp_getCb1Player()) == fopAcM_GetRoomNo(this)) {
return TRUE;
}
}
@@ -92,7 +91,7 @@ u16 daPy_lk_c::getTactPlayLeftArmAnm(s32 r4) {
/* 8014D97C-8014D9A4 .text checkEndTactMusic__9daPy_lk_cCFv */
BOOL daPy_lk_c::checkEndTactMusic() const {
if (mCurProc == daPyProc_TACT_PLAY_e && m34D0 != 0) {
if (mCurProc == daPyProc_TACT_PLAY_e && mProcVar0.m34D0 != 0) {
return TRUE;
}
return FALSE;
@@ -109,7 +108,7 @@ f32 daPy_lk_c::getTactMetronomeRate() {
/* 8014D9D0-8014D9F8 .text checkTactLastInput__9daPy_lk_cFv */
BOOL daPy_lk_c::checkTactLastInput() {
if (mCurProc == daPyProc_TACT_WAIT_e && m34D2 != -1) {
if (mCurProc == daPyProc_TACT_WAIT_e && mProcVar1.m34D2 != -1) {
return TRUE;
}
return FALSE;
@@ -142,7 +141,7 @@ BOOL daPy_lk_c::getTactTopPos(cXyz* out) {
/* 8014DACC-8014DB00 .text getTactNormalWait__9daPy_lk_cCFv */
BOOL daPy_lk_c::getTactNormalWait() const {
if (mCurProc == daPyProc_TACT_WAIT_e && mProcVar0.m3570 == -1 && m34D2 == -1) {
if (mCurProc == daPyProc_TACT_WAIT_e && mProcVar6.m3570 == -1 && mProcVar1.m34D2 == -1) {
return TRUE;
}
return FALSE;
@@ -151,9 +150,9 @@ BOOL daPy_lk_c::getTactNormalWait() const {
/* 8014DB00-8014DB2C .text getTactMusic__9daPy_lk_cCFv */
s32 daPy_lk_c::getTactMusic() const {
if (mCurProc == daPyProc_TACT_PLAY_e)
return mProcVar0.m3570;
return mProcVar6.m3570;
if (mCurProc == daPyProc_TACT_WAIT_e)
return m3574;
return mProcVar7.m3574;
return -1;
}
@@ -171,7 +170,7 @@ int daPy_lk_c::getTactTimerCancel() const {
/* 8014DB74-8014DB9C .text checkTactPlayMelody__9daPy_lk_cFv */
BOOL daPy_lk_c::checkTactPlayMelody() {
if (mCurProc == daPyProc_TACT_PLAY_e && m34DA == 0) {
if (mCurProc == daPyProc_TACT_PLAY_e && mProcVar5.m34DA == 0) {
return TRUE;
}
return FALSE;
@@ -180,10 +179,10 @@ BOOL daPy_lk_c::checkTactPlayMelody() {
/* 8014DB9C-8014DBEC .text resetTactCount__9daPy_lk_cFv */
void daPy_lk_c::resetTactCount() {
if (mCurProc == daPyProc_TACT_WAIT_e) {
m34D8 = 0;
mProcVar4.m34D8 = 0;
m35A0 = 0.0f;
m34DA = 0;
m34D0 = -1;
mProcVar5.m34DA = 0;
mProcVar0.m34D0 = -1;
mDoAud_tact_reset();
}
}
@@ -191,13 +190,13 @@ void daPy_lk_c::resetTactCount() {
/* 8014DBEC-8014E100 .text procTactWait_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procTactWait_init(int r30) {
if (mCurProc == daPyProc_TACT_WAIT_e) {
if (mProcVar0.m3570 != r30) {
m34D8 = 0;
m34DA = 0;
m34D2 = -1;
if (mProcVar6.m3570 != r30) {
mProcVar4.m34D8 = 0;
mProcVar5.m34DA = 0;
mProcVar1.m34D2 = -1;
}
mProcVar0.m3570 = r30;
if (mProcVar0.m3570 != -4) {
mProcVar6.m3570 = r30;
if (mProcVar6.m3570 != -4) {
dComIfGp_setMetronomeOn();
} else {
dComIfGp_setMetronomeOff();
@@ -255,9 +254,9 @@ BOOL daPy_lk_c::procTactWait_init(int r30) {
mAnmRatioUpper[UPPER_MOVE1_e].setRatio(0.0f);
setActAnimeUpper(LKANM_BCK_WAITTAKT, UPPER_MOVE2_e, m_HIO->mItem.mTact.m.mAnmRate, 0.0f, -1, -1.0f);
mAnmRatioUpper[UPPER_MOVE2_e].setRatio(0.0f);
mVelocity = 0.0f;
m34D4 = 0;
m34D6 = 0;
mNormalSpeed = 0.0f;
mProcVar2.m34D4 = 0;
mProcVar3.m34D6 = 0;
dComIfGp_setPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e);
if (r30 == -1) {
@@ -273,25 +272,25 @@ BOOL daPy_lk_c::procTactWait_init(int r30) {
setTactModel();
initShipRideUseItem(r31, 2);
m34D2 = -1;
mProcVar1.m34D2 = -1;
m32E4.makeEmitter(dPa_name::ID_AK_JN_TAKT00, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
mProcVar0.m3570 = r30;
m34D8 = 0;
m3574 = -1;
mProcVar6.m3570 = r30;
mProcVar4.m34D8 = 0;
mProcVar7.m3574 = -1;
m35A0 = 0.0f;
m34DA = 0;
mProcVar5.m34DA = 0;
m3624 = 0;
m35A4 = 0.0f;
m35A8 = 0.0f;
if (mProcVar0.m3570 == 6 || mProcVar0.m3570 == 7) {
if (mProcVar6.m3570 == 6 || mProcVar6.m3570 == 7) {
m35AC = 600.0f;
} else {
m35AC = 900.0f;
}
m34D0 = -1;
mProcVar0.m34D0 = -1;
setTactZev(-1, -1, NULL);
if (mProcVar0.m3570 != -4) {
if (mProcVar6.m3570 != -4) {
dComIfGp_setMetronomeOn();
}
mDoAud_taktModeMute();
@@ -303,40 +302,40 @@ BOOL daPy_lk_c::procTactWait_init(int r30) {
BOOL daPy_lk_c::procTactWait() {
setShipRidePosUseItem();
mDoAud_tact_ambientPlay();
if (mProcVar0.m3570 == -4) {
if (mProcVar6.m3570 == -4) {
dComIfGp_evmng_cutEnd(mStaffIdx);
return TRUE;
}
if (m34D2 > 0) {
m34D2--;
if (mProcVar0.m3570 == -5) {
if (mProcVar1.m34D2 > 0) {
mProcVar1.m34D2--;
if (mProcVar6.m3570 == -5) {
m35A0 += 1.0f;
}
if (m34D2 == 0) {
if (mProcVar0.m3570 == -5 || mProcVar0.m3570 == 6 || mProcVar0.m3570 == 7) {
if (mProcVar1.m34D2 == 0) {
if (mProcVar6.m3570 == -5 || mProcVar6.m3570 == 6 || mProcVar6.m3570 == 7) {
dComIfGp_evmng_cutEnd(mStaffIdx);
dComIfGp_setMetronomeOff();
} else if (mProcVar0.m3570 == -1 || mProcVar0.m3570 == -3 || mProcVar0.m3570 >= 0) {
procTactPlay_init(m3574, mProcVar0.m3570 == -1, mProcVar0.m3570 >= 0);
} else if (mProcVar6.m3570 == -1 || mProcVar6.m3570 == -3 || mProcVar6.m3570 >= 0) {
procTactPlay_init(mProcVar7.m3574, mProcVar6.m3570 == -1, mProcVar6.m3570 >= 0);
}
}
return TRUE;
}
if (mProcVar0.m3570 == 5 || mProcVar0.m3570 == 1 || mProcVar0.m3570 == 6 || mProcVar0.m3570 == 7) {
if (mProcVar6.m3570 == 5 || mProcVar6.m3570 == 1 || mProcVar6.m3570 == 6 || mProcVar6.m3570 == 7) {
if (m35AC >= 0.0f) {
m35AC -= 1.0f;
}
if (mProcVar0.m3570 == 5) {
if (mProcVar6.m3570 == 5) {
dComIfGp_setAStatus(dActStts_RETURN_e);
}
} else if (mProcVar0.m3570 != -5) {
} else if (mProcVar6.m3570 != -5) {
dComIfGp_setAStatus(dActStts_RETURN_e);
}
if (m34D2 == 0 || (cancelTrigger() && dComIfGp_getAStatus() == dActStts_RETURN_e) || m35AC <= 0.0f) {
if (m34D2 != 0) {
if (mProcVar1.m34D2 == 0 || (cancelTrigger() && dComIfGp_getAStatus() == dActStts_RETURN_e) || m35AC <= 0.0f) {
if (mProcVar1.m34D2 != 0) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
resetActAnimeUpper(UPPER_MOVE1_e, -1.0f);
seStartSystem(JA_SE_TAKT_USE_CANCEL);
@@ -344,11 +343,11 @@ BOOL daPy_lk_c::procTactWait() {
dComIfGp_setMetronomeOff();
if (cancelTrigger() && mProcVar0.m3570 == 5) {
if (cancelTrigger() && mProcVar6.m3570 == 5) {
m35AC = -1000.0f;
}
if (mProcVar0.m3570 == -1) {
if (mProcVar6.m3570 == -1) {
dComIfGp_event_reset();
dCam_getBody()->EndEventCamera(fopAcM_GetID(this));
endDemoMode();
@@ -360,18 +359,18 @@ BOOL daPy_lk_c::procTactWait() {
}
int rightDir, leftDir;
if (mProcVar0.m3570 != -5) {
rightDir = mDoAud_getTactDirection(1, m34D4);
leftDir = mDoAud_getTactDirection(0, m34D6);
if (mProcVar6.m3570 != -5) {
rightDir = mDoAud_getTactDirection(1, mProcVar2.m34D4);
leftDir = mDoAud_getTactDirection(0, mProcVar3.m34D6);
mDoAud_tact_setVolume(mStickDistance * cM_scos(m34DC));
} else {
rightDir = m34D4;
leftDir = m34D6;
rightDir = mProcVar2.m34D4;
leftDir = mProcVar3.m34D6;
}
m35A0 += 1.0f;
if (rightDir != m34D4) {
if (rightDir != mProcVar2.m34D4) {
if (m35A4 <= 0.0f || rightDir != 0) {
setActAnimeUpper(
getTactPlayRightArmAnm(rightDir),
@@ -387,34 +386,34 @@ BOOL daPy_lk_c::procTactWait() {
mFrameCtrlUpper[UPPER_MOVE1_e].setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
}
if (m34D4 == 4 || m34D4 == 2 || rightDir == 4 || rightDir == 2) {
if (mProcVar2.m34D4 == 4 || mProcVar2.m34D4 == 2 || rightDir == 4 || rightDir == 2) {
mDoAud_tact_reset();
mDoAud_tact_setBeat(rightDir);
m35A0 = 0.0f;
m34DA = 0;
mProcVar5.m34DA = 0;
m_old_fdata->initOldFrameMorf(5.0f, 0, 0x2A);
m3624 = 0;
m34D0 = -1;
mProcVar0.m34D0 = -1;
}
m34D4 = rightDir;
mProcVar2.m34D4 = rightDir;
mAnmRatioUpper[UPPER_MOVE1_e].setRatio(0.0f);
if (m34D4 != 0) {
if (mProcVar2.m34D4 != 0) {
m35A4 = 2.0f;
}
} else {
m35A4 -= 1.0f;
}
} else if (m34D4 != 0) {
} else if (mProcVar2.m34D4 != 0) {
m35A4 = 2.0f;
}
if (leftDir != m34D6) {
if (leftDir != mProcVar3.m34D6) {
if (m35A8 <= 0.0f || leftDir != 0) {
f32 rate;
if (m34D4 == 4) {
if (mProcVar2.m34D4 == 4) {
rate = m_HIO->mItem.mTact.m.field_0x14;
} else if (m34D4 == 2) {
} else if (mProcVar2.m34D4 == 2) {
rate = m_HIO->mItem.mTact.m.field_0x18;
} else {
rate = m_HIO->mItem.mTact.m.field_0x10;
@@ -422,23 +421,23 @@ BOOL daPy_lk_c::procTactWait() {
setActAnimeUpper(
getTactPlayLeftArmAnm(leftDir), UPPER_MOVE2_e, rate, 0.0f, -1, m_HIO->mItem.mTact.m.field_0xC
);
m34D6 = leftDir;
mProcVar3.m34D6 = leftDir;
mAnmRatioUpper[UPPER_MOVE2_e].setRatio(0.0f);
mDoAud_tact_armSoundPlay(leftDir);
if (m34D6 != 0) {
if (mProcVar3.m34D6 != 0) {
m35A8 = 2.0f;
}
} else {
m35A8 -= 1.0f;
}
} else if (m34D6 != 0) {
} else if (mProcVar3.m34D6 != 0) {
m35A8 = 2.0f;
}
if (m35A0 >= mDoAud_tact_getBeatFrames()) {
mDoAud_tact_metronomePlay(m34DA, m34D6);
mDoAud_tact_metronomePlay(mProcVar5.m34DA, mProcVar3.m34D6);
mpEquipItemBrk->setFrame(mpEquipItemBrk->getFrameMax() - 0.001f);
m34D0 = 3;
mProcVar0.m34D0 = 3;
m35A0 -= mDoAud_tact_getBeatFrames();
m3624++;
if (m3624 == 2) {
@@ -448,38 +447,38 @@ BOOL daPy_lk_c::procTactWait() {
mpEquipItemBrk->setFrame(0.0f);
}
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
}
if (m34D0 == 0) {
m3574 = mDoAud_tact_judge(m34DA, m34D6);
m34DA++;
if (mProcVar0.m34D0 == 0) {
mProcVar7.m3574 = mDoAud_tact_judge(mProcVar5.m34DA, mProcVar3.m34D6);
mProcVar5.m34DA++;
if (m34DA >= mDoAud_tact_getBeat()) {
m34DA = 0;
if (mProcVar5.m34DA >= mDoAud_tact_getBeat()) {
mProcVar5.m34DA = 0;
}
onResetFlg0(daPyRFlg0_TACT_INPUT);
m34D0 = -1;
mProcVar0.m34D0 = -1;
if ((mProcVar0.m3570 >= 0 && mProcVar0.m3570 == m3574) ||
((mProcVar0.m3570 == -1 || mProcVar0.m3570 == -3) && (m3574 >= 0 && m3574 != 6 && m3574 != 7 && dComIfGs_isTact(m3574))))
if ((mProcVar6.m3570 >= 0 && mProcVar6.m3570 == mProcVar7.m3574) ||
((mProcVar6.m3570 == -1 || mProcVar6.m3570 == -3) && (mProcVar7.m3574 >= 0 && mProcVar7.m3574 != 6 && mProcVar7.m3574 != 7 && dComIfGs_isTact(mProcVar7.m3574))))
{
m34D2 = 30;
mProcVar1.m34D2 = 30;
seStartSystem(JA_SE_WTAKT_MATCH_SIGNAL);
m35A0 = 0.0f;
} else {
m3574 = -1;
if (mProcVar0.m3570 == -5) {
m34D8++;
if (m34D8 == 6) {
m34D2 = 15;
mProcVar7.m3574 = -1;
if (mProcVar6.m3570 == -5) {
mProcVar4.m34D8++;
if (mProcVar4.m34D8 == 6) {
mProcVar1.m34D2 = 15;
}
} else if (mProcVar0.m3570 == -2) {
m34D8++;
if (m34D8 == 5) {
m34D2 = 30;
} else if (mProcVar6.m3570 == -2) {
mProcVar4.m34D8++;
if (mProcVar4.m34D8 == 5) {
mProcVar1.m34D2 = 30;
m35A0 = 0.0f;
}
}
@@ -487,16 +486,16 @@ BOOL daPy_lk_c::procTactWait() {
}
f32 f0;
if (m34D4 == 4) {
if (mProcVar2.m34D4 == 4) {
f0 = m_HIO->mItem.mTact.m.field_0x14;
} else if (m34D4 == 2) {
} else if (mProcVar2.m34D4 == 2) {
f0 = m_HIO->mItem.mTact.m.field_0x18;
} else {
f0 = m_HIO->mItem.mTact.m.field_0x10;
}
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(f0);
if (m34D2 == -1) {
if (mProcVar1.m34D2 == -1) {
f32 f0 = (m35A0 + m3624 * mDoAud_tact_getBeatFrames()) / (2.0f * mDoAud_tact_getBeatFrames());
mFrameCtrlUnder[UPPER_MOVE0_e].setFrame(f0 * mFrameCtrlUnder[UPPER_MOVE0_e].getEnd());
mFrameCtrlUpper[UPPER_MOVE1_e].setFrame(f0 * mFrameCtrlUpper[UPPER_MOVE1_e].getEnd());
@@ -514,7 +513,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
int r28 = checkShipRideUseItem(0);
commonProcInit(daPyProc_TACT_PLAY_e);
dComIfGp_setPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e);
mProcVar0.m3570 = r27;
mProcVar6.m3570 = r27;
if (r31 == 0) {
m3628 = fopMsgM_messageSet(0x5AD + r27);
} else {
@@ -523,7 +522,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
mDoAud_tact_setVolume(0.0f);
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
resetActAnimeUpper(UPPER_MOVE1_e, -1.0f);
m34DA = 0xA;
mProcVar5.m34DA = 0xA;
daPy_ANM anm;
if (r27 == 0) {
@@ -543,7 +542,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
initShipRideUseItem(r28, 2);
if (r28 != 0 && mProcVar0.m3570 == 1) {
if (r28 != 0 && mProcVar6.m3570 == 1) {
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
if (dStage_stagInfo_GetSTType(stag_info) == dStageType_SEA_e && m34CC != 1 && r30 != 0) {
daShip_c* ship = dComIfGp_getShipActor();
@@ -553,10 +552,10 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
}
m32E4.makeEmitter(dPa_name::ID_AK_JN_TAKT01, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
m34D0 = 0;
m3574 = r30;
mProcVar0.m34D0 = 0;
mProcVar7.m3574 = r30;
m3624 = 0;
m34D8 = r31;
mProcVar4.m34D8 = r31;
return TRUE;
}
@@ -578,15 +577,15 @@ BOOL daPy_lk_c::procTactPlay() {
endDemoMode();
}
return TRUE;
} else if (m34DA > 0) {
m34DA--;
if (m34DA == 0) {
mDoAud_tact_melodyPlay(mProcVar0.m3570);
} else if (mProcVar5.m34DA > 0) {
mProcVar5.m34DA--;
if (mProcVar5.m34DA == 0) {
mDoAud_tact_melodyPlay(mProcVar6.m3570);
}
}
if (m34D0 != 0) {
if (m34D8 != 0) {
if (mProcVar0.m34D0 != 0) {
if (mProcVar4.m34D8 != 0) {
dComIfGp_setMetronomeOff();
dComIfGp_evmng_cutEnd(mStaffIdx);
return TRUE;
@@ -602,11 +601,11 @@ BOOL daPy_lk_c::procTactPlay() {
m3628 = fpcM_ERROR_PROCESS_ID_e;
}
if (mTactZevPartnerId != fpcM_ERROR_PROCESS_ID_e && m34CC == mProcVar0.m3570) {
if (mTactZevPartnerId != fpcM_ERROR_PROCESS_ID_e && m34CC == mProcVar6.m3570) {
tactZevPartner = fopAcM_SearchByID(mTactZevPartnerId);
}
if (m3574 == 0) {
if (mProcVar7.m3574 == 0) {
dComIfGp_evmng_cutEnd(mStaffIdx);
return TRUE;
}
@@ -623,32 +622,31 @@ BOOL daPy_lk_c::procTactPlay() {
}
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (dKyw_gbwind_use_check()) {
return procTactPlayEnd_init(mProcVar0.m3570);
return procTactPlayEnd_init(mProcVar6.m3570);
}
m3624 = 0x14A5;
} else if (mProcVar0.m3570 == 1) {
} else if (mProcVar6.m3570 == 1) {
daShip_c* ship = dComIfGp_getShipActor();
if (ship != NULL && ship->getTactWarpID() != fpcM_ERROR_PROCESS_ID_e) {
return procTactPlayEnd_init(mProcVar0.m3570);
return procTactPlayEnd_init(mProcVar6.m3570);
}
m3624 = 0x14A6;
} else if (mProcVar0.m3570 == 2) {
} else if (mProcVar6.m3570 == 2) {
if (checkNpcStatus() && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
return procTactPlayEnd_init(mProcVar0.m3570);
return procTactPlayEnd_init(mProcVar6.m3570);
}
m3624 = 0x14A8;
} else if (mProcVar0.m3570 == 5) {
} else if (mProcVar6.m3570 == 5) {
if (dKy_daynighttact_stop_chk()) {
m3624 = 0x14A7;
} else {
dStage_FileList_dt_c* fili_p =
dComIfGp_roomControl_getStatusRoomDt(current.roomNo)->getFileListInfo();
dStage_FileList_dt_c* fili_p = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this))->getFileListInfo();
if (dStage_FileList_dt_GetSongOk(fili_p)) {
m3624 = 0x14AA;
} else {
return procTactPlayEnd_init(mProcVar0.m3570);
return procTactPlayEnd_init(mProcVar6.m3570);
}
}
} else {
@@ -658,7 +656,7 @@ BOOL daPy_lk_c::procTactPlay() {
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
seStartSystem(JA_SE_TAKT_MATCHED);
fopMsgM_messageSendOn();
m34D0 = 1;
mProcVar0.m34D0 = 1;
mDoAud_tact_reset();
setSingleMoveAnime(ANM_WAITTAKT, m_HIO->mItem.mTact.m.mAnmRate, 0.0f, -1, 10.0f);
@@ -676,8 +674,8 @@ BOOL daPy_lk_c::procTactPlayEnd_init(int r30) {
commonProcInit(daPyProc_TACT_PLAY_END_e);
dComIfGp_setPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e);
initShipRideUseItem(r28, 2);
mProcVar0.m3570 = r30;
mVelocity = 0.0f;
mProcVar6.m3570 = r30;
mNormalSpeed = 0.0f;
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
if (r30 == -1) {
@@ -697,8 +695,8 @@ BOOL daPy_lk_c::procTactPlayEnd_init(int r30) {
fopAcM_orderChangeEvent(this, l_tact_night_event_label, 0, -1);
}
m3574 = 0;
m34D6 = shape_angle.y + 0x4000;
mProcVar7.m3574 = 0;
mProcVar3.m34D6 = shape_angle.y + 0x4000;
return TRUE;
}
@@ -707,16 +705,16 @@ BOOL daPy_lk_c::procTactPlayEnd_init(int r30) {
BOOL daPy_lk_c::procTactPlayEnd() {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
setShipRidePos(0);
if (mProcVar0.m3570 == 0 && !dComIfGp_evmng_startCheck(l_tact_wind_change_event_label) &&
if (mProcVar6.m3570 == 0 && !dComIfGp_evmng_startCheck(l_tact_wind_change_event_label) &&
!dComIfGp_evmng_startCheck(l_tact_wind_change_event_label2))
{
cLib_addCalcAngleS(&shape_angle.y, m34D6, 5, 0x1000, 0x100);
cLib_addCalcAngleS(&shape_angle.y, mProcVar3.m34D6, 5, 0x1000, 0x100);
}
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
dComIfGp_setAStatus(dActStts_RETURN_e);
} else if (mProcVar0.m3570 == 5) {
} else if (mProcVar6.m3570 == 5) {
if (dComIfGp_evmng_endCheck(l_tact_night_event_label) && !checkNoResetFlg0(daPyFlg0_UNK4000)) {
onNoResetFlg0(daPyFlg0_UNK4000);
fopAc_ac_c* ship;
@@ -745,17 +743,17 @@ BOOL daPy_lk_c::procTactPlayEnd() {
dStage_turnRestart();
mDoAud_taktModeMuteOff();
}
} else if (mProcVar0.m3570 == 2) {
} else if (mProcVar6.m3570 == 2) {
if (dComIfGp_evmng_endCheck(l_tact_event_label)) {
dComIfGp_event_reset();
changePlayer(dComIfGp_getCb1Player());
endDemoMode();
}
} else if (mProcVar0.m3570 == 1) {
if (m3574 == 0) {
} else if (mProcVar6.m3570 == 1) {
if (mProcVar7.m3574 == 0) {
if (dComIfGp_getMesgStatus() == 0) {
dComIfGp_fmapOpenOn();
m3574 = 1;
mProcVar7.m3574 = 1;
}
} else {
dCam_getBody()->EndEventCamera(fopAcM_GetID(this));
@@ -787,26 +785,26 @@ BOOL daPy_lk_c::procTactPlayOriginal_init() {
}
commonProcInit(daPyProc_TACT_PLAY_ORIGINAL_e);
dComIfGp_setPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e);
m34D0 = 0;
mProcVar0.m34D0 = 0;
daPy_matAnm_c::offMabaFlg();
setSingleMoveAnime(ANM_WAITTAKT, m_HIO->mItem.mTact.m.mAnmRate, 0.0f, -1, m_HIO->mItem.mTact.m.field_0x4);
mProcVar0.m3570 = dComIfGp_event_getTactFreeMStick(m34D0);
setActAnimeUpper(getTactPlayRightArmAnm(mProcVar0.m3570), UPPER_MOVE1_e, 0.0f, 0.0f, -1, -1.0f);
mProcVar6.m3570 = dComIfGp_event_getTactFreeMStick(mProcVar0.m34D0);
setActAnimeUpper(getTactPlayRightArmAnm(mProcVar6.m3570), UPPER_MOVE1_e, 0.0f, 0.0f, -1, -1.0f);
mAnmRatioUpper[UPPER_MOVE1_e].setRatio(0.0f);
m3574 = dComIfGp_event_getTactFreeCStick(m34D0);
setActAnimeUpper(getTactPlayLeftArmAnm(m3574), UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
mProcVar7.m3574 = dComIfGp_event_getTactFreeCStick(mProcVar0.m34D0);
setActAnimeUpper(getTactPlayLeftArmAnm(mProcVar7.m3574), UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
mAnmRatioUpper[UPPER_MOVE2_e].setRatio(0.0f);
setTextureAnime(0, 0);
m3530 = 3;
mDoAud_tact_setStickPos(mProcVar0.m3570, m3574);
mDoAud_tact_playArmSwing(mProcVar0.m3570, m3574);
mDoAud_tact_setStickPos(mProcVar6.m3570, mProcVar7.m3574);
mDoAud_tact_playArmSwing(mProcVar6.m3570, mProcVar7.m3574);
setTactModel();
m32E4.makeEmitter(dPa_name::ID_AK_JN_TAKT01, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
m34D6 = 0xF;
m34DA = 0;
mProcVar3.m34D6 = 0xF;
mProcVar5.m34DA = 0;
mDoAud_taktModeMute();
return TRUE;
@@ -817,41 +815,41 @@ BOOL daPy_lk_c::procTactPlayOriginal() {
seStartSystem(JA_SE_LK_WTAKT_USING);
if (m_old_fdata->getOldFrameRate() < 0.01f) {
if (m34D6 > 0) {
m34D6--;
if (m34D6 == 0) {
m34D0++;
if (mProcVar3.m34D6 > 0) {
mProcVar3.m34D6--;
if (mProcVar3.m34D6 == 0) {
mProcVar0.m34D0++;
}
} else if (m34D0 == 5) {
} else if (mProcVar0.m34D0 == 5) {
dComIfGp_evmng_cutEnd(mStaffIdx);
mDoAud_tact_stopArmSwing();
} else {
m34D6 = 0xF;
mProcVar3.m34D6 = 0xF;
mProcVar0.m3570 = dComIfGp_event_getTactFreeMStick(m34D0);
mProcVar6.m3570 = dComIfGp_event_getTactFreeMStick(mProcVar0.m34D0);
setActAnimeUpper(
getTactPlayRightArmAnm(mProcVar0.m3570), UPPER_MOVE1_e, m_HIO->mItem.mTact.m.mRightArmAnmRate, 0.0f, -1, 5.0f
getTactPlayRightArmAnm(mProcVar6.m3570), UPPER_MOVE1_e, m_HIO->mItem.mTact.m.mRightArmAnmRate, 0.0f, -1, 5.0f
);
mAnmRatioUpper[UPPER_MOVE1_e].setRatio(0.0f);
if (mProcVar0.m3570 == 0 || mProcVar0.m3570 == 2 || mProcVar0.m3570 == 4) {
if (mProcVar6.m3570 == 0 || mProcVar6.m3570 == 2 || mProcVar6.m3570 == 4) {
mFrameCtrlUpper[UPPER_MOVE1_e].setRate(m_HIO->mItem.mTact.m.mAnmRate);
mFrameCtrlUpper[UPPER_MOVE1_e].setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
}
m3574 = dComIfGp_event_getTactFreeCStick(m34D0);
setActAnimeUpper(getTactPlayLeftArmAnm(m3574), UPPER_MOVE2_e, m_HIO->mItem.mTact.m.mAnmRate, 0.0f, -1, 5.0f);
mProcVar7.m3574 = dComIfGp_event_getTactFreeCStick(mProcVar0.m34D0);
setActAnimeUpper(getTactPlayLeftArmAnm(mProcVar7.m3574), UPPER_MOVE2_e, m_HIO->mItem.mTact.m.mAnmRate, 0.0f, -1, 5.0f);
mAnmRatioUpper[UPPER_MOVE2_e].setRatio(0.0f);
mFrameCtrlUpper[UPPER_MOVE2_e].setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
mDoAud_tact_setStickPos(mProcVar0.m3570, m3574);
mDoAud_tact_playArmSwing(mProcVar0.m3570, m3574);
mDoAud_tact_setStickPos(mProcVar6.m3570, mProcVar7.m3574);
mDoAud_tact_playArmSwing(mProcVar6.m3570, mProcVar7.m3574);
}
}
if (m34D6 != 0 && m34DA != 0) {
if (mProcVar3.m34D6 != 0 && mProcVar5.m34DA != 0) {
mDoAud_tact_play();
}
m34DA = 1;
mProcVar5.m34DA = 1;
return TRUE;
}
+40 -42
View File
@@ -47,10 +47,10 @@ BOOL daPy_lk_c::procVomitReady_init(s16 param_0, f32 param_1) {
m_HIO->mVomit.m.field_0x14
);
speed.y = m_HIO->mVomit.m.field_0x18;
mVelocity = (param_1 * -gravity) / (2.0f * m_HIO->mVomit.m.field_0x18);
mNormalSpeed = (param_1 * -gravity) / (2.0f * m_HIO->mVomit.m.field_0x18);
if (checkHeavyStateOn()) {
speed.y *= 1.5f;
mVelocity *= 1.5f;
mNormalSpeed *= 1.5f;
}
shape_angle.y = param_0;
current.angle.y = shape_angle.y;
@@ -85,11 +85,11 @@ BOOL daPy_lk_c::procVomitWait_init() {
old.pos = current.pos;
m34C2 = 11;
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
m34D4 = 0;
mNormalSpeed = 0.0f;
mProcVar2.m34D4 = 0;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK80_e);
#if VERSION == VERSION_PAL
m34D0 = 0;
mProcVar0.m34D0 = 0;
#endif
return true;
}
@@ -103,11 +103,11 @@ BOOL daPy_lk_c::procVomitWait() {
procVomitJump_init(0);
}
#else
if (checkNoResetFlg1(daPyFlg1_FORCE_VOMIT_JUMP) || m34D0) {
if (checkNoResetFlg1(daPyFlg1_FORCE_VOMIT_JUMP) || mProcVar0.m34D0) {
if (!dComIfGp_event_runCheck()) {
procVomitJump_init(0);
} else {
m34D0 = 1;
mProcVar0.m34D0 = 1;
}
}
#endif
@@ -116,25 +116,23 @@ BOOL daPy_lk_c::procVomitWait() {
int direction = getDirectionFromAngle(m34DC);
if (direction == DIR_LEFT) {
s16 r5 = 512.0f * mStickDistance;
if (r5 > m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 += r0;
if (m34D4 > r5) {
m34D4 = r5;
if (r5 > mProcVar2.m34D4) {
mProcVar2.m34D4 += (s16)(64.0f * mStickDistance);
if (mProcVar2.m34D4 > r5) {
mProcVar2.m34D4 = r5;
}
r30 = m34D4;
r30 = mProcVar2.m34D4;
} else {
r30 = r5;
}
} else if (direction == DIR_RIGHT) {
s16 r5 = -512.0f * mStickDistance;
if (r5 < m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 -= r0;
if (m34D4 < r5) {
m34D4 = r5;
if (r5 < mProcVar2.m34D4) {
mProcVar2.m34D4 -= (s16)(64.0f * mStickDistance);
if (mProcVar2.m34D4 < r5) {
mProcVar2.m34D4 = r5;
}
r30 = m34D4;
r30 = mProcVar2.m34D4;
} else {
r30 = r5;
}
@@ -145,8 +143,8 @@ BOOL daPy_lk_c::procVomitWait() {
r30 = 0;
}
cLib_addCalcAngleS(&m34D4, r30, 3, 0x40, 0x10);
shape_angle.y += m34D4;
cLib_addCalcAngleS(&mProcVar2.m34D4, r30, 3, 0x40, 0x10);
shape_angle.y += mProcVar2.m34D4;
current.angle.y = shape_angle.y;
}
return true;
@@ -162,12 +160,12 @@ BOOL daPy_lk_c::procVomitJump_init(int param_0) {
} else {
fVar1 = -1.0f;
}
mProcVar0.m3570 = param_0;
mProcVar6.m3570 = param_0;
setSingleMoveAnime(ANM_VOMITJMP, 1.0f, 0.0f, -1, fVar1);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK80000000_e);
mStts.ClrCcMove();
m34D4 = 0;
m34D0 = 2;
mProcVar2.m34D4 = 0;
mProcVar0.m34D0 = 2;
m33A8.makeEmitterColor(
dPa_name::ID_IT_SN_LK_BLUR00,
mpCLModel->getAnmMtx(0x12),
@@ -181,25 +179,25 @@ BOOL daPy_lk_c::procVomitJump_init(int param_0) {
}
if (param_0 == 1) {
gravity = 0.0f;
m34D2 = 20;
mProcVar1.m34D2 = 20;
} else {
voiceStart(0);
if (param_0 == 3) {
speed.y = 46.0f;
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
speed.y = m_HIO->mVomit.m.field_0x1C;
}
m34D2 = 0;
mProcVar1.m34D2 = 0;
}
return true;
}
/* 8014FF0C-801500E4 .text procVomitJump__9daPy_lk_cFv */
BOOL daPy_lk_c::procVomitJump() {
if ((s32)m34D2 != 0) {
m34D2--;
if (m34D2 == 0) {
if ((s32)mProcVar1.m34D2 != 0) {
mProcVar1.m34D2--;
if (mProcVar1.m34D2 == 0) {
voiceStart(0);
speed.y = 46.0f;
gravity = m_HIO->mAutoJump.m.field_0xC;
@@ -208,9 +206,9 @@ BOOL daPy_lk_c::procVomitJump() {
return true;
}
if (m34D0 != 0) {
if (mProcVar0.m34D0 != 0) {
mStts.ClrCcMove();
m34D0--;
mProcVar0.m34D0--;
}
if (!checkJumpFlower()) {
if (mAcch.ChkGroundHit()) {
@@ -221,8 +219,8 @@ BOOL daPy_lk_c::procVomitJump() {
if (sVar1 < 0 && 0 < shape_angle.x) {
seStartOnlyReverb(JA_SE_LK_JUMP_FLOWER_OUT);
}
if (mProcVar0.m3570 == 1) {
cLib_addCalc(&mVelocity, m_HIO->mVomit.m.field_0x20, 0.5f, 2.0f, 0.1f);
if (mProcVar6.m3570 == 1) {
cLib_addCalc(&mNormalSpeed, m_HIO->mVomit.m.field_0x20, 0.5f, 2.0f, 0.1f);
} else {
f32 fVar2;
if (!checkFanGlideProc(1)) {
@@ -239,7 +237,7 @@ BOOL daPy_lk_c::procVomitJump() {
fVar2 = 0.0f;
}
cLib_addCalc(
&mVelocity, (m_HIO->mVomit.m.field_0x20 * mStickDistance * fVar2), 0.5f, 2.0f, 0.1f
&mNormalSpeed, (m_HIO->mVomit.m.field_0x20 * mStickDistance * fVar2), 0.5f, 2.0f, 0.1f
);
}
}
@@ -251,7 +249,7 @@ BOOL daPy_lk_c::procVomitJump() {
/* 801500E4-80150164 .text procVomitLand_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procVomitLand_init() {
commonProcInit(daPyProc_VOMIT_LAND_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(
ANM_LANDDAMA,
m_HIO->mVomit.m.field_0x24,
@@ -259,8 +257,8 @@ BOOL daPy_lk_c::procVomitLand_init() {
m_HIO->mVomit.m.field_0x4,
m_HIO->mVomit.m.field_0x2C
);
m34D0 = m_HIO->mVomit.m.field_0x6;
mProcVar0.m3570 = 0;
mProcVar0.m34D0 = m_HIO->mVomit.m.field_0x6;
mProcVar6.m3570 = 0;
setFootEffectPosType(5);
return true;
}
@@ -268,15 +266,15 @@ BOOL daPy_lk_c::procVomitLand_init() {
/* 80150164-8015023C .text procVomitLand__9daPy_lk_cFv */
BOOL daPy_lk_c::procVomitLand() {
resetFootEffect();
if (mProcVar0.m3570 != 0) {
if (mProcVar6.m3570 != 0) {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
checkNextMode(0);
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mVomit.m.field_0x3C) {
checkNextMode(1);
}
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
setSingleMoveAnime(
ANM_LANDDAMAST,
@@ -285,7 +283,7 @@ BOOL daPy_lk_c::procVomitLand() {
m_HIO->mVomit.m.field_0x8,
m_HIO->mVomit.m.field_0x38
);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
}
}
return true;
+48 -36
View File
@@ -59,15 +59,15 @@ BOOL daPy_lk_c::procWeaponNormalSwing_init() {
m34C2 = 1;
voiceStart(1);
if (checkAttentionLock() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
mProcVar2.m34D4 = m34E8;
}
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
m351E = m34DC;
setBlurPosResource(LKANM__CUTBOKO_POS);
setEnemyWeaponAtParam(FALSE);
m34D0 = m_HIO->mCut.mCutBoko.m.field_0x4;
mProcVar0.m34D0 = m_HIO->mCut.mCutBoko.m.field_0x4;
return true;
}
@@ -83,26 +83,26 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
}
if (frameCtrl.getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
if (mActorKeepEquip.getActor() == NULL) {
m34D0 = 0;
mProcVar0.m34D0 = 0;
offNoResetFlg0(daPyFlg0_UNK4);
}
if (m34D0 > 0) {
m34D0--;
if (mProcVar0.m34D0 > 0) {
mProcVar0.m34D0--;
} else {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
} else if (frameCtrl.getFrame() > m_HIO->mCut.mCutBoko.m.field_0x1C) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
@@ -113,11 +113,11 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
m34C2 = 1;
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -126,7 +126,7 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
current.angle.y = shape_angle.y;
if (frameCtrl.checkPass(m_HIO->mCut.mCutBoko.m.field_0x38)) {
mVelocity = std::fabsf(speedF) * m_HIO->mCut.mCutBoko.m.field_0x20 + m_HIO->mCut.mCutBoko.m.field_0x24;
mNormalSpeed = std::fabsf(speedF) * m_HIO->mCut.mCutBoko.m.field_0x20 + m_HIO->mCut.mCutBoko.m.field_0x24;
}
if (frameCtrl.checkPass(m_HIO->mCut.mCutBoko.m.field_0x3C)) {
frameCtrl.setRate(m_HIO->mCut.mCutBoko.m.field_0x14);
@@ -141,7 +141,7 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
onResetFlg0(daPyRFlg0_UNK2);
}
cLib_addCalc(
&mVelocity,
&mNormalSpeed,
0.0f,
m_HIO->mCut.mCutBoko.m.field_0x30,
m_HIO->mCut.mCutBoko.m.field_0x28,
@@ -162,9 +162,9 @@ BOOL daPy_lk_c::procWeaponSideSwing_init() {
m_HIO->mCut.mCutBoko.m.field_0x54
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
voiceStart(1);
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
setBlurPosResource(LKANM__HAMMERSIDE_POS);
setEnemyWeaponAtParam(FALSE);
return true;
@@ -179,21 +179,21 @@ BOOL daPy_lk_c::procWeaponSideSwing() {
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m_HIO->mCut.mCutBoko.m.field_0x50) {
f32 dVar4 = mVelocity;
f32 dVar4 = mNormalSpeed;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mNormalSpeed = dVar4;
mDirection = orig_direction;
}
@@ -203,11 +203,11 @@ BOOL daPy_lk_c::procWeaponSideSwing() {
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -238,11 +238,11 @@ BOOL daPy_lk_c::procWeaponFrontSwingReady_init() {
m_HIO->mCut.mCutBoko.m.field_0x68
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
if (checkAttentionLock() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
mProcVar2.m34D4 = m34E8;
}
setEnemyWeaponAtParam(FALSE);
voiceStart(7);
@@ -251,20 +251,26 @@ BOOL daPy_lk_c::procWeaponFrontSwingReady_init() {
/* 80153D1C-80153DBC .text procWeaponFrontSwingReady__9daPy_lk_cFv */
BOOL daPy_lk_c::procWeaponFrontSwingReady() {
#if VERSION == VERSION_DEMO
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
return procWeaponFrontSwing_init();
}
#else
if (mActorKeepEquip.getActor() == NULL) {
return checkNextMode(0);
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
return procWeaponFrontSwing_init();
}
#endif
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -286,40 +292,46 @@ BOOL daPy_lk_c::procWeaponFrontSwing_init() {
0.0f
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
voiceStart(1);
if (checkAttentionLock() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
mProcVar2.m34D4 = m34E8;
}
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
setBlurPosResource(LKANM__HAMMERFRONT_POS);
setEnemyWeaponAtParam(FALSE);
onResetFlg0(daPy_RFLG0(daPyRFlg0_UNK1 | daPyRFlg0_UNK2));
m34D0 = 0;
mProcVar0.m34D0 = 0;
return true;
}
/* 80153ED8-80153FA0 .text procWeaponFrontSwing__9daPy_lk_cFv */
BOOL daPy_lk_c::procWeaponFrontSwing() {
#if VERSION == VERSION_DEMO
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f || mActorKeepEquip.getActor() == NULL) {
return procWeaponFrontSwingEnd_init();
}
#else
if (mActorKeepEquip.getActor() == NULL) {
return checkNextMode(0);
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
return procWeaponFrontSwingEnd_init();
}
#endif
if (changeCutReverseProc(ANM_CUTREL)) {
return true;
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
mProcVar2.m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
mProcVar2.m34D4,
m_HIO->mTurn.m.field_0x4,
m_HIO->mTurn.m.field_0x0,
m_HIO->mTurn.m.field_0x2
@@ -341,7 +353,7 @@ BOOL daPy_lk_c::procWeaponFrontSwingEnd_init() {
m_HIO->mCut.mCutBoko.m.field_0x80
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setEnemyWeaponAtParam(FALSE);
return true;
}
@@ -368,7 +380,7 @@ BOOL daPy_lk_c::procWeaponThrow_init() {
commonProcInit(daPyProc_WEAPON_THROW_e);
setSingleMoveAnime(ANM_CUTA, 1.0f, 0.0f, -1, 5.0f);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
m34C2 = 1;
return true;
}
+41 -45
View File
@@ -52,7 +52,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
fVar5 *= param_0;
f32 fVar7;
fVar7 = mVelocity / mMaxNormalSpeed;
fVar7 = mNormalSpeed / mMaxNormalSpeed;
if (fVar7 < 0.0f) {
fVar7 = 0.0f;
}
@@ -74,34 +74,32 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
}
/* 801371E0-80137608 .text getWHideModePolygon__9daPy_lk_cFP4cXyzP4cXyzP4cXyzi */
cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int direction) {
if (param_0 != NULL) {
mLinkLinChk.Set(param_0, param_1, this);
cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* i_start, cXyz* i_end, cXyz* param_2, int direction) {
if (i_start != NULL) {
mLinkLinChk.Set(i_start, i_end, this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
return NULL;
}
}
dBgS* bgs = dComIfG_Bgsp(); // Maybe fakematch? Fixes regalloc for retail, but makes demo worse.
cM3dGPla* triPla = bgs->GetTriPla(mLinkLinChk);
s16 uVar3 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
s16 sVar7 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
if (std::fabsf(triPla->GetNP()->y) > 0.05f) {
return NULL;
}
int iVar4 = bgs->GetSpecialCode(mLinkLinChk);
int iVar4 = dComIfG_Bgsp()->GetSpecialCode(mLinkLinChk);
if (iVar4 == 3) {
return NULL;
}
*param_2 = mLinkLinChk.GetCross();
cXyz local_3c;
local_3c.x = param_2->x + cM_ssin(uVar3) * m_HIO->mWall.m.field_0x50;
local_3c.x = param_2->x + cM_ssin(sVar7) * m_HIO->mWall.m.field_0x50;
local_3c.y = param_2->y;
local_3c.z = param_2->z + cM_ssin(uVar3) * m_HIO->mWall.m.field_0x50;
local_3c.z = param_2->z + cM_ssin(sVar7) * m_HIO->mWall.m.field_0x50;
mGndChk.SetPos(&local_3c);
f32 f31 = bgs->GroundCross(&mGndChk);
if (-G_CM3D_F_INF != f31 && (!cBgW_CheckBGround(bgs->GetTriPla(mGndChk)->GetNP()->y))) {
f32 f31 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (-G_CM3D_F_INF != f31 && (!cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y))) {
return NULL;
}
@@ -110,7 +108,6 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
} else {
f31 = 99.8f;
}
s16 sVar7 = uVar3;
cXyz local_48;
if (direction != DIR_RIGHT) {
local_3c.set(
@@ -120,13 +117,12 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
);
local_48.set(local_3c.x - (2.5f * triPla->GetNP()->x), local_3c.y, local_3c.z - (2.5f * triPla->GetNP()->z));
mLinkLinChk.Set(&local_3c, &local_48, this);
if (!bgs->LineCross(&mLinkLinChk)) {
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
return NULL;
}
cM3dGPla* triPla;
triPla = bgs->GetTriPla(mLinkLinChk);
iVar4 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
if (sVar7 != (s16)iVar4) {
triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
if (sVar7 != cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z)) {
return NULL;
}
}
@@ -139,11 +135,11 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
);
local_48.set(local_3c.x - (2.5f * triPla->GetNP()->x), local_3c.y, local_3c.z - (2.5f * triPla->GetNP()->z));
mLinkLinChk.Set(&local_3c, &local_48, this);
if (!bgs->LineCross(&mLinkLinChk)) {
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
return NULL;
}
cM3dGPla* triPla;
triPla = bgs->GetTriPla(mLinkLinChk);
triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
iVar4 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
if (sVar7 != (s16)iVar4) {
return NULL;
@@ -252,7 +248,7 @@ int daPy_lk_c::changeWHideEndProc(cXyz* param_0) {
(!checkUpperAnime(LKANM_BCK_REST) && swordTrigger()) ||
!checkWHideBackWall(param_0))
{
mVelocity = 0.7f * mMaxNormalSpeed;
mNormalSpeed = 0.7f * mMaxNormalSpeed;
current.angle.y = shape_angle.y;
return checkNextMode(0);
}
@@ -271,17 +267,17 @@ BOOL daPy_lk_c::procWHideReady_init(cM3dGPla* param_0, cXyz* param_1) {
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) ? TRUE : FALSE;
offNoResetFlg0(daPyFlg0_UNK10000);
commonProcInit(daPyProc_WHIDE_READY_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
m370C.x = param_1->x;
m370C.y = param_1->y;
m370C.z = param_1->z;
if (param_0 != NULL) {
m34D4 = cM_atan2s(param_0->mNormal.x, param_0->mNormal.z);
mProcVar2.m34D4 = cM_atan2s(param_0->mNormal.x, param_0->mNormal.z);
m370C.x += param_0->mNormal.x * m_HIO->mWall.m.field_0x50;
m370C.z += param_0->mNormal.z * m_HIO->mWall.m.field_0x50;
} else {
m34D4 = m352C;
mProcVar2.m34D4 = m352C;
m370C.x += cM_ssin(m352C) * m_HIO->mWall.m.field_0x50;
m370C.z += cM_scos(m352C) * m_HIO->mWall.m.field_0x50;
}
@@ -290,11 +286,11 @@ BOOL daPy_lk_c::procWHideReady_init(cM3dGPla* param_0, cXyz* param_1) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
}
setSingleMoveAnime(ANM_WALL, 0.0f, m_HIO->mWall.m.field_0x24, -1, m_HIO->mWall.m.field_0x34);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
} else {
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
setAnimeUnequip();
mProcVar0.m3570 = 0;
mProcVar6.m3570 = 0;
}
if (uVar1 != 0) {
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1_e);
@@ -307,16 +303,16 @@ BOOL daPy_lk_c::procWHideReady() {
if (changeWHideEndProc(NULL)) {
return true;
}
if (mProcVar0.m3570 == 0) {
if (mProcVar6.m3570 == 0) {
if (checkNoUpperAnime()) {
setSingleMoveAnime(ANM_WALL, 0.0f, m_HIO->mWall.m.field_0x24, -1, m_HIO->mWall.m.field_0x34);
mProcVar0.m3570 = 1;
mProcVar6.m3570 = 1;
}
return true;
}
cLib_addCalc(&current.pos.x, m370C.x, 0.25f, 10.0f, 4.0f);
cLib_addCalc(&current.pos.z, m370C.z, 0.25f, 10.0f, 4.0f);
if (!cLib_addCalcAngleS(&shape_angle.y, m34D4, 2, 0x2000, 0x800)) {
if (!cLib_addCalcAngleS(&shape_angle.y, mProcVar2.m34D4, 2, 0x2000, 0x800)) {
daPy_matAnm_c::offMabaFlg();
procWHideWait_init();
}
@@ -347,7 +343,7 @@ BOOL daPy_lk_c::procWHideWait_init() {
}
dVar5 = fVar1;
commonProcInit(daPyProc_WHIDE_WAIT_e);
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
setSingleMoveAnime(dVar3, m_HIO->mWall.m.field_0xC, dVar5, sVar2, dVar4);
current.angle.y = shape_angle.y;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1_e);
@@ -463,7 +459,7 @@ BOOL daPy_lk_c::procWHideMove() {
int direction = getDirectionFromCurrentAngle();
if (direction == DIR_BACKWARD) {
current.angle.y -= -0x8000;
mVelocity *= 0.5f;
mNormalSpeed *= 0.5f;
if (mDirection == DIR_LEFT) {
mDirection = DIR_RIGHT;
} else {
@@ -485,7 +481,7 @@ BOOL daPy_lk_c::procWHideMove() {
setNormalSpeedF(fVar2, 0.5f, 2.0f, 0.25f);
getWHideNextPos(&acStack_24, &cStack_30);
if (checkNoResetFlg0(daPyFlg0_UNK10000) && !checkWHideFrontFloor(&cStack_30)) {
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
return procWHideWait_init();
}
@@ -494,13 +490,13 @@ BOOL daPy_lk_c::procWHideMove() {
if (triPla != NULL) {
return procWHideReady_init(triPla, &cStack_3c);
}
if (std::fabsf(mVelocity) <= 0.001f) {
if (std::fabsf(mNormalSpeed) <= 0.001f) {
return procWHideWait_init();
}
if (mAcch.GetGroundH() == -G_CM3D_F_INF || !cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y) ||
!checkWHideBackWall(&cStack_30))
{
mVelocity = 0.0f;
mNormalSpeed = 0.0f;
return procWHideWait_init();
}
@@ -523,22 +519,22 @@ BOOL daPy_lk_c::procWHideMove() {
/* 8013852C-801385EC .text procWHidePeep_init__9daPy_lk_cFv */
BOOL daPy_lk_c::procWHidePeep_init() {
f32 fVar1;
f32 fVar2;
f32 fVar3;
s16 sVar4;
daPy_ANM dVar2;
commonProcInit(daPyProc_WHIDE_PEEP_e);
f32 fVar1;
f32 fVar3;
f32 fVar2;
s16 sVar4;
daPy_ANM anm;
if (!checkNoResetFlg0(daPyFlg0_UNK10000)) {
fVar1 = m_HIO->mWall.m.field_0x1C;
fVar3 = m_HIO->mWall.m.field_0x48;
fVar2 = m_HIO->mWall.m.field_0x2C;
sVar4 = m_HIO->mWall.m.field_0x4;
if (mDirection == DIR_LEFT) {
dVar2 = ANM_WALLPR;
anm = ANM_WALLPR;
} else {
dVar2 = ANM_WALLPL;
anm = ANM_WALLPL;
}
} else {
fVar1 = m_HIO->mWall.m.field_0x20;
@@ -546,12 +542,12 @@ BOOL daPy_lk_c::procWHidePeep_init() {
fVar2 = m_HIO->mWall.m.field_0x30;
sVar4 = m_HIO->mWall.m.field_0x6;
if (mDirection == DIR_LEFT) {
dVar2 = ANM_WALLPRDW;
anm = ANM_WALLPRDW;
} else {
dVar2 = ANM_WALLPLDW;
anm = ANM_WALLPLDW;
}
}
setSingleMoveAnime(dVar2, fVar1, fVar2, sVar4, fVar3);
setSingleMoveAnime(anm, fVar1, fVar2, sVar4, fVar3);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1_e);
return true;
}
+26 -5
View File
@@ -479,15 +479,24 @@ void dComIfG_inf_c::ct() {
/* 800531A8-8005326C .text dComIfG_changeOpeningScene__FP11scene_classs */
int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName) {
#if VERSION == VERSION_DEMO
if (!fopScnM_ChangeReq(i_scene, i_procName, PROC_OVERLAP0, 30)) {
return FALSE;
}
#endif
dComIfGp_offEnableNextStage();
dComIfGp_setNextStage("sea_T", 0, 44, 0);
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(),
dComIfGp_getNextStageLayer());
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), dComIfGp_getNextStageLayer());
#if VERSION > VERSION_DEMO
dComIfGs_setRestartRoomParam(0);
fopScnM_ChangeReq(i_scene, i_procName, PROC_OVERLAP0, 30);
fopScnM_ReRequest(i_procName, 0);
#endif
return 1;
}
@@ -498,7 +507,9 @@ BOOL dComIfG_resetToOpening(scene_class* i_scene) {
}
dComIfG_changeOpeningScene(i_scene, 8);
#if VERSION > VERSION_DEMO
mDoAud_bgmStop(30);
#endif
mDoAud_resetProcess();
return TRUE;
}
@@ -547,7 +558,7 @@ cPhs_State dComIfG_resLoad(request_of_phase_process_class* i_phase, const char*
/* 800533D0-8005347C .text dComIfG_resDelete__FP30request_of_phase_process_classPCc */
int dComIfG_resDelete(request_of_phase_process_class* i_phase, const char* i_resName) {
JUT_ASSERT(VERSION_SELECT(1045, 1045, 1048, 1048), i_phase->id != 1);
JUT_ASSERT(VERSION_SELECT(1033, 1045, 1048, 1048), i_phase->id != 1);
if (i_phase->id == 2) {
dComIfG_deleteObjectRes(i_resName);
@@ -565,7 +576,7 @@ s8 dComIfGp_getReverb(int param_0) {
/* 800534C4-800535B8 .text dComIfGd_setSimpleShadow2__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj */
int dComIfGd_setSimpleShadow2(cXyz* i_pos, f32 groundY, f32 scaleXZ, cBgS_PolyInfo& i_floorPoly,
s16 i_angle, f32 scaleZ, GXTexObj* i_tex) {
if (i_floorPoly.ChkSetInfo() && -G_CM3D_F_INF != groundY) {
if (i_floorPoly.ChkSetInfo() && groundY != -G_CM3D_F_INF) {
cM3dGPla* plane_p =
dComIfG_Bgsp()->GetTriPla(i_floorPoly);
@@ -1170,7 +1181,7 @@ void dComIfGs_setGameStartStage() {
dKy_set_nexttime(120.0f);
} else if (stage_type == dStageType_SEA_e) {
daPy_lk_c* player_p = daPy_getPlayerLinkActorClass();
point = player_p->mRestartPoint;
point = player_p->checkIsland();
room_no = fopAcM_GetRoomNo(player_p);
@@ -1285,18 +1296,22 @@ void dComIfGs_setPlayerRecollectionData() {
tbl = 3;
dComIfGp_setPlayerInfoBufferStageNo(4);
} else {
#if VERSION > VERSION_DEMO
dComIfGs_setSelectItem(dItemBtn_X_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Y_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Z_e, dInvSlot_NONE_e);
#endif
return;
}
#if VERSION > VERSION_DEMO
if (dComIfGs_getpPlayerStatusC(tbl)->mRecollectItem.mItems[dInvSlot_TELESCOPE_e] != dItem_TELESCOPE_e) {
dComIfGs_setSelectItem(dItemBtn_X_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Y_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Z_e, dInvSlot_NONE_e);
return;
}
#endif
dSv_player_status_a_c tmp_sttsA;
dSv_player_item_max_c tmp_max;
@@ -1391,7 +1406,9 @@ void dComIfGs_setPlayerRecollectionData() {
dComIfGs_setItem(dInvSlot_BOTTLE1_e, tmp_item.mItems[dInvSlot_BOTTLE1_e]);
dComIfGs_setItem(dInvSlot_BOTTLE2_e, tmp_item.mItems[dInvSlot_BOTTLE2_e]);
dComIfGs_setItem(dInvSlot_BOTTLE3_e, tmp_item.mItems[dInvSlot_BOTTLE3_e]);
#if VERSION > VERSION_DEMO
dComIfGs_setItem(dInvSlot_CAMERA_e, tmp_item.mItems[dInvSlot_CAMERA_e]);
#endif
dComIfGs_setSelectItem(dItemBtn_X_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Y_e, dInvSlot_NONE_e);
@@ -1490,7 +1507,9 @@ void dComIfGs_revPlayerRecollectionData() {
dComIfGs_setItem(dInvSlot_BOTTLE1_e, tmp_item.mItems[dInvSlot_BOTTLE1_e]);
dComIfGs_setItem(dInvSlot_BOTTLE2_e, tmp_item.mItems[dInvSlot_BOTTLE2_e]);
dComIfGs_setItem(dInvSlot_BOTTLE3_e, tmp_item.mItems[dInvSlot_BOTTLE3_e]);
#if VERSION > VERSION_DEMO
dComIfGs_setItem(dInvSlot_CAMERA_e, tmp_item.mItems[dInvSlot_CAMERA_e]);
#endif
dComIfGs_setSelectItem(dItemBtn_X_e, dInvSlot_NONE_e);
dComIfGs_setSelectItem(dItemBtn_Y_e, dInvSlot_NONE_e);
@@ -1598,7 +1617,9 @@ void dComIfGs_exchangePlayerRecollectionData() {
dComIfGs_setItem(dInvSlot_BOTTLE1_e, tmp_item.mItems[dInvSlot_BOTTLE1_e]);
dComIfGs_setItem(dInvSlot_BOTTLE2_e, tmp_item.mItems[dInvSlot_BOTTLE2_e]);
dComIfGs_setItem(dInvSlot_BOTTLE3_e, tmp_item.mItems[dInvSlot_BOTTLE3_e]);
#if VERSION > VERSION_DEMO
dComIfGs_setItem(dInvSlot_CAMERA_e, tmp_item.mItems[dInvSlot_CAMERA_e]);
#endif
}
/* 8005586C-800559E8 .text dComIfGs_setSelectEquip__FiUc */
+12 -14
View File
@@ -4772,9 +4772,6 @@ void dMeter_rupyInit(sub_meter_class* i_Meter) {
/* 801FC2FC-801FC624 .text dMeter_rupyMove__FP15sub_meter_class */
void dMeter_rupyMove(sub_meter_class* i_Meter) {
int maxRupees;
int iVar2;
int uVar3;
int local_28[4];
char acStack_38[16];
@@ -4783,21 +4780,22 @@ void dMeter_rupyMove(sub_meter_class* i_Meter) {
i_Meter->field_0x19f0[1].mUserArea = dComIfGs_getWalletSize();
}
if (dComIfGp_getItemRupeeCount() != 0) {
maxRupees = (dComIfGs_getRupee() + dComIfGp_getItemRupeeCount());
int targetRupees = (dComIfGs_getRupee() + dComIfGp_getItemRupeeCount());
int maxRupees;
if (dComIfGs_getWalletSize() == 0) {
iVar2 = 200;
maxRupees = 200;
} else if (dComIfGs_getWalletSize() == 1) {
iVar2 = 1000;
maxRupees = 1000;
} else {
iVar2 = 5000;
maxRupees = 5000;
}
if (maxRupees > iVar2) {
maxRupees = iVar2;
} else if (maxRupees < 0) {
maxRupees = 0;
if (targetRupees > maxRupees) {
targetRupees = maxRupees;
} else if (targetRupees < 0) {
targetRupees = 0;
}
i_Meter->mAdjustRupy = maxRupees - i_Meter->mRupyCount;
dComIfGs_setRupee(maxRupees);
i_Meter->mAdjustRupy = targetRupees - i_Meter->mRupyCount;
dComIfGs_setRupee(targetRupees);
g_dComIfG_gameInfo.play.mItemRupeeCount = 0;
if (labs(i_Meter->mAdjustRupy) >= 5) {
rupy_soundOnFlag = 1;
@@ -4841,7 +4839,7 @@ void dMeter_rupyMove(sub_meter_class* i_Meter) {
}
}
}
uVar3 = i_Meter->mRupyCount;
int uVar3 = i_Meter->mRupyCount;
local_28[0] = uVar3 / 1000;
local_28[1] = (uVar3 % 1000) / 100;
local_28[2] = (uVar3 % 100) / 10;
+1 -1
View File
@@ -324,7 +324,7 @@ void dMetronome_c::melodyShow() {
pos.y = 0.0f;
pos.z = 0.0f;
s32 note = daPy_getPlayerLinkActorClass()->m34D6;
s32 note = daPy_getPlayerLinkActorClass()->getTactLeftHandPos();
if (pane_wn[0].mUserArea < mBeat) {
mNote[pane_wn[0].mUserArea] = note;
melodyGuideShow(note, pane_wn[0].mUserArea);
+1 -1
View File
@@ -1624,7 +1624,7 @@ void dMsg_tactInput(sub_msg_class* i_Msg) {
dMsg_tactGuideShow(i_Msg, mBeatNum[melody_no]);
}
if (daPy_getPlayerActorClass()->checkTactInput()) {
sVar1 = daPy_getPlayerLinkActorClass()->m34D6;
sVar1 = daPy_getPlayerLinkActorClass()->getTactLeftHandPos();
mDoAud_tact_getMelodyPattern(melody_no, i_Msg->m1100, &local_38);
i_Msg->m1100++;
if ((sVar1 == local_38) && (mBeatNum[melody_no] == mDoAud_tact_getBeat())) {
+6 -6
View File
@@ -349,7 +349,7 @@ void dPa_smokeEcallBack::setup(JPABaseEmitter* param_1, const cXyz* param_2, con
static dPa_smokePcallBack l_smokePcallBack;
dPa_followEcallBack::setup(param_1, param_2, param_3, param_4);
field_0x14 = param_4;
param_1->mpParticleCallBack = &dPa_control_c::mSmokePcallback;
param_1->setParticleCallBackPtr(dPa_control_c::getSmokePcallback());
param_1->mUserData = mWindOff;
}
@@ -431,7 +431,7 @@ void dPa_smokeEcallBack::end() {
mpEmitter->becomeInvalidEmitter();
mpEmitter->quitImmortalEmitter();
mpEmitter->setEmitterCallBackPtr(&dPa_control_c::mSmokeEcallback);
mpEmitter->setEmitterCallBackPtr(dPa_control_c::getSmokeEcallback());
mFlag |= 1;
mpEmitter = NULL;
}
@@ -522,7 +522,7 @@ JPABaseEmitter* dPa_simpleEcallBack::create(JPAEmitterManager* manager, u16 effe
if (createEmitter(manager)) {
if (effectID == dPa_name::ID_AK_ST_O_BKMSATTACKSMOKE00 || effectID == dPa_name::ID_AK_ST_O_KGTT2JUMPHANDSMOKE00) {
mbIsSmoke = true;
mpBaseEmitter->mpParticleCallBack = &dPa_control_c::mSmokePcallback;
mpBaseEmitter->setParticleCallBackPtr(dPa_control_c::getSmokePcallback());
} else {
mbIsSmoke = false;
}
@@ -770,7 +770,7 @@ JPABaseEmitter* dPa_control_c::set(u8 groupID, u16 userID, const cXyz* pos, cons
emtr->setEmitterCallBackPtr(pCallBack);
pCallBack->setup(emtr, pos, angle, setupInfo);
} else if (userID & 0x4000) {
emtr->setEmitterCallBackPtr(&mKagero);
emtr->setEmitterCallBackPtr(getKageroEcallBack());
}
if (prm != NULL)
@@ -929,7 +929,7 @@ dPa_simpleEcallBack* dPa_control_c::getSimple(u16 id) {
/* 8007DC6C-8007DC94 .text setup__19dPa_rippleEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void dPa_rippleEcallBack::setup(JPABaseEmitter* param_1, const cXyz* param_2, const csXyz* param_3, s8 param_4) {
param_1->setParticleCallBackPtr(&dPa_control_c::mRipplePcallBack);
param_1->setParticleCallBackPtr(dPa_control_c::getRipplePcallBack());
mPos = param_2;
mRate = 1.0f;
mFlags |= 1;
@@ -968,7 +968,7 @@ void dPa_rippleEcallBack::draw(JPABaseEmitter*) {
/* 8007DDA8-8007DDB4 .text setup__25dPa_singleRippleEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void dPa_singleRippleEcallBack::setup(JPABaseEmitter* param_1, const cXyz*, const csXyz*, s8) {
param_1->setParticleCallBackPtr(&dPa_control_c::mRipplePcallBack);
param_1->setParticleCallBackPtr(dPa_control_c::getRipplePcallBack());
}
/* 8007DDB4-8007DE00 .text execute__25dPa_singleRippleEcallBackFP14JPABaseEmitter */
+9 -9
View File
@@ -1224,10 +1224,10 @@ void mDoExt_MtxCalcAnmBlendTblOld::calc(u16 jnt_no) {
}
/* 80012548-800125CC .text initOldFrameMorf__22mDoExt_MtxCalcOldFrameFfUsUs */
void mDoExt_MtxCalcOldFrame::initOldFrameMorf(f32 param_0, u16 param_1, u16 param_2) {
if (param_0 > 0.0f) {
mOldFrameMorfCounter = param_0;
field_0x8 = 1.0f / param_0;
void mDoExt_MtxCalcOldFrame::initOldFrameMorf(f32 i_morf, u16 i_frameStartJoint, u16 i_frameEndJoint) {
if (i_morf > 0.0f) {
mOldFrameMorfCounter = i_morf;
field_0x8 = 1.0f / i_morf;
mOldFrameRate = 1.0f;
field_0x10 = 1.0f;
field_0x14 = 1.0f;
@@ -1239,8 +1239,8 @@ void mDoExt_MtxCalcOldFrame::initOldFrameMorf(f32 param_0, u16 param_1, u16 para
field_0x10 = 0.0f;
field_0x14 = 0.0f;
}
mOldFrameStartJoint = param_1;
mOldFrameEndJoint = param_2;
mOldFrameStartJoint = i_frameStartJoint;
mOldFrameEndJoint = i_frameEndJoint;
}
/* 800125CC-80012650 .text decOldFrameMorfCounter__22mDoExt_MtxCalcOldFrameFv */
@@ -1443,12 +1443,12 @@ void mDoExt_McaMorf::setAnm(J3DAnmTransform* bckAnm, int loopMode, f32 morf, f32
}
/* 80012FC8-8001300C .text setMorf__14mDoExt_McaMorfFf */
void mDoExt_McaMorf::setMorf(f32 morf) {
if (mPrevMorf < 0.0f || morf <= 0.0f) {
void mDoExt_McaMorf::setMorf(f32 i_morf) {
if (mPrevMorf < 0.0f || i_morf <= 0.0f) {
mCurMorf = 1.0f;
} else {
mCurMorf = 0.0f;
mMorfStep = 1.0f / morf;
mMorfStep = 1.0f / i_morf;
}
mPrevMorf = mCurMorf;
}