Files
tww/include/d/actor/d_a_obj_hsehi1.h
T
2026-08-24 17:38:54 -04:00

133 lines
3.9 KiB
C++

#ifndef D_A_OBJ_HSEHI1_H
#define D_A_OBJ_HSEHI1_H
#include "SSystem/SComponent/c_lib.h"
#include "d/d_bg_s_acch.h"
#include "d/d_bg_w.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_hostIO.h"
class JPABaseEmitter;
class daObj_hsh_c : public fopAc_ac_c {
public:
typedef BOOL (daObj_hsh_c::*ActionFunc)(void*);
typedef void (daObj_hsh_c::*EventActionInitFunc)(int evtStaffId);
typedef BOOL (daObj_hsh_c::*EventActionFunc)(int evtStaffId);
~daObj_hsh_c();
BOOL isEventAccept() { return cLib_checkBit<u32>(mFlags, 1); }
void onEventAccept() { cLib_onBit<u32>(mFlags, 1); }
void offEventAccept() { cLib_offBit<u32>(mFlags, 1); }
BOOL isTactCancel() { return cLib_checkBit<u32>(mFlags, 2); }
void onTactCancel() { cLib_onBit<u32>(mFlags, 2); }
void offTactCancel() { cLib_offBit<u32>(mFlags, 2); }
BOOL isTactCorrect() { return cLib_checkBit<u32>(mFlags, 4); }
void onTactCorrect() { cLib_onBit<u32>(mFlags, 4); }
void offTactCorrect() { cLib_offBit<u32>(mFlags, 4); }
BOOL isOffDraw() { return cLib_checkBit<u32>(mFlags, 8); }
s16 XyCheckCB(int);
s16 XyEventCB(int);
void particle_set(u16);
void particle_set(JPABaseEmitter**, u16);
void emitterDelete(JPABaseEmitter**);
void setAttention(bool);
void onOffDraw();
void offOffDraw();
void drawStop();
void drawStart();
void setBaseMtx();
BOOL createHeap();
cPhs_State create();
BOOL init();
void action(void*);
BOOL setAction(ActionFunc, void*);
BOOL waitAction(void*);
BOOL talkAction(void*);
BOOL offAction(void*);
BOOL deleteAction(void*);
void eventOrder();
void checkOrder();
BOOL checkCommandTalk();
bool chkAttention(cXyz, s16);
BOOL eventProc();
void eventEnd();
void initialDefault(int);
BOOL actionDefault(int);
void initialLinkDispEvent(int);
void initialMsgSetEvent(int);
BOOL actionMsgSetEvent(int);
BOOL actionMessageEvent(int);
BOOL actionTactEvent(int);
void initialJudgeEvent(int);
void initialAppearEvent(int);
BOOL actionAppearEvent(int);
void initialDeleteEvent(int);
BOOL actionDeleteEvent(int);
BOOL talk_init();
BOOL talk(int);
u32 getMsg();
u32 next_msgStatus(u32*);
BOOL execute();
BOOL draw();
public:
/* 0x290 */ request_of_phase_process_class mPhase;
/* 0x298 */ J3DModel* mpModel;
/* 0x29c */ dBgS_ObjAcch mObjAcch;
/* 0x460 */ dBgS_AcchCir mAcchCir;
/* 0x4a0 */ JPABaseEmitter* mpEmitter;
/* 0x4a4 */ Mtx mMtx;
/* 0x4d4 */ dBgW* mpBgW;
/* 0x4d8 */ u8 field_0x4d8[0x4e4 - 0x4d8];
/* 0x4e4 */ cBgS_PolyInfo mPolyInfo;
/* 0x4f4 */ ActionFunc mAction;
/* 0x500 */ u32 mShadowId;
/* 0x504 */ u32 mFlags;
/* 0x508 */ u32 mMsgNo;
/* 0x50c */ int mSwitchNo;
/* 0x510 */ u32 mPrmMsgNo;
/* 0x514 */ s8 field_0x514;
/* 0x515 */ s8 mEventSelector;
/* 0x516 */ u8 field_0x516;
/* 0x517 */ s8 mActionMode;
/* 0x518 */ u8 mAttentionLatch;
/* 0x519 */ u8 mAppearDeleteTimer;
/* 0x51a */ u8 field_0x51a[0x51c - 0x51a];
/* 0x51c */ s16 field_0x51c;
/* 0x51e */ s16 field_0x51e;
/* 0x520 */ s16 field_0x520;
/* 0x522 */ s16 field_0x522;
/* 0x524 */ u8 field_0x524[0x528 - 0x524];
/* 0x528 */ f32 field_0x528;
/* 0x52c */ u8 field_0x52c[0x530 - 0x52c];
/* 0x530 */ s16 mEventId[2];
};
class daObj_hsh_HIO_c : public JORReflexible {
public:
struct hio_prm_c {
// Note: Offsets are relative to daObj_hsh_HIO_c instead of hio_prm_c for convenience.
/* 0x08 */ f32 mAttnDist;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ s16 mAttnAngle;
/* 0x16 */ s8 field_0x16;
}; // Size: 0x10
public:
daObj_hsh_HIO_c();
virtual ~daObj_hsh_HIO_c() {}
void genMessage(JORMContext*) {}
public:
/* 0x04 */ s8 mNo;
/* 0x08 */ hio_prm_c prm;
/* 0x18 */ daObj_hsh_c* mpActor;
}; // Size: 0x1C
#endif /* D_A_OBJ_HSEHI1_H */