d_a_guard_mng OK, d_a_obj_smoke OK, d_a_tag_smk_emt OK, d_a_hitobj OK (#298)

* d_a_guard_mng OK

* d_a_obj_smoke OK

* d_a_tag_smk_emt OK

* d_a_hitobj attempt

* fixes

* rm comment

* cc_sph_src

* rename and move mGuardDataTbl
This commit is contained in:
Pheenoh
2023-02-20 00:53:33 -07:00
committed by GitHub
parent 8471d1d6cc
commit fa1f47f7a1
40 changed files with 422 additions and 1477 deletions
+65 -1
View File
@@ -1,6 +1,70 @@
#ifndef D_A_GUARD_MNG_H
#define D_A_GUARD_MNG_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h"
#include "d/com/d_com_inf_game.h"
class daGuardMng_c : public fopAc_ac_c {
public:
void countMerchantNum() {
mMerchantNum++;
}
int execute() {
static u32 const mGuardDataTbl[2] = {
0x00000200, 0x00000201,
};
if (!daPy_py_c::i_checkNowWolf() || field_0x573 >= mLimitNum) {
return 1;
} else {
if (field_0x571 < mMerchantNum) {
field_0x571 = mMerchantNum;
}
checkMerchantNum();
if (mpTagGuard) {
if (field_0x571 > mMerchantNum && 3 < (field_0x571 - mMerchantNum)) {
mpTagGuard->createGuard(mGuardDataTbl[0]);
field_0x573++;
field_0x571 = mMerchantNum;
dComIfGs_onSaveDunSwitch(0x3c);
}
}
}
return 1;
}
u8 getLimitNum() {
return fopAcM_GetParam(this) & 0xff;
}
void create_init() {
mLimitNum = getLimitNum();
field_0x573 = 0;
}
int create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daGuardMng_c();
fopAcM_OnCondition(this, 8);
}
create_init();
return cPhs_COMPLEATE_e;
}
/* 80837B9C */ u8 checkMerchantNum();
/* 80837BEC */ void checkAppearTag(daTagGuard_c*);
/* 0x568 */ daTagGuard_c* mpTagGuard;
/* 0x56C */ f32 field_0x56c;
/* 0x570 */ u8 mMerchantNum;
/* 0x571 */ u8 field_0x571;
/* 0x572 */ u8 mLimitNum;
/* 0x573 */ u8 field_0x573;
};
#endif /* D_A_GUARD_MNG_H */
+12 -1
View File
@@ -1,6 +1,17 @@
#ifndef D_A_HITOBJ_H
#define D_A_HITOBJ_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
class hitobj_class : public fopAc_ac_c {
public:
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 field_0x570;
/* 0x571 */ u8 field_0x571;
/* 0x572 */ s16 field_0x572;
/* 0x574 */ dCcD_Stts field_0x574;
/* 0x5B0 */ dCcD_Sph field_0x5b0;
};
#endif /* D_A_HITOBJ_H */
@@ -1,6 +1,23 @@
#ifndef D_A_OBJ_SMOKE_H
#define D_A_OBJ_SMOKE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
class daObjSmoke_c : public fopAc_ac_c {
public:
u8 getSwbit() {
return fopAcM_GetParamBit(this,0,8);
}
/* 80CDCE78 */ void initBaseMtx();
/* 80CDCE98 */ void setBaseMtx();
/* 80CDCEF0 */ int Create();
/* 80CDCF9C */ int create();
/* 80CDD004 */ int execute();
/* 80CDD0B8 */ int _delete();
/* 0x568 */ JPABaseEmitter* mParticle;
};
#endif /* D_A_OBJ_SMOKE_H */
@@ -1,6 +1,21 @@
#ifndef D_A_TAG_SMK_EMT_H
#define D_A_TAG_SMK_EMT_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
class daTagSmkEmt_c : public fopAc_ac_c {
public:
/* 80D612D8 */ daTagSmkEmt_c();
/* 80D61324 */ virtual ~daTagSmkEmt_c();
/* 80D61384 */ int create();
/* 80D613DC */ int Delete();
/* 80D61400 */ int draw();
/* 80D61408 */ int execute();
/* 80D61410 */ void createSmkEmt();
/* 80D61500 */ void deleteSmkEmt();
/* 0x56C */ JPABaseEmitter* mParticles[3];
};
#endif /* D_A_TAG_SMK_EMT_H */