mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-16 12:45:20 -04:00
d_a_player_battle.inc - All close to matching with minor issues. (#720)
Co-authored-by: < >
This commit is contained in:
@@ -140,7 +140,7 @@ const daPy_HIO_swim_c1 daPy_HIO_swim_c0::m = {
|
||||
};
|
||||
|
||||
const daPy_HIO_b_jump_c1 daPy_HIO_b_jump_c0::m = {
|
||||
256, 0, 8, 3500, 1.0f, 2.0f, 1.0f, 4.0f, 0.0f, 5.0f, -5.0f,
|
||||
1, 0, 0, 8, 3500, 1.0f, 2.0f, 1.0f, 4.0f, 0.0f, 5.0f, -5.0f,
|
||||
-3.75f, 0.6f, 0.0f, 1.0f, 32.5f, 12.5f, -3.75f, 10.0f, 2.5f, 6.5f,
|
||||
};
|
||||
|
||||
|
||||
@@ -1,98 +1,511 @@
|
||||
/**
|
||||
* d_a_player_battle.inc
|
||||
*
|
||||
* Code relating to (?) (How is this different from the "cut" functions in the sword file?)
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* Code relating to (?) (How is this different from the "cut" functions in the
|
||||
* sword file?)
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* included into d_a_player_main.cpp.
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
* based on the original names of the functions it contains.
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
|
||||
/* 8013E250-8013E384 .text setSpecialBattle__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setSpecialBattle(int) {
|
||||
/* Nonmatching */
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 8013E384-8013E454 .text changeSpecialBattle__9daPy_lk_cFv */
|
||||
void daPy_lk_c::changeSpecialBattle() {
|
||||
/* Nonmatching */
|
||||
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;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8013E454-8013E72C .text procBtJump_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c *param_0) {
|
||||
/* Nonmatching - math */
|
||||
f32 fVar1;
|
||||
s16 sVar2;
|
||||
f32 dVar3;
|
||||
f32 dVar5;
|
||||
|
||||
cXyz local_34 = (param_0->current.pos - current.pos);
|
||||
commonProcInit(daPyProc_BT_JUMP_e);
|
||||
gravity = daPy_HIO_b_jump_c0::m.field_0x20;
|
||||
setSingleMoveAnime(ANM_MJMP, daPy_HIO_b_jump_c0::m.field_0x8,
|
||||
daPy_HIO_b_jump_c0::m.field_0x14, -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 = 30.0f;
|
||||
}
|
||||
dVar5 = ((-2.0f * fVar1) / gravity);
|
||||
m35A0 = (-gravity * local_34.abs());
|
||||
dVar3 = local_34.absXZ();
|
||||
m35A4 = (dVar3 / dVar5);
|
||||
sVar2 = fopAcM_searchActorAngleY(this, param_0);
|
||||
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);
|
||||
if (daPy_HIO_b_jump_c0::m.field_0x18 <= 0.0f) {
|
||||
speed.y = m35A0;
|
||||
mVelocity = m35A4;
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m3570 = 0;
|
||||
}
|
||||
voiceStart(6);
|
||||
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
|
||||
endFlameDamageEmitter();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013E72C-8013E860 .text procBtJump__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtJump() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - math */
|
||||
u32 uVar2;
|
||||
|
||||
if (m3570 == 0) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >=
|
||||
daPy_HIO_b_jump_c0::m.field_0x18) {
|
||||
speed.y = m35A0;
|
||||
mVelocity = m35A4;
|
||||
m3570 = 1;
|
||||
}
|
||||
} else {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
return changeLandProc(daPy_HIO_b_jump_c0::m.field_0xC);
|
||||
}
|
||||
if (m3570 == 1) {
|
||||
m34D0++;
|
||||
if (speed.y < -gravity) {
|
||||
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);
|
||||
setFallVoice();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013E860-8013E9D4 .text procBtJumpCut_init__9daPy_lk_cFP4cXyz */
|
||||
BOOL daPy_lk_c::procBtJumpCut_init(cXyz*) {
|
||||
/* Nonmatching */
|
||||
BOOL daPy_lk_c::procBtJumpCut_init(cXyz *param_0) {
|
||||
commonProcInit(daPyProc_BT_JUMP_CUT_e);
|
||||
setSingleMoveAnime(ANM_MJMPC, daPy_HIO_b_jump_c0::m.field_0x28,
|
||||
daPy_HIO_b_jump_c0::m.field_0x30,
|
||||
daPy_HIO_b_jump_c0::m.field_0x4,
|
||||
daPy_HIO_b_jump_c0::m.field_0x2C);
|
||||
if (checkNormalSwordEquip()) {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_MJMPCA));
|
||||
} else {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_MJMPCMS));
|
||||
}
|
||||
m35EC = daPy_HIO_b_jump_c0::m.field_0x30;
|
||||
mVelocity = 0.0f;
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
m370C = *param_0;
|
||||
m3570 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, (daPyStts0_UNK2_e | daPyStts0_UNK400_e));
|
||||
voiceStart(1);
|
||||
setBlurPosResource(LKANM__BTJUMPCUT_POS);
|
||||
setExtraFinishCutAtParam(5);
|
||||
dComIfGp_getVibration().StartShock(6, -0x21, cXyz(0.0f, 1.0f, 0.0f));
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013E9D4-8013EBD0 .text procBtJumpCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtJumpCut() {
|
||||
/* Nonmatching */
|
||||
/* 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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
return changeLandProc(daPy_HIO_b_jump_c0::m.field_0xC);
|
||||
} else {
|
||||
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();
|
||||
}
|
||||
}
|
||||
setFallVoice();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8013EBD0-8013EC50 .text procBtSlide__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtSlide() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - floats */
|
||||
f32 dVar1 = cLib_addCalc(&mVelocity, 0.0f, daPy_HIO_b_slide_c0::m.field_0x4,
|
||||
daPy_HIO_b_slide_c0::m.field_0x8,
|
||||
daPy_HIO_b_slide_c0::m.field_0xC);
|
||||
if (dVar1 <= 0.001f) {
|
||||
checkNextMode(0);
|
||||
}
|
||||
if (mVelocity < 2.5f) {
|
||||
resetFootEffect();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013EC50-8013EE64 .text procBtRoll_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c *param_0) {
|
||||
/* Nonmatching - math */
|
||||
daPy_ANM dVar3;
|
||||
f32 dVar5;
|
||||
cXyz local_38;
|
||||
cXyz local_2c;
|
||||
|
||||
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));
|
||||
if (m34B8 == 2) {
|
||||
m34D4 = -0x7ff0;
|
||||
dVar3 = ANM_MROLLL;
|
||||
} else {
|
||||
m34D4 = 0x7ff0;
|
||||
dVar3 = ANM_MROLLR;
|
||||
}
|
||||
setSingleMoveAnime(dVar3, 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();
|
||||
m35A0 = dVar5;
|
||||
m34D6 = cM_atan2s(local_2c.x, local_2c.z);
|
||||
shape_angle.y = fopAcM_searchActorAngleY(this, param_0);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
|
||||
m34BE = 4;
|
||||
voiceStart(7);
|
||||
endFlameDamageEmitter();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013EE64-8013F010 .text procBtRoll__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtRoll() {
|
||||
/* Nonmatching */
|
||||
s16 sVar1 = m34D4;
|
||||
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;
|
||||
local_28.z = current.pos.z - m35A0 * cM_scos(m34D6);
|
||||
m34D6 += sVar3;
|
||||
current.pos.x = local_28.x + m35A0 * cM_ssin(m34D6);
|
||||
current.pos.z = local_28.z + m35A0 * cM_scos(m34D6);
|
||||
shape_angle.y = m34D6 + 0x8000;
|
||||
if (abs((int)sVar3) < 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();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F010-8013F200 .text procBtRollCut_init__9daPy_lk_cFP4cXyz */
|
||||
BOOL daPy_lk_c::procBtRollCut_init(cXyz*) {
|
||||
/* Nonmatching */
|
||||
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) {
|
||||
dVar4 = ANM_MROLLLC;
|
||||
m3570 = 1;
|
||||
m34EC = 1;
|
||||
setBlurPosResource(LKANM__BTROTATECUTL_POS);
|
||||
} else {
|
||||
dVar4 = ANM_MROLLRC;
|
||||
m3570 = -1;
|
||||
m34EC = -1;
|
||||
setBlurPosResource(LKANM__BTROTATECUTR_POS);
|
||||
}
|
||||
setSingleMoveAnime(dVar4, daPy_HIO_b_roll_c0::m.field_0x1C,
|
||||
daPy_HIO_b_roll_c0::m.field_0x20,
|
||||
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;
|
||||
mVelocity = daPy_HIO_b_roll_c0::m.field_0x28;
|
||||
speed.y = daPy_HIO_b_roll_c0::m.field_0x2C;
|
||||
gravity = daPy_HIO_b_roll_c0::m.field_0x30;
|
||||
voiceStart(1);
|
||||
setExtraFinishCutAtParam(15);
|
||||
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
dComIfGp_setPlayerStatus0(0, (daPyStts0_UNK2_e | daPyStts0_UNK400_e));
|
||||
dComIfGp_getVibration().StartShock(6, -0x21, cXyz(0.0f, 1.0f, 0.0f));
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F200-8013F3E8 .text procBtRollCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtRollCut() {
|
||||
/* Nonmatching */
|
||||
/* 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);
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if (m34D4 == 0) {
|
||||
m34D4 = 1;
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
} else if (m34D4 == 1) {
|
||||
setSingleMoveAnime(ANM_JMPEDS, 0.0f, 0.0f, -1,
|
||||
daPy_HIO_b_roll_c0::m.field_0x38);
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
setTextureAnime(0x37, 0);
|
||||
resetSeAnime();
|
||||
m34D4 = 2;
|
||||
}
|
||||
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 (mAcch.ChkGroundHit()) {
|
||||
shape_angle.y = shape_angle.y + m34EC;
|
||||
current.angle.y = shape_angle.y;
|
||||
return changeLandProc(daPy_HIO_autoJump_c0::m.field_0x24);
|
||||
}
|
||||
} else {
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
}
|
||||
if (speed.y < -gravity) {
|
||||
gravity = daPy_HIO_b_roll_c0::m.field_0x34;
|
||||
}
|
||||
setFallVoice();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F3E8-8013F4A8 .text procBtVerticalJump_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtVerticalJump_init(fopEn_enemy_c*) {
|
||||
/* Nonmatching */
|
||||
/* 8013F3E8-8013F4A8 .text
|
||||
* procBtVerticalJump_init__9daPy_lk_cFP13fopEn_enemy_c */
|
||||
BOOL daPy_lk_c::procBtVerticalJump_init(fopEn_enemy_c *) {
|
||||
commonProcInit(daPyProc_BT_VERTICAL_JUMP_e);
|
||||
setSingleMoveAnime(ANM_MSTEPOVER, daPy_HIO_b_verJump_c0::m.field_0x8,
|
||||
daPy_HIO_b_verJump_c0::m.field_0xC,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x0,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x10);
|
||||
mVelocity = 0.0f;
|
||||
gravity = daPy_HIO_b_verJump_c0::m.field_0x14;
|
||||
speed.y = daPy_HIO_b_verJump_c0::m.field_0x18;
|
||||
offNoResetFlg0(daPyFlg0_NO_FALL_VOICE);
|
||||
current.angle.y = shape_angle.y;
|
||||
voiceStart(6);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
|
||||
endFlameDamageEmitter();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F4A8-8013F520 .text procBtVerticalJump__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJump() {
|
||||
/* Nonmatching */
|
||||
setFallVoice();
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
changeLandProc(daPy_HIO_autoJump_c0::m.field_0x24);
|
||||
} else {
|
||||
if (speed.y < -(gravity * 2.0f)) {
|
||||
procBtVerticalJumpCut_init();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F520-8013F5BC .text procBtVerticalJumpCut_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJumpCut_init() {
|
||||
/* Nonmatching */
|
||||
commonProcInit(daPyProc_BT_VERTICAL_JUMP_CUT_e);
|
||||
setSingleMoveAnime(ANM_MSTEPOVERA, daPy_HIO_b_verJump_c0::m.field_0x1C,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x20,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x2,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x24);
|
||||
mpCutfBpk->setFrame(0.0f);
|
||||
mpCutfBtk->setFrame(0.0f);
|
||||
gravity = daPy_HIO_b_verJump_c0::m.field_0x28;
|
||||
setExtraFinishCutAtParam(16);
|
||||
dComIfGp_setPlayerStatus0(0, (daPyStts0_UNK2_e | daPyStts0_UNK400_e));
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F5BC-8013F6E4 .text procBtVerticalJumpCut__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJumpCut() {
|
||||
/* Nonmatching */
|
||||
/* 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;
|
||||
}
|
||||
mpCutfBpk->setFrame(fVar2);
|
||||
mpCutfBtk->setFrame(fVar2);
|
||||
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);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F6E4-8013F7F0 .text procBtVerticalJumpLand_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJumpLand_init() {
|
||||
/* Nonmatching */
|
||||
f32 fVar1 = m35F0 - current.pos.y;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
commonProcInit(daPyProc_BT_VERTICAL_JUMP_LAND_e);
|
||||
setSingleMoveAnime(ANM_MSTEPOVERLAND, daPy_HIO_b_verJump_c0::m.field_0x30,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x34,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x4,
|
||||
daPy_HIO_b_verJump_c0::m.field_0x38);
|
||||
dComIfGp_getVibration().StartShock(6, -0x21, cXyz(0.0f, 1.0f, 0.0f));
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK10000000)) {
|
||||
seStartOnlyReverb(JA_SE_LK_JUMP_ATTACK);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013F7F0-8013F848 .text procBtVerticalJumpLand__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBtVerticalJumpLand() {
|
||||
/* Nonmatching */
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
procBackJump_init();
|
||||
mVelocity = daPy_HIO_b_verJump_c0::m.field_0x3C;
|
||||
speed.y = daPy_HIO_b_verJump_c0::m.field_0x40;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1743,7 +1743,7 @@ void daPy_lk_c::changeWaitProc() {
|
||||
}
|
||||
|
||||
/* 80110028-8011029C .text changeLandProc__9daPy_lk_cFf */
|
||||
void daPy_lk_c::changeLandProc(f32) {
|
||||
int daPy_lk_c::changeLandProc(f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user