diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pokedex.c | 687 |
1 files changed, 681 insertions, 6 deletions
diff --git a/src/pokedex.c b/src/pokedex.c index 3c7647be7..ded629987 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,5 +1,6 @@ #include "gba/gba.h" #include "main.h" +#include "menu.h" #include "palette.h" #include "rng.h" #include "songs.h" @@ -10,9 +11,9 @@ struct PokedexListItem { u16 a; - u8 seen:1; - u8 owned:1; - u8 c; + u16 seen:1; + u16 owned:1; + //u8 c; }; struct PokedexView { @@ -38,8 +39,8 @@ struct PokedexView { u8 unk62D; u8 unk62E; u8 unk62F; - u16 unk630; - u16 unk632; + s16 unk630; + s16 unk632; u16 unk634; u16 unk636; u16 unk638; @@ -65,6 +66,17 @@ extern struct PokedexView *gUnknown_0202FFB4; extern u16 gUnknown_0202FFB8; extern u8 gUnknown_0202FFBA; extern u8 gUnknown_03005CE8; +extern u8 gPokedexMenu_Gfx[]; +extern u8 gUnknown_08E96738[]; +extern u8 gUnknown_08E9C6DC[]; +extern u8 gUnknown_08E96888[]; +extern u8 gUnknown_08E96994[]; +extern u8 gUnknown_083A05CC[]; +extern struct SpritePalette gUnknown_083A05DC[]; +extern u8 gUnknown_0839FA7C[]; +extern u8 gUnknown_0839F67C[]; +extern u8 gPokedexMenu_Pal[]; +extern u8 gUnknown_0839F73C[]; extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); @@ -74,6 +86,14 @@ extern u16 pokedex_count(u8); extern u8 sub_8091E3C(void); extern void sub_80690C8(void); extern void sub_805469C(void); +extern void LoadCompressedObjectPic(void *); +extern void LZ77UnCompVram(const void *, void *); +extern u16 HoennToNationalOrder(u16); +extern u16 NationalToHoennOrder(u16); +extern u16 gPokedexOrder_Alphabetical[]; +extern u16 gPokedexOrder_Weight[]; +extern u16 gPokedexOrder_Height[]; +extern u8 gSpeciesNames[][11]; void ClearPokedexView(struct PokedexView *); void Task_PokedexShowMainScreen(u8 taskId); @@ -108,6 +128,17 @@ void Task_PokedexResultsScreenMenu(u8 taskId); void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); void sub_808CEF8(u8 taskId); void Task_PokedexResultsScreenExitPokedex(u8 taskId); +void sub_808D640(void); +void sub_808E978(u8); +bool8 sub_8090D90(u16, u8); +void sub_808E090(u8, u8, u16); +void sub_808DEB0(u16, u8, u8, u16); +void sub_808DF88(u16, u8, u8, u16); +u8 sub_808DFE4(u16, u8, u8); +u16 sub_808E888(u16); +u32 sub_808E8C8(u16, u16, u16); +void sub_808EE28(struct Sprite *sprite); +u16 sub_8091818(u8, u16, u16, u16); void sub_808C02C(void) { @@ -211,7 +242,7 @@ void CB2_InitPokedex(void) SetVBlankCallback(NULL); sub_8091060(0); addr = (u8 *)VRAM; - size = 0x18000; + size = VRAM_SIZE; while(1) { DmaFill16(3, 0, addr, 0x1000); @@ -715,3 +746,647 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId) gTasks[taskId].func = Task_ClosePokedex; } } + + +bool8 sub_808D344(u8 a) +{ + switch(gMain.state) + { + case 0: + default: + if(gPaletteFade.active) + return 0; + //_0808D39E + SetVBlankCallback(NULL); + gUnknown_0202FFB4->unk64A = a; + sub_8091060(0); + REG_BG2VOFS = gUnknown_0202FFB4->unk62D; + LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM)); + LZ77UnCompVram(gUnknown_08E96738, (void *)(VRAM + 0x6800)); + LZ77UnCompVram(gUnknown_08E9C6DC, (void *)(VRAM + 0x7800)); + DmaClear16(3, VRAM + 0x6000, 0x500); + if(a == 0) + LZ77UnCompVram(gUnknown_08E96888, (void *)(VRAM + 0x6500)); + else + LZ77UnCompVram(gUnknown_08E96994, (void *)(VRAM + 0x6500)); + ResetPaletteFade(); + if(a == 0) + gUnknown_0202FFB4->unk64C_1 = 0; + else + gUnknown_0202FFB4->unk64C_1 = 1; + sub_808D640(); + gMain.state = 1; + break; + case 1: + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + LoadCompressedObjectPic(gUnknown_083A05CC); + LoadSpritePalettes(gUnknown_083A05DC); + sub_808E978(a); + gMain.state++; + break; + case 2: + SetUpWindowConfig(&gWindowConfig_81E7048); + InitMenuWindow(&gWindowConfig_81E7048); + LZ77UnCompVram(gUnknown_0839FA7C, (void *)(VRAM + 0xFF80)); + gMain.state++; + break; + case 3: + if(a == 0) + sub_808D690(gUnknown_0202FFB4->unk612, gUnknown_0202FFB4->unk616); + sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE); + gUnknown_0202FFB4->unk650 = 0; + gUnknown_0202FFB4->unk654 = 0; + gMain.state++; + break; + case 4: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + SetVBlankCallback(sub_808C0B8); + gMain.state++; + break; + case 5: + REG_WININ = 0x3F3F; + REG_WINOUT = 0x1D3F; + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + REG_BLDY = 0; + REG_BG3CNT = 0xF03; + REG_BG1CNT = 0xD01; + REG_BG0CNT = 0xC00; + REG_DISPCNT = 0x9F40; + gMain.state++; + break; + case 6: + if(!gPaletteFade.active) + { + gMain.state = 0; + return 1; + } + else + return 0; + } + return 0; +} + +void sub_808D640(void) +{ + if(gUnknown_0202FFB4->unk64C_1) + LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE); + else if(!sub_806912C()) + LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE); + else + LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE); +} + +//Pokedex sorting function +void sub_808D690(u8 a, u8 mode) +{ + u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever. + s16 i; + + gUnknown_0202FFB4->unk60C = 0; + + switch(a) + { + default: + case 0: + vars[0] = 202; + vars[1] = 1; + break; + case 1: + if(sub_806912C()) + { + vars[0] = 386; + vars[1] = 0; + } + else + { + vars[0] = 202; + vars[1] = a; + } + break; + } + + switch(mode) + { + case 0: + { + if(vars[1]) + { + for(i = 0; i < vars[0]; i++) + { + vars[2] = HoennToNationalOrder(i + 1); + gUnknown_0202FFB4->unk0[i].a = vars[2]; + gUnknown_0202FFB4->unk0[i].seen = sub_8090D90(vars[2], 0); + gUnknown_0202FFB4->unk0[i].owned = sub_8090D90(vars[2], 1); + if(gUnknown_0202FFB4->unk0[i].seen) + gUnknown_0202FFB4->unk60C = i + 1; + } + } + else + { + bool32 r10; + s16 r5; + + r10 = r5 = i = 0; + for(i = 0; i < vars[0]; i++) + { + vars[2] = i + 1; + if(sub_8090D90(vars[2], 0)) + r10 = 1; + if(r10) + { + asm(""); //Needed to match for some reason + gUnknown_0202FFB4->unk0[r5].a = vars[2]; + gUnknown_0202FFB4->unk0[r5].seen = sub_8090D90(vars[2], 0); + gUnknown_0202FFB4->unk0[r5].owned = sub_8090D90(vars[2], 1); + if(gUnknown_0202FFB4->unk0[r5].seen) + gUnknown_0202FFB4->unk60C = r5 + 1; + r5++; + } + } + } + break; + } + case 1: + for(i = 0; i < 411; i++) + { + vars[2] = gPokedexOrder_Alphabetical[i]; + + if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 0)) + { + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2]; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = sub_8090D90(vars[2], 1); + gUnknown_0202FFB4->unk60C++; + } + } + break; + case 2: + for(i = 385; i >= 0; i--) + { + vars[2] = gPokedexOrder_Weight[i]; + + if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + { + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2]; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1; + gUnknown_0202FFB4->unk60C++; + } + } + break; + case 3: + for(i = 0; i < 386; i++) + { + vars[2] = gPokedexOrder_Weight[i]; + + if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + { + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2]; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1; + gUnknown_0202FFB4->unk60C++; + } + } + break; + case 4: + for(i = 385; i >=0; i--) + { + vars[2] = gPokedexOrder_Height[i]; + + if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + { + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2]; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1; + gUnknown_0202FFB4->unk60C++; + } + } + break; + case 5: + for(i = 0; i < 386; i++) + { + vars[2] = gPokedexOrder_Height[i]; + + if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + { + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2]; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1; + gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1; + gUnknown_0202FFB4->unk60C++; + } + } + break; + } + for(i = gUnknown_0202FFB4->unk60C; i < 386; i++) + { + gUnknown_0202FFB4->unk0[i].a |= 0xFFFF; + gUnknown_0202FFB4->unk0[i].seen = 0; + gUnknown_0202FFB4->unk0[i].owned = 0; + } +} + +void sub_808DBE8(u8 a, u16 b, u16 c) +{ + switch(a) + { + case 0: + default: + { + u16 i; + s16 _b = b - 5; + + for(i = 0; i <= 10; i++) + { + if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF) + sub_808E090(0x11, i * 2, c); + else + { + sub_808E090(0x11, i * 2, c); + if(gUnknown_0202FFB4->unk0[_b].seen) + { + sub_808DEB0(_b, 0x12, i * 2, c); + sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, i * 2, c); + sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, i * 2); + } + else + { + sub_808DEB0(_b, 0x12, i * 2, c); + sub_808DF88(0, 0x11, i * 2, c); + sub_808DFE4(0, 0x17, i * 2); + } + } + _b++; + } + break; + } + case 1: + { + s16 _b = b - 5; + + if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF) + sub_808E090(0x11, gUnknown_0202FFB4->unk630 * 2, c); + else + { + sub_808E090(0x11, gUnknown_0202FFB4->unk630 * 2, c); + if(gUnknown_0202FFB4->unk0[_b].seen) + { + sub_808DEB0(_b, 0x12, gUnknown_0202FFB4->unk630 * 2, c); + sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, gUnknown_0202FFB4->unk630 * 2, c); + sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, gUnknown_0202FFB4->unk630 * 2); + } + else + { + sub_808DEB0(_b, 0x12, gUnknown_0202FFB4->unk630 * 2, c); + sub_808DF88(0, 0x11, gUnknown_0202FFB4->unk630 * 2, c); + sub_808DFE4(0, 0x17, gUnknown_0202FFB4->unk630 * 2); + } + } + break; + } + case 2: + { + s16 _b = b + 5; + u16 r2 = gUnknown_0202FFB4->unk630 + 10; + + if(r2 > 15) + r2 -= 16; + if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF) + sub_808E090(0x11, r2 * 2, c); + else + { + sub_808E090(0x11, r2 * 2, c); + if(gUnknown_0202FFB4->unk0[_b].seen) + { + sub_808DEB0(_b, 0x12, r2 * 2, c); + sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, r2 * 2, c); + sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, r2 * 2); + } + else + { + sub_808DEB0(_b, 0x12, r2 * 2, c); + sub_808DF88(0, 0x11, r2 * 2, c); + sub_808DFE4(0, 0x17, r2 * 2); + } + } + break; + } + } +} + +void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) +{ + u8 text[4]; + u16 unk[2]; + u16 r7 = gUnknown_0202FFB4->unk0[a].a; + + if(gUnknown_0202FFB4->unk612 == 0) + r7 = NationalToHoennOrder(r7); + unk[0] = 0x3FC; + unk[1] = 0x3FD; + text[0] = r7 / 100 + 0xA1; + text[1] = (r7 % 100) / 10 + 0xA1; + text[2] = (r7 % 100) % 10 + 0xA1; + text[3] = 0xFF; + *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; + *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; + MenuPrint(text, b - 15, c); +} + +void sub_808DF88(u16 a, u8 b, u8 c, u16 d) +{ + u16 unk[2]; + + if(a) + { + unk[0] = 0x3FE; + unk[1] = 0x3FF; + } + else + { + unk[0] = 0; + unk[1] = 0; + } + *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; + *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; +} + +#ifdef NONMATCHING +//FixMe +u8 sub_808DFE4(u16 a, u8 b, u8 c) +{ + u8 text[10]; + u8 i; + u32 species; + + for(i = 0; i < 10; i++) + text[i] = 0; + text[i] = EOS; + species = NationalPokedexNumToSpecies(a); + if(species) + { + for(i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++) + text[i] = gSpeciesNames[species][i]; + } + else + { + for(i = 0; i < 10; i++) + text[i] = 0xAE; + } + sub_80729D8(text, (b - 0x11) * 8 + 0xFC, c * 8, 0); +} +#else +__attribute__((naked)) +u8 sub_808DFE4(u16 a, u8 b, u8 c) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0xC\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + lsls r1, 24\n\ + lsrs r5, r1, 24\n\ + lsls r2, 24\n\ + lsrs r6, r2, 24\n\ + movs r4, 0\n\ + movs r1, 0\n\ +_0808DFF8:\n\ + mov r2, sp\n\ + adds r0, r2, r4\n\ + strb r1, [r0]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x9\n\ + bls _0808DFF8\n\ + adds r0, r2, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ + adds r0, r3, 0\n\ + bl NationalPokedexNumToSpecies\n\ + adds r3, r0, 0\n\ + cmp r3, 0\n\ + beq _0808E058\n\ + movs r4, 0\n\ + ldr r2, _0808E054\n\ + movs r0, 0xB\n\ + adds r1, r3, 0\n\ + muls r1, r0\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + subs r5, 0x11\n\ + lsls r6, 19\n\ + cmp r0, 0xFF\n\ + beq _0808E070\n\ + adds r3, r1, 0\n\ +_0808E032:\n\ + mov r0, sp\n\ + adds r1, r0, r4\n\ + adds r0, r4, r3\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + adds r0, r4, r3\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xFF\n\ + beq _0808E070\n\ + cmp r4, 0x9\n\ + bls _0808E032\n\ + b _0808E070\n\ + .align 2, 0\n\ +_0808E054: .4byte gSpeciesNames\n\ +_0808E058:\n\ + movs r4, 0\n\ + subs r5, 0x11\n\ + lsls r6, 19\n\ + movs r1, 0xAE\n\ +_0808E060:\n\ + mov r2, sp\n\ + adds r0, r2, r4\n\ + strb r1, [r0]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x9\n\ + bls _0808E060\n\ +_0808E070:\n\ + lsls r1, r5, 27\n\ + movs r0, 0xFC\n\ + lsls r0, 24\n\ + adds r1, r0\n\ + lsrs r1, 24\n\ + lsrs r2, r6, 16\n\ + mov r0, sp\n\ + movs r3, 0\n\ + bl sub_80729D8\n\ + adds r0, r4, 0\n\ + add sp, 0xC\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1\n\ + .syntax divided\n"); +} +#endif + +void sub_808E090(u8 a, u8 b, u16 c) +{ + u8 i; + + for(i = 0; i < 12; i++) + { + *(u16 *)(VRAM + c * 0x800 + b * 64 + (a + i) * 2) = 0; + *(u16 *)(VRAM + 0x40 + c * 0x800 + b * 64 + (a + i) * 2) = 0; + } +} + +void sub_808E0CC(u16 a, u16 b) +{ + u8 i; + u16 unk; + u8 spriteId; + + for(i = 0; i < 4; i++) + gUnknown_0202FFB4->unk61E[i] |= 0xFFFF; + gUnknown_0202FFB4->unk626 = 0xFFFF; + sub_808DBE8(0, a, b); + REG_BG2VOFS = gUnknown_0202FFB4->unk62D; + unk = sub_808E888(a - 1); + if(unk != 0xFFFF) + { + spriteId = sub_808E8C8(unk, 0x60, 0x50); + gSprites[spriteId].callback = sub_808EE28; + gSprites[spriteId].data5 = -32; + } + unk = sub_808E888(a); + if(unk != 0xFFFF) + { + spriteId = sub_808E8C8(unk, 0x60, 0x50); + gSprites[spriteId].callback = sub_808EE28; + gSprites[spriteId].data5 = 0; + } + unk = sub_808E888(a + 1); + if(unk != 0xFFFF) + { + spriteId = sub_808E8C8(unk, 0x60, 0x50); + gSprites[spriteId].callback = sub_808EE28; + gSprites[spriteId].data5 = 32; + } + gUnknown_0202FFB4->unk630 = 0; + gUnknown_0202FFB4->unk632 = 0; +} + +bool8 sub_808E208(u8 a, u8 b, u8 c) +{ + u16 i; + u8 foo; + + if(gUnknown_0202FFB4->unk62E) + { + gUnknown_0202FFB4->unk62E--; + switch(a) + { + case 1: + for(i = 0; i < 4; i++) + { + if(gUnknown_0202FFB4->unk61E[i] != 0xFFFF) + gSprites[gUnknown_0202FFB4->unk61E[i]].data5 += b; + } + foo = 16 * (c - gUnknown_0202FFB4->unk62E) / c; + REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk632 * 16 - foo; + gUnknown_0202FFB4->unk62C -= gUnknown_0202FFB4->unk628; + break; + case 2: + for(i = 0; i < 4; i++) + { + if(gUnknown_0202FFB4->unk61E[i] != 0xFFFF) + gSprites[gUnknown_0202FFB4->unk61E[i]].data5 -= b; + } + foo = 16 * (c - gUnknown_0202FFB4->unk62E) / c; + REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk632 * 16 + foo; + gUnknown_0202FFB4->unk62C += gUnknown_0202FFB4->unk628; + break; + } + return 0; + } + //_0808E36C + else + { + REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk630 * 16; + return 1; + } +} + +void sub_808E398(u8 a, u16 b) +{ + u16 unk; + u8 spriteId; + + gUnknown_0202FFB4->unk632 = gUnknown_0202FFB4->unk630; + switch(a) + { + case 1: + { + unk = sub_808E888(b - 1); + if(unk != 0xFFFF) + { + spriteId = sub_808E8C8(unk, 0x60, 0x50); + gSprites[spriteId].callback = sub_808EE28; + gSprites[spriteId].data5 = 0xFFC0; + } + if(gUnknown_0202FFB4->unk630 > 0) + gUnknown_0202FFB4->unk630--; + else + gUnknown_0202FFB4->unk630 = 0xF; + break; + } + case 2: + { + unk = sub_808E888(b + 1); + if(unk != 0xFFFF) + { + spriteId = sub_808E8C8(unk, 0x60, 0x50); + gSprites[spriteId].callback = sub_808EE28; + gSprites[spriteId].data5 = 0x40; + } + if(gUnknown_0202FFB4->unk630 <= 0xE) + gUnknown_0202FFB4->unk630++; + else + gUnknown_0202FFB4->unk630 = 0; + break; + } + } +} + +/* +u16 sub_808E48C(u16 a, u16 b) +{ + if((gMain.heldKeys & 0x40) || a == 0) + { + //_0808E4B6 + if(gMain.heldKeys & 0x80) + { + + } + //_0808E4CE + } + //_0808E5E4 + else + { + sub_8091818(1, a, 0, gUnknown_0202FFB4->unk60C - 1); + sub_808E398(1, a); + sub_808DBE8(1, a, b); + PlaySE(0x6C); + } + +} +*/ |