diff options
-rw-r--r-- | asm/party_menu.s | 106 | ||||
-rw-r--r-- | include/party_menu.h | 4 | ||||
-rw-r--r-- | src/choose_party.c | 1 | ||||
-rw-r--r-- | src/party_menu.c | 56 |
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); } |