d_a_obj_gadget OK (#2735)

This commit is contained in:
hatal175 2025-10-14 06:11:30 +03:00 committed by GitHub
parent 678fd4d8f5
commit d3c3fd09de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 693 additions and 882 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"),

View File

@ -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;
};

File diff suppressed because it is too large Load Diff