summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s104
-rw-r--r--data/trade.s5
-rw-r--r--src/trade.c28
3 files changed, 26 insertions, 111 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 0efeabdb7..c0f1ca9b6 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -2516,108 +2516,4 @@ _0804C1A0: .4byte gUnknown_082159AC
_0804C1A4: .4byte gUnknown_082159B4
thumb_func_end sub_804C164
- thumb_func_start sub_804C1A8
-sub_804C1A8: @ 804C1A8
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, _0804C21C @ =gUnknown_03004828
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804C23C
- bl GetMultiplayerId
- lsls r0, 24
- ldr r3, _0804C220 @ =gStringVar1
- movs r2, 0x80
- lsls r2, 17
- eors r2, r0
- lsrs r2, 24
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _0804C224 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r5, _0804C228 @ =gUnknown_020297D8
- ldrb r0, [r5, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x64
- muls r0, r4
- ldr r1, _0804C22C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C230 @ =gStringVar3
- mov r1, sp
- bl StringCopy10
- ldrb r0, [r5]
- muls r0, r4
- ldr r1, _0804C234 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C238 @ =gStringVar2
- mov r1, sp
- bl StringCopy10
- b _0804C278
- .align 2, 0
-_0804C21C: .4byte gUnknown_03004828
-_0804C220: .4byte gStringVar1
-_0804C224: .4byte gLinkPlayers + 0x8
-_0804C228: .4byte gUnknown_020297D8
-_0804C22C: .4byte gEnemyParty
-_0804C230: .4byte gStringVar3
-_0804C234: .4byte gPlayerParty
-_0804C238: .4byte gStringVar2
-_0804C23C:
- ldr r0, _0804C280 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804C284 @ =gIngameTrades
- adds r4, r0
- ldr r0, _0804C288 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x2B
- bl StringCopy
- ldr r0, _0804C28C @ =gStringVar3
- adds r1, r4, 0
- bl StringCopy10
- ldr r0, _0804C290 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804C294 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C298 @ =gStringVar2
- mov r1, sp
- bl StringCopy10
-_0804C278:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C280: .4byte gSpecialVar_0x8004
-_0804C284: .4byte gIngameTrades
-_0804C288: .4byte gStringVar1
-_0804C28C: .4byte gStringVar3
-_0804C290: .4byte gSpecialVar_0x8005
-_0804C294: .4byte gPlayerParty
-_0804C298: .4byte gStringVar2
- thumb_func_end sub_804C1A8
-
.align 2, 0 @ Don't pad with nop.
diff --git a/data/trade.s b/data/trade.s
deleted file mode 100644
index 508e86c63..000000000
--- a/data/trade.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
diff --git a/src/trade.c b/src/trade.c
index 3ec01246c..2443f1a57 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -153,7 +153,7 @@ struct TradeEwramSubstruct2 {
/*0x0118*/ u16 unk_0118;
/*0x011a*/ u16 unk_011a;
/*0x011c*/ u8 filler_011c[2];
- /*0x011e*/ u8 unk_011e;
+ /*0x011e*/ u8 isLinkTrade;
/*0x0120*/ u16 unk_0120;
/*0x0122*/ u16 unk_0122;
/*0x0124*/ u16 unk_0124;
@@ -3497,6 +3497,30 @@ static bool8 sub_804ABF8(void)
asm(".section .text.sub_804DAD4");
+void sub_804C1A8(void)
+{
+ u8 mpId;
+ u8 string[20];
+ const struct InGameTrade *ingameTrade;
+ if (gUnknown_03004828->isLinkTrade)
+ {
+ mpId = GetMultiplayerId();
+ StringCopy(gStringVar1, gLinkPlayers[mpId ^ 1].name);
+ GetMonData(&gEnemyParty[gUnknown_020297D8[1] % 6], MON_DATA_NICKNAME, string);
+ StringCopy10(gStringVar3, string);
+ GetMonData(&gPlayerParty[gUnknown_020297D8[0]], MON_DATA_NICKNAME, string);
+ StringCopy10(gStringVar2, string);
+ }
+ else
+ {
+ ingameTrade = &gIngameTrades[gSpecialVar_0x8004];
+ StringCopy(gStringVar1, ingameTrade->otName);
+ StringCopy10(gStringVar3, ingameTrade->name);
+ GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, string);
+ StringCopy10(gStringVar2, string);
+ }
+}
+
bool8 sub_804C29C(void)
{
u16 evoTarget;
@@ -3914,7 +3938,7 @@ bool8 sub_804C29C(void)
gUnknown_03004828->unk_00c4 ++;
break;
case 71:
- if (gUnknown_03004828->unk_011e)
+ if (gUnknown_03004828->isLinkTrade)
{
return TRUE;
}