mirror of https://github.com/zeldaret/tp.git
d_a_obj_pillar done (#2255)
This commit is contained in:
parent
24b72a5302
commit
7cc32c05fa
|
|
@ -5,7 +5,7 @@ __register_global_object = .text:0x00000078; // type:function size:0x1C scope:gl
|
|||
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
|
||||
__ct__14daPillar_HIO_cFv = .text:0x000000EC; // type:function size:0x84 scope:global
|
||||
__dt__14mDoHIO_entry_cFv = .text:0x00000170; // type:function size:0x48 scope:global
|
||||
rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c = .text:0x000001B8; // type:function size:0xBC scope:global
|
||||
rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c = .text:0x000001B8; // type:function size:0xBC scope:local
|
||||
setBaseMtx__10daPillar_cFv = .text:0x00000274; // type:function size:0x138 scope:global
|
||||
Create__10daPillar_cFv = .text:0x000003AC; // type:function size:0x1BC scope:global
|
||||
CreateHeap__10daPillar_cFv = .text:0x00000568; // type:function size:0xFC scope:global
|
||||
|
|
@ -26,10 +26,10 @@ actionEnd__10daPillar_cFv = .text:0x0000118C; // type:function size:0x4 scope:gl
|
|||
Execute__10daPillar_cFPPA3_A4_f = .text:0x00001190; // type:function size:0x288 scope:global
|
||||
Draw__10daPillar_cFv = .text:0x00001418; // type:function size:0xE8 scope:global
|
||||
Delete__10daPillar_cFv = .text:0x00001500; // type:function size:0x40 scope:global
|
||||
daPillar_create1st__FP10daPillar_c = .text:0x00001540; // type:function size:0xF4 scope:global
|
||||
daPillar_MoveBGDelete__FP10daPillar_c = .text:0x00001634; // type:function size:0x20 scope:global
|
||||
daPillar_MoveBGExecute__FP10daPillar_c = .text:0x00001654; // type:function size:0x20 scope:global
|
||||
daPillar_MoveBGDraw__FP10daPillar_c = .text:0x00001674; // type:function size:0x2C scope:global
|
||||
daPillar_create1st__FP10daPillar_c = .text:0x00001540; // type:function size:0xF4 scope:local
|
||||
daPillar_MoveBGDelete__FP10daPillar_c = .text:0x00001634; // type:function size:0x20 scope:local
|
||||
daPillar_MoveBGExecute__FP10daPillar_c = .text:0x00001654; // type:function size:0x20 scope:local
|
||||
daPillar_MoveBGDraw__FP10daPillar_c = .text:0x00001674; // type:function size:0x2C scope:local
|
||||
__dt__10cCcD_GSttsFv = .text:0x000016A0; // type:function size:0x48 scope:global
|
||||
__dt__14daPillar_HIO_cFv = .text:0x000016E8; // type:function size:0x5C scope:global
|
||||
__sinit_d_a_obj_pillar_cpp = .text:0x00001744; // type:function size:0x3C scope:local
|
||||
|
|
@ -37,12 +37,12 @@ _ctors = .ctors:0x00000000; // type:label scope:global
|
|||
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
...rodata.0 = .rodata:0x00000000; // type:label scope:local
|
||||
l_bmd = .rodata:0x00000000; // type:object size:0x8 scope:global
|
||||
l_dzb = .rodata:0x00000008; // type:object size:0x8 scope:global
|
||||
l_shadowBmd = .rodata:0x00000010; // type:object size:0x8 scope:global
|
||||
l_heap_size = .rodata:0x00000018; // type:object size:0x8 scope:global
|
||||
l_cyl_src = .rodata:0x00000020; // type:object size:0x44 scope:global
|
||||
l_shake_data = .rodata:0x00000064; // type:object size:0x30 scope:global data:2byte
|
||||
l_bmd = .rodata:0x00000000; // type:object size:0x8 scope:local
|
||||
l_dzb = .rodata:0x00000008; // type:object size:0x8 scope:local
|
||||
l_shadowBmd = .rodata:0x00000010; // type:object size:0x8 scope:local
|
||||
l_heap_size = .rodata:0x00000018; // type:object size:0x8 scope:local
|
||||
l_cyl_src = .rodata:0x00000020; // type:object size:0x44 scope:local
|
||||
l_shake_data = .rodata:0x00000064; // type:object size:0x30 scope:local data:2byte
|
||||
@3664 = .rodata:0x00000094; // type:object size:0x4 scope:local
|
||||
@3665 = .rodata:0x00000098; // type:object size:0x4 scope:local
|
||||
@3681 = .rodata:0x0000009C; // type:object size:0x4 scope:local
|
||||
|
|
@ -64,14 +64,14 @@ l_shake_data = .rodata:0x00000064; // type:object size:0x30 scope:global data:2b
|
|||
@4267 = .rodata:0x000000F4; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x000000F8; // type:object size:0x1B scope:local data:string_table
|
||||
...data.0 = .data:0x00000000; // type:label scope:local
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
|
||||
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
|
||||
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
|
||||
l_arcName = .data:0x00000020; // type:object size:0x8 scope:local
|
||||
@4193 = .data:0x00000028; // type:object size:0xC scope:local
|
||||
@4194 = .data:0x00000034; // type:object size:0xC scope:local
|
||||
@4195 = .data:0x00000040; // type:object size:0xC scope:local
|
||||
l_func$4192 = .data:0x0000004C; // type:object size:0x24 scope:local
|
||||
daPillar_METHODS = .data:0x00000070; // type:object size:0x20 scope:global
|
||||
daPillar_METHODS = .data:0x00000070; // type:object size:0x20 scope:local
|
||||
g_profile_Obj_Pillar = .data:0x00000090; // type:object size:0x30 scope:global
|
||||
__vt__10cCcD_GStts = .data:0x000000C0; // type:object size:0xC scope:global
|
||||
__vt__10dCcD_GStts = .data:0x000000CC; // type:object size:0xC scope:global
|
||||
|
|
@ -82,5 +82,5 @@ __vt__14daPillar_HIO_c = .data:0x00000118; // type:object size:0xC scope:global
|
|||
__vt__14mDoHIO_entry_c = .data:0x00000124; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
@3657 = .bss:0x00000008; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x28 scope:global data:float
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x28 scope:local data:float
|
||||
lbl_593_bss_3C = .bss:0x0000003C; // type:object size:0x1 data:byte
|
||||
|
|
|
|||
|
|
@ -1958,7 +1958,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_obj_pdtile"),
|
||||
ActorRel(NonMatching, "d_a_obj_pdwall"),
|
||||
ActorRel(NonMatching, "d_a_obj_picture"),
|
||||
ActorRel(NonMatching, "d_a_obj_pillar"),
|
||||
ActorRel(Matching, "d_a_obj_pillar"),
|
||||
ActorRel(Matching, "d_a_obj_pleaf"),
|
||||
ActorRel(NonMatching, "d_a_obj_poCandle"),
|
||||
ActorRel(NonMatching, "d_a_obj_poFire"),
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ public:
|
|||
s8 prm_chk_type_lightball() { return (getType() == TYPE_BALL_S || getType() == TYPE_BALL_S_2); }
|
||||
void startCtrl() { mCtrl = 1; }
|
||||
void endCtrl() { mCtrl = 0; }
|
||||
void setDrop() { field_0xcf2 = 3; }
|
||||
|
||||
static void make_prm(csXyz* param_1, u8 param_2, u8 param_3, u8 param_4, u8 param_5, u8 param_6=0) {
|
||||
param_1->x = (param_4 << 8) | param_3;
|
||||
|
|
@ -227,7 +228,8 @@ public:
|
|||
/* 0xCEC */ float field_0xcec;
|
||||
/* 0xCF0 */ u8 mType;
|
||||
/* 0xCF1 */ u8 field_0xcf1;
|
||||
/* 0xCF2 */ u8 field_0xCF2[0xCF4 - 0xCF2];
|
||||
/* 0xCF2 */ u8 field_0xcf2;
|
||||
/* 0xCF3 */ u8 field_0xCF3[0xCF4 - 0xCF3];
|
||||
/* 0xCF4 */ cXyz field_0xcf4;
|
||||
/* 0xD00 */ s16 field_0xd00;
|
||||
/* 0xD02 */ u8 field_0xD02[0xD04 - 0xD02];
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
#define D_A_OBJ_PILLAR_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
|
@ -11,15 +13,32 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daPillar_c : public fopAc_ac_c {
|
||||
class daPillar_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
enum shake_e {
|
||||
SHAKE_CRASH,
|
||||
SHAKE_STRONG,
|
||||
SHAKE_WEAK,
|
||||
SHAKE_CRASH_LV1,
|
||||
SHAKE_IRONBALL,
|
||||
SHAKE_NONE = 0xFF,
|
||||
};
|
||||
|
||||
struct sdata_t {
|
||||
/* 0x0 */ u8 mPower;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ s16 mInitAngleX;
|
||||
/* 0x4 */ s16 mTime;
|
||||
/* 0x6 */ s16 mSpeedY;
|
||||
/* 0x8 */ s16 mMaxChangeX;
|
||||
/* 0xA */ s16 mMinChangeX;
|
||||
};
|
||||
|
||||
/* 80CAF4B4 */ void setBaseMtx();
|
||||
/* 80CAF5EC */ void Create();
|
||||
/* 80CAF7A8 */ void CreateHeap();
|
||||
/* 80CAF8A4 */ void create1st();
|
||||
/* 80CAFB44 */ void checkAttacked();
|
||||
/* 80CAF8A4 */ int create1st();
|
||||
/* 80CAFB44 */ bool checkAttacked();
|
||||
/* 80CAFC08 */ void on_switch();
|
||||
/* 80CAFD64 */ void checkShake();
|
||||
/* 80CAFD64 */ int checkShake();
|
||||
/* 80CAFF60 */ void setShake_rcrash();
|
||||
/* 80CB01E0 */ void setShake_strong();
|
||||
/* 80CB022C */ void setShake_weak();
|
||||
|
|
@ -27,30 +46,61 @@ public:
|
|||
/* 80CB031C */ void actionSwOnWait();
|
||||
/* 80CB0378 */ void actionSwOn();
|
||||
/* 80CB03CC */ void actionEnd();
|
||||
/* 80CB03D0 */ void Execute(f32 (**)[3][4]);
|
||||
/* 80CB0658 */ void Draw();
|
||||
/* 80CB0740 */ void Delete();
|
||||
|
||||
/* 80CAF7A8 */ virtual int CreateHeap();
|
||||
/* 80CAF5EC */ virtual int Create();
|
||||
/* 80CB03D0 */ virtual int Execute(Mtx**);
|
||||
/* 80CB0658 */ virtual int Draw();
|
||||
/* 80CB0740 */ virtual int Delete();
|
||||
|
||||
u16 getTimer() { return fopAcM_GetParamBit(this, 0x18, 8); }
|
||||
u8 checkShadow() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getType() { return fopAcM_GetParamBit(this, 0x10, 8); }
|
||||
|
||||
|
||||
u8 getMdlType() { return field_0x73e & 0xF; }
|
||||
bool checkRollAttack() { return field_0x732 == true; }
|
||||
void setShake(int i_shake) { field_0x738 = i_shake; }
|
||||
bool checkRollAttack() { return mIsRollAttack == true; }
|
||||
void setShake(int i_shake) { mShake = i_shake; }
|
||||
void setAction(u8 i_action) { mAction = i_action; }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x732 - 0x568];
|
||||
/* 0x732 */ u8 field_0x732;
|
||||
/* 0x733 */ u8 field_0x733[0x738 - 0x733];
|
||||
/* 0x738 */ int field_0x738;
|
||||
/* 0x73C */ u8 field_0x73c[0x73E - 0x73C];
|
||||
/* 0x5A0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5A8 */ J3DModel* mpModel;
|
||||
/* 0x5AC */ dCcD_Stts mColliderStts;
|
||||
/* 0x5E8 */ dCcD_Cyl mCylCollider;
|
||||
/* 0x724 */ J3DModel* mpShadowModel;
|
||||
/* 0x728 */ u8 field_0x728[0x72D - 0x728];
|
||||
/* 0x72D */ u8 mIsPrmInit;
|
||||
/* 0x72E */ s16 mRotY;
|
||||
/* 0x730 */ u8 field_0x730[0x732 - 0x730];
|
||||
/* 0x732 */ u8 mIsRollAttack;
|
||||
/* 0x733 */ u8 mAction;
|
||||
/* 0x734 */ s16 field_0x734;
|
||||
/* 0x736 */ s16 mTimer;
|
||||
/* 0x738 */ int mShake;
|
||||
/* 0x73C */ s16 field_0x73c;
|
||||
/* 0x73E */ u16 field_0x73e;
|
||||
/* 0x740 */ u8 field_0x740[0x750 - 0x740];
|
||||
/* 0x740 */ u8 mMdlType;
|
||||
/* 0x741 */ u8 mShakeMode;
|
||||
/* 0x742 */ sdata_t mShakeData;
|
||||
/* 0x74E */ s16 mQuakeTimer;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daPillar_c) == 0x750);
|
||||
|
||||
class daPillar_HIO_c {
|
||||
class daPillar_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
/* 80CAF32C */ daPillar_HIO_c();
|
||||
/* 80CB0928 */ ~daPillar_HIO_c();
|
||||
/* 80CB0928 */ virtual ~daPillar_HIO_c() {}
|
||||
|
||||
/* 0x04 */ daPillar_c::sdata_t mShakeData;
|
||||
/* 0x10 */ u8 field_0x10[0x1C - 0x10];
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ u8 field_0x24;
|
||||
/* 0x25 */ u8 field_0x25;
|
||||
/* 0x26 */ u8 field_0x26;
|
||||
/* 0x27 */ u8 mIsAdjust;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3474,7 +3474,7 @@ void daB_ZANT_c::executeMonkey() {
|
|||
|
||||
fopAcM_SearchByID(mPillarIDs[field_0x70a], &ppillar);
|
||||
if (ppillar != NULL) {
|
||||
((daPillar_c*)ppillar)->setShake(2);
|
||||
((daPillar_c*)ppillar)->setShake(daPillar_c::SHAKE_WEAK);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -3495,7 +3495,7 @@ void daB_ZANT_c::executeMonkey() {
|
|||
|
||||
fopAcM_SearchByID(mPillarIDs[field_0x70a], &ppillar);
|
||||
if (ppillar != NULL) {
|
||||
((daPillar_c*)ppillar)->setShake(2);
|
||||
((daPillar_c*)ppillar)->setShake(daPillar_c::SHAKE_WEAK);
|
||||
}
|
||||
|
||||
mMode = 1;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue