d_a_alink_HIO work (#2852)

* daAlink_c::jointControll OK

* daalink debug work

* checkpoint

* fix casting

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* remaining functions + fixes round 1

* fixes round 2

* fixes round 3

* fixes round 4

* revert getNeckAimAngle for now
This commit is contained in:
Howard Luck 2025-11-30 13:26:50 -07:00 committed by GitHub
parent 139722c731
commit 20e9957356
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 10306 additions and 3156 deletions

File diff suppressed because it is too large Load Diff

View File

@ -310,7 +310,7 @@ public:
/* 800196A0 */ void drawBallModel(dKy_tevstr_c*);
bool checkWolfNoLock() const { return mFlags & fopEn_flag_WolfNoLock; }
bool checkHeadLockFlg() const { return mFlags & fopEn_flag_HeadLock; }
BOOL checkHeadLockFlg() const { return mFlags & fopEn_flag_HeadLock; }
BOOL checkWolfBiteDamage() const { return mFlags & fopEn_flag_WolfBiteDamage; }
bool checkWolfDownPullFlg() const { return mFlags & fopEn_flag_WolfDownPull; }
bool checkDownFlg() { return mFlags & fopEn_flag_Down; }

View File

@ -92,19 +92,19 @@ void JORReflexible::listenPropertyEvent(const JORPropertyEvent* pEvent) {
case 'CMBX':
if (pEvent->field_0x14 >= 4) {
JORPropertyEvent* event = (JORPropertyEvent*)pEvent;
JORServer::defSetVal(event->id, event->kind, event->field_0x18.U32);
JORServer::defSetVal((void*)event->id, event->kind, event->field_0x18.U32);
}
break;
case 'CHBX':
if (pEvent->field_0x14 >= 4) {
JORPropertyEvent* event = (JORPropertyEvent*)pEvent;
JORServer::defSetBitVal(event->id, event->kind, (u16)event->field_0x18.U16[0], (u16)event->field_0x18.U16[1]);
JORServer::defSetBitVal((void*)event->id, event->kind, (u16)event->field_0x18.U16[0], (u16)event->field_0x18.U16[1]);
}
break;
case 'EDBX':
JORPropertyEvent* event = (JORPropertyEvent*)pEvent;
JSUMemoryInputStream stream(&event->field_0x18, event->field_0x14);
stream >> event->id;
stream >> (char*)event->id;
break;
}
return;

View File

@ -54,6 +54,8 @@ BOOL daAlink_c::getE3Zhint() {
return false;
}
#include "d/actor/d_a_alink_HIO.inc"
/* 80452C50-80452C58 001250 0005+03 2/2 0/0 0/0 .sdata2 l_wArcName */
static const char l_wArcName[] = "Wmdl";
@ -81,23 +83,6 @@ static const char l_sWShdArcName[] = "SWShd";
/* 80452C90-80452C98 001290 0006+02 7/7 0/0 0/0 .sdata2 l_arcName */
static const char l_arcName[] = "Alink";
#if DEBUG
void daAlinkHIO_c::jumpStateUpdate(const cXyz* param_0, const cXyz* param_1, f32 param_2) {
char buf[68];
f32 xDiff = param_0->x - param_1->x;
f32 zDiff = param_0->z - param_1->z;
JORMContext* ctx = attachJORMContext(8);
ctx->startUpdateNode(this);
sprintf(buf, "水平距離 %-8.3f", JMAFastSqrt(xDiff * xDiff + zDiff * zDiff));
ctx->updateLabel(2, 0x4000006, buf);
sprintf(buf, "最頂点 %-8.3f", param_2);
ctx->updateLabel(2, 0x4000007, buf);
ctx->endUpdateNode();
releaseJORMContext(ctx);
}
#endif
/* 8009D884-8009D88C 0981C4 0008+00 0/0 0/0 13/13 .text getAlinkArcName__9daAlink_cFv */
const char* daAlink_c::getAlinkArcName() {
return l_arcName;
@ -1797,7 +1782,17 @@ static dJntColData_c l_wolfJntColData[] = {
#include "d/actor/d_a_alink_swindow.inc"
#include "d/actor/d_a_alink_HIO.inc"
/* 80140B88-80140B98 13B4C8 0010+00 1/1 0/0 0/0 .text __ct__12daAlinkHIO_cFv */
daAlinkHIO_c::daAlinkHIO_c() {}
/* 80140B98-80140BD4 13B4D8 003C+00 1/1 0/0 0/0 .text __dt__17daAlinkHIO_wolf_cFv */
daAlinkHIO_wolf_c::~daAlinkHIO_wolf_c() {}
/* 80140BD4-80140C10 13B514 003C+00 1/1 0/0 0/0 .text __dt__16daAlinkHIO_cut_cFv */
daAlinkHIO_cut_c::~daAlinkHIO_cut_c() {}
/* 80140C10-80140C80 13B550 0070+00 1/0 0/0 0/0 .text __dt__12daAlinkHIO_cFv */
daAlinkHIO_c::~daAlinkHIO_c() {}
/* 80450FC8-80450FCC -00001 0004+00 5/5 0/0 0/0 .sbss None */
/* 80450FC8 0001+00 data_80450FC8 None */
@ -1927,8 +1922,8 @@ int daAlink_c::jointControll(int param_0) {
csXyz sp18(0, 0, 0);
int var_r27 = 0;
J3DTransformInfo sp80;
J3DTransformInfo sp60 = *field_0x2060->getOldFrameTransInfo(param_0);
J3DTransformInfo jointTrans;
J3DTransformInfo rootTrans = *field_0x2060->getOldFrameTransInfo(param_0);
Quaternion sp50;
Quaternion sp40;
@ -1962,7 +1957,7 @@ int daAlink_c::jointControll(int param_0) {
sp18.set(field_0x3080, 0, field_0x3082);
sp10.set(2, 1, 0);
sp80 = *field_0x2060->getOldFrameTransInfo(0);
jointTrans = *field_0x2060->getOldFrameTransInfo(0);
var_r27 |= 2;
} else if (param_0 == 3) {
sp18.set((field_0x30d6 + field_0x30b2), 0, field_0x30b0);
@ -2022,12 +2017,12 @@ int daAlink_c::jointControll(int param_0) {
sp18.set(field_0x3080, 0, field_0x3082);
sp10.set(2, 0, 1);
sp80 = *field_0x2060->getOldFrameTransInfo(0);
jointTrans = *field_0x2060->getOldFrameTransInfo(0);
var_r27 |= 2;
if (field_0x2f99 == 0x60) {
sp80.mTranslate.x -= field_0x384c->x;
sp80.mTranslate.y -= field_0x384c->y;
sp80.mTranslate.z -= field_0x384c->z;
jointTrans.mTranslate.x -= field_0x384c->x;
jointTrans.mTranslate.y -= field_0x384c->y;
jointTrans.mTranslate.z -= field_0x384c->z;
}
} else if (param_0 == 0x1B) {
setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(param_0), mFootData1[0].field_0x6, 0, 0, 1, NULL);
@ -2100,7 +2095,7 @@ int daAlink_c::jointControll(int param_0) {
J3DTransformInfo* var_r25;
if ((var_r27 & 2)) {
var_r25 = &sp80;
var_r25 = &jointTrans;
} else {
var_r25 = field_0x2060->getOldFrameTransInfo(param_0);
}
@ -2112,7 +2107,7 @@ int daAlink_c::jointControll(int param_0) {
spC = field_0x2060->getOldFrameQuaternion(param_0);
}
mDoMtx_stack_c::transS(sp60.mTranslate.x, sp60.mTranslate.y, sp60.mTranslate.z);
mDoMtx_stack_c::transS(rootTrans.mTranslate.x, rootTrans.mTranslate.y, rootTrans.mTranslate.z);
mDoMtx_stack_c::quatM(&sp20);
mDoMtx_stack_c::inverse();
cMtx_concat(temp_r26, mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
@ -2960,7 +2955,11 @@ s16 daAlink_c::getNeckAimAngle(cXyz* param_0, s16* param_1, s16* param_2, s16* p
s16 sp18;
s16 sp16 = field_0x2fe6 + mBodyAngle.y;
if ((mProcID == PROC_GOAT_CATCH && mProcVar1.field_0x300a == 0) || (mProcID == PROC_HAND_PAT && mProcVar2.field_0x300c == 0)) {
#if VERSION == VERSION_SHIELD_DEBUG
sp16 += (s16)0x8000;
#else
sp16 -= (s16)0x8000;
#endif
}
cXyz sp28 = eyePos - field_0x34e0;
@ -2996,25 +2995,25 @@ s16 daAlink_c::getNeckAimAngle(cXyz* param_0, s16* param_1, s16* param_2, s16* p
var_r28 = cLib_minMaxLimit<s16>((s16)var_r28, -daAlinkHIO_wolf_c0::m.mMaxNeckTurnH, daAlinkHIO_wolf_c0::m.mMaxNeckTurnH);
}
} else {
temp_r24 = cLib_minMaxLimit<s16>((s16)temp_r24, daAlinkHIO_basic_c0::m.mNeckMaxUp, daAlinkHIO_basic_c0::m.mNeckMaxDown);
temp_r24 = cLib_minMaxLimit<s16>((s16)temp_r24, daAlinkHIO_basic_c0::m.mHeadMaxTurnUp, daAlinkHIO_basic_c0::m.mHeadMaxTurnDown);
s16 spC;
s16 spA;
if (dComIfGp_checkPlayerStatus1(0, 0x02000000)) {
if (field_0x3020 == 1) {
spC = -0x1000;
spA = daAlinkHIO_basic_c0::m.mNeckMaxHorizontal;
spA = daAlinkHIO_basic_c0::m.mHeadMaxTurnHorizontal;
} else {
spC = -daAlinkHIO_basic_c0::m.mNeckMaxHorizontal;
spC = -daAlinkHIO_basic_c0::m.mHeadMaxTurnHorizontal;
spA = 0x1000;
}
} else {
if (checkGrabAnimeCarry()) {
spC = 0;
} else {
spC = -daAlinkHIO_basic_c0::m.mNeckMaxHorizontal;
spC = -daAlinkHIO_basic_c0::m.mHeadMaxTurnHorizontal;
}
spA = daAlinkHIO_basic_c0::m.mNeckMaxHorizontal;
spA = daAlinkHIO_basic_c0::m.mHeadMaxTurnHorizontal;
}
var_r28 = cLib_minMaxLimit<s16>((s16)var_r28, spC, spA);
@ -3285,7 +3284,7 @@ void daAlink_c::setMoveSlantAngle() {
s16 var_r29;
s16 var_r28;
if ((mProcID == PROC_MOVE && temp_f31 > daAlinkHIO_move_c0::m.mRunChangeRate) || (mProcID == PROC_WOLF_MOVE && temp_f31 > daAlinkHIO_wlMove_c0::m.field_0x84)) {
if ((mProcID == PROC_MOVE && temp_f31 > daAlinkHIO_move_c0::m.mRunChangeRate) || (mProcID == PROC_WOLF_MOVE && temp_f31 > daAlinkHIO_wlMove_c0::m.mIdleToWalkRate)) {
var_r28 = cLib_minMaxLimit<s16>((s16)(field_0x2fe6 - shape_angle.y) * 2, -0xC00, 0xC00);
if (abs(var_r28) > 0x800) {
int var_r27;
@ -3300,7 +3299,7 @@ void daAlink_c::setMoveSlantAngle() {
var_r29 = 0;
}
if ((mProcID == PROC_WOLF_MOVE && checkAttentionState()) || temp_f31 < daAlinkHIO_wlMove_c0::m.field_0x8C) {
if ((mProcID == PROC_WOLF_MOVE && checkAttentionState()) || temp_f31 < daAlinkHIO_wlMove_c0::m.mStandbyRunToRunRate) {
var_r28 = 0;
}
} else if ((mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_SWIM_MOVE) && shape_angle.y != field_0x2fe6) {
@ -4579,9 +4578,9 @@ int daAlink_c::setStartProcInit() {
} else if (checkSwimAction(1)) {
if (start_mode == 1) {
if (checkWolf()) {
mNormalSpeed = 0.5f * daAlinkHIO_wlSwim_c0::m.field_0x50;
mNormalSpeed = 0.5f * daAlinkHIO_wlSwim_c0::m.mMaxSpeed;
} else {
mNormalSpeed = 0.5f * daAlinkHIO_swim_c0::m.mMaxForwardSpeed;
mNormalSpeed = 0.5f * daAlinkHIO_swim_c0::m.mForwardMaxSpeed;
}
}
@ -4598,7 +4597,7 @@ int daAlink_c::setStartProcInit() {
field_0x2f99 = 0;
} else if (start_mode == 1) {
if (checkWolf()) {
mNormalSpeed = daAlinkHIO_wlMove_c0::m.field_0x84 * daAlinkHIO_wlMove_c0::m.field_0x64;
mNormalSpeed = daAlinkHIO_wlMove_c0::m.mIdleToWalkRate * daAlinkHIO_wlMove_c0::m.mMaxSpeed;
speedF = mNormalSpeed;
procWolfMoveInit();
} else {
@ -4624,8 +4623,8 @@ int daAlink_c::setStartProcInit() {
procCrawlMoveInit(0, 0);
}
} else if (checkWolf()) {
if (mNormalSpeed > daAlinkHIO_wlMove_c0::m.field_0x64) {
mNormalSpeed = daAlinkHIO_wlMove_c0::m.field_0x64;
if (mNormalSpeed > daAlinkHIO_wlMove_c0::m.mMaxSpeed) {
mNormalSpeed = daAlinkHIO_wlMove_c0::m.mMaxSpeed;
}
speedF = mNormalSpeed;
procWolfMoveInit();
@ -5131,12 +5130,12 @@ void daAlink_c::setPolygonSpeed() {
f32 var_f29;
if (temp_f27 < sp3C - 29.9f) {
if (checkWolf()) {
var_f29 = daAlinkHIO_wlMoveNoP_c0::m.field_0x8;
var_f29 = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed;
} else {
var_f29 = daAlinkHIO_move_c0::m.mMaxSpeed;
}
} else if (checkWolf()) {
var_f29 = daAlinkHIO_wlSlide_c0::m.field_0x70;
var_f29 = daAlinkHIO_wlSlide_c0::m.mClimbingMaxSpeedWeak;
} else {
var_f29 = daAlinkHIO_slide_c0::m.mMaxClimbSpeed;
}
@ -6600,7 +6599,7 @@ void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s
if (checkZoraWearAbility()) {
i_rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
} else {
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
}
}
@ -6795,14 +6794,14 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB,
if (i_anmA == ANM_WAIT_B && checkModeFlg(1)) {
i_morf = daAlinkHIO_move_c0::m.mWaitBInterpolation;
} else {
i_morf = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
i_morf = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
if (checkZoraWearAbility()) {
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed);
} else {
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate);
}
}
} else if (i_anmA == ANM_WAIT_B && checkModeFlg(1) && i_morf > 0.0f) {
@ -6812,7 +6811,7 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB,
if (checkZoraWearAbility()) {
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed);
} else {
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate);
}
}
}
@ -6881,7 +6880,7 @@ void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform* par
if (checkZoraWearAbility() && mProcID != PROC_FRONT_ROLL && mEquipItem == 0x103) {
param_2 *= daAlinkHIO_magneBoots_c0::m.mWaterVelRateSword * (1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed);
} else if (!checkZoraWearAbility()) {
param_2 *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate * (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate);
param_2 *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate * (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
}
}
@ -7101,7 +7100,7 @@ int daAlink_c::setUpperAnime(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, f
}
if (!checkZoraWearAbility() && (checkEquipAnime() || checkCutDashAnime()) && (checkNoResetFlg0(FLG0_UNDERWATER) || !checkNoResetFlg0(FLG0_SWIM_UP))) {
i_speed *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate * (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate);
i_speed *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate * (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
}
setFrameCtrl(&mUpperFrameCtrl[param_1], var_r30->getAttribute(), i_startFrame, i_endFrame, i_speed, var_f31);
@ -7462,7 +7461,7 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) {
var_f27 = 19.0f;
}
var_f29 = daAlinkHIO_basic_c0::m.mWaitTurnSpeed;
var_f29 = daAlinkHIO_basic_c0::m.mRotationASpeed;
var_f28 = 0.85f + (0.001f * abs(sp8));
if (var_f28 > 1.0f) {
var_f28 = 1.0f;
@ -8542,12 +8541,12 @@ void daAlink_c::setFrontWallType() {
if (checkWolf()) {
if (checkModeFlg(2)) {
hang_height = daAlinkHIO_wlAutoJump_c0::m.field_0x78;
hang_height = daAlinkHIO_wlAutoJump_c0::m.mHangLimitHeight;
} else {
hang_height = daAlinkHIO_wlWallHang_c0::m.field_0x84;
hang_height = daAlinkHIO_wlWallHang_c0::m.mClimbHeight;
}
small_jump_height = daAlinkHIO_wlWallHang_c0::m.field_0x7C;
climb_height = daAlinkHIO_wlWallHang_c0::m.field_0x80;
small_jump_height = daAlinkHIO_wlWallHang_c0::m.mSmallJumpHeight;
climb_height = daAlinkHIO_wlWallHang_c0::m.mWallGrabHeight;
} else {
if (checkModeFlg(2)) {
hang_height = daAlinkHIO_autoJump_c0::m.mHangHeightLimit;
@ -8630,11 +8629,11 @@ void daAlink_c::setFrontWallType() {
f32 sp14;
f32 sp10;
if (checkWolf()) {
sp14 = 0.01f + daAlinkHIO_wlSwim_c0::m.field_0x7C;
sp10 = daAlinkHIO_wlSwim_c0::m.field_0x94;
sp14 = 0.01f + daAlinkHIO_wlSwim_c0::m.mClimbHeight;
sp10 = daAlinkHIO_wlSwim_c0::m.mClimbBelowWaterSurface;
} else {
sp14 = 0.01f + daAlinkHIO_swim_c0::m.mClimbHeight;
sp10 = daAlinkHIO_swim_c0::m.mUnderwaterClimbHeight;
sp10 = daAlinkHIO_swim_c0::m.mClimbWaterSurfaceUnder;
}
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
@ -9616,9 +9615,9 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) {
if (checkNoResetFlg3(FLG3_UNK_1000)) {
f32 sp18;
if (checkWolf()) {
sp18 = daAlinkHIO_wlSwim_c0::m.field_0x48;
sp18 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
} else {
sp18 = daAlinkHIO_swim_c0::m.mInitHeight;
sp18 = daAlinkHIO_swim_c0::m.mStartHeight;
}
f32 sp14 = cLib_minMaxLimit<f32>((mWaterY - (30.0f + current.pos.y)) / (sp18 - 30.0f), 0.0f, 1.0f);
@ -10623,9 +10622,9 @@ BOOL daAlink_c::checkAutoJumpAction() {
f32 sp10;
if (checkWolf()) {
if (checkWolfDashMode()) {
sp10 = daAlinkHIO_wlAutoJump_c0::m.field_0x44;
sp10 = daAlinkHIO_wlAutoJump_c0::m.mJumpLimitSpeed;
} else {
sp10 = daAlinkHIO_wlAutoJump_c0::m.field_0x64;
sp10 = daAlinkHIO_wlAutoJump_c0::m.mWeakJumpLimitSpeed;
}
sp18 = 0.0f;
} else {
@ -10701,7 +10700,7 @@ BOOL daAlink_c::checkAutoJumpAction() {
}
if (checkWolf()) {
return procWolfFallInit(1, daAlinkHIO_wlAutoJump_c0::m.field_0x54);
return procWolfFallInit(1, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
} else {
return procFallInit(1, sp24);
}
@ -11106,11 +11105,11 @@ BOOL daAlink_c::checkUpperItemAction() {
field_0x30f6--;
if (swordTrigger() || doTrigger()) {
field_0x30f6 -= daAlinkHIO_damCaught_c0::m.field_0x16;
field_0x30f6 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
}
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
field_0x30f6 -= daAlinkHIO_damCaught_c0::m.field_0x16;
field_0x30f6 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
}
if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_DK_CAUGHT)) {
@ -12507,15 +12506,15 @@ void daAlink_c::initGravity() {
if (checkWolf()) {
if (checkModeFlg(MODE_SWIMMING)) {
if (checkHeavyStateOn(1, 1)) {
gravity = -daAlinkHIO_wlSwim_c0::m.field_0x9C;
max_fall_speed = daAlinkHIO_wlSwim_c0::m.field_0xA0;
gravity = -daAlinkHIO_wlSwim_c0::m.mHeavyBuoyancy;
max_fall_speed = daAlinkHIO_wlSwim_c0::m.mHeavyMaxFallSpeed;
} else {
gravity = -daAlinkHIO_wlSwim_c0::m.field_0x60;
max_fall_speed = daAlinkHIO_wlSwim_c0::m.field_0x58;
gravity = -daAlinkHIO_wlSwim_c0::m.mBuoyancy;
max_fall_speed = daAlinkHIO_wlSwim_c0::m.mMaxFallSpeed;
}
} else {
gravity = daAlinkHIO_wlAutoJump_c0::m.field_0x58;
max_fall_speed = daAlinkHIO_wlAutoJump_c0::m.field_0x5c;
gravity = daAlinkHIO_wlAutoJump_c0::m.mGravity;
max_fall_speed = daAlinkHIO_wlAutoJump_c0::m.mMaxFallSpeed;
}
} else if (checkModeFlg(MODE_SWIMMING) || checkNoResetFlg0(FLG0_UNDERWATER)) {
max_fall_speed = getSwimMaxFallSpeed();
@ -12756,7 +12755,7 @@ void daAlink_c::posMove() {
}
if (getZoraSwim() && !checkZoraWearAbility()) {
speedF *= daAlinkHIO_swim_c0::m.mSurfaceSwimSpeedRate;
speedF *= daAlinkHIO_swim_c0::m.mFloatUpSwimSpeedRate;
}
f32 var_f31 = speedF;
@ -12807,7 +12806,7 @@ void daAlink_c::posMove() {
}
if (checkModeFlg(MODE_SWIMMING)) {
cLib_chasePos(&field_0x3750, cXyz::Zero, daAlinkHIO_damSwim_c0::m.field_0x84);
cLib_chasePos(&field_0x3750, cXyz::Zero, daAlinkHIO_damSwim_c0::m.mDeceleration);
current.pos += field_0x3750;
if (checkNoResetFlg0(FLG0_SWIM_UP) && mProcID != PROC_SWIM_DIVE) {
@ -12818,16 +12817,16 @@ void daAlink_c::posMove() {
speed.y = 0.0f;
} else if (checkWolf()) {
if (checkHeavyStateOn(1, 1)) {
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x9C;
speed.y += daAlinkHIO_wlSwim_c0::m.mHeavyBuoyancy;
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0xA4) {
speed.y = daAlinkHIO_wlSwim_c0::m.field_0xA4;
if (speed.y > daAlinkHIO_wlSwim_c0::m.mHeavyMaxSurfacingSpeed) {
speed.y = daAlinkHIO_wlSwim_c0::m.mHeavyMaxSurfacingSpeed;
}
} else {
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x60;
speed.y += daAlinkHIO_wlSwim_c0::m.mBuoyancy;
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0x5C) {
speed.y = daAlinkHIO_wlSwim_c0::m.field_0x5C;
if (speed.y > daAlinkHIO_wlSwim_c0::m.mMaxSurfacingSpeed) {
speed.y = daAlinkHIO_wlSwim_c0::m.mMaxSurfacingSpeed;
}
}
} else if (!checkEquipHeavyBoots() && getZoraSwim()) {
@ -12845,9 +12844,9 @@ void daAlink_c::posMove() {
speed.y += 1.0f;
} else {
if (checkZoraWearAbility() &&
mWaterY > current.pos.y + daAlinkHIO_swim_c0::m.mNormalFloatDepth)
mWaterY > current.pos.y + daAlinkHIO_swim_c0::m.mNormalBuoyancyWaterDepth)
{
speed.y += daAlinkHIO_swim_c0::m.mZoraFloatDepth;
speed.y += daAlinkHIO_swim_c0::m.mZoraClothesBuoyancy;
if (speed.y < 0.0f) {
speed.y = 0.0f;
@ -13379,7 +13378,7 @@ BOOL daAlink_c::checkRestartRoom() {
}
} else if (mLinkAcch.ChkGroundHit() && field_0x2fbd == 2) {
return procCoLavaReturnInit(1);
} else if ((checkModeFlg(0x40000) || (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mInitHeight)) && fopAcM_GetRoomNo(this) == 0 && checkStageName("F_SP114")) {
} else if ((checkModeFlg(0x40000) || (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mStartHeight)) && fopAcM_GetRoomNo(this) == 0 && checkStageName("F_SP114")) {
return procCoSwimFreezeReturnInit();
} else if (!checkCargoCarry() && (field_0x3174 == 4 || field_0x3174 == 10 || (-G_CM3D_F_INF == mLinkAcch.GetGroundH() && !checkModeFlg(0x40000)))) {
BOOL temp_r28 = mWaterY > mLinkAcch.GetGroundH();
@ -13557,7 +13556,7 @@ int daAlink_c::checkSceneChange(int exitID) {
exit_speed = 10.0f;
demo_stick = 0.6f;
} else {
exit_speed = daAlinkHIO_wlMoveNoP_c0::m.field_0x8;
exit_speed = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed;
demo_stick = 1.0f;
}
} else if (mNormalSpeed < 10.0f || var_r3) {
@ -13987,7 +13986,7 @@ BOOL daAlink_c::setItemActor() {
setGrabItemActor(actor);
dComIfGp_addSelectItemNum(mSelectItemId, -1);
field_0x33e4 = 38.0f;
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
}
mEquipItem = fpcNm_ITEM_NONE;
@ -14636,7 +14635,7 @@ void daAlink_c::setLight() {
}
} else {
if (checkNoResetFlg1(FLG1_UNK_80)) {
var_f31 = light_m->field_0xC;
var_f31 = light_m->mPower;
} else {
var_f31 = 0.0f;
}
@ -14654,19 +14653,19 @@ void daAlink_c::setLight() {
var_f29 = 0.2f;
}
cLib_chaseF(&field_0x33fc, var_f31, light_m->field_0xC * var_f29);
cLib_chaseF(&field_0x33fc, var_f31, light_m->mPower * var_f29);
cXyz spB8;
f32 var_f27;
if (field_0x33fc > 0.0f) {
GXColor spF0 = {0x00, 0x00, 0x00, 0xFF};
spF0.r = light_m->field_0x4;
spF0.g = light_m->field_0x6;
spF0.b = light_m->field_0x8;
spF0.r = light_m->mColorR;
spF0.g = light_m->mColorG;
spF0.b = light_m->mColorB;
Vec spC4 = {0.0f, 0.0f, 0.0f};
spC4.y = light_m->field_0x14;
spC4.z = light_m->field_0x18;
spC4.y = light_m->mYOffset;
spC4.z = light_m->mZOffset;
f32 var_f26;
if ((uintptr_t)light_m == (uintptr_t)&daAlinkHIO_wlLight_c0::m) {
@ -14695,7 +14694,7 @@ void daAlink_c::setLight() {
var_f26 = cM_sht2d(-shape_angle.y);
}
dKy_WolfEyeLight_set(&spB8, var_f27 + light_m->field_0xA, var_f26, (light_m->field_0x10 * field_0x33fc) / light_m->field_0xC, &spF0, field_0x33fc, light_m->field_0x0, light_m->field_0x1);
dKy_WolfEyeLight_set(&spB8, var_f27 + light_m->mXAngle, var_f26, (light_m->mWidth * field_0x33fc) / light_m->mPower, &spF0, field_0x33fc, light_m->mAngleAttenuationType, light_m->mDistanceAttenuationType);
}
}
@ -15034,7 +15033,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
if (((!checkEquipAnime() || !checkModeFlg(4)) && (!checkModeFlg(0x40000) || !checkWolfEnemyThrowAnime()) && !checkModeFlg(0x1000)) || (checkSwordTwirlAnime() && mProcID != PROC_ATN_ACTOR_WAIT && mProcID != PROC_ATN_ACTOR_MOVE) || (checkWolf() && checkFmChainGrabAnime() && checkModeFlg(0x40)) || checkNoResetFlg1(FLG1_UNK_10000000)) {
if ((!checkDkCaught2Anime() || mProcID != PROC_DAMAGE) && !checkNoSetUpperAnime()) {
resetUpperAnime(UPPER_2, daAlinkHIO_basic_c0::m.mAnmBlendFactor);
resetUpperAnime(UPPER_2, daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
if (checkBombItem(mEquipItem)) {
@ -15158,7 +15157,7 @@ BOOL daAlink_c::commonProcInitNotSameProc(daAlink_PROC procID) {
int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) {
commonProcInit(PROC_PREACTION_UNEQUIP);
mNormalSpeed = 0.0f;
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
allUnequip(0);
mProcVar4.field_0x3010 = 0;
@ -15335,7 +15334,7 @@ int daAlink_c::procWaitInit() {
commonProcInit(PROC_WAIT);
mNormalSpeed = 0.0f;
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
current.angle.y = shape_angle.y;
if (var_r30) {
@ -15399,7 +15398,7 @@ int daAlink_c::procMoveInit() {
return 0;
}
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setFootEffectProcType(3);
return 1;
}
@ -15417,8 +15416,8 @@ int daAlink_c::procMove() {
setBlendMoveAnime(-1.0f);
if (field_0x3174 != 8) {
field_0x30a0 =
cLib_minMaxLimit<s16>((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp,
daAlinkHIO_basic_c0::m.mNeckMaxDown);
cLib_minMaxLimit<s16>((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mHeadMaxTurnUp,
daAlinkHIO_basic_c0::m.mHeadMaxTurnDown);
}
}
@ -15431,7 +15430,7 @@ int daAlink_c::procAtnMoveInit() {
return 0;
}
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
return 1;
}
@ -15463,9 +15462,9 @@ int daAlink_c::procAtnActorWaitInit() {
}
if (checkAtnWaitAnime()) {
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
return 1;
@ -15492,7 +15491,7 @@ int daAlink_c::procAtnActorMoveInit() {
return 0;
}
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
return 1;
}
@ -15512,8 +15511,8 @@ int daAlink_c::procWaitTurnInit() {
return 0;
}
setSingleAnimeBaseSpeed(ANM_STEP_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setSingleAnimeBaseSpeed(ANM_STEP_TURN, daAlinkHIO_basic_c0::m.mRotationASpeed,
daAlinkHIO_basic_c0::m.mBasicInterpolation);
if (checkEventRun()) {
mNormalSpeed = 0.0f;
}
@ -15559,7 +15558,7 @@ int daAlink_c::procMoveTurnInit(int param_0) {
return 0;
}
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
dComIfGp_setPlayerStatus0(0, 0x800);
if (param_0 != 0) {
@ -15966,7 +15965,7 @@ int daAlink_c::procFrontRoll() {
if (checkInputOnR()) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_frontRoll_c0::m.mTurnRate,
daAlinkHIO_frontRoll_c0::m.mTurnMaxAngle,
daAlinkHIO_frontRoll_c0::m.mMaxTurnAngle,
daAlinkHIO_frontRoll_c0::m.mTurnMinAngle);
shape_angle.y = current.angle.y;
}
@ -17199,7 +17198,7 @@ int daAlink_c::procCoMetamorphoseInit() {
setSingleAnimeWolfBase(WANM_TRANSFORM_TO_HUMAN);
field_0x3588 = l_wolfBaseAnime;
field_0x347c = 0.5f;
field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed;
field_0x3480 = daAlinkHIO_basic_c0::m.mWolfToLinkCancelFrame;
mProcVar2.field_0x300c = shape_angle.x;
daMidna_c* midna = (daMidna_c*)getMidnaActor();
@ -17217,7 +17216,7 @@ int daAlink_c::procCoMetamorphoseInit() {
setSingleAnimeBase(ANM_TRANSFORM_TO_WOLF);
setMetamorphoseModel(1);
field_0x3588 = l_waitBaseAnime;
field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed;
field_0x3480 = daAlinkHIO_basic_c0::m.mLinkToWolfCancelFrame;
cXyz pos(current.pos.x + (cM_ssin(shape_angle.y) * 100.0f), current.pos.y + 300.0f,
current.pos.z + (cM_scos(shape_angle.y) * 100.0f));
@ -17299,7 +17298,7 @@ int daAlink_c::procCoMetamorphose() {
dComIfGp_evmng_cutEnd(mAlinkStaffId);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed, -1.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f);
}
@ -17345,7 +17344,7 @@ int daAlink_c::procCoMetamorphose() {
dComIfGp_evmng_cutEnd(mAlinkStaffId);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed, -1.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f);
}
@ -17462,7 +17461,7 @@ int daAlink_c::procCoMetamorphoseOnly() {
mProcVar3.field_0x300e = 1;
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14,
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed,
-1.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f);
@ -17513,7 +17512,7 @@ int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* param_0) {
current.pos.z = param_0->current.pos.z;
field_0x2f99 = 0x50;
current.angle.y = shape_angle.y;
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
return 1;
}
@ -17544,7 +17543,7 @@ int daAlink_c::procGoronRideWait() {
var_f31 = 1.0f - var_f31;
setDoubleAnime(var_f31, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_move_c0::m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f);
setDoubleAnime(var_f31, daAlinkHIO_basic_c0::m.mRotationASpeed, daAlinkHIO_move_c0::m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f);
current.angle.y = shape_angle.y;
}
@ -17985,13 +17984,13 @@ int daAlink_c::execute() {
if (mProcID == PROC_HOOKSHOT_FLY) {
var_f31 = current.pos.y - (field_0x598 * 0.5f);
} else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) {
var_f31 = (current.pos.y + -65.0f) - (daAlinkHIO_swim_c0::m.mInitHeight - 5.0f);
var_f31 = (current.pos.y + -65.0f) - (daAlinkHIO_swim_c0::m.mStartHeight - 5.0f);
} else {
var_f31 = current.pos.y;
}
if (!checkNoResetFlg0(FLG0_UNK_80) ||
mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight - 5.0f)
mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mStartHeight - 5.0f)
{
swimOutAfter(0);
}

File diff suppressed because it is too large Load Diff

View File

@ -3149,13 +3149,11 @@ const daAlinkHIO_wlAtLock_c1 daAlinkHIO_wlAtLock_c0::m = {
2.0f,
20.0f,
},
{
120,
100.0f,
550.0f,
25.0f,
85.0f,
},
120,
100.0f,
550.0f,
25.0f,
85.0f,
80.0f,
60.0f,
120.0f,
@ -3247,13 +3245,11 @@ const daAlinkHIO_wlPoint_c1 daAlinkHIO_wlPoint_c0::m = {
3.0f,
3.0f,
},
{
20,
1.0f,
3.0f,
5.0f,
50.0f,
},
20,
1.0f,
3.0f,
5.0f,
50.0f,
45.0f,
65.0f,
15.0f,

View File

@ -117,7 +117,7 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) {
setGrabItemActor(i_grabActor);
field_0x33e4 = 38.0f;
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
return 1;
}
@ -459,7 +459,7 @@ int daAlink_c::procBoomerangMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
} else {
offModeFlg(1);

View File

@ -290,7 +290,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.field_0x14);
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
} else {
allUnequip(mKeepItem == fpcNm_ITEM_KANTERA);
}

View File

@ -640,7 +640,7 @@ int daAlink_c::procBowMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
current.angle.y = shape_angle.y - 0x4000;
} else {

View File

@ -365,7 +365,7 @@ int daAlink_c::procCopyRodMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
} else {
offModeFlg(1);

View File

@ -177,8 +177,17 @@ bool daAlink_c::checkCutTurnInput() const {
/* 800D1424-800D1430 0CBD64 000C+00 7/7 0/0 0/0 .text getCutTurnDirection__9daAlink_cCFv
*/
// Debug version is correct, but breaks other versions due no longer inlining
int daAlink_c::getCutTurnDirection() const {
#if VERSION == VERSION_SHIELD_DEBUG
if (field_0x3180 < 0) {
return 1;
} else {
return 0;
}
#else
return field_0x3180 < 0;
#endif
}
/* 800D1430-800D1454 0CBD70 0024+00 17/17 0/0 0/0 .text resetCombo__9daAlink_cFi */

View File

@ -449,7 +449,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.field_0x14;
field_0x30f6 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
field_0x2f96 = 1;
field_0x2f97 = 6;
onNoResetFlg1(FLG1_UNK_100000);
@ -831,8 +831,8 @@ 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.field_0x50, daAlinkHIO_damNormal_c0::m.field_0x50);
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.field_0x52, daAlinkHIO_damNormal_c0::m.field_0x52);
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);
if (freeze_player) {
var_f31 = 0.0f;
@ -850,23 +850,23 @@ 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.field_0x0);
field_0x3478 = daAlinkHIO_damNormal_c0::m.field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_A, &daAlinkHIO_damNormal_c0::m.mFrontAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mFrontAnm.mCancelFrame;
} else if (direction == DIR_BACKWARD) {
setSingleAnimeParam(ANM_DMG_SMALL_B, &daAlinkHIO_damNormal_c0::m.field_0x14);
field_0x3478 = daAlinkHIO_damNormal_c0::m.field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_B, &daAlinkHIO_damNormal_c0::m.mRearAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRearAnm.mCancelFrame;
} else if (direction == DIR_LEFT) {
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &daAlinkHIO_damNormal_c0::m.field_0x28);
field_0x3478 = daAlinkHIO_damNormal_c0::m.field_0x28.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &daAlinkHIO_damNormal_c0::m.mLeftAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mLeftAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &daAlinkHIO_damNormal_c0::m.field_0x3C);
field_0x3478 = daAlinkHIO_damNormal_c0::m.field_0x3C.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &daAlinkHIO_damNormal_c0::m.mRightAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRightAnm.mCancelFrame;
}
current.angle.y = var_r29->atan2sX_Z();
mProcVar4.field_0x3010 = current.angle.y;
mNormalSpeed = var_r29->absXZ() * daAlinkHIO_damNormal_c0::m.field_0x58 + daAlinkHIO_damNormal_c0::m.field_0x54;
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;
}
@ -875,7 +875,7 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
field_0x347c = M_PI / (frame_ctrl->getEnd() - frame_ctrl->getStart());
if (freeze_player) {
frame_ctrl->setRate(daAlinkHIO_damNormal_c0::m.field_0x60);
frame_ctrl->setRate(daAlinkHIO_damNormal_c0::m.mIceDamageASpeed);
frame_ctrl->setEnd(7);
mNormalSpeed = 0.0f;
mProcVar0.mIceFreezeTimer = 90;
@ -898,7 +898,7 @@ int daAlink_c::procDamage() {
mBodyAngle.z = -mProcVar3.field_0x300e * var_f31;
mBodyAngle.y = 0;
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.field_0x5C);
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.mDeceleration);
if (checkFreezeDamage()) {
freezeTimerDamage();
@ -1070,11 +1070,11 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
var_r29 = &daAlinkHIO_wlDamHuge_c0::m;
}
setSpecialGravity(var_r29->field_0x54, maxFallSpeed, 0);
mProcVar4.field_0x3010 = var_r29->field_0x50;
field_0x3478 = var_r29->field_0x64;
field_0x347c = var_r29->field_0x68;
setSingleAnimeWolfBaseMorf((daAlink_c::daAlink_WANM)field_0x3198, var_r29->field_0x58);
setSpecialGravity(var_r29->mGravity, maxFallSpeed, 0);
mProcVar4.field_0x3010 = var_r29->mBodyRotationSpeed;
field_0x3478 = var_r29->mBounceSpeed;
field_0x347c = var_r29->mDeceleration;
setSingleAnimeWolfBaseMorf((daAlink_c::daAlink_WANM)field_0x3198, var_r29->mDamageInterp);
setFaceBasicTexture(FTANM_UNK_91);
} else {
if (param_1 != 0) {
@ -1083,11 +1083,11 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
var_r28 = &daAlinkHIO_damHuge_c0::m;
}
setSpecialGravity(var_r28->field_0xA4, maxFallSpeed, 0);
mProcVar4.field_0x3010 = var_r28->field_0xA0;
field_0x3478 = var_r28->field_0xB4;
field_0x347c = var_r28->field_0xB8;
setSingleAnimeBaseMorf((daAlink_c::daAlink_ANM)field_0x3198, var_r28->field_0xA8);
setSpecialGravity(var_r28->mGravity, maxFallSpeed, 0);
mProcVar4.field_0x3010 = var_r28->mBodyRotateRate;
field_0x3478 = var_r28->mBounceSpeed;
field_0x347c = var_r28->mDeceleration;
setSingleAnimeBaseMorf((daAlink_c::daAlink_ANM)field_0x3198, var_r28->mDamageBlend);
}
if (param_0 < 0) {
@ -1103,11 +1103,11 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
speed.y = field_0x340c;
} else {
if (checkWolf()) {
mNormalSpeed = var_r29->field_0x5C;
speed.y = var_r29->field_0x60;
mNormalSpeed = var_r29->mHorizontalSpeed;
speed.y = var_r29->mVerticalSpeed;
} else {
mNormalSpeed = var_r28->field_0xAC;
speed.y = var_r28->field_0xB0;
mNormalSpeed = var_r28->mHorizontalSpeed;
speed.y = var_r28->mVerticalSpeed;
}
if (param_0 == -6) {
@ -1134,9 +1134,9 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
}
} else {
if (checkWolf()) {
mNormalSpeed = var_r29->field_0x64;
mNormalSpeed = var_r29->mBounceSpeed;
} else {
mNormalSpeed = var_r28->field_0xB4;
mNormalSpeed = var_r28->mBounceSpeed;
}
current.pos.x += 35.0f * cM_ssin(current.angle.y);
@ -1270,7 +1270,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
setSingleAnimeBase(ANM_DMG_FBW);
field_0x32cc = 0x88;
field_0x3478 = var_r30->field_0x14.mCancelFrame;
field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame;
field_0x3480 = 39.0f;
field_0x3484 = 1000.0f;
} else if (param_0 < 0) {
@ -1288,7 +1288,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
var_f31 = 1.0f;
mProcVar0.field_0x3008 = -1;
field_0x3478 = var_r30->field_0x0.mCancelFrame;
field_0x3478 = var_r30->mFrontGetUpAnm.mCancelFrame;
field_0x3480 = 39.0f;
field_0x2f9d = 4;
field_0x3484 = 18.0f;
@ -1296,14 +1296,14 @@ 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.field_0x14.mInterpolation;
var_f30 = daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation;
}
field_0x3484 = 9.0f;
var_r28 = ANM_DMG_LARGE_LAND;
var_f29 = 9.0f;
var_r27 = -1;
field_0x3478 = var_r30->field_0x14.mCancelFrame;
field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame;
if (param_0 == -5 && mDemo.getParam1() > 0) {
mProcVar0.field_0x3008 = mDemo.getParam1();
@ -1331,27 +1331,27 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
field_0x2f9d = 4;
if (param_0 == 0x84) {
setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r30->field_0x14);
field_0x3478 = var_r30->field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r30->mBackGetUpAnm);
field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame;
mProcVar1.field_0x300a = 1;
field_0x3480 = 39.0f;
field_0x32cc = 0x88;
field_0x3484 = 9.0f;
} else if (param_0 == 0x85) {
setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r30->field_0x28);
field_0x3478 = var_r30->field_0x28.mCancelFrame;
setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r30->mLeftGetUpAnm);
field_0x3478 = var_r30->mLeftGetUpAnm.mCancelFrame;
field_0x3480 = 29.0f;
field_0x32cc = 0x89;
field_0x3484 = 6.0f;
} else if (param_0 == 0x86) {
setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r30->field_0x3C);
field_0x3478 = var_r30->field_0x3C.mCancelFrame;
setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r30->mRightGetUpAnm);
field_0x3478 = var_r30->mRightGetUpAnm.mCancelFrame;
field_0x3480 = 29.0f;
field_0x32cc = 0x8A;
field_0x3484 = 6.0f;
} else {
setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r30->field_0x0);
field_0x3478 = var_r30->field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r30->mFrontGetUpAnm);
field_0x3478 = var_r30->mFrontGetUpAnm.mCancelFrame;
field_0x3480 = 39.0f;
field_0x32cc = 0x87;
field_0x3484 = 18.0f;
@ -1383,7 +1383,7 @@ int daAlink_c::procLargeDamageUp() {
return 1;
}
setSingleAnime(ANM_DMG_LARGE_LAND, daAlinkHIO_damLarge_c0::m.field_0x14.mSpeed, 9.0f, -1, daAlinkHIO_damLarge_c0::m.field_0x14.mInterpolation);
setSingleAnime(ANM_DMG_LARGE_LAND, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mSpeed, 9.0f, -1, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation);
field_0x3198 = -3;
field_0x347c = 2.0f / (field_0x3478 - 9.0f);
}
@ -1492,19 +1492,19 @@ int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param_2,
if (param_0 == 0x84) {
field_0x3198 = 0x88;
setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r28->field_0x64);
setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r28->mBackWallHitAnm);
field_0x3080 = temp_r29 - 0x4000;
} else if (param_0 == 0x85) {
field_0x3198 = 0x89;
setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r28->field_0x78);
setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r28->mLeftWallHitAnm);
field_0x3082 = temp_r29 - 0x4000;
} else if (param_0 == 0x86) {
field_0x3198 = 0x8A;
setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r28->field_0x8C);
setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r28->mRightWallHitAnm);
field_0x3082 = 0x4000 - temp_r29;
} else {
field_0x3198 = 0x87;
setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r28->field_0x50);
setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r28->mFrontWallHitAnm);
field_0x3080 = 0x4000 - temp_r29;
}
}
@ -1544,9 +1544,9 @@ int daAlink_c::procCoPolyDamageInit() {
commonProcInit(PROC_POLY_DAMAGE);
if (checkWolf()) {
setSingleAnimeWolfParam(WANM_DMG_SMALL, &daAlinkHIO_wlDamage_c0::m.field_0x14);
setSingleAnimeWolfParam(WANM_DMG_SMALL, &daAlinkHIO_wlDamage_c0::m.mPolygonAnm);
voiceStart(Z2SE_WL_V_DAMAGE);
field_0x3478 = daAlinkHIO_wlDamage_c0::m.field_0x14.mCancelFrame;
field_0x3478 = daAlinkHIO_wlDamage_c0::m.mPolygonAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_DMG, &daAlinkHIO_damage_c0::m.mFloorDmgAnm);
field_0x3478 = daAlinkHIO_damage_c0::m.mFloorDmgAnm.mCancelFrame;
@ -1769,7 +1769,7 @@ int daAlink_c::procCoElecDamage() {
/* 800DB5B0-800DB610 0D5EF0 0060+00 2/2 0/0 0/0 .text procStEscapeInit__9daAlink_cFv */
int daAlink_c::procStEscapeInit() {
commonProcInit(PROC_HUMAN_ST_ESCAPE);
setSingleAnimeParam(ANM_FROZEN_FREE, &daAlinkHIO_damCaught_c0::m.field_0x0);
setSingleAnimeParam(ANM_FROZEN_FREE, &daAlinkHIO_damCaught_c0::m.mEscapeAnm);
mUnderFrameCtrl[0].setFrame(7.0f);
getNowAnmPackUnder(UNDER_0)->setFrame(7.0f);
@ -1785,7 +1785,7 @@ int daAlink_c::procStEscape() {
if (frameCtrl->checkAnmEnd()) {
checkNextAction(0);
} else if (frameCtrl->getFrame() > daAlinkHIO_damCaught_c0::m.field_0x0.mCancelFrame) {
} else if (frameCtrl->getFrame() > daAlinkHIO_damCaught_c0::m.mEscapeAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
}
@ -1808,7 +1808,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
field_0x28f8 = param_0;
mNormalSpeed = 0.0f;
mProcVar0.field_0x3008 = daAlinkHIO_damCaught_c0::m.field_0x14;
mProcVar0.field_0x3008 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x28f8);
if (temp_r3 != NULL) {
@ -1870,11 +1870,11 @@ int daAlink_c::procDkCaught() {
mProcVar0.field_0x3008--;
if (escapeTrigger()) {
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.field_0x16;
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
}
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.field_0x16;
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
}
if (mProcVar0.field_0x3008 < 0) {
@ -1905,7 +1905,7 @@ int daAlink_c::procScreamWaitInit() {
setScreamWaitAnime();
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
daAlinkHIO_basic_c0::m.mBasicInterpolation);
mProcVar2.field_0x300c = 0;
}
@ -2062,18 +2062,18 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
f32 var_f31;
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlDamNormal_c0::m.field_0x5C,
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlDamNormal_c0::m.mIceDamageAnmSpeed,
10.0f);
mUnderFrameCtrl[0].setEnd(3);
mUnderFrameCtrl[0].setAttribute(0);
setFaceBasicTexture(FTANM_UNK_90);
mMidnaAnm = 1;
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
} else {
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.field_0x60,
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.mIceDamageASpeed,
0.0f, 5, 10.0f);
voiceStart(Z2SE_AL_V_DAMAGE_FREEZE);
var_f31 = daAlinkHIO_swim_c0::m.mInitHeight;
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
}
seStartOnlyReverb(Z2SE_AL_FREEZE);

View File

@ -495,7 +495,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.field_0x8 / daAlinkHIO_move_c0::m.mMaxSpeed;
var_f27 = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
var_f27 *= var_f27;
} else {
var_f27 = 1.0f;
@ -862,12 +862,12 @@ void daAlink_c::resetDemoBck() {
mFaceBtkHeap.resetIdx();
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14,
daAlinkHIO_wlMove_c0::m.field_0x94);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed,
daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
setFaceBasicAnime(ANM_WAIT);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
}
@ -1742,12 +1742,12 @@ int daAlink_c::procCoTalkInit() {
mNormalSpeed = 0.0f;
if (var_r30 == 0) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.field_0xBC);
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mIdleInterpolation);
} else {
if (var_r30 == 1) {
field_0x2f99 = 13;
setSingleAnimeWolfBaseSpeed(WANM_CROUCH_WALK, 0.0f,
daAlinkHIO_wlLie_c0::m.field_0x40);
daAlinkHIO_wlLie_c0::m.mProneMoveInterp);
} else {
field_0x2f99 = 13;
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
@ -1924,9 +1924,9 @@ int daAlink_c::procCoUnequipInit() {
mProcVar3.field_0x300e = 0;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.field_0x94);
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
if (mDemo.getParam1() == 0) {
if (mEquipItem != fpcNm_ITEM_NONE) {
@ -2340,7 +2340,7 @@ int daAlink_c::procCoGetItem() {
field_0x2f99 = 12;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.field_0x94);
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
} else {
if (mEquipItem == fpcNm_ITEM_KANTERA) {
field_0x2f94 = 0;
@ -2352,7 +2352,7 @@ int daAlink_c::procCoGetItem() {
3.0f);
field_0x2f99 = 0x60;
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
}
}
@ -2422,7 +2422,7 @@ int daAlink_c::procDoorOpenInit() {
f32 start_f = 0.0f;
s16 end_f = -1;
field_0x3478 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
field_0x3478 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
mProcVar0.field_0x3008 = 0;
if (mDemo.getParam0() == 4) {
@ -2555,9 +2555,9 @@ int daAlink_c::procCoLookWaitInit() {
mNormalSpeed = 0.0f;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.field_0x94);
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
current.angle.y = shape_angle.y;
@ -2598,8 +2598,8 @@ int daAlink_c::procCoDemoPushPullWaitInit() {
if (checkWolf()) {
setSingleAnimeWolfBase(WANM_WAIT_PP);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.field_0x10,
daAlinkHIO_pushpull_c0::m.field_0x14);
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed,
daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
}
mNormalSpeed = 0.0f;
@ -2616,15 +2616,15 @@ int daAlink_c::procCoDemoPushMoveInit() {
if (mDemo.getParam0() != 0) {
setSingleAnimeWolfBase(WANM_PUSH);
} else {
setSingleAnimeWolf(WANM_PUSH_LIGHT, daAlinkHIO_wlPush_c0::m.field_0x8,
0.0f, 24, daAlinkHIO_wlPush_c0::m.field_0xC);
setSingleAnimeWolf(WANM_PUSH_LIGHT, daAlinkHIO_wlPush_c0::m.mPushAnmSpeed,
0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
}
} else {
if (mDemo.getParam0() != 0) {
setSingleAnimeBase(ANM_PUSH);
} else {
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, daAlinkHIO_pushpull_c0::m.field_0x18,
daAlinkHIO_pushpull_c0::m.field_0x1C);
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, daAlinkHIO_pushpull_c0::m.mPushASpeed,
daAlinkHIO_pushpull_c0::m.mPushInterpolation);
}
}
@ -2701,7 +2701,7 @@ int daAlink_c::procDemoBoomerangCatch() {
dComIfGp_evmng_cutEnd(mAlinkStaffId);
if (checkAnmEnd(mUnderFrameCtrl)) {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
}
return 1;
}
@ -2728,7 +2728,7 @@ int daAlink_c::procCoDeadInit(int param_0) {
if (checkNoResetFlg2(FLG2_FORCE_GAMEOVER)) {
if (param_0) {
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.field_0x70, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
}
@ -2990,9 +2990,9 @@ int daAlink_c::procCoCaughtInit() {
}
if (checkWolf()) {
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, daAlinkHIO_wlDamCaught_c0::m.field_0x8);
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, daAlinkHIO_wlDamCaught_c0::m.mWaitInterp);
} else {
setSingleAnimeBaseMorf(ANM_WAIT_START, daAlinkHIO_damCaught_c0::m.field_0x1C);
setSingleAnimeBaseMorf(ANM_WAIT_START, daAlinkHIO_damCaught_c0::m.mStandbyInterp);
}
if (chk_40000) {
@ -3142,7 +3142,7 @@ int daAlink_c::procCoFogDeadInit() {
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_FALL_LAND, 0.0f,
daAlinkHIO_wlDamFall_c0::m.field_0x3C);
daAlinkHIO_wlDamFall_c0::m.mAirAnmInterp);
} else {
setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f,
daAlinkHIO_damFall_c0::m.mFallAnmMorf);
@ -3194,8 +3194,8 @@ int daAlink_c::procWolfSmellWaitInit() {
return 1;
}
setSingleAnimeWolfBaseSpeed(WANM_SMELL, daAlinkHIO_wlChain_c0::m.field_0x54,
daAlinkHIO_wlChain_c0::m.field_0x58);
setSingleAnimeWolfBaseSpeed(WANM_SMELL, daAlinkHIO_wlChain_c0::m.mSniffAnmSpeed,
daAlinkHIO_wlChain_c0::m.mSniffInterp);
current.angle.y = shape_angle.y;
mNormalSpeed = 0.0f;
return 1;
@ -3352,7 +3352,7 @@ int daAlink_c::procCoGetReadySitInit() {
commonProcInit(PROC_GET_READY_SIT);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.field_0x70, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
mProcVar2.field_0x300c = 1;
} else {
setSingleAnime(ANM_TRES_OPEN_SMALL, 1.0f, 36.0f, -1, 3.0f);
@ -3462,13 +3462,13 @@ int daAlink_c::procWolfSnowEscape() {
if (mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &daAlinkHIO_wlSlide_c0::m.field_0x0);
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &daAlinkHIO_wlSlide_c0::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.field_0x70, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
field_0x2f99 = 0x30;
mProcVar3.field_0x300e = 1;
}
@ -4103,7 +4103,7 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
setSpecialGravity(0.0f, maxFallSpeed, 0);
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
daAlinkHIO_basic_c0::m.mBasicInterpolation);
if (checkDungeon() && !checkLv7DungeonShop()) {
createNpcTks(&current.pos, fopAcM_GetRoomNo(this), 4);
@ -4341,7 +4341,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
deleteEquipItem(FALSE, TRUE);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.field_0x70, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
}
@ -4463,7 +4463,7 @@ int daAlink_c::procCoWarp() {
f32 var_f1;
if (checkWolf()) {
var_f1 = daAlinkHIO_wlAutoJump_c0::m.field_0x58;
var_f1 = daAlinkHIO_wlAutoJump_c0::m.mGravity;
} else {
var_f1 = daAlinkHIO_autoJump_c0::m.mGravity;
}
@ -4571,7 +4571,7 @@ int daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s1
/* 80120534-80120580 11AE74 004C+00 4/4 0/0 0/0 .text commonFallInit__9daAlink_cFi */
int daAlink_c::commonFallInit(int param_0) {
if (checkWolf()) {
return procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.field_0x54);
return procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
} else {
return procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
}

View File

@ -440,9 +440,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.field_0x48;
spAC.y -= daAlinkHIO_wlSwim_c0::m.mStartHeight;
} else {
spAC.y -= daAlinkHIO_swim_c0::m.mInitHeight;
spAC.y -= daAlinkHIO_swim_c0::m.mStartHeight;
}
spB8.y = mWaterY;

View File

@ -93,7 +93,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.mAnmBlendFactor);
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
return true;
}
@ -159,7 +159,7 @@ void daAlink_c::setGrabUpperAnime(f32 param_0) {
if (checkZoraWearAbility()) {
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
} else {
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
}
}
@ -745,9 +745,9 @@ int daAlink_c::procGrabReadyInit() {
}
if (checkGrabCarryActor()) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.field_0x8C.mSpeed, daAlinkHIO_grab_c0::m.field_0x8C.mStartFrame, 9, daAlinkHIO_grab_c0::m.field_0x8C.mInterpolation);
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame, 9, daAlinkHIO_grab_c0::m.mFailAnm.mInterpolation);
mProcVar3.field_0x300e = 1;
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.field_0x8C.mStartFrame);
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame);
f32 var_f31;
if (fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_DO) {
@ -759,8 +759,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.field_0x0);
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.field_0x0.mEndFrame - daAlinkHIO_grab_c0::m.field_0x0.mStartFrame);
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);
mProcVar3.field_0x300e = 0;
}
@ -781,15 +781,15 @@ int daAlink_c::procGrabReady() {
if (checkAnmEnd(&mUnderFrameCtrl[0])) {
if (field_0x3198 != 0) {
setSingleAnime(ANM_PICK_UP_LARGE_START, daAlinkHIO_grab_c0::m.field_0x78.mSpeed, daAlinkHIO_grab_c0::m.field_0x78.mStartFrame, daAlinkHIO_grab_c0::m.field_0x78.mCancelFrame, daAlinkHIO_grab_c0::m.field_0x78.mInterpolation);
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);
field_0x3198 = 0;
} else {
procGrabUpInit();
}
} else if (mProcVar3.field_0x300e != 0) {
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.field_0x8C.mStartFrame), 0.0f);
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame), 0.0f);
} else {
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.field_0x0.mStartFrame));
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame));
}
return 1;
@ -801,11 +801,11 @@ int daAlink_c::procGrabUpInit() {
commonProcInit(PROC_GRAB_UP);
if (checkGrabCarryActor()) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.field_0x8C.mSpeed, 9.0f + daAlinkHIO_grab_c0::m.field_0x8C.mSpeed, daAlinkHIO_grab_c0::m.field_0x8C.mEndFrame, 0.0f);
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);
mProcVar3.field_0x300e = 1;
setCarryArmAngle(1.0f, 0.0f);
} else {
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.field_0x14);
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mLiftBackAnm);
mProcVar3.field_0x300e = 0;
setCarryArmAngle(0.0f, 1.0f);
}
@ -834,7 +834,7 @@ int daAlink_c::procGrabUp() {
return checkNextAction(0);
}
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > daAlinkHIO_grab_c0::m.field_0x14.mCancelFrame))) {
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > daAlinkHIO_grab_c0::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))) {
@ -875,13 +875,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.field_0xC8);
setUpperAnimeParam(0x17B, UPPER_2, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
field_0x343c = 14.0f;
} else if (checkGrabAnimeSide()) {
setUpperAnimeParam(0x51, UPPER_2, &daAlinkHIO_grab_c0::m.field_0xB4);
setUpperAnimeParam(0x51, UPPER_2, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
field_0x343c = 4.0f;
} else {
setUpperAnimeParam(0x170, UPPER_2, &daAlinkHIO_grab_c0::m.field_0x3C);
setUpperAnimeParam(0x170, UPPER_2, &daAlinkHIO_grab_c0::m.mLiftAnm);
field_0x343c = 5.0f;
}
@ -894,9 +894,9 @@ int daAlink_c::procGrabThrowInit(int param_0) {
}
if (checkGrabHeavyActor()) {
setSingleAnimeParam(ANM_THROW_HEAVY, &daAlinkHIO_grab_c0::m.field_0xC8);
setSingleAnimeParam(ANM_THROW_HEAVY, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
field_0x343c = 14.0f;
field_0x347c = daAlinkHIO_grab_c0::m.field_0xC8.mCancelFrame;
field_0x347c = daAlinkHIO_grab_c0::m.mIronBallThrowAnm.mCancelFrame;
mProcVar2.field_0x300c = 2;
} else if (checkGrabSideActor()) {
f32 var_f31;
@ -906,15 +906,15 @@ int daAlink_c::procGrabThrowInit(int param_0) {
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
}
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setUpperAnimeParam(0x51, UPPER_0, &daAlinkHIO_grab_c0::m.field_0xB4);
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, daAlinkHIO_basic_c0::m.mBasicInterpolation);
setUpperAnimeParam(0x51, UPPER_0, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
field_0x343c = 4.0f;
field_0x347c = daAlinkHIO_grab_c0::m.field_0xB4.mCancelFrame;
field_0x347c = daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm.mCancelFrame;
mProcVar2.field_0x300c = 1;
} else {
setSingleAnimeParam(ANM_THROW, &daAlinkHIO_grab_c0::m.field_0x3C);
setSingleAnimeParam(ANM_THROW, &daAlinkHIO_grab_c0::m.mLiftAnm);
field_0x343c = 5.0f;
field_0x347c = daAlinkHIO_grab_c0::m.field_0x3C.mCancelFrame;
field_0x347c = daAlinkHIO_grab_c0::m.mLiftAnm.mCancelFrame;
mProcVar2.field_0x300c = 0;
}
@ -980,15 +980,15 @@ int daAlink_c::procGrabPutInit() {
if (checkGrabCarryActor()) {
field_0x3198 = 0;
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.field_0xA0.mSpeed, 9.0f, daAlinkHIO_grab_c0::m.field_0xA0.mEndFrame, daAlinkHIO_grab_c0::m.field_0xA0.mInterpolation);
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, 9.0f, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mInterpolation);
mProcVar3.field_0x300e = 1;
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.field_0xA0.mEndFrame - 9.0f);
field_0x3480 = 1.0f / (daAlinkHIO_grab_c0::m.field_0xA0.mEndFrame - field_0x3478);
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - 9.0f);
field_0x3480 = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - field_0x3478);
} else {
mProcVar3.field_0x300e = 0;
field_0x3198 = 0;
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.field_0x50);
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.field_0x50.mEndFrame - daAlinkHIO_grab_c0::m.field_0x50.mStartFrame);
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);
}
if (mGrabItemAcKeep.getActor() != NULL) {
@ -1037,7 +1037,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.field_0x50.mStartFrame));
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame));
}
return 1;
@ -1060,7 +1060,7 @@ int daAlink_c::procGrabWaitInit() {
return 0;
}
f32 var_f31 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
f32 var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
if (!checkGrabAnime()) {
setGrabUpperAnime(-1.0f);
} else {
@ -1071,12 +1071,12 @@ int daAlink_c::procGrabWaitInit() {
if (checkZoraWearAbility() ) {
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
} else {
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
}
}
if (checkAttentionLock() && (checkGrabAnimeUp() || checkGrabAnimeSide())) {
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
} else {
setBlendMoveAnime(var_f31);
}
@ -1117,7 +1117,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.field_0x64);
setSingleAnimeParam(ANM_PICK_UP_LARGE, &daAlinkHIO_grab_c0::m.mCarryAnm);
mNormalSpeed = 0.0f;
field_0x3198 = param_0;
@ -1141,10 +1141,10 @@ int daAlink_c::procGrabRebound() {
if (field_0x3198 != 0) {
if (field_0x2060->getOldFrameRate() < 0.1f) {
setWaterInAnmRate(temp_r30, daAlinkHIO_grab_c0::m.field_0x64.mSpeed);
setWaterInAnmRate(temp_r30, daAlinkHIO_grab_c0::m.mCarryAnm.mSpeed);
field_0x3198 = 0;
}
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > daAlinkHIO_grab_c0::m.field_0x64.mCancelFrame))) {
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > daAlinkHIO_grab_c0::m.mCarryAnm.mCancelFrame))) {
initGrabNextMode();
}
@ -1156,14 +1156,14 @@ int daAlink_c::procGrabStandInit() {
commonProcInit(PROC_GRAB_STAND);
if (checkUnderMove0BckNoArc(ANM_CARRY)) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.field_0xA0.mSpeed, daAlinkHIO_grab_c0::m.field_0xA0.mStartFrame, (9.0f + daAlinkHIO_grab_c0::m.field_0xA0.mSpeed), 0.0f);
field_0x3478 = daAlinkHIO_grab_c0::m.field_0xA0.mCancelFrame;
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.field_0xA0.mStartFrame);
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);
mProcVar3.field_0x300e = 1;
setCarryArmAngle(1.0f, 0.0f);
} else {
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.field_0x28);
field_0x3478 = daAlinkHIO_grab_c0::m.field_0x28.mCancelFrame;
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mStandReverseAnm);
field_0x3478 = daAlinkHIO_grab_c0::m.mStandReverseAnm.mCancelFrame;
mProcVar3.field_0x300e = 0;
}
@ -1184,7 +1184,7 @@ int daAlink_c::procGrabStand() {
onModeFlg(4);
if (!checkNextAction(1) && mProcVar3.field_0x300e != 0) {
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.field_0xA0.mStartFrame), 0.0f);
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame), 0.0f);
}
}
@ -1295,7 +1295,7 @@ int daAlink_c::procPickUpInit() {
fopAcM_onSwitch(field_0x27f4, 0x3F);
var_r29 = 0;
} else {
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.field_0x0);
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mGrabAnm);
mProcVar3.field_0x300e = 0;
mProcVar4.field_0x3010 = 0;
var_r29 = 1;
@ -1330,7 +1330,7 @@ int daAlink_c::procPickUp() {
}
} else if (checkAnmEnd(temp_r30)) {
checkNextAction(0);
} else if (temp_r30->getFrame() > daAlinkHIO_pickUp_c0::m.field_0x0.mCancelFrame) {
} else if (temp_r30->getFrame() > daAlinkHIO_pickUp_c0::m.mGrabAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
} else if (temp_r30->checkPass(9.0f)) {
@ -1352,7 +1352,7 @@ int daAlink_c::procPickPutInit(int param_0) {
commonProcInit(PROC_PICK_PUT);
mNormalSpeed = 0.0f;
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.field_0x14);
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
if (mItemAcKeep.getActor() != NULL) {
field_0x37c8 = mItemAcKeep.getActor()->current.pos;
@ -1389,7 +1389,7 @@ int daAlink_c::procPickPut() {
if (checkAnmEnd(temp_r28)) {
checkNextAction(0);
} else if (temp_r28->getFrame() < daAlinkHIO_pickUp_c0::m.field_0x14.mCancelFrame) {
} else if (temp_r28->getFrame() < daAlinkHIO_pickUp_c0::m.mPlaceAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
} else if (temp_r28->checkPass(9.0f)) {
@ -1502,7 +1502,7 @@ int daAlink_c::procFmChainUpInit() {
}
commonProcInit(PROC_CHAIN_UP);
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &daAlinkHIO_fmChain_c0::m.field_0x0);
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &daAlinkHIO_fmChain_c0::m.mGripAnm);
mNormalSpeed = 0.0f;
return 1;
}
@ -1514,7 +1514,7 @@ int daAlink_c::procFmChainUp() {
setGrabStatus(0x96, 2);
setShapeAngleToAtnActor(0);
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > daAlinkHIO_fmChain_c0::m.field_0x0.mCancelFrame)) {
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > daAlinkHIO_fmChain_c0::m.mGripAnm.mCancelFrame)) {
u8 temp_r27 = field_0x2fa3;
fopAc_ac_c* temp_r28 = field_0x2844.getActor();
@ -1708,14 +1708,14 @@ f32 daAlink_c::getPushPullAnimeSpeed() {
getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Bemos)
{
if (checkWolf()) {
var_f31 = daAlinkHIO_wlPush_c0::m.field_0x10;
var_f31 = daAlinkHIO_wlPush_c0::m.mHeavyPushAnmSpeed;
} else {
var_f31 = daAlinkHIO_pushpull_c0::m.field_0x38;
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeedHeavy;
}
} else if (checkWolf()) {
var_f31 = daAlinkHIO_wlPush_c0::m.field_0x8;
var_f31 = daAlinkHIO_wlPush_c0::m.mPushAnmSpeed;
} else {
var_f31 = daAlinkHIO_pushpull_c0::m.field_0x18;
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeed;
}
return var_f31;
@ -1734,14 +1734,14 @@ int daAlink_c::procCoPushPullWaitInit(int param_0) {
f32 var_f31;
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, daAlinkHIO_wlPush_c0::m.field_0x0, daAlinkHIO_wlPush_c0::m.field_0x4);
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, daAlinkHIO_wlPush_c0::m.mIdleAnmSpeed, daAlinkHIO_wlPush_c0::m.mIdleInterp);
var_f31 = 50.0f;
} else {
if (checkEquipAnime()) {
resetUpperAnime(UPPER_2, -1.0f);
}
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.field_0x10, daAlinkHIO_pushpull_c0::m.field_0x14);
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed, daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
var_f31 = 50.0f;
}
@ -1815,7 +1815,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.field_0xC);
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
}
field_0x3478 = 17.0f;
@ -1824,7 +1824,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.field_0x1C);
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPushInterpolation);
}
field_0x3478 = 15.0f;
@ -1953,7 +1953,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.field_0x24);
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPullInterpolation);
}
mUnderFrameCtrl[0].setRate(var_f31);

