blob: 052de3d2c9e61fd81d22572f9c065952f1978e83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#ifndef MENU_H
#define MENU_H
#include "global.h"
typedef struct {
u16 unk;
u8 transitionType;
u8 unk4;
u8 state;
u8 unk6;
u8 unk7;
u8 unk8;
u16 unk2;
u16 fadeInTime;
u8 filler2[4];
u32 filler3[3];
} MenuControls;
typedef struct {
u8 aButtonX;
u8 aButtonY;
u8 aButtonText;
u8 bButtonX;
u8 bButtonY;
u8 bButtonText;
u8 rButtonX;
u8 rButtonY;
u8 rButtonText;
u8 settingDict[0];
} PACKED KeyButtonLayout;
extern void sub_080A70AC(const KeyButtonLayout*);
typedef struct {
u8 field_0x0;
u8 column_idx;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 menuType;
u8 overlayType;
u8 storyPanelIndex;
u16 transitionTimer;
u16 field_0xa;
u8* field_0xc;
u8 focusCoords[2];
u8 field_0x12;
u8 unk13;
u8 unk14;
u8 unk15;
u8 unk16;
// While struct offsets are usually loaded indirectly, this one is often loaded
// directly in the code. This happens when you take the address off the field with '&`.
// Perhaps they had a macro to cast this to different sized arrays.
u8 selectMtx;
u8 filler18[0x12];
u8 unk2a;
int field_0x2c;
} Menu;
static_assert(sizeof(Menu) == 0x30);
extern Menu gMenu;
#endif
|