/** * 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 > spC4(data); r29 = spC4.front(); JStudio::stb::TParseData_fixed<49, TValueIterator_raw > 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 > 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 > 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() { 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); mNormalSpeed = 0.0f; keepItemData(); mProcVar6.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); } mProcVar6.m3570 = 1; setSingleMoveAnime(ANM_GRABWAIT, m_HIO->mGrab.m.field_0x78, 0.0f, -1, -1.0f); pfVar2 = (fopAc_ac_c*)fopAcM_fastCreate(fpcNm_STANDITEM_e, 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 (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; }