summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s78
-rw-r--r--include/trade.h1
-rw-r--r--src/trade.c47
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();
+}