View File

@ -291,12 +291,12 @@ int daAlink_c::procHangStartInit() {
if (checkHangFootWall()) {
if (!hang_ready && cM_rnd() < 0.7f) {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.field_0x14);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_FOOT_MISS);
} else {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.field_0x0);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_JUMP_HANG);
}
@ -488,8 +488,8 @@ int daAlink_c::procHangWaitInit() {
commonProcInit(PROC_HANG_WAIT);
if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) {
setSingleAnime(ANM_CLIMB_HANG, 0.0f, daAlinkHIO_ladder_c0::m.field_0x0.mEndFrame,
daAlinkHIO_ladder_c0::m.field_0x0.mEndFrame, 5.0f);
setSingleAnime(ANM_CLIMB_HANG, 0.0f, daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame,
daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame, 5.0f);
field_0x2f92 = 0xFE;
field_0x2f93 = 0xFE;
} else {
@ -1203,7 +1203,7 @@ int daAlink_c::setLadderInit() {
if (checkModeFlg(0x40000)) {
setLadderPos(getLadderUnitCount() - 2);
while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mInitHeight) {
while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mStartHeight) {
current.pos.y += 37.5f;
}
@ -1281,8 +1281,8 @@ void daAlink_c::setLadderPos(int param_0) {
/* 800FD288-800FD2AC 0F7BC8 0024+00 2/2 0/0 0/0 .text getLadderMoveAnmSpeed__9daAlink_cFv
*/
f32 daAlink_c::getLadderMoveAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x48,
daAlinkHIO_ladder_c0::m.field_0x4C);
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mMoveMinASpeed,
daAlinkHIO_ladder_c0::m.mMoveMaxSpeed);
}
/* 800FD2AC-800FD4A8 0F7BEC 01FC+00 3/3 0/0 0/0 .text changeLadderMoveProc__9daAlink_cFi
@ -1384,8 +1384,8 @@ int daAlink_c::procLadderUpStartInit() {
mNormalSpeed = 0.0f;
speedF = 0.0f;
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, daAlinkHIO_ladder_c0::m.field_0x28,
daAlinkHIO_ladder_c0::m.field_0x2C);
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, daAlinkHIO_ladder_c0::m.mClimbUpStartASpeed,
daAlinkHIO_ladder_c0::m.mClimbUpStartInterp);
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
dComIfGp_setPlayerStatus0(0, 0x2000000);
@ -1431,8 +1431,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
commonProcInit(PROC_LADDER_UP_END);
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT;
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.field_0x30,
daAlinkHIO_ladder_c0::m.field_0x34);
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbUpEndASpeed,
daAlinkHIO_ladder_c0::m.mClimbUpEndInterp);
field_0x2f99 = 14;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@ -1459,7 +1459,7 @@ int daAlink_c::procLadderUpEnd() {
if (checkAnmEnd(frame_ctrl)) {
checkNextAction(0);
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.field_0x58) ||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbUpEndCF) ||
!checkNextAction(1))
{
if (frame_ctrl->getFrame() >= 23.0f) {
@ -1493,8 +1493,8 @@ int daAlink_c::procLadderDownStartInit() {
shape_angle.y = field_0x306e + 0x8000;
current.angle.y = field_0x306e;
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, daAlinkHIO_ladder_c0::m.field_0x38,
daAlinkHIO_ladder_c0::m.field_0x3C);
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, daAlinkHIO_ladder_c0::m.mClimbDownStartASpeed,
daAlinkHIO_ladder_c0::m.mClimbDownStartInterp);
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
dComIfGp_setPlayerStatus0(0, 0x2000000);
@ -1548,8 +1548,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
commonProcInit(PROC_LADDER_DOWN_END);
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT;
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.field_0x40,
daAlinkHIO_ladder_c0::m.field_0x44);
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbDownEndASpeed,
daAlinkHIO_ladder_c0::m.mClimbDownEndInterp);
field_0x2f99 = 14;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@ -1571,7 +1571,7 @@ int daAlink_c::procLadderDownEnd() {
if (checkAnmEnd(frame_ctrl)) {
checkNextAction(0);
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.field_0x54) ||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbDownEndCF) ||
!checkNextAction(1))
{
if (frame_ctrl->getFrame() >= 11.0f) {
@ -1629,7 +1629,7 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) {
}
}
setSingleAnimeBaseSpeed(anm, anm_speed, daAlinkHIO_ladder_c0::m.field_0x50);
setSingleAnimeBaseSpeed(anm, anm_speed, daAlinkHIO_ladder_c0::m.mMoveInterp);
field_0x2f98 = param_1;
if (!param_1) {
@ -1679,14 +1679,14 @@ int daAlink_c::procLadderMove() {
/* 800FE010-800FE034 0F8950 0024+00 3/3 0/0 0/0 .text getClimbMoveUpDownAnmSpeed__9daAlink_cFv */
f32 daAlink_c::getClimbMoveUpDownAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x64,
daAlinkHIO_ladder_c0::m.field_0x68);
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallVerticalMinAnmSpeed,
daAlinkHIO_ladder_c0::m.mWallVerticalMaxAnmSpeed);
}
/* 800FE034-800FE058 0F8974 0024+00 4/4 0/0 0/0 .text getClimbMoveSideAnmSpeed__9daAlink_cFv */
f32 daAlink_c::getClimbMoveSideAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x5C,
daAlinkHIO_ladder_c0::m.field_0x60);
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallHorizontalMinAnmSpeed,
daAlinkHIO_ladder_c0::m.mWallHorizontalMaxAnmSpeed);
}
/* 800FE058-800FE114 0F8998 00BC+00 9/9 0/0 0/0 .text checkClimbCode__9daAlink_cFR13cBgS_PolyInfo
@ -2145,12 +2145,12 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
mNormalSpeed = 0.0f;
if (param_0 || var_r29 || cM_rnd() < 0.3f) {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.field_0x0);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_JUMP_HANG);
} else {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.field_0x14);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_FOOT_MISS);
}
@ -2158,7 +2158,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
dComIfGp_setPlayerStatus0(0, 8);
if (param_0) {
current.pos.y = field_0x34ec.y + daAlinkHIO_ladder_c0::m.field_0x6C;
current.pos.y = field_0x34ec.y + daAlinkHIO_ladder_c0::m.mWallApproachOffset;
}
field_0x2f99 = 2;
@ -2226,12 +2226,12 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) {
deleteEquipItem(TRUE, FALSE);
if (cM_rnd() < 0.7f) {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.field_0x0);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
mProcVar0.field_0x3008 = 0;
} else {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.field_0x14);
field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
mProcVar0.field_0x3008 = 1;
voiceStart(Z2SE_AL_V_FOOT_MISS);
}
@ -2614,14 +2614,14 @@ int daAlink_c::procClimbToRoof() {
/* 801005CC-801005F0 0FAF0C 0024+00 2/2 0/0 0/0 .text getRoofHangFMoveAnmSpeed__9daAlink_cCFv */
f32 daAlink_c::getRoofHangFMoveAnmSpeed() const {
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x24,
daAlinkHIO_roofHang_c0::m.field_0x28);
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinASpeed,
daAlinkHIO_roofHang_c0::m.mVertMoveMaxASpeed);
}
/* 801005F0-80100614 0FAF30 0024+00 2/2 0/0 0/0 .text getRoofHangSMoveAnmSpeed__9daAlink_cCFv */
f32 daAlink_c::getRoofHangSMoveAnmSpeed() const {
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x38,
daAlinkHIO_roofHang_c0::m.field_0x3C);
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mHorizMoveMinASpeed,
daAlinkHIO_roofHang_c0::m.mHorizMoveMaxASpeed);
}
/* 80100614-80100668 0FAF54 0054+00 3/3 0/0 0/0 .text
@ -2734,7 +2734,7 @@ int daAlink_c::checkNextActionRoofHang() {
int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1,
int param_2) {
commonProcInit(PROC_ROOF_HANG_START);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.field_0x0);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
mPolyInfo2.SetPolyInfo(param_0);
current.pos = param_1;
@ -2766,7 +2766,7 @@ int daAlink_c::procRoofHangStart() {
if (mProcVar0.field_0x3008 == 0 &&
(checkAnmEnd(frame_ctrl) ||
(checkInputOnR() &&
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.field_0x0.mCancelFrame)))
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.mRoofHangAnm.mCancelFrame)))
{
checkNextActionRoofHang();
} else if (checkAnmEnd(frame_ctrl)) {
@ -2797,7 +2797,7 @@ int daAlink_c::procRoofHangWaitInit(int param_0) {
}
}
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C, daAlinkHIO_roofHang_c0::m.field_0x20);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed, daAlinkHIO_roofHang_c0::m.mStandbyInterp);
current.angle.y = shape_angle.y;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@ -2846,7 +2846,7 @@ int daAlink_c::procRoofHangFrontMoveInit() {
frame = mUnderFrameCtrl[0].getFrame();
}
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, daAlinkHIO_roofHang_c0::m.field_0x2C);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, daAlinkHIO_roofHang_c0::m.mVertMoveInterp);
if (frame >= 0) {
mUnderFrameCtrl[0].setFrame(frame);
@ -2875,9 +2875,9 @@ int daAlink_c::procRoofHangFrontMove() {
checkNextActionRoofHang();
} else {
if (!checkAttentionLock()) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_roofHang_c0::m.field_0x14,
daAlinkHIO_roofHang_c0::m.field_0x16,
daAlinkHIO_roofHang_c0::m.field_0x18);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_roofHang_c0::m.mTurnAngleRate,
daAlinkHIO_roofHang_c0::m.mMaxTurnAngle,
daAlinkHIO_roofHang_c0::m.mMinTurnAngle);
if (field_0x2f98 == 0) {
shape_angle.y = current.angle.y;
@ -2893,8 +2893,8 @@ int daAlink_c::procRoofHangFrontMove() {
frame = frameCtrl->getFrame();
}
mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x30,
daAlinkHIO_roofHang_c0::m.field_0x34) *
mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinSpeed,
daAlinkHIO_roofHang_c0::m.mVertMoveMaxSpeed) *
cM_fsin((frame * M_PI) * 0.083333336f);
if (mNormalSpeed < 0.0f) {
mNormalSpeed = 0.0f;
@ -2951,7 +2951,7 @@ int daAlink_c::procRoofHangSideMoveInit() {
}
setSingleAnimeBaseSpeed(anm_id, getRoofHangSMoveAnmSpeed(),
daAlinkHIO_roofHang_c0::m.field_0x40);
daAlinkHIO_roofHang_c0::m.mHorizMoveInterp);
setSpecialGravity(0.0f, maxFallSpeed, 0);
f32 tmp_0 = 0.0f;
@ -2996,7 +2996,7 @@ int daAlink_c::procRoofHangTurnInit() {
f32 anm_speed;
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
anm_speed = -daAlinkHIO_roofHang_c0::m.field_0x44;
anm_speed = -daAlinkHIO_roofHang_c0::m.mInvertASpeed;
mProcVar0.field_0x3008 = 1;
shape_angle.y += 0x8000;
setOldRootQuaternion(0, -0x8000, 0);
@ -3005,7 +3005,7 @@ int daAlink_c::procRoofHangTurnInit() {
field_0x3478 = 0.0f;
field_0x347c = 10.0f;
} else {
anm_speed = daAlinkHIO_roofHang_c0::m.field_0x44;
anm_speed = daAlinkHIO_roofHang_c0::m.mInvertASpeed;
mProcVar0.field_0x3008 = 0;
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
field_0x3478 = 10.0f;
@ -3013,7 +3013,7 @@ int daAlink_c::procRoofHangTurnInit() {
}
current.angle.y = shape_angle.y;
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.field_0x48);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.mInvertInterp);
if (mProcVar0.field_0x3008 != 0) {
setFaceBasicTexture(FTANM_UNK_4);
@ -3071,7 +3071,7 @@ void daAlink_c::setRoofHangSwitch() {
int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
commonProcInit(PROC_ROOF_SWITCH_HANG);
deleteEquipItem(TRUE, FALSE);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.field_0x0);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
setSpecialGravity(0.0f, maxFallSpeed, 0);
f32 tmp_0 = 0.0f;
@ -3103,8 +3103,8 @@ int daAlink_c::procRoofSwitchHang() {
setRoofHangSwitch();
if (checkAnmEnd(mUnderFrameCtrl)) {
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C,
daAlinkHIO_roofHang_c0::m.field_0x20);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed,
daAlinkHIO_roofHang_c0::m.mStandbyInterp);
mProcVar2.field_0x300c = 1;
} else if (mProcVar2.field_0x300c != 0) {
setDoStatus(0x33);

View File

@ -1507,7 +1507,7 @@ int daAlink_c::procHookshotMove() {
if (field_0x2f98 != 2) {
field_0x2f98 = 2;
blend = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
blend = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
} else {
offModeFlg(1);

View File

@ -710,8 +710,8 @@ int daAlink_c::setSyncHorse(int param_0) {
s32 dir = getDirectionFromShapeAngle();
if (dir == DIR_FORWARD)
{
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm);
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
offNoResetFlg1(FLG1_UNK_1000);
}
}
@ -755,7 +755,7 @@ int daAlink_c::setSyncHorse(int param_0) {
setDoStatus(9);
if (doTrigger()) {
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
daAlink_ANM anm;
const daAlinkHIO_anm_c* anmparam_p = &daAlinkHIO_horse_c0::m.mWhipAnm;
anm = ANM_HORSE_LASH;
@ -829,7 +829,7 @@ int daAlink_c::setSyncHorse(int param_0) {
mProcID != PROC_HORSE_CUT_TURN) ||
field_0x2f8c == 10)
{
if ((var_r28 || field_0x3004 != daAlinkHIO_horse_c0::m.mNoWalkTime) && field_0x3004 != 0) {
if ((var_r28 || field_0x3004 != daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime) && field_0x3004 != 0) {
field_0x3004--;
}
@ -878,8 +878,8 @@ int daAlink_c::setSyncBoar(int param_0) {
{
int direction = getDirectionFromShapeAngle();
if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm);
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
}
}
@ -1067,10 +1067,10 @@ int daAlink_c::setRideSubjectAngle(s16 param_0) {
if (mTargetedActor != NULL) {
var_r30 = 10000;
} else {
var_r30 = daAlinkHIO_horse_c0::m.field_0x58;
var_r30 = daAlinkHIO_horse_c0::m.mSubjectiveDownwardMaxAngle;
}
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, daAlinkHIO_horse_c0::m.field_0x5A, var_r30);
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, daAlinkHIO_horse_c0::m.mSubjectiveUpwardMaxAngle, var_r30);
s16 temp_r29 = shape_angle.y - param_0;
if (checkHorseZelda()) {
@ -1118,7 +1118,7 @@ BOOL daAlink_c::checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndP
return TRUE;
}
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(daAlinkHIO_wlSlide_c0::m.field_0x5C)) {
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(daAlinkHIO_wlSlide_c0::m.mSlidingAngle)) {
return TRUE;
}
@ -1538,7 +1538,7 @@ int daAlink_c::procHorseRide() {
voiceStart(Z2SE_AL_V_RUSH_HORSE);
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
var_r26->onPlayerBackRideLash();
}
} else if (mProcVar2.field_0x300c == 0 && checkHorseRide()) {
@ -2158,7 +2158,7 @@ int daAlink_c::procHorseCut() {
/* 800F1894-800F194C 0EC1D4 00B8+00 3/3 0/0 0/0 .text procHorseCutChargeReadyInit__9daAlink_cFv */
int daAlink_c::procHorseCutChargeReadyInit() {
commonProcInit(PROC_HORSE_CUT_CHARGE_READY);
setUpperAnimeParam(0x96, UPPER_2, &daAlinkHIO_hoCutCharge_c0::m.field_0x0);
setUpperAnimeParam(0x96, UPPER_2, &daAlinkHIO_hoCutCharge_c0::m.mChargeAnm);
setFacePriBck(0xE8);
field_0x2f96 = 2;
@ -2222,12 +2222,12 @@ int daAlink_c::procHorseCutTurnInit() {
resetUnderAnime(UNDER_2, -1.0f);
}
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &daAlinkHIO_hoCutCharge_c0::m.field_0x28);
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &daAlinkHIO_hoCutCharge_c0::m.mSpinAnm);
setCutType(43);
setSyncRide(1);
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.field_0x50;
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.mSpinAttackRadius;
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
mProcVar4.field_0x3010 = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
mProcVar4.field_0x3010 = daAlinkHIO_hoCutCharge_c0::m.mSpinStopTime;
voiceStart(Z2SE_AL_V_KAITEN);
setCutWaterDropEffect();
setHorseZeldaDamage();
@ -2246,7 +2246,7 @@ int daAlink_c::procHorseCutTurn() {
procHorseWaitInit();
field_0x2060->initOldFrameMorf(4.0f, 0, 0x23);
} else {
if (temp_r30->getFrame() > daAlinkHIO_hoCutCharge_c0::m.field_0x28.mCancelFrame) {
if (temp_r30->getFrame() > daAlinkHIO_hoCutCharge_c0::m.mSpinAnm.mCancelFrame) {
if (orderTalk(1)) {
return 1;
}
@ -2261,7 +2261,7 @@ int daAlink_c::procHorseCutTurn() {
}
}
if (temp_r30->getFrame() >= daAlinkHIO_hoCutCharge_c0::m.field_0x48 && temp_r30->getFrame() < daAlinkHIO_hoCutCharge_c0::m.field_0x4C) {
if (temp_r30->getFrame() >= daAlinkHIO_hoCutCharge_c0::m.mSpinAttackStartFrame && temp_r30->getFrame() < daAlinkHIO_hoCutCharge_c0::m.mSpinAttackEndFrame) {
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_KAITENGIRI);
}
@ -2296,7 +2296,7 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
if (checkUnderMove0BckNoArc(ANM_HORSE_STOP) || checkUnderMove0BckNoArc(ANM_HORSE_STOP_TO_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_B) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_A) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) {
mProcVar4.field_0x3010 = 0;
mProcVar5.field_0x3012 = 0;
setUpperAnimeParam(anmIdx[4], UPPER_2, &daAlinkHIO_damHorse_c0::m.field_0x0);
setUpperAnimeParam(anmIdx[4], UPPER_2, &daAlinkHIO_damHorse_c0::m.mNoDirectionAnm);
} else {
cXyz* temp_r29 = getDamageVec(param_0);
@ -2304,11 +2304,11 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
f32 temp_f1 = cM_scos(shape_angle.y);
cXyz spC((temp_r29->z * -temp_f31) + (temp_r29->x * temp_f1), temp_r29->y, (temp_r29->z * temp_f1) + (temp_r29->x * temp_f31));
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -daAlinkHIO_damHorse_c0::m.field_0x28, daAlinkHIO_damHorse_c0::m.field_0x28);
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -daAlinkHIO_damHorse_c0::m.field_0x2A, daAlinkHIO_damHorse_c0::m.field_0x2A);
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle);
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle);
int direction = getDirectionFromAngle(cM_atan2s(-spC.x, -spC.z));
setUpperAnimeParam(anmIdx[direction], UPPER_2, &daAlinkHIO_damHorse_c0::m.field_0x14);
setUpperAnimeParam(anmIdx[direction], UPPER_2, &daAlinkHIO_damHorse_c0::m.mWithDirectionAnm);
}
setFacePriBck(0xEA);

