mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-26 15:36:56 -04:00
133 lines
3.9 KiB
C++
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 */
|