diff options
Diffstat (limited to 'src/fldeff_groundshake.c')
-rw-r--r-- | src/fldeff_groundshake.c | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/src/fldeff_groundshake.c b/src/fldeff_groundshake.c deleted file mode 100644 index bfd583981..000000000 --- a/src/fldeff_groundshake.c +++ /dev/null @@ -1,322 +0,0 @@ -#include "global.h" -#include "event_data.h" -#include "event_object_movement.h" -#include "field_camera.h" -#include "fldeff.h" -#include "alloc.h" -#include "random.h" -#include "roulette_util.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "task.h" -#include "constants/flags.h" -#include "constants/maps.h" -#include "constants/songs.h" - -// structures -struct Struct203CF18 { - u8 taskId; - struct InnerStruct203CF18 unk4; -}; //size = 0xC8 - -// extern data -extern const struct SpriteSheet gUnknown_08617D94[]; -extern const s16 gUnknown_08617D64[][3]; - -// 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 -const struct InnerStruct203CF18_3 gUnknown_08617E18 = { - .unk0 = 0x433b, - .unk2 = 0x61, - .unk4 = 0x0F, - .unk5 = 0x05, - .unk6 = 0xFF, - .unk7_0 = 0xB, - .unk7_4 = 0x1, - .unk7_6 = 0, - .unk7_7 = 1, -}; - -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 = { - .tileTag = 0x0FA0, - .paletteTag = 0xFFFF, - .oam = &gUnknown_08617E2C, - .anims = gSpriteAnimTable_8617E28, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = 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 = { - .tileTag = 0x0FA0, - .paletteTag = 0xFFFF, - .oam = &gSpriteAnim_8617E58, - .anims = gSpriteAnim_8617E54, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81BEAD8 -}; - -// ewram -EWRAM_DATA struct Struct203CF18 *gUnknown_0203CF18 = NULL; - -// text -bool8 sub_81BE66C(void) -{ - if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111))) - return FALSE; - else - return FlagGet(FLAG_0x14E); -} - -static void sub_81BE698(u8 taskId) -{ - sub_8151E50(&(gUnknown_0203CF18->unk4)); -} - -void sub_81BE6AC(void) -{ - gUnknown_0203CF18 = NULL; -} - -void sub_81BE6B8(void) -{ - if (gUnknown_0203CF18 != NULL) - { - gUnknown_0203CF18 = NULL; - return; - } - - if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(ROUTE111) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(ROUTE111) || !FlagGet(FLAG_0x14E)) - return; - - gUnknown_0203CF18 = (struct Struct203CF18 *)AllocZeroed(sizeof(struct Struct203CF18)); - sub_8151B3C(&(gUnknown_0203CF18->unk4)); - sub_8151B68(&(gUnknown_0203CF18->unk4), &gUnknown_08617E18); - sub_8151CA8(&(gUnknown_0203CF18->unk4), 1, 1); - gUnknown_0203CF18->taskId = CreateTask(sub_81BE698, 0xFF); -} - -void sub_81BE72C(void) -{ - if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(ROUTE111) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(ROUTE111) - || !FlagGet(FLAG_0x14E) || gUnknown_0203CF18 == NULL) - return; - - if( FuncIsActiveTask(sub_81BE698)) - DestroyTask(gUnknown_0203CF18->taskId); - - sub_8151D28(&(gUnknown_0203CF18->unk4), 1, 1); - sub_8151C50(&(gUnknown_0203CF18->unk4), 1, 1); - Free(gUnknown_0203CF18); - gUnknown_0203CF18 = NULL; -} - -void sub_81BE79C(void) -{ - u16 rand; - bool8 chance; - - if (VarGet(VAR_0x40CB) != 0) - { - FlagClear(FLAG_0x14E); - return; - } - rand = Random(); - chance = rand & 1; - if (FlagGet(FLAG_0x09D) == TRUE) - chance = TRUE; - if (chance) - { - FlagSet(FLAG_0x14E); - sub_81BE6B8(); - return; - } - FlagClear(FLAG_0x14E); -} - -void sub_81BE7F4(void) -{ - CreateTask(sub_81BE808, 0x8); -} - -static void sub_81BE808(u8 taskId) -{ - u8 eventObjectIdBuffer; - struct EventObject *fieldEventObject; - struct EventObject *playerAvatarEventObject; - - TryGetEventObjectIdByLocalIdAndMap(0x2D, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectIdBuffer); - fieldEventObject = &(gEventObjects[eventObjectIdBuffer]); - gSprites[fieldEventObject->spriteId].pos2.y += 4; - playerAvatarEventObject = &(gEventObjects[gPlayerAvatar.eventObjectId]); - - if((gSprites[fieldEventObject->spriteId].pos1.y + gSprites[fieldEventObject->spriteId].pos2.y) >= - (gSprites[playerAvatarEventObject->spriteId].pos1.y + gSprites[playerAvatarEventObject->spriteId].pos2.y)) - { - DestroyTask(taskId); - EnableBothScriptContexts(); - } -} - -static void sp136_strengh_sound(u8 a, u8 b, u8 c, u8 d) -{ - u8 taskId; - - taskId = CreateTask(sub_81BE900, 0x9); - gTasks[taskId].data[0] = b; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = c; - gTasks[taskId].data[3] = d; - gTasks[taskId].data[4] = a; - SetCameraPanningCallback(NULL); - PlaySE(SE_W070); -} - -static void sub_81BE900(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - data[1]++; - if ((data[1] % data[3]) == 0) - { - data[1] = 0; - data[2]--; - data[0] = -data[0]; - data[4] = -data[4]; - SetCameraPanning(data[0], data[4]); - if (!data[2]) - { - sub_81BE968(); - DestroyTask(taskId); - InstallCameraPanAheadCallback(); - } - } -} - -static void sub_81BE968(void) -{ - u8 taskId = FindTaskIdByFunc(sub_81BE9C0); - if (taskId != 0xFF) - gTasks[taskId].data[0]++; -} - -void sub_81BE994(void) -{ - LoadSpriteSheets(gUnknown_08617D94); - sub_81BEA20(); - CreateTask(sub_81BE9C0, 0x8); - sp136_strengh_sound(2, 1, 16, 3); -} - -static void sub_81BE9C0(u8 taskId) -{ - u16 *data = gTasks[taskId].data; - - if (++data[1] == 1000 || data[0] == 17) - gTasks[taskId].func = sub_81BEA00; -} - -static void sub_81BEA00(u8 taskId) -{ - FreeSpriteTilesByTag(4000); - DestroyTask(taskId); - EnableBothScriptContexts(); -} - -static void sub_81BEA20(void) -{ - u8 i; - u8 spriteId; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_08617E60, gUnknown_08617D64[i][0] + 120, gUnknown_08617D64[i][1], 8); - gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.paletteNum = 0; - gSprites[spriteId].data[0] = i; - } - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_08617E34, gUnknown_08617D64[i][0] + 115, gUnknown_08617D64[i][1] - 3, 8); - gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.paletteNum = 0; - gSprites[spriteId].data[0] = i; - } -} - -static void sub_81BEAD8(struct Sprite* sprite) -{ - sprite->data[1] += 2; - sprite->pos2.y = (sprite->data[1] / 2); - if (((sprite->pos1.y) + (sprite->pos2.y)) > gUnknown_08617D64[sprite->data[0]][2]) - { - DestroySprite(sprite); - sub_81BE968(); - } -} |