From c9a710a939c7bccee7eb16e90ed70c9d3f6c78ad Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 28 Sep 2025 13:42:21 -0400 Subject: [PATCH] d_cc_s OK (#2710) --- configure.py | 2 +- src/d/d_cc_s.cpp | 140 +++++++++++++++++++++++------------------------ 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/configure.py b/configure.py index 18f0b6565f7..476cd83160e 100755 --- a/configure.py +++ b/configure.py @@ -642,7 +642,7 @@ config.libs = [ Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_bg_w_sv.cpp"), Object(Equivalent, "d/d_cc_d.cpp"), # weak func order Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_cc_mass_s.cpp"), - Object(NonMatching, "d/d_cc_s.cpp"), + Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_cc_s.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_cc_uty.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_cam_param.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_ev_camera.cpp"), diff --git a/src/d/d_cc_s.cpp b/src/d/d_cc_s.cpp index 52487902dfe..8ef12c1539e 100644 --- a/src/d/d_cc_s.cpp +++ b/src/d/d_cc_s.cpp @@ -153,41 +153,43 @@ bool dCcS::ChkAtTgHitAfterCross(bool i_setAt, bool i_setTg, cCcD_GObjInf const* /* 80086240-80086360 080B80 0120+00 1/0 0/0 0/0 .text * SetCoGObjInf__4dCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts */ -// NONMATCHING weird reg alloc -void dCcS::SetCoGObjInf(bool i_co2Set, bool i_co1Set, cCcD_GObjInf* i_co1Obj, cCcD_GObjInf* i_co2Obj, +void dCcS::SetCoGObjInf(bool i_co1Set, bool i_co2Set, cCcD_GObjInf* i_co1Obj, cCcD_GObjInf* i_co2Obj, cCcD_Stts* i_co1Stts, cCcD_Stts* i_co2Stts, cCcD_GStts* i_co1GStts, cCcD_GStts* i_co2GStts) { - if (i_co2Set) { - static_cast(i_co1Obj)->SetCoHitApid(i_co2Stts->GetApid()); - - if (static_cast(i_co2GStts)->ChkNoActor()) { - static_cast(i_co1Obj)->OnCoHitNoActor(); - } - } + dCcD_GObjInf* co1Obj = (dCcD_GObjInf*)i_co1Obj; + dCcD_GObjInf* co2Obj = (dCcD_GObjInf*)i_co2Obj; + dCcD_GStts* co1GStts = (dCcD_GStts*)i_co1GStts; + dCcD_GStts* co2GStts = (dCcD_GStts*)i_co2GStts; if (i_co1Set) { - static_cast(i_co2Obj)->SetCoHitApid(i_co1Stts->GetApid()); + co1Obj->SetCoHitApid(i_co2Stts->GetApid()); - if (static_cast(i_co1GStts)->ChkNoActor()) { - static_cast(i_co2Obj)->OnCoHitNoActor(); + if (co2GStts->ChkNoActor()) { + co1Obj->OnCoHitNoActor(); } } if (i_co2Set) { - dCcD_HitCallback cb = static_cast(i_co1Obj)->GetCoHitCallback(); + co2Obj->SetCoHitApid(i_co1Stts->GetApid()); - if (cb != NULL) { - cb(i_co1Obj->GetAc(), static_cast(i_co1Obj), i_co2Obj->GetAc(), - static_cast(i_co2Obj)); + if (co1GStts->ChkNoActor()) { + co2Obj->OnCoHitNoActor(); } } if (i_co1Set) { - dCcD_HitCallback cb = static_cast(i_co2Obj)->GetCoHitCallback(); + dCcD_HitCallback cb = co1Obj->GetCoHitCallback(); if (cb != NULL) { - cb(i_co2Obj->GetAc(), static_cast(i_co2Obj), i_co1Obj->GetAc(), - static_cast(i_co1Obj)); + cb(co1Obj->GetAc(), co1Obj, co2Obj->GetAc(), co2Obj); + } + } + + if (i_co2Set) { + dCcD_HitCallback cb = co2Obj->GetCoHitCallback(); + + if (cb != NULL) { + cb(co2Obj->GetAc(), co2Obj, co1Obj->GetAc(), co1Obj); } } } @@ -380,67 +382,65 @@ void dCcS::CalcParticleAngle(dCcD_GObjInf* i_atObjInf, cCcD_Stts* i_atStts, cCcD /* 8008685C-80086AC0 08119C 0264+00 1/1 0/0 0/0 .text * ProcAtTgHitmark__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12dCcD_GObjInfP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10dCcD_GSttsP10dCcD_GSttsP4cXyzb */ -// NONMATCHING one branch issue void dCcS::ProcAtTgHitmark(bool i_setAt, bool i_setTg, cCcD_Obj* param_2, cCcD_Obj* param_3, dCcD_GObjInf* i_atObjInf, dCcD_GObjInf* i_tgObjInf, cCcD_Stts* param_6, cCcD_Stts* param_7, dCcD_GStts* param_8, dCcD_GStts* param_9, cXyz* i_hitPos, bool i_chkShield) { - if (!i_atObjInf->ChkAtNoHitMark() && !i_tgObjInf->ChkTgNoHitMark() && - (i_atObjInf->GetAtType() != AT_TYPE_10000000 || i_tgObjInf->GetAc() == NULL || - fopAcM_CheckStatus(i_tgObjInf->GetAc(), AT_TYPE_10000000))) - { - if ((i_atObjInf->GetAtType() & - (AT_TYPE_WOLF_ATTACK | AT_TYPE_WOLF_CUT_TURN | AT_TYPE_10000000 | AT_TYPE_MIDNA_LOCK | - AT_TYPE_HOOKSHOT | AT_TYPE_SHIELD_ATTACK | AT_TYPE_NORMAL_SWORD)) != 0 && - i_tgObjInf->GetTgSpl() == 1) + if (i_setAt) {} + if (i_setTg) {} + if (param_2) {} + if (param_3) {} + + if (i_atObjInf->ChkAtNoHitMark()) { return; } + if (i_tgObjInf->ChkTgNoHitMark()) { return; } + if ( + ( + i_atObjInf->GetAtType() == AT_TYPE_10000000 && + i_tgObjInf->GetAc() != NULL && + !fopAcM_CheckStatus(i_tgObjInf->GetAc(), AT_TYPE_10000000) + ) || + ( + ( + i_atObjInf->GetAtType() & + (AT_TYPE_WOLF_ATTACK | AT_TYPE_WOLF_CUT_TURN | AT_TYPE_10000000 | AT_TYPE_MIDNA_LOCK | + AT_TYPE_HOOKSHOT | AT_TYPE_SHIELD_ATTACK | AT_TYPE_NORMAL_SWORD) + ) && + i_tgObjInf->GetTgSpl() == dCcG_Tg_Spl_UNK_1 + ) + ) { + return; + } + if (i_atObjInf->GetAtType() == AT_TYPE_HOOKSHOT && i_tgObjInf->ChkTgHookShotNoHitMark()) { return; } + if (i_atObjInf->GetAtType() == AT_TYPE_ARROW && i_tgObjInf->ChkTgArrowNoHitMark()) { return; } + if (!param_9->ChkNoneActorPerfTblId()) { return; } + + if (!i_chkShield) { + if ((i_atObjInf->GetAtHitMark() != 0 || i_tgObjInf->GetTgHitMark() == 8) && + (i_atObjInf->GetAtHitMark() != 4 || i_tgObjInf->GetTgHitMark() != 4)) { - return; - } + csXyz sp10; + CalcParticleAngle(i_atObjInf, param_6, param_7, &sp10); - if ((i_atObjInf->GetAtType() != AT_TYPE_HOOKSHOT || - !i_tgObjInf->ChkTgHookShotNoHitMark()) && - (i_atObjInf->GetAtType() != AT_TYPE_ARROW || !i_tgObjInf->ChkTgArrowNoHitMark()) && - param_9->ChkNoneActorPerfTblId()) - { - if (!i_chkShield) { - if ((i_atObjInf->GetAtHitMark() != 0 || i_tgObjInf->GetTgHitMark() == 8) && - (i_atObjInf->GetAtHitMark() != 4 || i_tgObjInf->GetTgHitMark() != 4)) - { - csXyz sp10; - CalcParticleAngle(i_atObjInf, param_6, param_7, &sp10); - - if (i_tgObjInf->GetTgHitMark() == 5 || i_tgObjInf->GetTgHitMark() == 8) { - u32 atType = i_atObjInf->GetAtType(); - fopAc_ac_c* ac = i_tgObjInf->GetAc(); - - dComIfGp_setHitMark(2, ac, i_hitPos, &sp10, NULL, atType); - } else { - u16 hitmark; - if (i_tgObjInf->GetTgHitMark() == 3) { - hitmark = 3; - } else { - hitmark = i_atObjInf->GetAtHitMark(); - } - - if ((hitmark != 1 && hitmark != 3) || i_atObjInf->GetAtAtp() != 0) { - u32 atType = i_atObjInf->GetAtType(); - fopAc_ac_c* ac = i_tgObjInf->GetAc(); - - dComIfGp_setHitMark(hitmark, ac, i_hitPos, &sp10, NULL, atType); - } - } + if (i_tgObjInf->GetTgHitMark() == 5 || i_tgObjInf->GetTgHitMark() == 8) { + dComIfGp_setHitMark(2, i_tgObjInf->GetAc(), i_hitPos, &sp10, NULL, i_atObjInf->GetAtType()); + } else { + u16 hitmark; + if (i_tgObjInf->GetTgHitMark() == 3) { + hitmark = 3; + } else { + hitmark = i_atObjInf->GetAtHitMark(); } - } else if (i_tgObjInf->GetTgHitMark() != 0) { - csXyz sp8; - CalcParticleAngle(i_atObjInf, param_6, param_7, &sp8); - u32 atType = i_atObjInf->GetAtType(); - fopAc_ac_c* ac = i_tgObjInf->GetAc(); - u16 hitmark = i_tgObjInf->GetTgHitMark(); - - dComIfGp_setHitMark(hitmark, ac, i_hitPos, &sp8, NULL, atType); + if ((hitmark != 1 && hitmark != 3) || i_atObjInf->GetAtAtp() != 0) { + dComIfGp_setHitMark(hitmark, i_tgObjInf->GetAc(), i_hitPos, &sp10, NULL, i_atObjInf->GetAtType()); + } } } + } else if (i_tgObjInf->GetTgHitMark() != 0) { + csXyz sp8; + CalcParticleAngle(i_atObjInf, param_6, param_7, &sp8); + + dComIfGp_setHitMark(i_tgObjInf->GetTgHitMark(), i_tgObjInf->GetAc(), i_hitPos, &sp8, NULL, i_atObjInf->GetAtType()); } }