mirror of https://github.com/zeldaret/tp.git
d_a_e_zs (a.k.a. Stallord's zombie soldiers) equivalent (#2313)
* Initial work for d_a_e_zs * d_a_e_zs equivalent * d_a_e_zs data fixes. Thanks Taka! * Update d_a_e_zs based on Taka's comments
This commit is contained in:
parent
fb45587923
commit
52b23ad73c
|
|
@ -17,6 +17,6 @@ REL/global_destructor_chain.c:
|
|||
d/actor/d_a_e_zs.cpp:
|
||||
.text start:0x000000EC end:0x000022FC
|
||||
.ctors start:0x00000000 end:0x00000004
|
||||
.rodata start:0x00000000 end:0x0000007C
|
||||
.rodata start:0x00000000 end:0x00000079
|
||||
.data start:0x00000000 end:0x0000014C
|
||||
.bss start:0x00000008 end:0x0000002C
|
||||
.bss start:0x00000008 end:0x0000002A
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@ __register_global_object = .text:0x00000078; // type:function size:0x1C scope:gl
|
|||
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
|
||||
__ct__12daE_ZS_HIO_cFv = .text:0x000000EC; // type:function size:0x30 scope:global
|
||||
draw__8daE_ZS_cFv = .text:0x0000011C; // type:function size:0xE8 scope:global
|
||||
daE_ZS_Draw__FP8daE_ZS_c = .text:0x00000204; // type:function size:0x20 scope:global
|
||||
daE_ZS_Draw__FP8daE_ZS_c = .text:0x00000204; // type:function size:0x20 scope:local
|
||||
setBck__8daE_ZS_cFiUcff = .text:0x00000224; // type:function size:0xAC scope:global
|
||||
setActionMode__8daE_ZS_cFii = .text:0x000002D0; // type:function size:0xC scope:global
|
||||
damage_check__8daE_ZS_cFv = .text:0x000002DC; // type:function size:0x3B0 scope:global
|
||||
s_BossSearch__FPvPv = .text:0x0000068C; // type:function size:0x4C scope:global
|
||||
s_BossSearch__FPvPv = .text:0x0000068C; // type:function size:0x4C scope:local
|
||||
mBossHandCheck__8daE_ZS_cFv = .text:0x000006D8; // type:function size:0x2CC scope:global
|
||||
executeAppear__8daE_ZS_cFv = .text:0x000009A4; // type:function size:0x3CC scope:global
|
||||
executeWait__8daE_ZS_cFv = .text:0x00000D70; // type:function size:0x1EC scope:global
|
||||
|
|
@ -19,19 +19,19 @@ action__8daE_ZS_cFv = .text:0x00001308; // type:function size:0x1B0 scope:global
|
|||
mtx_set__8daE_ZS_cFv = .text:0x000014B8; // type:function size:0xA0 scope:global
|
||||
cc_set__8daE_ZS_cFv = .text:0x00001558; // type:function size:0x138 scope:global
|
||||
execute__8daE_ZS_cFv = .text:0x00001690; // type:function size:0x6C scope:global
|
||||
daE_ZS_Execute__FP8daE_ZS_c = .text:0x000016FC; // type:function size:0x20 scope:global
|
||||
daE_ZS_IsDelete__FP8daE_ZS_c = .text:0x0000171C; // type:function size:0x8 scope:global
|
||||
daE_ZS_Execute__FP8daE_ZS_c = .text:0x000016FC; // type:function size:0x20 scope:local
|
||||
daE_ZS_IsDelete__FP8daE_ZS_c = .text:0x0000171C; // type:function size:0x8 scope:local
|
||||
_delete__8daE_ZS_cFv = .text:0x00001724; // type:function size:0x74 scope:global
|
||||
daE_ZS_Delete__FP8daE_ZS_c = .text:0x00001798; // type:function size:0x20 scope:global
|
||||
daE_ZS_Delete__FP8daE_ZS_c = .text:0x00001798; // type:function size:0x20 scope:local
|
||||
CreateHeap__8daE_ZS_cFv = .text:0x000017B8; // type:function size:0xEC scope:global
|
||||
useHeapInit__FP10fopAc_ac_c = .text:0x000018A4; // type:function size:0x20 scope:global
|
||||
useHeapInit__FP10fopAc_ac_c = .text:0x000018A4; // type:function size:0x20 scope:local
|
||||
create__8daE_ZS_cFv = .text:0x000018C4; // type:function size:0x324 scope:global
|
||||
__dt__8cM3dGCylFv = .text:0x00001BE8; // type:function size:0x48 scope:global
|
||||
__dt__8cM3dGAabFv = .text:0x00001C30; // type:function size:0x48 scope:global
|
||||
__dt__10dCcD_GSttsFv = .text:0x00001C78; // type:function size:0x5C scope:global
|
||||
__dt__12dBgS_ObjAcchFv = .text:0x00001CD4; // type:function size:0x70 scope:global
|
||||
__dt__12dBgS_AcchCirFv = .text:0x00001D44; // type:function size:0x70 scope:global
|
||||
daE_ZS_Create__FP8daE_ZS_c = .text:0x00001DB4; // type:function size:0x20 scope:global
|
||||
daE_ZS_Create__FP8daE_ZS_c = .text:0x00001DB4; // type:function size:0x20 scope:local
|
||||
__dt__10cCcD_GSttsFv = .text:0x00001DD4; // type:function size:0x48 scope:global
|
||||
__dt__12daE_ZS_HIO_cFv = .text:0x00001E1C; // type:function size:0x48 scope:global
|
||||
__sinit_d_a_e_zs_cpp = .text:0x00001E64; // type:function size:0x3C scope:local
|
||||
|
|
@ -71,16 +71,16 @@ _dtors = .dtors:0x00000000; // type:label scope:global
|
|||
@4649 = .rodata:0x00000070; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000074; // type:object size:0x5 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
|
||||
e_prim$3788 = .data:0x00000020; // type:object size:0x8 scope:local
|
||||
e_env$3789 = .data:0x00000028; // type:object size:0x8 scope:local
|
||||
eff_id$3797 = .data:0x00000030; // type:object size:0x6 scope:local
|
||||
cc_zs_src__22@unnamed@d_a_e_zs_cpp@ = .data:0x00000038; // type:object size:0x44 scope:global
|
||||
cc_zs_src__22@unnamed@d_a_e_zs_cpp@ = .data:0x00000038; // type:object size:0x44 scope:local
|
||||
eff_Damage_id$3979 = .data:0x0000007C; // type:object size:0x6 scope:local
|
||||
eff_Appear_id$4194 = .data:0x00000084; // type:object size:0x4 scope:local
|
||||
w_eff_id$4324 = .data:0x00000088; // type:object size:0x8 scope:local
|
||||
l_daE_ZS_Method = .data:0x00000090; // type:object size:0x20 scope:global
|
||||
l_daE_ZS_Method = .data:0x00000090; // type:object size:0x20 scope:local
|
||||
g_profile_E_ZS = .data:0x000000B0; // type:object size:0x30 scope:global
|
||||
__vt__12dBgS_AcchCir = .data:0x000000E0; // type:object size:0xC scope:global
|
||||
__vt__10cCcD_GStts = .data:0x000000EC; // type:object size:0xC scope:global
|
||||
|
|
@ -90,8 +90,8 @@ __vt__8cM3dGAab = .data:0x00000110; // type:object size:0xC scope:global
|
|||
__vt__12dBgS_ObjAcch = .data:0x0000011C; // type:object size:0x24 scope:global
|
||||
__vt__12daE_ZS_HIO_c = .data:0x00000140; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_259_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
lbl_259_bss_8 = .bss:0x00000008; // type:object size:0x1 scope:local data:byte
|
||||
@3925 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x10 scope:global data:byte
|
||||
lbl_259_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte
|
||||
lbl_259_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x10 scope:local data:byte
|
||||
lbl_259_bss_28 = .bss:0x00000028; // type:object size:0x1 scope:local data:byte
|
||||
lbl_259_bss_29 = .bss:0x00000029; // type:object size:0x1 scope:local data:byte
|
||||
|
|
|
|||
|
|
@ -1691,7 +1691,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_e_yr"),
|
||||
ActorRel(NonMatching, "d_a_e_zh"),
|
||||
ActorRel(NonMatching, "d_a_e_zm"),
|
||||
ActorRel(NonMatching, "d_a_e_zs"),
|
||||
ActorRel(Equivalent, "d_a_e_zs"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_formation_mng"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_guard_mng"),
|
||||
ActorRel(NonMatching, "d_a_horse"),
|
||||
|
|
|
|||
|
|
@ -178,6 +178,15 @@ public:
|
|||
/* 805DB974 */ cPhs__Step create();
|
||||
/* 805DC1E8 */ daB_DS_c();
|
||||
|
||||
cXyz getHandPosR();
|
||||
cXyz getHandPosL();
|
||||
BOOL isOpening() { return mAction == ACT_OPENING_DEMO; }
|
||||
bool isDemo() { return mIsDemo; }
|
||||
bool isAppear() { return mIsAppear; }
|
||||
bool isAppearG() { return mIsAppearG; }
|
||||
bool isDead() { return mDead; }
|
||||
bool isArg0() { return arg0; }
|
||||
|
||||
private:
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorf;
|
||||
|
|
@ -321,6 +330,9 @@ private:
|
|||
/* 0x2EDC */ dMsgFlow_c mMsgFlow;
|
||||
};
|
||||
|
||||
cXyz daB_DS_c::getHandPosR() { return mHandPos[1]; }
|
||||
cXyz daB_DS_c::getHandPosL() { return mHandPos[0]; }
|
||||
|
||||
STATIC_ASSERT(sizeof(daB_DS_c) == 0x2F28);
|
||||
|
||||
class daB_DS_HIO_c {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
#ifndef D_A_E_ZS_H
|
||||
#define D_A_E_ZS_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
|
@ -12,11 +14,19 @@
|
|||
*
|
||||
*/
|
||||
class daE_ZS_c : public fopEn_enemy_c {
|
||||
/* 808330DC */ void draw();
|
||||
public:
|
||||
enum daE_ZS_Action {
|
||||
/* 0 */ ACT_APPEAR,
|
||||
/* 1 */ ACT_WAIT,
|
||||
/* 2 */ ACT_DAMAGE,
|
||||
/* 3 */ ACT_DRIVE
|
||||
};
|
||||
|
||||
/* 808330DC */ int draw();
|
||||
/* 808331E4 */ void setBck(int, u8, f32, f32);
|
||||
/* 80833290 */ void setActionMode(int, int);
|
||||
/* 8083329C */ void damage_check();
|
||||
/* 80833698 */ void mBossHandCheck();
|
||||
/* 80833698 */ u8 mBossHandCheck();
|
||||
/* 80833964 */ void executeAppear();
|
||||
/* 80833D30 */ void executeWait();
|
||||
/* 80833F1C */ void executeDamage();
|
||||
|
|
@ -24,20 +34,48 @@ class daE_ZS_c : public fopEn_enemy_c {
|
|||
/* 808342C8 */ void action();
|
||||
/* 80834478 */ void mtx_set();
|
||||
/* 80834518 */ void cc_set();
|
||||
/* 80834650 */ void execute();
|
||||
/* 808346E4 */ void _delete();
|
||||
/* 80834778 */ void CreateHeap();
|
||||
/* 80834884 */ void create();
|
||||
/* 80834650 */ int execute();
|
||||
/* 808346E4 */ int _delete();
|
||||
/* 80834778 */ int CreateHeap();
|
||||
/* 80834884 */ int create();
|
||||
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xa3c - 0x5ac];
|
||||
/* 0x5ac */ request_of_phase_process_class mPhase;
|
||||
/* 0x5b4 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x5b8 */ Z2CreatureEnemy mSound;
|
||||
/* 0x65c */ f32 field_0x65c;
|
||||
/* 0x660 */ int mAction;
|
||||
/* 0x664 */ int mMode;
|
||||
/* 0x668 */ int mResIndex;
|
||||
/* 0x66c */ u32 mShadowKey;
|
||||
/* 0x670 */ u8 field_0x670;
|
||||
/* 0x671 */ u8 field_0x671;
|
||||
/* 0x672 */ u8 field_0x672;
|
||||
/* 0x673 */ u8 field_0x673;
|
||||
/* 0x674 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x6b4 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x88c */ dCcD_Stts mStts;
|
||||
/* 0x8c8 */ dCcD_Cyl mCyl;
|
||||
/* 0xa04 */ cCcD_Obj* mpCollider;
|
||||
/* 0xa08 */ u8 field_0xa08[0xa0c - 0xa08];
|
||||
/* 0xa0c */ Z2CreatureEnemy* mpSound;
|
||||
/* 0xa10 */ u8 field_0xa10[0xa22 - 0xa10];
|
||||
/* 0xa22 */ s8 field_0xa22;
|
||||
/* 0xa23 */ u8 field_0xa23[0xa28 - 0xa23];
|
||||
/* 0xa28 */ u8 field_0xa28;
|
||||
/* 0xa29 */ u8 field_0xa29[0xa3c - 0xa29];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_ZS_c) == 0xa3c);
|
||||
|
||||
class daE_ZS_HIO_c {
|
||||
public:
|
||||
/* 808330AC */ daE_ZS_HIO_c();
|
||||
/* 80834DDC */ ~daE_ZS_HIO_c();
|
||||
/* 80834DDC */ virtual ~daE_ZS_HIO_c() {}
|
||||
|
||||
/* 0x4 */ s8 field_0x4;
|
||||
/* 0x8 */ f32 field_0x8;
|
||||
/* 0xc */ f32 field_0xc;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue