diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index cd623a8f4..16eca54f2 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -13,8 +13,8 @@ class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack { public: void execute(JPABaseEmitter*); void end(); - void makeEmitter(u16, MtxP, const cXyz*, const cXyz*); - void makeEmitterColor(u16, MtxP, const cXyz*, const GXColor*, const GXColor*); + JPABaseEmitter* makeEmitter(u16, MtxP, const cXyz*, const cXyz*); + JPABaseEmitter* makeEmitterColor(u16, MtxP, const cXyz*, const GXColor*, const GXColor*); void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { mpEmitter = emitter; } JPABaseEmitter* getEmitter() { return mpEmitter; } @@ -457,20 +457,22 @@ public: bool checkArrowShoot() const { return checkResetFlg0(daPyRFlg0_ARROW_SHOOT); } bool checkGrabWear() const { return field_0x2b0 < 0.0f; } - bool checkNormalSwordEquip() const { - return dComIfGs_getSelectEquip(0) == dItem_SWORD_e || - dComIfGp_getMiniGameType() == 2; + BOOL checkNormalSwordEquip() const { + return dComIfGs_getSelectEquip(0) == dItem_SWORD_e || checkSwordMiniGame(); } BOOL checkMasterSwordEquip() const { return dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e; } + BOOL checkFinalMasterSwordEquip() const { + return dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e; + } + void setFace(daPy_FACE face) { mFace = face; } - void checkFinalMasterSwordEquip() const {} + BOOL checkSwordMiniGame() const { return dComIfGp_getMiniGameType() == 2; } void checkBowMiniGame() const {} - void checkSwordMiniGame() const {} void checkSoupPowerUp() const {} void checkSubjectAccept() const {} void checkUseArrowEffect() const {} diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index 23c6772a3..e65af1d79 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -1437,7 +1437,7 @@ public: BOOL procSwimMove_init(BOOL); BOOL procSwimMove(); void setSpecialBattle(BOOL); - int changeSpecialBattle(); + BOOL changeSpecialBattle(); BOOL procBtJump_init(fopEn_enemy_c*); BOOL procBtJump(); BOOL procBtJumpCut_init(cXyz*); @@ -1657,7 +1657,7 @@ public: void setSwordModel(BOOL); void setLightSaver(); BOOL checkDemoShieldNoDraw(); - BOOL checkDemoSwordNoDraw(int); + BOOL checkDemoSwordNoDraw(BOOL); BOOL checkChanceMode(); BOOL checkCutRollChange() const; int getSwordBlurColor(); @@ -1766,8 +1766,7 @@ public: } } bool checkSwordEquip() const { - return dComIfGs_getSelectEquip(0) != dItem_NONE_e || - dComIfGp_getMiniGameType() == 2; + return dComIfGs_getSelectEquip(0) != dItem_NONE_e || checkSwordMiniGame(); } int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } @@ -1792,6 +1791,7 @@ public: BOOL doTrigger() const { return mItemTrigger & BTN_A; } BOOL talkTrigger() const { return mItemTrigger & BTN_A; } + BOOL spBattleTrigger() const {return mItemTrigger & BTN_A; } BOOL swordTrigger() const { return mItemTrigger & BTN_B; } BOOL cancelTrigger() const { return mItemTrigger & BTN_B; } BOOL itemTriggerX() const { return mItemTrigger & BTN_X; } @@ -1801,7 +1801,6 @@ public: BOOL spActionTrigger() const { return mItemTrigger & BTN_R; } void allTrigger() const {} void otherWeaponTrigger() const {} - void spBattleTrigger() const {} BOOL checkPlayerDemoMode() const { return mDemo.getDemoType(); } void checkSpecialDemoMode() const {} diff --git a/src/d/actor/d_a_fganon.cpp b/src/d/actor/d_a_fganon.cpp index 1f5c11901..325269c39 100644 --- a/src/d/actor/d_a_fganon.cpp +++ b/src/d/actor/d_a_fganon.cpp @@ -171,13 +171,8 @@ void pos_move(fganon_class* i_this, unsigned char param_2) { /* 00000AEC-00000C14 .text fly_se_set__FP12fganon_class */ void fly_se_set(fganon_class* i_this) { - float fVar1; - uint uVar2; - float fVar4; - cXyz local_34; - - local_34 = i_this->current.pos - i_this->old.pos; - uVar2 = (uint)(local_34.abs() * 3.5f); + cXyz local_34 = i_this->current.pos - i_this->old.pos; + uint uVar2 = (uint)(local_34.abs() * 3.5f); if (uVar2 > 100) { uVar2 = 100; } @@ -812,7 +807,7 @@ void down(fganon_class* i_this) { sp2C.y += 300.0f; gndChk.SetPos(&sp2C); f32 height = dComIfG_Bgsp()->GroundCross(&gndChk); - if ((height != -1e+09f) && (i_this->current.pos.y <= height)) { + if (height != C_BG_MIN_HEIGHT && i_this->current.pos.y <= height) { bVar3 = TRUE; } if ((i_this->m3A4[0] == 0) || bVar3) { @@ -937,7 +932,7 @@ void kieru(fganon_class* i_this) { /* 00004584-00004BC8 .text fail__FP12fganon_class */ void fail(fganon_class* i_this) { fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; - fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); + i_this->m3AE = 3; switch(i_this->m388) { case 0: { @@ -1162,7 +1157,7 @@ void start(fganon_class* i_this) { /* 00005128-00005350 .text end__FP12fganon_class */ void end(fganon_class* i_this) { fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; - fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); + i_this->m3AE = 3; fopAcM_OffStatus(i_this, 0); i_this->attention_info.flags = 0; @@ -1215,7 +1210,7 @@ void end(fganon_class* i_this) { /* 00005350-000056A4 .text last_end__FP12fganon_class */ void last_end(fganon_class* i_this) { fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; - fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); + i_this->m3AE = 3; fopAcM_OffStatus(i_this, 0); i_this->attention_info.flags = 0; @@ -1593,7 +1588,7 @@ s32 move(fganon_class* i_this) { fly2(i_this); res = 1; break; - case 0xB: + case 11: shot2(i_this); res = 1; break; @@ -1604,13 +1599,13 @@ s32 move(fganon_class* i_this) { down(i_this); res = 1; break; - case 0x14: + case 20: start(i_this); break; - case 0x15: + case 21: end(i_this); break; - case 0x16: + case 22: last_end(i_this); break; default: @@ -1656,7 +1651,7 @@ void demo_camera(fganon_class* i_this) { camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); bVar3 = TRUE; switch(i_this->mB54) { - case 0x1: { + case 1: { if (!i_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0); i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e); @@ -1675,7 +1670,7 @@ void demo_camera(fganon_class* i_this) { player->changeOriginalDemo(); player->changeDemoMode(0x18); } - case 0x2: { + case 2: { transformedPos.x = -300306.0f; transformedPos.y = 715.0f; transformedPos.z = -303407.0f; @@ -1726,7 +1721,7 @@ void demo_camera(fganon_class* i_this) { i_this->mB68 = i_this->current.pos; i_this->mB68.y += REG0_F(0) + 160.0f; } - case 0x3: { + case 3: { if (i_this->mB56 > 60) { cLib_addCalc2(&i_this->mB5C.x, -300269.0f, 0.1f, i_this->mB80 * 100.0f); cLib_addCalc2(&i_this->mB5C.y, 870.0f, 0.1f, i_this->mB80 * 100.0f); @@ -1755,7 +1750,7 @@ void demo_camera(fganon_class* i_this) { } break; } - case 0x32: { + case 50: { if (!i_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0); i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e); @@ -1775,7 +1770,7 @@ void demo_camera(fganon_class* i_this) { i_this->shape_angle.y = 0; } - case 0x33: { + case 51: { i_this->current.pos.x = -300202.0f; i_this->current.pos.y = 715.0f; i_this->current.pos.z = -301859.0f; @@ -1818,7 +1813,7 @@ void demo_camera(fganon_class* i_this) { } break; } - case 0x34: { + case 52: { yPos = player->current.pos.y; transformedPos.x = -300202.0f; transformedPos.y = yPos; @@ -1841,7 +1836,7 @@ void demo_camera(fganon_class* i_this) { } break; } - case 0x35: { + case 53: { i_this->mB68.x = -300098.0f; i_this->mB68.y = 580.0f; i_this->mB68.z = -301997.0f; @@ -1866,7 +1861,7 @@ void demo_camera(fganon_class* i_this) { i_this->mB68.y -= REG0_F(11) + 30.0f; i_this->m388++; } - case 0x36: { + case 54: { cLib_addCalc2(&i_this->mB68.y, (i_this->eyePos.y - 30.0f) + REG0_F(11), 0.1f, 20.0f); if (i_this->mB56 == 100) { i_this->mB54 = 55; @@ -1877,7 +1872,7 @@ void demo_camera(fganon_class* i_this) { break; } } - case 0x37: { + case 55: { if (i_this->mB56 == 20) { mDoAud_seStart(JA_SE_CV_PG_LAUGH_1, NULL, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); } @@ -1909,9 +1904,9 @@ void demo_camera(fganon_class* i_this) { i_this->mB54 = 150; fopAcM_delete(a_this); - goto label0x96; + goto case_150; } - case 0x64: { + case 100: { if (!i_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0); i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e); @@ -1936,7 +1931,7 @@ void demo_camera(fganon_class* i_this) { i_this->shape_angle.y = fopAcM_searchPlayerAngleY(a_this); } - case 0x65: { + case 101: { cLib_addCalc2(&i_this->mB68.x, i_this->current.pos.x, 0.1f, 200.0f); cLib_addCalc2(&i_this->mB68.y, i_this->eyePos.y - 50.0f, 0.1f, 200.0f); cLib_addCalc2(&i_this->mB68.z, i_this->current.pos.z, 0.1f, 200.0f); @@ -1967,11 +1962,11 @@ void demo_camera(fganon_class* i_this) { cLib_addCalc2(&i_this->mB80, 1.0f, 1.0f, REG8_F(7) + 0.1f); break; } - case 0x0: + case 0: default: { break; } - case 0x67: { + case 103: { if (i_this->mB56 > REG0_S(2) + 8) { cLib_addCalc2(&i_this->mB68.y, player->current.pos.y + REG0_F(9), 0.8f, REG0_F(10) + 30.0f); } @@ -1988,8 +1983,8 @@ void demo_camera(fganon_class* i_this) { dComIfGs_onSwitch(i_this->mSwitchNo, fopAcM_GetRoomNo(a_this)); } } - case 0x96: { - label0x96: + case 150: { + case_150: camera->mCamera.SetTrimSize(0); camera->mCamera.Start(); dMeter_mtrShow(); @@ -2007,7 +2002,6 @@ void demo_camera(fganon_class* i_this) { /* 00007434-0000778C .text ball_bg_check__FP12fganon_class */ BOOL ball_bg_check(fganon_class* i_this) { fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; - fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); dBgS_LinChk linChk; cXyz posVec = i_this->m3E0 + (i_this->m3E0 - i_this->m3EC) * 1.05f; linChk.Set(&i_this->m3E0, &posVec, a_this); @@ -2165,33 +2159,38 @@ void energy_ball_move(fganon_class* i_this) { atInfo.mResultingAttackType = 0xFF; atInfo.mpObj = NULL; } - if ((atInfo.mpObj && (atInfo.mResultingAttackType == 1) && atInfo.mpObj->ChkAtType(AT_TYPE_SWORD)) && - (dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e) || bVar3) { - local_5c = a_this->eyePos - i_this->m3E0; - local_5c.y -= REG0_F(17) + 30.0f; + if ((atInfo.mpObj && atInfo.mResultingAttackType == 1 && atInfo.mpObj->ChkAtType(AT_TYPE_SWORD) && + (dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e || + dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e || + dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e)) || + bVar3) + { + local_5c = a_this->eyePos - i_this->m3E0; + local_5c.y -= REG0_F(17) + 30.0f; - cMtx_YrotS(*calc_mtx, cM_atan2s(local_5c.x, local_5c.z)); - cMtx_XrotM(*calc_mtx, -cM_atan2s(local_5c.y, std::sqrtf(local_5c.x * local_5c.x + local_5c.z * local_5c.z))); - - local_50.z = i_this->m404; - - MtxPosition(&local_50, &i_this->m3F8); - - i_this->m408 = 5; - - dScnPly_ply_c::setPauseTimer(2); - - bVar2 = TRUE; - - s32 lVar11 = i_this->m688 + 2; - if (lVar11 > 7) { - lVar11 = 7; - } - mDoAud_changeSubBgmStatus(lVar11); - i_this->m688++; - dComIfGs_onEventBit(0x3f20); - } - else if (bVar5) { + cMtx_YrotS(*calc_mtx, cM_atan2s(local_5c.x, local_5c.z)); + cMtx_XrotM( + *calc_mtx, -cM_atan2s(local_5c.y, std::sqrtf(local_5c.x * local_5c.x + local_5c.z * local_5c.z)) + ); + + local_50.z = i_this->m404; + + MtxPosition(&local_50, &i_this->m3F8); + + i_this->m408 = 5; + + dScnPly_ply_c::setPauseTimer(2); + + bVar2 = TRUE; + + s32 lVar11 = i_this->m688 + 2; + if (lVar11 > 7) { + lVar11 = 7; + } + mDoAud_changeSubBgmStatus(lVar11); + i_this->m688++; + dComIfGs_onEventBit(0x3f20); + } else if (bVar5) { local_5c = player->eyePos - i_this->m3E0; local_5c.y -= REG0_F(18) + 50.0f; diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index 3ca1d9c0c..01726c451 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -66,17 +66,17 @@ void daPy_mtxFollowEcallBack_c::end() { } /* 80102BF8-80102C84 .text makeEmitter__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC4cXyz */ -void daPy_mtxFollowEcallBack_c::makeEmitter(u16 particleID, MtxP mtx, const cXyz* pos, const cXyz* scale) { +JPABaseEmitter* daPy_mtxFollowEcallBack_c::makeEmitter(u16 particleID, MtxP mtx, const cXyz* pos, const cXyz* scale) { end(); mpMtx = mtx; - dComIfGp_particle_setP1(particleID, pos, NULL, scale, 0xFF, this); + return dComIfGp_particle_setP1(particleID, pos, NULL, scale, 0xFF, this); } /* 80102C84-80102D14 .text makeEmitterColor__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC8_GXColorPC8_GXColor */ -void daPy_mtxFollowEcallBack_c::makeEmitterColor(u16 particleID, MtxP mtx, const cXyz* pos, const GXColor* prmColor, const GXColor* envColor) { +JPABaseEmitter* daPy_mtxFollowEcallBack_c::makeEmitterColor(u16 particleID, MtxP mtx, const cXyz* pos, const GXColor* prmColor, const GXColor* envColor) { end(); mpMtx = mtx; - dComIfGp_particle_setP1(particleID, pos, NULL, NULL, 0xFF, this, -1, prmColor, envColor); + return dComIfGp_particle_setP1(particleID, pos, NULL, NULL, 0xFF, this, -1, prmColor, envColor); } /* 80102D14-80102D90 .text setDoButtonQuake__9daPy_py_cFv */ diff --git a/src/d/actor/d_a_player_battle.inc b/src/d/actor/d_a_player_battle.inc index 7d5de38b8..d4323748a 100644 --- a/src/d/actor/d_a_player_battle.inc +++ b/src/d/actor/d_a_player_battle.inc @@ -1,8 +1,7 @@ /** * d_a_player_battle.inc * - * Code relating to (?) (How is this different from the "cut" functions in the - * sword file?) + * Code relating to parrying enemies. * * This file is not a standalone translation unit and is instead directly * included into d_a_player_main.cpp. @@ -53,10 +52,10 @@ void daPy_lk_c::setSpecialBattle(BOOL param_0) { } /* 8013E384-8013E454 .text changeSpecialBattle__9daPy_lk_cFv */ -int daPy_lk_c::changeSpecialBattle() { +BOOL daPy_lk_c::changeSpecialBattle() { if (mpAttnActorLockOn != NULL && (dComIfGp_getDoStatus() == 26 || (m34C5 == 5))) { fopEn_enemy_c* enemy = (fopEn_enemy_c*)mpAttnActorLockOn; - if (m34C5 == 5 || (doTrigger() && enemy->getBtStartFrame() <= enemy->getBtNowFrame())) { + if (m34C5 == 5 || (spBattleTrigger() && enemy->getBtStartFrame() <= enemy->getBtNowFrame())) { if (enemy->getBtAttackType() == 1) { return procBtJump_init(enemy); } diff --git a/src/d/actor/d_a_player_bottle.inc b/src/d/actor/d_a_player_bottle.inc index 64879a510..09b123b3d 100644 --- a/src/d/actor/d_a_player_bottle.inc +++ b/src/d/actor/d_a_player_bottle.inc @@ -131,7 +131,7 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) { iVar2 = checkShipRideUseItem(1); commonProcInit(daPyProc_BOTTLE_SWING_e); if ((int)param_0 != 0) { - deleteEquipItem(0); + deleteEquipItem(FALSE); setBottleModel(0x50); } current.angle.y = shape_angle.y; @@ -211,7 +211,7 @@ BOOL daPy_lk_c::procBottleGet() { if ((frameCtrl.getRate() < 0.01f) && (checkEndMessage(mEquipItem + 0x65))) { dComIfGp_event_reset(); dCam_getBody()->EndEventCamera(fopAcM_GetID(this)); - deleteEquipItem(0); + deleteEquipItem(FALSE); endDemoMode(); } else { if (frameCtrl.getFrame() >= 9.0f) { diff --git a/src/d/actor/d_a_player_climb.inc b/src/d/actor/d_a_player_climb.inc index 69d6a5f1a..618ee0ac2 100644 --- a/src/d/actor/d_a_player_climb.inc +++ b/src/d/actor/d_a_player_climb.inc @@ -197,7 +197,7 @@ BOOL daPy_lk_c::checkBgClimbMove() { mGndChk.SetPos(&local_5c); dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk); cM3dGPla* triPla; - if (((-1.0E+9f != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) && + if (((C_BG_MIN_HEIGHT != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) && (dVar3 >= (local_68.y - 30.0f))) { dVar4 = 3.0f; diff --git a/src/d/actor/d_a_player_crawl.inc b/src/d/actor/d_a_player_crawl.inc index 19e9ca98d..0cee9a006 100644 --- a/src/d/actor/d_a_player_crawl.inc +++ b/src/d/actor/d_a_player_crawl.inc @@ -222,8 +222,6 @@ BOOL daPy_lk_c::checkNotCrawlStand(cXyz* param_0, cXyz* param_1) { /* 80139760-80139878 .text procCrawlMove_init__9daPy_lk_cFss */ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) { BOOL var_r29; - BOOL var_r28 = 0; - if (mCurProc == daPyProc_CRAWL_AUTO_MOVE_e) { var_r29 = 0; } else { diff --git a/src/d/actor/d_a_player_fan.inc b/src/d/actor/d_a_player_fan.inc index e09e6085c..872a56df5 100644 --- a/src/d/actor/d_a_player_fan.inc +++ b/src/d/actor/d_a_player_fan.inc @@ -235,88 +235,81 @@ BOOL daPy_lk_c::procFanSwing() { daPy_HIO_move_c0::m.field_0x1C, daPy_HIO_move_c0::m.field_0x20 ); - } else { - if (m3570 == 0) { - if (m34D0 != 0) { - if (!checkHeavyStateOn() && - (!mAcch.ChkGroundHit() || - checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) || - (!dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) || (!dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd)))) - { - mVelocity = 10.0f; - current.angle.y = shape_angle.y + 0x8000; - if (mCurrAttributeCode == dBgS_Attr_ICE_e) { - m36A0.x += 10.0f * cM_ssin(current.angle.y); - m36A0.z += 10.0f * cM_scos(current.angle.y); - } + } else if (m3570 == 0) { + if (m34D0 != 0) { + if (!checkHeavyStateOn() && + (!mAcch.ChkGroundHit() || checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) || + !dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd) || !dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd))) + { + mVelocity = 10.0f; + current.angle.y = shape_angle.y + 0x8000; + if (mCurrAttributeCode == dBgS_Attr_ICE_e) { + m36A0.x += 10.0f * cM_ssin(current.angle.y); + m36A0.z += 10.0f * cM_scos(current.angle.y); } - m3534 = 10; - m353A = 3; - local_60.set(current.pos.x, current.pos.y + 70.0f, current.pos.z); - m3536 = shape_angle.y; - if (mpAttnActorLockOn == NULL) { - m3538 = 0; - } else { - local_54 = (mpAttnActorLockOn->eyePos - current.pos); - m3538 = cM_atan2s(-local_54.y, local_54.absXZ()); - } - mpYuchw00Brk->setFrame(0.0f); - m33E8.end(); - m33E8.makeEmitter(dPa_name::ID_COMMON_0032, mpYuchw00Model->getAnmMtx(2), &local_60, NULL); - pJVar5 = m33E8.getEmitter(); - if (pJVar5 != NULL) { - pJVar5->setGlobalPrmColor(tevStr.mColorC0.r, tevStr.mColorC0.g, tevStr.mColorC0.b); - } - mFanWindCps.SetStartEnd(current.pos, local_60); - seStartOnlyReverb(JA_SE_LK_FAN_SWING); - local_48.set( - current.pos.x + 100.0f * cM_ssin(shape_angle.y), - current.pos.y + 50.0f, - current.pos.z + 100.0f * cM_scos(shape_angle.y) - ); - mGndChk.SetPos(&local_48); - local_48.y = dComIfG_Bgsp()->GroundCross(&mGndChk); - if (local_48.y >= current.pos.y - 50.0f) { - int iVar4 = dComIfG_Bgsp()->GetAttributeCode(mGndChk); - if (!strcmp(dComIfGp_getStartStageName(), "Adanmae")) { - dComIfGp_particle_setP1(dPa_name::ID_SCENE_8236, &local_48, &shape_angle); - } - dPa_control_c::mSmokeEcallback.onWindOff(); - int iStack_84; - pJVar5 = dComIfGp_particle_setSimpleLand( - iVar4, &local_48, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_84, 0x17 - ); - dPa_control_c::mSmokeEcallback.offWindOff(); - if (pJVar5) { - csXyz local_80; - local_80.y = shape_angle.y + 0x8000; - local_80.x = getGroundAngle(&(mGndChk), local_80.y); - local_80.z = getGroundAngle(&(mGndChk), local_80.y + -0x4000); - mDoMtx_trans(mDoMtx_stack_c::now, local_48.x, local_48.y, local_48.z); - mDoMtx_ZXYrotM(mDoMtx_stack_c::now, local_80.x, local_80.y, local_80.z); - JPASetRMtxTVecfromMtx( - mDoMtx_stack_c::now, pJVar5->mGlobalRotation, (pJVar5->mGlobalTranslation) - ); - pJVar5->setSpread(0.45f); - if (iVar4 == 4) { - pJVar5->setRate(100.0f); - } else { - pJVar5->setRate(50.0f); - } - } - } - local_3c.set(current.pos.x, current.pos.y + 50.0f, current.pos.z); - dKyw_squal_set(&local_3c, 1000, shape_angle.y, 280.0f, 1000.0f, 1.0f, 140.0f, 0.08f); + } + m3534 = 10; + m353A = 3; + local_60.set(current.pos.x, current.pos.y + 70.0f, current.pos.z); + m3536 = shape_angle.y; + if (mpAttnActorLockOn == NULL) { + m3538 = 0; } else { - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + local_54 = (mpAttnActorLockOn->eyePos - current.pos); + m3538 = cM_atan2s(-local_54.y, local_54.absXZ()); } - voiceStart(1); - m3570 = 1; + mpYuchw00Brk->setFrame(0.0f); + m33E8.end(); + m33E8.makeEmitter(dPa_name::ID_COMMON_0032, mpYuchw00Model->getAnmMtx(2), &local_60, NULL); + pJVar5 = m33E8.getEmitter(); + if (pJVar5 != NULL) { + pJVar5->setGlobalPrmColor(tevStr.mColorC0.r, tevStr.mColorC0.g, tevStr.mColorC0.b); + } + mFanWindCps.SetStartEnd(current.pos, local_60); + seStartOnlyReverb(JA_SE_LK_FAN_SWING); + local_48.set( + current.pos.x + 100.0f * cM_ssin(shape_angle.y), + current.pos.y + 50.0f, + current.pos.z + 100.0f * cM_scos(shape_angle.y) + ); + mGndChk.SetPos(&local_48); + local_48.y = dComIfG_Bgsp()->GroundCross(&mGndChk); + if (local_48.y >= current.pos.y - 50.0f) { + int iVar4 = dComIfG_Bgsp()->GetAttributeCode(mGndChk); + if (!strcmp(dComIfGp_getStartStageName(), "Adanmae")) { + dComIfGp_particle_setP1(dPa_name::ID_SCENE_8236, &local_48, &shape_angle); + } + dPa_control_c::mSmokeEcallback.onWindOff(); + int iStack_84; + pJVar5 = dComIfGp_particle_setSimpleLand( + iVar4, &local_48, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_84, 0x17 + ); + dPa_control_c::mSmokeEcallback.offWindOff(); + if (pJVar5) { + csXyz local_80; + local_80.y = shape_angle.y + 0x8000; + local_80.x = getGroundAngle(&(mGndChk), local_80.y); + local_80.z = getGroundAngle(&(mGndChk), local_80.y + -0x4000); + mDoMtx_trans(mDoMtx_stack_c::now, local_48.x, local_48.y, local_48.z); + mDoMtx_ZXYrotM(mDoMtx_stack_c::now, local_80.x, local_80.y, local_80.z); + JPASetRMtxTVecfromMtx(mDoMtx_stack_c::now, pJVar5->mGlobalRotation, (pJVar5->mGlobalTranslation)); + pJVar5->setSpread(0.45f); + if (iVar4 == 4) { + pJVar5->setRate(100.0f); + } else { + pJVar5->setRate(50.0f); + } + } + } + local_3c.set(current.pos.x, current.pos.y + 50.0f, current.pos.z); + dKyw_squal_set(&local_3c, 1000, shape_angle.y, 280.0f, 1000.0f, 1.0f, 140.0f, 0.08f); } else { - if (cLib_addCalc(&mVelocity, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) { - resetFootEffect(); - } + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); } + voiceStart(1); + m3570 = 1; + } else if (cLib_addCalc(&mVelocity, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) { + resetFootEffect(); } m35EC = frameCtrl.getFrame(); @@ -381,7 +374,7 @@ BOOL daPy_lk_c::procFanGlide() { } } if (frameCtrl.getRate() < 0.01f && m3570 == 0 && m32E4.mpEmitter == NULL) { - m32E4.makeEmitter(0x4c, mpCLModel->getAnmMtx(0xf), ¤t.pos, NULL); + m32E4.makeEmitter(dPa_name::ID_COMMON_004C, mpCLModel->getAnmMtx(0xf), ¤t.pos, NULL); } if (frameCtrl.getFrame() > 2.0f || m3570 != 0) { @@ -439,7 +432,7 @@ BOOL daPy_lk_c::procFanGlide() { gravity = daPy_HIO_fan_c0::m.field_0x3C; maxFallSpeed = daPy_HIO_fan_c0::m.field_0x38; } - if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && (frameCtrl.getRate() < 0.01f) && m3570 == 0) { + if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && frameCtrl.getRate() < 0.01f && m3570 == 0) { setSingleMoveAnime( ANM_USEFANB, daPy_HIO_fan_c0::m.field_0x20, diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index a13bed6d8..c3c9e625f 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -989,7 +989,7 @@ BOOL daPy_lk_c::draw() { mDoExt_modelUpdateDL(mpSuimenMunyaModel); } if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) { - if (checkSwordEquip() && !checkDemoSwordNoDraw(1)) { + if (checkSwordEquip() && !checkDemoSwordNoDraw(TRUE)) { entryDLSetLight(mpEquippedSwordModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE); } } @@ -1003,7 +1003,7 @@ BOOL daPy_lk_c::draw() { if (mpBottleContentsModel != NULL) { updateDLSetLight(mpBottleContentsModel, 0); } - if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(0)) { + if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(FALSE)) { if (!checkBowItem(mEquipItem) || !checkPlayerGuard()) { if (mEquipItem == dItem_HOOKSHOT_e) { if (mActorKeepEquip.getActor()) { @@ -1013,7 +1013,7 @@ BOOL daPy_lk_c::draw() { } entryDLSetLight(mpEquipItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE); if (mpSwordModel1 != NULL) { - if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e) { + if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || checkFinalMasterSwordEquip()) { updateDLSetLight(mpSwordModel1, 0); } } @@ -1752,7 +1752,7 @@ BOOL daPy_lk_c::setDamagePoint(f32 amount) { dComIfGp_setItemLifeCount(amount); if (amount < 0.0f) { offNoResetFlg1(daPyFlg1_UNK8000); - if (dComIfGs_getSelectEquip(0) != dItem_MASTER_SWORD_3_e) { + if (!checkFinalMasterSwordEquip()) { offNoResetFlg1(daPyFlg1_UNK200000); } } diff --git a/src/d/actor/d_a_player_ship.inc b/src/d/actor/d_a_player_ship.inc index 5b8f53ab3..03149fb52 100644 --- a/src/d/actor/d_a_player_ship.inc +++ b/src/d/actor/d_a_player_ship.inc @@ -399,7 +399,7 @@ BOOL daPy_lk_c::procShipSteer_init() { return false; } else { commonProcInit(daPyProc_SHIP_STEER_e); - deleteEquipItem(1); + deleteEquipItem(TRUE); gravity = 0.0f; mVelocity = 0.0f; speed.y = 0.0f; @@ -461,7 +461,7 @@ BOOL daPy_lk_c::procShipPaddle() { BOOL daPy_lk_c::procShipScope_init(int param_0) { daShip_c* iVar1 = dComIfGp_getShipActor(); commonProcInit(daPyProc_SHIP_SCOPE_e); - deleteEquipItem(1); + deleteEquipItem(TRUE); gravity = 0.0f; iVar1->m034D = 2; setShipRidePos(0); @@ -591,7 +591,7 @@ BOOL daPy_lk_c::procShipCannon_init() { } else { daShip_c* iVar1 = dComIfGp_getShipActor(); commonProcInit(daPyProc_SHIP_CANNON_e); - deleteEquipItem(1); + deleteEquipItem(TRUE); gravity = 0.0f; mVelocity = 0.0f; iVar1->m034D = 9; diff --git a/src/d/actor/d_a_player_swim.inc b/src/d/actor/d_a_player_swim.inc index def83376d..e85b0337f 100644 --- a/src/d/actor/d_a_player_swim.inc +++ b/src/d/actor/d_a_player_swim.inc @@ -218,7 +218,7 @@ BOOL daPy_lk_c::checkSwimFallCheck() { BOOL daPy_lk_c::changeSwimOutProc() { cM3dGPla* pcVar1; - if (mAcch.GetGroundH() != -1e+09f && dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) { + if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT && dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) { pcVar1 = dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd); } else { diff --git a/src/d/actor/d_a_player_sword.inc b/src/d/actor/d_a_player_sword.inc index 2331d9cd9..fbce82540 100644 --- a/src/d/actor/d_a_player_sword.inc +++ b/src/d/actor/d_a_player_sword.inc @@ -132,15 +132,17 @@ void daPy_lk_c::setLightSaver() { /* 80155490-801554C8 .text checkDemoShieldNoDraw__9daPy_lk_cFv */ BOOL daPy_lk_c::checkDemoShieldNoDraw() { - /* Nonmatching */ - return dComIfGs_isEventBit(0x3f40) != 0; + if (dComIfGs_isEventBit(0x3f40)) { + return TRUE; + } else { + return FALSE; + } } /* 801554C8-80155544 .text checkDemoSwordNoDraw__9daPy_lk_cFi */ -BOOL daPy_lk_c::checkDemoSwordNoDraw(int param_0) { - /* Nonmatching - extra clrlwi instruction */ - if (((mEquipItem == daPyItem_SWORD_e) || (param_0 != 0)) && - (dComIfGs_isEventBit(0x3f40) || (mCurProc == daPyProc_DEMO_TOOL_e && (m34D6 == 1)))) +BOOL daPy_lk_c::checkDemoSwordNoDraw(BOOL param_0) { + if ((mEquipItem == daPyItem_SWORD_e || param_0) && + (dComIfGs_isEventBit(0x3f40) || (mCurProc == daPyProc_DEMO_TOOL_e && m34D6 == 1))) { return true; } else { @@ -150,7 +152,7 @@ BOOL daPy_lk_c::checkDemoSwordNoDraw(int param_0) { /* 80155544-80155574 .text checkChanceMode__9daPy_lk_cFv */ BOOL daPy_lk_c::checkChanceMode() { - if ((dComIfGp_getDoStatus() == 26) || (checkModeFlg(ModeFlg_PARRY))) { + if (dComIfGp_getDoStatus() == 26 || checkModeFlg(ModeFlg_PARRY)) { return true; } return false; @@ -158,7 +160,7 @@ BOOL daPy_lk_c::checkChanceMode() { /* 80155574-8015559C .text checkCutRollChange__9daPy_lk_cCFv */ BOOL daPy_lk_c::checkCutRollChange() const { - if ((mCurProc == daPyProc_CUT_TURN_MOVE_e) && !(m34D0 < 0)) { + if (mCurProc == daPyProc_CUT_TURN_MOVE_e && m34D0 >= 0) { return true; } return false; @@ -243,7 +245,6 @@ void daPy_lk_c::setExtraFinishCutAtParam(u8 cutType) { /* 8015585C-80155970 .text setJumpCutAtParam__9daPy_lk_cFv */ void daPy_lk_c::setJumpCutAtParam() { - /* Nonmatching - floats */ mCutCount = 0; if (mEquipItem == daPyItem_SWORD_e) { int atp; @@ -289,19 +290,15 @@ int daPy_lk_c::getCutDirection() { /* 801559F0-80155C3C .text changeCutProc__9daPy_lk_cFv */ int daPy_lk_c::changeCutProc() { u32 bVar1; - short sVar2; - int iVar4; - if (m34C5 == 5) { - iVar4 = changeSpecialBattle(); - if (iVar4 != 0) { - m34C4 = 0; - return true; - } + if (m34C5 == 5 && changeSpecialBattle()) { + m34C4 = 0; + return true; } m34C4++; - iVar4 = getCutDirection() - 1; - if (mpAttention->Lockon() || (mStickDistance <= 0.05f)) { + int iVar4 = getCutDirection() - 1; + short sVar2; + if (mpAttention->Lockon() || mStickDistance <= 0.05f) { sVar2 = shape_angle.y; } else { sVar2 = m34E8; @@ -313,8 +310,9 @@ int daPy_lk_c::changeCutProc() { mCutCount = bVar1; } bVar1 = m34C4; + if (bVar1 == 4) { - if ((iVar4 == 3) || (iVar4 == 0)) { + if (iVar4 == 3 || iVar4 == 0) { procCutEA_init(); } else { procCutEB_init(); @@ -352,6 +350,7 @@ int daPy_lk_c::changeCutProc() { procCutExA_init(); } } + m3578 = 0; return true; } @@ -395,7 +394,7 @@ BOOL daPy_lk_c::procCutA_init(s16 param_0) { BOOL daPy_lk_c::procCutA() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -406,65 +405,61 @@ BOOL daPy_lk_c::procCutA() { m34B8 = 3; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutA_c0::m.field_0xC) { - f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; - mVelocity = 0.0f; - m34B8 = 3; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - m34B8 = uVar1; - } - if (changeCutReverseProc(ANM_CUTRER)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 1; - } - m34C2 = 1; - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - m34D4 = shape_angle.y; - } else { - cLib_addCalcAngleS( - &shape_angle.y, - m34D4, - daPy_HIO_turn_c0::m.field_0x4, - daPy_HIO_turn_c0::m.field_0x0, - daPy_HIO_turn_c0::m.field_0x2 - ); - } - current.angle.y = shape_angle.y; - if (frameCtrl.checkPass(daPy_HIO_cutA_c0::m.field_0x28)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutA_c0::m.field_0x10 + daPy_HIO_cutA_c0::m.field_0x14; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutA_c0::m.field_0x2C) && - (frameCtrl.getFrame() < daPy_HIO_cutA_c0::m.field_0x30)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutA_c0::m.field_0x20, - daPy_HIO_cutA_c0::m.field_0x18, - daPy_HIO_cutA_c0::m.field_0x1C - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutA_c0::m.field_0xC) { + f32 dVar4 = mVelocity; + u8 uVar1 = m34B8; + mVelocity = 0.0f; + m34B8 = 3; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + m34B8 = uVar1; + } + if (changeCutReverseProc(ANM_CUTRER)) { + return true; + } + + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + + if (swordTrigger() && m34C5 != 5) { + m34C5 = 1; + } + m34C2 = 1; + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + m34D4 = shape_angle.y; + } else { + cLib_addCalcAngleS( + &shape_angle.y, + m34D4, + daPy_HIO_turn_c0::m.field_0x4, + daPy_HIO_turn_c0::m.field_0x0, + daPy_HIO_turn_c0::m.field_0x2 + ); + } + current.angle.y = shape_angle.y; + if (frameCtrl.checkPass(daPy_HIO_cutA_c0::m.field_0x28)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutA_c0::m.field_0x10 + daPy_HIO_cutA_c0::m.field_0x14; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutA_c0::m.field_0x2C && frameCtrl.getFrame() < daPy_HIO_cutA_c0::m.field_0x30) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + cLib_addCalc( + &mVelocity, 0.0f, daPy_HIO_cutA_c0::m.field_0x20, daPy_HIO_cutA_c0::m.field_0x18, daPy_HIO_cutA_c0::m.field_0x1C + ); + + return true; } /* 80156424-80156584 .text procCutF_init__9daPy_lk_cFs */ @@ -501,7 +496,7 @@ BOOL daPy_lk_c::procCutF_init(s16 param_0) { BOOL daPy_lk_c::procCutF() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -514,65 +509,59 @@ BOOL daPy_lk_c::procCutF() { m34B8 = 3; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutF_c0::m.field_0xC) { - f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; - mVelocity = 0.0f; - m34B8 = 3; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - m34B8 = uVar1; - } - if (changeCutReverseProc(ANM_CUTRER)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 2; - } - m34C2 = 1; - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - m34D4 = shape_angle.y; - } else { - cLib_addCalcAngleS( - &shape_angle.y, - m34D4, - daPy_HIO_turn_c0::m.field_0x4, - daPy_HIO_turn_c0::m.field_0x0, - daPy_HIO_turn_c0::m.field_0x2 - ); - } - current.angle.y = shape_angle.y; - if (frameCtrl.checkPass(daPy_HIO_cutF_c0::m.field_0x28)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutF_c0::m.field_0x10 + daPy_HIO_cutF_c0::m.field_0x14; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutF_c0::m.field_0x2C) && - (frameCtrl.getFrame() < daPy_HIO_cutF_c0::m.field_0x30)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutF_c0::m.field_0x20, - daPy_HIO_cutF_c0::m.field_0x18, - daPy_HIO_cutF_c0::m.field_0x1C - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutF_c0::m.field_0xC) { + f32 dVar4 = mVelocity; + u8 uVar1 = m34B8; + mVelocity = 0.0f; + m34B8 = 3; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + m34B8 = uVar1; + } + if (changeCutReverseProc(ANM_CUTRER)) { + return true; + } + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + + if (swordTrigger() && m34C5 != 5) { + m34C5 = 2; + } + m34C2 = 1; + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + m34D4 = shape_angle.y; + } else { + cLib_addCalcAngleS( + &shape_angle.y, + m34D4, + daPy_HIO_turn_c0::m.field_0x4, + daPy_HIO_turn_c0::m.field_0x0, + daPy_HIO_turn_c0::m.field_0x2 + ); + } + current.angle.y = shape_angle.y; + if (frameCtrl.checkPass(daPy_HIO_cutF_c0::m.field_0x28)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutF_c0::m.field_0x10 + daPy_HIO_cutF_c0::m.field_0x14; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutF_c0::m.field_0x2C && frameCtrl.getFrame() < daPy_HIO_cutF_c0::m.field_0x30) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + cLib_addCalc( + &mVelocity, 0.0f, daPy_HIO_cutF_c0::m.field_0x20, daPy_HIO_cutF_c0::m.field_0x18, daPy_HIO_cutF_c0::m.field_0x1C + ); + return true; } /* 80156828-80156984 .text procCutR_init__9daPy_lk_cFs */ @@ -608,7 +597,7 @@ BOOL daPy_lk_c::procCutR_init(s16 param_0) { BOOL daPy_lk_c::procCutR() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -619,65 +608,61 @@ BOOL daPy_lk_c::procCutR() { m34B8 = 3; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutR_c0::m.field_0xC) { - f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; - mVelocity = 0.0f; - m34B8 = 3; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - m34B8 = uVar1; - } - if (changeCutReverseProc(ANM_CUTRER)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 3; - } - m34C2 = 1; - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - m34D4 = shape_angle.y; - } else { - cLib_addCalcAngleS( - &shape_angle.y, - m34D4, - daPy_HIO_turn_c0::m.field_0x4, - daPy_HIO_turn_c0::m.field_0x0, - daPy_HIO_turn_c0::m.field_0x2 - ); - } - current.angle.y = shape_angle.y; - if (frameCtrl.checkPass(daPy_HIO_cutR_c0::m.field_0x28)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutR_c0::m.field_0x10 + daPy_HIO_cutR_c0::m.field_0x14; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutR_c0::m.field_0x2C) && - (frameCtrl.getFrame() < daPy_HIO_cutR_c0::m.field_0x30)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutR_c0::m.field_0x20, - daPy_HIO_cutR_c0::m.field_0x18, - daPy_HIO_cutR_c0::m.field_0x1C - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutR_c0::m.field_0xC) { + f32 dVar4 = mVelocity; + u8 uVar1 = m34B8; + mVelocity = 0.0f; + m34B8 = 3; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + m34B8 = uVar1; + } + + if (changeCutReverseProc(ANM_CUTRER)) { + return true; + } + + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + + if (swordTrigger() && m34C5 != 5) { + m34C5 = 3; + } + m34C2 = 1; + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + m34D4 = shape_angle.y; + } else { + cLib_addCalcAngleS( + &shape_angle.y, + m34D4, + daPy_HIO_turn_c0::m.field_0x4, + daPy_HIO_turn_c0::m.field_0x0, + daPy_HIO_turn_c0::m.field_0x2 + ); + } + current.angle.y = shape_angle.y; + if (frameCtrl.checkPass(daPy_HIO_cutR_c0::m.field_0x28)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutR_c0::m.field_0x10 + daPy_HIO_cutR_c0::m.field_0x14; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutR_c0::m.field_0x2C && frameCtrl.getFrame() < daPy_HIO_cutR_c0::m.field_0x30) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + cLib_addCalc( + &mVelocity, 0.0f, daPy_HIO_cutR_c0::m.field_0x20, daPy_HIO_cutR_c0::m.field_0x18, daPy_HIO_cutR_c0::m.field_0x1C + ); + return true; } /* 80156C10-80156D6C .text procCutL_init__9daPy_lk_cFs */ @@ -713,7 +698,7 @@ BOOL daPy_lk_c::procCutL_init(s16 param_0) { BOOL daPy_lk_c::procCutL() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -724,65 +709,59 @@ BOOL daPy_lk_c::procCutL() { m34B8 = 2; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutL_c0::m.field_0xC) { - f32 dVar4 = mVelocity; - u8 uVar1 = m34B8; - mVelocity = 0.0f; - m34B8 = 2; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - m34B8 = uVar1; - } - if (changeCutReverseProc(ANM_CUTREL)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 4; - } - m34C2 = 1; - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - m34D4 = shape_angle.y; - } else { - cLib_addCalcAngleS( - &shape_angle.y, - m34D4, - daPy_HIO_turn_c0::m.field_0x4, - daPy_HIO_turn_c0::m.field_0x0, - daPy_HIO_turn_c0::m.field_0x2 - ); - } - current.angle.y = shape_angle.y; - if (frameCtrl.checkPass(daPy_HIO_cutL_c0::m.field_0x28)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutL_c0::m.field_0x10 + daPy_HIO_cutL_c0::m.field_0x14; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutL_c0::m.field_0x2C) && - (frameCtrl.getFrame() < daPy_HIO_cutL_c0::m.field_0x30)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutL_c0::m.field_0x20, - daPy_HIO_cutL_c0::m.field_0x18, - daPy_HIO_cutL_c0::m.field_0x1C - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutL_c0::m.field_0xC) { + f32 dVar4 = mVelocity; + u8 uVar1 = m34B8; + mVelocity = 0.0f; + m34B8 = 2; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + m34B8 = uVar1; + } + if (changeCutReverseProc(ANM_CUTREL)) { + return true; + } + + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + if (swordTrigger() && m34C5 != 5) { + m34C5 = 4; + } + m34C2 = 1; + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + m34D4 = shape_angle.y; + } else { + cLib_addCalcAngleS( + &shape_angle.y, + m34D4, + daPy_HIO_turn_c0::m.field_0x4, + daPy_HIO_turn_c0::m.field_0x0, + daPy_HIO_turn_c0::m.field_0x2 + ); + } + current.angle.y = shape_angle.y; + if (frameCtrl.checkPass(daPy_HIO_cutL_c0::m.field_0x28)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutL_c0::m.field_0x10 + daPy_HIO_cutL_c0::m.field_0x14; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutL_c0::m.field_0x2C && frameCtrl.getFrame() < daPy_HIO_cutL_c0::m.field_0x30) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + cLib_addCalc( + &mVelocity, 0.0f, daPy_HIO_cutL_c0::m.field_0x20, daPy_HIO_cutL_c0::m.field_0x18, daPy_HIO_cutL_c0::m.field_0x1C + ); + return true; } /* 80156FF8-80157154 .text procCutEA_init__9daPy_lk_cFv */ @@ -818,7 +797,7 @@ BOOL daPy_lk_c::procCutEA_init() { BOOL daPy_lk_c::procCutEA() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -835,36 +814,38 @@ BOOL daPy_lk_c::procCutEA() { } if (changeCutReverseProc(ANM_CUTREL)) { return true; - } else if (mpAttnActorLockOn != NULL) { + } + + if (mpAttnActorLockOn != NULL) { setShapeAngleToAtnActor(); current.angle.y = shape_angle.y; } setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if (frameCtrl.checkPass(daPy_HIO_cutEA_c0::m.field_0x24)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutEA_c0::m.field_0xC + daPy_HIO_cutEA_c0::m.field_0x10; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutEA_c0::m.field_0x28) && - (frameCtrl.getFrame() < daPy_HIO_cutEA_c0::m.field_0x2C)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - m34C2 = 1; - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutEA_c0::m.field_0x1C, - daPy_HIO_cutEA_c0::m.field_0x14, - daPy_HIO_cutEA_c0::m.field_0x18 - ); - return true; + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); } + + if (frameCtrl.checkPass(daPy_HIO_cutEA_c0::m.field_0x24)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutEA_c0::m.field_0xC + daPy_HIO_cutEA_c0::m.field_0x10; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutEA_c0::m.field_0x28 && + frameCtrl.getFrame() < daPy_HIO_cutEA_c0::m.field_0x2C) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + m34C2 = 1; + cLib_addCalc( + &mVelocity, + 0.0f, + daPy_HIO_cutEA_c0::m.field_0x1C, + daPy_HIO_cutEA_c0::m.field_0x14, + daPy_HIO_cutEA_c0::m.field_0x18 + ); + return true; } /* 80157348-801574A4 .text procCutEB_init__9daPy_lk_cFv */ @@ -900,7 +881,7 @@ BOOL daPy_lk_c::procCutEB_init() { BOOL daPy_lk_c::procCutEB() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -921,31 +902,31 @@ BOOL daPy_lk_c::procCutEB() { setShapeAngleToAtnActor(); current.angle.y = shape_angle.y; setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { + if (doTrigger() && dComIfGp_getDoStatus() == 26) { changeSpecialBattle(); - } else { - if (frameCtrl.checkPass(daPy_HIO_cutEB_c0::m.field_0x24)) { - mVelocity = std::fabsf(speedF) * daPy_HIO_cutEB_c0::m.field_0xC + daPy_HIO_cutEB_c0::m.field_0x10; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutEB_c0::m.field_0x28) && - (frameCtrl.getFrame() < daPy_HIO_cutEB_c0::m.field_0x2C)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - m34C2 = 1; - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutEB_c0::m.field_0x1C, - daPy_HIO_cutEB_c0::m.field_0x14, - daPy_HIO_cutEB_c0::m.field_0x18 - ); - return true; } + + if (frameCtrl.checkPass(daPy_HIO_cutEB_c0::m.field_0x24)) { + mVelocity = std::fabsf(speedF) * daPy_HIO_cutEB_c0::m.field_0xC + daPy_HIO_cutEB_c0::m.field_0x10; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutEB_c0::m.field_0x28 && + frameCtrl.getFrame() < daPy_HIO_cutEB_c0::m.field_0x2C) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + m34C2 = 1; + cLib_addCalc( + &mVelocity, + 0.0f, + daPy_HIO_cutEB_c0::m.field_0x1C, + daPy_HIO_cutEB_c0::m.field_0x14, + daPy_HIO_cutEB_c0::m.field_0x18 + ); + return true; } /* 8015768C-801577EC .text procCutExA_init__9daPy_lk_cFv */ @@ -980,7 +961,7 @@ BOOL daPy_lk_c::procCutExA_init() { BOOL daPy_lk_c::procCutExA() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -990,52 +971,52 @@ BOOL daPy_lk_c::procCutExA() { mVelocity = 0.0f; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutExA_c0::m.field_0x1C) { - f32 dVar4 = mVelocity; - mVelocity = 0.0f; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - } else if (frameCtrl.checkPass(11.0f)) { - onModeFlg(ModeFlg_00000080); - } - if (changeCutReverseProc(ANM_CUTREL)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 26; - } - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - current.angle.y = shape_angle.y; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutExA_c0::m.field_0x14) && - (frameCtrl.getFrame() < daPy_HIO_cutExA_c0::m.field_0x18)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - m34C2 = 1; - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutEA_c0::m.field_0x1C, - daPy_HIO_cutEA_c0::m.field_0x14, - daPy_HIO_cutEA_c0::m.field_0x18 - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutExA_c0::m.field_0x1C) { + f32 dVar4 = mVelocity; + mVelocity = 0.0f; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + } else if (frameCtrl.checkPass(11.0f)) { + onModeFlg(ModeFlg_00000080); + } + if (changeCutReverseProc(ANM_CUTREL)) { + return true; + } + + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + + if (swordTrigger() && m34C5 != 5) { + m34C5 = 26; + } + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + current.angle.y = shape_angle.y; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutExA_c0::m.field_0x14 && + frameCtrl.getFrame() < daPy_HIO_cutExA_c0::m.field_0x18) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + m34C2 = 1; + cLib_addCalc( + &mVelocity, + 0.0f, + daPy_HIO_cutEA_c0::m.field_0x1C, + daPy_HIO_cutEA_c0::m.field_0x14, + daPy_HIO_cutEA_c0::m.field_0x18 + ); + return true; } /* 80157A18-80157B74 .text procCutExB_init__9daPy_lk_cFv */ @@ -1069,14 +1050,14 @@ BOOL daPy_lk_c::procCutExB_init() { /* 80157B74-80157D3C .text procCutExB__9daPy_lk_cFv */ BOOL daPy_lk_c::procCutExB() { - /* Nonmatching - floats */ J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); } + if (frameCtrl.getRate() < 0.01f) { if ((int)m34D0 > 0) { m34D0--; @@ -1088,35 +1069,40 @@ BOOL daPy_lk_c::procCutExB() { } else if (frameCtrl.checkPass(14.0f)) { onModeFlg(ModeFlg_00000080); } + if (changeCutReverseProc(ANM_CUTREL)) { return true; - } else if (mpAttnActorLockOn != NULL) { + } + + if (mpAttnActorLockOn != NULL) { setShapeAngleToAtnActor(); current.angle.y = shape_angle.y; } + setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((frameCtrl.getFrame() >= daPy_HIO_cutExB_c0::m.field_0x10) && - (frameCtrl.getFrame() < daPy_HIO_cutExB_c0::m.field_0x14)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - m34C2 = 1; - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutEA_c0::m.field_0x1C, - daPy_HIO_cutEA_c0::m.field_0x14, - daPy_HIO_cutEA_c0::m.field_0x18 - ); - return true; + + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); } + + if (frameCtrl.getFrame() >= daPy_HIO_cutExB_c0::m.field_0x10 && + frameCtrl.getFrame() < daPy_HIO_cutExB_c0::m.field_0x14) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + m34C2 = 1; + cLib_addCalc( + &mVelocity, + 0.0f, + daPy_HIO_cutEA_c0::m.field_0x1C, + daPy_HIO_cutEA_c0::m.field_0x14, + daPy_HIO_cutEA_c0::m.field_0x18 + ); + return true; } /* 80157D3C-80158220 .text procCutTurn_init__9daPy_lk_cFi */ @@ -1141,7 +1127,6 @@ BOOL daPy_lk_c::procCutRoll() { /* 801588F0-80158A40 .text procCutRollEnd_init__9daPy_lk_cFv */ BOOL daPy_lk_c::procCutRollEnd_init() { - /* Nonmatching - floats, regalloc */ commonProcInit(daPyProc_CUT_ROLL_END_e); setSingleMoveAnime(ANM_WAITQ, daPy_HIO_move_c0::m.field_0x84, 0.0f, -1, daPy_HIO_basic_c0::m.field_0xC); mVelocity = 0.0f; @@ -1149,8 +1134,8 @@ BOOL daPy_lk_c::procCutRollEnd_init() { m34D0 = daPy_HIO_cutRoll_c0::m.field_0x6; static JGeometry::TVec3 emitter_trans(0.0f, 55.0f, 0.0f); static JGeometry::TVec3 particle_scale(0.76f, 0.76f, 0.76f); - m33A8.makeEmitter(dPa_name::ID_COMMON_STARS_SPIN, mpCLModel->getAnmMtx(15), ¤t.pos, NULL); - JPABaseEmitter* emitter = m33A8.getEmitter(); + JPABaseEmitter* emitter = + m33A8.makeEmitter(dPa_name::ID_COMMON_STARS_SPIN, mpCLModel->getAnmMtx(15), ¤t.pos, NULL); if (emitter != NULL) { emitter->setStatus(0x40); emitter->setVolumeSize(5); @@ -1189,7 +1174,7 @@ BOOL daPy_lk_c::procCutTurnCharge_init() { /* 80158B00-80158B58 .text procCutTurnCharge__9daPy_lk_cFv */ BOOL daPy_lk_c::procCutTurnCharge() { - if ((!swordButton()) || (daPy_dmEcallBack_c::m_type == 1)) { + if (!swordButton() || (daPy_dmEcallBack_c::m_type == 1)) { checkNextMode(0); } else if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { procCutTurnMove_init(); @@ -1199,47 +1184,38 @@ BOOL daPy_lk_c::procCutTurnCharge() { /* 80158B58-80158D40 .text procCutTurnMove_init__9daPy_lk_cFv */ BOOL daPy_lk_c::procCutTurnMove_init() { - /* Nonmatching */ static Vec eff_scale = {1.5f, 1.5f, 1.5f}; - bool bVar1; - uint uVar2; - int iVar3; + BOOL bVar1; cXyz* pcVar4; commonProcInit(daPyProc_CUT_TURN_MOVE_e); setSingleMoveAnime(ANM_CUTTURNPWFB, 0.0f, 0.0f, -1, daPy_HIO_cutTurnR_c0::m.field_0x1C); - if ((mEquipItem == daPyItem_BOKO_e) && (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != NULL)) { + if (mEquipItem == daPyItem_BOKO_e && (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != NULL)) { mFrameCtrlUpper[UPPER_MOVE0_e].setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getEnd() - 0.001f); mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame()); } m3598 = 1.0f; m34B8 = 0; + if (dComIfGs_isEventBit(0xb20)) { bVar1 = true; + } else if (dComIfGs_isTmpBit(0x402)) { + bVar1 = true; } else { - if (dComIfGs_isTmpBit(0x402)) { - bVar1 = true; - } else { - bVar1 = false; - } + bVar1 = false; } - if (((bVar1) && (mEquipItem == daPyItem_SWORD_e)) && (2 < dComIfGs_getMagic())) { - uVar2 = (2 - (uint)dComIfGp_getMiniGameType()); - if (((uVar2 >> 5 & 0xff) == 0) && (dComIfGp_getMiniGameType() != 6)) { - pcVar4 = NULL; - if (dComIfGs_getSelectEquip(0) == dItem_SWORD_e) { - pcVar4->x = eff_scale.x; - pcVar4->y = eff_scale.y; - pcVar4->z = eff_scale.z; - } - m32E4.makeEmitter(0x29, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); - m32F0.makeEmitter(0x2a, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); - m34D0 = 0x2f; - goto LAB_80158d10; - } + + if (bVar1 && mEquipItem == daPyItem_SWORD_e && dComIfGs_getMagic() >= 2 && !checkSwordMiniGame() && + dComIfGp_getMiniGameType() != 6) + { + pcVar4 = checkNormalSwordEquip() ? NULL : (cXyz*)&eff_scale; + m32E4.makeEmitter(dPa_name::ID_COMMON_0029, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); + m32F0.makeEmitter(dPa_name::ID_COMMON_002A, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); + m34D0 = 0x2f; + } else { + m34D0 = -1; } - m34D0 = -1; -LAB_80158d10: + dComIfGp_setPlayerStatus0(0, daPyStts0_SPIN_ATTACK_e); return true; } @@ -1248,7 +1224,7 @@ LAB_80158d10: BOOL daPy_lk_c::procCutTurnMove() { setShapeAngleToAtnActor(); m34E6 = shape_angle.y; - if ((0 < (s32)m34D0) && (m34D0 = (s32)m34D0 + -1, (s32)m34D0 == 0)) { + if (0 < (s32)m34D0 && (m34D0 = (s32)m34D0 + -1, (s32)m34D0 == 0)) { dComIfGp_setPlayerStatus1(0, daPyStts1_UNK20000_e); } if ((s32)m34D0 != -1) { @@ -1256,81 +1232,79 @@ BOOL daPy_lk_c::procCutTurnMove() { } if (changeSlideProc()) { return true; - } else { - if (daPy_dmEcallBack_c::m_type == 1) { - checkNextMode(0); - } else if (swordButton()) { - f32 dVar8 = 0.0f; - if (mStickDistance > 0.05f) { - s32 uVar5 = getDirectionFromAngle(m34E8 - m34E6); - daPy_ANM dVar6 = (daPy_ANM)0xffff; - cLib_addCalcAngleS(¤t.angle.y, m34E8, 4, 12000, 0x2000); - f32 in_f30; - if (((u32)m34B8 == 0) || ((u32)m34B8 == 1)) { - if ((uVar5 == 2) || (uVar5 == 3)) { - dVar6 = ANM_CUTTURNPWLR; - in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x24; - mVelocity *= 0.5f; - } else if (m34B8 != uVar5) { - mVelocity *= 0.5f; - } - } else if ((uVar5 == 0) || (uVar5 == 1)) { - dVar6 = ANM_CUTTURNPWFB; - in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x1C; + } + + if (daPy_dmEcallBack_c::m_type == 1) { + checkNextMode(0); + } else if (swordButton()) { + f32 dVar8 = 0.0f; + if (mStickDistance > 0.05f) { + s32 uVar5 = getDirectionFromAngle(m34E8 - m34E6); + daPy_ANM dVar6 = (daPy_ANM)0xffff; + cLib_addCalcAngleS(¤t.angle.y, m34E8, 4, 12000, 0x2000); + f32 in_f30; + if (((u32)m34B8 == 0) || ((u32)m34B8 == 1)) { + if (uVar5 == 2 || uVar5 == 3) { + dVar6 = ANM_CUTTURNPWLR; + in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x24; mVelocity *= 0.5f; } else if (m34B8 != uVar5) { mVelocity *= 0.5f; } - if (m34B8 == uVar5) { - dVar8 = (daPy_HIO_move_c0::m.field_0x14 * mStickDistance); - } else { - m34B8 = (u8)uVar5; - } - if (dVar6 != (daPy_ANM)0xffff) { - setSingleMoveAnime(dVar6, 0.0f, 0.0f, -1, in_f30); - } + } else if (uVar5 == 0 || uVar5 == 1) { + dVar6 = ANM_CUTTURNPWFB; + in_f30 = daPy_HIO_cutTurnR_c0::m.field_0x1C; + mVelocity *= 0.5f; + } else if (m34B8 != uVar5) { + mVelocity *= 0.5f; } - setNormalSpeedF(dVar8, 0.5f, 2.0f, 0.25f); - if (m34B8 == 0) { - dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x18; - } else if (m34B8 == 1) { - dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x18; - } else if (m34B8 == 3) { - dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x20; + if (m34B8 == uVar5) { + dVar8 = (daPy_HIO_move_c0::m.field_0x14 * mStickDistance); } else { - dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x20; + m34B8 = (u8)uVar5; } - f32 dVar7 = (mVelocity / mMaxNormalSpeed); - mFrameCtrlUnder[UNDER_MOVE0_e].setRate(dVar7 * dVar8); - if (dVar8 >= 0.0f) { - mFrameCtrlUnder[UNDER_MOVE0_e].setLoop(mFrameCtrlUnder[UNDER_MOVE0_e].getStart()); - } else { - mFrameCtrlUnder[UNDER_MOVE0_e].setLoop(mFrameCtrlUnder[UNDER_MOVE0_e].getEnd()); - } - initSeAnime(); - m3598 = 1.0f - ((1.0f - daPy_HIO_cutTurnR_c0::m.field_0x28) * dVar7); - if (mVelocity <= 0.001f) { - onModeFlg(ModeFlg_00000001); - m3598 = 0.0f; - } else { - offModeFlg(ModeFlg_00000001); - m3598 = 1.0f; - } - if ((mEquipItem == daPyItem_BOKO_e) && - (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != (J3DAnmTransform*)0x0)) - { - mFrameCtrlUpper[UPPER_MOVE0_e].setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getEnd() - 0.001f); - mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame()); - } - } else { - if (m34D0 == 0) { - procCutRoll_init(); - } else { - mVelocity = speedF; - procCutTurn_init(0); + if (dVar6 != (daPy_ANM)0xffff) { + setSingleMoveAnime(dVar6, 0.0f, 0.0f, -1, in_f30); } } + setNormalSpeedF(dVar8, 0.5f, 2.0f, 0.25f); + if (m34B8 == 0) { + dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x18; + } else if (m34B8 == 1) { + dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x18; + } else if (m34B8 == 3) { + dVar8 = -daPy_HIO_cutTurnR_c0::m.field_0x20; + } else { + dVar8 = daPy_HIO_cutTurnR_c0::m.field_0x20; + } + f32 dVar7 = (mVelocity / mMaxNormalSpeed); + mFrameCtrlUnder[UNDER_MOVE0_e].setRate(dVar7 * dVar8); + if (dVar8 >= 0.0f) { + mFrameCtrlUnder[UNDER_MOVE0_e].setLoop(mFrameCtrlUnder[UNDER_MOVE0_e].getStart()); + } else { + mFrameCtrlUnder[UNDER_MOVE0_e].setLoop(mFrameCtrlUnder[UNDER_MOVE0_e].getEnd()); + } + initSeAnime(); + m3598 = 1.0f - ((1.0f - daPy_HIO_cutTurnR_c0::m.field_0x28) * dVar7); + if (mVelocity <= 0.001f) { + onModeFlg(ModeFlg_00000001); + m3598 = 0.0f; + } else { + offModeFlg(ModeFlg_00000001); + m3598 = 1.0f; + } + if (mEquipItem == daPyItem_BOKO_e && (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != (J3DAnmTransform*)0x0)) + { + mFrameCtrlUpper[UPPER_MOVE0_e].setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getEnd() - 0.001f); + mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame()); + } + } else if (m34D0 == 0) { + procCutRoll_init(); + } else { + mVelocity = speedF; + procCutTurn_init(0); } + return true; } @@ -1339,28 +1313,29 @@ BOOL daPy_lk_c::procCutReverse_init(daPy_ANM param_0) { dComIfGp_getVibration().StartShock(4, -0x31, cXyz(0.0f, 1.0f, 0.0f)); if (param_0 == ANM_JATTACK) { return true; - } else { - s32 uVar2 = mNoResetFlg0 >> 2 & 1; - commonProcInit(daPyProc_CUT_REVERSE_e); - if ((uVar2) != 0) { - onNoResetFlg0(daPyFlg0_UNK4); - } - setSingleMoveAnime( - param_0, - daPy_HIO_cut_c0::m.field_0x2C, - daPy_HIO_cut_c0::m.field_0x30, - daPy_HIO_cut_c0::m.field_0x6, - daPy_HIO_cut_c0::m.field_0x38 - ); - mVelocity = 12.0f; - current.angle.y = shape_angle.y + 0x8000; - m3522 = 0; - voiceStart(37); - if ((mCurrAttributeCode == dBgS_Attr_ICE_e) && (!checkHeavyStateOn())) { - m36A0.x += 10.0f * cM_ssin(current.angle.y); - m36A0.z += 10.0f * cM_scos(current.angle.y); - } } + + s32 uVar2 = mNoResetFlg0 >> 2 & 1; + commonProcInit(daPyProc_CUT_REVERSE_e); + if ((uVar2) != 0) { + onNoResetFlg0(daPyFlg0_UNK4); + } + setSingleMoveAnime( + param_0, + daPy_HIO_cut_c0::m.field_0x2C, + daPy_HIO_cut_c0::m.field_0x30, + daPy_HIO_cut_c0::m.field_0x6, + daPy_HIO_cut_c0::m.field_0x38 + ); + mVelocity = 12.0f; + current.angle.y = shape_angle.y + 0x8000; + m3522 = 0; + voiceStart(37); + if (mCurrAttributeCode == dBgS_Attr_ICE_e && !checkHeavyStateOn()) { + m36A0.x += 10.0f * cM_ssin(current.angle.y); + m36A0.z += 10.0f * cM_scos(current.angle.y); + } + return true; } @@ -1373,7 +1348,7 @@ BOOL daPy_lk_c::procCutReverse() { daPy_HIO_guard_c0::m.field_0x1C, daPy_HIO_guard_c0::m.field_0x20 ); - if ((swordButton()) && (mEquipItem == daPyItem_SWORD_e)) { + if (swordButton() && mEquipItem == daPyItem_SWORD_e) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -1395,77 +1370,75 @@ BOOL daPy_lk_c::procCutReverse() { /* 80159390-80159500 .text procJumpCut_init__9daPy_lk_cFi */ BOOL daPy_lk_c::procJumpCut_init(int param_0) { fopAc_ac_c* uVar1 = mActorKeepEquip.getActor(); - if ((daPy_dmEcallBack_c::m_type == 1) || (mEquipItem == daPyItem_BOKO_e && (uVar1 == NULL))) { + if ((daPy_dmEcallBack_c::m_type == 1) || (mEquipItem == daPyItem_BOKO_e && uVar1 == NULL)) { return false; - } else { - commonProcInit(daPyProc_JUMP_CUT_e); - if (param_0 != 0) { - setSingleMoveAnime( - ANM_JATTACK, - daPy_HIO_cutJump_c0::m.field_0x20, - daPy_HIO_cutJump_c0::m.field_0x24, - daPy_HIO_cutJump_c0::m.field_0x6, - daPy_HIO_cutJump_c0::m.field_0x28 - ); - mVelocity = daPy_HIO_cutJump_c0::m.field_0x2C; - speed.y = daPy_HIO_cutJump_c0::m.field_0x30; - gravity = daPy_HIO_cutJump_c0::m.field_0x34; - } else { - setSingleMoveAnime( - ANM_JATTACK, - daPy_HIO_cutJump_c0::m.field_0x8, - daPy_HIO_cutJump_c0::m.field_0xC, - daPy_HIO_cutJump_c0::m.field_0x0, - daPy_HIO_cutJump_c0::m.field_0x10 - ); - mVelocity = daPy_HIO_cutJump_c0::m.field_0x14; - speed.y = daPy_HIO_cutJump_c0::m.field_0x18; - gravity = daPy_HIO_cutJump_c0::m.field_0x1C; - } - current.angle.y = shape_angle.y; - m3570 = 0; - voiceStart(1); - dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e); - if (mEquipItem == daPyItem_BOKO_e) { - setBlurPosResource(LKANM__WEAPONJUMP_POS); - } else { - setBlurPosResource(LKANM__CUTJUMP_POS); - } - setJumpCutAtParam(); - return true; } + + commonProcInit(daPyProc_JUMP_CUT_e); + if (param_0 != 0) { + setSingleMoveAnime( + ANM_JATTACK, + daPy_HIO_cutJump_c0::m.field_0x20, + daPy_HIO_cutJump_c0::m.field_0x24, + daPy_HIO_cutJump_c0::m.field_0x6, + daPy_HIO_cutJump_c0::m.field_0x28 + ); + mVelocity = daPy_HIO_cutJump_c0::m.field_0x2C; + speed.y = daPy_HIO_cutJump_c0::m.field_0x30; + gravity = daPy_HIO_cutJump_c0::m.field_0x34; + } else { + setSingleMoveAnime( + ANM_JATTACK, + daPy_HIO_cutJump_c0::m.field_0x8, + daPy_HIO_cutJump_c0::m.field_0xC, + daPy_HIO_cutJump_c0::m.field_0x0, + daPy_HIO_cutJump_c0::m.field_0x10 + ); + mVelocity = daPy_HIO_cutJump_c0::m.field_0x14; + speed.y = daPy_HIO_cutJump_c0::m.field_0x18; + gravity = daPy_HIO_cutJump_c0::m.field_0x1C; + } + current.angle.y = shape_angle.y; + m3570 = 0; + voiceStart(1); + dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e); + if (mEquipItem == daPyItem_BOKO_e) { + setBlurPosResource(LKANM__WEAPONJUMP_POS); + } else { + setBlurPosResource(LKANM__CUTJUMP_POS); + } + setJumpCutAtParam(); + return true; } /* 80159500-80159608 .text procJumpCut__9daPy_lk_cFv */ BOOL daPy_lk_c::procJumpCut() { - /* Nonmatching - floats */ if (mAcch.ChkGroundHit()) { return procJumpCutLand_init(); - } else { - if ((current.angle.y == shape_angle.y) && (changeCutReverseProc(ANM_JATTACK))) { - current.angle.y = current.angle.y + 0x8000; - mVelocity = 27.0f; - } else if (current.angle.y != shape_angle.y) { - cLib_addCalc(&mVelocity, 5.0f, 0.2f, 1.0f, 0.1f); - } - if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_cutJump_c0::m.field_0x48) && - (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_cutJump_c0::m.field_0x4C)) - { - if (mEquipItem != daPyItem_NONE_e) { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - } - return true; } + + if (current.angle.y == shape_angle.y && changeCutReverseProc(ANM_JATTACK)) { + current.angle.y = current.angle.y + 0x8000; + mVelocity = 27.0f; + } else if (current.angle.y != shape_angle.y) { + cLib_addCalc(&mVelocity, 5.0f, 0.2f, 1.0f, 0.1f); + } + if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_cutJump_c0::m.field_0x48) && + (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_cutJump_c0::m.field_0x4C)) + { + if (mEquipItem != daPyItem_NONE_e) { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + } + return true; } /* 80159608-80159864 .text procJumpCutLand_init__9daPy_lk_cFv */ BOOL daPy_lk_c::procJumpCutLand_init() { - /* Nonmatching - floats */ f32 dVar3 = (m35F0 - current.pos.y); commonProcInit(daPyProc_JUMP_CUT_LAND_e); if (!dComIfGp_event_runCheck()) { @@ -1525,29 +1498,29 @@ BOOL daPy_lk_c::procJumpCutLand_init() { BOOL daPy_lk_c::procJumpCutLand() { current.angle.y = shape_angle.y; resetFootEffect(); - if ((m3570 != 0) && (changeCutReverseProc(ANM_CUTRER))) { + if (m3570 != 0 && changeCutReverseProc(ANM_CUTRER)) { return true; - } else { - if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { - if ((int)m34D0 > 0) { - m34D0--; - checkNextMode(1); - } else { - checkNextMode(0); - } + } + + if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) { + if ((int)m34D0 > 0) { + m34D0--; + checkNextMode(1); } else { - if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutJump_c0::m.field_0x44) { - checkNextMode(1); - } else { - if (m3570 != 0) { - m3570 = 0; - if ((abs(m3578) > 0xf800) && (daPy_dmEcallBack_c::m_type != 1) && - (mEquipItem == daPyItem_SWORD_e || (mEquipItem == daPyItem_BOKO_e))) - { - procCutTurn_init(1); - } else { - onResetFlg0(daPyRFlg0_UNK2); - } + checkNextMode(0); + } + } else { + if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_cutJump_c0::m.field_0x44) { + checkNextMode(1); + } else { + if (m3570 != 0) { + m3570 = 0; + if (abs(m3578) > 0xf800 && (daPy_dmEcallBack_c::m_type != 1) && + (mEquipItem == daPyItem_SWORD_e || mEquipItem == daPyItem_BOKO_e)) + { + procCutTurn_init(1); + } else { + onResetFlg0(daPyRFlg0_UNK2); } } } @@ -1557,7 +1530,6 @@ BOOL daPy_lk_c::procJumpCutLand() { /* 80159998-80159B80 .text procCutExMJ_init__9daPy_lk_cFi */ BOOL daPy_lk_c::procCutExMJ_init(int param_0) { - /* Nonmatching - floats */ daPy_ANM dVar3; commonProcInit(daPyProc_CUT_EX_MJ_e); @@ -1607,9 +1579,8 @@ BOOL daPy_lk_c::procCutExMJ_init(int param_0) { /* 80159B80-80159E60 .text procCutExMJ__9daPy_lk_cFv */ BOOL daPy_lk_c::procCutExMJ() { - /* Nonmatching - floats */ m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -1628,12 +1599,12 @@ BOOL daPy_lk_c::procCutExMJ() { m34D4 = 2; } if (m34D6 == 0x71) { - if (!(m34EC > 0) || (m34EC > 0x4000)) { + if (!(m34EC > 0) || m34EC > 0x4000) { m34EC -= 0x1800; } else { cLib_addCalcAngleS(&m34EC, 1, 2, 0x1800, 0x800); } - } else if (!(m34EC < 0) || (m34EC < -0x4000)) { + } else if (!(m34EC < 0) || m34EC < -0x4000) { m34EC += 0x1800; } else { cLib_addCalcAngleS(&m34EC, -1, 2, 0x1800, 0x800); @@ -1647,28 +1618,28 @@ BOOL daPy_lk_c::procCutExMJ() { current.angle.y = shape_angle.y; } setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { + if (doTrigger() && dComIfGp_getDoStatus() == 26) { return changeSpecialBattle(); - } else { - if ((m34C4 != 0) && (swordTrigger() && (m34C5 != 5))) { - m34C5 = 30; - } - if (speed.y < -gravity) { - gravity = daPy_HIO_cutExMJ_c0::m.field_0x18; - } - setFallVoice(); - if ((m34D4 != 2) && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m35A0)) { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - if (current.pos.y < m3688.y - 200.0f) { - cLib_chaseF(&mVelocity, 0.0f, (0.1f * daPy_HIO_autoJump_c0::m.field_0x3C)); - } - return true; } + + if (m34C4 != 0 && (swordTrigger() && m34C5 != 5)) { + m34C5 = 30; + } + if (speed.y < -gravity) { + gravity = daPy_HIO_cutExMJ_c0::m.field_0x18; + } + setFallVoice(); + if (m34D4 != 2 && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m35A0)) { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + if (current.pos.y < m3688.y - 200.0f) { + cLib_chaseF(&mVelocity, 0.0f, (0.1f * daPy_HIO_autoJump_c0::m.field_0x3C)); + } + return true; } /* 80159E60-80159FB0 .text procCutKesa_init__9daPy_lk_cFv */ @@ -1702,7 +1673,7 @@ BOOL daPy_lk_c::procCutKesa_init() { BOOL daPy_lk_c::procCutKesa() { J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e]; m35EC = frameCtrl.getFrame(); - if ((swordButton()) && (m34C5 == 0)) { + if (swordButton() && m34C5 == 0) { onNoResetFlg0(daPyFlg0_UNK4); } else { offNoResetFlg0(daPyFlg0_UNK4); @@ -1712,50 +1683,51 @@ BOOL daPy_lk_c::procCutKesa() { mVelocity = 0.0f; checkNextMode(0); return true; - } else { - if (frameCtrl.getFrame() > daPy_HIO_cutKesa_c0::m.field_0x18) { - f32 dVar4 = mVelocity; - mVelocity = 0.0f; - if (checkNextMode(1)) { - return true; - } - mVelocity = dVar4; - } else if (frameCtrl.checkPass(16.0f)) { - onModeFlg(ModeFlg_00000080); - } - if (changeCutReverseProc(ANM_CUTREL)) { - return true; - } else { - setSpecialBattle(TRUE); - if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) { - changeSpecialBattle(); - } else { - if ((swordTrigger()) && (m34C5 != 5)) { - m34C5 = 31; - } - if (mpAttnActorLockOn != NULL) { - setShapeAngleToAtnActor(); - current.angle.y = shape_angle.y; - } - if ((frameCtrl.getFrame() >= daPy_HIO_cutKesa_c0::m.field_0x10) && - (frameCtrl.getFrame() < daPy_HIO_cutKesa_c0::m.field_0x14)) - { - if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { - onResetFlg0(daPyRFlg0_UNK1); - seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); - } - onResetFlg0(daPyRFlg0_UNK2); - } - m34C2 = 1; - cLib_addCalc( - &mVelocity, - 0.0f, - daPy_HIO_cutEA_c0::m.field_0x1C, - daPy_HIO_cutEA_c0::m.field_0x14, - daPy_HIO_cutEA_c0::m.field_0x18 - ); - return true; - } - } } + + if (frameCtrl.getFrame() > daPy_HIO_cutKesa_c0::m.field_0x18) { + f32 dVar4 = mVelocity; + mVelocity = 0.0f; + if (checkNextMode(1)) { + return true; + } + mVelocity = dVar4; + } else if (frameCtrl.checkPass(16.0f)) { + onModeFlg(ModeFlg_00000080); + } + + if (changeCutReverseProc(ANM_CUTREL)) { + return true; + } + + setSpecialBattle(TRUE); + if (doTrigger() && dComIfGp_getDoStatus() == 26) { + return changeSpecialBattle(); + } + if (swordTrigger() && m34C5 != 5) { + m34C5 = 31; + } + if (mpAttnActorLockOn != NULL) { + setShapeAngleToAtnActor(); + current.angle.y = shape_angle.y; + } + if (frameCtrl.getFrame() >= daPy_HIO_cutKesa_c0::m.field_0x10 && + frameCtrl.getFrame() < daPy_HIO_cutKesa_c0::m.field_0x14) + { + if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) { + onResetFlg0(daPyRFlg0_UNK1); + seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S); + } + onResetFlg0(daPyRFlg0_UNK2); + } + m34C2 = 1; + cLib_addCalc( + &mVelocity, + 0.0f, + daPy_HIO_cutEA_c0::m.field_0x1C, + daPy_HIO_cutEA_c0::m.field_0x14, + daPy_HIO_cutEA_c0::m.field_0x18 + ); + + return true; } diff --git a/src/d/actor/d_a_player_weapon.inc b/src/d/actor/d_a_player_weapon.inc index b1349cac7..7d04ee5a6 100644 --- a/src/d/actor/d_a_player_weapon.inc +++ b/src/d/actor/d_a_player_weapon.inc @@ -384,7 +384,7 @@ BOOL daPy_lk_c::procWeaponThrow() { boko->m2BA = 1; boko->m2CA = uVar2; voiceStart(0); - deleteEquipItem(0); + deleteEquipItem(FALSE); } return true; } diff --git a/src/d/actor/d_a_ship.cpp b/src/d/actor/d_a_ship.cpp index b840413cd..c0f04ab45 100644 --- a/src/d/actor/d_a_ship.cpp +++ b/src/d/actor/d_a_ship.cpp @@ -769,7 +769,7 @@ void daShip_c::getMaxWaterY(cXyz* shipPos) { } } else { - if (m03F8 != -1e+09f) { + if (m03F8 != C_BG_MIN_HEIGHT) { shipPos->y = m03F8; } else { @@ -3023,7 +3023,7 @@ void daShip_c::setEffectData(float param_1, short param_2) { /* 000085D8-00008688 .text setRoomInfo__8daShip_cFv */ void daShip_c::setRoomInfo() { int roomId; - if (mAcch.GetGroundH() != -1e+09f) { + if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT) { roomId = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd); tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mAcch.m_gnd); m03C4 = dComIfG_Bgsp()->GetGroundCode(mAcch.m_gnd); @@ -3094,13 +3094,16 @@ void daShip_c::setRopePos() { float fVar2; float fVar17; - MtxP pMVar5; + cXyz* r4; + int iVar11; short sVar14; int sVar12; + JPABaseEmitter* emitter; + cXyz* r3; cXyz* ropeSegments; cXyz* currentRopeSegment; short currentRopeSegmentIndex; - JPABaseEmitter* emitter; + MtxP pMVar5; cXyz spF8; cXyz spEC; @@ -3177,7 +3180,7 @@ void daShip_c::setRopePos() { *ropeSegments += (*currentRopeSegment - spF8) * 0.05f; } if (mCurrentRopeSegmentIndex == 20 && checkStateFlg(daSFLG_UNK10000000_e)) { - cXyz* r4 = mRopeLine.getPos(0);; + r4 = mRopeLine.getPos(0);; mDoMtx_multVecZero(mpSalvageArmModel->getAnmMtx(1), &spE0); spE0 -= *r4; @@ -3220,7 +3223,7 @@ void daShip_c::setRopePos() { currentRopeSegment->z - pMVar5[2][3] ); sVar14 = 0x7fff; - int iVar11 = 0x8000 - (m0398 * 2); + iVar11 = 0x8000 - (m0398 * 2); sVar12 = iVar11 - (0x8000 - m039A) * ((float)m0398 / (float)m039A); } @@ -3259,7 +3262,7 @@ void daShip_c::setRopePos() { if (fVar2 > currentRopeSegment->y) { ropeSegments = currentRopeSegment; - cXyz* r3 = currentRopeSegment; + r3 = currentRopeSegment; for (int i = 0; i < mCurrentRopeSegmentIndex; i++, ropeSegments++) { if (ropeSegments->y <= fVar2) { r3 = ropeSegments; @@ -3485,30 +3488,12 @@ void daShip_c::setHeadAnm() { /* 00009B4C-0000B978 .text execute__8daShip_cFv */ BOOL daShip_c::execute() { /* Nonmatching */ - float fVar2; - float fVar3; - float dVar27; - - int iVar23; - int sp18; - s16 sp12; - s16 sp10; - short sVar16; - short sVar5; - int iVar6; - J3DModel* mModel1; - J3DModel* mModel2; - short sVar26; - dDemo_actor_c* demoActor; - daPy_lk_c* link; - MtxP jnt_mtx; - static cXyz sail_offset(0.5f, 155.0f, 50.0f); static cXyz sph_offset(-5.0f, 0.0f, 0.0f); static f32 cyl_offset[] = {100.0f, -20.0f, -100.0f}; - fVar2 = mFwdVel; - fVar3 = speedF; + f32 prev_fwdvel = mFwdVel; + f32 prev_speedF = speedF; m0351 = 0xFF; m0404 = 0.0f; m0428 = NULL; @@ -3602,6 +3587,7 @@ BOOL daShip_c::execute() { mpGrid = NULL; mpGrid = (daGrid_c*)fopAcM_SearchByID(mGridID); + dDemo_actor_c* demoActor; demoActor = dComIfGp_demo_getActor(demoActorID); if (demoActor) { @@ -3614,6 +3600,7 @@ BOOL daShip_c::execute() { procCraneUp_init(); } + short sVar26; sVar26 = m0366; if (mAnmTransform) { @@ -3648,6 +3635,7 @@ BOOL daShip_c::execute() { if (!checkStateFlg(daSFLG_UNK1_e)) { if (m034C != 12 && m034C != 15 && m034C != 7 && m034C != 11 && m034C != 13 && m034C != 16 && !dComIfGp_event_runCheck()) { if (mTornadoActor) { + short sVar16; sVar16 = shape_angle.y; cLib_addCalcAngleS(&shape_angle.y, m040C * 10430.378f + 20480.0f, 5, 0x2000, 0x200); setControllAngle(getAimControllAngle(sVar16)); @@ -3655,7 +3643,9 @@ BOOL daShip_c::execute() { } else { if (mWhirlActor) { + short sVar16; sVar16 = shape_angle.y; + short sVar5; if (m0352) { sVar5 = m040C * 10430.378f + 20480.0f; } @@ -3668,7 +3658,9 @@ BOOL daShip_c::execute() { } } } + short sVar16; sVar16 = -m0384; + short sVar5; sVar5 = sVar16 * 0.05f; if (sVar5 == 0) { if (sVar16 > 0) { @@ -3715,7 +3707,7 @@ BOOL daShip_c::execute() { } } if (!dComIfGp_event_runCheck() && !checkStateFlg(daSFLG_UNK1_e) && checkForceMove()) { - speedF = fVar3; + speedF = prev_speedF; if (mTornadoActor) { fVar4 = m0404 * 40.0f + 30.0f; if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) { @@ -3738,7 +3730,7 @@ BOOL daShip_c::execute() { if (checkStateFlg(daSFLG_UNK1_e)) { if (checkStateFlg(daSFLG_UNK2000000_e)) { cLib_chaseF(&speed.y, 20.0f, 1.0f - gravity); - speedF = fVar3; + speedF = prev_speedF; cLib_chaseF(&speedF, 55.0f, 3.0f); offStateFlg(daSFLG_UNK2000000_e); } @@ -3755,23 +3747,23 @@ BOOL daShip_c::execute() { if (checkForceMove() && !dComIfGp_event_runCheck()) { if (mTornadoActor) { if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) { - fVar3 = 25.0f; + prev_speedF = 25.0f; } else { - fVar3 = 5.0f; + prev_speedF = 5.0f; } } else { // Bug? This room check assumes we're on the sea without checking? if (dComIfGs_getBombNum() == 0 && fopAcM_GetRoomNo(this) == dIsleRoom_OutsetIsland_e) { - fVar3 = 10.0f; + prev_speedF = 10.0f; } else { - fVar3 = 0.6f; + prev_speedF = 0.6f; } } - cLib_chaseF(&m0400, 0.0f, fVar3); + cLib_chaseF(&m0400, 0.0f, prev_speedF); m0408 = std::fabsf(speedF) / m0400; @@ -3789,17 +3781,18 @@ BOOL daShip_c::execute() { r23 = TRUE; } else { - fVar3 = current.pos.y; + prev_speedF = current.pos.y; fopAcM_posMoveF(this, (cXyz *)&mStts); - current.pos.y = fVar3; + current.pos.y = prev_speedF; } if (r23) { cXyz sp114(current.pos - old.pos); + float dVar27; dVar27 = sp114.absXZ(); if (dVar27 > 1.0f) { - fVar3 = speedF / dVar27; - current.pos.x = old.pos.x + sp114.x * fVar3; - current.pos.z = old.pos.z + sp114.z * fVar3; + prev_speedF = speedF / dVar27; + current.pos.x = old.pos.x + sp114.x * prev_speedF; + current.pos.z = old.pos.z + sp114.z * prev_speedF; } } } @@ -3814,7 +3807,8 @@ BOOL daShip_c::execute() { } else { cXyz sp108; - if (mAcch.GetGroundH() != -1e+09f && dPath_GetPolyRoomPathVec(mAcch.m_gnd, &sp108, &sp18)) { + int sp18; + if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT && dPath_GetPolyRoomPathVec(mAcch.m_gnd, &sp108, &sp18)) { sp108.normalizeZP(); sp108 *= sp18 >> 1; cLib_addCalcPosXZ(&m1044, sp108, 0.5f, 5.0f, 1.0f); @@ -3875,6 +3869,8 @@ BOOL daShip_c::execute() { mTrack.mBaseY = m03F4; mTrack.mMinY = m03F8; + s16 sp12; + s16 sp10; if (!checkStateFlg(daSFLG_UNK1_e)) { setWaveAngle(&sp12, &sp10); } @@ -3908,6 +3904,8 @@ BOOL daShip_c::execute() { mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), shape_angle.x, shape_angle.y, shape_angle.z); + J3DModel* mModel1; + J3DModel* mModel2; mModel1 = m0298->getModel(); mModel2 = m029C->getModel(); @@ -4017,7 +4015,9 @@ BOOL daShip_c::execute() { } } + int iVar23; iVar23 = (s16)(m0366 - sVar26); + int iVar6; iVar6 = abs(iVar23); iVar23 *= m0366; @@ -4041,11 +4041,13 @@ BOOL daShip_c::execute() { // This should probably use the mDoMtx_multVecZero inline, but it's not getting inlined // mDoMtx_multVecZero(mModel2->getAnmMtx(16), &eyePos); + MtxP jnt_mtx; jnt_mtx = mModel2->getAnmMtx(16); eyePos.x = jnt_mtx[0][3]; eyePos.y = jnt_mtx[1][3]; eyePos.z = jnt_mtx[2][3]; + daPy_lk_c* link; link = daPy_getPlayerLinkActorClass(); cXyz spCC; spCC = link->current.pos - current.pos; @@ -4096,6 +4098,8 @@ BOOL daShip_c::execute() { } } + short sVar16; + short sVar5; if (bVar21) { sVar16 = cM_atan2s(-spC0.y, spC0.absXZ()) - shape_angle.x; @@ -4157,6 +4161,7 @@ BOOL daShip_c::execute() { attention_info.flags &= ~fopAc_Attn_ACTION_SHIP_e; } if (m034C != 8 && dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) { + BOOL r24; r24 = TRUE; if (dComIfGs_isEventBit(0x1E40) && !dComIfGs_isEventBit(0x3840)) { mNextMessageNo = 0x168c; @@ -4186,16 +4191,16 @@ BOOL daShip_c::execute() { m03DC = m0366 * 0.00012207031f; - fVar3 = (speedF * 0.1f) / 55.0f; + prev_speedF = (speedF * 0.1f) / 55.0f; - if (fVar3 > 0.05f) { - fVar3 = 0.05f; + if (prev_speedF > 0.05f) { + prev_speedF = 0.05f; } - else if (fVar3 < -0.05f) { - fVar3 = -0.05; + else if (prev_speedF < -0.05f) { + prev_speedF = -0.05; } - m03D4 += fVar3; + m03D4 += prev_speedF; if (m03D4 > 1.0f) { m03D4 -= 1.0f; @@ -4215,7 +4220,7 @@ BOOL daShip_c::execute() { mFwdVel += (m1044.x * cM_ssin(current.angle.y) + m1044.z * cM_scos(current.angle.y)); - if (std::fabsf(mFwdVel) <= 0.01f || fVar2 * mFwdVel < 0.0f || mFwdVel * speedF < 0.0f) { + if (std::fabsf(mFwdVel) <= 0.01f || prev_fwdvel * mFwdVel < 0.0f || mFwdVel * speedF < 0.0f) { mWaveL.mState = 1; mWaveR.mState = 1; mSplash.mState = 1;