summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-13 08:43:43 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-13 08:43:43 -0400
commit520514d47d13dd912ef649b0b24470bb0a1e8525 (patch)
tree77a137c50634a53f9cc034607e45005858880ea9
parente9de0f52112375193fe0568cca34d7c2df17c89b (diff)
data/decoration.s, 3
-rwxr-xr-xdata/decoration.s61
-rwxr-xr-xinclude/decoration.h15
-rwxr-xr-x[-rw-r--r--]include/sprite.h4
-rwxr-xr-xsrc/decoration.c46
4 files changed, 56 insertions, 70 deletions
diff --git a/data/decoration.s b/data/decoration.s
index a8a509761..9a228dcaa 100755
--- a/data/decoration.s
+++ b/data/decoration.s
@@ -4,67 +4,6 @@
.section .rodata
.align 2
-gSpriteAnimTable_83EC930:: @ 83EC930
- .4byte gSpriteAnim_83EC928
-
- .align 2
-gSpriteImageTable_83EC934: @ 83EC934
- obj_frame_tiles gUnknown_02038900+0x84, 0x800
-
- .align 2
-gSpriteTemplate_83EC93C:: @ 83EC93C
- spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8
-
- .align 2
-gUnknown_083EC954:: @ 83EC954
- obj_pal gUnknown_02038900+0x884, 3000
-
- .align 2
-gUnknown_083EC95C:: @ 83EC95C
- .4byte sub_81000C4
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC964:: @ 83EC964
- .4byte sub_810026C
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC96C:: @ 83EC96C
- .4byte sub_80FFAB0
- .4byte sub_80FFB08
- .4byte sub_8100F88
- .4byte sub_8100FB4
-
-gUnknown_083EC97C:: @ 83EC97C
- .byte 4, 4, 4, 4, 0, 3, 3, 0
-
-gUnknown_083EC984:: @ 83EC984
- .byte 4, 4, 4, 4, 0, 4, 3, 0
-
- .align 2
-gUnknown_083EC98C::
- .incbin "graphics/unknown/83EC98C.gbapal"
-
- .align 2
-Unknown_3EC9AC: @ 83EC9AC
- .incbin "graphics/unknown/83EC9AC.gbapal"
-
- .align 2
-gUnknown_083EC9CC:: @ 83EC9CC
- .4byte sub_810153C
- .4byte sub_8100EEC
-
- .align 2
-gUnknown_083EC9D4:: @ 83EC9D4
- .4byte sub_8101590
- .4byte sub_8100EEC
-
- .align 2
-gSpriteImage_83EC9DC:: @ 83EC9DC
- .incbin "graphics/unknown_sprites/83EC9DC.4bpp"
-
- .align 2
gUnknown_083ECA5C:: @ 83ECA5C
obj_pal gUnknown_083EC98C, 0x0008
diff --git a/include/decoration.h b/include/decoration.h
index 0f64662be..761e49e70 100755
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -179,8 +179,8 @@ struct UnkStruct_02038900
{
/*0x000; 0x02038900*/ const struct Decoration *decoration;
/*0x004; 0x02038904*/ u16 unk_004[0x40];
- /*0x084; 0x02038984*/ u8 unk_084[0x800];
- /*0x884; 0x02039184*/ u16 unk_884[16];
+ /*0x084; 0x02038984*/ u8 image[0x800];
+ /*0x884; 0x02039184*/ u16 palette[16];
};
struct UnkStruct_083EC900
@@ -235,7 +235,7 @@ extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
extern void (*gUnknown_0300485C)(void);
-extern void (*gUnknown_083EC96C[2][2])(u8);
+const struct YesNoFuncTable gUnknown_083EC96C[];
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
extern const u16 gUnknown_083EC654[3];
@@ -334,4 +334,13 @@ void sub_8101700(u8);
void sub_81017A0(u8);
void sub_8109D04(u8);
+void sub_81000C4(u8);
+void sub_810026C(u8);
+void sub_80FFAB0(u8);
+void sub_80FFB08(u8);
+void sub_8100F88(u8);
+void sub_8100FB4(u8);
+void sub_810153C(u8);
+void sub_8101590(u8);
+
#endif // GUARD_DECORATION_H
diff --git a/include/sprite.h b/include/sprite.h
index bda635885..13c03ab51 100644..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 *);
};
diff --git a/src/decoration.c b/src/decoration.c
index eb932db9e..1796c1c2c 100755
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1473,6 +1473,42 @@ const union AnimCmd gSpriteAnim_83EC928[] = {
ANIMCMD_END
};
+const union AnimCmd *const gSpriteAnimTable_83EC930[] = {
+ gSpriteAnim_83EC928
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83EC934[] = {
+ {.data = (u8 *)&gUnknown_02038900.image, .size = sizeof gUnknown_02038900.image}
+};
+
+const struct SpriteTemplate gSpriteTemplate_83EC93C = {
+ .tileTag = 0xffff,
+ .paletteTag = 3000,
+ .oam = &gUnknown_020391AC,
+ .anims = gSpriteAnimTable_83EC930,
+ .images = gSpriteImageTable_83EC934,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81009A8
+};
+
+const struct SpritePalette gUnknown_083EC954 = {.data = (u16 *)&gUnknown_02038900.palette, .tag = 3000};
+
+const struct YesNoFuncTable gUnknown_083EC95C = {.yesFunc = sub_81000C4, .noFunc = sub_810065C};
+const struct YesNoFuncTable gUnknown_083EC964 = {.yesFunc = sub_810026C, .noFunc = sub_810065C};
+const struct YesNoFuncTable gUnknown_083EC96C[] = {
+ {.yesFunc = sub_80FFAB0, .noFunc = sub_80FFB08},
+ {.yesFunc = sub_8100F88, .noFunc = sub_8100FB4}
+};
+
+const u8 gUnknown_083EC97C[] = {4, 4, 4, 4, 0, 3, 3, 0};
+const u8 gUnknown_083EC984[] = {4, 4, 4, 4, 0, 4, 3, 0};
+
+const u16 gUnknown_083EC98C[] = INCBIN_U16("graphics/unknown/83EC98C.gbapal");
+const u16 Unknown_3EC9AC[] = INCBIN_U16("graphics/unknown/83EC9AC.gbapal");
+const struct YesNoFuncTable gUnknown_083EC9CC = {.yesFunc = sub_810153C, .noFunc = sub_8100EEC};
+const struct YesNoFuncTable gUnknown_083EC9D4 = {.yesFunc = sub_8101590, .noFunc = sub_8100EEC};
+const u32 gSpriteImage_83EC9DC[] = INCBIN_U32("graphics/unknown_sprites/83EC9DC.4bpp");
+
// text
extern u8 gUnknown_0815F399[];
@@ -2299,7 +2335,7 @@ void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_0203
sub_81008BC(unk_02038900);
sub_8100930(unk_02038900->decoration->shape);
sub_8100874(unk_02038900);
- sub_810070C(unk_02038900->unk_884, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12);
+ sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12);
LoadSpritePalette(&gUnknown_083EC954);
gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83EC93C, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 0);
@@ -3270,11 +3306,11 @@ void sub_8100494(u8 taskId)
{
if (gTasks[taskId].data[10] == 1)
{
- gUnknown_083EC96C[gTasks[taskId].data[12]][0](taskId);
+ gUnknown_083EC96C[gTasks[taskId].data[12]].yesFunc(taskId);
return;
} else if (gTasks[taskId].data[10] == 2)
{
- gUnknown_083EC96C[gTasks[taskId].data[12]][1](taskId);
+ gUnknown_083EC96C[gTasks[taskId].data[12]].noFunc(taskId);
return;
}
if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP)
@@ -3349,7 +3385,7 @@ void sub_81006D0(struct UnkStruct_02038900 *unk_02038900)
u16 i;
for (i=0; i<0x800; i++)
{
- unk_02038900->unk_084[i] = 0;
+ unk_02038900->image[i] = 0;
}
for (i=0; i<0x40; i++)
{
@@ -3419,7 +3455,7 @@ void sub_8100874(struct UnkStruct_02038900 *unk_02038900)
{
u16 i;
for (i=0; i<0x40; i++)
- sub_8100740(&unk_02038900->unk_084[i * 32], unk_02038900->unk_004[i]);
+ sub_8100740(&unk_02038900->image[i * 32], unk_02038900->unk_004[i]);
}
u16 sub_810089C(u16 a0)