diff options
Diffstat (limited to 'include/decoration.h')
-rwxr-xr-x | include/decoration.h | 123 |
1 files changed, 85 insertions, 38 deletions
diff --git a/include/decoration.h b/include/decoration.h index abeb43086..01a00ee91 100755 --- a/include/decoration.h +++ b/include/decoration.h @@ -1,17 +1,6 @@ #ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H -enum DecoCat { - /*0*/ DECOCAT_DESK, - /*1*/ DECOCAT_CHAIR, - /*2*/ DECOCAT_PLANT, - /*3*/ DECOCAT_ORNAMENT, - /*4*/ DECOCAT_MAT, - /*5*/ DECOCAT_POSTER, - /*6*/ DECOCAT_DOLL, - /*7*/ DECOCAT_CUSHION -}; - enum DecoId { /*000*/ DECOR_NONE, /*001*/ DECOR_SMALL_DESK, @@ -136,16 +125,57 @@ enum DecoId { /*120*/ DECOR_REGISTEEL_DOLL }; +enum DecorPerm { + /* + * The nomenclature here describes collision and placement permissions, in that order. + */ + DECORPERM_SOLID_FLOOR, + DECORPERM_PASS_FLOOR, + DECORPERM_BEHIND_FLOOR, + DECORPERM_NA_WALL, + DECORPERM_SOLID_MAT +}; + +enum DecorShape { + /* + * Width-x-height + */ + DECORSHAPE_1x1, + DECORSHAPE_2x1, + DECORSHAPE_3x1, // unused + DECORSHAPE_4x2, + DECORSHAPE_2x2, + DECORSHAPE_1x2, + DECORSHAPE_1x3, // unused + DECORSHAPE_2x4, + DECORSHAPE_3x3, + DECORSHAPE_3x2 +}; + +enum DecoCat { + /* + * In which category you can find the decoration in the PC. + */ + /*0*/ DECORCAT_DESK, + /*1*/ DECORCAT_CHAIR, + /*2*/ DECORCAT_PLANT, + /*3*/ DECORCAT_ORNAMENT, + /*4*/ DECORCAT_MAT, + /*5*/ DECORCAT_POSTER, + /*6*/ DECORCAT_DOLL, + /*7*/ DECORCAT_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; + /*0x11*/ u8 permission; + /*0x12*/ u8 shape; + /*0x13*/ u8 category; /*0x14*/ u16 price; - /*0x18*/ u8 *description; - /*0x1c*/ u16 *tiles; + /*0x18*/ const u8 *description; + /*0x1c*/ const u16 *tiles; }; struct DecoPCPointers @@ -164,9 +194,9 @@ struct DecorationInventory struct UnkStruct_803EC860 { - u8 *var0; - u8 *var4; - u8 *var8; + const u8 *tiles; + const u8 *y; + const u8 *x; u8 size; }; @@ -177,38 +207,36 @@ extern u8 ewram[]; struct UnkStruct_02038900 { - /*0x000; 0x02038900*/ struct Decoration *decoration; - /*0x004; 0x02038904*/ u16 unk_004[0x40]; - /*0x084; 0x02038984*/ u8 unk_084[0x800]; - /*0x884; 0x02039184*/ u16 unk_884[16]; + /*0x000; 0x02038900*/ const struct Decoration *decoration; + /*0x004; 0x02038904*/ u16 tiles[0x40]; + /*0x084; 0x02038984*/ u8 image[0x800]; + /*0x884; 0x02039184*/ u16 palette[16]; }; struct UnkStruct_083EC900 { - u8 unk_0; - u8 unk_1; - u8 unk_2; - u8 unk_3; + u8 shape; + u8 size; + u8 x; + u8 y; }; struct UnkStruct_020391B4 { - u8 var00; - u8 var01; - u8 var02; - u8 var03; - u16 var04; - u8 pad06[2]; + u8 decorId; + u8 width; + u8 height; + u16 flagId; }; -extern const struct UnkStruct_083EC900 gUnknown_083EC900[10]; +extern const struct UnkStruct_083EC900 gUnknown_083EC900[]; extern const struct SpritePalette gUnknown_083EC954; extern const struct SpritePalette gUnknown_083ECA5C; extern const struct SpritePalette gUnknown_083ECA64; extern const struct SpriteTemplate gSpriteTemplate_83EC93C; extern const struct SpriteTemplate gSpriteTemplate_83ECA88; -extern struct Decoration gDecorations[0x77]; +extern const struct Decoration gDecorations[]; extern struct UnkStruct_02038900 gUnknown_02038900; extern u8 *gUnknown_020388D0; extern u8 gUnknown_081A2F7B[]; @@ -235,13 +263,13 @@ extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; extern void (*gUnknown_0300485C)(void); -extern void (*gUnknown_083EC96C[2][2])(u8); +extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; extern const u16 gUnknown_083EC654[3]; extern const struct DecorationInventory gDecorationInventories[]; -extern const u8 *gUnknown_083EC5E4[]; -extern const u8 *gUnknown_083EC624[]; +extern const u8 *const gUnknown_083EC5E4[]; +extern const u8 *const gUnknown_083EC624[]; extern u8 gUnknown_020388F7[]; extern const struct MenuAction2 gUnknown_083EC604[]; extern const struct MenuAction3 gUnknown_083EC634[]; @@ -326,4 +354,23 @@ void sub_81016F4(void); void sub_8101824(u8); void sub_8109A30(u8); +void sub_80FF160(u8); +void sub_80FF5BC(u8); +void sub_80FF058(u8); +void sub_8100A0C(u8); +void sub_8101700(u8); +void sub_81017A0(u8); +void sub_8109D04(u8); + +void sub_80FED3C(u8); +void sub_80FFAB0(u8); +void sub_80FFB08(u8); +void sub_81000C4(u8); +void sub_810026C(u8); +void sub_8100F88(u8); +void sub_8100FB4(u8); +void sub_810153C(u8); +void sub_8101590(u8); +void sub_8101848(u8); + #endif // GUARD_DECORATION_H |