diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/trade.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/trade.c b/src/trade.c index fc15da7f8..ee0ed96db 100644 --- a/src/trade.c +++ b/src/trade.c @@ -32,6 +32,7 @@ #include "field_fadetransition.h" #include "decompress.h" #include "mail_data.h" +#include "evolution_scene.h" #include "trade.h" #ifdef ENGLISH @@ -202,6 +203,7 @@ static void sub_804E1A0(u8); /*static*/ void sub_804B790(void); static void sub_804DAD4(struct MailStruct *, const struct InGameTrade *); void sub_804D588(void); +static void sub_804DC88(void); extern u8 gUnknown_020297D8[2]; extern u8 *gUnknown_020296CC[13]; @@ -3172,6 +3174,32 @@ static bool8 sub_804ABF8(void) asm(".section .text.sub_804DAD4"); +void sub_804D588(void) +{ + u16 evoTarget; + switch (gMain.state) + { + case 0: + gMain.state = 4; + gSoftResetDisabled = TRUE; + break; + case 4: + gUnknown_03005E94 = sub_804DC88; + evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gUnknown_020297D8[0]], TRUE, ITEM_NONE); + if (evoTarget != SPECIES_NONE) + TradeEvolutionScene(&gPlayerParty[gUnknown_020297D8[0]], evoTarget, gUnknown_03004828->unk_00b9, gUnknown_020297D8[0]); + else + SetMainCallback2(sub_804DC88); + gUnknown_020297D8[0] = 255; + break; + } + if (!HasLinkErrorOccurred()) + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + static void sub_804D63C(void) { u8 blockReceivedStatus; @@ -3411,7 +3439,7 @@ void sub_804DC18(void) UpdatePaletteFade(); } -void sub_804DC88(void) +static void sub_804DC88(void) { switch (gMain.state) { |