diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-13 08:43:43 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-06-13 08:43:43 -0400 |
commit | 520514d47d13dd912ef649b0b24470bb0a1e8525 (patch) | |
tree | 77a137c50634a53f9cc034607e45005858880ea9 | |
parent | e9de0f52112375193fe0568cca34d7c2df17c89b (diff) |
data/decoration.s, 3
-rwxr-xr-x | data/decoration.s | 61 | ||||
-rwxr-xr-x | include/decoration.h | 15 | ||||
-rwxr-xr-x[-rw-r--r--] | include/sprite.h | 4 | ||||
-rwxr-xr-x | src/decoration.c | 46 |
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) |