summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s65
-rw-r--r--src/trade.c21
2 files changed, 19 insertions, 67 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 49fdce61c..b8377897f 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -1618,69 +1618,4 @@ _0804BA10: .4byte gPaletteFade
_0804BA14: .4byte sub_804BBCC
thumb_func_end sub_804B790
- thumb_func_start sub_804BA18
-sub_804BA18: @ 804BA18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0804BA60 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0804BA5A
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetNationalPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- bl GetNationalPokedexFlag
-_0804BA5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA60: .4byte gPlayerParty
- thumb_func_end sub_804BA18
-
- thumb_func_start sub_804BA64
-sub_804BA64: @ 804BA64
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- ldr r2, _0804BA90 @ =gLinkPlayers
- movs r1, 0x80
- lsls r1, 17
- eors r1, r0
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2]
- movs r0, 0x80
- lsls r0, 8
- cmp r1, r0
- bne _0804BA8C
- bl EnableNationalPokedex
-_0804BA8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA90: .4byte gLinkPlayers
- thumb_func_end sub_804BA64
-
.align 2, 0 @ Don't pad with nop.
diff --git a/src/trade.c b/src/trade.c
index c3e8c6a6f..4e4903e51 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -34,6 +34,7 @@
#include "mail_data.h"
#include "evolution_scene.h"
#include "pokeball.h"
+#include "pokedex.h"
#include "trade.h"
#ifdef ENGLISH
@@ -245,8 +246,6 @@ void sub_804D80C(struct Sprite *);
void sub_804E1DC(void);
void sub_804BBCC(void);
void sub_804D8E4(void);
-void sub_804BA18(u8);
-void sub_804BA64(void);
extern u8 gUnknown_020297D8[2];
extern u8 *gUnknown_020296CC[13];
@@ -3504,6 +3503,24 @@ static bool8 sub_804ABF8(void)
asm(".section .text.sub_804DAD4");
+static void sub_804BA18(u8 partyIdx)
+{
+ struct Pokemon *pokemon = &gPlayerParty[partyIdx];
+ if (!GetMonData(pokemon, MON_DATA_IS_EGG))
+ {
+ u16 species = SpeciesToNationalPokedexNum(GetMonData(pokemon, MON_DATA_SPECIES, NULL));
+ GetNationalPokedexFlag(species, 2);
+ GetNationalPokedexFlag(species, 3);
+ }
+}
+
+static void sub_804BA64(void)
+{
+ u8 mpId = GetMultiplayerId();
+ if (gLinkPlayers[mpId ^ 1].lp_field_2 == 0x8000)
+ EnableNationalPokedex();
+}
+
void sub_804BA94(u8 a0, u8 a1)
{
u8 friendship;