summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-09-22 21:21:48 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-09-22 21:21:48 -0700
commite27de6bda3ab58f4190582532b399620082e385a (patch)
treea32f601664d97ce150462587d640831dac061128
parent6b8d5537e2639756d77f60bea8f4872d9abe34f1 (diff)
Decompile party_menu nickname printing funcs
-rw-r--r--asm/party_menu.s120
-rw-r--r--include/party_menu.h4
-rw-r--r--src/battle_party_menu.c1
-rw-r--r--src/choose_party.c5
-rw-r--r--src/party_menu.c40
5 files changed, 43 insertions, 127 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 4689389ec..7839aacb7 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -6359,124 +6359,4 @@ _0806DFF6:
_0806DFFC: .4byte gSprites
thumb_func_end SetHeldItemIconVisibility
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040 @ =gTileBuffer
- ldr r2, _0806E044 @ =0x01000100
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C @ =0x06014000
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte gTileBuffer
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start PrintPartyMenuMonNickname
-PrintPartyMenuMonNickname: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PrintPartyMenuMonNickname
-
- thumb_func_start TryPrintPartyMenuMonNickname
-TryPrintPartyMenuMonNickname: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E0BC
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl PrintPartyMenuMonNickname
- b _0806E0BC
-_0806E0AA:
- bl IsDoubleBattle
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl PrintPartyMenuMonNickname
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end TryPrintPartyMenuMonNickname
-
- thumb_func_start PrintPartyMenuMonNicknames
-PrintPartyMenuMonNicknames: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8 @ =gPlayerParty
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl TryPrintPartyMenuMonNickname
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte gPlayerParty
- thumb_func_end PrintPartyMenuMonNicknames
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/party_menu.h b/include/party_menu.h
index 6a251cb65..cc1f9f772 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -101,8 +101,8 @@ void CreateHeldItemIcons_806DC34(); // undefined args
void CreateHeldItemIcons_806DC34();
u8 GetMonIconSpriteId_maybe();
void SetHeldItemIconVisibility();
-void TryPrintPartyMenuMonNickname();
-void PrintPartyMenuMonNicknames(void);
+void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
+void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon);
void PrintPartyMenuMonNicknames(void);
u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer);
void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index 595cdcc48..e80737210 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -28,7 +28,6 @@ extern void LoadHeldItemIconGraphics(void);
extern void CreateHeldItemIcons_806DC34();
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
-extern void PrintPartyMenuMonNicknames(void);
extern void nullsub_13(void);
extern u8 sub_806B58C(u8);
extern void sub_806D5A4(void);
diff --git a/src/choose_party.c b/src/choose_party.c
index 223c97f69..6e2d2382a 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -48,7 +48,6 @@ extern void LoadHeldItemIconGraphics(void);
extern void CreateHeldItemIcons_806DC34();
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
-extern void PrintPartyMenuMonNicknames(void);
extern void sub_806BC3C(u8, u8);
extern u8 sub_806B58C(u8);
extern u16 sub_806BE38();
@@ -68,11 +67,9 @@ extern void CreatePartyMenuMonIcon();
extern void CreateHeldItemIcon_806DCD4(int, u8, int);
extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
-extern void PrintPartyMenuMonNickname();
extern bool8 sub_80F9344(void);
extern void sub_806D4AC();
extern void sub_806D3B4();
-extern void box_print(u8, int, const u8 *);
extern void sub_806BCE8(void);
static void ClearPartySelection(void);
@@ -696,7 +693,7 @@ static void sub_8122B10(u8 taskId)
StringCopy(gStringVar1, gUnknown_02023A00[i].nickname);
StringGetEnd10(gStringVar1);
SanitizeNameString(gStringVar1);
- box_print(i + 3, 3, gStringVar1);
+ PartyMenuDoPrintMonNickname(i + 3, 3, gStringVar1);
PartyMenuDoDrawHPBar(i + 3, 3, gUnknown_02023A00[i].hp, gUnknown_02023A00[i].maxhp);
}
}
diff --git a/src/party_menu.c b/src/party_menu.c
index 541c04fdc..10b2719e4 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -119,6 +119,46 @@ void sub_806AEDC(void)
#endif
+void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer)
+{
+ u32 var1 = 0;
+ CpuFastSet(&var1, gTileBuffer, 0x1000100);
+ sub_8004E3C((struct WindowConfig *)&gWindowConfig_81E6CAC, gTileBuffer, nameBuffer);
+ CpuFastSet(gTileBuffer, (void *)(OBJ_VRAM1 + (monIndex * 0x400)), 128);
+}
+
+void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon)
+{
+ u8 nameBuffer[12];
+ GetMonNickname(pokemon, nameBuffer);
+ PartyMenuDoPrintMonNickname(monIndex, b, nameBuffer);
+}
+
+void TryPrintPartyMenuMonNickname(u8 monIndex, struct Pokemon *pokemon)
+{
+ if (GetMonData(pokemon, MON_DATA_SPECIES))
+ {
+ u8 isLinkDoubleBattle = IsLinkDoubleBattle();
+ if (isLinkDoubleBattle == TRUE)
+ {
+ PrintPartyMenuMonNickname(monIndex, 2, pokemon);
+ }
+ else
+ {
+ PrintPartyMenuMonNickname(monIndex, IsDoubleBattle(), pokemon);
+ }
+ }
+}
+
+void PrintPartyMenuMonNicknames(void)
+{
+ u8 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ TryPrintPartyMenuMonNickname(i, &gPlayerParty[i]);
+ }
+}
u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer)
{