mirror of https://github.com/zeldaret/tp.git
104 lines
2.5 KiB
C++
104 lines
2.5 KiB
C++
#ifndef D_A_OBJ_SMALLKEY_H
|
|
#define D_A_OBJ_SMALLKEY_H
|
|
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "d/actor/d_a_itembase.h"
|
|
#include "d/d_particle.h"
|
|
|
|
/**
|
|
* @ingroup actors-objects
|
|
* @class daKey_c
|
|
* @brief Small Key
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daKey_c : public daItemBase_c {
|
|
private:
|
|
void seStartTwinkle_private(u32);
|
|
|
|
public:
|
|
enum daKey_Status_e {
|
|
STATUS_INIT_e,
|
|
STATUS_PARENT_WAIT_e,
|
|
STATUS_WAIT_e,
|
|
STATUS_ORDER_GET_DEMO_e,
|
|
STATUS_GET_DEMO_e,
|
|
STATUS_SW_ON_WAIT_e,
|
|
STATUS_BOOMERANG_CARRY_e,
|
|
STATUS_E_GB_e,
|
|
};
|
|
|
|
void initBaseMtx();
|
|
void setBaseMtx();
|
|
int Create();
|
|
int __CreateHeap();
|
|
int create();
|
|
void bg_check();
|
|
int actionInitInit();
|
|
int actionInit();
|
|
int actionParentWaitInit();
|
|
int actionParentWait();
|
|
int actionWaitInit();
|
|
int actionWait();
|
|
int initActionOrderGetDemo();
|
|
int actionOrderGetDemo();
|
|
int actionGetDemo();
|
|
int actionInitSwOnWait();
|
|
int actionSwOnWait();
|
|
int actionInitBoomerangCarry();
|
|
int actionBoomerangCarry();
|
|
void effectSet();
|
|
void effectStop();
|
|
void effectCtrl();
|
|
int actionInitE_GB();
|
|
int actionE_GB();
|
|
int execute();
|
|
int draw();
|
|
int _delete();
|
|
|
|
int getSwNo() { return fopAcM_GetParamBit(this, 16, 8); }
|
|
int getSaveBitNo() { return fopAcM_GetParamBit(this, 8, 8); }
|
|
|
|
u16 getSwOnWaitTimer() { return field_0x93a & 0x3F; }
|
|
|
|
void setStatus(u8 i_status) { mStatus = i_status; }
|
|
bool chkStatus(u8 i_status) { return mStatus == i_status; }
|
|
|
|
void setPos(cXyz i_pos) {
|
|
current.pos = i_pos;
|
|
}
|
|
|
|
void startMove(f32 i_speedF, f32 i_speedY) {
|
|
speedF = i_speedF;
|
|
speed.y = i_speedY;
|
|
gravity = -6.0f;
|
|
actionWaitInit();
|
|
}
|
|
|
|
void seStartTwinkle(u32 i_soundId, cXyz* param_1) {
|
|
field_0x978 = *param_1;
|
|
mDoAud_seStartLevel(i_soundId, &field_0x978, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
|
field_0x984 = 1;
|
|
}
|
|
|
|
/* 0x92C */ fpc_ProcID mItemId;
|
|
/* 0x930 */ int field_0x930;
|
|
/* 0x934 */ u8 mStatus;
|
|
/* 0x935 */ u8 mSwOnTimer;
|
|
/* 0x936 */ u8 field_0x936;
|
|
/* 0x937 */ u8 mIsPrmInit;
|
|
/* 0x938 */ s16 field_0x938;
|
|
/* 0x93A */ u16 field_0x93a;
|
|
/* 0x93C */ dPa_followEcallBack mEffect[2];
|
|
/* 0x964 */ csXyz mEffRot;
|
|
/* 0x96C */ cXyz mPrevSpeed;
|
|
/* 0x978 */ cXyz field_0x978;
|
|
/* 0x984 */ u8 field_0x984;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daKey_c) == 0x988);
|
|
|
|
|
|
#endif /* D_A_OBJ_SMALLKEY_H */
|