mirror of https://github.com/zeldaret/tww
2463 lines
80 KiB
C++
2463 lines
80 KiB
C++
/**
|
|
* d_a_player_dproc.inc
|
|
*
|
|
* Code relating to "demo processes" (small cutscene-like actions).
|
|
*
|
|
* This file is not a standalone translation unit and is instead directly
|
|
* included into d_a_player_main.cpp.
|
|
*
|
|
* The original name of this file is known because of an assert contained within
|
|
* a function from this file.
|
|
*/
|
|
|
|
#include "d/dolzel.h" // IWYU pragma: keep
|
|
#include "SSystem/SComponent/c_counter.h"
|
|
#include "d/actor/d_a_boko.h"
|
|
#include "d/actor/d_a_demo_item.h"
|
|
#include "d/actor/d_a_itembase.h"
|
|
#include "d/actor/d_a_npc_fa1.h"
|
|
#include "d/actor/d_a_player_HIO.h"
|
|
#include "d/actor/d_a_player_main.h"
|
|
#include "d/actor/d_a_player_main_data.h"
|
|
#include "d/actor/d_a_ship.h"
|
|
#include "d/d_gameover.h"
|
|
#include "d/d_kankyo_wether.h"
|
|
#include "d/d_procname.h"
|
|
#include "f_op/f_op_camera.h"
|
|
#include "f_op/f_op_camera_mng.h"
|
|
#include "m_Do/m_Do_graphic.h"
|
|
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
|
|
|
/* 8012CD60-8012CDD4 .text getDemoLookActor__9daPy_lk_cFv */
|
|
fopAc_ac_c* daPy_lk_c::getDemoLookActor() {
|
|
if (mDemo.getParam0() == 1) {
|
|
return dComIfGp_event_getPt1();
|
|
} else if (mDemo.getParam0() == 2) {
|
|
return dComIfGp_event_getPt2();
|
|
} else if (mDemo.getParam0() == 3) {
|
|
return fopAcM_getTalkEventPartner(this);
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/* 8012CDD4-8012CE2C .text setTinkleCeiverModel__9daPy_lk_cFv */
|
|
void daPy_lk_c::setTinkleCeiverModel() {
|
|
JKRHeap* oldHeap = setItemHeap();
|
|
initModel(&mpEquipItemModel, LINK_BDL_TCEIVER, 0x13000022);
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
}
|
|
|
|
/* 8012CE2C-8012CEFC .text setTalismanModel__9daPy_lk_cFv */
|
|
void daPy_lk_c::setTalismanModel() {
|
|
J3DAnmTransform* bck = getItemAnimeResource(LKANM_BCK_TETOLACH);
|
|
JKRHeap* oldHeap = setItemHeap();
|
|
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, LINK_BDL_TETOLACH, 0x13000022);
|
|
int ret = mSwordAnim.init(tmp_modelData, bck, true, J3DFrameCtrl::EMode_LOOP, 0.2f, 0, -1, false);
|
|
if (!ret) {
|
|
JUT_ASSERT(82, FALSE);
|
|
}
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
}
|
|
|
|
/* 8012CEFC-8012CFE8 .text setLetterModel__9daPy_lk_cFv */
|
|
void daPy_lk_c::setLetterModel() {
|
|
if (mEquipItem != daPyItem_UNK104_e) {
|
|
J3DAnmTransform* bck = getItemAnimeResource(LKANM_BCK_GETLETTERA);
|
|
JKRHeap* oldHeap = setItemHeap();
|
|
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, LINK_BDL_LETTER, 0x13000022);
|
|
int ret = mSwordAnim.init(tmp_modelData, bck, false, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false);
|
|
if (!ret) {
|
|
JUT_ASSERT(120, FALSE);
|
|
}
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
m35EC = 0.0f;
|
|
mEquipItem = daPyItem_UNK104_e;
|
|
}
|
|
}
|
|
|
|
/* 8012CFE8-8012D010 .text checkCaughtShapeHide__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::checkCaughtShapeHide() {
|
|
if (mCurProc == daPyProc_DEMO_CAUGHT_e && mProcVar0.m3570 != 0) {
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
/* 8012D010-8012D08C .text setShapeAngleToTalkActor__9daPy_lk_cFv */
|
|
void daPy_lk_c::setShapeAngleToTalkActor() {
|
|
fopAc_ac_c* partner_p = fopAcM_getTalkEventPartner(this);
|
|
|
|
if (partner_p != NULL) {
|
|
s16 partner_name = fopAcM_GetName(partner_p);
|
|
s16 target;
|
|
if (partner_name == PROC_AGB) {
|
|
target = cLib_targetAngleY(¤t.pos, &partner_p->eyePos);
|
|
} else {
|
|
target = fopAcM_searchActorAngleY(this, partner_p);
|
|
}
|
|
cLib_addCalcAngleS(
|
|
&shape_angle.y,
|
|
target,
|
|
m_HIO->mTurn.m.field_0x6,
|
|
m_HIO->mTurn.m.field_0x8,
|
|
m_HIO->mTurn.m.field_0xA
|
|
);
|
|
}
|
|
}
|
|
|
|
/* 8012D08C-8012D134 .text checkEndMessage__9daPy_lk_cFUl */
|
|
BOOL daPy_lk_c::checkEndMessage(u32 i_msgNo) {
|
|
if (m3628 == fpcM_ERROR_PROCESS_ID_e) {
|
|
m3628 = fopMsgM_messageSet(i_msgNo);
|
|
} else {
|
|
msg_class* msg_p = fopMsgM_SearchByID(m3628);
|
|
if (msg_p != NULL) {
|
|
if (msg_p->mStatus == fopMsgStts_MSG_DISPLAYED_e) {
|
|
msg_p->mStatus = fopMsgStts_MSG_ENDS_e;
|
|
} else if (msg_p->mStatus == fopMsgStts_BOX_CLOSED_e) {
|
|
msg_p->mStatus = fopMsgStts_MSG_DESTROYED_e;
|
|
return TRUE;
|
|
} else if (msg_p->mStatus == fopMsgStts_MSG_PREPARING_e && i_msgNo == 0x14A2) {
|
|
fopMsgM_demoMsgFlagOn();
|
|
}
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
/* 8012D134-8012D300 .text setTalkStartBack__9daPy_lk_cFv */
|
|
int daPy_lk_c::setTalkStartBack() {
|
|
fopAc_ac_c* partner_p = fopAcM_getTalkEventPartner(this);
|
|
if (partner_p != NULL) {
|
|
cXyz sp24 = current.pos - partner_p->current.pos;
|
|
f32 var_f1 = sp24.absXZ();
|
|
if (var_f1 < 100.0f && var_f1 > 1.0f) {
|
|
f32 temp_f2_2 = 100.0f / var_f1;
|
|
m370C.x = partner_p->current.pos.x + temp_f2_2 * sp24.x;
|
|
m370C.y = current.pos.y + 30.1f;
|
|
m370C.z = partner_p->current.pos.z + temp_f2_2 * sp24.z;
|
|
mGndChk.SetPos(&m370C);
|
|
|
|
if (dComIfG_Bgsp()->GroundCross(&mGndChk) - current.pos.y >= -30.1f) {
|
|
current.angle.y = cM_atan2s(sp24.x, sp24.z);
|
|
mVelocity = 5.0f;
|
|
setSingleMoveAnime(ANM_WALK, -m_HIO->mMove.m.field_0x44, 0.0f, -1, m_HIO->mTurn.m.field_0x18);
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* 8012D300-8012D3C4 .text dProcTool_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTool_init() {
|
|
if (mCurProc == daPyProc_DEMO_TOOL_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_TOOL_e);
|
|
speed.y = speedF = mVelocity = 0.0f;
|
|
m_anm_heap_under[UNDER_MOVE0_e].field_0x6 = -1;
|
|
m_anm_heap_under[UNDER_MOVE0_e].field_0x4 = -1;
|
|
m_anm_heap_upper[UPPER_MOVE0_e].mIdx = -1;
|
|
m_anm_heap_under[UNDER_MOVE1_e].mIdx = -1;
|
|
m_anm_heap_upper[UPPER_MOVE1_e].mIdx = -1;
|
|
m_pbCalc[PART_UPPER_e]->setRatio(0, 1.0f);
|
|
m_pbCalc[PART_UPPER_e]->setRatio(1, 0.0f);
|
|
m_pbCalc[PART_UNDER_e]->setRatio(0, 1.0f);
|
|
m_pbCalc[PART_UNDER_e]->setRatio(1, 0.0f);
|
|
mAnmRatioUnder[UNDER_MOVE1_e].setAnmTransform(NULL);
|
|
mAnmRatioUpper[UNDER_MOVE1_e].setAnmTransform(NULL);
|
|
mProcVar0.m3570 = 0;
|
|
m3574 = 0;
|
|
m34D4 = 0;
|
|
m34D6 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 8012D3C4-8012DA3C .text dProcTool__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTool() {
|
|
dDemo_actor_c* demo_actor = dComIfGp_demo_getActor(demoActorID);
|
|
daPy_anmHeap_c* anm_heap_under = &m_anm_heap_under[0];
|
|
m3574 = 0;
|
|
#if VERSION > VERSION_DEMO
|
|
m34D6 = 0;
|
|
#endif
|
|
|
|
if (demo_actor) {
|
|
u16 r29 = 0xFFFF;
|
|
u16 r28 = (mDemo.getDemoMode() / daPy_demo_c::DEMO_NEW_ANM0_e) - 1;
|
|
f32 f31 = 0.0f;
|
|
if (demo_actor->checkEnable(dDemo_actor_c::ENABLE_TRANS_e)) {
|
|
current.pos = *demo_actor->getTrans();
|
|
}
|
|
if (demo_actor->checkEnable(dDemo_actor_c::ENABLE_ROTATE_e)) {
|
|
current.angle = shape_angle = *demo_actor->getRatate();
|
|
}
|
|
if (demo_actor->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) {
|
|
f31 = demo_actor->getAnmFrame();
|
|
}
|
|
f32 f30 = -1.0f;
|
|
if (demo_actor->checkEnable(dDemo_actor_c::ENABLE_UNK_e)) {
|
|
dDemo_prm_data* data = demo_actor->getPrm()->getData();
|
|
u32 id = demo_actor->getPrm()->getId();
|
|
if (
|
|
id == 0 || id == 2
|
|
#if VERSION > VERSION_DEMO
|
|
|| id == 4
|
|
#endif
|
|
) {
|
|
JStudio::stb::TParseData_fixed<50, TValueIterator_misaligned<u16> > spC4(data);
|
|
r29 = spC4.front();
|
|
JStudio::stb::TParseData_fixed<49, TValueIterator_raw<u8> > spB0(spC4.getNext());
|
|
if (spB0.size() == 3) {
|
|
mLeftHandIdx = spB0.front();
|
|
mRightHandIdx = *(spB0.begin() + 1);
|
|
f30 = spB0.back();
|
|
} else {
|
|
mLeftHandIdx = spB0.front();
|
|
mRightHandIdx = spB0.back();
|
|
}
|
|
|
|
if (demo_actor->getPrm()->getId() == 2) {
|
|
m3574 = 1;
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
else if (demo_actor->getPrm()->getId() == 4) {
|
|
m34D6 = 1;
|
|
}
|
|
#endif
|
|
} else if (
|
|
id == 1 || id == 3
|
|
#if VERSION > VERSION_DEMO
|
|
|| id == 5
|
|
#endif
|
|
) {
|
|
JStudio::stb::TParseData_fixed<50, TValueIterator_misaligned<u16> > sp9C(data);
|
|
r29 = sp9C.front();
|
|
// setDemoTextureAnime(*(sp9C.begin() + 1), sp9C.back(), 0, r28); // Seems more real, but doesn't match?
|
|
setDemoTextureAnime(*(u16*)(sp9C.begin() + 1).get(), sp9C.back(), 0, r28); // Fakematch?
|
|
JStudio::stb::TParseData_fixed<49, TValueIterator_raw<u8> > sp88(sp9C.getNext());
|
|
if (sp88.size() == 3) {
|
|
mLeftHandIdx = sp88.front();
|
|
mRightHandIdx = *(sp88.begin() + 1);
|
|
f30 = sp88.back();
|
|
} else {
|
|
mLeftHandIdx = sp88.front();
|
|
mRightHandIdx = sp88.back();
|
|
}
|
|
|
|
if (demo_actor->getPrm()->getId() == 3) {
|
|
m3574 = 1;
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
else if (demo_actor->getPrm()->getId() == 5) {
|
|
m34D6 = 1;
|
|
}
|
|
#endif
|
|
}
|
|
|
|
u8 itemNo = dItem_NONE_e;
|
|
if (mLeftHandIdx == 0xC8) {
|
|
itemNo = dItem_SWORD_e;
|
|
} else if (mLeftHandIdx == 0xC9) {
|
|
itemNo = dItem_MASTER_SWORD_1_e;
|
|
} else if (mLeftHandIdx == 0xCA) {
|
|
itemNo = dItem_MASTER_SWORD_2_e;
|
|
} else if (mLeftHandIdx == 0xCB) {
|
|
itemNo = dItem_MASTER_SWORD_3_e;
|
|
}
|
|
if (itemNo != dItem_NONE_e) {
|
|
mLeftHandIdx = 3;
|
|
if (mEquipItem != daPyItem_SWORD_e || itemNo != dComIfGs_getSelectEquip(0)) {
|
|
dComIfGs_setSelectEquip(0, itemNo);
|
|
deleteEquipItem(FALSE);
|
|
#if VERSION == VERSION_DEMO
|
|
setSwordModel();
|
|
#else
|
|
setSwordModel(TRUE);
|
|
#endif
|
|
}
|
|
} else {
|
|
if (mLeftHandIdx == 0xCC) {
|
|
if (mEquipItem != dItem_WIND_WAKER_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
mLeftHandIdx = 5;
|
|
setTactModel();
|
|
} else if (mEquipItem != daPyItem_NONE_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
}
|
|
|
|
if (mRightHandIdx == 0xC8 || mRightHandIdx == 0xC9) {
|
|
m34D4 = 1;
|
|
if (mRightHandIdx == 0xC8) {
|
|
dComIfGs_setSelectEquip(1, dItem_SHIELD_e);
|
|
} else {
|
|
dComIfGs_setSelectEquip(1, dItem_MIRROR_SHIELD_e);
|
|
}
|
|
mRightHandIdx = 0x08;
|
|
} else {
|
|
m34D4 = 0;
|
|
if (mRightHandIdx != 0) {
|
|
mRightHandIdx += 6;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (r29 != 0xFFFF && (anm_heap_under->field_0x4 != r29 || anm_heap_under->field_0x6 != r28)) {
|
|
JKRReadIdResource(anm_heap_under->m_buffer, 0xB400, r29, dComIfGp_getLkDemoAnmArchive());
|
|
JKRHeap* oldHeap = setAnimeHeap(anm_heap_under->mpAnimeHeap);
|
|
J3DAnmTransform* r26 = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(anm_heap_under->m_buffer);
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
|
|
setFrameCtrl(&mFrameCtrlUnder[UNDER_MOVE0_e], r26->getAttribute(), 0, r26->getFrameMax(), 1.0f, f31);
|
|
r26->setFrame(f31);
|
|
anm_heap_under->mIdx = 0xFFFF;
|
|
anm_heap_under->field_0x4 = r29;
|
|
anm_heap_under->field_0x6 = r28;
|
|
mAnmRatioUnder[UNDER_MOVE0_e].setAnmTransform(r26);
|
|
mAnmRatioUpper[UPPER_MOVE0_e].setAnmTransform(r26);
|
|
m34C3 = 0;
|
|
if (f30 >= 0.0f) {
|
|
m_old_fdata->initOldFrameMorf(f30, 0, 0x2A);
|
|
}
|
|
demo_actor->setAnmFrameMax(r26->getFrameMax());
|
|
setSeAnime(anm_heap_under, &mFrameCtrlUnder[UNDER_MOVE0_e]);
|
|
} else {
|
|
if (demo_actor->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) {
|
|
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(f31);
|
|
demo_actor->setAnmFrameMax(mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->getFrameMax());
|
|
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(f31);
|
|
}
|
|
}
|
|
} else {
|
|
checkNextMode(0);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/* 8012DA3C-8012DBD0 .text dProcTalk_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalk_init() {
|
|
if (mCurProc == daPyProc_DEMO_TALK_e) {
|
|
return true;
|
|
}
|
|
mProcVar0.m3570 = 0;
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_TALK_e);
|
|
if (iVar2 == 0) {
|
|
if ((mDemo.getDemoMode() != 8) && (mEquipItem != daPyItem_NONE_e)) {
|
|
setAnimeUnequip();
|
|
}
|
|
mProcVar0.m3570 = setTalkStartBack();
|
|
}
|
|
if (mProcVar0.m3570 == 0) {
|
|
mVelocity = 0.0f;
|
|
if (mDemo.getDemoMode() == 8) {
|
|
setSingleMoveAnime(ANM_WAITS, m_HIO->mMove.m.field_0x38, 0.0f, -1, m_HIO->mTurn.m.field_0x18);
|
|
} else {
|
|
setSingleMoveAnime(ANM_TALKA, m_HIO->mTurn.m.field_0x14, 0.0f, -1, m_HIO->mTurn.m.field_0x18);
|
|
}
|
|
m3574 = mDemo.getParam1();
|
|
if (m3574 == 1) {
|
|
setTextureAnime(145, 0);
|
|
offModeFlg(ModeFlg_00000080);
|
|
}
|
|
}
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10_e);
|
|
if (mDemo.getParam0() != 1) {
|
|
seStartSystem(JA_SE_TALK_START);
|
|
}
|
|
initShipRideUseItem(iVar2, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 8012DBD0-8012DDEC .text dProcTalk__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalk() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
setShapeAngleToTalkActor();
|
|
if (mProcVar0.m3570 != 0) {
|
|
cXyz local_28 = m370C - current.pos;
|
|
int iVar2 = 0;
|
|
|
|
if (mAcch.ChkWallHit()) {
|
|
dBgS_AcchCir* acchCir_p = mAcchCir;
|
|
for (int i = 0; i < 3; i++) {
|
|
if (acchCir_p->ChkWallHit()) {
|
|
iVar2 = cLib_distanceAngleS(acchCir_p->GetWallAngleY(), current.angle.y);
|
|
break;
|
|
}
|
|
acchCir_p++;
|
|
}
|
|
}
|
|
if ((0x4000 < cLib_distanceAngleS(cM_atan2s(local_28.x, local_28.z), current.angle.y)) || (0x4000 < iVar2)) {
|
|
current.pos.x = m370C.x;
|
|
current.pos.z = m370C.z;
|
|
mProcVar0.m3570 = 0;
|
|
if (mDemo.getDemoMode() == 8) {
|
|
setSingleMoveAnime(ANM_WAITS, m_HIO->mMove.m.field_0x38, 0.0f, -1, m_HIO->mTurn.m.field_0x18);
|
|
} else {
|
|
setSingleMoveAnime(ANM_TALKA, m_HIO->mTurn.m.field_0x14, 0.0f, -1, m_HIO->mTurn.m.field_0x18);
|
|
}
|
|
if (m3574 == 1) {
|
|
setTextureAnime(145, 0);
|
|
offModeFlg(ModeFlg_00000080);
|
|
}
|
|
mVelocity = 0.0f;
|
|
}
|
|
} else {
|
|
current.angle.y = shape_angle.y;
|
|
if (m3574 != mDemo.getParam1()) {
|
|
m3574 = mDemo.getParam1();
|
|
if (m3574 == 1) {
|
|
setTextureAnime(145, m3530);
|
|
offModeFlg(ModeFlg_00000080);
|
|
} else {
|
|
setTextureAnime(0, m3530);
|
|
onModeFlg(ModeFlg_00000080);
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012DDEC-8012DEA0 .text dProcDamage_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDamage_init() {
|
|
if (mCurProc == daPyProc_DEMO_DAMAGE_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_DAMAGE_e);
|
|
setSingleMoveAnime(
|
|
ANM_DAMF,
|
|
m_HIO->mDam.mDamage.m.field_0x14,
|
|
m_HIO->mDam.mDamage.m.field_0x18,
|
|
m_HIO->mDam.mDamage.m.field_0x0,
|
|
m_HIO->mDam.mDamage.m.field_0x8
|
|
);
|
|
mVelocity = 0.0f;
|
|
m35A0 = M_PI / (m_HIO->mDam.mDamage.m.field_0x0 - m_HIO->mDam.mDamage.m.field_0x18);
|
|
return true;
|
|
}
|
|
|
|
/* 8012DEA0-8012DF24 .text dProcDamage__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDamage() {
|
|
mVelocity = -2.0f * cM_fsin(m35A0 * mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012DF24-8012E054 .text dProcHoldup_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcHoldup_init() {
|
|
daPy_ANM dVar3;
|
|
short sVar2;
|
|
f32 dVar6;
|
|
f32 dVar5;
|
|
f32 dVar4;
|
|
|
|
if (mCurProc == daPyProc_DEMO_HOLDUP_e) {
|
|
return false;
|
|
}
|
|
|
|
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) ? TRUE : FALSE;
|
|
commonProcInit(daPyProc_DEMO_HOLDUP_e);
|
|
if (uVar1) {
|
|
if (checkNoResetFlg0(daPyFlg0_UNK10000)) {
|
|
dVar3 = ANM_WALLHOLDUPDW;
|
|
dVar6 = m_HIO->mHoldup.m.field_0x30;
|
|
dVar5 = m_HIO->mHoldup.m.field_0x34;
|
|
sVar2 = m_HIO->mHoldup.m.field_0x6;
|
|
dVar4 = m_HIO->mHoldup.m.field_0x38;
|
|
} else {
|
|
dVar3 = ANM_WALLHOLDUP;
|
|
dVar6 = m_HIO->mHoldup.m.field_0x24;
|
|
dVar5 = m_HIO->mHoldup.m.field_0x28;
|
|
sVar2 = m_HIO->mHoldup.m.field_0x4;
|
|
dVar4 = m_HIO->mHoldup.m.field_0x2C;
|
|
}
|
|
onModeFlg(ModeFlg_WHIDE);
|
|
setBgCheckParam();
|
|
} else {
|
|
dVar3 = ANM_HOLDUP;
|
|
dVar6 = m_HIO->mHoldup.m.field_0x18;
|
|
dVar5 = m_HIO->mHoldup.m.field_0x1C;
|
|
sVar2 = m_HIO->mHoldup.m.field_0x2;
|
|
dVar4 = m_HIO->mHoldup.m.field_0x20;
|
|
}
|
|
setSingleMoveAnime(dVar3, dVar6, dVar5, sVar2, dVar4);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 8012E054-8012E09C .text dProcHoldup__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcHoldup() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012E09C-8012E244 .text dProcOpenTreasure_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcOpenTreasure_init() {
|
|
float fVar1;
|
|
daPy_ANM dVar2;
|
|
|
|
if (mCurProc == daPyProc_DEMO_OPEN_TREASURE_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_OPEN_TREASURE_e);
|
|
if (mDemo.getParam0() == 1) {
|
|
dVar2 = ANM_BOXOPENSHORTLINK;
|
|
fVar1 = 75.0f;
|
|
} else {
|
|
dVar2 = ANM_BOXOPENLINK;
|
|
fVar1 = 55.0f;
|
|
}
|
|
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
if (mEquipItem == daPyItem_BOKO_e) {
|
|
daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor();
|
|
if (boko != NULL) {
|
|
mDoMtx_stack_c::transS(current.pos);
|
|
mDoMtx_stack_c::YrotM(shape_angle.y + 0x2000);
|
|
boko->setMatrix(mDoMtx_stack_c::get());
|
|
}
|
|
}
|
|
fopAc_ac_c* partner_p = fopAcM_getEventPartner(this);
|
|
if (partner_p != NULL) {
|
|
shape_angle.y = partner_p->shape_angle.y + 0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
current.pos.x = partner_p->current.pos.x - fVar1 * cM_ssin(shape_angle.y);
|
|
current.pos.z = partner_p->current.pos.z - fVar1 * cM_scos(shape_angle.y);
|
|
}
|
|
deleteEquipItem(FALSE);
|
|
mAcch.SetWallNone();
|
|
mAcch.OffLineCheck();
|
|
return true;
|
|
}
|
|
|
|
/* 8012E244-8012E28C .text dProcOpenTreasure__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcOpenTreasure() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012E28C-8012E418 .text setGetItemSound__9daPy_lk_cFUsi */
|
|
void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) {
|
|
if (param_1 == dItem_GREEN_RUPEE_e || param_1 == dItem_BLUE_RUPEE_e || param_1 == dItem_YELLOW_RUPEE_e ||
|
|
param_1 == dItem_RED_RUPEE_e || param_1 == dItem_PURPLE_RUPEE_e || param_1 == TINCLE_RUPEE1)
|
|
{
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else if ((param_1 == dItem_HEART_CONTAINER_e) ||
|
|
(param_1 == dItem_HEART_PIECE_e && ((dComIfGs_getMaxLife() % 4) == 3)))
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_GET_HEART);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (param_1 == dItem_HEART_PIECE_e || param_1 == dItem_JOY_PENDANT_e || param_1 == dItem_SMALL_KEY_e ||
|
|
param_1 == dItem_SILVER_RUPEE_e || param_1 == dItem_ORANGE_RUPEE_e)
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (param_2 != dItem_HEART_e) {
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else {
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET);
|
|
dComIfGp_setMesgBgmOn();
|
|
}
|
|
}
|
|
|
|
#if VERSION > VERSION_DEMO
|
|
/* 8012E418-8012E6B4 .text setGetDemo__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::setGetDemo() {
|
|
int staffIdx = dComIfGp_evmng_getMyStaffId("Link", this);
|
|
if (dComIfGp_event_runCheck() && m34CE & 0x04) {
|
|
dComIfGp_evmng_cutEnd(staffIdx);
|
|
return TRUE;
|
|
}
|
|
|
|
if (dComIfGp_evmng_startCheck("DEFAULT_GETITEM")) {
|
|
if (m34CE & 0x01 || ((checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) ||
|
|
!mAcch.ChkGroundHit() || daPy_lk_c::checkPlayerFly()) &&
|
|
!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)))
|
|
{
|
|
if ((m34CE & 0x01) == 0) {
|
|
mMsgId = fpcM_ERROR_PROCESS_ID_e;
|
|
}
|
|
m34CE |= 0x01;
|
|
char* cutName = dComIfGp_getPEvtManager()->getMyNowCutName(staffIdx);
|
|
if (cutName != NULL) {
|
|
// TODO: is there an inline for parsing link's cut name -> cut
|
|
// index?
|
|
u32 r0 = (cutName[0] - '0') * 100 + (cutName[1] - '0') * 10 + (cutName[2] - '0');
|
|
if (r0 == 0xB) {
|
|
fopAc_ac_c* itemPartner = fopAcM_getItemEventPartner(this);
|
|
if (itemPartner != NULL &&
|
|
(fopAcM_GetName(itemPartner) == PROC_ITEM || fopAcM_GetName(itemPartner) == PROC_Demo_Item))
|
|
{
|
|
daItemBase_c* item = (daItemBase_c*)itemPartner;
|
|
item->hide();
|
|
u32 itemNo = item->getItemNo();
|
|
if ((m34CE & 0x02) == 0) {
|
|
setGetItemSound(itemNo, 0);
|
|
m34CE |= 0x02;
|
|
}
|
|
|
|
u32 itemGetMsgNo;
|
|
if (itemNo == dItem_HEART_PIECE_e && (dComIfGs_getMaxLife() % 4) != 0) {
|
|
itemGetMsgNo = MSG_NO_FOR_ITEM(dItem_HEART_PIECE_2_e + (dComIfGs_getMaxLife() % 4) - 1);
|
|
} else {
|
|
itemGetMsgNo = MSG_NO_FOR_ITEM(itemNo);
|
|
}
|
|
|
|
if (mMsgId == fpcM_ERROR_PROCESS_ID_e) {
|
|
mMsgId = fopMsgM_messageSet(itemGetMsgNo);
|
|
} else {
|
|
msg_class* msg_p = fopMsgM_SearchByID(mMsgId);
|
|
if (msg_p != NULL) {
|
|
if (msg_p->mStatus == fopMsgStts_MSG_DISPLAYED_e) {
|
|
msg_p->mStatus = fopMsgStts_MSG_ENDS_e;
|
|
} else if (msg_p->mStatus == fopMsgStts_BOX_CLOSED_e) {
|
|
msg_p->mStatus = fopMsgStts_MSG_DESTROYED_e;
|
|
dComIfGp_evmng_cutEnd(staffIdx);
|
|
item->dead();
|
|
m34CE |= 0x04;
|
|
} else if (msg_p->mStatus == fopMsgStts_MSG_PREPARING_e) {
|
|
fopMsgM_demoMsgFlagOn();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
dComIfGp_evmng_cutEnd(staffIdx);
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
}
|
|
m34CE = 0;
|
|
return FALSE;
|
|
}
|
|
#endif
|
|
|
|
/* 8012E6B4-8012E8B0 .text dProcGetItem_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcGetItem_init() {
|
|
BOOL sVar6 = 0;
|
|
BOOL sVar5 = 0;
|
|
|
|
if (mCurProc == daPyProc_DEMO_GET_ITEM_e) {
|
|
return true;
|
|
}
|
|
if (mCurProc == daPyProc_DEMO_OPEN_TREASURE_e) {
|
|
m34C2 = 10;
|
|
mAcch.ClrWallNone();
|
|
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_BOXOPENLINK) {
|
|
sVar5 = 1;
|
|
}
|
|
} else if (mCurProc == daPyProc_DEMO_OPEN_SALVAGE_TREASURE_e) {
|
|
m34C2 = 6;
|
|
sVar6 = 1;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(0);
|
|
commonProcInit(daPyProc_DEMO_GET_ITEM_e);
|
|
mVelocity = 0.0f;
|
|
if (mEquipItem == daPyItem_NONE_e) {
|
|
setSingleMoveAnime(ANM_ITEMGET, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar0.m3570 = 0;
|
|
onModeFlg(ModeFlg_00000400);
|
|
} else {
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
setAnimeUnequip();
|
|
m3598 = 0.0f;
|
|
mProcVar0.m3570 = 1;
|
|
}
|
|
if (mDemo.getParam0() != 0) {
|
|
int item_no;
|
|
if (mDemo.getParam0() != 0x100) {
|
|
item_no = mDemo.getParam0();
|
|
} else {
|
|
item_no = dComIfGp_event_getGtItm();
|
|
}
|
|
fpc_ProcID itemID =
|
|
fopAcM_createItemForPresentDemo(¤t.pos, item_no, 0, -1, fopAcM_GetRoomNo(this));
|
|
if (itemID != fpcM_ERROR_PROCESS_ID_e) {
|
|
dComIfGp_event_setItemPartnerId(itemID);
|
|
}
|
|
m34D4 = item_no;
|
|
} else {
|
|
m34D4 = -1;
|
|
}
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
current.angle.y = shape_angle.y;
|
|
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
|
m34D0 = 0;
|
|
m34D8 = sVar6;
|
|
initShipRideUseItem(iVar2, 0);
|
|
m3574 = 0;
|
|
m3624 = 0;
|
|
m34DA = sVar5;
|
|
dKy_Itemgetcol_chg_on();
|
|
return true;
|
|
}
|
|
|
|
/* 8012E8B0-8012ECB0 .text dProcGetItem__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcGetItem() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
if (m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < 10.0f) {
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
}
|
|
daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this);
|
|
if ((m34D4 == -1) && (item != NULL)) {
|
|
m34D4 = item->getItemNo() & 0xff;
|
|
}
|
|
if ((mProcVar0.m3570 == 0) && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f)) {
|
|
if ((m34D0 == 0) && (m34D4 != -1)) {
|
|
m34D0 = 1;
|
|
setGetItemSound(m34D4, m34DA);
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 17.0f) {
|
|
if (m34D6 > 0x4000) {
|
|
shape_angle.y =
|
|
current.angle.y + ((0x10000 - m34D6) * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
} else {
|
|
shape_angle.y = current.angle.y - (m34D6 * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
}
|
|
} else {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > 17.0f) {
|
|
shape_angle.y = current.angle.y - m34D6;
|
|
}
|
|
}
|
|
}
|
|
if (mProcVar0.m3570 != 0) {
|
|
if (checkNoUpperAnime()) {
|
|
setSingleMoveAnime(ANM_ITEMGET, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar0.m3570 = 0;
|
|
onModeFlg(ModeFlg_00000400);
|
|
}
|
|
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
|
|
item->hide();
|
|
}
|
|
} else {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
|
|
item->show();
|
|
if ((m3624 == 0) && (m34D4 != -1)) {
|
|
if ((m34D4 == 7) && (dComIfGs_getMaxLife() % 4)) {
|
|
m3624 = (dComIfGs_getMaxLife() % 4) + 0x7b;
|
|
} else {
|
|
m3624 = MSG_NO_FOR_ITEM(m34D4);
|
|
}
|
|
}
|
|
if ((m3624 != 0) && (checkEndMessage(m3624))) {
|
|
shape_angle.y += 0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
m34DE = shape_angle.y;
|
|
setOldRootQuaternion(0, -0x8000, 0);
|
|
J3DTransformInfo* pJVar2 = m_old_fdata->getOldFrameTransInfo(0);
|
|
pJVar2->mTranslate.x *= -1.0f;
|
|
pJVar2->mTranslate.z *= -1.0f;
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
item->dead();
|
|
m3574 = 1;
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
}
|
|
}
|
|
} else if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
|
|
item->hide();
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012ECB0-8012ED30 .text dProcUnequip_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcUnequip_init() {
|
|
if (mCurProc == daPyProc_DEMO_UNEQUIP_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_UNEQUIP_e);
|
|
mVelocity = 0.0f;
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
if (mEquipItem != daPyItem_NONE_e) {
|
|
setAnimeUnequip();
|
|
m3598 = 0.0f;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012ED30-8012ED74 .text dProcUnequip__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcUnequip() {
|
|
if (checkNoUpperAnime()) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012ED74-8012EE0C .text dProcLavaDamage_init_sub__9daPy_lk_cFv */
|
|
void daPy_lk_c::dProcLavaDamage_init_sub() {
|
|
speed.y = m_HIO->mRestart.m.field_0x8;
|
|
mProcVar0.m3570 = 0;
|
|
voiceStart(4);
|
|
seStartMapInfo(JA_SE_LK_FALL_MAGMA);
|
|
gravity = m_HIO->mAutoJump.m.field_0xC;
|
|
mDemo.setDemoType(5);
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10000000_e);
|
|
daPy_py_c::changePlayer(this);
|
|
}
|
|
|
|
/* 8012EE0C-8012EEE4 .text dProcLavaDamage_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLavaDamage_init() {
|
|
if (mCurProc == daPyProc_DEMO_LAVA_DAMAGE_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LAVA_DAMAGE_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_LAVADAM, m_HIO->mRestart.m.field_0x0, 0.0f, -1, m_HIO->mRestart.m.field_0x4);
|
|
m32E4.makeEmitter(dPa_name::ID_SCENE_8078, mpCLModel->getAnmMtx(0), ¤t.pos, NULL);
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcLavaDamage_init_sub();
|
|
} else {
|
|
speed.y = 0.0f;
|
|
gravity = 0.0f;
|
|
mProcVar0.m3570 = 1;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012EEE4-8012EF78 .text dProcLavaDamage__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLavaDamage() {
|
|
if (mProcVar0.m3570 == 1) {
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcLavaDamage_init_sub();
|
|
}
|
|
} else if (speed.y < -gravity) {
|
|
startRestartRoom(4, 0xca, -1.0f, 1);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
extern GXColor l_freeze_fade_color;
|
|
|
|
/* 8012EF78-8012F0DC .text dProcFreezeDamage_init_sub__9daPy_lk_cFi */
|
|
void daPy_lk_c::dProcFreezeDamage_init_sub(int param_0) {
|
|
static const u16 eff_joint[] = {
|
|
0x0007,
|
|
0x000B,
|
|
0x001A,
|
|
0x000E,
|
|
0x001E,
|
|
};
|
|
|
|
if (param_0 != 0) {
|
|
mProcVar0.m3570 = 1;
|
|
mDemo.setDemoType(5);
|
|
daPy_py_c::changePlayer(this);
|
|
}
|
|
endDamageEmitter();
|
|
onNoResetFlg1(daPyFlg1_FREEZE_STATE);
|
|
offNoResetFlg1(daPyFlg1_UNK40000);
|
|
mDoGph_gInf_c::fadeOut(1.0f, l_freeze_fade_color);
|
|
seStartMapInfo(JA_SE_LK_FREEZE);
|
|
for (int i = 0; i < 5; i++) {
|
|
const u16* uVar1 = eff_joint;
|
|
MtxP pMVar2 = mpCLModel->getAnmMtx(uVar1[i]);
|
|
cXyz local_28;
|
|
mDoMtx_multVecZero(pMVar2, &local_28);
|
|
dComIfGp_particle_setP1(dPa_name::ID_SCENE_827E, &local_28);
|
|
if (i >= 3) {
|
|
dComIfGp_particle_setP1(dPa_name::ID_SCENE_827F, &local_28);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8012F0DC-8012F174 .text dProcFreezeDamage_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcFreezeDamage_init() {
|
|
if (mCurProc == daPyProc_DEMO_FREEZE_DAMAGE_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_FREEZE_DAMAGE_e);
|
|
mVelocity = 0.0f;
|
|
m34D0 = 60;
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcFreezeDamage_init_sub(1);
|
|
} else {
|
|
mProcVar0.m3570 = 0;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012F174-8012F210 .text dProcFreezeDamage__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcFreezeDamage() {
|
|
if (mProcVar0.m3570 == 0) {
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcFreezeDamage_init_sub(1);
|
|
}
|
|
} else {
|
|
m34D0--;
|
|
if (m34D0 == 0) {
|
|
startRestartRoom(5, 0xc9, -1.0f, 1);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012F210-8012F288 .text dProcDead_init_sub__9daPy_lk_cFv */
|
|
void daPy_lk_c::dProcDead_init_sub() {
|
|
mProcVar0.m3570 = 0;
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20000000_e);
|
|
m3628 = fopMsgM_create(PROC_GAMEOVER);
|
|
mDemo.setDemoType(5);
|
|
daPy_py_c::changePlayer(this);
|
|
}
|
|
|
|
/* 8012F288-8012F38C .text dProcDead_init_sub2__9daPy_lk_cFv */
|
|
void daPy_lk_c::dProcDead_init_sub2() {
|
|
static const Vec ripple_scale = {0.75f, 0.75f, 0.75f};
|
|
|
|
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(m_HIO->mRestart.m.field_0xC);
|
|
voiceStart(22);
|
|
mDoAud_bgmStop(0);
|
|
mDoAud_bgmStart(JA_BGM_DIE_LINK);
|
|
dCam_getBody()->StartEventCamera(9, fopAcM_GetID(this), 0);
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
|
|
dComIfGp_particle_setShipTail(
|
|
dPa_name::ID_COMMON_003F,
|
|
¤t.pos,
|
|
NULL,
|
|
(cXyz*)&ripple_scale,
|
|
0xff,
|
|
&dPa_control_c::mSingleRippleEcallBack,
|
|
-1
|
|
);
|
|
m34D6 = 1;
|
|
}
|
|
}
|
|
|
|
/* 8012F38C-8012F3B8 .text checkGameOverStart__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::checkGameOverStart() {
|
|
if ((mCurProc == daPyProc_DEMO_DEAD_e) && (m35A0 < 0.38f)) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 8012F3B8-8012F5A8 .text dProcDead_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDead_init() {
|
|
daPy_ANM dVar6;
|
|
float dVar8;
|
|
|
|
if (mCurProc == daPyProc_DEMO_DEAD_e) {
|
|
return true;
|
|
}
|
|
int iVar4 = checkShipRideUseItem(0);
|
|
u32 uVar2 = checkModeFlg(ModeFlg_SWIM);
|
|
u32 uVar3 = checkNoResetFlg0(daPyFlg0_UNK100);
|
|
if (uVar2 != 0) {
|
|
swimOutAfter(FALSE);
|
|
}
|
|
commonProcInit(daPyProc_DEMO_DEAD_e);
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcDead_init_sub();
|
|
dVar8 = m_HIO->mRestart.m.field_0xC;
|
|
} else {
|
|
dVar8 = 0.0f;
|
|
mProcVar0.m3570 = 1;
|
|
}
|
|
mVelocity = 0.0f;
|
|
m34D4 = 0;
|
|
|
|
if (iVar4 != 0) {
|
|
dVar6 = ANM_SHIPDIE;
|
|
} else if (uVar2 != 0) {
|
|
dVar6 = ANM_SWIMDIE;
|
|
onModeFlg(ModeFlg_SWIM);
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e);
|
|
if (uVar3 == 0) {
|
|
offNoResetFlg0(daPyFlg0_UNK100);
|
|
dVar8 = 0.0f;
|
|
m34D4 = 1;
|
|
} else {
|
|
m34C2 = 0;
|
|
}
|
|
} else {
|
|
dVar6 = ANM_DIELONG;
|
|
onModeFlg(ModeFlg_02000000);
|
|
}
|
|
|
|
setSingleMoveAnime(dVar6, dVar8, m_HIO->mRestart.m.field_0x10, -1, m_HIO->mRestart.m.field_0x14);
|
|
mDamageWaitTimer = 0;
|
|
m35E4 = 0.0f;
|
|
m35A0 = 1.0f;
|
|
if (m34D4 == 0) {
|
|
speed.y = 0.0f;
|
|
}
|
|
gravity = 0.0f;
|
|
m3574 = 0;
|
|
initShipRideUseItem(iVar4, 1);
|
|
m34D6 = 0;
|
|
if (dVar8 > 0.0f) {
|
|
dProcDead_init_sub2();
|
|
}
|
|
cancelNoDamageMode();
|
|
return true;
|
|
}
|
|
|
|
/* 8012F5A8-8012F928 .text dProcDead__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDead() {
|
|
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
|
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
if (mProcVar0.m3570 != 0 && dComIfGp_event_compulsory(this)) {
|
|
dProcDead_init_sub();
|
|
if (m34D4 == 0) {
|
|
dProcDead_init_sub2();
|
|
}
|
|
}
|
|
if (m34D4 != 0 && changeSwimUpProc()) {
|
|
m34D4 = 0;
|
|
if (mProcVar0.m3570 == 0) {
|
|
dProcDead_init_sub2();
|
|
}
|
|
}
|
|
if ((mProcVar0.m3570 == 0) && (m34D4 == 0)) {
|
|
if (checkModeFlg(ModeFlg_02000000)) {
|
|
m35E4 = 0.1f * (frameCtrl.getFrame() - 120.0f);
|
|
}
|
|
if (frameCtrl.getRate() < 0.01f) {
|
|
dGameover_c* this_01;
|
|
cLib_chaseF(&m35A0, 0.0f, 0.01f);
|
|
f32 dVar3 = 1.0f - m35A0;
|
|
if ((m3628 != fpcM_ERROR_PROCESS_ID_e)) {
|
|
this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628);
|
|
if (this_01) {
|
|
this_01->setBackAlpha(dVar3);
|
|
}
|
|
}
|
|
if (((m35A0 < 0.38f) && (m3628 != fpcM_ERROR_PROCESS_ID_e)) &&
|
|
(this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628), this_01))
|
|
{
|
|
this_01->animeStart();
|
|
}
|
|
if (m3574 == 0) {
|
|
int iVar1;
|
|
if (m3628 != fpcM_ERROR_PROCESS_ID_e) {
|
|
this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628);
|
|
if (this_01 != NULL) {
|
|
iVar1 = this_01->deleteCheck();
|
|
} else {
|
|
iVar1 = 0;
|
|
}
|
|
} else {
|
|
iVar1 = 0;
|
|
}
|
|
if (iVar1 != 0) {
|
|
m3574 = 1;
|
|
}
|
|
}
|
|
if (m3574 != 0 && dComIfGp_getGameoverStatus() == 2) {
|
|
dComIfGs_setGameStartStage();
|
|
dComIfGs_gameStart();
|
|
}
|
|
} else {
|
|
if (!dComIfGp_checkPlayerStatus0(0, (daPyStts0_SHIP_RIDE_e | daPyStts0_SWIM_e))) {
|
|
if (frameCtrl.checkPass(129.0f)) {
|
|
voiceStart(0x17);
|
|
m34BE = 6;
|
|
} else {
|
|
if (frameCtrl.getFrame() >= 129.0f) {
|
|
resetFootEffect();
|
|
}
|
|
}
|
|
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
|
|
if (frameCtrl.checkPass(9.0f) || frameCtrl.checkPass(15.0f)) {
|
|
csXyz acStack_30(0, shape_angle.y, 0);
|
|
GXColor amb, dif;
|
|
dKy_get_seacolor(&amb, &dif);
|
|
if (frameCtrl.checkPass(15.0f)) {
|
|
acStack_30.y += 0x8000;
|
|
}
|
|
dComIfGp_particle_setP1(
|
|
dPa_name::ID_COMMON_0314, ¤t.pos, &acStack_30, NULL, 0xff, NULL, -1, &amb
|
|
);
|
|
} else {
|
|
if (frameCtrl.checkPass(50.0f)) {
|
|
m34D6 = 0;
|
|
} else {
|
|
if (frameCtrl.checkPass(110.0f)) {
|
|
m34D6 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012F928-8012F99C .text dProcLookAround_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookAround_init() {
|
|
if (mCurProc == daPyProc_DEMO_LOOK_AROUND_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LOOK_AROUND_e);
|
|
setSingleMoveAnime(
|
|
ANM_COMEOUT,
|
|
m_HIO->mHoldup.m.field_0xC,
|
|
m_HIO->mHoldup.m.field_0x10,
|
|
m_HIO->mHoldup.m.field_0x0,
|
|
m_HIO->mHoldup.m.field_0x14
|
|
);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 8012F99C-8012F9E4 .text dProcLookAround__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookAround() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012F9E4-8012FA50 .text dProcSalute_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSalute_init() {
|
|
if (mCurProc == daPyProc_DEMO_SALUTE_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_SALUTE_e);
|
|
setSingleMoveAnime(ANM_SALTATION, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 8012FA50-8012FA98 .text dProcSalute__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSalute() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012FA98-8012FB2C .text dProcLookAround2_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookAround2_init() {
|
|
if (mCurProc == daPyProc_DEMO_LOOK_AROUND2_e) {
|
|
return false;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_LOOK_AROUND2_e);
|
|
setSingleMoveAnime(ANM_WHO, 1.0f, 0.0f, -1, 5.0f);
|
|
mVelocity = 0.0f;
|
|
initShipRideUseItem(iVar2, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 8012FB2C-8012FB88 .text dProcLookAround2__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookAround2() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 8012FB88-8012FC24 .text dProcTalismanPickup_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalismanPickup_init() {
|
|
if (mCurProc == daPyProc_DEMO_TALISMAN_PICKUP_e) {
|
|
return false;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_TALISMAN_PICKUP_e);
|
|
setSingleMoveAnime(
|
|
ANM_PICKUP,
|
|
m_HIO->mHoldup.m.field_0x3C,
|
|
m_HIO->mHoldup.m.field_0x40,
|
|
m_HIO->mHoldup.m.field_0x8,
|
|
m_HIO->mHoldup.m.field_0x44
|
|
);
|
|
mVelocity = 0.0f;
|
|
initShipRideUseItem(iVar2, 1);
|
|
return true;
|
|
}
|
|
|
|
/* 8012FC24-8012FCC0 .text dProcTalismanPickup__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalismanPickup() {
|
|
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
|
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
if (frameCtrl.getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else if (frameCtrl.checkPass(65.0f)) {
|
|
seStartOnlyReverb(JA_SE_LK_ITEM_TAKEOUT);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012FCC0-8012FE58 .text dProcTalismanWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalismanWait_init() {
|
|
if (mCurProc == daPyProc_DEMO_TALISMAN_WAIT_e) {
|
|
return false;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_TALISMAN_WAIT_e);
|
|
setSingleMoveAnime(ANM_WAITPICKUP, 1.0f, 0.0f, -1, m_HIO->mHoldup.m.field_0x48);
|
|
mVelocity = 0.0f;
|
|
setTalismanModel();
|
|
m32E4.makeEmitter(dPa_name::ID_COMMON_03E9, mpEquipItemModel->getBaseTRMtx(), ¤t.pos, NULL);
|
|
mpEquipItemModel->setBaseTRMtx(mpCLModel->getAnmMtx(12));
|
|
mDoMtx_stack_c::copy(mpCLModel->getAnmMtx(12));
|
|
f32 adjust = (cM_ssin(g_Counter.mTimer * 1512));
|
|
mDoMtx_stack_c::transM(7.0f, 0.0f, 15.0f + 3.0f * adjust);
|
|
mDoMtx_stack_c::multVecZero(&m338C.getPos());
|
|
dComIfGp_particle_setP1(dPa_name::ID_COMMON_03EA, &m338C.getPos(), NULL, NULL, 0xff, &m338C, -1);
|
|
initShipRideUseItem(iVar2, 1);
|
|
return true;
|
|
}
|
|
|
|
/* 8012FE58-8012FFEC .text dProcTalismanWait__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTalismanWait() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
cXyz* pcVar1 = &m338C.getPos();
|
|
mDoMtx_stack_c::copy(mpCLModel->getAnmMtx(12));
|
|
f32 adjust = (cM_ssin(g_Counter.mTimer * 1512));
|
|
mDoMtx_stack_c::transM(7.0f, 0.0f, 15.0f + 3.0f * adjust);
|
|
mDoMtx_stack_c::multVecZero(pcVar1);
|
|
mDoMtx_stack_c::transS(*pcVar1);
|
|
mDoMtx_stack_c::YrotM(g_Counter.mTimer * 511);
|
|
mpEquipItemModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
mSwordAnim.play();
|
|
J3DModelData* modelData = mpEquipItemModel->getModelData();
|
|
mSwordAnim.entry(modelData);
|
|
mDoAud_seStart(JA_SE_OBJ_OMAMORI, pcVar1, 0, mReverb);
|
|
if (mDemo.getParam0() != 0) {
|
|
onModeFlg(ModeFlg_00000080);
|
|
} else {
|
|
offModeFlg(ModeFlg_00000080);
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 8012FFEC-801300F4 .text dProcSurprised_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSurprised_init() {
|
|
if (mCurProc == daPyProc_DEMO_SURPRISED_e) {
|
|
return false;
|
|
}
|
|
int iVar3 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_SURPRISED_e);
|
|
setSingleMoveAnime(ANM_SURPRISED, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
mProcVar0.m3570 = 0;
|
|
if (mDemo.getParam0() == 1) {
|
|
voiceStart(28);
|
|
} else if (mDemo.getParam0() == 2) {
|
|
voiceStart(45);
|
|
} else if (mDemo.getParam0() == 3) {
|
|
voiceStart(49);
|
|
}
|
|
initShipRideUseItem(iVar3, 1);
|
|
return true;
|
|
}
|
|
|
|
/* 801300F4-801301C0 .text dProcSurprised__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSurprised() {
|
|
u16 uVar1;
|
|
u16 uVar2;
|
|
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
if ((mProcVar0.m3570 != 0) || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
if (mProcVar0.m3570 == 0) {
|
|
uVar1 = m3530;
|
|
uVar2 = m3532;
|
|
mProcVar0.m3570 = 1;
|
|
setSingleMoveAnime(ANM_SURPRISEDWAIT, 1.0f, 0.0f, -1, 3.0f);
|
|
m3530 = uVar1;
|
|
m3532 = uVar2;
|
|
offModeFlg(ModeFlg_00000400);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 801301C0-80130278 .text dProcTurnBack_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTurnBack_init() {
|
|
if (mCurProc == daPyProc_DEMO_TURN_BACK_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_TURN_BACK_e);
|
|
mVelocity = 0.0f;
|
|
if (mActorKeepGrab.getActor() != NULL) {
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
m_pbCalc[PART_UPPER_e]->setRatio(2, 1.0f);
|
|
mProcVar0.m3570 = 1;
|
|
} else {
|
|
setSingleMoveAnime(
|
|
ANM_TURNBACK,
|
|
m_HIO->mHoldup.m.field_0x4C,
|
|
m_HIO->mHoldup.m.field_0x50,
|
|
m_HIO->mHoldup.m.field_0xA,
|
|
m_HIO->mHoldup.m.field_0x54
|
|
);
|
|
mProcVar0.m3570 = 0;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130278-801302CC .text dProcTurnBack__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTurnBack() {
|
|
if ((mProcVar0.m3570 != 0) || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 801302CC-80130338 .text dProcLookUp_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookUp_init() {
|
|
if (mCurProc == daPyProc_DEMO_LOOK_UP_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LOOK_UP_e);
|
|
setSingleMoveAnime(ANM_LOOKUP, 1.0f, 0.0f, -1, 5.0f);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 80130338-80130380 .text dProcLookUp__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookUp() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130380-801303FC .text dProcQuakeWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcQuakeWait_init() {
|
|
if (mCurProc == daPyProc_DEMO_QUAKE_WAIT_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_QUAKE_WAIT_e);
|
|
setSingleMoveAnime(ANM_WAITQ, 1.0f, 0.0f, -1, 5.0f);
|
|
setTextureAnime(104, 0);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 801303FC-80130434 .text dProcQuakeWait__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcQuakeWait() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80130434-801304A0 .text dProcDance_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDance_init() {
|
|
if (mCurProc == daPyProc_DEMO_DANCE_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_DANCE_e);
|
|
setSingleMoveAnime(ANM_GLAD, 1.0f, 0.0f, -1, 5.0f);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 801304A0-801304D8 .text dProcDance__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDance() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 801304D8-80130570 .text dProcCaught_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcCaught_init() {
|
|
daPy_ANM dVar2;
|
|
|
|
if (mCurProc == daPyProc_DEMO_CAUGHT_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_CAUGHT_e);
|
|
if (mDemo.getParam0() == 0) {
|
|
dVar2 = ANM_MOGAKU1;
|
|
mProcVar0.m3570 = 1;
|
|
} else {
|
|
dVar2 = ANM_FM_BATA;
|
|
mProcVar0.m3570 = 0;
|
|
}
|
|
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 3.0f);
|
|
speed.y = gravity = mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 80130570-801305A8 .text dProcCaught__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcCaught() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 801305A8-8013065C .text dProcLookWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookWait_init() {
|
|
int iVar1 = checkShipRideUseItem(0);
|
|
if (mCurProc == daPyProc_DEMO_LOOK_WAIT_e) {
|
|
return false;
|
|
}
|
|
if (mCurProc == daPyProc_GRAB_WAIT_e) {
|
|
m_pbCalc[PART_UPPER_e]->setRatio(2, 1.0f);
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LOOK_WAIT_e);
|
|
mVelocity = 0.0f;
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
current.angle.y = shape_angle.y;
|
|
mDirection = DIR_NONE;
|
|
initShipRideUseItem(iVar1, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 8013065C-80130724 .text dProcLookWait__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookWait() {
|
|
fopAc_ac_c* look_actor_p = getDemoLookActor();
|
|
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
if (look_actor_p != NULL) {
|
|
s16 target_angle;
|
|
s16 sVar1 = cLib_targetAngleY(¤t.pos, &look_actor_p->eyePos) - shape_angle.y;
|
|
if (sVar1 > 0x6000) {
|
|
target_angle = shape_angle.y + 0x6000;
|
|
} else if (sVar1 < -0x6000) {
|
|
target_angle = shape_angle.y + -0x6000;
|
|
} else {
|
|
target_angle = shape_angle.y;
|
|
}
|
|
cLib_addCalcAngleS(&shape_angle.y, target_angle, 2, 0x800, 0x100);
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80130724-801307AC .text dProcPushPullWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPushPullWait_init() {
|
|
if (mCurProc == daPyProc_DEMO_PUSH_PULL_WAIT_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_PUSH_PULL_WAIT_e);
|
|
setSingleMoveAnime(
|
|
ANM_WAITPUSHPULL, m_HIO->mPushpull.m.field_0x0, 0.0f, -1, m_HIO->mPushpull.m.field_0x4
|
|
);
|
|
mVelocity = 0.0f;
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
|
|
return true;
|
|
}
|
|
|
|
/* 801307AC-801307E4 .text dProcPushPullWait__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPushPullWait() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 801307E4-80130884 .text dProcPushMove_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPushMove_init() {
|
|
if (mCurProc == daPyProc_DEMO_PUSH_MOVE_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_PUSH_MOVE_e);
|
|
setSingleMoveAnime(ANM_WALKPUSH, m_HIO->mPushpull.m.field_0x8, 0.0f, -1, m_HIO->mPushpull.m.field_0xC);
|
|
mVelocity = 0.0f;
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK4000000_e);
|
|
voiceStart(19);
|
|
return true;
|
|
}
|
|
|
|
/* 80130884-801308BC .text dProcPushMove__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPushMove() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 801308BC-8013098C .text dProcDoorOpen_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDoorOpen_init() {
|
|
float fVar1;
|
|
daPy_ANM dVar2;
|
|
|
|
if (mCurProc == daPyProc_DEMO_DOOR_OPEN_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_DOOR_OPEN_e);
|
|
if ((mDemo.getParam0() & 1) != 0) {
|
|
dVar2 = ANM_DOOROPENBLINK;
|
|
} else {
|
|
dVar2 = ANM_DOOROPENALINK;
|
|
}
|
|
if ((mDemo.getParam0() & 2) != 0) {
|
|
fVar1 = 35.0f;
|
|
} else {
|
|
fVar1 = 0.0f;
|
|
}
|
|
setSingleMoveAnime(dVar2, 1.0f, fVar1, -1, 0.0f);
|
|
mVelocity = 0.0f;
|
|
mAcch.SetWallNone();
|
|
mAcch.OnLineCheckNone();
|
|
m3700 = cXyz::Zero;
|
|
m34C2 = 3;
|
|
mProcVar0.m3570 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 8013098C-80130A54 .text dProcDoorOpen__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcDoorOpen() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
mAcch.ClrWallNone();
|
|
mAcch.OffLineCheckNone();
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
mProcVar0.m3570 = 1;
|
|
m3598 = 0.0f;
|
|
} else {
|
|
if (mProcVar0.m3570 == 0) {
|
|
if (m34C2 != 3) {
|
|
m34C2 = 1;
|
|
}
|
|
} else {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130A54-80130ADC .text dProcNod_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcNod_init() {
|
|
if (mCurProc == daPyProc_DEMO_NOD_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_NOD_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(
|
|
ANM_SEYYES,
|
|
m_HIO->mTurn.m.field_0x1C,
|
|
m_HIO->mTurn.m.field_0x20,
|
|
m_HIO->mTurn.m.field_0xC,
|
|
m_HIO->mTurn.m.field_0x24
|
|
);
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10_e);
|
|
return true;
|
|
}
|
|
|
|
/* 80130ADC-80130B38 .text dProcNod__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcNod() {
|
|
setShapeAngleToTalkActor();
|
|
current.angle.y = shape_angle.y;
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130B38-80130BE8 .text dProcPresent_init_sub__9daPy_lk_cFv */
|
|
void daPy_lk_c::dProcPresent_init_sub() {
|
|
setSingleMoveAnime(
|
|
ANM_PRESENTATIONA,
|
|
m_HIO->mTurn.m.field_0x28,
|
|
m_HIO->mTurn.m.field_0x2C,
|
|
m_HIO->mTurn.m.field_0xE,
|
|
m_HIO->mTurn.m.field_0x30
|
|
);
|
|
onModeFlg(ModeFlg_00000400);
|
|
if (!checkBottleItem(dComIfGp_event_getPreItemNo())) {
|
|
dComIfGp_event_setItemPartnerId(fopAcM_createItemForPresentDemo(
|
|
¤t.pos,
|
|
dComIfGp_event_getPreItemNo(),
|
|
daDitem_c::FLAG_UNK01 | daDitem_c::FLAG_UNK02,
|
|
-1,
|
|
fopAcM_GetRoomNo(this),
|
|
&shape_angle,
|
|
&scale
|
|
));
|
|
}
|
|
keepItemData();
|
|
}
|
|
|
|
/* 80130BE8-80130CA0 .text dProcPresent_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPresent_init() {
|
|
if (mCurProc == daPyProc_DEMO_PRESENT_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_PRESENT_e);
|
|
mProcVar0.m3570 = setTalkStartBack();
|
|
if (mProcVar0.m3570 == 0) {
|
|
mVelocity = 0.0f;
|
|
dProcPresent_init_sub();
|
|
}
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10_e);
|
|
seStartSystem(JA_SE_TALK_START);
|
|
m3574 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 80130CA0-80130E88 .text dProcPresent__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPresent() {
|
|
setShapeAngleToTalkActor();
|
|
if (mProcVar0.m3570 != 0) {
|
|
cXyz local_28 = m370C - current.pos;
|
|
if ((0x4000 < cLib_distanceAngleS(cM_atan2s(local_28.x, local_28.z), current.angle.y)) || mAcch.ChkWallHit()) {
|
|
current.pos.x = m370C.x;
|
|
current.pos.z = m370C.z;
|
|
mProcVar0.m3570 = 0;
|
|
dProcPresent_init_sub();
|
|
mVelocity = 0.0f;
|
|
}
|
|
} else {
|
|
current.angle.y = shape_angle.y;
|
|
if (m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
m3574 = 1;
|
|
setSingleMoveAnime(ANM_PRESENTATIONAWAIT, 1.0f, 0.0f, -1, 3.0f);
|
|
onModeFlg(ModeFlg_00000080 | ModeFlg_00000100);
|
|
offModeFlg(ModeFlg_00000400);
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(m_HIO->mTurn.m.field_0xE - 10.0f)) {
|
|
if (checkBottleItem(dComIfGp_event_getPreItemNo())) {
|
|
if (mEquipItem == daPyItem_NONE_e) {
|
|
setBottleModel(dComIfGp_event_getPreItemNo());
|
|
}
|
|
} else {
|
|
daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this);
|
|
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
|
|
item->show();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130E88-80130F2C .text dProcWindChange_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcWindChange_init() {
|
|
daPy_ANM dVar4;
|
|
|
|
int iVar1 = checkShipRideUseItem(0);
|
|
if (mCurProc == daPyProc_DEMO_WIND_CHANGE_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_WIND_CHANGE_e);
|
|
mVelocity = 0.0f;
|
|
if (dKyw_get_tactwind_dir()) {
|
|
dVar4 = ANM_WINDL;
|
|
} else {
|
|
dVar4 = ANM_WINDR;
|
|
}
|
|
setSingleMoveAnime(dVar4, 1.0f, 0.0f, -1, 5.0f);
|
|
initShipRideUseItem(iVar1, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 80130F2C-80130F98 .text dProcWindChange__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcWindChange() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130F98-8013116C .text dProcStandItemPut_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcStandItemPut_init() {
|
|
daPy_py_c* pdVar1;
|
|
fopAc_ac_c* pfVar2;
|
|
f32 dVar5;
|
|
double in_f4;
|
|
csXyz* angle;
|
|
|
|
if (mCurProc == daPyProc_DEMO_STAND_ITEM_PUT_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_STAND_ITEM_PUT_e);
|
|
mVelocity = 0.0f;
|
|
keepItemData();
|
|
mProcVar0.m3570 = 0;
|
|
pdVar1 = (daPy_py_c*)fopAcM_getEventPartner(this);
|
|
if (pdVar1 != NULL) {
|
|
cXyz local_20 = pdVar1->current.pos - current.pos;
|
|
angle = fopAcM_GetShapeAngle_p(this);
|
|
angle->y = fopAcM_searchActorAngleY(this, pdVar1);
|
|
dVar5 = local_20.absXZ();
|
|
if (0.0f < dVar5) {
|
|
in_f4 = 0.5;
|
|
}
|
|
m35C8 = dVar5 - 47.0f;
|
|
angle = fopAcM_GetShapeAngle_p(pdVar1);
|
|
} else {
|
|
m35C8 = 15.0f;
|
|
angle = fopAcM_GetShapeAngle_p(this);
|
|
}
|
|
mProcVar0.m3570 = 1;
|
|
setSingleMoveAnime(ANM_GRABWAIT, m_HIO->mGrab.m.field_0x78, 0.0f, -1, -1.0f);
|
|
pfVar2 = (fopAc_ac_c*)fopAcM_fastCreate(PROC_STANDITEM, dComIfGp_event_getPreItemNo(), ¤t.pos, -1, angle);
|
|
if (pfVar2 != NULL) {
|
|
mActorKeepGrab.setData(pfVar2);
|
|
fopAcM_setCarryNow(pfVar2, FALSE);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013116C-80131274 .text dProcStandItemPut__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcStandItemPut() {
|
|
if (mProcVar0.m3570 == 1) {
|
|
if (m_old_fdata->getOldFrameRate() < 0.01f) {
|
|
setSingleMoveAnime(
|
|
ANM_GRABUP,
|
|
m_HIO->mGrab.m.field_0x68,
|
|
m_HIO->mGrab.m.field_0x6C,
|
|
m_HIO->mGrab.m.field_0xC,
|
|
m_HIO->mGrab.m.field_0x74
|
|
);
|
|
mProcVar0.m3570 = 2;
|
|
voiceStart(7);
|
|
}
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > -0.01f) {
|
|
fopAc_ac_c* grab_actor = mActorKeepGrab.getActor();
|
|
if (grab_actor != NULL) {
|
|
fopAcM_seStartCurrent(grab_actor, JA_SE_LK_W_DAIZA_ATTACH, 0);
|
|
}
|
|
freeGrabItem();
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80131274-80131310 .text dProcVorcanoFail_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcVorcanoFail_init() {
|
|
if (mCurProc == daPyProc_DEMO_VORCANO_FAIL_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_VORCANO_FAIL_e);
|
|
mVelocity = 0.0f;
|
|
speed.y = 18.0f;
|
|
gravity = 0.0f;
|
|
setSingleMoveAnime(ANM_LAVADAM, m_HIO->mRestart.m.field_0x0, 0.0f, -1, m_HIO->mRestart.m.field_0x4);
|
|
m32E4.makeEmitter(dPa_name::ID_SCENE_8078, mpCLModel->getAnmMtx(0), ¤t.pos, NULL);
|
|
return true;
|
|
}
|
|
|
|
/* 80131310-80131348 .text dProcVorcanoFail__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcVorcanoFail() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80131348-80131450 .text dProcSlightSurprised_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSlightSurprised_init() {
|
|
if (mCurProc == daPyProc_DEMO_SLIGHT_SURPRISED_e) {
|
|
return false;
|
|
}
|
|
int iVar3 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_SLIGHT_SURPRISED_e);
|
|
setSingleMoveAnime(ANM_SURPRISEDB, 1.0f, 0.0f, -1, 5.0f);
|
|
mVelocity = 0.0f;
|
|
mProcVar0.m3570 = 0;
|
|
if (mDemo.getParam0() == 1) {
|
|
voiceStart(28);
|
|
} else if (mDemo.getParam0() == 2) {
|
|
voiceStart(45);
|
|
} else if (mDemo.getParam0() == 3) {
|
|
voiceStart(49);
|
|
}
|
|
initShipRideUseItem(iVar3, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 80131450-8013154C .text dProcSlightSurprised__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSlightSurprised() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
if ((mProcVar0.m3570 != 0) || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
if (mProcVar0.m3570 == 0) {
|
|
mProcVar0.m3570 = 1;
|
|
setSingleMoveAnime(ANM_SURPRISEDWAIT, 1.0f, 0.0f, -1, 3.0f);
|
|
if (mpAnmTexPatternData->getFrameMax() == 0) {
|
|
m3530 = 0;
|
|
} else {
|
|
m3530 = mpAnmTexPatternData->getFrameMax() - 1;
|
|
}
|
|
if (mpTexScrollResData->getFrameMax() == 0) {
|
|
m3532 = 0;
|
|
} else {
|
|
m3532 = mpTexScrollResData->getFrameMax() - 1;
|
|
}
|
|
offModeFlg(ModeFlg_00000400);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013154C-801315F8 .text dProcSmile_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSmile_init() {
|
|
if (mCurProc == daPyProc_DEMO_SMILE_e) {
|
|
return false;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_SMILE_e);
|
|
setSingleMoveAnime(ANM_WAITS, 1.0f, 0.0f, -1, 5.0f);
|
|
setTextureAnime(143, 0);
|
|
mVelocity = 0.0f;
|
|
mProcVar0.m3570 = 0;
|
|
initShipRideUseItem(iVar2, 1);
|
|
return true;
|
|
}
|
|
|
|
/* 801315F8-8013168C .text dProcSmile__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSmile() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
m3530++;
|
|
if (m3530 >= mpAnmTexPatternData->getFrameMax()) {
|
|
if (mProcVar0.m3570 == 0) {
|
|
mProcVar0.m3570 = 1;
|
|
} else {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013168C-80131780 .text dProcBossWarp_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcBossWarp_init() {
|
|
if (mCurProc == daPyProc_DEMO_BOSS_WARP_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_BOSS_WARP_e);
|
|
if (mDemo.getParam0() == 0) {
|
|
setSingleMoveAnime(ANM_WARPOUTFIRST, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar0.m3570 = 1;
|
|
deleteEquipItem(FALSE);
|
|
} else {
|
|
setSingleMoveAnime(ANM_WARPIN, 1.0f, 0.0f, -1, -1.0f);
|
|
mProcVar0.m3570 = 0;
|
|
}
|
|
mVelocity = 0.0f;
|
|
if (mDemo.getParam0() == 2) {
|
|
initShipRideUseItem(2, 1);
|
|
m353E = m353C = 0;
|
|
}
|
|
if (mEquipItem == daPyItem_BOKO_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80131780-8013182C .text dProcBossWarp__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcBossWarp() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
m353E = m353C = 0;
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
if (mProcVar0.m3570 == 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else {
|
|
mProcVar0.m3570 = 0;
|
|
setSingleMoveAnime(ANM_WARPOUT, 1.0f, 0.0f, -1, 10.0f);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013182C-80131908 .text dProcAgbUse_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcAgbUse_init() {
|
|
if (mCurProc == daPyProc_DEMO_AGB_USE_e) {
|
|
return true;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
mProcVar0.m3570 = 0;
|
|
commonProcInit(daPyProc_DEMO_AGB_USE_e);
|
|
keepItemData();
|
|
setAnimeEquipItem();
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_USETCEIVER, 1.0f, 0.0f, -1, m_HIO->mBasic.m.field_0xC);
|
|
seStartSystem(JA_SE_TALK_START);
|
|
initShipRideUseItem(iVar2, 2);
|
|
return true;
|
|
}
|
|
|
|
/* 80131908-8013194C .text dProcAgbUse__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcAgbUse() {
|
|
setShipRidePosUseItem();
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 8013194C-801319D0 .text dProcLookTurn_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookTurn_init() {
|
|
daPy_ANM dVar2;
|
|
|
|
if (mCurProc == daPyProc_DEMO_LOOK_TURN_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LOOK_TURN_e);
|
|
mVelocity = 0.0f;
|
|
if (mDemo.getParam0() != 0) {
|
|
dVar2 = ANM_WINDL;
|
|
} else {
|
|
dVar2 = ANM_WINDR;
|
|
}
|
|
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 5.0f);
|
|
mProcVar0.m3570 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 801319D0-80131A7C .text dProcLookTurn__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLookTurn() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
setBlendMoveAnime(5.0f);
|
|
shape_angle.y -= -0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
setOldRootQuaternion(0, -0x8000, 0);
|
|
mProcVar0.m3570 = 1;
|
|
}
|
|
if ((mProcVar0.m3570 != 0) && (m_old_fdata->getOldFrameRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80131A7C-80131B18 .text dProcLetterOpen_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLetterOpen_init() {
|
|
if (mCurProc == daPyProc_DEMO_LETTER_OPEN_e) {
|
|
return true;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_LETTER_OPEN_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_GETLETTER, 1.0f, 0.0f, -1, 3.0f);
|
|
deleteEquipItem(FALSE);
|
|
initShipRideUseItem(iVar2, 2);
|
|
return true;
|
|
}
|
|
|
|
/* 80131B18-80131B98 .text dProcLetterOpen__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLetterOpen() {
|
|
setShipRidePosUseItem();
|
|
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
|
|
if (m_old_fdata->getOldFrameRate() < 0.01f) {
|
|
setLetterModel();
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
setLetterModel();
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80131B98-80131C54 .text dProcLetterRead_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLetterRead_init() {
|
|
f32 dVar3;
|
|
|
|
if (mCurProc == daPyProc_DEMO_LETTER_READ_e) {
|
|
return true;
|
|
}
|
|
dVar3 = m35EC;
|
|
int iVar2 = checkShipRideUseItem(0);
|
|
commonProcInit(daPyProc_DEMO_LETTER_READ_e);
|
|
m35EC = dVar3;
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_WAITLETTER, 1.0f, 0.0f, -1, 5.0f);
|
|
offNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE);
|
|
m34D0 = 0;
|
|
initShipRideUseItem(iVar2, 2);
|
|
return true;
|
|
}
|
|
|
|
/* 80131C54-80131D6C .text dProcLetterRead__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLetterRead() {
|
|
setShipRidePosUseItem();
|
|
if (checkNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE)) {
|
|
offNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE);
|
|
m_tex_scroll_heap.mIdx = LKANM_BTK_TEDL;
|
|
setTextureScrollResource(loadTextureScrollResource(LKANM_BTK_TEDL, 0), 0);
|
|
m34D0 = 4;
|
|
} else {
|
|
if (0 < m34D0) {
|
|
m34D0--;
|
|
if (m34D0 == 0) {
|
|
if (m_tex_scroll_heap.mIdx == LKANM_BTK_TEDL) {
|
|
m34D0 = 4;
|
|
m_tex_scroll_heap.mIdx = LKANM_BTK_TEDR;
|
|
setTextureScrollResource(loadTextureScrollResource(LKANM_BTK_TEDR, 0), 0);
|
|
} else {
|
|
m_tex_scroll_heap.mIdx = LKANM_BTK_TEDW;
|
|
setTextureScrollResource(loadTextureScrollResource(LKANM_BTK_TEDW, 0), 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80131D6C-80131DD4 .text dProcRedeadStop_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcRedeadStop_init() {
|
|
if (mCurProc == daPyProc_DEMO_REDEAD_STOP_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_REDEAD_STOP_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_LINK_FREEZ, 1.0f, 0.0f, -1, 5.0f);
|
|
return true;
|
|
}
|
|
|
|
/* 80131DD4-80131E0C .text dProcRedeadStop__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcRedeadStop() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80131E0C-80131E74 .text dProcRedeadCatch_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcRedeadCatch_init() {
|
|
if (mCurProc == daPyProc_DEMO_REDEAD_CATCH_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_REDEAD_CATCH_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_LINK_MOGAKI, 1.0f, 0.0f, -1, 5.0f);
|
|
return true;
|
|
}
|
|
|
|
/* 80131E74-80131EAC .text dProcRedeadCatch__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcRedeadCatch() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80131EAC-80131FB0 .text dProcGetDance_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcGetDance_init() {
|
|
if (mCurProc == daPyProc_DEMO_GET_DANCE_e) {
|
|
return true;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(0);
|
|
commonProcInit(daPyProc_DEMO_GET_DANCE_e);
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(ANM_TAKTDGE, 1.0f, 0.0f, -1, 3.0f);
|
|
m34D4 = 0;
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
current.angle.y = shape_angle.y;
|
|
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
|
m34D0 = 0;
|
|
mProcVar0.m3570 = mDemo.getParam0() + 0xd2;
|
|
dComIfGs_onTact(mDemo.getParam0());
|
|
initShipRideUseItem(iVar2, 0);
|
|
dKy_Itemgetcol_chg_on();
|
|
setTactModel();
|
|
#if VERSION > VERSION_JPN
|
|
m3574 = 0;
|
|
#endif
|
|
return true;
|
|
}
|
|
|
|
/* 80131FB0-80132224 .text dProcGetDance__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcGetDance() {
|
|
J3DTransformInfo* pJVar3;
|
|
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
if (m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f && mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 17.0f) {
|
|
if (m34D0 == 0) {
|
|
m34D0 = 1;
|
|
mDoAud_subBgmStart(JA_BGM_GET_SONG);
|
|
dComIfGp_setMesgBgmOn();
|
|
}
|
|
if (m34D6 > 0x4000) {
|
|
shape_angle.y =
|
|
current.angle.y + ((0x10000 - m34D6) * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
} else {
|
|
shape_angle.y = current.angle.y - (m34D6 * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
}
|
|
} else {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > 17.0f) {
|
|
shape_angle.y = current.angle.y - m34D6;
|
|
}
|
|
}
|
|
fopAcM_getItemEventPartner(this);
|
|
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) && (checkEndMessage(mProcVar0.m3570))) {
|
|
shape_angle.y += 0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
m34DE = shape_angle.y;
|
|
setOldRootQuaternion(0, -0x8000, 0);
|
|
pJVar3 = m_old_fdata->getOldFrameTransInfo(0);
|
|
pJVar3->mTranslate.x *= -1.0f;
|
|
pJVar3->mTranslate.z *= -1.0f;
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
m3574 = 1;
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80132224-801322D0 .text dProcBottleOpenFairy_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcBottleOpenFairy_init() {
|
|
if (mCurProc == daPyProc_DEMO_BOTTLE_OPEN_FAIRY_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_BOTTLE_OPEN_FAIRY_e);
|
|
current.angle.y = shape_angle.y;
|
|
mVelocity = 0.0f;
|
|
setSingleMoveAnime(
|
|
ANM_BINOPENPRE,
|
|
1.0f,
|
|
m_HIO->mItem.mBottle.m.field_0x3C,
|
|
m_HIO->mItem.mBottle.m.field_0x6,
|
|
m_HIO->mItem.mBottle.m.field_0x40
|
|
);
|
|
keepItemData();
|
|
setBottleModel(dItem_FAIRY_BOTTLE_e);
|
|
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK4000_e);
|
|
mProcVar0.m3570 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 801322D0-80132438 .text dProcBottleOpenFairy__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcBottleOpenFairy() {
|
|
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
|
|
|
if (m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_BINOPENPRE) {
|
|
if (frameCtrl.getRate() < 0.01f) {
|
|
setSingleMoveAnime(
|
|
ANM_BINOPENB,
|
|
1.0f,
|
|
m_HIO->mItem.mBottle.m.field_0x50,
|
|
m_HIO->mItem.mBottle.m.field_0xA,
|
|
m_HIO->mItem.mBottle.m.field_0x54
|
|
);
|
|
} else if (frameCtrl.checkPass(32.0f)) {
|
|
m355E = 0;
|
|
mRightHandIdx = 8;
|
|
}
|
|
} else if (frameCtrl.getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else {
|
|
if (mpBottleContentsModel != NULL) {
|
|
if (frameCtrl.getFrame() >= m_HIO->mItem.mBottle.m.field_0x58) {
|
|
mpBottleContentsModel = NULL;
|
|
if (dComIfGp_event_getTalkXYBtn() == dTalkBtn_X_e) {
|
|
dComIfGs_setEquipBottleItemEmpty(dItemBtn_X_e);
|
|
} else if (dComIfGp_event_getTalkXYBtn() == dTalkBtn_Y_e) {
|
|
dComIfGs_setEquipBottleItemEmpty(dItemBtn_Y_e);
|
|
} else {
|
|
dComIfGs_setEquipBottleItemEmpty(dItemBtn_Z_e);
|
|
}
|
|
fopAcM_fastCreate(PROC_NPC_FA1, daNpc_Fa1_c::Type_BABA_e, &mLeftHandPos, fopAcM_GetRoomNo(this), &shape_angle);
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80132438-801324D0 .text dProcWarpShort_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcWarpShort_init() {
|
|
if (mCurProc == daPyProc_DEMO_WARP_SHORT_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_WARP_SHORT_e);
|
|
setSingleMoveAnime(ANM_RISE, 1.0f, 0.0f, -1, 40.0f);
|
|
gravity = mVelocity = 0.0f;
|
|
speed.y = m_HIO->mWarp.m.field_0x10;
|
|
if (mEquipItem == daPyItem_BOKO_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 801324D0-80132534 .text dProcWarpShort__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcWarpShort() {
|
|
speed.y += m_HIO->mWarp.m.field_0x14;
|
|
if (speed.y > m_HIO->mWarp.m.field_0x18) {
|
|
speed.y = m_HIO->mWarp.m.field_0x18;
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80132534-801325F0 .text dProcOpenSalvageTreasure_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcOpenSalvageTreasure_init() {
|
|
if (mCurProc == daPyProc_DEMO_OPEN_SALVAGE_TREASURE_e) {
|
|
return true;
|
|
}
|
|
int iVar1 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_OPEN_SALVAGE_TREASURE_e);
|
|
setSingleMoveAnime(ANM_BOXOPENSLINK, 1.0f, 0.0f, -1, -1.0f);
|
|
deleteEquipItem(FALSE);
|
|
initShipRideUseItem(iVar1, 1);
|
|
if (dComIfGp_getShipActor() != NULL) {
|
|
shape_angle.y = dComIfGp_getShipActor()->shape_angle.y;
|
|
current.angle.y = shape_angle.y;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 801325F0-8013265C .text dProcOpenSalvageTreasure__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcOpenSalvageTreasure() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013265C-80132728 .text dProcSurprisedWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSurprisedWait_init() {
|
|
if (mCurProc == daPyProc_DEMO_SURPRISED_WAIT_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_SURPRISED_WAIT_e);
|
|
int iVar3 = checkShipRideUseItem(0);
|
|
setSingleMoveAnime(ANM_SURPRISEDWAIT, 1.0f, 0.0f, -1, 3.0f);
|
|
if (mpAnmTexPatternData->getFrameMax() >= 1) {
|
|
m3530 = mpAnmTexPatternData->getFrameMax() - 1;
|
|
}
|
|
if (mpTexScrollResData->getFrameMax() >= 1) {
|
|
m3532 = mpTexScrollResData->getFrameMax() - 1;
|
|
}
|
|
mVelocity = 0.0f;
|
|
initShipRideUseItem(iVar3, 0);
|
|
return true;
|
|
}
|
|
|
|
/* 80132728-80132784 .text dProcSurprisedWait__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcSurprisedWait() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(0);
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80132784-80132844 .text dProcPowerUpWait_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPowerUpWait_init() {
|
|
if (mCurProc == daPyProc_DEMO_POWER_UP_WAIT_e) {
|
|
return true;
|
|
}
|
|
int iVar1 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_POWER_UP_WAIT_e);
|
|
setSingleMoveAnime(ANM_POWUPWAIT, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
initShipRideUseItem(iVar1, 2);
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
shape_angle.y -= -0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80132844-8013294C .text dProcPowerUp_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPowerUp_init() {
|
|
if (mCurProc == daPyProc_DEMO_POWER_UP_e) {
|
|
return true;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_POWER_UP_e);
|
|
setSingleMoveAnime(ANM_POWUP, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
m3624 = 0;
|
|
m34D0 = 0;
|
|
if (mDemo.getParam0() != 0) {
|
|
if (mDemo.getParam0() != 0x100) {
|
|
mProcVar0.m3570 = mDemo.getParam0();
|
|
} else {
|
|
mProcVar0.m3570 = dComIfGp_event_getGtItm();
|
|
}
|
|
}
|
|
m3574 = 0;
|
|
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
|
initShipRideUseItem(iVar2, 2);
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
shape_angle.y -= -0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013294C-80132A88 .text dProcPowerUp__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPowerUp() {
|
|
setShipRidePosUseItem();
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
shape_angle.y -= -0x8000;
|
|
current.angle.y = shape_angle.y;
|
|
}
|
|
if (m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f && m34D0 == 0) {
|
|
m34D0 = 1;
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
if (m3624 == 0) {
|
|
m3624 = MSG_NO_FOR_ITEM(mProcVar0.m3570);
|
|
}
|
|
if (checkEndMessage(m3624)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
m3574 = 1;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80132A88-80132B68 .text dProcShipSit_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcShipSit_init() {
|
|
if (mCurProc == daPyProc_DEMO_SHIP_SIT_e) {
|
|
return true;
|
|
}
|
|
int iVar1 = checkShipRideUseItem(1);
|
|
if (iVar1 == 0) {
|
|
if (!dComIfGp_getShipActor()) {
|
|
return checkNextMode(0);
|
|
}
|
|
iVar1 = 1;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_SHIP_SIT_e);
|
|
setSingleMoveAnime(ANM_KOSHIKAKE, 1.0f, 0.0f, -1, -1.0f);
|
|
mVelocity = 0.0f;
|
|
initShipRideUseItem(iVar1, 1);
|
|
daShip_c* ship = dComIfGp_getShipActor();
|
|
ship->onLinkSit();
|
|
ship->setPaddleMove();
|
|
return true;
|
|
}
|
|
|
|
/* 80132B68-80132BC4 .text dProcShipSit__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcShipSit() {
|
|
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
|
setShipRidePos(1);
|
|
}
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80132BC4-80132D00 .text dProcLastCombo_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLastCombo_init() {
|
|
J3DAnmTransform* bck;
|
|
|
|
if (mCurProc == daPyProc_DEMO_LAST_COMBO_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LAST_COMBO_e);
|
|
setSingleMoveAnime(ANM_COMBO_LINK, 1.0f, 0.0f, -1, -1.0f);
|
|
mVelocity = 0.0f;
|
|
if (mEquipItem != daPyItem_SWORD_e) {
|
|
deleteEquipItem(FALSE);
|
|
#if VERSION == VERSION_DEMO
|
|
setSwordModel();
|
|
#else
|
|
setSwordModel(FALSE);
|
|
#endif
|
|
}
|
|
bck = getItemAnimeResource(LKANM_BCK_COMBO_KEN);
|
|
mSwordAnim.changeBckOnly(bck);
|
|
m35E8 = m35EC = 0.0f;
|
|
bck = (J3DAnmTransform*)(dComIfG_getObjectRes(l_arcName, LINK_BCK_COMBO_TATE));
|
|
mAtngshaBck.init(mpShmsModel->getModelData(), bck, false, J3DFrameCtrl::EMode_NONE, 0.0f, 0, -1, true);
|
|
m34BE = 4;
|
|
offNoResetFlg1(daPyFlg1_LAST_COMBO_WAIT);
|
|
setBlurPosResource(LKANM__LASTCOMBO_POS);
|
|
mProcVar0.m3570 = 1;
|
|
m3574 = 0;
|
|
seStartOnlyReverb(JA_SE_LK_V_TURN_INTO_GN);
|
|
return true;
|
|
}
|
|
|
|
/* 80132D00-80132DDC .text dProcLastCombo__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLastCombo() {
|
|
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
|
|
|
m35EC = frameCtrl.getFrame();
|
|
m35E8 = frameCtrl.getFrame();
|
|
if (frameCtrl.getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else {
|
|
if (frameCtrl.checkPass(27.0f)) {
|
|
resetFootEffect();
|
|
seStartOnlyReverb(JA_SE_LK_V_GN_LAST_ATTACK);
|
|
}
|
|
}
|
|
if (frameCtrl.getFrame() >= 26.0f) {
|
|
if (frameCtrl.getFrame() < 35.0f) {
|
|
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
|
onResetFlg0(daPyRFlg0_UNK1);
|
|
}
|
|
onResetFlg0(daPyRFlg0_UNK2);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80132DDC-80132E48 .text dProcHandUp_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcHandUp_init() {
|
|
if (mCurProc == daPyProc_DEMO_HAND_UP_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_HAND_UP_e);
|
|
setSingleMoveAnime(ANM_WAITAUCTION, 1.0f, 0.0f, -1, 10.0f);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 80132E48-80132E80 .text dProcHandUp__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcHandUp() {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
|
|
/* 80132E80-80132EEC .text dProcIceSlip_init__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcIceSlip_init() {
|
|
if (mCurProc == daPyProc_DEMO_ICE_SLIP_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_ICE_SLIP_e);
|
|
setSingleMoveAnime(ANM_SLIPICE, 1.0f, 0.0f, -1, 3.0f);
|
|
mVelocity = 0.0f;
|
|
return true;
|
|
}
|
|
|
|
/* 80132EEC-80132F34 .text dProcIceSlip__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcIceSlip() {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
}
|
|
return true;
|
|
}
|