d_drawlist work

This commit is contained in:
Jasper St. Pierre
2023-11-08 21:52:15 -08:00
parent 1f4c0de0c6
commit 1166423d50
9 changed files with 517 additions and 69 deletions
+2 -2
View File
@@ -217,8 +217,8 @@ inline JKRCompression JKRConvertAttrToCompressionType(u32 attr) {
return JKRArchive::convertAttrToCompressionType(attr);
}
inline void* JKRGetResource(u32 node, const char* path, JKRArchive* archive) {
return JKRArchive::getGlbResource(node, path, archive);
inline void* JKRGetResource(u32 node, const char* path, JKRArchive* arc) {
return JKRArchive::getGlbResource(node, path, arc);
}
inline void* JKRGetTypeResource(u32 tag, const char* name, JKRArchive* arc) {
+1
View File
@@ -66,6 +66,7 @@ public:
/* 0xC6 */ u16 mTexIdx;
/* 0xC8 */ JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*>* mpCallBack2;
/* 0xCC */ u32 mStatus;
/* 0xD0 */ u32 field_0xd0;
};
class JPAParticleCallBack {
+2
View File
@@ -429,6 +429,7 @@ public:
void setTmsgArchive(JKRArchive * pArc) { mpTmsgArchive = pArc; }
JKRArchive* getTmsgArchive() { return mpTmsgArchive; }
void setMenuArchive(JKRArchive * pArc) { mpMenuArchive = pArc; }
JKRArchive* getMenuArchive() { return mpMenuArchive; }
void setFont0Archive(JKRArchive * pArc) { mpFont0Archive = pArc; }
void setFont1Archive(JKRArchive * pArc) { mpFont1Archive = pArc; }
JKRArchive* getFontArchive() { return mpFont0Archive; }
@@ -2214,6 +2215,7 @@ inline void dComIfGp_setDmsgArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play
inline void dComIfGp_setTmsgArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setTmsgArchive(pArc); }
inline JKRArchive* dComIfGp_getTmsgArchive() { return g_dComIfG_gameInfo.play.getTmsgArchive(); }
inline void dComIfGp_setMenuArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setMenuArchive(pArc); }
inline JKRArchive* dComIfGp_getMenuArchive() { return g_dComIfG_gameInfo.play.getMenuArchive(); }
inline void dComIfGp_setFont0Archive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setFont0Archive(pArc); }
inline void dComIfGp_setFont1Archive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setFont1Archive(pArc); }
inline JKRArchive* dComIfGp_getFontArchive() { return g_dComIfG_gameInfo.play.getFontArchive(); }
+32 -2
View File
@@ -41,6 +41,11 @@ public:
class dDlst_2DPoint_c : public dDlst_base_c {
public:
virtual void draw();
/* 0x04 */ s16 mPosX;
/* 0x06 */ s16 mPosY;
/* 0x08 */ GXColor mColor;
/* 0x0C */ u8 mPointSize;
};
class dDlst_2DT_c : public dDlst_base_c {
@@ -52,6 +57,19 @@ class dDlst_2DT2_c : public dDlst_base_c {
public:
void init(ResTIMG* pTimg, f32, f32, f32, f32, u8, u8, u8, f32, f32);
virtual void draw();
public:
/* 0x04 */ GXTexObj mTex;
/* 0x24 */ f32 mX;
/* 0x28 */ f32 mY;
/* 0x2C */ f32 mW;
/* 0x30 */ f32 mH;
/* 0x34 */ f32 mScrollS;
/* 0x38 */ f32 mScrollT;
/* 0x3C */ GXColor mColor;
/* 0x40 */ u8 mMirrorS;
/* 0x41 */ u8 mMirrorT;
/* 0x42 */ u8 mAlpha;
};
class dDlst_2DM_c : public dDlst_base_c {
@@ -209,14 +227,14 @@ public:
dDlst_shadowReal_c() { mState = 0; }
bool isNoUse() { return mState == 0; }
bool isUse() { return mState == 1; }
bool isUse() { return mState != 0; }
bool checkKey(u32 i_key) { return mKey == i_key; }
enum { MODEL_MAX = 0x1A };
private:
/* 0x0000 */ u8 mState;
/* 0x0001 */ u8 field_0x1;
/* 0x0001 */ s8 field_0x1;
/* 0x0002 */ u8 mAlpha;
/* 0x0003 */ u8 mModelNum;
/* 0x0004 */ u32 mKey;
@@ -322,11 +340,19 @@ public:
struct dDlst_alphaVolPacket : public J3DPacket {
public:
virtual void draw();
public:
/* 0x04 */ u32 field_0x04[3];
/* 0x10 */ Mtx mtx;
};
struct dDlst_alphaInvVolPacket : public J3DPacket {
public:
virtual void draw();
public:
/* 0x04 */ u32 field_0x04[3];
/* 0x10 */ Mtx mtx;
};
class dDlst_list_c {
@@ -407,6 +433,10 @@ public:
void newPeekZdata(s16 x, s16 y, u32 * data) { mPeekZ.newData(x, y, data); }
static bool mWipe;
static GXColor mWipeColor;
static f32 mWipeRate;
static f32 mWipeSpeed;
static dDlst_2DT2_c mWipeDlst;
/* 0x00000 */ J3DDrawBuffer* mpOpaListSky;
/* 0x00004 */ J3DDrawBuffer* mpXluListSky;
+1 -1
View File
@@ -105,7 +105,7 @@ inline void GXPosition2s8(s8 x, s8 y) {
GFX_FIFO(s8) = y;
}
inline void i_GXPosition3s16(s16 x, s16 y, s16 z) {
inline void GXPosition3s16(s16 x, s16 y, s16 z) {
GFX_FIFO(s16) = x;
GFX_FIFO(s16) = y;
GFX_FIFO(s16) = z;