summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-13 22:01:30 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-13 22:01:30 -0400
commit212bb0566f12c44685e39e3285d4332a88a8feb1 (patch)
tree169d21413d481de3f18e5509df0b0addc3882dd1 /include
parent355498d85b71536580025364ccaa5ceb94c4194d (diff)
parent134cb1c9ec1d1a3a82a88d5065bf0758f9d906a6 (diff)
Merge branch 'decoration' into decoration_inventory
Diffstat (limited to 'include')
-rwxr-xr-xinclude/decoration.h123
-rw-r--r--[-rwxr-xr-x]include/global.fieldmap.h0
-rwxr-xr-xinclude/menu.h8
-rwxr-xr-xinclude/sprite.h4
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 *);
};