d_a_bpw - 95% matching (#890)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
This commit is contained in:
123456789758
2025-09-18 12:45:26 -04:00
committed by GitHub
parent c443b52572
commit ae94c57e73
8 changed files with 4143 additions and 232 deletions
+105 -113
View File
@@ -6,167 +6,159 @@
#include "d/d_bg_s_acch.h"
#include "d/d_particle.h"
class bpw_class : public fopEn_enemy_c {
public:
/* 0x2AC */ u8 m2AC[0x2B4 - 0x2AC];
/* 0x2B4 */ mDoExt_McaMorf* m2B4;
struct bpw_class {
enum Actor_Type_e {
Actor_Type_BODY_e = 0,
Actor_Type_KANTERA_e = 1,
Actor_Type_DAMAGE_BALL_e = 2,
Actor_Type_TORITUKI_e = 3,
};
enum Damage_Action_e {
Damage_Action_LINE_e = 0,
Damage_Action_DAMAGE_BALL_e = 1,
};
enum Action_e {
Action_MOVE_DOUSA_e = 0,
Action_ATTACK_KOUGEKI_e = 1,
Action_BODY_DOWN_KARADA_TAORE_e = 2,
Action_DAMAGE_e = 3,
Action_SEPARATION_BUNRI_DOUSA_e = 4,
Action_START_DEMO_e = 20,
};
enum Action_State_Type_e {
Action_State_DAMAGE_CARRIED_e = 0x54,
Action_State_DAMAGE_THROWN_e = 0x55,
Action_State_DAMAGE_HIT_e = 0x65,
Action_State_SEPARATE_BUNRI_DOUSA_INIT_e = 0x6E,
Action_State_SEPARATE_BUNRI_DOUSA_EXECUTE_e = 0x6F,
Action_State_SEPARATE_BUNRI_DOUSA_END_INIT_e = 0x72,
Action_State_SEPARATE_BUNRI_DOUSA_END_GATHER_e = 0x73,
Action_State_SEPARATE_BUNRI_DOUSA_END_GROW_e = 0x74,
Action_State_SEPARATE_BUNRI_DOUSA_END_FINISH_e = 0x75,
};
/* 0x000 */ fopEn_enemy_c actor;
/* 0x2AC */ request_of_phase_process_class m2AC;
/* 0x2B4 */ mDoExt_McaMorf* mpAnim;
/* 0x2B8 */ u8 m2B8[0x2BC - 0x2B8];
/* 0x2BC */ mDoExt_brkAnm* mBrkAnim;
/* 0x2C0 */ mDoExt_baseAnm* m2C0;
/* 0x2C4 */ mDoExt_baseAnm* m2C4;
/* 0x2C8 */ mDoExt_baseAnm* m2C8;
/* 0x2CC */ mDoExt_baseAnm* m2CC;
/* 0x2C0 */ mDoExt_brkAnm* mKanteraAnim;
/* 0x2C4 */ mDoExt_brkAnm* m2C4;
/* 0x2C8 */ mDoExt_brkAnm* m2C8;
/* 0x2CC */ mDoExt_brkAnm* m2CC;
/* 0x2D0 */ mDoExt_brkAnm* m2D0;
/* 0x2D4 */ u8 m2D4[0x304 - 0x2D4];
/* 0x2D4 */ Mtx m2D4;
/* 0x304 */ cXyz m304[3];
/* 0x328 */ cXyz m328[3];
/* 0x34C */ f32 m34C;
/* 0x350 */ f32 m350;
/* 0x354 */ node_class* m354;
/* 0x358 */ f32 m358;
/* 0x35C */ f32 m35C;
/* 0x360 */ f32 m360;
/* 0x34C */ cXyz mBodyPos;
/* 0x358 */ cXyz m358;
/* 0x364 */ u8 m364[0x370 - 0x364];
/* 0x370 */ cXyz m370;
/* 0x37C */ u32 m37C;
/* 0x380 */ u32 m380;
/* 0x384 */ u32 m384;
/* 0x37C */ cXyz mChildActorPos;
/* 0x388 */ f32 m388;
/* 0x38C */ u8 m38C[0x390 - 0x38C];
/* 0x38C */ f32 m38C;
/* 0x390 */ f32 m390;
/* 0x394 */ u8 m394[0x3A0 - 0x394];
/* 0x3A0 */ cXyz z;
/* 0x3AC */ f32 m3AC;
/* 0x3B0 */ u32 m3B0;
/* 0x3B4 */ f32 m3B4;
/* 0x3B8 */ f32 m3B8;
/* 0x3BC */ f32 m3BC;
/* 0x3C0 */ f32 m3C0;
/* 0x3C4 */ u8 m3C4[0x3D6 - 0x3C4];
/* 0x394 */ cXyz m394;
/* 0x3A0 */ cXyz m3A0;
/* 0x3AC */ cXyz m3AC;
/* 0x3B8 */ cXyz m3B8;
/* 0x3C4 */ cXyz m3C4;
/* 0x3D0 */ csXyz mKanteraDousaRot;
/* 0x3D6 */ s16 m3D6;
/* 0x3D8 */ s16 m3D8;
/* 0x3DA */ u16 m3DA;
/* 0x3DC */ u8 mUnknownParam1;
/* 0x3DC */ u8 mType;
/* 0x3DD */ u8 mUnknownParam2;
/* 0x3DE */ u8 mUnknownParam3;
/* 0x3DE */ u8 mLightState;
/* 0x3DF */ u8 m3DF;
/* 0x3E0 */ u8 m3E0;
/* 0x3E1 */ u8 m3E1[0x3E2 - 0x3E1];
/* 0x3E2 */ s8 m3E2;
/* 0x3E3 */ u8 m3E3[0x3E6 - 0x3E3];
/* 0x3E1 */ u8 m3E1;
/* 0x3E2 */ u8 m3E2;
/* 0x3E3 */ u8 m3E3[0x3E4 - 0x3E3];
/* 0x3E4 */ u8 m3E4;
/* 0x3E5 */ u8 m3E5;
/* 0x3E6 */ u8 m3E6;
/* 0x3E7 */ s8 m3E7;
/* 0x3E8 */ u8 m3E8[0x3EB - 0x3E8];
/* 0x3EB */ u8 m3EB;
/* 0x3E7 */ u8 m3E7;
/* 0x3E8 */ u8 m3E8;
/* 0x3E9 */ u8 m3E9;
/* 0x3EA */ u8 m3EA;
/* 0x3EB */ u8 mKankyouHendouState;
/* 0x3EC */ f32 m3EC;
/* 0x3F0 */ f32 m3F0;
/* 0x3F4 */ s16 m3F4;
/* 0x3F6 */ s16 m3F6;
/* 0x3F8 */ int m3F8;
/* 0x3FC */ int m3FC;
/* 0x400 */ u32 m400;
/* 0x404 */ int m404;
/* 0x408 */ u16 m408;
/* 0x3FC */ fpc_ProcID m3FC;
/* 0x400 */ fpc_ProcID m400;
/* 0x404 */ fpc_ProcID m404;
/* 0x408 */ s16 m408;
/* 0x40A */ u8 m40A[0x40C - 0x40A];
/* 0x40C */ cXyz m40C;
/* 0x418 */ u32 m418;
/* 0x41C */ u32 m41C;
/* 0x420 */ u32 m420;
/* 0x424 */ f32 m424;
/* 0x428 */ f32 m428;
/* 0x42C */ f32 m42C;
/* 0x418 */ cXyz m418;
/* 0x424 */ cXyz m424;
/* 0x430 */ u8 m430[0x43C - 0x430];
/* 0x43C */ u32 m43C;
/* 0x43C */ f32 m43C;
/* 0x440 */ f32 m440;
/* 0x444 */ u16 m444;
/* 0x446 */ s16 m446;
/* 0x444 */ s16 mBodyAction;
/* 0x446 */ s16 mActionState;
/* 0x448 */ u8 m448[0x44C - 0x448];
/* 0x44C */ u16 m44C;
/* 0x44C */ s16 mAttWaitTimer;
/* 0x44E */ s16 mSomeCountdownTimers[10];
/* 0x462 */ s16 m462;
/* 0x464 */ u16 m464;
/* 0x464 */ s16 m464;
/* 0x466 */ u8 m466[0x474 - 0x466];
/* 0x474 */ s16 m474;
/* 0x476 */ s16 m476;
/* 0x478 */ u16 m478;
/* 0x47A */ u16 m47A;
/* 0x478 */ s16 m478;
/* 0x47A */ s16 m47A;
/* 0x47C */ s16 m47C;
/* 0x47E */ s16 m47E;
/* 0x480 */ u16 m480;
/* 0x480 */ s16 m480;
/* 0x482 */ s16 m482;
/* 0x484 */ s16 m484;
/* 0x486 */ u8 m486[0x48C - 0x486];
/* 0x486 */ u8 m486[0x488 - 0x486];
/* 0x488 */ f32 m488;
/* 0x48C */ f32 m48C;
/* 0x490 */ u32 m490;
/* 0x490 */ f32 m490;
/* 0x494 */ f32 m494;
/* 0x498 */ u32 m498;
/* 0x49C */ u32 m49C;
/* 0x4A0 */ u32 m4A0;
/* 0x4A4 */ u32 m4A4;
/* 0x498 */ f32 m498;
/* 0x49C */ f32 m49C;
/* 0x4A0 */ f32 m4A0;
/* 0x4A4 */ f32 m4A4;
/* 0x4A8 */ f32 m4A8;
/* 0x4AC */ int mChildPoeIds[15];
/* 0x4E8 */ u8 m4E8[0x4EC - 0x4E8];
/* 0x4EC */ u32 m4EC;
/* 0x4F0 */ u32 m4F0;
/* 0x4F4 */ u32 m4F4;
/* 0x4F8 */ u16 m4F8;
/* 0x4FA */ u16 m4FA;
/* 0x4FC */ u16 m4FC;
/* 0x4FE */ u8 m4FE[0x500 - 0x4FE];
/* 0x500 */ u32 m500;
/* 0x504 */ u32 m504;
/* 0x508 */ u8 m508[0x50C - 0x508];
/* 0x4E8 */ u32 m4E8;
/* 0x4EC */ LIGHT_INFLUENCE m4EC;
/* 0x50C */ dPa_smokeEcallBack m50C;
/* 0x52C */ dPa_followEcallBack m52C;
/* 0x540 */ dPa_followEcallBack m540;
/* 0x554 */ dPa_followEcallBack m554;
/* 0x568 */ dPa_followEcallBack m568;
/* 0x57C */ dPa_followEcallBack m57C;
/* 0x568 */ dPa_followEcallBack mFire1Dousa_Pa_followEcallBack;
/* 0x57C */ dPa_followEcallBack mFire1Dousa_Pa_followEcallBack2;
/* 0x590 */ dPa_followEcallBack m590;
/* 0x5A4 */ dPa_followEcallBack m5A4;
/* 0x5B8 */ dPa_followEcallBack m5B8;
/* 0x5A4 */ dPa_followEcallBack mFireDousa2_Pa_followEcallBack;
/* 0x5B8 */ dPa_followEcallBack mFireDousa2_Pa_followEcallBack2;
/* 0x5CC */ dPa_followEcallBack m5CC;
/* 0x5E0 */ dPa_smokeEcallBack m5E0[4];
/* 0x660 */ f32 m660;
/* 0x664 */ f32 m664;
/* 0x668 */ f32 m668;
/* 0x66C */ u8 m66C[0x678 - 0x66C];
/* 0x678 */ u16 m678;
/* 0x67A */ s16 m67A;
/* 0x67C */ s16 m67C;
/* 0x67E */ u8 m67E[0x684 - 0x67E];
/* 0x660 */ cXyz mFire1DousaPos;
/* 0x66C */ cXyz m66C;
/* 0x678 */ csXyz mFire1DousaRot;
/* 0x67E */ s16 m67E;
/* 0x680 */ s16 m680;
/* 0x67E */ u8 m682[0x684 - 0x682];
/* 0x684 */ s16 m684;
/* 0x686 */ u8 m686[0x688 - 0x686];
/* 0x688 */ dBgS_AcchCir m688;
/* 0x6C8 */ dBgS_Acch m6C8;
/* 0x88C */ u8 m88C[0x8A4 - 0x88C];
/* 0x8A4 */ u32 m8A4;
/* 0x8A8 */ dCcD_GStts m8A8;
/* 0x8C8 */ dCcD_GObjInf m8C8;
/* 0x9C0 */ u8 m9C0[0x9D8 - 0x9C0];
/* 0x9D8 */ u32 m9D8;
/* 0x9DC */ u32 m9DC;
/* 0x9E0 */ u8 m9E0[0x9F0 - 0x9E0];
/* 0x9F0 */ u32 m9F0;
/* 0x9F4 */ dCcD_GObjInf m9F4;
/* 0xAEC */ u8 mAEC[0xB04 - 0xAEC];
/* 0xB04 */ u32 mB04;
/* 0xB08 */ u32 mB08;
/* 0xB0C */ u8 mB0C[0xB1C - 0xB0C];
/* 0xB1C */ u32 mB1C;
/* 0xB20 */ dCcD_GObjInf mB20;
/* 0xC18 */ u8 mC18[0xC30 - 0xC18];
/* 0xC30 */ u32 mC30;
/* 0xC34 */ u32 mC34;
/* 0xC38 */ u8 mC38[0xC48 - 0xC38];
/* 0xC48 */ u32 mC48;
/* 0xC4C */ dCcD_GObjInf mC4C;
/* 0xD44 */ u8 mD44[0xD5C - 0xD44];
/* 0xD5C */ u32 mD5C;
/* 0xD60 */ u32 mD60;
/* 0xD64 */ u8 mD64[0xD74 - 0xD64];
/* 0xD74 */ u32 mD74;
/* 0xD78 */ u8 mD78[0xD80 - 0xD78];
/* 0x688 */ dBgS_AcchCir mAcchCir;
/* 0x6C8 */ dBgS_ObjAcch mAcch;
/* 0x88C */ dCcD_Stts mStts;
/* 0x8C8 */ dCcD_Sph mBodyCoSph;
/* 0x9F4 */ dCcD_Sph mBodyAtSph;
/* 0xB20 */ dCcD_Sph mKanteraCoSph;
/* 0xC4C */ dCcD_Sph mDamageBallCoSph;
/* 0xD78 */ mDoExt_invisibleModel mD78;
};
#endif /* D_A_BPW_H */
+1 -1
View File
@@ -568,7 +568,7 @@ void end(bmd_class* i_this) {
mDoAud_seStart(JA_SE_CM_BKM_END_FLW_DIE, &actor->current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
}
if (i_this->mB76 == REG0_S(6) + 0x276) {
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
dComIfGs_onStageBossEnemy();
fopAcM_createWarpFlower(&actor->current.pos, 0, fopAcM_GetRoomNo(actor), 0);
i_this->m302 = 2;
i_this->mB71 = 0;
+1 -1
View File
@@ -840,7 +840,7 @@ static cPhs_State daBmdfoot_Create(fopAc_ac_c* a_this) {
}
a_this->attention_info.position.y = -20000.0f;
a_this->eyePos.y = -20000.0f;
if (!(g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
if (!(dComIfGs_isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
i_this->m2BA = 10;
} else {
i_this->mBC8 = 1;
+1 -1
View File
@@ -796,7 +796,7 @@ static cPhs_State daBmdhand_Create(fopAc_ac_c* a_this) {
i_this->m6F8.Set(cc_sph_src);
i_this->m6F8.SetStts(&i_this->m590);
i_this->m5CC.SetR(90.0f);
if (!(g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
if (!(dComIfGs_isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
i_this->m2BA = 3;
}
return cPhs_COMPLEATE_e;
+4028 -109
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2395,7 +2395,7 @@ void demo_camera(bst_class* i_this) {
i_this->mDamage = 10;
i_this->mRoomState = 4;
i_this->m2ED0 = 1.0f;
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
dComIfGs_onStageBossEnemy();
local_40.x = 0.0f;
local_40.y = 0.0f;
local_40.z = 0.0f;
+2 -2
View File
@@ -2100,7 +2100,7 @@ void demo_camera(btd_class* i_this) {
}
if (i_this->m6E1A == 0x118) {
static_center_pos.set(0.0f, -50.0f, 0.0f);
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
dComIfGs_onStageBossEnemy();
fopAcM_createWarpFlower(&static_center_pos, 0, fopAcM_GetRoomNo(i_this), 0);
i_this->m6E90 = 0;
}
@@ -2894,7 +2894,7 @@ static cPhs_State daBtd_Create(fopAc_ac_c* a_this) {
dKy_efplight_set(&i_this->m60B0);
i_this->health = 10;
i_this->max_health = 10;
if ((g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossDemo()) || (dComIfGp_getStartStageName()[0] == 'X')) {
if ((dComIfGs_isStageBossDemo()) || (dComIfGp_getStartStageName()[0] == 'X')) {
dComIfGs_offTmpBit(0x480);
i_this->m6E80 = -50.0f;
i_this->m6E84 = 0.0f;
+4 -4
View File
@@ -1683,7 +1683,7 @@ void demo_camera(bwd_class* i_this) {
mDoAud_bgmStart(JA_BGM_RANE_BATTLE);
}
i_this->m3C50 = 1;
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
dComIfGs_onStageBossEnemy();
}
break;
case 0x3C:
@@ -1813,7 +1813,7 @@ void demo_camera(bwd_class* i_this) {
MtxPosition(&local_98, &i_this->m3C28);
if ((int)i_this->m3C20 == REG0_S(6) + 0x208) {
i_this->m17C4 = 200;
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
dComIfGs_onStageBossEnemy();
local_98.x = 0.0f;
local_98.y = 300.0f;
local_98.z = 0.0f;
@@ -2612,7 +2612,7 @@ static cPhs_State daBwd_Create(fopAc_ac_c* a_this) {
i_this->mCcD_Sph_Array5[i].SetStts(&i_this->mCcD_Stts);
i_this->mCcD_Sph_Array5[i].Set(bero_co_sph_src);
}
if (!(g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
if (!(dComIfGs_isStageBossDemo()) && (dComIfGp_getStartStageName()[0] != 'X')) {
actor->current.pos.x = 0.0f;
actor->current.pos.y = -20000.0f;
actor->current.pos.z = 0.0f;
@@ -2622,7 +2622,7 @@ static cPhs_State daBwd_Create(fopAc_ac_c* a_this) {
fopAcM_OnStatus(actor, fopAcStts_SHOWMAP_e);
i_this->m3C50 = 1;
} else {
if ((g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossEnemy()) && (dComIfGp_getStartStageName()[0] != 'X')) {
if ((dComIfGs_isStageBossEnemy()) && (dComIfGp_getStartStageName()[0] != 'X')) {
i_this->m18AE = 0xd;
actor->current.pos.x = 0.0f;
actor->current.pos.y = -20000.0f;