Files
2025-01-14 22:47:21 -05:00

69 lines
2.3 KiB
C++

#ifndef JUTRESFONT_H
#define JUTRESFONT_H
#include "JSystem/JUtility/JUTFont.h"
#include "dolphin/gx/GXEnum.h"
class JKRHeap;
typedef bool (*IsLeadByte_func)(int);
class JUTResFont : public JUTFont {
public:
virtual ~JUTResFont();
virtual void setGX();
virtual void setGX(JUtility::TColor, JUtility::TColor);
virtual f32 drawChar_scale(f32, f32, f32, f32, int, bool);
virtual const ResFONT* getResFont() const { return mResFont; }
virtual int getFontType() const { return mInfoBlock->fontType; }
virtual int getLeading() const { return mInfoBlock->leading; }
virtual s32 getWidth() const { return mInfoBlock->width; }
virtual s32 getAscent() const { return mInfoBlock->ascent; }
virtual s32 getDescent() const { return mInfoBlock->descent; }
virtual s32 getHeight() const { return getAscent() + getDescent(); }
virtual void getWidthEntry(int, JUTFont::TWidth*) const;
virtual int getCellWidth() const;
virtual s32 getCellHeight() const;
virtual bool isLeadByte(int) const;
virtual void loadImage(int, GXTexMapID);
virtual void setBlock();
JUTResFont(ResFONT const*, JKRHeap*);
JUTResFont();
void deleteMemBlocks_ResFont();
void initialize_state();
bool initiate(ResFONT const*, JKRHeap*);
bool protected_initiate(ResFONT const*, JKRHeap*);
void countBlock();
void loadFont(int, GXTexMapID, JUTFont::TWidth*);
int getFontCode(int) const;
int convertSjis(int, u16*) const;
inline void delete_and_initialize() {
deleteMemBlocks_ResFont();
initialize_state();
}
static const int suAboutEncoding_ = 3;
static IsLeadByte_func const saoAboutEncoding_[suAboutEncoding_];
/* 0x1C */ int mWidth;
/* 0x20 */ int mHeight;
/* 0x24 */ GXTexObj mTexObj;
/* 0x44 */ int mTexPageIdx;
/* 0x48 */ const ResFONT* mResFont;
/* 0x4C */ ResFONT::INF1* mInfoBlock;
/* 0x50 */ void** mpMemBlocks;
/* 0x54 */ ResFONT::WID1** mpWidthBlocks;
/* 0x58 */ ResFONT::GLY1** mpGlyphBlocks;
/* 0x5C */ ResFONT::MAP1** mpMapBlocks;
/* 0x60 */ u16 mWidthBlockNum;
/* 0x62 */ u16 mGlyphBlockNum;
/* 0x64 */ u16 mMapBlockNum;
/* 0x66 */ u16 field_0x66;
/* 0x68 */ u16 mMaxCode;
/* 0x6C */ const IsLeadByte_func* mIsLeadByte;
};
#endif /* JUTRESFONT_H */