diff --git a/configure.py b/configure.py index dc9a333d2..54e5e5ed6 100755 --- a/configure.py +++ b/configure.py @@ -1468,7 +1468,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_kantera"), ActorRel(NonMatching, "d_a_kn"), ActorRel(NonMatching, "d_a_kokiie"), - ActorRel(NonMatching, "d_a_ks"), # code 100%, possible issue unique to this TU + ActorRel(Equivalent, "d_a_ks", extra_cflags=["-sym off"]), # weak func order ActorRel(NonMatching, "d_a_kt"), # regalloc, weak func order ActorRel(NonMatching, "d_a_mflft"), ActorRel(NonMatching, "d_a_npc_cb1"), diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ac561088d..861e60b71 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -86,7 +86,7 @@ enum daItemAction_e { }; enum daDisappearItemType_e { - daDisItem_NORMAL_e = 0, + daDisItem_IBALL_e = 0, daDisItem_NONE1_e = 1, daDisItem_HEART_CONTAINER_e = 2, daDisItem_NONE3_e = 3, @@ -94,7 +94,7 @@ enum daDisappearItemType_e { daDisItem_HEART_e = 10, daDisItem_MAGIC_e = 11, daDisItem_ARROW_e = 12, - daDisItem_UNK13_e = 13, + daDisItem_NONE13_e = 13, }; class l_HIO { @@ -606,7 +606,7 @@ BOOL stealItem_CB(void* actor); fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo); -fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_health = 0, u8 i_itemBitNo = -1); +fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_dropType, u8 i_itemBitNo = -1); void fopAcM_setCarryNow(fopAc_ac_c* i_this, BOOL stageLayer); void fopAcM_cancelCarryNow(fopAc_ac_c* i_this); s32 fopAcM_otoCheck(fopAc_ac_c*, f32); diff --git a/src/d/actor/d_a_am.cpp b/src/d/actor/d_a_am.cpp index 7dfa12722..bf9cd5494 100644 --- a/src/d/actor/d_a_am.cpp +++ b/src/d/actor/d_a_am.cpp @@ -917,7 +917,7 @@ static void action_itai_move(am_class* i_this) { // fopAcM_seStart(i_this, JA_SE_LK_LAST_HIT, 0); mDoAud_seStart(JA_SE_LK_LAST_HIT, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this))); - fopAcM_createDisappear(i_this, ¢erPos, 5); + fopAcM_createDisappear(i_this, ¢erPos, 5, daDisItem_IBALL_e); fopAcM_onActor(i_this); fopAcM_delete(i_this); break; diff --git a/src/d/actor/d_a_am2.cpp b/src/d/actor/d_a_am2.cpp index c61fdcb45..d3461013a 100644 --- a/src/d/actor/d_a_am2.cpp +++ b/src/d/actor/d_a_am2.cpp @@ -934,7 +934,7 @@ static void action_itai(am2_class* i_this) { dComIfGp_particle_set(dPa_name::ID_SCENE_81AF, &i_this->current.pos, &i_this->shape_angle); dComIfGp_particle_set(dPa_name::ID_SCENE_81B0, &i_this->current.pos, &i_this->shape_angle); fopAcM_seStart(i_this, JA_SE_CM_AM2_EXPLODE, 0); - fopAcM_createDisappear(i_this, ¢erPos, 5); + fopAcM_createDisappear(i_this, ¢erPos, 5, daDisItem_IBALL_e); fopAcM_onActor(i_this); fopAcM_delete(i_this); break; diff --git a/src/d/actor/d_a_bk.cpp b/src/d/actor/d_a_bk.cpp index 1ddbd865f..7d71542bd 100644 --- a/src/d/actor/d_a_bk.cpp +++ b/src/d/actor/d_a_bk.cpp @@ -2623,11 +2623,11 @@ static void fail(bk_class* i_this) { case 1: cXyz sp08 = i_this->current.pos; sp08.y += 100.0f + l_bkHIO.m020; - u8 dropType = daDisItem_NORMAL_e; + u8 drop_type = daDisItem_IBALL_e; if (i_this->m0300[2] >= 1000) { - dropType = daDisItem_NONE1_e; + drop_type = daDisItem_NONE1_e; } - fopAcM_createDisappear(i_this, &sp08, 10, dropType, i_this->stealItemBitNo); + fopAcM_createDisappear(i_this, &sp08, 10, drop_type, i_this->stealItemBitNo); if (i_this->mType == 10) { i_this->m02DE = 1; i_this->dr.m004 = -1; @@ -3907,8 +3907,6 @@ static void demo_camera(bk_class* i_this) { s8 r28 = true; cXyz sp8C; cXyz sp80; - cXyz sp44; - cXyz sp38; camera_class* r3; switch (i_this->m1234) { case 0: diff --git a/src/d/actor/d_a_disappear.cpp b/src/d/actor/d_a_disappear.cpp index 149482841..9fdb963fe 100644 --- a/src/d/actor/d_a_disappear.cpp +++ b/src/d/actor/d_a_disappear.cpp @@ -27,7 +27,7 @@ static BOOL daDisappear_Execute(disappear_class* i_this) { if (dropType == daDisItem_HEART_CONTAINER_e) { fopAcM_createItemForBoss(&i_this->current.pos, 0, i_this->current.roomNo, &i_this->current.angle, NULL, 0); } - else if (dropType >= daDisItem_HEART_e && dropType <= daDisItem_UNK13_e) { + else if (dropType >= daDisItem_HEART_e && dropType <= daDisItem_NONE13_e) { // Special type for Keese (ki) spawned in the Puppet Ganon fight. // This also seems to be used by several other enemies, such as Molgera's spawn. static u32 ki_item_d[] = { @@ -101,7 +101,7 @@ static cPhs_State daDisappear_Create(fopAc_ac_c* i_this) { fopAcM_SetupActor(dis, disappear_class); - dis->health = fopAcM_GetParam(dis) & 0xFF; + dis->health = fopAcM_GetParam(dis) & 0xFF; // Drop type param is stored in health f32 scaleMag = ((fopAcM_GetParam(dis) >> 8) & 0xFF) * 0.1f; dis->mItemBitNo = (fopAcM_GetParam(dis) >> 0x10) & 0xFF; diff --git a/src/d/actor/d_a_ks.cpp b/src/d/actor/d_a_ks.cpp index ee4344784..cf6420f55 100644 --- a/src/d/actor/d_a_ks.cpp +++ b/src/d/actor/d_a_ks.cpp @@ -644,7 +644,7 @@ void dead_eff_set(ks_class* i_this, cXyz* i_pos) { } } else { - drop_type = daDisItem_UNK13_e; // Might just be a void drop (ie. getting nothing) + drop_type = daDisItem_NONE13_e; } fopAcM_createDisappear(i_this, i_pos, 3, drop_type, 0xff); @@ -1096,7 +1096,7 @@ void action_tubo_search(ks_class* i_this) { i_this->mSph.OnAtVsBitSet(cCcD_AtSPrm_VsOther_e); i_this->mSph.OffAtVsBitSet(cCcD_AtSPrm_VsPlayer_e); - i_this->mSph.OffAtVsBitSet(cCcD_AtSPrm_NoTgHitInfSet_e); + i_this->mSph.OffAtSPrmBit(cCcD_AtSPrm_NoTgHitInfSet_e); i_this->mSph.OnAtSPrmBit(cCcD_AtSPrm_Set_e); diff --git a/src/d/actor/d_a_rd.cpp b/src/d/actor/d_a_rd.cpp index cc308959d..dc593358e 100644 --- a/src/d/actor/d_a_rd.cpp +++ b/src/d/actor/d_a_rd.cpp @@ -800,7 +800,7 @@ void daRd_c::modeDeath() { fopAcM_SetGroup(this, fopAc_ENV_e); if (cLib_calcTimer(&mTimer1) == 0) { - fopAcM_createDisappear(this, ¤t.pos, 5); + fopAcM_createDisappear(this, ¤t.pos, 5, daDisItem_IBALL_e); fopAcM_delete(this); } } diff --git a/src/d/actor/d_a_ship.cpp b/src/d/actor/d_a_ship.cpp index e4eb43fd7..f4b012a6f 100644 --- a/src/d/actor/d_a_ship.cpp +++ b/src/d/actor/d_a_ship.cpp @@ -4252,20 +4252,20 @@ BOOL daShip_c::execute() { cyl->SetC(sp9C); dComIfG_Ccsp()->Set(cyl); if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) { - cyl->SetTgGrp(cCcD_AtSPrm_VsPlayer_e); + cyl->SetTgGrp(cCcD_TgSPrm_IsPlayer_e); } else { - cyl->SetTgGrp(cCcD_AtSPrm_VsPlayer_e | cCcD_AtSPrm_VsOther_e); + cyl->SetTgGrp(cCcD_TgSPrm_IsPlayer_e | cCcD_TgSPrm_IsOther_e); } } cMtx_multVec(mpHeadAnm->getModel()->getAnmMtx(8), &sph_offset, &sp9C); if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) { - mSph.SetTgGrp(cCcD_AtSPrm_VsPlayer_e); + mSph.SetTgGrp(cCcD_TgSPrm_IsPlayer_e); } else { - mSph.SetTgGrp(cCcD_AtSPrm_VsPlayer_e | cCcD_AtSPrm_VsOther_e); + mSph.SetTgGrp(cCcD_TgSPrm_IsPlayer_e | cCcD_TgSPrm_IsOther_e); } mSph.SetC(sp9C); diff --git a/src/d/d_jnt_hit.cpp b/src/d/d_jnt_hit.cpp index 75ee7c9f6..10ff0872c 100644 --- a/src/d/d_jnt_hit.cpp +++ b/src/d/d_jnt_hit.cpp @@ -256,7 +256,6 @@ s32 JntHit_c::searchJntHitPosAngleOffset(cXyz* r18, csXyz* r28, cXyz* r29, csXyz cXyz r1_11C; cXyz r1_110; cXyz r1_104; - cXyz r1_2C; csXyz r1_24; J3DModel* model = mpModel; f32 f31 = 10000.0f; diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index c311a1cb7..b3321bfbf 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -1273,8 +1273,8 @@ fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo) { } /* 80027A9C-80027B24 .text fopAcM_createDisappear__FP10fopAc_ac_cP4cXyzUcUcUc */ -fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_health, u8 i_itemBitNo) { - u32 params = (i_itemBitNo & 0xFF) << 0x10 | (i_scale & 0xFF) << 0x08 | (i_health & 0xFF); +fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_dropType, u8 i_itemBitNo) { + u32 params = (i_itemBitNo & 0xFF) << 0x10 | (i_scale & 0xFF) << 0x08 | (i_dropType & 0xFF); fopAc_ac_c* disappear = (fopAc_ac_c*)fopAcM_fastCreate(PROC_DISAPPEAR, params, p_pos, fopAcM_GetRoomNo(i_actor), fopAcM_GetAngle_p(i_actor)); if (disappear) { disappear->itemTableIdx = i_actor->itemTableIdx;