summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]asm/use_pokeblock.s145
-rwxr-xr-xinclude/pokenav.h3
-rwxr-xr-xsrc/use_pokeblock.c49
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;
+}