summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_batta.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/actor/d_a_obj_batta.cpp')
-rw-r--r--src/d/actor/d_a_obj_batta.cpp1496
1 files changed, 613 insertions, 883 deletions
diff --git a/src/d/actor/d_a_obj_batta.cpp b/src/d/actor/d_a_obj_batta.cpp
index 10aa9e55ed..db39fc2dac 100644
--- a/src/d/actor/d_a_obj_batta.cpp
+++ b/src/d/actor/d_a_obj_batta.cpp
@@ -4,1006 +4,736 @@
*/
#include "d/actor/d_a_obj_batta.h"
-#include "dol2asm.h"
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__16daObj_BattaHIO_cFv();
-extern "C" void setAction__12daObjBATTA_cFM12daObjBATTA_cFPCvPv_v();
-extern "C" static void useHeapInit__FP10fopAc_ac_c();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" static void daObjBATTA_Create__FP10fopAc_ac_c();
-extern "C" static void daObjBATTA_Delete__FP12daObjBATTA_c();
-extern "C" void wait__12daObjBATTA_cFv();
-extern "C" void turn__12daObjBATTA_cFv();
-extern "C" void jump__12daObjBATTA_cFv();
-extern "C" void fly_up__12daObjBATTA_cFv();
-extern "C" void fly_down__12daObjBATTA_cFv();
-extern "C" void bin_wait__12daObjBATTA_cFv();
-extern "C" void bin_action__12daObjBATTA_cFv();
-extern "C" void hook__12daObjBATTA_cFv();
-extern "C" void boomerang__12daObjBATTA_cFv();
-extern "C" void batta_setParticle__12daObjBATTA_cFv();
-extern "C" void action__12daObjBATTA_cFv();
-extern "C" void hit_check__12daObjBATTA_cFv();
-extern "C" void execute__12daObjBATTA_cFv();
-extern "C" void _delete__12daObjBATTA_cFv();
-extern "C" void mtx_set__12daObjBATTA_cFv();
-extern "C" static void daObjBATTA_Draw__FP12daObjBATTA_c();
-extern "C" static void daObjBATTA_Execute__FP12daObjBATTA_c();
-extern "C" void create__12daObjBATTA_cFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" static bool daObjBATTA_IsDelete__FP12daObjBATTA_c();
-extern "C" void __dt__16daObj_BattaHIO_cFv();
-extern "C" void __sinit_d_a_obj_batta_cpp();
-extern "C" static void func_80BAC8F8();
-extern "C" static void func_80BAC900();
-extern "C" void Insect_Release__9dInsect_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" extern char const* const d_a_obj_batta__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void play__14mDoExt_baseAnmFv();
-extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
-extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
-extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
-extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
-extern "C" void
-__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
-extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff();
-extern "C" void play__16mDoExt_McaMorfSOFUlSc();
-extern "C" void entryDL__16mDoExt_McaMorfSOFv();
-extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
-extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
-extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
-extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj();
-extern "C" void isEventBit__11dSv_event_cCFUs();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Move__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void __ct__9dInsect_cFv();
-extern "C" void Insect_GetDemoMain__9dInsect_cFv();
-extern "C" void CalcZBuffer__9dInsect_cFf();
-extern "C" void initOffset__20daPy_boomerangMove_cFPC4cXyz();
-extern "C" void posMove__20daPy_boomerangMove_cFP4cXyzPsP10fopAc_ac_cs();
-extern "C" void bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void isCatchNotGiveInsect__14dMenu_Insect_cFUc();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void cM_rndF__Ff();
-extern "C" void cM_rndFX__Ff();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalc2__FPffff();
-extern "C" void cLib_addCalcAngleS2__FPssss();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void cLib_chaseAngleS__FPsss();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void __ct__10Z2CreatureFv();
-extern "C" void init__10Z2CreatureFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_cmpr();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
+#include "d/actor/d_a_player.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
+#include "d/d_com_inf_game.h"
+#include "d/d_menu_insect.h"
+#include "f_pc/f_pc_name.h"
-/* ############################################################################################## */
-/* 80BAC970-80BAC974 000000 0004+00 12/12 0/0 0/0 .rodata @3774 */
-SECTION_RODATA static f32 const lit_3774 = 1.0f;
-COMPILER_STRIP_GATE(0x80BAC970, &lit_3774);
-
-/* 80BAC974-80BAC978 000004 0004+00 1/1 0/0 0/0 .rodata @3775 */
-SECTION_RODATA static f32 const lit_3775 = 7.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BAC974, &lit_3775);
-
-/* 80BACA70-80BACA7C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80BACA7C-80BACA90 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
+UNK_REL_DATA
/* 80BACA90-80BACAD0 000020 0040+00 0/1 0/0 0/0 .data cc_sph_src__27@unnamed@d_a_obj_batta_cpp@ */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 data_80BACA90[64] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x40, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00,
-};
-#pragma pop
-
-/* 80BACAD0-80BACADC -00001 000C+00 1/1 0/0 0/0 .data @3903 */
-SECTION_DATA static void* lit_3903[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)jump__12daObjBATTA_cFv,
-};
-
-/* 80BACADC-80BACAE8 -00001 000C+00 1/1 0/0 0/0 .data @3907 */
-SECTION_DATA static void* lit_3907[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn__12daObjBATTA_cFv,
-};
-
-/* 80BACAE8-80BACAF4 -00001 000C+00 1/1 0/0 0/0 .data @3992 */
-SECTION_DATA static void* lit_3992[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)jump__12daObjBATTA_cFv,
-};
-
-/* 80BACAF4-80BACB00 -00001 000C+00 1/1 0/0 0/0 .data @3998 */
-SECTION_DATA static void* lit_3998[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)jump__12daObjBATTA_cFv,
-};
-
-/* 80BACB00-80BACB0C -00001 000C+00 1/1 0/0 0/0 .data @4151 */
-SECTION_DATA static void* lit_4151[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fly_up__12daObjBATTA_cFv,
-};
-
-/* 80BACB0C-80BACB18 -00001 000C+00 1/1 0/0 0/0 .data @4155 */
-SECTION_DATA static void* lit_4155[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
-};
-
-/* 80BACB18-80BACB24 -00001 000C+00 1/1 0/0 0/0 .data @4246 */
-SECTION_DATA static void* lit_4246[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fly_down__12daObjBATTA_cFv,
-};
-
-/* 80BACB24-80BACB30 -00001 000C+00 1/1 0/0 0/0 .data @4353 */
-SECTION_DATA static void* lit_4353[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
-};
+namespace {
-/* 80BACB30-80BACB3C -00001 000C+00 1/1 0/0 0/0 .data @4415 */
-SECTION_DATA static void* lit_4415[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
+static dCcD_SrcSph cc_sph_src = {
+ {
+ {0x0, {{AT_TYPE_0, 0, 0}, {0x014040, 0x43}, 0}}, // mObj
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg
+ {0x0}, // mGObjCo
+ }, // mObjInf
+ {
+ {{0.0f, 0.0f, 0.0f}, 20.0f} // mSph
+ } // mSphAttr
};
-/* 80BACB3C-80BACB48 -00001 000C+00 1/1 0/0 0/0 .data @4418 */
-SECTION_DATA static void* lit_4418[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)bin_action__12daObjBATTA_cFv,
};
-/* 80BACB48-80BACB54 -00001 000C+00 1/1 0/0 0/0 .data @4485 */
-SECTION_DATA static void* lit_4485[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
-};
-
-/* 80BACB54-80BACB60 -00001 000C+00 1/1 0/0 0/0 .data @4521 */
-SECTION_DATA static void* lit_4521[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
-};
-
-/* 80BACB60-80BACB6C -00001 000C+00 1/1 0/0 0/0 .data @4620 */
-SECTION_DATA static void* lit_4620[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)boomerang__12daObjBATTA_cFv,
-};
-
-/* 80BACB6C-80BACB78 -00001 000C+00 1/1 0/0 0/0 .data @4648 */
-SECTION_DATA static void* lit_4648[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)hook__12daObjBATTA_cFv,
-};
-
-/* 80BACB78-80BACB84 -00001 000C+00 1/1 0/0 0/0 .data @4651 */
-SECTION_DATA static void* lit_4651[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)boomerang__12daObjBATTA_cFv,
-};
+/* 80BA9E2C-80BA9E5C 0000EC 0030+00 1/1 0/0 0/0 .text __ct__16daObj_BattaHIO_cFv */
+daObj_BattaHIO_c::daObj_BattaHIO_c() {
+ mId = -1;
+ mModelScaleMale = 1.0f;
+ mModelScaleFemale = 1.4f;
+}
-/* 80BACB84-80BACB90 -00001 000C+00 0/1 0/0 0/0 .data @4880 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4880[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)bin_wait__12daObjBATTA_cFv,
-};
-#pragma pop
-
-/* 80BACB90-80BACB9C -00001 000C+00 0/1 0/0 0/0 .data @4883 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4883[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daObjBATTA_cFv,
-};
-#pragma pop
+/* 80BACC88-80BACC8C 000008 0004+00 2/2 0/0 0/0 .bss None */
+static bool l_HIOInit;
-/* 80BACB9C-80BACBBC -00001 0020+00 1/0 0/0 0/0 .data l_daObjBATTA_Method */
-static actor_method_class l_daObjBATTA_Method = {
- (process_method_func)daObjBATTA_Create__FP10fopAc_ac_c,
- (process_method_func)daObjBATTA_Delete__FP12daObjBATTA_c,
- (process_method_func)daObjBATTA_Execute__FP12daObjBATTA_c,
- (process_method_func)daObjBATTA_IsDelete__FP12daObjBATTA_c,
- (process_method_func)daObjBATTA_Draw__FP12daObjBATTA_c,
-};
+/* 80BACC98-80BACCA8 000018 0010+00 2/2 0/0 0/0 .bss l_HIO */
+static daObj_BattaHIO_c l_HIO;
-/* 80BACBBC-80BACBEC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Batta */
-extern actor_process_profile_definition g_profile_Obj_Batta = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Batta, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjBATTA_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 486, // mPriority
- &l_daObjBATTA_Method, // sub_method
- 0x000C0120, // mStatus
- fopAc_ENV_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+#ifdef DEBUG
-/* 80BACBEC-80BACBF8 00017C 000C+00 0/0 0/0 0/0 .data __vt__9dInsect_c */
-SECTION_DATA extern void* __vt__9dInsect_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)Insect_Release__9dInsect_cFv,
-};
+void daObj_BattaHIO_c::genMessage(JORMContext* ctx) {
+ // Golden bugs
+ ctx->genLabel("黄金蟲(バッタ)", 0x80000001, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
+ // Model scale (Male)
+ ctx->genSlider("モデルスケール(オス)", &mModelScaleMale, 0.1f, 4.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ // Model scale (Female)
+ ctx->genSlider("モデルスケール(メス)", &mModelScaleFemale, 0.1f, 4.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+}
-/* 80BACBF8-80BACC04 000188 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
+#endif
-/* 80BACC04-80BACC10 000194 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
+/* 80BA9E5C-80BA9F00 00011C 00A4+00 10/10 0/0 0/0 .text
+ * setAction__12daObjBATTA_cFM12daObjBATTA_cFPCvPv_v */
+void daObjBATTA_c::setAction(actionFunc i_func) {
+ if (mActionFunc != NULL) {
+ field_0x9e8 = -1;
+ (this->*mActionFunc)();
+ }
-/* 80BACC10-80BACC1C 0001A0 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
+ mPrevActionFunc = mActionFunc;
+ mActionFunc = i_func;
+ field_0x9e8 = 0;
+ (this->*mActionFunc)();
+}
-/* 80BACC1C-80BACC28 0001AC 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
+/* 80BAC978-80BAC980 000008 0008+00 0/1 0/0 0/0 .rodata l_batta_brk_index */
+static u32 const l_batta_brk_index[2] = {
+ 15,
+ 14,
};
-/* 80BACC28-80BACC34 0001B8 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
+/* 80BAC980-80BAC988 000010 0008+00 0/1 0/0 0/0 .rodata l_batta_btk_index */
+static u32 const l_batta_btk_index[2] = {
+ 19, 18,
};
-/* 80BACC34-80BACC58 0001C4 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BAC900,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BAC8F8,
-};
+inline int daObjBATTA_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Bat", 0xb);
+ JUT_ASSERT(256, modelData != 0);
+ mpMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL,
+ (J3DAnmTransform*)dComIfG_getObjectRes("Bat", 8), 2, 1.0f, 0, -1,
+ &mCreature, 0x80000, 0x11000284);
+ if (mpMorf == NULL || mpMorf->getModel() == NULL) {
+ return 0;
+ }
-/* 80BACC58-80BACC64 0001E8 000C+00 1/1 0/0 0/0 .data __vt__12daObjBATTA_c */
-SECTION_DATA extern void* __vt__12daObjBATTA_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)Insect_Release__9dInsect_cFv,
-};
+ J3DModel* morfModel = mpMorf->getModel();
+ mBrk = new mDoExt_brkAnm();
+ if (mBrk == NULL) {
+ return 0;
+ }
-/* 80BACC64-80BACC70 0001F4 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
-SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12J3DFrameCtrlFv,
-};
+ ;
+ if (!mBrk->init(morfModel->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("Bat", l_batta_brk_index[mSex]), 1, 2, 1.0f, 0, -1)) {
+ return 0;
+ }
-/* 80BACC70-80BACC7C 000200 000C+00 2/2 0/0 0/0 .data __vt__16daObj_BattaHIO_c */
-SECTION_DATA extern void* __vt__16daObj_BattaHIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16daObj_BattaHIO_cFv,
-};
+ mBtk = new mDoExt_btkAnm();
+ if (mBtk == NULL) {
+ return 0;
+ }
-/* 80BA9E2C-80BA9E5C 0000EC 0030+00 1/1 0/0 0/0 .text __ct__16daObj_BattaHIO_cFv */
-daObj_BattaHIO_c::daObj_BattaHIO_c() {
- // NONMATCHING
-}
+ if (!mBtk->init(morfModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Bat", l_batta_btk_index[mSex]), 1, 2, 1.0f, 0, -1)) {
+ return 0;
+ }
-/* 80BA9E5C-80BA9F00 00011C 00A4+00 10/10 0/0 0/0 .text
- * setAction__12daObjBATTA_cFM12daObjBATTA_cFPCvPv_v */
-void daObjBATTA_c::setAction(void (daObjBATTA_c::*param_0)()) {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80BAC978-80BAC980 000008 0008+00 0/1 0/0 0/0 .rodata l_batta_brk_index */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_batta_brk_index[8] = {
- 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E,
-};
-COMPILER_STRIP_GATE(0x80BAC978, &l_batta_brk_index);
-#pragma pop
-
-/* 80BAC980-80BAC988 000010 0008+00 0/1 0/0 0/0 .rodata l_batta_btk_index */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_batta_btk_index[8] = {
- 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12,
-};
-COMPILER_STRIP_GATE(0x80BAC980, &l_batta_btk_index);
-#pragma pop
-
-/* 80BACA64-80BACA64 0000F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BACA64 = "Bat";
-#pragma pop
-
/* 80BA9F00-80BAA13C 0001C0 023C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
-static void useHeapInit(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
-
-/* 80BAA13C-80BAA184 0003FC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
+static int useHeapInit(fopAc_ac_c* i_this) {
+ return ((daObjBATTA_c*)i_this)->CreateHeap();
}
/* 80BAA184-80BAA1A4 000444 0020+00 1/0 0/0 0/0 .text daObjBATTA_Create__FP10fopAc_ac_c
*/
-static void daObjBATTA_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daObjBATTA_Create(fopAc_ac_c* i_this) {
+ return ((daObjBATTA_c*)i_this)->create();
}
/* 80BAA1A4-80BAA1C8 000464 0024+00 1/0 0/0 0/0 .text daObjBATTA_Delete__FP12daObjBATTA_c
*/
-static void daObjBATTA_Delete(daObjBATTA_c* param_0) {
- // NONMATCHING
+static int daObjBATTA_Delete(daObjBATTA_c* i_this) {
+ i_this->_delete();
+ return 1;
}
-/* ############################################################################################## */
-/* 80BAC988-80BAC98C 000018 0004+00 0/5 0/0 0/0 .rodata @3955 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3955 = 4.0f;
-COMPILER_STRIP_GATE(0x80BAC988, &lit_3955);
-#pragma pop
-
-/* 80BAC98C-80BAC990 00001C 0004+00 3/11 0/0 0/0 .rodata @3956 */
-SECTION_RODATA static u8 const lit_3956[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80BAC98C, &lit_3956);
-
-/* 80BAC990-80BAC994 000020 0004+00 0/5 0/0 0/0 .rodata @3957 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3957 = -1.0f;
-COMPILER_STRIP_GATE(0x80BAC990, &lit_3957);
-#pragma pop
-
-/* 80BAC994-80BAC998 000024 0004+00 0/3 0/0 0/0 .rodata @3958 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3958 = -5.0f;
-COMPILER_STRIP_GATE(0x80BAC994, &lit_3958);
-#pragma pop
-
-/* 80BAC998-80BAC99C 000028 0004+00 0/4 0/0 0/0 .rodata @3959 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3959 = -20.0f;
-COMPILER_STRIP_GATE(0x80BAC998, &lit_3959);
-#pragma pop
-
-/* 80BAC99C-80BAC9A0 00002C 0004+00 0/1 0/0 0/0 .rodata @3960 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3960 = 90.0f;
-COMPILER_STRIP_GATE(0x80BAC99C, &lit_3960);
-#pragma pop
-
-/* 80BAC9A0-80BAC9A8 000030 0004+04 0/1 0/0 0/0 .rodata @3961 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3961[1 + 1 /* padding */] = {
- 160.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80BAC9A0, &lit_3961);
-#pragma pop
-
-/* 80BAC9A8-80BAC9B0 000038 0008+00 0/5 0/0 0/0 .rodata @3962 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3962[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BAC9A8, &lit_3962);
-#pragma pop
-
-/* 80BAC9B0-80BAC9B8 000040 0008+00 0/5 0/0 0/0 .rodata @3963 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3963[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BAC9B0, &lit_3963);
-#pragma pop
-
-/* 80BAC9B8-80BAC9C0 000048 0008+00 0/5 0/0 0/0 .rodata @3964 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3964[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BAC9B8, &lit_3964);
-#pragma pop
-
-/* 80BAC9C0-80BAC9C4 000050 0004+00 0/2 0/0 0/0 .rodata @3965 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3965 = 200.0f;
-COMPILER_STRIP_GATE(0x80BAC9C0, &lit_3965);
-#pragma pop
-
-/* 80BAC9C4-80BAC9C8 000054 0004+00 0/2 0/0 0/0 .rodata @3966 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3966 = 19.0f;
-COMPILER_STRIP_GATE(0x80BAC9C4, &lit_3966);
-#pragma pop
-
/* 80BAA1C8-80BAA47C 000488 02B4+00 6/0 0/0 0/0 .text wait__12daObjBATTA_cFv */
void daObjBATTA_c::wait() {
- // NONMATCHING
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ if (field_0x9e8 == 0) {
+ mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Bat", 8), 2, 4.0f, 1.0f, 0.0f,
+ -1.0f);
+ speedF = 0.0f;
+ field_0x9f1 = 0;
+ gravity = -5.0f;
+ maxFallSpeed = -20.0f;
+ mActionTimer = cM_rndF(160.0f) + 90.0f;
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ if (mAcch.ChkGroundHit()) {
+ if (current.pos.absXZ(player->current.pos) < 200.0f && player->getSpeedF() > 19.0f)
+ {
+ field_0x9f1 = 1;
+ setAction(&daObjBATTA_c::jump);
+ } else {
+ mActionTimer--;
+ if (mActionTimer == 0) {
+ setAction(&daObjBATTA_c::turn);
+ }
+ }
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BAC9C8-80BAC9CC 000058 0004+00 0/3 0/0 0/0 .rodata @4117 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4117 = 1800.0f;
-COMPILER_STRIP_GATE(0x80BAC9C8, &lit_4117);
-#pragma pop
-
-/* 80BAC9CC-80BAC9D0 00005C 0004+00 0/1 0/0 0/0 .rodata @4118 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4118 = 12288.0f;
-COMPILER_STRIP_GATE(0x80BAC9CC, &lit_4118);
-#pragma pop
-
-/* 80BAC9D0-80BAC9D4 000060 0004+00 0/2 0/0 0/0 .rodata @4119 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4119 = 1000.0f;
-COMPILER_STRIP_GATE(0x80BAC9D0, &lit_4119);
-#pragma pop
-
-/* 80BAC9D4-80BAC9D8 000064 0004+00 0/4 0/0 0/0 .rodata @4120 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4120 = 32768.0f;
-COMPILER_STRIP_GATE(0x80BAC9D4, &lit_4120);
-#pragma pop
-
-/* 80BAC9D8-80BAC9E0 000068 0004+04 0/3 0/0 0/0 .rodata @4121 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4121[1 + 1 /* padding */] = {
- 8192.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80BAC9D8, &lit_4121);
-#pragma pop
-
-/* 80BAC9E0-80BAC9E8 000070 0008+00 0/3 0/0 0/0 .rodata @4123 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4123[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BAC9E0, &lit_4123);
-#pragma pop
-
/* 80BAA47C-80BAAA18 00073C 059C+00 1/0 0/0 0/0 .text turn__12daObjBATTA_cFv */
void daObjBATTA_c::turn() {
- // NONMATCHING
+ daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass();
+ cXyz* flamePos = player->getKandelaarFlamePos();
+ if (field_0x9e8 == 0) {
+ if (flamePos != NULL && current.pos.absXZ(*flamePos) < 1800.0f) {
+ field_0x9ec = cLib_targetAngleY(&current.pos, flamePos) + cM_rndFX(12288.0f);
+ } else if (home.pos.absXZ(current.pos) < 1000.0f) {
+ field_0x9ec = cM_rndFX(32768.0f);
+ } else {
+ field_0x9ec = cLib_targetAngleY(&current.pos, &home.pos) + cM_rndFX(8192.0f);
+ }
+
+ mActionTimer = 16;
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ if (current.pos.absXZ(player->current.pos) < 200.0f && player->getSpeedF() > 19.0f) {
+ field_0x9f1 = 1;
+ setAction(&daObjBATTA_c::jump);
+ }
+ else {
+ cLib_addCalcAngleS2(&current.angle.y, field_0x9ec, 4, 0x4000);
+ if (abs(current.angle.y - field_0x9ec) < 0x1000) {
+ mActionTimer--;
+ if (mActionTimer == 0) {
+ setAction(&daObjBATTA_c::jump);
+ }
+ }
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BAC9E8-80BAC9EC 000078 0004+00 0/1 0/0 0/0 .rodata @4210 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4210 = 2.0f;
-COMPILER_STRIP_GATE(0x80BAC9E8, &lit_4210);
-#pragma pop
-
-/* 80BAC9EC-80BAC9F0 00007C 0004+00 0/1 0/0 0/0 .rodata @4211 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4211 = 25.0f;
-COMPILER_STRIP_GATE(0x80BAC9EC, &lit_4211);
-#pragma pop
-
-/* 80BAC9F0-80BAC9F4 000080 0004+00 0/1 0/0 0/0 .rodata @4212 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4212 = 5.0f;
-COMPILER_STRIP_GATE(0x80BAC9F0, &lit_4212);
-#pragma pop
-
-/* 80BAC9F4-80BAC9F8 000084 0004+00 1/3 0/0 0/0 .rodata @4213 */
-SECTION_RODATA static f32 const lit_4213 = 20.0f;
-COMPILER_STRIP_GATE(0x80BAC9F4, &lit_4213);
-
-/* 80BAC9F8-80BAC9FC 000088 0004+00 0/1 0/0 0/0 .rodata @4214 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4214 = 800.0f;
-COMPILER_STRIP_GATE(0x80BAC9F8, &lit_4214);
-#pragma pop
-
-/* 80BAC9FC-80BACA00 00008C 0004+00 0/1 0/0 0/0 .rodata @4215 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4215 = -2.5f;
-COMPILER_STRIP_GATE(0x80BAC9FC, &lit_4215);
-#pragma pop
-
/* 80BAAA18-80BAAD30 000CD8 0318+00 3/0 0/0 0/0 .text jump__12daObjBATTA_cFv */
void daObjBATTA_c::jump() {
- // NONMATCHING
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz* flamePos = player->getKandelaarFlamePos();
+ if (field_0x9e8 == 0) {
+ mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Bat", 7), 0, 4.0f, 2.0f, 0.0f,
+ -1.0f);
+ speed.y = cM_rndFX(5.0f) + 25.0f;
+ speedF = cM_rndFX(4.0f) + 20.0f;
+
+ if (flamePos == NULL || (flamePos != NULL && current.pos.absXZ(*flamePos) > 800.0f)) {
+ if ((int)cM_rndF(4.0f) == 0) {
+ field_0x9f1 = 1;
+ }
+ }
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ if (mpMorf->isStop()) {
+ if (field_0x9f0 == 0 && field_0x9f1 != 0 && speed.y < -2.5f) {
+ speed.y = -2.5f;
+ setAction(&daObjBATTA_c::fly_up);
+ } else if (mAcch.ChkGroundHit()) {
+ setAction(&daObjBATTA_c::wait);
+ }
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BACA00-80BACA04 000090 0004+00 0/2 0/0 0/0 .rodata @4329 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4329 = 0.5f;
-COMPILER_STRIP_GATE(0x80BACA00, &lit_4329);
-#pragma pop
-
-/* 80BACA04-80BACA08 000094 0004+00 0/2 0/0 0/0 .rodata @4330 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4330 = 40.0f;
-COMPILER_STRIP_GATE(0x80BACA04, &lit_4330);
-#pragma pop
-
-/* 80BACA08-80BACA0C 000098 0004+00 0/1 0/0 0/0 .rodata @4331 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4331 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80BACA08, &lit_4331);
-#pragma pop
-
-/* 80BACA0C-80BACA10 00009C 0004+00 0/1 0/0 0/0 .rodata @4332 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4332 = 6.0f;
-COMPILER_STRIP_GATE(0x80BACA0C, &lit_4332);
-#pragma pop
-
-/* 80BACA10-80BACA14 0000A0 0004+00 0/2 0/0 0/0 .rodata @4333 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4333 = 1.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BACA10, &lit_4333);
-#pragma pop
-
/* 80BAAD30-80BAB234 000FF0 0504+00 1/0 0/0 0/0 .text fly_up__12daObjBATTA_cFv */
void daObjBATTA_c::fly_up() {
- // NONMATCHING
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz* flamePos = player->getKandelaarFlamePos();
+
+ if (field_0x9e8 == 0) {
+ mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Bat", 6), 2, 4.0f, 0.5f, 0.0f,
+ -1.0f);
+ gravity = 0.0f;
+ maxFallSpeed = -20.0f;
+
+ if (flamePos != NULL && current.pos.absXZ(*flamePos) < 1800.0f) {
+ field_0x9ec = cLib_targetAngleY(&current.pos, flamePos) + cM_rndFX(8192.0f);
+ } else if (home.pos.absXZ(current.pos) < 1000.0f) {
+ field_0x9ec = cM_rndFX(32768.0f);
+ } else {
+ field_0x9ec = cLib_targetAngleY(&current.pos, &home.pos) + cM_rndFX(8192.0f);
+ }
+
+ if ((field_0x9f0 & 2) != 0) {
+ field_0x9f2 = 120;
+ } else {
+ field_0x9f2 = cM_rndF(20.0f) + 40.0f;
+ }
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ u16 angleDiff = abs(current.angle.y - field_0x9ec);
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ s16 angleStep;
+ if (angleDiff < 0x4000) {
+ angleStep = 0x200;
+ } else {
+ angleStep = 0x400;
+ }
+
+ cLib_chaseAngleS(&current.angle.y, field_0x9ec, angleStep);
+ cLib_chaseF(&speedF, 40.0f, 0.3f);
+ cLib_chaseF(&speed.y, 6.0f, 0.2f);
+
+ if (field_0x9f2 == 0) {
+ if ((field_0x9f0 & 2) != 0) {
+ fopAcM_delete(this);
+ } else {
+ setAction(&daObjBATTA_c::fly_down);
+ }
+ }
+
+ mCreature.startCreatureSoundLevel(Z2SE_INSCT_BTBT, 0, -1);
+ }
}
/* 80BAB234-80BAB500 0014F4 02CC+00 1/0 0/0 0/0 .text fly_down__12daObjBATTA_cFv */
void daObjBATTA_c::fly_down() {
- // NONMATCHING
-}
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz* flamePos = player->getKandelaarFlamePos();
+ if (field_0x9e8 == 0) {
+ gravity = -5.0f;
+ maxFallSpeed = -20.0f;
-/* ############################################################################################## */
-/* 80BACA14-80BACA18 0000A4 0004+00 0/2 0/0 0/0 .rodata @4435 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4435 = 10.0f;
-COMPILER_STRIP_GATE(0x80BACA14, &lit_4435);
-#pragma pop
+ if (flamePos != NULL && current.pos.absXZ(*flamePos) < 1800.0f) {
+ field_0x9ec = cLib_targetAngleY(&current.pos, flamePos) + cM_rndFX(8192.0f);
+ } else {
+ field_0x9ec = cM_rndFX(32768.0f);
+ }
-/* 80BACA64-80BACA64 0000F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BACA68 = "R_SP160";
-#pragma pop
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ cLib_chaseAngleS(&current.angle.y, field_0x9ec, 0x100);
+ cLib_chaseF(&speedF, 40.0f, 0.2f);
+
+ if (mAcch.ChkGroundHit()) {
+ setAction(&daObjBATTA_c::wait);
+ }
+
+ mCreature.startCreatureSoundLevel(Z2SE_INSCT_BTBT, 0, -1);
+ }
+}
/* 80BAB500-80BAB6C8 0017C0 01C8+00 1/0 0/0 0/0 .text bin_wait__12daObjBATTA_cFv */
void daObjBATTA_c::bin_wait() {
- // NONMATCHING
+ if (field_0x9e8 == 0) {
+ J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes("Bat", 8);
+ mpMorf->setAnm(anm, 2, 4.0f, 1.0f, 0.0f, -1.0f);
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000);
+ mDraw = false;
+ gravity = 0.0f;
+ maxFallSpeed = 0.0f;
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1 && field_0x56c != 0) {
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ current.angle.y = player->current.angle.y - 0x4000;
+
+ if (strcmp("R_SP160", dComIfGp_getStartStageName()) == 0 &&
+ dComIfGp_getStartStageRoomNo() == 3)
+ {
+ field_0x9f0 = 1;
+ mDraw = true;
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+ mAcch.SetObj();
+ mAcchCir.SetWall(10.0f, 10.0f);
+ mDraw = 1;
+ setAction(&daObjBATTA_c::wait);
+ } else {
+ setAction(&daObjBATTA_c::bin_action);
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BACA18-80BACA1C 0000A8 0004+00 0/1 0/0 0/0 .rodata @4465 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4465 = -2.0f;
-COMPILER_STRIP_GATE(0x80BACA18, &lit_4465);
-#pragma pop
-
-/* 80BACA1C-80BACA20 0000AC 0004+00 0/1 0/0 0/0 .rodata @4466 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4466 = 2.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BACA1C, &lit_4466);
-#pragma pop
-
-/* 80BACA20-80BACA24 0000B0 0004+00 0/1 0/0 0/0 .rodata @4467 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4467 = 3.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BACA20, &lit_4467);
-#pragma pop
-
-/* 80BACA24-80BACA28 0000B4 0004+00 0/1 0/0 0/0 .rodata @4468 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4468 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80BACA24, &lit_4468);
-#pragma pop
-
-/* 80BACA28-80BACA2C 0000B8 0004+00 0/1 0/0 0/0 .rodata @4469 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4469 = 62.0f;
-COMPILER_STRIP_GATE(0x80BACA28, &lit_4469);
-#pragma pop
-
-/* 80BACA2C-80BACA30 0000BC 0004+00 0/1 0/0 0/0 .rodata @4470 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4470 = 1.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80BACA2C, &lit_4470);
-#pragma pop
-
-/* 80BACA30-80BACA38 0000C0 0008+00 0/1 0/0 0/0 .rodata @4471 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4471[8] = {
- 0x3F, 0xB9, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9A,
-};
-COMPILER_STRIP_GATE(0x80BACA30, &lit_4471);
-#pragma pop
-
/* 80BAB6C8-80BAB820 001988 0158+00 1/0 0/0 0/0 .text bin_action__12daObjBATTA_cFv */
void daObjBATTA_c::bin_action() {
- // NONMATCHING
+ if (field_0x9e8 == 0) {
+ J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes("Bat", 6);
+ mpMorf->setAnm(anm, 2, 4.0f, 0.5f, 0.0f, -1.0f);
+ maxFallSpeed = -2.0f;
+ gravity = -2.0f;
+ scale.setall(0.4f);
+ field_0x9f2 = 10;
+ mDraw = true;
+ field_0x9e8++;
+ } else if (field_0x9e8 != -1) {
+ f32 scaleValue = scale.x;
+ if (field_0x9f2 != 0) {
+ cLib_chaseF(&scaleValue, 0.6f, 0.1f);
+ } else {
+ cLib_addCalc2(&scaleValue, 0.0f, 62.0f, 0.05f);
+ scale.setall(scaleValue);
+ if (scaleValue < 0.1) {
+ fopAcM_delete(this);
+ return;
+ }
+ }
+ scale.setall(scaleValue);
+ if (mDraw) {
+ batta_setParticle();
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BACA38-80BACA3C 0000C8 0004+00 1/1 0/0 0/0 .rodata @4506 */
-SECTION_RODATA static f32 const lit_4506 = -10.0f;
-COMPILER_STRIP_GATE(0x80BACA38, &lit_4506);
-
/* 80BAB820-80BAB934 001AE0 0114+00 1/0 0/0 0/0 .text hook__12daObjBATTA_cFv */
void daObjBATTA_c::hook() {
- // NONMATCHING
+ if (field_0x9e8 == 0) {
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz hookOffset(0.0f, -10.0f, 0.0f);
+ mSph.SetTgType(0);
+ u32 actorId = fopAcM_GetID(this);
+ player->setHookshotCarryOffset(actorId, &hookOffset);
+ field_0x9e8++;
+ } else if (field_0x9e8 == -1) {
+ mSph.SetTgType(0x14040);
+ home.pos = current.pos;
+ } else {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ if (!fopAcM_checkStatus(this, fopAcM_STATUS_HOOK_CARRY_NOW)) {
+ setAction(&daObjBATTA_c::wait);
+ }
+ }
}
-/* ############################################################################################## */
-/* 80BACA3C-80BACA40 0000CC 0004+00 1/1 0/0 0/0 .rodata @4552 */
-SECTION_RODATA static f32 const lit_4552 = 100.0f;
-COMPILER_STRIP_GATE(0x80BACA3C, &lit_4552);
-
/* 80BAB934-80BABA98 001BF4 0164+00 2/0 0/0 0/0 .text boomerang__12daObjBATTA_cFv */
void daObjBATTA_c::boomerang() {
- // NONMATCHING
+ if (field_0x9e8 == 0) {
+ mSph.SetTgType(0);
+ dCcD_GObjInf* hitObj = mSph.GetTgHitGObj();
+ mBoomerangMove.initOffset(&current.pos, hitObj);
+ gravity = 0.0f;
+ maxFallSpeed = 0.0f;
+ field_0x9e8++;
+ } else if (field_0x9e8 == -1) {
+ mSph.SetTgType(0x14040);
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz playerPos = player->current.pos;
+ playerPos.y += 100.0f;
+ old.pos = playerPos;
+ current.pos = old.pos;
+ home.pos = current.pos;
+ } else {
+ if (mDraw) {
+ batta_setParticle();
+ }
+
+ if (mBoomerangMove.posMove(&current.pos, &current.angle.y, NULL, 0x1c00) == 0) {
+ setAction(&daObjBATTA_c::wait);
+ } else {
+ mBoomerangMove.bgCheckAfterOffset(&current.pos);
+ }
+ }
}
/* 80BABA98-80BABCA4 001D58 020C+00 9/9 0/0 0/0 .text batta_setParticle__12daObjBATTA_cFv
*/
void daObjBATTA_c::batta_setParticle() {
- // NONMATCHING
+ if (CheckZ()) {
+ cLib_chaseF(&mParticleScale, 0.0f, 1.0f);
+ } else {
+ cLib_chaseF(&mParticleScale, 1.0f, 1.0f);
+ }
+
+ if (field_0x9f0 != 2) {
+ if (strcmp("R_SP160", dComIfGp_getStartStageName()) == 0) {
+ if (strcmp("R_SP160", dComIfGp_getStartStageName()) != 0) {
+ return;
+ }
+
+ if (dComIfGp_getStartStageRoomNo() == 3) {
+ return;
+ }
+ }
+ mParticleKey1 = dComIfGp_particle_set(mParticleKey1, 0xa1b, &current.pos, &tevStr,
+ &shape_angle, NULL, 0xff, NULL, -1, NULL, NULL, NULL);
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mParticleKey1);
+ if (emitter != NULL) {
+ emitter->setGlobalParticleScale(mParticleScale * scale.x, mParticleScale * scale.x);
+ }
+
+ mParticleKey2 = dComIfGp_particle_set(mParticleKey2, 0xa1c, &current.pos, &tevStr,
+ &shape_angle, NULL, 0xff, NULL, -1, 0, 0, 0);
+ emitter = dComIfGp_particle_getEmitter(mParticleKey2);
+ if (emitter != NULL) {
+ emitter->setGlobalParticleScale(mParticleScale * scale.x, mParticleScale * scale.x);
+ }
+
+ mCreature.startCreatureSoundLevel(Z2SE_INSCT_KIRA, 0, -1);
+ }
}
/* 80BABCA4-80BABD6C 001F64 00C8+00 1/1 0/0 0/0 .text action__12daObjBATTA_cFv */
void daObjBATTA_c::action() {
- // NONMATCHING
+ fopAcM_posMoveF(this, 0);
+
+ if (field_0x9f0 != 2) {
+ if (!checkAction(&daObjBATTA_c::boomerang)) {
+ mAcch.CrrPos(dComIfG_Bgsp());
+ }
+ }
+
+ (this->*mActionFunc)();
+ shape_angle = current.angle;
+
+ if (field_0x9f0 != 2 && field_0x9f0 == 0) {
+ Insect_GetDemoMain();
+ }
}
/* 80BABD6C-80BABE20 00202C 00B4+00 1/1 0/0 0/0 .text hit_check__12daObjBATTA_cFv */
void daObjBATTA_c::hit_check() {
- // NONMATCHING
+ dCcU_AtInfo info;
+ mStts.Move();
+
+ if (mSph.ChkTgHit()) {
+ info.mpCollider = mSph.GetTgHitObj();
+ if (info.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
+ setAction(&daObjBATTA_c::hook);
+ } else {
+ setAction(&daObjBATTA_c::boomerang);
+ }
+ }
}
-/* ############################################################################################## */
/* 80BACA40-80BACA44 0000D0 0002+02 0/1 0/0 0/0 .rodata l_batta_sex */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u16 const l_batta_sex[1 + 1 /* padding */] = {
- 0xC6C7,
- /* padding */
- 0x0000,
-};
-COMPILER_STRIP_GATE(0x80BACA40, &l_batta_sex);
-#pragma pop
-
-/* 80BACA44-80BACA48 0000D4 0004+00 1/1 0/0 0/0 .rodata @4698 */
-SECTION_RODATA static f32 const lit_4698 = 10000.0f;
-COMPILER_STRIP_GATE(0x80BACA44, &lit_4698);
-
-/* 80BACA48-80BACA50 0000D8 0008+00 1/1 0/0 0/0 .rodata @4700 */
-SECTION_RODATA static u8 const lit_4700[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BACA48, &lit_4700);
+static u8 const l_batta_sex[2] = {fpcNm_ITEM_M_GRASSHOPPER, fpcNm_ITEM_F_GRASSHOPPER};
/* 80BABE20-80BABFA4 0020E0 0184+00 1/1 0/0 0/0 .text execute__12daObjBATTA_cFv */
-void daObjBATTA_c::execute() {
- // NONMATCHING
+int daObjBATTA_c::execute() {
+ if ( ChkGetDemo()) {
+ field_0x57c = field_0x578 + 10000.0f;
+ mCreature.startCreatureSoundLevel(Z2SE_INSCT_KIRA, 0, -1);
+ Insect_GetDemoMain();
+ batta_setParticle();
+ return 1;
+ }
+
+ if (field_0x9f2 != 0) {
+ field_0x9f2--;
+ }
+
+ if (field_0x9f0 == 0) {
+ hit_check();
+ }
+
+ action();
+ mBrk->play();
+ mBtk->play();
+ mpMorf->play(NULL, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ mtx_set();
+ if (field_0x9f0 == 0) {
+ mSph.SetC(current.pos);
+ mSph.SetR(scale.x * 20.0f);
+ cCcS* ccS = dComIfG_Ccsp();
+ ccS->Set(&mSph);
+ eyePos = current.pos;
+ attention_info.position = eyePos;
+ }
+ return 1;
}
-/* ############################################################################################## */
-/* 80BACC88-80BACC8C 000008 0004+00 2/2 0/0 0/0 .bss None */
-static u8 data_80BACC88[4];
-
/* 80BABFA4-80BAC00C 002264 0068+00 1/1 0/0 0/0 .text _delete__12daObjBATTA_cFv */
-void daObjBATTA_c::_delete() {
- // NONMATCHING
+int daObjBATTA_c::_delete() {
+ dComIfG_resDelete(&mPhase, "Bat");
+
+ if (mIsHIOOwner != 0) {
+ l_HIOInit = false;
+ mDoHIO_DELETE_CHILD(l_HIO.mId);
+ }
+
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+
+ return 1;
}
/* 80BAC00C-80BAC084 0022CC 0078+00 1/1 0/0 0/0 .text mtx_set__12daObjBATTA_cFv */
void daObjBATTA_c::mtx_set() {
- // NONMATCHING
+ J3DModel* model = mpMorf->getModel();
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ model->setBaseScale(scale);
+ model->setBaseTRMtx(mDoMtx_stack_c::get());
+ mpMorf->modelCalc();
}
-/* ############################################################################################## */
-/* 80BACA50-80BACA54 0000E0 0004+00 0/2 0/0 0/0 .rodata @4767 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4767 = 50.0f;
-COMPILER_STRIP_GATE(0x80BACA50, &lit_4767);
-#pragma pop
-
-/* 80BACA54-80BACA58 0000E4 0004+00 0/1 0/0 0/0 .rodata @4768 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4768 = 15.0f;
-COMPILER_STRIP_GATE(0x80BACA54, &lit_4768);
-#pragma pop
-
-/* 80BACA58-80BACA5C 0000E8 0004+00 0/1 0/0 0/0 .rodata @4769 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4769 = -3.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BACA58, &lit_4769);
-#pragma pop
+inline int daObjBATTA_c::draw() {
+ if (mDraw) {
+ dInsect_c::CalcZBuffer(50.0f);
+ J3DModel* model = mpMorf->getModel();
+ g_env_light.settingTevStruct(0, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(model, &tevStr);
+
+ mBtk->entry(model->getModelData());
+ mBrk->entry(model->getModelData());
+
+ if (field_0x9f0 != 2) {
+ mpMorf->entryDL();
+ if (field_0x9f0 != 1) {
+ dComIfGd_setSimpleShadow(&current.pos, mAcch.GetGroundH(), 15.0f, mAcch.m_gnd, 0,
+ -0.6f, dDlst_shadowControl_c::getSimpleTex());
+ }
+ }
+ }
+
+ return 1;
+}
/* 80BAC084-80BAC174 002344 00F0+00 1/0 0/0 0/0 .text daObjBATTA_Draw__FP12daObjBATTA_c
*/
-static void daObjBATTA_Draw(daObjBATTA_c* param_0) {
- // NONMATCHING
+static int daObjBATTA_Draw(daObjBATTA_c* i_this) {
+ return i_this->draw();
}
/* 80BAC174-80BAC194 002434 0020+00 2/1 0/0 0/0 .text daObjBATTA_Execute__FP12daObjBATTA_c */
-static void daObjBATTA_Execute(daObjBATTA_c* param_0) {
- // NONMATCHING
+static int daObjBATTA_Execute(daObjBATTA_c* i_this) {
+ return i_this->execute();
}
/* ############################################################################################## */
/* 80BACA5C-80BACA60 0000EC 0004+00 0/1 0/0 0/0 .rodata l_musiya_num */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const l_musiya_num = 0x01970198;
-COMPILER_STRIP_GATE(0x80BACA5C, &l_musiya_num);
-#pragma pop
-
-/* 80BACA60-80BACA64 0000F0 0004+00 0/1 0/0 0/0 .rodata @4979 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4979 = -50.0f;
-COMPILER_STRIP_GATE(0x80BACA60, &lit_4979);
-#pragma pop
-
-/* 80BACC8C-80BACC98 00000C 000C+00 1/1 0/0 0/0 .bss @3769 */
-static u8 lit_3769[12];
-
-/* 80BACC98-80BACCA8 000018 0010+00 2/2 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[16];
+static u16 const l_musiya_num[2] = { 0x197, 0x198 };
/* 80BAC194-80BAC6A0 002454 050C+00 1/1 0/0 0/0 .text create__12daObjBATTA_cFv */
-void daObjBATTA_c::create() {
- // NONMATCHING
-}
-
-/* 80BAC6A0-80BAC6E8 002960 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
-
-/* 80BAC6E8-80BAC730 0029A8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80BAC730-80BAC78C 0029F0 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80BAC78C-80BAC7FC 002A4C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80BAC7FC-80BAC86C 002ABC 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
+int daObjBATTA_c::create() {
+ u8 uVar9 = (fopAcM_GetParam(this) & 0xf00) >> 8;
+
+ fopAcM_SetupActor(this, daObjBATTA_c);
+ int rv = dComIfG_resLoad(&mPhase, "Bat");
+ if (rv == cPhs_COMPLEATE_e) {
+ OS_REPORT("BATTA PARAM %x\n", fopAcM_GetParam(this));
+ field_0x9f0 = fopAcM_GetParam(this) & 3;
+ if (field_0x9f0 == 3) {
+ field_0x9f0 = 0;
+ }
+
+ mSex = (fopAcM_GetParam(this) & 0x10) >> 4;
+ if (mSex != 0) {
+ scale.setall(l_HIO.mModelScaleFemale);
+ } else {
+ scale.setall(l_HIO.mModelScaleMale);
+ }
+
+ if (uVar9 == 15) {
+ uVar9 = 0;
+ }
+
+ setItemNo(l_batta_sex[mSex]);
+ setSaveBitNo(l_musiya_num[mSex]);
+
+ if (field_0x9f0 != 2) {
+ if (uVar9 != 0) {
+ if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) || !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])) {
+ return cPhs_ERROR_e;
+ }
+ } else {
+ if (strcmp("R_SP160", dComIfGp_getStartStageName()) == 0 &&
+ dComIfGp_getStartStageRoomNo() == 3)
+ {
+ if (dMenu_Insect_c::isCatchNotGiveInsect(m_itemNo)) {
+ return cPhs_ERROR_e;
+ }
+ if ((mSex == SEX_MALE &&
+ !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]])) ||
+ (mSex != SEX_MALE &&
+ !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])))
+ {
+ return cPhs_ERROR_e;
+ }
+ }
+ }
+ }
+
+ mParticleScale = 0.0f;
+
+ OS_REPORT("/////////////////// BATTA ////////////////////////\n");
+
+ if (!fopAcM_entrySolidHeap(this, useHeapInit, 0xb00)) {
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("/////////////////// BATTA SET OK /////////////////\n");
+
+ if (!l_HIOInit) {
+ l_HIOInit = true;
+ mIsHIOOwner = true;
+ // Golden Bugs
+ l_HIO.mId = mDoHIO_CREATE_CHILD("黄金蟲(バッタ)", &l_HIO);
+ }
+
+ J3DModel* model = mpMorf->getModel();
+ fopAcM_SetMtx(this, model->getBaseTRMtx());
+ fopAcM_SetMin(this, -50.0f, -50.0f, -50.0f);
+ fopAcM_SetMax(this, 50.0f, 50.0f, 50.0f);
+
+ attention_info.flags = 0;
+ health = 10;
+ field_0x560 = 10;
+
+ mCreature.init(&current.pos, &eyePos, 3, 1);
+
+ if (field_0x9f0 == 0) {
+ attention_info.distances[fopAc_attn_CARRY_e] = 0x5d;
+ mStts.Init(100, 0, this);
+ mSph.Set(cc_sph_src);
+ mSph.SetStts(&mStts);
+ }
+
+ if (field_0x9f0 == 2) {
+ setAction(&daObjBATTA_c::bin_wait);
+ } else {
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+ mAcch.SetObj();
+ mAcchCir.SetWall(10.0f, 10.0f);
+ gravity = -5.0f;
+ maxFallSpeed = -20.0f;
+ current.angle.y = cM_rndFX(32768.0f);
+ setAction(&daObjBATTA_c::wait);
+ }
+
+ daObjBATTA_Execute(this);
+ }
+ return rv;
}
/* 80BAC86C-80BAC874 002B2C 0008+00 1/0 0/0 0/0 .text daObjBATTA_IsDelete__FP12daObjBATTA_c */
-static bool daObjBATTA_IsDelete(daObjBATTA_c* param_0) {
- return true;
-}
-
-/* 80BAC874-80BAC8BC 002B34 0048+00 2/1 0/0 0/0 .text __dt__16daObj_BattaHIO_cFv */
-daObj_BattaHIO_c::~daObj_BattaHIO_c() {
- // NONMATCHING
-}
-
-/* 80BAC8BC-80BAC8F8 002B7C 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_batta_cpp */
-void __sinit_d_a_obj_batta_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80BAC8BC, __sinit_d_a_obj_batta_cpp);
-#pragma pop
-
-/* 80BAC8F8-80BAC900 002BB8 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80BAC8F8() {
- // NONMATCHING
-}
-
-/* 80BAC900-80BAC908 002BC0 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80BAC900() {
- // NONMATCHING
+static int daObjBATTA_IsDelete(daObjBATTA_c* i_this) {
+ return 1;
}
-/* 80BAC908-80BAC914 002BC8 000C+00 2/0 0/0 0/0 .text Insect_Release__9dInsect_cFv */
-// void dInsect_c::Insect_Release() {
-extern "C" void Insect_Release__9dInsect_cFv() {
- // NONMATCHING
-}
+/* 80BACB9C-80BACBBC -00001 0020+00 1/0 0/0 0/0 .data l_daObjBATTA_Method */
+static actor_method_class l_daObjBATTA_Method = {
+ (process_method_func)daObjBATTA_Create,
+ (process_method_func)daObjBATTA_Delete,
+ (process_method_func)daObjBATTA_Execute,
+ (process_method_func)daObjBATTA_IsDelete,
+ (process_method_func)daObjBATTA_Draw,
+};
-/* 80BAC914-80BAC95C 002BD4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
+/* 80BACBBC-80BACBEC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Batta */
+extern actor_process_profile_definition g_profile_Obj_Batta = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Batta, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjBATTA_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 486, // mPriority
+ &l_daObjBATTA_Method, // sub_method
+ 0x000C0120, // mStatus
+ fopAc_ENV_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
/* 80BACA64-80BACA64 0000F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */