diff options
-rw-r--r-- | asm/trade.s | 78 | ||||
-rw-r--r-- | include/trade.h | 1 | ||||
-rw-r--r-- | src/trade.c | 47 |
3 files changed, 46 insertions, 80 deletions
diff --git a/asm/trade.s b/asm/trade.s index 8b1162583..6177232df 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -5395,84 +5395,6 @@ _0804DAD0: .4byte gEnemyParty .section .text.sub_804DB2C - thumb_func_start sub_804DB68 -sub_804DB68: @ 804DB68 - push {lr} - ldr r0, _0804DB7C @ =gSpecialVar_0x8005 - ldrb r0, [r0] - ldr r1, _0804DB80 @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl sub_804D948 - pop {r0} - bx r0 - .align 2, 0 -_0804DB7C: .4byte gSpecialVar_0x8005 -_0804DB80: .4byte gSpecialVar_0x8004 - thumb_func_end sub_804DB68 - - thumb_func_start sub_804DB84 -sub_804DB84: @ 804DB84 - push {r4-r6,lr} - bl sub_804C29C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _0804DBE6 - ldr r5, _0804DC04 @ =gUnknown_03004828 - ldr r0, [r5] - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804DC08 @ =gSprites - adds r0, r4 - bl DestroySprite - ldr r0, [r5] - adds r0, 0xB9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldr r0, _0804DC0C @ =gUnknown_020297D8 - ldrb r4, [r0] - ldrb r0, [r0, 0x1] - movs r1, 0x6 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_804BA94 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x9E - ldr r1, _0804DC10 @ =0x0000abcd - strh r1, [r2] - adds r0, 0xBD - strb r6, [r0] - ldr r0, _0804DC14 @ =sub_804DC18 - bl SetMainCallback2 -_0804DBE6: - bl sub_804BB78 - bl sub_804D63C - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804DC04: .4byte gUnknown_03004828 -_0804DC08: .4byte gSprites -_0804DC0C: .4byte gUnknown_020297D8 -_0804DC10: .4byte 0x0000abcd -_0804DC14: .4byte sub_804DC18 - thumb_func_end sub_804DB84 - thumb_func_start sub_804DC18 sub_804DC18: @ 804DC18 push {r4,lr} diff --git a/include/trade.h b/include/trade.h index 591c50e8a..083fabca7 100644 --- a/include/trade.h +++ b/include/trade.h @@ -7,5 +7,6 @@ void sub_8047CD8(void); u16 sub_804DB2C(void); +void sub_804DB68(void); #endif //POKERUBY_TRADE_H diff --git a/src/trade.c b/src/trade.c index 6b85ecb05..982e6a319 100644 --- a/src/trade.c +++ b/src/trade.c @@ -102,8 +102,8 @@ struct TradeEwramSubstruct { /*0x008b*/ u8 unk_008b; /*0x008c*/ u16 linkData[20]; /*0x00b4*/ u8 unk_00b4; - /*0x00b5*/ u8 unk_00b5[7]; - /*0x00bc*/ u8 filler_00bc[12]; + /*0x00b5*/ u8 unk_00b5[11]; + /*0x00c0*/ u8 filler_00c0[8]; /*0x00c8*/ struct UnkStructD unk_00c8; /*0x08dc*/ struct UnkStructE unk_08dc[4]; /*0x08fc*/ u8 filler_08fc[0x704]; @@ -115,12 +115,24 @@ struct UnkStructF { u8 filler_000a[0xff6]; }; +struct TradeEwramSubstruct2 { + /*0x0000*/ u8 filler_0000[0x9e]; + /*0x009e*/ u16 unk_009e; + /*0x00a0*/ u8 unk_00a0[0x18]; + /*0x00b8*/ u8 unk_00b8; + /*0x00b9*/ u8 unk_00b9; + /*0x00ba*/ u8 filler_00ba[3]; + /*0x00bd*/ u8 unk_00bd; +}; + struct TradeEwramStruct { /*0x00000*/ u8 filler_00000[0x7000]; /*0x07000*/ struct TradeEwramSubstruct unk_07000; /*0x08000*/ struct UnkStructF unk_08000; /*0x09000*/ u8 filler_09000[0x4000]; /*0x0d000*/ u8 tileBuffers[13][256]; + /*0x0dd00*/ u8 filler_0dd00[0x1300]; + /*0x0f000*/ struct TradeEwramSubstruct2 unk_0f000; }; static void sub_8047EC0(void); @@ -166,10 +178,17 @@ void sub_804A33C(u8 *, u8, u8); static #endif void sub_804A51C(u8, u8, u8, u8, u8, u8); +/*static*/ void sub_804D948(u8, u8); +/*static*/ void sub_804BA94(u8, u8); +/*static*/ bool8 sub_804C29C(void); +/*static*/ void sub_804DC18(void); +/*static*/ void sub_804BB78(void); +/*static*/ void sub_804D63C(void); extern u8 gUnknown_020297D8[2]; extern u8 *gUnknown_020296CC[13]; extern struct TradeEwramSubstruct *gUnknown_03004824; +extern struct TradeEwramSubstruct2 *gUnknown_03004828; extern u8 gUnknown_03000508; extern struct MailStruct gUnknown_02029700[16]; @@ -3163,3 +3182,27 @@ u16 sub_804DB2C(void) return SPECIES_NONE; return GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_SPECIES); } + +void sub_804DB68(void) +{ + sub_804D948(gSpecialVar_0x8005, gSpecialVar_0x8004); +} + +void sub_804DB84(void) +{ + if (sub_804C29C() == TRUE) + { + DestroySprite(&gSprites[gUnknown_03004828->unk_00b8]); + FreeSpriteOamMatrix(&gSprites[gUnknown_03004828->unk_00b9]); + sub_804BA94(gUnknown_020297D8[0], gUnknown_020297D8[1] % 6); + gUnknown_03004828->unk_009e = 0xabcd; + gUnknown_03004828->unk_00bd = 1; + SetMainCallback2(sub_804DC18); + } + sub_804BB78(); + sub_804D63C(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} |