mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
Makefile fixes / JUTNameTab (#129)
* Makefile: Fix issues with iconv causing it to break under devkitPro / msys The version of iconv included in devkitPro does not have a -o option, so replace it with normal shell redirection. Also, SHIFT-JIS does not have a mapping for ~, so output the Windows CP932 variant instead, which does. See: https://en.wikipedia.org/wiki/Tilde#Unicode_and_Shift_JIS_encoding_of_wave_dash https://en.wikipedia.org/wiki/Code_page_932_(Microsoft_Windows)#Single-byte_character_differences * Update diff configuration -Bbinary doesn't seem to work with my copy of bjdump (it says it can't decode unknown architecture) Cheese things by using expected/ instead of having the user place things manually. * JUTNameTab * J3DPacket / J3DDrawBuffer * format Co-authored-by: lepelog <lepelog@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
9799fadfe8
commit
462d71cbef
@@ -1,6 +1,51 @@
|
||||
#ifndef J3DDRAWBUFFER_H
|
||||
#define J3DDRAWBUFFER_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class J3DDrawBuffer;
|
||||
class J3DPacket;
|
||||
class J3DDrawPacket;
|
||||
class J3DMatPacket;
|
||||
class J3DShapePacket;
|
||||
|
||||
typedef void (*J3DDrawBuffer_DrawFunc)(const J3DDrawBuffer* this_);
|
||||
|
||||
class J3DDrawBuffer {
|
||||
public:
|
||||
~J3DDrawBuffer();
|
||||
void initialize();
|
||||
J3DError allocBuffer(u32);
|
||||
void frameInit();
|
||||
void entryMatSort(J3DMatPacket*);
|
||||
void entryMatAnmSort(J3DMatPacket*);
|
||||
void entryZSort(J3DMatPacket*);
|
||||
void entryModelSort(J3DMatPacket*);
|
||||
void entryInvalidSort(J3DMatPacket*);
|
||||
bool entryNonSort(J3DMatPacket*);
|
||||
bool entryImm(J3DPacket* pPacket, u16 index);
|
||||
void draw() const;
|
||||
void drawHead() const;
|
||||
void drawTail() const;
|
||||
|
||||
inline void calcZRatio();
|
||||
|
||||
public:
|
||||
J3DPacket** mpBuf;
|
||||
u32 mBufSize;
|
||||
u32 mDrawType;
|
||||
u32 mSortType;
|
||||
float mZNear;
|
||||
float mZFar;
|
||||
float mZRatio;
|
||||
Mtx* mpZMtx;
|
||||
J3DPacket* mpCallBackPacket;
|
||||
|
||||
static u8 sortFuncTable[72];
|
||||
static u8 drawFuncTable[24];
|
||||
static u8 entryNum[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
#endif /* J3DDRAWBUFFER_H */
|
||||
|
||||
@@ -1,6 +1,114 @@
|
||||
#ifndef J3DPACKET_H
|
||||
#define J3DPACKET_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class J3DMatPacket;
|
||||
|
||||
class J3DDrawBuffer;
|
||||
class J3DMaterial;
|
||||
class J3DMaterialAnm;
|
||||
class J3DModel;
|
||||
class J3DMtxBuffer;
|
||||
class J3DShape;
|
||||
class J3DTexMtx;
|
||||
class J3DTexture;
|
||||
|
||||
class J3DDisplayListObj {
|
||||
public:
|
||||
J3DError newDisplayList(u32);
|
||||
J3DError newSingleDisplayList(u32);
|
||||
J3DError single_To_Double();
|
||||
void setSingleDisplayList(void*, u32);
|
||||
void swapBuffer();
|
||||
void callDL() const;
|
||||
void beginDL();
|
||||
void endDL();
|
||||
void beginPatch();
|
||||
void endPatch();
|
||||
|
||||
static u8 sGDLObj[16];
|
||||
static u8 sInterruptFlag[4 + 4 /* padding */];
|
||||
|
||||
void* mpData[2];
|
||||
u32 mSize;
|
||||
u32 mCapacity;
|
||||
};
|
||||
|
||||
class J3DPacket {
|
||||
public:
|
||||
void addChildPacket(J3DPacket* pChild);
|
||||
|
||||
inline void clear() {
|
||||
mpNextSibling = NULL;
|
||||
mpFirstChild = NULL;
|
||||
}
|
||||
|
||||
virtual bool entry(J3DDrawBuffer* pDrawBuffer);
|
||||
virtual void draw();
|
||||
virtual ~J3DPacket();
|
||||
|
||||
public:
|
||||
J3DPacket* mpNextSibling;
|
||||
J3DPacket* mpFirstChild;
|
||||
};
|
||||
|
||||
class J3DDrawPacket : public J3DPacket {
|
||||
public:
|
||||
J3DDrawPacket();
|
||||
~J3DDrawPacket();
|
||||
J3DError newDisplayList(u32);
|
||||
J3DError newSingleDisplayList(u32);
|
||||
virtual void draw();
|
||||
|
||||
public:
|
||||
void* mpUserData;
|
||||
int mFlags;
|
||||
char mPad0[0x0C]; // unk
|
||||
J3DDisplayListObj* mpDisplayListObj;
|
||||
J3DTexMtx* mpTexMtx;
|
||||
};
|
||||
|
||||
class J3DShapePacket : public J3DDrawPacket {
|
||||
public:
|
||||
J3DShapePacket();
|
||||
void calcDifferedBufferSize(u32);
|
||||
void newDifferedDisplayList(u32);
|
||||
void prepareDraw() const;
|
||||
void drawFast();
|
||||
|
||||
virtual ~J3DShapePacket();
|
||||
virtual void draw();
|
||||
|
||||
public:
|
||||
J3DShape* mpShape;
|
||||
J3DMtxBuffer* mpMtxBuffer;
|
||||
Mtx* mpViewMtx;
|
||||
u32 mDiffFlag;
|
||||
J3DModel* mpModel;
|
||||
};
|
||||
|
||||
class J3DMatPacket : public J3DDrawPacket {
|
||||
public:
|
||||
J3DMatPacket();
|
||||
void addShapePacket(J3DShapePacket*);
|
||||
void beginDiff();
|
||||
void endDiff();
|
||||
void isSame(J3DMatPacket*) const;
|
||||
|
||||
virtual ~J3DMatPacket();
|
||||
virtual bool entry(J3DDrawBuffer* pDrawBuffer);
|
||||
virtual void draw();
|
||||
|
||||
public:
|
||||
J3DShapePacket* mpShapePacket;
|
||||
J3DShapePacket* mpFirstShapePacket;
|
||||
J3DMaterial* mpMaterial;
|
||||
s32 mSortFlags;
|
||||
J3DTexture* mpTexture;
|
||||
J3DMaterialAnm* mpMaterialAnm;
|
||||
};
|
||||
|
||||
#endif /* J3DPACKET_H */
|
||||
|
||||
@@ -3,4 +3,10 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
// Perhaps move to a new J3DEnum.h?
|
||||
enum J3DError {
|
||||
kJ3DError_Success = 0,
|
||||
kJ3DError_Alloc = 4,
|
||||
};
|
||||
|
||||
#endif /* J3DSYS_H */
|
||||
|
||||
@@ -3,4 +3,34 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct ResNTAB {
|
||||
u16 mEntryNum;
|
||||
u16 mPad0;
|
||||
struct Entry {
|
||||
u16 mKeyCode;
|
||||
u16 mOffs;
|
||||
} mEntries[1];
|
||||
|
||||
inline const char* getName(u32 index) const {
|
||||
return ((const char*)mEntries) + mEntries[index].mOffs - 4;
|
||||
}
|
||||
};
|
||||
|
||||
class JUTNameTab {
|
||||
public:
|
||||
JUTNameTab();
|
||||
JUTNameTab(const ResNTAB* pNameTable);
|
||||
virtual ~JUTNameTab() {}
|
||||
|
||||
void setResource(const ResNTAB* pNameTable);
|
||||
s32 getIndex(char const*) const;
|
||||
const char* getName(u16 index) const;
|
||||
u16 calcKeyCode(char const* pName) const;
|
||||
|
||||
private:
|
||||
const ResNTAB* mpNameTable;
|
||||
const char* mpStrData;
|
||||
u16 mNameNum;
|
||||
};
|
||||
|
||||
#endif /* JUTNAMETAB_H */
|
||||
|
||||
Reference in New Issue
Block a user