summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s251
-rw-r--r--src/trade.c72
2 files changed, 71 insertions, 252 deletions
diff --git a/asm/trade.s b/asm/trade.s
index ebfeb8132..d986d09e3 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,257 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_80492D8
-sub_80492D8: @ 80492D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08049334 @ =gUnknown_03004824
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x84
- ldrb r0, [r1]
- cmp r0, 0
- bne _080492EC
- b _08049420
-_080492EC:
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- cmp r0, 0
- bne _080492F8
- b _08049420
-_080492F8:
- ldrh r1, [r1]
- ldr r0, _08049338 @ =0x00000101
- cmp r1, r0
- bne _08049340
- adds r1, r2, 0
- adds r1, 0x7B
- movs r0, 0x6
- strb r0, [r1]
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x8C
- movs r4, 0
- ldr r0, _0804933C @ =0x0000dddd
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, 0x4D
- strh r1, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r2, r0, 0
- adds r2, 0x85
- strb r4, [r2]
- adds r0, 0x84
- strb r4, [r0]
- b _08049420
- .align 2, 0
-_08049334: .4byte gUnknown_03004824
-_08049338: .4byte 0x00000101
-_0804933C: .4byte 0x0000dddd
-_08049340:
- ldr r0, _08049388 @ =0x00000201
- cmp r1, r0
- bne _08049390
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _0804938C @ =0x0000eecc
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_08049388: .4byte 0x00000201
-_0804938C: .4byte 0x0000eecc
-_08049390:
- movs r0, 0x81
- lsls r0, 1
- cmp r1, r0
- bne _080493DC
- movs r0, 0x5
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080493D8 @ =0x0000ddee
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_080493D8: .4byte 0x0000ddee
-_080493DC:
- ldr r0, _080494C0 @ =0x00000202
- cmp r1, r0
- bne _08049420
- adds r1, r2, 0
- adds r1, 0x8C
- movs r5, 0
- movs r4, 0
- ldr r0, _080494C4 @ =0x0000eebb
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x8E
- strh r4, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r5, [r1]
- adds r0, 0x84
- strb r5, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0xB
-_0804941E:
- strb r1, [r0]
-_08049420:
- ldr r5, _080494C8 @ =gUnknown_03004824
- ldr r3, [r5]
- adds r1, r3, 0
- adds r1, 0x86
- ldrb r0, [r1]
- cmp r0, 0
- beq _080494B8
- adds r0, r3, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0
- beq _080494B8
- ldrh r1, [r1]
- ldr r0, _080494CC @ =0x00000101
- cmp r1, r0
- bne _0804946E
- adds r1, r3, 0
- adds r1, 0x8C
- movs r4, 0
- movs r2, 0
- ldr r0, _080494D0 @ =0x0000ccdd
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8E
- strh r2, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x9
- strb r1, [r0]
-_0804946E:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x86
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08049484
- adds r0, r1, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080494B8
-_08049484:
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080494D4 @ =0x0000ddee
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x8
- strb r1, [r0]
-_080494B8:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080494C0: .4byte 0x00000202
-_080494C4: .4byte 0x0000eebb
-_080494C8: .4byte gUnknown_03004824
-_080494CC: .4byte 0x00000101
-_080494D0: .4byte 0x0000ccdd
-_080494D4: .4byte 0x0000ddee
- thumb_func_end sub_80492D8
-
thumb_func_start sub_80494D8
sub_80494D8: @ 80494D8
push {r4,lr}
diff --git a/src/trade.c b/src/trade.c
index ee4853944..2fc76c820 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -89,7 +89,10 @@ struct TradeEwramSubstruct {
/*0x0087*/ u8 unk_0087;
/*0x0088*/ u8 filler_0088[2];
/*0x008a*/ u8 unk_008a;
- /*0x008b*/ u8 filler_008b[0x29];
+ /*0x008b*/ u8 unk_008b;
+ /*0x008c*/ u16 unk_008c;
+ /*0x008e*/ u16 unk_008e;
+ /*0x0090*/ u8 filler_0090[0x24];
/*0x00b4*/ u8 unk_00b4;
/*0x00b5*/ u8 unk_00b5[7];
/*0x00bc*/ u8 filler_00bc[12];
@@ -141,6 +144,7 @@ void sub_804A938(struct UnkStructE *);
u8 sub_804A9F4(void);
u8 sub_804AA00(void);
void sub_8049E9C(u8);
+void sub_804AADC(u8, u8);
#ifdef ENGLISH
#define sub_804A96C_alt sub_804A96C
@@ -1521,6 +1525,72 @@ void sub_80491E4(u8 unused, u8 a1)
}
}
+void sub_80492D8(void)
+{
+ if (gUnknown_03004824->unk_0084 && gUnknown_03004824->unk_0085)
+ {
+ if (gUnknown_03004824->unk_0084 == 1 && gUnknown_03004824->unk_0085 == 1)
+ {
+ gUnknown_03004824->unk_007b = 6;
+ gUnknown_03004824->unk_008c = 0xdddd;
+ gUnknown_03004824->unk_008e = gUnknown_03004824->unk_0041;
+ sub_804AADC(5, 0);
+ gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0;
+ }
+ else if (gUnknown_03004824->unk_0084 == 1 && gUnknown_03004824->unk_0085 == 2)
+ {
+ sub_804AA0C(1);
+ gUnknown_03004824->unk_008c = 0xeecc;
+ gUnknown_03004824->unk_008e = 0;
+ sub_804AADC(5, 0);
+ gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0;
+ gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0;
+ gUnknown_03004824->unk_007b = 8;
+ }
+ else if (gUnknown_03004824->unk_0084 == 2 && gUnknown_03004824->unk_0085 == 1)
+ {
+ sub_804AA0C(5);
+ gUnknown_03004824->unk_008c = 0xddee;
+ gUnknown_03004824->unk_008e = 0;
+ sub_804AADC(5, 0);
+ gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0;
+ gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0;
+ gUnknown_03004824->unk_007b = 8;
+ }
+ else if (gUnknown_03004824->unk_0084 == 2 && gUnknown_03004824->unk_0085 == 2)
+ {
+ gUnknown_03004824->unk_008c = 0xeebb;
+ gUnknown_03004824->unk_008e = 0;
+ sub_804AADC(5, 0);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0;
+ gUnknown_03004824->unk_007b = 11;
+ }
+ }
+ if (gUnknown_03004824->unk_0086 && gUnknown_03004824->unk_0087)
+ {
+ if (gUnknown_03004824->unk_0086 == 1 && gUnknown_03004824->unk_0087 == 1)
+ {
+ gUnknown_03004824->unk_008c = 0xccdd;
+ gUnknown_03004824->unk_008e = 0;
+ sub_804AADC(5, 0);
+ gUnknown_03004824->unk_0086 = 0;
+ gUnknown_03004824->unk_0087 = 0;
+ gUnknown_03004824->unk_007b = 9;
+ }
+ if (gUnknown_03004824->unk_0086 == 2 || gUnknown_03004824->unk_0087 == 2)
+ {
+ sub_804AA0C(1);
+ gUnknown_03004824->unk_008c = 0xddee;
+ gUnknown_03004824->unk_008e = 0;
+ sub_804AADC(5, 0);
+ gUnknown_03004824->unk_0086 = 0;
+ gUnknown_03004824->unk_0087 = 0;
+ gUnknown_03004824->unk_007b = 8;
+ }
+ }
+}
+
asm(".section .text.sub_804A96C");
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {