Files
tww/include/d/d_tree.h
T
TakaRikka 2f03544e17 tree (#1067)
* tree

* WorkCo fix from superdude
2026-06-26 16:57:14 -04:00

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 */