diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-05-10 01:42:18 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 15:42:18 -0700 |
| commit | ac269f04bafda63095160d4282b9f6883179050e (patch) | |
| tree | f39675a5fd6ee2d284946b9ab304fd4b81b62b43 /src | |
| parent | 93057e5c87a07749f8d55e62bbe4bac057bb5caf (diff) | |
JASSeqReader, d_bg_s_movebg_actor ok (#332)
match cc_at_check except data
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/bg/d_bg_s_movebg_actor.cpp | 52 | ||||
| -rw-r--r-- | src/d/cc/d_cc_uty.cpp | 20 |
2 files changed, 13 insertions, 59 deletions
diff --git a/src/d/bg/d_bg_s_movebg_actor.cpp b/src/d/bg/d_bg_s_movebg_actor.cpp index 029651eb0b..a850fbc1ca 100644 --- a/src/d/bg/d_bg_s_movebg_actor.cpp +++ b/src/d/bg/d_bg_s_movebg_actor.cpp @@ -5,7 +5,6 @@ #include "d/bg/d_bg_s_movebg_actor.h" #include "d/com/d_com_inf_game.h" -#include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_mtx.h" @@ -13,45 +12,10 @@ // Forward References: // -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); -extern "C" bool CreateHeap__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool Execute__16dBgS_MoveBgActorFPPA3_A4_f(); -extern "C" bool Draw__16dBgS_MoveBgActorFv(); -extern "C" bool Delete__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGCreateHeap__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" u8 m_name__16dBgS_MoveBgActor[4]; -extern "C" u8 m_dzb_id__16dBgS_MoveBgActor[4]; -extern "C" u8 m_set_func__16dBgS_MoveBgActor[4 + 4 /* padding */]; - // // External References: // -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); -extern "C" void __ct__4dBgWFv(); -extern "C" void Move__4dBgWFv(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void* __nw__FUl(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); -extern "C" u8 now__14mDoMtx_stack_c[48]; - // // Declarations: // @@ -150,7 +114,6 @@ int dBgS_MoveBgActor::MoveBGCreateHeap() { * MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f */ // close -#ifdef NONMATCHING int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_SetFunc set_func, u32 param_3, Mtx* param_4) { if (param_4 == NULL) { @@ -169,24 +132,13 @@ int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_S if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, param_3)) { return 5; } else { - if (field_0x568 == NULL || dComIfG_Bgsp().Regist(field_0x568, this)) { + if (field_0x568 != NULL && dComIfG_Bgsp().Regist(field_0x568, this)) { return 5; } else { - return Create() + 5; + return Create() ? 4 : 5; } } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgS_MoveBgActor::MoveBGCreate(char const* param_0, int param_1, MoveBGActor_SetFunc, - u32 param_3, Mtx* param_4) { - nofralloc -#include "asm/d/bg/d_bg_s_movebg_actor/func_800787BC.s" -} -#pragma pop -#endif /* 800788DC-80078950 07321C 0074+00 0/0 0/0 169/169 .text MoveBGDelete__16dBgS_MoveBgActorFv */ int dBgS_MoveBgActor::MoveBGDelete() { diff --git a/src/d/cc/d_cc_uty.cpp b/src/d/cc/d_cc_uty.cpp index 2fe2e1ebfd..d18ba1f884 100644 --- a/src/d/cc/d_cc_uty.cpp +++ b/src/d/cc/d_cc_uty.cpp @@ -439,12 +439,14 @@ SECTION_SDATA2 static f32 lit_4218[1 + 1 /* padding */] = { /* 80087C04-80088134 082544 0530+00 0/0 0/0 84/84 .text cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo */ -// just float reg issues +// data padding issues (?) #ifdef NONMATCHING fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) { daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0); p_info->mpActor = at_power_check(p_info); + f32 x_diff; + f32 z_diff; if (p_info->mpActor != NULL) { cXyz tmp = p_info->mpActor->speed; tmp.y = 0.0f; @@ -454,12 +456,12 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) { p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f); } else { if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) { - f32 x_diff = p_enemy->current.pos.x - link->current.pos.x; - f32 z_diff = p_enemy->current.pos.z - link->current.pos.z; + x_diff = p_enemy->current.pos.x - link->current.pos.x; + z_diff = p_enemy->current.pos.z - link->current.pos.z; p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f); } else { - f32 x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x; - f32 z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z; + x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x; + z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z; p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff); } } @@ -500,13 +502,13 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) { } if (p_info->mAttackPower != 0) { - p_enemy->field_0x562 -= p_info->mAttackPower; + p_enemy->mHealth -= p_info->mAttackPower; } s8 pause_time = 0; - if (p_info->mAttackPower != 0 && p_enemy->field_0x562 <= 0) { + if (p_info->mAttackPower != 0 && p_enemy->mHealth <= 0) { p_info->mHitStatus = 2; - p_enemy->field_0x562 = 0; + p_enemy->mHealth = 0; } int uvar8; @@ -539,7 +541,7 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) { ((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide()) { // actor is Bulblin or Horseback Ganon if ((fopAcM_GetName(p_enemy) == PROC_E_RD && - static_cast<e_rd_class*>(p_enemy)->field_0x129a != 0) || + ((s8*)p_enemy)[0x129a] != 0) || fopAcM_GetName(p_enemy) == PROC_B_GND) { pause_time = 3; } else { |
