J2DScreen 90%

This commit is contained in:
Jasper St. Pierre
2023-10-11 18:50:03 -07:00
parent 7ea636e392
commit 1ff5175bb7
3 changed files with 205 additions and 23 deletions
+7 -3
View File
@@ -3,7 +3,6 @@
#include "JSystem/JGeometry.h"
#include "JSystem/JSupport/JSUList.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/mtx/mtx.h"
class J2DGrafContext;
@@ -30,6 +29,11 @@ struct J2DPaneHeader {
class J2DPane {
public:
struct J2DScrnBlockHeader {
/* 0x00 */ u32 mMagic;
/* 0x04 */ u32 mSize;
};
J2DPane();
J2DPane(J2DPane*, bool, u32, const JGeometry::TBox2<f32>&);
J2DPane(u32, const JGeometry::TBox2<f32>&);
@@ -50,7 +54,7 @@ public:
virtual void calcMtx();
virtual void update();
virtual void drawSelf(f32 arg1, f32 arg2);
virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx){};
virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx) {}
virtual J2DPane* search(u32 tag);
virtual void makeMatrix(f32, f32);
@@ -67,7 +71,7 @@ public:
/* 0x2C */ JGeometry::TBox2<f32> mDrawBounds;
/* 0x3C */ Mtx mMtx;
/* 0x6C */ Mtx mDrawMtx;
/* 0x9C */ cXy mBasePosition;
/* 0x9C */ JGeometry::TVec2<f32> mBasePosition;
/* 0xA4 */ f32 mRotation;
/* 0xA8 */ s8 mRotationAxis;
/* 0xA9 */ u8 m2DBasePosition;
+34
View File
@@ -0,0 +1,34 @@
#ifndef J2DSCREEN_H
#define J2DSCREEN_H
#include "JSystem/J2DGraph/J2DPane.h"
#include "dolphin/gx/GX.h"
class JKRArchive;
class J2DScreen : public J2DPane {
public:
virtual ~J2DScreen();
virtual u16 getTypeID() { return 17; }
virtual void calcMtx() { makeMatrix(mBounds.i.x, mBounds.i.y); }
virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx);
virtual J2DPane* search(u32 tag);
virtual J2DPane* createPane(J2DPane::J2DScrnBlockHeader const & header, JSURandomInputStream * pStream, J2DPane * pParent);
protected:
void draw(f32 x, f32 y, const J2DGrafContext * pCtx);
bool set(const char *pName, JKRArchive * pArc);
bool set(JSURandomInputStream * pStream);
s32 makeHierarchyPanes(J2DPane * pParent, JSURandomInputStream * pStream);
bool checkSignature(JSURandomInputStream * pStream);
bool getScreenInformation(JSURandomInputStream * pStream);
private:
/* 0xCC */ bool mbClipToParent;
/* 0xCD */ u8 pad_0xcd[3];
/* 0xD0 */ GXColor mColor;
};
STATIC_ASSERT(sizeof(J2DScreen) == 0xD4);
#endif /* J2DSCREEN_H */