#ifndef GUARD_STR_TEXT_H #define GUARD_STR_TEXT_H // size: 0x48 typedef struct UnkTextStruct1 { s16 unk0; s16 unk2; s16 unk4; s16 unk6; s16 unk8; u32 unkC; u32 unk10; u32 unk14; u32 *unk18; u32 *unk1C; s32 unk20; s32 unk24; u32 *unk28; // Somewhere in VRAM s32 unk2C; u32 *unk30; // Somewhere in VRAM? u32 *unk34; s32 unk38; u32 *unk3C; u32 *unk40; u8 unk44; bool8 unk45; u8 unk46; } UnkTextStruct1; // size: 0x4 typedef struct UnkTextStruct2_sub { // I haven't found a func that reads these separately yet, but simply making an arr[2] will cause assignments to break. // Some funcs only match with this union for some reason even though they don't access the variables separately... // The first func to break is currently sub_801A5D8 in kecleon_bros4.c // The first func I matched that uses the array is sub_8006554 in text2.c (using the separated fields doesn't match or get even close) union { struct { s16 unk0; s16 unk2; } separate; s16 arr[2]; } unk0; } UnkTextStruct2_sub; typedef struct UnkTextStruct2_sub2 { u8 f0; u8 f1; u8 f2; u8 f3; } UnkTextStruct2_sub2; // size: 0x18 typedef struct UnkTextStruct2 { u8 unk0; u8 fill1[0x4 - 0x1]; s32 unk4; UnkTextStruct2_sub unk8; s16 unkC; s16 unkE; s16 unk10; s16 unk12; const UnkTextStruct2_sub2 *unk14; // Pointer to 4 bytes which may be x-coord related. Could be window's header? } UnkTextStruct2; #endif // GUARD_STR_TEXT_H