summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-09-21 21:06:01 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-09-21 21:06:01 -0700
commitbbdef672b72d069a44f332c8c550edfe8bab25c5 (patch)
tree00b2127d12a3b8b8e60d401d2863492566995251
parent18e88baffa65cc6a647f96441446238616df275c (diff)
Decompile PartyMenuPrintMonLevelOrStatus funcs
-rw-r--r--asm/party_menu.s106
-rw-r--r--include/party_menu.h4
-rw-r--r--src/choose_party.c1
-rw-r--r--src/party_menu.c56
4 files changed, 56 insertions, 111 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 094587b18..4dff83e42 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -6694,110 +6694,4 @@ _0806E28C: .4byte 0xffffff00
_0806E290: .4byte 0x06014200
thumb_func_end PartyMenuDoPrintLevel
- thumb_func_start PartyMenuPrintLevel
-PartyMenuPrintLevel: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl PartyMenuDoPrintLevel
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuPrintLevel
-
- thumb_func_start PartyMenuPrintMonLevelOrStatus
-PartyMenuPrintMonLevelOrStatus: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl GetMonStatusAndPokerus
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl PartyMenuPutStatusTilemap
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl PartyMenuPrintLevel
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl PartyMenuPrintGenderIcon
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartyMenuPrintMonLevelOrStatus
-
- thumb_func_start PartyMenuPrintMonsLevelOrStatus
-PartyMenuPrintMonsLevelOrStatus: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358 @ =gPlayerParty
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl PartyMenuPrintMonLevelOrStatus
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte gPlayerParty
- thumb_func_end PartyMenuPrintMonsLevelOrStatus
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/party_menu.h b/include/party_menu.h
index 2c19dc0a2..5d4474a56 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -106,8 +106,8 @@ void PrintPartyMenuMonNicknames(void);
void PrintPartyMenuMonNicknames(void);
void GetMonNickname(struct Pokemon *mon, u8 *nickname);
void PartyMenuClearLevelStatusTilemap();
-void PartyMenuPrintMonLevelOrStatus();
-void PartyMenuPrintMonsLevelOrStatus(void);
+void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon);
void PartyMenuPrintMonsLevelOrStatus(void);
void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname);
void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon);
diff --git a/src/choose_party.c b/src/choose_party.c
index c666cc68f..ed96bf3a7 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -69,7 +69,6 @@ extern void CreateHeldItemIcon_806DCD4(int, u8, int);
extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
extern void PartyMenuPutStatusTilemap(u8, int, u8);
-extern void PartyMenuPrintLevel();
extern void PrintPartyMenuMonNickname();
extern bool8 sub_80F9344(void);
extern void sub_806D4AC();
diff --git a/src/party_menu.c b/src/party_menu.c
index 38a01345e..467820111 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -120,6 +120,58 @@ void sub_806AEDC(void)
#define WINDOW_RIGHT (29)
#endif
+extern void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
+extern void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level);
+
+
+void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon)
+{
+ u16 level = GetMonData(pokemon, MON_DATA_LEVEL);
+ PartyMenuDoPrintLevel(monIndex, b, level);
+}
+
+void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon)
+{
+ if (GetMonData(pokemon, MON_DATA_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ {
+ u8 statusAndPkrs;
+ u8 isLinkDoubleBattle;
+ u8 b;
+
+ statusAndPkrs = GetMonStatusAndPokerus(pokemon);
+
+ isLinkDoubleBattle = IsLinkDoubleBattle();
+ if (isLinkDoubleBattle == TRUE)
+ {
+ b = 2;
+ }
+ else
+ {
+ b = IsDoubleBattle();
+ }
+
+ if (statusAndPkrs != 0 && statusAndPkrs != 6)
+ {
+ PartyMenuPutStatusTilemap(monIndex, b, statusAndPkrs - 1);
+ }
+ else
+ {
+ PartyMenuPrintLevel(monIndex, b, pokemon);
+ }
+
+ PartyMenuPrintGenderIcon(monIndex, b, pokemon);
+ }
+}
+
+void PartyMenuPrintMonsLevelOrStatus()
+{
+ u8 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ PartyMenuPrintMonLevelOrStatus(i, &gPlayerParty[i]);
+ }
+}
void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname)
{
@@ -181,8 +233,8 @@ void PartyMenuTryPrintHP(u8 monIndex, struct Pokemon *pokemon)
{
if (GetMonData(pokemon, MON_DATA_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG))
{
- u8 isDoubleBattle = IsLinkDoubleBattle();
- if (isDoubleBattle == TRUE)
+ u8 isLinkDoubleBattle = IsLinkDoubleBattle();
+ if (isLinkDoubleBattle == TRUE)
{
PartyMenuPrintHP(monIndex, 2, pokemon);
}