diff options
Diffstat (limited to 'src/fldeff_groundshake.c')
-rw-r--r-- | src/fldeff_groundshake.c | 123 |
1 files changed, 110 insertions, 13 deletions
diff --git a/src/fldeff_groundshake.c b/src/fldeff_groundshake.c index 34524ffd5..92aaf5238 100644 --- a/src/fldeff_groundshake.c +++ b/src/fldeff_groundshake.c @@ -5,7 +5,6 @@ #include "event_data.h" #include "field_camera.h" #include "field_map_obj.h" -#include "fldeff_groundshake.h" #include "malloc.h" #include "random.h" #include "script.h" @@ -13,9 +12,109 @@ #include "sprite.h" #include "task.h" -extern const struct SpriteTemplate gUnknown_08617E34; -extern const struct SpriteTemplate gUnknown_08617E60; +// structures +struct InnerStruct203CF18 +{ + u8 filler[0xC4]; +}; + +struct Struct203CF18 { + u8 taskId; + struct InnerStruct203CF18 unk4; +}; //size = 0xC8 + +// extern data +extern const struct SpriteSheet gUnknown_08617D94[]; +extern const s16 gUnknown_08617D64[][3]; + +// extern functions +extern void sub_8151B68(struct InnerStruct203CF18 *, const u8*); +extern void sub_8151B3C(struct InnerStruct203CF18 *); +extern void sub_8151CA8(struct InnerStruct203CF18 *, u8, u8); +extern void sub_8151C50(struct InnerStruct203CF18 *, u8, u8); +extern void sub_8151D28(struct InnerStruct203CF18 *, u8, u8); +extern void sub_8151E50(struct InnerStruct203CF18 *); + +// static functions +static void sub_81BE808(u8 taskId); +static void sub_81BE900(u8 taskId); +static void sub_81BE968(void); +static void sub_81BE9C0(u8 taskId); +static void sub_81BEA00(u8 taskId); +static void sub_81BEA20(void); +static void sub_81BEAD8(struct Sprite* sprite); +//.rodata +static const u8 gUnknown_08617E18[] = {0x3b, 0x43, 0x61, 0x00, 0x0f, 0x05, 0xff, 0x9b}; + +static const union AnimCmd gSpriteAnim_8617E20[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const gSpriteAnimTable_8617E28[] = +{ + gSpriteAnim_8617E20, +}; + +static const struct OamData gUnknown_08617E2C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate gUnknown_08617E34 = { + 0x0FA0, 0xFFFF, &gUnknown_08617E2C, gSpriteAnimTable_8617E28, NULL, gDummySpriteAffineAnimTable, sub_81BEAD8 +}; + +static const union AnimCmd gSpriteAnim_8617E4C[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const gSpriteAnim_8617E54[] = +{ + gSpriteAnim_8617E4C, +}; + +static const struct OamData gSpriteAnim_8617E58 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate gUnknown_08617E60 = { + 0x0FA0, 0xFFFF, &gSpriteAnim_8617E58, gSpriteAnim_8617E54, NULL, gDummySpriteAffineAnimTable, sub_81BEAD8 +}; + +// ewram +EWRAM_DATA struct Struct203CF18 *gUnknown_0203CF18 = NULL; + +//text bool8 sub_81BE66C(void) { if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A)) @@ -90,7 +189,7 @@ void sub_81BE7F4(void) CreateTask(sub_81BE808, 0x8); } -void sub_81BE808(u8 taskId) +static void sub_81BE808(u8 taskId) { u8 mapObjectIdBuffer; struct MapObject *fieldMapObject; @@ -109,7 +208,7 @@ void sub_81BE808(u8 taskId) } } -void sp136_strengh_sound(u8 a, u8 b, u8 c, u8 d) +static void sp136_strengh_sound(u8 a, u8 b, u8 c, u8 d) { u8 taskId; @@ -123,7 +222,7 @@ void sp136_strengh_sound(u8 a, u8 b, u8 c, u8 d) PlaySE(SE_W070); } -void sub_81BE900(u8 taskId) +static void sub_81BE900(u8 taskId) { s16 *data; @@ -145,7 +244,7 @@ void sub_81BE900(u8 taskId) } } -void sub_81BE968(void) +static void sub_81BE968(void) { u8 taskId; @@ -154,8 +253,6 @@ void sub_81BE968(void) gTasks[taskId].data[0]++; } -extern const struct SpriteSheet gUnknown_08617D94[]; - void sub_81BE994(void) { LoadSpriteSheets(gUnknown_08617D94); @@ -164,7 +261,7 @@ void sub_81BE994(void) sp136_strengh_sound(2, 1, 16, 3); } -void sub_81BE9C0(u8 taskId) +static void sub_81BE9C0(u8 taskId) { u16 *data; @@ -174,14 +271,14 @@ void sub_81BE9C0(u8 taskId) gTasks[taskId].func = sub_81BEA00; } -void sub_81BEA00(u8 taskId) +static void sub_81BEA00(u8 taskId) { FreeSpriteTilesByTag(4000); DestroyTask(taskId); EnableBothScriptContexts(); } -void sub_81BEA20(void) +static void sub_81BEA20(void) { u8 count; u8 spriteId; @@ -202,7 +299,7 @@ void sub_81BEA20(void) } } -void sub_81BEAD8(struct Sprite* sprite) +static void sub_81BEAD8(struct Sprite* sprite) { sprite->data[1] += 2; sprite->pos2.y = (sprite->data[1] / 2); |