diff options
-rw-r--r-- | asm/trade.s | 58 | ||||
-rw-r--r-- | src/trade.c | 16 |
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) |