mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-18 21:18:23 -04:00
player_whide 100%, player_ship fixes
This commit is contained in:
@@ -1364,7 +1364,7 @@ public:
|
||||
BOOL procClimbMoveSide_init(int);
|
||||
BOOL procClimbMoveSide();
|
||||
void setBlendWHideMoveAnime(f32);
|
||||
int getWHideModePolygon(cXyz*, cXyz*, cXyz*, int);
|
||||
cM3dGPla* getWHideModePolygon(cXyz*, cXyz*, cXyz*, int);
|
||||
void getWHideBasePos(cXyz*);
|
||||
void getWHideNextPos(cXyz*, cXyz*);
|
||||
BOOL checkWHideBackWall(cXyz*);
|
||||
|
||||
@@ -293,7 +293,6 @@ BOOL daPy_lk_c::dProcDamage() {
|
||||
|
||||
/* 8012DF24-8012E054 .text dProcHoldup_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::dProcHoldup_init() {
|
||||
s32 uVar1;
|
||||
daPy_ANM dVar3;
|
||||
short sVar2;
|
||||
f32 dVar6;
|
||||
@@ -303,8 +302,8 @@ BOOL daPy_lk_c::dProcHoldup_init() {
|
||||
if (mCurProc == daPyProc_DEMO_HOLDUP_e) {
|
||||
return false;
|
||||
}
|
||||
// TODO: figure out what's going on here.
|
||||
uVar1 = mModeFlg >> 4 & ModeFlg_00000001;
|
||||
|
||||
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) ? TRUE : FALSE;
|
||||
commonProcInit(daPyProc_DEMO_HOLDUP_e);
|
||||
if (uVar1) {
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
|
||||
+221
-230
@@ -30,20 +30,14 @@ BOOL daPy_lk_c::shipSpecialDemoStart() {
|
||||
|
||||
/* 8013F8AC-8013F984 .text checkJumpRideShip__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkJumpRideShip() {
|
||||
/* Nonmatching - regalloc related
|
||||
to cXyz. */
|
||||
daShip_c* iVar1;
|
||||
cXyz local_38;
|
||||
cXyz local_2c;
|
||||
|
||||
if (((mCyl.ChkCoHit()) && (mCyl.GetCoHitAc())) && (fopAcM_GetName(iVar1) == PROC_SHIP)) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, &local_38);
|
||||
cXyz local_2c(iVar1->old.pos - local_38);
|
||||
if (local_2c.y > 5.0f) {
|
||||
local_38.x = local_2c.x;
|
||||
local_38.y = 0.0f;
|
||||
local_38.z = local_2c.z;
|
||||
if (local_2c.abs2() < 10000.0f) {
|
||||
if (mCyl.ChkCoHit()) {
|
||||
fopAc_ac_c* hit_ac = mCyl.GetCoHitAc();
|
||||
if (hit_ac != NULL && fopAcM_GetName(hit_ac) == PROC_SHIP) {
|
||||
daShip_c* ship = (daShip_c*)hit_ac;
|
||||
cXyz sp20;
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, &sp20);
|
||||
sp20 = old.pos - sp20;
|
||||
if (sp20.y > 5.0f && sp20.abs2XZ() < 10000.0f) {
|
||||
return procShipJumpRide_init();
|
||||
}
|
||||
}
|
||||
@@ -117,7 +111,6 @@ void daPy_lk_c::setShipRidePosUseItem() {
|
||||
|
||||
/* 80140018-801403E0 .text setShipRidePos__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
/* Nonmatching - branching, cXyz */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (iVar1 != 0) {
|
||||
if (iVar1->mStateFlag & 0x4000) {
|
||||
@@ -142,7 +135,7 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
}
|
||||
if (mCurProc == ANM_WARPOUT) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset3, ¤t.pos);
|
||||
} else if ((mCurProc == ANM_SETBOOTS) && (m34D8 != 0)) {
|
||||
} else if (mCurProc == ANM_SETBOOTS && m34D8 != 0) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset2, ¤t.pos);
|
||||
} else {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset, ¤t.pos);
|
||||
@@ -151,8 +144,9 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
mBodyAngle.y = 0;
|
||||
} else {
|
||||
cXyz local_38;
|
||||
dKyw_get_AllWind_vec(¤t.pos, &local_38, &local_38.y);
|
||||
f32 fVar2 = (30.0f * local_38.x + iVar1->speedF) / 30.0f;
|
||||
f32 sp08;
|
||||
dKyw_get_AllWind_vec(¤t.pos, &local_38, &sp08);
|
||||
f32 fVar2 = (30.0f * sp08 + iVar1->speedF) / 30.0f;
|
||||
if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
@@ -173,14 +167,15 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP2, 1.0f, 3.0f, -1, 3.0f);
|
||||
}
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_SHIP_JUMP2) {
|
||||
if (!(mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
||||
} else if ((iVar1->mStateFlag & 1) != 0) {
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP1, 1.0f, 0.0f, -1, 20.0f);
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
if ((iVar1->mStateFlag & 1) != 0) {
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP1, 1.0f, 0.0f, -1, 20.0f);
|
||||
} else {
|
||||
setSingleMoveAnime(ANM_VOYAGE1, 1.0f, 0.0f, -1, 5.0f);
|
||||
}
|
||||
} else {
|
||||
setSingleMoveAnime(ANM_VOYAGE1, 1.0f, 0.0f, -1, 5.0f);
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f);
|
||||
}
|
||||
} else {
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f);
|
||||
}
|
||||
s16 sVar4;
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_VOYAGE1) {
|
||||
@@ -208,42 +203,44 @@ void daPy_lk_c::setShipAttentionAnmSpeed(f32 param_0) {
|
||||
|
||||
/* 80140480-801405F0 .text setShipAttnetionBodyAngle__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
/* Nonmatching - floats, math */
|
||||
int iVar1;
|
||||
s16 sVar2;
|
||||
|
||||
setBodyAngleXReadyAnime();
|
||||
sVar2 = 0;
|
||||
|
||||
s16 r30 = 0;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
} else {
|
||||
if (mStickDistance > 0.05f) {
|
||||
iVar1 = getDirectionFromAngle(m34DC);
|
||||
int iVar1 = getDirectionFromAngle(m34DC);
|
||||
if (iVar1 == 2) {
|
||||
sVar2 = (s16)(int)(512.0f * mStickDistance);
|
||||
if (m34DA > sVar2) {
|
||||
m34DA = m34DA + (short)(int)(64.0f * mStickDistance);
|
||||
if (sVar2 > m34DA) {
|
||||
m34DA = sVar2;
|
||||
} else {
|
||||
sVar2 = m34DA;
|
||||
s16 r5 = 512.0f * mStickDistance;
|
||||
if (r5 > m34DA) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
m34DA += r0;
|
||||
if (m34DA > r5) {
|
||||
m34DA = r5;
|
||||
}
|
||||
r30 = m34DA;
|
||||
} else {
|
||||
r30 = r5;
|
||||
}
|
||||
} else if (iVar1 == 3) {
|
||||
sVar2 = (s16)(int)(-512.0f * mStickDistance);
|
||||
if (sVar2 < m34DA) {
|
||||
m34DA = m34DA - (short)(int)(64.0f * mStickDistance);
|
||||
if (m34DA < sVar2) {
|
||||
m34DA = sVar2;
|
||||
} else {
|
||||
sVar2 = m34DA;
|
||||
s16 r5 = -512.0f * mStickDistance;
|
||||
if (r5 < m34DA) {
|
||||
s16 r0 = 64.0f * mStickDistance;
|
||||
m34DA -= r0;
|
||||
if (m34DA < r5) {
|
||||
m34DA = r5;
|
||||
}
|
||||
r30 = m34DA;
|
||||
} else {
|
||||
r30 = r5;
|
||||
}
|
||||
}
|
||||
}
|
||||
cLib_addCalcAngleS(&m34DA, sVar2, 3, 0x40, 0x10);
|
||||
cLib_addCalcAngleS(&m34DA, r30, 3, 0x40, 0x10);
|
||||
shape_angle.y = shape_angle.y + m34DA;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -280,7 +277,6 @@ void daPy_lk_c::initShipCraneAnime() {
|
||||
|
||||
/* 80140D80-80140EF0 .text procShipReady_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipReady_init() {
|
||||
/* Nonmatching - regalloc */
|
||||
commonProcInit(daPyProc_SHIP_READY_e);
|
||||
deleteEquipItem(TRUE);
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
@@ -294,7 +290,7 @@ BOOL daPy_lk_c::procShipReady_init() {
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
s16 sVar3 = fopAcM_searchActorAngleY((fopAc_ac_c*)iVar1, this);
|
||||
if ((sVar3 - iVar1->shape_angle.y) > 0) {
|
||||
if ((s16)(sVar3 - iVar1->shape_angle.y) > 0) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge, ¤t.pos);
|
||||
shape_angle.y = iVar1->shape_angle.y + -0x4000;
|
||||
m34D4 = shape_angle.y;
|
||||
@@ -320,21 +316,17 @@ BOOL daPy_lk_c::procShipReady_init() {
|
||||
|
||||
/* 80140EF0-8014105C .text procShipReady__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipReady() {
|
||||
/* Nonmatching - floats, branching,
|
||||
regalloc */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
|
||||
if (iVar1 == 0) {
|
||||
checkNextMode(0);
|
||||
} else if (m3570 == 0) {
|
||||
if (ship == 0) {
|
||||
return checkNextMode(0);
|
||||
}
|
||||
|
||||
if (m3570 == 0) {
|
||||
if (m34D0 == 0) {
|
||||
mDoMtx_multVec(
|
||||
iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge, &dComIfGp_getShipActor()->current.pos
|
||||
);
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge, ¤t.pos);
|
||||
} else {
|
||||
mDoMtx_multVec(
|
||||
iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_redge, &dComIfGp_getShipActor()->current.pos
|
||||
);
|
||||
mDoMtx_multVec(ship->m0298->getModel()->getBaseTRMtx(), &l_ship_redge, ¤t.pos);
|
||||
}
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
m3570 = 1;
|
||||
@@ -342,17 +334,18 @@ BOOL daPy_lk_c::procShipReady() {
|
||||
setSingleMoveAnime(ANM_WALK, daPy_HIO_move_c0::m.field_0x40, 0.0f, -1, 5.0f);
|
||||
m34C2 = 10;
|
||||
offModeFlg(ModeFlg_HANG | ModeFlg_00000400);
|
||||
iVar1->m034D = 4;
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
ship->m034D = 4;
|
||||
m35A0 = ship->current.pos.y;
|
||||
}
|
||||
} else {
|
||||
current.pos.y = current.pos.y + (iVar1->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, (iVar1->current.pos.y + l_ship_offset.y), 2.0f);
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
if (!(fopAcM_seenActorAngleY(this, (fopAc_ac_c*)iVar1) < 0x4000)) {
|
||||
current.pos.y = current.pos.y + (ship->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, (ship->current.pos.y + l_ship_offset.y), 2.0f);
|
||||
m35A0 = ship->current.pos.y;
|
||||
if (!(fopAcM_seenActorAngleY(this, (fopAc_ac_c*)ship) < 0x4000)) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -360,23 +353,23 @@ BOOL daPy_lk_c::procShipReady() {
|
||||
BOOL daPy_lk_c::procShipJumpRide_init() {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
|
||||
if ((iVar1 == 0) || ((iVar1->attention_info.flags & fopAc_Attn_ACTION_SHIP_e) == 0)) {
|
||||
if (iVar1 == 0 || ((iVar1->attention_info.flags & fopAc_Attn_ACTION_SHIP_e) == 0)) {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_JUMP_RIDE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
iVar1->mStateFlag = iVar1->mStateFlag | 0x2000;
|
||||
setSingleMoveAnime(ANM_SLIPICE, 1.0f, 0.0f, -1, 5.0f);
|
||||
setShipRidePos(0);
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK80_e);
|
||||
seStartOnlyReverb(JA_SE_LK_FT_JUMP_SHIP);
|
||||
return true;
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_SHIP_JUMP_RIDE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
iVar1->mStateFlag = iVar1->mStateFlag | 0x2000;
|
||||
setSingleMoveAnime(ANM_SLIPICE, 1.0f, 0.0f, -1, 5.0f);
|
||||
setShipRidePos(0);
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK80_e);
|
||||
seStartOnlyReverb(JA_SE_LK_FT_JUMP_SHIP);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141140-80141180 .text procShipJumpRide__9daPy_lk_cFv */
|
||||
@@ -391,23 +384,22 @@ BOOL daPy_lk_c::procShipJumpRide() {
|
||||
|
||||
/* 80141180-8014123C .text procShipSteer_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipSteer_init() {
|
||||
/* Nonmatching */
|
||||
offNoResetFlg0(daPyFlg0_UNK1);
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_STEER_e) {
|
||||
iVar1->m034D = 1;
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_STEER_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
iVar1->m034D = 1;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_SHIP_STEER_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
iVar1->m034D = 1;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -415,40 +407,39 @@ BOOL daPy_lk_c::procShipSteer_init() {
|
||||
BOOL daPy_lk_c::procShipSteer() {
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
} else {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
|
||||
setShipRidePos(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141288-801413A4 .text procShipPaddle_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipPaddle_init() {
|
||||
/* Nonmatching - floats */
|
||||
offNoResetFlg0(daPyFlg0_UNK800000);
|
||||
if (mCurProc == daPyProc_SHIP_PADDLE_e) {
|
||||
return false;
|
||||
} else {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
BOOL bVar1;
|
||||
if ((dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) && (!checkShipNotNormalMode())) {
|
||||
bVar1 = true;
|
||||
} else {
|
||||
bVar1 = false;
|
||||
}
|
||||
commonProcInit(daPyProc_SHIP_PADDLE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
initShipBaseAnime();
|
||||
if (!bVar1) {
|
||||
setOldRootQuaternion(0, shape_angle.y - iVar1->shape_angle.y, 0);
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
m34D0 = (s16)(int)(300.0f + cM_rndF(150.0f));
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
BOOL bVar1;
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && !checkShipNotNormalMode()) {
|
||||
bVar1 = true;
|
||||
} else {
|
||||
bVar1 = false;
|
||||
}
|
||||
commonProcInit(daPyProc_SHIP_PADDLE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
initShipBaseAnime();
|
||||
if (!bVar1) {
|
||||
setOldRootQuaternion(0, shape_angle.y - iVar1->shape_angle.y, 0);
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
m34D0 = (s16)(int)(300.0f + cM_rndF(150.0f));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -490,21 +481,21 @@ BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_BOOMERANG_e) {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_BOOMERANG_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
mEquipItem = dItem_BOOMERANG_e;
|
||||
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
|
||||
setTextureAnime(0, 0);
|
||||
makeItemType();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e | daPyStts0_BOOMERANG_AIM_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
m34DA = 0;
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_SHIP_BOOMERANG_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
mEquipItem = dItem_BOOMERANG_e;
|
||||
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setActAnimeUpper(LKANM_BCK_BOOMWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
|
||||
setTextureAnime(0, 0);
|
||||
makeItemType();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e | daPyStts0_BOOMERANG_AIM_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
m34DA = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -515,30 +506,30 @@ BOOL daPy_lk_c::procShipBoomerang() {
|
||||
|
||||
/* 80141BB0-80141CF8 .text procShipHookshot_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipHookshot_init() {
|
||||
/* Nonmatching - regalloc */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_HOOKSHOT_e) {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_HOOKSHOT_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
mEquipItem = dItem_HOOKSHOT_e;
|
||||
m355C = 10;
|
||||
setSingleMoveAnime(ANM_ATNLS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setActAnimeUpper(LKANM_BCK_HOOKSHOTWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
|
||||
setTextureAnime(0, 0);
|
||||
makeItemType();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HOOKSHOT_AIM_e | daPyStts0_SHIP_RIDE_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
if (mpAttention->Lockon()) {
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m3570 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_SHIP_HOOKSHOT_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
ship->m034D = 2;
|
||||
mEquipItem = dItem_HOOKSHOT_e;
|
||||
m355C = 10;
|
||||
setSingleMoveAnime(ANM_ATNLS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setActAnimeUpper(LKANM_BCK_HOOKSHOTWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, -1.0f);
|
||||
setTextureAnime(0, 0);
|
||||
makeItemType();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HOOKSHOT_AIM_e | daPyStts0_SHIP_RIDE_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = ship->shape_angle.y;
|
||||
if (mpAttention->Lockon()) {
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m3570 = 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -549,33 +540,33 @@ BOOL daPy_lk_c::procShipHookshot() {
|
||||
|
||||
/* 80141F2C-80142084 .text procShipBow_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBow_init() {
|
||||
/* Nonmatching - regalloc */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (mCurProc == daPyProc_SHIP_BOW_e) {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_BOW_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
if (mDemo.getDemoMode() == 0x44) {
|
||||
mEquipItem = dItem_BOW_e;
|
||||
} else {
|
||||
mEquipItem = dComIfGp_getSelectItem(mReadyItemBtn);
|
||||
}
|
||||
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setBowModel();
|
||||
setBowReadyAnime();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_BOW_AIM_e | daPyStts0_SHIP_RIDE_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
m34DA = 0;
|
||||
if ((mpAttention->Lockon()) && (mDemo.getDemoMode() != 0x44)) {
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m3570 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
commonProcInit(daPyProc_SHIP_BOW_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
ship->m034D = 2;
|
||||
if (mDemo.getDemoMode() == 0x44) {
|
||||
mEquipItem = dItem_BOW_e;
|
||||
} else {
|
||||
mEquipItem = dComIfGp_getSelectItem(mReadyItemBtn);
|
||||
}
|
||||
setSingleMoveAnime(ANM_ATNRS, 0.0f, 0.0f, -1, 5.0f);
|
||||
setBowModel();
|
||||
setBowReadyAnime();
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_BOW_AIM_e | daPyStts0_SHIP_RIDE_e);
|
||||
setShipRidePos(0);
|
||||
m34D4 = ship->shape_angle.y;
|
||||
m34DA = 0;
|
||||
if (mpAttention->Lockon() && mDemo.getDemoMode() != 0x44) {
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m3570 = 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -588,18 +579,18 @@ BOOL daPy_lk_c::procShipBow() {
|
||||
BOOL daPy_lk_c::procShipCannon_init() {
|
||||
if (mCurProc == daPyProc_SHIP_CANNON_e) {
|
||||
return false;
|
||||
} else {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CANNON_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 9;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK4_e);
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CANNON_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 9;
|
||||
initShipBaseAnime();
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK4_e);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -607,13 +598,13 @@ BOOL daPy_lk_c::procShipCannon_init() {
|
||||
BOOL daPy_lk_c::procShipCannon() {
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
} else {
|
||||
g_dComIfG_gameInfo.play.field_0x492d = 0x2c;
|
||||
if ((dComIfGp_getDoStatus() == 0) && (dComIfGp_getShipActor()->speedF >= 3.0f)) {
|
||||
dComIfGp_setDoStatus(19);
|
||||
}
|
||||
setShipRidePos(1);
|
||||
}
|
||||
|
||||
g_dComIfG_gameInfo.play.field_0x492d = 0x2c;
|
||||
if (dComIfGp_getDoStatus() == 0 && dComIfGp_getShipActor()->speedF >= 3.0f) {
|
||||
dComIfGp_setDoStatus(19);
|
||||
}
|
||||
setShipRidePos(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -621,24 +612,24 @@ BOOL daPy_lk_c::procShipCannon() {
|
||||
BOOL daPy_lk_c::procShipCrane_init() {
|
||||
if (mCurProc == daPyProc_SHIP_CRANE_e) {
|
||||
return false;
|
||||
} else {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CRANE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 10;
|
||||
if ((s16)iVar1->mCurrentRopeSegmentIndex != 0) {
|
||||
initShipCraneAnime();
|
||||
} else {
|
||||
initShipBaseAnime();
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK2_e);
|
||||
m34D4 = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CRANE_e);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 10;
|
||||
if ((s16)iVar1->mCurrentRopeSegmentIndex != 0) {
|
||||
initShipCraneAnime();
|
||||
} else {
|
||||
initShipBaseAnime();
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK2_e);
|
||||
m34D4 = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142458-80142920 .text procShipCrane__9daPy_lk_cFv */
|
||||
@@ -650,23 +641,23 @@ BOOL daPy_lk_c::procShipCrane() {
|
||||
BOOL daPy_lk_c::procShipGetOff_init() {
|
||||
if (mCurProc == daPyProc_SHIP_GET_OFF_e) {
|
||||
return false;
|
||||
} else {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_GET_OFF_e);
|
||||
deleteEquipItem(TRUE);
|
||||
setSingleMoveAnime(ANM_DASH, daPy_HIO_move_c0::m.field_0x40, 0.0f, -1, 5.0f);
|
||||
mVelocity = 8.0f;
|
||||
gravity = 0.0f;
|
||||
shape_angle.y = iVar1->shape_angle.y + -0x4000;
|
||||
current.angle.y = shape_angle.y;
|
||||
m3570 = 0;
|
||||
m370C.x = current.pos.x + cM_ssin(shape_angle.y) * l_ship_ledge.x;
|
||||
m370C.y = iVar1->current.pos.y + l_ship_ledge.y;
|
||||
m370C.z = current.pos.z + cM_scos(shape_angle.y) * l_ship_ledge.x;
|
||||
iVar1->m034D = 5;
|
||||
mBodyAngle.y = 0;
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
}
|
||||
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_GET_OFF_e);
|
||||
deleteEquipItem(TRUE);
|
||||
setSingleMoveAnime(ANM_DASH, daPy_HIO_move_c0::m.field_0x40, 0.0f, -1, 5.0f);
|
||||
mVelocity = 8.0f;
|
||||
gravity = 0.0f;
|
||||
shape_angle.y = iVar1->shape_angle.y + -0x4000;
|
||||
current.angle.y = shape_angle.y;
|
||||
m3570 = 0;
|
||||
m370C.x = current.pos.x + cM_ssin(shape_angle.y) * l_ship_ledge.x;
|
||||
m370C.y = iVar1->current.pos.y + l_ship_ledge.y;
|
||||
m370C.z = current.pos.z + cM_scos(shape_angle.y) * l_ship_ledge.x;
|
||||
iVar1->m034D = 5;
|
||||
mBodyAngle.y = 0;
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -691,11 +682,11 @@ BOOL daPy_lk_c::procShipRestart_init() {
|
||||
BOOL daPy_lk_c::procShipRestart() {
|
||||
if (dComIfGp_getShipActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
} else {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
setShipRidePos(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
setShipRidePos(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -903,7 +903,7 @@ BOOL daPy_lk_c::procCutEB() {
|
||||
current.angle.y = shape_angle.y;
|
||||
setSpecialBattle(TRUE);
|
||||
if (doTrigger() && dComIfGp_getDoStatus() == 26) {
|
||||
changeSpecialBattle();
|
||||
return changeSpecialBattle();
|
||||
}
|
||||
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutEB_c0::m.field_0x24)) {
|
||||
|
||||
+248
-258
@@ -22,7 +22,6 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
|
||||
float fVar5;
|
||||
float fVar6;
|
||||
float fVar7;
|
||||
float fVar8;
|
||||
s16 sVar1;
|
||||
daPy_ANM dVar5;
|
||||
daPy_ANM dVar6;
|
||||
@@ -73,107 +72,104 @@ void daPy_lk_c::setBlendWHideMoveAnime(f32 param_0) {
|
||||
}
|
||||
|
||||
/* 801371E0-80137608 .text getWHideModePolygon__9daPy_lk_cFP4cXyzP4cXyzP4cXyzi */
|
||||
int daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3) {
|
||||
/* Nonmatching - floats, branching, regalloc */
|
||||
int iVar4;
|
||||
float dVar11;
|
||||
float dVar10;
|
||||
float dVar9;
|
||||
|
||||
cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3) {
|
||||
if (param_0 != NULL) {
|
||||
mLinkLinChk.Set(param_0, param_1, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
return false;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
cM3dGPla* pfVar2 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 uVar3 = cM_atan2s(pfVar2->GetNP()->x, pfVar2->GetNP()->z);
|
||||
if (std::fabsf(pfVar2->GetNP()->y) > 0.05f) {
|
||||
return false;
|
||||
} else if (iVar4 = dComIfG_Bgsp()->GetSpecialCode(mLinkLinChk), iVar4 == 3) {
|
||||
return false;
|
||||
|
||||
dBgS* bgs = dComIfG_Bgsp(); // Maybe fakematch? Fixes regalloc
|
||||
|
||||
cM3dGPla* triPla = bgs->GetTriPla(mLinkLinChk);
|
||||
s16 uVar3 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
if (std::fabsf(triPla->GetNP()->y) > 0.05f) {
|
||||
return NULL;
|
||||
}
|
||||
int iVar4 = bgs->GetSpecialCode(mLinkLinChk);
|
||||
if (iVar4 == 3) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*param_2 = mLinkLinChk.GetCross();
|
||||
cXyz local_3c;
|
||||
local_3c.x = param_2->x + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
|
||||
local_3c.y = param_2->y;
|
||||
local_3c.z = param_2->z + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
|
||||
mGndChk.SetPos(&local_3c);
|
||||
float f31 = bgs->GroundCross(&mGndChk);
|
||||
if (C_BG_MIN_HEIGHT != f31 && (!(bgs->GetTriPla(mGndChk)->GetNP()->y >= 0.5f))) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (param_3 == 4) {
|
||||
f31 = 49.9f;
|
||||
} else {
|
||||
param_2->x = mLinkLinChk.GetCrossP()->x;
|
||||
param_2->y = mLinkLinChk.GetCrossP()->y;
|
||||
param_2->z = mLinkLinChk.GetCrossP()->z;
|
||||
cXyz local_3c;
|
||||
local_3c.x = param_2->x + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
|
||||
local_3c.y = param_2->y;
|
||||
local_3c.z = param_2->z + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
|
||||
mGndChk.SetPos(&local_3c);
|
||||
float dVar8 = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
float fVar1;
|
||||
if ((C_BG_MIN_HEIGHT != dVar8) && (!(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y >= 0.5f))) {
|
||||
return false;
|
||||
} else {
|
||||
if (param_3 == 4) {
|
||||
fVar1 = 49.9f;
|
||||
} else {
|
||||
fVar1 = 99.8f;
|
||||
}
|
||||
dVar8 = fVar1;
|
||||
s16 sVar7 = uVar3;
|
||||
cXyz local_48;
|
||||
cM3dGPla* pfVar5;
|
||||
if (param_3 != 3) {
|
||||
dVar10 = param_2->z;
|
||||
dVar9 = pfVar2->GetNP()->x;
|
||||
dVar11 = dVar10 - (dVar8 * dVar9);
|
||||
local_3c.set(
|
||||
param_2->x + (dVar9 * 1.25f) + (dVar8 * dVar10), param_2->y, (dVar11 + (pfVar2->GetNP()->z * 1.25f))
|
||||
);
|
||||
local_48.set(local_3c.x - (2.5f * dVar9) - (2.5f * dVar10), local_3c.y, local_3c.z);
|
||||
mLinkLinChk.Set(&local_3c, &local_48, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
return false;
|
||||
}
|
||||
pfVar5 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
iVar4 = cM_atan2s(pfVar5->GetNP()->x, pfVar5->GetNP()->z);
|
||||
if (sVar7 != (s16)iVar4) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (param_3 != 2) {
|
||||
dVar10 = param_2->z;
|
||||
dVar9 = pfVar2->GetNP()->x;
|
||||
dVar11 = dVar10 + (dVar8 * dVar9);
|
||||
local_3c.set(
|
||||
param_2->x - (dVar9 * 1.25f) + (dVar8 * dVar10), param_2->y, (dVar11 + (pfVar2->GetNP()->z * 1.25f))
|
||||
);
|
||||
local_48.set(local_3c.x - (2.5f * dVar9) - (2.5f * dVar10), local_3c.y, local_3c.z);
|
||||
mLinkLinChk.Set(&local_3c, &local_48, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
return false;
|
||||
}
|
||||
pfVar5 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
iVar4 = cM_atan2s(pfVar5->GetNP()->x, pfVar5->GetNP()->z);
|
||||
if (sVar7 != (s16)iVar4) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (param_3 != 4) {
|
||||
if (param_3 == 2) {
|
||||
sVar7 = sVar7 - shape_angle.y;
|
||||
param_2->x += daPy_HIO_wall_c0::m.field_0x54 * pfVar2->GetNP()->z;
|
||||
param_2->z -= daPy_HIO_wall_c0::m.field_0x54 * pfVar2->GetNP()->x;
|
||||
} else {
|
||||
sVar7 = sVar7 - shape_angle.y;
|
||||
param_2->x -= daPy_HIO_wall_c0::m.field_0x54 * pfVar2->GetNP()->z;
|
||||
param_2->z += daPy_HIO_wall_c0::m.field_0x54 * pfVar2->GetNP()->x;
|
||||
}
|
||||
}
|
||||
if (sVar7 > 0x2aaa) {
|
||||
return false;
|
||||
} else if (abs((int)(s16)((sVar7 + -0x8000) - (current.angle.y))) > 0x1555) {
|
||||
return false;
|
||||
}
|
||||
f31 = 99.8f;
|
||||
}
|
||||
s16 sVar7 = uVar3;
|
||||
cXyz local_48;
|
||||
if (param_3 != 3) {
|
||||
local_3c.set(
|
||||
param_2->x + (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f),
|
||||
param_2->y,
|
||||
param_2->z - (f31 * triPla->GetNP()->x) + (triPla->GetNP()->z * 1.25f)
|
||||
);
|
||||
local_48.set(local_3c.x - (2.5f * triPla->GetNP()->x), local_3c.y, local_3c.z - (2.5f * triPla->GetNP()->z));
|
||||
mLinkLinChk.Set(&local_3c, &local_48, this);
|
||||
if (!bgs->LineCross(&mLinkLinChk)) {
|
||||
return NULL;
|
||||
}
|
||||
cM3dGPla* pfVar5;
|
||||
pfVar5 = bgs->GetTriPla(mLinkLinChk);
|
||||
iVar4 = cM_atan2s(pfVar5->GetNP()->x, pfVar5->GetNP()->z);
|
||||
if (sVar7 != (s16)iVar4) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (param_3 != 2) {
|
||||
local_3c.set(
|
||||
param_2->x - (f31 * triPla->GetNP()->z) + (triPla->GetNP()->x * 1.25f),
|
||||
param_2->y,
|
||||
param_2->z + (f31 * triPla->GetNP()->x) + (triPla->GetNP()->z * 1.25f)
|
||||
);
|
||||
local_48.set(local_3c.x - (2.5f * triPla->GetNP()->x), local_3c.y, local_3c.z - (2.5f * triPla->GetNP()->z));
|
||||
mLinkLinChk.Set(&local_3c, &local_48, this);
|
||||
if (!bgs->LineCross(&mLinkLinChk)) {
|
||||
return NULL;
|
||||
}
|
||||
cM3dGPla* pfVar5;
|
||||
pfVar5 = bgs->GetTriPla(mLinkLinChk);
|
||||
iVar4 = cM_atan2s(pfVar5->GetNP()->x, pfVar5->GetNP()->z);
|
||||
if (sVar7 != (s16)iVar4) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (param_3 != 4) {
|
||||
if (param_3 == 2) {
|
||||
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;
|
||||
} else {
|
||||
sVar7 = shape_angle.y - sVar7;
|
||||
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;
|
||||
}
|
||||
if (sVar7 > 0x2aaa) {
|
||||
return NULL;
|
||||
}
|
||||
} else if (abs((s16)((sVar7 + -0x8000) - (current.angle.y))) > 0x1555) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return triPla;
|
||||
}
|
||||
|
||||
/* 80137608-80137640 .text getWHideBasePos__9daPy_lk_cFP4cXyz */
|
||||
void daPy_lk_c::getWHideBasePos(cXyz* param_0) {
|
||||
/* Nonmatching - floats */
|
||||
f32 fVar3;
|
||||
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
@@ -197,37 +193,31 @@ void daPy_lk_c::getWHideNextPos(cXyz* param_0, cXyz* param_1) {
|
||||
BOOL daPy_lk_c::checkWHideBackWall(cXyz* param_0) {
|
||||
if (param_0 == NULL) {
|
||||
return true;
|
||||
} else {
|
||||
cXyz local_18;
|
||||
local_18.set(
|
||||
param_0->x - 25.0f * cM_ssin(shape_angle.y), param_0->y, param_0->z - 25.0f * cM_scos(shape_angle.y)
|
||||
);
|
||||
mLinkLinChk.Set(param_0, &local_18, (fopAc_ac_c*)this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
cXyz local_18;
|
||||
local_18.set(param_0->x - 25.0f * cM_ssin(shape_angle.y), param_0->y, param_0->z - 25.0f * cM_scos(shape_angle.y));
|
||||
mLinkLinChk.Set(param_0, &local_18, (fopAc_ac_c*)this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80137754-80137828 .text checkWHideFrontFloor__9daPy_lk_cFP4cXyz */
|
||||
BOOL daPy_lk_c::checkWHideFrontFloor(cXyz* param_0) {
|
||||
float dVar5;
|
||||
float dVar6;
|
||||
cXyz local_10;
|
||||
|
||||
local_10.set(param_0->x + 40.0f * cM_ssin(shape_angle.y), param_0->y, param_0->z + 40.0f * cM_scos(shape_angle.y));
|
||||
cXyz local_10(param_0->x + 40.0f * cM_ssin(shape_angle.y), param_0->y, param_0->z + 40.0f * cM_scos(shape_angle.y));
|
||||
mGndChk.SetPos(&local_10);
|
||||
dVar6 = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
if ((checkNoResetFlg0(daPyFlg0_UNK80000000)) && (dVar5 = current.pos.y, dVar5 > dVar6)) {
|
||||
dVar6 = dVar5;
|
||||
f32 ground_y = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK80000000) && current.pos.y > ground_y) {
|
||||
ground_y = current.pos.y;
|
||||
}
|
||||
return std::fabsf(dVar6 - current.pos.y) < 5.0f;
|
||||
return std::fabsf(ground_y - current.pos.y) < 5.0f;
|
||||
}
|
||||
|
||||
/* 80137828-80137914 .text checkWHideModeChange__9daPy_lk_cFP4cXyz */
|
||||
BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
/* Nonmatching - floats */
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
if (!checkWHideFrontFloor(param_0)) {
|
||||
dComIfGp_setRStatus(0);
|
||||
@@ -237,11 +227,11 @@ BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
} else {
|
||||
cXyz local_18;
|
||||
local_18.set(param_0->x, current.pos.y + 125.0f, param_0->z);
|
||||
if (((!spActionButton()) && (!mAcch.ChkRoofHit())) && (checkWHideBackWall(&local_18))) {
|
||||
if (!spActionButton() && !mAcch.ChkRoofHit() && checkWHideBackWall(&local_18)) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if ((checkModeFlg(ModeFlg_00000001)) && (mCurProc != daPyProc_WHIDE_PEEP_e)) {
|
||||
if (checkModeFlg(ModeFlg_00000001) && mCurProc != daPyProc_WHIDE_PEEP_e) {
|
||||
setTextureAnime(mAnmDataTable[ANM_WALL].mTexAnmIdx, 0);
|
||||
}
|
||||
return false;
|
||||
@@ -249,9 +239,9 @@ BOOL daPy_lk_c::checkWHideModeChange(cXyz* param_0) {
|
||||
|
||||
/* 80137914-80137A00 .text changeWHideEndProc__9daPy_lk_cFP4cXyz */
|
||||
int daPy_lk_c::changeWHideEndProc(cXyz* param_0) {
|
||||
/* Nonmatching - floats */
|
||||
dComIfGp_setDoStatus(16);
|
||||
dComIfGp_setRStatus(15);
|
||||
|
||||
if (((!doButton() && (!checkNoResetFlg0(daPyFlg0_UNK10000) || !mAcch.ChkRoofHit())) ||
|
||||
(m_anm_heap_upper[UPPER_MOVE2_e].mIdx != LKANM_BCK_REST && swordTrigger())) ||
|
||||
!checkWHideBackWall(param_0))
|
||||
@@ -260,17 +250,19 @@ int daPy_lk_c::changeWHideEndProc(cXyz* param_0) {
|
||||
current.angle.y = shape_angle.y;
|
||||
return checkNextMode(0);
|
||||
}
|
||||
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK10000) && mAcch.ChkRoofHit()) {
|
||||
onModeFlg(ModeFlg_04000000);
|
||||
} else {
|
||||
offModeFlg(ModeFlg_04000000);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80137A00-80137BD8 .text procWHideReady_init__9daPy_lk_cFP8cM3dGPlaP4cXyz */
|
||||
BOOL daPy_lk_c::procWHideReady_init(cM3dGPla* param_0, cXyz* param_1) {
|
||||
s32 uVar1 = mModeFlg >> 4 & 1;
|
||||
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) ? TRUE : FALSE;
|
||||
offNoResetFlg0(daPyFlg0_UNK10000);
|
||||
commonProcInit(daPyProc_WHIDE_READY_e);
|
||||
mVelocity = 0.0f;
|
||||
@@ -298,7 +290,7 @@ BOOL daPy_lk_c::procWHideReady_init(cM3dGPla* param_0, cXyz* param_1) {
|
||||
setAnimeUnequip();
|
||||
m3570 = 0;
|
||||
}
|
||||
if ((uVar1) != 0) {
|
||||
if (uVar1 != 0) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1_e);
|
||||
}
|
||||
return true;
|
||||
@@ -308,21 +300,19 @@ BOOL daPy_lk_c::procWHideReady_init(cM3dGPla* param_0, cXyz* param_1) {
|
||||
BOOL daPy_lk_c::procWHideReady() {
|
||||
if (changeWHideEndProc(NULL)) {
|
||||
return true;
|
||||
} else {
|
||||
if (m3570 == 0) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) {
|
||||
setSingleMoveAnime(ANM_WALL, 0.0f, daPy_HIO_wall_c0::m.field_0x24, -1, daPy_HIO_wall_c0::m.field_0x34);
|
||||
m3570 = 1;
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
cLib_addCalc(¤t.pos.x, m370C.x, 0.25f, 10.0f, 4.0f);
|
||||
cLib_addCalc(¤t.pos.z, m370C.z, 0.25f, 10.0f, 4.0f);
|
||||
if (!cLib_addCalcAngleS(&shape_angle.y, m34D4, 2, 0x2000, 0x800)) {
|
||||
daPy_matAnm_c::offMabaFlg();
|
||||
procWHideWait_init();
|
||||
}
|
||||
}
|
||||
if (m3570 == 0) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff) {
|
||||
setSingleMoveAnime(ANM_WALL, 0.0f, daPy_HIO_wall_c0::m.field_0x24, -1, daPy_HIO_wall_c0::m.field_0x34);
|
||||
m3570 = 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
cLib_addCalc(¤t.pos.x, m370C.x, 0.25f, 10.0f, 4.0f);
|
||||
cLib_addCalc(¤t.pos.z, m370C.z, 0.25f, 10.0f, 4.0f);
|
||||
if (!cLib_addCalcAngleS(&shape_angle.y, m34D4, 2, 0x2000, 0x800)) {
|
||||
daPy_matAnm_c::offMabaFlg();
|
||||
procWHideWait_init();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -360,7 +350,6 @@ BOOL daPy_lk_c::procWHideWait_init() {
|
||||
|
||||
/* 80137DF0-80138074 .text procWHideWait__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procWHideWait() {
|
||||
/* Nonmatching - floats, branching */
|
||||
cXyz cStack_24;
|
||||
cXyz cStack_3c;
|
||||
cXyz cStack_48;
|
||||
@@ -369,7 +358,10 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
getWHideBasePos(&cStack_3c);
|
||||
if (changeWHideEndProc(&cStack_3c)) {
|
||||
return true;
|
||||
} else if (iVar1 = checkWHideModeChange(&cStack_3c), iVar1 == 1) {
|
||||
}
|
||||
|
||||
iVar1 = checkWHideModeChange(&cStack_3c);
|
||||
if (iVar1 == 1) {
|
||||
setSingleMoveAnime(
|
||||
ANM_WALLDW,
|
||||
daPy_HIO_wall_c0::m.field_0x10,
|
||||
@@ -392,12 +384,12 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
offNoResetFlg0(daPyFlg0_UNK10000);
|
||||
mAcchCir[2].SetWallH(125.0f);
|
||||
}
|
||||
cM3dGPla* triPla;
|
||||
if (((mStickDistance > 0.05f) && (C_BG_MIN_HEIGHT != mAcch.GetGroundH())) &&
|
||||
(triPla = dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd), triPla->GetNP()->y >= 0.5f))
|
||||
|
||||
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 || iVar1 == 2) {
|
||||
if (iVar1 == 3) {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
m34B8 = 3;
|
||||
@@ -408,20 +400,21 @@ BOOL daPy_lk_c::procWHideWait() {
|
||||
|
||||
getWHideNextPos(&cStack_3c, &cStack_48);
|
||||
iVar1 = checkWHideBackWall(&cStack_48);
|
||||
if ((iVar1 != 0) && (!checkNoResetFlg0(daPyFlg0_UNK10000) || (checkWHideFrontFloor(&cStack_48)))) {
|
||||
procWHideMove_init();
|
||||
} else if (iVar1 == 0) {
|
||||
if (iVar1 != 0 && (!checkNoResetFlg0(daPyFlg0_UNK10000) || checkWHideFrontFloor(&cStack_48))) {
|
||||
return procWHideMove_init();
|
||||
}
|
||||
if (iVar1 == 0) {
|
||||
cStack_48 += (cStack_48 - cStack_3c) * 0.25f;
|
||||
mLinkLinChk.Set(&cStack_3c, &cStack_48, this);
|
||||
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
procWHidePeep_init();
|
||||
return procWHidePeep_init();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
current.angle.y = shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80138074-801380F0 .text procWHideMove_init__9daPy_lk_cFv */
|
||||
@@ -441,93 +434,87 @@ BOOL daPy_lk_c::procWHideMove_init() {
|
||||
BOOL daPy_lk_c::procWHideMove() {
|
||||
if (changeSlideProc()) {
|
||||
return true;
|
||||
} else {
|
||||
cXyz acStack_24;
|
||||
getWHideBasePos(&acStack_24);
|
||||
s16 uVar1 = current.angle.y;
|
||||
if (changeWHideEndProc(&acStack_24)) {
|
||||
if ((!doButton()) && (mStickDistance > 0.05f)) {
|
||||
uint uVar3 = (uint)uVar1;
|
||||
current.pos.x += 50.0f * cM_ssin(uVar3);
|
||||
current.pos.z += 50.0f * cM_scos(uVar3);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 sVar8 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
f32 fVar2;
|
||||
if (checkWHideModeChange(&acStack_24)) {
|
||||
fVar2 = 0.0f;
|
||||
} else {
|
||||
if ((mStickDistance > 0.05f) && (C_BG_MIN_HEIGHT != mAcch.GetGroundH()) &&
|
||||
(triPla = dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd), triPla->GetNP()->y >= 0.5f))
|
||||
{
|
||||
int iVar6 = getDirectionFromCurrentAngle();
|
||||
if (iVar6 == 1) {
|
||||
current.angle.y -= -0x8000;
|
||||
mVelocity *= 0.5f;
|
||||
if (m34B8 == 2) {
|
||||
m34B8 = 3;
|
||||
} else {
|
||||
m34B8 = 2;
|
||||
}
|
||||
setBlendWHideMoveAnime(2.0f);
|
||||
}
|
||||
if ((iVar6 == 0) || (iVar6 == 1)) {
|
||||
fVar2 = daPy_HIO_move_c0::m.field_0x14;
|
||||
fVar2 *= mStickDistance;
|
||||
} else {
|
||||
fVar2 = 0.0f;
|
||||
}
|
||||
} else {
|
||||
fVar2 = 0.0f;
|
||||
}
|
||||
}
|
||||
cXyz cStack_30;
|
||||
setNormalSpeedF(fVar2, 0.5f, 2.0f, 0.25f);
|
||||
getWHideNextPos(&acStack_24, &cStack_30);
|
||||
if ((checkNoResetFlg0(daPyFlg0_UNK10000)) && (!checkWHideFrontFloor(&cStack_30))) {
|
||||
mVelocity = 0.0f;
|
||||
procWHideWait_init();
|
||||
} else {
|
||||
cXyz cStack_3c;
|
||||
triPla = (cM3dGPla*)getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, m34B8);
|
||||
if (triPla != NULL) {
|
||||
procWHideReady_init(triPla, &cStack_3c);
|
||||
} else {
|
||||
if (std::fabsf(mVelocity) <= 0.001f) {
|
||||
procWHideWait_init();
|
||||
} else {
|
||||
if (((C_BG_MIN_HEIGHT == mAcch.GetGroundH()) ||
|
||||
(!(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f))) ||
|
||||
(!checkWHideBackWall(&cStack_30)))
|
||||
{
|
||||
mVelocity = 0.0f;
|
||||
procWHideWait_init();
|
||||
} else {
|
||||
cXyz cStack_48;
|
||||
if ((sVar8 != shape_angle.y) &&
|
||||
(triPla = (cM3dGPla*)getWHideModePolygon(NULL, NULL, &cStack_48, m34B8), triPla != 0))
|
||||
{
|
||||
if ((s16)(current.angle.y - shape_angle.y) > 0) {
|
||||
current.angle.y = sVar8 + 0x4000;
|
||||
} else {
|
||||
current.angle.y = sVar8 - 0x4000;
|
||||
}
|
||||
shape_angle.y = sVar8;
|
||||
current.pos.x += 8.0f * cM_ssin(current.angle.y);
|
||||
current.pos.z += 8.0f * cM_scos(current.angle.y);
|
||||
}
|
||||
current.pos.x -= 0.8f * daPy_HIO_wall_c0::m.field_0x50 * cM_ssin(shape_angle.y);
|
||||
current.pos.z -= 0.8f * daPy_HIO_wall_c0::m.field_0x50 * cM_scos(shape_angle.y);
|
||||
setBlendWHideMoveAnime(-1.0f);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cXyz acStack_24;
|
||||
getWHideBasePos(&acStack_24);
|
||||
s16 uVar1 = current.angle.y;
|
||||
if (changeWHideEndProc(&acStack_24)) {
|
||||
if (!doButton() && mStickDistance > 0.05f) {
|
||||
uint uVar3 = (uint)uVar1;
|
||||
current.pos.x += 50.0f * cM_ssin(uVar3);
|
||||
current.pos.z += 50.0f * cM_scos(uVar3);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
s16 sVar8 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
f32 fVar2;
|
||||
if (checkWHideModeChange(&acStack_24)) {
|
||||
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) {
|
||||
current.angle.y -= -0x8000;
|
||||
mVelocity *= 0.5f;
|
||||
if (m34B8 == 2) {
|
||||
m34B8 = 3;
|
||||
} else {
|
||||
m34B8 = 2;
|
||||
}
|
||||
setBlendWHideMoveAnime(2.0f);
|
||||
}
|
||||
if (iVar6 == 0 || iVar6 == 1) {
|
||||
fVar2 = daPy_HIO_move_c0::m.field_0x14;
|
||||
fVar2 *= mStickDistance;
|
||||
} else {
|
||||
fVar2 = 0.0f;
|
||||
}
|
||||
} else {
|
||||
fVar2 = 0.0f;
|
||||
}
|
||||
|
||||
cXyz cStack_30;
|
||||
setNormalSpeedF(fVar2, 0.5f, 2.0f, 0.25f);
|
||||
getWHideNextPos(&acStack_24, &cStack_30);
|
||||
if (checkNoResetFlg0(daPyFlg0_UNK10000) && !checkWHideFrontFloor(&cStack_30)) {
|
||||
mVelocity = 0.0f;
|
||||
return procWHideWait_init();
|
||||
}
|
||||
|
||||
cXyz cStack_3c;
|
||||
triPla = getWHideModePolygon(&acStack_24, &cStack_30, &cStack_3c, m34B8);
|
||||
if (triPla != NULL) {
|
||||
return procWHideReady_init(triPla, &cStack_3c);
|
||||
}
|
||||
if (std::fabsf(mVelocity) <= 0.001f) {
|
||||
return procWHideWait_init();
|
||||
}
|
||||
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || !(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f) ||
|
||||
!checkWHideBackWall(&cStack_30))
|
||||
{
|
||||
mVelocity = 0.0f;
|
||||
return procWHideWait_init();
|
||||
}
|
||||
|
||||
cXyz cStack_48;
|
||||
if (sVar8 != shape_angle.y && getWHideModePolygon(NULL, NULL, &cStack_48, m34B8) != NULL) {
|
||||
if ((s16)(current.angle.y - shape_angle.y) > 0) {
|
||||
current.angle.y = sVar8 + 0x4000;
|
||||
} else {
|
||||
current.angle.y = sVar8 - 0x4000;
|
||||
}
|
||||
shape_angle.y = sVar8;
|
||||
current.pos.x += 8.0f * cM_ssin(current.angle.y);
|
||||
current.pos.z += 8.0f * cM_scos(current.angle.y);
|
||||
}
|
||||
current.pos.x -= 0.8f * daPy_HIO_wall_c0::m.field_0x50 * cM_ssin(shape_angle.y);
|
||||
current.pos.z -= 0.8f * daPy_HIO_wall_c0::m.field_0x50 * cM_scos(shape_angle.y);
|
||||
setBlendWHideMoveAnime(-1.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8013852C-801385EC .text procWHidePeep_init__9daPy_lk_cFv */
|
||||
@@ -572,37 +559,40 @@ BOOL daPy_lk_c::procWHidePeep() {
|
||||
getWHideBasePos(&cStack_38);
|
||||
if (changeWHideEndProc(&cStack_38)) {
|
||||
return true;
|
||||
} else {
|
||||
f32 dVar3 = mFrameCtrlUnder[UNDER_MOVE0_e].getRate();
|
||||
if (std::fabsf(dVar3) < 0.01f) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < (mFrameCtrlUnder[UNDER_MOVE0_e].getStart() + 1)) {
|
||||
return procWHideWait_init();
|
||||
}
|
||||
}
|
||||
if (std::fabsf(dVar3) < 0.01f) {
|
||||
if (m34B8 == 2) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20_e);
|
||||
}
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
dVar3 = daPy_HIO_wall_c0::m.field_0x1C;
|
||||
} else {
|
||||
dVar3 = daPy_HIO_wall_c0::m.field_0x20;
|
||||
}
|
||||
}
|
||||
if (checkWHideModeChange(&cStack_38)) {
|
||||
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))) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
} else if (dVar3 > 0.0f) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
|
||||
f32 dVar3 = mFrameCtrlUnder[UNDER_MOVE0_e].getRate();
|
||||
if (std::fabsf(dVar3) < 0.01f) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < (mFrameCtrlUnder[UNDER_MOVE0_e].getStart() + 1)) {
|
||||
return procWHideWait_init();
|
||||
}
|
||||
}
|
||||
|
||||
if (std::fabsf(dVar3) < 0.01f) {
|
||||
if (m34B8 == 2) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20_e);
|
||||
}
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
||||
dVar3 = daPy_HIO_wall_c0::m.field_0x1C;
|
||||
} else {
|
||||
dVar3 = daPy_HIO_wall_c0::m.field_0x20;
|
||||
}
|
||||
}
|
||||
|
||||
if (checkWHideModeChange(&cStack_38)) {
|
||||
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)) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
} else if (dVar3 > 0.0f) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(-dVar3);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user