mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-17 21:03:35 -04:00
e389a9b814
* Some d_message demo matches * More demo matches * fix jpn
2481 lines
83 KiB
C++
2481 lines
83 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 "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, dRes_INDEX_LINK_BDL_TCEIVER_e, 0x13000022);
|
|
mDoExt_setCurrentHeap(oldHeap);
|
|
}
|
|
|
|
/* 8012CE2C-8012CEFC .text setTalismanModel__9daPy_lk_cFv */
|
|
void daPy_lk_c::setTalismanModel() {
|
|
J3DAnmTransform* bck = getItemAnimeResource(dRes_INDEX_LKANM_BCK_TETOLACH_e);
|
|
JKRHeap* oldHeap = setItemHeap();
|
|
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, dRes_INDEX_LINK_BDL_TETOLACH_e, 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(dRes_INDEX_LKANM_BCK_GETLETTERA_e);
|
|
JKRHeap* oldHeap = setItemHeap();
|
|
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, dRes_INDEX_LINK_BDL_LETTER_e, 0x13000022);
|
|
int ret = mSwordAnim.init(tmp_modelData, bck, false, J3DFrameCtrl::EMode_LOOP);
|
|
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 && mProcVar6.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 == fpcNm_AGB_e) {
|
|
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);
|
|
mNormalSpeed = 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 = mNormalSpeed = 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);
|
|
mProcVar6.m3570 = 0;
|
|
mProcVar7.m3574 = 0;
|
|
mProcVar2.m34D4 = 0;
|
|
#if VERSION > VERSION_DEMO
|
|
mProcVar3.m34D6 = 0;
|
|
#endif
|
|
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];
|
|
mProcVar7.m3574 = 0;
|
|
#if VERSION > VERSION_DEMO
|
|
mProcVar3.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 morf = -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);
|
|
morf = spB0.back();
|
|
} else {
|
|
mLeftHandIdx = spB0.front();
|
|
mRightHandIdx = spB0.back();
|
|
}
|
|
|
|
if (demo_actor->getPrm()->getId() == 2) {
|
|
mProcVar7.m3574 = 1;
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
else if (demo_actor->getPrm()->getId() == 4) {
|
|
mProcVar3.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);
|
|
morf = sp88.back();
|
|
} else {
|
|
mLeftHandIdx = sp88.front();
|
|
mRightHandIdx = sp88.back();
|
|
}
|
|
|
|
if (demo_actor->getPrm()->getId() == 3) {
|
|
mProcVar7.m3574 = 1;
|
|
}
|
|
#if VERSION > VERSION_DEMO
|
|
else if (demo_actor->getPrm()->getId() == 5) {
|
|
mProcVar3.m34D6 = 1;
|
|
}
|
|
#endif
|
|
}
|
|
|
|
u8 itemNo = dItemNo_NONE_e;
|
|
if (mLeftHandIdx == 0xC8) {
|
|
itemNo = dItemNo_SWORD_e;
|
|
} else if (mLeftHandIdx == 0xC9) {
|
|
itemNo = dItemNo_MASTER_SWORD_1_e;
|
|
} else if (mLeftHandIdx == 0xCA) {
|
|
itemNo = dItemNo_MASTER_SWORD_2_e;
|
|
} else if (mLeftHandIdx == 0xCB) {
|
|
itemNo = dItemNo_MASTER_SWORD_3_e;
|
|
}
|
|
if (itemNo != dItemNo_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 != dItemNo_WIND_WAKER_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
mLeftHandIdx = 5;
|
|
setTactModel();
|
|
} else if (mEquipItem != daPyItem_NONE_e) {
|
|
deleteEquipItem(FALSE);
|
|
}
|
|
}
|
|
|
|
if (mRightHandIdx == 0xC8 || mRightHandIdx == 0xC9) {
|
|
mProcVar2.m34D4 = 1;
|
|
if (mRightHandIdx == 0xC8) {
|
|
dComIfGs_setSelectEquip(1, dItemNo_SHIELD_e);
|
|
} else {
|
|
dComIfGs_setSelectEquip(1, dItemNo_MIRROR_SHIELD_e);
|
|
}
|
|
mRightHandIdx = 0x08;
|
|
} else {
|
|
mProcVar2.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 (morf >= 0.0f) {
|
|
m_old_fdata->initOldFrameMorf(morf, 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;
|
|
}
|
|
mProcVar6.m3570 = 0;
|
|
int iVar2 = checkShipRideUseItem(1);
|
|
commonProcInit(daPyProc_DEMO_TALK_e);
|
|
if (iVar2 == 0) {
|
|
if ((mDemo.getDemoMode() != 8) && mEquipItem != daPyItem_NONE_e) {
|
|
setAnimeUnequip();
|
|
}
|
|
mProcVar6.m3570 = setTalkStartBack();
|
|
}
|
|
if (mProcVar6.m3570 == 0) {
|
|
mNormalSpeed = 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);
|
|
}
|
|
mProcVar7.m3574 = mDemo.getParam1();
|
|
if (mProcVar7.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 (mProcVar6.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;
|
|
mProcVar6.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 (mProcVar7.m3574 == 1) {
|
|
setTextureAnime(145, 0);
|
|
offModeFlg(ModeFlg_00000080);
|
|
}
|
|
mNormalSpeed = 0.0f;
|
|
}
|
|
} else {
|
|
current.angle.y = shape_angle.y;
|
|
if (mProcVar7.m3574 != mDemo.getParam1()) {
|
|
mProcVar7.m3574 = mDemo.getParam1();
|
|
if (mProcVar7.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
|
|
);
|
|
mNormalSpeed = 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() {
|
|
mNormalSpeed = -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) != 0;
|
|
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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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;
|
|
}
|
|
|
|
#if VERSION > VERSION_DEMO
|
|
/* 8012E28C-8012E418 .text setGetItemSound__9daPy_lk_cFUsi */
|
|
void daPy_lk_c::setGetItemSound(u16 param_1, BOOL param_2) {
|
|
if (param_1 == dItemNo_GREEN_RUPEE_e || param_1 == dItemNo_BLUE_RUPEE_e || param_1 == dItemNo_YELLOW_RUPEE_e ||
|
|
param_1 == dItemNo_RED_RUPEE_e || param_1 == dItemNo_PURPLE_RUPEE_e || param_1 == dItemNo_TINGLE_RUPEE_1_e)
|
|
{
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else if (param_1 == dItemNo_HEART_CONTAINER_e ||
|
|
(param_1 == dItemNo_HEART_PIECE_e && ((dComIfGs_getMaxLife() % 4) == 3)))
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_GET_HEART);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (param_1 == dItemNo_HEART_PIECE_e || param_1 == dItemNo_JOY_PENDANT_e || param_1 == dItemNo_SMALL_KEY_e ||
|
|
param_1 == dItemNo_SILVER_RUPEE_e || param_1 == dItemNo_ORANGE_RUPEE_e)
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (param_2) {
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else {
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET);
|
|
dComIfGp_setMesgBgmOn();
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#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) == fpcNm_ITEM_e || fopAcM_GetName(itemPartner) == fpcNm_Demo_Item_e))
|
|
{
|
|
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 == dItemNo_HEART_PIECE_e && (dComIfGs_getMaxLife() % 4) != 0) {
|
|
itemGetMsgNo = MSG_NO_FOR_ITEM(dItemNo_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 = FALSE;
|
|
BOOL sVar5 = FALSE;
|
|
|
|
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 != dRes_INDEX_LKANM_BCK_BOXOPENLINK_e) {
|
|
sVar5 = TRUE;
|
|
}
|
|
} else if (mCurProc == daPyProc_DEMO_OPEN_SALVAGE_TREASURE_e) {
|
|
m34C2 = 6;
|
|
sVar6 = TRUE;
|
|
}
|
|
int iVar2 = checkShipRideUseItem(0);
|
|
commonProcInit(daPyProc_DEMO_GET_ITEM_e);
|
|
mNormalSpeed = 0.0f;
|
|
if (mEquipItem == daPyItem_NONE_e) {
|
|
setSingleMoveAnime(ANM_ITEMGET, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar6.m3570 = 0;
|
|
onModeFlg(ModeFlg_00000400);
|
|
} else {
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
setAnimeUnequip();
|
|
m3598 = 0.0f;
|
|
mProcVar6.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);
|
|
}
|
|
mProcVar2.m34D4 = item_no;
|
|
} else {
|
|
mProcVar2.m34D4 = -1;
|
|
}
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
mProcVar3.m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
current.angle.y = shape_angle.y;
|
|
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
|
mProcVar0.m34D0 = 0;
|
|
mProcVar4.m34D8 = sVar6;
|
|
initShipRideUseItem(iVar2, 0);
|
|
mProcVar7.m3574 = 0;
|
|
m3624 = 0;
|
|
mProcVar5.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 (mProcVar7.m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < 10.0f) {
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
mProcVar3.m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
}
|
|
daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this);
|
|
if (mProcVar2.m34D4 == -1 && item != NULL) {
|
|
mProcVar2.m34D4 = item->getItemNo() & 0xff;
|
|
}
|
|
if (mProcVar6.m3570 == 0 && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f)) {
|
|
if (mProcVar0.m34D0 == 0 && mProcVar2.m34D4 != -1) {
|
|
mProcVar0.m34D0 = 1;
|
|
#if VERSION == VERSION_DEMO
|
|
if (mProcVar2.m34D4 == dItemNo_GREEN_RUPEE_e || mProcVar2.m34D4 == dItemNo_BLUE_RUPEE_e || mProcVar2.m34D4 == dItemNo_YELLOW_RUPEE_e ||
|
|
mProcVar2.m34D4 == dItemNo_RED_RUPEE_e || mProcVar2.m34D4 == dItemNo_PURPLE_RUPEE_e || mProcVar2.m34D4 == dItemNo_TINGLE_RUPEE_1_e)
|
|
{
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else if (mProcVar2.m34D4 == dItemNo_HEART_CONTAINER_e ||
|
|
(mProcVar2.m34D4 == dItemNo_HEART_PIECE_e && ((dComIfGs_getMaxLife() % 4) == 3)))
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_GET_HEART);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (mProcVar2.m34D4 == dItemNo_HEART_PIECE_e || mProcVar2.m34D4 == dItemNo_JOY_PENDANT_e || mProcVar2.m34D4 == dItemNo_SMALL_KEY_e ||
|
|
mProcVar2.m34D4 == dItemNo_SILVER_RUPEE_e || mProcVar2.m34D4 == dItemNo_ORANGE_RUPEE_e)
|
|
{
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn();
|
|
} else if (mProcVar5.m34DA != dItemNo_HEART_e) {
|
|
seStartSystem(JA_SE_ME_ITEM_GET_S);
|
|
dComIfGp_setMesgBgmOn2();
|
|
} else {
|
|
mDoAud_subBgmStart(JA_BGM_ITEM_GET);
|
|
dComIfGp_setMesgBgmOn();
|
|
}
|
|
#else
|
|
setGetItemSound(mProcVar2.m34D4, mProcVar5.m34DA);
|
|
#endif
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 17.0f) {
|
|
if (mProcVar3.m34D6 > 0x4000) {
|
|
shape_angle.y =
|
|
current.angle.y + ((0x10000 - mProcVar3.m34D6) * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
} else {
|
|
shape_angle.y = current.angle.y - (mProcVar3.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 - mProcVar3.m34D6;
|
|
}
|
|
}
|
|
}
|
|
if (mProcVar6.m3570 != 0) {
|
|
if (checkNoUpperAnime()) {
|
|
setSingleMoveAnime(ANM_ITEMGET, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar6.m3570 = 0;
|
|
onModeFlg(ModeFlg_00000400);
|
|
}
|
|
if (item != NULL && (fopAcM_GetName(item) == fpcNm_ITEM_e || (fopAcM_GetName(item) == fpcNm_Demo_Item_e))) {
|
|
item->hide();
|
|
}
|
|
} else {
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
if (item != NULL && (fopAcM_GetName(item) == fpcNm_ITEM_e || fopAcM_GetName(item) == fpcNm_Demo_Item_e)) {
|
|
item->show();
|
|
if (m3624 == 0 && mProcVar2.m34D4 != -1) {
|
|
if (mProcVar2.m34D4 == 7 && (dComIfGs_getMaxLife() % 4)) {
|
|
m3624 = (dComIfGs_getMaxLife() % 4) + 0x7b;
|
|
} else {
|
|
m3624 = MSG_NO_FOR_ITEM(mProcVar2.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();
|
|
mProcVar7.m3574 = 1;
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
}
|
|
}
|
|
} else if (item != NULL && (fopAcM_GetName(item) == fpcNm_ITEM_e || (fopAcM_GetName(item) == fpcNm_Demo_Item_e))) {
|
|
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);
|
|
mNormalSpeed = 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;
|
|
mProcVar6.m3570 = 0;
|
|
voiceStart(4);
|
|
seStartMapInfo(JA_SE_LK_FALL_MAGMA);
|
|
gravity = m_HIO->mAutoJump.m.field_0xC;
|
|
mDemo.setSpecialDemoType();
|
|
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);
|
|
mNormalSpeed = 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_AK_SN_HIDARUMAFIRE, mpCLModel->getAnmMtx(CL_JNT_LINK_ROOT_e), ¤t.pos, NULL);
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcLavaDamage_init_sub();
|
|
} else {
|
|
speed.y = 0.0f;
|
|
gravity = 0.0f;
|
|
mProcVar6.m3570 = 1;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012EEE4-8012EF78 .text dProcLavaDamage__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcLavaDamage() {
|
|
if (mProcVar6.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[] = {
|
|
CL_JNT_LARMB_JNT_e,
|
|
CL_JNT_RARMB_JNT_e,
|
|
CL_JNT_HATA_JNT_e,
|
|
CL_JNT_NECK_JNT_e,
|
|
CL_JNT_WAIST_JNT_e,
|
|
};
|
|
|
|
if (param_0 != 0) {
|
|
mProcVar6.m3570 = 1;
|
|
mDemo.setSpecialDemoType();
|
|
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_IT_SN_LK_FREEZSMOKE00, &local_28);
|
|
if (i >= 3) {
|
|
dComIfGp_particle_setP1(dPa_name::ID_IT_SN_LK_FREEZKIRA00, &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);
|
|
mNormalSpeed = 0.0f;
|
|
mProcVar0.m34D0 = 60;
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcFreezeDamage_init_sub(1);
|
|
} else {
|
|
mProcVar6.m3570 = 0;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8012F174-8012F210 .text dProcFreezeDamage__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcFreezeDamage() {
|
|
if (mProcVar6.m3570 == 0) {
|
|
if (dComIfGp_event_compulsory(this)) {
|
|
dProcFreezeDamage_init_sub(1);
|
|
}
|
|
} else {
|
|
mProcVar0.m34D0--;
|
|
if (mProcVar0.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() {
|
|
mProcVar6.m3570 = 0;
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK20000000_e);
|
|
m3628 = fopMsgM_create(fpcNm_GAMEOVER_e);
|
|
mDemo.setSpecialDemoType();
|
|
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_IT_JN_WP_HAMON03,
|
|
¤t.pos,
|
|
NULL,
|
|
(cXyz*)&ripple_scale,
|
|
0xff,
|
|
&dPa_control_c::mSingleRippleEcallBack,
|
|
-1
|
|
);
|
|
mProcVar3.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;
|
|
mProcVar6.m3570 = 1;
|
|
}
|
|
mNormalSpeed = 0.0f;
|
|
mProcVar2.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;
|
|
mProcVar2.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 (mProcVar2.m34D4 == 0) {
|
|
speed.y = 0.0f;
|
|
}
|
|
gravity = 0.0f;
|
|
mProcVar7.m3574 = 0;
|
|
initShipRideUseItem(iVar4, 1);
|
|
mProcVar3.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 (mProcVar6.m3570 != 0 && dComIfGp_event_compulsory(this)) {
|
|
dProcDead_init_sub();
|
|
if (mProcVar2.m34D4 == 0) {
|
|
dProcDead_init_sub2();
|
|
}
|
|
}
|
|
if (mProcVar2.m34D4 != 0 && changeSwimUpProc()) {
|
|
mProcVar2.m34D4 = 0;
|
|
if (mProcVar6.m3570 == 0) {
|
|
dProcDead_init_sub2();
|
|
}
|
|
}
|
|
if (mProcVar6.m3570 == 0 && mProcVar2.m34D4 == 0) {
|
|
if (checkModeFlg(ModeFlg_02000000)) {
|
|
m35E4 = 0.1f * (frameCtrl.getFrame() - 120.0f);
|
|
}
|
|
if (frameCtrl.getRate() < 0.01f) {
|
|
cLib_chaseF(&m35A0, 0.0f, 0.01f);
|
|
f32 dVar3 = 1.0f - m35A0;
|
|
if (m3628 != fpcM_ERROR_PROCESS_ID_e) {
|
|
dGameover_c* gameover = (dGameover_c*)fopMsgM_SearchByID(m3628);
|
|
if (gameover) {
|
|
gameover->setBackAlpha(dVar3);
|
|
}
|
|
}
|
|
if (m35A0 < 0.38f && m3628 != fpcM_ERROR_PROCESS_ID_e) {
|
|
dGameover_c* gameover = (dGameover_c*)fopMsgM_SearchByID(m3628);
|
|
if (gameover) {
|
|
gameover->animeStart();
|
|
}
|
|
}
|
|
if (mProcVar7.m3574 == 0) {
|
|
int iVar1;
|
|
if (m3628 != fpcM_ERROR_PROCESS_ID_e) {
|
|
dGameover_c* gameover = (dGameover_c*)fopMsgM_SearchByID(m3628);
|
|
if (gameover != NULL) {
|
|
iVar1 = gameover->deleteCheck();
|
|
} else {
|
|
iVar1 = 0;
|
|
}
|
|
} else {
|
|
iVar1 = 0;
|
|
}
|
|
if (iVar1 != 0) {
|
|
mProcVar7.m3574 = 1;
|
|
}
|
|
}
|
|
if (mProcVar7.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);
|
|
setFootEffectPosType(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_AK_JN_DROWNINGSPLASH00, ¤t.pos, &acStack_30, NULL, 0xff, NULL, -1, &amb
|
|
);
|
|
} else {
|
|
if (frameCtrl.checkPass(50.0f)) {
|
|
mProcVar3.m34D6 = 0;
|
|
} else {
|
|
if (frameCtrl.checkPass(110.0f)) {
|
|
mProcVar3.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
|
|
);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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
|
|
);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 0.0f;
|
|
setTalismanModel();
|
|
m32E4.makeEmitter(dPa_name::ID_IT_JN_OMAMORI_TSUBU00, mpEquipItemModel->getBaseTRMtx(), ¤t.pos, NULL);
|
|
mpEquipItemModel->setBaseTRMtx(mpCLModel->getAnmMtx(CL_JNT_CL_RHANDA_e));
|
|
mDoMtx_stack_c::copy(mpCLModel->getAnmMtx(CL_JNT_CL_RHANDA_e));
|
|
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_IT_JN_OMAMORI_FLASH00, &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(CL_JNT_CL_RHANDA_e));
|
|
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);
|
|
mNormalSpeed = 0.0f;
|
|
mProcVar6.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 (mProcVar6.m3570 != 0 || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
if (mProcVar6.m3570 == 0) {
|
|
uVar1 = m3530;
|
|
uVar2 = m3532;
|
|
mProcVar6.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);
|
|
mNormalSpeed = 0.0f;
|
|
if (mActorKeepGrab.getActor() != NULL) {
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
m_pbCalc[PART_UPPER_e]->setRatio(2, 1.0f);
|
|
mProcVar6.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
|
|
);
|
|
mProcVar6.m3570 = 0;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 80130278-801302CC .text dProcTurnBack__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcTurnBack() {
|
|
if (mProcVar6.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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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;
|
|
mProcVar6.m3570 = 1;
|
|
} else {
|
|
dVar2 = ANM_FM_BATA;
|
|
mProcVar6.m3570 = 0;
|
|
}
|
|
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 3.0f);
|
|
speed.y = gravity = mNormalSpeed = 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);
|
|
mNormalSpeed = 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
|
|
);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 0.0f;
|
|
mAcch.SetWallNone();
|
|
mAcch.OnLineCheckNone();
|
|
m3700 = cXyz::Zero;
|
|
m34C2 = 3;
|
|
mProcVar6.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);
|
|
mProcVar6.m3570 = 1;
|
|
m3598 = 0.0f;
|
|
} else {
|
|
if (mProcVar6.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);
|
|
mNormalSpeed = 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);
|
|
mProcVar6.m3570 = setTalkStartBack();
|
|
if (mProcVar6.m3570 == 0) {
|
|
mNormalSpeed = 0.0f;
|
|
dProcPresent_init_sub();
|
|
}
|
|
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10_e);
|
|
seStartSystem(JA_SE_TALK_START);
|
|
mProcVar7.m3574 = 0;
|
|
return true;
|
|
}
|
|
|
|
/* 80130CA0-80130E88 .text dProcPresent__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcPresent() {
|
|
setShapeAngleToTalkActor();
|
|
if (mProcVar6.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;
|
|
mProcVar6.m3570 = 0;
|
|
dProcPresent_init_sub();
|
|
mNormalSpeed = 0.0f;
|
|
}
|
|
} else {
|
|
current.angle.y = shape_angle.y;
|
|
if (mProcVar7.m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
mProcVar7.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) == fpcNm_ITEM_e || fopAcM_GetName(item) == fpcNm_Demo_Item_e)) {
|
|
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);
|
|
mNormalSpeed = 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() {
|
|
if (mCurProc == daPyProc_DEMO_STAND_ITEM_PUT_e) {
|
|
return true;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_STAND_ITEM_PUT_e);
|
|
mNormalSpeed = 0.0f;
|
|
keepItemData();
|
|
mProcVar6.m3570 = 0;
|
|
fopAc_ac_c* event_partner = fopAcM_getEventPartner(this);
|
|
csXyz* angle;
|
|
if (event_partner != NULL) {
|
|
cXyz local_20 = event_partner->current.pos - current.pos;
|
|
angle = fopAcM_GetShapeAngle_p(this);
|
|
angle->y = fopAcM_searchActorAngleY(this, event_partner);
|
|
m35C8 = local_20.absXZ() - 47.0f;
|
|
angle = fopAcM_GetShapeAngle_p(event_partner);
|
|
} else {
|
|
m35C8 = 15.0f;
|
|
angle = fopAcM_GetShapeAngle_p(this);
|
|
}
|
|
mProcVar6.m3570 = 1;
|
|
setSingleMoveAnime(ANM_GRABWAIT, m_HIO->mGrab.m.field_0x78, 0.0f, -1, -1.0f);
|
|
fopAc_ac_c* stand_item = (fopAc_ac_c*)fopAcM_fastCreate(fpcNm_STANDITEM_e, dComIfGp_event_getPreItemNo(), ¤t.pos, -1, angle);
|
|
if (stand_item != NULL) {
|
|
mActorKeepGrab.setData(stand_item);
|
|
fopAcM_setCarryNow(stand_item, FALSE);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 8013116C-80131274 .text dProcStandItemPut__9daPy_lk_cFv */
|
|
BOOL daPy_lk_c::dProcStandItemPut() {
|
|
if (mProcVar6.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
|
|
);
|
|
mProcVar6.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);
|
|
mNormalSpeed = 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_AK_SN_HIDARUMAFIRE, mpCLModel->getAnmMtx(CL_JNT_LINK_ROOT_e), ¤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);
|
|
mNormalSpeed = 0.0f;
|
|
mProcVar6.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 (mProcVar6.m3570 != 0 || (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
if (mProcVar6.m3570 == 0) {
|
|
mProcVar6.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);
|
|
mNormalSpeed = 0.0f;
|
|
mProcVar6.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 (mProcVar6.m3570 == 0) {
|
|
mProcVar6.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);
|
|
mProcVar6.m3570 = 1;
|
|
deleteEquipItem(FALSE);
|
|
} else {
|
|
setSingleMoveAnime(ANM_WARPIN, 1.0f, 0.0f, -1, -1.0f);
|
|
mProcVar6.m3570 = 0;
|
|
}
|
|
mNormalSpeed = 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 (mProcVar6.m3570 == 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
} else {
|
|
mProcVar6.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);
|
|
mProcVar6.m3570 = 0;
|
|
commonProcInit(daPyProc_DEMO_AGB_USE_e);
|
|
keepItemData();
|
|
setAnimeEquipItem();
|
|
mNormalSpeed = 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() {
|
|
if (mCurProc == daPyProc_DEMO_LOOK_TURN_e) {
|
|
return false;
|
|
}
|
|
commonProcInit(daPyProc_DEMO_LOOK_TURN_e);
|
|
mNormalSpeed = 0.0f;
|
|
daPy_ANM anm;
|
|
if (mDemo.getParam0()) {
|
|
anm = ANM_WINDL;
|
|
} else {
|
|
anm = ANM_WINDR;
|
|
}
|
|
setSingleMoveAnime(anm, 1.0f, 0.0f, -1, 5.0f);
|
|
mProcVar6.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);
|
|
mProcVar6.m3570 = 1;
|
|
}
|
|
if (mProcVar6.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);
|
|
mNormalSpeed = 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;
|
|
mNormalSpeed = 0.0f;
|
|
setSingleMoveAnime(ANM_WAITLETTER, 1.0f, 0.0f, -1, 5.0f);
|
|
offNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE);
|
|
mProcVar0.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 = dRes_INDEX_LKANM_BTK_TEDL_e;
|
|
setTextureScrollResource(loadTextureScrollResource(dRes_INDEX_LKANM_BTK_TEDL_e, 0), 0);
|
|
mProcVar0.m34D0 = 4;
|
|
} else {
|
|
if (0 < mProcVar0.m34D0) {
|
|
mProcVar0.m34D0--;
|
|
if (mProcVar0.m34D0 == 0) {
|
|
if (m_tex_scroll_heap.mIdx == dRes_INDEX_LKANM_BTK_TEDL_e) {
|
|
mProcVar0.m34D0 = 4;
|
|
m_tex_scroll_heap.mIdx = dRes_INDEX_LKANM_BTK_TEDR_e;
|
|
setTextureScrollResource(loadTextureScrollResource(dRes_INDEX_LKANM_BTK_TEDR_e, 0), 0);
|
|
} else {
|
|
m_tex_scroll_heap.mIdx = dRes_INDEX_LKANM_BTK_TEDW_e;
|
|
setTextureScrollResource(loadTextureScrollResource(dRes_INDEX_LKANM_BTK_TEDW_e, 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 0.0f;
|
|
setSingleMoveAnime(ANM_TAKTDGE, 1.0f, 0.0f, -1, 3.0f);
|
|
mProcVar2.m34D4 = 0;
|
|
camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx);
|
|
mProcVar3.m34D6 = shape_angle.y - fopCamM_GetAngleY(cam);
|
|
current.angle.y = shape_angle.y;
|
|
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
|
mProcVar0.m34D0 = 0;
|
|
mProcVar6.m3570 = mDemo.getParam0() + 0xd2;
|
|
dComIfGs_onTact(mDemo.getParam0());
|
|
initShipRideUseItem(iVar2, 0);
|
|
dKy_Itemgetcol_chg_on();
|
|
setTactModel();
|
|
#if VERSION > VERSION_JPN
|
|
mProcVar7.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 (mProcVar7.m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
}
|
|
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f && mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 17.0f) {
|
|
if (mProcVar0.m34D0 == 0) {
|
|
mProcVar0.m34D0 = 1;
|
|
mDoAud_subBgmStart(JA_BGM_GET_SONG);
|
|
dComIfGp_setMesgBgmOn();
|
|
}
|
|
if (mProcVar3.m34D6 > 0x4000) {
|
|
shape_angle.y =
|
|
current.angle.y + ((0x10000 - mProcVar3.m34D6) * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 10.0f) / 7.0f);
|
|
} else {
|
|
shape_angle.y = current.angle.y - (mProcVar3.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 - mProcVar3.m34D6;
|
|
}
|
|
}
|
|
fopAcM_getItemEventPartner(this);
|
|
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) && checkEndMessage(mProcVar6.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);
|
|
mProcVar7.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;
|
|
mNormalSpeed = 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(dItemNo_FAIRY_BOTTLE_e);
|
|
dComIfGp_setPlayerStatus1(0, daPyStts1_UNK4000_e);
|
|
mProcVar6.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 == dRes_INDEX_LKANM_BCK_BINOPENPRE_e) {
|
|
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(fpcNm_NPC_FA1_e, 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 = mNormalSpeed = 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;
|
|
}
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 0.0f;
|
|
m3624 = 0;
|
|
mProcVar0.m34D0 = 0;
|
|
if (mDemo.getParam0() != 0) {
|
|
if (mDemo.getParam0() != 0x100) {
|
|
mProcVar6.m3570 = mDemo.getParam0();
|
|
} else {
|
|
mProcVar6.m3570 = dComIfGp_event_getGtItm();
|
|
}
|
|
}
|
|
mProcVar7.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 (mProcVar7.m3574 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
return true;
|
|
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f && mProcVar0.m34D0 == 0) {
|
|
mProcVar0.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(mProcVar6.m3570);
|
|
}
|
|
if (checkEndMessage(m3624)) {
|
|
dComIfGp_evmng_cutEnd(mStaffIdx);
|
|
setBlendMoveAnime(m_HIO->mBasic.m.field_0xC);
|
|
mProcVar7.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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 0.0f;
|
|
if (mEquipItem != daPyItem_SWORD_e) {
|
|
deleteEquipItem(FALSE);
|
|
#if VERSION == VERSION_DEMO
|
|
setSwordModel();
|
|
#else
|
|
setSwordModel(FALSE);
|
|
#endif
|
|
}
|
|
bck = getItemAnimeResource(dRes_INDEX_LKANM_BCK_COMBO_KEN_e);
|
|
mSwordAnim.changeBckOnly(bck);
|
|
m35E8 = m35EC = 0.0f;
|
|
bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, dRes_INDEX_LINK_BCK_COMBO_TATE_e);
|
|
mAtngshaBck.init(mpShmsModel->getModelData(), bck, false, J3DFrameCtrl::EMode_NONE, 0.0f, 0, -1, true);
|
|
setFootEffectPosType(4);
|
|
offNoResetFlg1(daPyFlg1_LAST_COMBO_WAIT);
|
|
setBlurPosResource(dRes_INDEX_LKANM__LASTCOMBO_POS_e);
|
|
mProcVar6.m3570 = 1;
|
|
mProcVar7.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);
|
|
mNormalSpeed = 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);
|
|
mNormalSpeed = 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;
|
|
}
|