mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-29 08:42:53 -04:00
157 lines
4.6 KiB
C++
157 lines
4.6 KiB
C++
#ifndef D_A_STONE2_H
|
|
#define D_A_STONE2_H
|
|
|
|
#include "d/d_bg_s_movebg_actor.h"
|
|
#include "d/d_cc_d.h"
|
|
#include "d/d_bg_s_acch.h"
|
|
#include "d/d_a_obj.h"
|
|
#include "d/d_particle.h"
|
|
|
|
namespace daStone2 {
|
|
struct Attr_c {
|
|
/* 0x00 */ const char* resName;
|
|
/* 0x04 */ s16 m04;
|
|
/* 0x06 */ s16 resIndex;
|
|
/* 0x08 */ u32 heapSize;
|
|
/* 0x0C */ u8 m0C;
|
|
/* 0x0E */ s16 m0E;
|
|
/* 0x10 */ s16 m10;
|
|
/* 0x12 */ s16 m12;
|
|
/* 0x14 */ s16 m14;
|
|
/* 0x18 */ u32 m18;
|
|
/* 0x1C */ u32 m1C;
|
|
/* 0x20 */ s16 m20;
|
|
/* 0x22 */ s16 m22;
|
|
/* 0x24 */ s16 m24;
|
|
/* 0x26 */ s16 m26;
|
|
/* 0x28 */ s16 m28;
|
|
/* 0x2A */ s16 m2A;
|
|
/* 0x2C */ s16 m2C;
|
|
/* 0x2E */ s16 m2E;
|
|
/* 0x30 */ f32 m30;
|
|
/* 0x34 */ f32 m34;
|
|
/* 0x38 */ f32 m38;
|
|
/* 0x3C */ f32 m3C;
|
|
/* 0x40 */ f32 m40;
|
|
/* 0x44 */ f32 m44;
|
|
/* 0x48 */ f32 m48;
|
|
/* 0x4C */ f32 m4C;
|
|
/* 0x50 */ s16 m50;
|
|
/* 0x54 */ f32 m54;
|
|
/* 0x58 */ f32 m58;
|
|
/* 0x5C */ f32 m5C;
|
|
}; // size = 0x60
|
|
|
|
class Act_c : public dBgS_MoveBgActor {
|
|
enum Prm_e {
|
|
PRM_ITEMNO_W = 6,
|
|
PRM_ITEMNO_S = 0,
|
|
|
|
PRM_SWSAVE_W = 8,
|
|
PRM_SWSAVE_S = 8,
|
|
|
|
PRM_ITEMSAVE_W = 7,
|
|
PRM_ITEMSAVE_S = 16,
|
|
|
|
PRM_TYPE_W = 3,
|
|
PRM_TYPE_S = 24,
|
|
|
|
PRM_CULL_W = 3,
|
|
PRM_CULL_S = 28,
|
|
|
|
PRM_SHADOW_W = 1,
|
|
PRM_SHADOW_S = 31,
|
|
};
|
|
|
|
public:
|
|
Act_c();
|
|
virtual ~Act_c() {}
|
|
|
|
const Attr_c& attr() { return M_attr[m644]; }
|
|
s32 prm_get_cull() const { return daObj::PrmAbstract(this, PRM_CULL_W, PRM_CULL_S); }
|
|
s32 prm_get_itemNo() const { return daObj::PrmAbstract(this, PRM_ITEMNO_W, PRM_ITEMNO_S); }
|
|
s32 prm_get_itemSave() const { return daObj::PrmAbstract(this, PRM_ITEMSAVE_W, PRM_ITEMSAVE_S); }
|
|
bool prm_get_shadow() const { return daObj::PrmAbstract(this, PRM_SHADOW_W, PRM_SHADOW_S); }
|
|
s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
|
|
s32 prm_get_type() const { return daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); }
|
|
u8 prmZ_get_evId() const { return mPrmZ & 0xFF; }
|
|
|
|
void prmZ_init();
|
|
bool is_switch() const;
|
|
void on_switch() const;
|
|
virtual BOOL CreateHeap();
|
|
virtual BOOL Create();
|
|
bool chk_appear();
|
|
cPhs_State Mthd_Create();
|
|
virtual BOOL Delete();
|
|
BOOL Mthd_Delete();
|
|
void set_mtx();
|
|
void init_mtx();
|
|
void cull_set_draw();
|
|
void cull_set_move();
|
|
void damaged(int);
|
|
bool damage_cc_proc();
|
|
bool damage_bg_proc();
|
|
bool damage_bg_proc_directly();
|
|
void eff_m_break(unsigned short, unsigned short);
|
|
void eff_b_break(unsigned short);
|
|
void eff_break_ebrock();
|
|
void eff_break_ekao();
|
|
void eff_break_ebrock2();
|
|
void eff_lift_smoke_start();
|
|
void eff_lift_smoke_end();
|
|
void eff_lift_smoke_remove();
|
|
void set_senv(int, int) const;
|
|
void cam_lockoff() const;
|
|
void mode_wait_init();
|
|
void mode_wait();
|
|
void mode_carry_init();
|
|
void mode_carry();
|
|
void mode_drop_init();
|
|
void mode_drop();
|
|
void mode_fine_init();
|
|
void mode_fine();
|
|
bool mode_proc_call();
|
|
void demo_non_init();
|
|
void demo_non();
|
|
void demo_req_init();
|
|
void demo_req();
|
|
void demo_run_init();
|
|
void demo_run();
|
|
void demo_proc_call();
|
|
virtual BOOL Execute(Mtx**);
|
|
void draw_shadow();
|
|
virtual BOOL Draw();
|
|
|
|
static Mtx M_tmp_mtx;
|
|
static const dCcD_SrcCyl M_cyl_src;
|
|
static const Attr_c M_attr[5];
|
|
|
|
public:
|
|
/* 0x2C8 */ request_of_phase_process_class mPhase;
|
|
/* 0x2D0 */ J3DModel* mpModel;
|
|
/* 0x2D4 */ dBgS_ObjAcch mAcch;
|
|
/* 0x498 */ dBgS_AcchCir mAcchCir;
|
|
/* 0x4D8 */ dCcD_Stts mStts;
|
|
/* 0x514 */ dCcD_Cyl mCyl;
|
|
/* 0x644 */ s32 m644;
|
|
/* 0x648 */ s32 m648;
|
|
/* 0x64C */ s32 m64C;
|
|
/* 0x650 */ s16 m650;
|
|
/* 0x652 */ u16 mPrmZ;
|
|
/* 0x654 */ s16 m654;
|
|
/* 0x656 */ bool m656;
|
|
/* 0x657 */ u8 m657;
|
|
/* 0x658 */ u8 m658;
|
|
/* 0x659 */ bool m659;
|
|
/* 0x65A */ u8 m65A;
|
|
/* 0x65C */ dPa_smokeEcallBack m65C;
|
|
/* 0x67C */ cXyz m67C;
|
|
/* 0x688 */ dPa_smokeEcallBack m688;
|
|
/* 0x6A8 */ u8 m6A8;
|
|
/* 0x6A9 */ u8 m6A9;
|
|
}; // size = 0x6AC
|
|
};
|
|
|
|
#endif /* D_A_STONE2_H */
|