diff options
Diffstat (limited to 'src/field/fldeff_secretpower.c')
-rw-r--r-- | src/field/fldeff_secretpower.c | 484 |
1 files changed, 0 insertions, 484 deletions
diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c deleted file mode 100644 index bf8e98403..000000000 --- a/src/field/fldeff_secretpower.c +++ /dev/null @@ -1,484 +0,0 @@ -#include "global.h" -#include "event_data.h" -#include "fieldmap.h" -#include "field_effect.h" -#include "field_player_avatar.h" -#include "metatile_behavior.h" -#include "metatile_behaviors.h" -#include "overworld.h" -#include "pokemon_menu.h" -#include "rom6.h" -#include "script.h" -#include "secret_base.h" -#include "constants/songs.h" -#include "sound.h" - -extern u8 gUnknown_081A2CE6[]; -extern u8 gUnknown_081A2D3E[]; -extern u8 gUnknown_081A2D96[]; - -const u8 gSpriteImage_83D198C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/0.4bpp"); -const u8 gSpriteImage_83D1A0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/1.4bpp"); -const u8 gSpriteImage_83D1A8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/2.4bpp"); -const u8 gSpriteImage_83D1B0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/3.4bpp"); -const u8 gSpriteImage_83D1B8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/4.4bpp"); -const u8 gUnusedEmptySpace_83D1C0C[32] = {0}; -const u16 gFieldEffectObjectPalette7[] = INCBIN_U16("graphics/field_effect_objects/palettes/07.gbapal"); -const u8 gSpriteImage_83D1C4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/0.4bpp"); -const u8 gSpriteImage_83D1CCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/1.4bpp"); -const u8 gSpriteImage_83D1D4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/2.4bpp"); -const u8 gSpriteImage_83D1DCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/3.4bpp"); -const u8 gSpriteImage_83D1E4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/4.4bpp"); -const u8 gSpriteImage_83D1ECC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/0.4bpp"); -const u8 gSpriteImage_83D1F4C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/1.4bpp"); -const u8 gSpriteImage_83D1FCC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/2.4bpp"); -const u8 gSpriteImage_83D204C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/3.4bpp"); -const u8 gSpriteImage_83D20CC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/4.4bpp"); -const u8 gSpriteImage_83D214C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/5.4bpp"); // unused -const u16 gFieldEffectObjectPalette8[] = INCBIN_U16("graphics/field_effect_objects/palettes/08.gbapal"); -const u8 gSpriteImage_83D21EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/0.4bpp"); -const u8 gSpriteImage_83D22EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/1.4bpp"); -const u8 gSpriteImage_83D23EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/2.4bpp"); - -const struct OamData gOamData_83D24EC = -{ - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = 0, - .x = 0, - .matrixNum = 0, - .size = 1, - .tileNum = 0, - .priority = 2, - .paletteNum = 0, - .affineParam = 0, -}; - -const union AnimCmd gSpriteAnim_83D24F4[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_END, -}; - -const union AnimCmd gSpriteAnim_83D250C[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_END, -}; - -const union AnimCmd gSpriteAnim_83D2524[] = -{ - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gSpriteAnim_83D253C[] = -{ - ANIMCMD_FRAME(0, 8, .hFlip = TRUE), - ANIMCMD_FRAME(1, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_FRAME(3, 8, .hFlip = TRUE), - ANIMCMD_FRAME(4, 8, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gSpriteAnim_83D2554[] = -{ - ANIMCMD_FRAME(4, 8, .hFlip = TRUE), - ANIMCMD_FRAME(3, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_FRAME(1, 8, .hFlip = TRUE), - ANIMCMD_FRAME(0, 8, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gSpriteAnim_83D256C[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_END, -}; - -const union AnimCmd *const gSpriteAnimTable_83D2584[] = -{ - gSpriteAnim_83D24F4, -}; - -const union AnimCmd *const gSpriteAnimTable_83D2588[] = -{ - gSpriteAnim_83D250C, - gSpriteAnim_83D2524, - gSpriteAnim_83D253C, - gSpriteAnim_83D2554, -}; - -const union AnimCmd *const gSpriteAnimTable_83D2598[] = -{ - gSpriteAnim_83D256C, -}; - -const struct SpriteFrameImage gSpriteImageTable_83D259C[] = -{ - {gSpriteImage_83D198C, 0x80}, - {gSpriteImage_83D1A0C, 0x80}, - {gSpriteImage_83D1A8C, 0x80}, - {gSpriteImage_83D1B0C, 0x80}, - {gSpriteImage_83D1B8C, 0x80}, -}; - -const struct SpriteFrameImage gSpriteImageTable_83D25C4[] = -{ - {gSpriteImage_83D1ECC, 0x80}, - {gSpriteImage_83D1F4C, 0x80}, - {gSpriteImage_83D1FCC, 0x80}, - {gSpriteImage_83D204C, 0x80}, - {gSpriteImage_83D20CC, 0x80}, -}; - -const struct SpriteFrameImage gSpriteImageTable_83D25EC[] = -{ - {gSpriteImage_83D1C4C, 0x80}, - {gSpriteImage_83D1CCC, 0x80}, - {gSpriteImage_83D1D4C, 0x80}, - {gSpriteImage_83D1DCC, 0x80}, - {gSpriteImage_83D1E4C, 0x80}, -}; - -void sub_80C644C(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D2614 = -{ - .tileTag = 0xFFFF, - .paletteTag = 4099, - .oam = &gOamData_83D24EC, - .anims = gSpriteAnimTable_83D2584, - .images = gSpriteImageTable_83D259C, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C644C, -}; - -void sub_80C6598(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D262C = -{ - .tileTag = 0xFFFF, - .paletteTag = 4104, - .oam = &gOamData_83D24EC, - .anims = gSpriteAnimTable_83D2588, - .images = gSpriteImageTable_83D25C4, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C6598, -}; - -void sub_80C66BC(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D2644 = -{ - .tileTag = 0xFFFF, - .paletteTag = 4104, - .oam = &gOamData_83D24EC, - .anims = gSpriteAnimTable_83D2598, - .images = gSpriteImageTable_83D25EC, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C66BC, -}; - -const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003}; -const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008}; - -void sub_80C639C(void); -void sub_80C63E8(void); -void sub_80C6468(struct Sprite *); -void sub_80C6498(struct Sprite *); -void sub_80C64A8(void); -void sub_80C64F4(void); -void sub_80C65C4(struct Sprite *); -void sub_80C65FC(struct Sprite *); -void sub_80C660C(void); -void sub_80C6658(void); -void sub_80C66D8(struct Sprite *sprite); -void sub_80C6708(struct Sprite *sprite); - -void sub_80C6264(void) -{ - sub_80BBFD8(&gUnknown_0203923C, gMapHeader.events); - sub_80BB5E4(); -} - -void sub_80C6280(void) -{ - switch (gFieldEffectArguments[1]) - { - case 1: - gFieldEffectArguments[5] = 8; - gFieldEffectArguments[6] = 40; - break; - case 2: - gFieldEffectArguments[5] = 8; - gFieldEffectArguments[6] = 8; - break; - case 3: - gFieldEffectArguments[5] = -8; - gFieldEffectArguments[6] = 24; - break; - case 4: - gFieldEffectArguments[5] = 24; - gFieldEffectArguments[6] = 24; - break; - } -} - -bool8 SetUpFieldMove_SecretPower(void) -{ - u8 behavior; - - sub_80BB63C(); - - if (gSpecialVar_Result == 1 || player_get_direction_lower_nybble() != DIR_NORTH) - return FALSE; - - GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y); - behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y); - - if (MetatileBehavior_IsSecretBaseCave(behavior) == TRUE) - { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C639C; - return TRUE; - } - - if (MetatileBehavior_IsSecretBaseTree(behavior) == TRUE) - { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C64A8; - return TRUE; - } - - if (MetatileBehavior_IsSecretBaseShrub(behavior) == TRUE) - { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C660C; - return TRUE; - } - - return FALSE; -} - -void sub_80C639C(void) -{ - gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2CE6); -} - -bool8 FldEff_UseSecretPowerCave(void) -{ - u8 taskId = oei_task_add(); - - gTasks[taskId].data[8] = (uintptr_t)sub_80C63E8 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C63E8; - - return FALSE; -} - -void sub_80C63E8(void) -{ - FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_CAVE); - FieldEffectStart(FLDEFF_SECRET_POWER_CAVE); -} - -bool8 FldEff_SecretPowerCave(void) -{ - sub_80C6280(); - CreateSprite( - &gSpriteTemplate_83D2614, - gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], - gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], - 148); - return FALSE; -} - -void sub_80C644C(struct Sprite *sprite) -{ - PlaySE(SE_W088); - sprite->data[0] = 0; - sprite->callback = sub_80C6468; -} - -void sub_80C6468(struct Sprite *sprite) -{ - if (sprite->data[0] < 40) - { - sprite->data[0]++; - if (sprite->data[0] == 20 ) - sub_80BB800(); - } - else - { - sprite->data[0] = 0; - sprite->callback = sub_80C6498; - } -} - -void sub_80C6498(struct Sprite *sprite) -{ - FieldEffectStop(sprite, FLDEFF_SECRET_POWER_CAVE); - EnableBothScriptContexts(); -} - -void sub_80C64A8(void) -{ - gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2D3E); -} - -bool8 FldEff_UseSecretPowerTree(void) -{ - u8 taskId = oei_task_add(); - - gTasks[taskId].data[8] = (uintptr_t)sub_80C64F4 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C64F4; - - return FALSE; -} - -void sub_80C64F4(void) -{ - FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_TREE); - FieldEffectStart(FLDEFF_SECRET_POWER_TREE); -} - -bool8 FldEff_SecretPowerTree(void) -{ - s16 behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y) & 0xFFF; - - if (behavior == MB_SECRET_BASE_SPOT_TREE_1) - { - gFieldEffectArguments[7] = 0; - } - - if (behavior == MB_SECRET_BASE_SPOT_TREE_2) - { - gFieldEffectArguments[7] = 2; - } - - sub_80C6280(); - - CreateSprite( - &gSpriteTemplate_83D262C, - gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], - gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], - 148); - - if (gFieldEffectArguments[7] == 1 || gFieldEffectArguments[7] == 3) - sub_80BB800(); - - return FALSE; -} - -void sub_80C6598(struct Sprite *sprite) -{ - PlaySE(SE_W010); - sprite->animNum = gFieldEffectArguments[7]; - sprite->data[0] = 0; - sprite->callback = sub_80C65C4; -} - -void sub_80C65C4(struct Sprite *sprite) -{ - sprite->data[0]++; - - if (sprite->data[0] >= 40) - { - if (gFieldEffectArguments[7] == 0 || gFieldEffectArguments[7] == 2) - sub_80BB800(); - sprite->data[0] = 0; - sprite->callback = sub_80C65FC; - } -} - - -void sub_80C65FC(struct Sprite *sprite) -{ - FieldEffectStop(sprite, FLDEFF_SECRET_POWER_TREE); - EnableBothScriptContexts(); -} - -void sub_80C660C(void) -{ - gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2D96); -} - -bool8 FldEff_UseSecretPowerShrub(void) -{ - u8 taskId = oei_task_add(); - - gTasks[taskId].data[8] = (uintptr_t)sub_80C6658 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C6658; - - return FALSE; -} - -void sub_80C6658(void) -{ - FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_SHRUB); - FieldEffectStart(FLDEFF_SECRET_POWER_SHRUB); -} - -bool8 FldEff_SecretPowerShrub(void) -{ - sub_80C6280(); - CreateSprite( - &gSpriteTemplate_83D2644, - gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], - gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], - 148); - return FALSE; -} - -void sub_80C66BC(struct Sprite *sprite) -{ - PlaySE(SE_W077); - sprite->data[0] = 0; - sprite->callback = sub_80C66D8; -} - -void sub_80C66D8(struct Sprite *sprite) -{ - if (sprite->data[0] < 40) - { - sprite->data[0]++; - if (sprite->data[0] == 20 ) - sub_80BB800(); - } - else - { - sprite->data[0] = 0; - sprite->callback = sub_80C6708; - } -} - - -void sub_80C6708(struct Sprite *sprite) -{ - FieldEffectStop(sprite, FLDEFF_SECRET_POWER_SHRUB); - EnableBothScriptContexts(); -} |