diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-09-22 21:21:48 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-09-22 21:21:48 -0700 |
commit | e27de6bda3ab58f4190582532b399620082e385a (patch) | |
tree | a32f601664d97ce150462587d640831dac061128 | |
parent | 6b8d5537e2639756d77f60bea8f4872d9abe34f1 (diff) |
Decompile party_menu nickname printing funcs
-rw-r--r-- | asm/party_menu.s | 120 | ||||
-rw-r--r-- | include/party_menu.h | 4 | ||||
-rw-r--r-- | src/battle_party_menu.c | 1 | ||||
-rw-r--r-- | src/choose_party.c | 5 | ||||
-rw-r--r-- | src/party_menu.c | 40 |
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) { |