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 | |
parent | a5a8d5d04a7d5186aa1dcb1a8db1df3be5214016 (diff) |
Through Task_PokedexAreaScreen_1
-rw-r--r-- | asm/pokedex_area_screen.s | 332 | ||||
-rw-r--r-- | src/pokedex_area_screen.c | 119 |
2 files changed, 118 insertions, 333 deletions
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index a4b103e23..e74ecc074 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -5,338 +5,6 @@ .text - thumb_func_start ShowPokedexAreaScreen -ShowPokedexAreaScreen: @ 81113AC - push {r4,lr} - ldr r2, _081113DC @ =gSharedMem - movs r3, 0 - movs r4, 0 - strh r0, [r2, 0xE] - ldr r0, _081113E0 @ =0x000006e4 - adds r2, r0 - str r1, [r2] - strb r3, [r1] - ldr r0, _081113E4 @ =Task_PokedexAreaScreen_0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081113E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081113DC: .4byte gSharedMem -_081113E0: .4byte 0x000006e4 -_081113E4: .4byte Task_PokedexAreaScreen_0 -_081113E8: .4byte gTasks - thumb_func_end ShowPokedexAreaScreen - - thumb_func_start Task_PokedexAreaScreen_0 -Task_PokedexAreaScreen_0: @ 81113EC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08111414 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0xB - bls _0811140A - b _08111540 -_0811140A: - lsls r0, 2 - ldr r1, _08111418 @ =_0811141C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111414: .4byte gTasks -_08111418: .4byte _0811141C - .align 2, 0 -_0811141C: - .4byte _0811144C - .4byte _08111488 - .4byte _08111496 - .4byte _081114B8 - .4byte _081114BE - .4byte _081114CA - .4byte _081114DE - .4byte _081114E4 - .4byte _081114EA - .4byte _081114F0 - .4byte _08111502 - .4byte _08111528 -_0811144C: - movs r1, 0x80 - lsls r1, 19 - movs r3, 0xC4 - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08111478 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - ldr r2, _0811147C @ =REG_BG0VOFS - ldr r3, _08111480 @ =0x0000fff8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _08111484 @ =REG_BG2VOFS - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _08111540 - .align 2, 0 -_08111478: .4byte REG_BG0HOFS -_0811147C: .4byte REG_BG0VOFS -_08111480: .4byte 0x0000fff8 -_08111484: .4byte REG_BG2VOFS -_08111488: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - b _08111540 -_08111496: - ldr r4, _081114B4 @ =gSharedMem + 0x6E8 - adds r0, r4, 0 - movs r1, 0 - bl InitRegionMap - movs r0, 0x88 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl StringFill - b _08111540 - .align 2, 0 -_081114B4: .4byte gSharedMem + 0x6E8 -_081114B8: - bl sub_8110824 - b _08111540 -_081114BE: - bl DrawAreaGlow - lsls r0, 24 - cmp r0, 0 - bne _08111550 - b _08111540 -_081114CA: - movs r0, 0x1 - movs r1, 0x1 - bl CreateRegionMapPlayerIcon - movs r1, 0x8 - negs r1, r1 - movs r0, 0 - bl sub_80FB2A4 - b _08111540 -_081114DE: - bl CreateAreaMarkerSprites - b _08111540 -_081114E4: - bl LoadAreaUnknownGraphics - b _08111540 -_081114EA: - bl CreateAreaUnknownSprites - b _08111540 -_081114F0: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08111540 -_08111502: - ldr r1, _0811151C @ =REG_BLDCNT - ldr r2, _08111520 @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8111084 - movs r1, 0x80 - lsls r1, 19 - ldr r3, _08111524 @ =0x00007741 - adds r0, r3, 0 - strh r0, [r1] - b _08111540 - .align 2, 0 -_0811151C: .4byte REG_BLDCNT -_08111520: .4byte 0x00003f41 -_08111524: .4byte 0x00007741 -_08111528: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldr r1, _0811153C @ =Task_PokedexAreaScreen_1 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] - b _08111550 - .align 2, 0 -_0811153C: .4byte Task_PokedexAreaScreen_1 -_08111540: - ldr r0, _08111558 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08111550: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111558: .4byte gTasks - thumb_func_end Task_PokedexAreaScreen_0 - - thumb_func_start Task_PokedexAreaScreen_1 -Task_PokedexAreaScreen_1: @ 811155C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8111110 - ldr r1, _08111584 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x1 - beq _081115B4 - cmp r1, 0x1 - bgt _08111588 - cmp r1, 0 - beq _0811159E - b _08111590 - .align 2, 0 -_08111584: .4byte gTasks -_08111588: - cmp r1, 0x2 - beq _081115F8 - cmp r1, 0x3 - beq _0811160A -_08111590: - ldr r0, _081115AC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] -_0811159E: - ldr r0, _081115B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - b _0811163C - .align 2, 0 -_081115AC: .4byte gTasks -_081115B0: .4byte gPaletteFade -_081115B4: - ldr r0, _081115CC @ =gMain - ldrh r2, [r0, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _081115D0 - strh r1, [r5, 0xA] - movs r0, 0x3 - bl PlaySE - b _0811163C - .align 2, 0 -_081115CC: .4byte gMain -_081115D0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _081115EA - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0811164C - ldr r0, _081115F4 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0811164C -_081115EA: - strh r3, [r5, 0xA] - movs r0, 0x6D - bl PlaySE - b _0811163C - .align 2, 0 -_081115F4: .4byte gSaveBlock2 -_081115F8: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0811163C -_0811160A: - ldr r0, _08111630 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - bl DestroyAreaSprites - ldr r0, _08111634 @ =gSharedMem - ldr r1, _08111638 @ =0x000006e4 - adds r0, r1 - ldr r1, [r0] - ldrh r0, [r5, 0xA] - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask - b _0811164C - .align 2, 0 -_08111630: .4byte gPaletteFade -_08111634: .4byte gSharedMem -_08111638: .4byte 0x000006e4 -_0811163C: - ldr r0, _08111654 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0811164C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111654: .4byte gTasks - thumb_func_end Task_PokedexAreaScreen_1 - thumb_func_start CreateAreaMarkerSprites CreateAreaMarkerSprites: @ 8111658 push {r4-r7,lr} 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]++; +} |