summaryrefslogtreecommitdiff
path: root/include/decoration.h
blob: bad0bd9d6e506b3778529d23fb62918afa1e0c50 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H

enum {
    /*0*/ DECOCAT_DESK,
    /*1*/ DECOCAT_CHAIR,
    /*2*/ DECOCAT_PLANT,
    /*3*/ DECOCAT_ORNAMENT,
    /*4*/ DECOCAT_MAT,
    /*5*/ DECOCAT_POSTER,
    /*6*/ DECOCAT_DOLL,
    /*7*/ DECOCAT_CUSHION
};

struct Decoration
{
    /*0x00*/ u8 id;
    /*0x01*/ u8 name[16];
    /*0x11*/ u8 decor_field_11;
    /*0x12*/ u8 decor_field_12;
    /*0x13*/ u8 decor_field_13;
    /*0x14*/ u16 price;
    /*0x18*/ u8 *description;
    /*0x1c*/ u16 *tiles;
};

struct DecoPCPointers
{
    /* 0x00 */ u8 *items;
    /* 0x04 */ u8 *pos;
    /* 0x08 */ u8 size;
    /* 0x09 */ u8 isPlayerRoom;
};

struct DecorationInventory
{
    u8 *items;
    u8 size;
};

extern u8 ewram[];
#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))

extern struct Decoration gDecorations[0x77];
extern void sub_80FF394(u16 unkr0, u16 unkr1, u16 unkr2);

extern Script gUnknown_0815F399;
extern u8 *gUnknown_020388D0;
extern u8 gUnknown_020388D4;
extern u8 gUnknown_020388D5;
extern u8 gUnknown_020388F2;
extern u8 gUnknown_020388F3;
extern u8 gUnknown_020388F4;
extern u8 gUnknown_020388F5;
extern u8 gUnknown_020388F6;
extern u8 gUnknown_020388D6[16];
extern u8 gUnknown_020388E6[12];

extern const u16 gUnknown_083EC654[3];
extern const struct DecorationInventory gDecorationInventories[];
extern const u8 *gUnknown_083EC5E4[];
extern const u8 *gUnknown_083EC624[];
extern u8 gUnknown_020388F7[];
extern const struct MenuAction2 gUnknown_083EC604[];
extern const struct MenuAction3 gUnknown_083EC634[];
extern const u8 gUnknown_083EC65A[];

extern void sub_80B3068(u8); // src/shop
extern u8 sub_8134194(u8); // src/decoration_inventory
extern void sub_8134104(u8); // src/decoration_inventory
extern void sub_80F944C(void); // src/menu_helpers
extern void sub_80F9480(u8 *, u8); // src/menu_helpers
extern void sub_80F94A4(u8, u8 *, u8, s16);
extern void sub_80F94F8(u8 *); // src/menu_helpers
extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers
extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers
extern void LoadScrollIndicatorPalette(void); // src/menu_helpers
extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers
extern void ReshowPlayerPC(u8); // src/player_pc

void sub_80FE2B4(void);
void Task_DecorationPCProcessMenuInput(u8);
void sub_80FE394(void);
void gpu_pal_decompress_alloc_tag_and_upload(u8);
void sub_80FE5AC(u8);
void sub_80FE604(u8);
void sub_80FE728(u8);
void sub_80FE758(u8);
void sub_80FE868(u8);
void sub_80FE948(u8);
void sub_80FEABC(u8, u8);
void sub_80FEC94(u8);
void sub_80FECB8(u8);
void sub_80FECE0(u8);
void sub_80FEF50(u8);
void sub_8109DAC(u8);

#endif // GUARD_DECORATION_H