summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-03 12:45:52 -0400
committerscnorton <scnorton@biociphers.org>2017-09-03 12:45:52 -0400
commita94566d512891ab13a218e686f8b0317c4ad7e03 (patch)
treea8a1a0411fc25b6dfba3a0b79a3d0f515942f61a
parentd0e2766ec23f63b1acb90bdaa1757a3c7bc71dd7 (diff)
sub_804E174 and sub_804E1A0
-rw-r--r--asm/trade.s51
-rw-r--r--include/trade.h1
-rw-r--r--src/trade.c23
3 files changed, 23 insertions, 52 deletions
diff --git a/asm/trade.s b/asm/trade.s
index d7a33b41b..c95d0feb8 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -5395,57 +5395,6 @@ _0804DAD0: .4byte gEnemyParty
.section .text.sub_804DB2C
- thumb_func_start sub_804E174
-sub_804E174: @ 804E174
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _0804E19C @ =sub_804E1A0
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0804E19C: .4byte sub_804E1A0
- thumb_func_end sub_804E174
-
- thumb_func_start sub_804E1A0
-sub_804E1A0: @ 804E1A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0804E1CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E1C4
- ldr r0, _0804E1D0 @ =sub_804B790
- bl SetMainCallback2
- ldr r1, _0804E1D4 @ =gFieldCallback
- ldr r0, _0804E1D8 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0804E1C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E1CC: .4byte gPaletteFade
-_0804E1D0: .4byte sub_804B790
-_0804E1D4: .4byte gFieldCallback
-_0804E1D8: .4byte sub_8080990
- thumb_func_end sub_804E1A0
-
thumb_func_start sub_804E1DC
sub_804E1DC: @ 804E1DC
push {r4,r5,lr}
diff --git a/include/trade.h b/include/trade.h
index 083fabca7..36561e413 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -8,5 +8,6 @@
void sub_8047CD8(void);
u16 sub_804DB2C(void);
void sub_804DB68(void);
+void sub_804E174(void);
#endif //POKERUBY_TRADE_H
diff --git a/src/trade.c b/src/trade.c
index c29d7558b..940bfc8fc 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -28,6 +28,8 @@
#include "strings.h"
#include "load_save.h"
#include "save.h"
+#include "script.h"
+#include "field_fadetransition.h"
#include "trade.h"
#ifdef ENGLISH
@@ -35,7 +37,7 @@
asm(".set sub_804A96C_alt, sub_804A96C");
#endif
-#define Trade_SendData(ptr) SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20)
+#define Trade_SendData(ptr) (SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20))
struct InGameTrade {
/*0x00*/ u8 name[11];
@@ -194,6 +196,8 @@ void sub_804A51C(u8, u8, u8, u8, u8, u8);
/*static*/ void sub_804D63C(void);
/*static*/ bool8 sub_804B2B0(void);
static void sub_804E144(void);
+static void sub_804E1A0(u8);
+/*static*/ void sub_804B790(void);
extern u8 gUnknown_020297D8[2];
extern u8 *gUnknown_020296CC[13];
@@ -3374,3 +3378,20 @@ static void sub_804E144(void)
BuildOamBuffer();
UpdatePaletteFade();
}
+
+void sub_804E174(void)
+{
+ ScriptContext2_Enable();
+ CreateTask(sub_804E1A0, 10);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+}
+
+static void sub_804E1A0(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sub_804B790);
+ gFieldCallback = sub_8080990;
+ DestroyTask(taskId);
+ }
+}