diff options
-rw-r--r-- | asm/pokedex_screen.s | 123 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | src/pokedex_screen.c | 28 |
3 files changed, 28 insertions, 124 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 353314a39..814a5a5a3 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -5,129 +5,6 @@ .text - thumb_func_start sub_81049CC -sub_81049CC: @ 81049CC - push {lr} - adds r1, r0, 0 - cmp r1, 0xC9 - beq _081049E8 - movs r0, 0x9A - lsls r0, 1 - cmp r1, r0 - bne _081049F4 - ldr r0, _081049E4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r0, [r0, 0x20] - b _081049F6 - .align 2, 0 -_081049E4: .4byte gSaveBlock2Ptr -_081049E8: - ldr r0, _081049F0 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r0, [r0, 0x1C] - b _081049F6 - .align 2, 0 -_081049F0: .4byte gSaveBlock2Ptr -_081049F4: - movs r0, 0 -_081049F6: - pop {r1} - bx r1 - thumb_func_end sub_81049CC - - thumb_func_start sub_81049FC -sub_81049FC: @ 81049FC - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - adds r0, r5, 0 - bl sub_81049CC - adds r2, r0, 0 - lsrs r4, 20 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x8 - movs r3, 0x1 - bl LoadMonPicInWindow - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81049FC - - thumb_func_start sub_8104A34 -sub_8104A34: @ 8104A34 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - mov r8, r0 - mov r9, r1 - adds r0, r2, 0 - adds r4, r3, 0 - ldr r6, [sp, 0x24] - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - bl SpeciesToNationalPokedexNum - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r2, _08104AAC @ =gUnknown_8415FFF - str r6, [sp] - movs r0, 0 - mov r10, r0 - str r0, [sp, 0x4] - mov r0, r8 - mov r1, r9 - adds r3, r4, 0 - bl sub_81047C8 - adds r4, 0x9 - lsls r4, 24 - lsrs r4, 24 - str r6, [sp] - mov r1, r10 - str r1, [sp, 0x4] - mov r0, r8 - mov r1, r9 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_8104880 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104AAC: .4byte gUnknown_8415FFF - thumb_func_end sub_8104A34 - thumb_func_start sub_8104AB0 sub_8104AB0: @ 8104AB0 push {r4-r7,lr} diff --git a/include/strings.h b/include/strings.h index 498d6802d..0288dc05f 100644 --- a/include/strings.h +++ b/include/strings.h @@ -975,6 +975,7 @@ extern const u8 gUnknown_8415DD7[]; extern const u8 gUnknown_8415F3D[]; extern const u8 gUnknown_8415F4A[]; extern const u8 gUnknown_8415F66[]; +extern const u8 gUnknown_8415FFF[]; // trainer card extern const u8 gText_WaitingTrainerFinishReading[]; diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index f78701b9e..ace5282a2 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -21,6 +21,7 @@ #include "pokedex_screen.h" #include "data.h" #include "pokedex.h" +#include "trainer_pokemon_sprites.h" #include "constants/songs.h" #include "constants/species.h" @@ -99,7 +100,7 @@ bool32 sub_8104664(u8 a0); void sub_81047B0(u8 *windowId_p); void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx); -void sub_8104A34(u8 windowId, u8 a1, u16 species, u8 a3, u8 y); +void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y); u16 sub_8104BBC(u8 a0, u8 a1); void sub_8104C2C(const u8 *a0); void sub_8104E90(void); @@ -1664,3 +1665,28 @@ void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx) } sub_81047C8(windowId, fontId, buff, x, y, colorIdx); } + +u32 sub_81049CC(int species) +{ + switch (species) + { + case SPECIES_SPINDA: + return gSaveBlock2Ptr->pokedex.spindaPersonality; + case SPECIES_UNOWN: + return gSaveBlock2Ptr->pokedex.unownPersonality; + default: + return 0; + } +} + +void sub_81049FC(u8 windowId, u16 species, u16 paletteOffset) +{ + LoadMonPicInWindow(species, 8, sub_81049CC(species), TRUE, paletteOffset >> 4, windowId); +} + +void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y) +{ + u16 dexNum = SpeciesToNationalPokedexNum(species); + sub_81047C8(windowId, fontId, gUnknown_8415FFF, x, y, 0); + sub_8104880(windowId, fontId, dexNum, x + 9, y, 0); +} |