mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-14 14:08:07 -04:00
d_a_player_battle 100%
This commit is contained in:
+1
-1
@@ -1445,7 +1445,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_tsubo"),
|
||||
ActorRel(NonMatching, "d_a_warpdm20"),
|
||||
ActorRel(NonMatching, "d_a_warphr"),
|
||||
ActorRel(Matching, "d_a_wbird"),
|
||||
ActorRel(Matching, "d_a_wbird"),
|
||||
ActorRel(NonMatching, "d_a_ykgr"),
|
||||
ActorRel(Matching, "d_a_alldie"),
|
||||
ActorRel(Matching, "d_a_am", extra_cflags=['-pragma "nosyminline on"']),
|
||||
|
||||
@@ -1436,7 +1436,7 @@ public:
|
||||
BOOL procSwimWait();
|
||||
BOOL procSwimMove_init(BOOL);
|
||||
BOOL procSwimMove();
|
||||
void setSpecialBattle(int);
|
||||
void setSpecialBattle(BOOL);
|
||||
int changeSpecialBattle();
|
||||
BOOL procBtJump_init(fopEn_enemy_c*);
|
||||
BOOL procBtJump();
|
||||
|
||||
@@ -346,7 +346,7 @@ void daArrow_c::ShieldReflect() {
|
||||
cXyz ganondorfChestPos = ganondorf->current.pos;
|
||||
ganondorfChestPos.y = 130.0f + REG8_F(0);
|
||||
targetAngleX = -cLib_targetAngleX(&link->current.pos, &ganondorfChestPos);
|
||||
fpcM_SetParam(ganondorf, 0x23);
|
||||
fopAcM_SetParam(ganondorf, 0x23);
|
||||
mSparkleTimer = 15 + REG0_S(3);
|
||||
mpSparkleEmitter = dComIfGp_particle_set(dPa_name::ID_COMMON_03EE, &link->current.pos);
|
||||
}
|
||||
@@ -738,7 +738,7 @@ BOOL daArrow_c::procMove() {
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
fopAcM_seStartCurrent(this, JA_SE_LK_ARROW_REBOUND, 0x20);
|
||||
} else if (hitType == 2) { // Hit a joint
|
||||
fpcM_SetParam(this, 2);
|
||||
fopAcM_SetParam(this, 2);
|
||||
mCurrProcFunc = &daArrow_c::procStop_Actor;
|
||||
|
||||
if (mArrowType == TYPE_FIRE) {
|
||||
|
||||
+142
-144
@@ -15,69 +15,75 @@
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
|
||||
/* 8013E250-8013E384 .text setSpecialBattle__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setSpecialBattle(int param_0) {
|
||||
fopEn_enemy_c* pfVar3;
|
||||
|
||||
if ((param_0 == 0) || (!strcmp(dComIfGp_getStartStageName(), "GTower"))) {
|
||||
if (mpAttnEntryA != NULL && mpAttnEntryA->mType == fopAc_Attn_TYPE_BATTLE_e) {
|
||||
if (mpAttnActorLockOn != NULL && mpAttnActorLockOn->group == fopAc_ENEMY_e) {
|
||||
pfVar3 = (fopEn_enemy_c*)mpAttnActorLockOn;
|
||||
if (!checkPlayerGuard()) {
|
||||
if (!daPy_dmEcallBack_c::checkCurse()) {
|
||||
if (mEquipItem == daPyItem_SWORD_e) {
|
||||
if (pfVar3->getBtAttackType() != 0 &&
|
||||
(pfVar3->getBtStartFrame() - daPy_HIO_battle_c0::m.field_0x4 <= pfVar3->getBtNowFrame()
|
||||
))
|
||||
{
|
||||
if (pfVar3->getBtNowFrame() < pfVar3->getBtEndFrame()) {
|
||||
if (pfVar3->getBtMaxDis() > fopAcM_searchActorDistanceXZ(this, pfVar3)) {
|
||||
dComIfGp_setDoStatus(0x1a);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void daPy_lk_c::setSpecialBattle(BOOL param_0) {
|
||||
if (param_0 && strcmp(dComIfGp_getStartStageName(), "GTower") != 0) {
|
||||
return;
|
||||
}
|
||||
if (mpAttnEntryA == NULL) {
|
||||
return;
|
||||
}
|
||||
if (mpAttnEntryA->mType != fopAc_Attn_TYPE_BATTLE_e) {
|
||||
return;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
return;
|
||||
}
|
||||
if (mpAttnActorLockOn->group != fopAc_ENEMY_e) {
|
||||
return;
|
||||
}
|
||||
fopEn_enemy_c* enemy = (fopEn_enemy_c*)mpAttnActorLockOn;
|
||||
if (checkPlayerGuard()) {
|
||||
return;
|
||||
}
|
||||
if (daPy_dmEcallBack_c::checkCurse()) {
|
||||
return;
|
||||
}
|
||||
if (mEquipItem != daPyItem_SWORD_e) {
|
||||
return;
|
||||
}
|
||||
if (enemy->getBtAttackType() == 0) {
|
||||
return;
|
||||
}
|
||||
if (enemy->getBtStartFrame() - daPy_HIO_battle_c0::m.field_0x4 <= enemy->getBtNowFrame() &&
|
||||
enemy->getBtNowFrame() < enemy->getBtEndFrame() &&
|
||||
enemy->getBtMaxDis() > fopAcM_searchActorDistanceXZ(this, enemy))
|
||||
{
|
||||
dComIfGp_setDoStatus(0x1a);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8013E384-8013E454 .text changeSpecialBattle__9daPy_lk_cFv */
|
||||
int daPy_lk_c::changeSpecialBattle() {
|
||||
/* Nonmatching - regalloc */
|
||||
fopEn_enemy_c* pfVar3;
|
||||
|
||||
pfVar3 = (fopEn_enemy_c*)mpAttnActorLockOn;
|
||||
if (((pfVar3 != NULL) && (dComIfGp_getDoStatus() == 26 || (m34C5 == 5))) &&
|
||||
(m34C5 == 5 || (doTrigger() && (pfVar3->getBtStartFrame() <= pfVar3->getBtNowFrame()))))
|
||||
{
|
||||
if (pfVar3->getBtAttackType() == 1) {
|
||||
return procBtJump_init(pfVar3);
|
||||
}
|
||||
if (pfVar3->getBtAttackType() == 2) {
|
||||
return procBtRoll_init(pfVar3);
|
||||
}
|
||||
if (pfVar3->getBtAttackType() == 3) {
|
||||
return procBtVerticalJump_init(pfVar3);
|
||||
}
|
||||
if (pfVar3->getBtAttackType() == 4) {
|
||||
onNoResetFlg1(daPyFlg1_LAST_COMBO_WAIT);
|
||||
return true;
|
||||
if (mpAttnActorLockOn != NULL && (dComIfGp_getDoStatus() == 26 || (m34C5 == 5))) {
|
||||
fopEn_enemy_c* enemy = (fopEn_enemy_c*)mpAttnActorLockOn;
|
||||
if (m34C5 == 5 || (doTrigger() && enemy->getBtStartFrame() <= enemy->getBtNowFrame())) {
|
||||
if (enemy->getBtAttackType() == 1) {
|
||||
return procBtJump_init(enemy);
|
||||
}
|
||||
if (enemy->getBtAttackType() == 2) {
|
||||
return procBtRoll_init(enemy);
|
||||
}
|
||||
if (enemy->getBtAttackType() == 3) {
|
||||
return procBtVerticalJump_init(enemy);
|
||||
}
|
||||
if (enemy->getBtAttackType() == 4) {
|
||||
onNoResetFlg1(daPyFlg1_LAST_COMBO_WAIT);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8013E454-8013E72C .text procBtJump_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* param_0) {
|
||||
/* Nonmatching - math */
|
||||
BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* enemy) {
|
||||
f32 fVar1;
|
||||
s16 sVar2;
|
||||
f32 dVar3;
|
||||
f32 dVar5;
|
||||
|
||||
cXyz local_34 = (param_0->current.pos - current.pos);
|
||||
cXyz local_34 = enemy->current.pos - current.pos;
|
||||
commonProcInit(daPyProc_BT_JUMP_e);
|
||||
gravity = daPy_HIO_b_jump_c0::m.field_0x20;
|
||||
setSingleMoveAnime(
|
||||
@@ -87,22 +93,22 @@ BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* param_0) {
|
||||
-1,
|
||||
daPy_HIO_b_jump_c0::m.field_0x10
|
||||
);
|
||||
fVar1 = local_34.y + param_0->getBtHeight();
|
||||
if (local_34.y + param_0->getBtHeight() < 30.0f) {
|
||||
fVar1 = local_34.y + enemy->getBtHeight();
|
||||
if (local_34.y + enemy->getBtHeight() < 30.0f) {
|
||||
fVar1 = 30.0f;
|
||||
}
|
||||
dVar5 = ((-2.0f * fVar1) / gravity);
|
||||
m35A0 = (-gravity * local_34.abs());
|
||||
dVar5 = std::sqrtf((-2.0f * fVar1) / gravity);
|
||||
m35A0 = dVar5 * -gravity;
|
||||
dVar3 = local_34.absXZ();
|
||||
m35A4 = (dVar3 / dVar5);
|
||||
sVar2 = fopAcM_searchActorAngleY(this, param_0);
|
||||
m35A4 = dVar3 / dVar5;
|
||||
sVar2 = fopAcM_searchActorAngleY(this, enemy);
|
||||
current.angle.y = sVar2;
|
||||
shape_angle.y = current.angle.y;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
|
||||
m34D0 = 0;
|
||||
m370C.x = param_0->current.pos.x - param_0->getBtBodyR() * cM_ssin(param_0->shape_angle.y);
|
||||
m370C.y = param_0->current.pos.y;
|
||||
m370C.z = param_0->current.pos.z - param_0->getBtBodyR() * cM_scos(param_0->shape_angle.y);
|
||||
m370C.x = enemy->current.pos.x - enemy->getBtBodyR() * cM_ssin(enemy->shape_angle.y);
|
||||
m370C.y = enemy->current.pos.y;
|
||||
m370C.z = enemy->current.pos.z - enemy->getBtBodyR() * cM_scos(enemy->shape_angle.y);
|
||||
if (daPy_HIO_b_jump_c0::m.field_0x18 <= 0.0f) {
|
||||
speed.y = m35A0;
|
||||
mVelocity = m35A4;
|
||||
@@ -118,9 +124,6 @@ BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* param_0) {
|
||||
|
||||
/* 8013E72C-8013E860 .text procBtJump__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtJump() {
|
||||
/* Nonmatching - math */
|
||||
u32 uVar2;
|
||||
|
||||
if (m3570 == 0) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_b_jump_c0::m.field_0x18) {
|
||||
speed.y = m35A0;
|
||||
@@ -137,8 +140,9 @@ BOOL daPy_lk_c::procBtJump() {
|
||||
return procBtJumpCut_init(&m370C);
|
||||
}
|
||||
} else {
|
||||
uVar2 = cM_atan2s(mVelocity, -speed.y);
|
||||
m34F2 = (s16)(int)(cM_ssin((uVar2 & 0x7fff) << 1) - daPy_HIO_b_jump_c0::m.field_0x6);
|
||||
u32 uVar2 = cM_atan2s(mVelocity, -speed.y);
|
||||
f32 temp = cM_ssin(uVar2 * 2);
|
||||
m34F2 = -daPy_HIO_b_jump_c0::m.field_0x6 * temp;
|
||||
setFallVoice();
|
||||
}
|
||||
}
|
||||
@@ -176,49 +180,46 @@ BOOL daPy_lk_c::procBtJumpCut_init(cXyz* param_0) {
|
||||
|
||||
/* 8013E9D4-8013EBD0 .text procBtJumpCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtJumpCut() {
|
||||
/* Nonmatching - branching, math */
|
||||
f32 fVar1;
|
||||
u32 uVar2;
|
||||
f32 dVar4;
|
||||
|
||||
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
if ((speed.y < 0.0f) && (daPy_HIO_b_jump_c0::m.field_0x0 == 1)) {
|
||||
uVar2 = cM_atan2s(mVelocity, -speed.y);
|
||||
m34F2 = (s16)(int)cM_ssin(((uVar2 & 0x7fff) << 1) - daPy_HIO_b_jump_c0::m.field_0x6);
|
||||
if (speed.y < 0.0f && daPy_HIO_b_jump_c0::m.field_0x0 == 1) {
|
||||
u32 uVar2 = cM_atan2s(mVelocity, -speed.y);
|
||||
f32 temp = cM_ssin(uVar2 * 2);
|
||||
m34F2 = -daPy_HIO_b_jump_c0::m.field_0x6 * temp;
|
||||
}
|
||||
fVar1 = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
if (((fVar1 >= daPy_HIO_b_jump_c0::m.field_0x44) && (fVar1 < daPy_HIO_b_jump_c0::m.field_0x48)) &&
|
||||
(onResetFlg0(daPyRFlg0_UNK2), !(checkNoResetFlg0(daPyFlg0_CUT_AT_FLG))))
|
||||
{
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
|
||||
f32 frame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
if (frame >= daPy_HIO_b_jump_c0::m.field_0x44 && frame < daPy_HIO_b_jump_c0::m.field_0x48) {
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
}
|
||||
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
return changeLandProc(daPy_HIO_b_jump_c0::m.field_0xC);
|
||||
}
|
||||
|
||||
if ((m3570 != 0) || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
||||
if (m3570 == 0 && mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
gravity = daPy_HIO_b_jump_c0::m.field_0x3C;
|
||||
speed.y = daPy_HIO_b_jump_c0::m.field_0x34;
|
||||
mVelocity = daPy_HIO_b_jump_c0::m.field_0x38;
|
||||
m3570 = 1;
|
||||
} else {
|
||||
if ((m3570 == 1) && (speed.y < -gravity) && daPy_HIO_b_jump_c0::m.field_0x0 == 1) {
|
||||
m3570 = 2;
|
||||
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1, daPy_HIO_b_jump_c0::m.field_0x40);
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
setTextureAnime(0x37, 0);
|
||||
resetSeAnime();
|
||||
}
|
||||
} else if (m3570 == 1 && speed.y < -gravity && daPy_HIO_b_jump_c0::m.field_0x0 == 1) {
|
||||
m3570 = 2;
|
||||
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1, daPy_HIO_b_jump_c0::m.field_0x40);
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
setTextureAnime(0x37, 0);
|
||||
resetSeAnime();
|
||||
}
|
||||
|
||||
setFallVoice();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013EBD0-8013EC50 .text procBtSlide__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtSlide() {
|
||||
/* Nonmatching - floats */
|
||||
f32 dVar1 = cLib_addCalc(
|
||||
&mVelocity,
|
||||
0.0f,
|
||||
@@ -236,39 +237,36 @@ BOOL daPy_lk_c::procBtSlide() {
|
||||
}
|
||||
|
||||
/* 8013EC50-8013EE64 .text procBtRoll_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* param_0) {
|
||||
/* Nonmatching - math */
|
||||
daPy_ANM dVar3;
|
||||
f32 dVar5;
|
||||
cXyz local_38;
|
||||
cXyz local_2c;
|
||||
|
||||
BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
|
||||
commonProcInit(daPyProc_BT_ROLL_e);
|
||||
mVelocity = 0.0f;
|
||||
local_38.x =
|
||||
0.5f * (current.pos.x - param_0->current.pos.x - param_0->getBtBodyR() * cM_ssin(param_0->shape_angle.y));
|
||||
local_38.y = 0.5f * param_0->current.pos.y + current.pos.y;
|
||||
local_38.z =
|
||||
0.5f * (current.pos.z - param_0->current.pos.z - param_0->getBtBodyR() * cM_scos(param_0->shape_angle.y));
|
||||
|
||||
cXyz local_38;
|
||||
local_38.x = 0.5f * (current.pos.x + (enemy->current.pos.x - enemy->getBtBodyR() * cM_ssin(enemy->shape_angle.y)));
|
||||
local_38.y = 0.5f * (enemy->current.pos.y + current.pos.y);
|
||||
local_38.z = 0.5f * (current.pos.z + (enemy->current.pos.z - enemy->getBtBodyR() * cM_scos(enemy->shape_angle.y)));
|
||||
|
||||
daPy_ANM anm;
|
||||
if (m34B8 == 2) {
|
||||
m34D4 = -0x7ff0;
|
||||
dVar3 = ANM_MROLLL;
|
||||
m34D4 = -0x7FF0;
|
||||
anm = ANM_MROLLL;
|
||||
} else {
|
||||
m34D4 = 0x7ff0;
|
||||
dVar3 = ANM_MROLLR;
|
||||
m34D4 = 0x7FF0;
|
||||
anm = ANM_MROLLR;
|
||||
}
|
||||
setSingleMoveAnime(
|
||||
dVar3,
|
||||
anm,
|
||||
daPy_HIO_b_roll_c0::m.field_0xC,
|
||||
daPy_HIO_b_roll_c0::m.field_0x10,
|
||||
daPy_HIO_b_roll_c0::m.field_0x6,
|
||||
daPy_HIO_b_roll_c0::m.field_0x14
|
||||
);
|
||||
local_2c = (current.pos - local_38);
|
||||
dVar5 = local_2c.absXZ();
|
||||
|
||||
cXyz local_2c = current.pos - local_38;
|
||||
f32 dVar5 = local_2c.absXZ();
|
||||
m35A0 = dVar5;
|
||||
m34D6 = cM_atan2s(local_2c.x, local_2c.z);
|
||||
shape_angle.y = fopAcM_searchActorAngleY(this, param_0);
|
||||
shape_angle.y = fopAcM_searchActorAngleY(this, enemy);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
|
||||
m34BE = 4;
|
||||
voiceStart(7);
|
||||
@@ -282,12 +280,14 @@ BOOL daPy_lk_c::procBtRoll() {
|
||||
cLib_addCalcAngleS(
|
||||
&m34D4, 0, daPy_HIO_b_roll_c0::m.field_0x4, daPy_HIO_b_roll_c0::m.field_0x0, daPy_HIO_b_roll_c0::m.field_0x2
|
||||
);
|
||||
|
||||
s16 sVar3 = sVar1 - m34D4;
|
||||
if (sVar1 > 0) {
|
||||
current.angle.y = m34D6 + 0x4000;
|
||||
} else {
|
||||
current.angle.y = m34D6 + -0x4000;
|
||||
}
|
||||
|
||||
cXyz local_28;
|
||||
local_28.x = current.pos.x - m35A0 * cM_ssin(m34D6);
|
||||
local_28.y = current.pos.y;
|
||||
@@ -299,14 +299,14 @@ BOOL daPy_lk_c::procBtRoll() {
|
||||
if (abs((int)sVar3) < daPy_HIO_b_roll_c0::m.field_0x2) {
|
||||
resetFootEffect();
|
||||
}
|
||||
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
procBtRollCut_init(&local_28);
|
||||
} else {
|
||||
if (frameCtrl.checkPass(10.0f)) {
|
||||
endFlameDamageEmitter();
|
||||
}
|
||||
} else if (frameCtrl.checkPass(10.0f)) {
|
||||
endFlameDamageEmitter();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -315,7 +315,9 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
|
||||
daPy_ANM dVar4;
|
||||
|
||||
commonProcInit(daPyProc_BT_ROLL_CUT_e);
|
||||
if ((s16)(current.angle.y - shape_angle.y) > 0) {
|
||||
|
||||
s16 angle_y_delta = current.angle.y - shape_angle.y;
|
||||
if (angle_y_delta > 0) {
|
||||
dVar4 = ANM_MROLLLC;
|
||||
m3570 = 1;
|
||||
m34EC = 1;
|
||||
@@ -326,6 +328,7 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
|
||||
m34EC = -1;
|
||||
setBlurPosResource(LKANM__BTROTATECUTR_POS);
|
||||
}
|
||||
|
||||
setSingleMoveAnime(
|
||||
dVar4,
|
||||
daPy_HIO_b_roll_c0::m.field_0x1C,
|
||||
@@ -333,11 +336,13 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
|
||||
daPy_HIO_b_roll_c0::m.field_0x8,
|
||||
daPy_HIO_b_roll_c0::m.field_0x24
|
||||
);
|
||||
|
||||
if (checkNormalSwordEquip()) {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_MROLLCA));
|
||||
} else {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_MROLLCMS));
|
||||
}
|
||||
|
||||
m35EC = daPy_HIO_b_roll_c0::m.field_0x20;
|
||||
m370C = *param_0;
|
||||
m34D4 = 0;
|
||||
@@ -357,11 +362,10 @@ BOOL daPy_lk_c::procBtRollCut_init(cXyz* param_0) {
|
||||
|
||||
/* 8013F200-8013F3E8 .text procBtRollCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtRollCut() {
|
||||
/* Nonmatching - branching */
|
||||
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
s16 sVar2 = cLib_targetAngleY(¤t.pos, &m370C);
|
||||
cLib_addCalcAngleS(&shape_angle.y, sVar2, 5, 0x5e8, 0x13c);
|
||||
current.angle.y = shape_angle.y + (m3570 << 0xe);
|
||||
current.angle.y = shape_angle.y + m3570 * 0x4000;
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if (m34D4 == 0) {
|
||||
m34D4 = 1;
|
||||
@@ -375,12 +379,10 @@ BOOL daPy_lk_c::procBtRollCut() {
|
||||
}
|
||||
if (m34D4 > 1) {
|
||||
int iVar3 = m3570;
|
||||
if (!(iVar3 > 0) || !(m34EC < 0)) {
|
||||
if ((iVar3 < 0) && (m34EC > 0)) {
|
||||
cLib_addCalcAngleS(&m34EC, -iVar3, 4, daPy_HIO_b_roll_c0::m.field_0xA, 0x200);
|
||||
} else {
|
||||
m34EC += iVar3 * daPy_HIO_b_roll_c0::m.field_0xA;
|
||||
}
|
||||
if ((iVar3 > 0 && m34EC < 0) || (iVar3 < 0 && m34EC > 0)) {
|
||||
cLib_addCalcAngleS(&m34EC, -iVar3, 4, daPy_HIO_b_roll_c0::m.field_0xA, 0x200);
|
||||
} else {
|
||||
m34EC += iVar3 * daPy_HIO_b_roll_c0::m.field_0xA;
|
||||
}
|
||||
}
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
@@ -399,7 +401,7 @@ BOOL daPy_lk_c::procBtRollCut() {
|
||||
}
|
||||
|
||||
/* 8013F3E8-8013F4A8 .text procBtVerticalJump_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtVerticalJump_init(fopEn_enemy_c*) {
|
||||
BOOL daPy_lk_c::procBtVerticalJump_init(fopEn_enemy_c* enemy) {
|
||||
commonProcInit(daPyProc_BT_VERTICAL_JUMP_e);
|
||||
setSingleMoveAnime(
|
||||
ANM_MSTEPOVER,
|
||||
@@ -424,10 +426,8 @@ BOOL daPy_lk_c::procBtVerticalJump() {
|
||||
setFallVoice();
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
changeLandProc(daPy_HIO_autoJump_c0::m.field_0x24);
|
||||
} else {
|
||||
if (speed.y < -(gravity * 2.0f)) {
|
||||
procBtVerticalJumpCut_init();
|
||||
}
|
||||
} else if (speed.y < -(gravity * 2.0f)) {
|
||||
procBtVerticalJumpCut_init();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -452,29 +452,29 @@ BOOL daPy_lk_c::procBtVerticalJumpCut_init() {
|
||||
|
||||
/* 8013F5BC-8013F6E4 .text procBtVerticalJumpCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJumpCut() {
|
||||
/* Nonmatching - floats, math */
|
||||
setFallVoice();
|
||||
f32 fVar2 = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 9.0f;
|
||||
if (fVar2 < 0.0f) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (mpCutfBpk->getFrameMax() >= fVar2) {
|
||||
fVar2 = mpCutfBpk->getFrameMax() - 0.001f;
|
||||
|
||||
f32 frame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 9.0f;
|
||||
if (frame < 0.0f) {
|
||||
frame = 0.0f;
|
||||
} else if (mpCutfBpk->getFrameMax() >= frame) {
|
||||
frame = mpCutfBpk->getFrameMax() - 0.001f;
|
||||
}
|
||||
mpCutfBpk->setFrame(fVar2);
|
||||
mpCutfBtk->setFrame(fVar2);
|
||||
mpCutfBpk->setFrame(frame);
|
||||
mpCutfBtk->setFrame(frame);
|
||||
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
procBtVerticalJumpLand_init();
|
||||
} else {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
voiceStart(1);
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
gravity = daPy_HIO_b_verJump_c0::m.field_0x2C;
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
voiceStart(1);
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
gravity = daPy_HIO_b_verJump_c0::m.field_0x2C;
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -485,10 +485,8 @@ BOOL daPy_lk_c::procBtVerticalJumpLand_init() {
|
||||
if (!dComIfGp_event_runCheck()) {
|
||||
if (fVar1 >= 100.0f * daPy_HIO_fall_c0::m.field_0x10) {
|
||||
setDamagePoint(-2.0f);
|
||||
} else {
|
||||
if (fVar1 >= 100.0f * daPy_HIO_fall_c0::m.field_0x14) {
|
||||
setDamagePoint(-1.0f);
|
||||
}
|
||||
} else if (fVar1 >= 100.0f * daPy_HIO_fall_c0::m.field_0x14) {
|
||||
setDamagePoint(-1.0f);
|
||||
}
|
||||
}
|
||||
commonProcInit(daPyProc_BT_VERTICAL_JUMP_LAND_e);
|
||||
|
||||
@@ -421,7 +421,7 @@ BOOL daPy_lk_c::procCutA() {
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -529,7 +529,7 @@ BOOL daPy_lk_c::procCutF() {
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -634,7 +634,7 @@ BOOL daPy_lk_c::procCutR() {
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -739,7 +739,7 @@ BOOL daPy_lk_c::procCutL() {
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -839,7 +839,7 @@ BOOL daPy_lk_c::procCutEA() {
|
||||
setShapeAngleToAtnActor();
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -920,7 +920,7 @@ BOOL daPy_lk_c::procCutEB() {
|
||||
}
|
||||
setShapeAngleToAtnActor();
|
||||
current.angle.y = shape_angle.y;
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -1004,7 +1004,7 @@ BOOL daPy_lk_c::procCutExA() {
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -1094,7 +1094,7 @@ BOOL daPy_lk_c::procCutExB() {
|
||||
setShapeAngleToAtnActor();
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
@@ -1646,7 +1646,7 @@ BOOL daPy_lk_c::procCutExMJ() {
|
||||
setShapeAngleToAtnActor();
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
return changeSpecialBattle();
|
||||
} else {
|
||||
@@ -1726,7 +1726,7 @@ BOOL daPy_lk_c::procCutKesa() {
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
} else {
|
||||
setSpecialBattle(1);
|
||||
setSpecialBattle(TRUE);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user