mirror of https://github.com/zeldaret/tp.git
109 lines
3.0 KiB
C++
109 lines
3.0 KiB
C++
#ifndef D_FLOWER_H
|
|
#define D_FLOWER_H
|
|
|
|
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
|
|
class cCcD_Obj;
|
|
class dCcMassS_HitInf;
|
|
class fopAc_ac_c;
|
|
|
|
class dFlower_data_c {
|
|
public:
|
|
void WorkCo(fopAc_ac_c*, u32, int);
|
|
void deleteAnm();
|
|
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
|
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
|
|
void hitCheck(fopAc_ac_c*, int);
|
|
~dFlower_data_c();
|
|
dFlower_data_c();
|
|
|
|
/* 0x00 */ u8 m_state;
|
|
/* 0x01 */ s8 field_0x01;
|
|
/* 0x02 */ s8 m_tableNo;
|
|
/* 0x03 */ u8 field_0x03;
|
|
/* 0x04 */ s16 field_0x04;
|
|
/* 0x08 */ cXyz m_pos;
|
|
/* 0x14 */ Mtx m_modelMtx;
|
|
/* 0x44 */ dFlower_data_c* mp_next;
|
|
};
|
|
|
|
class dFlower_room_c {
|
|
public:
|
|
void newData(dFlower_data_c*);
|
|
void deleteData();
|
|
dFlower_room_c();
|
|
|
|
dFlower_data_c* getData() { return mp_data; }
|
|
|
|
/* 0x0 */ dFlower_data_c* mp_data;
|
|
};
|
|
|
|
class dFlower_anm_c {
|
|
public:
|
|
dFlower_anm_c();
|
|
|
|
/* 0x00 */ u8 m_state;
|
|
/* 0x02 */ s16 m_angY;
|
|
/* 0x04 */ s16 m_angX;
|
|
/* 0x08 */ Mtx m_animMtx;
|
|
};
|
|
|
|
class dFlower_packet_c : public J3DPacket {
|
|
public:
|
|
dFlower_packet_c();
|
|
void calc();
|
|
void update();
|
|
void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
|
|
dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
|
|
void deleteRoom(int);
|
|
int newAnm();
|
|
void setAnm(int, s16);
|
|
|
|
virtual void draw();
|
|
virtual ~dFlower_packet_c();
|
|
|
|
typedef void (dFlower_packet_c::*deleteFunc)(int);
|
|
|
|
static deleteFunc getDeleteRoom() {
|
|
JUT_ASSERT(174, m_deleteRoom != NULL);
|
|
return m_deleteRoom;
|
|
}
|
|
|
|
static deleteFunc m_deleteRoom;
|
|
|
|
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
|
|
dFlower_anm_c* getAnm() { return &m_anm[0]; }
|
|
dFlower_data_c* getData() { return m_data; }
|
|
|
|
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
|
|
|
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
|
|
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
|
|
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
|
|
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
|
|
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
|
|
|
|
/* 0x00010 */ u16 m_dataNum;
|
|
/* 0x00014 */ dFlower_data_c m_data[1000];
|
|
/* 0x11954 */ dFlower_anm_c m_anm[72];
|
|
/* 0x12914 */ dFlower_room_c m_room[64];
|
|
/* 0x12A14 */ u8 m_playerCutFlg;
|
|
/* 0x12A16 */ s16 m_playerSwordAngY;
|
|
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
|
|
/* 0x12A1C */ cXyz m_playerSwordTop;
|
|
/* 0x12A28 */ Vec* mp_pos;
|
|
/* 0x12A2C */ GXColor* mp_colors;
|
|
/* 0x12A30 */ Vec* mp_texCoords;
|
|
/* 0x12A34 */ u8* mp_mat2DL;
|
|
/* 0x12A38 */ u32 m_mat2DL_size;
|
|
/* 0x12A3C */ u8* mp_mat2Light4DL;
|
|
/* 0x12A40 */ u32 m_mat2Light4DL_size;
|
|
/* 0x12A44 */ u8* mp_Jhana01DL;
|
|
/* 0x12A48 */ u32 m_Jhana01DL_size;
|
|
/* 0x12A4C */ u8* mp_Jhana01_cDL;
|
|
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
|
|
}; // Size: 0x12A54
|
|
|
|
#endif /* D_FLOWER_H */
|