diff options
Diffstat (limited to 'include')
-rwxr-xr-x | include/decoration.h | 123 | ||||
-rw-r--r--[-rwxr-xr-x] | include/global.fieldmap.h | 0 | ||||
-rwxr-xr-x | include/menu.h | 8 | ||||
-rwxr-xr-x | include/sprite.h | 4 |
4 files changed, 92 insertions, 43 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 diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index b8bab45d8..b8bab45d8 100755..100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h diff --git a/include/menu.h b/include/menu.h index 04ab78b27..98d7afcc3 100755 --- a/include/menu.h +++ b/include/menu.h @@ -12,13 +12,13 @@ struct MenuAction struct MenuAction2 { const u8 *text; - u8 (*func)(u8); + void (*func)(u8); }; struct MenuAction3 { - u8 (*func1)(u8); - u8 (*func2)(u8); + void (*func1)(u8); + void (*func2)(u8); }; void CloseMenu(void); @@ -64,7 +64,7 @@ s8 ProcessMenuInputNoWrap_(void); u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8); u8 sub_8072A18(const u8 *, u8, u16, u8, u32); u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32); -int sub_8072AB0(u8 *, u8, u16, u8, u8, u32); +int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32); void MenuPrint_RightAligned(u8 *, u8, u8); void sub_8072B80(u8 *, u8, u8, u8 *); void sub_8072BD8(const u8 *, u8, u8, u16); diff --git a/include/sprite.h b/include/sprite.h index bda635885..13c03ab51 100755 --- a/include/sprite.h +++ b/include/sprite.h @@ -16,6 +16,8 @@ struct SpriteFrameImage u16 size; }; +#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} + struct SpritePalette { const u16 *data; @@ -142,7 +144,7 @@ struct SpriteTemplate u16 paletteTag; const struct OamData *oam; const union AnimCmd *const *anims; - struct SpriteFrameImage *images; + const struct SpriteFrameImage *images; const union AffineAnimCmd *const *affineAnims; void (*callback)(struct Sprite *); }; |