mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-08 02:15:44 -05:00
78 lines
1.8 KiB
C
78 lines
1.8 KiB
C
#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 WindowHeader
|
|
{
|
|
/* 0x0 */ u8 f0;
|
|
/* 0x1 */ u8 f1;
|
|
/* 0x2 */ u8 f2;
|
|
/* 0x3 */ u8 f3;
|
|
} WindowHeader;
|
|
|
|
#include "structs/str_position.h"
|
|
|
|
// size: 0x18
|
|
typedef struct Window
|
|
{
|
|
u8 unk0;
|
|
/* 0x4 */ s32 type;
|
|
/* 0x8 */ DungeonPos pos;
|
|
/* 0xC */ s16 width;
|
|
/* 0xE */ s16 height;
|
|
s16 unk10; // In most cases it's the same as height. If it's smaller than height, the window may look glitchy. Maybe something with tile allocation/how the window is filled?
|
|
s16 unk12;
|
|
const WindowHeader *unk14;
|
|
} Window;
|
|
|
|
#define WINDOW_DUMMY (Window) { .unk0 = 0, .type = WINDOW_TYPE_NORMAL, .pos = { .x = 0, .y = 0 }, .width = 0, .height = 0, .unk10 = 0, .unk12 = 0, .unk14 = NULL }
|
|
|
|
#define WINDOW_TYPE_0 0
|
|
#define WINDOW_TYPE_WITHOUT_BORDER 1
|
|
//#define WINDOW_TYPE_2 2
|
|
#define WINDOW_TYPE_NORMAL 3
|
|
//#define WINDOW_TYPE_4 4
|
|
#define WINDOW_TYPE_FILL_TRANSPARENT 5
|
|
#define WINDOW_TYPE_WITH_HEADER 6
|
|
#define WINDOW_TYPE_7 7
|
|
|
|
#define MAX_WINDOWS 4
|
|
|
|
// size: 0x60
|
|
typedef struct Windows
|
|
{
|
|
/* 0x0 */ Window id[MAX_WINDOWS];
|
|
// Something ugly, so that sub_805FD74 could match weird compiler memcpy/stack initialization
|
|
#ifndef NONMATCHING
|
|
u8 fakeMatch[0];
|
|
#endif // NONMATCHING
|
|
} Windows;
|
|
|
|
#endif // GUARD_STR_TEXT_H
|