summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_boko.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/actor/d_a_boko.cpp')
-rw-r--r--src/d/actor/d_a_boko.cpp172
1 files changed, 166 insertions, 6 deletions
diff --git a/src/d/actor/d_a_boko.cpp b/src/d/actor/d_a_boko.cpp
index 3d2cfa8d..a7786d02 100644
--- a/src/d/actor/d_a_boko.cpp
+++ b/src/d/actor/d_a_boko.cpp
@@ -1,7 +1,7 @@
-//
-// Generated by dtk
-// Translation Unit: d_a_boko.cpp
-//
+/**
+ * d_a_boko.cpp
+ * Object - Enemy weapons
+ */
#include "d/actor/d_a_boko.h"
#include "d/d_com_inf_game.h"
@@ -10,11 +10,167 @@
#include "d/d_bg_s_lin_chk.h"
#include "weak_bss_936_to_1036.h" // IWYU pragma: keep
+#include "weak_data_2100_2080.h" // IWYU pragma: keep
+#include "weak_data_1811.h" // IWYU pragma: keep
+
+u32 daBoko_c::m_bound_se[6] = {
+ JA_SE_CM_BOKOBOU_BOUND,
+ JA_SE_CM_NATA_BOUND,
+ JA_SE_OBJ_ST_CLUB_FALL,
+ JA_SE_OBJ_TN_SWORD_FALL,
+ JA_SE_CM_LANCE_BOUND,
+ JA_SE_OBJ_TN_SWORD_FALL
+};
+
+s32 daBoko_c::m_heap_size[6] = {
+ 0x2300,
+ 0x1240,
+ 0x1240,
+ 0x1240,
+ 0x4200,
+ 0x2000
+};
+
+char* daBoko_c::m_arc_name[6] = {
+ "Boko", /* Boko stick */
+ "Nata", /* Bokoblin machete */
+ "Club", /* Stalfos mace/club */
+ "Tkwn", /* Darknut sword */
+ "Spear", /* Moblin spear */
+ "Pgsw" /* Phantom Ganon's sword */
+};
+
+Vec daBoko_c::m_cull_min[6] = {
+ {
+ -20.0f,
+ -10.0f,
+ -95.0f,
+ },
+ {
+ -20.0f,
+ -10.0f,
+ -95.0f,
+ },
+ {
+ -35.0f,
+ -35.0f,
+ -125.0f,
+ },
+ {
+ -45.0f,
+ -10.0f,
+ -145.0f,
+ },
+ {
+ -20.0f,
+ -20.0f,
+ -180.0f,
+ },
+ {
+ -50.0f,
+ -20.0f,
+ -140.0f,
+ },
+};
+
+Vec daBoko_c::m_cull_max[6] = {
+ {
+ 20.0f,
+ 10.0f,
+ 95.0f,
+ },
+ {
+ 20.0f,
+ 10.0f,
+ 95.0f,
+ },
+ {
+ 35.0f,
+ 35.0f,
+ 120.0f,
+ },
+ {
+ 45.0f,
+ 10.0f,
+ 130.0f,
+ },
+ {
+ 20.0f,
+ 20.0f,
+ 200.0f,
+ },
+ {
+ 50.0f,
+ 20.0f,
+ 120.0f,
+ },
+};
static cXyz l_break_particle_offset(0.0f, 0.0f, 30.0f);
dBgS_ObjGndChk daBoko_c::m_ground_check;
dBgS_ObjLinChk daBoko_c::m_line_check;
+static dCcD_SrcSph sph_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ AT_TYPE_UNK20000,
+ /* SrcObjAt Atp */ 0,
+ /* SrcObjAt SPrm */ cCcD_AtSPrm_GrpAll_e,
+ /* SrcObjTg Type */ AT_TYPE_WATER | AT_TYPE_FIRE | AT_TYPE_UNK20000,
+ /* SrcObjTg SPrm */ cCcD_TgSPrm_Set_e | cCcD_TgSPrm_IsOther_e,
+ /* SrcObjCo SPrm */ 0,
+ /* SrcGObjAt Se */ 0,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt SPrm */ dCcG_TgSPrm_NoConHit_e,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg SPrm */ 0,
+ /* SrcGObjCo SPrm */ 0,
+
+ },
+ // cM3dGSphS
+ {
+ /* Center */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 20.0f,
+ },
+};
+
+static dCcD_SrcCps at_cps_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ AT_TYPE_BOKO_STICK,
+ /* SrcObjAt Atp */ 0x01,
+ /* SrcObjAt SPrm */ cCcD_AtSPrm_Set_e | cCcD_AtSPrm_VsEnemy_e | cCcD_AtSPrm_VsOther_e,
+ /* SrcObjTg Type */ 0,
+ /* SrcObjTg SPrm */ 0,
+ /* SrcObjCo SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IGrpAll_e,
+ /* SrcGObjAt Se */ dCcG_SE_UNK1,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt SPrm */ 0,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg SPrm */ 0,
+ /* SrcGObjCo SPrm */ 0,
+
+ },
+ // cM3dGCpsS
+ {
+ /* Start */ 0.0f, 0.0f, 0.0f,
+ /* End */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 20.0f,
+ },
+};
+
const s16 daBoko_HIO_c0::throw_timer = 2;
const f32 daBoko_HIO_c0::throw_speed = 70.0f;
@@ -231,8 +387,12 @@ static BOOL daBoko_IsDelete(daBoko_c* i_this) {
}
/* 00002A2C-00002AA4 .text bokoDelete__8daBoko_cFv */
-void daBoko_c::bokoDelete() {
- /* Nonmatching */
+BOOL daBoko_c::bokoDelete() {
+ mDoAud_seDeleteObject(&m2D0);
+ mParticleCallBack.end();
+ dKy_plight_cut(&mLight);
+ dComIfG_resDelete(&mPhs, m_arc_name[fopAcM_GetParam(this)]);
+ return TRUE;
}
/* 00002AA4-00002AC8 .text daBoko_Delete__FP8daBoko_c */