Document and cleanup some decoration code

This commit is contained in:
Marcus Huderle
2019-04-06 12:41:55 -05:00
committed by huderlem
parent 6a14cd418e
commit fe12f2f4b3
12 changed files with 1020 additions and 1080 deletions

View File

@@ -1,7 +1,8 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
enum DecorPerm {
enum DecorationPermission
{
/*
* The nomenclature here describes collision and placement permissions, in that order.
*/
@@ -9,13 +10,11 @@ enum DecorPerm {
DECORPERM_PASS_FLOOR,
DECORPERM_BEHIND_FLOOR,
DECORPERM_NA_WALL,
DECORPERM_SPRITE
DECORPERM_SPRITE,
};
enum DecorShape {
/*
* Width-x-height
*/
enum DecorationShape
{
DECORSHAPE_1x1,
DECORSHAPE_2x1,
DECORSHAPE_3x1, // unused
@@ -25,53 +24,52 @@ enum DecorShape {
DECORSHAPE_1x3, // unused
DECORSHAPE_2x4,
DECORSHAPE_3x3,
DECORSHAPE_3x2
DECORSHAPE_3x2,
};
enum DecorCat {
/*
* 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
enum DecorationCategory
{
DECORCAT_DESK,
DECORCAT_CHAIR,
DECORCAT_PLANT,
DECORCAT_ORNAMENT,
DECORCAT_MAT,
DECORCAT_POSTER,
DECORCAT_DOLL,
DECORCAT_CUSHION,
DECORCAT_COUNT,
};
struct Decoration
{
/*0x00*/ u8 id;
/*0x01*/ u8 name[16];
/*0x11*/ u8 permission;
/*0x12*/ u8 shape;
/*0x13*/ u8 category;
/*0x14*/ u16 price;
/*0x18*/ const u8 *description;
/*0x1c*/ const u16 *tiles;
u8 id;
u8 name[16];
u8 permission;
u8 shape;
u8 category;
u16 price;
const u8 *description;
const u16 *tiles;
};
struct DecorPCPointers
struct DecorationPCContext
{
/* 0x00 */ u8 *items;
/* 0x04 */ u8 *pos;
/* 0x08 */ u8 size;
/* 0x09 */ u8 isPlayerRoom;
u8 *items;
u8 *pos;
u8 size;
u8 isPlayerRoom;
};
extern const struct Decoration gDecorations[];
extern EWRAM_DATA u8 *gCurDecorInventoryItems;
extern EWRAM_DATA u8 *gCurDecorationItems;
extern EWRAM_DATA u8 gCurDecorationIndex;
void sub_8126968(void);
void sub_8126AD8(u8 taskId);
void InitDecorationContextItems(void);
void DoSecretBaseDecorationMenu(u8 taskId);
void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decor);
void sub_8126B2C(u8 taskId);
void sub_8127208(u8 taskId);
void sub_8127250(u8 *dest, u8 decorCat);
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);