summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s152
-rw-r--r--src/trade.c51
2 files changed, 50 insertions, 153 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 02f09a046..e298e18c4 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,158 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_80490BC
-sub_80490BC: @ 80490BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0x1
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08049148
- ldr r1, _080490EC @ =gBlockRecvBuffer
- lsls r0, r2, 8
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _080490F0 @ =0x0000bbbb
- cmp r1, r0
- beq _08049128
- cmp r1, r0
- bgt _080490F8
- ldr r0, _080490F4 @ =0x0000aabb
- cmp r1, r0
- beq _08049118
- b _08049142
- .align 2, 0
-_080490EC: .4byte gBlockRecvBuffer
-_080490F0: .4byte 0x0000bbbb
-_080490F4: .4byte 0x0000aabb
-_080490F8:
- ldr r0, _0804910C @ =0x0000bbcc
- cmp r1, r0
- beq _08049138
- ldr r0, _08049110 @ =0x0000eeaa
- cmp r1, r0
- bne _08049142
- ldr r0, _08049114 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x84
- b _0804913E
- .align 2, 0
-_0804910C: .4byte 0x0000bbcc
-_08049110: .4byte 0x0000eeaa
-_08049114: .4byte gUnknown_03004824
-_08049118:
- ldr r0, _08049124 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x84
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049124: .4byte gUnknown_03004824
-_08049128:
- ldr r0, _08049134 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x86
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049134: .4byte gUnknown_03004824
-_08049138:
- ldr r0, _08049170 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x86
-_0804913E:
- movs r1, 0x2
- strb r1, [r0]
-_08049142:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_08049148:
- movs r2, 0x2
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _080491DA
- ldr r3, _08049174 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- ldr r0, _08049178 @ =0x0000bbbb
- cmp r1, r0
- beq _080491BC
- cmp r1, r0
- bgt _08049180
- ldr r0, _0804917C @ =0x0000aabb
- cmp r1, r0
- beq _080491A0
- b _080491D4
- .align 2, 0
-_08049170: .4byte gUnknown_03004824
-_08049174: .4byte gBlockRecvBuffer
-_08049178: .4byte 0x0000bbbb
-_0804917C: .4byte 0x0000aabb
-_08049180:
- ldr r0, _08049194 @ =0x0000bbcc
- cmp r1, r0
- beq _080491CC
- ldr r0, _08049198 @ =0x0000eeaa
- cmp r1, r0
- bne _080491D4
- ldr r0, _0804919C @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x85
- b _080491D2
- .align 2, 0
-_08049194: .4byte 0x0000bbcc
-_08049198: .4byte 0x0000eeaa
-_0804919C: .4byte gUnknown_03004824
-_080491A0:
- ldr r2, _080491B8 @ =gUnknown_03004824
- ldr r1, [r2]
- movs r4, 0x81
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r0, 0x6
- adds r1, 0x8A
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x85
- b _080491C2
- .align 2, 0
-_080491B8: .4byte gUnknown_03004824
-_080491BC:
- ldr r0, _080491C8 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x87
-_080491C2:
- movs r1, 0x1
- strb r1, [r0]
- b _080491D4
- .align 2, 0
-_080491C8: .4byte gUnknown_03004824
-_080491CC:
- ldr r0, _080491E0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x87
-_080491D2:
- strb r2, [r0]
-_080491D4:
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_080491DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080491E0: .4byte gUnknown_03004824
- thumb_func_end sub_80490BC
-
thumb_func_start sub_80491E4
sub_80491E4: @ 80491E4
push {r4,r5,lr}
diff --git a/src/trade.c b/src/trade.c
index a8f3bf6e8..440a26ffb 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -82,7 +82,9 @@ struct TradeEwramSubstruct {
/*0x007e*/ u16 unk_007e;
/*0x0080*/ u8 unk_0080;
/*0x0081*/ u8 unk_0081;
- /*0x0082*/ u8 filler_0082[4];
+ /*0x0082*/ u8 filler_0082[2];
+ /*0x0084*/ u8 unk_0084;
+ /*0x0085*/ u8 unk_0085;
/*0x0086*/ u8 unk_0086;
/*0x0087*/ u8 unk_0087;
/*0x0088*/ u8 filler_0088[2];
@@ -139,6 +141,10 @@ void sub_804A938(struct UnkStructE *);
u8 sub_804A9F4(void);
u8 sub_804AA00(void);
+#ifdef ENGLISH
+#define sub_804A96C_alt sub_804A96C
+#endif
+
extern u8 gUnknown_020297D8[2];
extern u8 *gUnknown_020296CC[13];
extern struct TradeEwramSubstruct *gUnknown_03004824;
@@ -1433,6 +1439,49 @@ void sub_8049088(void)
sub_804ACD8(string, (u8 *)BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
}
+void sub_80490BC(u8 a0, u8 a1)
+{
+ if (a1 & 1)
+ {
+ switch (gBlockRecvBuffer[a0][0])
+ {
+ case 0xeeaa:
+ gUnknown_03004824->unk_0084 = 2;
+ break;
+ case 0xaabb:
+ gUnknown_03004824->unk_0084 = 1;
+ break;
+ case 0xbbbb:
+ gUnknown_03004824->unk_0086 = 1;
+ break;
+ case 0xbbcc:
+ gUnknown_03004824->unk_0086 = 2;
+ break;
+ }
+ ResetBlockReceivedFlag(0);
+ }
+ if (a1 & 2)
+ {
+ switch (gBlockRecvBuffer[1][0])
+ {
+ case 0xeeaa:
+ gUnknown_03004824->unk_0085 = 2;
+ break;
+ case 0xaabb:
+ gUnknown_03004824->unk_008a = gBlockRecvBuffer[1][1] + 6;
+ gUnknown_03004824->unk_0085 = 1;
+ break;
+ case 0xbbbb:
+ gUnknown_03004824->unk_0087 = 1;
+ break;
+ case 0xbbcc:
+ gUnknown_03004824->unk_0087 = 2;
+ break;
+ }
+ ResetBlockReceivedFlag(1);
+ }
+}
+
asm(".section .text.sub_804A96C");
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {