summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2025-10-14 06:11:30 +0300
committerGitHub <noreply@github.com>2025-10-13 20:11:30 -0700
commitd3c3fd09de1da021efff5f668ad0fc934565f6b2 (patch)
treecc25b022ffaefa5f099d3775a0c0a4e969b22dbd
parent678fd4d8f58cb989d24573717d2b4f6eb52c7e78 (diff)
d_a_obj_gadget OK (#2735)
-rw-r--r--config/GZ2E01/rels/d_a_obj_gadget/symbols.txt1
-rw-r--r--config/GZ2J01/rels/d_a_obj_gadget/symbols.txt1
-rw-r--r--config/GZ2P01/rels/d_a_obj_gadget/symbols.txt1
-rwxr-xr-xconfigure.py2
-rw-r--r--include/d/actor/d_a_obj_gadget.h94
-rw-r--r--src/d/actor/d_a_obj_gadget.cpp1356
6 files changed, 633 insertions, 822 deletions
diff --git a/config/GZ2E01/rels/d_a_obj_gadget/symbols.txt b/config/GZ2E01/rels/d_a_obj_gadget/symbols.txt
index f094a27f43..4555461a40 100644
--- a/config/GZ2E01/rels/d_a_obj_gadget/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_gadget/symbols.txt
@@ -117,6 +117,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@3804 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte
@4550 = .bss:0x00000058; // type:object size:0xC scope:local
+init$2446 = .bss:0x00000064; // type:object size:0x1 scope:local align:1 data:byte
scl$4549 = .bss:0x00000068; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global
diff --git a/config/GZ2J01/rels/d_a_obj_gadget/symbols.txt b/config/GZ2J01/rels/d_a_obj_gadget/symbols.txt
index f8ecb90216..e58c0bc36c 100644
--- a/config/GZ2J01/rels/d_a_obj_gadget/symbols.txt
+++ b/config/GZ2J01/rels/d_a_obj_gadget/symbols.txt
@@ -116,6 +116,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@3804 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte
@4550 = .bss:0x00000058; // type:object size:0xC scope:local
+init$2446 = .bss:0x00000064; // type:object size:0x1 scope:local align:1 data:byte
scl$4549 = .bss:0x00000068; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global
diff --git a/config/GZ2P01/rels/d_a_obj_gadget/symbols.txt b/config/GZ2P01/rels/d_a_obj_gadget/symbols.txt
index f8ecb90216..e58c0bc36c 100644
--- a/config/GZ2P01/rels/d_a_obj_gadget/symbols.txt
+++ b/config/GZ2P01/rels/d_a_obj_gadget/symbols.txt
@@ -116,6 +116,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@3804 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte
@4550 = .bss:0x00000058; // type:object size:0xC scope:local
+init$2446 = .bss:0x00000064; // type:object size:0x1 scope:local align:1 data:byte
scl$4549 = .bss:0x00000068; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global
diff --git a/configure.py b/configure.py
index b300122ca9..129c27913c 100755
--- a/configure.py
+++ b/configure.py
@@ -1993,7 +1993,7 @@ config.libs = [
ActorRel(Equivalent, "d_a_obj_flag3"), # weak function order
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_food"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_fw"),
- ActorRel(NonMatching, "d_a_obj_gadget"),
+ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gadget"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ganonwall"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ganonwall2"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gb"),
diff --git a/include/d/actor/d_a_obj_gadget.h b/include/d/actor/d_a_obj_gadget.h
index 63c6688c66..a9c64ae298 100644
--- a/include/d/actor/d_a_obj_gadget.h
+++ b/include/d/actor/d_a_obj_gadget.h
@@ -2,8 +2,12 @@
#define D_A_OBJ_GADGET_H
#include "SSystem/SComponent/c_math.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
+class daObj_Gadget_HIO_c;
+
/**
* @ingroup actors-objects
* @class daObj_Gadget_c
@@ -13,25 +17,67 @@
*
*/
class daObj_Gadget_c : public fopAc_ac_c {
+private:
+ /* 0x568 */ daObj_Gadget_HIO_c* field_0x568;
+ /* 0x56C */ request_of_phase_process_class mPhase;
+ /* 0x574 */ J3DModel* mModel;
+ /* 0x578 */ dBgS_ObjAcch mAcch;
+ /* 0x750 */ dCcD_Stts mStts;
+ /* 0x78C */ dBgS_AcchCir mAcchCir;
+ /* 0x7CC */ cBgS_GndChk mGndChk;
+ /* 0x808 */ dCcD_Cyl mCyl;
+ /* 0x944 */ cM3dGLin mLine;
+ /* 0x960 */ dBgS_LinChk mLinChk;
+ /* 0x9D0 */ u8 field_0x9d0;
+ /* 0x9D4 */ cXyz field_0x9d4;
+ /* 0x9E0 */ cXyz field_0x9e0;
+ /* 0x9EC */ csXyz field_0x9ec;
+ /* 0x9F4 */ int field_0x9f4;
+ /* 0x9F8 */ int field_0x9f8;
+ /* 0x9FC */ f32 field_0x9fc;
+ /* 0xA00 */ f32 field_0xa00;
+ /* 0xA04 */ f32 field_0xa04;
+ /* 0xA08 */ f32 field_0xa08;
+ /* 0xA0C */ f32 field_0xa0c;
+ /* 0xA10 */ s16 field_0xa10;
+ /* 0xA12 */ s16 field_0xa12;
+ /* 0xA14 */ s16 field_0xa14;
+ /* 0xA16 */ s16 field_0xa16;
+ /* 0xA18 */ s16 field_0xa18;
+ /* 0xA1A */ u8 field_0xa1a[0xa20 - 0xa1a];
+ /* 0xA20 */ u32 field_0xa20[4];
+ /* 0xA30 */ u32 field_0xa30;
+ /* 0xA34 */ u32 field_0xa34;
+ /* 0xA38 */ u32 field_0xa38;
+ /* 0xA3C */ u32 field_0xa3c;
+ /* 0xA40 */ u8 field_0xa40;
+ /* 0xA41 */ u8 field_0xa41;
+ /* 0xA42 */ u8 field_0xa42;
+ /* 0xA43 */ u8 field_0xa43;
+ /* 0xA44 */ u8 mHide;
+ /* 0xA45 */ u8 field_0xa45;
+ /* 0xA46 */ u8 field_0xa46;
+ /* 0xA47 */ u8 field_0xa47;
+
public:
- /* 80BF2D2C */ ~daObj_Gadget_c();
- /* 80BF2F28 */ void create();
- /* 80BF3478 */ void CreateHeap();
- /* 80BF3504 */ void Delete();
- /* 80BF3538 */ void Execute();
- /* 80BF3FAC */ void Draw();
- /* 80BF4130 */ void createHeapCallBack(fopAc_ac_c*);
+ /* 80BF2D2C */ virtual ~daObj_Gadget_c();
+ /* 80BF2F28 */ int create();
+ /* 80BF3478 */ int CreateHeap();
+ /* 80BF3504 */ int Delete();
+ /* 80BF3538 */ int Execute();
+ /* 80BF3FAC */ int Draw();
+ /* 80BF4130 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80BF4150 */ void setEnvTevColor();
/* 80BF41AC */ void setRoomNo();
/* 80BF41F0 */ void reset();
/* 80BF424C */ void setMtx();
- /* 80BF4354 */ void calcRollAngle(s16, int);
- /* 80BF43F4 */ void getWallAngle(s16, s16*);
+ /* 80BF4354 */ s16 calcRollAngle(s16, int);
+ /* 80BF43F4 */ BOOL getWallAngle(s16, s16*);
/* 80BF4584 */ void setSmokePrtcl();
/* 80BF4600 */ void setWaterPrtcl();
/* 80BF4728 */ void setHamonPrtcl();
- u32 getType() { return fopAcM_GetParam(this) & 0xFF; }
+ u8 getType() { return fopAcM_GetParam(this); }
void setCoNone() { field_0xa40 = 1; }
void offHide() { mHide = 0; }
void onHide() { mHide = 1; }
@@ -49,25 +95,29 @@ public:
field_0xa14 = 0x4000;
field_0xa43 = 1;
}
-
-private:
- /* 0x568 */ u8 field_0x568[0xa14 - 0x568];
- /* 0xA14 */ s16 field_0xa14;
- /* 0xA16 */ u8 field_0xa16[0xa40 - 0xa16];
- /* 0xA40 */ u8 field_0xa40;
- /* 0xA41 */ u8 field_0xa41[0xa43 - 0xa41];
- /* 0xA43 */ u8 field_0xa43;
- /* 0xA44 */ u8 mHide;
- /* 0xA45 */ u8 field_0xa45[0xa4c - 0xa45];
};
STATIC_ASSERT(sizeof(daObj_Gadget_c) == 0xa4c);
+struct daObj_Gadget_HIOParam {
+ /* 0x00 */ f32 focus_offset;
+ /* 0x04 */ f32 gravity;
+ /* 0x08 */ f32 scale;
+ /* 0x0C */ f32 real_shadow_size;
+ /* 0x10 */ f32 weight;
+ /* 0x14 */ f32 height;
+ /* 0x18 */ f32 knee_length;
+ /* 0x1C */ f32 width;
+ /* 0x20 */ f32 fire_rate;
+ /* 0x24 */ f32 launch_angle;
+ /* 0x28 */ f32 floating_offset;
+};
+
class daObj_Gadget_Param_c {
public:
- /* 80BF48D8 */ ~daObj_Gadget_Param_c();
+ /* 80BF48D8 */ virtual ~daObj_Gadget_Param_c() {}
- static u8 const m[44];
+ static daObj_Gadget_HIOParam const m;
};
diff --git a/src/d/actor/d_a_obj_gadget.cpp b/src/d/actor/d_a_obj_gadget.cpp
index e1ace413aa..48ee5e1b0e 100644
--- a/src/d/actor/d_a_obj_gadget.cpp
+++ b/src/d/actor/d_a_obj_gadget.cpp
@@ -6,173 +6,63 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_gadget.h"
+#include "d/actor/d_a_npc.h"
+#include "d/d_path.h"
#include "d/d_cc_d.h"
+#include "Z2AudioLib/Z2Instances.h"
+#include "SSystem/SComponent/c_counter.h"
+#include "JSystem/JHostIO/JORFile.h"
#include "dol2asm.h"
+#if DEBUG
+#define PARAM field_0x568->mAttr
+#define PARAM_CLASS daObj_Gadget_HIO_c
+class daObj_Gadget_HIO_c : public mDoHIO_entry_c {
+public:
+ daObj_Gadget_HIO_c() {
+ mAttr = daObj_Gadget_Param_c::m;
+ }
+ void genMessage(JORMContext* ctx);
+ void listenPropertyEvent(const JORPropertyEvent*);
-//
-// Forward References:
-//
-
-extern "C" void __dt__14daObj_Gadget_cFv();
-extern "C" void create__14daObj_Gadget_cFv();
-extern "C" void __dt__8cM3dGLinFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void CreateHeap__14daObj_Gadget_cFv();
-extern "C" void Delete__14daObj_Gadget_cFv();
-extern "C" void Execute__14daObj_Gadget_cFv();
-extern "C" void Draw__14daObj_Gadget_cFv();
-extern "C" void __dt__8cM3dGPlaFv();
-extern "C" void createHeapCallBack__14daObj_Gadget_cFP10fopAc_ac_c();
-extern "C" void setEnvTevColor__14daObj_Gadget_cFv();
-extern "C" void setRoomNo__14daObj_Gadget_cFv();
-extern "C" void reset__14daObj_Gadget_cFv();
-extern "C" void setMtx__14daObj_Gadget_cFv();
-extern "C" void calcRollAngle__14daObj_Gadget_cFsi();
-extern "C" void getWallAngle__14daObj_Gadget_cFsPs();
-extern "C" void setSmokePrtcl__14daObj_Gadget_cFv();
-extern "C" void setWaterPrtcl__14daObj_Gadget_cFv();
-extern "C" void setHamonPrtcl__14daObj_Gadget_cFv();
-extern "C" static void daObj_Gadget_Create__FPv();
-extern "C" static void daObj_Gadget_Delete__FPv();
-extern "C" static void daObj_Gadget_Execute__FPv();
-extern "C" static void daObj_Gadget_Draw__FPv();
-extern "C" static bool daObj_Gadget_IsDelete__FPv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void func_80BF4848(void* _this, int*);
-extern "C" void __sinit_d_a_obj_gadget_cpp();
-extern "C" void __dt__20daObj_Gadget_Param_cFv();
-extern "C" static void func_80BF4920();
-extern "C" static void func_80BF4928();
-extern "C" u8 const m__20daObj_Gadget_Param_c[44];
-extern "C" extern char const* const d_a_obj_gadget__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_XrotM__FPA4_fs();
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void __dt__10fopAc_ac_cFv();
-extern "C" void fopAcM_SearchByID__FUiPP10fopAc_ac_c();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
-extern "C" void fopAcM_calcSpeed__FP10fopAc_ac_c();
-extern "C" void fopAcM_posMove__FP10fopAc_ac_cPC4cXyz();
-extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
-extern "C" void fopAcM_effHamonSet__FPUlPC4cXyzff();
-extern "C" bool fopAcM_riverStream__FP4cXyzPsPff();
-extern "C" void fopAcM_carryOffRevise__FP10fopAc_ac_c();
-extern "C" void fopAcM_getWaterY__FPC4cXyzPf();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void forceOnEventMove__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void dPath_GetPolyRoomPathVec__FRC13cBgS_PolyInfoP4cXyzPi();
-extern "C" void setSimple__21dDlst_shadowControl_cFP4cXyzffP4cXyzsfP9_GXTexObj();
-extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
-extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
-extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWallR__12dBgS_AcchCirFf();
-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 __ct__11dBgS_LinChkFv();
-extern "C" void __dt__11dBgS_LinChkFv();
-extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void daNpcF_getGroundAngle__FP13cBgS_PolyInfos();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void normalizeZP__4cXyzFv();
-extern "C" void cM_atan2s__Fff();
-extern "C" void cM_rndFX__Ff();
-extern "C" void __ct__11cBgS_GndChkFv();
-extern "C" void __dt__11cBgS_GndChkFv();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void cLib_addCalc__FPfffff();
-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 __dl__FPv();
-extern "C" void _savegpr_23();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_23();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_CylAttr[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" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80BF4A24-80BF4A24 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BF4A24 = "";
-SECTION_DEAD static char const* const stringBase_80BF4A25 = "ykM1";
-#pragma pop
+ /* 0x8 */ daObj_Gadget_HIOParam mAttr;
+};
+#else
+#define PARAM daObj_Gadget_Param_c::m
+#define PARAM_CLASS daObj_Gadget_Param_c
+#endif
+
+
+/* 80BF4944-80BF4970 000000 002C+00 4/4 0/0 0/0 .rodata m__20daObj_Gadget_Param_c */
+daObj_Gadget_HIOParam const daObj_Gadget_Param_c::m = {
+ 0.0f, -4.0f, 1.0f, 100.0f, 37.0f, 26.0f, 13.0f, 14.0f,
+ 37.0f, 50.0f, 18.0f,
+};
+
+/* 80BF4970-80BF49A0 00002C 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */
+static dCcD_SrcGObjInf const l_ccDObjData =
+{
+ {0x0, {{0x0, 0x0, 0}, {0xD8FBFDFF, 0x1F}, 0x79}}, // mObj
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
+ {0x0}, // mGObjCo
+};
/* 80BF4A4C-80BF4A5C 000020 0010+00 2/3 0/0 0/0 .data l_bmdData */
-SECTION_DATA static u8 l_bmdData[16] = {
- 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01,
+static u32 l_bmdData[2][2] = {
+ 35, 1, 34, 1,
};
/* 80BF4A5C-80BF4A64 -00001 0008+00 2/4 0/0 0/0 .data l_resNameList */
-SECTION_DATA static void* l_resNameList[2] = {
- (void*)&d_a_obj_gadget__stringBase0,
- (void*)(((char*)&d_a_obj_gadget__stringBase0) + 0x1),
+static char* l_resNameList[2] = {
+ "",
+ "ykM1",
};
/* 80BF4A64-80BF4AA8 000038 0044+00 1/2 0/0 0/0 .data l_ccDCyl */
static dCcD_SrcCyl l_ccDCyl = {
- {
- {0x0, {{0x0, 0x0, 0x0}, {0x0, 0x0}, 0x0}}, // mObj
- {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
- {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
- {0x0}, // mGObjCo
- }, // mObjInf
+ l_ccDObjData, // mObjInf
{
{0.0f, 0.0f, 0.0f}, // mCenter
0.0f, // mRadius
@@ -180,734 +70,602 @@ static dCcD_SrcCyl l_ccDCyl = {
} // mCyl
};
-/* 80BF4AA8-80BF4AB0 00007C 0008+00 1/1 0/0 0/0 .data emttrId$4553 */
-SECTION_DATA static u8 emttrId[8] = {
- 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB,
-};
-
-/* 80BF4AB0-80BF4AD0 -00001 0020+00 1/0 0/0 0/0 .data daObj_Gadget_MethodTable */
-static actor_method_class daObj_Gadget_MethodTable = {
- (process_method_func)daObj_Gadget_Create__FPv,
- (process_method_func)daObj_Gadget_Delete__FPv,
- (process_method_func)daObj_Gadget_Execute__FPv,
- (process_method_func)daObj_Gadget_IsDelete__FPv,
- (process_method_func)daObj_Gadget_Draw__FPv,
-};
-
-/* 80BF4AD0-80BF4B00 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_GADGET */
-extern actor_process_profile_definition g_profile_OBJ_GADGET = {
- fpcLy_CURRENT_e, // mLayerID
- 8, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_OBJ_GADGET, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObj_Gadget_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 82, // mPriority
- &daObj_Gadget_MethodTable, // sub_method
- 0x00044100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80BF4B00-80BF4B0C 0000D4 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGPla */
-SECTION_DATA extern void* __vt__8cM3dGPla[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGPlaFv,
-};
-
-/* 80BF4B0C-80BF4B30 0000E0 0024+00 3/3 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_80BF4928,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BF4920,
-};
-
-/* 80BF4B30-80BF4B3C 000104 000C+00 3/3 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,
-};
-
-/* 80BF4B3C-80BF4B48 000110 000C+00 2/2 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,
-};
-
-/* 80BF4B48-80BF4B54 00011C 000C+00 2/2 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,
-};
-
-/* 80BF4B54-80BF4B60 000128 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 80BF4B60-80BF4B6C 000134 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-/* 80BF4B6C-80BF4B78 000140 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGLin */
-SECTION_DATA extern void* __vt__8cM3dGLin[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGLinFv,
-};
+#if DEBUG
+
+void daObj_Gadget_HIO_c::listenPropertyEvent(const JORPropertyEvent* i_event) {
+ char buffer[2000];
+ size_t len;
+ JORReflexible::listenPropertyEvent(i_event);
+ JORFile jorFile;
+ switch ((u32)i_event->id) {
+ case 0x40000002:
+ if (jorFile.open(6, "すべてのファイル(*.*)", NULL, NULL, NULL)) {
+ memset(buffer, 0, 2000);
+ len = 0;
+ sprintf(buffer + len, "%.3ff,\t// 注目オフセット\n", mAttr.focus_offset);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 重力\n", mAttr.gravity);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// スケ−ル\n", mAttr.scale);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// リアル影サイズ\n", mAttr.real_shadow_size);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 体重\n", mAttr.weight);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 高さ\n", mAttr.height);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// ひざ丈\n", mAttr.knee_length);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 幅\n", mAttr.width);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 発射速度\n", mAttr.fire_rate);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 発射角度\n", mAttr.launch_angle);
+ len = strlen(buffer);
+ sprintf(buffer + len, "%.3ff,\t// 浮きオフセット\n", mAttr.floating_offset);
+ len = strlen(buffer);
+ jorFile.writeData(buffer, len);
+ jorFile.close();
+ OS_REPORT("write append success!::%6d\n", len);
+ } else {
+ OS_REPORT("write append failure!\n");
+ }
+ }
+}
+
+void daObj_Gadget_HIO_c::genMessage(JORMContext* ctx) {
+ ctx->genSlider("注目オフセット ", &mAttr.focus_offset, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("重力 ", &mAttr.gravity, -100.0f, 100.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("スケ−ル ", &mAttr.scale, 0.0f, 100.0f, 0, NULL, 0xffff, 0xffff, 0x200,
+ 0x18);
+ ctx->genSlider("リアル影サイズ ", &mAttr.real_shadow_size, 0.0f, 10000.0f, 0, NULL, 0xffff,
+ 0xffff, 0x200, 0x18);
+ ctx->genSlider("体重 ", &mAttr.weight, 0.0f, 255.0f, 0, NULL, 0xffff, 0xffff, 0x200,
+ 0x18);
+ ctx->genSlider("高さ ", &mAttr.height, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200,
+ 0x18);
+ ctx->genSlider("ひざ丈 ", &mAttr.knee_length, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("幅 ", &mAttr.width, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200,
+ 0x18);
+ ctx->genSlider("発射速度 ", &mAttr.fire_rate, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("発射角度 ", &mAttr.launch_angle, 0.0f, 90.0f, 0, NULL, 0xffff, 0xffff,
+ 0x200, 0x18);
+ ctx->genSlider("浮きオフセット ", &mAttr.floating_offset, -100.0f, 100.0f, 0, NULL, 0xffff,
+ 0xffff, 0x200, 0x18);
+ ctx->genButton("ファイル書き出し", 0x40000002, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
+}
+
+#endif
-/* 80BF4B78-80BF4B84 00014C 000C+00 2/2 0/0 0/0 .data __vt__14daObj_Gadget_c */
-SECTION_DATA extern void* __vt__14daObj_Gadget_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14daObj_Gadget_cFv,
-};
+/* 80BF4BE4-80BF4BE8 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
+static PARAM_CLASS l_HIO;
/* 80BF2D2C-80BF2F28 0000EC 01FC+00 1/0 0/0 0/0 .text __dt__14daObj_Gadget_cFv */
daObj_Gadget_c::~daObj_Gadget_c() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80BF4944-80BF4970 000000 002C+00 4/4 0/0 0/0 .rodata m__20daObj_Gadget_Param_c */
-SECTION_RODATA u8 const daObj_Gadget_Param_c::m[44] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x42, 0xC8, 0x00,
- 0x00, 0x42, 0x14, 0x00, 0x00, 0x41, 0xD0, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, 0x41, 0x60,
- 0x00, 0x00, 0x42, 0x14, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BF4944, &daObj_Gadget_Param_c::m);
-
-/* 80BF4970-80BF49A0 00002C 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */
-SECTION_RODATA static u8 const l_ccDObjData[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xD8, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BF4970, &l_ccDObjData);
-
-/* 80BF49A0-80BF49A4 00005C 0004+00 0/1 0/0 0/0 .rodata @3935 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3935 = -300.0f;
-COMPILER_STRIP_GATE(0x80BF49A0, &lit_3935);
-#pragma pop
-
-/* 80BF49A4-80BF49A8 000060 0004+00 0/2 0/0 0/0 .rodata @3936 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3936 = -50.0f;
-COMPILER_STRIP_GATE(0x80BF49A4, &lit_3936);
-#pragma pop
-
-/* 80BF49A8-80BF49AC 000064 0004+00 0/1 0/0 0/0 .rodata @3937 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3937 = 300.0f;
-COMPILER_STRIP_GATE(0x80BF49A8, &lit_3937);
-#pragma pop
-
-/* 80BF49AC-80BF49B0 000068 0004+00 0/1 0/0 0/0 .rodata @3938 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3938 = 450.0f;
-COMPILER_STRIP_GATE(0x80BF49AC, &lit_3938);
-#pragma pop
-
-/* 80BF49B0-80BF49B4 00006C 0004+00 0/3 0/0 0/0 .rodata @3939 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3939 = -G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x80BF49B0, &lit_3939);
-#pragma pop
-
-/* 80BF2F28-80BF3228 0002E8 0300+00 1/1 0/0 0/0 .text create__14daObj_Gadget_cFv */
-void daObj_Gadget_c::create() {
- // NONMATCHING
-}
-
-/* 80BF3228-80BF3270 0005E8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */
-// cM3dGLin::~cM3dGLin() {
-extern "C" void __dt__8cM3dGLinFv() {
- // NONMATCHING
-}
-
-/* 80BF3270-80BF32B8 000630 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80BF32B8-80BF3300 000678 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80BF3300-80BF3370 0006C0 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80BF3370-80BF33CC 000730 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
+ OS_REPORT("|%06d:%x|daObj_Gadget_c -> デストラクト\n", g_Counter.mCounter0, this);
+
+ #if DEBUG
+ if (field_0x568 != NULL) {
+ field_0x568->removeHIO();
+ }
+ #endif
-/* 80BF33CC-80BF3408 00078C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
+ dComIfG_resDelete(
+ &mPhase,
+ l_resNameList[l_bmdData[field_0x9d0][1]]);
}
-/* 80BF3408-80BF3478 0007C8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
+/* 80BF2F28-80BF3228 0002E8 0300+00 1/1 0/0 0/0 .text create__14daObj_Gadget_cFv */
+int daObj_Gadget_c::create() {
+ fopAcM_SetupActor(this, daObj_Gadget_c);
+ field_0x9d0 = getType();
+ int rv = dComIfG_resLoad(&mPhase, l_resNameList[l_bmdData[field_0x9d0][1]]);
+ if (rv == cPhs_COMPLEATE_e) {
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0)) {
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("\t(%s:%d) <%08x>\n", fopAcM_getProcNameString(this), getType(), fopAcM_GetParam(this));
+ J3DModelData* modelData = mModel->getModelData();
+ fopAcM_SetMtx(this, mModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f);
+
+ #if DEBUG
+ field_0x568 = &l_HIO;
+ field_0x568->entryHIO("小物");
+ #endif
+
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
+ fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
+ mStts.Init(PARAM.weight, 0, this);
+ mCyl.Set(l_ccDCyl);
+ mCyl.SetStts(&mStts);
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ field_0xa00 = mAcch.GetGroundH();
+
+ if (field_0xa00 != -G_CM3D_F_INF) {
+ setEnvTevColor();
+ setRoomNo();
+ }
+
+ reset();
+ Execute();
+ }
+
+ return rv;
}
/* 80BF3478-80BF3504 000838 008C+00 1/1 0/0 0/0 .text CreateHeap__14daObj_Gadget_cFv */
-void daObj_Gadget_c::CreateHeap() {
- // NONMATCHING
+int daObj_Gadget_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(
+ l_resNameList[l_bmdData[field_0x9d0][1]],
+ l_bmdData[field_0x9d0][0]);
+ JUT_ASSERT(384, NULL != mdlData_p)
+ mModel = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
+ return mModel != NULL ? TRUE : FALSE;
}
/* 80BF3504-80BF3538 0008C4 0034+00 1/1 0/0 0/0 .text Delete__14daObj_Gadget_cFv */
-void daObj_Gadget_c::Delete() {
- // NONMATCHING
+int daObj_Gadget_c::Delete() {
+ OS_REPORT("|%06d:%x|daObj_Gadget_c -> Delete\n", g_Counter.mCounter0, this);
+ this->~daObj_Gadget_c();
+ return 1;
}
-/* ############################################################################################## */
-/* 80BF49B4-80BF49B8 000070 0004+00 0/2 0/0 0/0 .rodata @4350 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4350[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80BF49B4, &lit_4350);
-#pragma pop
-
-/* 80BF49B8-80BF49BC 000074 0004+00 0/1 0/0 0/0 .rodata @4351 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4351 = 0x43360B61;
-COMPILER_STRIP_GATE(0x80BF49B8, &lit_4351);
-#pragma pop
-
-/* 80BF49BC-80BF49C0 000078 0004+00 0/1 0/0 0/0 .rodata @4352 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4352 = 3000.0f;
-COMPILER_STRIP_GATE(0x80BF49BC, &lit_4352);
-#pragma pop
-
-/* 80BF49C0-80BF49C4 00007C 0004+00 0/1 0/0 0/0 .rodata @4353 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4353 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80BF49C0, &lit_4353);
-#pragma pop
-
-/* 80BF49C4-80BF49C8 000080 0004+00 0/1 0/0 0/0 .rodata @4354 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4354 = 0.5f;
-COMPILER_STRIP_GATE(0x80BF49C4, &lit_4354);
-#pragma pop
-
-/* 80BF49C8-80BF49CC 000084 0004+00 0/1 0/0 0/0 .rodata @4355 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4355 = 2.0f;
-COMPILER_STRIP_GATE(0x80BF49C8, &lit_4355);
-#pragma pop
-
-/* 80BF49CC-80BF49D0 000088 0004+00 0/1 0/0 0/0 .rodata @4356 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4356 = 5.5f;
-COMPILER_STRIP_GATE(0x80BF49CC, &lit_4356);
-#pragma pop
-
-/* 80BF49D0-80BF49D4 00008C 0004+00 0/1 0/0 0/0 .rodata @4357 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4357 = 0.75f;
-COMPILER_STRIP_GATE(0x80BF49D0, &lit_4357);
-#pragma pop
-
-/* 80BF49D4-80BF49D8 000090 0004+00 0/1 0/0 0/0 .rodata @4358 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4358 = 0.25f;
-COMPILER_STRIP_GATE(0x80BF49D4, &lit_4358);
-#pragma pop
-
-/* 80BF49D8-80BF49DC 000094 0004+00 1/3 0/0 0/0 .rodata @4359 */
-SECTION_RODATA static f32 const lit_4359 = 1.0f;
-COMPILER_STRIP_GATE(0x80BF49D8, &lit_4359);
-
-/* 80BF49DC-80BF49E0 000098 0004+00 0/1 0/0 0/0 .rodata @4360 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4360 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80BF49DC, &lit_4360);
-#pragma pop
-
-/* 80BF49E0-80BF49E4 00009C 0004+00 0/1 0/0 0/0 .rodata @4361 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4361 = 2000.0f;
-COMPILER_STRIP_GATE(0x80BF49E0, &lit_4361);
-#pragma pop
-
-/* 80BF49E4-80BF49E8 0000A0 0004+00 0/1 0/0 0/0 .rodata @4362 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4362 = 1000.0f;
-COMPILER_STRIP_GATE(0x80BF49E4, &lit_4362);
-#pragma pop
-
-/* 80BF49E8-80BF49EC 0000A4 0004+00 0/1 0/0 0/0 .rodata @4363 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4363 = 1200.0f;
-COMPILER_STRIP_GATE(0x80BF49E8, &lit_4363);
-#pragma pop
-
-/* 80BF49EC-80BF49F0 0000A8 0004+00 0/1 0/0 0/0 .rodata @4364 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4364 = 900.0f;
-COMPILER_STRIP_GATE(0x80BF49EC, &lit_4364);
-#pragma pop
-
-/* 80BF49F0-80BF49F4 0000AC 0004+00 1/2 0/0 0/0 .rodata @4365 */
-SECTION_RODATA static f32 const lit_4365 = 1.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80BF49F0, &lit_4365);
-
-/* 80BF49F4-80BF49F8 0000B0 0004+00 0/1 0/0 0/0 .rodata @4366 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4366 = 100.0f;
-COMPILER_STRIP_GATE(0x80BF49F4, &lit_4366);
-#pragma pop
-
-/* 80BF49F8-80BF49FC 0000B4 0004+00 0/1 0/0 0/0 .rodata @4367 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4367 = 9.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80BF49F8, &lit_4367);
-#pragma pop
-
-/* 80BF49FC-80BF4A04 0000B8 0004+04 0/1 0/0 0/0 .rodata @4368 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4368[1 + 1 /* padding */] = {
- 4.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80BF49FC, &lit_4368);
-#pragma pop
-
-/* 80BF4A04-80BF4A0C 0000C0 0008+00 1/2 0/0 0/0 .rodata @4370 */
-SECTION_RODATA static u8 const lit_4370[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BF4A04, &lit_4370);
-
/* 80BF3538-80BF3FAC 0008F8 0A74+00 2/2 0/0 0/0 .text Execute__14daObj_Gadget_cFv */
-void daObj_Gadget_c::Execute() {
- // NONMATCHING
+int daObj_Gadget_c::Execute() {
+ BOOL carryNow = fopAcM_checkCarryNow(this) != FALSE;
+
+ f32 floatingOffset = PARAM.floating_offset;
+ f32 scaleParam = PARAM.scale;
+ s16 wallAngle;
+ scale.set(PARAM.scale, PARAM.scale, PARAM.scale);
+ attention_info.flags = 0;
+ attention_info.distances[fopAc_attn_CARRY_e] = 6;
+ mAcchCir.SetWallR(PARAM.width);
+ mAcchCir.SetWallH(PARAM.knee_length);
+ gravity = PARAM.gravity;
+
+ if (carryNow) {
+ mAcch.ClrWallHit();
+ mAcch.ClrGroundHit();
+ mAcch.SetWallNone();
+ mAcch.SetGrndNone();
+ field_0xa00 = 0.0f;
+ mStts.SetWeight(0);
+ speed.setall(0.0f);
+ speedF = 0.0f;
+ gravity = 0.0f;
+ field_0x9ec.setall(0);
+ field_0xa41 = 0;
+ field_0xa42 = 0;
+ field_0xa43 = 0;
+ field_0xa46 = 0;
+ } else {
+ mStts.SetWeight(PARAM.weight);
+ mAcch.ClrWallNone();
+ mAcch.ClrGrndNone();
+
+ if (field_0xa45 != 0 && cM3d_IsZero(speedF) == FALSE) {
+ fopAcM_carryOffRevise(this);
+ popup(PARAM.fire_rate, PARAM.launch_angle, NULL);
+ } else {
+ fopAcM_getWaterY(&current.pos, &field_0xa04);
+
+ if (field_0xa04 != -G_CM3D_F_INF &&
+ floatingOffset < field_0xa04 - field_0xa00 &&
+ current.pos.y <= field_0xa04 &&
+ field_0xa42 == 0) {
+
+ if (field_0xa43 != 0 || field_0xa46 != 0 || field_0xa45 != 0) {
+ setWaterPrtcl();
+ }
+
+ if (field_0xa43 != 0 || field_0xa46 != 0) {
+ if (speed.y < 0.0f) {
+ field_0xa0c = 3000.0f;
+ }
+ field_0xa43 = 0;
+ field_0xa46 = 0;
+ }
+
+ speedF *= 0.3f;
+ speed.y *= 0.5f;
+ field_0xa41 = 0;
+ field_0xa42 = 1;
+ }
+
+ if (field_0xa42 != 0 && field_0xa41 == 0) {
+ if (speed.y < 0.0f) {
+ cLib_addCalc(&speed.y, 2.0f, 0.5f, 5.5f, 0.5f);
+ } else {
+ cLib_addCalc(&speed.y, 2.0f, 0.5f, 0.5f, 0.5f);
+ }
+
+ if (field_0xa04 < (current.pos.y + floatingOffset)) {
+ field_0x9ec.y = 0x100;
+ mAcch.ClrGroundHit();
+ field_0xa41 = 1;
+ }
+ }
+
+ if (field_0xa41 != 0) {
+ if (mAcch.ChkGroundHit()) {
+ field_0xa41 = 0;
+ field_0xa42 = 0;
+ field_0x9ec.setall(0);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ } else {
+ cXyz pathVec;
+ int pathNum;
+ if (dPath_GetPolyRoomPathVec(mGndChk, &pathVec, &pathNum)) {
+ pathVec.normalizeZP();
+ s16 targetAngle = cM_atan2s(pathVec.x, pathVec.z);
+ cLib_addCalcAngleS2(&current.angle.y, targetAngle, 8, 0x400);
+
+ s16 rollTarget = (field_0x9ec.y < 0) ? -0x80 : 0x80;
+ cLib_chaseAngleS(&field_0x9ec.y, rollTarget, 0x10);
+ cLib_addCalc2(&speedF, pathNum * 0.75f, 0.25f, 1.0f);
+ } else {
+ cLib_chaseF(&speedF, 0.0f, 0.1f);
+ }
+
+ cLib_addCalc2(&current.pos.y, field_0xa04 - floatingOffset, 0.5f, 2.0f);
+ speed.y = 0.0f;
+ setHamonPrtcl();
+ gravity = 0.0f;
+
+ if (field_0x9f4 == 0 && mAcch.ChkWallHit()) {
+ if (getWallAngle(current.angle.y, &wallAngle)) {
+ field_0x9f4 = 10;
+ s16 angleDiff = current.angle.y - wallAngle;
+ current.angle.y += (s16)((0x8000 - (angleDiff * 2)) + (s16)cM_rndFX(2000.0f));
+ field_0x9ec.y = -field_0x9ec.y / 2;
+ speedF *= 0.3f;
+ }
+ }
+ }
+ } else if (field_0xa42 != 0) {
+ cLib_chaseF(&speedF, 0.0f, 0.3f);
+ gravity = 0.0f;
+ } else if (field_0xa43 != 0) {
+ if (mAcch.ChkWallHit()) {
+ if (getWallAngle(current.angle.y, &wallAngle)) {
+ s16 angleDiff = current.angle.y - wallAngle;
+ current.angle.y += (s16)((0x8000 - (angleDiff << 1)) + (s16)cM_rndFX(1000.0f));
+ speedF *= 0.5f;
+ }
+ }
+
+ if (mAcch.ChkGroundLanding()) {
+ setSmokePrtcl();
+ field_0xa43 = 0;
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ }
+ } else if (field_0xa46 != 0) {
+ if (mAcch.ChkGroundLanding()) {
+ setSmokePrtcl();
+ field_0xa46 = 0;
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ }
+ } else if (field_0xa45 != 0) {
+ setSmokePrtcl();
+ } else if (!mAcch.ChkGroundHit()) {
+ field_0xa46 = 1;
+ }
+
+ if (mHide == 0 && field_0xa43 == 0 && field_0xa46 == 0) {
+ fopAcM_OnCarryType(this, fopAcM_CARRY_SIDE);
+ cLib_onBit(attention_info.flags, (u32)fopAc_AttnFlag_CARRY_e);
+ }
+ }
+ }
+
+ field_0x9d4 = speed;
+
+ if (field_0xa42 != 0) {
+ f32 targetWave = mStts.GetCCMoveP() ? 1200.0f : 900.0f;
+ cLib_addCalc2(&field_0xa0c, targetWave, 0.05f, 100.0f);
+ } else {
+ cLib_addCalc2(&field_0xa0c, 0.0f, 0.25f, 100.0f);
+ }
+
+ shape_angle.x = field_0xa0c * cM_ssin(field_0xa10 * 1000);
+ shape_angle.z = field_0xa0c * cM_scos(field_0xa10 * 1000);
+
+ cLib_chaseAngleS(&field_0x9ec.y, 0, 10);
+ shape_angle.y += field_0x9ec.y;
+ field_0xa10++;
+
+ cLib_chaseF(&field_0x9fc, 0.0f, 0.05f);
+
+ if (field_0xa41 != 0) {
+ if (field_0x9f8 == 0) {
+ f32 moveSpeed = JMAFastSqrt(mStts.GetCCMoveP()->x * mStts.GetCCMoveP()->x + mStts.GetCCMoveP()->z * mStts.GetCCMoveP()->z);
+ if (1.0f < moveSpeed) {
+ field_0xa18 = cM_atan2s(mStts.GetCCMoveP()->x, mStts.GetCCMoveP()->z);
+ field_0x9fc += moveSpeed * 0.45f;
+ if (4.0f < field_0x9fc) {
+ field_0x9fc = 4.0f;
+ }
+ field_0x9ec.y = 0x200;
+ field_0x9f8 = 10;
+ }
+ }
+ } else {
+ field_0x9fc = 0.0f;
+ }
+
+ field_0x9e0.x = field_0x9fc * cM_ssin(field_0xa18);
+ field_0x9e0.z = field_0x9fc * cM_scos(field_0xa18);
+ field_0x9e0.y = 0.0f;
+
+ if (!carryNow) {
+ fopAcM_calcSpeed(this);
+ speed += field_0x9e0;
+ fopAcM_posMove(this, mStts.GetCCMoveP());
+ }
+
+ if (field_0xa41 != 0) {
+ fopAcM_riverStream(&current.pos, &field_0xa16, &field_0xa08, 0.5f);
+ }
+
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+
+ if (!carryNow) {
+ field_0xa00 = mAcch.GetGroundH();
+ }
+
+ if (field_0xa00 != -G_CM3D_F_INF) {
+ field_0xa12 = daNpcF_getGroundAngle(&mGndChk, shape_angle.y);
+ setEnvTevColor();
+ setRoomNo();
+ }
+
+ attention_info.position = current.pos;
+ attention_info.position.y += PARAM.focus_offset;
+ eyePos = current.pos;
+ setMtx();
+ field_0xa14 = calcRollAngle(field_0xa14, 0x10000);
+
+ if (mHide == 0 && field_0xa40 == 0) {
+ mCyl.SetR(PARAM.width);
+ mCyl.SetH(PARAM.height);
+ mCyl.SetC(current.pos);
+ dComIfG_Ccsp()->Set(&mCyl);
+ }
+
+ mCyl.ClrCoHit();
+ field_0xa45 = carryNow ? 1 : 0;
+ cLib_calcTimer(&field_0x9f4);
+ cLib_calcTimer(&field_0x9f8);
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80BF4A0C-80BF4A10 0000C8 0004+00 0/1 0/0 0/0 .rodata @4402 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4402 = 20.0f;
-COMPILER_STRIP_GATE(0x80BF4A0C, &lit_4402);
-#pragma pop
-
/* 80BF3FAC-80BF40E8 00136C 013C+00 1/1 0/0 0/0 .text Draw__14daObj_Gadget_cFv */
-void daObj_Gadget_c::Draw() {
- // NONMATCHING
-}
-
-/* 80BF40E8-80BF4130 0014A8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */
-// cM3dGPla::~cM3dGPla() {
-extern "C" void __dt__8cM3dGPlaFv() {
- // NONMATCHING
+int daObj_Gadget_c::Draw() {
+ if (mHide == 0) {
+ g_env_light.settingTevStruct(0, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
+ mDoExt_modelUpdateDL(mModel);
+
+ fopAc_ac_c* carryActor = NULL;
+ fopAcM_SearchByID(daPy_getPlayerActorClass()->getGrabActorID(), &carryActor);
+
+ if (carryActor == this) {
+ model = mModel;
+ } else if (field_0xa00 != -G_CM3D_F_INF) {
+ cM3dGPla groundPla;
+ if (dComIfG_Bgsp().GetTriPla(mGndChk, &groundPla)) {
+ dComIfGd_setSimpleShadow(&current.pos, field_0xa00, 20.0f, &groundPla.mNormal, 0,
+ 1.0f, dDlst_shadowControl_c::getSimpleTex());
+ }
+ }
+ }
+ return 1;
}
/* 80BF4130-80BF4150 0014F0 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__14daObj_Gadget_cFP10fopAc_ac_c */
-void daObj_Gadget_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daObj_Gadget_c::createHeapCallBack(fopAc_ac_c* a_this) {
+ return ((daObj_Gadget_c*)a_this)->CreateHeap();
}
/* 80BF4150-80BF41AC 001510 005C+00 2/2 0/0 0/0 .text setEnvTevColor__14daObj_Gadget_cFv
*/
void daObj_Gadget_c::setEnvTevColor() {
- // NONMATCHING
+ tevStr.YukaCol = dComIfG_Bgsp().GetPolyColor(mGndChk);
+ tevStr.room_no = dComIfG_Bgsp().GetRoomId(mGndChk);
}
/* 80BF41AC-80BF41F0 00156C 0044+00 2/2 0/0 0/0 .text setRoomNo__14daObj_Gadget_cFv */
void daObj_Gadget_c::setRoomNo() {
- // NONMATCHING
+ s8 room_no = dComIfG_Bgsp().GetRoomId(mGndChk);
+ fopAcM_SetRoomNo(this, room_no);
+ mStts.SetRoomId(room_no);
}
/* 80BF41F0-80BF424C 0015B0 005C+00 1/1 0/0 0/0 .text reset__14daObj_Gadget_cFv */
void daObj_Gadget_c::reset() {
- // NONMATCHING
+ memset(&field_0x9d4, 0, (u8*)&field_0xa47 - (u8*)&field_0x9d4);
+ switch (field_0x9d0) {
+ case 0:
+ case 1:
+ mHide = 1;
+ break;
+ }
}
/* 80BF424C-80BF4354 00160C 0108+00 1/1 0/0 0/0 .text setMtx__14daObj_Gadget_cFv */
void daObj_Gadget_c::setMtx() {
- // NONMATCHING
+ s16 angleDiff = shape_angle.y - current.angle.y;
+ s16 cosVal = field_0xa14 * cM_scos(angleDiff);
+ s16 sinVal = field_0xa14 * cM_ssin(angleDiff);
+
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::XrotM(cosVal);
+ mDoMtx_stack_c::ZrotM(sinVal);
+ mDoMtx_stack_c::scaleM(scale);
+
+ mModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80BF4354-80BF43F4 001714 00A0+00 1/1 0/0 0/0 .text calcRollAngle__14daObj_Gadget_cFsi
*/
-void daObj_Gadget_c::calcRollAngle(s16 param_0, int param_1) {
- // NONMATCHING
+s16 daObj_Gadget_c::calcRollAngle(s16 param_1, int param_2) {
+ int result;
+ if (param_1 != 0) {
+ result = param_2 - (u16)param_1;
+ if (abs(result) > 4) {
+ result /= 4;
+ if (result > 0x800) {
+ result = (u16)param_1 + 0x800;
+ } else {
+ if (result < -0x800) {
+ result = (u16)param_1 - 0x800;
+ } else {
+ result = (u16)param_1 + result;
+ }
+ }
+ } else {
+ result = param_2;
+ }
+ return result;
+ }
+ return 0;
}
-/* ############################################################################################## */
-/* 80BF4A10-80BF4A14 0000CC 0004+00 0/1 0/0 0/0 .rodata @4527 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4527 = 5.0f;
-COMPILER_STRIP_GATE(0x80BF4A10, &lit_4527);
-#pragma pop
-
-/* 80BF4A14-80BF4A18 0000D0 0004+00 0/1 0/0 0/0 .rodata @4528 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4528 = 200.0f;
-COMPILER_STRIP_GATE(0x80BF4A14, &lit_4528);
-#pragma pop
-
-/* 80BF4A18-80BF4A1C 0000D4 0004+00 0/1 0/0 0/0 .rodata @4529 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4529 = -1.0f;
-COMPILER_STRIP_GATE(0x80BF4A18, &lit_4529);
-#pragma pop
-
/* 80BF43F4-80BF4584 0017B4 0190+00 1/1 0/0 0/0 .text getWallAngle__14daObj_Gadget_cFsPs
*/
-void daObj_Gadget_c::getWallAngle(s16 param_0, s16* param_1) {
- // NONMATCHING
+BOOL daObj_Gadget_c::getWallAngle(s16 param_0, s16* param_1) {
+ cXyz startPos;
+ cXyz checkPos[2];
+ cXyz direction;
+
+ mDoMtx_stack_c::YrotS(param_0);
+ direction.set(0.0f, 0.0f, -50.0f);
+ mDoMtx_stack_c::multVec(&direction, &startPos);
+ startPos += current.pos;
+
+ direction.set(5.0f, 0.0f, 200.0f);
+
+ for (int i = 0; i < 2; i++) {
+ mDoMtx_stack_c::multVec(&direction, &checkPos[i]);
+ direction.x = direction.x * -1.0f;
+ checkPos[i] += startPos;
+
+ mLinChk.Set(&startPos, &checkPos[i], this);
+ if (dComIfG_Bgsp().LineCross(&mLinChk)) {
+ checkPos[i] = mLinChk.GetCross();
+ } else {
+ return FALSE;
+ }
+ }
+
+ direction = checkPos[1] - checkPos[0];
+ s16 wallAngle = cM_atan2s(direction.x, direction.z);
+ *param_1 = wallAngle + 0x4000;
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80BF4A1C-80BF4A20 0000D8 0004+00 2/2 0/0 0/0 .rodata @4545 */
-SECTION_RODATA static f32 const lit_4545 = 2.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80BF4A1C, &lit_4545);
-
/* 80BF4584-80BF4600 001944 007C+00 1/1 0/0 0/0 .text setSmokePrtcl__14daObj_Gadget_cFv
*/
void daObj_Gadget_c::setSmokePrtcl() {
- // NONMATCHING
+ fopAcM_effSmokeSet1(&field_0xa38, &field_0xa3c, &current.pos, NULL, 0.4f, &tevStr, 1);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0xa38);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0xa3c);
}
-/* 80BF4BD8-80BF4BE4 000048 000C+00 1/1 0/0 0/0 .bss @3804 */
-static u8 lit_3804[12];
-
-/* 80BF4BE4-80BF4BE8 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
-/* 80BF4BE8-80BF4BF8 000058 000C+04 0/1 0/0 0/0 .bss @4550 */
-#pragma push
-#pragma force_active on
-static u8 lit_4550[12 + 4 /* padding */];
-#pragma pop
-
-/* 80BF4BF8-80BF4C04 000068 000C+00 0/1 0/0 0/0 .bss scl$4549 */
-#pragma push
-#pragma force_active on
-static u8 scl[12];
-#pragma pop
-
/* 80BF4600-80BF4728 0019C0 0128+00 1/1 0/0 0/0 .text setWaterPrtcl__14daObj_Gadget_cFv
*/
void daObj_Gadget_c::setWaterPrtcl() {
- // NONMATCHING
-}
+ static cXyz scl(0.4f, 0.4f, 0.4f);
+ static u16 emttrId[4] = {
+ ID_ZI_J_DOWNWTRA_A,
+ ID_ZI_J_DOWNWTRA_B,
+ ID_ZI_J_DOWNWTRA_C,
+ ID_ZI_J_DOWNWTRA_D,
+ };
-/* ############################################################################################## */
-/* 80BF4A20-80BF4A24 0000DC 0004+00 1/1 0/0 0/0 .rodata @4592 */
-SECTION_RODATA static f32 const lit_4592 = 7.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80BF4A20, &lit_4592);
+ cXyz pos(current.pos.x, field_0xa04, current.pos.z);
+
+ for (int i = 0; i < 4; i++) {
+ field_0xa20[i] = dComIfGp_particle_set(field_0xa20[i], emttrId[i], &pos, &tevStr, 0, &scl,
+ 0xff, 0, -1, 0, 0, 0);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0xa20[i]);
+ }
+}
/* 80BF4728-80BF4778 001AE8 0050+00 1/1 0/0 0/0 .text setHamonPrtcl__14daObj_Gadget_cFv
*/
void daObj_Gadget_c::setHamonPrtcl() {
- // NONMATCHING
+ cXyz pos(current.pos.x, field_0xa04, current.pos.z);
+ fopAcM_effHamonSet(&field_0xa30, &pos, 0.7f, 0.05f);
}
/* 80BF4778-80BF4798 001B38 0020+00 1/0 0/0 0/0 .text daObj_Gadget_Create__FPv */
-static void daObj_Gadget_Create(void* param_0) {
- // NONMATCHING
+static int daObj_Gadget_Create(void* i_this) {
+ return ((daObj_Gadget_c*)i_this)->create();
}
/* 80BF4798-80BF47B8 001B58 0020+00 1/0 0/0 0/0 .text daObj_Gadget_Delete__FPv */
-static void daObj_Gadget_Delete(void* param_0) {
- // NONMATCHING
+static int daObj_Gadget_Delete(void* i_this) {
+ return ((daObj_Gadget_c*)i_this)->Delete();
}
/* 80BF47B8-80BF47D8 001B78 0020+00 1/0 0/0 0/0 .text daObj_Gadget_Execute__FPv */
-static void daObj_Gadget_Execute(void* param_0) {
- // NONMATCHING
+static int daObj_Gadget_Execute(void* i_this) {
+ return ((daObj_Gadget_c*)i_this)->Execute();
}
/* 80BF47D8-80BF47F8 001B98 0020+00 1/0 0/0 0/0 .text daObj_Gadget_Draw__FPv */
-static void daObj_Gadget_Draw(void* param_0) {
- // NONMATCHING
+static int daObj_Gadget_Draw(void* i_this) {
+ return ((daObj_Gadget_c*)i_this)->Draw();
}
/* 80BF47F8-80BF4800 001BB8 0008+00 1/0 0/0 0/0 .text daObj_Gadget_IsDelete__FPv */
-static bool daObj_Gadget_IsDelete(void* param_0) {
- return true;
+static int daObj_Gadget_IsDelete(void* i_this) {
+ return 1;
}
-/* 80BF4800-80BF4848 001BC0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
+AUDIO_INSTANCES
-/* 80BF4848-80BF4864 001C08 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<i>__FPi */
-extern "C" void func_80BF4848(void* _this, int* param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80BF4B84-80BF4B90 000158 000C+00 2/2 0/0 0/0 .data __vt__20daObj_Gadget_Param_c */
-SECTION_DATA extern void* __vt__20daObj_Gadget_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__20daObj_Gadget_Param_cFv,
+/* 80BF4AB0-80BF4AD0 -00001 0020+00 1/0 0/0 0/0 .data daObj_Gadget_MethodTable */
+static actor_method_class daObj_Gadget_MethodTable = {
+ (process_method_func)daObj_Gadget_Create,
+ (process_method_func)daObj_Gadget_Delete,
+ (process_method_func)daObj_Gadget_Execute,
+ (process_method_func)daObj_Gadget_IsDelete,
+ (process_method_func)daObj_Gadget_Draw,
};
-/* 80BF4864-80BF48D8 001C24 0074+00 0/0 1/0 0/0 .text __sinit_d_a_obj_gadget_cpp */
-void __sinit_d_a_obj_gadget_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80BF4864, __sinit_d_a_obj_gadget_cpp);
-#pragma pop
-
-/* 80BF48D8-80BF4920 001C98 0048+00 2/1 0/0 0/0 .text __dt__20daObj_Gadget_Param_cFv */
-daObj_Gadget_Param_c::~daObj_Gadget_Param_c() {
- // NONMATCHING
-}
-
-/* 80BF4920-80BF4928 001CE0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80BF4920() {
- // NONMATCHING
-}
-
-/* 80BF4928-80BF4930 001CE8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80BF4928() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80BF4C04-80BF4C08 000074 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C04[4];
-#pragma pop
-
-/* 80BF4C08-80BF4C0C 000078 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C08[4];
-#pragma pop
-
-/* 80BF4C0C-80BF4C10 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C0C[4];
-#pragma pop
-
-/* 80BF4C10-80BF4C14 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C10[4];
-#pragma pop
-
-/* 80BF4C14-80BF4C18 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C14[4];
-#pragma pop
-
-/* 80BF4C18-80BF4C1C 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C18[4];
-#pragma pop
-
-/* 80BF4C1C-80BF4C20 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C1C[4];
-#pragma pop
-
-/* 80BF4C20-80BF4C24 000090 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C20[4];
-#pragma pop
-
-/* 80BF4C24-80BF4C28 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C24[4];
-#pragma pop
-
-/* 80BF4C28-80BF4C2C 000098 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C28[4];
-#pragma pop
-
-/* 80BF4C2C-80BF4C30 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C2C[4];
-#pragma pop
-
-/* 80BF4C30-80BF4C34 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C30[4];
-#pragma pop
-
-/* 80BF4C34-80BF4C38 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C34[4];
-#pragma pop
-
-/* 80BF4C38-80BF4C3C 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C38[4];
-#pragma pop
-
-/* 80BF4C3C-80BF4C40 0000AC 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C3C[4];
-#pragma pop
-
-/* 80BF4C40-80BF4C44 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C40[4];
-#pragma pop
-
-/* 80BF4C44-80BF4C48 0000B4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C44[4];
-#pragma pop
-
-/* 80BF4C48-80BF4C4C 0000B8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C48[4];
-#pragma pop
-
-/* 80BF4C4C-80BF4C50 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C4C[4];
-#pragma pop
-
-/* 80BF4C50-80BF4C54 0000C0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C50[4];
-#pragma pop
-
-/* 80BF4C54-80BF4C58 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C54[4];
-#pragma pop
-
-/* 80BF4C58-80BF4C5C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C58[4];
-#pragma pop
-
-/* 80BF4C5C-80BF4C60 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C5C[4];
-#pragma pop
-
-/* 80BF4C60-80BF4C64 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C60[4];
-#pragma pop
-
-/* 80BF4C64-80BF4C68 0000D4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80BF4C64[4];
-#pragma pop
+/* 80BF4AD0-80BF4B00 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_GADGET */
+extern actor_process_profile_definition g_profile_OBJ_GADGET = {
+ fpcLy_CURRENT_e, // mLayerID
+ 8, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_OBJ_GADGET, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObj_Gadget_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 82, // mPriority
+ &daObj_Gadget_MethodTable, // sub_method
+ 0x00044100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
/* 80BF4A24-80BF4A24 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */