e_bs equivalent (#2556)

This commit is contained in:
TakaRikka 2025-07-26 00:48:53 -07:00 committed by GitHub
parent 70a1741977
commit 9844494edf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 934 additions and 769 deletions

View File

@ -1654,7 +1654,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_e_bg"),
ActorRel(NonMatching, "d_a_e_bi"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_bi_leaf"),
ActorRel(NonMatching, "d_a_e_bs"),
ActorRel(Equivalent, "d_a_e_bs"), # weak func order
ActorRel(Equivalent, "d_a_e_bu"),
ActorRel(Equivalent, "d_a_e_bug"), # weak func order
ActorRel(Equivalent, "d_a_e_cr"), # weak func order

View File

@ -1,6 +1,10 @@
#ifndef D_A_E_BS_H
#define D_A_E_BS_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
/**
* @ingroup actors-enemies
@ -10,16 +14,68 @@
* @details
*
*/
class e_bs_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xcfc - 0x5ac];
class e_bs_class {
public:
/* 0x000 */ fopEn_enemy_c enemy;
/* 0x5AC */ request_of_phase_process_class phase;
/* 0x5B4 */ s16 mode;
/* 0x5B6 */ u8 prm0;
/* 0x5B7 */ u8 prm1;
/* 0x5B8 */ u8 field_0x5B8[0x5C8 - 0x5B8];
/* 0x5C8 */ s16 field_0x5c8;
/* 0x5CC */ mDoExt_McaMorfSO* modelMorf;
/* 0x5D0 */ int anm;
/* 0x5D4 */ mDoExt_McaMorf* weponModelMorf;
/* 0x5D8 */ Z2CreatureEnemy sound;
/* 0x67C */ s16 counter;
/* 0x67E */ s16 action;
/* 0x680 */ f32 player_dist;
/* 0x684 */ s16 angleY_to_player;
/* 0x686 */ s16 angleX_to_player;
/* 0x688 */ f32 pl_recognize_dist;
/* 0x68C */ f32 appear_range;
/* 0x690 */ f32 field_0x690;
/* 0x694 */ s8 is_draw_shadow;
/* 0x698 */ u32 shadowId;
/* 0x69C */ s16 timers[4];
/* 0x6A4 */ s16 invulnerabilityTimer;
/* 0x6A6 */ s8 is_wep_attack;
/* 0x6A7 */ s8 field_0x6a7;
/* 0x6A8 */ s8 field_0x6a8;
/* 0x6AA */ s16 field_0x6aa;
/* 0x6AC */ s16 head_rot_y;
/* 0x6AE */ s16 field_0x6ae;
/* 0x6B0 */ s16 head_rot_z;
/* 0x6B2 */ s16 field_0x6b2;
/* 0x6B4 */ s16 field_0x6b4;
/* 0x6B8 */ f32 field_0x6b8;
/* 0x6BC */ s16 field_0x6bc;
/* 0x6BE */ u8 field_0x6BE[0x6C8 - 0x6BE];
/* 0x6C8 */ cXyz field_0x6c8;
/* 0x6D4 */ u8 field_0x6D4[0x6D8 - 0x6D4];
/* 0x6D8 */ dBgS_AcchCir acchcir;
/* 0x718 */ dBgS_ObjAcch acch;
/* 0x8F0 */ dCcD_Stts ccStts;
/* 0x92C */ dCcD_Sph ccSph[2];
/* 0xB9C */ dCcD_Sph atSph;
/* 0xCD4 */ dCcU_AtInfo atInfo;
/* 0xCF8 */ u8 HIOInit;
};
STATIC_ASSERT(sizeof(e_bs_class) == 0xcfc);
class daE_BS_HIO_c {
public:
/* 8068E12C */ daE_BS_HIO_c();
/* 8069091C */ ~daE_BS_HIO_c();
/* 8069091C */ virtual ~daE_BS_HIO_c() {}
/* 0x04 */ s8 id;
/* 0x08 */ f32 base_size;
/* 0x0C */ f32 move_speed;
/* 0x10 */ f32 rush_speed;
/* 0x14 */ f32 pl_recognize_dist;
/* 0x18 */ f32 attack_start_range;
/* 0x1C */ f32 battle_start_range;
};

File diff suppressed because it is too large Load Diff