diff options
author | scnorton <scnorton@biociphers.org> | 2017-09-03 14:27:41 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-09-03 14:27:41 -0400 |
commit | 59574c5ab2c210c7d6158675c8cbe4fefda3ae81 (patch) | |
tree | 63b43911370625381f7780d6dc2358eec46712bd | |
parent | 168cfdab081db37a7b27ed1a2dee88983c84e13b (diff) |
sub_804D7AC
-rw-r--r-- | asm/trade.s | 51 | ||||
-rw-r--r-- | src/trade.c | 16 |
2 files changed, 16 insertions, 51 deletions
diff --git a/asm/trade.s b/asm/trade.s index dcbfa8fdc..fe9e054f3 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -5015,55 +5015,4 @@ _0804D7A4: .4byte sub_804D7AC _0804D7A8: .4byte 0x0000ffff thumb_func_end sub_804D738 - thumb_func_start sub_804D7AC -sub_804D7AC: @ 804D7AC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - bne _0804D7C0 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_0804D7C0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _0804D7FE - ldr r1, _0804D804 @ =gTradeBallVerticalVelocityTable - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - bne _0804D7FE - adds r0, r4, 0 - bl DestroySprite - ldr r0, _0804D808 @ =gUnknown_03004828 - ldr r0, [r0] - adds r0, 0xC4 - movs r1, 0xE - strh r1, [r0] -_0804D7FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804D804: .4byte gTradeBallVerticalVelocityTable -_0804D808: .4byte gUnknown_03004828 - thumb_func_end sub_804D7AC - .align 2, 0 @ Don't pad with nop. diff --git a/src/trade.c b/src/trade.c index efafe278c..f09c077d6 100644 --- a/src/trade.c +++ b/src/trade.c @@ -135,6 +135,7 @@ struct TradeEwramSubstruct2 { /*0x00ba*/ u8 filler_00ba[3]; /*0x00bd*/ u8 unk_00bd; /*0x00c0*/ u32 unk_00c0; + /*0x00c4*/ u16 unk_00c4; }; struct TradeEwramStruct { @@ -3171,6 +3172,21 @@ static bool8 sub_804ABF8(void) asm(".section .text.sub_804DAD4"); +void sub_804D7AC(struct Sprite *sprite) +{ + if (sprite->data1 == 20) + StartSpriteAffineAnim(sprite, 1); + if (++ sprite->data1 > 20) + { + sprite->pos2.y -= gTradeBallVerticalVelocityTable[sprite->data0]; + if (++ sprite->data0 == 23) + { + DestroySprite(sprite); + gUnknown_03004828->unk_00c4 = 14; + } + } +} + void sub_804D80C(struct Sprite *sprite) { if (sprite->data2 == 0) |