diff options
Diffstat (limited to 'src/d/actor/d_a_player_main.cpp')
| -rw-r--r-- | src/d/actor/d_a_player_main.cpp | 298 |
1 files changed, 192 insertions, 106 deletions
diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 6a96d945..5d51fdf5 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -318,7 +318,16 @@ BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo* param_2, Quaternion* } } } - if (!checkResetFlg0(daPyRFlg0_UNK800000)) { + +#if VERSION == VERSION_DEMO + if ( + !checkModeFlg(ModeFlg_WHIDE | ModeFlg_SWIM | ModeFlg_CRAWL) && + mCurProc != daPyProc_VOMIT_WAIT_e && mCurProc != daPyProc_ELEC_DAMAGE_e && mCurProc != daPyProc_DEMO_DOOR_OPEN_e + ) +#else + if (!checkResetFlg0(daPyRFlg0_UNK800000)) +#endif + { if (jnt_no == 0x1A) { JMAEulerToQuat(0, m34F8, m3528 + (m34F6 + -0x8000) + m350E, param_3); } else if (jnt_no == 0x1B) { @@ -327,6 +336,7 @@ BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo* param_2, Quaternion* JMAEulerToQuat(0, m3500, m34FE + m3512, param_3); } } + if (jnt_no == 0) { if (m34C2 == 1) { param_2->mTranslate.x = 0.0f; @@ -2436,7 +2446,7 @@ void daPy_lk_c::posMoveFromFootPos() { speed.x = f1 * cM_ssin(current.angle.y); speed.z = f1 * cM_scos(current.angle.y); } else if (mCurProc != daPyProc_CUT_ROLL_e || !dComIfGp_event_runCheck() || - mDemo.getDemoType() != 0 || mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_ROLL_e) + checkPlayerDemoMode() || mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_ROLL_e) { speed.x = speedF * cM_ssin(current.angle.y); speed.z = speedF * cM_scos(current.angle.y); @@ -2649,13 +2659,23 @@ BOOL daPy_lk_c::cancelItemUpperReadyAnime() { /* 80109F4C-8010A204 .text checkBodyAngleX__9daPy_lk_cFs */ s16 daPy_lk_c::checkBodyAngleX(s16 param_1) { - static Vec top_vec = {0.0f, 70.0f, 0.0f}; - f32 f1; - f32 f31; cXyz sp38; +#if VERSION <= VERSION_JPN + cXyz sp5C; + cXyz sp50; +#endif cXyz sp2C; mDoMtx_multVecZero(mpCLModel->getAnmMtx(0x2), &sp38); + +#if VERSION <= VERSION_JPN + sp5C = eyePos - sp38; + mDoMtx_stack_c::ZXYrotS(param_1 - mBodyAngle.x, shape_angle.y, 0); + mDoMtx_stack_c::YrotM(-shape_angle.y); + mDoMtx_stack_c::multVec(&sp5C, &sp50); + sp2C = sp50 + sp38; +#else + static Vec top_vec = {0.0f, 70.0f, 0.0f}; if (param_1 >= 0) { top_vec.z = 25.0f; } else { @@ -2664,18 +2684,23 @@ s16 daPy_lk_c::checkBodyAngleX(s16 param_1) { mDoMtx_stack_c::transS(sp38); mDoMtx_stack_c::ZXYrotM(param_1, shape_angle.y, 0); mDoMtx_stack_c::multVec(&top_vec, &sp2C); +#endif + mLinkLinChk.Set(&sp38, &sp2C, this); if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { cXyz local_4c = (mLinkLinChk.GetCross() - sp38); - f31 = cM_ssin(param_1); - f1 = (f31 * local_4c.abs()) / std::sqrtf(5525.0); +#if VERSION <= VERSION_JPN + f32 f1 = (cM_ssin(param_1) * local_4c.abs()) / sp50.abs(); +#else + f32 f1 = (cM_ssin(param_1) * local_4c.abs()) / std::sqrtf(SQUARE(70.0f) + SQUARE(25.0f)); +#endif if (f1 > 1.0f) { f1 = 1.0f; } else if (f1 < -1.0f) { f1 = -1.0f; } - f31 = std::sqrtf(1.0f - (f1 * f1)); - param_1 = cM_atan2s(f1, f31); + f32 f2 = std::sqrtf(1.0f - (f1 * f1)); + param_1 = cM_atan2s(f1, f2); } return param_1; } @@ -2683,7 +2708,6 @@ s16 daPy_lk_c::checkBodyAngleX(s16 param_1) { /* 8010A204-8010A2F4 .text setBodyAngleToCamera__9daPy_lk_cFv */ BOOL daPy_lk_c::setBodyAngleToCamera() { BOOL bVar1; - s16 sVar2; s16 local_16; s16 local_18; @@ -2692,12 +2716,16 @@ BOOL daPy_lk_c::setBodyAngleToCamera() { if (bVar1 != 0) { shape_angle.y = local_18; current.angle.y = local_18; +#if VERSION <= VERSION_JPN + mBodyAngle.x = checkBodyAngleX(local_16); +#else mBodyAngle.x = checkBodyAngleX(mBodyAngle.x); - sVar2 = mBodyAngle.x; + s16 sVar2 = mBodyAngle.x; mBodyAngle.x = checkBodyAngleX(local_16); if (mBodyAngle.x != local_16) { mBodyAngle.x = sVar2; } +#endif } else { camera_class* cam = dComIfGp_getCamera(mCameraInfoIdx); shape_angle.y = cam->mAngle.y; @@ -2966,7 +2994,7 @@ void daPy_lk_c::setBlendMoveAnime(f32 param_1) { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE1_e]; f32 f29; f32 f28; - if (dComIfGp_event_runCheck() || mDemo.getDemoType() != 0) { + if (dComIfGp_event_runCheck() || checkPlayerDemoMode()) { f29 = daPy_HIO_move_c0::m.field_0x44; f28 = daPy_HIO_move_c0::m.field_0x64; } else if (checkHeavyStateOn()) { @@ -3482,7 +3510,7 @@ void daPy_lk_c::setAnimeUnequipSword() { ModeFlg_LADDER | ModeFlg_CROUCH | ModeFlg_CRAWL - ) || dComIfGp_event_runCheck() || mDemo.getDemoType() != 0) { + ) || dComIfGp_event_runCheck() || checkPlayerDemoMode()) { rate = daPy_HIO_cut_c0::m.field_0x20; start = daPy_HIO_cut_c0::m.field_0x24; end = daPy_HIO_cut_c0::m.field_0x4; @@ -4993,7 +5021,10 @@ BOOL daPy_lk_c::setDamagePoint(f32 amount) { dComIfGp_setItemLifeCount(amount); if (amount < 0.0f) { offNoResetFlg1(daPyFlg1_UNK8000); - if (!checkFinalMasterSwordEquip()) { +#if VERSION > VERSION_JPN + if (!checkFinalMasterSwordEquip()) +#endif + { offNoResetFlg1(daPyFlg1_UNK200000); } } @@ -5082,8 +5113,10 @@ BOOL daPy_lk_c::changeDamageProc() { daShip_c* ship = (daShip_c*)dComIfGp_getShipActor(); if (dComIfGp_event_runCheck() || - mDemo.getDemoType() != 0 || + checkPlayerDemoMode() || +#if VERSION > VERSION_JPN checkNoControll() || +#endif mCurProc == daPyProc_SHIP_READY_e || ( dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && @@ -5400,7 +5433,7 @@ BOOL daPy_lk_c::changeDemoProc() { deleteEquipItem(FALSE); } u32 demo_mode = mDemo.getDemoMode(); - JUT_ASSERT(9342, (demo_mode < daPy_demo_c::DEMO_LAST_e) || (demo_mode == daPy_demo_c::DEMO_NEW_ANM0_e)); + JUT_ASSERT(VERSION_SELECT(9293, 9293, 9342, 9342), (demo_mode < daPy_demo_c::DEMO_LAST_e) || (demo_mode == daPy_demo_c::DEMO_NEW_ANM0_e)); if (demo_mode != daPy_demo_c::DEMO_NEW_ANM0_e && demo_mode != daPy_demo_c::DEMO_UNK_030_e && demo_mode != daPy_demo_c::DEMO_LDAM_e && demo_mode != daPy_demo_c::DEMO_PFALL_e && demo_mode != daPy_demo_c::DEMO_SFALL_e && demo_mode != daPy_demo_c::DEMO_INIT_WAIT_e && @@ -8012,7 +8045,7 @@ BOOL daPy_lk_c::procLargeDamageUp() { mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.5f); } } else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { - if (dComIfGp_event_runCheck() != 0) { + if (dComIfGp_event_runCheck()) { dComIfGp_evmng_cutEnd(mStaffIdx); } else { checkNextMode(0); @@ -8494,13 +8527,20 @@ BOOL daPy_lk_c::procBootsEquip() { } } if (frameCtrl.getRate() < 0.01f) { +#if VERSION <= VERSION_JPN + checkNextMode(0); +#else if (checkGrabAnime()) { initGrabNextMode(); } else { checkNextMode(0); } +#endif } else { if (frameCtrl.getFrame() > daPy_HIO_boots_c0::m.field_0xC) { +#if VERSION <= VERSION_JPN + checkNextMode(1); +#else if (checkGrabAnime()) { if (mStickDistance > 0.05f) { initGrabNextMode(); @@ -8508,6 +8548,7 @@ BOOL daPy_lk_c::procBootsEquip() { } else { checkNextMode(1); } +#endif } else { if (frameCtrl.checkPass(15.0f) && checkEquipHeavyBoots()) { dComIfGp_getVibration().StartShock(5, -0x31, cXyz(0.0f, 1.0f, 0.0f)); @@ -8577,7 +8618,7 @@ BOOL daPy_lk_c::procNotUse() { msg_p->mStatus = fopMsgStts_MSG_CONTINUES_e; m3624 = 0xf10; fopMsgM_messageSet(m3624); - g_dComIfG_gameInfo.save.getPlayer().getBagItem().setReserveItemEmpty(mReadyItemBtn); + dComIfGs_setReserveItemEmpty(mReadyItemBtn); } else { msg_p->mStatus = fopMsgStts_MSG_ENDS_e; } @@ -8640,22 +8681,18 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4) } dVar8 = param_1; mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[0], mDoMtx_stack_c::get()); - spE8.x = 0.0f; - spE8.y = mDoMtx_stack_c::now[1][3]; - spE8.z = mDoMtx_stack_c::now[2][3]; + spE8.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[1], mDoMtx_stack_c::get()); - spDC.x = 0.0f; - spDC.y = mDoMtx_stack_c::now[1][3]; - spDC.z = mDoMtx_stack_c::now[2][3]; + spDC.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[2], mDoMtx_stack_c::get()); - spD0.x = 0.0f; - spD0.y = mDoMtx_stack_c::now[1][3] + 3.25f; - spD0.z = mDoMtx_stack_c::now[2][3]; + spD0.set(0.0f, mDoMtx_stack_c::get()[1][3] + 3.25f, mDoMtx_stack_c::get()[2][3]); spAC = spDC - spE8; spA0 = spD0 - spDC; - spB8.set(spD0.x, spD0.y, spD0.z); + spB8.x = spD0.x; + spB8.y = spD0.y; + spB8.z = spD0.z; spB8.y += dVar8; spB8.z += dVar9; if (spB8.y >= spE8.y) { @@ -8675,26 +8712,30 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4) return false; } dVar8 = (((dVar9 + dVar10) - dVar11) / (2.0f * dVar9)); - sp58.set(0.0f, spE8.y + (dVar8 * sp7C.y), spE8.z + (dVar8 * sp7C.z)); + sp58.x = 0.0f; + sp58.y = spE8.y + (dVar8 * sp7C.y); + sp58.z = spE8.z + (dVar8 * sp7C.z); f32 f4 = dVar10 - (dVar8 * (dVar9 * dVar8)); if (f4 < 0.0f) { f4 = 0.0f; } dVar9 = std::sqrtf(f4); - sp70.set(0.0f, sp7C.z, -sp7C.y); + sp70.x = 0.0f; + sp70.y = sp7C.z; + sp70.z = -sp7C.y; dVar8 = sp70.abs(); if (cM3d_IsZero(dVar8)) { return false; } f32 f2 = dVar9 / dVar8; - spC4.set(0.0f, sp58.y + f2 * sp70.y, sp58.z + f2 * sp70.z); + spC4.x = 0.0f; + spC4.y = sp58.y + f2 * sp70.y; + spC4.z = sp58.z + f2 * sp70.z; sp94 = spC4 - spE8; sp88 = spB8 - spC4; mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(0), mDoMtx_stack_c::get()); - sp64.x = 0.0f; - sp64.y = mDoMtx_stack_c::now[1][3]; - sp64.z = mDoMtx_stack_c::now[2][3]; - s16 r29 = cM_atan2s(-mDoMtx_stack_c::now[1][3], -mDoMtx_stack_c::now[2][3]); + sp64.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); + s16 r29 = cM_atan2s(-sp64.y, -sp64.z); s16 r27 = cM_atan2s(sp94.y, sp94.z); s16 r26 = cM_atan2s(sp88.y, sp88.z); s16 r3 = r27 - r29; @@ -10305,7 +10346,7 @@ void daPy_lk_c::setDemoData() { int* prm0_p = NULL; int* prm1_p = NULL; if (!dComIfGp_event_runCheck()) { - if (mDemo.getDemoType() != 0) { + if (checkPlayerDemoMode()) { endDemoMode(); } if (m3554 > 0) { @@ -10537,7 +10578,7 @@ void daPy_lk_c::setStickData() { mStickDistance = 0.0f; m34E8 = 0; } else { - if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_068_e) { + if (checkBowMiniGame()) { mStickDistance = g_mDoCPd_cpadInfo[0].mMainStickValue; m34DC = g_mDoCPd_cpadInfo[0].mMainStickAngle + 0x8000; m34E8 = m34DC + dCam_getControledAngleY(dComIfGp_getCamera(mCameraInfoIdx)); @@ -10545,7 +10586,7 @@ void daPy_lk_c::setStickData() { mItemButton |= BTN_A; } } else if ( - (dComIfGp_event_runCheck() != 0 || mDemo.getDemoType() != 0) && + (dComIfGp_event_runCheck() || checkPlayerDemoMode()) && !dComIfGp_checkPlayerStatus1(0, daPyStts1_WIND_WAKER_CONDUCT_e) && mCurProc != daPyProc_NOT_USE_e && mCurProc != daPyProc_BOTTLE_GET_e ) { @@ -10569,7 +10610,7 @@ void daPy_lk_c::setStickData() { m34E8 = 0; } else { mStickDistance = g_mDoCPd_cpadInfo[0].mMainStickValue; - if (checkNoResetFlg1(daPyFlg1_CONFUSE) && dComIfGp_event_runCheck() == 0) { + if (checkNoResetFlg1(daPyFlg1_CONFUSE) && !dComIfGp_event_runCheck()) { m34DC = g_mDoCPd_cpadInfo[0].mMainStickAngle; } else { m34DC = g_mDoCPd_cpadInfo[0].mMainStickAngle + 0x8000; @@ -10647,7 +10688,12 @@ void daPy_lk_c::setStickData() { if (checkGrabWear()) { mStickDistance = mStickDistance * daPy_HIO_move_c0::m.field_0x74; } - if (bVar1 && dComIfGp_event_runCheck() == 0) { +#if VERSION == VERSION_DEMO + if (bVar1) +#else + if (bVar1 && !dComIfGp_event_runCheck()) +#endif + { seStartSystem(JA_SE_ITEM_TARGET_OUT); } } @@ -10793,7 +10839,7 @@ void daPy_lk_c::checkFallCode() { ((dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && ship != NULL && !ship->checkForceMove()) || (m3580 == 5 && m35F4 - current.pos.y > 500.0f))) { - g_dComIfG_gameInfo.play.mFwaterTimer = 1; + dComIfGs_startFwaterTimer(); dVar6 = speedF; dVar5 = 1.5f; if (dVar6 < dVar5) { @@ -11135,13 +11181,13 @@ void daPy_lk_c::setWindAtPower() { } } if (mCurProc != daPyProc_FAN_GLIDE_e) { - if (dComIfGp_event_runCheck() || mDemo.getDemoType() != 0) { + if (dComIfGp_event_runCheck() || checkPlayerDemoMode()) { m373C.x = 0.0f; m373C.z = 0.0f; } else { cLib_addCalcPosXZ(&m373C, local_58, 0.5f, fVar2, 0.5f); } - if (checkHeavyStateOn() || dComIfGp_event_runCheck() || mDemo.getDemoType() != 0) { + if (checkHeavyStateOn() || dComIfGp_event_runCheck() || checkPlayerDemoMode()) { m3730.x = 0.0f; m3730.z = 0.0f; } else { @@ -11199,7 +11245,6 @@ void daPy_lk_c::checkRoofRestart() { /* 80121870-80122D30 .text execute__9daPy_lk_cFv */ BOOL daPy_lk_c::execute() { - /* Nonmatching - retail-only regalloc */ #if VERSION > VERSION_DEMO if (setGetDemo()) { return TRUE; @@ -11224,7 +11269,7 @@ BOOL daPy_lk_c::execute() { dComIfGs_setBottleItemIn(dItem_FOREST_WATER_e, dItem_WATER_BOTTLE_e); mDemo.setDemoType(5); m3628 = fpcM_ERROR_PROCESS_ID_e; -#if VERSION > VERSION_DEMO +#if VERSION > VERSION_JPN if (mCurProc == daPyProc_SCOPE_e) { procWait_init(); } @@ -11832,20 +11877,20 @@ static BOOL daPy_Delete(daPy_lk_c* i_this) { /* 80123078-80123360 .text initTextureAnime__9daPy_lk_cFv */ void daPy_lk_c::initTextureAnime() { m_tex_anm_heap.m_buffer = new(0x20) u8[0x1000]; - JUT_ASSERT(20869, m_tex_anm_heap.m_buffer != NULL); + JUT_ASSERT(VERSION_SELECT(20789, 20789, 20869, 20869), m_tex_anm_heap.m_buffer != NULL); JKRReadIdxResource(m_tex_anm_heap.m_buffer, 0x1000, LKANM_BTP_TMABAA, dComIfGp_getAnmArchive()); J3DAnmTexPattern* btp = static_cast<J3DAnmTexPattern*>(J3DAnmLoaderDataBase::load(m_tex_anm_heap.m_buffer)); btp->searchUpdateMaterialID(mpCLModelData); u16 material_num = btp->getUpdateMaterialNum(); m_texNoAnms = new J3DTexNoAnm[material_num]; - JUT_ASSERT(20885, m_texNoAnms != NULL); + JUT_ASSERT(VERSION_SELECT(20805, 20805, 20885, 20885), m_texNoAnms != NULL); for (u16 i = 0; i < material_num; i++) { u16 matID = btp->getUpdateMaterialID(i); if (matID != 0xFFFF) { J3DMaterialAnm* mat_anm = new J3DMaterialAnm(); - JUT_ASSERT(20894, mat_anm != NULL); + JUT_ASSERT(VERSION_SELECT(20814, 20814, 20894, 20894), mat_anm != NULL); if (matID != 1 && matID != 4) { // Not eyeL or eyeR (i.e. it's mouth, mayuL, or mayuR) @@ -11878,16 +11923,16 @@ void daPy_lk_c::initTextureAnime() { /* 80123360-80123830 .text initTextureScroll__9daPy_lk_cFv */ void daPy_lk_c::initTextureScroll() { m_tex_scroll_heap.m_buffer = new(0x20) u8[0x800]; - JUT_ASSERT(DEMO_SELECT(20757, 20944), m_tex_scroll_heap.m_buffer != NULL); + JUT_ASSERT(VERSION_SELECT(20757, 20864, 20944, 20944), m_tex_scroll_heap.m_buffer != NULL); JKRReadIdxResource(m_tex_scroll_heap.m_buffer, 0x800, LKANM_BTK_TMABA, dComIfGp_getAnmArchive()); J3DAnmTextureSRTKey* btk = static_cast<J3DAnmTextureSRTKey*>(J3DAnmLoaderDataBase::load(m_tex_scroll_heap.m_buffer)); btk->searchUpdateMaterialID(mpCLModelData); u16 material_num = btk->getUpdateMaterialNum(); - JUT_ASSERT(DEMO_SELECT(20771, 20958), material_num == 2); + JUT_ASSERT(VERSION_SELECT(20771, 20878, 20958, 20958), material_num == 2); m_texMtxAnm = new J3DTexMtxAnm[material_num]; - JUT_ASSERT(DEMO_SELECT(20774, 20961), m_texMtxAnm != NULL); + JUT_ASSERT(VERSION_SELECT(20774, 20881, 20961, 20961), m_texMtxAnm != NULL); for (u16 no = 0; no < material_num; no++) { u16 matID = btk->getUpdateMaterialID(no); @@ -11896,7 +11941,7 @@ void daPy_lk_c::initTextureScroll() { } m_tex_eye_scroll[no] = new daPy_matAnm_c(); - JUT_ASSERT(DEMO_SELECT(20785, 20972), m_tex_eye_scroll[no] != NULL); + JUT_ASSERT(VERSION_SELECT(20785, 20892, 20972, 20972), m_tex_eye_scroll[no] != NULL); mpCLModelData->getMaterialNodePointer(matID)->change(); mpCLModelData->getMaterialNodePointer(matID)->setMaterialAnm(m_tex_eye_scroll[no]); @@ -11910,7 +11955,7 @@ void daPy_lk_c::initTextureScroll() { J3DTexMtx* tmtx; if (mtl->getTexMtx(texMtxID) == NULL) { tmtx = new J3DTexMtx(); - JUT_ASSERT(DEMO_SELECT(20797, 20984), tmtx != NULL); + JUT_ASSERT(VERSION_SELECT(20797, 20904, 20984, 20984), tmtx != NULL); mtl->setTexMtx(texMtxID, tmtx); } if (mtl->getTexCoord(texMtxID) != NULL) { @@ -11927,7 +11972,7 @@ void daPy_lk_c::initTextureScroll() { tmtxinfo.mCenter.y = btk->getSRTCenter(no).y; tmtxinfo.mCenter.z = btk->getSRTCenter(no).z; - JUT_ASSERT(DEMO_SELECT(20814, 21001), mtl->getMaterialAnm() != NULL); + JUT_ASSERT(VERSION_SELECT(20814, 20921, 21001, 21001), mtl->getMaterialAnm() != NULL); mtl->getMaterialAnm()->setTexMtxAnm(texMtxID, &m_texMtxAnm[no]); } @@ -11950,7 +11995,7 @@ BOOL daPy_lk_c::createHeap() { tmp_modelData = initModel(&mpSwgripmsModel, LINK_BDL_SWGRIPMS, 0x37221222); bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, LINK_BCK_SWGRIPMSAB); ret = mSwgripmsabBckAnim.init(mpSwgripmsModel->getModelData(), bck, false, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false); - if (!ret) { JUT_ASSERT(21046, FALSE); } + if (!ret) { JUT_ASSERT(VERSION_SELECT(20966, 20966, 21046, 21046), FALSE); } mpTswgripmsabBrk = entryBrk(tmp_modelData, LINK_BRK_TSWGRIPMSAB); mpTswgripmsBtk = entryBtk(tmp_modelData, LINK_BTK_TSWGRIPMS); @@ -11959,13 +12004,13 @@ BOOL daPy_lk_c::createHeap() { tmp_modelData = initModel(&mpShaModel, LINK_BDL_SHA, 0x37221222); bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, LINK_BCK_ATNGSHA); ret = mAtngshaBck.init(mpShaModel->getModelData(), bck, false, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false); - if (!ret) { JUT_ASSERT(21063, FALSE); } + if (!ret) { JUT_ASSERT(VERSION_SELECT(20983, 20983, 21063, 21063), FALSE); } tmp_modelData = initModel(&mpShmsModel, LINK_BDL_SHMS, 0x37221222); mpTshmsBtk = entryBtk(tmp_modelData, LINK_BTK_TSHMS); J3DSkinDeform* shmsSkinDeform = new J3DSkinDeform(); - if (!shmsSkinDeform) { JUT_ASSERT(21077, FALSE); } - if (mpShmsModel->setSkinDeform(shmsSkinDeform, 1) != J3DErrType_Success ) { JUT_ASSERT(21080, FALSE); } + if (!shmsSkinDeform) { JUT_ASSERT(VERSION_SELECT(20997, 20997, 21077, 21077), FALSE); } + if (mpShmsModel->setSkinDeform(shmsSkinDeform, 1) != J3DErrType_Success ) { JUT_ASSERT(VERSION_SELECT(21000, 21000, 21080, 21080), FALSE); } tmp_modelData = initModel(&mpYmsls00Model, LINK_BDL_YMSLS00, 0x13000222); mpYmsls00Btk = entryBtk(tmp_modelData, LINK_BTK_YMSLS00); @@ -11979,7 +12024,7 @@ BOOL daPy_lk_c::createHeap() { tmp_modelData = initModel(&mpYuchw00Model, LINK_BDL_YUCHW00, 0x13000222); bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, LINK_BCK_YUCHW00); ret = mYuchw00Bck.init(tmp_modelData, bck, 1, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false); - if (!ret) { JUT_ASSERT(21113, FALSE); } + if (!ret) { JUT_ASSERT(VERSION_SELECT(21033, 21033, 21113, 21113), FALSE); } mpYuchw00Btk = entryBtk(tmp_modelData, LINK_BTK_YUCHW00); mpYuchw00Brk = entryBrk(tmp_modelData, LINK_BRK_YUCHW00); mpYuchw00Brk->setFrame(mpYuchw00Brk->getFrameMax()-0.001f); @@ -11989,75 +12034,75 @@ BOOL daPy_lk_c::createHeap() { mpYbafo00Btk->setFrame(mpYbafo00Btk->getFrameMax()-0.001f); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_YAURA00)); - JUT_ASSERT(21130, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21050, 21050, 21130, 21130), tmp_modelData != NULL); daPy_aura_c* aura_p = mMagicArmorAuraEntries; for (int i = 0; i < 6; i++) { aura_p->setModel(mDoExt_J3DModel__create(tmp_modelData, 0x00080000, 0x11001222)); - JUT_ASSERT(21139, aura_p->getModel() != NULL); + JUT_ASSERT(VERSION_SELECT(21059, 21059, 21139, 21139), aura_p->getModel() != NULL); aura_p++; } mpYaura00Btk = entryBtk(tmp_modelData, LINK_BTK_YAURA00); brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, LINK_BRK_YAURA00_R); ret = mYaura00rBrk.init(tmp_modelData, brk, false, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0); - if (!ret) { JUT_ASSERT(21147, FALSE); } + if (!ret) { JUT_ASSERT(VERSION_SELECT(21067, 21067, 21147, 21147), FALSE); } mYaura00rBrk.entryFrame(0.0f); tmp_modelData = initModel(&mpYmgcs00Model, LINK_BDL_YMGCS00, 0x11001222); mpYmgcs00Btk = entryBtk(tmp_modelData, LINK_BTK_YMGCS00); brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, LINK_BRK_YMGCS00_MS); ret = mYmgcs00Brk.init(tmp_modelData, brk, false, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0); - if (!ret) { JUT_ASSERT(21161, FALSE); } + if (!ret) { JUT_ASSERT(VERSION_SELECT(21081, 21081, 21161, 21161), FALSE); } mYmgcs00Brk.entryFrame(0.0f); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_BOMB)); - JUT_ASSERT(21169, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21089, 21089, 21169, 21169), tmp_modelData != NULL); mpBombBrk = entryBrk(tmp_modelData, LINK_BRK_BOMB); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GWP00)); - JUT_ASSERT(21176, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21096, 21096, 21176, 21176), tmp_modelData != NULL); mpGwp00BrkData = entryBrk(tmp_modelData, LINK_BRK_GWP00); mpGwp00BtkData = entryBtk(tmp_modelData, LINK_BTK_GWP00); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROW)); - JUT_ASSERT(21184, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21104, 21104, 21184, 21184), tmp_modelData != NULL); mpIceArrowBtk = entryBtk(tmp_modelData, LINK_BTK_TTIPICE); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROWGLITTER)); - JUT_ASSERT(21191, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21111, 21111, 21191, 21191), tmp_modelData != NULL); mpLightArrowBtk = entryBtk(tmp_modelData, LINK_BTK_TARROWGLITTER); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER00)); - JUT_ASSERT(21198, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21118, 21118, 21198, 21198), tmp_modelData != NULL); mpGicer00Btk = entryBtk(tmp_modelData, LINK_BTK_GICER00); tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER01)); - JUT_ASSERT(21205, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21125, 21125, 21205, 21205), tmp_modelData != NULL); mpGicer01Btk = entryBtk(tmp_modelData, LINK_BTK_GICER01); const int numCLJoints = 0x2A; m_old_fdata = new mDoExt_MtxCalcOldFrame(new J3DTransformInfo[numCLJoints], new Quaternion[numCLJoints]); - JUT_ASSERT(21233, m_old_fdata != NULL); + JUT_ASSERT(VERSION_SELECT(21153, 21153, 21233, 21233), m_old_fdata != NULL); m_pbCalc[PART_UNDER_e] = new mDoExt_MtxCalcAnmBlendTblOld(m_old_fdata, ARRAY_SIZE(mAnmRatioUnder), mAnmRatioUnder); - JUT_ASSERT(21239, m_pbCalc[PART_UNDER_e] != NULL); + JUT_ASSERT(VERSION_SELECT(21159, 21159, 21239, 21239), m_pbCalc[PART_UNDER_e] != NULL); m_pbCalc[PART_UPPER_e] = new mDoExt_MtxCalcAnmBlendTblOld(m_old_fdata, ARRAY_SIZE(mAnmRatioUpper), mAnmRatioUpper); - JUT_ASSERT(21245, m_pbCalc[PART_UPPER_e] != NULL); + JUT_ASSERT(VERSION_SELECT(21165, 21165, 21245, 21245), m_pbCalc[PART_UPPER_e] != NULL); initTextureScroll(); initTextureAnime(); m_HIO = new daPy_HIO_c(); - JUT_ASSERT(21254, m_HIO != NULL); + JUT_ASSERT(VERSION_SELECT(21174, 21174, 21254, 21254), m_HIO != NULL); m_anm_heap_under[UNDER_MOVE0_e].m_buffer = new(0x20) u8[0xB400]; - JUT_ASSERT(21259, m_anm_heap_under[UNDER_MOVE0_e].m_buffer != NULL); + JUT_ASSERT(VERSION_SELECT(21179, 21179, 21259, 21259), m_anm_heap_under[UNDER_MOVE0_e].m_buffer != NULL); m_sanm_buffer = new(0x20) u8[0x200]; - JUT_ASSERT(21266, m_sanm_buffer != NULL); + JUT_ASSERT(VERSION_SELECT(21186, 21186, 21266, 21266), m_sanm_buffer != NULL); m_item_bck_buffer = new(0x20) u8[0x1000]; - JUT_ASSERT(21269, m_item_bck_buffer != NULL); + JUT_ASSERT(VERSION_SELECT(21189, 21189, 21269, 21269), m_item_bck_buffer != NULL); return TRUE; } @@ -12078,16 +12123,16 @@ void daPy_lk_c::createAnimeHeap(JKRSolidHeap** pHeap, daPy_HEAP_TYPE heapType) { if (heapType == HEAP_TYPE_ITEM_ANIME_e) { mDoExt_transAnmBas* tmp_trans_bas = new mDoExt_transAnmBas(NULL); - JUT_ASSERT(21307, tmp_trans_bas != NULL); + JUT_ASSERT(VERSION_SELECT(21227, 21227, 21307, 21307), tmp_trans_bas != NULL); } else if (heapType == HEAP_TYPE_UNDER_UPPER_e) { J3DAnmTransformKey* tmp_trans = new J3DAnmTransformKey; - JUT_ASSERT(21310, tmp_trans != NULL); + JUT_ASSERT(VERSION_SELECT(21230, 21230, 21310, 21310), tmp_trans != NULL); } else if (heapType == HEAP_TYPE_TEXTURE_ANIME_e) { J3DAnmTexPattern* tmp_tp = new J3DAnmTexPattern; - JUT_ASSERT(21313, tmp_tp != NULL); + JUT_ASSERT(VERSION_SELECT(21233, 21233, 21313, 21313), tmp_tp != NULL); } else { // heapType == HEAP_TYPE_TEXTURE_SCROLL_e J3DAnmTextureSRTKey* tmp_tk = new J3DAnmTextureSRTKey; - JUT_ASSERT(21316, tmp_tk != NULL); + JUT_ASSERT(VERSION_SELECT(21236, 21236, 21316, 21316), tmp_tk != NULL); } mDoExt_restoreCurrentHeap(); @@ -12098,9 +12143,9 @@ void daPy_lk_c::createAnimeHeap(JKRSolidHeap** pHeap, daPy_HEAP_TYPE heapType) { J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_differedDlistFlag) { J3DModelData* tmp_modelData; tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, i_fileIndex)); - JUT_ASSERT(21340, tmp_modelData != NULL); + JUT_ASSERT(VERSION_SELECT(21260, 21260, 21340, 21340), tmp_modelData != NULL); *i_model = mDoExt_J3DModel__create(tmp_modelData, 0x00080000, i_differedDlistFlag); - JUT_ASSERT(21344, *i_model != NULL); + JUT_ASSERT(VERSION_SELECT(21264, 21264, 21344, 21344), *i_model != NULL); return tmp_modelData; } @@ -12108,7 +12153,7 @@ J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_di J3DAnmTextureSRTKey* daPy_lk_c::entryBtk(J3DModelData* param_1, int param_2) { J3DAnmTextureSRTKey* btk_anm = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcName, param_2)); - JUT_ASSERT(21373, btk_anm != NULL); + JUT_ASSERT(VERSION_SELECT(21293, 21293, 21373, 21373), btk_anm != NULL); btk_anm->searchUpdateMaterialID(param_1); param_1->entryTexMtxAnimator(btk_anm); btk_anm->setFrame(0.0f); @@ -12119,7 +12164,7 @@ J3DAnmTextureSRTKey* daPy_lk_c::entryBtk(J3DModelData* param_1, int param_2) { J3DAnmTevRegKey* daPy_lk_c::entryBrk(J3DModelData* param_1, int param_2) { J3DAnmTevRegKey* brk_anm = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(l_arcName, param_2)); - JUT_ASSERT(21395, brk_anm != NULL); + JUT_ASSERT(VERSION_SELECT(21315, 21315, 21395, 21395), brk_anm != NULL); brk_anm->searchUpdateMaterialID(param_1); param_1->entryTevRegAnimator(brk_anm); brk_anm->setFrame(0.0f); @@ -12129,7 +12174,7 @@ J3DAnmTevRegKey* daPy_lk_c::entryBrk(J3DModelData* param_1, int param_2) { /* 80124C98-80125CC8 .text playerInit__9daPy_lk_cFv */ void daPy_lk_c::playerInit() { if (!fopAcM_entrySolidHeap(this, daPy_createHeap, 0xB0000)) { - JUT_ASSERT(21430, FALSE); + JUT_ASSERT(VERSION_SELECT(21350, 21350, 21430, 21430), FALSE); } fopAcM_SetMtx(this, mpCLModel->getBaseTRMtx()); @@ -12168,23 +12213,23 @@ void daPy_lk_c::playerInit() { if (mtl->getZMode()->getCompareEnable() == 0) { if ((u8)mtl->getBlend()->getType() == GX_BM_BLEND) { mpZOffBlendShape[zoff_blend_cnt++] = mtl->getShape(); - JUT_ASSERT(21486, zoff_blend_cnt <= 4); + JUT_ASSERT(VERSION_SELECT(21406, 21406, 21486, 21486), zoff_blend_cnt <= 4); } else { mpZOffNoneShape[zoff_none_cnt++] = mtl->getShape(); - JUT_ASSERT(21490, zoff_none_cnt <= 4); + JUT_ASSERT(VERSION_SELECT(21410, 21410, 21490, 21490), zoff_none_cnt <= 4); } } else { mpZOnShape[zon_cnt++] = mtl->getShape(); - JUT_ASSERT(21494, zon_cnt <= 4); + JUT_ASSERT(VERSION_SELECT(21414, 21414, 21494, 21494), zon_cnt <= 4); } mtl = mtl->getNext(); } mtl = mpCLModelData->getJointNodePointer(0x15)->getMesh(); // cl_mayu joint } - JUT_ASSERT(21501, zon_cnt == 4); - JUT_ASSERT(21502, zoff_none_cnt == 4); - JUT_ASSERT(21503, zoff_blend_cnt == 4); + JUT_ASSERT(VERSION_SELECT(21421, 21421, 21501, 21501), zon_cnt == 4); + JUT_ASSERT(VERSION_SELECT(21422, 21422, 21502, 21502), zoff_none_cnt == 4); + JUT_ASSERT(VERSION_SELECT(21423, 21423, 21503, 21503), zoff_blend_cnt == 4); mpLhandShape = mpCLModelData->getJointNodePointer(0x08)->getMesh()->getShape(); // cl_LhandA joint mpRhandShape = mpCLModelData->getJointNodePointer(0x0C)->getMesh()->getShape(); // cl_RhandA joint @@ -12277,13 +12322,13 @@ void daPy_lk_c::playerInit() { mpItemHeaps[0] = mDoExt_createSolidHeapFromGameToCurrent(0xE600, 0x20); u8* dummy_data = new u8[0xE600]; - JUT_ASSERT(21651, dummy_data != NULL); + JUT_ASSERT(VERSION_SELECT(21571, 21571, 21651, 21651), dummy_data != NULL); mDoExt_restoreCurrentHeap(); mDoExt_adjustSolidHeap(mpItemHeaps[0]); mpItemHeaps[1] = mDoExt_createSolidHeapFromGameToCurrent(0xE600, 0x20); dummy_data = new u8[0xE600]; - JUT_ASSERT(21657, dummy_data != NULL); + JUT_ASSERT(VERSION_SELECT(21577, 21577, 21657, 21657), dummy_data != NULL); mDoExt_restoreCurrentHeap(); mDoExt_adjustSolidHeap(mpItemHeaps[1]); @@ -12308,10 +12353,10 @@ void daPy_lk_c::playerInit() { resetSeAnime(); ResTIMG* tmp_tex = (ResTIMG*)dComIfG_getObjectRes("Always", ALWAYS_I4_BALL128B); - JUT_ASSERT(0x54B7, tmp_tex != NULL); + JUT_ASSERT(VERSION_SELECT(21607, 21607, 21687, 21687), tmp_tex != NULL); mSightPacket.setSightTex(tmp_tex); ResTIMG* tmp_img = (ResTIMG*)dComIfG_getObjectRes(l_arcName, LINK_BTI_ROCK_MARK); - JUT_ASSERT(0x54BD, tmp_img != NULL); + JUT_ASSERT(VERSION_SELECT(21613, 21613, 21693, 21693), tmp_img != NULL); void* tmp_img_data = reinterpret_cast<void*>(reinterpret_cast<u32>(tmp_img) + tmp_img->imageOffset); mSightPacket.setLockTex(tmp_img_data); mSightPacket.setImage(tmp_img); @@ -12359,9 +12404,9 @@ void daPy_lk_c::playerInit() { ResTIMG* linktex_casual = (ResTIMG*)dComIfG_getObjectRes(l_arcName, LINK_BTI_LINKTEXBCI4); int num_linktex_headers_seen = 0; J3DTexture* texture = mpCLModelData->getTexture(); - JUT_ASSERT(0x5504, texture != NULL); + JUT_ASSERT(VERSION_SELECT(21684, 21684, 21764, 21764), texture != NULL); JUTNameTab* textureName = mpCLModelData->getTextureName(); - JUT_ASSERT(0x5506, textureName != NULL); + JUT_ASSERT(VERSION_SELECT(21686, 21686, 21766, 21766), textureName != NULL); for (u16 i = 0; i < texture->getNum(); i++) { const char* texName = textureName->getName(i); if (strcmp(texName, "linktexS3TC") != 0) { @@ -12442,16 +12487,39 @@ cPhs_State daPy_lk_c::makeBgWait() { cXyz local_44; cXyz local_50; +#if VERSION > VERSION_DEMO if ((int)m352E != 0) { m352E--; } +#endif + mAcch.CrrPos(*dComIfG_Bgsp()); - if (-G_CM3D_F_INF == mAcch.GetGroundH() || - (m352E != 0 && dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd) && - fopAcM_GetName(dComIfG_Bgsp()->GetActorPointer(mAcch.m_gnd)) == PROC_TBOX)) - { + + if ( + mAcch.GetGroundH() == -G_CM3D_F_INF + #if VERSION > VERSION_DEMO + || ( + m352E != 0 && dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd) && + fopAcM_GetName(dComIfG_Bgsp()->GetActorPointer(mAcch.m_gnd)) == PROC_TBOX + ) +#endif + ) { return cPhs_INIT_e; } + +#if VERSION == VERSION_DEMO + if (((fopAcM_GetParam(this) & 0x80) != 0)) { + m352E--; + if (m352E != 0) { + if (!dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd) || + fopAcM_GetName(dComIfG_Bgsp()->GetActorPointer(mAcch.m_gnd)) != PROC_OBJ_IKADA) + { + return cPhs_INIT_e; + } + current.pos.y = mAcch.GetGroundH(); + } + } +#else if (((fopAcM_GetParam(this) & 0x80) != 0) && m352E != 0) { if (!dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd) || fopAcM_GetName(dComIfG_Bgsp()->GetActorPointer(mAcch.m_gnd)) != PROC_OBJ_IKADA) @@ -12461,6 +12529,8 @@ cPhs_State daPy_lk_c::makeBgWait() { current.pos.y = mAcch.GetGroundH(); m352E = 0; } +#endif + setWaterY(); u32 uVar5 = fopAcM_GetParam(this) & 0x40; if (uVar5 == 0) { @@ -12487,10 +12557,12 @@ cPhs_State daPy_lk_c::makeBgWait() { if (ship == NULL) { return cPhs_INIT_e; } +#if VERSION > VERSION_JPN if (dComIfGs_isEventBit(0x3e10)) { dComIfGs_onEventBit(0x3e01); dComIfGs_onEventBit(0x3f80); } +#endif s16 sVar6; if (uVar5 != 0) { s16 sVar2 = shape_angle.y; @@ -12515,10 +12587,11 @@ cPhs_State daPy_lk_c::makeBgWait() { procShipRestart_init(); } else if (startMode == 9) { ship->setStartModeWarp(); +#if VERSION > VERSION_DEMO local_38.set(current.pos.x, current.pos.y + 1500.0f, current.pos.z); - fpc_ProcID uVar8 = - fopAcM_create(PROC_TORNADO, 2, &local_38, fopAcM_GetRoomNo(this)); + fpc_ProcID uVar8 = fopAcM_create(PROC_TORNADO, 2, &local_38, fopAcM_GetRoomNo(this)); ship->setTactWarpID(uVar8); +#endif } } } else if (startMode == 4) { @@ -12607,8 +12680,12 @@ cPhs_State daPy_lk_c::makeBgWait() { mpCLModelData->getJointNodePointer(0)->setMtxCalc(m_pbCalc[PART_UNDER_e]); mpCLModelData->getJointNodePointer(0x02)->setMtxCalc(m_pbCalc[PART_UPPER_e]); mpCLModelData->getJointNodePointer(0x1D)->setMtxCalc(m_pbCalc[PART_UNDER_e]); + +#if VERSION > VERSION_DEMO checkOriginalHatAnimation(); animeUpdate(); +#endif + mpCLModel->calc(); mpKatsuraModel->setBaseTRMtx(mpCLModel->getAnmMtx(0xF)); mpKatsuraModel->calc(); @@ -12628,14 +12705,17 @@ cPhs_State daPy_lk_c::makeBgWait() { } else { mTinkleShieldTimer = (s16)(dComIfGs_getLastSceneMode() >> 0x10); } + +#if VERSION > VERSION_DEMO if ((dComIfGs_getLastSceneMode() & 0x4000) != 0) { onNoResetFlg1(daPyFlg1_UNK8000); } -#if VERSION > VERSION_DEMO + l_debug_keep_pos = current.pos; l_debug_shape_angle = shape_angle; l_debug_current_angle = current.angle; #endif + return cPhs_NEXT_e; } @@ -12668,7 +12748,7 @@ void daPy_lk_c::setSeAnime(const daPy_anmHeap_c* anmHeap, J3DFrameCtrl* frameCtr u32 data_size = fileHeader->mFileSize - fileHeader->mSeAnmOffset; const u32 l_sanm_buffer_size = 0x200; - JUT_ASSERT(22318, data_size < l_sanm_buffer_size); + JUT_ASSERT(VERSION_SELECT(22228, 22228, 22318, 22318), data_size < l_sanm_buffer_size); u8* seAnmPtr = reinterpret_cast<u8*>(anmHeap->m_buffer) + fileHeader->mSeAnmOffset; cLib_memCpy(m_sanm_buffer, seAnmPtr, data_size); @@ -13109,8 +13189,14 @@ void daPy_lk_c::endDemoMode() { /* 80128F8C-8012901C .text getBokoFlamePos__9daPy_lk_cFP4cXyz */ BOOL daPy_lk_c::getBokoFlamePos(cXyz* outPos) { if (mEquipItem == daPyItem_BOKO_e) { +#if VERSION == VERSION_DEMO + daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor(); + if (boko->getFlameTimer() != 0) +#else daBoko_c* boko = (daBoko_c*)fopAcM_SearchByID(mActorKeepEquip.getID()); - if (boko && boko->m2C4 != 0) { // maybe daBoko_c::getFlameTimer inline + if (boko && boko->getFlameTimer() != 0) +#endif + { *outPos = mSwordTopPos; return TRUE; } |
