summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-10-28 12:16:01 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-10-28 12:16:01 -0400
commite9cf9fc104ceedd50330af6b22c6e896e85930e1 (patch)
tree270d92bcacc8521c8ce8d7495591e45ff743a3ba
parenta5ff9f2d00fbcc6bc73475069dcbe93eaf518c1b (diff)
port shedinja_maker_maybe; resolve within-array party pointers
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/party_menu.s20
-rw-r--r--asm/trade.s400
-rw-r--r--data/trade.s2
-rw-r--r--include/link.h1
-rw-r--r--src/pokemon.c8
-rw-r--r--src/trade.c165
-rw-r--r--sym_ewram.txt67
8 files changed, 187 insertions, 480 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index eddc03f83..87f01b7fb 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2832,7 +2832,7 @@ _080E6F68:
ldrb r1, [r0]
movs r0, 0x64
muls r0, r1
- ldr r1, _080E6FB4 @ =gUnknown_2024220
+ ldr r1, _080E6FB4 @ =gEnemyParty + 0x1f4
adds r0, r1
movs r1, 0x2C
muls r1, r4
@@ -2855,7 +2855,7 @@ _080E6FA4: .4byte gSaveBlock2Ptr
_080E6FA8: .4byte gSaveBlock1Ptr
_080E6FAC: .4byte 0x00002cac
_080E6FB0: .4byte 0x0000056d
-_080E6FB4: .4byte gUnknown_2024220
+_080E6FB4: .4byte gEnemyParty + 0x1f4
thumb_func_end sub_80E6EE0
thumb_func_start SaveBattleTowerProgress
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b0506d6c9..c2eecaf14 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -3033,7 +3033,7 @@ _081201C0:
lsrs r6, r0, 29
cmp r6, 0x3
bne _081201F0
- ldr r0, _081201EC @ =gUnknown_20243B0
+ ldr r0, _081201EC @ =gPlayerParty + 0x12C
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -3042,12 +3042,12 @@ _081201C0:
b _08120290
.align 2, 0
_081201E8: .4byte gUnknown_203B09C
-_081201EC: .4byte gUnknown_20243B0
+_081201EC: .4byte gPlayerParty + 0x12C
_081201F0:
- ldr r0, _081201F4 @ =gUnknown_202434C
+ ldr r0, _081201F4 @ =gPlayerParty + 0xC8
b _0812020C
.align 2, 0
-_081201F4: .4byte gUnknown_202434C
+_081201F4: .4byte gPlayerParty + 0xC8
_081201F8:
cmp r0, 0x1
bne _08120290
@@ -3058,7 +3058,7 @@ _081201F8:
lsrs r5, r0, 29
cmp r5, 0x5
bne _08120224
- ldr r0, _08120220 @ =gUnknown_2024478
+ ldr r0, _08120220 @ =gPlayerParty + 0x1F4
_0812020C:
movs r1, 0xB
bl GetMonData
@@ -3068,9 +3068,9 @@ _0812020C:
b _08120290
.align 2, 0
_0812021C: .4byte gUnknown_203B09C
-_08120220: .4byte gUnknown_2024478
+_08120220: .4byte gPlayerParty + 0x1F4
_08120224:
- ldr r0, _08120234 @ =gUnknown_2024414
+ ldr r0, _08120234 @ =gPlayerParty + 0x190
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -3078,7 +3078,7 @@ _08120224:
movs r0, 0x4
b _0812028E
.align 2, 0
-_08120234: .4byte gUnknown_2024414
+_08120234: .4byte gPlayerParty + 0x190
_08120238:
ldrb r1, [r4]
subs r0, r1, 0x2
@@ -18129,7 +18129,7 @@ _08127A80: .4byte sub_811FB28
sub_8127A84: @ 8127A84
push {r4,lr}
adds r4, r0, 0
- ldr r0, _08127AA4 @ =gUnknown_20242E8
+ ldr r0, _08127AA4 @ =gPlayerParty + 0x64
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -18143,7 +18143,7 @@ _08127AA0:
movs r0, 0x7
b _08127ABA
.align 2, 0
-_08127AA4: .4byte gUnknown_20242E8
+_08127AA4: .4byte gPlayerParty + 0x64
_08127AA8:
ldr r0, _08127AB4 @ =gUnknown_203B0A0
ldrb r0, [r0, 0xB]
diff --git a/asm/trade.s b/asm/trade.s
index 272a893cc..34465a17b 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -5,406 +5,6 @@
.text
- thumb_func_start shedinja_maker_maybe
-shedinja_maker_maybe: @ 804D834
- push {r4-r6,lr}
- sub sp, 0xC
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0804D858 @ =gUnknown_2031DA8
- ldr r0, [r0]
- adds r0, 0x69
- ldrb r0, [r0]
- cmp r0, 0x15
- bls _0804D84E
- b _0804DB9E
-_0804D84E:
- lsls r0, 2
- ldr r1, _0804D85C @ =_0804D860
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804D858: .4byte gUnknown_2031DA8
-_0804D85C: .4byte _0804D860
- .align 2, 0
-_0804D860:
- .4byte _0804D8B8
- .4byte _0804D8E4
- .4byte _0804DB78
- .4byte _0804D914
- .4byte _0804D928
- .4byte _0804D960
- .4byte _0804DB78
- .4byte _0804D97C
- .4byte _0804D990
- .4byte _0804D9C8
- .4byte _0804DB78
- .4byte _0804D9E4
- .4byte _0804D9F8
- .4byte _0804DA30
- .4byte _0804DB78
- .4byte _0804DA58
- .4byte _0804DA6C
- .4byte _0804DAA4
- .4byte _0804DB78
- .4byte _0804DACC
- .4byte _0804DAE0
- .4byte _0804DB14
-_0804D8B8:
- ldr r0, _0804D8D8 @ =gBlockSendBuffer
- ldr r1, _0804D8DC @ =gPlayerParty
- movs r2, 0xC8
- bl sub_804D814
- ldr r3, _0804D8E0 @ =gUnknown_2031DA8
- ldr r1, [r3]
- adds r1, 0x69
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0xA8
- strb r2, [r0]
- b _0804DB9E
- .align 2, 0
-_0804D8D8: .4byte gBlockSendBuffer
-_0804D8DC: .4byte gPlayerParty
-_0804D8E0: .4byte gUnknown_2031DA8
-_0804D8E4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _0804D8F0
- b _0804DB9E
-_0804D8F0:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _0804D904
- ldr r0, _0804D900 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D900: .4byte gUnknown_2031DA8
-_0804D904:
- bl ResetBlockReceivedFlags
- ldr r0, _0804D910 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D910: .4byte gUnknown_2031DA8
-_0804D914:
- cmp r5, 0
- bne _0804D91E
- movs r0, 0x1
- bl sub_800A474
-_0804D91E:
- ldr r0, _0804D924 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D924: .4byte gUnknown_2031DA8
-_0804D928:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0804D936
- b _0804DB9E
-_0804D936:
- ldr r0, _0804D954 @ =gEnemyParty
- movs r2, 0x1
- adds r1, r5, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _0804D958 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_804D814
- bl ResetBlockReceivedFlags
- ldr r0, _0804D95C @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D954: .4byte gEnemyParty
-_0804D958: .4byte gBlockRecvBuffer
-_0804D95C: .4byte gUnknown_2031DA8
-_0804D960:
- ldr r0, _0804D970 @ =gBlockSendBuffer
- ldr r1, _0804D974 @ =gUnknown_202434C
- movs r2, 0xC8
- bl sub_804D814
- ldr r0, _0804D978 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D970: .4byte gBlockSendBuffer
-_0804D974: .4byte gUnknown_202434C
-_0804D978: .4byte gUnknown_2031DA8
-_0804D97C:
- cmp r5, 0
- bne _0804D986
- movs r0, 0x1
- bl sub_800A474
-_0804D986:
- ldr r0, _0804D98C @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D98C: .4byte gUnknown_2031DA8
-_0804D990:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0804D99E
- b _0804DB9E
-_0804D99E:
- ldr r0, _0804D9BC @ =gUnknown_20240F4
- movs r2, 0x1
- adds r1, r5, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _0804D9C0 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_804D814
- bl ResetBlockReceivedFlags
- ldr r0, _0804D9C4 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D9BC: .4byte gUnknown_20240F4
-_0804D9C0: .4byte gBlockRecvBuffer
-_0804D9C4: .4byte gUnknown_2031DA8
-_0804D9C8:
- ldr r0, _0804D9D8 @ =gBlockSendBuffer
- ldr r1, _0804D9DC @ =gUnknown_2024414
- movs r2, 0xC8
- bl sub_804D814
- ldr r0, _0804D9E0 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D9D8: .4byte gBlockSendBuffer
-_0804D9DC: .4byte gUnknown_2024414
-_0804D9E0: .4byte gUnknown_2031DA8
-_0804D9E4:
- cmp r5, 0
- bne _0804D9EE
- movs r0, 0x1
- bl sub_800A474
-_0804D9EE:
- ldr r0, _0804D9F4 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804D9F4: .4byte gUnknown_2031DA8
-_0804D9F8:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0804DA06
- b _0804DB9E
-_0804DA06:
- ldr r0, _0804DA24 @ =gUnknown_20241BC
- movs r2, 0x1
- adds r1, r5, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _0804DA28 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_804D814
- bl ResetBlockReceivedFlags
- ldr r0, _0804DA2C @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DA24: .4byte gUnknown_20241BC
-_0804DA28: .4byte gBlockRecvBuffer
-_0804DA2C: .4byte gUnknown_2031DA8
-_0804DA30:
- ldr r0, _0804DA48 @ =gBlockSendBuffer
- ldr r1, _0804DA4C @ =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, _0804DA50 @ =0x00002cd0
- adds r1, r2
- movs r2, 0xDC
- bl sub_804D814
- ldr r0, _0804DA54 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DA48: .4byte gBlockSendBuffer
-_0804DA4C: .4byte gSaveBlock1Ptr
-_0804DA50: .4byte 0x00002cd0
-_0804DA54: .4byte gUnknown_2031DA8
-_0804DA58:
- cmp r5, 0
- bne _0804DA62
- movs r0, 0x3
- bl sub_800A474
-_0804DA62:
- ldr r0, _0804DA68 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DA68: .4byte gUnknown_2031DA8
-_0804DA6C:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0804DA7A
- b _0804DB9E
-_0804DA7A:
- ldr r0, _0804DA98 @ =gUnknown_2031CCC
- movs r2, 0x1
- adds r1, r5, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _0804DA9C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xD8
- bl sub_804D814
- bl ResetBlockReceivedFlags
- ldr r0, _0804DAA0 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DA98: .4byte gUnknown_2031CCC
-_0804DA9C: .4byte gBlockRecvBuffer
-_0804DAA0: .4byte gUnknown_2031DA8
-_0804DAA4:
- ldr r0, _0804DABC @ =gBlockSendBuffer
- ldr r1, _0804DAC0 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, _0804DAC4 @ =0x0000309c
- adds r1, r2
- movs r2, 0xB
- bl sub_804D814
- ldr r0, _0804DAC8 @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DABC: .4byte gBlockSendBuffer
-_0804DAC0: .4byte gSaveBlock1Ptr
-_0804DAC4: .4byte 0x0000309c
-_0804DAC8: .4byte gUnknown_2031DA8
-_0804DACC:
- cmp r5, 0
- bne _0804DAD6
- movs r0, 0x4
- bl sub_800A474
-_0804DAD6:
- ldr r0, _0804DADC @ =gUnknown_2031DA8
- ldr r1, [r0]
- b _0804DB96
- .align 2, 0
-_0804DADC: .4byte gUnknown_2031DA8
-_0804DAE0:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0804DB9E
- ldr r4, _0804DB0C @ =gUnknown_2031DA8
- ldr r0, [r4]
- adds r0, 0xA9
- movs r2, 0x1
- adds r1, r5, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _0804DB10 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xB
- bl sub_804D814
- bl ResetBlockReceivedFlags
- ldr r1, [r4]
- b _0804DB96
- .align 2, 0
-_0804DB0C: .4byte gUnknown_2031DA8
-_0804DB10: .4byte gBlockRecvBuffer
-_0804DB14:
- ldr r4, _0804DB68 @ =gEnemyParty
- ldr r6, _0804DB6C @ =0x0000012f
- movs r5, 0x5
-_0804DB1A:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0804DB5A
- cmp r0, r6
- bne _0804DB5A
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- beq _0804DB5A
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- ldr r1, _0804DB70 @ =gUnknown_8262034
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0804DB5A
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05
- bl SetMonData
-_0804DB5A:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _0804DB1A
- movs r0, 0x1
- b _0804DBA0
- .align 2, 0
-_0804DB68: .4byte gEnemyParty
-_0804DB6C: .4byte 0x0000012f
-_0804DB70: .4byte gUnknown_8262034
-_0804DB74: .4byte gSpeciesNames+0xD05
-_0804DB78:
- ldr r2, _0804DBA8 @ =gUnknown_2031DA8
- ldr r1, [r2]
- adds r1, 0xA8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0xA8
- ldrb r0, [r1]
- cmp r0, 0xA
- bls _0804DB9E
- movs r0, 0
- strb r0, [r1]
- ldr r1, [r2]
-_0804DB96:
- adds r1, 0x69
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804DB9E:
- movs r0, 0
-_0804DBA0:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0804DBA8: .4byte gUnknown_2031DA8
- thumb_func_end shedinja_maker_maybe
-
thumb_func_start sub_804DBAC
sub_804DBAC: @ 804DBAC
push {lr}
diff --git a/data/trade.s b/data/trade.s
index 50cbeb488..fb1c509d1 100644
--- a/data/trade.s
+++ b/data/trade.s
@@ -551,7 +551,7 @@ gUnknown_8261FC4:: @ 8261FC4
.string "システムメッセージADD$", 13
.string "はいけいセット$", 13
-gUnknown_8262034:: @ 8262034
+gJPText_Shedinja:: @ 8262034
.string "ヌケニン$"
.string "こうかんせいりつ $"
.string "だめだたらしいよ $"
diff --git a/include/link.h b/include/link.h
index 552e50970..9465f0404 100644
--- a/include/link.h
+++ b/include/link.h
@@ -258,5 +258,6 @@ void ClearLinkCallback_2(void);
void sub_80FA42C(void);
void sub_800B284(struct LinkPlayer * linkPlayer);
bool8 IsWirelessAdapterConnected(void);
+bool8 sub_800A474(u8 a0);
#endif // GUARD_LINK_H
diff --git a/src/pokemon.c b/src/pokemon.c
index 17f28c7a6..fb7a8c626 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -64,9 +64,11 @@ struct OakSpeechNidoranFStruct
struct SpriteFrameImage *frameImages;
};
-// TODO: move sLearningMoveTableID, gPlayerPartyCount, gEnemyPartyCount,
-// gEnemyParty, gPlayerParty here after resolving symbol ref in between.
-extern u8 sLearningMoveTableID;
+static EWRAM_DATA u8 sLearningMoveTableID = 0;
+EWRAM_DATA u8 gPlayerPartyCount = 0;
+EWRAM_DATA u8 gEnemyPartyCount = 0;
+EWRAM_DATA struct Pokemon gEnemyParty[PARTY_SIZE] = {};
+EWRAM_DATA struct Pokemon gPlayerParty[PARTY_SIZE] = {};
EWRAM_DATA struct SpriteTemplate gMultiuseSpriteTemplate = {0};
static EWRAM_DATA struct OakSpeechNidoranFStruct *sOakSpeechNidoranResources = NULL;
diff --git a/src/trade.c b/src/trade.c
index 445338803..42c2792ff 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -13,7 +13,9 @@
#include "link.h"
#include "link_rfu.h"
#include "cable_club.h"
+#include "data.h"
#include "sound.h"
+#include "string_util.h"
#include "party_menu.h"
#include "pokemon_summary_screen.h"
#include "pokemon_storage_system.h"
@@ -67,8 +69,10 @@ IWRAM_DATA vu16 gUnknown_3000E78;
EWRAM_DATA u8 *gUnknown_2031C90 = NULL;
EWRAM_DATA u8 *gUnknown_2031C94[14] = {};
+EWRAM_DATA u8 gUnknown_2031CCC[216] = {};
EWRAM_DATA u8 gUnknown_2031DA4[2] = {0};
EWRAM_DATA struct TradeResources * gUnknown_2031DA8 = NULL;
+EWRAM_DATA void * gUnknown_2031DAC = NULL;
void sub_804C728(void);
void sub_804D4F8(void);
@@ -101,6 +105,7 @@ extern const u8 *gUnknown_8261ECC[];
extern const u8 gTradeUnknownSpriteCoords[][4];
extern const struct SpriteTemplate gUnknown_8261CB0;
extern const struct SpriteTemplate gUnknown_8261CC8;
+extern const u8 gJPText_Shedinja[];
void sub_804C600(void)
{
@@ -2346,9 +2351,165 @@ void sub_804D764(void)
gUnknown_2031DA8->tradeMenuOptionsActive[12] = TRUE;
}
-void sub_804D814(char *dest, const char *src, size_t size)
+static void Trade_Memcpy(void *dest, const void *src, size_t size)
{
int i;
+ char *_dest = dest;
+ const char *_src = src;
for (i = 0; i < size; i++)
- dest[i] = src[i];
+ _dest[i] = _src[i];
+}
+
+bool8 shedinja_maker_maybe(void)
+{
+ u8 id = GetMultiplayerId();
+ int i;
+ struct Pokemon *mon;
+
+ switch (gUnknown_2031DA8->unk_69)
+ {
+ case 0:
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon));
+ gUnknown_2031DA8->unk_69++;
+ gUnknown_2031DA8->unk_A8 = 0;
+ break;
+ case 1:
+ if (IsLinkTaskFinished())
+ {
+ if (GetBlockReceivedStatus() == 0)
+ {
+ gUnknown_2031DA8->unk_69++;
+ }
+ else
+ {
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ }
+ break;
+ case 3:
+ if (id == 0)
+ {
+ sub_800A474(1);
+ }
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 4:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon));
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ case 5:
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon));
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 7:
+ if (id == 0)
+ {
+ sub_800A474(1);
+ }
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 8:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 200);
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ case 9:
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 200);
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 11:
+ if (id == 0)
+ {
+ sub_800A474(1);
+ }
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 12:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 200);
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ case 13:
+ Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, 220);
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 15:
+ if (id == 0)
+ {
+ sub_800A474(3);
+ }
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 16:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ Trade_Memcpy(gUnknown_2031CCC, gBlockRecvBuffer[id ^ 1], 216);
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ case 17:
+ Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, 11);
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 19:
+ if (id == 0)
+ {
+ sub_800A474(4);
+ }
+ gUnknown_2031DA8->unk_69++;
+ break;
+ case 20:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ Trade_Memcpy(gUnknown_2031DA8->unk_A9, gBlockRecvBuffer[id ^ 1], 11);
+ ResetBlockReceivedFlags();
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ case 21:
+ for (i = 0, mon = gEnemyParty; i < PARTY_SIZE; mon++, i++)
+ {
+ u8 name[POKEMON_NAME_LENGTH + 1];
+ u16 species = GetMonData(mon, MON_DATA_SPECIES);
+
+ if (species != SPECIES_NONE)
+ {
+ if (species == SPECIES_SHEDINJA && GetMonData(mon, MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE)
+ {
+ GetMonData(mon, MON_DATA_NICKNAME, name);
+
+ if (!StringCompareWithoutExtCtrlCodes(name, gJPText_Shedinja))
+ {
+ SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[SPECIES_SHEDINJA]);
+ }
+ }
+ }
+ }
+ return TRUE;
+ case 2:
+ case 6:
+ case 10:
+ case 14:
+ case 18:
+ gUnknown_2031DA8->unk_A8++;
+ if (gUnknown_2031DA8->unk_A8 > 10)
+ {
+ gUnknown_2031DA8->unk_A8 = 0;
+ gUnknown_2031DA8->unk_69++;
+ }
+ break;
+ }
+ return FALSE;
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 77acf5657..67c1e4de8 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -18,75 +18,18 @@
.space 8
@ .include "src/link_rfu.o"
+ .align 2
.include "src/battle_controllers.o"
+ .align 2
.include "src/battle_main.o"
-
-sLearningMoveTableID: @ 2024028
- .space 0x1
-
-gPlayerPartyCount: @ 2024029
- .space 0x1
-
-gEnemyPartyCount: @ 202402A
- .space 0x2
-
-gEnemyParty: @ 202402C
- .space 0xC8
-
-gUnknown_20240F4: @ 20240F4
- .space 0x64
-
-gUnknown_2024158: @ 2024158
- .space 0x64
-
-gUnknown_20241BC: @ 20241BC
- .space 0x64
-
-gUnknown_2024220: @ 2024220
- .space 0x64
-
-gPlayerParty: @ 2024284
- .space 0x64
-
-gUnknown_20242E8: @ 20242E8
- .space 0x64
-
-gUnknown_202434C: @ 202434C
- .space 0x64
-
-gUnknown_20243B0: @ 20243B0
- .space 0x64
-
-gUnknown_2024414: @ 2024414
- .space 0x64
-
-gUnknown_2024478: @ 2024478
- .space 0x64
-
+ .align 2
.include "src/pokemon.o"
+ .align 2
.include "src/daycare.o"
.align 2
.include "src/load_save.o"
-
.align 2
-gUnknown_2031C90: @ 2031C90
- .space 0x4
-
-gUnknown_2031C94: @ 2031C94
- .space 0x38
-
-gUnknown_2031CCC: @ 2031CCC
- .space 0xD8
-
-gUnknown_2031DA4: @ 2031DA4
- .space 0x4
-
-gUnknown_2031DA8: @ 2031DA8
- .space 0x4
-
-gUnknown_2031DAC: @ 2031DAC
- .space 0x4
-
+ .include "src/trade.o"
.align 2
.include "src/new_game.o"