#ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H enum DecorationPermission { /* * The nomenclature here describes collision and placement permissions, in that order. */ DECORPERM_SOLID_FLOOR, DECORPERM_PASS_FLOOR, DECORPERM_BEHIND_FLOOR, DECORPERM_NA_WALL, DECORPERM_SPRITE, }; enum DecorationShape { DECORSHAPE_1x1, DECORSHAPE_2x1, DECORSHAPE_3x1, // unused DECORSHAPE_4x2, DECORSHAPE_2x2, DECORSHAPE_1x2, DECORSHAPE_1x3, // unused DECORSHAPE_2x4, DECORSHAPE_3x3, DECORSHAPE_3x2, }; enum DecorationCategory { DECORCAT_DESK, DECORCAT_CHAIR, DECORCAT_PLANT, DECORCAT_ORNAMENT, DECORCAT_MAT, DECORCAT_POSTER, DECORCAT_DOLL, DECORCAT_CUSHION, DECORCAT_COUNT, }; struct Decoration { u8 id; u8 name[16]; u8 permission; u8 shape; u8 category; u16 price; const u8 *description; const u16 *tiles; }; struct DecorationPCContext { u8 *items; u8 *pos; u8 size; u8 isPlayerRoom; }; extern const struct Decoration gDecorations[]; extern EWRAM_DATA u8 *gCurDecorationItems; extern EWRAM_DATA u8 gCurDecorationIndex; void InitDecorationContextItems(void); void DoSecretBaseDecorationMenu(u8 taskId); void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decor); void DoPlayerRoomDecorationMenu(u8 taskId); void ShowDecorationCategoriesWindow(u8 taskId); void CopyDecorationCategoryName(u8 *dest, u8 decorCat); bool8 IsSelectedDecorInThePC(void); u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag); #endif //GUARD_DECORATION_H