mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-10 12:55:02 -04:00
Added enum for Link's movement direction
This commit is contained in:
@@ -246,7 +246,7 @@ BOOL daPy_lk_c::procBtRoll_init(fopEn_enemy_c* enemy) {
|
||||
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) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
m34D4 = -0x7FF0;
|
||||
anm = ANM_MROLLL;
|
||||
} else {
|
||||
|
||||
@@ -203,10 +203,10 @@ BOOL daPy_lk_c::procBoomerangMove_init() {
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_BOOMERANG_MOVE_e);
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
} else {
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
}
|
||||
setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, daPy_HIO_boom_c0::m.field_0x18, 0.0f, -1, -1.0f);
|
||||
@@ -231,8 +231,8 @@ BOOL daPy_lk_c::procBoomerangMove() {
|
||||
f32 fVar1 = -1.0f;
|
||||
if (std::fabsf(mVelocity) < 0.001f) {
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
if (m34B8 != 3) {
|
||||
m34B8 = 3;
|
||||
if (mDirection != DIR_RIGHT) {
|
||||
mDirection = DIR_RIGHT;
|
||||
fVar1 = daPy_HIO_basic_c0::m.field_0xC;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -285,10 +285,10 @@ BOOL daPy_lk_c::procBowMove_init() {
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_BOW_MOVE_e);
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
} else {
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
}
|
||||
if (!checkBowAnime()) {
|
||||
@@ -314,8 +314,8 @@ BOOL daPy_lk_c::procBowMove() {
|
||||
f32 fVar1 = -1.0f;
|
||||
if (std::fabsf(mVelocity) < 0.001f) {
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
if (m34B8 != 3) {
|
||||
m34B8 = 3;
|
||||
if (mDirection != DIR_RIGHT) {
|
||||
mDirection = DIR_RIGHT;
|
||||
fVar1 = daPy_HIO_basic_c0::m.field_0xC;
|
||||
}
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
|
||||
@@ -21,21 +21,20 @@ f32 daPy_lk_c::getClimbMoveAnmSpeed() {
|
||||
|
||||
/* 80135B74-80135DA0 .text setClimbShapeOffset__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setClimbShapeOffset() {
|
||||
/* Nonmatching - floats */
|
||||
cXyz local_40;
|
||||
cXyz local_4c;
|
||||
cXyz local_58;
|
||||
cXyz local_64;
|
||||
|
||||
s16 uVar3 = m34EC;
|
||||
s16 uVar4 = shape_angle.y;
|
||||
s32 uVar4 = shape_angle.y;
|
||||
uVar3 += uVar4;
|
||||
f32 fVar4 = cM_ssin(uVar3);
|
||||
f32 fVar3 = cM_scos(uVar3);
|
||||
f32 fVar2 = cM_ssin((s32)uVar4 & 0xffffU);
|
||||
f32 fVar2 = cM_ssin((s32)uVar4);
|
||||
local_58.x = current.pos.x + 20.5f * fVar2;
|
||||
local_58.y = current.pos.y - 62.5f;
|
||||
f32 fVar1 = cM_scos((int)(uint)uVar4 & 0xffffU);
|
||||
f32 fVar1 = cM_scos(uVar4);
|
||||
local_58.z = current.pos.z + 20.5f * fVar1;
|
||||
local_40.set(local_58.x - fVar4 * 50.0f, local_58.y, local_58.z - fVar3 * 50.0f);
|
||||
local_4c.set(local_58.x + fVar4 * 50.0f, local_58.y, local_58.z + fVar3 * 50.0f);
|
||||
@@ -69,18 +68,14 @@ void daPy_lk_c::setClimbShapeOffset() {
|
||||
int daPy_lk_c::getClimbDirectionFromAngle() {
|
||||
s16 angle = m34E8 - shape_angle.y;
|
||||
if (abs(angle) > 0x7000) {
|
||||
return 1;
|
||||
return DIR_BACKWARD;
|
||||
} else if (angle >= 0x1000) {
|
||||
return DIR_LEFT;
|
||||
} else if (angle <= -0x1000) {
|
||||
return DIR_RIGHT;
|
||||
} else {
|
||||
return DIR_FORWARD;
|
||||
}
|
||||
|
||||
if (angle >= 0x1000) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (angle <= -0x1000) {
|
||||
return 3;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80135E14-80135E98 .text changeClimbMoveProc__9daPy_lk_cFi */
|
||||
@@ -89,8 +84,8 @@ void daPy_lk_c::changeClimbMoveProc(int param_0) {
|
||||
|
||||
sVar1 = m34EC;
|
||||
if (mStickDistance > 0.05f) {
|
||||
m34B8 = getClimbDirectionFromAngle();
|
||||
if ((m34B8 == 0) || (m34B8 == 1)) {
|
||||
mDirection = getClimbDirectionFromAngle();
|
||||
if (mDirection == DIR_FORWARD || mDirection == DIR_BACKWARD) {
|
||||
procClimbMoveUpDown_init(param_0);
|
||||
} else {
|
||||
procClimbMoveSide_init(param_0);
|
||||
@@ -100,50 +95,50 @@ void daPy_lk_c::changeClimbMoveProc(int param_0) {
|
||||
}
|
||||
|
||||
/* 80135E98-80136154 .text setMoveBGCorrectClimb__9daPy_lk_cFv */
|
||||
int daPy_lk_c::setMoveBGCorrectClimb() {
|
||||
/* Nonmatching - floats */
|
||||
if ((dComIfG_Bgsp()->ChkPolySafe(mPolyInfo)) && (dComIfG_Bgsp()->ChkMoveBG(mPolyInfo))) {
|
||||
BOOL daPy_lk_c::setMoveBGCorrectClimb() {
|
||||
if (dComIfG_Bgsp()->ChkPolySafe(mPolyInfo) && dComIfG_Bgsp()->ChkMoveBG(mPolyInfo)) {
|
||||
dComIfG_Bgsp()->MoveBgTransPos(mPolyInfo, true, ¤t.pos, ¤t.angle, &shape_angle);
|
||||
}
|
||||
if (checkNoResetFlg1(daPyFlg1_VINE_CATCH)) {
|
||||
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
if ((mCurProc == daPyProc_CLIMB_DOWN_START_e) && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.01f)) {
|
||||
return 0;
|
||||
}
|
||||
cXyz local_1c;
|
||||
cXyz local_28;
|
||||
local_1c.set(current.pos.x, current.pos.y + 30.0f, current.pos.z);
|
||||
local_28.set(
|
||||
current.pos.x + cM_ssin(shape_angle.y) * 80.0f, local_1c.y, current.pos.z + cM_scos(shape_angle.y) * 80.0f
|
||||
);
|
||||
mLinkLinChk.Set(&local_1c, &local_28, this);
|
||||
if ((((!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) || (dComIfG_Bgsp()->GetWallCode(mLinkLinChk) != 1)) ||
|
||||
(std::fabsf(dComIfG_Bgsp()->GetTriPla(mLinkLinChk)->GetNP()->y) > 0.05f)) ||
|
||||
((mCurProc == daPyProc_CLIMB_MOVE_UP_DOWN_e || (mCurProc == daPyProc_CLIMB_MOVE_SIDE_e)) &&
|
||||
(current.pos.y - 15.0f < mAcch.GetGroundH())))
|
||||
{
|
||||
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 uVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
if (cLib_distanceAngleS(uVar6, shape_angle.y) <= 0x549f) {
|
||||
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
current.pos.x = mLinkLinChk.GetCrossP()->x + 20.5f * cM_ssin(uVar6);
|
||||
current.pos.z = mLinkLinChk.GetCrossP()->z + 20.5f * cM_scos(uVar6);
|
||||
s16 sVar1 = shape_angle.y;
|
||||
shape_angle.y = uVar6 + 0x8000;
|
||||
current.angle.y += (s16)(shape_angle.y - sVar1);
|
||||
m34EC += (s16)(sVar1 - shape_angle.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mCurProc == daPyProc_CLIMB_DOWN_START_e && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > 0.01f)) {
|
||||
return 0;
|
||||
}
|
||||
cXyz local_1c;
|
||||
cXyz local_28;
|
||||
local_1c.set(current.pos.x, current.pos.y + 30.0f, current.pos.z);
|
||||
local_28.set(
|
||||
current.pos.x + cM_ssin(shape_angle.y) * 80.0f, local_1c.y, current.pos.z + cM_scos(shape_angle.y) * 80.0f
|
||||
);
|
||||
mLinkLinChk.Set(&local_1c, &local_28, this);
|
||||
if ((!dComIfG_Bgsp()->LineCross(&mLinkLinChk) || dComIfG_Bgsp()->GetWallCode(mLinkLinChk) != 1 ||
|
||||
std::fabsf(dComIfG_Bgsp()->GetTriPla(mLinkLinChk)->GetNP()->y) > 0.05f) ||
|
||||
((mCurProc == daPyProc_CLIMB_MOVE_UP_DOWN_e || mCurProc == daPyProc_CLIMB_MOVE_SIDE_e) &&
|
||||
current.pos.y - 15.0f < mAcch.GetGroundH()))
|
||||
{
|
||||
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
}
|
||||
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 uVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
if (cLib_distanceAngleS(uVar6, shape_angle.y) <= 0x549f) {
|
||||
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
}
|
||||
|
||||
current.pos.x = mLinkLinChk.GetCrossP()->x + 20.5f * cM_ssin(uVar6);
|
||||
current.pos.z = mLinkLinChk.GetCrossP()->z + 20.5f * cM_scos(uVar6);
|
||||
s16 sVar1 = shape_angle.y;
|
||||
shape_angle.y = uVar6 + 0x8000;
|
||||
current.angle.y += (s16)(shape_angle.y - sVar1);
|
||||
m34EC += (s16)(sVar1 - shape_angle.y);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80136154-80136200 .text checkBgCorrectClimbMove__9daPy_lk_cFP4cXyzP4cXyz */
|
||||
BOOL daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) {
|
||||
void daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) {
|
||||
mLinkLinChk.Set(i_startPos, i_endPos, this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
cM3dGPla* tri_plane = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
@@ -154,8 +149,7 @@ BOOL daPy_lk_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) {
|
||||
}
|
||||
|
||||
/* 80136200-80136588 .text checkBgClimbMove__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkBgClimbMove() {
|
||||
/* Nonmatching - floats */
|
||||
void daPy_lk_c::checkBgClimbMove() {
|
||||
cXyz local_5c;
|
||||
cXyz local_68;
|
||||
|
||||
@@ -196,9 +190,8 @@ BOOL daPy_lk_c::checkBgClimbMove() {
|
||||
local_5c.set(current.pos.x + (25.0f * dVar7), local_68.y + 30.0f, current.pos.z + (25.0f * dVar6));
|
||||
mGndChk.SetPos(&local_5c);
|
||||
dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
cM3dGPla* triPla;
|
||||
if (((C_BG_MIN_HEIGHT != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) &&
|
||||
(dVar3 >= (local_68.y - 30.0f)))
|
||||
if (C_BG_MIN_HEIGHT != dVar3 && dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y >= 0.5f &&
|
||||
dVar3 >= local_68.y - 30.0f)
|
||||
{
|
||||
dVar4 = 3.0f;
|
||||
current.pos.x = local_5c.x - (dVar4 * dVar7);
|
||||
@@ -251,42 +244,39 @@ BOOL daPy_lk_c::procClimbUpStart_init() {
|
||||
|
||||
/* 80136708-8013680C .text procClimbUpStart__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procClimbUpStart() {
|
||||
/* Nonmatching - floats */
|
||||
if (setMoveBGCorrectClimb()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (m3570 == 0) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) {
|
||||
procLadderUpStart_init_sub();
|
||||
}
|
||||
} else {
|
||||
if (m3570 == 0) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) {
|
||||
procLadderUpStart_init_sub();
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
m34C2 = 5;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
dComIfGp_setDoStatus(6);
|
||||
if (m34D4 == 0) {
|
||||
setLadderFootSe();
|
||||
m34D4 = 1;
|
||||
}
|
||||
} else {
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
m34C2 = 5;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
dComIfGp_setDoStatus(6);
|
||||
if (m34D4 == 0) {
|
||||
setLadderFootSe();
|
||||
m34D4 = 1;
|
||||
}
|
||||
if (doTrigger()) {
|
||||
m34C2 = 0;
|
||||
procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
changeClimbMoveProc(1);
|
||||
}
|
||||
if (doTrigger()) {
|
||||
m34C2 = 0;
|
||||
procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
if (frameCtrl.checkPass(9.0f)) {
|
||||
setLadderFootSe();
|
||||
}
|
||||
changeClimbMoveProc(1);
|
||||
}
|
||||
} else if (frameCtrl.checkPass(9.0f)) {
|
||||
setLadderFootSe();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013680C-8013693C .text procClimbDownStart_init__9daPy_lk_cFs */
|
||||
BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) {
|
||||
/* Nonmatching - floats */
|
||||
commonProcInit(daPyProc_CLIMB_DOWN_START_e);
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -308,26 +298,24 @@ BOOL daPy_lk_c::procClimbDownStart_init(s16 param_0) {
|
||||
|
||||
/* 8013693C-80136A34 .text procClimbDownStart__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procClimbDownStart() {
|
||||
/* Nonmatching - floats */
|
||||
if (setMoveBGCorrectClimb()) {
|
||||
return true;
|
||||
} else {
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
m34C2 = 5;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
dComIfGp_setDoStatus(6);
|
||||
if (doTrigger()) {
|
||||
m34C2 = 0;
|
||||
procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
changeClimbMoveProc(1);
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl.checkPass(26.0f) || frameCtrl.checkPass(36.0f) || frameCtrl.checkPass(43.0f)) {
|
||||
setLadderFootSe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
m34C2 = 5;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
dComIfGp_setDoStatus(6);
|
||||
if (doTrigger()) {
|
||||
m34C2 = 0;
|
||||
procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
|
||||
} else {
|
||||
changeClimbMoveProc(1);
|
||||
}
|
||||
} else if (frameCtrl.checkPass(26.0f) || frameCtrl.checkPass(36.0f) || frameCtrl.checkPass(43.0f)) {
|
||||
setLadderFootSe();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -339,26 +327,26 @@ BOOL daPy_lk_c::procClimbMoveUpDown_init(int param_0) {
|
||||
dVar3 = getLadderMoveAnmSpeed();
|
||||
commonProcInit(daPyProc_CLIMB_MOVE_UP_DOWN_e);
|
||||
current.angle.y = shape_angle.y;
|
||||
if (m34B8 == 1) {
|
||||
if (mDirection == DIR_BACKWARD) {
|
||||
dVar3 *= -1.0f;
|
||||
}
|
||||
if (param_0 != 0) {
|
||||
m3570 = 0;
|
||||
if (m34B8 == 0) {
|
||||
if (mDirection == DIR_FORWARD) {
|
||||
dVar2 = ANM_LADDERLTOR;
|
||||
} else {
|
||||
dVar2 = ANM_LADDERRTOL;
|
||||
}
|
||||
} else {
|
||||
m3570 = 1;
|
||||
if (m34B8 == 0) {
|
||||
if (mDirection == DIR_FORWARD) {
|
||||
dVar2 = ANM_LADDERRTOL;
|
||||
} else {
|
||||
dVar2 = ANM_LADDERLTOR;
|
||||
}
|
||||
}
|
||||
setSingleMoveAnime(dVar2, dVar3, 0.0f, -1, daPy_HIO_ladder_c0::m.field_0x2C);
|
||||
if (m34B8 == 0) {
|
||||
if (mDirection == DIR_FORWARD) {
|
||||
setTextureAnime(10, 0);
|
||||
} else {
|
||||
setTextureAnime(11, 0);
|
||||
@@ -414,12 +402,12 @@ BOOL daPy_lk_c::procClimbMoveSide_init(int param_0) {
|
||||
m3570 = param_0;
|
||||
if (param_0 != 0) {
|
||||
dVar2 = ANM_FCLIMBSLIDELUP;
|
||||
if (m34B8 == 3) {
|
||||
if (mDirection == DIR_RIGHT) {
|
||||
dVar4 *= -1.0f;
|
||||
}
|
||||
} else {
|
||||
dVar2 = ANM_FCLIMBSLIDERUP;
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dVar4 *= -1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
|
||||
commonProcInit(daPyProc_CRAWL_MOVE_e);
|
||||
if (var_r29 != 0) {
|
||||
f32 dVar4 = getCrawlMoveAnmSpeed();
|
||||
if (getDirectionFromShapeAngle() == 1) {
|
||||
if (getDirectionFromShapeAngle() == DIR_BACKWARD) {
|
||||
dVar4 *= -1.0f;
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -1275,7 +1275,7 @@ BOOL daPy_lk_c::dProcLookWait_init() {
|
||||
mVelocity = 0.0f;
|
||||
setBlendMoveAnime(daPy_HIO_basic_c0::m.field_0xC);
|
||||
current.angle.y = shape_angle.y;
|
||||
m34B8 = 4;
|
||||
mDirection = DIR_NONE;
|
||||
initShipRideUseItem(iVar1, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -235,8 +235,8 @@ BOOL daPy_lk_c::checkNextActionGrab() {
|
||||
dComIfGp_setDoStatus(9);
|
||||
} else {
|
||||
if (mpAttention->Lockon()) {
|
||||
int iVar4 = getDirectionFromShapeAngle();
|
||||
if ((mStickDistance <= 0.05f) || (mStickDistance > 0.05f && (iVar4 == 0 || (iVar4 == 1)))) {
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
if ((mStickDistance <= 0.05f) || (mStickDistance > 0.05f && (direction == DIR_FORWARD || (direction == DIR_BACKWARD)))) {
|
||||
dComIfGp_setDoStatus(14);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -67,20 +67,20 @@ BOOL daPy_lk_c::procHammerSideSwing() {
|
||||
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
} else {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_ham_c0::m.field_0x10) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
setHammerQuake(NULL, NULL, -1);
|
||||
|
||||
@@ -229,7 +229,7 @@ BOOL daPy_lk_c::procHangStart() {
|
||||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_wallCatch_c0::m.field_0x50)) &&
|
||||
(mStickDistance > 0.05f || m3570 != 0))
|
||||
{
|
||||
if (getDirectionFromShapeAngle() == 0 || m3570 != 0) {
|
||||
if (getDirectionFromShapeAngle() == DIR_FORWARD || m3570 != 0) {
|
||||
procHangClimb_init(daPy_HIO_wallCatch_c0::m.field_0x2C);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -142,8 +142,8 @@ BOOL daPy_lk_c::checkNextActionHookshotReady() {
|
||||
seStartOnlyReverb(JA_SE_LK_HS_SHOOT);
|
||||
voiceStart(41);
|
||||
resetFootEffect();
|
||||
if (m34B8 != 2) {
|
||||
m34B8 = 2;
|
||||
if (mDirection != DIR_LEFT) {
|
||||
mDirection = DIR_LEFT;
|
||||
}
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
@@ -248,10 +248,10 @@ BOOL daPy_lk_c::procHookshotMove_init() {
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_HOOKSHOT_MOVE_e);
|
||||
if (m34B8 == 3) {
|
||||
if (mDirection == DIR_RIGHT) {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
} else {
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
}
|
||||
daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor();
|
||||
@@ -284,8 +284,8 @@ BOOL daPy_lk_c::procHookshotMove() {
|
||||
f32 fVar1 = -1.0f;
|
||||
if (std::fabsf(mVelocity) < 0.001f) {
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
if (m34B8 != 2) {
|
||||
m34B8 = 2;
|
||||
if (mDirection != DIR_LEFT) {
|
||||
mDirection = DIR_LEFT;
|
||||
fVar1 = daPy_HIO_basic_c0::m.field_0xC;
|
||||
}
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
|
||||
@@ -37,7 +37,7 @@ void daPy_lk_c::setLadderFootSe() {
|
||||
int daPy_lk_c::changeLadderMoveProc(int param_0) {
|
||||
cXyz local_2c;
|
||||
cXyz local_38;
|
||||
BOOL iVar5;
|
||||
int direction;
|
||||
|
||||
cLib_addCalc(¤t.pos.x, m370C.x, 0.5f, 0.5f, 0.05f);
|
||||
cLib_addCalc(¤t.pos.y, m370C.y, 0.5f, 0.5f, 0.05f);
|
||||
@@ -51,10 +51,10 @@ int daPy_lk_c::changeLadderMoveProc(int param_0) {
|
||||
local_2c.z = current.pos.z;
|
||||
if (iVar2 < 0x4000) {
|
||||
local_2c.y = 50.0f + (125.0f + current.pos.y);
|
||||
iVar5 = false;
|
||||
direction = DIR_FORWARD;
|
||||
} else {
|
||||
local_2c.y = current.pos.y - 50.0f;
|
||||
iVar5 = true;
|
||||
direction = DIR_BACKWARD;
|
||||
}
|
||||
local_38.x = local_2c.x + cM_ssin(shape_angle.y) * 50.0f;
|
||||
local_38.z = local_2c.z + cM_scos(shape_angle.y) * 50.0f;
|
||||
@@ -67,7 +67,7 @@ int daPy_lk_c::changeLadderMoveProc(int param_0) {
|
||||
procLadderDownEnd_init(param_0);
|
||||
}
|
||||
} else {
|
||||
procLadderMove_init(param_0, iVar5, &m370C);
|
||||
procLadderMove_init(param_0, direction, &m370C);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -307,13 +307,13 @@ BOOL daPy_lk_c::procLadderDownEnd() {
|
||||
}
|
||||
|
||||
/* 80133BB4-80133E28 .text procLadderMove_init__9daPy_lk_cFiiP4cXyz */
|
||||
BOOL daPy_lk_c::procLadderMove_init(int param_0, int param_1, cXyz* param_2) {
|
||||
BOOL daPy_lk_c::procLadderMove_init(int param_0, int direction, cXyz* param_2) {
|
||||
int uVar3 = checkModeFlg(ModeFlg_MIDAIR) ? true : false;
|
||||
float dVar4 = getLadderMoveAnmSpeed();
|
||||
|
||||
commonProcInit(daPyProc_LADDER_MOVE_e);
|
||||
if (uVar3 == 0) {
|
||||
if (param_1 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
m370C.y = param_2->y + 37.5f;
|
||||
} else {
|
||||
dVar4 *= -1.0f;
|
||||
@@ -351,8 +351,8 @@ BOOL daPy_lk_c::procLadderMove_init(int param_0, int param_1, cXyz* param_2) {
|
||||
}
|
||||
|
||||
setSingleMoveAnime(anm, dVar4, 0.0f, -1, daPy_HIO_ladder_c0::m.field_0x2C);
|
||||
m34B8 = param_1;
|
||||
if (param_1 == 0) {
|
||||
mDirection = direction;
|
||||
if (direction == DIR_FORWARD) {
|
||||
setTextureAnime(10, 0);
|
||||
} else {
|
||||
setTextureAnime(0xb, 0);
|
||||
|
||||
@@ -1137,13 +1137,13 @@ void daPy_lk_c::setDoStatus() {
|
||||
/* 80108A9C-80108B08 .text getDirectionFromAngle__9daPy_lk_cFs */
|
||||
int daPy_lk_c::getDirectionFromAngle(s16 angle) {
|
||||
if (abs(angle) > 0x6000) {
|
||||
return 1;
|
||||
return DIR_BACKWARD;
|
||||
} else if (angle >= 0x2000) {
|
||||
return 2;
|
||||
return DIR_LEFT;
|
||||
} else if (angle <= -0x2000) {
|
||||
return 3;
|
||||
return DIR_RIGHT;
|
||||
} else {
|
||||
return 0;
|
||||
return DIR_FORWARD;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -101,10 +101,10 @@ BOOL daPy_lk_c::procPushPullWait() {
|
||||
}
|
||||
if (m3570 == 0) {
|
||||
if (mStickDistance > 0.05f) {
|
||||
int iVar1 = getDirectionFromShapeAngle();
|
||||
if (iVar1 == 0) {
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
if (direction == DIR_FORWARD) {
|
||||
procPushMove_init();
|
||||
} else if (iVar1 == 1) {
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
procPullMove_init();
|
||||
}
|
||||
} else {
|
||||
@@ -135,18 +135,18 @@ BOOL daPy_lk_c::procPushMove_init() {
|
||||
/* 80151A1C-80151B38 .text procPushMove__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procPushMove() {
|
||||
dComIfGp_setRStatus(0x11);
|
||||
int iVar1 = getDirectionFromShapeAngle();
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
setFrontWallType();
|
||||
if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) {
|
||||
checkNextMode(0);
|
||||
} else {
|
||||
if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) {
|
||||
if (mStickDistance > 0.05f) {
|
||||
if (iVar1 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
setPushPullKeepData(dBgW::PP_UNK1_e);
|
||||
return true;
|
||||
}
|
||||
if (iVar1 == 1) {
|
||||
if (direction == DIR_BACKWARD) {
|
||||
return procPullMove_init();
|
||||
}
|
||||
}
|
||||
@@ -180,14 +180,14 @@ BOOL daPy_lk_c::procPullMove_init() {
|
||||
BOOL daPy_lk_c::procPullMove() {
|
||||
/* Nonmatching - floats */
|
||||
dComIfGp_setRStatus(0x11);
|
||||
int iVar1 = getDirectionFromShapeAngle();
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
setFrontWallType();
|
||||
if ((!checkResetFlg0(daPyRFlg0_UNK8)) || (!spActionButton() && (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)))) {
|
||||
checkNextMode(0);
|
||||
} else {
|
||||
if (!checkNoResetFlg0(daPyFlg0_PUSH_PULL_KEEP)) {
|
||||
if (mStickDistance > 0.05f) {
|
||||
if (iVar1 == 1) {
|
||||
if (direction == DIR_BACKWARD) {
|
||||
f32 dVar4 = cM_ssin(shape_angle.y);
|
||||
f32 dVar5 = cM_scos(shape_angle.y);
|
||||
cXyz local_3c;
|
||||
@@ -217,7 +217,7 @@ BOOL daPy_lk_c::procPullMove() {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (iVar1 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
return procPushMove_init();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,8 +235,8 @@ int daPy_lk_c::throwRope() {
|
||||
daPy_HIO_rope_c0::m.field_0x48, daPy_HIO_rope_c0::m.field_0x8, -1.0f);
|
||||
setPriTextureAnime(0x48, 0);
|
||||
mVelocity = 0.0f;
|
||||
if (m34B8 != 3) {
|
||||
m34B8 = 3;
|
||||
if (mDirection != DIR_RIGHT) {
|
||||
mDirection = DIR_RIGHT;
|
||||
}
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
@@ -765,7 +765,6 @@ BOOL daPy_lk_c::procRopeHangWait_init(int param_0) {
|
||||
BOOL daPy_lk_c::procRopeHangWait() {
|
||||
/* Nonmatching */
|
||||
bool bVar1;
|
||||
int iVar2;
|
||||
s16 unaff_r29;
|
||||
float dVar4;
|
||||
|
||||
@@ -784,21 +783,21 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
current.pos.z = mRopePos.z;
|
||||
s16 r30 = 0;
|
||||
if (mStickDistance > 0.05f) {
|
||||
iVar2 = getDirectionFromAngle(m34DC);
|
||||
int direction = getDirectionFromAngle(m34DC);
|
||||
if (spActionButton()) {
|
||||
if (iVar2 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
if (abs((int)m34D4) <= 0x80) {
|
||||
procRopeUp_init();
|
||||
}
|
||||
bVar1 = true;
|
||||
unaff_r29 = 0;
|
||||
} else if (iVar2 == 1) {
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
if (abs((int)m34D4) <= 0x80) {
|
||||
procRopeDown_init();
|
||||
}
|
||||
bVar1 = true;
|
||||
unaff_r29 = 0;
|
||||
} else if (iVar2 == 2) {
|
||||
} else if (direction == DIR_LEFT) {
|
||||
s16 r5 = 512.0f * mStickDistance;
|
||||
if (r5 > m34D4) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
@@ -810,7 +809,7 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
} else {
|
||||
unaff_r29 = r5;
|
||||
}
|
||||
} else {
|
||||
} else { // DIR_RIGHT
|
||||
s16 r5 = -512.0f * mStickDistance;
|
||||
if (r5 < m34D4) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
@@ -829,7 +828,7 @@ BOOL daPy_lk_c::procRopeHangWait() {
|
||||
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1,
|
||||
daPy_HIO_rope_c0::m.field_0x2C);
|
||||
}
|
||||
} else if ((iVar2 == 0) || (iVar2 == 1)) {
|
||||
} else if ((direction == DIR_FORWARD) || (direction == DIR_BACKWARD)) {
|
||||
procRopeSwingStart_init();
|
||||
}
|
||||
unaff_r29 = 0;
|
||||
@@ -939,15 +938,15 @@ BOOL daPy_lk_c::procRopeUp() {
|
||||
current.pos.x = mRopePos.x;
|
||||
current.pos.z = mRopePos.z;
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
int iVar1 = getDirectionFromAngle(m34DC);
|
||||
int direction = getDirectionFromAngle(m34DC);
|
||||
if (mStickDistance <= 0.05f) {
|
||||
procRopeHangWait_init(0);
|
||||
} else {
|
||||
if (!spActionButton()) {
|
||||
procRopeSwingStart_init();
|
||||
} else if (iVar1 == 1) {
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
procRopeDown_init();
|
||||
} else if (iVar1 == 0) {
|
||||
} else if (direction == DIR_FORWARD) {
|
||||
if (m35A0 <= current.pos.y) {
|
||||
if (!specialRopeHangUp()) {
|
||||
procRopeHangWait_init(0);
|
||||
@@ -1017,15 +1016,15 @@ BOOL daPy_lk_c::procRopeDown() {
|
||||
mRopePos = pfVar2->current.pos;
|
||||
current.pos.x = mRopePos.x;
|
||||
current.pos.z = mRopePos.z;
|
||||
int iVar1 = getDirectionFromAngle(m34DC);
|
||||
int direction = getDirectionFromAngle(m34DC);
|
||||
if (mStickDistance <= 0.05f) {
|
||||
procRopeHangWait_init(1);
|
||||
} else {
|
||||
if (!spActionButton()) {
|
||||
procRopeSwingStart_init();
|
||||
} else if (iVar1 == 0) {
|
||||
} else if (direction == DIR_FORWARD) {
|
||||
procRopeUp_init();
|
||||
} else if (iVar1 == 1) {
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
m35A0 += 1.5f;
|
||||
if (m35A0 > daPy_HIO_rope_c0::m.field_0x40) {
|
||||
m35A0 = daPy_HIO_rope_c0::m.field_0x40;
|
||||
@@ -1112,10 +1111,10 @@ BOOL daPy_lk_c::procRopeMove_init() {
|
||||
return false;
|
||||
}
|
||||
commonProcInit(daPyProc_ROPE_MOVE_e);
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
} else {
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
}
|
||||
if (fopAcM_GetParam(mActorKeepEquip.getActor()) == 0) {
|
||||
@@ -1147,8 +1146,8 @@ BOOL daPy_lk_c::procRopeMove() {
|
||||
f32 fVar1 = -1.0f;
|
||||
if (std::abs(mVelocity) < 0.001f) {
|
||||
onModeFlg(ModeFlg_00000001);
|
||||
if (m34B8 != 3) {
|
||||
m34B8 = 3;
|
||||
if (mDirection != DIR_RIGHT) {
|
||||
mDirection = DIR_RIGHT;
|
||||
fVar1 = daPy_HIO_basic_c0::m.field_0xC;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -212,8 +212,8 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
setShapeAngleToAtnActor();
|
||||
} else {
|
||||
if (mStickDistance > 0.05f) {
|
||||
int iVar1 = getDirectionFromAngle(m34DC);
|
||||
if (iVar1 == 2) {
|
||||
int direction = getDirectionFromAngle(m34DC);
|
||||
if (direction == DIR_LEFT) {
|
||||
s16 r5 = 512.0f * mStickDistance;
|
||||
if (r5 > m34DA) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
@@ -225,7 +225,7 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
} else {
|
||||
r30 = r5;
|
||||
}
|
||||
} else if (iVar1 == 3) {
|
||||
} else if (direction == DIR_RIGHT) {
|
||||
s16 r5 = -512.0f * mStickDistance;
|
||||
if (r5 < m34DA) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
|
||||
@@ -30,7 +30,7 @@ void daPy_lk_c::setSpeedAndAngleSwim() {
|
||||
if (mStickDistance > 0.05f) {
|
||||
oldAngleY = shape_angle.y;
|
||||
|
||||
if (getDirectionFromShapeAngle() == 1) {
|
||||
if (getDirectionFromShapeAngle() == DIR_BACKWARD) {
|
||||
mSwimTailEcallBack[0].onEnd();
|
||||
mSwimTailEcallBack[1].onEnd();
|
||||
|
||||
@@ -226,7 +226,7 @@ BOOL daPy_lk_c::changeSwimOutProc() {
|
||||
}
|
||||
|
||||
if (checkSwimFallCheck()) {
|
||||
if (mCurProc == daPyProc_SWIM_MOVE_e && m34B8) {
|
||||
if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) {
|
||||
current.pos.y += m35C4;
|
||||
}
|
||||
|
||||
@@ -234,39 +234,37 @@ BOOL daPy_lk_c::changeSwimOutProc() {
|
||||
|
||||
return procFall_init(1, l_HIO_wallCatch_c0.m.field_0x54);
|
||||
}
|
||||
else {
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < l_HIO_swim_c0.m.field_0x24 - 5.0f)) {
|
||||
current.pos.y = m35D0;
|
||||
|
||||
if (mCurProc == daPyProc_SWIM_MOVE_e && m34B8) {
|
||||
current.pos.y += m35C4;
|
||||
}
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < l_HIO_swim_c0.m.field_0x24 - 5.0f)) {
|
||||
current.pos.y = m35D0;
|
||||
|
||||
swimOutAfter(TRUE);
|
||||
|
||||
return checkNextMode(0);
|
||||
}
|
||||
else {
|
||||
if (dComIfGp_getItemTimeCount() <= 0 && startRestartRoom(5, 0xC9, -1.0f, 0)) {
|
||||
voiceStart(0x21);
|
||||
mFrameCtrlUnder[0].mRate = 0.0f;
|
||||
onNoResetFlg1(daPyFlg1_UNK40000000);
|
||||
}
|
||||
return FALSE;
|
||||
if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) {
|
||||
current.pos.y += m35C4;
|
||||
}
|
||||
|
||||
swimOutAfter(TRUE);
|
||||
|
||||
return checkNextMode(0);
|
||||
}
|
||||
|
||||
if (dComIfGp_getItemTimeCount() <= 0 && startRestartRoom(5, 0xC9, -1.0f, 0)) {
|
||||
voiceStart(0x21);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f);
|
||||
onNoResetFlg1(daPyFlg1_UNK40000000);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 8013D530-8013D638 .text setSwimMoveAnime__9daPy_lk_cFQ29daPy_lk_c8daPy_ANM */
|
||||
void daPy_lk_c::setSwimMoveAnime(daPy_ANM swimMoveAnm) {
|
||||
f32 startFrame = mFrameCtrlUnder[0].getFrame();
|
||||
f32 endFrame = startFrame * mFrameCtrlUnder[0].getEnd();
|
||||
f32 startFrame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
||||
f32 endFrame = startFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd();
|
||||
f32 rate = (std::fabsf(mVelocity) * (l_HIO_swim_c0.m.field_0x54 - l_HIO_swim_c0.m.field_0x50) / mMaxNormalSpeed) +
|
||||
l_HIO_swim_c0.m.field_0x50 +
|
||||
(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x74);
|
||||
setSingleMoveAnime(swimMoveAnm, rate, 0.0f, -1, l_HIO_swim_c0.m.field_0x58);
|
||||
mFrameCtrlUnder[0].setFrame(endFrame * mFrameCtrlUnder[0].getEnd());
|
||||
mAnmRatioUnder[0].getAnmTransform()->setFrame(mFrameCtrlUnder[0].getFrame());
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(endFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd());
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
||||
}
|
||||
|
||||
/* 8013D638-8013D6B8 .text getSwimTimerRate__9daPy_lk_cFv */
|
||||
@@ -416,7 +414,7 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
|
||||
gravity = 0.0f;
|
||||
setSingleMoveAnime(ANM_SWIMWAIT, (float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40, 0.0f, -1, l_HIO_swim_c0.m.field_0x44);
|
||||
mFrameCtrl->setFrame(fVar2 * mFrameCtrl->getEnd());
|
||||
mAnmRatioUnder[0].getAnmTransform()->setFrame(mFrameCtrl->getFrame());
|
||||
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrl->getFrame());
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e);
|
||||
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK100)) {
|
||||
@@ -435,9 +433,6 @@ BOOL daPy_lk_c::procSwimWait_init(BOOL param_1) {
|
||||
|
||||
/* 8013DCDC-8013DE8C .text procSwimWait__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procSwimWait() {
|
||||
fopAc_ac_c* talkEventPartner;
|
||||
short targetAngleY;
|
||||
|
||||
setSpeedAndAngleSwim();
|
||||
m34D4 += (short)((cM_rndF(0.3f) + 0.85f) * l_HIO_swim_c0.m.field_0x2);
|
||||
m35C4 = cM_ssin(m34D4) * l_HIO_swim_c0.m.field_0x4C + l_HIO_swim_c0.m.field_0x48;
|
||||
@@ -445,37 +440,37 @@ BOOL daPy_lk_c::procSwimWait() {
|
||||
if (changeSwimOutProc()) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK100)) {
|
||||
if (changeSwimUpProc()) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
current.pos.y = m35D0;
|
||||
}
|
||||
if (checkNextModeSwim()) {
|
||||
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK100)) {
|
||||
if (changeSwimUpProc()) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
|
||||
talkEventPartner = fopAcM_getTalkEventPartner(this);
|
||||
if (talkEventPartner) {
|
||||
targetAngleY = cLib_targetAngleY(¤t.pos, &talkEventPartner->eyePos);
|
||||
cLib_addCalcAngleS(&shape_angle.y, targetAngleY, l_HIO_turn_c0.m.field_0x6, l_HIO_turn_c0.m.field_0x8, l_HIO_turn_c0.m.field_0xA);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
current.pos.y = m35D0;
|
||||
}
|
||||
|
||||
mFrameCtrlUnder[0].setRate((float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40);
|
||||
if (checkNextModeSwim()) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (mStickDistance > 0.05f) {
|
||||
procSwimMove_init(TRUE);
|
||||
}
|
||||
|
||||
setSwimTimerStartStop();
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
|
||||
fopAc_ac_c* talkEventPartner = fopAcM_getTalkEventPartner(this);
|
||||
if (talkEventPartner) {
|
||||
short targetAngleY = cLib_targetAngleY(¤t.pos, &talkEventPartner->eyePos);
|
||||
cLib_addCalcAngleS(&shape_angle.y, targetAngleY, l_HIO_turn_c0.m.field_0x6, l_HIO_turn_c0.m.field_0x8, l_HIO_turn_c0.m.field_0xA);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
}
|
||||
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate((getSwimTimerRate() * l_HIO_swim_c0.m.field_0x70) + l_HIO_swim_c0.m.field_0x40);
|
||||
|
||||
if (mStickDistance > 0.05f) {
|
||||
procSwimMove_init(TRUE);
|
||||
}
|
||||
|
||||
setSwimTimerStartStop();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -484,14 +479,14 @@ BOOL daPy_lk_c::procSwimMove_init(BOOL param_1) {
|
||||
commonProcInit(daPyProc_SWIM_MOVE_e);
|
||||
|
||||
if (!param_1) {
|
||||
mFrameCtrlUnder[0].setFrame(0.0f);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(0.0f);
|
||||
}
|
||||
|
||||
gravity = 0.0f;
|
||||
|
||||
setSwimMoveAnime(ANM_SWIMING);
|
||||
|
||||
m34B8 = 0;
|
||||
mDirection = DIR_FORWARD;
|
||||
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK100)) {
|
||||
if (mEquipItem != daPyItem_NONE_e) {
|
||||
@@ -514,40 +509,38 @@ BOOL daPy_lk_c::procSwimMove_init(BOOL param_1) {
|
||||
|
||||
/* 8013DF60-8013E250 .text procSwimMove__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procSwimMove() {
|
||||
int iVar1;
|
||||
daPy_ANM anm;
|
||||
|
||||
setSpeedAndAngleSwim();
|
||||
|
||||
J3DFrameCtrl* mFrameCtrl = mFrameCtrlUnder;
|
||||
|
||||
int direction;
|
||||
if (!mpAttention->Lockon()) {
|
||||
iVar1 = 0;
|
||||
direction = DIR_FORWARD;
|
||||
}
|
||||
else if (mStickDistance > 0.05f) {
|
||||
direction = getDirectionFromShapeAngle();
|
||||
}
|
||||
else {
|
||||
if (mStickDistance > 0.05f) {
|
||||
iVar1 = getDirectionFromShapeAngle();
|
||||
}
|
||||
else {
|
||||
iVar1 = 0;
|
||||
}
|
||||
direction = DIR_FORWARD;
|
||||
}
|
||||
|
||||
if (m34B8 != iVar1) {
|
||||
m34B8 = iVar1;
|
||||
if (mDirection != direction) {
|
||||
mDirection = direction;
|
||||
float fVar1 = m35C4;
|
||||
|
||||
if (m34B8 == 0) {
|
||||
if (mDirection == DIR_FORWARD) {
|
||||
anm = ANM_SWIMING;
|
||||
m35C4 = l_HIO_swim_c0.m.field_0x5C;
|
||||
}
|
||||
else {
|
||||
m35C4 = -80.0f;
|
||||
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
anm = ANM_ATNDLS;
|
||||
}
|
||||
else if (m34B8 == 3) {
|
||||
else if (mDirection == DIR_RIGHT) {
|
||||
anm = ANM_ATNDRS;
|
||||
}
|
||||
else {
|
||||
@@ -558,7 +551,7 @@ BOOL daPy_lk_c::procSwimMove() {
|
||||
m_old_fdata->getOldFrameTransInfo(0)->mTranslate.y -= m35C4 - fVar1;
|
||||
setSwimMoveAnime(anm);
|
||||
|
||||
if (m34B8) {
|
||||
if (mDirection != DIR_FORWARD) {
|
||||
setTextureAnime(3, 0);
|
||||
onModeFlg(ModeFlg_00000100);
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
@@ -573,7 +566,7 @@ BOOL daPy_lk_c::procSwimMove() {
|
||||
mFrameCtrl[0].setRate((std::fabsf(mVelocity) * (l_HIO_swim_c0.m.field_0x54 - l_HIO_swim_c0.m.field_0x50)) / mMaxNormalSpeed + l_HIO_swim_c0.m.field_0x50 + (float)(getSwimTimerRate() * l_HIO_swim_c0.m.field_0x74));
|
||||
}
|
||||
|
||||
if (m34B8 == 1) {
|
||||
if (mDirection == DIR_BACKWARD) {
|
||||
mFrameCtrl[0].setRate(mFrameCtrl[0].getRate() * 0.5f);
|
||||
}
|
||||
|
||||
@@ -603,7 +596,7 @@ BOOL daPy_lk_c::procSwimMove() {
|
||||
if (mStickDistance <= 0.05f) {
|
||||
procSwimWait_init(TRUE);
|
||||
}
|
||||
else if ((!m34B8 && mFrameCtrl->checkPass(20.0f)) || (m34B8 && mFrameCtrl->checkPass(0.0f))) {
|
||||
else if ((mDirection == DIR_FORWARD && mFrameCtrl->checkPass(20.0f)) || (mDirection != DIR_FORWARD && mFrameCtrl->checkPass(0.0f))) {
|
||||
seStartOnlyReverb(JA_SE_LK_SWIM);
|
||||
}
|
||||
|
||||
|
||||
@@ -371,40 +371,36 @@ void daPy_lk_c::setJumpCutAtParam() {
|
||||
|
||||
/* 80155970-801559F0 .text getCutDirection__9daPy_lk_cFv */
|
||||
int daPy_lk_c::getCutDirection() {
|
||||
int iVar1;
|
||||
s16 sVar2;
|
||||
|
||||
int direction;
|
||||
if (mStickDistance <= 0.05f) {
|
||||
iVar1 = 4;
|
||||
direction = DIR_NONE;
|
||||
} else {
|
||||
s16 angle;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
sVar2 = fopAcM_searchActorAngleY(this, mpAttnActorLockOn);
|
||||
sVar2 = m34E8 - sVar2;
|
||||
angle = m34E8 - fopAcM_searchActorAngleY(this, mpAttnActorLockOn);
|
||||
} else {
|
||||
sVar2 = m34E8 - m34DE;
|
||||
angle = m34E8 - m34DE;
|
||||
}
|
||||
iVar1 = getDirectionFromAngle(sVar2);
|
||||
direction = getDirectionFromAngle(angle);
|
||||
}
|
||||
return iVar1 + 1;
|
||||
return direction + 1;
|
||||
}
|
||||
|
||||
/* 801559F0-80155C3C .text changeCutProc__9daPy_lk_cFv */
|
||||
int daPy_lk_c::changeCutProc() {
|
||||
u32 bVar1;
|
||||
|
||||
if (m34C5 == 5 && changeSpecialBattle()) {
|
||||
m34C4 = 0;
|
||||
return true;
|
||||
}
|
||||
m34C4++;
|
||||
int iVar4 = getCutDirection() - 1;
|
||||
int direction = getCutDirection() - 1;
|
||||
short sVar2;
|
||||
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
|
||||
sVar2 = shape_angle.y;
|
||||
} else {
|
||||
sVar2 = m34E8;
|
||||
}
|
||||
bVar1 = m34C4;
|
||||
u32 bVar1 = m34C4;
|
||||
if (bVar1 > 4) {
|
||||
mCutCount = bVar1 - 2;
|
||||
} else {
|
||||
@@ -413,17 +409,17 @@ int daPy_lk_c::changeCutProc() {
|
||||
bVar1 = m34C4;
|
||||
|
||||
if (bVar1 == 4) {
|
||||
if (iVar4 == 3 || iVar4 == 0) {
|
||||
if (direction == DIR_RIGHT || direction == DIR_FORWARD) {
|
||||
procCutEA_init();
|
||||
} else {
|
||||
procCutEB_init();
|
||||
}
|
||||
} else if (bVar1 < 4) {
|
||||
if (iVar4 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
procCutF_init(sVar2);
|
||||
} else if (iVar4 == 3) {
|
||||
} else if (direction == DIR_RIGHT) {
|
||||
procCutR_init(sVar2);
|
||||
} else if (iVar4 == 4) {
|
||||
} else if (direction == DIR_NONE) {
|
||||
if (mpAttention->Lockon()) {
|
||||
procCutA_init(sVar2);
|
||||
} else {
|
||||
@@ -433,19 +429,19 @@ int daPy_lk_c::changeCutProc() {
|
||||
procCutL_init(sVar2);
|
||||
}
|
||||
} else if (bVar1 == 6) {
|
||||
if (iVar4 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
procCutTurn_init(1);
|
||||
} else if (iVar4 == 4) {
|
||||
} else if (direction == DIR_NONE) {
|
||||
procCutExB_init();
|
||||
} else if (iVar4 == 3) {
|
||||
} else if (direction == DIR_RIGHT) {
|
||||
procCutExMJ_init(1);
|
||||
} else {
|
||||
procCutExMJ_init(0);
|
||||
}
|
||||
} else if (bVar1 < 6) {
|
||||
if (iVar4 == 0) {
|
||||
if (direction == DIR_FORWARD) {
|
||||
procCutExMJ_init(1);
|
||||
} else if (iVar4 == 3) {
|
||||
} else if (direction == DIR_RIGHT) {
|
||||
procCutKesa_init();
|
||||
} else {
|
||||
procCutExA_init();
|
||||
@@ -580,21 +576,21 @@ BOOL daPy_lk_c::procCutA() {
|
||||
m3522 = daPy_HIO_cutA_c0::m.field_0x0;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutA_c0::m.field_0xC) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
@@ -684,21 +680,21 @@ BOOL daPy_lk_c::procCutF() {
|
||||
m3522 = daPy_HIO_cutF_c0::m.field_0x0;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutF_c0::m.field_0xC) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
@@ -783,21 +779,21 @@ BOOL daPy_lk_c::procCutR() {
|
||||
m3522 = daPy_HIO_cutR_c0::m.field_0x0;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutR_c0::m.field_0xC) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
@@ -884,21 +880,21 @@ BOOL daPy_lk_c::procCutL() {
|
||||
m3522 = daPy_HIO_cutL_c0::m.field_0x0;
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutL_c0::m.field_0xC) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
@@ -985,7 +981,7 @@ BOOL daPy_lk_c::procCutEA() {
|
||||
m34D0--;
|
||||
} else {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
@@ -1069,7 +1065,7 @@ BOOL daPy_lk_c::procCutEB() {
|
||||
m34D0--;
|
||||
} else {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
@@ -1407,18 +1403,18 @@ BOOL daPy_lk_c::procCutTurn() {
|
||||
if ((int)m34D0 > 0) {
|
||||
m34D0--;
|
||||
} else {
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutTurn_c0::m.field_0x10) {
|
||||
u8 uVar1 = m34B8;
|
||||
m34B8 = 3;
|
||||
u8 orig_direction = mDirection;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
} else {
|
||||
if (frameCtrl.getFrame() > 17.0f) {
|
||||
m32E4.end();
|
||||
@@ -1632,7 +1628,7 @@ BOOL daPy_lk_c::procCutTurnMove_init() {
|
||||
mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame());
|
||||
}
|
||||
m3598 = 1.0f;
|
||||
m34B8 = 0;
|
||||
mDirection = DIR_FORWARD;
|
||||
|
||||
if (dComIfGs_isEventBit(0xb20)) {
|
||||
bVar1 = true;
|
||||
@@ -1676,42 +1672,42 @@ BOOL daPy_lk_c::procCutTurnMove() {
|
||||
} else if (swordButton()) {
|
||||
f32 dVar8 = 0.0f;
|
||||
if (mStickDistance > 0.05f) {
|
||||
s32 uVar5 = getDirectionFromAngle(m34E8 - m34E6);
|
||||
int direction = getDirectionFromAngle(m34E8 - m34E6);
|
||||
daPy_ANM dVar6 = (daPy_ANM)0xffff;
|
||||
cLib_addCalcAngleS(¤t.angle.y, m34E8, 4, 12000, 0x2000);
|
||||
f32 in_f30;
|
||||
if (((u32)m34B8 == 0) || ((u32)m34B8 == 1)) {
|
||||
if (uVar5 == 2 || uVar5 == 3) {
|
||||
if ((mDirection == DIR_FORWARD) || (mDirection == DIR_BACKWARD)) {
|
||||
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
|
||||
dVar6 = ANM_CUTTURNPWLR;
|
||||
in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x24;
|
||||
mVelocity *= 0.5f;
|
||||
} else if (m34B8 != uVar5) {
|
||||
} else if (mDirection != direction) {
|
||||
mVelocity *= 0.5f;
|
||||
}
|
||||
} else if (uVar5 == 0 || uVar5 == 1) {
|
||||
} else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
|
||||
dVar6 = ANM_CUTTURNPWFB;
|
||||
in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x1C;
|
||||
mVelocity *= 0.5f;
|
||||
} else if (m34B8 != uVar5) {
|
||||
} else if (mDirection != direction) {
|
||||
mVelocity *= 0.5f;
|
||||
}
|
||||
if (m34B8 == uVar5) {
|
||||
if (mDirection == direction) {
|
||||
dVar8 = daPy_HIO_move_c0::m.field_0x14 * mStickDistance;
|
||||
} else {
|
||||
m34B8 = (u8)uVar5;
|
||||
mDirection = direction;
|
||||
}
|
||||
if (dVar6 != (daPy_ANM)0xffff) {
|
||||
setSingleMoveAnime(dVar6, 0.0f, 0.0f, -1, in_f30);
|
||||
}
|
||||
}
|
||||
setNormalSpeedF(dVar8, 0.5f, 2.0f, 0.25f);
|
||||
if (m34B8 == 0) {
|
||||
if (mDirection == DIR_FORWARD) {
|
||||
dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x18;
|
||||
} else if (m34B8 == 1) {
|
||||
} else if (mDirection == DIR_BACKWARD) {
|
||||
dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x18;
|
||||
} else if (m34B8 == 3) {
|
||||
} else if (mDirection == DIR_RIGHT) {
|
||||
dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x20;
|
||||
} else {
|
||||
} else { // DIR_LEFT
|
||||
dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x20;
|
||||
}
|
||||
f32 dVar7 = mVelocity / mMaxNormalSpeed;
|
||||
|
||||
@@ -98,8 +98,8 @@ BOOL daPy_lk_c::procVomitWait() {
|
||||
procVomitJump_init(0);
|
||||
} else {
|
||||
if (mStickDistance > 0.05f) {
|
||||
int iVar1 = getDirectionFromAngle(m34DC);
|
||||
if (iVar1 == 2) {
|
||||
int direction = getDirectionFromAngle(m34DC);
|
||||
if (direction == DIR_LEFT) {
|
||||
s16 r5 = 512.0f * mStickDistance;
|
||||
if (r5 > m34D4) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
@@ -111,7 +111,7 @@ BOOL daPy_lk_c::procVomitWait() {
|
||||
} else {
|
||||
r30 = r5;
|
||||
}
|
||||
} else if (iVar1 == 3) {
|
||||
} else if (direction == DIR_RIGHT) {
|
||||
s16 r5 = -512.0f * mStickDistance;
|
||||
if (r5 < m34D4) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
@@ -210,13 +210,12 @@ BOOL daPy_lk_c::procVomitJump() {
|
||||
cLib_addCalc(&mVelocity, daPy_HIO_vomit_c0::m.field_0x20, 0.5f, 2.0f, 0.1f);
|
||||
} else {
|
||||
f32 fVar2;
|
||||
s32 iVar3;
|
||||
if (!checkFanGlideProc(1)) {
|
||||
if (mStickDistance > 0.05f) {
|
||||
iVar3 = getDirectionFromShapeAngle();
|
||||
if (iVar3 == 0) {
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
if (direction == DIR_FORWARD) {
|
||||
fVar2 = 1.0f;
|
||||
} else if (iVar3 == 1) {
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
fVar2 = -1.0f;
|
||||
} else {
|
||||
fVar2 = 0.0f;
|
||||
|
||||
@@ -88,20 +88,20 @@ BOOL daPy_lk_c::procWeaponNormalSwing() {
|
||||
m34D0--;
|
||||
} else {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
} else if (frameCtrl.getFrame() > daPy_HIO_cutBoko_c0::m.field_0x1C) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTRER)) {
|
||||
return true;
|
||||
@@ -174,19 +174,19 @@ BOOL daPy_lk_c::procWeaponSideSwing() {
|
||||
}
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || (mActorKeepEquip.getActor() == NULL)) {
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutBoko_c0::m.field_0x50) {
|
||||
f32 dVar4 = mVelocity;
|
||||
u8 uVar1 = m34B8;
|
||||
u8 orig_direction = mDirection;
|
||||
mVelocity = 0.0f;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
mVelocity = dVar4;
|
||||
m34B8 = uVar1;
|
||||
mDirection = orig_direction;
|
||||
}
|
||||
if (changeCutReverseProc(ANM_CUTREL)) {
|
||||
return true;
|
||||
|
||||
@@ -33,7 +33,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
|
||||
sVar1 = daPy_HIO_wall_c0::m.field_0x8;
|
||||
fVar6 = daPy_HIO_wall_c0::m.field_0x60;
|
||||
fVar3 = daPy_HIO_wall_c0::m.field_0x58;
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dVar5 = ANM_WALLWR;
|
||||
} else {
|
||||
dVar5 = ANM_WALLWL;
|
||||
@@ -45,7 +45,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
|
||||
sVar1 = daPy_HIO_wall_c0::m.field_0xA;
|
||||
fVar6 = daPy_HIO_wall_c0::m.field_0x64;
|
||||
fVar3 = daPy_HIO_wall_c0::m.field_0x5C;
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dVar5 = ANM_WALLWRDW;
|
||||
} else {
|
||||
dVar5 = ANM_WALLWLDW;
|
||||
@@ -72,7 +72,7 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
|
||||
}
|
||||
|
||||
/* 801371E0-80137608 .text getWHideModePolygon__9daPy_lk_cFP4cXyzP4cXyzP4cXyzi */
|
||||
cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3) {
|
||||
cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int direction) {
|
||||
if (param_0 != NULL) {
|
||||
mLinkLinChk.Set(param_0, param_1, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
@@ -103,14 +103,14 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (param_3 == 4) {
|
||||
if (direction == DIR_NONE) {
|
||||
f31 = 49.9f;
|
||||
} else {
|
||||
f31 = 99.8f;
|
||||
}
|
||||
s16 sVar7 = uVar3;
|
||||
cXyz local_48;
|
||||
if (param_3 != 3) {
|
||||
if (direction != DIR_RIGHT) {
|
||||
local_3c.set(
|
||||
param_2->x + (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f),
|
||||
param_2->y,
|
||||
@@ -129,7 +129,7 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
|
||||
}
|
||||
}
|
||||
|
||||
if (param_3 != 2) {
|
||||
if (direction != DIR_LEFT) {
|
||||
local_3c.set(
|
||||
param_2->x - (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f),
|
||||
param_2->y,
|
||||
@@ -148,8 +148,8 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
|
||||
}
|
||||
}
|
||||
|
||||
if (param_3 != 4) {
|
||||
if (param_3 == 2) {
|
||||
if (direction != DIR_NONE) {
|
||||
if (direction == DIR_LEFT) {
|
||||
sVar7 = sVar7 - shape_angle.y;
|
||||
param_2->x += daPy_HIO_wall_c0::m.field_0x54 * triPla->GetNP()->z;
|
||||
param_2->z -= daPy_HIO_wall_c0::m.field_0x54 * triPla->GetNP()->x;
|
||||
@@ -217,12 +217,12 @@ BOOL daPy_lk_c::checkWHideFrontFloor(cXyz* param_0) {
|
||||
}
|
||||
|
||||
/* 80137828-80137914 .text checkWHideModeChange__9daPy_lk_cFP4cXyz */
|
||||
BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
int daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
if (!checkWHideFrontFloor(param_0)) {
|
||||
dComIfGp_setRStatus(0);
|
||||
} else if (spActionButton()) {
|
||||
return true;
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
cXyz local_18;
|
||||
@@ -234,7 +234,7 @@ BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
if (checkModeFlg(ModeFlg_00000001) && mCurProc != daPyProc_WHIDE_PEEP_e) {
|
||||
setTextureAnime(mAnmDataTable[ANM_WALL].mTexAnmIdx, 0);
|
||||
}
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80137914-80137A00 .text changeWHideEndProc__9daPy_lk_cFP4cXyz */
|
||||
@@ -353,14 +353,13 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
cXyz cStack_24;
|
||||
cXyz cStack_3c;
|
||||
cXyz cStack_48;
|
||||
int iVar1;
|
||||
|
||||
getWHideBasePos(&cStack_3c);
|
||||
if (changeWHideEndProc(&cStack_3c)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
iVar1 = checkWHideModeChange(&cStack_3c);
|
||||
int iVar1 = checkWHideModeChange(&cStack_3c);
|
||||
if (iVar1 == 1) {
|
||||
setSingleMoveAnime(
|
||||
ANM_WALLDW,
|
||||
@@ -388,22 +387,22 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
|
||||
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
|
||||
{
|
||||
iVar1 = getDirectionFromCurrentAngle();
|
||||
if (iVar1 == 3 || iVar1 == 2) {
|
||||
if (iVar1 == 3) {
|
||||
int direction = getDirectionFromCurrentAngle();
|
||||
if (direction == DIR_RIGHT || direction == DIR_LEFT) {
|
||||
if (direction == DIR_RIGHT) {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
m34B8 = 3;
|
||||
mDirection = DIR_RIGHT;
|
||||
} else {
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
}
|
||||
|
||||
getWHideNextPos(&cStack_3c, &cStack_48);
|
||||
iVar1 = checkWHideBackWall(&cStack_48);
|
||||
if (iVar1 != 0 && (!checkNoResetFlg0(daPyFlg0_UNK10000) || checkWHideFrontFloor(&cStack_48))) {
|
||||
BOOL iVar1 = checkWHideBackWall(&cStack_48);
|
||||
if (iVar1 && (!checkNoResetFlg0(daPyFlg0_UNK10000) || checkWHideFrontFloor(&cStack_48))) {
|
||||
return procWHideMove_init();
|
||||
}
|
||||
if (iVar1 == 0) {
|
||||
if (!iVar1) {
|
||||
cStack_48 += (cStack_48 - cStack_3c) * 0.25f;
|
||||
mLinkLinChk.Set(&cStack_3c, &cStack_48, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
@@ -420,7 +419,7 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
/* 80138074-801380F0 .text procWHideMove_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procWHideMove_init() {
|
||||
commonProcInit(daPyProc_WHIDE_MOVE_e);
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
current.angle.y = shape_angle.y + 0x4000;
|
||||
} else {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
@@ -451,23 +450,23 @@ BOOL daPy_lk_c::procWHideMove() {
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 sVar8 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
f32 fVar2;
|
||||
if (checkWHideModeChange(&acStack_24)) {
|
||||
if (checkWHideModeChange(&acStack_24) != 0) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
|
||||
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
|
||||
{
|
||||
int iVar6 = getDirectionFromCurrentAngle();
|
||||
if (iVar6 == 1) {
|
||||
int direction = getDirectionFromCurrentAngle();
|
||||
if (direction == DIR_BACKWARD) {
|
||||
current.angle.y -= -0x8000;
|
||||
mVelocity *= 0.5f;
|
||||
if (m34B8 == 2) {
|
||||
m34B8 = 3;
|
||||
if (mDirection == DIR_LEFT) {
|
||||
mDirection = DIR_RIGHT;
|
||||
} else {
|
||||
m34B8 = 2;
|
||||
mDirection = DIR_LEFT;
|
||||
}
|
||||
setBlendWHideMoveAnime(2.0f);
|
||||
}
|
||||
if (iVar6 == 0 || iVar6 == 1) {
|
||||
if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
|
||||
fVar2 = daPy_HIO_move_c0::m.field_0x14;
|
||||
fVar2 *= mStickDistance;
|
||||
} else {
|
||||
@@ -486,7 +485,7 @@ BOOL daPy_lk_c::procWHideMove() {
|
||||
}
|
||||
|
||||
cXyz cStack_3c;
|
||||
triPla = getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, m34B8);
|
||||
triPla = getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, mDirection);
|
||||
if (triPla != NULL) {
|
||||
return procWHideReady_init(triPla, &cStack_3c);
|
||||
}
|
||||
@@ -501,7 +500,7 @@ BOOL daPy_lk_c::procWHideMove() {
|
||||
}
|
||||
|
||||
cXyz cStack_48;
|
||||
if (sVar8 != shape_angle.y && getWHideModePolygon(NULL, NULL, &cStack_48, m34B8) != NULL) {
|
||||
if (sVar8 != shape_angle.y && getWHideModePolygon(NULL, NULL, &cStack_48, mDirection) != NULL) {
|
||||
if ((s16)(current.angle.y - shape_angle.y) > 0) {
|
||||
current.angle.y = sVar8 + 0x4000;
|
||||
} else {
|
||||
@@ -531,7 +530,7 @@ BOOL daPy_lk_c::procWHidePeep_init() {
|
||||
fVar3 = daPy_HIO_wall_c0::m.field_0x48;
|
||||
fVar2 = daPy_HIO_wall_c0::m.field_0x2C;
|
||||
sVar4 = daPy_HIO_wall_c0::m.field_0x4;
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dVar2 = ANM_WALLPR;
|
||||
} else {
|
||||
dVar2 = ANM_WALLPL;
|
||||
@@ -541,7 +540,7 @@ BOOL daPy_lk_c::procWHidePeep_init() {
|
||||
fVar3 = daPy_HIO_wall_c0::m.field_0x4C;
|
||||
fVar2 = daPy_HIO_wall_c0::m.field_0x30;
|
||||
sVar4 = daPy_HIO_wall_c0::m.field_0x6;
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dVar2 = ANM_WALLPRDW;
|
||||
} else {
|
||||
dVar2 = ANM_WALLPLDW;
|
||||
@@ -569,7 +568,7 @@ BOOL daPy_lk_c::procWHidePeep() {
|
||||
}
|
||||
|
||||
if (std::fabsf(dVar3) < 0.01f) {
|
||||
if (m34B8 == 2) {
|
||||
if (mDirection == DIR_LEFT) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20_e);
|
||||
@@ -581,13 +580,13 @@ BOOL daPy_lk_c::procWHidePeep() {
|
||||
}
|
||||
}
|
||||
|
||||
if (checkWHideModeChange(&cStack_38)) {
|
||||
if (checkWHideModeChange(&cStack_38) != 0) {
|
||||
if (dVar3 > 0.0f) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
} else if (mStickDistance > 0.05f) {
|
||||
int iVar1 = getDirectionFromCurrentAngle();
|
||||
if ((iVar1 != 0 && dVar3 > 0.0f) || (iVar1 == 0 && dVar3 < 0.0f)) {
|
||||
int direction = getDirectionFromCurrentAngle();
|
||||
if ((direction != DIR_FORWARD && dVar3 > 0.0f) || (direction == 0 && dVar3 < 0.0f)) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
} else if (dVar3 > 0.0f) {
|
||||
|
||||
Reference in New Issue
Block a user