diff options
-rwxr-xr-x[-rw-r--r--] | asm/use_pokeblock.s | 145 | ||||
-rwxr-xr-x | include/pokenav.h | 3 | ||||
-rwxr-xr-x | src/use_pokeblock.c | 49 |
3 files changed, 51 insertions, 146 deletions
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index a2c16bc16..27ccf4da3 100644..100755 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -6,151 +6,6 @@ .text - thumb_func_start sub_8136B44 -sub_8136B44: @ 8136B44 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08136B60 @ =gUnknown_02039304 - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x50 - ldrb r1, [r2] - cmp r1, 0x1 - beq _08136B80 - cmp r1, 0x1 - bgt _08136B64 - cmp r1, 0 - beq _08136B6E - b _08136BAE - .align 2, 0 -_08136B60: .4byte gUnknown_02039304 -_08136B64: - cmp r1, 0x2 - beq _08136B98 - cmp r1, 0x3 - beq _08136BA8 - b _08136BAE -_08136B6E: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08136B9C -_08136B80: - ldr r0, _08136B94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08136BAE - movs r0, 0x2 - strb r0, [r2] - b _08136BAE - .align 2, 0 -_08136B94: .4byte gPaletteFade -_08136B98: - bl sub_80F5BDC -_08136B9C: - ldr r1, [r4] - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08136BAE -_08136BA8: - ldr r0, [r0, 0x4] - bl SetMainCallback2 -_08136BAE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8136B44 - - thumb_func_start sub_8136BB8 -sub_8136BB8: @ 8136BB8 - push {r4,lr} - ldr r0, _08136C28 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _08136C2C @ =0x000087dc - adds r0, r1 - ldrb r0, [r0] - bl sub_81370A4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08136C30 @ =gPlayerParty - adds r0, r1 - ldr r4, _08136C34 @ =gUnknown_02039304 - ldr r2, [r4] - adds r2, 0x10 - movs r1, 0x2 - bl GetMonData - ldr r0, [r4] - adds r0, 0x10 - bl StringGetEnd10 - ldr r0, [r4] - adds r0, 0x10 - ldr r1, _08136C38 @ =gOtherText_GetsAPokeBlock - bl StringAppend - ldr r0, _08136C3C @ =gWindowConfig_81E709C - bl BasicInitMenuWindow - movs r0, 0 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, [r4] - adds r0, 0x10 - movs r1, 0x1 - movs r2, 0x11 - bl MenuPrint - movs r0, 0x17 - movs r1, 0xA - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136C28: .4byte gUnknown_083DFEC4 -_08136C2C: .4byte 0x000087dc -_08136C30: .4byte gPlayerParty -_08136C34: .4byte gUnknown_02039304 -_08136C38: .4byte gOtherText_GetsAPokeBlock -_08136C3C: .4byte gWindowConfig_81E709C - thumb_func_end sub_8136BB8 - - thumb_func_start sub_8136C40 -sub_8136C40: @ 8136C40 - push {r4,lr} - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r4, r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _08136C60 - bl MenuZeroFillScreen - ldr r0, _08136C68 @ =gWindowConfig_81E7080 - bl BasicInitMenuWindow -_08136C60: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08136C68: .4byte gWindowConfig_81E7080 - thumb_func_end sub_8136C40 - thumb_func_start sub_8136C6C sub_8136C6C: @ 8136C6C push {lr} diff --git a/include/pokenav.h b/include/pokenav.h index a35bd3117..87ba4d42c 100755 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -11,7 +11,7 @@ struct UnkPokenavStruct_Sub1 { /*0x04*/ MainCallback callback; /*0x08*/ struct Pokeblock *pokeblock; /*0x0C*/ struct Pokemon *pokemon; - /*0x10*/ u8 fillerC[0x40]; + /*0x10*/ u8 stringBuffer[0x40]; /*0x50*/ u8 unk50; /*0x51*/ u8 unk51; /*0x52*/ u8 unk52; @@ -94,5 +94,6 @@ bool8 gpu_sync_bg_show(void); void sub_80F5550(void *, void *); bool8 sub_80F555C(void); void sub_80F7224(u8); +void sub_80F5BDC(void); #endif // GUARD_POKENAV_H diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 861a3efcd..e6875645b 100755 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -5,6 +5,8 @@ #include "global.h" #include "main.h" #include "rom4.h" +#include "string_util.h" +#include "strings.h" #include "pokemon.h" #include "pokenav.h" #include "palette.h" @@ -496,3 +498,50 @@ void sub_81369CC(void) break; } } + +void sub_8136B44(void) +{ + switch (gUnknown_02039304->unk50) + { + case 0: + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gUnknown_02039304->unk50++; + break; + case 1: + if (!gPaletteFade.active) + { + gUnknown_02039304->unk50 = 2; + } + break; + case 2: + sub_80F5BDC(); + gUnknown_02039304->unk50++; + break; + case 3: + SetMainCallback2(gUnknown_02039304->callback); + break; + } +} + +void sub_8136BB8(void) +{ + GetMonData(&gPlayerParty[sub_81370A4(gUnknown_083DFEC4->unk87DC)], MON_DATA_NICKNAME, gUnknown_02039304->stringBuffer); + StringGetEnd10(gUnknown_02039304->stringBuffer); + StringAppend(gUnknown_02039304->stringBuffer, gOtherText_GetsAPokeBlock); + BasicInitMenuWindow(&gWindowConfig_81E709C); + MenuDrawTextWindow(0, 16, 29, 19); + MenuPrint(gUnknown_02039304->stringBuffer, 1, 17); + DisplayYesNoMenu(23, 10, 1); + MoveMenuCursor(0); +} + +s8 sub_8136C40(void) +{ + s8 retval = ProcessMenuInputNoWrap(); + if ((u8)(retval + 1) < 3) + { + MenuZeroFillScreen(); + BasicInitMenuWindow(&gWindowConfig_81E7080); + } + return retval; +} |