mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-28 02:13:07 -04:00
2f03544e17
* tree * WorkCo fix from superdude
119 lines
3.1 KiB
C++
119 lines
3.1 KiB
C++
#ifndef D_TREE_H
|
|
#define D_TREE_H
|
|
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
#include "d/d_particle.h"
|
|
#include "dolphin/mtx/mtx.h"
|
|
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
|
|
|
class cCcD_Obj;
|
|
class dCcMassS_HitInf;
|
|
class fopAc_ac_c;
|
|
|
|
extern u8 g_dTree_shadowPos[4][3];
|
|
extern u8 g_dTree_shadowTexCoord[4][2];
|
|
extern u8 g_dTree_shadowMatDL[];
|
|
extern u8 g_dTree_Oba_kage_32DL[];
|
|
extern const u32 g_dTree_shadowMatDL_SIZE;
|
|
extern const u32 g_dTree_Oba_kage_32DL_SIZE;
|
|
|
|
class dTree_data_c {
|
|
public:
|
|
~dTree_data_c();
|
|
dTree_data_c();
|
|
|
|
void WorkCo(fopAc_ac_c*, u32, int);
|
|
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
|
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
|
|
BOOL hitCheck(fopAc_ac_c*, int);
|
|
void animation(int);
|
|
|
|
/* 0x000 */ u8 mState;
|
|
/* 0x001 */ u8 field_0x001;
|
|
/* 0x002 */ s8 mAnimIdx;
|
|
/* 0x003 */ u8 field_0x003;
|
|
/* 0x004 */ cXyz mPos;
|
|
/* 0x010 */ Mtx field_0x010;
|
|
/* 0x040 */ Mtx field_0x040;
|
|
/* 0x070 */ Mtx field_0x070;
|
|
/* 0x0A0 */ Mtx mShadowMtx;
|
|
/* 0x0D0 */ Mtx field_0x0d0;
|
|
/* 0x100 */ dTree_data_c* mpNext;
|
|
|
|
static dPa_smokeEcallBack mSmokeEcallback;
|
|
};
|
|
|
|
class dTree_anm_c {
|
|
public:
|
|
~dTree_anm_c();
|
|
dTree_anm_c();
|
|
|
|
/* 0x00 */ u8 mState;
|
|
/* 0x02 */ s16 field_0x02;
|
|
/* 0x04 */ s16 field_0x04;
|
|
/* 0x06 */ s16 field_0x06;
|
|
/* 0x08 */ s16 field_0x08;
|
|
/* 0x0A */ s16 field_0x0a;
|
|
/* 0x0C */ f32 mAnimTimer;
|
|
/* 0x10 */ f32 field_0x10;
|
|
/* 0x14 */ f32 field_0x14;
|
|
/* 0x18 */ f32 field_0x18;
|
|
/* 0x1C */ f32 field_0x1c;
|
|
/* 0x20 */ f32 field_0x20;
|
|
/* 0x24 */ Mtx field_0x24;
|
|
/* 0x54 */ Mtx field_0x54;
|
|
};
|
|
|
|
class dTree_room_c {
|
|
public:
|
|
dTree_room_c();
|
|
|
|
void newData(dTree_data_c*);
|
|
void deleteData();
|
|
|
|
dTree_data_c* getData() { return mpData; }
|
|
|
|
/* 0x0 */ dTree_data_c* mpData;
|
|
};
|
|
|
|
class dTree_packet_c : public J3DPacket {
|
|
public:
|
|
dTree_packet_c();
|
|
|
|
void calc();
|
|
void update();
|
|
void setData(dTree_data_c*, int, cXyz&, u8, int);
|
|
dTree_data_c* newData(cXyz&, u8, int);
|
|
s32 newAnm(s16);
|
|
void setAnm(int, s16);
|
|
void deleteRoom(s32 roomNo) { mRoom[roomNo].deleteData(); }
|
|
void deleteAnm(int idx) { mAnm[idx].mState = 0; }
|
|
|
|
dTree_anm_c* getAnm() { return mAnm; }
|
|
dTree_anm_c& getAnm(int idx) { return mAnm[idx]; }
|
|
dTree_data_c* getData() { return mData; }
|
|
|
|
void setPlayerCutFlg(int i_flg) { mPlayerCutFlg = i_flg; }
|
|
void setPlayerSwordTop(cXyz& i_pos) { mPlayerSwordTop = i_pos; }
|
|
void setPlayerSwordMoveAngY(s16 i_ang) { mPlayerSwordMoveAngY = i_ang; }
|
|
cXyz& getPlayerSwordTop() { return mPlayerSwordTop; }
|
|
void setPlayerSwordAngY(s16 i_ang) { mPlayerSwordAngY = i_ang;}
|
|
s16 getPlayerSwordMoveAngY() { return mPlayerSwordMoveAngY; }
|
|
|
|
int getNum() {}
|
|
|
|
virtual void draw();
|
|
virtual ~dTree_packet_c();
|
|
|
|
/* 0x0010 */ u16 mNextIdx;
|
|
/* 0x0014 */ dTree_data_c mData[64];
|
|
/* 0x4114 */ dTree_anm_c mAnm[72];
|
|
/* 0x6634 */ dTree_room_c mRoom[64];
|
|
/* 0x6734 */ u8 mPlayerCutFlg;
|
|
/* 0x6736 */ s16 mPlayerSwordAngY;
|
|
/* 0x6738 */ s16 mPlayerSwordMoveAngY;
|
|
/* 0x673C */ cXyz mPlayerSwordTop;
|
|
};
|
|
|
|
#endif /* D_TREE_H */
|