summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokedex_screen.s123
-rw-r--r--include/strings.h1
-rw-r--r--src/pokedex_screen.c28
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);
+}