summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/font.h15
-rw-r--r--include/script_buffers.h2
-rw-r--r--include/string16.h11
-rw-r--r--include/unk_02021590.h52
4 files changed, 66 insertions, 14 deletions
diff --git a/include/font.h b/include/font.h
index 963e36bc..3c0f4267 100644
--- a/include/font.h
+++ b/include/font.h
@@ -4,28 +4,33 @@
#include "global.h"
#include "text.h"
-struct UnkStruct_02002C14
+struct UnkStruct_02002C14_sub
{
const char buf[0x80];
u8 width;
u8 height;
+};
+
+struct UnkStruct_02002C14
+{
+ struct UnkStruct_02002C14_sub unk00;
void *unk84[4];
- struct UnkStruct_0202199C *unk94[4];
+ struct FontData *unk94[4];
};
extern struct UnkStruct_02002C14 *UNK_02106FC8;
void FUN_02002C14();
-void FUN_02002C50(u32 param0, u32 param1);
+void FUN_02002C50(u32 font_id, u32 heap_id);
void FUN_02002C84(s32 param0, u32 param1);
void FUN_02002CC0(s32 param0);
void FUN_02002CF8(int param0);
-struct UnkStruct_02002C14 *FUN_02002D94(u32 param0, u32 param1);
+struct UnkStruct_02002C14_sub *FUN_02002D94(u32 param0, u32 param1);
u32 FontFunc(u32 fontId, struct TextPrinter *printer);
u32 FUN_02002DE0(u32 param0, u16 *str, u32 param2);
u32 FUN_02002E14(u32 param0, struct String *str, u32 param2);
s32 GetFontAttribute(u8 fontId, s32 attr);
-void FUN_02002ED0(u32 layer, u32 baseAddr, u32 heap_id);
+void FUN_02002ED0(enum GFBgLayer layer, u32 baseAddr, u32 heap_id);
void FUN_02002EEC(u32 layer, u32 baseAddr, u32 heap_id);
s32 FUN_02002F08(u32 param0, struct String *str, u32 param2);
u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3);
diff --git a/include/script_buffers.h b/include/script_buffers.h
index b9f0e268..e5c39291 100644
--- a/include/script_buffers.h
+++ b/include/script_buffers.h
@@ -104,7 +104,7 @@ void BufferMonthNameAbbr(struct ScrStrBufs * mgr, u32 idx, u32 month);
void ScrStrBufs_UpperFirstChar(struct ScrStrBufs * mgr, u32 idx);
void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, struct String * src);
void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr);
-struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4);
+struct UnkStruct_0200B870 * MessagePrinter_new(u32 color1, u32 color2, u32 color3, u32 heap_id);
void MessagePrinter_delete(struct UnkStruct_0200B870 * a0);
void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, struct Window * a2, int a3, int a4);
void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, struct Window *window, int x, int y);
diff --git a/include/string16.h b/include/string16.h
index 69ea4e30..f42ff918 100644
--- a/include/string16.h
+++ b/include/string16.h
@@ -2,6 +2,7 @@
#define POKEDIAMOND_STRING16_H
#include "string_util.h"
+#include "unk_02021590.h"
struct String
{
@@ -12,12 +13,6 @@ struct String
u8 padding[2];
};
-struct UnkStruct_0202199C
-{
- u8 filler_00[0x70];
- int (*unk_70)(struct UnkStruct_0202199C *, int);
-};
-
#define STR16_MAGIC 0xB6F8D2EC
struct String * String_ctor(u32 count, u32 heap_id);
@@ -25,8 +20,8 @@ BOOL StringCompare(struct String *, struct String *);
void CopyU16ArrayToStringN(struct String *, u16 *, u32); // copy
void StringSetEmpty(struct String *); // set empty
struct String * StringDup(struct String *, u32 heap_id);
-s32 StringGetWidth(struct UnkStruct_0202199C * r7, const u16 * arr, u32 r6);
-s32 StringGetWidth_SingleLine_HandleClearToControlCode(struct UnkStruct_0202199C * r6, const u16 * arr);
+s32 StringGetWidth(struct FontData * r7, const u16 * arr, u32 r6);
+s32 StringGetWidth_SingleLine_HandleClearToControlCode(struct FontData * r6, const u16 * arr);
void String_dtor(struct String * str);
void StringCopy(struct String * dest, struct String * src);
void String16_FormatInteger(struct String * str, int num, u32 ndigits, int strConvMode, BOOL whichCharset);
diff --git a/include/unk_02021590.h b/include/unk_02021590.h
new file mode 100644
index 00000000..6ed73bb8
--- /dev/null
+++ b/include/unk_02021590.h
@@ -0,0 +1,52 @@
+#ifndef POKEDIAMOND_UNK_02021590_H
+#define POKEDIAMOND_UNK_02021590_H
+
+#include "filesystem.h"
+#include "font.h"
+
+struct FontGraphicHeader
+{
+ u32 headerSize;
+ u32 widthDataStart;
+ u32 numGlyphs;
+ u8 fixedWidth;
+ u8 fixedHeight;
+ u8 glyphWidth;
+ u8 glyphHeight;
+};
+
+struct FontData
+{
+ u32 glyphAccessMode;
+ void (*uncompGlyphFunc)(struct FontData *, u16, struct UnkStruct_02002C14_sub *);
+ u32 glyphShape;
+ u32 glyphSize;
+ void * narcReadBuf;
+ u8 glyphReadBuf[0x40];
+ NARC * narc;
+ u32 fileId;
+ struct FontGraphicHeader gfxHeader;
+ BOOL isFixedWidthFont;
+ int (*glyphWidthFunc)(struct FontData *, int);
+ u8 * glyphWidths;
+};
+
+struct FontData *FontData_new(NarcId narcId, s32 fileId, u32 unk2, BOOL unk3, u32 heap_id);
+void FontData_delete(struct FontData * ptr);
+void FontData_ModeSwitch(struct FontData * ptr, u32 a1, u32 heap_id);
+void FontData_Init(struct FontData *ptr, NarcId narcId, s32 fileId, BOOL unk, u32 heap_id);
+void FontData_FreeWidthsAndNarc(struct FontData * ptr);
+void InitFontResources(struct FontData * ptr, u32 a1, u32 heap_id);
+void InitFontResources_FromPreloaded(struct FontData * ptr, u32 heap_id);
+void InitFontResources_LazyFromNarc(struct FontData * ptr, u32 heap_id);
+void FreeLoadedFontResources(struct FontData * ptr);
+void FreeLoadedFontResources_FromPreloaded(struct FontData * ptr);
+void FreeLoadedFontResources_LazyFromNarc(struct FontData * ptr);
+void TryLoadGlyph(struct FontData * ptr, u32 param1, struct UnkStruct_02002C14_sub * ptr2);
+void DecompressGlyphTiles_FromPreloaded(struct FontData * ptr, u16 param1, struct UnkStruct_02002C14_sub * param2);
+void DecompressGlyphTiles_LazyFromNarc(struct FontData * ptr, u16 param1, struct UnkStruct_02002C14_sub * param2);
+u32 GetStringWidth(struct FontData * ptr, const u16 * str, u32 letterSpacing);
+int GetGlyphWidth_VariableWidth(struct FontData * ptr, int a1);
+int GetGlyphWidth_FixedWidth(struct FontData * ptr, int a1);
+
+#endif //POKEDIAMOND_UNK_02021590_H