summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-03 14:43:52 -0400
committerscnorton <scnorton@biociphers.org>2017-09-03 14:43:52 -0400
commitfc135f6e97ff780f1aba4c5ce8d22f450a5cf5c4 (patch)
treed5fdbd2aecc2bbf69e368e023493c925c77a60be
parent59574c5ab2c210c7d6158675c8cbe4fefda3ae81 (diff)
sub_804D738
-rw-r--r--asm/trade.s58
-rw-r--r--src/trade.c16
2 files changed, 15 insertions, 59 deletions
diff --git a/asm/trade.s b/asm/trade.s
index fe9e054f3..8938a8ff9 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -4957,62 +4957,4 @@ _0804D72E:
_0804D734: .4byte SpriteCallbackDummy
thumb_func_end sub_804D6BC
- thumb_func_start sub_804D738
-sub_804D738: @ 804D738
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0804D7A0 @ =gTradeBallVerticalVelocityTable
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x16
- bne _0804D760
- movs r0, 0x38
- bl PlaySE
-_0804D760:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bne _0804D796
- movs r0, 0x8C
- bl PlaySE
- ldr r0, _0804D7A4 @ =sub_804D7AC
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x1
- negs r1, r1
- ldr r2, _0804D7A8 @ =0x0000ffff
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0804D796:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D7A0: .4byte gTradeBallVerticalVelocityTable
-_0804D7A4: .4byte sub_804D7AC
-_0804D7A8: .4byte 0x0000ffff
- thumb_func_end sub_804D738
-
.align 2, 0 @ Don't pad with nop.
diff --git a/src/trade.c b/src/trade.c
index f09c077d6..f48a5d902 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -191,7 +191,7 @@ void sub_804A33C(u8 *, u8, u8);
static
#endif
void sub_804A51C(u8, u8, u8, u8, u8, u8);
-
+static void sub_804D7AC(struct Sprite *);
/*static*/ void sub_804BA94(u8, u8);
/*static*/ bool8 sub_804C29C(void);
/*static*/ void sub_804DC18(void);
@@ -3172,6 +3172,20 @@ static bool8 sub_804ABF8(void)
asm(".section .text.sub_804DAD4");
+void sub_804D738(struct Sprite *sprite)
+{
+ sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data0];
+ if (sprite->data0 == 22)
+ PlaySE(SE_KON);
+ if (++ sprite->data0 == 44)
+ {
+ PlaySE(SE_W025);
+ sprite->callback = sub_804D7AC;
+ sprite->data0 = 0;
+ BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, -1);
+ }
+}
+
void sub_804D7AC(struct Sprite *sprite)
{
if (sprite->data1 == 20)