tp/include/d/d_a_item_static.h

151 lines
4.7 KiB
C++

#ifndef D_A_D_A_ITEM_STATIC_H
#define D_A_D_A_ITEM_STATIC_H
#include "SSystem/SComponent/c_lib.h"
#include "d/actor/d_a_itembase.h"
#include "d/d_particle.h"
#include "d/actor/d_a_player.h"
class daItem_c;
typedef void (daItem_c::*procFunc)();
class daItem_c : public daItemBase_c {
public:
enum Type_e {
TYPE_LAUNCH_e,
TYPE_FIXED_PLACE_e,
TYPE_UNK2_e,
TYPE_WAIT_e,
TYPE_SIMPLE_GET_e,
TYPE_BOOM_HIT_e,
TYPE_LAUNCH_NO_RND_e,
TYPE_FORCE_GET_e,
TYPE_LAUNCH_SMALL_e,
TYPE_LAUNCH_FROM_PLAYER_e,
};
enum Flag_e {
FLAG_UNK_2_e = (1 << 1),
FLAG_NO_MOVE_e = (1 << 2),
FLAG_NO_TIMER_e = (1 << 3),
FLAG_INIT_GET_ITEM_e = (1 << 4),
FLAG_DELETE_ITEM_e = (1 << 5),
};
enum Mode_e {
MODE_WAIT_e,
MODE_WATER_e,
};
enum Status_e {
STATUS_NORMAL_e,
STATUS_ENEMY_CARRY_e,
STATUS_SIMPLE_GET_DEMO_e,
STATUS_WAIT_GET_DEMO_EVENT_e,
STATUS_GET_DEMO_EVENT_e,
STATUS_BOOMERANG_CARRY_e,
STATUS_SW_ON_WAIT_e,
STATUS_BOOM_HIT_WAIT_e,
STATUS_FORCE_GET_e,
};
daItem_c() : mSparkleEmtr(0, 0) {}
/* 8015B0C4 */ void initBaseMtx();
/* 8015B108 */ void setBaseMtx();
/* 8015B190 */ void setBaseMtx_0();
/* 8015B1C8 */ void setBaseMtx_1();
/* 8015B3D8 */ void CreateInit();
/* 8015B7BC */ void setCullInfo();
/* 8015B7D4 */ int _daItem_create();
/* 8015BA9C */ int _daItem_execute();
/* 8015BD84 */ int _daItem_draw();
/* 8015BDE8 */ int _daItem_delete();
/* 8015BE60 */ void procInitNormal();
/* 8015BEA4 */ void procMainNormal();
/* 8015BFE8 */ void procMainEnemyCarry();
/* 8015BFEC */ void procInitForceGet();
/* 8015C038 */ void procMainForceGet();
/* 8015C058 */ void procInitSimpleGetDemo();
/* 8015C134 */ void procMainSimpleGetDemo();
/* 8015C200 */ void procInitGetDemoEvent();
/* 8015C2A4 */ void procWaitGetDemoEvent();
/* 8015C3BC */ void procMainGetDemoEvent();
/* 8015C41C */ void procInitBoomerangCarry();
/* 8015C514 */ void procMainBoomerangCarry();
/* 8015C5F4 */ void procInitSwOnWait();
/* 8015C648 */ void procMainSwOnWait();
/* 8015C708 */ void procInitBoomHitWait();
/* 8015C738 */ void procMainBoomHitWait();
/* 8015CAB8 */ void move_proc_call();
/* 8015CC4C */ void mode_wait_init();
/* 8015CC88 */ void mode_water_init();
/* 8015CCD0 */ void mode_wait();
/* 8015CDCC */ void mode_water();
/* 8015CEEC */ void itemGetNextExecute();
/* 8015D0A8 */ void itemGet();
/* 8015D370 */ BOOL checkCountTimer();
/* 8015D3CC */ BOOL checkPlayerGet();
/* 8015D410 */ void checkYogan();
/* 8015D480 */ void deleteItem();
/* 8015D4AC */ int itemActionForRupee();
/* 8015D56C */ int itemActionForHeart();
/* 8015D688 */ int itemActionForArrow();
/* 8015D700 */ int itemActionForBoomerang();
/* 8015D734 */ void bg_check();
/* 8015D834 */ void set_bound_se();
/* 8015D95C */ int CountTimer();
/* 8015D9F0 */ int initAction();
/* 8015DAAC */ void initFlag();
/* 8015DBF0 */ void initScale();
/* 8015DC40 */ void initSpeed(int);
/* 8015DE38 */ void initAngle();
u32 startCtrl();
u32 startControl();
u32 endControl();
/* 8015CE94 */ virtual void setTevStr();
void setStatus(u8 status) { mStatus = status; }
int getStatus() { return mStatus; }
void setFlag(u8 pFlag) { cLib_onBit(mFlag, pFlag); }
bool checkFlag(u8 flag) { return cLib_checkBit(mFlag, flag); }
void clrFlag(u8 flag) { cLib_offBit(mFlag, flag); }
bool checkBoomWindTgTimer() { return mBoomWindTgTimer == 0; }
static procFunc mFuncPtr[];
static dCcD_SrcCyl m_cyl_src;
static s32 m_timer_max;
/* 0x92C */ s16 field_0x92c;
/* 0x92E */ u16 field_0x92e;
/* 0x930 */ cXyz mItemScale;
/* 0x93C */ int mSwitchNo;
/* 0x940 */ u16 field_0x940;
/* 0x942 */ s16 mWaitTimer;
/* 0x944 */ s16 mDisappearTimer;
/* 0x946 */ s16 mSimpleExistTimer;
/* 0x948 */ u8 mFlag;
/* 0x949 */ u8 mMode;
/* 0x94A */ u8 mStatus;
/* 0x94B */ u8 field_0x94b;
/* 0x94C */ u32 m_item_id;
/* 0x950 */ cXyz field_0x950;
/* 0x95C */ u8 mSwOnWaitTimer;
/* 0x95D */ bool field_0x95d;
/* 0x95E */ u8 mBoomWindTgTimer;
/* 0x95F */ u8 field_0x95f;
/* 0x960 */ daPy_boomerangMove_c mBoomerangMove;
/* 0x96C */ cXyz mLastPos;
/* 0x978 */ Z2SoundObjSimple mSound;
/* 0x998 */ dPa_followEcallBack mSparkleEmtr;
/* 0x9AC */ cXyz mSparklePos;
/* 0x9B8 */ u32 field_0x9b8;
/* 0x9BC */ u8 field_0x9bc[4];
/* 0x9C0 */ u8 field_0x9c0;
/* 0x9C1 */ u8 field_0x9c1;
}; // Size: 0x9C4
#endif /* D_A_D_A_ITEM_STATIC_H */