summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2018-10-09 00:04:47 -0400
committerProjectRevoTPP <projectrevotpp@hotmail.com>2018-10-09 00:04:47 -0400
commit799a9ccfe28999477776cd3ae79ff0d32c836565 (patch)
treeefce843ae79ddbfed52fe6865c621494c04b6068
parent6c614d71a522975c269678667331418a2d561b06 (diff)
decompile up to sub_8043B40
-rw-r--r--asm/battle_1.s20
-rw-r--r--asm/battle_2.s34
-rw-r--r--asm/battle_controller_link_opponent.s12
-rw-r--r--asm/battle_controller_link_partner.s12
-rw-r--r--asm/battle_controller_player.s12
-rw-r--r--asm/battle_controllers.s20
-rw-r--r--asm/battle_message.s36
-rw-r--r--asm/battle_records.s4
-rw-r--r--asm/battle_script_commands.s2
-rw-r--r--asm/battle_util2.s6
-rw-r--r--asm/cable_club.s32
-rw-r--r--asm/field_control_avatar.s2
-rw-r--r--asm/field_poison.s2
-rw-r--r--asm/field_specials.s2
-rw-r--r--asm/link.s40
-rw-r--r--asm/link_rfu_2.s26
-rw-r--r--asm/link_rfu_3.s28
-rw-r--r--asm/overworld.s8
-rw-r--r--asm/party_menu.s6
-rw-r--r--asm/pokeball.s4
-rw-r--r--asm/pokemon_3.s1131
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/quest_log_battle.s4
-rw-r--r--asm/trade.s12
-rw-r--r--asm/trainer_card.s4
-rw-r--r--data/data.s11
-rw-r--r--include/link.h2
-rw-r--r--src/pokemon.c408
-rw-r--r--sym_ewram.txt2
29 files changed, 588 insertions, 1298 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index db55d2dcb..e93a714eb 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -537,7 +537,7 @@ _0800F5E8:
beq _0800F666
cmp r2, 0x1
bne _0800F632
- ldr r2, _0800F620 @ =gUnknown_202273C
+ ldr r2, _0800F620 @ =gLinkPlayers
ldr r0, _0800F624 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -556,7 +556,7 @@ _0800F5E8:
b _0800F6F0
.align 2, 0
_0800F61C: .4byte gBattleTypeFlags
-_0800F620: .4byte gUnknown_202273C
+_0800F620: .4byte gLinkPlayers
_0800F624: .4byte gBattleStruct
_0800F628:
cmp r0, 0x2
@@ -565,7 +565,7 @@ _0800F628:
bne _0800F6F0
b _0800F682
_0800F632:
- ldr r2, _0800F654 @ =gUnknown_202273C
+ ldr r2, _0800F654 @ =gLinkPlayers
ldr r0, _0800F658 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -583,7 +583,7 @@ _0800F632:
beq _0800F682
b _0800F6F0
.align 2, 0
-_0800F654: .4byte gUnknown_202273C
+_0800F654: .4byte gLinkPlayers
_0800F658: .4byte gBattleStruct
_0800F65C:
cmp r0, 0x2
@@ -594,7 +594,7 @@ _0800F65C:
_0800F666:
cmp r2, 0x1
bne _0800F6A4
- ldr r2, _0800F694 @ =gUnknown_202273C
+ ldr r2, _0800F694 @ =gLinkPlayers
ldr r0, _0800F698 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -615,12 +615,12 @@ _0800F682:
bl sub_80D87BC
b _0800F6F0
.align 2, 0
-_0800F694: .4byte gUnknown_202273C
+_0800F694: .4byte gLinkPlayers
_0800F698: .4byte gBattleStruct
_0800F69C: .4byte gUnknown_83FE874
_0800F6A0: .4byte gUnknown_83FE87B
_0800F6A4:
- ldr r2, _0800F6D0 @ =gUnknown_202273C
+ ldr r2, _0800F6D0 @ =gLinkPlayers
ldr r0, _0800F6D4 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -641,7 +641,7 @@ _0800F6BC:
bl sub_80D87BC
b _0800F6F0
.align 2, 0
-_0800F6D0: .4byte gUnknown_202273C
+_0800F6D0: .4byte gLinkPlayers
_0800F6D4: .4byte gBattleStruct
_0800F6D8: .4byte gUnknown_83FE874
_0800F6DC: .4byte gUnknown_83FE87B
@@ -781,7 +781,7 @@ _0800F7CC:
adds r6, r5, 0
eors r6, r0
adds r1, r6, 0
- ldr r4, _0800F848 @ =gUnknown_202273C
+ ldr r4, _0800F848 @ =gLinkPlayers
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
@@ -832,7 +832,7 @@ _0800F830:
b _0800FAC4
.align 2, 0
_0800F844: .4byte gBattleStruct
-_0800F848: .4byte gUnknown_202273C
+_0800F848: .4byte gLinkPlayers
_0800F84C: .4byte gTasks
_0800F850:
ldr r0, _0800F8CC @ =0x00002710
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 960df7d0a..4775fc06b 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -232,7 +232,7 @@ _0800FF98:
_0800FFAE:
adds r0, r4, 0
movs r1, 0x3
- bl sub_80436F8
+ bl AdjustFriendship
adds r4, 0x64
cmp r4, r5
ble _0800FFAE
@@ -630,7 +630,7 @@ _080102C0:
beq _0801034C
movs r5, 0
ldr r3, _08010340 @ =gEnigmaBerries
- ldr r2, _08010344 @ =gUnknown_202273C
+ ldr r2, _08010344 @ =gLinkPlayers
mov r9, r2
adds r6, r3, 0
movs r4, 0x8
@@ -693,7 +693,7 @@ _0801031C:
b _080103FC
.align 2, 0
_08010340: .4byte gEnigmaBerries
-_08010344: .4byte gUnknown_202273C
+_08010344: .4byte gLinkPlayers
_08010348: .4byte gUnknown_202211C
_0801034C:
movs r5, 0
@@ -1560,7 +1560,7 @@ _08010A6A:
_08010A78:
cmp r4, r6
beq _08010ABA
- ldr r2, _08010A9C @ =gUnknown_202273C
+ ldr r2, _08010A9C @ =gLinkPlayers
adds r0, r7, r2
ldrh r1, [r0, 0x18]
movs r3, 0x1
@@ -1576,7 +1576,7 @@ _08010A78:
beq _08010AAC
b _08010ABA
.align 2, 0
-_08010A9C: .4byte gUnknown_202273C
+_08010A9C: .4byte gLinkPlayers
_08010AA0:
adds r0, r5, r2
ldrh r1, [r0, 0x18]
@@ -1862,7 +1862,7 @@ _08010CE2:
adds r2, r1, 0
ldr r0, _08010D5C @ =gUnknown_2022118
adds r3, r0, 0x2
- ldr r5, _08010D60 @ =gUnknown_202273C
+ ldr r5, _08010D60 @ =gLinkPlayers
movs r4, 0x3F
movs r7, 0x80
lsls r7, 1
@@ -1882,7 +1882,7 @@ _08010D50: .4byte gPlayerParty
_08010D54: .4byte sub_800F6FC
_08010D58: .4byte gTasks
_08010D5C: .4byte gUnknown_2022118
-_08010D60: .4byte gUnknown_202273C
+_08010D60: .4byte gLinkPlayers
_08010D64:
cmp r0, 0x2
beq _08010D7E
@@ -1967,7 +1967,7 @@ _08010DEE:
_08010E00:
cmp r6, r7
bne _08010E34
- ldr r0, _08010E1C @ =gUnknown_202273C
+ ldr r0, _08010E1C @ =gLinkPlayers
adds r0, r5, r0
ldrh r0, [r0, 0x18]
cmp r0, 0x2
@@ -1979,7 +1979,7 @@ _08010E00:
b _08010EBE
.align 2, 0
_08010E18: .4byte gUnknown_2022118
-_08010E1C: .4byte gUnknown_202273C
+_08010E1C: .4byte gLinkPlayers
_08010E20:
cmp r0, 0x3
bne _08010EBE
@@ -1994,7 +1994,7 @@ _08010E2C:
.align 2, 0
_08010E30: .4byte gUnknown_20243B0
_08010E34:
- ldr r2, _08010E54 @ =gUnknown_202273C
+ ldr r2, _08010E54 @ =gLinkPlayers
adds r0, r5, r2
ldrh r1, [r0, 0x18]
movs r3, 0x1
@@ -2011,7 +2011,7 @@ _08010E34:
beq _08010E66
b _08010E8C
.align 2, 0
-_08010E54: .4byte gUnknown_202273C
+_08010E54: .4byte gLinkPlayers
_08010E58:
mov r1, r8
adds r0, r1, r2
@@ -2120,7 +2120,7 @@ _08010F0E:
_08010F20:
cmp r6, r7
bne _08010F54
- ldr r0, _08010F3C @ =gUnknown_202273C
+ ldr r0, _08010F3C @ =gLinkPlayers
adds r0, r5, r0
ldrh r0, [r0, 0x18]
cmp r0, 0x2
@@ -2132,7 +2132,7 @@ _08010F20:
b _08010FDE
.align 2, 0
_08010F38: .4byte gUnknown_2022118
-_08010F3C: .4byte gUnknown_202273C
+_08010F3C: .4byte gLinkPlayers
_08010F40:
cmp r0, 0x3
bne _08010FDE
@@ -2147,7 +2147,7 @@ _08010F4C:
.align 2, 0
_08010F50: .4byte gUnknown_2024478
_08010F54:
- ldr r2, _08010F74 @ =gUnknown_202273C
+ ldr r2, _08010F74 @ =gLinkPlayers
adds r0, r5, r2
ldrh r1, [r0, 0x18]
movs r3, 0x1
@@ -2164,7 +2164,7 @@ _08010F54:
beq _08010F86
b _08010FAC
.align 2, 0
-_08010F74: .4byte gUnknown_202273C
+_08010F74: .4byte gLinkPlayers
_08010F78:
mov r1, r8
adds r0, r1, r2
@@ -3300,7 +3300,7 @@ sub_801184C: @ 801184C
ands r0, r1
cmp r0, 0
beq _080118BC
- ldr r1, _0801189C @ =gUnknown_202273C
+ ldr r1, _0801189C @ =gLinkPlayers
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -3316,7 +3316,7 @@ sub_801184C: @ 801184C
.align 2, 0
_08011894: .4byte gBattleStruct
_08011898: .4byte gBattleTypeFlags
-_0801189C: .4byte gUnknown_202273C
+_0801189C: .4byte gLinkPlayers
_080118A0:
cmp r0, 0x2
beq _080118BC
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index e229e21f1..564fb7e3c 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -4066,7 +4066,7 @@ sub_803C7F8: @ 803C7F8
_0803C820:
ldrb r0, [r6]
bl GetBankMultiplayerId
- ldr r5, _0803C88C @ =gUnknown_202273C
+ ldr r5, _0803C88C @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -4097,7 +4097,7 @@ _0803C820:
cmp r4, 0x3
bne _0803C8A0
_0803C866:
- ldr r4, _0803C88C @ =gUnknown_202273C
+ ldr r4, _0803C88C @ =gLinkPlayers
ldr r0, _0803C888 @ =gActiveBattler
ldrb r0, [r0]
bl GetBankMultiplayerId
@@ -4114,7 +4114,7 @@ _0803C866:
.align 2, 0
_0803C884: .4byte gBattleTypeFlags
_0803C888: .4byte gActiveBattler
-_0803C88C: .4byte gUnknown_202273C
+_0803C88C: .4byte gLinkPlayers
_0803C890: .4byte gFacilityClassToPicIndex
_0803C894:
ldr r0, _0803C89C @ =gFacilityClassToPicIndex
@@ -4153,7 +4153,7 @@ _0803C8C0:
_0803C8D8: .4byte gTrainerBattleOpponent_A
_0803C8DC:
bl GetMultiplayerId
- ldr r6, _0803C954 @ =gUnknown_202273C
+ ldr r6, _0803C954 @ =gLinkPlayers
movs r5, 0x1
eors r0, r5
lsls r0, 24
@@ -4192,7 +4192,7 @@ _0803C8DC:
cmp r4, 0x3
bne _0803C968
_0803C930:
- ldr r4, _0803C954 @ =gUnknown_202273C
+ ldr r4, _0803C954 @ =gLinkPlayers
bl GetMultiplayerId
movs r1, 0x1
eors r0, r1
@@ -4209,7 +4209,7 @@ _0803C930:
adds r0, 0x3D
b _0803C990
.align 2, 0
-_0803C954: .4byte gUnknown_202273C
+_0803C954: .4byte gLinkPlayers
_0803C958: .4byte gFacilityClassToPicIndex
_0803C95C:
ldr r0, _0803C964 @ =gFacilityClassToPicIndex
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index 87f018303..57c231075 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -3839,7 +3839,7 @@ sub_80D61C8: @ 80D61C8
_080D61E2:
ldrb r0, [r6]
bl GetBankMultiplayerId
- ldr r5, _080D6244 @ =gUnknown_202273C
+ ldr r5, _080D6244 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -3873,7 +3873,7 @@ _080D6228:
ldr r0, _080D6240 @ =gActiveBattler
ldrb r0, [r0]
bl GetBankMultiplayerId
- ldr r2, _080D6244 @ =gUnknown_202273C
+ ldr r2, _080D6244 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -3883,7 +3883,7 @@ _080D6228:
b _080D6258
.align 2, 0
_080D6240: .4byte gActiveBattler
-_080D6244: .4byte gUnknown_202273C
+_080D6244: .4byte gLinkPlayers
_080D6248:
ldrb r0, [r6]
bl GetBankMultiplayerId
@@ -5315,7 +5315,7 @@ sub_80D6CD4: @ 80D6CD4
lsrs r7, r0, 24
ldrb r0, [r6]
bl GetBankMultiplayerId
- ldr r4, _080D6DF8 @ =gUnknown_202273C
+ ldr r4, _080D6DF8 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -5349,7 +5349,7 @@ _080D6DC2:
ldr r0, _080D6DE0 @ =gActiveBattler
ldrb r0, [r0]
bl GetBankMultiplayerId
- ldr r2, _080D6DF8 @ =gUnknown_202273C
+ ldr r2, _080D6DF8 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -5365,7 +5365,7 @@ _080D6DE8: .4byte 0x0000ffd8
_080D6DEC: .4byte sub_8075590
_080D6DF0: .4byte sub_80335F8
_080D6DF4: .4byte 0x0000d6f9
-_080D6DF8: .4byte gUnknown_202273C
+_080D6DF8: .4byte gLinkPlayers
_080D6DFC:
ldrb r0, [r6]
bl GetBankMultiplayerId
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 20e8aa719..9b9c5f21d 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -7736,7 +7736,7 @@ _080322AE:
cmp r0, 0
beq _0803233C
bl GetMultiplayerId
- ldr r5, _08032324 @ =gUnknown_202273C
+ ldr r5, _08032324 @ =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
@@ -7772,7 +7772,7 @@ _080322AE:
bne _08032328
_08032306:
bl GetMultiplayerId
- ldr r2, _08032324 @ =gUnknown_202273C
+ ldr r2, _08032324 @ =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
@@ -7784,7 +7784,7 @@ _08032306:
b _08032342
.align 2, 0
_08032320: .4byte gBattleTypeFlags
-_08032324: .4byte gUnknown_202273C
+_08032324: .4byte gLinkPlayers
_08032328:
bl GetMultiplayerId
lsls r0, 24
@@ -7913,7 +7913,7 @@ sub_8032428: @ 8032428
cmp r0, 0
beq _080324B8
bl GetMultiplayerId
- ldr r5, _080324A0 @ =gUnknown_202273C
+ ldr r5, _080324A0 @ =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
@@ -7949,7 +7949,7 @@ sub_8032428: @ 8032428
bne _080324A4
_08032482:
bl GetMultiplayerId
- ldr r2, _080324A0 @ =gUnknown_202273C
+ ldr r2, _080324A0 @ =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
@@ -7961,7 +7961,7 @@ _08032482:
b _080324BE
.align 2, 0
_0803249C: .4byte gBattleTypeFlags
-_080324A0: .4byte gUnknown_202273C
+_080324A0: .4byte gLinkPlayers
_080324A4:
bl GetMultiplayerId
lsls r0, 24
diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s
index bf0bb8d5a..3305979c3 100644
--- a/asm/battle_controllers.s
+++ b/asm/battle_controllers.s
@@ -429,7 +429,7 @@ _0800D5A4:
_0800D5BC:
movs r0, 0
mov r10, r0
- ldr r1, _0800D5EC @ =gUnknown_202273C
+ ldr r1, _0800D5EC @ =gLinkPlayers
mov r12, r1
ldr r7, _0800D5F0 @ =gUnknown_2023BD6
mov r8, r0
@@ -451,21 +451,21 @@ _0800D5D0:
.align 2, 0
_0800D5E4: .4byte gUnknown_3004F84
_0800D5E8: .4byte sub_80123C0
-_0800D5EC: .4byte gUnknown_202273C
+_0800D5EC: .4byte gLinkPlayers
_0800D5F0: .4byte gUnknown_2023BD6
_0800D5F4: .4byte gBattlerPartyIndexes
_0800D5F8:
cmp r0, 0x3
bne _0800D61A
_0800D5FC:
- ldr r0, _0800D60C @ =gUnknown_202273C
+ ldr r0, _0800D60C @ =gLinkPlayers
adds r0, r4, r0
ldrb r0, [r0, 0x18]
movs r1, 0
bl sub_8127DA8
b _0800D61A
.align 2, 0
-_0800D60C: .4byte gUnknown_202273C
+_0800D60C: .4byte gLinkPlayers
_0800D610:
lsls r0, 24
lsrs r0, 24
@@ -474,7 +474,7 @@ _0800D610:
_0800D61A:
cmp r10, r5
bne _0800D66A
- ldr r0, _0800D640 @ =gUnknown_202273C
+ ldr r0, _0800D640 @ =gLinkPlayers
adds r3, r4, r0
ldrh r1, [r3, 0x18]
lsls r1, 2
@@ -492,7 +492,7 @@ _0800D61A:
beq _0800D650
b _0800D740
.align 2, 0
-_0800D640: .4byte gUnknown_202273C
+_0800D640: .4byte gLinkPlayers
_0800D644: .4byte gUnknown_3004FE0
_0800D648: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D64C:
@@ -514,7 +514,7 @@ _0800D660:
ldrh r0, [r3, 0x18]
b _0800D738
_0800D66A:
- ldr r2, _0800D690 @ =gUnknown_202273C
+ ldr r2, _0800D690 @ =gLinkPlayers
adds r0, r4, r2
ldrh r1, [r0, 0x18]
movs r3, 0x1
@@ -534,7 +534,7 @@ _0800D66A:
beq _0800D6A6
b _0800D6EC
.align 2, 0
-_0800D690: .4byte gUnknown_202273C
+_0800D690: .4byte gLinkPlayers
_0800D694:
lsls r0, r5, 3
subs r0, r5
@@ -1413,7 +1413,7 @@ sub_800DD28: @ 800DD28
ands r0, r1
cmp r0, 0
beq _0800DE28
- ldr r0, _0800DD64 @ =gUnknown_202273C
+ ldr r0, _0800DD64 @ =gLinkPlayers
ldr r1, [r0, 0x14]
ldr r0, _0800DD68 @ =0x00002211
cmp r1, r0
@@ -1426,7 +1426,7 @@ sub_800DD28: @ 800DD28
.align 2, 0
_0800DD5C: .4byte gUnknown_3003F64
_0800DD60: .4byte gBattleTypeFlags
-_0800DD64: .4byte gUnknown_202273C
+_0800DD64: .4byte gLinkPlayers
_0800DD68: .4byte 0x00002211
_0800DD6C: .4byte gUnknown_2022118
_0800DD70:
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 71dd7f5ed..9e2e38828 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -988,7 +988,7 @@ _080D7A88: .4byte gBattlerPartyIndexes
_080D7A8C: .4byte gEnemyParty
_080D7A90:
ldr r2, _080D7AB0 @ =gBattlerPartyIndexes
- ldr r1, _080D7AB4 @ =gUnknown_202273C
+ ldr r1, _080D7AB4 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1004,11 +1004,11 @@ _080D7A90:
bl _080D82AA
.align 2, 0
_080D7AB0: .4byte gBattlerPartyIndexes
-_080D7AB4: .4byte gUnknown_202273C
+_080D7AB4: .4byte gLinkPlayers
_080D7AB8: .4byte gPlayerParty
_080D7ABC:
ldr r2, _080D7AE0 @ =gBattlerPartyIndexes
- ldr r1, _080D7AE4 @ =gUnknown_202273C
+ ldr r1, _080D7AE4 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1026,11 +1026,11 @@ _080D7ABC:
bl _080D82AA
.align 2, 0
_080D7AE0: .4byte gBattlerPartyIndexes
-_080D7AE4: .4byte gUnknown_202273C
+_080D7AE4: .4byte gLinkPlayers
_080D7AE8: .4byte gEnemyParty
_080D7AEC:
ldr r2, _080D7B10 @ =gBattlerPartyIndexes
- ldr r1, _080D7B14 @ =gUnknown_202273C
+ ldr r1, _080D7B14 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1048,11 +1048,11 @@ _080D7AEC:
bl _080D82AA
.align 2, 0
_080D7B10: .4byte gBattlerPartyIndexes
-_080D7B14: .4byte gUnknown_202273C
+_080D7B14: .4byte gLinkPlayers
_080D7B18: .4byte gPlayerParty
_080D7B1C:
ldr r2, _080D7B40 @ =gBattlerPartyIndexes
- ldr r1, _080D7B44 @ =gUnknown_202273C
+ ldr r1, _080D7B44 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1070,7 +1070,7 @@ _080D7B1C:
b _080D82AA
.align 2, 0
_080D7B40: .4byte gBattlerPartyIndexes
-_080D7B44: .4byte gUnknown_202273C
+_080D7B44: .4byte gLinkPlayers
_080D7B48: .4byte gEnemyParty
_080D7B4C:
ldr r4, _080D7B70 @ =sBattler_AI
@@ -1558,7 +1558,7 @@ _080D7F38:
.align 2, 0
_080D7F40: .4byte gPotentialItemEffectBattler
_080D7F44:
- ldr r2, _080D7F7C @ =gUnknown_202273C
+ ldr r2, _080D7F7C @ =gLinkPlayers
ldr r0, _080D7F80 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -1586,7 +1586,7 @@ _080D7F64:
mov r4, sp
b _080D8382
.align 2, 0
-_080D7F7C: .4byte gUnknown_202273C
+_080D7F7C: .4byte gLinkPlayers
_080D7F80: .4byte gBattleStruct
_080D7F84: .4byte gPotentialItemEffectBattler
_080D7F88: .4byte gEnigmaBerries
@@ -1840,7 +1840,7 @@ _080D8162:
.align 2, 0
_080D8170: .4byte gUnknown_2022744
_080D8174:
- ldr r4, _080D8184 @ =gUnknown_202273C
+ ldr r4, _080D8184 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1849,9 +1849,9 @@ _080D8174:
movs r0, 0x2
b _080D81AA
.align 2, 0
-_080D8184: .4byte gUnknown_202273C
+_080D8184: .4byte gLinkPlayers
_080D8188:
- ldr r4, _080D8198 @ =gUnknown_202273C
+ ldr r4, _080D8198 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1860,9 +1860,9 @@ _080D8188:
movs r0, 0x1
b _080D81AA
.align 2, 0
-_080D8198: .4byte gUnknown_202273C
+_080D8198: .4byte gLinkPlayers
_080D819C:
- ldr r4, _080D81BC @ =gUnknown_202273C
+ ldr r4, _080D81BC @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -1879,7 +1879,7 @@ _080D81AA:
adds r4, r1, r4
b _080D8382
.align 2, 0
-_080D81BC: .4byte gUnknown_202273C
+_080D81BC: .4byte gLinkPlayers
_080D81C0:
ldr r0, _080D81D4 @ =gBattleScripting
ldrb r0, [r0, 0x17]
@@ -2454,7 +2454,7 @@ _080D8628:
beq _080D86A6
cmp r2, 0xAF
bne _080D869C
- ldr r2, _080D8678 @ =gUnknown_202273C
+ ldr r2, _080D8678 @ =gLinkPlayers
ldr r0, _080D867C @ =gBattleStruct
ldr r0, [r0]
adds r0, 0xB5
@@ -2479,7 +2479,7 @@ _080D8628:
b _080D868E
.align 2, 0
_080D8674: .4byte gBattleTypeFlags
-_080D8678: .4byte gUnknown_202273C
+_080D8678: .4byte gLinkPlayers
_080D867C: .4byte gBattleStruct
_080D8680: .4byte gPotentialItemEffectBattler
_080D8684: .4byte gEnigmaBerries
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 797830e95..4a134cd0c 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -980,7 +980,7 @@ sub_80CD98C: @ 80CD98C
ldrh r2, [r2, 0xE]
ldr r3, _080CD9EC @ =gUnknown_2023E8A
ldrb r3, [r3]
- ldr r5, _080CD9F0 @ =gUnknown_202273C
+ ldr r5, _080CD9F0 @ =gLinkPlayers
lsls r4, r6, 3
subs r4, r6
lsls r4, 2
@@ -999,7 +999,7 @@ _080CD9E0: .4byte gSaveBlock2Ptr
_080CD9E4: .4byte 0x00000a98
_080CD9E8: .4byte gUnknown_2039654
_080CD9EC: .4byte gUnknown_2023E8A
-_080CD9F0: .4byte gUnknown_202273C
+_080CD9F0: .4byte gLinkPlayers
thumb_func_end sub_80CD98C
thumb_func_start sub_80CD9F4
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 7972b7c80..29dcfecca 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -9182,7 +9182,7 @@ _080220DA:
adds r0, r1, 0
adds r0, r7
movs r1, 0
- bl sub_80436F8
+ bl AdjustFriendship
ldr r1, _08022328 @ =gBattlerPartyIndexes
mov r2, r9
ldr r0, [r2]
diff --git a/asm/battle_util2.s b/asm/battle_util2.s
index 77c4a5a51..8cfbe3120 100644
--- a/asm/battle_util2.s
+++ b/asm/battle_util2.s
@@ -289,7 +289,7 @@ _0802E27E:
ldr r1, _0802E2C8 @ =gPlayerParty
adds r0, r1
movs r1, 0x9
- bl sub_80436F8
+ bl AdjustFriendship
b _0802E302
.align 2, 0
_0802E2C0: .4byte gBattleMons
@@ -305,7 +305,7 @@ _0802E2CC:
ldr r1, _0802E2E8 @ =gPlayerParty
adds r0, r1
movs r1, 0x7
- bl sub_80436F8
+ bl AdjustFriendship
b _0802E302
.align 2, 0
_0802E2E4: .4byte gBattlerPartyIndexes
@@ -320,7 +320,7 @@ _0802E2EC:
ldr r1, _0802E30C @ =gPlayerParty
adds r0, r1
movs r1, 0x7
- bl sub_80436F8
+ bl AdjustFriendship
_0802E302:
pop {r4,r5}
pop {r0}
diff --git a/asm/cable_club.s b/asm/cable_club.s
index eeb9471db..e60a206bc 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -800,10 +800,10 @@ _08080D88: .4byte sub_8080E6C
sub_8080D8C: @ 8080D8C
push {r4,r5,lr}
movs r5, 0
- ldr r4, _08080D94 @ =gUnknown_202273C
+ ldr r4, _08080D94 @ =gLinkPlayers
b _08080DAC
.align 2, 0
-_08080D94: .4byte gUnknown_202273C
+_08080D94: .4byte gLinkPlayers
_08080D98:
ldrb r0, [r4]
subs r0, 0x1
@@ -929,7 +929,7 @@ sub_8080E6C: @ 8080E6C
mov r8, r0
b _08080EF8
_08080E9A:
- ldr r1, _08080ED0 @ =gUnknown_202273C
+ ldr r1, _08080ED0 @ =gLinkPlayers
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
@@ -956,7 +956,7 @@ _08080E9A:
strb r0, [r4]
b _08080EF2
.align 2, 0
-_08080ED0: .4byte gUnknown_202273C
+_08080ED0: .4byte gLinkPlayers
_08080ED4: .4byte gUnknown_2022118
_08080ED8: .4byte gUnknown_2039624
_08080EDC:
@@ -1580,7 +1580,7 @@ _080813AA:
.align 2, 0
_080813B4: .4byte gUnknown_3003F64
_080813B8:
- ldr r0, _080813CC @ =gUnknown_202273C
+ ldr r0, _080813CC @ =gLinkPlayers
ldr r0, [r0, 0x4]
movs r1, 0x1
ands r0, r1
@@ -1590,7 +1590,7 @@ _080813B8:
bl PlayMapChosenOrBattleBGM
b _080813DC
.align 2, 0
-_080813CC: .4byte gUnknown_202273C
+_080813CC: .4byte gLinkPlayers
_080813D0: .4byte 0x00000109
_080813D4:
movs r0, 0x85
@@ -1740,10 +1740,10 @@ _080814F0:
b _0808160A
_08081504:
movs r4, 0
- ldr r5, _0808150C @ =gUnknown_202273C
+ ldr r5, _0808150C @ =gLinkPlayers
b _08081536
.align 2, 0
-_0808150C: .4byte gUnknown_202273C
+_0808150C: .4byte gLinkPlayers
_08081510:
lsls r1, r4, 8
ldr r2, _08081548 @ =gUnknown_2022118
@@ -1798,7 +1798,7 @@ _0808156A:
strh r0, [r6]
b _0808160A
_0808157A:
- ldr r0, _08081590 @ =gUnknown_202273C
+ ldr r0, _08081590 @ =gLinkPlayers
ldr r0, [r0, 0x4]
movs r1, 0x1
ands r0, r1
@@ -1808,14 +1808,14 @@ _0808157A:
bl PlayMapChosenOrBattleBGM
b _080815A0
.align 2, 0
-_08081590: .4byte gUnknown_202273C
+_08081590: .4byte gLinkPlayers
_08081594: .4byte 0x00000109
_08081598:
movs r0, 0x85
lsls r0, 1
bl PlayMapChosenOrBattleBGM
_080815A0:
- ldr r0, _080815B8 @ =gUnknown_202273C
+ ldr r0, _080815B8 @ =gLinkPlayers
ldr r1, _080815BC @ =0x00002211
str r1, [r0, 0x14]
ldr r0, _080815C0 @ =gUnknown_20370C0
@@ -1828,7 +1828,7 @@ _080815A0:
beq _080815CA
b _080815EA
.align 2, 0
-_080815B8: .4byte gUnknown_202273C
+_080815B8: .4byte gLinkPlayers
_080815BC: .4byte 0x00002211
_080815C0: .4byte gUnknown_20370C0
_080815C4:
@@ -1955,7 +1955,7 @@ _080816BC: .4byte gUnknown_300502C
_080816C0: .4byte gUnknown_3003F3C
_080816C4: .4byte gUnknown_2023E8A
_080816C8:
- ldr r4, _080816E8 @ =gUnknown_202273C
+ ldr r4, _080816E8 @ =gLinkPlayers
bl GetMultiplayerId
eors r0, r5
lsls r0, 24
@@ -1970,9 +1970,9 @@ _080816C8:
bl sub_8144714
b _0808170A
.align 2, 0
-_080816E8: .4byte gUnknown_202273C
+_080816E8: .4byte gLinkPlayers
_080816EC:
- ldr r4, _08081718 @ =gUnknown_202273C
+ ldr r4, _08081718 @ =gLinkPlayers
bl GetMultiplayerId
eors r0, r5
lsls r0, 24
@@ -1993,7 +1993,7 @@ _0808170A:
ldr r0, _08081720 @ =sub_8081624
b _08081728
.align 2, 0
-_08081718: .4byte gUnknown_202273C
+_08081718: .4byte gLinkPlayers
_0808171C: .4byte gMain
_08081720: .4byte sub_8081624
_08081724:
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 6b981dea8..bcd3a10e9 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1887,7 +1887,7 @@ AdjustFriendship_step: @ 806D74C
_0806D76A:
adds r0, r5, 0
movs r1, 0x5
- bl sub_80436F8
+ bl AdjustFriendship
adds r5, 0x64
subs r4, 0x1
cmp r4, 0
diff --git a/asm/field_poison.s b/asm/field_poison.s
index f875d985b..930f5b403 100644
--- a/asm/field_poison.s
+++ b/asm/field_poison.s
@@ -74,7 +74,7 @@ MonFaintFromPoisonOnField: @ 80A04B8
str r0, [sp]
adds r0, r4, 0
movs r1, 0x8
- bl sub_80436F8
+ bl AdjustFriendship
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 5a2f26625..e0cd49fee 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -4619,7 +4619,7 @@ sub_80CC948: @ 80CC948
ldr r1, _080CC96C @ =gPlayerParty
adds r0, r1
movs r1, 0x6
- bl sub_80436F8
+ bl AdjustFriendship
ldr r0, _080CC970 @ =0x00004025
movs r1, 0
bl VarSet
diff --git a/asm/link.s b/asm/link.s
index 0849f6590..90fccf86f 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -1112,7 +1112,7 @@ _08009D40:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
- ldr r1, _08009DD0 @ =gUnknown_202273C
+ ldr r1, _08009DD0 @ =gLinkPlayers
adds r2, r0, r1
adds r1, r2, 0
mov r0, r8
@@ -1155,7 +1155,7 @@ _08009DBC:
_08009DC4: .4byte gUnknown_2022118
_08009DC8: .4byte gUnknown_3003ED0
_08009DCC: .4byte gUnknown_3003EB8
-_08009DD0: .4byte gUnknown_202273C
+_08009DD0: .4byte gLinkPlayers
_08009DD4: .4byte gUnknown_82345C0
_08009DD8: .4byte c2_800ACD4
_08009DDC:
@@ -1599,12 +1599,12 @@ _0800A100:
bl sub_80098B8
_0800A112:
movs r6, 0
- ldr r4, _0800A120 @ =gUnknown_202273C
+ ldr r4, _0800A120 @ =gLinkPlayers
movs r5, 0
b _0800A138
.align 2, 0
_0800A11C: .4byte gUnknown_3003EAC
-_0800A120: .4byte gUnknown_202273C
+_0800A120: .4byte gLinkPlayers
_0800A124:
adds r0, r4, 0
adds r0, 0x14
@@ -1628,7 +1628,7 @@ _0800A138:
lsrs r0, 24
cmp r7, r0
bne _0800A1B8
- ldr r0, _0800A170 @ =gUnknown_202273C
+ ldr r0, _0800A170 @ =gLinkPlayers
ldr r1, [r0, 0x14]
ldr r0, _0800A174 @ =0x00001133
cmp r1, r0
@@ -1643,7 +1643,7 @@ _0800A138:
ldr r2, _0800A178 @ =gUnknown_3000E54
b _0800A1E0
.align 2, 0
-_0800A170: .4byte gUnknown_202273C
+_0800A170: .4byte gLinkPlayers
_0800A174: .4byte 0x00001133
_0800A178: .4byte gUnknown_3000E54
_0800A17C:
@@ -1715,10 +1715,10 @@ IsLinkPlayerDataExchangeComplete: @ 800A1F0
push {r4-r6,lr}
movs r6, 0
movs r4, 0
- ldr r5, _0800A1FC @ =gUnknown_202273C
+ ldr r5, _0800A1FC @ =gLinkPlayers
b _0800A220
.align 2, 0
-_0800A1FC: .4byte gUnknown_202273C
+_0800A1FC: .4byte gLinkPlayers
_0800A200:
lsls r0, r4, 3
subs r0, r4
@@ -1772,7 +1772,7 @@ _0800A254: .4byte gUnknown_3000E54
GetLinkPlayerTrainerId: @ 800A258
lsls r0, 24
lsrs r0, 24
- ldr r2, _0800A26C @ =gUnknown_202273C
+ ldr r2, _0800A26C @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -1781,13 +1781,13 @@ GetLinkPlayerTrainerId: @ 800A258
ldr r0, [r1]
bx lr
.align 2, 0
-_0800A26C: .4byte gUnknown_202273C
+_0800A26C: .4byte gLinkPlayers
thumb_func_end GetLinkPlayerTrainerId
thumb_func_start sub_800A270
sub_800A270: @ 800A270
push {r4,r5,lr}
- ldr r5, _0800A290 @ =gUnknown_202273C
+ ldr r5, _0800A290 @ =gLinkPlayers
movs r4, 0x4
_0800A276:
adds r0, r5, 0
@@ -1802,7 +1802,7 @@ _0800A276:
pop {r0}
bx r0
.align 2, 0
-_0800A290: .4byte gUnknown_202273C
+_0800A290: .4byte gLinkPlayers
thumb_func_end sub_800A270
thumb_func_start ResetBlockSend
@@ -2706,7 +2706,7 @@ sub_800A900: @ 800A900
bl GetMultiplayerId
ldr r1, _0800A938 @ =gUnknown_3003F60
strb r0, [r1]
- ldr r4, _0800A93C @ =gUnknown_202273C
+ ldr r4, _0800A93C @ =gLinkPlayers
ldr r3, _0800A940 @ =gUnknown_20227C8
movs r2, 0x4
_0800A914:
@@ -2729,7 +2729,7 @@ _0800A914:
.align 2, 0
_0800A934: .4byte gUnknown_3003F40
_0800A938: .4byte gUnknown_3003F60
-_0800A93C: .4byte gUnknown_202273C
+_0800A93C: .4byte gLinkPlayers
_0800A940: .4byte gUnknown_20227C8
thumb_func_end sub_800A900
@@ -2760,7 +2760,7 @@ sub_800A95C: @ 800A95C
adds r6, r0, 0
cmp r5, r2
bge _0800A986
- ldr r1, _0800A994 @ =gUnknown_202273C
+ ldr r1, _0800A994 @ =gLinkPlayers
ldr r0, _0800A998 @ =gUnknown_20227C8
adds r4, r0, 0x4
adds r3, r1, 0x4
@@ -2784,7 +2784,7 @@ _0800A986:
b _0800A99E
.align 2, 0
_0800A990: .4byte gUnknown_3003F40
-_0800A994: .4byte gUnknown_202273C
+_0800A994: .4byte gLinkPlayers
_0800A998: .4byte gUnknown_20227C8
_0800A99C:
movs r0, 0x1
@@ -2805,7 +2805,7 @@ sub_800A9A4: @ 800A9A4
cmp r4, r0
bcs _0800AA04
ldr r6, _0800AA14 @ =gUnknown_20227C8
- ldr r5, _0800AA18 @ =gUnknown_202273C
+ ldr r5, _0800AA18 @ =gLinkPlayers
movs r0, 0x8
adds r0, r6
mov r8, r0
@@ -2853,7 +2853,7 @@ _0800AA04:
.align 2, 0
_0800AA10: .4byte gUnknown_3003F40
_0800AA14: .4byte gUnknown_20227C8
-_0800AA18: .4byte gUnknown_202273C
+_0800AA18: .4byte gLinkPlayers
_0800AA1C: .4byte gUnknown_3003EAC
_0800AA20: .4byte c2_800ACD4
thumb_func_end sub_800A9A4
@@ -3731,7 +3731,7 @@ sub_800B110: @ 800B110
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
- ldr r0, _0800B16C @ =gUnknown_202273C
+ ldr r0, _0800B16C @ =gLinkPlayers
adds r2, r0
adds r1, r2, 0
adds r0, r4, 0
@@ -3765,7 +3765,7 @@ _0800B160:
bx r0
.align 2, 0
_0800B168: .4byte gUnknown_2022118
-_0800B16C: .4byte gUnknown_202273C
+_0800B16C: .4byte gLinkPlayers
_0800B170: .4byte gUnknown_82345C0
_0800B174: .4byte c2_800ACD4
thumb_func_end sub_800B110
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index 9ae197c87..b606854a3 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -82,7 +82,7 @@ _080F863E:
bl CpuSet
mov r0, r9
strh r5, [r0]
- ldr r1, _080F86BC @ =gUnknown_202273C
+ ldr r1, _080F86BC @ =gLinkPlayers
ldr r2, _080F86C0 @ =0x01000046
bl CpuSet
add sp, 0x8
@@ -101,7 +101,7 @@ _080F86AC: .4byte gUnknown_3003F50
_080F86B0: .4byte 0x01000008
_080F86B4: .4byte gUnknown_3003ED0
_080F86B8: .4byte 0x01000028
-_080F86BC: .4byte gUnknown_202273C
+_080F86BC: .4byte gLinkPlayers
_080F86C0: .4byte 0x01000046
thumb_func_end sub_80F85F8
@@ -4706,7 +4706,7 @@ _080FAA10:
cmp r4, 0x3
ble _080FAA10
adds r6, r2, 0
- ldr r5, _080FAA54 @ =gUnknown_202273C
+ ldr r5, _080FAA54 @ =gLinkPlayers
movs r4, 0x4
_080FAA24:
adds r0, r5, 0
@@ -4731,7 +4731,7 @@ _080FAA24:
.align 2, 0
_080FAA4C: .4byte gUnknown_3005450
_080FAA50: .4byte 0x00000996
-_080FAA54: .4byte gUnknown_202273C
+_080FAA54: .4byte gLinkPlayers
thumb_func_end sub_80FA9FC
thumb_func_start sub_80FAA58
@@ -4874,7 +4874,7 @@ _080FAB70:
lsls r2, r4, 8
ldr r0, _080FAB9C @ =gUnknown_2022118
adds r2, r0
- ldr r1, _080FABA0 @ =gUnknown_202273C
+ ldr r1, _080FABA0 @ =gLinkPlayers
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
@@ -4891,7 +4891,7 @@ _080FAB70:
b _080FAC2E
.align 2, 0
_080FAB9C: .4byte gUnknown_2022118
-_080FABA0: .4byte gUnknown_202273C
+_080FABA0: .4byte gLinkPlayers
_080FABA4:
ldr r5, _080FAC40 @ =gUnknown_2022618
adds r1, r5, 0
@@ -4918,7 +4918,7 @@ _080FABC6:
adds r2, 0x1
cmp r2, 0x3
ble _080FABC6
- ldr r1, _080FAC50 @ =gUnknown_202273C
+ ldr r1, _080FAC50 @ =gLinkPlayers
adds r0, r5, 0
adds r0, 0x14
movs r2, 0x8C
@@ -4936,7 +4936,7 @@ _080FABEE:
ldrb r0, [r1, 0xD]
strb r0, [r5, 0xF]
movs r2, 0
- ldr r3, _080FAC50 @ =gUnknown_202273C
+ ldr r3, _080FAC50 @ =gLinkPlayers
mov r12, r3
adds r4, r5, 0
adds r4, 0x10
@@ -4977,7 +4977,7 @@ _080FAC40: .4byte gUnknown_2022618
_080FAC44: .4byte gUnknown_843EDE4
_080FAC48: .4byte gUnknown_3005450
_080FAC4C: .4byte 0x00000996
-_080FAC50: .4byte gUnknown_202273C
+_080FAC50: .4byte gLinkPlayers
_080FAC54: .4byte gTasks
_080FAC58:
adds r0, r3, 0
@@ -5512,7 +5512,7 @@ sub_80FB030: @ 80FB030
mov r8, r1
movs r4, 0
movs r6, 0x1
- ldr r2, _080FB0E0 @ =gUnknown_202273C
+ ldr r2, _080FB0E0 @ =gLinkPlayers
mov r12, r2
ldr r0, _080FB0E4 @ =0x00000996
adds r0, r3
@@ -5573,7 +5573,7 @@ _080FB0C4:
_080FB0D4: .4byte gUnknown_3005450
_080FB0D8: .4byte 0x0000099a
_080FB0DC: .4byte 0x0000099b
-_080FB0E0: .4byte gUnknown_202273C
+_080FB0E0: .4byte gLinkPlayers
_080FB0E4: .4byte 0x00000996
thumb_func_end sub_80FB030
@@ -10016,7 +10016,7 @@ _080FD258:
lsrs r0, 24
cmp r4, r0
beq _080FD29E
- ldr r2, _080FD328 @ =gUnknown_202273C
+ ldr r2, _080FD328 @ =gLinkPlayers
adds r0, r5, r2
ldrh r0, [r0, 0x1A]
cmp r0, 0x1
@@ -10115,7 +10115,7 @@ _080FD318:
pop {r0}
bx r0
.align 2, 0
-_080FD328: .4byte gUnknown_202273C
+_080FD328: .4byte gLinkPlayers
_080FD32C: .4byte 0x00003bac
_080FD330: .4byte gSaveBlock1Ptr
_080FD334: .4byte 0x00003ba8
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 2e431b6de..b2c004058 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -3157,12 +3157,12 @@ _081172C0:
ldr r0, _081172E0 @ =gUnknown_2039624
adds r7, r0, 0
adds r7, 0x38
- ldr r6, _081172E4 @ =gUnknown_202273C
+ ldr r6, _081172E4 @ =gLinkPlayers
adds r5, r0, 0
b _08117302
.align 2, 0
_081172E0: .4byte gUnknown_2039624
-_081172E4: .4byte gUnknown_202273C
+_081172E4: .4byte gLinkPlayers
_081172E8:
lsls r0, r4, 8
ldr r1, _08117338 @ =gUnknown_2022118
@@ -3275,7 +3275,7 @@ sub_81173C0: @ 81173C0
bl sp000_heal_pokemon
bl copy_player_party_to_sav1
bl copy_bags_and_unk_data_from_save_blocks
- ldr r5, _0811742C @ =gUnknown_202273C
+ ldr r5, _0811742C @ =gLinkPlayers
ldr r0, _08117430 @ =0x00002211
str r0, [r5, 0x14]
bl GetMultiplayerId
@@ -3315,7 +3315,7 @@ sub_81173C0: @ 81173C0
pop {r0}
bx r0
.align 2, 0
-_0811742C: .4byte gUnknown_202273C
+_0811742C: .4byte gLinkPlayers
_08117430: .4byte 0x00002211
_08117434: .4byte gMain
_08117438: .4byte sub_8081668
@@ -6054,7 +6054,7 @@ _08118CB6:
bl sub_80F9E2C
ldr r0, _08118CDC @ =gStringVar4
ldr r2, _08118CE0 @ =gUnknown_845842C
- ldr r1, _08118CE4 @ =gUnknown_202273C
+ ldr r1, _08118CE4 @ =gLinkPlayers
ldrb r1, [r1, 0x13]
lsls r1, 2
adds r1, r2
@@ -6065,7 +6065,7 @@ _08118CB6:
.align 2, 0
_08118CDC: .4byte gStringVar4
_08118CE0: .4byte gUnknown_845842C
-_08118CE4: .4byte gUnknown_202273C
+_08118CE4: .4byte gLinkPlayers
_08118CE8:
ldr r0, _08118D10 @ =gUnknown_203B058
strb r5, [r0]
@@ -6218,7 +6218,7 @@ _08118E36:
ldrb r2, [r4]
movs r1, 0x40
orrs r1, r2
- ldr r2, _08118E5C @ =gUnknown_202273C
+ ldr r2, _08118E5C @ =gLinkPlayers
ldrb r2, [r2, 0x13]
bl sub_811AE68
strb r5, [r4]
@@ -6226,7 +6226,7 @@ _08118E36:
.align 2, 0
_08118E54: .4byte gStringVar4
_08118E58: .4byte gUnknown_203B058
-_08118E5C: .4byte gUnknown_202273C
+_08118E5C: .4byte gLinkPlayers
_08118E60:
movs r0, 0x2
ldrsh r1, [r7, r0]
@@ -7519,7 +7519,7 @@ sub_8119944: @ 8119944
cmp r0, 0
beq _08119994
ldr r0, _08119978 @ =gStringVar4
- ldr r1, _0811997C @ =gUnknown_202273C
+ ldr r1, _0811997C @ =gLinkPlayers
adds r1, 0x2F
ldrb r1, [r1]
adds r2, r5, 0
@@ -7538,7 +7538,7 @@ sub_8119944: @ 8119944
b _08119996
.align 2, 0
_08119978: .4byte gStringVar4
-_0811997C: .4byte gUnknown_202273C
+_0811997C: .4byte gLinkPlayers
_08119980: .4byte gUnknown_203B058
_08119984:
cmp r0, 0x2
@@ -10349,7 +10349,7 @@ sub_811AECC: @ 811AECC
bl GetMultiplayerId
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _0811AF00 @ =gUnknown_202273C
+ ldr r2, _0811AF00 @ =gLinkPlayers
movs r0, 0x1
adds r1, r3, 0
eors r1, r0
@@ -10366,7 +10366,7 @@ sub_811AECC: @ 811AECC
beq _0811AF0A
b _0811AF60
.align 2, 0
-_0811AF00: .4byte gUnknown_202273C
+_0811AF00: .4byte gLinkPlayers
_0811AF04:
cmp r6, 0x45
beq _0811AF44
@@ -10866,7 +10866,7 @@ sub_811B298: @ 811B298
sub_811B2A8: @ 811B2A8
push {r4,lr}
movs r4, 0x80
- ldr r3, _0811B2D4 @ =gUnknown_202273C
+ ldr r3, _0811B2D4 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -10886,7 +10886,7 @@ sub_811B2A8: @ 811B2A8
pop {r1}
bx r1
.align 2, 0
-_0811B2D4: .4byte gUnknown_202273C
+_0811B2D4: .4byte gLinkPlayers
thumb_func_end sub_811B2A8
thumb_func_start sub_811B2D8
diff --git a/asm/overworld.s b/asm/overworld.s
index 5e6315b9f..3c6f52f4e 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -4834,7 +4834,7 @@ sub_80571A8: @ 80571A8
ldrb r0, [r0]
cmp r6, r0
bcs _08057212
- ldr r7, _0805722C @ =gUnknown_202273C
+ ldr r7, _0805722C @ =gLinkPlayers
_080571D8:
lsls r5, r6, 24
lsrs r5, 24
@@ -4874,7 +4874,7 @@ _08057212:
.align 2, 0
_08057224: .4byte gUnknown_300502C
_08057228: .4byte gUnknown_3005030
-_0805722C: .4byte gUnknown_202273C
+_0805722C: .4byte gLinkPlayers
thumb_func_end sub_80571A8
thumb_func_start sub_8057230
@@ -4885,7 +4885,7 @@ sub_8057230: @ 8057230
ldrb r0, [r0]
cmp r4, r0
bcs _0805725E
- ldr r5, _08057268 @ =gUnknown_202273C
+ ldr r5, _08057268 @ =gLinkPlayers
_0805723E:
lsls r0, r4, 24
lsrs r0, 24
@@ -4908,7 +4908,7 @@ _0805725E:
bx r0
.align 2, 0
_08057264: .4byte gUnknown_3005030
-_08057268: .4byte gUnknown_202273C
+_08057268: .4byte gLinkPlayers
thumb_func_end sub_8057230
thumb_func_start sub_805726C
diff --git a/asm/party_menu.s b/asm/party_menu.s
index d4e89ebc7..3a7542241 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -12727,7 +12727,7 @@ sub_8124E48: @ 8124E48
muls r0, r6
adds r0, r5
movs r1, 0x4
- bl sub_80436F8
+ bl AdjustFriendship
ldrh r1, [r7]
movs r0, 0xA9
lsls r0, 1
@@ -12815,7 +12815,7 @@ sub_8124EFC: @ 8124EFC
bl SetMonMoveSlot
adds r0, r5, 0
movs r1, 0x4
- bl sub_80436F8
+ bl AdjustFriendship
ldrh r2, [r7]
movs r0, 0x4
adds r1, r5, 0
@@ -14399,7 +14399,7 @@ sub_8125C48: @ 8125C48
bne _08125C84
adds r0, r5, 0
movs r1, 0x4
- bl sub_80436F8
+ bl AdjustFriendship
movs r0, 0xA9
lsls r0, 1
cmp r4, r0
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 998c7cdc4..b5d718a13 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -130,7 +130,7 @@ _0804AA12:
ands r0, r1
cmp r0, 0
beq _0804AA60
- ldr r4, _0804AA5C @ =gUnknown_202273C
+ ldr r4, _0804AA5C @ =gLinkPlayers
adds r0, r6, 0
bl GetBankMultiplayerId
lsls r1, r0, 3
@@ -144,7 +144,7 @@ _0804AA12:
_0804AA50: .4byte gBattlerPartyIndexes
_0804AA54: .4byte gPlayerParty
_0804AA58: .4byte gBattleTypeFlags
-_0804AA5C: .4byte gUnknown_202273C
+_0804AA5C: .4byte gLinkPlayers
_0804AA60:
ldr r0, _0804AAB8 @ =gSaveBlock2Ptr
ldr r0, [r0]
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index a7b2e3a4c..870757af8 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -5,1121 +5,6 @@
.text
- thumb_func_start sub_8043338
-sub_8043338: @ 8043338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r6, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _08043446
- ldr r0, _08043408 @ =gMonSpritesGfxPtr
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- cmp r10, r0
- beq _08043446
- ldr r0, [r1, 0xC]
- cmp r10, r0
- beq _08043446
- movs r5, 0
-_08043364:
- lsls r3, r5, 3
- adds r3, r5
- lsls r3, 2
- ldr r0, _0804340C @ =gUnknown_825265C
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r6, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r6
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r6, 8
- str r6, [sp, 0x4]
- adds r5, 0x1
- str r5, [sp]
- mov r9, r3
-_0804339C:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _08043410 @ =gUnknown_825265E
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _08043434
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_080433C0:
- adds r0, r4, 0
- cmp r4, 0
- bge _080433C8
- adds r0, r4, 0x7
-_080433C8:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08043428
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08043414
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _08043428
- adds r0, r1, 0
- adds r0, 0x40
- b _08043426
- .align 2, 0
-_08043408: .4byte gMonSpritesGfxPtr
-_0804340C: .4byte gUnknown_825265C
-_08043410: .4byte gUnknown_825265E
-_08043414:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08043428
- adds r0, r1, 0x4
-_08043426:
- strb r0, [r2]
-_08043428:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _080433C0
-_08043434:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0804339C
- ldr r6, [sp, 0x4]
- ldr r5, [sp]
- cmp r5, 0x3
- ble _08043364
-_08043446:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8043338
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 8043458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0804355A
- cmp r3, 0
- beq _0804355A
- movs r6, 0
-_0804347C:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _08043520 @ =gUnknown_825265C
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_080434B4:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _08043524 @ =gUnknown_825265E
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _08043548
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_080434D8:
- adds r0, r4, 0
- cmp r4, 0
- bge _080434E0
- adds r0, r4, 0x7
-_080434E0:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0804353C
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08043528
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0804353C
- adds r0, r1, 0
- adds r0, 0x40
- b _0804353A
- .align 2, 0
-_08043520: .4byte gUnknown_825265C
-_08043524: .4byte gUnknown_825265E
-_08043528:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0804353C
- adds r0, r1, 0x4
-_0804353A:
- strb r0, [r2]
-_0804353C:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _080434D8
-_08043548:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _080434B4
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0804347C
-_0804355A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DrawSpindaSpots
-
- thumb_func_start EvolutionRenameMon
-EvolutionRenameMon: @ 804356C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080435D8 @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080435C8
- movs r6, 0xB
- adds r0, r7, 0
- muls r0, r6
- ldr r4, _080435DC @ =gSpeciesNames
- adds r0, r4
- mov r1, r9
- bl StringCompare
- cmp r0, 0
- bne _080435C8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_080435C8:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080435D8: .4byte gStringVar1
-_080435DC: .4byte gSpeciesNames
- thumb_func_end EvolutionRenameMon
-
- thumb_func_start sub_80435E0
-sub_80435E0: @ 80435E0
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _08043608 @ =gUnknown_202273C
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0804360C
- cmp r0, 0x1
- bge _08043614
- cmp r0, 0
- beq _08043610
- b _08043616
- .align 2, 0
-_08043608: .4byte gUnknown_202273C
-_0804360C:
- cmp r0, 0x3
- bne _08043616
-_08043610:
- movs r5, 0
- b _08043616
-_08043614:
- movs r5, 0x1
-_08043616:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80435E0
-
- thumb_func_start sub_8043620
-sub_8043620: @ 8043620
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _08043644 @ =gUnknown_202273C
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _08043648
- cmp r0, 0x1
- bge _08043650
- cmp r0, 0
- beq _0804364C
- b _08043652
- .align 2, 0
-_08043644: .4byte gUnknown_202273C
-_08043648:
- cmp r0, 0x3
- bne _08043652
-_0804364C:
- movs r3, 0
- b _08043652
-_08043650:
- movs r3, 0x1
-_08043652:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8043620
-
- thumb_func_start GetBankMultiplayerId
-GetBankMultiplayerId: @ 8043658
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _08043664 @ =gUnknown_202273C
- b _08043670
- .align 2, 0
-_08043664: .4byte gUnknown_202273C
-_08043668:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08043676
-_08043670:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _08043668
-_08043676:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end GetBankMultiplayerId
-
- thumb_func_start sub_804367C
-sub_804367C: @ 804367C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08043694 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_08043694: .4byte gTrainers
- thumb_func_end sub_804367C
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 8043698
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _080436B6
- adds r0, r3, 0
- b _080436F2
-_080436B6:
- ldr r0, _080436D8 @ =gUnknown_8252B48
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080436DC
- cmp r1, 0x1
- bne _080436F0
- movs r0, 0x6E
- b _080436DE
- .align 2, 0
-_080436D8: .4byte gUnknown_8252B48
-_080436DC:
- movs r0, 0x5A
-_080436DE:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _080436F2
-_080436F0:
- adds r0, r3, 0
-_080436F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start sub_80436F8
-sub_80436F8: @ 80436F8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08043758
- ldr r0, _08043738 @ =gMain
- ldr r1, _0804373C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08043744
- ldr r0, _08043740 @ =gEnigmaBerries
- ldrb r4, [r0, 0x7]
- b _08043760
- .align 2, 0
-_08043738: .4byte gMain
-_0804373C: .4byte 0x00000439
-_08043740: .4byte gEnigmaBerries
-_08043744:
- ldr r0, _08043750 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08043754 @ =0x0000311a
- adds r0, r1
- ldrb r4, [r0]
- b _08043760
- .align 2, 0
-_08043750: .4byte gSaveBlock1Ptr
-_08043754: .4byte 0x0000311a
-_08043758:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08043760:
- cmp r6, 0
- bne _08043766
- b _08043876
-_08043766:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _08043770
- b _08043876
-_08043770:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0804378E
- movs r6, 0x1
-_0804378E:
- cmp r0, 0xC7
- ble _08043798
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08043798:
- cmp r5, 0x5
- bne _080437A8
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _08043876
-_080437A8:
- cmp r5, 0x3
- bne _080437D4
- ldr r0, _08043880 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08043876
- ldr r2, _08043884 @ =gTrainers
- ldr r0, _08043888 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x54
- beq _080437D4
- cmp r0, 0x57
- beq _080437D4
- cmp r0, 0x5A
- bne _08043876
-_080437D4:
- ldr r1, _0804388C @ =gUnknown_825DFF6
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _080437FA
- cmp r4, 0x1B
- bne _080437FA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_080437FA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0804384C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _08043828
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_08043828:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0804384C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0804384C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0804385C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0804385C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0804386C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0804386C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08043876:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043880: .4byte gBattleTypeFlags
-_08043884: .4byte gTrainers
-_08043888: .4byte gTrainerBattleOpponent_A
-_0804388C: .4byte gUnknown_825DFF6
- thumb_func_end sub_80436F8
-
- thumb_func_start MonGainEVs
-MonGainEVs: @ 8043890
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_080438A4:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl GetMonData
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _080438A4
- movs r6, 0
- b _08043A26
-_080438C8:
- mov r0, r8
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _080438DA
- movs r2, 0x2
-_080438DA:
- cmp r6, 0x5
- bhi _0804397C
- lsls r0, r6, 2
- ldr r1, _080438E8 @ =_080438EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080438E8: .4byte _080438EC
- .align 2, 0
-_080438EC:
- .4byte _08043904
- .4byte _08043918
- .4byte _0804392C
- .4byte _08043940
- .4byte _08043954
- .4byte _08043968
-_08043904:
- ldr r0, _08043914 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _08043976
- .align 2, 0
-_08043914: .4byte gBaseStats
-_08043918:
- ldr r0, _08043928 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _08043974
- .align 2, 0
-_08043928: .4byte gBaseStats
-_0804392C:
- ldr r0, _0804393C @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _08043976
- .align 2, 0
-_0804393C: .4byte gBaseStats
-_08043940:
- ldr r0, _08043950 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _08043978
- .align 2, 0
-_08043950: .4byte gBaseStats
-_08043954:
- ldr r0, _08043964 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _08043976
- .align 2, 0
-_08043964: .4byte gBaseStats
-_08043968:
- ldr r0, _080439A4 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_08043974:
- lsls r0, 28
-_08043976:
- lsrs r0, 30
-_08043978:
- adds r4, r0, 0
- muls r4, r2
-_0804397C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080439C8
- ldr r0, _080439A8 @ =gMain
- ldr r1, _080439AC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080439B4
- ldr r0, _080439B0 @ =gEnigmaBerries
- ldrb r0, [r0, 0x7]
- b _080439D0
- .align 2, 0
-_080439A4: .4byte gBaseStats
-_080439A8: .4byte gMain
-_080439AC: .4byte 0x00000439
-_080439B0: .4byte gEnigmaBerries
-_080439B4:
- ldr r0, _080439C0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _080439C4 @ =0x0000311a
- adds r0, r2
- ldrb r0, [r0]
- b _080439D0
- .align 2, 0
-_080439C0: .4byte gSaveBlock1Ptr
-_080439C4: .4byte 0x0000311a
-_080439C8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_080439D0:
- cmp r0, 0x18
- bne _080439D8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_080439D8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _080439F0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080439F0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _08043A0C
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_08043A0C:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl SetMonData
- adds r6, 0x1
- cmp r6, 0x5
- bgt _08043A2E
-_08043A26:
- ldr r0, _08043A3C @ =0x000001fd
- cmp r7, r0
- bhi _08043A2E
- b _080438C8
-_08043A2E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043A3C: .4byte 0x000001fd
- thumb_func_end MonGainEVs
-
- thumb_func_start GetMonEVCount
-GetMonEVCount: @ 8043A40
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08043A48:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08043A48
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonEVCount
-
- thumb_func_start sub_8043A68
-sub_8043A68: @ 8043A68
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043A68
-
- thumb_func_start CheckPartyPokerus
-CheckPartyPokerus: @ 8043A70
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08043AB8
-_08043A84:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08043AAC
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _08043AAC
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_08043AAC:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08043A84
- b _08043ACC
-_08043AB8:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _08043ACC
- movs r5, 0x1
-_08043ACC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyPokerus
-
- thumb_func_start CheckPartyHasHadPokerus
-CheckPartyHasHadPokerus: @ 8043AD8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08043B1C
-_08043AEC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08043B10
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, 0
- beq _08043B10
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_08043B10:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08043AEC
- b _08043B2C
-_08043B1C:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08043B2C
- movs r5, 0x1
-_08043B2C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyHasHadPokerus
-
- thumb_func_start sub_8043B38
-sub_8043B38: @ 8043B38
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043B38
-
- thumb_func_start sub_8043B40
-sub_8043B40: @ 8043B40
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043B40
-
thumb_func_start sub_8043B48
sub_8043B48: @ 8043B48
push {r4,lr}
@@ -2404,7 +1289,7 @@ sub_80444C4: @ 80444C4
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
- ldr r4, _080444F4 @ =gUnknown_202273C
+ ldr r4, _080444F4 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -2423,7 +1308,7 @@ sub_80444C4: @ 80444C4
pop {r1}
bx r1
.align 2, 0
-_080444F4: .4byte gUnknown_202273C
+_080444F4: .4byte gLinkPlayers
thumb_func_end sub_80444C4
thumb_func_start sub_80444F8
@@ -2573,7 +1458,7 @@ _080445F4:
cmp r2, 0
beq _08044658
_0804461A:
- ldr r4, _08044644 @ =gUnknown_202273C
+ ldr r4, _08044644 @ =gLinkPlayers
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
@@ -2591,7 +1476,7 @@ _08044632:
_08044638: .4byte gBattleTypeFlags
_0804463C: .4byte gMain
_08044640: .4byte 0x00000439
-_08044644: .4byte gUnknown_202273C
+_08044644: .4byte gLinkPlayers
_08044648:
ldr r0, _0804466C @ =gMain
ldr r1, _08044670 @ =0x00000439
@@ -2778,7 +1663,7 @@ sub_80447AC: @ 80447AC
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r3, _080447E8 @ =gUnknown_202273C
+ ldr r3, _080447E8 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -2801,7 +1686,7 @@ sub_80447AC: @ 80447AC
pop {r1}
bx r1
.align 2, 0
-_080447E8: .4byte gUnknown_202273C
+_080447E8: .4byte gLinkPlayers
_080447EC: .4byte gUnknown_825E032
thumb_func_end sub_80447AC
@@ -2813,7 +1698,7 @@ sub_80447F0: @ 80447F0
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r3, _0804482C @ =gUnknown_202273C
+ ldr r3, _0804482C @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -2836,7 +1721,7 @@ sub_80447F0: @ 80447F0
pop {r1}
bx r1
.align 2, 0
-_0804482C: .4byte gUnknown_202273C
+_0804482C: .4byte gLinkPlayers
_08044830: .4byte gFacilityClassToTrainerClass
_08044834: .4byte gUnknown_825E032
thumb_func_end sub_80447F0
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 570e67218..03ede3f37 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -7631,7 +7631,7 @@ sub_813847C: @ 813847C
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r2, _081384C8 @ =gUnknown_202273C
+ ldr r2, _081384C8 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -7649,7 +7649,7 @@ sub_813847C: @ 813847C
_081384BC: .4byte gUnknown_203B140
_081384C0: .4byte 0x000032f4
_081384C4: .4byte gEnemyParty
-_081384C8: .4byte gUnknown_202273C
+_081384C8: .4byte gLinkPlayers
_081384CC: .4byte 0x0000304c
_081384D0:
bl sub_80CC1E4
diff --git a/asm/quest_log_battle.s b/asm/quest_log_battle.s
index 635aaf5c3..1870395e9 100644
--- a/asm/quest_log_battle.s
+++ b/asm/quest_log_battle.s
@@ -432,7 +432,7 @@ _0812C330: .4byte gBattleStruct
sub_812C334: @ 812C334
push {r4-r6,lr}
adds r6, r0, 0
- ldr r3, _0812C35C @ =gUnknown_202273C
+ ldr r3, _0812C35C @ =gLinkPlayers
ldr r4, _0812C360 @ =gBattleStruct
ldr r0, [r4]
adds r0, 0xB5
@@ -452,7 +452,7 @@ _0812C352:
str r5, [r6]
b _0812C370
.align 2, 0
-_0812C35C: .4byte gUnknown_202273C
+_0812C35C: .4byte gLinkPlayers
_0812C360: .4byte gBattleStruct
_0812C364:
ldr r0, [r4]
diff --git a/asm/trade.s b/asm/trade.s
index c78aba5ef..52cd8e2fa 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -6469,7 +6469,7 @@ _0804FA70:
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
- ldr r0, _0804FAB0 @ =gUnknown_202273C
+ ldr r0, _0804FAB0 @ =gLinkPlayers
adds r1, r0
ldrb r0, [r1]
subs r0, 0x1
@@ -6492,7 +6492,7 @@ _0804FA70:
movs r0, 0x5
b _0804FB24
.align 2, 0
-_0804FAB0: .4byte gUnknown_202273C
+_0804FAB0: .4byte gLinkPlayers
_0804FAB4:
cmp r1, 0x97
bgt _0804FADE
@@ -6578,7 +6578,7 @@ sub_804FB34: @ 804FB34
cmp r0, 0
beq _0804FBC0
bl GetMultiplayerId
- ldr r6, _0804FBB8 @ =gUnknown_202273C
+ ldr r6, _0804FBB8 @ =gLinkPlayers
movs r7, 0x1
eors r0, r7
lsls r0, 24
@@ -6635,7 +6635,7 @@ _0804FB6E:
b _0804FBC2
.align 2, 0
_0804FBB4: .4byte gUnknown_3003F64
-_0804FBB8: .4byte gUnknown_202273C
+_0804FBB8: .4byte gLinkPlayers
_0804FBBC:
movs r0, 0x1
b _0804FBC2
@@ -14480,7 +14480,7 @@ _08054132:
ldrb r0, [r0]
cmp r0, 0
beq _0805415A
- ldr r4, _0805417C @ =gUnknown_202273C
+ ldr r4, _0805417C @ =gLinkPlayers
bl GetMultiplayerId
movs r1, 0x1
eors r0, r1
@@ -14509,7 +14509,7 @@ _0805415A:
.align 2, 0
_08054174: .4byte gUnknown_2031DAC
_08054178: .4byte gUnknown_3003F3C
-_0805417C: .4byte gUnknown_202273C
+_0805417C: .4byte gLinkPlayers
_08054180: .4byte gMain
_08054184:
ldr r0, _0805419C @ =gUnknown_2031DAC
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 5d0cab90e..5896ce98d 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -4800,7 +4800,7 @@ sub_808B700: @ 808B700
movs r2, 0x60
bl memcpy
ldr r1, [r5]
- ldr r2, _0808B768 @ =gUnknown_202273C
+ ldr r2, _0808B768 @ =gLinkPlayers
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
@@ -4819,7 +4819,7 @@ _0808B758: .4byte gUnknown_20397A4
_0808B75C: .4byte 0x00007bd0
_0808B760: .4byte 0x0000045c
_0808B764: .4byte gUnknown_2039624
-_0808B768: .4byte gUnknown_202273C
+_0808B768: .4byte gLinkPlayers
_0808B76C: .4byte 0x00007bcf
_0808B770: .4byte sub_80895B8
thumb_func_end sub_808B700
diff --git a/data/data.s b/data/data.s
index 9c5c431ae..12499d26a 100644
--- a/data/data.s
+++ b/data/data.s
@@ -307,16 +307,13 @@ gUnknown_8251FEE:: @ 8251FEE
gUnknown_8252324:: @ 8252324
.incbin "baserom.gba", 0x252324, 0x338
-gUnknown_825265C:: @ 825265C
- .incbin "baserom.gba", 0x25265C, 0x2
-
-gUnknown_825265E:: @ 825265E
- .incbin "baserom.gba", 0x25265E, 0x25E
+gSpindaSpotGraphics:: @ 825265C
+ .incbin "baserom.gba", 0x25265C, 0x260
gItemEffectTable:: @ 82528BC
.incbin "baserom.gba", 0x2528BC, 0x28C
-gUnknown_8252B48:: @ 8252B48
+gNatureStatTable:: @ 8252B48
.incbin "baserom.gba", 0x252B48, 0x80
gUnknown_8252BC8:: @ 8252BC8
@@ -379,7 +376,7 @@ sGetMonDataEVConstants:: @ 825DFEA
gUnknown_825DFF0:: @ 825DFF0
.incbin "baserom.gba", 0x25DFF0, 0x6
-gUnknown_825DFF6:: @ 825DFF6
+sFriendshipEventDeltas:: @ 825DFF6
.incbin "baserom.gba", 0x25DFF6, 0x1E
gUnknown_825E014:: @ 825E014
diff --git a/include/link.h b/include/link.h
index 1f91ebfeb..352386523 100644
--- a/include/link.h
+++ b/include/link.h
@@ -69,7 +69,7 @@ struct LinkPlayer
/* 0x08 */ u8 name[11];
/* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType;
- /* 0x18 */ u16 lp_field_18; // battle bank in battles
+ /* 0x18 */ u16 id; // battle bank in battles
/* 0x1A */ u16 language;
};
diff --git a/src/pokemon.c b/src/pokemon.c
index 66b7824ff..f4e712b46 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -14,6 +14,7 @@
#include "battle_controllers.h"
#include "evolution_scene.h"
#include "battle_message.h"
+#include "link.h"
#include "constants/items.h"
#include "constants/species.h"
#include "constants/pokemon.h"
@@ -65,6 +66,9 @@ extern u16 gUnknown_8251CB8[];
extern u16 gUnknown_8251FEE[];
extern u16 gUnknown_8252324[];
extern u16 gUnknown_82539D4[];
+extern struct SpindaSpot gSpindaSpotGraphics[];
+extern s8 gNatureStatTable[][5];
+extern const s8 sFriendshipEventDeltas[][3];
// External functions
extern u8 sav1_map_get_name(void); // overworld
@@ -4796,3 +4800,407 @@ u16 SpeciesToCryId(u16 species)
return gUnknown_82539D4[species - ((SPECIES_OLD_UNOWN_Z + 1) - 1)];
}
+
+void sub_8043338(u16 species, u32 personality, u8 *dest)
+{
+ if (species == SPECIES_SPINDA
+ && dest != gMonSpritesGfxPtr->sprites[0]
+ && dest != gMonSpritesGfxPtr->sprites[2])
+ {
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ int j;
+ u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8);
+ u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8);
+
+ for (j = 0; j < 16; j++)
+ {
+ int k;
+ s32 row = gSpindaSpotGraphics[i].image[j];
+
+ for (k = x; k < x + 16; k++)
+ {
+ u8 *val = dest + ((k / 8) * 32) + ((k % 8) / 2) + ((y >> 3) << 8) + ((y & 7) << 2);
+
+ if (row & 1)
+ {
+ if (k & 1)
+ {
+ if ((u8)((*val & 0xF0) - 0x10) <= 0x20)
+ *val += 0x40;
+ }
+ else
+ {
+ if ((u8)((*val & 0xF) - 0x01) <= 0x02)
+ *val += 0x04;
+ }
+ }
+
+ row >>= 1;
+ }
+
+ y++;
+ }
+
+ personality >>= 8;
+ }
+ }
+}
+
+void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4)
+{
+ if (species == SPECIES_SPINDA && a4)
+ {
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ int j;
+ u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8);
+ u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8);
+
+ for (j = 0; j < 16; j++)
+ {
+ int k;
+ s32 row = gSpindaSpotGraphics[i].image[j];
+
+ for (k = x; k < x + 16; k++)
+ {
+ u8 *val = dest + ((k / 8) * 32) + ((k % 8) / 2) + ((y >> 3) << 8) + ((y & 7) << 2);
+
+ if (row & 1)
+ {
+ if (k & 1)
+ {
+ if ((u8)((*val & 0xF0) - 0x10) <= 0x20)
+ *val += 0x40;
+ }
+ else
+ {
+ if ((u8)((*val & 0xF) - 0x01) <= 0x02)
+ *val += 0x04;
+ }
+ }
+
+ row >>= 1;
+ }
+
+ y++;
+ }
+
+ personality >>= 8;
+ }
+ }
+}
+
+void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies)
+{
+ u8 language;
+ GetMonData(mon, MON_DATA_NICKNAME, gStringVar1);
+ language = GetMonData(mon, MON_DATA_LANGUAGE, &language);
+ if (language == GAME_LANGUAGE && !StringCompare(gSpeciesNames[oldSpecies], gStringVar1))
+ SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[newSpecies]);
+}
+
+bool8 sub_80435E0(void)
+{
+ bool8 retVal = FALSE;
+ switch (gLinkPlayers[GetMultiplayerId()].id)
+ {
+ case 0:
+ case 3:
+ retVal = FALSE;
+ break;
+ case 1:
+ case 2:
+ retVal = TRUE;
+ break;
+ }
+ return retVal;
+}
+
+bool8 sub_8043620(u8 id)
+{
+ bool8 retVal = FALSE;
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ retVal = FALSE;
+ break;
+ case 1:
+ case 2:
+ retVal = TRUE;
+ break;
+ }
+ return retVal;
+}
+
+s32 GetBankMultiplayerId(u16 a1)
+{
+ s32 id;
+ for (id = 0; id < MAX_LINK_PLAYERS; id++)
+ if (gLinkPlayers[id].id == a1)
+ break;
+ return id;
+}
+
+u8 sub_804367C(u16 trainer)
+{
+ return gTrainers[trainer].encounterMusic_gender & 0x7F;
+}
+
+u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex)
+{
+ if (statIndex < 1 || statIndex > 5)
+ {
+ // should just be "return n", but it wouldn't match without this
+ u16 retVal = n;
+ retVal++;
+ retVal--;
+ return retVal;
+ }
+
+ switch (gNatureStatTable[nature][statIndex - 1])
+ {
+ case 1:
+ return (u16)(n * 110) / 100;
+ case -1:
+ return (u16)(n * 90) / 100;
+ }
+
+ return n;
+}
+
+// TODO: Move these to constants/trainers.h
+#define TRAINER_CLASS_ELITE_FOUR 0x54
+#define TRAINER_CLASS_LEADER 0x57
+#define TRAINER_CLASS_CHAMPION 0x5A
+
+// TODO: Move these too
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
+#define FRIENDSHIP_EVENT_WALKING 0x5
+
+void AdjustFriendship(struct Pokemon *mon, u8 event)
+{
+ u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
+ u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0);
+ u8 holdEffect;
+
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ holdEffect = gEnigmaBerries[0].holdEffect;
+ else
+ holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(heldItem);
+ }
+
+ if (species && species != SPECIES_EGG)
+ {
+ u8 friendshipLevel = 0;
+ s16 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, 0);
+ if (friendship > 99)
+ friendshipLevel++;
+ if (friendship > 199)
+ friendshipLevel++;
+
+ if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1))
+ && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE
+ || ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_ELITE_FOUR
+ || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_LEADER
+ || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_CHAMPION))))
+ {
+ s8 delta = sFriendshipEventDeltas[event][friendshipLevel];
+ if (delta > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ delta = (150 * delta) / 100;
+
+ friendship += delta;
+ if (delta > 0)
+ {
+ if (GetMonData(mon, MON_DATA_POKEBALL, 0) == ITEM_LUXURY_BALL)
+ friendship++;
+ if (GetMonData(mon, MON_DATA_MET_LOCATION, 0) == sav1_map_get_name())
+ friendship++;
+ }
+
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ }
+}
+
+void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies)
+{
+ u8 evs[NUM_STATS];
+ u16 evIncrease = 0;
+ u16 totalEVs = 0;
+ u16 heldItem;
+ u8 holdEffect;
+ int i;
+
+ for (i = 0; i < NUM_STATS; i++)
+ {
+ evs[i] = GetMonData(mon, MON_DATA_HP_EV + i, 0);
+ totalEVs += evs[i];
+ }
+
+ for (i = 0; i < NUM_STATS; i++)
+ {
+ u8 hasHadPokerus;
+ int multiplier;
+
+ if (totalEVs >= MAX_TOTAL_EVS)
+ break;
+
+ hasHadPokerus = CheckPartyHasHadPokerus(mon, 0);
+
+ if (hasHadPokerus)
+ multiplier = 2;
+ else
+ multiplier = 1;
+
+ switch (i)
+ {
+ case 0:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_HP * multiplier;
+ break;
+ case 1:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_Attack * multiplier;
+ break;
+ case 2:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_Defense * multiplier;
+ break;
+ case 3:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_Speed * multiplier;
+ break;
+ case 4:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_SpAttack * multiplier;
+ break;
+ case 5:
+ evIncrease = gBaseStats[defeatedSpecies].evYield_SpDefense * multiplier;
+ break;
+ }
+
+ heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0);
+
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ holdEffect = gEnigmaBerries[0].holdEffect;
+ else
+ holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(heldItem);
+ }
+
+ if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
+ evIncrease *= 2;
+
+ if (totalEVs + (s16)evIncrease > MAX_TOTAL_EVS)
+ evIncrease = ((s16)evIncrease + MAX_TOTAL_EVS) - (totalEVs + evIncrease);
+
+ if (evs[i] + (s16)evIncrease > 255)
+ {
+ int val1 = (s16)evIncrease + 255;
+ int val2 = evs[i] + evIncrease;
+ evIncrease = val1 - val2;
+ }
+
+ evs[i] += evIncrease;
+ totalEVs += evIncrease;
+ SetMonData(mon, MON_DATA_HP_EV + i, &evs[i]);
+ }
+}
+
+u16 GetMonEVCount(struct Pokemon *mon)
+{
+ int i;
+ u16 count = 0;
+
+ for (i = 0; i < NUM_STATS; i++)
+ count += GetMonData(mon, MON_DATA_HP_EV + i, 0);
+
+ return count;
+}
+
+void sub_8043A68(void)
+{
+ u8 foo[4]; // huh?
+}
+
+u8 CheckPartyPokerus(struct Pokemon *party, u8 selection)
+{
+ u8 retVal;
+
+ int partyIndex = 0;
+ unsigned curBit = 1;
+ retVal = 0;
+
+ if (selection)
+ {
+ do
+ {
+ if ((selection & 1) && (GetMonData(&party[partyIndex], MON_DATA_POKERUS, 0) & 0xF))
+ retVal |= curBit;
+ partyIndex++;
+ curBit <<= 1;
+ selection >>= 1;
+ }
+ while (selection);
+ }
+ else if (GetMonData(&party[0], MON_DATA_POKERUS, 0) & 0xF)
+ {
+ retVal = 1;
+ }
+
+ return retVal;
+}
+
+u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection)
+{
+ u8 retVal;
+
+ int partyIndex = 0;
+ unsigned curBit = 1;
+ retVal = 0;
+
+ if (selection)
+ {
+ do
+ {
+ if ((selection & 1) && GetMonData(&party[partyIndex], MON_DATA_POKERUS, 0))
+ retVal |= curBit;
+ partyIndex++;
+ curBit <<= 1;
+ selection >>= 1;
+ }
+ while (selection);
+ }
+ else if (GetMonData(&party[0], MON_DATA_POKERUS, 0))
+ {
+ retVal = 1;
+ }
+
+ return retVal;
+}
+
+void sub_8043B38(void)
+{
+ u8 foo[4]; // huh?
+}
+
+void sub_8043B40(void)
+{
+ u8 foo[4]; // huh?
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 75c584009..059b4b8f5 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -80,7 +80,7 @@ gUnknown_202271C: @ 202271C
gUnknown_2022720: @ 2022720
.space 0x1C
-gUnknown_202273C: @ 202273C
+gLinkPlayers: @ 202273C
.space 0x8
gUnknown_2022744: @ 2022744