mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-22 16:22:59 -04:00
d_a_obj_auzu (#935)
* 59% matching in .text * d_a_obj_auzu 100% for demo and retail * Named all fields of daObjAuzu::Act_c * All fields named
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user