View File

@ -54,7 +54,7 @@ void daAlink_c::setIronBallWaitUpperAnime(int param_0) {
if (!checkIronBallWaitAnime() && !checkIronBallPreSwingAnime() &&
(mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) {
setUpperAnimeBaseSpeed(0x19C, daAlinkHIO_ironBall_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
daAlinkHIO_basic_c0::m.mBasicInterpolation);
setFacePriBck(0xE8);
field_0x2f96 = 254;
field_0x2f97 = 5;
@ -997,7 +997,7 @@ int daAlink_c::procIronBallMove() {
if (field_0x2f98 != 2) {
field_0x2f98 = 2;
var_f31 = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
}
} else {
offModeFlg(1);

View File

@ -254,8 +254,8 @@ int daAlink_c::procCoSwimSubjectivityInit() {
setSubjectMode();
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlSwim_c0::m.field_0x88,
daAlinkHIO_wlSwim_c0::m.field_0x68);
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlSwim_c0::m.mIdleAnmSpeedWeak,
daAlinkHIO_wlSwim_c0::m.mIdleInterp);
} else {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
daAlinkHIO_swim_c0::m.mWaitInterpolation);

View File

@ -281,7 +281,7 @@ int daAlink_c::procSumouMove() {
if (mSpeedModifier > 0.0f && checkInputOnR()) {
int direction = getDirectionFromAngle(mStickAngle);
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
var_r31 = field_0x33ac * (daAlinkHIO_pushpull_c0::m.field_0xE * field_0x33ac);
var_r31 = field_0x33ac * (daAlinkHIO_pushpull_c0::m.mSumoRotationAngle * field_0x33ac);
if (direction == DIR_RIGHT) {
var_r31 = -var_r31;

View File

@ -38,13 +38,13 @@ bool daAlink_c::getZoraSwim() const {
*/
f32 daAlink_c::getSwimFrontMaxSpeed() const {
if (checkBootsOrArmorHeavy()) {
return daAlinkHIO_swim_c0::m.mUnderwaterMaxSinkSpeed;
return daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
} else if (checkZoraWearAbility()) {
return 14.0f;
} else if (checkSwimDashMode()) {
return daAlinkHIO_swim_c0::m.mDMaxSpeed;
return daAlinkHIO_swim_c0::m.mDashMaxSpeed;
} else {
return daAlinkHIO_swim_c0::m.mMaxForwardSpeed;
return daAlinkHIO_swim_c0::m.mForwardMaxSpeed;
}
}
@ -52,13 +52,13 @@ f32 daAlink_c::getSwimFrontMaxSpeed() const {
*/
f32 daAlink_c::getSwimMaxFallSpeed() const {
if (mProcID == PROC_DIVE_JUMP) {
return -daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed;
return -daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
} else if (checkBootsOrArmorHeavy()) {
return daAlinkHIO_swim_c0::m.mBootsMaxSinkSpeed;
return daAlinkHIO_swim_c0::m.mBootsMaxFallSpeed;
} else if (getZoraSwim()) {
return daAlinkHIO_swim_c0::m.mMaxSinkSpeed;
return daAlinkHIO_swim_c0::m.mMaxFallSpeed;
} else {
return daAlinkHIO_swim_c0::m.mInitMaxSinkSpeed;
return daAlinkHIO_swim_c0::m.mStandingMaxFallSpeed;
}
}
@ -121,7 +121,7 @@ void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
if (checkZoraWearAbility()) {
i_rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
} else {
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
}
}
@ -144,7 +144,7 @@ void daAlink_c::swimBgCheck(f32 param_0) {
var_r29 = field_0x3080;
} else {
var_r29 = mProcVar2.field_0x300c;
start_pos.y += daAlinkHIO_wlWallHang_c0::m.field_0x78;
start_pos.y += daAlinkHIO_wlWallHang_c0::m.mAutoWalkHeight;
}
f32 var_f28 = param_0 * cM_scos(var_r29);
@ -243,7 +243,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
}
cLib_addCalcAngleS(&shape_angle.y, var_r28, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
cLib_addCalcAngleS(&shape_angle.y, var_r28, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
}
current.angle.y = shape_angle.y;
@ -252,9 +252,9 @@ void daAlink_c::setSpeedAndAngleSwim() {
if (checkInputOnR()) {
s16 temp_r29_2 = shape_angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mTurnMax, daAlinkHIO_swim_c0::m.mTurnMin);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
} else {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
}
f32 var_f29;
@ -288,9 +288,9 @@ void daAlink_c::setSpeedAndAngleSwim() {
s16 temp_r29_3 = current.angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mTurnMax, daAlinkHIO_swim_c0::m.mTurnMin);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
} else {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
}
var_f30 = daAlinkHIO_swim_c0::m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
@ -300,8 +300,8 @@ void daAlink_c::setSpeedAndAngleSwim() {
}
f32 var_f28;
if (daAlinkHIO_swim_c0::m.mMaxForwardSpeed < mNormalSpeed && !checkZoraWearAbility()) {
var_f28 = daAlinkHIO_swim_c0::m.mDDeceleration;
if (daAlinkHIO_swim_c0::m.mForwardMaxSpeed < mNormalSpeed && !checkZoraWearAbility()) {
var_f28 = daAlinkHIO_swim_c0::m.mDashDeceleration;
} else {
var_f28 = daAlinkHIO_swim_c0::m.mDeceleration;
}
@ -376,10 +376,10 @@ int daAlink_c::checkSwimAction(int param_0) {
if (getMoveBGActorName(mLinkAcch.m_gnd, NULL) == PROC_Obj_ITA) {
var_f31 = 200.0f;
} else {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
}
} else {
var_f31 = daAlinkHIO_swim_c0::m.mInitHeight;
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
}
if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && !checkModeFlg(0x40000) && mProcID != PROC_MAGNE_BOOTS_FLY && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) && mDemo.getDemoMode() != 0x11) {
@ -389,12 +389,12 @@ int daAlink_c::checkSwimAction(int param_0) {
if (checkWolf()) {
if (checkWolfDashMode()) {
var_f29 = daAlinkHIO_wlSwim_c0::m.field_0x50;
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeed;
} else {
var_f29 = daAlinkHIO_wlSwim_c0::m.field_0x80;
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeedWeak;
}
var_f28 = daAlinkHIO_wlSwim_c0::m.field_0x58;
var_f28 = daAlinkHIO_wlSwim_c0::m.mMaxFallSpeed;
} else {
var_f29 = getSwimFrontMaxSpeed();
var_f28 = getSwimMaxFallSpeed();
@ -524,9 +524,9 @@ int daAlink_c::checkSwimUpAction() {
if (!getZoraSwim()) {
if (checkWolf()) {
field_0x3480 = daAlinkHIO_wlSwim_c0::m.field_0x48;
field_0x3480 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
} else {
cLib_addCalc(&field_0x3480, daAlinkHIO_swim_c0::m.mInitHeight, 0.5f, 15.0f, 1.0f);
cLib_addCalc(&field_0x3480, daAlinkHIO_swim_c0::m.mStartHeight, 0.5f, 15.0f, 1.0f);
}
} else {
field_0x3480 = 65.0f;
@ -534,9 +534,9 @@ int daAlink_c::checkSwimUpAction() {
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x4C;
var_f31 = daAlinkHIO_wlSwim_c0::m.mSurfacingHeight;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mResurfaceHeight;
var_f31 = daAlinkHIO_swim_c0::m.mFloatUpHeight;
}
if (!checkBootsOrArmorHeavy() && !checkNoResetFlg0(FLG0_SWIM_UP)) {
@ -614,9 +614,9 @@ BOOL daAlink_c::checkSwimFall() {
int daAlink_c::checkSwimOutAction() {
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mInitHeight;
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
}
if (checkSwimFall()) {
@ -627,10 +627,10 @@ int daAlink_c::checkSwimOutAction() {
current.angle.y = sp8.atan2sX_Z();
if (checkWolf()) {
if (mNormalSpeed > daAlinkHIO_wlAutoJump_c0::m.field_0x74) {
mNormalSpeed = daAlinkHIO_wlAutoJump_c0::m.field_0x74;
if (mNormalSpeed > daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed) {
mNormalSpeed = daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed;
}
return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.field_0x54);
return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
} else {
if (mNormalSpeed > daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed) {
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed;
@ -680,13 +680,13 @@ void daAlink_c::setSwimMoveAnime() {
BOOL var_r25 = 0;
if (field_0x2f98 == 4) {
f32 temp_f29 = daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed + daAlinkHIO_swim_c0::m.mUnderwaterButtonSpeed;
f32 temp_f29 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed + daAlinkHIO_swim_c0::m.mUnderwaterButtonAdditionalSpeed;
field_0x3478 = daAlinkHIO_swim_c0::m.mUnderwaterMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed;
if (field_0x594 < daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed) {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed;
if (field_0x594 < daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed) {
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
} else if (doTrigger()) {
field_0x594 += 0.75f;
if (field_0x594 > temp_f29) {
@ -708,10 +708,10 @@ void daAlink_c::setSwimMoveAnime() {
mProcVar5.field_0x3012 = 1;
}
} else if (!checkSwimMoveHandAnime()) {
cLib_chaseF(&field_0x594, daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed, 0.4f);
cLib_chaseF(&field_0x594, daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed, 0.4f);
}
var_f31 = 1.0f / daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed;
var_f31 = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(temp_r28)))) {
var_r29 = ANM_SWIM_ZORA_START;
@ -736,9 +736,9 @@ void daAlink_c::setSwimMoveAnime() {
}
if (checkSwimDashMode()) {
field_0x3478 = daAlinkHIO_swim_c0::m.mDMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mDMaxAnmSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mDMaxSpeed;
field_0x3478 = daAlinkHIO_swim_c0::m.mDashMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mDashMaxAnmSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mDashMaxSpeed;
} else {
field_0x3478 = daAlinkHIO_swim_c0::m.mForwardMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mForwardMaxAnmSpeed;
@ -754,7 +754,7 @@ void daAlink_c::setSwimMoveAnime() {
if (checkZoraWearAbility()) {
field_0x594 = 10.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxBackwardSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mBackwardMaxSpeed;
}
var_f31 = 1.0f / field_0x594;
@ -771,7 +771,7 @@ void daAlink_c::setSwimMoveAnime() {
if (checkZoraWearAbility()) {
field_0x594 = 12.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxStrafeSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mStrafeMaxSpeed;
}
var_f31 = 1.0f / field_0x594;
@ -785,7 +785,7 @@ void daAlink_c::setSwimMoveAnime() {
if (checkBootsOrArmorHeavy()) {
var_r29 = ANM_SWIM_WAIT;
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSinkSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
if (mEquipItem != fpcNm_ITEM_NONE && !checkHookshotAnime()) {
setDoStatus(4);
}
@ -818,7 +818,7 @@ void daAlink_c::setSwimMoveAnime() {
if (var_r29 != ANM_SWIM_WAIT && var_r29 != ANM_SWIM_DASH) {
f32 temp_f30 = var_f31 * fabsf(mNormalSpeed);
if (temp_f30 > 1.0f && field_0x2f98 == 4) {
temp_r28->setRate(daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * daAlinkHIO_swim_c0::m.mUnderwaterButtonAnmSpeed));
temp_r28->setRate(daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * daAlinkHIO_swim_c0::m.mUnderwaterAdditionalAnmSpeed));
} else {
temp_r28->setRate(field_0x3478 + (field_0x347c * temp_f30));
}
@ -915,12 +915,12 @@ void daAlink_c::setSwimUpDownOffset() {
f32 var_f1;
if (checkWolf()) {
if (checkHeavyStateOn(1, 1)) {
var_f1 = daAlinkHIO_wlSwim_c0::m.field_0x98;
var_f1 = daAlinkHIO_wlSwim_c0::m.mHeavyIdleUpDownSwayAmount;
} else {
var_f1 = daAlinkHIO_wlSwim_c0::m.field_0x6C;
var_f1 = daAlinkHIO_wlSwim_c0::m.mIdleUpDownSwayAmount;
}
} else {
var_f1 = daAlinkHIO_swim_c0::m.mWaitVibrationIntensity;
var_f1 = daAlinkHIO_swim_c0::m.mWaitUpDownShakeAmount;
}
field_0x2b98 = var_f1 * cM_ssin(mProcVar2.field_0x300c);
@ -939,11 +939,11 @@ int daAlink_c::procSwimUpInit() {
field_0x3080 = 0;
onNoResetFlg0(FLG0_SWIM_UP);
mZ2Link.setInWater(false);
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm);
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mFloatUpAnm);
dComIfGp_setPlayerStatus0(0, 0x100000);
mProcVar0.field_0x3008 = 0;
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3000 = 0;
seStartMapInfo(Z2SE_AL_OUTOF_WATER);
@ -970,7 +970,7 @@ int daAlink_c::procSwimUp() {
}
} else if (checkAnmEnd(frame_ctrl)) {
procSwimWaitInit(0);
} else if (frame_ctrl->getFrame() > daAlinkHIO_swim_c0::m.mResurfaceAnm.mCancelFrame &&
} else if (frame_ctrl->getFrame() > daAlinkHIO_swim_c0::m.mFloatUpAnm.mCancelFrame &&
checkInputOnR())
{
procSwimMoveInit();
@ -988,7 +988,7 @@ int daAlink_c::procSwimWaitInit(int param_0) {
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
offNoResetFlg0(FLG0_UNDERWATER);
current.pos.y += daAlinkHIO_swim_c0::m.mInitHeight;
current.pos.y += daAlinkHIO_swim_c0::m.mStartHeight;
}
commonProcInit(PROC_SWIM_WAIT);
@ -996,10 +996,10 @@ int daAlink_c::procSwimWaitInit(int param_0) {
if (param_0) {
seStartMapInfo(Z2SE_AL_INTO_WATER);
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
} else if (!mode_40000) {
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
}
swimDeleteItem();
@ -1098,7 +1098,7 @@ int daAlink_c::procSwimMoveInit() {
}
if (!mode_40000) {
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
mProcVar4.field_0x3010 = 0;
}
@ -1185,7 +1185,7 @@ int daAlink_c::procSwimDiveInit() {
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
mProcVar4.field_0x3010 = 0;
dComIfGp_setPlayerStatus0(0, 0x100000);
@ -1226,7 +1226,7 @@ int daAlink_c::procSwimDive() {
}
if (checkAnmEnd(frame_ctrl)) {
speed.y = daAlinkHIO_swim_c0::m.mMaxSinkSpeed;
speed.y = daAlinkHIO_swim_c0::m.mMaxFallSpeed;
if (mProcVar2.field_0x300c != 0) {
field_0x3080 = 0x2800;
@ -1272,7 +1272,7 @@ int daAlink_c::procSwimHookshotSubjectInit() {
mProcVar0.field_0x3008 = 0;
field_0x594 = getSwimFrontMaxSpeed();
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
mProcVar4.field_0x3010 = 0;
field_0x30d0 = 0;
@ -1350,7 +1350,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
field_0x3080 = 0;
}
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
mProcVar4.field_0x3010 = 0;
field_0x30d0 = 0;
@ -1437,16 +1437,16 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
}
f32 scale =
temp_r30->abs() * daAlinkHIO_damSwim_c0::m.field_0x80 + daAlinkHIO_damSwim_c0::m.field_0x7C;
if (scale > daAlinkHIO_damSwim_c0::m.field_0x88) {
scale = daAlinkHIO_damSwim_c0::m.field_0x88;
temp_r30->abs() * daAlinkHIO_damSwim_c0::m.mAttackSpeedRate + daAlinkHIO_damSwim_c0::m.mInitialSpeed;
if (scale > daAlinkHIO_damSwim_c0::m.mMaxSpeed) {
scale = daAlinkHIO_damSwim_c0::m.mMaxSpeed;
}
field_0x3750 = temp_r30->normZP();
field_0x3750 *= scale;
if (getZoraSwim()) {
setUpperAnimeParam(0xBF, UPPER_2, &daAlinkHIO_damSwim_c0::m.field_0x50);
setUpperAnimeParam(0xBF, UPPER_2, &daAlinkHIO_damSwim_c0::m.mSinkAnm);
setFacePriBck(0xEA);
setFacePriTexture(FTANM_UNK_27);
return 1;
@ -1458,36 +1458,36 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
mProcVar0.field_0x3008 =
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.field_0x78,
(s16)daAlinkHIO_damSwim_c0::m.field_0x78);
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle,
(s16)daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle);
mProcVar1.field_0x300a = cLib_minMaxLimit(
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
(s16)-daAlinkHIO_damSwim_c0::m.field_0x7A, (s16)daAlinkHIO_damSwim_c0::m.field_0x7A);
(s16)-daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle, (s16)daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle);
int dir = getDirectionFromAngle(cM_atan2s(-sp24.x, -sp24.z));
if (bvar4) {
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.field_0x64);
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x64.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.mSurfaceAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mSurfaceAnm.mCancelFrame;
mProcVar0.field_0x3008 = 0;
mProcVar1.field_0x300a = 0;
} else if (dir == DIR_FORWARD) {
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.field_0x0);
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x0.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.mFrontAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mFrontAnm.mCancelFrame;
} else if (dir == DIR_BACKWARD) {
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &daAlinkHIO_damSwim_c0::m.field_0x14);
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x14.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &daAlinkHIO_damSwim_c0::m.mRearAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRearAnm.mCancelFrame;
} else if (dir == DIR_LEFT) {
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &daAlinkHIO_damSwim_c0::m.field_0x28);
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x28.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &daAlinkHIO_damSwim_c0::m.mLeftAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mLeftAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &daAlinkHIO_damSwim_c0::m.field_0x3C);
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x3C.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &daAlinkHIO_damSwim_c0::m.mRightAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRightAnm.mCancelFrame;
}
mNormalSpeed = 0.0f;
field_0x347c = M_PI / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
current.angle.y = shape_angle.y;
return 1;

View File

@ -290,7 +290,7 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
}
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.field_0x70, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
}

File diff suppressed because it is too large Load Diff

View File

@ -148,7 +148,7 @@ void daNpc_Bans_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORFile jorFile;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (jorFile.open(6, "", NULL, NULL, NULL)) {
memset(buffer, 0, sizeof(buffer));

View File

@ -96,7 +96,7 @@ void daNpc_Kn_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORFile aJStack_910;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
memset(msg_buffer, 0, sizeof(msg_buffer));

View File

@ -77,7 +77,7 @@ void daNpc_Toby_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORFile aJStack_910;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
memset(msg_buffer, 0, 2000);

View File

@ -596,7 +596,7 @@ void daNpcWrestler_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORFile aJStack_910;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
memset(msg_buffer, 0, 2000);

View File

@ -54,7 +54,7 @@ void daNpc_yamiD_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORFile aJStack_910;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
memset(auStack_7e0, 0, 2000);

View File

@ -84,7 +84,7 @@ void daNpc_Zelda_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORReflexible::listenPropertyEvent(event);
JORFile aJStack_910;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (aJStack_910.open(6, "", NULL, NULL, NULL) != 0) {
memset(auStack_7e0, 0, 2000);

View File

@ -62,7 +62,7 @@ void daObj_ItaMato_HIO_c::listenPropertyEvent(const JORPropertyEvent* i_event) {
JORReflexible::listenPropertyEvent(i_event);
JORFile jorFile;
switch (reinterpret_cast<u32>(i_event->id)) {
switch ((u32)i_event->id) {
case 0x40000002:
if (jorFile.open(6, "すべてのファイル(*.*)", NULL, NULL, NULL)) {
memset(buffer, 0, sizeof(buffer));

View File

@ -46,7 +46,7 @@ void daObj_Pumpkin_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
JORReflexible::listenPropertyEvent(event);
JORFile file_handle;
int len;
switch (reinterpret_cast<u32>(event->id)) {
switch ((u32)event->id) {
case 0x40000002:
if (file_handle.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
memset(msg_buffer, 0, 2000);