diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_obj_auzu.h | 72 | ||||
| -rw-r--r-- | include/d/actor/d_a_ship.h | 12 | ||||
| -rw-r--r-- | include/f_pc/f_pc_manager.h | 3 |
3 files changed, 67 insertions, 20 deletions
diff --git a/include/d/actor/d_a_obj_auzu.h b/include/d/actor/d_a_obj_auzu.h index 90495ea7..e32cc5d0 100644 --- a/include/d/actor/d_a_obj_auzu.h +++ b/include/d/actor/d_a_obj_auzu.h @@ -1,42 +1,78 @@ #ifndef D_A_OBJ_AUZU_H #define D_A_OBJ_AUZU_H +#include "d/d_a_obj.h" #include "f_op/f_op_actor.h" +#include "m_Do/m_Do_ext.h" class J3DMaterial; namespace daObjAuzu { + struct Attr_c { + /* 0x00 */ f32 mRadiusMult; + /* 0x04 */ f32 mOuterActivationMult; + /* 0x08 */ f32 mInnerActivationMult; + /* 0x0C */ f32 mAnmSpeed; + }; + class Act_c : public fopAc_ac_c { public: - void attr() const {} - bool is_appear() const { return field_0x2B4 > 0.999f; } - void prm_get_appear() const {} - void prm_get_linkID() const {} - void prm_get_swSave() const {} - void prm_get_type() const {} - void prm_make_squid() {} - void to_appear() { field_0x2B8 = true; } - void to_disappear() { field_0x2B8 = false; } + enum Prm_e { + PRM_APPEAR_W = 0x1, + PRM_APPEAR_S = 0x10, + + PRM_LINK_ID_W = 0x8, + PRM_LINK_ID_S = 0x8, + + PRM_SWSAVE_W = 0x8, + PRM_SWSAVE_S = 0x0, + + PRM_TYPE_W = 0x4, + PRM_TYPE_S = 0x14 + }; + public: + const Attr_c& attr() const { return M_attr[mType]; } + bool is_appear() const { return mScaleAnimFactor > 0.999f; } + s32 prm_get_appear() const { return daObj::PrmAbstract(this, PRM_APPEAR_W, PRM_APPEAR_S); } + s32 prm_get_linkID() const { return daObj::PrmAbstract(this, PRM_LINK_ID_W, PRM_LINK_ID_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); } + static s32 prm_make_squid() { + return + 0x1 << 20 | // type + 0x1 << 16 | // appear + 0x00 << 8 | // linkID + 0xFF << 0; // swSave + } + void to_appear() { mbToAppear = true; } + void to_disappear() { mbToAppear = false; } - void solidHeapCB(fopAc_ac_c*); - void create_heap(); + bool create_heap(); cPhs_State _create(); bool _delete(); - void is_exist() const; + bool is_exist() const; void set_mtx(); void init_mtx(); void set_state_map(); void ship_whirl(); void bgm_start(); bool _execute(); - void set_material(J3DMaterial*, unsigned char); bool _draw(); - + static BOOL solidHeapCB(fopAc_ac_c*); + static void set_material(J3DMaterial*, u8); + static const char M_arcname[]; + static const Attr_c M_attr[2]; public: - /* 0x290 */ u8 field_0x290[0x2B4 - 0x290]; - /* 0x2B4 */ f32 field_0x2B4; - /* 0x2B8 */ bool field_0x2B8; - /* 0x2B9 */ u8 field_0x2B9[0x2C0 - 0x2B9]; + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ J3DModel* mpModel; + /* 0x29C */ mDoExt_btkAnm mBtkAnm; + /* 0x2B0 */ s32 mType; + /* 0x2B4 */ f32 mScaleAnimFactor; + /* 0x2B8 */ bool mbToAppear; + /* 0x2B9 */ bool mbIsExist; + /* 0x2BA */ bool mbBgmStarted; + /* 0x2BB */ /* 1 byte of alignment padding */ + /* 0x2BC */ fpc_ProcID mKytagPcId; }; // Size: 0x2C0 }; diff --git a/include/d/actor/d_a_ship.h b/include/d/actor/d_a_ship.h index 596fbb99..47d5651c 100644 --- a/include/d/actor/d_a_ship.h +++ b/include/d/actor/d_a_ship.h @@ -186,8 +186,16 @@ public: void onShortHitFlg() { onStateFlg(daSFLG_UNK20_e); } void onStateFlg(daSHIP_SFLG flag) { mStateFlag |= flag; } void onTornadoFlg(u32 tornadoID) { mTornadoID = tornadoID; } - void onWhirlFlg(u32, s16) {} - void onWhirlFlgDirect(u32, s16) {} + void onWhirlFlg(u32 whirlID, s16 linkID) { + mWhirlID = whirlID; + m03B2 = linkID; + m0352 = 1; + } + void onWhirlFlgDirect(u32 whirlID, s16 linkID) { + mWhirlID = whirlID; + m03B2 = linkID; + m0352 = 0; + } void setAtnPos(const cXyz* pPos) { onStateFlg(daSFLG_UNK1000000_e); m1068 = *pPos; diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h index 5bbcdf60..8c5e6106 100644 --- a/include/f_pc/f_pc_manager.h +++ b/include/f_pc/f_pc_manager.h @@ -18,6 +18,9 @@ typedef int (*fpcM_DrawIteraterFunc)(void*, void*); inline fpc_ProcID fpcM_GetID(void* pProc) { return pProc != NULL ? ((base_process_class*)pProc)->mBsPcId : fpcM_ERROR_PROCESS_ID_e; } +inline BOOL fpcM_IsErrorID(fpc_ProcID id) { + return id == fpcM_ERROR_PROCESS_ID_e ? TRUE : FALSE; +} inline s16 fpcM_GetName(void* pProc) { return ((base_process_class*)pProc)->mProcName; } |
