summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-10-17 07:57:17 +0300
committerGitHub <noreply@github.com>2024-10-16 21:57:17 -0700
commit2aa441e40bcc0a8fd369e41a69729e6c34d8c3b2 (patch)
treedc3bd12acf53f3a1bd6af28ebc6f18871975a04e /include
parentec07abb09bc40293ca18b673678348520bf0473d (diff)
daObjFPillar2_c OK (#2214)
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_obj_firepillar2.h65
1 files changed, 58 insertions, 7 deletions
diff --git a/include/d/actor/d_a_obj_firepillar2.h b/include/d/actor/d_a_obj_firepillar2.h
index 8b81ff07d5..f90067a746 100644
--- a/include/d/actor/d_a_obj_firepillar2.h
+++ b/include/d/actor/d_a_obj_firepillar2.h
@@ -1,6 +1,10 @@
#ifndef D_A_OBJ_FIREPILLAR2_H
#define D_A_OBJ_FIREPILLAR2_H
+#include "JSystem/JParticle/JPAEmitter.h"
+#include "SSystem/SComponent/c_phase.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -13,12 +17,25 @@
*/
class daObjFPillar2_c : public fopAc_ac_c {
public:
+ typedef void (daObjFPillar2_c::*actionFunc)();
+
+ enum Kind {
+ KIND_PIPE_FIRE,
+ KIND_MAGMA_POLE,
+ };
+
+ enum Action {
+ ACTION_OFF,
+ ACTION_ON_WAIT,
+ ACTION_ON,
+ };
+
/* 80BE9CD8 */ void initBaseMtx();
/* 80BE9D5C */ void setBaseMtx();
- /* 80BE9DDC */ void Create();
- /* 80BEA034 */ void CreateHeap();
- /* 80BEA228 */ void create();
- /* 80BEA584 */ void execute();
+ /* 80BE9DDC */ int Create();
+ /* 80BEA034 */ int CreateHeap();
+ /* 80BEA228 */ int create();
+ /* 80BEA584 */ int execute();
/* 80BEA734 */ void action();
/* 80BEA808 */ void actionOffInit();
/* 80BEA854 */ void actionOff();
@@ -26,11 +43,45 @@ public:
/* 80BEAAE4 */ void actionOnWait();
/* 80BEAC68 */ void actionOnInit();
/* 80BEADD0 */ void actionOn();
- /* 80BEB1B4 */ void draw();
- /* 80BEB278 */ void _delete();
+ /* 80BEB1B4 */ int draw();
+ /* 80BEB278 */ int _delete();
+
+ u8 getKind() { return (field_0x97a >> 4) & 0xf; }
+ u8 getSize() { return (field_0x97a) & 0xf; }
+ u8 getArg0() { return fopAcM_GetParamBit(this,8,8); }
+ u8 getSwNo() { return fopAcM_GetParamBit(this,0,8); }
private:
- /* 0x568 */ u8 field_0x568[0x9ec - 0x568];
+ /* 0x568 */ request_of_phase_process_class mPhase;
+ /* 0x570 */ J3DModel* mModel;
+ /* 0x574 */ mDoExt_bckAnm* mBck;
+ /* 0x578 */ mDoExt_btkAnm* mBtk;
+ /* 0x57C */ dBgS_ObjAcch mAcch;
+ /* 0x754 */ dBgS_AcchCir mAcchCir;
+ /* 0x794 */ dCcD_Stts mStts;
+ /* 0x7D0 */ dCcD_Cps mCps;
+ /* 0x914 */ Mtx mMtx;
+ /* 0x944 */ cXyz field_0x944;
+ /* 0x950 */ cXyz field_0x950;
+ /* 0x95C */ cM3dGCpsS field_0x95c;
+ /* 0x978 */ u16 mActionTimer;
+ /* 0x97A */ u16 field_0x97a;
+ /* 0x97C */ s16 field_0x97c;
+ /* 0x97E */ bool mInitAngles;
+ /* 0x97F */ u8 mAction;
+ /* 0x980 */ JPABaseEmitter* field_0x980;
+ /* 0x984 */ JPABaseEmitter* field_0x984;
+ /* 0x988 */ JPABaseEmitter* mPipeFireEmitters[3];
+ /* 0x994 */ f32 mPipeFireRate;
+ /* 0x998 */ f32 mPipeFireDirectionalSpeed;
+ /* 0x99C */ f32 mPipeFireScale;
+ /* 0x9A0 */ f32 mPipeFireLifeTime;
+ /* 0x9A4 */ JPABaseEmitter* mMagmaPoleEmitters[3];
+ /* 0x9B0 */ cXyz mYoganScale;
+ /* 0x9BC */ Z2SoundObjSimple mSoundObj;
+ /* 0x9DC */ cXyz mSoundPos;
+ /* 0x9E8 */ s8 mSoundDir;
+ /* 0x9E9 */ u8 mFirePipeTimer;
};
STATIC_ASSERT(sizeof(daObjFPillar2_c) == 0x9ec);