diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-24 00:08:53 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-24 00:08:53 -0400 |
commit | 0774f50bd4670527eee29347273fd63d69e74c25 (patch) | |
tree | 73b0ec5cf8ede086835d16fb56638b0d6dea9eee /src | |
parent | a5a8d5d04a7d5186aa1dcb1a8db1df3be5214016 (diff) |
Through Task_PokedexAreaScreen_1
Diffstat (limited to 'src')
-rw-r--r-- | src/pokedex_area_screen.c | 119 |
1 files changed, 118 insertions, 1 deletions
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index d5ca06395..6e16e4e5c 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -3,6 +3,8 @@ #include "global.h" #include "constants/species.h" #include "constants/maps.h" +#include "constants/songs.h" +#include "sound.h" #include "ewram.h" #include "main.h" #include "palette.h" @@ -47,7 +49,8 @@ struct PokedexAreaScreenEwramStruct u8 unk061F; u16 unk0620[0x20]; struct Sprite * unk0660[0x20]; - u8 filler_06E0[8]; + u8 filler_06E0[4]; + u8 * unk06E4; struct RegionMap unk06E8; u8 unk0F68[16]; u8 filler_0F78[0x3C]; @@ -1186,3 +1189,117 @@ void sub_8111360(void) break; } } + +void Task_PokedexAreaScreen_0(u8 taskId); +void Task_PokedexAreaScreen_1(u8 taskId); +void CreateAreaMarkerSprites(void); +void LoadAreaUnknownGraphics(void); +void CreateAreaUnknownSprites(void); +void DestroyAreaSprites(void); + +void ShowPokedexAreaScreen(u16 species, u8 * a1) +{ + u8 taskId; + gPokedexAreaScreenPtr->unk000E = species; + gPokedexAreaScreenPtr->unk06E4 = a1; + a1[0] = 0; + taskId = CreateTask(Task_PokedexAreaScreen_0, 0); + gTasks[taskId].data[0] = 0; +} + +void Task_PokedexAreaScreen_0(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG1_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + REG_BG0HOFS = 0; + REG_BG0VOFS = -8; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + break; + case 1: + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + break; + case 2: + InitRegionMap(&gPokedexAreaScreenPtr->unk06E8, FALSE); + StringFill(gPokedexAreaScreenPtr->unk0F68, CHAR_SPACE, 16); + break; + case 3: + sub_8110824(); + break; + case 4: + if (DrawAreaGlow()) + return; + break; + case 5: + CreateRegionMapPlayerIcon(1, 1); + sub_80FB2A4(0, -8); + break; + case 6: + CreateAreaMarkerSprites(); + break; + case 7: + LoadAreaUnknownGraphics(); + break; + case 8: + CreateAreaUnknownSprites(); + break; + case 9: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, 0); + break; + case 10: + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + sub_8111084(); + REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + break; + case 11: + gTasks[taskId].func = Task_PokedexAreaScreen_1; + gTasks[taskId].data[0] = 0; + return; + } + gTasks[taskId].data[0]++; +} + +void Task_PokedexAreaScreen_1(u8 taskId) +{ + sub_8111110(); + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + case 0: + if (gPaletteFade.active) + return; + break; + case 1: + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[1] = 1; + PlaySE(SE_PC_OFF); + } + else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) + { + gTasks[taskId].data[1] = 2; + PlaySE(SE_Z_PAGE); + } + else + return; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, 0); + break; + case 3: + if (gPaletteFade.active) + return; + DestroyAreaSprites(); + gPokedexAreaScreenPtr->unk06E4[0] = gTasks[taskId].data[1]; + DestroyTask(taskId); + return; + } + gTasks[taskId].data[0]++; +} |