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:
LagoLunatic
2025-12-01 18:37:04 -08:00
committed by GitHub
parent 737db261e9
commit ffc86e0412
35 changed files with 2658 additions and 2157 deletions
+1 -1
View File
@@ -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"),
File diff suppressed because it is too large Load Diff
+11 -3
View File
@@ -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;
+8 -1
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -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;
+13 -13
View File
@@ -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;
}
+22 -22
View File
@@ -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);
}
+20 -20
View File
@@ -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;
}
+29 -29
View File
@@ -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 {
+41 -41
View File
@@ -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);
}
+17 -17
View File
@@ -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;
}
+14 -14
View File
@@ -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);
}
File diff suppressed because it is too large Load Diff
+64 -64
View File
@@ -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(&current.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(&current.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);
+57 -57
View File
@@ -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(&current.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);
}
}
+4 -4
View File
@@ -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() {
&current.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, &current.angle);
+79 -79
View File
@@ -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);
+24 -25
View File
@@ -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)) {
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More