mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-30 00:16:19 -04:00
Fix HIO load issues (#2903)
* Fix HIO load order in daHoZelda_c::searchBodyAngle * Fix regression in daHoZelda_c::createHeap Apparently the HIO class being constructed having an explicit ctor breaks the compiler ability to branchlessly optimize the false/true return afterwards. Without an explicit ctor the compiler is able to optimize it successfully, which breaks the match. * Fix HIO load order in daNpc_ykW_c::setAttnPos * Remove false version diff * Update configure.py * Remove old comment * Fix alink HIO members being private * alink: Fix HIO loads in 3 retail functions and almost all debug functions
This commit is contained in:
+1
-1
@@ -1942,7 +1942,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_formation_mng"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_guard_mng"),
|
||||
ActorRel(NonMatching, "d_a_horse"),
|
||||
ActorRel(NonMatching, "d_a_hozelda"),
|
||||
ActorRel(Equivalent, "d_a_hozelda"), # weak func order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_izumi_gate"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_kago"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_kytag01"),
|
||||
|
||||
+607
-145
File diff suppressed because it is too large
Load Diff
@@ -48,6 +48,8 @@ struct daHoZelda_hio_c1 {
|
||||
};
|
||||
|
||||
struct daHoZelda_hio_c0 {
|
||||
daHoZelda_hio_c0() {}
|
||||
|
||||
static daHoZelda_hio_c1 const m;
|
||||
};
|
||||
|
||||
@@ -55,7 +57,7 @@ class daHoZelda_hio_c : public JORReflexible {
|
||||
public:
|
||||
daHoZelda_hio_c() {
|
||||
#if DEBUG
|
||||
mParameters = daHoZelda_hio_c0::m;
|
||||
m = daHoZelda_hio_c0::m;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -64,10 +66,16 @@ public:
|
||||
#if DEBUG
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~daHoZelda_hio_c() {}
|
||||
/* 0x8 */ daHoZelda_hio_c1 mParameters;
|
||||
/* 0x8 */ daHoZelda_hio_c1 m;
|
||||
#endif
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
#define HOZELDA_HIO_CLASS daHoZelda_hio_c
|
||||
#else
|
||||
#define HOZELDA_HIO_CLASS daHoZelda_hio_c0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
* @class daHoZelda_c
|
||||
@@ -125,7 +133,7 @@ public:
|
||||
/* 0x6A8 */ mDoExt_bckAnm mBowBck;
|
||||
/* 0x6C4 */ daPy_actorKeep_c mArrowAcKeep;
|
||||
/* 0x6CC */ daPy_actorKeep_c mGndAcKeep;
|
||||
/* 0x6D4 */ daHoZelda_hio_c* mpHIO;
|
||||
/* 0x6D4 */ HOZELDA_HIO_CLASS* mpHIO;
|
||||
/* 0x6D8 */ u8 mBowMode;
|
||||
/* 0x6D9 */ u8 mAnmTimer;
|
||||
/* 0x6DA */ u8 field_0x6da;
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
#include "d/actor/d_a_npc.h"
|
||||
|
||||
class daNpc_ykW_HIO_c;
|
||||
class daNpc_ykW_Param_c;
|
||||
|
||||
#if DEBUG
|
||||
#define NPC_YKW_HIO_CLASS daNpc_ykW_HIO_c
|
||||
#else
|
||||
#define NPC_YKW_HIO_CLASS daNpc_ykW_Param_c
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
@@ -139,7 +146,7 @@ public:
|
||||
field_0x101c = 10;
|
||||
}
|
||||
|
||||
/* 0x0E40 */ daNpc_ykW_HIO_c* mpHIO;
|
||||
/* 0x0E40 */ NPC_YKW_HIO_CLASS* mpHIO;
|
||||
/* 0x0E44 */ dCcD_Cyl mCyl;
|
||||
/* 0x0F80 */ u8 field_0xf80;
|
||||
/* 0x0F84 */ daNpcT_ActorMngr_c mActorMngrs[5];
|
||||
|
||||
+489
-458
File diff suppressed because it is too large
Load Diff
@@ -1601,7 +1601,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
|
||||
// Reset
|
||||
ctx->genButton("リセット", 0x4000003, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
// Shield
|
||||
ctx->genNode("盾", &mGuardAttack1, 0, 0);
|
||||
ctx->genNode("盾", &mAtPush, 0, 0);
|
||||
// Sidestep
|
||||
ctx->genNode("回り込み", &mTurnMove, 0, 0);
|
||||
// Crouch guard anm speed
|
||||
@@ -1657,7 +1657,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_guard_c::daAlinkHIO_guard_c()
|
||||
: mGuardAttack1(0, 17.0f), mGuardAttack2(1, 21.0f), mTurnMove() {
|
||||
: mAtPush(0, 17.0f), mAtKick(1, 21.0f), mTurnMove() {
|
||||
static const char plabel[] = "const daAlinkHIO_guard_c1 daAlinkHIO_guard_c0::m = {\n";
|
||||
m_len = 128;
|
||||
mp_src_data = (void*)&daAlinkHIO_guard_c0::m;
|
||||
@@ -2388,9 +2388,9 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
|
||||
// Normal
|
||||
ctx->genNode("通常", &mDamNormal, 0, 0);
|
||||
// Large
|
||||
ctx->genNode("大", &mDamLaHu0, 0, 0);
|
||||
ctx->genNode("大", &mDamLarge, 0, 0);
|
||||
// Heavy large
|
||||
ctx->genNode("強大", &mDamLaHu1, 0, 0);
|
||||
ctx->genNode("強大", &mDamHuge, 0, 0);
|
||||
// On horse
|
||||
ctx->genNode("馬上", &mDamHorse, 0, 0);
|
||||
// Fall
|
||||
@@ -2454,7 +2454,7 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_damage_c::daAlinkHIO_damage_c()
|
||||
: mDamNormal(), mDamLaHu0(0), mDamLaHu1(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
|
||||
: mDamNormal(), mDamLarge(0), mDamHuge(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
|
||||
static const char plabel[] = "const daAlinkHIO_damage_c1 daAlinkHIO_damage_c0::m = {\n";
|
||||
m_len = 88;
|
||||
mp_src_data = (void*)&daAlinkHIO_damage_c0::m;
|
||||
@@ -4740,8 +4740,8 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
|
||||
ctx->genNode("通常", &mNormal, 0, 0);
|
||||
// Large
|
||||
ctx->genNode("大", &mLarge, 0, 0);
|
||||
// Strong large
|
||||
ctx->genNode("強大", &mStrongLarge, 0, 0);
|
||||
// Huge
|
||||
ctx->genNode("強大", &mHuge, 0, 0);
|
||||
// Fall
|
||||
ctx->genNode("落下", &mFall, 0, 0);
|
||||
// Capture
|
||||
@@ -4756,7 +4756,7 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_wlDamage_c::daAlinkHIO_wlDamage_c()
|
||||
: mNormal(), mLarge(0), mStrongLarge(1), mFall(), mCapture() {
|
||||
: mNormal(), mLarge(0), mHuge(1), mFall(), mCapture() {
|
||||
static const char plabel[] = "const daAlinkHIO_wlDamage_c1 daAlinkHIO_wlDamage_c0::m = {\n";
|
||||
m_len = 44;
|
||||
mp_src_data = (void*)&daAlinkHIO_wlDamage_c0::m;
|
||||
|
||||
@@ -6,53 +6,53 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
s16 daAlink_c::getBombExplodeTime() const {
|
||||
return daAlinkHIO_bomb_c0::m.mExplodeTime;
|
||||
return mpHIO->mItem.mBomb.m.mExplodeTime;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombGravity() const {
|
||||
return daAlinkHIO_bomb_c0::m.mGravity;
|
||||
return mpHIO->mItem.mBomb.m.mGravity;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombMaxFallSpeed() const {
|
||||
return daAlinkHIO_bomb_c0::m.mMaxFallSpeed;
|
||||
return mpHIO->mItem.mBomb.m.mMaxFallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombBoundRate() const {
|
||||
return daAlinkHIO_bomb_c0::m.mBoundRate;
|
||||
return mpHIO->mItem.mBomb.m.mBoundRate;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombStopSpeedY() const {
|
||||
return daAlinkHIO_bomb_c0::m.mStopSpeedY;
|
||||
return mpHIO->mItem.mBomb.m.mStopSpeedY;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombMaxSpeedY() const {
|
||||
return daAlinkHIO_bomb_c0::m.mMaxSpeedY;
|
||||
return mpHIO->mItem.mBomb.m.mMaxSpeedY;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombEffScale() const {
|
||||
return daAlinkHIO_bomb_c0::m.mEffScale;
|
||||
return mpHIO->mItem.mBomb.m.mEffScale;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombAtR() const {
|
||||
return daAlinkHIO_bomb_c0::m.mAttackRadius;
|
||||
return mpHIO->mItem.mBomb.m.mAttackRadius;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getEnemyBombColorR() const {
|
||||
return daAlinkHIO_bomb_c0::m.mEnemyBombColorR;
|
||||
return mpHIO->mItem.mBomb.m.mEnemyBombColorR;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombWaterGravity() const {
|
||||
return daAlinkHIO_bomb_c0::m.mWaterGravity;
|
||||
return mpHIO->mItem.mBomb.m.mWaterGravity;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombWaterMaxFallSpeed() const {
|
||||
return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed;
|
||||
return mpHIO->mItem.mBomb.m.mWaterMaxFallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
|
||||
return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit;
|
||||
return mpHIO->mItem.mBomb.m.mExplodeWaterEffectLimit;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBombInsectLimitAngle() const {
|
||||
return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle;
|
||||
return mpHIO->mItem.mBomb.m.mBombInsectLimitAngle;
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ BOOL daAlink_c::checkBoomerangLockAccept() {
|
||||
f32 daAlink_c::getBoomSpeed() {
|
||||
f32 speed;
|
||||
if (checkBoomerangChargeEndWait()) {
|
||||
speed = daAlinkHIO_boom_c0::m.mChargeFlySpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mChargeFlySpeed;
|
||||
} else {
|
||||
speed = daAlinkHIO_boom_c0::m.mFlySpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mFlySpeed;
|
||||
}
|
||||
|
||||
if (checkModeFlg(0x400)) {
|
||||
@@ -29,14 +29,14 @@ f32 daAlink_c::getBoomSpeed() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBoomCatchSpeed() const {
|
||||
return daAlinkHIO_boom_c0::m.mCatchSpeed;
|
||||
return mpHIO->mItem.mBoomerang.m.mCatchSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBoomFlyMax() const {
|
||||
if (checkModeFlg(0x400) && !checkCanoeRide()) {
|
||||
return daAlinkHIO_boom_c0::m.mHorsebackFlyDistMax;
|
||||
return mpHIO->mItem.mBoomerang.m.mHorsebackFlyDistMax;
|
||||
} else {
|
||||
return daAlinkHIO_boom_c0::m.mFlyDistMax;
|
||||
return mpHIO->mItem.mBoomerang.m.mFlyDistMax;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,15 +45,15 @@ f32 daAlink_c::getBoomLockMax() {
|
||||
|
||||
if (checkBossBabaRoom()) {
|
||||
return 2600.0f;
|
||||
} else if (daAlinkHIO_boom_c0::m.mLockDistMax > fly_max) {
|
||||
return daAlinkHIO_boom_c0::m.mLockDistMax;
|
||||
} else if (mpHIO->mItem.mBoomerang.m.mLockDistMax > fly_max) {
|
||||
return mpHIO->mItem.mBoomerang.m.mLockDistMax;
|
||||
} else {
|
||||
return fly_max;
|
||||
}
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBoomBgThroughTime() const {
|
||||
return daAlinkHIO_boom_c0::m.mBgThroughTime;
|
||||
return mpHIO->mItem.mBoomerang.m.mBgThroughTime;
|
||||
}
|
||||
|
||||
bool daAlink_c::checkBossBabaRoom() {
|
||||
@@ -103,7 +103,7 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) {
|
||||
|
||||
setGrabItemActor(i_grabActor);
|
||||
field_0x33e4 = 38.0f;
|
||||
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(tmp);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(tmp);
|
||||
} else {
|
||||
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,13 +137,13 @@ void daAlink_c::setBoomerangReadyQuake() {
|
||||
dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, 1.0f, tmp_0));
|
||||
|
||||
onNoResetFlg3(FLG3_UNK_4);
|
||||
mItemVar0.field_0x3018 = daAlinkHIO_boom_c0::m.mChargeTime;
|
||||
mItemVar0.field_0x3018 = mpHIO->mItem.mBoomerang.m.mChargeTime;
|
||||
}
|
||||
|
||||
void daAlink_c::setBoomerangReadyAnime() {
|
||||
f32 var_f31;
|
||||
if (checkAttentionLock()) {
|
||||
var_f31 = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
|
||||
var_f31 = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -153,12 +153,12 @@ void daAlink_c::setBoomerangReadyAnime() {
|
||||
}
|
||||
|
||||
void daAlink_c::setThrowBoomerangAnime() {
|
||||
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
|
||||
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
|
||||
cancelItemUseQuake(0);
|
||||
}
|
||||
|
||||
void daAlink_c::setBoomerangCatchAnime() {
|
||||
setUpperAnimeParam(0x52, UPPER_2, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setUpperAnimeParam(0x52, UPPER_2, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f97 = 254;
|
||||
|
||||
@@ -190,8 +190,8 @@ void daAlink_c::throwBoomerang() {
|
||||
mFastShotTime = -1;
|
||||
daPy_boomerangMove_c::offEventKeepFlg();
|
||||
} else {
|
||||
item->speedF = daAlinkHIO_pickUp_c0::m.field_0x28;
|
||||
item->speed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
|
||||
item->speedF = mpHIO->mItem.mPickUp.m.field_0x28;
|
||||
item->speed.y = mpHIO->mItem.mPickUp.m.field_0x2C;
|
||||
item->current.angle.y = shape_angle.y;
|
||||
|
||||
fopAcM_cancelCarryNow(item);
|
||||
@@ -283,7 +283,7 @@ void daAlink_c::checkUpperItemActionBoomerangFly() {
|
||||
|
||||
int daAlink_c::checkNextActionBoomerang() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
|
||||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
|
||||
checkNoResetFlg1(FLG1_UNK_2)) {
|
||||
return 0;
|
||||
}
|
||||
@@ -363,7 +363,7 @@ int daAlink_c::procBoomerangSubjectInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
initBoomerangUpperAnimeSpeed(1);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
|
||||
daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
dComIfGp_setPlayerStatus0(0, 0x80000);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -402,7 +402,7 @@ int daAlink_c::procBoomerangMoveInit() {
|
||||
}
|
||||
|
||||
initBoomerangUpperAnimeSpeed(0);
|
||||
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80000);
|
||||
return 1;
|
||||
@@ -421,7 +421,7 @@ int daAlink_c::procBoomerangMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -444,7 +444,7 @@ int daAlink_c::procBoomerangCatchInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
setBoomerangCatchAnime();
|
||||
offNoResetFlg0(FLG0_UNK_20);
|
||||
|
||||
@@ -455,7 +455,7 @@ int daAlink_c::procBoomerangCatch() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (frameCtrl->getFrame() > daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) {
|
||||
if (frameCtrl->getFrame() > mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
}
|
||||
|
||||
|
||||
@@ -203,11 +203,11 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
if (mEquipItem == fpcNm_ITEM_MILK_BOTTLE) {
|
||||
if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_END);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
}
|
||||
|
||||
field_0x072c->setFrame(1.0f);
|
||||
@@ -253,19 +253,19 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
if (mItemVar0.mBottleItemHealAmount < 0 || mEquipItem == fpcNm_ITEM_BEE_CHILD) {
|
||||
if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_NASTY)->m_upperID,
|
||||
UPPER_2, &daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
|
||||
UPPER_2, &mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_NASTY);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_NASTY,
|
||||
&daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
|
||||
&mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
|
||||
}
|
||||
} else if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_END);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
}
|
||||
|
||||
field_0x072c->setFrame(2.0f);
|
||||
@@ -283,7 +283,7 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
{
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_42_e) {
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
|
||||
} else {
|
||||
allUnequip(mKeepItem == fpcNm_ITEM_KANTERA);
|
||||
}
|
||||
@@ -377,7 +377,7 @@ int daAlink_c::procBottleDrinkInit(u16 i_itemNo) {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
|
||||
keepItemData();
|
||||
setBottleModel(i_itemNo);
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000);
|
||||
@@ -412,7 +412,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_BOTTLE_OPEN, &daAlinkHIO_bottle_c0::m.mOpenBottleAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_OPEN, &mpHIO->mItem.mBottle.m.mOpenBottleAnm);
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000);
|
||||
@@ -470,7 +470,7 @@ int daAlink_c::procBottleOpen() {
|
||||
if (mEquipItem == fpcNm_ITEM_FAIRY) {
|
||||
setSingleAnimeBaseMorf(ANM_BOTTLE_FAIRY, -1.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_POUR, &daAlinkHIO_bottle_c0::m.mPourAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_POUR, &mpHIO->mItem.mBottle.m.mPourAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_WATER_BOTTLE) {
|
||||
if (mWaterY > mLeftHandPos.y) {
|
||||
@@ -580,7 +580,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
if (temp_r30 == PROC_OBJ_OILTUBO || temp_r30 == PROC_TAG_SSDRINK ||
|
||||
temp_r30 == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA)
|
||||
{
|
||||
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &daAlinkHIO_bottle_c0::m.mScoopAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &mpHIO->mItem.mBottle.m.mScoopAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
onNoResetFlg2(FLG2_UNK_10000000);
|
||||
@@ -591,7 +591,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mScoopAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mScoopAnm.mCancelFrame;
|
||||
field_0x347c = 14.0f;
|
||||
|
||||
if (var_r31 != NULL) {
|
||||
@@ -606,12 +606,12 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
onModeFlg(0x2000);
|
||||
}
|
||||
} else if (temp_r3) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingDownAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingDownAnm.mCancelFrame;
|
||||
field_0x347c = 8.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingSideAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingSideAnm.mCancelFrame;
|
||||
field_0x347c = 4.0f;
|
||||
}
|
||||
|
||||
@@ -709,9 +709,9 @@ int daAlink_c::procBottleGetInit(int param_0) {
|
||||
|
||||
int var_r30;
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
setSingleAnime(ANM_BOTTLE_GET, daAlinkHIO_bottle_c0::m.mGetAnm.mSpeed, 40.0f,
|
||||
daAlinkHIO_bottle_c0::m.mGetAnm.mEndFrame,
|
||||
daAlinkHIO_bottle_c0::m.mGetAnm.mInterpolation);
|
||||
setSingleAnime(ANM_BOTTLE_GET, mpHIO->mItem.mBottle.m.mGetAnm.mSpeed, 40.0f,
|
||||
mpHIO->mItem.mBottle.m.mGetAnm.mEndFrame,
|
||||
mpHIO->mItem.mBottle.m.mGetAnm.mInterpolation);
|
||||
field_0x2f93 = 0xFE;
|
||||
|
||||
if (proc_pickup) {
|
||||
@@ -730,7 +730,7 @@ int daAlink_c::procBottleGetInit(int param_0) {
|
||||
|
||||
setGetSubBgm(var_r30);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_GET, &daAlinkHIO_bottle_c0::m.mGetAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_GET, &mpHIO->mItem.mBottle.m.mGetAnm);
|
||||
var_r30 = mEquipItem;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,42 +10,42 @@
|
||||
|
||||
void daAlink_c::getArrowFlyData(f32* o_distance, f32* o_speed, int i_forceCharge) const {
|
||||
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mSlingshotDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mSlingshotSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mSlingshotDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mSlingshotSpeed;
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, 0x200000)) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mScopeArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mScopeArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mScopeArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mScopeArrowSpeed;
|
||||
} else if (field_0x301c == 0 || i_forceCharge) {
|
||||
if (field_0x301e == 1) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mChargeBombArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mChargeBombArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mChargeBombArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mChargeBombArrowSpeed;
|
||||
} else {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mChargeArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mChargeArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mChargeArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mChargeArrowSpeed;
|
||||
}
|
||||
} else if (field_0x301e == 1) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mBombArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mBombArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mBombArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mBombArrowSpeed;
|
||||
} else {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mArrowSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtR() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowAttackRadius;
|
||||
return mpHIO->mItem.mBow.m.mArrowAttackRadius;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBombArrowFlyExplodeTime() const {
|
||||
return daAlinkHIO_bow_c0::m.mBombArrowFlyExplodeTime;
|
||||
return mpHIO->mItem.mBow.m.mBombArrowFlyExplodeTime;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtMaxStart() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowIncAttackMaxStart;
|
||||
return mpHIO->mItem.mBow.m.mArrowIncAttackMaxStart;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtMax() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowIncAttackMax;
|
||||
return mpHIO->mItem.mBow.m.mArrowIncAttackMax;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkBowAndSlingItem(int i_itemNo) {
|
||||
@@ -123,7 +123,7 @@ void daAlink_c::deleteArrow() {
|
||||
|
||||
if (arrow_p != NULL && fopAcM_GetName(arrow_p) == PROC_ARROW) {
|
||||
if (arrow_p->checkBombArrow() &&
|
||||
(mDamageTimer == daAlinkHIO_damage_c0::m.mInvincibleTime || checkModeFlg(8)))
|
||||
(mDamageTimer == mpHIO->mDamage.m.mInvincibleTime || checkModeFlg(8)))
|
||||
{
|
||||
arrow_p->setBombArrowExplode();
|
||||
dComIfGp_addSelectItemNum(mSelectItemId, -1);
|
||||
@@ -227,22 +227,22 @@ void daAlink_c::setBowReadyAnime() {
|
||||
}
|
||||
|
||||
void daAlink_c::setBowReloadAnime() {
|
||||
setUpperAnimeParam(9, UPPER_2, &daAlinkHIO_bow_c0::m.mLoadAnm);
|
||||
setUpperAnimeParam(9, UPPER_2, &mpHIO->mItem.mBow.m.mLoadAnm);
|
||||
setFacePriTexture(FTANM_UNK_8);
|
||||
setFacePriBck(0xE5);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
changeItemBck(0x1F0, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
|
||||
changeItemBck(0x1F0, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
|
||||
field_0x2f97 = 5;
|
||||
seStartOnlyReverb(Z2SE_AL_PACHINKO_DRAW);
|
||||
} else {
|
||||
changeItemBck(0x41, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
|
||||
changeItemBck(0x41, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
|
||||
field_0x2f97 = 7;
|
||||
seStartOnlyReverb(Z2SE_AL_DRAW_BOW);
|
||||
}
|
||||
|
||||
field_0x2f96 = 0;
|
||||
field_0x301c = daAlinkHIO_bow_c0::m.mChargeArrowTime;
|
||||
field_0x301c = mpHIO->mItem.mBow.m.mChargeArrowTime;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
@@ -273,7 +273,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
|
||||
if (checkReadyItem()) {
|
||||
if (mItemVar0.field_0x3018 != 0) {
|
||||
setUpperAnimeParam(0xC, UPPER_2, &daAlinkHIO_bow_c0::m.mShootAnm);
|
||||
setUpperAnimeParam(0xC, UPPER_2, &mpHIO->mItem.mBow.m.mShootAnm);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f96 = 0;
|
||||
|
||||
@@ -291,7 +291,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
var_r29 = 0x44;
|
||||
}
|
||||
|
||||
changeItemBck(var_r29, daAlinkHIO_bow_c0::m.mShootAnm.mStartFrame);
|
||||
changeItemBck(var_r29, mpHIO->mItem.mBow.m.mShootAnm.mStartFrame);
|
||||
mItemVar0.field_0x3018 = 0;
|
||||
} else if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
if (!itemButton()) {
|
||||
@@ -335,7 +335,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
dComIfGp_setItemArrowNumCount(-1);
|
||||
mItemAcKeep.clearData();
|
||||
onResetFlg0(RFLG0_UNK_20000000);
|
||||
field_0x30a4 = daAlinkHIO_bow_c0::m.mBombArrowHoldTime;
|
||||
field_0x30a4 = mpHIO->mItem.mBow.m.mBombArrowHoldTime;
|
||||
} else {
|
||||
seStartOnlyReverb(Z2SE_AL_ARROW_EMPTY);
|
||||
}
|
||||
@@ -403,7 +403,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(&mUpperFrameCtrl[2]) ||
|
||||
(mUpperFrameCtrl[2].getFrame() > daAlinkHIO_bow_c0::m.mShootAnm.mCancelFrame &&
|
||||
(mUpperFrameCtrl[2].getFrame() > mpHIO->mItem.mBow.m.mShootAnm.mCancelFrame &&
|
||||
itemButton()))
|
||||
{
|
||||
setBowReadyAnime();
|
||||
@@ -415,7 +415,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
}
|
||||
|
||||
if (checkBowWaitAnime() || (mEquipItem == fpcNm_ITEM_PACHINKO && checkBowChargeWaitAnime())) {
|
||||
field_0x33dc += daAlinkHIO_bow_c0::m.mShootAnm.mSpeed;
|
||||
field_0x33dc += mpHIO->mItem.mBow.m.mShootAnm.mSpeed;
|
||||
} else {
|
||||
field_0x33dc = mUpperFrameCtrl[2].getFrame();
|
||||
}
|
||||
@@ -556,7 +556,7 @@ int daAlink_c::procBowSubjectInit() {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
|
||||
daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mBow.m.mStartInterpolation);
|
||||
mNormalSpeed = 0.0f;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
@@ -580,7 +580,7 @@ int daAlink_c::procBowMoveInit() {
|
||||
onModeFlg(1);
|
||||
}
|
||||
|
||||
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBow.m.mStartInterpolation);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
@@ -604,7 +604,7 @@ int daAlink_c::procBowMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
current.angle.y = shape_angle.y - 0x4000;
|
||||
} else {
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
f32 daAlink_c::getCanoeMaxSpeed() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mMaxSpeed_RiverRide;
|
||||
return mpHIO->mCanoe.m.mMaxSpeed_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mMaxSpeed;
|
||||
return mpHIO->mCanoe.m.mMaxSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeBackMaxSpeed() const {
|
||||
return daAlinkHIO_canoe_c0::m.mBackMaxSpeed;
|
||||
return mpHIO->mCanoe.m.mBackMaxSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeCres() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mDeceleration_RiverRide;
|
||||
return mpHIO->mCanoe.m.mDeceleration_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mDeceleration;
|
||||
return mpHIO->mCanoe.m.mDeceleration;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeSpeedRate() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mSpeedRate_RiverRide;
|
||||
return mpHIO->mCanoe.m.mSpeedRate_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mSpeedRate;
|
||||
return mpHIO->mCanoe.m.mSpeedRate;
|
||||
}
|
||||
}
|
||||
|
||||
s16 daAlink_c::getCanoeMaxRotSpeed() const {
|
||||
s16 var_r30;
|
||||
if (checkCanoeSlider()) {
|
||||
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle_RiverRide;
|
||||
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle_RiverRide;
|
||||
} else {
|
||||
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle;
|
||||
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle;
|
||||
}
|
||||
|
||||
return var_r30 * (((mUnderFrameCtrl[0].getRate() - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
|
||||
return var_r30 * (((mUnderFrameCtrl[0].getRate() - mpHIO->mCanoe.m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
|
||||
}
|
||||
|
||||
cXyz* daAlink_c::getCanoeLocalPaddleTop() {
|
||||
@@ -299,7 +299,7 @@ int daAlink_c::canoeCommon() {
|
||||
var_r29 = 0x20021;
|
||||
}
|
||||
|
||||
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) / (daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
|
||||
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - mpHIO->mCanoe.m.mStickRowAnmSpeed) / (mpHIO->mCanoe.m.mBtnRowStartAnmSpeed - mpHIO->mCanoe.m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
|
||||
mZ2Link.startLinkSwordSound(var_r29, var_r27, mVoiceReverbIntensity);
|
||||
}
|
||||
|
||||
@@ -335,10 +335,10 @@ int daAlink_c::procCanoeRideInit() {
|
||||
deleteEquipItem(0, 0);
|
||||
daCanoe_c* canoe = (daCanoe_c*)field_0x27f4;
|
||||
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbStartFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -403,7 +403,7 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
|
||||
}
|
||||
|
||||
setHeavyBoots(0);
|
||||
setSingleAnimeParam(ANM_JUMP_LAND, &daAlinkHIO_autoJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_JUMP_LAND, &mpHIO->mAutoJump.m.mLandAnm);
|
||||
deleteEquipItem(0, 0);
|
||||
|
||||
mRideAcKeep.setData(canoe);
|
||||
@@ -445,7 +445,7 @@ int daAlink_c::procCanoeGetOffInit() {
|
||||
field_0x2f99 = 0;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 6.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 6.0f);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -509,7 +509,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
checkLandAction(0);
|
||||
} else if (speed.y < -gravity) {
|
||||
procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation);
|
||||
procFallInit(2, mpHIO->mWallHang.mSmallJump.m.mFallInterpolation);
|
||||
} else {
|
||||
field_0x2f99 = 7;
|
||||
}
|
||||
@@ -517,7 +517,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm);
|
||||
setSingleAnimeParam(ANM_VJUMP_START, &mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm);
|
||||
field_0x33b0 = l_waitBaseAnime.y;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
}
|
||||
@@ -525,7 +525,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
rideGetOff();
|
||||
offModeFlg(0x400);
|
||||
setJumpMode();
|
||||
setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, maxFallSpeed, 0);
|
||||
setSpecialGravity(mpHIO->mAutoJump.m.mGravity, maxFallSpeed, 0);
|
||||
mNormalSpeed = 15.0f;
|
||||
speed.y = 20.0f;
|
||||
}
|
||||
@@ -756,12 +756,12 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CANOE_ROW);
|
||||
f32 var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
|
||||
f32 var_f31 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
|
||||
BOOL var_r24 = 0;
|
||||
|
||||
if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) {
|
||||
mProcVar3.field_0x300e = 1;
|
||||
if (temp_r26->speedF > 0.5f * (-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) {
|
||||
if (temp_r26->speedF > 0.5f * (-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate)) {
|
||||
var_r24 = 1;
|
||||
}
|
||||
|
||||
@@ -783,7 +783,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
}
|
||||
|
||||
if (var_r24 != 0) {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime((daAlink_ANM)var_r29, var_f31, 0.0f, 35, 3.0f);
|
||||
@@ -809,9 +809,9 @@ int daAlink_c::procCanoeRow() {
|
||||
procCanoeWaitInit(0);
|
||||
}
|
||||
} else {
|
||||
f32 var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
|
||||
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
|
||||
f32 var_f30 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
|
||||
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * mpHIO->mCanoe.m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
var_f30 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
|
||||
}
|
||||
|
||||
f32 sp8 = temp_r27->getRate();
|
||||
@@ -851,7 +851,7 @@ int daAlink_c::procCanoeRow() {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate());
|
||||
} else {
|
||||
temp_r29->setAimSpeed(-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate);
|
||||
temp_r29->setAimSpeed(-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -873,12 +873,12 @@ int daAlink_c::procCanoePaddleShiftInit(int param_0) {
|
||||
|
||||
f32 speed;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
speed = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
speed = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
@@ -932,12 +932,12 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) {
|
||||
|
||||
f32 var_f31;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
@@ -1017,12 +1017,12 @@ int daAlink_c::procCanoePaddleGrab() {
|
||||
if (checkAnmEnd(temp_r29) != 0) {
|
||||
f32 var_f31;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
mUpperFrameCtrl[0].setFrame(11.0f);
|
||||
getNowAnmPackUpper(UPPER_0)->setFrame(11.0f);
|
||||
|
||||
@@ -1545,7 +1545,7 @@ int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) {
|
||||
temp_r3->setAimSpeed(0.0f);
|
||||
temp_r3->setAimAngle(shape_angle.y);
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_START);
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
@@ -1583,7 +1583,7 @@ int daAlink_c::procCanoeKandelaarPourInit() {
|
||||
canoe->setAimSpeed(0.0f);
|
||||
canoe->setAimAngle(shape_angle.y);
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
|
||||
commonKandelaarPourInit();
|
||||
return 1;
|
||||
}
|
||||
@@ -1613,7 +1613,7 @@ int daAlink_c::procFishingCastInit() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnimeBase(0x260);
|
||||
field_0x2f96 = 0xFE;
|
||||
field_0x2f97 = 8;
|
||||
@@ -1656,7 +1656,7 @@ int daAlink_c::procFishingCast() {
|
||||
}
|
||||
|
||||
if (checkInputOnR()) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_move_c0::m.mTurnAngleRate, daAlinkHIO_move_c0::m.mMaxTurnAngle, daAlinkHIO_move_c0::m.mMinTurnAngle);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -1669,7 +1669,7 @@ int daAlink_c::procFishingCast() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
} else if (mUnderFrameCtrl[0].getRate() < 0.01f) {
|
||||
mUnderFrameCtrl[0].setRate(daAlinkHIO_move_c0::m.mWaitAnmSpeed);
|
||||
mUnderFrameCtrl[0].setRate(mpHIO->mMove.m.mWaitAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(1.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,19 +12,19 @@ BOOL daAlink_c::checkLv6BossRoom() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallSpeed() const {
|
||||
return daAlinkHIO_copyRod_c0::m.mBallSpeed;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallReturnSpeed() const {
|
||||
return daAlinkHIO_copyRod_c0::m.mBallReturnSpeed;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallReturnSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallDisMax() const {
|
||||
if (checkLv6BossRoom()) {
|
||||
return daAlinkHIO_copyRod_c0::m.mBossBallMaxDistance;
|
||||
return mpHIO->mItem.mCopyRod.m.mBossBallMaxDistance;
|
||||
}
|
||||
|
||||
return daAlinkHIO_copyRod_c0::m.mBallMaxDistance;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallMaxDistance;
|
||||
}
|
||||
|
||||
fopAc_ac_c* daAlink_c::getCopyRodControllActor() {
|
||||
@@ -50,7 +50,7 @@ void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(0.0f);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
|
||||
} else {
|
||||
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,9 +86,9 @@ void daAlink_c::setCopyRodControllUpperSpeedRate() {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
if (mProcID == PROC_STEP_MOVE) {
|
||||
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
|
||||
} else {
|
||||
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
|
||||
}
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
@@ -132,7 +132,7 @@ void daAlink_c::setCopyRodModel() {
|
||||
void daAlink_c::setCopyRodReadyAnime() {
|
||||
f32 speed;
|
||||
if (checkAttentionLock()) {
|
||||
speed = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
|
||||
} else {
|
||||
speed = 0.0f;
|
||||
}
|
||||
@@ -201,7 +201,7 @@ BOOL daAlink_c::checkUpperItemActionCopyRod() {
|
||||
}
|
||||
|
||||
if (checkReadyItem() && !itemButton() && checkCopyRodReadyAnime()) {
|
||||
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
|
||||
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
|
||||
mSearchBallScale = getCopyRodBallDisMax();
|
||||
|
||||
if (!mSight.getLockFlg()) {
|
||||
@@ -226,7 +226,7 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
|
||||
|
||||
int daAlink_c::checkNextActionCopyRod() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
|
||||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
|
||||
checkNoResetFlg1(FLG1_UNK_10000))
|
||||
{
|
||||
return 0;
|
||||
@@ -275,7 +275,7 @@ int daAlink_c::procCopyRodSubjectInit() {
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
initCopyRodUpperAnimeSpeed(1);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80);
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -314,7 +314,7 @@ int daAlink_c::procCopyRodMoveInit() {
|
||||
}
|
||||
|
||||
initCopyRodUpperAnimeSpeed(0);
|
||||
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80);
|
||||
return 1;
|
||||
@@ -333,7 +333,7 @@ int daAlink_c::procCopyRodMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -354,16 +354,16 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
((fopAcM_GetName(statue) == PROC_CSTATUE && statue->checkNotSmallType()) ||
|
||||
fopAcM_GetName(statue) != PROC_CSTATUE))
|
||||
{
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &daAlinkHIO_copyRod_c0::m.mBigSwingAnm);
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &mpHIO->mItem.mCopyRod.m.mBigSwingAnm);
|
||||
field_0x3478 = 13.0f;
|
||||
field_0x347c = 21.0f;
|
||||
field_0x3480 = daAlinkHIO_copyRod_c0::m.mBigSwingAnm.mCancelFrame;
|
||||
field_0x3480 = mpHIO->mItem.mCopyRod.m.mBigSwingAnm.mCancelFrame;
|
||||
field_0x3484 = 27.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING, &daAlinkHIO_copyRod_c0::m.mSwingAnm);
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING, &mpHIO->mItem.mCopyRod.m.mSwingAnm);
|
||||
field_0x3478 = 4.0f;
|
||||
field_0x347c = 8.0f;
|
||||
field_0x3480 = daAlinkHIO_copyRod_c0::m.mSwingAnm.mCancelFrame;
|
||||
field_0x3480 = mpHIO->mItem.mCopyRod.m.mSwingAnm.mCancelFrame;
|
||||
field_0x3484 = 14.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
f32 daAlink_c::getCrawlMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMin,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMax);
|
||||
return getAnmSpeedStickRate(mpHIO->mCrouch.m.mCrawlAnmSpeedMin,
|
||||
mpHIO->mCrouch.m.mCrawlAnmSpeedMax);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCrawlMoveSpeed() {
|
||||
@@ -20,7 +20,7 @@ f32 daAlink_c::getCrawlMoveSpeed() {
|
||||
frame = frame_ctrl->getFrame();
|
||||
}
|
||||
|
||||
return (daAlinkHIO_crouch_c0::m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
|
||||
return (mpHIO->mCrouch.m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
|
||||
}
|
||||
|
||||
void daAlink_c::setCrawlMoveDirectionArrow() {
|
||||
@@ -357,9 +357,9 @@ void daAlink_c::setCrawlMoveAngle() {
|
||||
cXyz sp2C;
|
||||
cXyz sp38;
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_crouch_c0::m.mCrawlTurnRate,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlTurnMax,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlTurnMin);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mCrouch.m.mCrawlTurnRate,
|
||||
mpHIO->mCrouch.m.mCrawlTurnMax,
|
||||
mpHIO->mCrouch.m.mCrawlTurnMin);
|
||||
|
||||
if (shape_angle.y != current.angle.y) {
|
||||
if ((s16)(shape_angle.y - current.angle.y) > 0) {
|
||||
@@ -457,7 +457,7 @@ int daAlink_c::procCrawlStartInit() {
|
||||
commonProcInit(PROC_CRAWL_START);
|
||||
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
setSingleAnimeParam(ANM_CRAWL_START, &daAlinkHIO_crouch_c0::m.mCrawlStartAnm);
|
||||
setSingleAnimeParam(ANM_CRAWL_START, &mpHIO->mCrouch.m.mCrawlStartAnm);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
shape_angle.y = field_0x306e + 0x8000;
|
||||
@@ -465,13 +465,13 @@ int daAlink_c::procCrawlStartInit() {
|
||||
current.pos.x = field_0x34ec.x + (35.0f * cM_ssin(field_0x306e));
|
||||
current.pos.z = field_0x34ec.z + (35.0f * cM_scos(field_0x306e));
|
||||
|
||||
if (daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame > daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame) {
|
||||
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame;
|
||||
if (mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame > mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame) {
|
||||
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame;
|
||||
} else {
|
||||
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
field_0x3478 = 1.0f / (field_0x347c - daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mStartFrame);
|
||||
field_0x3478 = 1.0f / (field_0x347c - mpHIO->mCrouch.m.mCrawlStartAnm.mStartFrame);
|
||||
field_0x33cc = 0.0f;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x08000000);
|
||||
@@ -534,7 +534,7 @@ int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, daAlinkHIO_crouch_c0::m.mCrawlInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, mpHIO->mCrouch.m.mCrawlInterpolation);
|
||||
}
|
||||
|
||||
field_0x3198 = var_r29 ^ 1;
|
||||
@@ -762,7 +762,7 @@ int daAlink_c::procCrawlEndInit(int param_0, s16 param_1, s16 param_2) {
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x2f99 = 0xC;
|
||||
|
||||
const daAlinkHIO_anm_c* temp_r30 = &daAlinkHIO_crouch_c0::m.mCrawlEndAnm;
|
||||
const daAlinkHIO_anm_c* temp_r30 = &mpHIO->mCrouch.m.mCrawlEndAnm;
|
||||
|
||||
f32 var_f30;
|
||||
if (param_0 != 0) {
|
||||
@@ -816,7 +816,7 @@ int daAlink_c::procCrawlEnd() {
|
||||
if (!checkNextActionFromCrouch(0)) {
|
||||
procWaitInit();
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() < daAlinkHIO_crouch_c0::m.mCrawlEndAnm.mCancelFrame) {
|
||||
} else if (frame_ctrl->getFrame() < mpHIO->mCrouch.m.mCrawlEndAnm.mCancelFrame) {
|
||||
checkNextActionFromCrouch(1);
|
||||
}
|
||||
|
||||
|
||||
+138
-138
@@ -412,13 +412,13 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
resetCombo(0);
|
||||
offNoResetFlg2(FLG2_UNK_2);
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, daAlinkHIO_cut_c0::m.mRunCutLength,
|
||||
daAlinkHIO_cut_c0::m.mRunCutRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, mpHIO->mCut.m.mRunCutLength,
|
||||
mpHIO->mCut.m.mRunCutRadius);
|
||||
field_0x2fd0 = 2;
|
||||
mRunCutComboCount++;
|
||||
|
||||
if (param_1) {
|
||||
setUpperAnimeParam(0x82, UPPER_2, &daAlinkHIO_cutDaCharge_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x82, UPPER_2, &mpHIO->mCut.mCutDashCharge.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(13);
|
||||
@@ -430,7 +430,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
mRunCutComboCount = 1;
|
||||
}
|
||||
} else if (mRunCutComboCount == 1 || mRunCutComboCount == 3) {
|
||||
setUpperAnimeParam(0x80, UPPER_2, &daAlinkHIO_cutDaL_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x80, UPPER_2, &mpHIO->mCut.mCutDashLeft.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(11);
|
||||
@@ -443,7 +443,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
mRunCutComboCount = 1;
|
||||
setFacePriTexture(FTANM_UNK_13);
|
||||
} else {
|
||||
setUpperAnimeParam(0x81, UPPER_2, &daAlinkHIO_cutDaR_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x81, UPPER_2, &mpHIO->mCut.mCutDashRight.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(12);
|
||||
@@ -458,7 +458,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
|
||||
setFacePriBck(0x104);
|
||||
field_0x2f96 = 2;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_ATTACK_RUN);
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_0, 7, 16, 1, 50.0f, 130.0f);
|
||||
@@ -473,9 +473,9 @@ BOOL daAlink_c::checkForceSwordSwing() {
|
||||
|
||||
void daAlink_c::setComboReserb() {
|
||||
if (checkWolf()) {
|
||||
field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mWolf.mWlAttack.m.mComboDuration;
|
||||
} else {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) {
|
||||
@@ -735,8 +735,8 @@ void daAlink_c::checkCutAtnActorChange() {
|
||||
|
||||
void daAlink_c::setCutJumpSpeed(int i_airAt) {
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.35f;
|
||||
}
|
||||
@@ -828,15 +828,15 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
|
||||
const daAlinkHIO_cutNormal_c1* cutData;
|
||||
if (i_type == 1) {
|
||||
cutData = &daAlinkHIO_cutNmL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutLeft.m;
|
||||
} else if (i_type == 2) {
|
||||
cutData = &daAlinkHIO_cutNmR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutRight.m;
|
||||
} else if (i_type == 4) {
|
||||
cutData = &daAlinkHIO_cutNmSR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutRightStab.m;
|
||||
} else if (i_type == 3) {
|
||||
cutData = &daAlinkHIO_cutNmSL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutLeftStab.m;
|
||||
} else {
|
||||
cutData = &daAlinkHIO_cutNmV_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutVertical.m;
|
||||
}
|
||||
|
||||
field_0x3478 = cutData->mAttackStartFrame;
|
||||
@@ -871,10 +871,10 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
}
|
||||
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
@@ -904,7 +904,7 @@ int daAlink_c::procCutNormal() {
|
||||
checkCutTurnCharge();
|
||||
checkCutAtnActorChange();
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
@@ -1049,19 +1049,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
cutData = &daAlinkHIO_cutFnL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishLeft.m;
|
||||
} else if (i_type == 1) {
|
||||
cutData = &daAlinkHIO_cutFnV_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishVertical.m;
|
||||
} else if (i_type == 2) {
|
||||
cutData = &daAlinkHIO_cutFnS_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishStab.m;
|
||||
} else if (i_type == 3) {
|
||||
cutData = &daAlinkHIO_cutFnSl_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishSweep.m;
|
||||
var_r30 = TRUE;
|
||||
} else if (i_type == 4) {
|
||||
cutData = &daAlinkHIO_cutFnSm_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishSlash.m;
|
||||
var_r30 = TRUE;
|
||||
} else {
|
||||
cutData = &daAlinkHIO_cutFnR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishRight.m;
|
||||
}
|
||||
|
||||
f32 var_f31;
|
||||
@@ -1092,19 +1092,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = cutData->mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = cutData->mComboStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
|
||||
field_0x32d0 = Z2SE_AL_SWORD_SWING_S;
|
||||
} else {
|
||||
field_0x3484 = cutData->mCutAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
|
||||
|
||||
if (i_type == 2) {
|
||||
field_0x32d0 = Z2SE_AL_SWORD_THRUST;
|
||||
@@ -1154,7 +1154,7 @@ int daAlink_c::procCutFinish() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
|
||||
setBodyAngleXReadyAnime(1);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
setComboReserb();
|
||||
|
||||
@@ -1229,12 +1229,12 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
}
|
||||
|
||||
setCutType(CUT_TYPE_TWIRL);
|
||||
speed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutFnJU_c0::m.mSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedH;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.5f;
|
||||
}
|
||||
@@ -1249,16 +1249,16 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
f32 var_f31 = daAlinkHIO_cutFnJU_c0::m.mCutAnm.mStartFrame;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
f32 var_f31 = mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mStartFrame;
|
||||
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3,
|
||||
daAlinkHIO_cutFnJU_c0::m.mAttackRadius, 10.0f);
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackRadius, 10.0f);
|
||||
field_0x32cc = Z2SE_AL_SWORD_SWING_L;
|
||||
|
||||
setSingleAnime(ANM_CUT_TWIRL, daAlinkHIO_cutFnJU_c0::m.mCutAnm.mSpeed, var_f31,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CUT_TWIRL, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mSpeed, var_f31,
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mEndFrame,
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
@@ -1284,13 +1284,13 @@ int daAlink_c::procCutFinishJumpUp() {
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() != 0x52 &&
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_cutFnJU_c0::m.mFallHeight)
|
||||
current.pos.y < mLastJumpPos.y - mpHIO->mCut.mCutFinishJumpUppercut.m.mFallHeight)
|
||||
{
|
||||
return procFallInit(2, daAlinkHIO_cutFnJU_c0::m.mFallInterpolation);
|
||||
return procFallInit(2, mpHIO->mCut.mCutFinishJumpUppercut.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutFnJU_c0::m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutFnJU_c0::m.mAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(field_0x32cc);
|
||||
@@ -1306,7 +1306,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
commonProcInit(PROC_CUT_FINISH_JUMP_UP_LAND);
|
||||
checkCutLandDamage();
|
||||
|
||||
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &daAlinkHIO_cutFnJU_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
setCutType(CUT_TYPE_TWIRL);
|
||||
|
||||
@@ -1315,11 +1315,11 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
onResetFlg1(RFLG1_UNK_30);
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboStopTime;
|
||||
} else {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mLandAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mStopTime;
|
||||
}
|
||||
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
@@ -1384,19 +1384,19 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
commonProcInit(PROC_CUT_REVERSE);
|
||||
|
||||
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
|
||||
setSingleAnimeParam(i_anmID, &mpHIO->mGuard.m.mRecoilAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mGuard.m.mRecoilAnm.mCancelFrame;
|
||||
field_0x2f98 = 2;
|
||||
setUpperGuardAnime(-1.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
|
||||
setSingleAnimeParam(i_anmID, &mpHIO->mCut.m.mRecoilAnm);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mCut.m.mRecoilAnm.mCancelFrame;
|
||||
field_0x2f98 = 4;
|
||||
}
|
||||
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
mNormalSpeed = mpHIO->mCut.m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
@@ -1421,7 +1421,7 @@ int daAlink_c::procCutReverse() {
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_cut_c0::m.mRecoilDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mCut.m.mRecoilDeceleration);
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
checkCutTurnCharge();
|
||||
@@ -1448,20 +1448,20 @@ int daAlink_c::procCutReverse() {
|
||||
|
||||
int daAlink_c::procCutJumpInit(int i_airCut) {
|
||||
commonProcInit(PROC_CUT_JUMP);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP, &daAlinkHIO_cutJump_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP, &mpHIO->mCut.mCutJump.m.mCutAnm);
|
||||
|
||||
if (i_airCut) {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutJump.m.mAirJumpSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutJump.m.mAirJumpSpeedV;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedV;
|
||||
}
|
||||
|
||||
setCutJumpSpeed(i_airCut);
|
||||
current.angle.y = shape_angle.y;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_JUMP);
|
||||
setSwordComboVoice();
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
@@ -1486,7 +1486,7 @@ int daAlink_c::procCutJump() {
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
procCutJumpLandInit(field_0x3198);
|
||||
} else if (mUnderFrameCtrl[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) {
|
||||
} else if (mUnderFrameCtrl[0].getFrame() >= mpHIO->mCut.mCutJump.m.mStartAttackFrame) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
}
|
||||
@@ -1500,18 +1500,18 @@ int daAlink_c::procCutJump() {
|
||||
int daAlink_c::procCutJumpLandInit(int param_0) {
|
||||
commonProcInit(PROC_CUT_JUMP_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &daAlinkHIO_cutJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &mpHIO->mCut.mCutJump.m.mLandAnm);
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
field_0x2060->initOldFrameMorf(5.0f * daAlinkHIO_cutJump_c0::m.mLandAnm.mInterpolation,
|
||||
field_0x2060->initOldFrameMorf(5.0f * mpHIO->mCut.mCutJump.m.mLandAnm.mInterpolation,
|
||||
0, 0x23);
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
m_swordBlur.initBlur(0.0f, 0, &mSwordTopPos, &field_0x3498, &field_0x34a4);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
}
|
||||
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
@@ -1547,11 +1547,11 @@ int daAlink_c::procCutJumpLand() {
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mJumpSpinDelay && field_0x3198 != 2)
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mJumpSpinDelay && field_0x3198 != 2)
|
||||
{
|
||||
procCutTurnInit(1, field_0x3198);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mLandAnm.mCancelFrame) {
|
||||
if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mLandAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
|
||||
if (checkNextAction(1)) {
|
||||
@@ -1559,7 +1559,7 @@ int daAlink_c::procCutJumpLand() {
|
||||
}
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() < daAlinkHIO_cutJump_c0::m.mEndAttackFrame) {
|
||||
if (frameCtrl->getFrame() < mpHIO->mCut.mCutJump.m.mEndAttackFrame) {
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
}
|
||||
}
|
||||
@@ -1567,9 +1567,8 @@ int daAlink_c::procCutJumpLand() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NONMATCHING - regalloc
|
||||
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
const daAlinkHIO_cutTurn_c1* cutData = &daAlinkHIO_cutTurn_c0::m;
|
||||
const daAlinkHIO_cutTurn_c1* cutData = &mpHIO->mCut.mCutTurn.m;
|
||||
const daAlinkHIO_anm_c* anm_data;
|
||||
daAlink_ANM anmID;
|
||||
|
||||
@@ -1622,8 +1621,9 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
setSingleAnime(anmID, anm_data->mSpeed, var_f31, anm_data->mEndFrame, morf);
|
||||
|
||||
int sp08;
|
||||
if (checkCutLargeTurnState()) {
|
||||
param_1 = 4;
|
||||
sp08 = 4;
|
||||
field_0x32cc = Z2SE_AL_KAITEN_L_SLASH;
|
||||
setSwordVoiceSe(Z2SE_AL_V_KAITENGIRI_L);
|
||||
field_0x3478 = cutData->mLargeAttackRadius;
|
||||
@@ -1635,7 +1635,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
setCutType(CUT_TYPE_LARGE_TURN_LEFT);
|
||||
}
|
||||
} else {
|
||||
param_1 = 3;
|
||||
sp08 = 3;
|
||||
field_0x32cc = Z2SE_AL_KAITENGIRI;
|
||||
setSwordVoiceSe(Z2SE_AL_V_KAITEN);
|
||||
|
||||
@@ -1663,7 +1663,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, param_1);
|
||||
initCutTurnAt(field_0x347c, sp08);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1674,11 +1674,11 @@ int daAlink_c::procCutTurn() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
field_0x2f99 = 4;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (mComboCutCount != 0) {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= 44.0f) {
|
||||
@@ -1700,7 +1700,7 @@ int daAlink_c::procCutTurn() {
|
||||
if (frameCtrl->getFrame() >= field_0x3484 && frameCtrl->getFrame() < field_0x3488) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(field_0x32cc);
|
||||
mNormalSpeed = daAlinkHIO_cutTurn_c0::m.mSpeed;
|
||||
mNormalSpeed = mpHIO->mCut.mCutTurn.m.mSpeed;
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
mNormalSpeed *= mHeavySpeedMultiplier;
|
||||
@@ -1723,10 +1723,10 @@ int daAlink_c::procCutTurnChargeInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CUT_TURN_CHARGE);
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &mpHIO->mCut.mCutTurn.m.mChargeAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1736,7 +1736,7 @@ int daAlink_c::procCutTurnCharge() {
|
||||
}
|
||||
|
||||
setSwordChargeVoiceSe();
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
@@ -1771,9 +1771,9 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_CUT_TURN_CHARGE, 0.0f,
|
||||
daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation);
|
||||
mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation);
|
||||
field_0x2f98 = 0;
|
||||
field_0x594 = daAlinkHIO_cutTurn_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mCut.mCutTurn.m.mMaxSpeed;
|
||||
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
@@ -1817,7 +1817,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
setDoStatus(0x86);
|
||||
}
|
||||
} else {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() == 0x5B || mDemo.getDemoMode() == 0x5C) {
|
||||
@@ -1838,7 +1838,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (field_0x2f98 == 0 || field_0x2f98 == 1) {
|
||||
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
|
||||
anm = ANM_CUT_TURN_CHARGE_MOVE;
|
||||
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveLRInterpolation;
|
||||
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveLRInterpolation;
|
||||
mNormalSpeed *= 0.5f;
|
||||
} else if (field_0x2f98 != direction) {
|
||||
mNormalSpeed *= -0.5f;
|
||||
@@ -1846,7 +1846,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
} else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
|
||||
anm = ANM_CUT_TURN_CHARGE;
|
||||
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation;
|
||||
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation;
|
||||
mNormalSpeed *= 0.5f;
|
||||
} else if (field_0x2f98 != direction) {
|
||||
mNormalSpeed *= -0.5f;
|
||||
@@ -1854,7 +1854,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
|
||||
if (field_0x2f98 == direction) {
|
||||
var_f30 = daAlinkHIO_cutTurn_c0::m.mChargeMoveAccel * field_0x33ac;
|
||||
var_f30 = mpHIO->mCut.mCutTurn.m.mChargeMoveAccel * field_0x33ac;
|
||||
} else {
|
||||
field_0x2f98 = direction;
|
||||
}
|
||||
@@ -1864,17 +1864,17 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f30, daAlinkHIO_cutTurn_c0::m.mChargeMoveDecel);
|
||||
setNormalSpeedF(var_f30, mpHIO->mCut.mCutTurn.m.mChargeMoveDecel);
|
||||
|
||||
f32 var_f31_2;
|
||||
if (field_0x2f98 == DIR_FORWARD) {
|
||||
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
|
||||
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
|
||||
} else if (field_0x2f98 == DIR_BACKWARD) {
|
||||
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
|
||||
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
|
||||
} else if (field_0x2f98 == DIR_RIGHT) {
|
||||
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
|
||||
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
|
||||
} else {
|
||||
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
|
||||
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
@@ -1943,7 +1943,7 @@ int daAlink_c::procCutDownInit() {
|
||||
speed.y = 0.0f;
|
||||
offModeFlg(2);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &daAlinkHIO_cutDown_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &mpHIO->mCut.mCutDown.m.mJumpAnm);
|
||||
sp2C.y += 50.0f;
|
||||
|
||||
if (fopAcM_gc_c::gndCheck(&sp2C)) {
|
||||
@@ -1963,11 +1963,11 @@ int daAlink_c::procCutDownInit() {
|
||||
var_f31 = 800.0f;
|
||||
}
|
||||
|
||||
speed.y = daAlinkHIO_cutDown_c0::m.mRecoverSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutDown.m.mRecoverSpeedH;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.5f;
|
||||
}
|
||||
@@ -2001,7 +2001,7 @@ int daAlink_c::procCutDown() {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &mpHIO->mCut.mCutDown.m.mFallAnm);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -2010,7 +2010,7 @@ int daAlink_c::procCutDown() {
|
||||
int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
commonProcInit(PROC_CUT_DOWN_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &daAlinkHIO_cutDown_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &mpHIO->mCut.mCutDown.m.mLandAnm);
|
||||
|
||||
u32 var_r30;
|
||||
if (mDemo.getDemoMode() == 0x51 || (i_enemy != NULL && i_enemy->checkDownFlg() &&
|
||||
@@ -2026,12 +2026,12 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
}
|
||||
|
||||
var_r30 = 0x20;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mSuccessStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
var_r30 = mPolySound;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mFailStopTime;
|
||||
}
|
||||
|
||||
mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30);
|
||||
@@ -2076,7 +2076,7 @@ int daAlink_c::procCutDownLand() {
|
||||
}
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS,
|
||||
&daAlinkHIO_cutDown_c0::m.mMissAnm);
|
||||
&mpHIO->mCut.mCutDown.m.mMissAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else {
|
||||
@@ -2093,7 +2093,7 @@ int daAlink_c::procCutDownLand() {
|
||||
seStartSwordCut(Z2SE_SWORD_STICK_PULLOUT);
|
||||
}
|
||||
|
||||
if (frameCtrl_p->getFrame() > daAlinkHIO_cutDown_c0::m.mMissAnm.mCancelFrame) {
|
||||
if (frameCtrl_p->getFrame() > mpHIO->mCut.mCutDown.m.mMissAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -2113,8 +2113,8 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
commonProcInit(PROC_CUT_HEAD);
|
||||
resetCombo(1);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &daAlinkHIO_cutHead_c0::m.mJumpAnm);
|
||||
setSpecialGravity(daAlinkHIO_cutHead_c0::m.mGravity, maxFallSpeed, 0);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &mpHIO->mCut.mCutHead.m.mJumpAnm);
|
||||
setSpecialGravity(mpHIO->mCut.mCutHead.m.mGravity, maxFallSpeed, 0);
|
||||
|
||||
cXyz sp2C;
|
||||
if (enemy_p != NULL) {
|
||||
@@ -2125,13 +2125,13 @@ int daAlink_c::procCutHeadInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight);
|
||||
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, mpHIO->mCut.mCutHead.m.mMaxHeight);
|
||||
f32 fvar10 = JMAFastSqrt((fvar9 * -2.0f) / gravity);
|
||||
speed.y = fvar10 * -gravity;
|
||||
|
||||
f32 fvar5 = sp2C.absXZ();
|
||||
if (fvar5 > daAlinkHIO_cutHead_c0::m.mMaxDistance) {
|
||||
fvar5 = daAlinkHIO_cutHead_c0::m.mMaxDistance;
|
||||
if (fvar5 > mpHIO->mCut.mCutHead.m.mMaxDistance) {
|
||||
fvar5 = mpHIO->mCut.mCutHead.m.mMaxDistance;
|
||||
}
|
||||
|
||||
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
|
||||
@@ -2142,8 +2142,8 @@ int daAlink_c::procCutHeadInit() {
|
||||
shape_angle.y = current.angle.y;
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_JUMP);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cutHead_c0::m.mSwordLength,
|
||||
daAlinkHIO_cutHead_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.mCutHead.m.mSwordLength,
|
||||
mpHIO->mCut.mCutHead.m.mSwordRadius);
|
||||
setCutType(5);
|
||||
|
||||
return 1;
|
||||
@@ -2154,7 +2154,7 @@ int daAlink_c::procCutHead() {
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, field_0x3478);
|
||||
|
||||
if (speed.y <= 0.0f) {
|
||||
setSingleAnimeParam(ANM_CUT_HEAD, &daAlinkHIO_cutHead_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD, &mpHIO->mCut.mCutHead.m.mCutAnm);
|
||||
f32 tmp_0 = 0.0f;
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
@@ -2168,13 +2168,13 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed *= 0.99f;
|
||||
|
||||
if (frameCtrl->checkPass(7.0f)) {
|
||||
speed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutHead_c0::m.mAddSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutHead.m.mAddSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutHead.m.mAddSpeedH;
|
||||
initGravity();
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutHead_c0::m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutHead_c0::m.mAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutHead.m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutHead.m.mAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
@@ -2194,7 +2194,7 @@ int daAlink_c::procCutHead() {
|
||||
int daAlink_c::procCutHeadLandInit() {
|
||||
commonProcInit(PROC_CUT_HEAD_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &daAlinkHIO_cutHead_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &mpHIO->mCut.mCutHead.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -2209,7 +2209,7 @@ int daAlink_c::procCutHeadLand() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutHead_c0::m.mLandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutHead.m.mLandAnm.mCancelFrame) {
|
||||
checkNextAction(1);
|
||||
}
|
||||
|
||||
@@ -2218,10 +2218,10 @@ int daAlink_c::procCutHeadLand() {
|
||||
|
||||
int daAlink_c::procCutLargeJumpChargeInit() {
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP_CHARGE);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &mpHIO->mCut.mCutLargeJump.m.mChargeAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2257,14 +2257,14 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &daAlinkHIO_cutLargeJump_c0::m.mChargeMoveAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &mpHIO->mCut.mCutLargeJump.m.mChargeMoveAnm);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
@@ -2288,7 +2288,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
field_0x2f99 = 12;
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &mpHIO->mCut.mCutLargeJump.m.mCutAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
@@ -2298,13 +2298,13 @@ int daAlink_c::procCutLargeJump() {
|
||||
|
||||
if (!checkModeFlg(2) && frameCtrl->getFrame() >= 5.0f) {
|
||||
setJumpMode();
|
||||
mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH;
|
||||
speed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutLargeJump.m.mCutSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutLargeJump.m.mCutSpeedV;
|
||||
setCutJumpSpeed(0);
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mJumpAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mJumpAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mJumpAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
|
||||
@@ -2317,15 +2317,15 @@ int daAlink_c::procCutLargeJump() {
|
||||
mProcVar3.field_0x300e--;
|
||||
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
}
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
procCutLargeJumpLandInit(field_0x3198);
|
||||
} else if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mCutInitFrame) {
|
||||
} else if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mCutInitFrame) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
|
||||
}
|
||||
@@ -2340,7 +2340,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &daAlinkHIO_cutLargeJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &mpHIO->mCut.mCutLargeJump.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f99 = 12;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
@@ -2349,7 +2349,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
onResetFlg1(RFLG1_UNK_30);
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
|
||||
field_0x3478 = mpHIO->mCut.mCutLargeJump.m.mLandAttackRadius;
|
||||
field_0x347c = 130.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3198 = param_0;
|
||||
@@ -2377,16 +2377,16 @@ int daAlink_c::procCutLargeJumpLand() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mSpinSlashCheckFrame &&
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mSpinSlashCheckFrame &&
|
||||
field_0x3198 != 2)
|
||||
{
|
||||
procCutTurnInit(1, field_0x3198);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mLandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mLandAnm.mCancelFrame) {
|
||||
checkNextAction(1);
|
||||
} else if (frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mLandAttackEndFrame) {
|
||||
} else if (frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mLandAttackEndFrame) {
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mLandAttackInitFrame) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
resetAtCollision(0);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -2407,7 +2407,7 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH, daAlinkHIO_cut_c0::m.mFlourishAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH, mpHIO->mCut.m.mFlourishAnmSpeed, 3.0f);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
@@ -2452,11 +2452,11 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
}
|
||||
} else {
|
||||
field_0x3198 = 1;
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH_END, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed,
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH_END, mpHIO->mCut.m.mFlourishEndAnmSpeed,
|
||||
3.0f);
|
||||
}
|
||||
} else if (field_0x3198 != 0) {
|
||||
if (!(frameCtrl->getFrame() > daAlinkHIO_cut_c0::m.mFlourishControlStartFrame) ||
|
||||
if (!(frameCtrl->getFrame() > mpHIO->mCut.m.mFlourishControlStartFrame) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frameCtrl->getFrame() >= 39.0f) {
|
||||
@@ -2472,7 +2472,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
frameCtrl->setRate(0.0f);
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
} else if (frameCtrl->getRate() < 0.0099999998f) {
|
||||
setWaterInAnmRate(frameCtrl, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed);
|
||||
setWaterInAnmRate(frameCtrl, mpHIO->mCut.m.mFlourishEndAnmSpeed);
|
||||
}
|
||||
}
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
#include "d/d_msg_object.h"
|
||||
|
||||
s16 daAlink_c::getFreezeR() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeR;
|
||||
return mpHIO->mDamage.m.mFreezeR;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getFreezeG() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeG;
|
||||
return mpHIO->mDamage.m.mFreezeG;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getFreezeB() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeB;
|
||||
return mpHIO->mDamage.m.mFreezeB;
|
||||
}
|
||||
|
||||
bool daAlink_c::checkMiddleBossGoronRoom() {
|
||||
@@ -81,9 +81,9 @@ void daAlink_c::checkCutLandDamage() {
|
||||
if (!checkEventRun()) {
|
||||
f32 var_f31 = (mFallHeight - current.pos.y) * 0.0099999998f;
|
||||
|
||||
if (var_f31 >= daAlinkHIO_damFall_c0::m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
|
||||
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
|
||||
{
|
||||
if (var_f31 >= daAlinkHIO_damFall_c0::m.mBigDmgHeight) {
|
||||
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mBigDmgHeight) {
|
||||
setLandDamagePoint(8);
|
||||
} else {
|
||||
setLandDamagePoint(4);
|
||||
@@ -187,7 +187,7 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT
|
||||
mSwordUpTimer = 0;
|
||||
|
||||
if (i_setDmgTimer) {
|
||||
mDamageTimer = daAlinkHIO_damage_c0::m.mInvincibleTime;
|
||||
mDamageTimer = mpHIO->mDamage.m.mInvincibleTime;
|
||||
setDamageColorTime();
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ cXyz* daAlink_c::getDamageVec(dCcD_GObjInf* i_hitObj) {
|
||||
}
|
||||
|
||||
void daAlink_c::setDashDamage() {
|
||||
setUpperAnimeParam(0xAD, UPPER_2, &daAlinkHIO_damage_c0::m.mDashDmgAnm);
|
||||
setUpperAnimeParam(0xAD, UPPER_2, &mpHIO->mDamage.m.mDashDmgAnm);
|
||||
setFacePriBck(0x121);
|
||||
setFacePriTexture(FTANM_UNK_27);
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_S);
|
||||
@@ -282,7 +282,7 @@ int daAlink_c::checkPolyDamage() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + daAlinkHIO_basic_c0::m.mLavaDeathDepth))))) {
|
||||
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth))))) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
|
||||
if (checkAnmEnd(&mUpperFrameCtrl[2])) {
|
||||
if (checkDashDamageAnime()) {
|
||||
resetUpperAnime(UPPER_2, daAlinkHIO_damage_c0::m.mDashDmgAnm.mInterpolation);
|
||||
resetUpperAnime(UPPER_2, mpHIO->mDamage.m.mDashDmgAnm.mInterpolation);
|
||||
} else if (checkWolfHeadDamageAnime()) {
|
||||
resetUpperAnime(UPPER_2, 3.0f);
|
||||
} else if (checkSmallUpperGuardAnime()) {
|
||||
@@ -417,7 +417,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
if ((!checkModeFlg(0x70C52)) && (!checkWolf()) && (!checkDkCaught2Anime())) {
|
||||
setUpperAnimeBase(getMainBckData(ANM_HORSE_WAIT_D_B)->m_underID);
|
||||
setFacePriAnime(ANM_HORSE_WAIT_D_B);
|
||||
field_0x30f6 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
|
||||
field_0x30f6 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
|
||||
field_0x2f96 = 1;
|
||||
field_0x2f97 = 6;
|
||||
onNoResetFlg1(FLG1_UNK_100000);
|
||||
@@ -484,7 +484,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
|
||||
if (sp2C & 0x80) {
|
||||
mIceDamageWaitTimer++;
|
||||
if (mIceDamageWaitTimer < daAlinkHIO_damage_c0::m.mFreezeTime) {
|
||||
if (mIceDamageWaitTimer < mpHIO->mDamage.m.mFreezeTime) {
|
||||
sp2C = 0;
|
||||
}
|
||||
} else if (mIceDamageWaitTimer > 3) {
|
||||
@@ -498,7 +498,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
setDamagePoint(1, sp2C & 0x80, TRUE, 0);
|
||||
|
||||
if (checkWolf()) {
|
||||
mDamageTimer = daAlinkHIO_damage_c0::m.mWolfFloorInvincibleTime;
|
||||
mDamageTimer = mpHIO->mDamage.m.mWolfFloorInvincibleTime;
|
||||
setDamageColorTime();
|
||||
}
|
||||
|
||||
@@ -705,7 +705,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
if (checkModeFlg(0x10000) && !checkLargeAttack(at_spl)) {
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_S);
|
||||
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
onModeFlg(8);
|
||||
return 1;
|
||||
}
|
||||
@@ -797,15 +797,15 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
var_r29->y,
|
||||
var_r29->z * var_f29 + var_r29->x * var_f30);
|
||||
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle);
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle);
|
||||
|
||||
if (freeze_player) {
|
||||
var_f31 = 0.0f;
|
||||
} else if (mTargetedActor != NULL) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
if (checkAtnLeftAnime()) {
|
||||
@@ -816,32 +816,32 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
|
||||
int direction = getDirectionFromAngle(cM_atan2s(-sp88.x, -sp88.z));
|
||||
if (direction == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_A, &daAlinkHIO_damNormal_c0::m.mFrontAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mFrontAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_A, &mpHIO->mDamage.mDamNormal.m.mFrontAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mFrontAnm.mCancelFrame;
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_B, &daAlinkHIO_damNormal_c0::m.mRearAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRearAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_B, &mpHIO->mDamage.mDamNormal.m.mRearAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRearAnm.mCancelFrame;
|
||||
} else if (direction == DIR_LEFT) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &daAlinkHIO_damNormal_c0::m.mLeftAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mLeftAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &mpHIO->mDamage.mDamNormal.m.mLeftAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mLeftAnm.mCancelFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &daAlinkHIO_damNormal_c0::m.mRightAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRightAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &mpHIO->mDamage.mDamNormal.m.mRightAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRightAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
current.angle.y = var_r29->atan2sX_Z();
|
||||
mProcVar4.field_0x3010 = current.angle.y;
|
||||
|
||||
mNormalSpeed = var_r29->absXZ() * daAlinkHIO_damNormal_c0::m.mAttackSpeedRate + daAlinkHIO_damNormal_c0::m.mInitialSpeed;
|
||||
if (mNormalSpeed > daAlinkHIO_move_c0::m.mMaxSpeed) {
|
||||
mNormalSpeed = daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
mNormalSpeed = var_r29->absXZ() * mpHIO->mDamage.mDamNormal.m.mAttackSpeedRate + mpHIO->mDamage.mDamNormal.m.mInitialSpeed;
|
||||
if (mNormalSpeed > mpHIO->mMove.m.mMaxSpeed) {
|
||||
mNormalSpeed = mpHIO->mMove.m.mMaxSpeed;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
field_0x347c = M_PI / (frame_ctrl->getEnd() - frame_ctrl->getStart());
|
||||
|
||||
if (freeze_player) {
|
||||
frame_ctrl->setRate(daAlinkHIO_damNormal_c0::m.mIceDamageASpeed);
|
||||
frame_ctrl->setRate(mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed);
|
||||
frame_ctrl->setEnd(7);
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar0.mIceFreezeTimer = 90;
|
||||
@@ -863,7 +863,7 @@ int daAlink_c::procDamage() {
|
||||
mBodyAngle.z = -mProcVar3.field_0x300e * var_f31;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mDamage.mDamNormal.m.mDeceleration);
|
||||
|
||||
if (checkFreezeDamage()) {
|
||||
freezeTimerDamage();
|
||||
@@ -1028,9 +1028,9 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
|
||||
const daAlinkHIO_damLaHu_c1* var_r28;
|
||||
if (checkWolf()) {
|
||||
if (param_1 != 0) {
|
||||
var_r29 = &daAlinkHIO_wlDamLarge_c0::m;
|
||||
var_r29 = &mpHIO->mWolf.mWlDamage.mLarge.m;
|
||||
} else {
|
||||
var_r29 = &daAlinkHIO_wlDamHuge_c0::m;
|
||||
var_r29 = &mpHIO->mWolf.mWlDamage.mHuge.m;
|
||||
}
|
||||
|
||||
setSpecialGravity(var_r29->mGravity, maxFallSpeed, 0);
|
||||
@@ -1176,7 +1176,7 @@ int daAlink_c::procCoLargeDamage() {
|
||||
mProcVar5.field_0x3012--;
|
||||
} else {
|
||||
voiceStart(Z2SE_AL_V_FALL);
|
||||
setSingleAnimeBaseMorf(ANM_FALL, daAlinkHIO_damage_c0::m.mInvertedFallInterpolation);
|
||||
setSingleAnimeBaseMorf(ANM_FALL, mpHIO->mDamage.m.mInvertedFallInterpolation);
|
||||
setOldRootQuaternion(field_0x3080, 0, field_0x3082);
|
||||
field_0x3080 = 0;
|
||||
field_0x3082 = 0;
|
||||
@@ -1257,7 +1257,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
|
||||
if (param_0 == -2) {
|
||||
var_f30 = 0.0f;
|
||||
} else {
|
||||
var_f30 = daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation;
|
||||
var_f30 = mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation;
|
||||
}
|
||||
|
||||
field_0x3484 = 9.0f;
|
||||
@@ -1274,7 +1274,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
|
||||
var_f31 = 0.0f;
|
||||
} else {
|
||||
mProcVar0.field_0x3008 = -1;
|
||||
var_f31 = daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed;
|
||||
var_f31 = mpHIO->mDamage.m.mRecoverStandAnmSpeed;
|
||||
}
|
||||
|
||||
mProcVar1.field_0x300a = 1;
|
||||
@@ -1343,7 +1343,7 @@ int daAlink_c::procLargeDamageUp() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_DMG_LARGE_LAND, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mSpeed, 9.0f, -1, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation);
|
||||
setSingleAnime(ANM_DMG_LARGE_LAND, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mSpeed, 9.0f, -1, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation);
|
||||
field_0x3198 = -3;
|
||||
field_0x347c = 2.0f / (field_0x3478 - 9.0f);
|
||||
}
|
||||
@@ -1353,7 +1353,7 @@ int daAlink_c::procLargeDamageUp() {
|
||||
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
mProcVar0.field_0x3008 = -1;
|
||||
setWaterInAnmRate(temp_r30, daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed);
|
||||
setWaterInAnmRate(temp_r30, mpHIO->mDamage.m.mRecoverStandAnmSpeed);
|
||||
temp_r30->offEndFlg();
|
||||
}
|
||||
} else {
|
||||
@@ -1498,12 +1498,12 @@ int daAlink_c::procCoPolyDamageInit() {
|
||||
commonProcInit(PROC_POLY_DAMAGE);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfParam(WANM_DMG_SMALL, &daAlinkHIO_wlDamage_c0::m.mPolygonAnm);
|
||||
setSingleAnimeWolfParam(WANM_DMG_SMALL, &mpHIO->mWolf.mWlDamage.m.mPolygonAnm);
|
||||
voiceStart(Z2SE_WL_V_DAMAGE);
|
||||
field_0x3478 = daAlinkHIO_wlDamage_c0::m.mPolygonAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mWolf.mWlDamage.m.mPolygonAnm.mCancelFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG, &daAlinkHIO_damage_c0::m.mFloorDmgAnm);
|
||||
field_0x3478 = daAlinkHIO_damage_c0::m.mFloorDmgAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG, &mpHIO->mDamage.m.mFloorDmgAnm);
|
||||
field_0x3478 = mpHIO->mDamage.m.mFloorDmgAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -1527,8 +1527,8 @@ int daAlink_c::procCoPolyDamage() {
|
||||
int daAlink_c::procLandDamageInit(int param_0) {
|
||||
f32 var_f31;
|
||||
if (param_0 == 0) {
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_autoJump_c0::m.mSpinJumpLandStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mAutoJump.m.mSpinJumpLandStopTime;
|
||||
|
||||
if (mProcID == PROC_MAGNE_BOOTS_FLY) {
|
||||
dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -1540,16 +1540,16 @@ int daAlink_c::procLandDamageInit(int param_0) {
|
||||
setLandDamagePoint(4);
|
||||
}
|
||||
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mSmallStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mSmallStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
if (!checkEventRun()) {
|
||||
setLandDamagePoint(8);
|
||||
}
|
||||
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mLandAnm.mStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mBigStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mLandAnm.mStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mBigStopTime;
|
||||
dComIfGp_getVibration().StartShock(5, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
|
||||
@@ -1563,7 +1563,7 @@ int daAlink_c::procLandDamageInit(int param_0) {
|
||||
voiceStart(Z2SE_AL_V_LANDING_FAIL);
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_DMG_FALL, daAlinkHIO_damFall_c0::m.mLandAnm.mSpeed, var_f31, daAlinkHIO_damFall_c0::m.mLandAnm.mEndFrame, daAlinkHIO_damFall_c0::m.mLandAnm.mInterpolation);
|
||||
setSingleAnime(ANM_DMG_FALL, mpHIO->mDamage.mDamFall.m.mLandAnm.mSpeed, var_f31, mpHIO->mDamage.mDamFall.m.mLandAnm.mEndFrame, mpHIO->mDamage.mDamFall.m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = 0;
|
||||
field_0x2f9d = 4;
|
||||
setFootEffectProcType(4);
|
||||
@@ -1577,7 +1577,7 @@ int daAlink_c::procLandDamage() {
|
||||
if (field_0x3198 != 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_damFall_c0::m.mStandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamFall.m.mStandAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -1586,7 +1586,7 @@ int daAlink_c::procLandDamage() {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &daAlinkHIO_damFall_c0::m.mStandAnm);
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &mpHIO->mDamage.mDamFall.m.mStandAnm);
|
||||
field_0x3198 = 1;
|
||||
}
|
||||
}
|
||||
@@ -1716,7 +1716,7 @@ int daAlink_c::procCoElecDamage() {
|
||||
|
||||
int daAlink_c::procStEscapeInit() {
|
||||
commonProcInit(PROC_HUMAN_ST_ESCAPE);
|
||||
setSingleAnimeParam(ANM_FROZEN_FREE, &daAlinkHIO_damCaught_c0::m.mEscapeAnm);
|
||||
setSingleAnimeParam(ANM_FROZEN_FREE, &mpHIO->mDamage.mDamCaught.m.mEscapeAnm);
|
||||
|
||||
mUnderFrameCtrl[0].setFrame(7.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(7.0f);
|
||||
@@ -1731,7 +1731,7 @@ int daAlink_c::procStEscape() {
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_damCaught_c0::m.mEscapeAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamCaught.m.mEscapeAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -1753,7 +1753,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
|
||||
|
||||
field_0x28f8 = param_0;
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
|
||||
|
||||
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x28f8);
|
||||
if (temp_r3 != NULL) {
|
||||
@@ -1797,13 +1797,13 @@ int daAlink_c::procDkCaught() {
|
||||
}
|
||||
|
||||
s16 temp_r28 = current.angle.y;
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_atnMove_c0::m.mTurnAngleRate, daAlinkHIO_atnMove_c0::m.mMaxTurnAngle, daAlinkHIO_atnMove_c0::m.mMinTurnAngle);
|
||||
var_f30 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mAtnMove.m.mTurnAngleRate, mpHIO->mAtnMove.m.mMaxTurnAngle, mpHIO->mAtnMove.m.mMinTurnAngle);
|
||||
var_f30 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
|
||||
} else {
|
||||
var_f30 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f30, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f30, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
@@ -1814,11 +1814,11 @@ int daAlink_c::procDkCaught() {
|
||||
mProcVar0.field_0x3008--;
|
||||
|
||||
if (escapeTrigger()) {
|
||||
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
|
||||
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
|
||||
}
|
||||
|
||||
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
|
||||
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
|
||||
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
|
||||
}
|
||||
|
||||
if (mProcVar0.field_0x3008 < 0) {
|
||||
@@ -1846,8 +1846,8 @@ int daAlink_c::procScreamWaitInit() {
|
||||
if (checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setScreamWaitAnime();
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
@@ -1996,18 +1996,18 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlDamNormal_c0::m.mIceDamageAnmSpeed,
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed,
|
||||
10.0f);
|
||||
mUnderFrameCtrl[0].setEnd(3);
|
||||
mUnderFrameCtrl[0].setAttribute(0);
|
||||
setFaceBasicTexture(FTANM_UNK_90);
|
||||
mMidnaAnm = 1;
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.mIceDamageASpeed,
|
||||
setSingleAnime(ANM_SWIM_DMG_FREEZE, mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed,
|
||||
0.0f, 5, 10.0f);
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_FREEZE);
|
||||
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
seStartOnlyReverb(Z2SE_AL_FREEZE);
|
||||
|
||||
@@ -146,7 +146,7 @@ int daAlink_c::checkDemoAction() {
|
||||
}
|
||||
|
||||
if (mProcID == PROC_SPINNER_WAIT) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
if (checkModeFlg(0x4000000) || checkModeFlg(0x40000) || checkHorseRide() ||
|
||||
@@ -463,7 +463,7 @@ int daAlink_c::checkDemoAction() {
|
||||
} else if (checkBoardRide()) {
|
||||
return checkNextActionBoard();
|
||||
} else if (checkSpinnerRide()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return commonCheckNextAction(0);
|
||||
@@ -486,7 +486,7 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) {
|
||||
f32 temp_f28;
|
||||
f32 var_f27;
|
||||
if (checkWolf()) {
|
||||
var_f27 = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
var_f27 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed / mpHIO->mMove.m.mMaxSpeed;
|
||||
var_f27 *= var_f27;
|
||||
} else {
|
||||
var_f27 = 1.0f;
|
||||
@@ -850,12 +850,12 @@ void daAlink_c::resetDemoBck() {
|
||||
mFaceBtkHeap.resetIdx();
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed,
|
||||
daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed,
|
||||
mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
setFaceBasicAnime(ANM_WAIT);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -960,7 +960,7 @@ void daAlink_c::endDemoMode() {
|
||||
checkWaitAction();
|
||||
}
|
||||
} else if (mProcID == PROC_MONKEY_MOVE) {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeWaitInit(0);
|
||||
}
|
||||
@@ -1029,7 +1029,7 @@ int daAlink_c::setTalkStartBack(cXyz* param_0) {
|
||||
if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) - current.pos.y >= l_autoDownHeight) {
|
||||
current.angle.y = sp24.atan2sX_Z();
|
||||
mNormalSpeed = 5.0f;
|
||||
setSingleAnimeBaseSpeed(ANM_WALK, -daAlinkHIO_move_c0::m.mWalkAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WALK, -mpHIO->mMove.m.mWalkAnmSpeed, 3.0f);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1069,8 +1069,8 @@ void daAlink_c::setTalkAnime() {
|
||||
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_8_e || mEquipItem == fpcNm_ITEM_KANTERA ||
|
||||
(checkNoResetFlg2(FLG2_UNK_1) && field_0x2fde == 0x48))
|
||||
{
|
||||
setDoubleAnime(0.0f, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_move_c0::m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
|
||||
setDoubleAnime(0.0f, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mMove.m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBase(ANM_TALK);
|
||||
}
|
||||
@@ -1688,12 +1688,12 @@ int daAlink_c::procCoTalkInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (var_r30 == 0) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mIdleInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mIdleInterpolation);
|
||||
} else {
|
||||
if (var_r30 == 1) {
|
||||
field_0x2f99 = 13;
|
||||
setSingleAnimeWolfBaseSpeed(WANM_CROUCH_WALK, 0.0f,
|
||||
daAlinkHIO_wlLie_c0::m.mProneMoveInterp);
|
||||
mpHIO->mWolf.mWlLie.m.mProneMoveInterp);
|
||||
} else {
|
||||
field_0x2f99 = 13;
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
@@ -1765,7 +1765,7 @@ int daAlink_c::procCoTalk() {
|
||||
} else {
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
if (mUpperAnmHeap[0].getIdx() != getMainBckData(ANM_WAIT)->m_upperID) {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1866,9 +1866,9 @@ int daAlink_c::procCoUnequipInit() {
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
|
||||
if (mDemo.getParam1() == 0) {
|
||||
if (mEquipItem != fpcNm_ITEM_NONE) {
|
||||
@@ -2277,7 +2277,7 @@ int daAlink_c::procCoGetItem() {
|
||||
field_0x2f99 = 12;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
field_0x2f94 = 0;
|
||||
@@ -2289,7 +2289,7 @@ int daAlink_c::procCoGetItem() {
|
||||
3.0f);
|
||||
field_0x2f99 = 0x60;
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2327,8 +2327,8 @@ int daAlink_c::procCoTurnBack() {
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(5.0f);
|
||||
} else {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
|
||||
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
|
||||
2, 3.0f);
|
||||
}
|
||||
|
||||
@@ -2356,7 +2356,7 @@ int daAlink_c::procDoorOpenInit() {
|
||||
f32 start_f = 0.0f;
|
||||
s16 end_f = -1;
|
||||
|
||||
field_0x3478 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
field_0x3478 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
if (mDemo.getParam0() == 4) {
|
||||
@@ -2487,9 +2487,9 @@ int daAlink_c::procCoLookWaitInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -2528,8 +2528,8 @@ int daAlink_c::procCoDemoPushPullWaitInit() {
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBase(WANM_WAIT_PP);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed,
|
||||
daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed,
|
||||
mpHIO->mPushpull.m.mStandbyInterpolation);
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -2545,15 +2545,15 @@ int daAlink_c::procCoDemoPushMoveInit() {
|
||||
if (mDemo.getParam0() != 0) {
|
||||
setSingleAnimeWolfBase(WANM_PUSH);
|
||||
} else {
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, daAlinkHIO_wlPush_c0::m.mPushAnmSpeed,
|
||||
0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, mpHIO->mWolf.mWlPush.m.mPushAnmSpeed,
|
||||
0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
|
||||
}
|
||||
} else {
|
||||
if (mDemo.getParam0() != 0) {
|
||||
setSingleAnimeBase(ANM_PUSH);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, daAlinkHIO_pushpull_c0::m.mPushASpeed,
|
||||
daAlinkHIO_pushpull_c0::m.mPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, mpHIO->mPushpull.m.mPushASpeed,
|
||||
mpHIO->mPushpull.m.mPushInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2617,7 +2617,7 @@ int daAlink_c::procDemoBoomerangCatchInit() {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
mEquipItem = fpcNm_ITEM_BOOMERANG;
|
||||
setItemActor();
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2625,7 +2625,7 @@ int daAlink_c::procDemoBoomerangCatch() {
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -2651,9 +2651,9 @@ int daAlink_c::procCoDeadInit(int param_0) {
|
||||
if (checkNoResetFlg2(FLG2_FORCE_GAMEOVER)) {
|
||||
if (param_0) {
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2904,9 +2904,9 @@ int daAlink_c::procCoCaughtInit() {
|
||||
}
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, daAlinkHIO_wlDamCaught_c0::m.mWaitInterp);
|
||||
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, mpHIO->mWolf.mWlDamage.mCapture.m.mWaitInterp);
|
||||
} else {
|
||||
setSingleAnimeBaseMorf(ANM_WAIT_START, daAlinkHIO_damCaught_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseMorf(ANM_WAIT_START, mpHIO->mDamage.mDamCaught.m.mStandbyInterp);
|
||||
}
|
||||
|
||||
if (chk_40000) {
|
||||
@@ -2999,7 +2999,7 @@ int daAlink_c::procHandPat() {
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
@@ -3048,10 +3048,10 @@ int daAlink_c::procCoFogDeadInit() {
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_FALL_LAND, 0.0f,
|
||||
daAlinkHIO_wlDamFall_c0::m.mAirAnmInterp);
|
||||
mpHIO->mWolf.mWlDamage.mFall.m.mAirAnmInterp);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f,
|
||||
daAlinkHIO_damFall_c0::m.mFallAnmMorf);
|
||||
mpHIO->mDamage.mDamFall.m.mFallAnmMorf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3097,8 +3097,8 @@ int daAlink_c::procWolfSmellWaitInit() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SMELL, daAlinkHIO_wlChain_c0::m.mSniffAnmSpeed,
|
||||
daAlinkHIO_wlChain_c0::m.mSniffInterp);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SMELL, mpHIO->mWolf.mWlChain.m.mSniffAnmSpeed,
|
||||
mpHIO->mWolf.mWlChain.m.mSniffInterp);
|
||||
current.angle.y = shape_angle.y;
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
@@ -3245,7 +3245,7 @@ int daAlink_c::procCoGetReadySitInit() {
|
||||
commonProcInit(PROC_GET_READY_SIT);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
setSingleAnime(ANM_TRES_OPEN_SMALL, 1.0f, 36.0f, -1, 3.0f);
|
||||
@@ -3350,13 +3350,13 @@ int daAlink_c::procWolfSnowEscape() {
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &daAlinkHIO_wlSlide_c0::m.mFrontSlideAnm);
|
||||
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &mpHIO->mWolf.mWlSlide.m.mFrontSlideAnm);
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x3478 = 1.0f / (f32)frameCtrl_p->getEnd();
|
||||
field_0x2f99 = 13;
|
||||
voiceStart(Z2SE_WL_V_SLIP_ROLL);
|
||||
} else {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
field_0x2f99 = 0x30;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
@@ -3658,8 +3658,8 @@ int daAlink_c::procSwordReady() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
|
||||
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
|
||||
3.0f);
|
||||
}
|
||||
|
||||
@@ -3751,10 +3751,10 @@ int daAlink_c::procCutFastReadyInit() {
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mSpeed, 12.0f,
|
||||
daAlinkHIO_cut_c0::m.mEquipAnm.mEndFrame,
|
||||
daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnime(0x255, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f,
|
||||
mpHIO->mCut.m.mEquipAnm.mEndFrame,
|
||||
mpHIO->mCut.m.mEquipAnm.mInterpolation);
|
||||
onNoResetFlg0(FLG0_UNK_1000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -3953,8 +3953,8 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
|
||||
commonProcInit(PROC_DUNGEON_WARP_SCN_START);
|
||||
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
|
||||
if (checkDungeon() && !checkLv7DungeonShop()) {
|
||||
createNpcTks(¤t.pos, fopAcM_GetRoomNo(this), 4);
|
||||
@@ -4184,9 +4184,9 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
|
||||
u32 var_r29;
|
||||
@@ -4305,9 +4305,9 @@ int daAlink_c::procCoWarp() {
|
||||
|
||||
f32 var_f1;
|
||||
if (checkWolf()) {
|
||||
var_f1 = daAlinkHIO_wlAutoJump_c0::m.mGravity;
|
||||
var_f1 = mpHIO->mWolf.mWlAutoJump.m.mGravity;
|
||||
} else {
|
||||
var_f1 = daAlinkHIO_autoJump_c0::m.mGravity;
|
||||
var_f1 = mpHIO->mAutoJump.m.mGravity;
|
||||
}
|
||||
|
||||
setSpecialGravity(var_f1, maxFallSpeed, 1);
|
||||
@@ -4409,8 +4409,8 @@ int daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s1
|
||||
|
||||
int daAlink_c::commonFallInit(int param_0) {
|
||||
if (checkWolf()) {
|
||||
return procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
|
||||
return procWolfFallInit(param_0, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp);
|
||||
} else {
|
||||
return procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(param_0, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,9 +420,9 @@ void daAlink_c::setEffect() {
|
||||
if (checkWolf()) {
|
||||
spB8.x += 40.0f * cM_ssin(current.angle.y);
|
||||
spB8.z += 40.0f * cM_scos(current.angle.y);
|
||||
spAC.y -= daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
spAC.y -= mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
spAC.y -= daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
spAC.y -= mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
spB8.y = mWaterY;
|
||||
@@ -562,7 +562,7 @@ void daAlink_c::setEffect() {
|
||||
¤t.pos, &shape_angle);
|
||||
if (sp38 != NULL) {
|
||||
cXyz sp58;
|
||||
f32 var_f31 = temp_f30 / daAlinkHIO_board_c0::m.mEffectMaxSpeed;
|
||||
f32 var_f31 = temp_f30 / mpHIO->mItem.mBoard.m.mEffectMaxSpeed;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
@@ -1494,7 +1494,7 @@ void daAlink_c::setMetamorphoseEffect() {
|
||||
void daAlink_c::setRunSplash() {
|
||||
if (mProcID == PROC_MOVE && checkNoResetFlg0(FLG0_UNK_80) && checkDashAnime()) {
|
||||
f32 temp_f31 = mWaterY - current.pos.y;
|
||||
if (temp_f31 >= daAlinkHIO_basic_c0::m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) {
|
||||
if (temp_f31 >= mpHIO->mBasic.m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) {
|
||||
cXyz sp8(current.pos.x, mWaterY, current.pos.z);
|
||||
|
||||
JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31f8, 0x1AF, mLinkAcch.m_wtr, &sp8, ¤t.angle);
|
||||
|
||||
@@ -84,7 +84,7 @@ BOOL daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setGrabItemActor(p_actor);
|
||||
field_0x33e4 = 38.0f;
|
||||
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -136,9 +136,9 @@ BOOL daAlink_c::checkGrabSideActor() {
|
||||
void daAlink_c::setGrabUpperAnime(f32 param_0) {
|
||||
if (param_0 > 0.0f && checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
if (checkZoraWearAbility()) {
|
||||
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
|
||||
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
|
||||
} else {
|
||||
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
|
||||
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,9 +444,9 @@ void daAlink_c::setGrabUpperSpeedRate() {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
if (mProcID == PROC_STEP_MOVE) {
|
||||
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
|
||||
} else {
|
||||
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
|
||||
}
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
@@ -550,17 +550,17 @@ void daAlink_c::setGrabItemThrow() {
|
||||
temp_r3->current.angle.y = shape_angle.y;
|
||||
|
||||
if (checkWolf()) {
|
||||
temp_r3->speedF = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedH;
|
||||
temp_r3->speed.y = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedV;
|
||||
temp_r3->speedF = mpHIO->mItem.mBomb.m.mWolfThrowSpeedH;
|
||||
temp_r3->speed.y = mpHIO->mItem.mBomb.m.mWolfThrowSpeedV;
|
||||
} else {
|
||||
f32 var_f31;
|
||||
f32 var_f30;
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
var_f31 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedH;
|
||||
var_f30 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedV;
|
||||
var_f31 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedH;
|
||||
var_f30 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedV;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_bomb_c0::m.mThrowSpeedH;
|
||||
var_f30 = daAlinkHIO_bomb_c0::m.mThrowSpeedV;
|
||||
var_f31 = mpHIO->mItem.mBomb.m.mThrowSpeedH;
|
||||
var_f30 = mpHIO->mItem.mBomb.m.mThrowSpeedV;
|
||||
}
|
||||
|
||||
if (checkMagneBootsOn()) {
|
||||
@@ -706,9 +706,9 @@ int daAlink_c::procGrabReadyInit() {
|
||||
}
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame, 9, daAlinkHIO_grab_c0::m.mFailAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mStartFrame, 9, mpHIO->mGrab.m.mFailAnm.mInterpolation);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame);
|
||||
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mFailAnm.mStartFrame);
|
||||
|
||||
f32 var_f31;
|
||||
if (fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_DO) {
|
||||
@@ -720,8 +720,8 @@ int daAlink_c::procGrabReadyInit() {
|
||||
field_0x33ec = 4.0f * ((var_f31 * mGrabItemAcKeep.getActor()->scale.x) - 1.0f);
|
||||
} else {
|
||||
field_0x33ec = 0.0f;
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mPrepareAnm);
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mPrepareAnm.mEndFrame - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame);
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mPrepareAnm);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mPrepareAnm.mEndFrame - mpHIO->mGrab.m.mPrepareAnm.mStartFrame);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
@@ -741,15 +741,15 @@ int daAlink_c::procGrabReady() {
|
||||
|
||||
if (checkAnmEnd(&mUnderFrameCtrl[0])) {
|
||||
if (field_0x3198 != 0) {
|
||||
setSingleAnime(ANM_PICK_UP_LARGE_START, daAlinkHIO_grab_c0::m.mRecoilAnm.mSpeed, daAlinkHIO_grab_c0::m.mRecoilAnm.mStartFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mCancelFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mInterpolation);
|
||||
setSingleAnime(ANM_PICK_UP_LARGE_START, mpHIO->mGrab.m.mRecoilAnm.mSpeed, mpHIO->mGrab.m.mRecoilAnm.mStartFrame, mpHIO->mGrab.m.mRecoilAnm.mCancelFrame, mpHIO->mGrab.m.mRecoilAnm.mInterpolation);
|
||||
field_0x3198 = 0;
|
||||
} else {
|
||||
procGrabUpInit();
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e != 0) {
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame), 0.0f);
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mFailAnm.mStartFrame), 0.0f);
|
||||
} else {
|
||||
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame));
|
||||
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mPrepareAnm.mStartFrame));
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -760,11 +760,11 @@ int daAlink_c::procGrabUpInit() {
|
||||
commonProcInit(PROC_GRAB_UP);
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, 9.0f + daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mEndFrame, 0.0f);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, 9.0f + mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mEndFrame, 0.0f);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setCarryArmAngle(1.0f, 0.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mLiftBackAnm);
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mLiftBackAnm);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
setCarryArmAngle(0.0f, 1.0f);
|
||||
}
|
||||
@@ -792,7 +792,7 @@ int daAlink_c::procGrabUp() {
|
||||
return checkNextAction(0);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > daAlinkHIO_grab_c0::m.mLiftBackAnm.mCancelFrame))) {
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > mpHIO->mGrab.m.mLiftBackAnm.mCancelFrame))) {
|
||||
onResetFlg0(RFLG0_GRAB_UP_END);
|
||||
|
||||
if (fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY | fopAcM_CARRY_TYPE_1))) {
|
||||
@@ -831,13 +831,13 @@ int daAlink_c::procGrabMiss() {
|
||||
int daAlink_c::procGrabThrowInit(int param_0) {
|
||||
if (checkModeFlg(0x400)) {
|
||||
if (checkGrabHeavyActor()) {
|
||||
setUpperAnimeParam(0x17B, UPPER_2, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
|
||||
setUpperAnimeParam(0x17B, UPPER_2, &mpHIO->mGrab.m.mIronBallThrowAnm);
|
||||
field_0x343c = 14.0f;
|
||||
} else if (checkGrabAnimeSide()) {
|
||||
setUpperAnimeParam(0x51, UPPER_2, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
|
||||
setUpperAnimeParam(0x51, UPPER_2, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
|
||||
field_0x343c = 4.0f;
|
||||
} else {
|
||||
setUpperAnimeParam(0x170, UPPER_2, &daAlinkHIO_grab_c0::m.mLiftAnm);
|
||||
setUpperAnimeParam(0x170, UPPER_2, &mpHIO->mGrab.m.mLiftAnm);
|
||||
field_0x343c = 5.0f;
|
||||
}
|
||||
|
||||
@@ -850,27 +850,27 @@ int daAlink_c::procGrabThrowInit(int param_0) {
|
||||
}
|
||||
|
||||
if (checkGrabHeavyActor()) {
|
||||
setSingleAnimeParam(ANM_THROW_HEAVY, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
|
||||
setSingleAnimeParam(ANM_THROW_HEAVY, &mpHIO->mGrab.m.mIronBallThrowAnm);
|
||||
field_0x343c = 14.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mIronBallThrowAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mIronBallThrowAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 2;
|
||||
} else if (checkGrabSideActor()) {
|
||||
f32 var_f31;
|
||||
if (mTargetedActor != NULL) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setUpperAnimeParam(0x51, UPPER_0, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, mpHIO->mBasic.m.mBasicInterpolation);
|
||||
setUpperAnimeParam(0x51, UPPER_0, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
|
||||
field_0x343c = 4.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mCarryPlaceReverseAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_THROW, &daAlinkHIO_grab_c0::m.mLiftAnm);
|
||||
setSingleAnimeParam(ANM_THROW, &mpHIO->mGrab.m.mLiftAnm);
|
||||
field_0x343c = 5.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mLiftAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mLiftAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
@@ -891,7 +891,7 @@ int daAlink_c::procGrabThrow() {
|
||||
var_r30 = &mUnderFrameCtrl[0];
|
||||
}
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
|
||||
if (var_r30->checkPass(field_0x343c)) {
|
||||
setGrabItemThrow();
|
||||
@@ -934,15 +934,15 @@ int daAlink_c::procGrabPutInit() {
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
field_0x3198 = 0;
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, 9.0f, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, 9.0f, mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame, mpHIO->mGrab.m.mCarryLiftAnm.mInterpolation);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - 9.0f);
|
||||
field_0x3480 = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - field_0x3478);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - 9.0f);
|
||||
field_0x3480 = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - field_0x3478);
|
||||
} else {
|
||||
mProcVar3.field_0x300e = 0;
|
||||
field_0x3198 = 0;
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mThrowAnm);
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mThrowAnm.mEndFrame - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame);
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mThrowAnm);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mThrowAnm.mEndFrame - mpHIO->mGrab.m.mThrowAnm.mStartFrame);
|
||||
}
|
||||
|
||||
if (mGrabItemAcKeep.getActor() != NULL) {
|
||||
@@ -990,7 +990,7 @@ int daAlink_c::procGrabPut() {
|
||||
}
|
||||
setCarryArmAngle(1.0f - (field_0x347c * (temp_r28->getFrame() - 9.0f)), var_f31);
|
||||
} else {
|
||||
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame));
|
||||
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - mpHIO->mGrab.m.mThrowAnm.mStartFrame));
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -1012,7 +1012,7 @@ int daAlink_c::procGrabWaitInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
f32 var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
f32 var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
if (!checkGrabAnime()) {
|
||||
setGrabUpperAnime(-1.0f);
|
||||
} else {
|
||||
@@ -1021,14 +1021,14 @@ int daAlink_c::procGrabWaitInit() {
|
||||
|
||||
if (var_r30) {
|
||||
if (checkZoraWearAbility() ) {
|
||||
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
|
||||
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
|
||||
} else {
|
||||
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
|
||||
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
|
||||
}
|
||||
}
|
||||
|
||||
if (checkAttentionLock() && (checkGrabAnimeUp() || checkGrabAnimeSide())) {
|
||||
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(var_f31);
|
||||
}
|
||||
@@ -1066,7 +1066,7 @@ int daAlink_c::procGrabWait() {
|
||||
|
||||
int daAlink_c::procGrabReboundInit(int param_0) {
|
||||
commonProcInit(PROC_GRAB_REBOUND);
|
||||
setSingleAnimeParam(ANM_PICK_UP_LARGE, &daAlinkHIO_grab_c0::m.mCarryAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP_LARGE, &mpHIO->mGrab.m.mCarryAnm);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3198 = param_0;
|
||||
@@ -1089,10 +1089,10 @@ int daAlink_c::procGrabRebound() {
|
||||
|
||||
if (field_0x3198 != 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.1f) {
|
||||
setWaterInAnmRate(temp_r30, daAlinkHIO_grab_c0::m.mCarryAnm.mSpeed);
|
||||
setWaterInAnmRate(temp_r30, mpHIO->mGrab.m.mCarryAnm.mSpeed);
|
||||
field_0x3198 = 0;
|
||||
}
|
||||
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > daAlinkHIO_grab_c0::m.mCarryAnm.mCancelFrame))) {
|
||||
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > mpHIO->mGrab.m.mCarryAnm.mCancelFrame))) {
|
||||
initGrabNextMode();
|
||||
}
|
||||
|
||||
@@ -1103,14 +1103,14 @@ int daAlink_c::procGrabStandInit() {
|
||||
commonProcInit(PROC_GRAB_STAND);
|
||||
|
||||
if (checkUnderMove0BckNoArc(ANM_CARRY)) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame, (9.0f + daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed), 0.0f);
|
||||
field_0x3478 = daAlinkHIO_grab_c0::m.mCarryLiftAnm.mCancelFrame;
|
||||
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame, (9.0f + mpHIO->mGrab.m.mCarryLiftAnm.mSpeed), 0.0f);
|
||||
field_0x3478 = mpHIO->mGrab.m.mCarryLiftAnm.mCancelFrame;
|
||||
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setCarryArmAngle(1.0f, 0.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mStandReverseAnm);
|
||||
field_0x3478 = daAlinkHIO_grab_c0::m.mStandReverseAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mStandReverseAnm);
|
||||
field_0x3478 = mpHIO->mGrab.m.mStandReverseAnm.mCancelFrame;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
@@ -1130,7 +1130,7 @@ int daAlink_c::procGrabStand() {
|
||||
onModeFlg(4);
|
||||
|
||||
if (!checkNextAction(1) && mProcVar3.field_0x300e != 0) {
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame), 0.0f);
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame), 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1161,10 +1161,10 @@ int daAlink_c::procInsectCatchInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (field_0x27f4->attention_info.position.y > field_0x3834.y - 30.0f) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
field_0x3478 = 4.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x3478 = 8.0f;
|
||||
}
|
||||
|
||||
@@ -1222,20 +1222,20 @@ int daAlink_c::procPickUpInit() {
|
||||
|
||||
int var_r29;
|
||||
if (temp_r3 == PROC_Obj_Kantera) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x3478 = 7.0f;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
var_r29 = 0;
|
||||
} else if (temp_r3 == PROC_NPC_KS) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x3478 = 7.0f;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
fopAcM_onSwitch(field_0x27f4, 0x3F);
|
||||
var_r29 = 0;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mGrabAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mGrabAnm);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
var_r29 = 1;
|
||||
@@ -1269,7 +1269,7 @@ int daAlink_c::procPickUp() {
|
||||
}
|
||||
} else if (checkAnmEnd(temp_r30)) {
|
||||
checkNextAction(0);
|
||||
} else if (temp_r30->getFrame() > daAlinkHIO_pickUp_c0::m.mGrabAnm.mCancelFrame) {
|
||||
} else if (temp_r30->getFrame() > mpHIO->mItem.mPickUp.m.mGrabAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
} else if (temp_r30->checkPass(9.0f)) {
|
||||
@@ -1290,7 +1290,7 @@ int daAlink_c::procPickPutInit(int param_0) {
|
||||
|
||||
commonProcInit(PROC_PICK_PUT);
|
||||
mNormalSpeed = 0.0f;
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
|
||||
|
||||
if (mItemAcKeep.getActor() != NULL) {
|
||||
field_0x37c8 = mItemAcKeep.getActor()->current.pos;
|
||||
@@ -1326,7 +1326,7 @@ int daAlink_c::procPickPut() {
|
||||
|
||||
if (checkAnmEnd(temp_r28)) {
|
||||
checkNextAction(0);
|
||||
} else if (temp_r28->getFrame() < daAlinkHIO_pickUp_c0::m.mPlaceAnm.mCancelFrame) {
|
||||
} else if (temp_r28->getFrame() < mpHIO->mItem.mPickUp.m.mPlaceAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
} else if (temp_r28->checkPass(9.0f)) {
|
||||
@@ -1430,7 +1430,7 @@ int daAlink_c::procFmChainUpInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CHAIN_UP);
|
||||
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &daAlinkHIO_fmChain_c0::m.mGripAnm);
|
||||
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &mpHIO->mItem.mFmChain.m.mGripAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -1441,7 +1441,7 @@ int daAlink_c::procFmChainUp() {
|
||||
setGrabStatus(0x96, 2);
|
||||
setShapeAngleToAtnActor(0);
|
||||
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > daAlinkHIO_fmChain_c0::m.mGripAnm.mCancelFrame)) {
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > mpHIO->mItem.mFmChain.m.mGripAnm.mCancelFrame)) {
|
||||
u8 temp_r27 = field_0x2fa3;
|
||||
fopAc_ac_c* temp_r28 = field_0x2844.getActor();
|
||||
|
||||
@@ -1614,14 +1614,14 @@ f32 daAlink_c::getPushPullAnimeSpeed() {
|
||||
getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Bemos)
|
||||
{
|
||||
if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlPush_c0::m.mHeavyPushAnmSpeed;
|
||||
var_f31 = mpHIO->mWolf.mWlPush.m.mHeavyPushAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeedHeavy;
|
||||
var_f31 = mpHIO->mPushpull.m.mPushASpeedHeavy;
|
||||
}
|
||||
} else if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlPush_c0::m.mPushAnmSpeed;
|
||||
var_f31 = mpHIO->mWolf.mWlPush.m.mPushAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeed;
|
||||
var_f31 = mpHIO->mPushpull.m.mPushASpeed;
|
||||
}
|
||||
|
||||
return var_f31;
|
||||
@@ -1639,14 +1639,14 @@ int daAlink_c::procCoPushPullWaitInit(int param_0) {
|
||||
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, daAlinkHIO_wlPush_c0::m.mIdleAnmSpeed, daAlinkHIO_wlPush_c0::m.mIdleInterp);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, mpHIO->mWolf.mWlPush.m.mIdleAnmSpeed, mpHIO->mWolf.mWlPush.m.mIdleInterp);
|
||||
var_f31 = 50.0f;
|
||||
} else {
|
||||
if (checkEquipAnime()) {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed, daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed, mpHIO->mPushpull.m.mStandbyInterpolation);
|
||||
var_f31 = 50.0f;
|
||||
}
|
||||
|
||||
@@ -1717,7 +1717,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
|
||||
setSingleAnimeWolfBase(WANM_PUSH_START);
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
|
||||
}
|
||||
|
||||
field_0x3478 = 17.0f;
|
||||
@@ -1726,7 +1726,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
|
||||
setSingleAnimeBase(ANM_PUSH_START);
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, mpHIO->mPushpull.m.mPushInterpolation);
|
||||
}
|
||||
|
||||
field_0x3478 = 15.0f;
|
||||
@@ -1853,7 +1853,7 @@ int daAlink_c::procPullMoveInit(int param_0) {
|
||||
setSingleAnimeBase(ANM_PULL_START);
|
||||
} else {
|
||||
var_f31 = getPushPullAnimeSpeed();
|
||||
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPullInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, mpHIO->mPushpull.m.mPullInterpolation);
|
||||
}
|
||||
|
||||
mUnderFrameCtrl[0].setRate(var_f31);
|
||||
@@ -2000,7 +2000,7 @@ int daAlink_c::procGoatMoveInit() {
|
||||
field_0x37c8 = current.pos;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
|
||||
|
||||
setSingleAnimeBase(ANM_ATN_COW);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
@@ -2085,7 +2085,7 @@ int daAlink_c::procGoatMove() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
|
||||
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -2093,7 +2093,7 @@ int daAlink_c::procGoatMove() {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
@@ -2272,7 +2272,7 @@ int daAlink_c::procGoatCatch() {
|
||||
|
||||
if (temp_r27 == PROC_OBJ_GRA) {
|
||||
field_0x2f99 = 0x30;
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_B, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_B, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
offModeFlg(0x8000);
|
||||
mProcVar1.field_0x300a = 0x1E;
|
||||
return 1;
|
||||
@@ -2457,7 +2457,7 @@ int daAlink_c::procGoronMoveInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
@@ -2518,7 +2518,7 @@ int daAlink_c::procGoronMove() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
|
||||
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -2526,7 +2526,7 @@ int daAlink_c::procGoronMove() {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
|
||||
@@ -220,14 +220,13 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) {
|
||||
mBodyAngle.y = 0;
|
||||
} else {
|
||||
mBodyAngle.y =
|
||||
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax,
|
||||
daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax);
|
||||
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -mpHIO->mGuard.m.mSmallGuardLRAngleMax,
|
||||
mpHIO->mGuard.m.mSmallGuardLRAngleMax);
|
||||
}
|
||||
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax, daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax);
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -mpHIO->mGuard.m.mSmallGuardFBAngleMax, mpHIO->mGuard.m.mSmallGuardFBAngleMax);
|
||||
}
|
||||
|
||||
// NONMATCHING - extra useless mr
|
||||
int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if (mProcID == PROC_GUARD_SLIP) {
|
||||
return 0;
|
||||
@@ -254,7 +253,7 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
} else {
|
||||
const daAlinkHIO_anm_c* var_r27 = &daAlinkHIO_guard_c0::m.mGuardHitAnm;
|
||||
const daAlinkHIO_anm_c* var_r27 = &mpHIO->mGuard.m.mGuardHitAnm;
|
||||
daAlink_ANM var_r28;
|
||||
if (field_0x2f98 == 2) {
|
||||
var_r28 = ANM_GUARD_LEFT;
|
||||
@@ -269,11 +268,11 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if (abs(mProcVar2.field_0x300c) > 0x7000) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
} else {
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -daAlinkHIO_guard_c0::m.mGuardLRAngleMax, daAlinkHIO_guard_c0::m.mGuardLRAngleMax);
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -mpHIO->mGuard.m.mGuardLRAngleMax, mpHIO->mGuard.m.mGuardLRAngleMax);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -daAlinkHIO_guard_c0::m.mGuardFBAngleMax, daAlinkHIO_guard_c0::m.mGuardFBAngleMax);
|
||||
mProcVar1.field_0x300a = daAlinkHIO_guard_c0::m.mGuardBodyInterpolation + 1;
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -mpHIO->mGuard.m.mGuardFBAngleMax, mpHIO->mGuard.m.mGuardFBAngleMax);
|
||||
mProcVar1.field_0x300a = mpHIO->mGuard.m.mGuardBodyInterpolation + 1;
|
||||
mProcVar2.field_0x300c = (mProcVar2.field_0x300c - mBodyAngle.y) / mProcVar1.field_0x300a;
|
||||
mProcVar3.field_0x300e = (mProcVar3.field_0x300e - mBodyAngle.x) / mProcVar1.field_0x300a;
|
||||
mProcVar1.field_0x300a--;
|
||||
@@ -287,10 +286,10 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
|
||||
if (param_1 != NULL && param_1->GetTgHitAc() != NULL && fopAcM_GetName(param_1->GetTgHitAc()) == PROC_E_MM_MT && param_1->GetTgHitAc()->argument == 1) {
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneHvyGuardSpeed;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mMagneHvyGuardSpeed;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneGuardSpeed;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mMagneGuardSpeed;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
@@ -299,12 +298,12 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if ((!checkBootsOrArmorHeavy() && checkMiddleBossGoronRoom()) || checkStageName("D_MN07B")) {
|
||||
mNormalSpeed = 40.0f;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedHuge;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedHuge;
|
||||
}
|
||||
} else if (checkLargeAttack(param_0)) {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedLarge;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedLarge;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedNormal;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedNormal;
|
||||
}
|
||||
|
||||
field_0x2f9d = 0x60;
|
||||
@@ -363,7 +362,7 @@ int daAlink_c::procGuardAttackInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_GUARD_ATTACK);
|
||||
const daAlinkHIO_guardAttack_c1* temp_r30 = &daAlinkHIO_gAtPush_c0::m;
|
||||
const daAlinkHIO_guardAttack_c1* temp_r30 = &mpHIO->mGuard.mAtPush.m;
|
||||
|
||||
field_0x2f98 = 3;
|
||||
field_0x34d4 = l_rWaitBaseAnime;
|
||||
@@ -393,7 +392,7 @@ int daAlink_c::procGuardAttackInit() {
|
||||
|
||||
mGuardAtCps.ResetAtHit();
|
||||
mGuardAtCps.SetAtSe(2);
|
||||
mGuardAtCps.SetR(daAlinkHIO_guard_c0::m.mAttackRadius);
|
||||
mGuardAtCps.SetR(mpHIO->mGuard.m.mAttackRadius);
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -410,7 +409,7 @@ int daAlink_c::procGuardAttack() {
|
||||
|
||||
setUpperGuardAnime(-1.0f);
|
||||
field_0x2f99 = 4;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
setShapeAngleToAtnActor(1);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -481,7 +480,7 @@ int daAlink_c::procGuardAttack() {
|
||||
|
||||
int daAlink_c::procGuardBreakInit() {
|
||||
commonProcInit(PROC_GUARD_BREAK);
|
||||
setSingleAnimeParam(ANM_GUARD_BREAK, &daAlinkHIO_guard_c0::m.mGuardBreakAnm);
|
||||
setSingleAnimeParam(ANM_GUARD_BREAK, &mpHIO->mGuard.m.mGuardBreakAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_IRONBALL) {
|
||||
deleteEquipItem(0, 0);
|
||||
@@ -506,7 +505,7 @@ int daAlink_c::procGuardBreak() {
|
||||
onEndResetFlg1(ERFLG1_UNK_20);
|
||||
}
|
||||
checkNextAction(0);
|
||||
} else if (temp_r30->getFrame() > daAlinkHIO_guard_c0::m.mGuardBreakAnm.mCancelFrame) {
|
||||
} else if (temp_r30->getFrame() > mpHIO->mGuard.m.mGuardBreakAnm.mCancelFrame) {
|
||||
if (!checkGuardActionChange()) {
|
||||
onEndResetFlg1(ERFLG1_UNK_20);
|
||||
}
|
||||
@@ -540,14 +539,14 @@ int daAlink_c::procTurnMoveInit(int param_0) {
|
||||
var_r29 = ANM_SIDE_ROLL_LEFT;
|
||||
}
|
||||
|
||||
f32 temp_f31 = daAlinkHIO_turnMove_c0::m.mTurnAnm.mSpeed;
|
||||
mProcVar1.field_0x300a = daAlinkHIO_turnMove_c0::m.mMaxTurnSpeed;
|
||||
f32 temp_f31 = mpHIO->mGuard.mTurnMove.m.mTurnAnm.mSpeed;
|
||||
mProcVar1.field_0x300a = mpHIO->mGuard.mTurnMove.m.mMaxTurnSpeed;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mProcVar1.field_0x300a = mProcVar1.field_0x300a * daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mProcVar1.field_0x300a = mProcVar1.field_0x300a * mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
}
|
||||
|
||||
setSingleAnime(var_r29, temp_f31, daAlinkHIO_turnMove_c0::m.mTurnAnm.mStartFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mEndFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mInterpolation);
|
||||
setSingleAnime(var_r29, temp_f31, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mStartFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mEndFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation);
|
||||
|
||||
if (var_r29 == ANM_SIDE_ROLL_LEFT) {
|
||||
mProcVar2.field_0x300c = -0x7FF0;
|
||||
@@ -591,7 +590,7 @@ int daAlink_c::procTurnMove() {
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
s16 temp_r28 = mProcVar2.field_0x300c;
|
||||
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, daAlinkHIO_turnMove_c0::m.mTurnSpeedRate, mProcVar1.field_0x300a, daAlinkHIO_turnMove_c0::m.mMinTurnSpeed);
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, mpHIO->mGuard.mTurnMove.m.mTurnSpeedRate, mProcVar1.field_0x300a, mpHIO->mGuard.mTurnMove.m.mMinTurnSpeed);
|
||||
|
||||
s16 temp_r29 = temp_r28 - mProcVar2.field_0x300c;
|
||||
if (temp_r28 > 0) {
|
||||
@@ -623,11 +622,11 @@ int daAlink_c::procTurnMove() {
|
||||
offNoResetFlg2(FLG2_UNK_8000000);
|
||||
}
|
||||
checkNextAction(0);
|
||||
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTwirlCutDelayF) {
|
||||
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTwirlCutDelayF) {
|
||||
procCutFinishJumpUpInit();
|
||||
dComIfGp_setPlayerStatus0(0, 4);
|
||||
} else {
|
||||
if (temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) {
|
||||
if (temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTurnAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
|
||||
if (checkNextAction(1)) {
|
||||
|
||||
+100
-100
@@ -13,8 +13,8 @@
|
||||
#include "d/actor/d_a_obj_swhang.h"
|
||||
|
||||
f32 daAlink_c::getHangMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_wallMove_c0::m.mMinAnmSpeed,
|
||||
daAlinkHIO_wallMove_c0::m.mMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mWallHang.mWallMove.m.mMinAnmSpeed,
|
||||
mpHIO->mWallHang.mWallMove.m.mMaxAnmSpeed);
|
||||
}
|
||||
|
||||
int daAlink_c::getHangDirectionFromAngle() {
|
||||
@@ -189,7 +189,7 @@ void daAlink_c::setHangGroundY() {
|
||||
int daAlink_c::changeHangEndProc() {
|
||||
setHangGroundY();
|
||||
|
||||
if (current.pos.y < field_0x33d8 + daAlinkHIO_wallHang_c0::m.hang_foot_pos_height - 1.0f &&
|
||||
if (current.pos.y < field_0x33d8 + mpHIO->mWallHang.m.hang_foot_pos_height - 1.0f &&
|
||||
(mProcID != PROC_HANG_FALL_START || !(mUnderFrameCtrl->getFrame() < 3.0f)) &&
|
||||
field_0x33d8 < current.pos.y - 5.0f)
|
||||
{
|
||||
@@ -200,7 +200,7 @@ int daAlink_c::changeHangEndProc() {
|
||||
|
||||
if (doTrigger()) {
|
||||
speed.y = 0.0f;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -280,20 +280,20 @@ int daAlink_c::procHangStartInit() {
|
||||
|
||||
if (checkHangFootWall()) {
|
||||
if (!hang_ready && cM_rnd() < 0.7f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
}
|
||||
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x2f93 = 0xFE;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
|
||||
field_0x3478 = daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
|
||||
field_0x3478 = mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ int daAlink_c::procHangStart() {
|
||||
} else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR() &&
|
||||
getDirectionFromShapeAngle() == DIR_FORWARD)
|
||||
{
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -379,14 +379,14 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) {
|
||||
if (mProcID == PROC_FRONT_ROLL) {
|
||||
morf = 0.0f;
|
||||
} else {
|
||||
morf = daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mInterpolation;
|
||||
morf = mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mInterpolation;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_FALL_START);
|
||||
offNoResetFlg2(FLG2_UNK_2000);
|
||||
setSingleAnime(ANM_HANG_ONE_HAND, daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mSpeed,
|
||||
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mStartFrame,
|
||||
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mEndFrame, morf);
|
||||
setSingleAnime(ANM_HANG_ONE_HAND, mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mSpeed,
|
||||
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mStartFrame,
|
||||
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mEndFrame, morf);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -403,7 +403,7 @@ int daAlink_c::procHangFallStart() {
|
||||
|
||||
BOOL bvar;
|
||||
if (checkAnmEnd(frame_ctrl) ||
|
||||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mCancelFrame)
|
||||
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mCancelFrame)
|
||||
{
|
||||
bvar = true;
|
||||
} else {
|
||||
@@ -431,7 +431,7 @@ int daAlink_c::procHangFallStart() {
|
||||
|
||||
int daAlink_c::procHangUpInit(int param_0) {
|
||||
commonProcInit(PROC_HANG_UP);
|
||||
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm);
|
||||
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100);
|
||||
setBowHangAnime();
|
||||
field_0x3198 = param_0;
|
||||
@@ -451,10 +451,10 @@ int daAlink_c::procHangUp() {
|
||||
}
|
||||
return 1;
|
||||
} else if (checkAnmEnd(frame_ctrl) ||
|
||||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm.mCancelFrame)
|
||||
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm.mCancelFrame)
|
||||
{
|
||||
if (field_0x3198 == 0) {
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else if (changeHangMoveProc(field_0x3198)) {
|
||||
procHangMoveInit(field_0x3198);
|
||||
} else {
|
||||
@@ -470,13 +470,13 @@ int daAlink_c::procHangWaitInit() {
|
||||
commonProcInit(PROC_HANG_WAIT);
|
||||
|
||||
if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) {
|
||||
setSingleAnime(ANM_CLIMB_HANG, 0.0f, daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame,
|
||||
daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame, 5.0f);
|
||||
setSingleAnime(ANM_CLIMB_HANG, 0.0f, mpHIO->mLadder.m.mWallAttachAnm.mEndFrame,
|
||||
mpHIO->mLadder.m.mWallAttachAnm.mEndFrame, 5.0f);
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x2f93 = 0xFE;
|
||||
} else {
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 5.0f);
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 5.0f);
|
||||
}
|
||||
|
||||
setBowHangAnime();
|
||||
@@ -497,14 +497,14 @@ int daAlink_c::procHangWait() {
|
||||
setClimbShapeOffset();
|
||||
|
||||
if (checkNoResetFlg2(FLG2_UNK_2000) && !checkHangFootWall()) {
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 10.0f);
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 10.0f);
|
||||
}
|
||||
|
||||
if (checkInputOnR()) {
|
||||
int direction = getHangDirectionFromAngle();
|
||||
if (direction == DIR_FORWARD) {
|
||||
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
}
|
||||
|
||||
if (direction != DIR_BACKWARD && changeHangMoveProc(direction)) {
|
||||
@@ -547,7 +547,7 @@ int daAlink_c::procHangMoveInit(int param_0) {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm, getHangMoveAnmSpeed(),
|
||||
daAlinkHIO_wallMove_c0::m.mInterpolation);
|
||||
mpHIO->mWallHang.mWallMove.m.mInterpolation);
|
||||
}
|
||||
|
||||
if (param_0 == 2) {
|
||||
@@ -571,7 +571,7 @@ int daAlink_c::procHangMove() {
|
||||
|
||||
if (!changeHangEndProc()) {
|
||||
if (direction == DIR_FORWARD && checkInputOnR()) {
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
@@ -680,9 +680,9 @@ int daAlink_c::procHangClimbInit(f32 param_0) {
|
||||
|
||||
BOOL wall_catch = mProcID == PROC_HANG_WALL_CATCH;
|
||||
commonProcInit(PROC_HANG_CLIMB);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed, param_0,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed, param_0,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
|
||||
|
||||
if (checkBowItem(mEquipItem)) {
|
||||
field_0x33dc = mUnderFrameCtrl[0].getFrame();
|
||||
@@ -730,7 +730,7 @@ int daAlink_c::procHangClimb() {
|
||||
|
||||
if (checkAnmEnd(frameCtrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_wallCatch_c0::m.mClimbAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -760,7 +760,7 @@ int daAlink_c::procHangWallCatchInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_WALL_CATCH);
|
||||
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &daAlinkHIO_wallCatch_c0::m.mGrabBAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &mpHIO->mWallHang.mWallCatch.m.mGrabBAnm);
|
||||
setBowHangAnime();
|
||||
current.pos.x = sp38.x;
|
||||
current.pos.y = sp38.y;
|
||||
@@ -785,9 +785,9 @@ int daAlink_c::procHangWallCatch() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl) &&
|
||||
!procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbStartFrame))
|
||||
!procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame))
|
||||
{
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -805,7 +805,7 @@ int daAlink_c::procHangReadyInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_READY);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
|
||||
mProcVar2.field_0x300c = field_0x306e + 0x8000;
|
||||
field_0x3198 = field_0x2f91;
|
||||
|
||||
@@ -847,7 +847,7 @@ int daAlink_c::procHangLeverDownInit() {
|
||||
|
||||
commonProcInit(PROC_HANG_LEVER_DOWN);
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
|
||||
mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
field_0x3198 = ANM_CLIMB_JUMP;
|
||||
|
||||
@@ -875,7 +875,7 @@ int daAlink_c::procHangLeverDown() {
|
||||
offModeFlg(1);
|
||||
onModeFlg(0x6042);
|
||||
|
||||
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
|
||||
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x3198 = ANM_HANG_READY;
|
||||
@@ -1090,13 +1090,13 @@ int daAlink_c::procBossBodyHang() {
|
||||
mProcVar1.field_0x300a = 3;
|
||||
} else {
|
||||
if (field_0x32cc != 0) {
|
||||
setSingleAnimeParam(ANM_DRAGON_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
|
||||
setSingleAnimeParam(ANM_DRAGON_CUT, &mpHIO->mCut.m.mStabAnm);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_MORPHEEL_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
|
||||
setSingleAnimeParam(ANM_MORPHEEL_CUT, &mpHIO->mCut.m.mStabAnm);
|
||||
}
|
||||
|
||||
field_0x3198 = 0x16C;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mStabAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mCut.m.mStabAnm.mCancelFrame;
|
||||
field_0x347c = 10.0f;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar1.field_0x300a = 1;
|
||||
@@ -1161,7 +1161,7 @@ int daAlink_c::setLadderInit() {
|
||||
if (checkModeFlg(0x40000)) {
|
||||
setLadderPos(getLadderUnitCount() - 2);
|
||||
|
||||
while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mStartHeight) {
|
||||
while (mWaterY - current.pos.y > mpHIO->mSwim.m.mStartHeight) {
|
||||
current.pos.y += 37.5f;
|
||||
}
|
||||
|
||||
@@ -1235,8 +1235,8 @@ void daAlink_c::setLadderPos(int param_0) {
|
||||
|
||||
|
||||
f32 daAlink_c::getLadderMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mMoveMinASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mMoveMaxSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mMoveMinASpeed,
|
||||
mpHIO->mLadder.m.mMoveMaxSpeed);
|
||||
}
|
||||
|
||||
int daAlink_c::changeLadderMoveProc(int param_0) {
|
||||
@@ -1302,7 +1302,7 @@ int daAlink_c::setMoveBGLadderCorrect() {
|
||||
field_0x37c8.z + cM_scos(current.angle.y) * 50.0f);
|
||||
|
||||
if (!commonLineCheck(&field_0x37c8, &sp28) || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 4) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
mPolyInfo1.SetPolyInfo(mLinkLinChk);
|
||||
@@ -1315,7 +1315,7 @@ int daAlink_c::checkLadderFall() {
|
||||
|
||||
if (doTrigger()) {
|
||||
field_0x2f99 = 0;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -1332,8 +1332,8 @@ int daAlink_c::procLadderUpStartInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
speedF = 0.0f;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, daAlinkHIO_ladder_c0::m.mClimbUpStartASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbUpStartInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, mpHIO->mLadder.m.mClimbUpStartASpeed,
|
||||
mpHIO->mLadder.m.mClimbUpStartInterp);
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
@@ -1376,8 +1376,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
commonProcInit(PROC_LADDER_UP_END);
|
||||
|
||||
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT;
|
||||
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbUpEndASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbUpEndInterp);
|
||||
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbUpEndASpeed,
|
||||
mpHIO->mLadder.m.mClimbUpEndInterp);
|
||||
field_0x2f99 = 14;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
@@ -1403,7 +1403,7 @@ int daAlink_c::procLadderUpEnd() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbUpEndCF) ||
|
||||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbUpEndCF) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= 23.0f) {
|
||||
@@ -1436,8 +1436,8 @@ int daAlink_c::procLadderDownStartInit() {
|
||||
shape_angle.y = field_0x306e + 0x8000;
|
||||
current.angle.y = field_0x306e;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, daAlinkHIO_ladder_c0::m.mClimbDownStartASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbDownStartInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, mpHIO->mLadder.m.mClimbDownStartASpeed,
|
||||
mpHIO->mLadder.m.mClimbDownStartInterp);
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
@@ -1487,8 +1487,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
commonProcInit(PROC_LADDER_DOWN_END);
|
||||
|
||||
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT;
|
||||
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbDownEndASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbDownEndInterp);
|
||||
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbDownEndASpeed,
|
||||
mpHIO->mLadder.m.mClimbDownEndInterp);
|
||||
field_0x2f99 = 14;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
@@ -1509,7 +1509,7 @@ int daAlink_c::procLadderDownEnd() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbDownEndCF) ||
|
||||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbDownEndCF) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= 11.0f) {
|
||||
@@ -1566,7 +1566,7 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) {
|
||||
}
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm, anm_speed, daAlinkHIO_ladder_c0::m.mMoveInterp);
|
||||
setSingleAnimeBaseSpeed(anm, anm_speed, mpHIO->mLadder.m.mMoveInterp);
|
||||
field_0x2f98 = param_1;
|
||||
|
||||
if (!param_1) {
|
||||
@@ -1614,13 +1614,13 @@ int daAlink_c::procLadderMove() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getClimbMoveUpDownAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallVerticalMinAnmSpeed,
|
||||
daAlinkHIO_ladder_c0::m.mWallVerticalMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallVerticalMinAnmSpeed,
|
||||
mpHIO->mLadder.m.mWallVerticalMaxAnmSpeed);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getClimbMoveSideAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallHorizontalMinAnmSpeed,
|
||||
daAlinkHIO_ladder_c0::m.mWallHorizontalMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallHorizontalMinAnmSpeed,
|
||||
mpHIO->mLadder.m.mWallHorizontalMaxAnmSpeed);
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_poly) {
|
||||
@@ -1810,7 +1810,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
f32 var_f31 = cM_ssin(shape_angle.y);
|
||||
@@ -1837,7 +1837,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
((mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_CLIMB_MOVE_SIDE) &&
|
||||
current.pos.y - 15.0f < dComIfG_Bgsp().GroundCross(&mLinkGndChk)))
|
||||
{
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
cM3dGPla sp44;
|
||||
@@ -1845,7 +1845,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
|
||||
s16 temp_r29 = sp44.mNormal.atan2sX_Z();
|
||||
if (cLib_distanceAngleS(temp_r29, shape_angle.y) <= 0x549F) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
s16 temp_r28 = shape_angle.y;
|
||||
@@ -1993,7 +1993,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) {
|
||||
if (checkClimbGround(&sp8C, sp98.y)) {
|
||||
current.pos = sp8C;
|
||||
onResetFlg0(RFLG0_UNK_40000);
|
||||
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else {
|
||||
current.pos.y -= 30.0f;
|
||||
return procClimbWaitInit(1, 1);
|
||||
@@ -2059,12 +2059,12 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (param_0 || var_r29 || cM_rnd() < 0.3f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
}
|
||||
|
||||
@@ -2072,7 +2072,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
dComIfGp_setPlayerStatus0(0, 8);
|
||||
|
||||
if (param_0) {
|
||||
current.pos.y = field_0x34ec.y + daAlinkHIO_ladder_c0::m.mWallApproachOffset;
|
||||
current.pos.y = field_0x34ec.y + mpHIO->mLadder.m.mWallApproachOffset;
|
||||
}
|
||||
|
||||
field_0x2f99 = 2;
|
||||
@@ -2138,12 +2138,12 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) {
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
|
||||
if (cM_rnd() < 0.7f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
}
|
||||
@@ -2504,7 +2504,7 @@ int daAlink_c::procClimbToRoof() {
|
||||
if (sp38.y < current.pos.y + 214.0f + 110.0f) {
|
||||
procRoofHangStartInit(mLinkRoofChk, sp38, 1);
|
||||
} else {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2513,13 +2513,13 @@ int daAlink_c::procClimbToRoof() {
|
||||
|
||||
|
||||
f32 daAlink_c::getRoofHangFMoveAnmSpeed() const {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mVertMoveMaxASpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinASpeed,
|
||||
mpHIO->mRoofHang.m.mVertMoveMaxASpeed);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getRoofHangSMoveAnmSpeed() const {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mHorizMoveMinASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mHorizMoveMaxASpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mHorizMoveMinASpeed,
|
||||
mpHIO->mRoofHang.m.mHorizMoveMaxASpeed);
|
||||
}
|
||||
|
||||
void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) {
|
||||
@@ -2566,7 +2566,7 @@ int daAlink_c::commonRoofHangProc() {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
cXyz sp28(current.pos.x, (current.pos.y + 214.0f) - 10.0f, current.pos.z);
|
||||
@@ -2579,7 +2579,7 @@ int daAlink_c::commonRoofHangProc() {
|
||||
current.pos.y = roof_y - 214.0f;
|
||||
mPolyInfo2.SetPolyInfo(mLinkRoofChk);
|
||||
} else {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -2624,7 +2624,7 @@ int daAlink_c::checkNextActionRoofHang() {
|
||||
int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1,
|
||||
int param_2) {
|
||||
commonProcInit(PROC_ROOF_HANG_START);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
|
||||
mPolyInfo2.SetPolyInfo(param_0);
|
||||
|
||||
current.pos = param_1;
|
||||
@@ -2655,7 +2655,7 @@ int daAlink_c::procRoofHangStart() {
|
||||
if (mProcVar0.field_0x3008 == 0 &&
|
||||
(checkAnmEnd(frame_ctrl) ||
|
||||
(checkInputOnR() &&
|
||||
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.mRoofHangAnm.mCancelFrame)))
|
||||
frame_ctrl->getFrame() > mpHIO->mRoofHang.m.mRoofHangAnm.mCancelFrame)))
|
||||
{
|
||||
checkNextActionRoofHang();
|
||||
} else if (checkAnmEnd(frame_ctrl)) {
|
||||
@@ -2684,7 +2684,7 @@ int daAlink_c::procRoofHangWaitInit(int param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed, daAlinkHIO_roofHang_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed, mpHIO->mRoofHang.m.mStandbyInterp);
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
@@ -2731,7 +2731,7 @@ int daAlink_c::procRoofHangFrontMoveInit() {
|
||||
frame = mUnderFrameCtrl[0].getFrame();
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, daAlinkHIO_roofHang_c0::m.mVertMoveInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, mpHIO->mRoofHang.m.mVertMoveInterp);
|
||||
|
||||
if (frame >= 0) {
|
||||
mUnderFrameCtrl[0].setFrame(frame);
|
||||
@@ -2758,9 +2758,9 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
checkNextActionRoofHang();
|
||||
} else {
|
||||
if (!checkAttentionLock()) {
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_roofHang_c0::m.mTurnAngleRate,
|
||||
daAlinkHIO_roofHang_c0::m.mMaxTurnAngle,
|
||||
daAlinkHIO_roofHang_c0::m.mMinTurnAngle);
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mRoofHang.m.mTurnAngleRate,
|
||||
mpHIO->mRoofHang.m.mMaxTurnAngle,
|
||||
mpHIO->mRoofHang.m.mMinTurnAngle);
|
||||
|
||||
if (field_0x2f98 == 0) {
|
||||
shape_angle.y = current.angle.y;
|
||||
@@ -2776,8 +2776,8 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
frame = frameCtrl->getFrame();
|
||||
}
|
||||
|
||||
mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinSpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mVertMoveMaxSpeed) *
|
||||
mNormalSpeed = getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinSpeed,
|
||||
mpHIO->mRoofHang.m.mVertMoveMaxSpeed) *
|
||||
cM_fsin((frame * M_PI) * 0.083333336f);
|
||||
if (mNormalSpeed < 0.0f) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -2804,7 +2804,7 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), shape_angle.y) > 0x6000) {
|
||||
current.pos.x = sp70.mNormal.x * 15.0f + mLinkLinChk.GetCross().x;
|
||||
current.pos.z = sp70.mNormal.z * 15.0f + mLinkLinChk.GetCross().z;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2833,7 +2833,7 @@ int daAlink_c::procRoofHangSideMoveInit() {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm_id, getRoofHangSMoveAnmSpeed(),
|
||||
daAlinkHIO_roofHang_c0::m.mHorizMoveInterp);
|
||||
mpHIO->mRoofHang.m.mHorizMoveInterp);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
f32 tmp_0 = 0.0f;
|
||||
@@ -2874,7 +2874,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
|
||||
f32 anm_speed;
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
|
||||
anm_speed = -daAlinkHIO_roofHang_c0::m.mInvertASpeed;
|
||||
anm_speed = -mpHIO->mRoofHang.m.mInvertASpeed;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
shape_angle.y += 0x8000;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
@@ -2883,7 +2883,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x347c = 10.0f;
|
||||
} else {
|
||||
anm_speed = daAlinkHIO_roofHang_c0::m.mInvertASpeed;
|
||||
anm_speed = mpHIO->mRoofHang.m.mInvertASpeed;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
|
||||
field_0x3478 = 10.0f;
|
||||
@@ -2891,7 +2891,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.mInvertInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, mpHIO->mRoofHang.m.mInvertInterp);
|
||||
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
setFaceBasicTexture(FTANM_UNK_4);
|
||||
@@ -2945,7 +2945,7 @@ void daAlink_c::setRoofHangSwitch() {
|
||||
int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
commonProcInit(PROC_ROOF_SWITCH_HANG);
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
|
||||
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
f32 tmp_0 = 0.0f;
|
||||
@@ -2970,20 +2970,20 @@ int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
|
||||
int daAlink_c::procRoofSwitchHang() {
|
||||
if (field_0x280c.getActor() == NULL) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
setRoofHangSwitch();
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed,
|
||||
mpHIO->mRoofHang.m.mStandbyInterp);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -426,9 +426,9 @@ void daAlink_c::setHookshotSight() {
|
||||
cXyz sight_pos;
|
||||
f32 length;
|
||||
if (checkLv7BossRoom()) {
|
||||
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
|
||||
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
|
||||
} else {
|
||||
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
BOOL line_cross = checkSightLine(length, &sight_pos);
|
||||
@@ -519,7 +519,7 @@ int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(tmp_0);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0);
|
||||
} else {
|
||||
setWaterInAnmRate(&mUpperFrameCtrl[2], daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed);
|
||||
setWaterInAnmRate(&mUpperFrameCtrl[2], mpHIO->mItem.mHookshot.m.mWaitAnmSpeed);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -545,7 +545,7 @@ void daAlink_c::setHookshotReadyAnime() {
|
||||
if (!checkAttentionLock() && mFastShotTime == 0) {
|
||||
speed = 0.0f;
|
||||
} else {
|
||||
speed = daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed;
|
||||
speed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
setUpperAnimeBaseSpeed(dRes_INDEX_ALANM_BCK_HSWAIT_e, speed, 3.0f);
|
||||
@@ -583,7 +583,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
|
||||
setSingleAnimeBaseMorf(anmID, 0.0f);
|
||||
} else if (checkModeFlg(0x40400)) {
|
||||
setUpperAnimeParam(0x18C, UPPER_2, &daAlinkHIO_hookshot_c0::m.mShootAnm);
|
||||
setUpperAnimeParam(0x18C, UPPER_2, &mpHIO->mItem.mHookshot.m.mShootAnm);
|
||||
|
||||
if (checkModeFlg(0x40000)) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -599,7 +599,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
mSpeedModifier = tmp_0;
|
||||
mNowAnmPackUpper[2].setRatio(tmp_0);
|
||||
|
||||
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &daAlinkHIO_hookshot_c0::m.mShootAnm);
|
||||
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &mpHIO->mItem.mHookshot.m.mShootAnm);
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg3(FLG3_UNK_4)) {
|
||||
@@ -701,7 +701,7 @@ void daAlink_c::setHookshotReturnEnd() {
|
||||
field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa);
|
||||
} else if (checkHookshotShootAnime()) {
|
||||
setUpperAnimeBaseSpeed(
|
||||
0x18D, checkAttentionLock() ? daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed : 0.0f, 3.0f);
|
||||
0x18D, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f);
|
||||
}
|
||||
|
||||
mFastShotTime = 0;
|
||||
@@ -863,21 +863,21 @@ void daAlink_c::setHookshotPos() {
|
||||
f32 shoot_speed;
|
||||
f32 length;
|
||||
if (checkLv7BossRoom()) {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mBossReturnSpeed;
|
||||
shoot_speed = daAlinkHIO_hookshot_c0::m.mBossShootSpeed;
|
||||
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mBossReturnSpeed;
|
||||
shoot_speed = mpHIO->mItem.mHookshot.m.mBossShootSpeed;
|
||||
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
|
||||
} else {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mReturnSpeed;
|
||||
shoot_speed = daAlinkHIO_hookshot_c0::m.mShootSpeed;
|
||||
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mReturnSpeed;
|
||||
shoot_speed = mpHIO->mItem.mHookshot.m.mShootSpeed;
|
||||
length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
if (mItemMode == HS_MODE_RETURN_e) {
|
||||
if (targetAc_p != NULL) {
|
||||
if (checkLv7BossRoom()) {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mBossStickReturnSpeed;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mBossStickReturnSpeed;
|
||||
} else {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mStickReturnSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1209,7 +1209,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
BOOL play_sound = false;
|
||||
if (!dComIfGp_checkPlayerStatus0(0, 0x2000)) {
|
||||
f32 max_rise_y = (mIronBallBgChkPos.y + 15.0f) - 1.5f;
|
||||
f32 min_descend_y = mIronBallBgChkPos.y - daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
f32 min_descend_y = mIronBallBgChkPos.y - mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
|
||||
if (checkInputOnR()) {
|
||||
int stick_direction = getDirectionFromAngle(mStickAngle);
|
||||
@@ -1223,7 +1223,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (stick_direction == DIR_FORWARD) {
|
||||
current.pos.y += daAlinkHIO_hookshot_c0::m.mRoofHangRiseSpeed * field_0x33a8;
|
||||
current.pos.y += mpHIO->mItem.mHookshot.m.mRoofHangRiseSpeed * field_0x33a8;
|
||||
if (current.pos.y > max_rise_y) {
|
||||
current.pos.y = max_rise_y;
|
||||
} else {
|
||||
@@ -1231,7 +1231,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
play_sound = true;
|
||||
}
|
||||
} else if (stick_direction == DIR_BACKWARD) {
|
||||
f32 descend_speed = daAlinkHIO_hookshot_c0::m.mRoofHangDecendSpeed * field_0x33ac;
|
||||
f32 descend_speed = mpHIO->mItem.mHookshot.m.mRoofHangDecendSpeed * field_0x33ac;
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
descend_speed *= 1.5f;
|
||||
}
|
||||
@@ -1379,7 +1379,7 @@ int daAlink_c::procHookshotSubjectInit() {
|
||||
|
||||
if (initHookshotUpperAnimeSpeed(1)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_LEFT, 0.0f,
|
||||
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mHookshot.m.mStartInterpolation);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
@@ -1422,7 +1422,7 @@ int daAlink_c::procHookshotMoveInit() {
|
||||
}
|
||||
|
||||
if (initHookshotUpperAnimeSpeed(0)) {
|
||||
setBlendAtnMoveAnime(daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mHookshot.m.mStartInterpolation);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
@@ -1440,7 +1440,7 @@ int daAlink_c::procHookshotMove() {
|
||||
|
||||
if (field_0x2f98 != 2) {
|
||||
field_0x2f98 = 2;
|
||||
blend = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
blend = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -1529,7 +1529,7 @@ int daAlink_c::procHookshotFly() {
|
||||
} else {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
f32 temp_f31 = field_0x37d4.abs();
|
||||
f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
f32 temp_f30 = mpHIO->mItem.mHookshot.m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
|
||||
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
|
||||
setHookshotReturnEnd();
|
||||
@@ -1665,7 +1665,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mRoofHangAnm);
|
||||
} else {
|
||||
setHookshotRoofWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -1737,7 +1737,7 @@ int daAlink_c::procHookshotRoofWait() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCancelFrame))
|
||||
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mRoofHangAnm.mCancelFrame))
|
||||
{
|
||||
setHookshotRoofWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -1930,7 +1930,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm);
|
||||
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mWallHangAnm);
|
||||
} else {
|
||||
setHookshotWallWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -2003,7 +2003,7 @@ int daAlink_c::procHookshotWallWait() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCancelFrame))
|
||||
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mWallHangAnm.mCancelFrame))
|
||||
{
|
||||
setHookshotWallWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
|
||||
@@ -270,8 +270,8 @@ BOOL daAlink_c::checkHorseSubjectivity() const {
|
||||
}
|
||||
|
||||
void daAlink_c::setHorseSwordUpAnime() {
|
||||
setUpperAnimeBaseSpeed(0xCC, daAlinkHIO_horse_c0::m.mSwordUpAnmSpeed,
|
||||
daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
|
||||
setUpperAnimeBaseSpeed(0xCC, mpHIO->mHorse.m.mSwordUpAnmSpeed,
|
||||
mpHIO->mHorse.m.mSwordUpInterpolation);
|
||||
setFaceBck(0xE8, 1, 0xFFFF);
|
||||
}
|
||||
|
||||
@@ -661,8 +661,8 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
s32 dir = getDirectionFromShapeAngle();
|
||||
if (dir == DIR_FORWARD)
|
||||
{
|
||||
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
|
||||
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
|
||||
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
|
||||
setSingleAnimeParam(ANM_WSTARTH, &mpHIO->mHorse.m.mWalkOutAnm);
|
||||
offNoResetFlg1(FLG1_UNK_1000);
|
||||
}
|
||||
}
|
||||
@@ -697,18 +697,18 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
if (doTrigger()) {
|
||||
onResetFlg0(RFLG0_COW_GAME_LEASH);
|
||||
voiceStart(Z2SE_AL_V_RUSH_HORSE);
|
||||
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
|
||||
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
|
||||
setHorseSwordUpAnime();
|
||||
field_0x3002 = -daAlinkHIO_horse_c0::m.mWhipWaitTime;
|
||||
field_0x3002 = -mpHIO->mHorse.m.mWhipWaitTime;
|
||||
}
|
||||
}
|
||||
} else if (checkHorseDashAccept()) {
|
||||
setDoStatus(9);
|
||||
|
||||
if (doTrigger()) {
|
||||
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
|
||||
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
|
||||
daAlink_ANM anm;
|
||||
const daAlinkHIO_anm_c* anmparam_p = &daAlinkHIO_horse_c0::m.mWhipAnm;
|
||||
const daAlinkHIO_anm_c* anmparam_p = &mpHIO->mHorse.m.mWhipAnm;
|
||||
anm = ANM_HORSE_LASH;
|
||||
|
||||
if (mProcID != PROC_HORSE_CUT && mProcID != PROC_HORSE_CUT_TURN &&
|
||||
@@ -718,7 +718,7 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
}
|
||||
|
||||
setUnderAnimeParam(getMainBckData(anm)->m_underID, UNDER_2,
|
||||
&daAlinkHIO_horse_c0::m.mWhipAnm);
|
||||
&mpHIO->mHorse.m.mWhipAnm);
|
||||
onNoResetFlg1(FLG1_UNK_1000);
|
||||
horse_p->offPlayerBackRideLash();
|
||||
voiceStart(Z2SE_AL_V_RUSH_HORSE);
|
||||
@@ -727,13 +727,13 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
onNoResetFlg1(FLG1_UNK_800);
|
||||
}
|
||||
|
||||
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
|
||||
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((checkHorseWalkStartAnm() &&
|
||||
sp24->getFrame() > daAlinkHIO_horse_c0::m.mHorseWalkStartFrame) ||
|
||||
sp24->getFrame() > mpHIO->mHorse.m.mHorseWalkStartFrame) ||
|
||||
(checkHorseWaitLashAnime() && sp20->getFrame() > 13.0f))
|
||||
{
|
||||
horse_p->onMoveAccept();
|
||||
@@ -749,22 +749,22 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
|
||||
if (checkHorseSwordUpAnime()) {
|
||||
if (checkHorseZeldaBowMode()) {
|
||||
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
|
||||
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
|
||||
field_0x3002 = 0;
|
||||
} else if (field_0x3002 > 0) {
|
||||
field_0x3002--;
|
||||
|
||||
if (field_0x3002 == 0 || horse_p->speedF < horse_p->getNormalMaxSpeedF()) {
|
||||
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
|
||||
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
|
||||
field_0x3002 = 0;
|
||||
}
|
||||
} else {
|
||||
field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation;
|
||||
field_0x30ec = mpHIO->mHorse.m.mSwordUpInterpolation;
|
||||
field_0x3002++;
|
||||
|
||||
if (field_0x3002 == 0) {
|
||||
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
|
||||
field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation;
|
||||
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
|
||||
field_0x30ec = mpHIO->mHorse.m.mSwordUpInterpolation;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -780,7 +780,7 @@ int daAlink_c::setSyncHorse(int param_0) {
|
||||
mProcID != PROC_HORSE_CUT_TURN) ||
|
||||
field_0x2f8c == 10)
|
||||
{
|
||||
if ((var_r28 || field_0x3004 != daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime) && field_0x3004 != 0) {
|
||||
if ((var_r28 || field_0x3004 != mpHIO->mHorse.m.mWalkOutProhibitionTime) && field_0x3004 != 0) {
|
||||
field_0x3004--;
|
||||
}
|
||||
|
||||
@@ -828,8 +828,8 @@ int daAlink_c::setSyncBoar(int param_0) {
|
||||
{
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
|
||||
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
|
||||
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
|
||||
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
|
||||
setSingleAnimeParam(ANM_WSTARTH, &mpHIO->mHorse.m.mWalkOutAnm);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -995,7 +995,7 @@ void daAlink_c::setHorseSwordUp(int param_0) {
|
||||
(!param_0 && checkEnemyGroup(mTargetedActor) && checkNoResetFlg1(FLG1_UNK_800))))
|
||||
{
|
||||
setHorseSwordUpAnime();
|
||||
field_0x3002 = daAlinkHIO_horse_c0::m.mSwordUpTime;
|
||||
field_0x3002 = mpHIO->mHorse.m.mSwordUpTime;
|
||||
}
|
||||
|
||||
offNoResetFlg1(FLG1_UNK_800);
|
||||
@@ -1009,10 +1009,10 @@ int daAlink_c::setRideSubjectAngle(s16 param_0) {
|
||||
if (mTargetedActor != NULL) {
|
||||
var_r30 = 10000;
|
||||
} else {
|
||||
var_r30 = daAlinkHIO_horse_c0::m.mSubjectiveDownwardMaxAngle;
|
||||
var_r30 = mpHIO->mHorse.m.mSubjectiveDownwardMaxAngle;
|
||||
}
|
||||
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, daAlinkHIO_horse_c0::m.mSubjectiveUpwardMaxAngle, var_r30);
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, mpHIO->mHorse.m.mSubjectiveUpwardMaxAngle, var_r30);
|
||||
|
||||
s16 temp_r29 = shape_angle.y - param_0;
|
||||
if (checkHorseZelda()) {
|
||||
@@ -1057,7 +1057,7 @@ BOOL daAlink_c::checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndP
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(daAlinkHIO_wlSlide_c0::m.mSlidingAngle)) {
|
||||
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(mpHIO->mWolf.mWlSlide.m.mSlidingAngle)) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1222,7 +1222,7 @@ int daAlink_c::setHorseGetOff(int param_0) {
|
||||
if ((checkHorseRide() && horse_p->checkEnemySearch()) || checkHorseLieAnime()) {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
procBackJumpInit(0);
|
||||
current.pos.y += daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
|
||||
current.pos.y += mpHIO->mBackJump.m.mBackflipSpeedV;
|
||||
} else {
|
||||
return procHorseGetOffInit(param_0);
|
||||
}
|
||||
@@ -1461,13 +1461,13 @@ int daAlink_c::procHorseRide() {
|
||||
field_0x2fc0 = 0;
|
||||
|
||||
if (checkHorseDashAccept()) {
|
||||
setSingleAnimeParam(ANM_HORSE_LASH, &daAlinkHIO_horse_c0::m.mWhipAnm);
|
||||
setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2, &daAlinkHIO_horse_c0::m.mWhipAnm);
|
||||
setSingleAnimeParam(ANM_HORSE_LASH, &mpHIO->mHorse.m.mWhipAnm);
|
||||
setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2, &mpHIO->mHorse.m.mWhipAnm);
|
||||
onNoResetFlg1(FLG1_UNK_1000);
|
||||
voiceStart(Z2SE_AL_V_RUSH_HORSE);
|
||||
|
||||
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
|
||||
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
|
||||
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
|
||||
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
|
||||
var_r26->onPlayerBackRideLash();
|
||||
}
|
||||
} else if (mProcVar2.field_0x300c == 0 && checkHorseRide()) {
|
||||
@@ -1996,14 +1996,14 @@ int daAlink_c::procHorseCutInit() {
|
||||
field_0x3484 = var_r29->mCutAnm.mCancelFrame;
|
||||
|
||||
if (checkBoarSingleBattle()) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLengthHorsebackFight, daAlinkHIO_cut_c0::m.mSwordRadiusHorsebackFight);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorsebackFight, mpHIO->mCut.m.mSwordRadiusHorsebackFight);
|
||||
} else {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLengthHorseback, daAlinkHIO_cut_c0::m.mSwordRadiusHorseback);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorseback, mpHIO->mCut.m.mSwordRadiusHorseback);
|
||||
}
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3004 = 0;
|
||||
|
||||
@@ -2069,7 +2069,7 @@ int daAlink_c::procHorseCut() {
|
||||
|
||||
int daAlink_c::procHorseCutChargeReadyInit() {
|
||||
commonProcInit(PROC_HORSE_CUT_CHARGE_READY);
|
||||
setUpperAnimeParam(0x96, UPPER_2, &daAlinkHIO_hoCutCharge_c0::m.mChargeAnm);
|
||||
setUpperAnimeParam(0x96, UPPER_2, &mpHIO->mCut.mHorseCutCharge.m.mChargeAnm);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f96 = 2;
|
||||
|
||||
@@ -2078,7 +2078,7 @@ int daAlink_c::procHorseCutChargeReadyInit() {
|
||||
resetUnderAnime(UNDER_2, -1.0f);
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
|
||||
field_0x3004 = 0;
|
||||
onNoResetFlg1(FLG1_UNK_10000000);
|
||||
return 1;
|
||||
@@ -2130,12 +2130,12 @@ int daAlink_c::procHorseCutTurnInit() {
|
||||
resetUnderAnime(UNDER_2, -1.0f);
|
||||
}
|
||||
|
||||
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &daAlinkHIO_hoCutCharge_c0::m.mSpinAnm);
|
||||
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &mpHIO->mCut.mHorseCutCharge.m.mSpinAnm);
|
||||
setCutType(43);
|
||||
setSyncRide(1);
|
||||
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.mSpinAttackRadius;
|
||||
field_0x3478 = mpHIO->mCut.mHorseCutCharge.m.mSpinAttackRadius;
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
|
||||
mProcVar4.field_0x3010 = daAlinkHIO_hoCutCharge_c0::m.mSpinStopTime;
|
||||
mProcVar4.field_0x3010 = mpHIO->mCut.mHorseCutCharge.m.mSpinStopTime;
|
||||
voiceStart(Z2SE_AL_V_KAITEN);
|
||||
setCutWaterDropEffect();
|
||||
setHorseZeldaDamage();
|
||||
@@ -2153,7 +2153,7 @@ int daAlink_c::procHorseCutTurn() {
|
||||
procHorseWaitInit();
|
||||
field_0x2060->initOldFrameMorf(4.0f, 0, 0x23);
|
||||
} else {
|
||||
if (temp_r30->getFrame() > daAlinkHIO_hoCutCharge_c0::m.mSpinAnm.mCancelFrame) {
|
||||
if (temp_r30->getFrame() > mpHIO->mCut.mHorseCutCharge.m.mSpinAnm.mCancelFrame) {
|
||||
if (orderTalk(1)) {
|
||||
return 1;
|
||||
}
|
||||
@@ -2168,7 +2168,7 @@ int daAlink_c::procHorseCutTurn() {
|
||||
}
|
||||
}
|
||||
|
||||
if (temp_r30->getFrame() >= daAlinkHIO_hoCutCharge_c0::m.mSpinAttackStartFrame && temp_r30->getFrame() < daAlinkHIO_hoCutCharge_c0::m.mSpinAttackEndFrame) {
|
||||
if (temp_r30->getFrame() >= mpHIO->mCut.mHorseCutCharge.m.mSpinAttackStartFrame && temp_r30->getFrame() < mpHIO->mCut.mHorseCutCharge.m.mSpinAttackEndFrame) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_KAITENGIRI);
|
||||
}
|
||||
@@ -2201,7 +2201,7 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
|
||||
if (checkUnderMove0BckNoArc(ANM_HORSE_STOP) || checkUnderMove0BckNoArc(ANM_HORSE_STOP_TO_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_B) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_A) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) {
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
setUpperAnimeParam(anmIdx[4], UPPER_2, &daAlinkHIO_damHorse_c0::m.mNoDirectionAnm);
|
||||
setUpperAnimeParam(anmIdx[4], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mNoDirectionAnm);
|
||||
} else {
|
||||
cXyz* temp_r29 = getDamageVec(param_0);
|
||||
|
||||
@@ -2209,11 +2209,11 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
|
||||
f32 temp_f1 = cM_scos(shape_angle.y);
|
||||
cXyz spC((temp_r29->z * -temp_f31) + (temp_r29->x * temp_f1), temp_r29->y, (temp_r29->z * temp_f1) + (temp_r29->x * temp_f31));
|
||||
|
||||
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle);
|
||||
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle);
|
||||
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle);
|
||||
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle);
|
||||
|
||||
int direction = getDirectionFromAngle(cM_atan2s(-spC.x, -spC.z));
|
||||
setUpperAnimeParam(anmIdx[direction], UPPER_2, &daAlinkHIO_damHorse_c0::m.mWithDirectionAnm);
|
||||
setUpperAnimeParam(anmIdx[direction], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mWithDirectionAnm);
|
||||
}
|
||||
|
||||
setFacePriBck(0xEA);
|
||||
@@ -2526,7 +2526,7 @@ int daAlink_c::procHorseBottleDrinkInit(u16 param_0) {
|
||||
mRideAcKeep.getActor()->speedF = 0.0f;
|
||||
}
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_START);
|
||||
|
||||
keepItemData();
|
||||
@@ -2579,7 +2579,7 @@ int daAlink_c::procHorseKandelaarPourInit() {
|
||||
mRideAcKeep.getActor()->speedF = 0.0f;
|
||||
}
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
|
||||
commonKandelaarPourInit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ int daAlink_c::checkMagneBootsFly() {
|
||||
|
||||
int daAlink_c::procBootsEquipInit() {
|
||||
commonProcInit(PROC_BOOTS_EQUIP);
|
||||
setSingleAnimeParam(ANM_HVY_BOOTS_PUT_ON, &daAlinkHIO_magneBoots_c0::m.mEquipAnm);
|
||||
setSingleAnimeParam(ANM_HVY_BOOTS_PUT_ON, &mpHIO->mItem.mIronBoots.m.mEquipAnm);
|
||||
|
||||
if (checkUpperReadyThrowAnime()) {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
@@ -287,7 +287,7 @@ int daAlink_c::procBootsEquip() {
|
||||
}
|
||||
|
||||
offModeFlg(2);
|
||||
} else if (frameCtrl_p->getFrame() > daAlinkHIO_magneBoots_c0::m.mEquipAnm.mCancelFrame) {
|
||||
} else if (frameCtrl_p->getFrame() > mpHIO->mItem.mIronBoots.m.mEquipAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
} else if (frameCtrl_p->getFrame() >= 5.0f) {
|
||||
@@ -338,7 +338,7 @@ int daAlink_c::procMagneBootsFlyInit() {
|
||||
}
|
||||
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x594 = daAlinkHIO_magneBoots_c0::m.mMaxMagneFlySpeed;
|
||||
field_0x594 = mpHIO->mItem.mIronBoots.m.mMaxMagneFlySpeed;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
voiceStart(Z2SE_AL_V_MAGNET_CAUGHT);
|
||||
return 1;
|
||||
@@ -346,7 +346,7 @@ int daAlink_c::procMagneBootsFlyInit() {
|
||||
|
||||
|
||||
int daAlink_c::procMagneBootsFly() {
|
||||
field_0x3478 += daAlinkHIO_magneBoots_c0::m.mMagneFlyAccelRate;
|
||||
field_0x3478 += mpHIO->mItem.mIronBoots.m.mMagneFlyAccelRate;
|
||||
if (field_0x3478 > field_0x594) {
|
||||
field_0x3478 = field_0x594;
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
}
|
||||
}
|
||||
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
|
||||
if (mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
if (mNormalSpeed <= mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
|
||||
return procBoardRowInit();
|
||||
}
|
||||
}
|
||||
@@ -228,9 +228,18 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
}
|
||||
|
||||
void daAlink_c::setCommonBoardAnime(BOOL i_is_ride_front) {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mStandAnmSpeed, 1.0f,
|
||||
i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
|
||||
11, daAlinkHIO_board_c0::m.mStandInterpolation);
|
||||
setDoubleAnime(
|
||||
0.0f,
|
||||
// Fakematch, should be
|
||||
// mpHIO->mItem.mBoard.m.mStandAnmSpeed,
|
||||
daAlinkHIO_board_c0::m.mStandAnmSpeed,
|
||||
1.0f,
|
||||
i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
|
||||
11,
|
||||
// Fakematch, should be
|
||||
// mpHIO->mItem.mBoard.m.mStandInterpolation
|
||||
daAlinkHIO_board_c0::m.mStandInterpolation
|
||||
);
|
||||
}
|
||||
|
||||
int daAlink_c::checkNextActionBoard() {
|
||||
@@ -270,20 +279,20 @@ int daAlink_c::commonProcBoardInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBoardRowAnmSpeed() {
|
||||
return daAlinkHIO_board_c0::m.mPushAnmMinSpeed +
|
||||
((daAlinkHIO_board_c0::m.mPushAnmMaxSpeed - daAlinkHIO_board_c0::m.mPushAnmMinSpeed) *
|
||||
(1.0f - (mNormalSpeed / daAlinkHIO_board_c0::m.mFastPushSwitchSpeed)));
|
||||
return mpHIO->mItem.mBoard.m.mPushAnmMinSpeed +
|
||||
((mpHIO->mItem.mBoard.m.mPushAnmMaxSpeed - mpHIO->mItem.mBoard.m.mPushAnmMinSpeed) *
|
||||
(1.0f - (mNormalSpeed / mpHIO->mItem.mBoard.m.mFastPushSwitchSpeed)));
|
||||
}
|
||||
|
||||
void daAlink_c::setBoardLandAnime() {
|
||||
setSingleAnimeParam(ANM_RIDE_JUMP_LAND, &daAlinkHIO_board_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_RIDE_JUMP_LAND, &mpHIO->mItem.mBoard.m.mLandAnm);
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_LAND);
|
||||
dComIfGp_getVibration().StartShock(2, 15, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
|
||||
int daAlink_c::procBoardRideInit() {
|
||||
commonProcInit(PROC_BOARD_RIDE);
|
||||
setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation);
|
||||
setSingleAnime(ANM_VJUMP_START, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mSpeed, 6.0f, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mEndFrame, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mInterpolation);
|
||||
setHeavyBoots(0);
|
||||
|
||||
if (mEquipItem != 0x103) {
|
||||
@@ -355,17 +364,17 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) {
|
||||
((daObjIceLeaf_c*)i_board)->onRide();
|
||||
|
||||
if (prev_ride) {
|
||||
f32 speed_ratio = mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
f32 speed_ratio = mNormalSpeed / mpHIO->mMove.m.mMaxSpeed;
|
||||
if (speed_ratio > 1.0f) {
|
||||
speed_ratio = 1.0f;
|
||||
}
|
||||
|
||||
mNormalSpeed = daAlinkHIO_board_c0::m.mStartMinSpeed + (daAlinkHIO_board_c0::m.mStartAddSpeed * speed_ratio);
|
||||
mNormalSpeed = mpHIO->mItem.mBoard.m.mStartMinSpeed + (mpHIO->mItem.mBoard.m.mStartAddSpeed * speed_ratio);
|
||||
} else {
|
||||
mNormalSpeed = 0.0f;
|
||||
}
|
||||
|
||||
field_0x594 = daAlinkHIO_board_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mItem.mBoard.m.mMaxSpeed;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
setCommonBoardAnime(FALSE);
|
||||
@@ -394,7 +403,7 @@ int daAlink_c::procBoardWait() {
|
||||
|
||||
mProcVar1.mBoardSwordChargeTime++;
|
||||
|
||||
if (mProcVar1.mBoardSwordChargeTime == daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
|
||||
if (mProcVar1.mBoardSwordChargeTime == mpHIO->mCut.m.mNormalSwingDuration) {
|
||||
setSwordVoiceSe(Z2SE_AL_V_TAME);
|
||||
}
|
||||
|
||||
@@ -424,7 +433,7 @@ int daAlink_c::procBoardWait() {
|
||||
blend_ratio = 0.0f;
|
||||
}
|
||||
|
||||
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, daAlinkHIO_board_c0::m.mSitInterpolation);
|
||||
setDoubleAnime(0.0f, mpHIO->mItem.mBoard.m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, mpHIO->mItem.mBoard.m.mSitInterpolation);
|
||||
setDoubleAnimeBlendRatio(blend_ratio);
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
@@ -453,7 +462,7 @@ int daAlink_c::procBoardWait() {
|
||||
|
||||
int daAlink_c::procBoardRowInit() {
|
||||
commonProcInit(PROC_BOARD_ROW);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), mpHIO->mItem.mBoard.m.mPushInterpolation);
|
||||
onResetFlg1(RFLG1_UNK_40);
|
||||
mProcVar0.field_0x3008 = 4;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
@@ -475,17 +484,17 @@ int daAlink_c::procBoardRow() {
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (frame_ctrl->checkPass(0.0f)) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
} else {
|
||||
setCommonBoardAnime(FALSE);
|
||||
procBoardWaitInit(NULL);
|
||||
}
|
||||
} else if (frame_ctrl->checkPass(7.0f)) {
|
||||
mNormalSpeed += daAlinkHIO_board_c0::m.mPushAccel;
|
||||
mNormalSpeed += mpHIO->mItem.mBoard.m.mPushAccel;
|
||||
|
||||
if (mNormalSpeed > daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
mNormalSpeed = daAlinkHIO_board_c0::m.mMaxPushSpeed;
|
||||
if (mNormalSpeed > mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
|
||||
mNormalSpeed = mpHIO->mItem.mBoard.m.mMaxPushSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -495,7 +504,7 @@ int daAlink_c::procBoardRow() {
|
||||
|
||||
int daAlink_c::procBoardTurnInit() {
|
||||
commonProcInit(PROC_BOARD_TURN);
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, 3.0f);
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, 3.0f);
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
mProcVar4.field_0x3010 = shape_angle.y + 0x8000;
|
||||
@@ -512,7 +521,7 @@ int daAlink_c::procBoardTurn() {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
}
|
||||
} else if (mProcVar1.field_0x300a == 0) {
|
||||
if (mUnderFrameCtrl[0].checkPass(6.0f)) {
|
||||
@@ -541,12 +550,12 @@ int daAlink_c::procBoardJumpInit(f32 i_jump_speed, BOOL i_no_speed_set) {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mInterpolation);
|
||||
|
||||
if (!i_no_speed_set) {
|
||||
speed.y = cLib_minMaxLimit(i_jump_speed, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
speed.y = cLib_minMaxLimit(i_jump_speed, mpHIO->mItem.mBoard.m.mMinJumpSpeedY, mpHIO->mItem.mBoard.m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
@@ -564,9 +573,9 @@ int daAlink_c::procBoardJump() {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else if (mProcVar5.field_0x3012 != 0 && mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.0099999998f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
setSingleAnime(ANM_RIDE_JUMP, mpHIO->mItem.mBoard.m.mAirborneAnm.mSpeed,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
|
||||
-1.0f);
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
@@ -608,7 +617,7 @@ int daAlink_c::procBoardCutInit() {
|
||||
|
||||
bool cut_charge = false;
|
||||
if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) {
|
||||
if (mUnderFrameCtrl[0].getFrame() > daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
|
||||
if (mUnderFrameCtrl[0].getFrame() > mpHIO->mCut.m.mNormalSwingDuration) {
|
||||
cut_charge = true;
|
||||
}
|
||||
}
|
||||
@@ -635,10 +644,10 @@ int daAlink_c::procBoardCut() {
|
||||
|
||||
int daAlink_c::procBoardCutTurnInit() {
|
||||
commonProcBoardInit(PROC_BOARD_CUT_TURN);
|
||||
setSingleAnimeParam(ANM_RIDE_CUT_TURN, &daAlinkHIO_board_c0::m.mSpinAnm);
|
||||
setSingleAnimeParam(ANM_RIDE_CUT_TURN, &mpHIO->mItem.mBoard.m.mSpinAnm);
|
||||
|
||||
if (daAlinkHIO_board_c0::m.mSpinAnm.mStartFrame >= 3.0f) {
|
||||
speed.y = cLib_minMaxLimit<f32>(mNormalSpeed * -cM_ssin(shape_angle.x), daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY, daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY);
|
||||
if (mpHIO->mItem.mBoard.m.mSpinAnm.mStartFrame >= 3.0f) {
|
||||
speed.y = cLib_minMaxLimit<f32>(mNormalSpeed * -cM_ssin(shape_angle.x), mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY, mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY);
|
||||
if (!checkModeFlg(2)) {
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
|
||||
}
|
||||
@@ -653,7 +662,7 @@ int daAlink_c::procBoardCutTurnInit() {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
resetCombo(1);
|
||||
|
||||
field_0x3478 = daAlinkHIO_cutTurn_c0::m.mAttackRadius;
|
||||
field_0x3478 = mpHIO->mCut.mCutTurn.m.mAttackRadius;
|
||||
field_0x347c = 0.5f * field_0x3478;
|
||||
initCutTurnAt(field_0x347c, 3);
|
||||
|
||||
@@ -691,10 +700,10 @@ int daAlink_c::procBoardCutTurn() {
|
||||
if (frame_ctrl->getFrame() >= 3.0f) {
|
||||
speed.y = mNormalSpeed * -cM_ssin(shape_angle.x);
|
||||
|
||||
if (speed.y < daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY) {
|
||||
speed.y = daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY;
|
||||
} else if (speed.y > daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY) {
|
||||
speed.y = daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY;
|
||||
if (speed.y < mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY) {
|
||||
speed.y = mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY;
|
||||
} else if (speed.y > mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY) {
|
||||
speed.y = mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY;
|
||||
}
|
||||
|
||||
setJumpMode();
|
||||
|
||||
@@ -43,8 +43,8 @@ bool daAlink_c::checkIronBallGroundStop() const {
|
||||
void daAlink_c::setIronBallWaitUpperAnime(int param_0) {
|
||||
if (!checkIronBallWaitAnime() && !checkIronBallPreSwingAnime() &&
|
||||
(mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) {
|
||||
setUpperAnimeBaseSpeed(0x19C, daAlinkHIO_ironBall_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setUpperAnimeBaseSpeed(0x19C, mpHIO->mItem.mIronBall.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f96 = 254;
|
||||
field_0x2f97 = 5;
|
||||
@@ -118,7 +118,7 @@ void daAlink_c::setIronBallModel() {
|
||||
field_0xFB8.SetAtSe(dCcD_SE_HAMMER);
|
||||
field_0xFB8.SetAtAtp(2);
|
||||
field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE);
|
||||
field_0xFB8.SetR(daAlinkHIO_ironBall_c0::m.mAttackRadius);
|
||||
field_0xFB8.SetR(mpHIO->mItem.mIronBall.m.mAttackRadius);
|
||||
|
||||
csXyz* var_r28 = mIronBallChainAngle;
|
||||
for (int i = 0; i < 102; i++, var_r28++) {
|
||||
@@ -224,7 +224,7 @@ void daAlink_c::setIronBallChainPos() {
|
||||
sp28C = *var_r29;
|
||||
*var_r29 = *var_r27 + (sp2A4 * 10.0f);
|
||||
|
||||
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
|
||||
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
|
||||
var_r27 = var_r29;
|
||||
}
|
||||
} else if (mItemVar0.field_0x3018 == 7) {
|
||||
@@ -232,20 +232,20 @@ void daAlink_c::setIronBallChainPos() {
|
||||
var_r26 = &field_0x3848[mItemMode];
|
||||
var_r27 = var_r29 + 1;
|
||||
|
||||
sp38 = mItemMode * daAlinkHIO_ironBall_c0::m.mReturnChainRate;
|
||||
sp38 = mItemMode * mpHIO->mItem.mIronBall.m.mReturnChainRate;
|
||||
sp34 = sp38;
|
||||
|
||||
for (i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
|
||||
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
|
||||
|
||||
if (i == 0) {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnBallGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnBallGravity;
|
||||
} else {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
|
||||
}
|
||||
|
||||
if (sp38 >= 0) {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnChainAccelY;
|
||||
sp38--;
|
||||
}
|
||||
|
||||
@@ -271,9 +271,9 @@ void daAlink_c::setIronBallChainPos() {
|
||||
for (i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
|
||||
sp28C = *var_r29;
|
||||
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
|
||||
if (i >= mItemMode - sp34) {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnChainAccelY;
|
||||
}
|
||||
|
||||
sp280 = sp2A4;
|
||||
@@ -286,7 +286,7 @@ void daAlink_c::setIronBallChainPos() {
|
||||
}
|
||||
|
||||
var_r27 = var_r29;
|
||||
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
|
||||
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
|
||||
}
|
||||
} else if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4) {
|
||||
daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[0];
|
||||
@@ -304,8 +304,8 @@ void daAlink_c::setIronBallChainPos() {
|
||||
sp38 = 1000;
|
||||
} else if (mItemVar0.field_0x3018 == 4) {
|
||||
Vec sp268 = {0.0f, 0.0f, 0.0f};
|
||||
sp268.y = daAlinkHIO_ironBall_c0::m.mThrowChainAccelY;
|
||||
sp268.z = daAlinkHIO_ironBall_c0::m.mThrowChainAccelZ;
|
||||
sp268.y = mpHIO->mItem.mIronBall.m.mThrowChainAccelY;
|
||||
sp268.z = mpHIO->mItem.mIronBall.m.mThrowChainAccelZ;
|
||||
|
||||
mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
|
||||
mDoMtx_stack_c::multVec(&sp268, &sp298);
|
||||
@@ -324,9 +324,9 @@ void daAlink_c::setIronBallChainPos() {
|
||||
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
|
||||
|
||||
if (i == 0) {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mBallGravity;
|
||||
} else {
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
|
||||
}
|
||||
|
||||
if (sp38 >= 0) {
|
||||
@@ -343,12 +343,12 @@ void daAlink_c::setIronBallChainPos() {
|
||||
*var_r29 = *var_r27 + (sp280 * 10.0f);
|
||||
}
|
||||
|
||||
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
|
||||
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
|
||||
var_r27 = var_r29;
|
||||
}
|
||||
|
||||
sp2A4 = mIronBallCenterPos - *mIronBallChainPos;
|
||||
sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
|
||||
sp2A4.y += mpHIO->mItem.mIronBall.m.mBallGravity;
|
||||
|
||||
if (sp38 >= 0) {
|
||||
sp2A4 += sp298;
|
||||
@@ -359,9 +359,9 @@ void daAlink_c::setIronBallChainPos() {
|
||||
} else {
|
||||
f32 var_f30;
|
||||
if (mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5) {
|
||||
var_f30 = daAlinkHIO_ironBall_c0::m.mThrowChainGravity;
|
||||
var_f30 = mpHIO->mItem.mIronBall.m.mThrowChainGravity;
|
||||
} else {
|
||||
var_f30 = daAlinkHIO_ironBall_c0::m.mChainGravity;
|
||||
var_f30 = mpHIO->mItem.mIronBall.m.mChainGravity;
|
||||
}
|
||||
|
||||
var_r29 = mIronBallChainPos + 1;
|
||||
@@ -410,7 +410,7 @@ void daAlink_c::setIronBallChainPos() {
|
||||
}
|
||||
|
||||
var_r27 = var_r29;
|
||||
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
|
||||
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,10 +534,10 @@ void daAlink_c::setIronBallPos() {
|
||||
|
||||
if (!checkIronBallReturnChange()) {
|
||||
f32 var_f29;
|
||||
f32 var_f28 = daAlinkHIO_ironBall_c0::m.mBallMaxFallSpeed;
|
||||
f32 var_f28 = mpHIO->mItem.mIronBall.m.mBallMaxFallSpeed;
|
||||
|
||||
if (mItemVar0.field_0x3018 == 5) {
|
||||
var_f29 = daAlinkHIO_ironBall_c0::m.mThrowBallGravity;
|
||||
var_f29 = mpHIO->mItem.mIronBall.m.mThrowBallGravity;
|
||||
|
||||
f32 sp1C;
|
||||
if (fopAcM_getWaterY(mIronBallChainPos, &sp1C) && sp1C > mIronBallChainPos->y) {
|
||||
@@ -549,12 +549,12 @@ void daAlink_c::setIronBallPos() {
|
||||
var_f28 *= 0.5f;
|
||||
}
|
||||
} else {
|
||||
var_f29 = daAlinkHIO_ironBall_c0::m.mBallGravity;
|
||||
var_f29 = mpHIO->mItem.mIronBall.m.mBallGravity;
|
||||
}
|
||||
|
||||
sp10C = mIronBallCenterPos + (*field_0x3848 * 1.25f);
|
||||
|
||||
s16 temp_r27 = daAlinkHIO_ironBall_c0::m.mThrowChainNum + 0.1f * mIronBallChainPos->abs(mHookshotTopPos);
|
||||
s16 temp_r27 = mpHIO->mItem.mIronBall.m.mThrowChainNum + 0.1f * mIronBallChainPos->abs(mHookshotTopPos);
|
||||
if (temp_r27 > 100) {
|
||||
mItemMode = 100;
|
||||
} else if (mItemMode < temp_r27) {
|
||||
@@ -700,7 +700,7 @@ void daAlink_c::setIronBallPos() {
|
||||
mItemVar0.field_0x3018 = 6;
|
||||
} else if (field_0x3494 < 0.0f) {
|
||||
setIronBallReturn(0);
|
||||
} else if (field_0x3848->y < daAlinkHIO_ironBall_c0::m.field_0x6C) {
|
||||
} else if (field_0x3848->y < mpHIO->mItem.mIronBall.m.field_0x6C) {
|
||||
setIronBallReturn(1);
|
||||
}
|
||||
} else if (mItemVar0.field_0x3018 == 6 && var_r26 != 0) {
|
||||
@@ -713,9 +713,9 @@ void daAlink_c::setIronBallPos() {
|
||||
f32 sp18;
|
||||
int var_r22;
|
||||
if (fopAcM_getWaterY(mIronBallChainPos, &sp18) && sp18 > mIronBallChainPos->y) {
|
||||
var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum - 1;
|
||||
var_r22 = mpHIO->mItem.mIronBall.m.mReturnChainRemoveNum - 1;
|
||||
} else {
|
||||
var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum;
|
||||
var_r22 = mpHIO->mItem.mIronBall.m.mReturnChainRemoveNum;
|
||||
}
|
||||
|
||||
if (mItemMode > 6) {
|
||||
@@ -810,9 +810,9 @@ BOOL daAlink_c::checkIronBallAnime() const {
|
||||
|
||||
void daAlink_c::setIronBallReadyAnime() {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
setSingleAnime(ANM_IRONBALL_ATTACK, daAlinkHIO_ironBall_c0::m.mPrepareAnmSpeed, 0.0f,
|
||||
0x15, daAlinkHIO_ironBall_c0::m.mPrepareInterpolation);
|
||||
setUpperAnimeBaseSpeed(0x19A, daAlinkHIO_ironBall_c0::m.mPrepareAnmSpeed, -1.0f);
|
||||
setSingleAnime(ANM_IRONBALL_ATTACK, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, 0.0f,
|
||||
0x15, mpHIO->mItem.mIronBall.m.mPrepareInterpolation);
|
||||
setUpperAnimeBaseSpeed(0x19A, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, -1.0f);
|
||||
mNowAnmPackUpper[2].setRatio(0.0f);
|
||||
voiceStart(Z2SE_AL_V_SWING_IB);
|
||||
|
||||
@@ -828,7 +828,7 @@ void daAlink_c::setIronBallReadyAnime() {
|
||||
|
||||
void daAlink_c::setIronBallBaseAnime() {
|
||||
if (checkIronBallSwingAnime() && !checkUnderMove0BckNoArc(ANM_IRONBALL_TURN)) {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
|
||||
mUnderFrameCtrl[0].setFrame(mUpperFrameCtrl[2].getFrame());
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(mUpperFrameCtrl[2].getFrame());
|
||||
}
|
||||
@@ -847,11 +847,11 @@ BOOL daAlink_c::checkUpperItemActionIronBall() {
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (checkModeFlg(1)) {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
|
||||
}
|
||||
|
||||
u16 upperId = getMainBckData(ANM_IRONBALL_TURN)->m_upperID;
|
||||
setUpperAnimeBaseSpeed(upperId, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
|
||||
setUpperAnimeBaseSpeed(upperId, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
|
||||
mItemVar0.field_0x3018 = 2;
|
||||
seStartOnlyReverb(Z2SE_AL_IB_SWING);
|
||||
return 1;
|
||||
@@ -960,7 +960,7 @@ int daAlink_c::procIronBallMove() {
|
||||
|
||||
if (field_0x2f98 != 2) {
|
||||
field_0x2f98 = 2;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -980,7 +980,7 @@ int daAlink_c::procIronBallMove() {
|
||||
|
||||
int daAlink_c::procIronBallThrowInit() {
|
||||
commonProcInit(PROC_IRON_BALL_THROW);
|
||||
setSingleAnime(ANM_IRONBALL_ATTACK, daAlinkHIO_ironBall_c0::m.mPreThrowAnmSpeed, 22.0f, 30, daAlinkHIO_ironBall_c0::m.mPreThrowAnmInterpolation);
|
||||
setSingleAnime(ANM_IRONBALL_ATTACK, mpHIO->mItem.mIronBall.m.mPreThrowAnmSpeed, 22.0f, 30, mpHIO->mItem.mIronBall.m.mPreThrowAnmInterpolation);
|
||||
field_0x2f99 = 12;
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -1013,7 +1013,7 @@ int daAlink_c::procIronBallThrow() {
|
||||
mItemVar0.field_0x3018 = 5;
|
||||
mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
|
||||
|
||||
Vec sp8 = {0.0f, daAlinkHIO_ironBall_c0::m.mThrowSpeedY, daAlinkHIO_ironBall_c0::m.mThrowSpeedZ};
|
||||
Vec sp8 = {0.0f, mpHIO->mItem.mIronBall.m.mThrowSpeedY, mpHIO->mItem.mIronBall.m.mThrowSpeedZ};
|
||||
mDoMtx_stack_c::multVec(&sp8, field_0x3848);
|
||||
field_0x3022 = 0;
|
||||
}
|
||||
@@ -1021,7 +1021,7 @@ int daAlink_c::procIronBallThrow() {
|
||||
if (checkAnmEnd(temp_r29)) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, daAlinkHIO_ironBall_c0::m.mThrowAnmSpeed, daAlinkHIO_ironBall_c0::m.mThrowInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, mpHIO->mItem.mIronBall.m.mThrowAnmSpeed, mpHIO->mItem.mIronBall.m.mThrowInterpolation);
|
||||
field_0x2f99 = 0xC;
|
||||
mItemVar0.field_0x3018 = 4;
|
||||
} else if (mItemVar0.field_0x3018 == 7) {
|
||||
@@ -1042,10 +1042,10 @@ int daAlink_c::procIronBallReturnInit() {
|
||||
|
||||
if (mItemVar0.field_0x3018 == 8) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &mpHIO->mItem.mIronBall.m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, daAlinkHIO_ironBall_c0::m.mPullAnmSpeed, daAlinkHIO_ironBall_c0::m.mPullInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, mpHIO->mItem.mIronBall.m.mPullAnmSpeed, mpHIO->mItem.mIronBall.m.mPullInterpolation);
|
||||
field_0x2f99 = 12;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
@@ -1065,7 +1065,7 @@ int daAlink_c::procIronBallReturn() {
|
||||
|
||||
if (mItemVar0.field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &mpHIO->mItem.mIronBall.m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
|
||||
|
||||
@@ -1076,7 +1076,7 @@ int daAlink_c::procIronBallReturn() {
|
||||
setIronBallWaitUpperAnime(1);
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (mItemVar0.field_0x3018 == 8 && frameCtrl->getFrame() > daAlinkHIO_ironBall_c0::m.mCatchAnm.mCancelFrame) {
|
||||
} else if (mItemVar0.field_0x3018 == 8 && frameCtrl->getFrame() > mpHIO->mItem.mIronBall.m.mCatchAnm.mCancelFrame) {
|
||||
mItemVar0.field_0x3018 = 0;
|
||||
setIronBallWaitUpperAnime(1);
|
||||
|
||||
|
||||
@@ -164,15 +164,15 @@ void daAlink_c::preKandelaarDraw() {
|
||||
J3DMaterial* mat_p = mpKanteraGlowModel->getModelData()->getMaterialNodePointer(0);
|
||||
|
||||
J3DGXColorS10 color;
|
||||
color.r = daAlinkHIO_kandelaar_c0::m.mColorReg1R;
|
||||
color.g = daAlinkHIO_kandelaar_c0::m.mColorReg1G;
|
||||
color.b = daAlinkHIO_kandelaar_c0::m.mColorReg1B;
|
||||
color.r = mpHIO->mItem.mLantern.m.mColorReg1R;
|
||||
color.g = mpHIO->mItem.mLantern.m.mColorReg1G;
|
||||
color.b = mpHIO->mItem.mLantern.m.mColorReg1B;
|
||||
color.a = 255;
|
||||
mat_p->setTevColor(1, &color);
|
||||
|
||||
color.r = daAlinkHIO_kandelaar_c0::m.mColorReg2R;
|
||||
color.g = daAlinkHIO_kandelaar_c0::m.mColorReg2G;
|
||||
color.b = daAlinkHIO_kandelaar_c0::m.mColorReg2B;
|
||||
color.r = mpHIO->mItem.mLantern.m.mColorReg2R;
|
||||
color.g = mpHIO->mItem.mLantern.m.mColorReg2G;
|
||||
color.b = mpHIO->mItem.mLantern.m.mColorReg2B;
|
||||
mat_p->setTevColor(2, &color);
|
||||
|
||||
cXyz proj;
|
||||
@@ -293,10 +293,10 @@ int daAlink_c::commonKandelaarPour(int param_0) {
|
||||
} else if (simpleAnmPlay(field_0x0720)) {
|
||||
if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_END)->m_upperID, UPPER_2,
|
||||
&daAlinkHIO_kandelaar_c0::m.mEndUnkAnm);
|
||||
&mpHIO->mItem.mLantern.m.mEndUnkAnm);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_END,
|
||||
&daAlinkHIO_kandelaar_c0::m.mEndUnkAnm);
|
||||
&mpHIO->mItem.mLantern.m.mEndUnkAnm);
|
||||
}
|
||||
|
||||
field_0x072c->setFrame(2.0f);
|
||||
@@ -331,7 +331,7 @@ void daAlink_c::initKandelaarSwing() {
|
||||
field_0xFB8.ResetAtHit();
|
||||
|
||||
if (!checkEventRun()) {
|
||||
dComIfGp_setItemOilCount(-daAlinkHIO_kandelaar_c0::m.mShakeOilLoss);
|
||||
dComIfGp_setItemOilCount(-mpHIO->mItem.mLantern.m.mShakeOilLoss);
|
||||
}
|
||||
|
||||
field_0xFB8.OffAtSetBit();
|
||||
@@ -368,13 +368,13 @@ int daAlink_c::procKandelaarSwingInit() {
|
||||
(checkStageName("F_SP108") &&
|
||||
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchTagKtOnFire, NULL) != NULL))
|
||||
{
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingDownAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingDownAnm.mCancelFrame;
|
||||
field_0x347c = 5.0f;
|
||||
field_0x3480 = 12.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_LANTERN_SWING, &daAlinkHIO_kandelaar_c0::m.mShakeAnm);
|
||||
field_0x3478 = daAlinkHIO_kandelaar_c0::m.mShakeAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_LANTERN_SWING, &mpHIO->mItem.mLantern.m.mShakeAnm);
|
||||
field_0x3478 = mpHIO->mItem.mLantern.m.mShakeAnm.mCancelFrame;
|
||||
field_0x347c = 4.0f;
|
||||
field_0x3480 = 11.0f;
|
||||
}
|
||||
@@ -411,7 +411,7 @@ int daAlink_c::procKandelaarPourInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_START, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
|
||||
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_START, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
|
||||
commonKandelaarPourInit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_canoe.h"
|
||||
#include "d/actor/d_a_kytag05.h"
|
||||
#include "d/actor/d_a_tag_mstop.h"
|
||||
#include "d/actor/d_a_tag_mhint.h"
|
||||
|
||||
@@ -131,10 +132,10 @@ BOOL daAlink_c::setBodyAngleToCamera() {
|
||||
if (!dComIfGp_checkPlayerStatus0(0, 0x202000) && mEquipItem == fpcNm_ITEM_IRONBALL) {
|
||||
var_r29 = -10000;
|
||||
} else {
|
||||
var_r29 = daAlinkHIO_item_c0::m.mItemFPUpMaxUnk;
|
||||
var_r29 = mpHIO->mItem.m.mItemFPUpMaxUnk;
|
||||
}
|
||||
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)sp8, var_r29, daAlinkHIO_item_c0::m.mItemFPMaxUnk);
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)sp8, var_r29, mpHIO->mItem.m.mItemFPMaxUnk);
|
||||
checkBodyAngleX(mBodyAngle.x);
|
||||
field_0x310a = mBodyAngle.x;
|
||||
field_0x310c = shape_angle.y;
|
||||
@@ -240,11 +241,11 @@ int daAlink_c::procCoSwimSubjectivityInit() {
|
||||
setSubjectMode();
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlSwim_c0::m.mIdleAnmSpeedWeak,
|
||||
daAlinkHIO_wlSwim_c0::m.mIdleInterp);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlSwim.m.mIdleAnmSpeedWeak,
|
||||
mpHIO->mWolf.mWlSwim.m.mIdleInterp);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
|
||||
mpHIO->mSwim.m.mWaitInterpolation);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
|
||||
@@ -7,51 +7,51 @@
|
||||
#include "d/actor/d_a_spinner.h"
|
||||
|
||||
f32 daAlink_c::getSpinnerGravity() const {
|
||||
return daAlinkHIO_spinner_c0::m.mGravity;
|
||||
return mpHIO->mItem.mSpinner.m.mGravity;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerMaxFallSpeed() const {
|
||||
return daAlinkHIO_spinner_c0::m.mMaxFallSpeed;
|
||||
return mpHIO->mItem.mSpinner.m.mMaxFallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerJumpRate() const {
|
||||
return daAlinkHIO_spinner_c0::m.mJumpRate;
|
||||
return mpHIO->mItem.mSpinner.m.mJumpRate;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getSpinnerRideMoveTime() {
|
||||
if (checkLv4BossRoom()) {
|
||||
return daAlinkHIO_spinner_c0::m.mBossRideMoveTime;
|
||||
return mpHIO->mItem.mSpinner.m.mBossRideMoveTime;
|
||||
}
|
||||
|
||||
return daAlinkHIO_spinner_c0::m.mRideMoveTime;
|
||||
return mpHIO->mItem.mSpinner.m.mRideMoveTime;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerRideSpeedF() {
|
||||
if (checkLv4BossRoom()) {
|
||||
return daAlinkHIO_spinner_c0::m.mBossRideSpeed;
|
||||
return mpHIO->mItem.mSpinner.m.mBossRideSpeed;
|
||||
}
|
||||
|
||||
return daAlinkHIO_spinner_c0::m.mRideSpeed;
|
||||
return mpHIO->mItem.mSpinner.m.mRideSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerRideDecSpeedMax() const {
|
||||
return daAlinkHIO_spinner_c0::m.mDecelSpeedMax;
|
||||
return mpHIO->mItem.mSpinner.m.mDecelSpeedMax;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerRideDecSpeedMin() const {
|
||||
return daAlinkHIO_spinner_c0::m.mDecelSpeedMin;
|
||||
return mpHIO->mItem.mSpinner.m.mDecelSpeedMin;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSpinnerRideDecSpeedRate() const {
|
||||
return daAlinkHIO_spinner_c0::m.mDecelRate;
|
||||
return mpHIO->mItem.mSpinner.m.mDecelRate;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getSpinnerRideRotAngleMax() const {
|
||||
return daAlinkHIO_spinner_c0::m.mRideRotAngleMax;
|
||||
return mpHIO->mItem.mSpinner.m.mRideRotAngleMax;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getSpinnerRideRotAngleMin() const {
|
||||
return daAlinkHIO_spinner_c0::m.mRideRotAngleMin;
|
||||
return mpHIO->mItem.mSpinner.m.mRideRotAngleMin;
|
||||
}
|
||||
|
||||
void daAlink_c::onSpinnerPathForceRemove() {
|
||||
@@ -106,9 +106,9 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
|
||||
commonProcInit(PROC_SPINNER_READY);
|
||||
mRideAcKeep.setData(spinner);
|
||||
setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f,
|
||||
daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame,
|
||||
daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation);
|
||||
setSingleAnime(ANM_VJUMP_START, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mSpeed, 6.0f,
|
||||
mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mInterpolation);
|
||||
mNormalSpeed = 0.0f;
|
||||
setHeavyBoots(0);
|
||||
|
||||
@@ -161,7 +161,7 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
|
||||
mRideStatus = 5;
|
||||
setBgCheckParam();
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed, 4.0f);
|
||||
speed.y = 0.0f;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -185,7 +185,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
checkEndResetFlg1(ERFLG1_UNK_1) || checkEndResetFlg0(ERFLG0_UNK_2)) {
|
||||
mNormalSpeed = 0.0f;
|
||||
setJumpMode();
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
if (spinner->checkSpinnerTagEnd()) {
|
||||
@@ -218,7 +218,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
setJumpMode();
|
||||
mNormalSpeed = 0.0f;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
@@ -240,8 +240,8 @@ int daAlink_c::procSpinnerWait() {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
|
||||
if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed,
|
||||
daAlinkHIO_board_c0::m.mFastPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed,
|
||||
mpHIO->mItem.mBoard.m.mFastPushInterpolation);
|
||||
field_0x3198 = ANM_RIDE_KICK;
|
||||
fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0);
|
||||
}
|
||||
@@ -254,32 +254,32 @@ int daAlink_c::procSpinnerWait() {
|
||||
|
||||
if ((field_0x3198 == ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) ||
|
||||
(field_0x3198 != ANM_RIDE_KICK && field_0x3198 != ANM_RIDE_WAIT)) {
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_WAIT, daAlinkHIO_board_c0::m.mStandAnmSpeed,
|
||||
daAlinkHIO_board_c0::m.mStandInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_WAIT, mpHIO->mItem.mBoard.m.mStandAnmSpeed,
|
||||
mpHIO->mItem.mBoard.m.mStandInterpolation);
|
||||
field_0x3198 = ANM_RIDE_WAIT;
|
||||
}
|
||||
} else if (spinner->getButtonJump() && field_0x3198 != ANM_RIDE_JUMP) {
|
||||
field_0x3198 = ANM_RIDE_JUMP;
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mInterpolation);
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
} else if (field_0x3198 == ANM_RIDE_JUMP) {
|
||||
if (!spinner->getJumpFlg()) {
|
||||
setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mInterpolation);
|
||||
setSingleAnime(ANM_RIDE_JUMP_LAND, mpHIO->mItem.mBoard.m.mLandAnm.mSpeed,
|
||||
mpHIO->mItem.mBoard.m.mLandAnm.mStartFrame, 16,
|
||||
mpHIO->mItem.mBoard.m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = ANM_RIDE_JUMP_LAND;
|
||||
} else if (mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
setSingleAnime(ANM_RIDE_JUMP, mpHIO->mItem.mBoard.m.mAirborneAnm.mSpeed,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
|
||||
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
}
|
||||
} else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) ||
|
||||
(field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) {
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed,
|
||||
daAlinkHIO_board_c0::m.mSitInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed,
|
||||
mpHIO->mItem.mBoard.m.mSitInterpolation);
|
||||
field_0x3198 = ANM_RIDE_CROUCH;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ int daAlink_c::procSumouMove() {
|
||||
if (mSpeedModifier > 0.0f && checkInputOnR()) {
|
||||
int direction = getDirectionFromAngle(mStickAngle);
|
||||
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
|
||||
var_r31 = field_0x33ac * (daAlinkHIO_pushpull_c0::m.mSumoRotationAngle * field_0x33ac);
|
||||
var_r31 = field_0x33ac * (mpHIO->mPushpull.m.mSumoRotationAngle * field_0x33ac);
|
||||
|
||||
if (direction == DIR_RIGHT) {
|
||||
var_r31 = -var_r31;
|
||||
@@ -317,7 +317,7 @@ int daAlink_c::procSumouSideMoveInit() {
|
||||
mSpecialMode = 0x16;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_SUMOU_FIGHT_WAIT);
|
||||
|
||||
field_0x3198 = 0x141;
|
||||
@@ -379,7 +379,7 @@ int daAlink_c::procSumouSideMove() {
|
||||
}
|
||||
|
||||
if (field_0x33ac > (1.0f - fabsf(mNormalSpeed / field_0x594)) * 0.3f) {
|
||||
var_f1 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33ac;
|
||||
var_f1 = mpHIO->mAtnMove.m.mAcceleration * field_0x33ac;
|
||||
} else {
|
||||
var_f1 = 0.0f;
|
||||
}
|
||||
@@ -387,7 +387,7 @@ int daAlink_c::procSumouSideMove() {
|
||||
var_f1 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f1, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f1, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
|
||||
+108
-108
@@ -31,25 +31,25 @@ bool daAlink_c::getZoraSwim() const {
|
||||
|
||||
f32 daAlink_c::getSwimFrontMaxSpeed() const {
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
return daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
|
||||
return mpHIO->mSwim.m.mUnderwaterFallMaxSpeed;
|
||||
} else if (checkZoraWearAbility()) {
|
||||
return 14.0f;
|
||||
} else if (checkSwimDashMode()) {
|
||||
return daAlinkHIO_swim_c0::m.mDashMaxSpeed;
|
||||
return mpHIO->mSwim.m.mDashMaxSpeed;
|
||||
} else {
|
||||
return daAlinkHIO_swim_c0::m.mForwardMaxSpeed;
|
||||
return mpHIO->mSwim.m.mForwardMaxSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getSwimMaxFallSpeed() const {
|
||||
if (mProcID == PROC_DIVE_JUMP) {
|
||||
return -daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
|
||||
return -mpHIO->mSwim.m.mUnderwaterMaxSpeed;
|
||||
} else if (checkBootsOrArmorHeavy()) {
|
||||
return daAlinkHIO_swim_c0::m.mBootsMaxFallSpeed;
|
||||
return mpHIO->mSwim.m.mBootsMaxFallSpeed;
|
||||
} else if (getZoraSwim()) {
|
||||
return daAlinkHIO_swim_c0::m.mMaxFallSpeed;
|
||||
return mpHIO->mSwim.m.mMaxFallSpeed;
|
||||
} else {
|
||||
return daAlinkHIO_swim_c0::m.mStandingMaxFallSpeed;
|
||||
return mpHIO->mSwim.m.mStandingMaxFallSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,9 +105,9 @@ BOOL daAlink_c::checkPossibleWaterInMode() const {
|
||||
void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
if (checkZoraWearAbility()) {
|
||||
i_rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
|
||||
i_rate *= mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
|
||||
} else {
|
||||
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
|
||||
i_rate *= mpHIO->mItem.mIronBoots.m.mWaterStartWalkAnmRate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
var_r29 = field_0x3080;
|
||||
} else {
|
||||
var_r29 = mProcVar2.field_0x300c;
|
||||
start_pos.y += daAlinkHIO_wlWallHang_c0::m.mAutoWalkHeight;
|
||||
start_pos.y += mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight;
|
||||
}
|
||||
|
||||
f32 var_f28 = param_0 * cM_scos(var_r29);
|
||||
@@ -226,7 +226,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
|
||||
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.y, var_r28, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
|
||||
cLib_addCalcAngleS(&shape_angle.y, var_r28, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -235,9 +235,9 @@ void daAlink_c::setSpeedAndAngleSwim() {
|
||||
if (checkInputOnR()) {
|
||||
s16 temp_r29_2 = shape_angle.y;
|
||||
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn);
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
|
||||
}
|
||||
|
||||
f32 var_f29;
|
||||
@@ -271,22 +271,22 @@ void daAlink_c::setSpeedAndAngleSwim() {
|
||||
|
||||
s16 temp_r29_3 = current.angle.y;
|
||||
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn);
|
||||
} else {
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
|
||||
}
|
||||
|
||||
var_f30 = daAlinkHIO_swim_c0::m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
|
||||
var_f30 = mpHIO->mSwim.m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
|
||||
} else {
|
||||
var_f30 = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
f32 var_f28;
|
||||
if (daAlinkHIO_swim_c0::m.mForwardMaxSpeed < mNormalSpeed && !checkZoraWearAbility()) {
|
||||
var_f28 = daAlinkHIO_swim_c0::m.mDashDeceleration;
|
||||
if (mpHIO->mSwim.m.mForwardMaxSpeed < mNormalSpeed && !checkZoraWearAbility()) {
|
||||
var_f28 = mpHIO->mSwim.m.mDashDeceleration;
|
||||
} else {
|
||||
var_f28 = daAlinkHIO_swim_c0::m.mDeceleration;
|
||||
var_f28 = mpHIO->mSwim.m.mDeceleration;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f30, var_f28);
|
||||
@@ -298,7 +298,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
|
||||
if (checkSwimNeckUpDown()) {
|
||||
s16 sp14;
|
||||
if (speed.y >= 0.0f) {
|
||||
var_f31 = -speed.y / daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
|
||||
var_f31 = -speed.y / mpHIO->mSwim.m.mMaxFloatUpSpeed;
|
||||
if (var_f31 < -1.0f) {
|
||||
var_f31 = -1.0f;
|
||||
}
|
||||
@@ -356,10 +356,10 @@ int daAlink_c::checkSwimAction(int param_0) {
|
||||
if (getMoveBGActorName(mLinkAcch.m_gnd, NULL) == PROC_Obj_ITA) {
|
||||
var_f31 = 200.0f;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
}
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && !checkModeFlg(0x40000) && mProcID != PROC_MAGNE_BOOTS_FLY && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) && mDemo.getDemoMode() != 0x11) {
|
||||
@@ -369,12 +369,12 @@ int daAlink_c::checkSwimAction(int param_0) {
|
||||
|
||||
if (checkWolf()) {
|
||||
if (checkWolfDashMode()) {
|
||||
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeed;
|
||||
var_f29 = mpHIO->mWolf.mWlSwim.m.mMaxSpeed;
|
||||
} else {
|
||||
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeedWeak;
|
||||
var_f29 = mpHIO->mWolf.mWlSwim.m.mMaxSpeedWeak;
|
||||
}
|
||||
|
||||
var_f28 = daAlinkHIO_wlSwim_c0::m.mMaxFallSpeed;
|
||||
var_f28 = mpHIO->mWolf.mWlSwim.m.mMaxFallSpeed;
|
||||
} else {
|
||||
var_f29 = getSwimFrontMaxSpeed();
|
||||
var_f28 = getSwimMaxFallSpeed();
|
||||
@@ -503,9 +503,9 @@ int daAlink_c::checkSwimUpAction() {
|
||||
|
||||
if (!getZoraSwim()) {
|
||||
if (checkWolf()) {
|
||||
field_0x3480 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
cLib_addCalc(&field_0x3480, daAlinkHIO_swim_c0::m.mStartHeight, 0.5f, 15.0f, 1.0f);
|
||||
cLib_addCalc(&field_0x3480, mpHIO->mSwim.m.mStartHeight, 0.5f, 15.0f, 1.0f);
|
||||
}
|
||||
} else {
|
||||
field_0x3480 = 65.0f;
|
||||
@@ -513,9 +513,9 @@ int daAlink_c::checkSwimUpAction() {
|
||||
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.mSurfacingHeight;
|
||||
var_f31 = mpHIO->mWolf.mWlSwim.m.mSurfacingHeight;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_swim_c0::m.mFloatUpHeight;
|
||||
var_f31 = mpHIO->mSwim.m.mFloatUpHeight;
|
||||
}
|
||||
|
||||
if (!checkBootsOrArmorHeavy() && !checkNoResetFlg0(FLG0_SWIM_UP)) {
|
||||
@@ -590,9 +590,9 @@ BOOL daAlink_c::checkSwimFall() {
|
||||
int daAlink_c::checkSwimOutAction() {
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
if (checkSwimFall()) {
|
||||
@@ -603,15 +603,15 @@ int daAlink_c::checkSwimOutAction() {
|
||||
current.angle.y = sp8.atan2sX_Z();
|
||||
|
||||
if (checkWolf()) {
|
||||
if (mNormalSpeed > daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed) {
|
||||
mNormalSpeed = daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed;
|
||||
if (mNormalSpeed > mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed) {
|
||||
mNormalSpeed = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed;
|
||||
}
|
||||
return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
|
||||
return procWolfFallInit(2, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp);
|
||||
} else {
|
||||
if (mNormalSpeed > daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed) {
|
||||
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed;
|
||||
if (mNormalSpeed > mpHIO->mAutoJump.m.mMaxJumpSpeed) {
|
||||
mNormalSpeed = mpHIO->mAutoJump.m.mMaxJumpSpeed;
|
||||
}
|
||||
return procFallInit(2, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(2, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,13 +655,13 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
BOOL var_r25 = 0;
|
||||
|
||||
if (field_0x2f98 == 4) {
|
||||
f32 temp_f29 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed + daAlinkHIO_swim_c0::m.mUnderwaterButtonAdditionalSpeed;
|
||||
f32 temp_f29 = mpHIO->mSwim.m.mUnderwaterMaxSpeed + mpHIO->mSwim.m.mUnderwaterButtonAdditionalSpeed;
|
||||
|
||||
field_0x3478 = daAlinkHIO_swim_c0::m.mUnderwaterMinAnmSpeed;
|
||||
field_0x347c = daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed;
|
||||
field_0x3478 = mpHIO->mSwim.m.mUnderwaterMinAnmSpeed;
|
||||
field_0x347c = mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed;
|
||||
|
||||
if (field_0x594 < daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed) {
|
||||
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
|
||||
if (field_0x594 < mpHIO->mSwim.m.mUnderwaterMaxSpeed) {
|
||||
field_0x594 = mpHIO->mSwim.m.mUnderwaterMaxSpeed;
|
||||
} else if (doTrigger()) {
|
||||
field_0x594 += 0.75f;
|
||||
if (field_0x594 > temp_f29) {
|
||||
@@ -683,10 +683,10 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
}
|
||||
} else if (!checkSwimMoveHandAnime()) {
|
||||
cLib_chaseF(&field_0x594, daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed, 0.4f);
|
||||
cLib_chaseF(&field_0x594, mpHIO->mSwim.m.mUnderwaterMaxSpeed, 0.4f);
|
||||
}
|
||||
|
||||
var_f31 = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
|
||||
var_f31 = 1.0f / mpHIO->mSwim.m.mUnderwaterMaxSpeed;
|
||||
|
||||
if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(temp_r28)))) {
|
||||
var_r29 = ANM_SWIM_ZORA_START;
|
||||
@@ -711,25 +711,25 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
}
|
||||
|
||||
if (checkSwimDashMode()) {
|
||||
field_0x3478 = daAlinkHIO_swim_c0::m.mDashMinAnmSpeed;
|
||||
field_0x347c = daAlinkHIO_swim_c0::m.mDashMaxAnmSpeed;
|
||||
field_0x594 = daAlinkHIO_swim_c0::m.mDashMaxSpeed;
|
||||
field_0x3478 = mpHIO->mSwim.m.mDashMinAnmSpeed;
|
||||
field_0x347c = mpHIO->mSwim.m.mDashMaxAnmSpeed;
|
||||
field_0x594 = mpHIO->mSwim.m.mDashMaxSpeed;
|
||||
} else {
|
||||
field_0x3478 = daAlinkHIO_swim_c0::m.mForwardMinAnmSpeed;
|
||||
field_0x347c = daAlinkHIO_swim_c0::m.mForwardMaxAnmSpeed;
|
||||
field_0x3478 = mpHIO->mSwim.m.mForwardMinAnmSpeed;
|
||||
field_0x347c = mpHIO->mSwim.m.mForwardMaxAnmSpeed;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
}
|
||||
|
||||
var_f31 = 1.0f / field_0x594;
|
||||
} else if (field_0x2f98 == 1) {
|
||||
var_r29 = ANM_ATN_SWIM_BACK;
|
||||
field_0x3478 = daAlinkHIO_swim_c0::m.mBackwardMinAnmSpeed;
|
||||
field_0x347c = daAlinkHIO_swim_c0::m.mBackwardMaxAnmSpeed;
|
||||
field_0x3478 = mpHIO->mSwim.m.mBackwardMinAnmSpeed;
|
||||
field_0x347c = mpHIO->mSwim.m.mBackwardMaxAnmSpeed;
|
||||
|
||||
if (checkZoraWearAbility()) {
|
||||
field_0x594 = 10.0f;
|
||||
} else {
|
||||
field_0x594 = daAlinkHIO_swim_c0::m.mBackwardMaxSpeed;
|
||||
field_0x594 = mpHIO->mSwim.m.mBackwardMaxSpeed;
|
||||
}
|
||||
|
||||
var_f31 = 1.0f / field_0x594;
|
||||
@@ -740,13 +740,13 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
var_r29 = ANM_ATN_SWIM_RIGHT;
|
||||
}
|
||||
|
||||
field_0x3478 = daAlinkHIO_swim_c0::m.mStrafeMinAnmSpeed;
|
||||
field_0x347c = daAlinkHIO_swim_c0::m.mStrafeMaxAnmSpeed;
|
||||
field_0x3478 = mpHIO->mSwim.m.mStrafeMinAnmSpeed;
|
||||
field_0x347c = mpHIO->mSwim.m.mStrafeMaxAnmSpeed;
|
||||
|
||||
if (checkZoraWearAbility()) {
|
||||
field_0x594 = 12.0f;
|
||||
} else {
|
||||
field_0x594 = daAlinkHIO_swim_c0::m.mStrafeMaxSpeed;
|
||||
field_0x594 = mpHIO->mSwim.m.mStrafeMaxSpeed;
|
||||
}
|
||||
|
||||
var_f31 = 1.0f / field_0x594;
|
||||
@@ -760,7 +760,7 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
var_r29 = ANM_SWIM_WAIT;
|
||||
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
|
||||
field_0x594 = mpHIO->mSwim.m.mUnderwaterFallMaxSpeed;
|
||||
if (mEquipItem != fpcNm_ITEM_NONE && !checkHookshotAnime()) {
|
||||
setDoStatus(4);
|
||||
}
|
||||
@@ -774,15 +774,15 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
field_0x3198 = var_r29;
|
||||
|
||||
if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) {
|
||||
field_0x30d2 = daAlinkHIO_swim_c0::m.field_0x5e;
|
||||
field_0x30d2 = mpHIO->mSwim.m.field_0x5e;
|
||||
}
|
||||
|
||||
if (var_r29 == ANM_SWIM_WAIT) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed, mpHIO->mSwim.m.mWaitInterpolation);
|
||||
} else {
|
||||
f32 var_f27;
|
||||
if (var_r26 != 0) {
|
||||
var_f27 = daAlinkHIO_swim_c0::m.mMoveInterpolation;
|
||||
var_f27 = mpHIO->mSwim.m.mMoveInterpolation;
|
||||
} else {
|
||||
var_f27 = 0.0f;
|
||||
}
|
||||
@@ -793,7 +793,7 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
if (var_r29 != ANM_SWIM_WAIT && var_r29 != ANM_SWIM_DASH) {
|
||||
f32 temp_f30 = var_f31 * fabsf(mNormalSpeed);
|
||||
if (temp_f30 > 1.0f && field_0x2f98 == 4) {
|
||||
temp_r28->setRate(daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * daAlinkHIO_swim_c0::m.mUnderwaterAdditionalAnmSpeed));
|
||||
temp_r28->setRate(mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * mpHIO->mSwim.m.mUnderwaterAdditionalAnmSpeed));
|
||||
} else {
|
||||
temp_r28->setRate(field_0x3478 + (field_0x347c * temp_f30));
|
||||
}
|
||||
@@ -880,12 +880,12 @@ void daAlink_c::setSwimUpDownOffset() {
|
||||
f32 var_f1;
|
||||
if (checkWolf()) {
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
var_f1 = daAlinkHIO_wlSwim_c0::m.mHeavyIdleUpDownSwayAmount;
|
||||
var_f1 = mpHIO->mWolf.mWlSwim.m.mHeavyIdleUpDownSwayAmount;
|
||||
} else {
|
||||
var_f1 = daAlinkHIO_wlSwim_c0::m.mIdleUpDownSwayAmount;
|
||||
var_f1 = mpHIO->mWolf.mWlSwim.m.mIdleUpDownSwayAmount;
|
||||
}
|
||||
} else {
|
||||
var_f1 = daAlinkHIO_swim_c0::m.mWaitUpDownShakeAmount;
|
||||
var_f1 = mpHIO->mSwim.m.mWaitUpDownShakeAmount;
|
||||
}
|
||||
|
||||
field_0x2b98 = var_f1 * cM_ssin(mProcVar2.field_0x300c);
|
||||
@@ -903,11 +903,11 @@ int daAlink_c::procSwimUpInit() {
|
||||
field_0x3080 = 0;
|
||||
onNoResetFlg0(FLG0_SWIM_UP);
|
||||
mZ2Link.setInWater(false);
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mFloatUpAnm);
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &mpHIO->mSwim.m.mFloatUpAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
field_0x3000 = 0;
|
||||
|
||||
seStartMapInfo(Z2SE_AL_OUTOF_WATER);
|
||||
@@ -919,7 +919,7 @@ int daAlink_c::procSwimUpInit() {
|
||||
int daAlink_c::procSwimUp() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
setNormalSpeedF(0.0f, daAlinkHIO_swim_c0::m.mDeceleration);
|
||||
setNormalSpeedF(0.0f, mpHIO->mSwim.m.mDeceleration);
|
||||
|
||||
if (checkSetItemTrigger(fpcNm_ITEM_HVY_BOOTS)) {
|
||||
setHeavyBoots(1);
|
||||
@@ -933,7 +933,7 @@ int daAlink_c::procSwimUp() {
|
||||
}
|
||||
} else if (checkAnmEnd(frame_ctrl)) {
|
||||
procSwimWaitInit(0);
|
||||
} else if (frame_ctrl->getFrame() > daAlinkHIO_swim_c0::m.mFloatUpAnm.mCancelFrame &&
|
||||
} else if (frame_ctrl->getFrame() > mpHIO->mSwim.m.mFloatUpAnm.mCancelFrame &&
|
||||
checkInputOnR())
|
||||
{
|
||||
procSwimMoveInit();
|
||||
@@ -950,7 +950,7 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
offNoResetFlg0(FLG0_UNDERWATER);
|
||||
current.pos.y += daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
current.pos.y += mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_SWIM_WAIT);
|
||||
@@ -958,19 +958,19 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
if (param_0) {
|
||||
seStartMapInfo(Z2SE_AL_INTO_WATER);
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
} else if (!mode_40000) {
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
swimDeleteItem();
|
||||
|
||||
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
|
||||
mpHIO->mSwim.m.mWaitInterpolation);
|
||||
} else if (frame_ctrl->getRate() < 0.1f) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, -1.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed, -1.0f);
|
||||
}
|
||||
|
||||
field_0x30d0 = 0;
|
||||
@@ -1008,8 +1008,8 @@ int daAlink_c::procSwimWait() {
|
||||
|
||||
if (mEquipItem != field_0x32cc) {
|
||||
field_0x32cc = mEquipItem;
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
|
||||
mpHIO->mSwim.m.mWaitInterpolation);
|
||||
}
|
||||
|
||||
setSwimUpDownOffset();
|
||||
@@ -1033,7 +1033,7 @@ int daAlink_c::procSwimWait() {
|
||||
|
||||
if (checkSwimButtonAccept() && doTrigger()) {
|
||||
procSwimDiveInit();
|
||||
} else if ((checkInputOnR() && mNormalSpeed >= daAlinkHIO_swim_c0::m.mForwardMinSpeed) ||
|
||||
} else if ((checkInputOnR() && mNormalSpeed >= mpHIO->mSwim.m.mForwardMinSpeed) ||
|
||||
(checkUpSwimButtonAccept() && doButton()))
|
||||
{
|
||||
if (checkUpSwimButtonAccept() && doButton()) {
|
||||
@@ -1058,7 +1058,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
}
|
||||
|
||||
if (!mode_40000) {
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
}
|
||||
|
||||
@@ -1115,11 +1115,11 @@ int daAlink_c::procSwimMove() {
|
||||
procSwimDiveInit();
|
||||
} else if (dComIfGp_getDoStatus() == 9 && doTrigger()) {
|
||||
onNoResetFlg1(FLG1_DASH_MODE);
|
||||
field_0x30d0 = daAlinkHIO_swim_c0::m.field_0x5c;
|
||||
setSingleAnimeParam(ANM_SWIM_DASH, &daAlinkHIO_swim_c0::m.mDashAnm);
|
||||
field_0x30d0 = mpHIO->mSwim.m.field_0x5c;
|
||||
setSingleAnimeParam(ANM_SWIM_DASH, &mpHIO->mSwim.m.mDashAnm);
|
||||
field_0x3198 = ANM_SWIM_DASH;
|
||||
} else if (!checkZoraSwimMove() && (!checkUpSwimButtonAccept() || !doButton()) &&
|
||||
mNormalSpeed < daAlinkHIO_swim_c0::m.mForwardMinSpeed)
|
||||
mNormalSpeed < mpHIO->mSwim.m.mForwardMinSpeed)
|
||||
{
|
||||
procSwimWaitInit(0);
|
||||
}
|
||||
@@ -1134,22 +1134,22 @@ int daAlink_c::procSwimDiveInit() {
|
||||
|
||||
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mDiveAnm);
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &mpHIO->mSwim.m.mDiveAnm);
|
||||
voiceStart(Z2SE_AL_V_DIVING);
|
||||
} else {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm);
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &mpHIO->mSwim.m.mUnderwaterDiveAnm);
|
||||
}
|
||||
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3000 = 30;
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x347c = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm.mEndFrame;
|
||||
field_0x347c = 1.0f / mpHIO->mSwim.m.mUnderwaterDiveAnm.mEndFrame;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1166,7 +1166,7 @@ int daAlink_c::procSwimDive() {
|
||||
|
||||
field_0x2f99 = 7;
|
||||
field_0x3000 = 30;
|
||||
setNormalSpeedF(0.0f, daAlinkHIO_swim_c0::m.mDeceleration);
|
||||
setNormalSpeedF(0.0f, mpHIO->mSwim.m.mDeceleration);
|
||||
|
||||
field_0x3478 = field_0x347c * frame_ctrl->getFrame();
|
||||
if (field_0x3478 > 1.0f) {
|
||||
@@ -1183,7 +1183,7 @@ int daAlink_c::procSwimDive() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
speed.y = daAlinkHIO_swim_c0::m.mMaxFallSpeed;
|
||||
speed.y = mpHIO->mSwim.m.mMaxFallSpeed;
|
||||
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
field_0x3080 = 0x2800;
|
||||
@@ -1207,8 +1207,8 @@ int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
initHookshotUpperAnimeSpeed(1);
|
||||
|
||||
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
|
||||
mpHIO->mItem.mHookshot.m.mStartInterpolation);
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -1228,7 +1228,7 @@ int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
@@ -1304,7 +1304,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
field_0x3080 = 0;
|
||||
}
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
@@ -1387,16 +1387,16 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
}
|
||||
|
||||
f32 scale =
|
||||
temp_r30->abs() * daAlinkHIO_damSwim_c0::m.mAttackSpeedRate + daAlinkHIO_damSwim_c0::m.mInitialSpeed;
|
||||
if (scale > daAlinkHIO_damSwim_c0::m.mMaxSpeed) {
|
||||
scale = daAlinkHIO_damSwim_c0::m.mMaxSpeed;
|
||||
temp_r30->abs() * mpHIO->mDamage.mDamSwim.m.mAttackSpeedRate + mpHIO->mDamage.mDamSwim.m.mInitialSpeed;
|
||||
if (scale > mpHIO->mDamage.mDamSwim.m.mMaxSpeed) {
|
||||
scale = mpHIO->mDamage.mDamSwim.m.mMaxSpeed;
|
||||
}
|
||||
|
||||
field_0x3750 = temp_r30->normZP();
|
||||
field_0x3750 *= scale;
|
||||
|
||||
if (getZoraSwim()) {
|
||||
setUpperAnimeParam(0xBF, UPPER_2, &daAlinkHIO_damSwim_c0::m.mSinkAnm);
|
||||
setUpperAnimeParam(0xBF, UPPER_2, &mpHIO->mDamage.mDamSwim.m.mSinkAnm);
|
||||
setFacePriBck(0xEA);
|
||||
setFacePriTexture(FTANM_UNK_27);
|
||||
return 1;
|
||||
@@ -1408,36 +1408,36 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
|
||||
|
||||
mProcVar0.field_0x3008 =
|
||||
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle,
|
||||
(s16)daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle);
|
||||
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle,
|
||||
(s16)mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle);
|
||||
|
||||
mProcVar1.field_0x300a = cLib_minMaxLimit(
|
||||
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
|
||||
(s16)-daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle, (s16)daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle);
|
||||
(s16)-mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle, (s16)mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle);
|
||||
|
||||
int dir = getDirectionFromAngle(cM_atan2s(-sp24.x, -sp24.z));
|
||||
if (bvar4) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.mSurfaceAnm);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.mSurfaceAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &mpHIO->mDamage.mDamSwim.m.mSurfaceAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mSurfaceAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
} else if (dir == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.mFrontAnm);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.mFrontAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &mpHIO->mDamage.mDamSwim.m.mFrontAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mFrontAnm.mCancelFrame;
|
||||
} else if (dir == DIR_BACKWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &daAlinkHIO_damSwim_c0::m.mRearAnm);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRearAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &mpHIO->mDamage.mDamSwim.m.mRearAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mRearAnm.mCancelFrame;
|
||||
} else if (dir == DIR_LEFT) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &daAlinkHIO_damSwim_c0::m.mLeftAnm);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.mLeftAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &mpHIO->mDamage.mDamSwim.m.mLeftAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mLeftAnm.mCancelFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &daAlinkHIO_damSwim_c0::m.mRightAnm);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRightAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &mpHIO->mDamage.mDamSwim.m.mRightAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mRightAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x347c = M_PI / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -67,7 +67,7 @@ int daAlink_c::procGrassWhistleGetInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
|
||||
@@ -276,9 +276,9 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
|
||||
}
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
|
||||
setGrassCancelStatus(0);
|
||||
|
||||
+527
-516
File diff suppressed because it is too large
Load Diff
@@ -10,22 +10,15 @@
|
||||
#include "d/actor/d_a_b_gnd.h"
|
||||
#include "d/actor/d_a_arrow.h"
|
||||
|
||||
|
||||
#if DEBUG
|
||||
#define HIO mpHIO->mParameters
|
||||
#else
|
||||
#define HIO daHoZelda_hio_c0::m
|
||||
#endif
|
||||
|
||||
static const char l_arcName[] = "HoZelda";
|
||||
|
||||
#if DEBUG
|
||||
void daHoZelda_hio_c::genMessage(JORMContext* context) {
|
||||
context->genSlider("弓サーチY角度", &mParameters.bow_search_y_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓開始角度", &mParameters.bow_start_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓開始距離", &mParameters.bow_start_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓終了角度", &mParameters.bow_end_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓終了距離", &mParameters.bow_end_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓サーチY角度", &m.bow_search_y_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓開始角度", &m.bow_start_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓開始距離", &m.bow_start_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓終了角度", &m.bow_end_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
context->genSlider("弓終了距離", &m.bow_end_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -134,7 +127,7 @@ BOOL daHoZelda_c::createHeap() {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mpHIO = new daHoZelda_hio_c();
|
||||
mpHIO = new HOZELDA_HIO_CLASS();
|
||||
if (mpHIO == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
@@ -482,7 +475,7 @@ void daHoZelda_c::setAnm() {
|
||||
}
|
||||
|
||||
if (anm_idx[0] == 0xE && field_0x6da == 0 && !mDamageInit && field_0x6dd == 0 && player->checkHorseRide() && ganondorf != NULL && ganondorf->checkPiyo() != 1 &&
|
||||
((gnd_seen_angleY < HIO.bow_start_angle && gnd_lockon) || (mBowMode != 0 && gnd_seen_angleY < HIO.bow_end_angle && (gnd_lockon || mArrowAcKeep.getActor() != NULL))))
|
||||
((gnd_seen_angleY < mpHIO->m.bow_start_angle && gnd_lockon) || (mBowMode != 0 && gnd_seen_angleY < mpHIO->m.bow_end_angle && (gnd_lockon || mArrowAcKeep.getActor() != NULL))))
|
||||
{
|
||||
mBowMode = 1;
|
||||
} else {
|
||||
@@ -848,7 +841,6 @@ void daHoZelda_c::setNeckAngle() {
|
||||
}
|
||||
}
|
||||
|
||||
// NONMATCHING - load order with cLib_minMaxLimit
|
||||
void daHoZelda_c::searchBodyAngle() {
|
||||
fopAc_ac_c* gnd_actor = mGndAcKeep.getActor();
|
||||
s16 angle_x_target = 0;
|
||||
@@ -863,16 +855,9 @@ void daHoZelda_c::searchBodyAngle() {
|
||||
|
||||
if (sp8.abs() >= 1.0f) {
|
||||
angle_x_target = cLib_minMaxLimit<s16>(sp8.atan2sY_XZ(), -0x800, 0x2000);
|
||||
#if PLATFORM_SHIELD || PLATFORM_WII
|
||||
angle_y_target =
|
||||
cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, -HIO.bow_search_y_angle,
|
||||
(s16)HIO.bow_search_y_angle);
|
||||
#else
|
||||
// needs to load HIO.bow_search_y_angle before calling sp8.atan2sX_Z()
|
||||
int ang1 = (s16)-HIO.bow_search_y_angle;
|
||||
int ang2 = (s16)HIO.bow_search_y_angle;
|
||||
angle_y_target = cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, ang1, ang2);
|
||||
#endif
|
||||
cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, -mpHIO->m.bow_search_y_angle,
|
||||
(s16)mpHIO->m.bow_search_y_angle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1393,7 +1393,6 @@ void daNpc_ykM_c::afterMoved() {
|
||||
}
|
||||
}
|
||||
|
||||
// NONMATCHING - HIO load issue
|
||||
void daNpc_ykM_c::setAttnPos() {
|
||||
fopAc_ac_c* otherYkmP = NULL;
|
||||
cXyz sp104(80.0f, 30.0f, 0.0f);
|
||||
|
||||
+46
-57
@@ -35,12 +35,6 @@ public:
|
||||
};
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
#define HIO_PARAM(i_this) (&i_this->mpHIO->m)
|
||||
#else
|
||||
#define HIO_PARAM(i_this) (&daNpc_ykW_Param_c::m)
|
||||
#endif
|
||||
|
||||
static int l_bmdData[1][2] = {
|
||||
{11, 1},
|
||||
};
|
||||
@@ -359,7 +353,7 @@ int daNpc_ykW_c::create() {
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
||||
fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
|
||||
|
||||
mCcStts.Init(HIO_PARAM(this)->common.weight, 0, this);
|
||||
mCcStts.Init(mpHIO->m.common.weight, 0, this);
|
||||
|
||||
mCyl.Set(mCcDCyl);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
@@ -716,10 +710,10 @@ void daNpc_ykW_c::setParam() {
|
||||
|
||||
if (field_0xf80 != 5 && field_0xf80 != 6) {
|
||||
u32 newAttnFlags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e;
|
||||
s16 talkDist = HIO_PARAM(this)->common.talk_distance;
|
||||
s16 talkAngle = HIO_PARAM(this)->common.talk_angle;
|
||||
s16 attnDist = HIO_PARAM(this)->common.attention_distance;
|
||||
s16 attnAngle = HIO_PARAM(this)->common.attention_angle;
|
||||
s16 talkDist = mpHIO->m.common.talk_distance;
|
||||
s16 talkAngle = mpHIO->m.common.talk_angle;
|
||||
s16 attnDist = mpHIO->m.common.attention_distance;
|
||||
s16 attnAngle = mpHIO->m.common.attention_angle;
|
||||
|
||||
if (field_0xf80 == 1) {
|
||||
talkAngle = 4;
|
||||
@@ -731,11 +725,7 @@ void daNpc_ykW_c::setParam() {
|
||||
|
||||
attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(attnDist, attnAngle);
|
||||
attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
|
||||
#if DEBUG
|
||||
attention_info.distances[fopAc_attn_JUEL_e] = daNpcT_getDistTableIdx(talkDist, talkAngle);
|
||||
#else
|
||||
attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(talkDist, talkAngle);
|
||||
#endif
|
||||
|
||||
if (daPy_py_c::checkNowWolf()) {
|
||||
newAttnFlags |= fopAc_AttnFlag_UNK_0x800000;
|
||||
@@ -746,27 +736,27 @@ void daNpc_ykW_c::setParam() {
|
||||
attention_info.flags = 0;
|
||||
}
|
||||
|
||||
scale.set(HIO_PARAM(this)->common.scale,
|
||||
HIO_PARAM(this)->common.scale,
|
||||
HIO_PARAM(this)->common.scale);
|
||||
mCcStts.SetWeight(HIO_PARAM(this)->common.weight);
|
||||
mCylH = HIO_PARAM(this)->common.height;
|
||||
mWallR = HIO_PARAM(this)->common.width;
|
||||
mAttnFovY = HIO_PARAM(this)->common.fov;
|
||||
scale.set(mpHIO->m.common.scale,
|
||||
mpHIO->m.common.scale,
|
||||
mpHIO->m.common.scale);
|
||||
mCcStts.SetWeight(mpHIO->m.common.weight);
|
||||
mCylH = mpHIO->m.common.height;
|
||||
mWallR = mpHIO->m.common.width;
|
||||
mAttnFovY = mpHIO->m.common.fov;
|
||||
|
||||
mAcchCir.SetWallR(mWallR);
|
||||
mAcchCir.SetWallH(HIO_PARAM(this)->common.knee_length);
|
||||
mAcchCir.SetWallH(mpHIO->m.common.knee_length);
|
||||
|
||||
mRealShadowSize = HIO_PARAM(this)->common.real_shadow_size;
|
||||
mRealShadowSize = mpHIO->m.common.real_shadow_size;
|
||||
|
||||
if (field_0xf80 == 4) {
|
||||
fopAcM_OffStatus(this, fopAcM_STATUS_UNK_0x100);
|
||||
mRealShadowSize = 1500.0f;
|
||||
}
|
||||
|
||||
mExpressionMorfFrame = HIO_PARAM(this)->common.expression_morf_frame;
|
||||
mMorfFrames = HIO_PARAM(this)->common.morf_frame;
|
||||
gravity = HIO_PARAM(this)->common.gravity;
|
||||
mExpressionMorfFrame = mpHIO->m.common.expression_morf_frame;
|
||||
mMorfFrames = mpHIO->m.common.morf_frame;
|
||||
gravity = mpHIO->m.common.gravity;
|
||||
field_0x1060 = 0;
|
||||
field_0x1061 = 0;
|
||||
}
|
||||
@@ -923,7 +913,7 @@ void daNpc_ykW_c::afterMoved() {
|
||||
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0x105c);
|
||||
if (emitter != NULL) {
|
||||
cXyz unkXyz2;
|
||||
f32 unkFloat1 = speedF / HIO_PARAM(this)->mSlidingSpeed;
|
||||
f32 unkFloat1 = speedF / mpHIO->m.mSlidingSpeed;
|
||||
if (unkFloat1 > 1.0f) {
|
||||
unkFloat1 = 1.0f;
|
||||
}
|
||||
@@ -952,7 +942,6 @@ void daNpc_ykW_c::afterMoved() {
|
||||
}
|
||||
}
|
||||
|
||||
// NONMATCHING - HIO load issue, regalloc
|
||||
void daNpc_ykW_c::setAttnPos() {
|
||||
cXyz unkXyz1(0.0f, 50.0f, 0.0f);
|
||||
if (field_0x106a != 0) {
|
||||
@@ -969,22 +958,22 @@ void daNpc_ykW_c::setAttnPos() {
|
||||
if (&daNpc_ykW_c::sitWait == field_0xfd8) {
|
||||
mJntAnm.setParam(
|
||||
this, mpMorf[0]->getModel(), &unkXyz1, getBackboneJointNo(), getNeckJointNo(),
|
||||
getHeadJointNo(), 0.0f, 0.0f, 0.0f, 0.0f, HIO_PARAM(this)->common.head_angleX_min,
|
||||
HIO_PARAM(this)->common.head_angleX_max, HIO_PARAM(this)->common.head_angleY_min,
|
||||
HIO_PARAM(this)->common.head_angleY_max, HIO_PARAM(this)->common.neck_rotation_ratio,
|
||||
getHeadJointNo(), 0.0f, 0.0f, 0.0f, 0.0f, mpHIO->m.common.head_angleX_min,
|
||||
mpHIO->m.common.head_angleX_max, mpHIO->m.common.head_angleY_min,
|
||||
mpHIO->m.common.head_angleY_max, mpHIO->m.common.neck_rotation_ratio,
|
||||
unkFloat1, NULL);
|
||||
} else {
|
||||
mJntAnm.setParam(this, mpMorf[0]->getModel(), &unkXyz1, getBackboneJointNo(),
|
||||
getNeckJointNo(), getHeadJointNo(),
|
||||
field_0x1061 != 0 ? 0.0f : HIO_PARAM(this)->common.body_angleX_min,
|
||||
field_0x1061 != 0 ? 0.0f : HIO_PARAM(this)->common.body_angleX_max,
|
||||
field_0x1061 != 0 ? 0.0f : HIO_PARAM(this)->common.body_angleY_min,
|
||||
field_0x1061 != 0 ? 0.0f : HIO_PARAM(this)->common.body_angleY_max,
|
||||
field_0x1060 != 0 ? 0.0f : HIO_PARAM(this)->common.head_angleX_min,
|
||||
field_0x1060 != 0 ? 0.0f : HIO_PARAM(this)->common.head_angleX_max,
|
||||
field_0x1060 != 0 ? 0.0f : HIO_PARAM(this)->common.head_angleY_min,
|
||||
field_0x1060 != 0 ? 0.0f : HIO_PARAM(this)->common.head_angleY_max,
|
||||
HIO_PARAM(this)->common.neck_rotation_ratio, unkFloat1, NULL);
|
||||
field_0x1061 != 0 ? 0.0f : mpHIO->m.common.body_angleX_min,
|
||||
field_0x1061 != 0 ? 0.0f : mpHIO->m.common.body_angleX_max,
|
||||
field_0x1061 != 0 ? 0.0f : mpHIO->m.common.body_angleY_min,
|
||||
field_0x1061 != 0 ? 0.0f : mpHIO->m.common.body_angleY_max,
|
||||
field_0x1060 != 0 ? 0.0f : mpHIO->m.common.head_angleX_min,
|
||||
field_0x1060 != 0 ? 0.0f : mpHIO->m.common.head_angleX_max,
|
||||
field_0x1060 != 0 ? 0.0f : mpHIO->m.common.head_angleY_min,
|
||||
field_0x1060 != 0 ? 0.0f : mpHIO->m.common.head_angleY_max,
|
||||
mpHIO->m.common.neck_rotation_ratio, unkFloat1, NULL);
|
||||
}
|
||||
|
||||
mJntAnm.calcJntRad(0.2f, 1.0f, unkFloat1);
|
||||
@@ -996,7 +985,7 @@ void daNpc_ykW_c::setAttnPos() {
|
||||
mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0);
|
||||
|
||||
unkXyz1.set(0.0f, 0.0f, 0.0f);
|
||||
unkXyz1.y = HIO_PARAM(this)->common.attention_offset;
|
||||
unkXyz1.y = mpHIO->m.common.attention_offset;
|
||||
|
||||
if (&daNpc_ykW_c::sitWait == field_0xfd8) {
|
||||
unkXyz1.y -= 50.0f;
|
||||
@@ -1083,7 +1072,7 @@ void daNpc_ykW_c::setCollision() {
|
||||
|
||||
int daNpc_ykW_c::drawDbgInfo() {
|
||||
#if DEBUG
|
||||
if (HIO_PARAM(this)->common.debug_info_ON != 0) {
|
||||
if (mpHIO->m.common.debug_info_ON != 0) {
|
||||
f32 juelDist = dComIfGp_getAttention()
|
||||
->getDistTable(attention_info.distances[fopAc_attn_JUEL_e])
|
||||
.mDistMax;
|
||||
@@ -1118,7 +1107,7 @@ int daNpc_ykW_c::selectAction() {
|
||||
field_0xfd8 = NULL;
|
||||
|
||||
#if DEBUG
|
||||
if (HIO_PARAM(this)->common.debug_mode_ON != 0) {
|
||||
if (mpHIO->m.common.debug_mode_ON != 0) {
|
||||
field_0xfd8 = &daNpc_ykW_c::test;
|
||||
return 1;
|
||||
}
|
||||
@@ -1452,7 +1441,7 @@ int daNpc_ykW_c::cutGoIntoBossRoom(int param_0) {
|
||||
pathPntPos1 = mPath.getPntPos(mPath.getNumPnts() - 1);
|
||||
targetAngleY = cLib_targetAngleY(fopAcM_GetPosition_p(this), &pathPntPos1);
|
||||
if (targetAngleY != mCurAngle.y) {
|
||||
step(targetAngleY, 13, 22, HIO_PARAM(this)->mStepSpeed, 0);
|
||||
step(targetAngleY, 13, 22, mpHIO->m.mStepSpeed, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1964,7 +1953,7 @@ int daNpc_ykW_c::cutFindWolf(int param_0) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
|
||||
if (mPlayerAngle != mCurAngle.y) {
|
||||
if (step(mPlayerAngle, 0xd, 0x16, HIO_PARAM(this)->mStepSpeed, 0)) {
|
||||
if (step(mPlayerAngle, 0xd, 0x16, mpHIO->m.mStepSpeed, 0)) {
|
||||
mFaceMotionSeqMngr.setNo(13, -1.0, 0, 0);
|
||||
mMotionSeqMngr.setNo(0, -1.0, 0, 0);
|
||||
}
|
||||
@@ -2512,7 +2501,7 @@ int daNpc_ykW_c::wait(void* param_0) {
|
||||
mJntAnm.lookNone(0);
|
||||
if (home.angle.y != mCurAngle.y) {
|
||||
if (field_0xe34 != 0) {
|
||||
if (step(home.angle.y, 13, 22, HIO_PARAM(this)->mStepSpeed, 0) != 0)
|
||||
if (step(home.angle.y, 13, 22, mpHIO->m.mStepSpeed, 0) != 0)
|
||||
{
|
||||
mMode = 1;
|
||||
}
|
||||
@@ -2632,8 +2621,8 @@ int daNpc_ykW_c::walk(void* param_0) {
|
||||
int dstPos;
|
||||
int dstPos2;
|
||||
|
||||
s16 downTime = HIO_PARAM(this)->mWalkingTime;
|
||||
s16 walkingTime = HIO_PARAM(this)->mDownTime;
|
||||
s16 downTime = mpHIO->m.mWalkingTime;
|
||||
s16 walkingTime = mpHIO->m.mDownTime;
|
||||
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
@@ -2873,17 +2862,17 @@ int daNpc_ykW_c::race(void* param_0) {
|
||||
cLib_addCalcAngleS2(&mCurAngle.x, mGroundAngle, 6, 0x200);
|
||||
cLib_addCalcAngleS2(&mCurAngle.z, targetAngleY, 6, 0x200);
|
||||
int unkInt2 = field_0x104c - field_0x1044.field_0x0;
|
||||
unkFloat1 = HIO_PARAM(this)->mSlidingSpeed * cM_scos(mGroundAngle);
|
||||
unkFloat1 = mpHIO->m.mSlidingSpeed * cM_scos(mGroundAngle);
|
||||
if (mStagger.checkStagger()) {
|
||||
unkFloat1 *= 0.0f;
|
||||
} else {
|
||||
unkInt2 += HIO_PARAM(this)->mCompetParamA;
|
||||
unkInt2 = cLib_minMaxLimit<int>(unkInt2, 0, HIO_PARAM(this)->mCompetParamB);
|
||||
unkInt2 += mpHIO->m.mCompetParamA;
|
||||
unkInt2 = cLib_minMaxLimit<int>(unkInt2, 0, mpHIO->m.mCompetParamB);
|
||||
if (unkInt2 > 0) {
|
||||
unkFloat1 *= (f32)abs(unkInt2) * 0.1f * HIO_PARAM(this)->mCompetParamC + 1.0f;
|
||||
unkFloat1 *= (f32)abs(unkInt2) * 0.1f * mpHIO->m.mCompetParamC + 1.0f;
|
||||
}
|
||||
}
|
||||
cLib_chaseF(&speedF, unkFloat1, HIO_PARAM(this)->mSlidingAccel);
|
||||
cLib_chaseF(&speedF, unkFloat1, mpHIO->m.mSlidingAccel);
|
||||
mSound.startCreatureSoundLevel(Z2SE_YW_SNOBO_RIDE, speedF, -1);
|
||||
mSound.startCreatureVoiceLevel(Z2SE_YW_V_SNOBO_RIDING, -1);
|
||||
}
|
||||
@@ -2982,7 +2971,7 @@ int daNpc_ykW_c::talk(void* param_0) {
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookPlayer(0);
|
||||
step(mPlayerAngle, 13, 22, HIO_PARAM(this)->mStepSpeed, 0);
|
||||
step(mPlayerAngle, 13, 22, mpHIO->m.mStepSpeed, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3006,8 +2995,8 @@ int daNpc_ykW_c::test(void* param_0) {
|
||||
|
||||
mMode = 2;
|
||||
case 2:
|
||||
mFaceMotionSeqMngr.setNo(HIO_PARAM(this)->common.face_expression, -1.0f, 0, 0);
|
||||
mMotionSeqMngr.setNo(HIO_PARAM(this)->common.motion, -1.0f, 0, 0);
|
||||
mFaceMotionSeqMngr.setNo(mpHIO->m.common.face_expression, -1.0f, 0, 0);
|
||||
mMotionSeqMngr.setNo(mpHIO->m.common.motion, -1.0f, 0, 0);
|
||||
|
||||
mJntAnm.lookNone(0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user