mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-01 01:39:03 -04:00
d_a_player_ship.inc - Several close to matching except minor issues. (#721)
Co-authored-by: < >
This commit is contained in:
@@ -85,6 +85,7 @@ private:
|
||||
class daPy_py_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daPy_FLG0 {
|
||||
daPyFlg0_UNK1 = 0x00000001,
|
||||
daPyFlg0_UNK4 = 0x00000004,
|
||||
daPyFlg0_UNK8 = 0x00000008,
|
||||
daPyFlg0_DEKU_SP_RETURN_FLG = 0x00000010,
|
||||
@@ -104,6 +105,7 @@ public:
|
||||
daPyFlg0_PHOTO_BOX_CANCEL = 0x00080000, // Same as scope cancel
|
||||
daPyFlg0_UNK200000 = 0x00200000,
|
||||
daPyFlg0_UNK400000 = 0x00400000,
|
||||
daPyFlg0_UNK800000 = 0x00800000,
|
||||
daPyFlg0_UNK1000000 = 0x01000000,
|
||||
daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000,
|
||||
daPyFlg0_NO_DRAW = 0x08000000,
|
||||
|
||||
@@ -1445,7 +1445,7 @@ public:
|
||||
void setShipRidePos(int);
|
||||
void setShipAttentionAnmSpeed(f32);
|
||||
void setShipAttnetionBodyAngle();
|
||||
void changeShipEndProc();
|
||||
int changeShipEndProc();
|
||||
void initShipBaseAnime();
|
||||
void initShipCraneAnime();
|
||||
BOOL procShipReady_init();
|
||||
|
||||
@@ -69,10 +69,13 @@ enum daPy__PlayerStatus0 {
|
||||
|
||||
enum daPy__PlayerStatus1 {
|
||||
daPyStts1_WIND_WAKER_CONDUCT_e = 0x00000001,
|
||||
daPyStts1_UNK2_e = 0x00000002,
|
||||
daPyStts1_UNK4_e = 0x00000004,
|
||||
daPyStts1_PICTO_BOX_AIM_e = 0x00000008,
|
||||
daPyStts1_UNK10_e = 0x00000010,
|
||||
daPyStts1_DEKU_LEAF_FLY_e = 0x00000020,
|
||||
daPyStts1_DEKU_LEAF_FAN_e = 0x00000040,
|
||||
daPyStts1_UNK80_e = 0x00000080,
|
||||
daPyStts1_SAIL_e = 0x00000400,
|
||||
daPyStts1_UNK4000_e = 0x00004000,
|
||||
daPyStts1_UNK8000_e = 0x00008000,
|
||||
|
||||
+519
-30
@@ -11,22 +11,56 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_main_data.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_ship.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
/* 8013F848-8013F8AC .text shipSpecialDemoStart__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::shipSpecialDemoStart() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGp_event_compulsory(this)) {
|
||||
mDemo.setDemoType(5);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8013F8AC-8013F984 .text checkJumpRideShip__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkJumpRideShip() {
|
||||
/* Nonmatching */
|
||||
/* 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) {
|
||||
return procShipJumpRide_init();
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8013F984-8013F9B0 .text checkShipNotNormalMode__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkShipNotNormalMode() {
|
||||
/* Nonmatching */
|
||||
if (((m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP2) &&
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_VOYAGE1)) &&
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP1)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8013F9B0-8013FE78 .text setShipRideArmAngle__9daPy_lk_cFiP16J3DTransformInfo */
|
||||
@@ -75,72 +109,359 @@ void daPy_lk_c::initShipRideUseItem(int param_1, int param_2) {
|
||||
|
||||
/* 8013FFC0-80140018 .text setShipRidePosUseItem__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setShipRidePosUseItem() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
||||
setShipRidePos(1);
|
||||
shape_angle.y += -0x4000;
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80140018-801403E0 .text setShipRidePos__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setShipRidePos(int) {
|
||||
/* Nonmatching */
|
||||
void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
/* Nonmatching - branching, cXyz */
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
if (iVar1 != 0) {
|
||||
if ((iVar1->mStateFlag & 0x4000)) {
|
||||
g_dComIfG_gameInfo.play.field_0x492d = 0x12;
|
||||
}
|
||||
if (param_0 != 0) {
|
||||
shape_angle.y = iVar1->shape_angle.y;
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
if (mCurProc == ANM_MSTEPOVER_JMPED) {
|
||||
m353C = iVar1->shape_angle.x;
|
||||
m353E = iVar1->shape_angle.z;
|
||||
m3540 = 0;
|
||||
m3542 = 0;
|
||||
} else {
|
||||
m353C = m353C + m3540;
|
||||
m3540 = (s16)(int)((float)m3540 +
|
||||
0.75f * (int)(short)(iVar1->shape_angle.x - m353C));
|
||||
cLib_addCalcAngleS(&m3540, 0, 5, 0x200, 0x100);
|
||||
m353E = m353E + m3542;
|
||||
m3542 = m3542 + ((short)(iVar1->shape_angle.z - m353E) >> 1);
|
||||
cLib_addCalcAngleS(&m3542, 0, 5, 0x100, 0x30);
|
||||
}
|
||||
if (mCurProc == ANM_WARPOUT) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_offset3,
|
||||
¤t.pos);
|
||||
} 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);
|
||||
}
|
||||
if (checkShipNotNormalMode()) {
|
||||
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;
|
||||
if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(
|
||||
(1.0f - daPy_HIO_ship_c0::m.field_0xC) * fVar2 +
|
||||
daPy_HIO_ship_c0::m.field_0xC);
|
||||
if ((iVar1->mStateFlag & 0x40) != 0) {
|
||||
if (iVar1->m03E4 > 0.6f) {
|
||||
voiceStart(6);
|
||||
} else {
|
||||
if (iVar1->m03E4 > 0.2f) {
|
||||
voiceStart(7);
|
||||
}
|
||||
}
|
||||
setSingleMoveAnime(ANM_SHIP_JUMP1, 1.0f, 0.0f, -1, 20.0f);
|
||||
}
|
||||
if (iVar1->mStateFlag & 0x80) {
|
||||
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.0099999998f)) {
|
||||
} else 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 {
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f);
|
||||
}
|
||||
s16 sVar4;
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_VOYAGE1) {
|
||||
sVar4 = -daPy_HIO_ship_c0::m.field_0x4 * iVar1->m03DC;
|
||||
} else {
|
||||
sVar4 = 0;
|
||||
}
|
||||
cLib_addCalcAngleS(&mBodyAngle.y, sVar4, 4, 0x400, 0x80);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 801403E0-80140480 .text setShipAttentionAnmSpeed__9daPy_lk_cFf */
|
||||
void daPy_lk_c::setShipAttentionAnmSpeed(f32) {
|
||||
/* Nonmatching */
|
||||
void daPy_lk_c::setShipAttentionAnmSpeed(f32 param_0) {
|
||||
if (mpAttention->Lockon()) {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24);
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(param_0);
|
||||
} else {
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f);
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(0.0f);
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(0.0f);
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setFrame(0.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80140480-801405F0 .text setShipAttnetionBodyAngle__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - floats, math */
|
||||
int iVar1;
|
||||
s16 sVar2;
|
||||
|
||||
setBodyAngleXReadyAnime();
|
||||
sVar2 = 0;
|
||||
if (mpAttnActorLockOn != NULL) {
|
||||
setShapeAngleToAtnActor();
|
||||
} else {
|
||||
if (mStickDistance > 0.05f) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cLib_addCalcAngleS(&m34DA, sVar2, 3, 0x40, 0x10);
|
||||
shape_angle.y = shape_angle.y + m34DA;
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
return;
|
||||
}
|
||||
|
||||
/* 801405F0-80140C88 .text changeShipEndProc__9daPy_lk_cFv */
|
||||
void daPy_lk_c::changeShipEndProc() {
|
||||
int daPy_lk_c::changeShipEndProc() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80140C88-80140D04 .text initShipBaseAnime__9daPy_lk_cFv */
|
||||
void daPy_lk_c::initShipBaseAnime() {
|
||||
/* Nonmatching */
|
||||
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_SHIP_JUMP2) {
|
||||
setSingleMoveAnime(ANM_VOYAGE1, 1.0f, 0.0f, -1, 5.0f);
|
||||
}
|
||||
setActAnimeUpper(LKANM_BCK_FN_HAIR1, UPPER_MOVE2_e, 1.0f, 0.0f, -1, -1.0f);
|
||||
m_pbCalc[PART_UPPER_e]->setRatio(2, 0.0f);
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80140D04-80140D80 .text initShipCraneAnime__9daPy_lk_cFv */
|
||||
void daPy_lk_c::initShipCraneAnime() {
|
||||
/* Nonmatching */
|
||||
daPy_ANM dVar1;
|
||||
|
||||
if ((s16)dComIfGp_getShipActor()->m039A > 0) {
|
||||
dVar1 = ANM_SALVRWAIT;
|
||||
m3570 = 3;
|
||||
m3574 = 3;
|
||||
} else {
|
||||
dVar1 = ANM_SALVLWAIT;
|
||||
m3570 = 2;
|
||||
m3574 = 2;
|
||||
}
|
||||
daPy_matAnm_c::m_maba_flg = 0;
|
||||
daPy_matAnm_c::m_maba_timer = 1;
|
||||
setSingleMoveAnime(dVar1, 1.0f, 0.0f, -1, 10.0f);
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80140D80-80140EF0 .text procShipReady_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipReady_init() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc */
|
||||
commonProcInit(daPyProc_SHIP_READY_e);
|
||||
deleteEquipItem(TRUE);
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
setSingleMoveAnime(ANM_VJMPCL, daPy_HIO_wallCatch_c0::m.field_0x24,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x2C,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x4,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x28);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
s16 sVar3 = fopAcM_searchActorAngleY((fopAc_ac_c *)iVar1, this);
|
||||
if ((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;
|
||||
m34D0 = 0;
|
||||
} else {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_redge,
|
||||
¤t.pos);
|
||||
shape_angle.y = iVar1->shape_angle.y + 0x4000;
|
||||
m34D4 = shape_angle.y + 0x8000;
|
||||
m34D0 = 1;
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
m3570 = 0;
|
||||
iVar1->m034D = 3;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK1000000_e);
|
||||
swimOutAfter(1);
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
m3540 = 0;
|
||||
m3542 = 0;
|
||||
m353C = 0;
|
||||
m353E = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80140EF0-8014105C .text procShipReady__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipReady() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - floats, branching,
|
||||
regalloc */
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
|
||||
if (iVar1 == 0) {
|
||||
checkNextMode(0);
|
||||
} else if (m3570 == 0) {
|
||||
if (m34D0 == 0) {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_ledge,
|
||||
&dComIfGp_getShipActor()->current.pos);
|
||||
} else {
|
||||
mDoMtx_multVec(iVar1->m0298->getModel()->getBaseTRMtx(), &l_ship_redge,
|
||||
&dComIfGp_getShipActor()->current.pos);
|
||||
}
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.0099999998f) {
|
||||
m3570 = 1;
|
||||
mVelocity = 6.0f;
|
||||
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;
|
||||
}
|
||||
} 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)) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8014105C-80141140 .text procShipJumpRide_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipJumpRide_init() {
|
||||
/* Nonmatching */
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80141140-80141180 .text procShipJumpRide__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipJumpRide() {
|
||||
/* Nonmatching */
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.0099999998f) {
|
||||
procShipPaddle_init();
|
||||
} else {
|
||||
setShipRidePos(0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 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(1);
|
||||
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;
|
||||
}
|
||||
|
||||
/* 8014123C-80141288 .text procShipSteer__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipSteer() {
|
||||
/* Nonmatching */
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
} else {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141288-801413A4 .text procShipPaddle_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipPaddle_init() {
|
||||
/* Nonmatching */
|
||||
/* 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));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801413A4-801416BC .text procShipPaddle__9daPy_lk_cFv */
|
||||
@@ -149,8 +470,26 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
}
|
||||
|
||||
/* 801416BC-801417EC .text procShipScope_init__9daPy_lk_cFi */
|
||||
BOOL daPy_lk_c::procShipScope_init(int) {
|
||||
/* Nonmatching */
|
||||
BOOL daPy_lk_c::procShipScope_init(int param_0) {
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_SCOPE_e);
|
||||
deleteEquipItem(1);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
setShipRidePos(0);
|
||||
setSingleMoveAnime(ANM_WAITS, daPy_HIO_move_c0::m.field_0x38, 0.0f, -1, 5.0f);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
mDoAud_seStart(JA_SE_ITM_SUBMENU_IN_1);
|
||||
offNoResetFlg0(daPyFlg0_SCOPE_CANCEL);
|
||||
mEquipItem = dComIfGp_getSelectItem(mReadyItemBtn);
|
||||
if (param_0 != 0) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e);
|
||||
setScopeModel();
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus1(0, daPyStts1_PICTO_BOX_AIM_e);
|
||||
setPhotoBoxModel();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801417EC-801418B4 .text procShipScope__9daPy_lk_cFv */
|
||||
@@ -160,7 +499,26 @@ BOOL daPy_lk_c::procShipScope() {
|
||||
|
||||
/* 801418B4-801419B4 .text procShipBoomerang_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
/* Nonmatching */
|
||||
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;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801419B4-80141BB0 .text procShipBoomerang__9daPy_lk_cFv */
|
||||
@@ -170,7 +528,33 @@ BOOL daPy_lk_c::procShipBoomerang() {
|
||||
|
||||
/* 80141BB0-80141CF8 .text procShipHookshot_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipHookshot_init() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc */
|
||||
daShip_c *iVar1 = 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;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141CF8-80141F2C .text procShipHookshot__9daPy_lk_cFv */
|
||||
@@ -180,7 +564,34 @@ BOOL daPy_lk_c::procShipHookshot() {
|
||||
|
||||
/* 80141F2C-80142084 .text procShipBow_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBow_init() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc */
|
||||
daShip_c *iVar1 = 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;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142084-80142250 .text procShipBow__9daPy_lk_cFv */
|
||||
@@ -190,17 +601,60 @@ BOOL daPy_lk_c::procShipBow() {
|
||||
|
||||
/* 80142250-80142300 .text procShipCannon_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipCannon_init() {
|
||||
/* Nonmatching */
|
||||
if (mCurProc == daPyProc_SHIP_CANNON_e) {
|
||||
return false;
|
||||
} else {
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CANNON_e);
|
||||
deleteEquipItem(1);
|
||||
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;
|
||||
}
|
||||
|
||||
/* 80142300-80142388 .text procShipCannon__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipCannon() {
|
||||
/* Nonmatching */
|
||||
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);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142388-80142458 .text procShipCrane_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipCrane_init() {
|
||||
/* Nonmatching */
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80142458-80142920 .text procShipCrane__9daPy_lk_cFv */
|
||||
@@ -209,8 +663,28 @@ BOOL daPy_lk_c::procShipCrane() {
|
||||
}
|
||||
|
||||
/* 80142920-80142A5C .text procShipGetOff_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipGetOff_init() {
|
||||
/* Nonmatching */
|
||||
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;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142A5C-80142C08 .text procShipGetOff__9daPy_lk_cFv */
|
||||
@@ -220,10 +694,25 @@ BOOL daPy_lk_c::procShipGetOff() {
|
||||
|
||||
/* 80142C08-80142C9C .text procShipRestart_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipRestart_init() {
|
||||
/* Nonmatching */
|
||||
daShip_c *iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_RESTART_e);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
setShipRidePos(1);
|
||||
setSingleMoveAnime(ANM_SEARESET, 1.0f, 0.0f, -1, -1.0f);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142C9C-80142D08 .text procShipRestart__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipRestart() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGp_getShipActor() == NULL) {
|
||||
return checkNextMode(0);
|
||||
} else {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.0099999998f) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
setShipRidePos(1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user