summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2018-10-08 00:57:51 -0400
committerProjectRevoTPP <projectrevotpp@hotmail.com>2018-10-08 00:57:51 -0400
commite54247c225bc9605567cc0f2fc9e58e09e50cfdc (patch)
tree5096651c9f496d0cbae761803fd51d245b1fbe69
parentf285a81e859bb045725acac3d33f2d7d665ee8c5 (diff)
partially decompile pokemon.c
-rw-r--r--asm/battle_2.s486
-rw-r--r--asm/battle_ai_switch_items.s82
-rw-r--r--asm/battle_anim.s48
-rw-r--r--asm/battle_anim_8074480.s122
-rw-r--r--asm/battle_anim_80989F8.s22
-rw-r--r--asm/battle_anim_80A22E8.s394
-rw-r--r--asm/battle_anim_80DE2C0.s84
-rw-r--r--asm/battle_anim_80EEC0C.s30
-rw-r--r--asm/battle_anim_sound_tasks.s4
-rw-r--r--asm/battle_controller_link_opponent.s222
-rw-r--r--asm/battle_controller_link_partner.s188
-rw-r--r--asm/battle_controller_oak.s246
-rw-r--r--asm/battle_controller_opponent.s214
-rw-r--r--asm/battle_controller_player.s292
-rw-r--r--asm/battle_controller_pokedude.s268
-rw-r--r--asm/battle_controller_safari.s20
-rw-r--r--asm/battle_controllers.s58
-rw-r--r--asm/battle_dome_cards.s12
-rw-r--r--asm/battle_gfx_sfx_util.s122
-rw-r--r--asm/battle_interface.s102
-rw-r--r--asm/battle_message.s96
-rw-r--r--asm/battle_script_commands.s706
-rw-r--r--asm/battle_setup.s4
-rw-r--r--asm/battle_tower.s46
-rw-r--r--asm/battle_util.s472
-rw-r--r--asm/battle_util2.s6
-rw-r--r--asm/calculate_base_damage.s1123
-rw-r--r--asm/daycare.s46
-rw-r--r--asm/easy_chat.s4
-rw-r--r--asm/egg_hatch.s36
-rw-r--r--asm/event_data.s8
-rw-r--r--asm/evolution_scene.s102
-rw-r--r--asm/field_poison.s4
-rw-r--r--asm/field_specials.s28
-rw-r--r--asm/hall_of_fame.s4
-rw-r--r--asm/item_use.s8
-rw-r--r--asm/learn_move.s4
-rw-r--r--asm/link_rfu_3.s38
-rw-r--r--asm/load_save.s8
-rw-r--r--asm/mail_data.s16
-rw-r--r--asm/mystery_event_script.s8
-rw-r--r--asm/naming_screen.s4
-rw-r--r--asm/new_game.s4
-rw-r--r--asm/oak_speech.s4
-rw-r--r--asm/party_menu.s104
-rw-r--r--asm/pokeball.s24
-rw-r--r--asm/pokedex_screen.s36
-rw-r--r--asm/pokemon_1.s2431
-rw-r--r--asm/pokemon_2.s3902
-rw-r--r--asm/pokemon_3.s241
-rw-r--r--asm/pokemon_item_effect.s1972
-rw-r--r--asm/pokemon_size_record.s6
-rw-r--r--asm/pokemon_storage_system.s34
-rw-r--r--asm/pokemon_summary_screen.s32
-rw-r--r--asm/post_battle_event_funcs.s2
-rw-r--r--asm/quest_log.s12
-rw-r--r--asm/quest_log_battle.s20
-rw-r--r--asm/reshow_battle_screen.s60
-rw-r--r--asm/roamer.s14
-rw-r--r--asm/scrcmd.s12
-rw-r--r--asm/script_pokemon_util_80A0058.s22
-rw-r--r--asm/script_pokemon_util_80BF8FC.s14
-rw-r--r--asm/trade.s98
-rw-r--r--asm/trainer_tower.s12
-rw-r--r--data/data.s31
-rw-r--r--data/data_84827AC.s4
-rw-r--r--include/battle.h25
-rw-r--r--include/battle_controllers.h2
-rw-r--r--include/battle_util.h5
-rw-r--r--include/constants/flags.h7
-rw-r--r--include/constants/items.h3
-rw-r--r--include/constants/pokemon.h80
-rw-r--r--include/global.h25
-rw-r--r--include/pokemon.h9
-rw-r--r--ld_script.txt5
-rw-r--r--src/battle_ai_script_commands.c27
-rw-r--r--src/pokemon.c2833
-rw-r--r--sym_ewram.txt35
78 files changed, 5699 insertions, 12235 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 086603fe1..2bc93a09f 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -481,7 +481,7 @@ _08010194:
cmp r0, 0x1
bne _08010250
movs r5, 0
- ldr r3, _08010238 @ =gUnknown_2023F54
+ ldr r3, _08010238 @ =gEnigmaBerries
ldr r0, _0801023C @ =gSaveBlock1Ptr
mov r8, r0
adds r6, r3, 0
@@ -560,7 +560,7 @@ _080101EC:
b _080103FC
.align 2, 0
_08010234: .4byte gBattleTypeFlags
-_08010238: .4byte gUnknown_2023F54
+_08010238: .4byte gEnigmaBerries
_0801023C: .4byte gSaveBlock1Ptr
_08010240: .4byte 0x000030ec
_08010244: .4byte 0x00003108
@@ -574,7 +574,7 @@ _08010250:
bl sub_809C8A0
adds r6, r0, 0
movs r5, 0
- ldr r4, _080102BC @ =gUnknown_2023F54
+ ldr r4, _080102BC @ =gEnigmaBerries
adds r7, r4, 0
adds r7, 0x38
adds r3, r4, 0
@@ -622,14 +622,14 @@ _0801029C:
strb r1, [r0]
b _080103FC
.align 2, 0
-_080102BC: .4byte gUnknown_2023F54
+_080102BC: .4byte gEnigmaBerries
_080102C0:
movs r0, 0x40
ands r1, r0
cmp r1, 0
beq _0801034C
movs r5, 0
- ldr r3, _08010340 @ =gUnknown_2023F54
+ ldr r3, _08010340 @ =gEnigmaBerries
ldr r2, _08010344 @ =gUnknown_202273C
mov r9, r2
adds r6, r3, 0
@@ -692,12 +692,12 @@ _0801031C:
ble _080102D8
b _080103FC
.align 2, 0
-_08010340: .4byte gUnknown_2023F54
+_08010340: .4byte gEnigmaBerries
_08010344: .4byte gUnknown_202273C
_08010348: .4byte gUnknown_202211C
_0801034C:
movs r5, 0
- ldr r4, _0801040C @ =gUnknown_2023F54
+ ldr r4, _0801040C @ =gEnigmaBerries
mov r9, r4
_08010352:
lsls r0, r5, 8
@@ -750,7 +750,7 @@ _08010378:
orrs r0, r4
strb r0, [r1]
movs r4, 0
- ldr r0, _0801040C @ =gUnknown_2023F54
+ ldr r0, _0801040C @ =gEnigmaBerries
adds r0, 0x8
adds r2, r0
adds r3, r0
@@ -796,7 +796,7 @@ _080103FC:
pop {r0}
bx r0
.align 2, 0
-_0801040C: .4byte gUnknown_2023F54
+_0801040C: .4byte gEnigmaBerries
_08010410: .4byte gUnknown_202211C
thumb_func_end sub_801017C
@@ -2724,7 +2724,7 @@ _080113CE:
ldrh r1, [r0, 0x4]
movs r0, 0xB
muls r0, r1
- ldr r1, _08011450 @ =gUnknown_8245EE0
+ ldr r1, _08011450 @ =gSpeciesNames
adds r0, r1
ldrb r0, [r0]
adds r5, r2, 0
@@ -2779,7 +2779,7 @@ _08011410:
bl CreateMon
b _0801166C
.align 2, 0
-_08011450: .4byte gUnknown_8245EE0
+_08011450: .4byte gSpeciesNames
_08011454:
adds r0, r2, 0
adds r0, 0x24
@@ -2792,7 +2792,7 @@ _08011454:
ldrh r1, [r0, 0x4]
movs r0, 0xB
muls r0, r1
- ldr r1, _0801150C @ =gUnknown_8245EE0
+ ldr r1, _0801150C @ =gSpeciesNames
adds r0, r1
ldrb r0, [r0]
mov r8, r2
@@ -2856,25 +2856,25 @@ _080114E0:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
- ldr r0, _08011510 @ =gUnknown_8250C08
+ ldr r0, _08011510 @ =gBattleMoves+0x4
adds r2, r0
adds r0, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _080114E0
b _0801166C
.align 2, 0
-_0801150C: .4byte gUnknown_8245EE0
-_08011510: .4byte gUnknown_8250C08
+_0801150C: .4byte gSpeciesNames
+_08011510: .4byte gBattleMoves+0x4
_08011514:
adds r0, r2, 0
adds r0, 0x24
@@ -2887,7 +2887,7 @@ _08011514:
ldrh r1, [r0, 0x4]
movs r0, 0xB
muls r0, r1
- ldr r1, _080115A4 @ =gUnknown_8245EE0
+ ldr r1, _080115A4 @ =gSpeciesNames
adds r0, r1
ldrb r0, [r0]
adds r5, r2, 0
@@ -2945,10 +2945,10 @@ _08011556:
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
b _0801166C
.align 2, 0
-_080115A4: .4byte gUnknown_8245EE0
+_080115A4: .4byte gSpeciesNames
_080115A8:
adds r0, r4, 0
adds r0, 0x24
@@ -2961,7 +2961,7 @@ _080115A8:
ldrh r1, [r0, 0x4]
movs r0, 0xB
muls r0, r1
- ldr r1, _080116BC @ =gUnknown_8245EE0
+ ldr r1, _080116BC @ =gSpeciesNames
adds r0, r1
ldrb r0, [r0]
mov r8, r2
@@ -3020,7 +3020,7 @@ _080115EA:
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
movs r6, 0
adds r5, r4, 0
mov r0, r8
@@ -3031,17 +3031,17 @@ _08011642:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
- ldr r0, _080116C0 @ =gUnknown_8250C08
+ ldr r0, _080116C0 @ =gBattleMoves+0x4
adds r2, r0
adds r0, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
@@ -3092,8 +3092,8 @@ _080116AC:
pop {r1}
bx r1
.align 2, 0
-_080116BC: .4byte gUnknown_8245EE0
-_080116C0: .4byte gUnknown_8250C08
+_080116BC: .4byte gSpeciesNames
+_080116C0: .4byte gBattleMoves+0x4
_080116C4: .4byte gTrainers
_080116C8: .4byte gBattleTypeFlags
thumb_func_end sub_80112E0
@@ -3881,7 +3881,7 @@ sub_8011D0C: @ 8011D0C
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
_08011D54:
add sp, 0x10
pop {r4,r5}
@@ -4233,8 +4233,8 @@ _08011FE8:
ldrh r0, [r4, 0x2E]
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
- ldr r1, _0801203C @ =gUnknown_202401C
+ bl GetBattlerPosition
+ ldr r1, _0801203C @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r0, 24
lsrs r0, 22
@@ -4272,7 +4272,7 @@ _08012034:
pop {r0}
bx r0
.align 2, 0
-_0801203C: .4byte gUnknown_202401C
+_0801203C: .4byte gMonSpritesGfxPtr
_08012040: .4byte gUnknown_2024024
thumb_func_end sub_8011FB4
@@ -4799,7 +4799,7 @@ sub_80123E4: @ 80123E4
ldr r1, _08012428 @ =gActiveBattler
movs r0, 0
strb r0, [r1]
- ldr r0, _0801242C @ =gUnknown_2023BCC
+ ldr r0, _0801242C @ =gBattlersCount
ldrb r0, [r0]
cmp r0, 0
beq _0801241E
@@ -4814,7 +4814,7 @@ _08012400:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _0801242C @ =gUnknown_2023BCC
+ ldr r1, _0801242C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -4827,7 +4827,7 @@ _0801241E:
.align 2, 0
_08012424: .4byte gUnknown_3004F84
_08012428: .4byte gActiveBattler
-_0801242C: .4byte gUnknown_2023BCC
+_0801242C: .4byte gBattlersCount
_08012430: .4byte gUnknown_3004FE0
thumb_func_end sub_80123E4
@@ -4903,7 +4903,7 @@ _0801246C:
cmp r2, 0x3
ble _08012464
movs r5, 0
- ldr r3, _080126F8 @ =gUnknown_2023DE4
+ ldr r3, _080126F8 @ =gSideTimers
ldr r4, _080126FC @ =gSideAffecting
movs r2, 0x1
_080124C6:
@@ -5182,7 +5182,7 @@ _080126E8: .4byte gStatuses3
_080126EC: .4byte gUnknown_2023DD4
_080126F0: .4byte gUnknown_2023DC0
_080126F4: .4byte gBattleResources
-_080126F8: .4byte gUnknown_2023DE4
+_080126F8: .4byte gSideTimers
_080126FC: .4byte gSideAffecting
_08012700: .4byte sBattler_AI
_08012704: .4byte gBattlerTarget
@@ -5262,7 +5262,7 @@ _080127B0:
cmp r5, 0x7
ble _080127B0
movs r5, 0
- ldr r7, _080128DC @ =gUnknown_2023BCC
+ ldr r7, _080128DC @ =gBattlersCount
ldrb r7, [r7]
cmp r5, r7
bge _08012824
@@ -5310,7 +5310,7 @@ _08012816:
adds r3, 0x1C
adds r4, 0x4
adds r5, 0x1
- ldr r0, _080128DC @ =gUnknown_2023BCC
+ ldr r0, _080128DC @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _080127D2
@@ -5346,7 +5346,7 @@ _08012838:
ands r0, r2
str r0, [r1]
movs r5, 0
- ldr r6, _080128DC @ =gUnknown_2023BCC
+ ldr r6, _080128DC @ =gBattlersCount
ldrb r6, [r6]
cmp r5, r6
bge _0801290C
@@ -5354,11 +5354,11 @@ _08012838:
movs r6, 0
_0801286C:
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -5386,7 +5386,7 @@ _0801286C:
_080128AC:
adds r6, 0x1C
adds r5, 0x1
- ldr r0, _080128DC @ =gUnknown_2023BCC
+ ldr r0, _080128DC @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801286C
@@ -5402,7 +5402,7 @@ _080128CC: .4byte gBattleMoves
_080128D0: .4byte gCurrentMove
_080128D4: .4byte gStatuses3
_080128D8: .4byte gBattleMons
-_080128DC: .4byte gUnknown_2023BCC
+_080128DC: .4byte gBattlersCount
_080128E0: .4byte gUnknown_2023C34
_080128E4: .4byte 0xfbffffff
_080128E8: .4byte 0x15100007
@@ -5427,7 +5427,7 @@ _0801290C:
ldr r7, _08012B80 @ =gBattleStruct
ldr r3, _08012B84 @ =gUnknown_2023FF8
mov r10, r3
- ldr r6, _08012B88 @ =gUnknown_2023BCC
+ ldr r6, _08012B88 @ =gBattlersCount
ldrb r6, [r6]
cmp r5, r6
bge _0801296C
@@ -5470,7 +5470,7 @@ _08012944:
str r1, [r3]
_08012962:
adds r5, 0x1
- ldr r3, _08012B88 @ =gUnknown_2023BCC
+ ldr r3, _08012B88 @ =gBattlersCount
ldrb r3, [r3]
cmp r5, r3
blt _08012924
@@ -5672,7 +5672,7 @@ _08012A1A:
adds r0, 0xE7
strb r3, [r0]
movs r5, 0
- ldr r0, _08012B88 @ =gUnknown_2023BCC
+ ldr r0, _08012B88 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _08012B3C
@@ -5707,7 +5707,7 @@ _08012B14:
adds r0, 0xE1
strb r3, [r0]
adds r5, 0x1
- ldr r2, _08012B88 @ =gUnknown_2023BCC
+ ldr r2, _08012B88 @ =gBattlersCount
ldrb r2, [r2]
cmp r5, r2
blt _08012AFC
@@ -5748,7 +5748,7 @@ _08012B3C:
_08012B7C: .4byte gBattleMons
_08012B80: .4byte gBattleStruct
_08012B84: .4byte gUnknown_2023FF8
-_08012B88: .4byte gUnknown_2023BCC
+_08012B88: .4byte gBattlersCount
_08012B8C: .4byte gUnknown_2023C34
_08012B90: .4byte gBitTable
_08012B94: .4byte gActiveBattler
@@ -5809,7 +5809,7 @@ _08012BEE:
adds r0, r6
str r1, [r0]
movs r3, 0
- ldr r0, _08012F74 @ =gUnknown_2023BCC
+ ldr r0, _08012F74 @ =gBattlersCount
ldrb r0, [r0]
cmp r3, r0
bge _08012C8A
@@ -5866,7 +5866,7 @@ _08012C7C:
adds r4, 0x58
adds r5, 0x1C
adds r3, 0x1
- ldr r0, _08012F74 @ =gUnknown_2023BCC
+ ldr r0, _08012F74 @ =gBattlersCount
ldrb r0, [r0]
cmp r3, r0
blt _08012C26
@@ -6150,7 +6150,7 @@ _08012CA8:
adds r0, 0xE7
strb r3, [r0]
movs r3, 0
- ldr r0, _08012F74 @ =gUnknown_2023BCC
+ ldr r0, _08012F74 @ =gBattlersCount
ldrb r0, [r0]
cmp r3, r0
bge _08012F04
@@ -6187,7 +6187,7 @@ _08012EDC:
adds r0, 0xE1
strb r4, [r0]
adds r3, 0x1
- ldr r2, _08012F74 @ =gUnknown_2023BCC
+ ldr r2, _08012F74 @ =gBattlersCount
ldrb r2, [r2]
cmp r3, r2
blt _08012EC4
@@ -6243,7 +6243,7 @@ _08012F64: .4byte gUnknown_2023FF8
_08012F68: .4byte gUnknown_2023FFC
_08012F6C: .4byte gUnknown_2023E8C
_08012F70: .4byte gBattleMons
-_08012F74: .4byte gUnknown_2023BCC
+_08012F74: .4byte gBattlersCount
_08012F78: .4byte gBitTable
_08012F7C: .4byte gDisableStructs
_08012F80: .4byte 0xfbffffff
@@ -6278,7 +6278,7 @@ _08012FC0:
movs r0, 0
movs r1, 0
movs r2, 0
- bl EmitGetMonData
+ bl BtlController_EmitGetMonData
ldrb r0, [r4]
bl MarkBufferBankForExecution
ldrb r0, [r5]
@@ -6295,7 +6295,7 @@ _08012FE4:
ldrb r0, [r5, 0x1]
adds r0, 0x1
strb r0, [r5, 0x1]
- ldr r1, _0801300C @ =gUnknown_2023BCC
+ ldr r1, _0801300C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -6307,7 +6307,7 @@ _08012FE4:
b _0801301A
.align 2, 0
_08013008: .4byte gUnknown_2023BC8
-_0801300C: .4byte gUnknown_2023BCC
+_0801300C: .4byte gBattlersCount
_08013010: .4byte gUnknown_3004F84
_08013014: .4byte BattleIntroPrepareBackgroundSlide
_08013018:
@@ -6326,7 +6326,7 @@ BattleIntroPrepareBackgroundSlide: @ 8013020
cmp r5, 0
bne _08013050
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _0801305C @ =gActiveBattler
strb r0, [r4]
ldr r0, _08013060 @ =gUnknown_2022B50
@@ -6369,7 +6369,7 @@ sub_8013070: @ 8013070
_08013084:
ldr r2, _080130D8 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _080130DC @ =gUnknown_2023BCC
+ ldr r0, _080130DC @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcc _08013092
@@ -6391,7 +6391,7 @@ _080130A0:
beq _080130E8
ldr r4, _080130D8 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080130E8
@@ -6411,7 +6411,7 @@ _080130C6:
.align 2, 0
_080130D4: .4byte gUnknown_2023BC8
_080130D8: .4byte gActiveBattler
-_080130DC: .4byte gUnknown_2023BCC
+_080130DC: .4byte gBattlersCount
_080130E0: .4byte gBattleMons
_080130E4: .4byte gBattleTypeFlags
_080130E8:
@@ -6478,7 +6478,7 @@ _080130FA:
adds r1, 0x20
strb r0, [r1]
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, _0801323C @ =gBattleStruct
lsls r0, 24
lsrs r0, 23
@@ -6521,7 +6521,7 @@ _08013196:
_080131B6:
ldr r4, _08013238 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _080131D0
@@ -6537,7 +6537,7 @@ _080131D0:
cmp r0, 0
beq _0801324C
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6548,7 +6548,7 @@ _080131D0:
bl MarkBufferBankForExecution
_080131F6:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6582,7 +6582,7 @@ _08013244: .4byte gBattleTypeFlags
_08013248: .4byte 0x0001aa02
_0801324C:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6644,13 +6644,13 @@ _080132C2:
beq _080132F8
ldr r4, _0801332C @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
beq _080132EC
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -6665,7 +6665,7 @@ _080132F8:
ldrb r0, [r2]
adds r0, 0x1
strb r0, [r2]
- ldr r1, _08013330 @ =gUnknown_2023BCC
+ ldr r1, _08013330 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -6688,7 +6688,7 @@ _08013314:
_08013324: .4byte 0x0001aa02
_08013328: .4byte gBattleTypeFlags
_0801332C: .4byte gActiveBattler
-_08013330: .4byte gUnknown_2023BCC
+_08013330: .4byte gBattlersCount
_08013334: .4byte gUnknown_3004F84
_08013338: .4byte BattleIntroDrawPartySummaryScreens
thumb_func_end sub_8013070
@@ -6762,7 +6762,7 @@ _080133B6:
cmp r7, 0x5
ble _08013366
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _08013410 @ =gActiveBattler
strb r0, [r4]
movs r0, 0
@@ -6817,7 +6817,7 @@ _0801342E:
cmp r7, 0x5
ble _080133E2
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _0801345C @ =gActiveBattler
strb r0, [r4]
movs r0, 0
@@ -6902,7 +6902,7 @@ BattleIntroPrintTrainerWantsToBattle: @ 80134DC
cmp r0, 0
bne _080134FE
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08013508 @ =gActiveBattler
strb r0, [r1]
ldrb r1, [r1]
@@ -6942,7 +6942,7 @@ sub_8013514: @ 8013514
cmp r0, r1
bne _0801354A
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08013560 @ =gBattleScripting
strb r0, [r1, 0x17]
ldr r0, _08013564 @ =gUnknown_81D91A1
@@ -6967,7 +6967,7 @@ sub_8013568: @ 8013568
cmp r0, 0
bne _0801358A
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -6994,14 +6994,14 @@ sub_801359C: @ 801359C
bne _0801360C
ldr r2, _08013618 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _0801361C @ =gUnknown_2023BCC
+ ldr r0, _0801361C @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _08013606
adds r4, r2, 0
_080135B4:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7018,7 +7018,7 @@ _080135CE:
cmp r0, 0
beq _080135F4
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -7031,7 +7031,7 @@ _080135F4:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _0801361C @ =gUnknown_2023BCC
+ ldr r1, _0801361C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -7048,7 +7048,7 @@ _0801360C:
.align 2, 0
_08013614: .4byte gUnknown_2023BC8
_08013618: .4byte gActiveBattler
-_0801361C: .4byte gUnknown_2023BCC
+_0801361C: .4byte gBattlersCount
_08013620: .4byte gBattleTypeFlags
_08013624: .4byte gUnknown_3004F84
_08013628: .4byte sub_801362C
@@ -7063,7 +7063,7 @@ sub_801362C: @ 801362C
bne _0801369C
ldr r2, _080136A8 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _080136AC @ =gUnknown_2023BCC
+ ldr r0, _080136AC @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _08013696
@@ -7074,7 +7074,7 @@ sub_801362C: @ 801362C
adds r7, 0x48
_0801364C:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7102,7 +7102,7 @@ _08013684:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _080136AC @ =gUnknown_2023BCC
+ ldr r1, _080136AC @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -7119,7 +7119,7 @@ _0801369C:
.align 2, 0
_080136A4: .4byte gUnknown_2023BC8
_080136A8: .4byte gActiveBattler
-_080136AC: .4byte gUnknown_2023BCC
+_080136AC: .4byte gBattlersCount
_080136B0: .4byte gBattleMons
_080136B4: .4byte gBattleTypeFlags
_080136B8: .4byte 0x0001aa02
@@ -7160,7 +7160,7 @@ sub_80136E4: @ 80136E4
cmp r0, 0
bne _0801370C
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7189,14 +7189,14 @@ sub_8013728: @ 8013728
bne _080137AC
ldr r2, _080137B8 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _080137BC @ =gUnknown_2023BCC
+ ldr r0, _080137BC @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _08013790
adds r4, r2, 0
_08013740:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08013758
@@ -7212,7 +7212,7 @@ _08013758:
cmp r0, 0
beq _0801377E
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -7225,7 +7225,7 @@ _0801377E:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _080137BC @ =gUnknown_2023BCC
+ ldr r1, _080137BC @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -7253,7 +7253,7 @@ _080137AC:
.align 2, 0
_080137B4: .4byte gUnknown_2023BC8
_080137B8: .4byte gActiveBattler
-_080137BC: .4byte gUnknown_2023BCC
+_080137BC: .4byte gBattlersCount
_080137C0: .4byte gBattleTypeFlags
_080137C4: .4byte gBattleStruct
_080137C8: .4byte gUnknown_3004F84
@@ -7269,7 +7269,7 @@ sub_80137D0: @ 80137D0
bne _0801383A
ldr r2, _08013844 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _08013848 @ =gUnknown_2023BCC
+ ldr r0, _08013848 @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _0801381E
@@ -7277,7 +7277,7 @@ sub_80137D0: @ 80137D0
ldr r5, _0801384C @ =gBattlerPartyIndexes
_080137EA:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801380C
@@ -7294,7 +7294,7 @@ _0801380C:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _08013848 @ =gUnknown_2023BCC
+ ldr r1, _08013848 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -7322,7 +7322,7 @@ _0801383A:
.align 2, 0
_08013840: .4byte gUnknown_2023BC8
_08013844: .4byte gActiveBattler
-_08013848: .4byte gUnknown_2023BCC
+_08013848: .4byte gBattlersCount
_0801384C: .4byte gBattlerPartyIndexes
_08013850: .4byte gBattleStruct
_08013854: .4byte gUnknown_3004F84
@@ -7351,7 +7351,7 @@ _08013874:
cmp r0, 0
bne _080138FA
movs r5, 0
- ldr r1, _080138A8 @ =gUnknown_2023BCC
+ ldr r1, _080138A8 @ =gBattlersCount
adds r3, r1, 0
ldrb r0, [r1]
cmp r5, r0
@@ -7370,7 +7370,7 @@ _0801389A:
.align 2, 0
_080138A0: .4byte gUnknown_2023BC8
_080138A4: .4byte gBattleStruct
-_080138A8: .4byte gUnknown_2023BCC
+_080138A8: .4byte gBattlersCount
_080138AC: .4byte gUnknown_2023BDE
_080138B0:
adds r4, r5, 0x1
@@ -7379,7 +7379,7 @@ _080138B0:
cmp r8, r1
bge _080138EE
ldr r6, _08013924 @ =gUnknown_2023BDE
- ldr r3, _08013928 @ =gUnknown_2023BCC
+ ldr r3, _08013928 @ =gBattlersCount
lsls r7, r5, 24
_080138C0:
adds r0, r5, r6
@@ -7400,7 +7400,7 @@ _080138C0:
ldr r3, [sp, 0x4]
_080138E4:
adds r4, 0x1
- ldr r0, _08013928 @ =gUnknown_2023BCC
+ ldr r0, _08013928 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _080138C0
@@ -7424,7 +7424,7 @@ _080138FA:
movs r1, 0
movs r2, 0
movs r3, 0xFF
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08013930
@@ -7435,13 +7435,13 @@ _080138FA:
b _08013ADA
.align 2, 0
_08013924: .4byte gUnknown_2023BDE
-_08013928: .4byte gUnknown_2023BCC
+_08013928: .4byte gBattlersCount
_0801392C: .4byte gBattleStruct
_08013930:
ldr r2, _08013AE8 @ =gBattleStruct
ldr r0, [r2]
adds r0, 0x4C
- ldr r1, _08013AEC @ =gUnknown_2023BCC
+ ldr r1, _08013AEC @ =gBattlersCount
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -7458,7 +7458,7 @@ _08013944:
str r0, [sp]
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _0801396A
@@ -7480,7 +7480,7 @@ _0801396A:
_0801397C:
ldr r0, [r4]
adds r0, 0x4C
- ldr r1, _08013AEC @ =gUnknown_2023BCC
+ ldr r1, _08013AEC @ =gBattlersCount
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -7492,7 +7492,7 @@ _0801398A:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -7504,7 +7504,7 @@ _080139A4:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _080139BA
@@ -7513,7 +7513,7 @@ _080139BA:
ldr r2, _08013AE8 @ =gBattleStruct
ldr r0, [r2]
adds r0, 0xD9
- ldr r1, _08013AEC @ =gUnknown_2023BCC
+ ldr r1, _08013AEC @ =gBattlersCount
ldrb r0, [r0]
adds r3, r1, 0
ldrb r1, [r3]
@@ -7551,7 +7551,7 @@ _080139F6:
bne _08013ADA
ldr r0, [r4]
adds r0, 0xD9
- ldr r1, _08013AEC @ =gUnknown_2023BCC
+ ldr r1, _08013AEC @ =gBattlersCount
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -7611,7 +7611,7 @@ _08013A74:
cmp r0, r1
bge _08013A74
movs r5, 0
- ldr r3, _08013AEC @ =gUnknown_2023BCC
+ ldr r3, _08013AEC @ =gBattlersCount
ldr r2, _08013AE8 @ =gBattleStruct
ldr r6, _08013B0C @ =gBattleScripting
ldr r7, _08013B10 @ =gMoveResultFlags
@@ -7668,7 +7668,7 @@ _08013ADA:
bx r0
.align 2, 0
_08013AE8: .4byte gBattleStruct
-_08013AEC: .4byte gUnknown_2023BCC
+_08013AEC: .4byte gBattlersCount
_08013AF0: .4byte gUnknown_2023BDE
_08013AF4: .4byte gUnknown_2023D7C
_08013AF8: .4byte gUnknown_2023DC4
@@ -7692,7 +7692,7 @@ sub_8013B1C: @ 8013B1C
ldr r1, _08013BB8 @ =gUnknown_3004F84
ldr r0, _08013BBC @ =sub_8013BD4
str r0, [r1]
- ldr r3, _08013BC0 @ =gUnknown_2023BCC
+ ldr r3, _08013BC0 @ =gBattlersCount
ldr r1, _08013BC4 @ =gUnknown_2023E82
movs r2, 0
adds r0, r1, 0x7
@@ -7735,7 +7735,7 @@ _08013B4A:
bl CancelMultiTurnMoves
_08013B7C:
adds r4, 0x1
- ldr r0, _08013BC0 @ =gUnknown_2023BCC
+ ldr r0, _08013BC0 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _08013B4A
@@ -7767,7 +7767,7 @@ _08013BAC:
_08013BB4: .4byte gUnknown_2023BC8
_08013BB8: .4byte gUnknown_3004F84
_08013BBC: .4byte sub_8013BD4
-_08013BC0: .4byte gUnknown_2023BCC
+_08013BC0: .4byte gBattlersCount
_08013BC4: .4byte gUnknown_2023E82
_08013BC8: .4byte gBattleMons
_08013BCC: .4byte gBattleStruct
@@ -7879,7 +7879,7 @@ _08013CB0:
strb r0, [r1, 0x13]
_08013CBC:
movs r2, 0
- ldr r4, _08013D34 @ =gUnknown_2023BCC
+ ldr r4, _08013D34 @ =gBattlersCount
ldr r0, _08013D38 @ =gBattleStruct
mov r8, r0
ldr r1, _08013D3C @ =gUnknown_3004F84
@@ -7940,7 +7940,7 @@ _08013D20:
bx r0
.align 2, 0
_08013D30: .4byte gBattleResults
-_08013D34: .4byte gUnknown_2023BCC
+_08013D34: .4byte gBattlersCount
_08013D38: .4byte gBattleStruct
_08013D3C: .4byte gUnknown_3004F84
_08013D40: .4byte gAbsentBattlerFlags
@@ -7963,7 +7963,7 @@ IsRunningFromBattleImpossible: @ 8013D54
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _08013D84
- ldr r1, _08013D80 @ =gUnknown_2023F54
+ ldr r1, _08013D80 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -7973,14 +7973,14 @@ IsRunningFromBattleImpossible: @ 8013D54
.align 2, 0
_08013D78: .4byte gBattleMons
_08013D7C: .4byte gActiveBattler
-_08013D80: .4byte gUnknown_2023F54
+_08013D80: .4byte gEnigmaBerries
_08013D84:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
lsls r0, 24
lsrs r2, r0, 24
_08013D8E:
- ldr r1, _08013EA4 @ =gUnknown_2023D6F
+ ldr r1, _08013EA4 @ =gPotentialItemEffectBattler
ldr r3, _08013EA8 @ =gActiveBattler
ldrb r0, [r3]
strb r0, [r1]
@@ -8008,11 +8008,11 @@ _08013DAA:
b _08013F18
_08013DBE:
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _08013EB4 @ =gUnknown_2023BCC
+ ldr r0, _08013EB4 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _08013E52
@@ -8020,7 +8020,7 @@ _08013DBE:
_08013DD4:
lsrs r4, r7, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r6, r0
@@ -8037,7 +8037,7 @@ _08013DD4:
b _08013F20
_08013DF8:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r6, r0
@@ -8077,7 +8077,7 @@ _08013E42:
lsls r0, 17
adds r7, r0
adds r5, 0x1
- ldr r0, _08013EB4 @ =gUnknown_2023BCC
+ ldr r0, _08013EB4 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _08013DD4
@@ -8089,7 +8089,7 @@ _08013E52:
movs r0, 0xF
movs r2, 0x2A
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -8113,7 +8113,7 @@ _08013E8A:
ldr r0, _08013EB8 @ =gBattleScripting
subs r1, r5, 0x1
strb r1, [r0, 0x17]
- ldr r2, _08013EBC @ =gUnknown_2023D6A
+ ldr r2, _08013EBC @ =gLastUsedAbility
adds r0, r1, 0
muls r0, r3
adds r0, r6
@@ -8124,13 +8124,13 @@ _08013E8A:
movs r0, 0x2
b _08013F5C
.align 2, 0
-_08013EA4: .4byte gUnknown_2023D6F
+_08013EA4: .4byte gPotentialItemEffectBattler
_08013EA8: .4byte gActiveBattler
_08013EAC: .4byte gBattleTypeFlags
_08013EB0: .4byte gBattleMons
-_08013EB4: .4byte gUnknown_2023BCC
+_08013EB4: .4byte gBattlersCount
_08013EB8: .4byte gBattleScripting
-_08013EBC: .4byte gUnknown_2023D6A
+_08013EBC: .4byte gLastUsedAbility
_08013EC0: .4byte gUnknown_2023E82
_08013EC4:
ldr r1, _08013EF8 @ =gBattleMons
@@ -8181,7 +8181,7 @@ _08013F1C: .4byte gBattleTypeFlags
_08013F20:
ldr r0, _08013F30 @ =gBattleScripting
strb r5, [r0, 0x17]
- ldr r1, _08013F34 @ =gUnknown_2023D6A
+ ldr r1, _08013F34 @ =gLastUsedAbility
ldrb r0, [r2]
strb r0, [r1]
ldr r1, _08013F38 @ =gUnknown_2023E82
@@ -8189,12 +8189,12 @@ _08013F20:
b _08013F5C
.align 2, 0
_08013F30: .4byte gBattleScripting
-_08013F34: .4byte gUnknown_2023D6A
+_08013F34: .4byte gLastUsedAbility
_08013F38: .4byte gUnknown_2023E82
_08013F3C:
ldr r0, _08013F4C @ =gBattleScripting
strb r5, [r0, 0x17]
- ldr r1, _08013F50 @ =gUnknown_2023D6A
+ ldr r1, _08013F50 @ =gLastUsedAbility
ldrb r0, [r2]
strb r0, [r1]
ldr r1, _08013F54 @ =gUnknown_2023E82
@@ -8202,7 +8202,7 @@ _08013F3C:
b _08013F5C
.align 2, 0
_08013F4C: .4byte gBattleScripting
-_08013F50: .4byte gUnknown_2023D6A
+_08013F50: .4byte gLastUsedAbility
_08013F54: .4byte gUnknown_2023E82
_08013F58:
ldr r1, _08013F68 @ =gUnknown_2023E82
@@ -8340,7 +8340,7 @@ sub_8014040: @ 8014040
strb r1, [r0, 0x4]
ldr r0, _08014090 @ =gActiveBattler
strb r1, [r0]
- ldr r0, _08014094 @ =gUnknown_2023BCC
+ ldr r0, _08014094 @ =gBattlersCount
adds r2, r0, 0
ldrb r0, [r2]
cmp r1, r0
@@ -8349,7 +8349,7 @@ sub_8014040: @ 8014040
_08014064:
ldr r4, _08014090 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0801408C @ =gUnknown_2023E82
@@ -8368,7 +8368,7 @@ _08014080:
.align 2, 0
_0801408C: .4byte gUnknown_2023E82
_08014090: .4byte gActiveBattler
-_08014094: .4byte gUnknown_2023BCC
+_08014094: .4byte gBattlersCount
_08014098: .4byte _0801409C
.align 2, 0
_0801409C:
@@ -8401,7 +8401,7 @@ _080140B8:
beq _08014114
eors r5, r1
adds r0, r5, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, [r4]
adds r1, 0x91
ldrb r1, [r1]
@@ -8415,7 +8415,7 @@ _080140B8:
bne _08014114
ldr r4, _08014160 @ =gUnknown_2023E82
adds r0, r5, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -8853,7 +8853,7 @@ _080144C0:
adds r1, r2, 0
movs r2, 0x17
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -8863,7 +8863,7 @@ _080144C0:
movs r0, 0xC
movs r2, 0x47
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -8894,7 +8894,7 @@ _08014510:
movs r0, 0xF
movs r2, 0x2A
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -8921,7 +8921,7 @@ _08014548:
orrs r1, r0
lsls r1, 24
lsrs r1, 24
- ldr r0, _0801457C @ =gUnknown_2023D6A
+ ldr r0, _0801457C @ =gLastUsedAbility
ldrb r3, [r0]
ldr r4, _08014580 @ =gBattleStruct
ldr r0, _08014574 @ =gActiveBattler
@@ -8939,7 +8939,7 @@ _08014548:
.align 2, 0
_08014574: .4byte gActiveBattler
_08014578: .4byte gBattleMons
-_0801457C: .4byte gUnknown_2023D6A
+_0801457C: .4byte gLastUsedAbility
_08014580: .4byte gBattleStruct
_08014584:
ldr r0, _080145A8 @ =gActiveBattler
@@ -9061,12 +9061,12 @@ _08014670:
movs r0, 0x6
strb r0, [r1]
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -9587,7 +9587,7 @@ _08014ACA:
bne _08014AFE
adds r0, r5, 0
eors r0, r1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08014B18 @ =gBattleStruct
ldr r1, [r1]
adds r1, 0x91
@@ -9762,7 +9762,7 @@ _08014C4E:
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
- ldr r0, _08014C98 @ =gUnknown_2023BCC
+ ldr r0, _08014C98 @ =gBattlersCount
lsls r1, 24
lsrs r1, 24
adds r2, r0, 0
@@ -9793,7 +9793,7 @@ _08014C88: .4byte gUnknown_2023BC8
_08014C8C: .4byte gBitTable
_08014C90: .4byte gActiveBattler
_08014C94: .4byte gUnknown_2023E82
-_08014C98: .4byte gUnknown_2023BCC
+_08014C98: .4byte gBattlersCount
_08014C9C: .4byte gUnknown_3004F84
_08014CA0: .4byte sub_80150A8
thumb_func_end sub_8014040
@@ -9851,7 +9851,7 @@ GetWhoStrikesFirst: @ 8014CD8
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _08014DA0
@@ -9861,7 +9861,7 @@ GetWhoStrikesFirst: @ 8014CD8
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _08014DA0
@@ -9943,7 +9943,7 @@ _08014DA4:
adds r4, r0, r1
ldrh r0, [r4, 0x6]
muls r3, r0
- ldr r2, _08014DEC @ =gUnknown_825DEAD
+ ldr r2, _08014DEC @ =gStatStageRatios
movs r1, 0x1B
ldrsb r1, [r4, r1]
lsls r1, 1
@@ -9958,7 +9958,7 @@ _08014DA4:
ldrh r0, [r4, 0x2E]
cmp r0, 0xAF
bne _08014DF4
- ldr r1, _08014DF0 @ =gUnknown_2023F54
+ ldr r1, _08014DF0 @ =gEnigmaBerries
mov r3, r9
lsls r0, r3, 3
subs r0, r3
@@ -9969,8 +9969,8 @@ _08014DA4:
b _08014E08
.align 2, 0
_08014DE8: .4byte gBattleMons
-_08014DEC: .4byte gUnknown_825DEAD
-_08014DF0: .4byte gUnknown_2023F54
+_08014DEC: .4byte gStatStageRatios
+_08014DF0: .4byte gEnigmaBerries
_08014DF4:
ldrh r0, [r4, 0x2E]
bl ItemId_GetHoldEffect
@@ -9993,7 +9993,7 @@ _08014E08:
cmp r0, 0
beq _08014E3C
mov r0, r9
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08014E3C
@@ -10050,7 +10050,7 @@ _08014E80:
ldrh r0, [r4, 0x6]
adds r3, r0, 0
muls r3, r7
- ldr r2, _08014ED4 @ =gUnknown_825DEAD
+ ldr r2, _08014ED4 @ =gStatStageRatios
movs r1, 0x1B
ldrsb r1, [r4, r1]
lsls r1, 1
@@ -10065,7 +10065,7 @@ _08014E80:
ldrh r0, [r4, 0x2E]
cmp r0, 0xAF
bne _08014EDC
- ldr r1, _08014ED8 @ =gUnknown_2023F54
+ ldr r1, _08014ED8 @ =gEnigmaBerries
mov r3, r10
lsls r0, r3, 3
subs r0, r3
@@ -10079,8 +10079,8 @@ _08014EC4: .4byte gBattleTypeFlags
_08014EC8: .4byte 0x00000822
_08014ECC: .4byte gBattleMons
_08014ED0: .4byte gUnknown_2023E80
-_08014ED4: .4byte gUnknown_825DEAD
-_08014ED8: .4byte gUnknown_2023F54
+_08014ED4: .4byte gStatStageRatios
+_08014ED8: .4byte gEnigmaBerries
_08014EDC:
ldrh r0, [r4, 0x2E]
bl ItemId_GetHoldEffect
@@ -10103,7 +10103,7 @@ _08014EF0:
cmp r0, 0
beq _08014F20
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08014F20
@@ -10332,7 +10332,7 @@ sub_80150A8: @ 80150A8
beq _08015114
ldr r0, _08015100 @ =gActiveBattler
strb r3, [r0]
- ldr r4, _08015104 @ =gUnknown_2023BCC
+ ldr r4, _08015104 @ =gBattlersCount
mov r8, r0
ldrb r0, [r4]
cmp r3, r0
@@ -10365,7 +10365,7 @@ _080150D8:
.align 2, 0
_080150FC: .4byte gBattleTypeFlags
_08015100: .4byte gActiveBattler
-_08015104: .4byte gUnknown_2023BCC
+_08015104: .4byte gBattlersCount
_08015108: .4byte gUnknown_2023BDA
_0801510C: .4byte gUnknown_2023D7C
_08015110: .4byte gUnknown_2023BDE
@@ -10376,7 +10376,7 @@ _08015114:
beq _08015164
ldr r0, _08015158 @ =gActiveBattler
strb r3, [r0]
- ldr r1, _0801515C @ =gUnknown_2023BCC
+ ldr r1, _0801515C @ =gBattlersCount
mov r8, r0
adds r2, r1, 0
ldrb r2, [r2]
@@ -10394,7 +10394,7 @@ _08015136:
strb r0, [r7]
lsls r0, 24
lsrs r0, 24
- ldr r1, _0801515C @ =gUnknown_2023BCC
+ ldr r1, _0801515C @ =gBattlersCount
ldrb r1, [r1]
cmp r0, r1
bcs _08015174
@@ -10406,7 +10406,7 @@ _08015136:
b _08015172
.align 2, 0
_08015158: .4byte gActiveBattler
-_0801515C: .4byte gUnknown_2023BCC
+_0801515C: .4byte gBattlersCount
_08015160: .4byte gUnknown_2023D7C
_08015164:
ldr r0, _080151D8 @ =gUnknown_2023D7C
@@ -10440,14 +10440,14 @@ _08015174:
mov r12, r0
ldr r1, _080151F0 @ =gBattleStruct
mov r9, r1
- ldr r7, _080151F4 @ =gUnknown_2023BCC
+ ldr r7, _080151F4 @ =gBattlersCount
ldrb r7, [r7]
cmp r5, r7
bge _080151CC
adds r7, r6, 0
adds r6, r4, 0
adds r4, r2, 0
- ldr r2, _080151F4 @ =gUnknown_2023BCC
+ ldr r2, _080151F4 @ =gBattlersCount
_080151AE:
mov r0, r8
ldrb r0, [r0]
@@ -10480,12 +10480,12 @@ _080151E4: .4byte gUnknown_2023BDE
_080151E8: .4byte gUnknown_3004F84
_080151EC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
_080151F0: .4byte gBattleStruct
-_080151F4: .4byte gUnknown_2023BCC
+_080151F4: .4byte gBattlersCount
_080151F8:
movs r0, 0
mov r1, r8
strb r0, [r1]
- ldr r2, _08015288 @ =gUnknown_2023BCC
+ ldr r2, _08015288 @ =gBattlersCount
ldrb r0, [r2]
cmp r0, 0
beq _0801523E
@@ -10515,7 +10515,7 @@ _0801522C:
strb r0, [r2]
lsls r0, 24
lsrs r0, 24
- ldr r1, _08015288 @ =gUnknown_2023BCC
+ ldr r1, _08015288 @ =gBattlersCount
ldrb r1, [r1]
cmp r0, r1
bcc _0801520E
@@ -10523,7 +10523,7 @@ _0801523E:
movs r0, 0
mov r2, r8
strb r0, [r2]
- ldr r7, _08015288 @ =gUnknown_2023BCC
+ ldr r7, _08015288 @ =gBattlersCount
ldrb r0, [r7]
cmp r0, 0
beq _08015282
@@ -10552,7 +10552,7 @@ _08015270:
strb r0, [r2]
lsls r0, 24
lsrs r0, 24
- ldr r1, _08015288 @ =gUnknown_2023BCC
+ ldr r1, _08015288 @ =gBattlersCount
ldrb r1, [r1]
cmp r0, r1
bcc _08015252
@@ -10560,7 +10560,7 @@ _08015282:
movs r5, 0
b _080152F0
.align 2, 0
-_08015288: .4byte gUnknown_2023BCC
+_08015288: .4byte gBattlersCount
_0801528C: .4byte gUnknown_2023D7C
_08015290: .4byte gUnknown_2023BDA
_08015294: .4byte gUnknown_2023BDE
@@ -10604,14 +10604,14 @@ _080152A8:
bl SwapTurnOrder
_080152E4:
adds r4, 0x1
- ldr r0, _08015320 @ =gUnknown_2023BCC
+ ldr r0, _08015320 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _080152A8
_080152EE:
adds r5, r7, 0
_080152F0:
- ldr r1, _08015320 @ =gUnknown_2023BCC
+ ldr r1, _08015320 @ =gBattlersCount
ldrb r0, [r1]
subs r0, 0x1
cmp r5, r0
@@ -10636,7 +10636,7 @@ _08015304:
.align 2, 0
_08015318: .4byte gUnknown_2023BDA
_0801531C: .4byte gUnknown_2023BDE
-_08015320: .4byte gUnknown_2023BCC
+_08015320: .4byte gBattlersCount
_08015324: .4byte gUnknown_3004F84
_08015328: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
_0801532C: .4byte gBattleStruct
@@ -10655,7 +10655,7 @@ TurnValuesCleanUp: @ 8015330
ldr r1, _08015388 @ =gActiveBattler
movs r0, 0
strb r0, [r1]
- ldr r0, _0801538C @ =gUnknown_2023BCC
+ ldr r0, _0801538C @ =gBattlersCount
ldrb r2, [r0]
adds r5, r1, 0
cmp r2, 0
@@ -10690,7 +10690,7 @@ _0801535E:
b _080153F8
.align 2, 0
_08015388: .4byte gActiveBattler
-_0801538C: .4byte gUnknown_2023BCC
+_0801538C: .4byte gBattlersCount
_08015390: .4byte gUnknown_2023E8C
_08015394: .4byte gUnknown_2023C34
_08015398: .4byte gDisableStructs
@@ -10765,13 +10765,13 @@ _08015416:
strb r0, [r5]
lsls r0, 24
lsrs r0, 24
- ldr r1, _08015448 @ =gUnknown_2023BCC
+ ldr r1, _08015448 @ =gBattlersCount
ldrb r1, [r1]
cmp r0, r1
bcc _0801535E
_08015428:
movs r0, 0
- ldr r2, _0801544C @ =gUnknown_2023DE4
+ ldr r2, _0801544C @ =gSideTimers
strb r0, [r2, 0x8]
strb r0, [r2, 0x14]
pop {r3-r5}
@@ -10784,8 +10784,8 @@ _08015428:
.align 2, 0
_08015440: .4byte 0xffbfffff
_08015444: .4byte 0xfeffffff
-_08015448: .4byte gUnknown_2023BCC
-_0801544C: .4byte gUnknown_2023DE4
+_08015448: .4byte gBattlersCount
+_0801544C: .4byte gSideTimers
thumb_func_end TurnValuesCleanUp
thumb_func_start SpecialStatusesClear
@@ -10794,7 +10794,7 @@ SpecialStatusesClear: @ 8015450
ldr r2, _08015494 @ =gActiveBattler
movs r0, 0
strb r0, [r2]
- ldr r0, _08015498 @ =gUnknown_2023BCC
+ ldr r0, _08015498 @ =gBattlersCount
ldrb r1, [r0]
adds r6, r0, 0
cmp r1, 0
@@ -10829,7 +10829,7 @@ _0801548E:
bx r0
.align 2, 0
_08015494: .4byte gActiveBattler
-_08015498: .4byte gUnknown_2023BCC
+_08015498: .4byte gBattlersCount
_0801549C: .4byte gUnknown_2023ECC
thumb_func_end SpecialStatusesClear
@@ -10846,7 +10846,7 @@ CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 80154A0
ldr r2, _0801552C @ =gBattleStruct
ldr r0, [r2]
adds r0, 0x48
- ldr r1, _08015530 @ =gUnknown_2023BCC
+ ldr r1, _08015530 @ =gBattlersCount
ldrb r0, [r0]
mov r12, r2
adds r6, r1, 0
@@ -10906,7 +10906,7 @@ _080154CC:
.align 2, 0
_08015528: .4byte gUnknown_2023DD0
_0801552C: .4byte gBattleStruct
-_08015530: .4byte gUnknown_2023BCC
+_08015530: .4byte gBattlersCount
_08015534: .4byte gActiveBattler
_08015538: .4byte sBattler_AI
_0801553C: .4byte gUnknown_2023DC4
@@ -10991,7 +10991,7 @@ _080155D8:
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
- ldr r0, _08015630 @ =gUnknown_2023BCC
+ ldr r0, _08015630 @ =gBattlersCount
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
@@ -11017,7 +11017,7 @@ _08015620: .4byte gUnknown_2023BE3
_08015624: .4byte gBattleStruct
_08015628: .4byte gUnknown_2023BE2
_0801562C: .4byte gUnknown_8250038
-_08015630: .4byte gUnknown_2023BCC
+_08015630: .4byte gBattlersCount
_08015634: .4byte gUnknown_2023DD0
_08015638: .4byte 0xffefffff
_0801563C: .4byte gUnknown_3004F84
@@ -11062,7 +11062,7 @@ sub_8015670: @ 8015670
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080156B8 @ =sBattler_AI
strb r0, [r1]
ldr r1, _080156BC @ =gUnknown_2023D74
@@ -11185,7 +11185,7 @@ sub_801578C: @ 801578C
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080157D4 @ =sBattler_AI
strb r0, [r1]
ldr r1, _080157D8 @ =gUnknown_2023D74
@@ -11230,7 +11230,7 @@ _0801580C:
strb r4, [r0, 0x5]
_08015810:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08015820 @ =sBattler_AI
strb r0, [r1]
b _0801582A
@@ -11368,7 +11368,7 @@ sub_8015910: @ 8015910
bne _080159BC
ldr r2, _08015980 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _08015984 @ =gUnknown_2023BCC
+ ldr r0, _08015984 @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _080159BC
@@ -11379,7 +11379,7 @@ sub_8015910: @ 8015910
adds r7, 0x30
_08015942:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080159AA
@@ -11405,7 +11405,7 @@ _08015974: .4byte gUnknown_2023BE3
_08015978: .4byte gBattleTypeFlags
_0801597C: .4byte 0x00080b92
_08015980: .4byte gActiveBattler
-_08015984: .4byte gUnknown_2023BCC
+_08015984: .4byte gBattlersCount
_08015988: .4byte gBattleMons
_0801598C: .4byte gBattleResults
_08015990:
@@ -11425,7 +11425,7 @@ _080159AA:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _080159EC @ =gUnknown_2023BCC
+ ldr r1, _080159EC @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -11453,7 +11453,7 @@ _080159D0:
str r0, [r1]
b _08015A1E
.align 2, 0
-_080159EC: .4byte gUnknown_2023BCC
+_080159EC: .4byte gBattlersCount
_080159F0: .4byte gBattleTypeFlags
_080159F4: .4byte gUnknown_3004F84
_080159F8: .4byte sub_8015A30
@@ -11563,7 +11563,7 @@ _08015AAE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
@@ -12081,7 +12081,7 @@ _08015F10:
_08015F18:
ldr r0, _08015F38 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08015F40
@@ -12103,12 +12103,12 @@ _08015F40:
_08015F48:
ldr r4, _08015FB4 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, _08015FB8 @ =gUnknown_2023DE4
+ ldr r1, _08015FB8 @ =gSideTimers
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
@@ -12128,10 +12128,10 @@ _08015F48:
cmp r0, 0
bne _08015FC8
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r5, 0x9]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -12151,7 +12151,7 @@ _08015F48:
_08015FAC: .4byte gBattleResults
_08015FB0: .4byte gCurrentMove
_08015FB4: .4byte sBattler_AI
-_08015FB8: .4byte gUnknown_2023DE4
+_08015FB8: .4byte gSideTimers
_08015FBC: .4byte gBattleMoves
_08015FC0: .4byte gBattleMons
_08015FC4: .4byte gBattlerTarget
@@ -12166,7 +12166,7 @@ _08015FC8:
bne _08015FDA
b _080162A0
_08015FDA:
- ldr r1, _080160EC @ =gUnknown_2023DE4
+ ldr r1, _080160EC @ =gSideTimers
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
@@ -12214,19 +12214,19 @@ _08016028:
b _080161F8
_08016030:
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _08016100 @ =gActiveBattler
strb r5, [r1]
- ldr r0, _08016104 @ =gUnknown_2023BCC
+ ldr r0, _08016104 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bcs _080160A8
adds r4, r1, 0
_08016048:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r6, r0
@@ -12265,7 +12265,7 @@ _08016096:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _08016104 @ =gUnknown_2023BCC
+ ldr r1, _08016104 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -12290,7 +12290,7 @@ _080160B0:
beq _08016130
ldr r0, _080160E8 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08016110
@@ -12304,13 +12304,13 @@ _080160B0:
.align 2, 0
_080160E4: .4byte gBattleTypeFlags
_080160E8: .4byte sBattler_AI
-_080160EC: .4byte gUnknown_2023DE4
+_080160EC: .4byte gSideTimers
_080160F0: .4byte gBattleMoves
_080160F4: .4byte gCurrentMove
_080160F8: .4byte gBattleMons
_080160FC: .4byte gBattleStruct
_08016100: .4byte gActiveBattler
-_08016104: .4byte gUnknown_2023BCC
+_08016104: .4byte gBattlersCount
_08016108: .4byte gUnknown_2023D4C
_0801610C:
movs r0, 0x3
@@ -12326,7 +12326,7 @@ _08016110:
_08016120:
movs r0, 0x2
_08016122:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0801612C @ =gBattlerTarget
strb r0, [r1]
b _08016140
@@ -12358,10 +12358,10 @@ _08016140:
_0801615A:
ldr r6, _0801617C @ =sBattler_AI
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -12376,12 +12376,12 @@ _08016184: .4byte gAbsentBattlerFlags
_08016188: .4byte gBitTable
_0801618C:
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
ldrb r1, [r7]
ldrb r2, [r5]
@@ -12442,7 +12442,7 @@ _080161F8:
cmp r0, 0
beq _080162A0
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08016244
@@ -12470,7 +12470,7 @@ _08016244:
_08016254:
movs r0, 0x2
_08016256:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08016290 @ =gBattlerTarget
strb r0, [r1]
ldr r0, _08016294 @ =gAbsentBattlerFlags
@@ -12486,10 +12486,10 @@ _08016256:
beq _0801632C
ldr r0, _0801629C @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -12522,10 +12522,10 @@ _080162A0:
beq _0801632C
ldrb r0, [r2]
str r3, [sp, 0x4]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
ldr r3, [sp, 0x4]
@@ -12540,12 +12540,12 @@ _080162EC: .4byte gAbsentBattlerFlags
_080162F0: .4byte gBitTable
_080162F4:
ldrb r0, [r3]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
ldrb r1, [r6]
ldrb r2, [r5]
@@ -12558,12 +12558,12 @@ _08016310:
beq _0801632C
adds r0, r2, 0
_0801631A:
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
_0801632C:
ldr r4, _08016360 @ =gUnknown_2023D74
@@ -12768,7 +12768,7 @@ _080164E0: .4byte gUnknown_81D99FC
_080164E4: .4byte gUnknown_2023BE3
_080164E8:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08016510
@@ -13068,7 +13068,7 @@ sub_8016748: @ 8016748
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _08016774
- ldr r1, _08016770 @ =gUnknown_2023F54
+ ldr r1, _08016770 @ =gEnigmaBerries
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
@@ -13077,14 +13077,14 @@ sub_8016748: @ 8016748
b _0801677E
.align 2, 0
_0801676C: .4byte gBattleMons
-_08016770: .4byte gUnknown_2023F54
+_08016770: .4byte gEnigmaBerries
_08016774:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
lsls r0, 24
lsrs r1, r0, 24
_0801677E:
- ldr r0, _080167AC @ =gUnknown_2023D6F
+ ldr r0, _080167AC @ =gPotentialItemEffectBattler
strb r4, [r0]
cmp r1, 0x25
bne _080167BC
@@ -13107,7 +13107,7 @@ _0801677E:
strb r0, [r2, 0x1]
b _08016816
.align 2, 0
-_080167AC: .4byte gUnknown_2023D6F
+_080167AC: .4byte gPotentialItemEffectBattler
_080167B0: .4byte gUnknown_2023D68
_080167B4: .4byte gBattleMons
_080167B8: .4byte gUnknown_2023E8C
@@ -13122,7 +13122,7 @@ _080167BC:
ldrb r1, [r0]
cmp r1, 0x32
bne _080167F8
- ldr r0, _080167F0 @ =gUnknown_2023D6A
+ ldr r0, _080167F0 @ =gLastUsedAbility
strb r1, [r0]
ldr r0, _080167F4 @ =gUnknown_2023E8C
lsls r2, r4, 4
@@ -13137,7 +13137,7 @@ _080167BC:
b _08016816
.align 2, 0
_080167EC: .4byte gBattleMons
-_080167F0: .4byte gUnknown_2023D6A
+_080167F0: .4byte gLastUsedAbility
_080167F4: .4byte gUnknown_2023E8C
_080167F8:
ldr r0, _08016820 @ =gBattleTypeFlags
@@ -13150,7 +13150,7 @@ _080167F8:
cmp r0, r1
bne _08016824
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801687A
@@ -13209,7 +13209,7 @@ _0801687A:
cmp r6, 0
beq _0801688C
ldr r1, _08016898 @ =gUnknown_2023BE2
- ldr r0, _0801689C @ =gUnknown_2023BCC
+ ldr r0, _0801689C @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r1]
ldr r1, _080168A0 @ =gUnknown_2023E8A
@@ -13223,7 +13223,7 @@ _0801688C:
.align 2, 0
_08016894: .4byte gBattleStruct
_08016898: .4byte gUnknown_2023BE2
-_0801689C: .4byte gUnknown_2023BCC
+_0801689C: .4byte gBattlersCount
_080168A0: .4byte gUnknown_2023E8A
thumb_func_end sub_8016748
@@ -13243,7 +13243,7 @@ sub_80168A4: @ 80168A4
ands r0, r1
cmp r0, 0
beq _0801694C
- ldr r0, _08016904 @ =gUnknown_2023BCC
+ ldr r0, _08016904 @ =gBattlersCount
ldrb r1, [r0]
strb r1, [r5]
ldr r2, _08016908 @ =gActiveBattler
@@ -13257,7 +13257,7 @@ sub_80168A4: @ 80168A4
ldr r5, _08016910 @ =gUnknown_2023E8A
_080168D8:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08016914
@@ -13274,7 +13274,7 @@ _080168F4: .4byte sBattler_AI
_080168F8: .4byte gUnknown_2023BDE
_080168FC: .4byte gUnknown_2023BE2
_08016900: .4byte gBattleTypeFlags
-_08016904: .4byte gUnknown_2023BCC
+_08016904: .4byte gBattlersCount
_08016908: .4byte gActiveBattler
_0801690C: .4byte gUnknown_2023D7C
_08016910: .4byte gUnknown_2023E8A
@@ -13293,7 +13293,7 @@ _08016926:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _08016944 @ =gUnknown_2023BCC
+ ldr r1, _08016944 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -13307,11 +13307,11 @@ _08016938:
strb r1, [r0]
b _080169D8
.align 2, 0
-_08016944: .4byte gUnknown_2023BCC
+_08016944: .4byte gBattlersCount
_08016948: .4byte gUnknown_2023E8A
_0801694C:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801698C
@@ -13365,7 +13365,7 @@ _080169C0: .4byte gUnknown_2023D74
_080169C4: .4byte gUnknown_81D893A
_080169C8: .4byte gUnknown_2023BE3
_080169CC:
- ldr r0, _080169E0 @ =gUnknown_2023BCC
+ ldr r0, _080169E0 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r5]
ldr r1, _080169E4 @ =gUnknown_2023E8A
@@ -13377,7 +13377,7 @@ _080169D8:
pop {r0}
bx r0
.align 2, 0
-_080169E0: .4byte gUnknown_2023BCC
+_080169E0: .4byte gBattlersCount
_080169E4: .4byte gUnknown_2023E8A
thumb_func_end sub_80168A4
@@ -13687,7 +13687,7 @@ HandleAction_SafriZoneRun: @ 8016C60
strb r0, [r2]
movs r0, 0x11
bl PlaySE
- ldr r0, _08016C94 @ =gUnknown_2023BCC
+ ldr r0, _08016C94 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r4]
ldr r1, _08016C98 @ =gUnknown_2023E8A
@@ -13700,7 +13700,7 @@ HandleAction_SafriZoneRun: @ 8016C60
_08016C88: .4byte sBattler_AI
_08016C8C: .4byte gUnknown_2023BDE
_08016C90: .4byte gUnknown_2023BE2
-_08016C94: .4byte gUnknown_2023BCC
+_08016C94: .4byte gBattlersCount
_08016C98: .4byte gUnknown_2023E8A
thumb_func_end HandleAction_SafriZoneRun
diff --git a/asm/battle_ai_switch_items.s b/asm/battle_ai_switch_items.s
index f38d58172..bdc1283db 100644
--- a/asm/battle_ai_switch_items.s
+++ b/asm/battle_ai_switch_items.s
@@ -28,7 +28,7 @@ ShouldSwitchIfPerishSong: @ 8039188
cmp r0, 0
bne _080391E4
adds r0, r2, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _080391E0 @ =gBattleStruct
@@ -73,7 +73,7 @@ _08039204: .4byte gBattleTypeFlags
_08039208:
ldr r0, _0803922C @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _08039230 @ =gBattleStruct
@@ -93,7 +93,7 @@ _08039230: .4byte gBattleStruct
_08039234:
ldr r4, _0803936C @ =gBattleMons
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0x58
@@ -106,7 +106,7 @@ _08039234:
b _0803935C
_08039250:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r2, r0, 24
movs r6, 0
@@ -185,7 +185,7 @@ _080392A4:
movs r1, 0x2E
bl GetMonData
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r2, r0, 24
movs r4, 0
@@ -305,12 +305,12 @@ _080393D6:
beq _08039442
mov r8, r3
mov r0, r8
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r4, 0x2
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08039424 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _08039428 @ =gBitTable
@@ -333,11 +333,11 @@ _08039424: .4byte gAbsentBattlerFlags
_08039428: .4byte gBitTable
_0803942C:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
b _08039446
@@ -396,7 +396,7 @@ _0803949C: .4byte gBattleMons
_080394A0:
ldr r0, _080394C4 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _080394C8 @ =gBattleStruct
@@ -616,7 +616,7 @@ _08039664:
ldr r0, _08039690 @ =gActiveBattler
ldrb r0, [r0]
_08039668:
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _08039694 @ =gBattleStruct
@@ -650,7 +650,7 @@ ai_has_super_effective_move_on_field: @ 8039698
lsrs r0, 24
mov r8, r0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _08039730 @ =gAbsentBattlerFlags
@@ -727,7 +727,7 @@ _08039744:
b _080397C4
_08039748:
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _080397D0 @ =gAbsentBattlerFlags
@@ -898,12 +898,12 @@ _0803987A:
beq _08039918
mov r9, r3
mov r0, r9
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r4, 0x2
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080398CC @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _080398D0 @ =gBitTable
@@ -928,11 +928,11 @@ _080398CC: .4byte gAbsentBattlerFlags
_080398D0: .4byte gBitTable
_080398D4:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -940,7 +940,7 @@ _080398D4:
_080398EC:
ldr r0, _08039910 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _08039914 @ =gBattleStruct
@@ -1170,7 +1170,7 @@ _08039ABA:
adds r1, r2, 0
movs r2, 0x17
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1182,7 +1182,7 @@ _08039AD2:
movs r0, 0xC
movs r2, 0x47
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1194,7 +1194,7 @@ _08039AEA:
movs r1, 0
movs r2, 0x2A
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08039B1C
@@ -1226,12 +1226,12 @@ _08039B1C:
ldr r4, _08039B60 @ =gActiveBattler
ldrb r7, [r4]
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r5, 0x2
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08039B70 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _08039B74 @ =gBitTable
@@ -1254,11 +1254,11 @@ _08039B70: .4byte gAbsentBattlerFlags
_08039B74: .4byte gBitTable
_08039B78:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
b _08039B94
@@ -1396,7 +1396,7 @@ _08039C94:
beq _08039D8C
ldr r0, _08039CE0 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _08039CE4 @ =gBattleStruct
@@ -1417,7 +1417,7 @@ _08039C94:
cmp r0, 0
bne _08039CE8
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
@@ -1428,11 +1428,11 @@ _08039CE0: .4byte gActiveBattler
_08039CE4: .4byte gBattleStruct
_08039CE8:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
_08039CFC:
@@ -1476,7 +1476,7 @@ _08039D3E:
_08039D44:
ldr r0, _08039D88 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, _08039D84 @ =gBattleStruct
@@ -1487,7 +1487,7 @@ _08039D44:
_08039D5A:
ldr r4, _08039D88 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldrb r2, [r4]
ldr r1, _08039D84 @ =gBattleStruct
ldr r1, [r1]
@@ -1628,12 +1628,12 @@ _08039E5E:
beq _08039EF8
str r2, [sp, 0xC]
adds r0, r2, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r5, 0x2
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08039EA4 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _08039EA8 @ =gBitTable
@@ -1655,11 +1655,11 @@ _08039EA4: .4byte gAbsentBattlerFlags
_08039EA8: .4byte gBitTable
_08039EAC:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
@@ -1690,7 +1690,7 @@ _08039EF0: .4byte gAbsentBattlerFlags
_08039EF4: .4byte gBitTable
_08039EF8:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -2151,7 +2151,7 @@ _0803A26E:
bne _0803A286
b _0803A644
_0803A286:
- ldr r1, _0803A2B0 @ =gUnknown_82528BC
+ ldr r1, _0803A2B0 @ =gItemEffectTable
subs r0, 0xD
lsls r0, 2
adds r0, r1
@@ -2171,7 +2171,7 @@ _0803A296:
.align 2, 0
_0803A2A8: .4byte gEnemyParty
_0803A2AC: .4byte gBattleResources
-_0803A2B0: .4byte gUnknown_82528BC
+_0803A2B0: .4byte gItemEffectTable
_0803A2B4: .4byte gSaveBlock1Ptr
_0803A2B8: .4byte 0x00003108
_0803A2BC:
@@ -2576,7 +2576,7 @@ _0803A5C4: .4byte gDisableStructs
_0803A5C8:
ldr r4, _0803A630 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r3, r0, 24
ldr r2, _0803A634 @ =gDisableStructs
@@ -2588,7 +2588,7 @@ _0803A5C8:
ldrb r0, [r0, 0x16]
cmp r0, 0
beq _0803A5F8
- ldr r0, _0803A638 @ =gUnknown_2023DE4
+ ldr r0, _0803A638 @ =gSideTimers
lsls r1, r3, 1
adds r1, r3
lsls r1, 2
@@ -2628,7 +2628,7 @@ _0803A5FC:
.align 2, 0
_0803A630: .4byte gActiveBattler
_0803A634: .4byte gDisableStructs
-_0803A638: .4byte gUnknown_2023DE4
+_0803A638: .4byte gSideTimers
_0803A63C: .4byte gBattleStruct
_0803A640: .4byte gBattleResources
_0803A644:
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index c258fa7b1..7f9d4d26e 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -156,7 +156,7 @@ sub_80725D4: @ 80725D4
_08072600:
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08072624
@@ -994,7 +994,7 @@ _08072C62:
cmp r0, 0
beq _08072D12
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -1078,7 +1078,7 @@ _08072D12:
cmp r0, 0
beq _08072DCE
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -1325,7 +1325,7 @@ _08072E5E:
adds r0, r4, 0
bl CpuSet
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -1451,7 +1451,7 @@ _08072F84:
adds r0, r4, 0
bl CpuSet
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -1817,7 +1817,7 @@ sub_807331C: @ 807331C
cmp r0, 0x1
beq _0807338E
ldrb r0, [r4, 0xC]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -1902,7 +1902,7 @@ _080733CE:
cmp r0, 0
beq _08073416
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -1940,7 +1940,7 @@ _08073416:
cmp r0, 0
beq _08073464
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -2115,7 +2115,7 @@ sub_8073558: @ 8073558
ldrb r4, [r5, 0xC]
adds r6, r4, 0
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -2471,7 +2471,7 @@ sub_80737E4: @ 80737E4
lsrs r4, r0, 24
ldr r0, _08073828 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073830
@@ -2787,7 +2787,7 @@ sub_8073A44: @ 8073A44
cmp r0, 0
beq _08073A80
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
@@ -2799,13 +2799,13 @@ _08073A78: .4byte gUnknown_2024018
_08073A7C: .4byte gUnknown_2037F1A
_08073A80:
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073ABA
ldr r0, _08073AA8 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08073AE6
@@ -2828,7 +2828,7 @@ _08073AAC:
_08073ABA:
ldr r0, _08073ADC @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2889,7 +2889,7 @@ sub_8073B08: @ 8073B08
cmp r0, 0
beq _08073B44
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
@@ -2901,7 +2901,7 @@ _08073B3C: .4byte gUnknown_2024018
_08073B40: .4byte gUnknown_2037F1A
_08073B44:
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08073B56
@@ -3771,7 +3771,7 @@ _080741E4:
ldr r0, _08074210 @ =gUnknown_2037F1A
_080741E6:
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -3825,11 +3825,11 @@ sub_807423C: @ 807423C
str r0, [r1]
ldr r7, _08074270 @ =gUnknown_2037F1A
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r5, _08074274 @ =gUnknown_2037F1B
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -3845,7 +3845,7 @@ _08074274: .4byte gUnknown_2037F1B
_08074278:
ldrb r0, [r7]
_0807427A:
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -3948,11 +3948,11 @@ sub_8074320: @ 8074320
beq _080743C2
ldr r6, _08074368 @ =gUnknown_2037F1A
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r5, _0807436C @ =gUnknown_2037F1B
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -4030,11 +4030,11 @@ sub_80743C8: @ 80743C8
beq _0807444C
ldr r6, _08074410 @ =gUnknown_2037F1A
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r5, _08074414 @ =gUnknown_2037F1B
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
diff --git a/asm/battle_anim_8074480.s b/asm/battle_anim_8074480.s
index 5e4dfecb0..a80d7f759 100644
--- a/asm/battle_anim_8074480.s
+++ b/asm/battle_anim_8074480.s
@@ -31,7 +31,7 @@ _0807449C:
_080744B0:
ldr r4, _080744D0 @ =gUnknown_83AE01C
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 22
ldr r1, _080744D4 @ =gBattleTypeFlags
@@ -49,7 +49,7 @@ _080744D4: .4byte gBattleTypeFlags
_080744D8:
ldr r4, _080744F8 @ =gUnknown_83AE01C
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 22
ldr r1, _080744FC @ =gBattleTypeFlags
@@ -66,7 +66,7 @@ _080744F8: .4byte gUnknown_83AE01C
_080744FC: .4byte gBattleTypeFlags
_08074500:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08074538
@@ -148,7 +148,7 @@ sub_8074590: @ 8074590
lsrs r4, r1, 16
adds r7, r4, 0
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08074674
@@ -373,7 +373,7 @@ sub_807474C: @ 807474C
adds r7, r4, 0
movs r5, 0
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -425,7 +425,7 @@ sub_80747AC: @ 80747AC
lsls r2, 24
lsrs r7, r2, 24
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080747D4
@@ -451,7 +451,7 @@ _080747D4:
lsrs r5, r0, 16
_080747F2:
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r3, _0807483C @ =gUnknown_83AE01C
lsls r0, 24
lsrs r0, 22
@@ -469,7 +469,7 @@ _080747F2:
cmp r7, 0
beq _08074832
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0807482C
@@ -564,7 +564,7 @@ GetSubstituteSpriteDefault_Y: @ 80748BC
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080748E0
@@ -600,7 +600,7 @@ sub_8074900: @ 8074900
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -631,7 +631,7 @@ sub_807492C: @ 807492C
lsls r0, 24
lsrs r6, r0, 24
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08074978
@@ -686,7 +686,7 @@ _080749B0:
ldrh r4, [r1, 0x2]
_080749B2:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080749CC
@@ -1605,7 +1605,7 @@ _08075030: .4byte gUnknown_2037F1A
_08075034: .4byte gUnknown_2037F1B
_08075038:
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075050
@@ -1820,8 +1820,8 @@ _080751BC: .4byte gUnknown_2037F1A
_080751C0: .4byte gUnknown_2037F02
thumb_func_end sub_8075160
- thumb_func_start GetBankSide
-GetBankSide: @ 80751C4
+ thumb_func_start GetBattlerSide
+GetBattlerSide: @ 80751C4
lsls r0, 24
lsrs r0, 24
ldr r1, _080751D4 @ =gUnknown_2023BD6
@@ -1832,10 +1832,10 @@ GetBankSide: @ 80751C4
bx lr
.align 2, 0
_080751D4: .4byte gUnknown_2023BD6
- thumb_func_end GetBankSide
+ thumb_func_end GetBattlerSide
- thumb_func_start GetBankIdentity
-GetBankIdentity: @ 80751D8
+ thumb_func_start GetBattlerPosition
+GetBattlerPosition: @ 80751D8
lsls r0, 24
lsrs r0, 24
ldr r1, _080751E4 @ =gUnknown_2023BD6
@@ -1844,15 +1844,15 @@ GetBankIdentity: @ 80751D8
bx lr
.align 2, 0
_080751E4: .4byte gUnknown_2023BD6
- thumb_func_end GetBankIdentity
+ thumb_func_end GetBattlerPosition
- thumb_func_start GetBankByIdentity
-GetBankByIdentity: @ 80751E8
+ thumb_func_start GetBattlerAtPosition
+GetBattlerAtPosition: @ 80751E8
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r1, 0
- ldr r0, _0807521C @ =gUnknown_2023BCC
+ ldr r0, _0807521C @ =gBattlersCount
ldrb r2, [r0]
cmp r1, r2
bcs _08075212
@@ -1876,9 +1876,9 @@ _08075212:
pop {r1}
bx r1
.align 2, 0
-_0807521C: .4byte gUnknown_2023BCC
+_0807521C: .4byte gBattlersCount
_08075220: .4byte gUnknown_2023BD6
- thumb_func_end GetBankByIdentity
+ thumb_func_end GetBattlerAtPosition
thumb_func_start sub_8075224
sub_8075224: @ 8075224
@@ -1892,7 +1892,7 @@ sub_8075224: @ 8075224
cmp r0, 0xFF
beq _08075288
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075260
@@ -3346,7 +3346,7 @@ sub_8075CB8: @ 8075CB8
cmp r0, 0
beq _08075CF2
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_8072DF0
@@ -3354,7 +3354,7 @@ sub_8075CB8: @ 8075CB8
cmp r0, 0
beq _08075CF2
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
@@ -3364,7 +3364,7 @@ _08075CF2:
cmp r5, 0
beq _08075D1E
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_8072DF0
@@ -3372,7 +3372,7 @@ _08075CF2:
cmp r0, 0
beq _08075D1E
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3384,7 +3384,7 @@ _08075D1E:
cmp r6, 0
beq _08075D4A
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_8072DF0
@@ -3392,7 +3392,7 @@ _08075D1E:
cmp r0, 0
beq _08075D4A
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3404,7 +3404,7 @@ _08075D4A:
cmp r7, 0
beq _08075D76
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_8072DF0
@@ -3412,7 +3412,7 @@ _08075D4A:
cmp r0, 0
beq _08075D76
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3439,7 +3439,7 @@ sub_8075D88: @ 8075D88
push {lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -3520,7 +3520,7 @@ _08075E16:
bl sub_8075160
ldr r0, _08075E70 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075E30
@@ -3571,7 +3571,7 @@ sub_8075E80: @ 8075E80
bl sub_8075160
ldr r0, _08075EE0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075EA0
@@ -3670,7 +3670,7 @@ _08075F4A:
ldrb r6, [r0]
ldr r0, _08075FAC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08075F62
@@ -4437,7 +4437,7 @@ _08076508:
bne _080765AC
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08076568
@@ -4825,7 +4825,7 @@ _080767EC: .4byte gUnknown_2037F1A
sub_80767F0: @ 80767F0
push {r4-r6,lr}
movs r5, 0
- ldr r0, _08076850 @ =gUnknown_2023BCC
+ ldr r0, _08076850 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _0807684A
@@ -4864,7 +4864,7 @@ _080767FE:
strb r2, [r0, 0x5]
_08076840:
adds r5, 0x1
- ldr r0, _08076850 @ =gUnknown_2023BCC
+ ldr r0, _08076850 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _080767FE
@@ -4873,7 +4873,7 @@ _0807684A:
pop {r0}
bx r0
.align 2, 0
-_08076850: .4byte gUnknown_2023BCC
+_08076850: .4byte gBattlersCount
_08076854: .4byte gSprites
_08076858: .4byte gUnknown_2023D44
thumb_func_end sub_80767F0
@@ -4883,7 +4883,7 @@ sub_807685C: @ 807685C
push {lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0x1E
@@ -4907,7 +4907,7 @@ sub_8076884: @ 8076884
push {lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -4933,7 +4933,7 @@ sub_80768B0: @ 80768B0
push {lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -4994,7 +4994,7 @@ sub_80768D0: @ 80768D0
bl AllocSpritePalette
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080769B8 @ =gUnknown_202401C
+ ldr r4, _080769B8 @ =gMonSpritesGfxPtr
ldr r0, [r4]
cmp r0, 0
beq _0807694E
@@ -5052,7 +5052,7 @@ _0807699A:
lsls r0, r6, 3
ldr r1, _080769C0 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080769B8 @ =gUnknown_202401C
+ ldr r1, _080769B8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r3, 0xBE
lsls r3, 1
@@ -5063,14 +5063,14 @@ _0807699A:
.align 2, 0
_080769B0: .4byte gUnknown_83AE084
_080769B4: .4byte gUnknown_83AE054
-_080769B8: .4byte gUnknown_202401C
+_080769B8: .4byte gMonSpritesGfxPtr
_080769BC: .4byte gUnknown_2024018
_080769C0: .4byte gUnknown_82350AC
_080769C4:
lsls r0, r6, 3
ldr r1, _080769E4 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080769E8 @ =gUnknown_202401C
+ ldr r1, _080769E8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 1
@@ -5084,7 +5084,7 @@ _080769C4:
b _08076A7C
.align 2, 0
_080769E4: .4byte gUnknown_82350AC
-_080769E8: .4byte gUnknown_202401C
+_080769E8: .4byte gMonSpritesGfxPtr
_080769EC:
adds r0, r6, 0
ldr r1, [sp, 0x3C]
@@ -5122,7 +5122,7 @@ _08076A32:
lsls r0, r6, 3
ldr r1, _08076A58 @ =gUnknown_823654C
adds r0, r1
- ldr r1, _08076A5C @ =gUnknown_202401C
+ ldr r1, _08076A5C @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 1
@@ -5138,12 +5138,12 @@ _08076A46:
.align 2, 0
_08076A54: .4byte gUnknown_2024018
_08076A58: .4byte gUnknown_823654C
-_08076A5C: .4byte gUnknown_202401C
+_08076A5C: .4byte gMonSpritesGfxPtr
_08076A60:
lsls r0, r6, 3
ldr r1, _08076AC8 @ =gUnknown_823654C
adds r0, r1
- ldr r1, _08076ACC @ =gUnknown_202401C
+ ldr r1, _08076ACC @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r3, 0xBE
lsls r3, 1
@@ -5154,7 +5154,7 @@ _08076A60:
mov r3, r8
bl sub_800ECF0
_08076A7C:
- ldr r5, _08076ACC @ =gUnknown_202401C
+ ldr r5, _08076ACC @ =gMonSpritesGfxPtr
ldr r0, [r5]
movs r4, 0xBE
lsls r4, 1
@@ -5191,7 +5191,7 @@ _08076A7C:
b _08076AEE
.align 2, 0
_08076AC8: .4byte gUnknown_823654C
-_08076ACC: .4byte gUnknown_202401C
+_08076ACC: .4byte gMonSpritesGfxPtr
_08076AD0: .4byte 0x06010000
_08076AD4: .4byte gUnknown_83AE054
_08076AD8: .4byte gUnknown_82349CC
@@ -5250,7 +5250,7 @@ sub_8076B2C: @ 8076B2C
lsls r1, 24
lsrs r1, 24
mov r9, r1
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08076C08
@@ -5721,7 +5721,7 @@ sub_8076ED8: @ 8076ED8
bl sub_8074FCC
ldr r0, _08076F10 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076F18
@@ -5783,7 +5783,7 @@ sub_8076F58: @ 8076F58
adds r4, r0, 0
ldr r0, _08076F80 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076F88
@@ -5844,7 +5844,7 @@ sub_8076FD0: @ 8076FD0
bl sub_8074FCC
ldr r0, _08076FF4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08076FFC
@@ -5901,7 +5901,7 @@ sub_8077030: @ 8077030
strh r0, [r5, 0x8]
ldr r7, _080770C8 @ =gUnknown_2037F1A
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
@@ -6212,7 +6212,7 @@ sub_807729C: @ 807729C
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080772D4
@@ -6302,7 +6302,7 @@ sub_8077350: @ 8077350
strh r0, [r4, 0x36]
ldr r0, _0807738C @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08077390
diff --git a/asm/battle_anim_80989F8.s b/asm/battle_anim_80989F8.s
index 5d2362087..41dc60f9f 100644
--- a/asm/battle_anim_80989F8.s
+++ b/asm/battle_anim_80989F8.s
@@ -207,7 +207,7 @@ _08098B6C:
_08098B70:
movs r0, 0x3
_08098B72:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
@@ -878,7 +878,7 @@ sub_809907C: @ 809907C
lsrs r4, r0, 24
ldr r0, _080990A4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08099098
@@ -909,7 +909,7 @@ sub_80990AC: @ 80990AC
strb r0, [r2]
ldr r0, _080990D4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080990DC
@@ -1206,7 +1206,7 @@ _080992FE:
adds r0, r2, r0
ldrb r6, [r0]
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08099328
@@ -1299,7 +1299,7 @@ _080993BE:
adds r0, r1, r0
ldrb r7, [r0]
adds r0, r1, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080993E8
@@ -1418,7 +1418,7 @@ sub_809949C: @ 809949C
lsrs r7, r0, 16
ldr r0, _08099524 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080994CE
@@ -1642,7 +1642,7 @@ _08099664:
strh r2, [r5, 0x8]
ldr r0, _08099688 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08099690
@@ -1723,7 +1723,7 @@ sub_8099704: @ 8099704
lsrs r5, r0, 24
ldr r6, _08099754 @ =gUnknown_2037F1A
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08099720
@@ -1829,7 +1829,7 @@ _080997D8: .4byte gTasks
_080997DC: .4byte gSprites
_080997E0:
ldrb r0, [r4, 0x12]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08099808
@@ -2121,7 +2121,7 @@ _08099A14:
ldr r0, _08099A6C @ =gUnknown_2037F1B
_08099A16:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0
lsls r0, 24
cmp r0, 0
@@ -2208,7 +2208,7 @@ _08099AC0:
ldr r0, _08099AF0 @ =gUnknown_2037F1B
_08099AC2:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08099AD4
diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s
index 90b0c8c86..7eaeff07e 100644
--- a/asm/battle_anim_80A22E8.s
+++ b/asm/battle_anim_80A22E8.s
@@ -24,7 +24,7 @@ sub_80A22E8: @ 80A22E8
strh r0, [r4, 0x30]
ldr r0, _080A2320 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2324
@@ -412,7 +412,7 @@ sub_80A25EC: @ 80A25EC
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2638
@@ -523,7 +523,7 @@ sub_80A26F0: @ 80A26F0
bl sub_8075160
ldr r0, _080A2750 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2710
@@ -1080,7 +1080,7 @@ sub_80A2B38: @ 80A2B38
adds r4, r0, 0
ldr r0, _080A2B58 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2B5C
@@ -1135,7 +1135,7 @@ sub_80A2B9C: @ 80A2B9C
bl sub_8075160
ldr r0, _080A2BF0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2BBC
@@ -1197,11 +1197,11 @@ _080A2C1C:
bl sub_8075068
ldr r0, _080A2C50 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r0, _080A2C48 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -1664,7 +1664,7 @@ sub_80A2F74: @ 80A2F74
strh r1, [r5, 0x24]
ldr r0, _080A2FFC @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A2FBE
@@ -1793,7 +1793,7 @@ sub_80A3098: @ 80A3098
_080A30AA:
ldr r6, _080A30FC @ =gUnknown_2037F1B
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A30C2
@@ -2485,7 +2485,7 @@ sub_80A35F4: @ 80A35F4
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -3021,7 +3021,7 @@ sub_80A39C0: @ 80A39C0
bl sub_8076B2C
strh r0, [r5, 0x1E]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
movs r2, 0x1
@@ -3833,7 +3833,7 @@ _080A405C:
_080A405E:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A4088
@@ -4310,7 +4310,7 @@ sub_80A43F8: @ 80A43F8
adds r4, r0, 0
ldr r0, _080A4418 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A4420
@@ -4355,7 +4355,7 @@ sub_80A4450: @ 80A4450
adds r5, r0, 0
ldr r0, _080A4488 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A446A
@@ -4439,7 +4439,7 @@ sub_80A44E0: @ 80A44E0
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A4514
@@ -4600,7 +4600,7 @@ _080A463E:
strh r4, [r6, 0x22]
ldr r0, _080A4670 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A4656
@@ -4854,7 +4854,7 @@ sub_80A481C: @ 80A481C
strh r0, [r5, 0x2E]
ldr r0, _080A4840 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A4844
@@ -4987,7 +4987,7 @@ _080A4906:
adds r0, r4
strh r0, [r5, 0x22]
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A4944
@@ -5649,7 +5649,7 @@ sub_80A4E40: @ 80A4E40
bl sub_8074FCC
ldr r0, _080A4E6C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A4E74
@@ -5741,7 +5741,7 @@ sub_80A4EF4: @ 80A4EF4
bl sub_8074FCC
ldr r0, _080A4F24 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A4F2C
@@ -6368,7 +6368,7 @@ sub_80A5398: @ 80A5398
strh r0, [r4, 0x2E]
ldr r5, _080A53D8 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x2
negs r2, r2
@@ -6417,7 +6417,7 @@ sub_80A53E8: @ 80A53E8
movs r1, 0
bl sub_80758E0
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -6478,7 +6478,7 @@ sub_80A5474: @ 80A5474
strh r0, [r4, 0x2E]
ldr r5, _080A54B4 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x3
cmp r0, 0
@@ -6547,12 +6547,12 @@ sub_80A54E8: @ 80A54E8
ldrb r0, [r0]
strh r0, [r5, 0x34]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A552C
@@ -6656,7 +6656,7 @@ _080A55BC:
ldrb r0, [r0]
strh r0, [r4, 0x32]
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
@@ -6770,7 +6770,7 @@ sub_80A5694: @ 80A5694
movs r4, 0
strh r0, [r5, 0x8]
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
strh r2, [r5, 0xA]
@@ -7776,7 +7776,7 @@ sub_80A5E34: @ 80A5E34
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0
- ldr r0, _080A5E9C @ =gUnknown_2023BCC
+ ldr r0, _080A5E9C @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcs _080A5E90
@@ -7788,7 +7788,7 @@ _080A5E48:
cmp r0, 0x1
bne _080A5E64
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A5E64
@@ -7801,7 +7801,7 @@ _080A5E64:
cmp r0, 0x1
bne _080A5E82
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7813,7 +7813,7 @@ _080A5E82:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080A5E9C @ =gUnknown_2023BCC
+ ldr r0, _080A5E9C @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _080A5E48
@@ -7824,7 +7824,7 @@ _080A5E90:
pop {r0}
bx r0
.align 2, 0
-_080A5E9C: .4byte gUnknown_2023BCC
+_080A5E9C: .4byte gBattlersCount
_080A5EA0: .4byte gUnknown_2037F02
_080A5EA4: .4byte gUnknown_3004FF0
thumb_func_end sub_80A5E34
@@ -7845,7 +7845,7 @@ _080A5EB2:
lsls r0, 24
lsrs r4, r0, 24
_080A5EC2:
- ldr r0, _080A5EDC @ =gUnknown_2023BCC
+ ldr r0, _080A5EDC @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _080A5EB2
@@ -7856,7 +7856,7 @@ _080A5EC2:
bx r0
.align 2, 0
_080A5ED8: .4byte gUnknown_3004FF0
-_080A5EDC: .4byte gUnknown_2023BCC
+_080A5EDC: .4byte gBattlersCount
thumb_func_end sub_80A5EA8
thumb_func_start sub_80A5EE0
@@ -8380,7 +8380,7 @@ _080A62D0: .4byte 0xffffec00
_080A62D4:
ldr r0, _080A6314 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A631C
@@ -9148,7 +9148,7 @@ sub_80A68B0: @ 80A68B0
adds r6, r0, 0
ldr r7, _080A6934 @ =gUnknown_2037F1A
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -9452,7 +9452,7 @@ sub_80A6B0C: @ 80A6B0C
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A6B2C
@@ -9513,7 +9513,7 @@ _080A6B82:
adds r1, r5, 0
bl sub_80A6B0C
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
@@ -9802,7 +9802,7 @@ _080A6DAE:
adds r1, r5, 0
bl sub_80A6B0C
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A6DD4
@@ -10075,7 +10075,7 @@ sub_80A6F8C: @ 80A6F8C
adds r0, r1
ldrb r6, [r0]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A6FE4
@@ -10231,7 +10231,7 @@ sub_80A70DC: @ 80A70DC
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A7118
@@ -10356,7 +10356,7 @@ sub_80A71D8: @ 80A71D8
bl sub_8074FCC
ldr r0, _080A71FC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A7204
@@ -10384,7 +10384,7 @@ _080A7210:
strh r0, [r4, 0x22]
ldr r0, _080A7248 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A724C
@@ -10492,7 +10492,7 @@ _080A72E8: .4byte gUnknown_2037F02
_080A72EC:
ldr r0, _080A73B4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A730E
@@ -11485,7 +11485,7 @@ sub_80A7A88: @ 80A7A88
lsrs r7, r0, 16
ldr r0, _080A7B30 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A7ACC
@@ -11571,7 +11571,7 @@ sub_80A7B54: @ 80A7B54
strh r0, [r4, 0x24]
ldr r0, _080A7BC0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A7B78
@@ -11784,7 +11784,7 @@ sub_80A7D04: @ 80A7D04
bl sub_8075160
ldr r0, _080A7D54 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A7D22
@@ -12824,7 +12824,7 @@ sub_80A851C: @ 80A851C
adds r4, r0, 0
ldr r5, _080A854C @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A8550
@@ -12903,7 +12903,7 @@ _080A85C8:
_080A85CA:
ldrb r5, [r0]
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -13053,7 +13053,7 @@ sub_80A86A4: @ 80A86A4
strh r0, [r4, 0x1A]
ldr r0, _080A8720 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -13754,7 +13754,7 @@ _080A8C34:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8C60
@@ -13863,7 +13863,7 @@ _080A8D08:
str r3, [sp, 0x4]
_080A8D10:
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8D6C
@@ -14025,7 +14025,7 @@ _080A8E4C:
strh r0, [r2, 0x2]
_080A8E6C:
mov r0, r8
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8E90
@@ -14129,7 +14129,7 @@ sub_80A8F38: @ 80A8F38
bl sub_8075160
ldr r0, _080A8F6C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -14174,7 +14174,7 @@ sub_80A8F7C: @ 80A8F7C
strh r2, [r4, 0x2E]
ldr r0, _080A8FE8 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -14523,7 +14523,7 @@ sub_80A9210: @ 80A9210
strh r0, [r4, 0x20]
ldr r0, _080A9248 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A9250
@@ -15155,7 +15155,7 @@ _080A96CC:
lsls r0, 6
bl AllocZeroed
adds r1, r0, 0
- ldr r0, _080A9758 @ =gUnknown_202401C
+ ldr r0, _080A9758 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r2, 0xBE
lsls r2, 1
@@ -15165,7 +15165,7 @@ _080A96CC:
bl LZDecompressWram
movs r4, 0
_080A9700:
- ldr r5, _080A9758 @ =gUnknown_202401C
+ ldr r5, _080A9758 @ =gMonSpritesGfxPtr
ldr r0, [r5]
movs r1, 0xBE
lsls r1, 1
@@ -15205,7 +15205,7 @@ _080A9700:
.align 2, 0
_080A9750: .4byte 0x000027de
_080A9754: .4byte 0x00002710
-_080A9758: .4byte gUnknown_202401C
+_080A9758: .4byte gMonSpritesGfxPtr
_080A975C: .4byte gUnknown_8D227E4
thumb_func_end sub_80A96B4
@@ -15288,7 +15288,7 @@ sub_80A97E8: @ 80A97E8
bl sub_8075160
ldr r6, _080A9850 @ =gUnknown_2037F1A
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A9808
@@ -16226,7 +16226,7 @@ _080A9F94: .4byte gUnknown_8E7F874
_080A9F98:
ldr r0, _080A9FB4 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -17369,7 +17369,7 @@ _080AA854:
_080AA856:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -17936,7 +17936,7 @@ sub_80AAC98: @ 80AAC98
adds r6, r0, 0
ldr r5, _080AACC0 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AACC8
@@ -17979,7 +17979,7 @@ _080AACDA:
strb r0, [r2]
ldr r0, _080AADA4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AAD10
@@ -18176,7 +18176,7 @@ sub_80AAE84: @ 80AAE84
bl sub_8075160
ldr r0, _080AAEAC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AAEB4
@@ -18570,7 +18570,7 @@ sub_80AB168: @ 80AB168
cmp r0, 0
bne _080AB1C2
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AB1BC
@@ -18624,11 +18624,11 @@ sub_80AB1F8: @ 80AB1F8
adds r6, r0, 0
ldr r5, _080AB2B8 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r0, _080AB2BC @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -18639,12 +18639,12 @@ sub_80AB1F8: @ 80AB1F8
negs r0, r0
strh r0, [r4]
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _080AB23A
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18676,7 +18676,7 @@ _080AB260:
bl sub_8075160
ldr r0, _080AB2B8 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AB27A
@@ -18858,7 +18858,7 @@ sub_80AB38C: @ 80AB38C
bl SetAnimBgAttribute
ldr r0, _080AB400 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18982,7 +18982,7 @@ _080AB4F4: .4byte gUnknown_202297A
_080AB4F8:
ldr r0, _080AB528 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
@@ -20131,7 +20131,7 @@ sub_80ABDC8: @ 80ABDC8
push {r4,r5,lr}
ldr r4, _080ABDEC @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080ABDFC
@@ -20438,7 +20438,7 @@ sub_80AC00C: @ 80AC00C
strh r0, [r4, 0xA]
ldr r0, _080AC040 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AC044
@@ -20849,7 +20849,7 @@ sub_80AC328: @ 80AC328
lsrs r0, 24
strh r0, [r5, 0x10]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -21656,7 +21656,7 @@ sub_80AC990: @ 80AC990
bl sub_8074FCC
ldr r0, _080AC9C4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AC9CC
@@ -21712,7 +21712,7 @@ sub_80ACA00: @ 80ACA00
adds r4, r0, 0
ldr r0, _080ACA2C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080ACA34
@@ -21804,7 +21804,7 @@ sub_80ACAA8: @ 80ACAA8
bl sub_8074FCC
ldr r0, _080ACACC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080ACAD4
@@ -21963,24 +21963,24 @@ sub_80ACBDC: @ 80ACBDC
adds r6, r0, 0
ldr r5, _080ACC34 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r0, _080ACC38 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080ACC22
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _080ACC1A
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
@@ -22352,7 +22352,7 @@ sub_80ACEA4: @ 80ACEA4
strh r0, [r4, 0x10]
ldr r0, _080ACF0C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
@@ -22778,7 +22778,7 @@ sub_80AD1F8: @ 80AD1F8
ldrh r4, [r0, 0x20]
ldr r0, _080AD24C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AD250
@@ -22960,7 +22960,7 @@ sub_80AD374: @ 80AD374
lsrs r4, r0, 16
ldr r0, _080AD3B0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AD3B4
@@ -23223,7 +23223,7 @@ _080AD55C:
strh r0, [r5, 0x3C]
ldr r0, _080AD588 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AD58C
@@ -23258,7 +23258,7 @@ _080AD5B4:
strh r0, [r5, 0x30]
ldr r0, _080AD5D4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AD5D8
@@ -23564,7 +23564,7 @@ sub_80AD800: @ 80AD800
adds r4, r1, r0
ldr r0, _080AD864 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -24082,7 +24082,7 @@ sub_80ADBEC: @ 80ADBEC
adds r4, r0, 0
ldr r0, _080ADC0C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080ADC14
@@ -24140,7 +24140,7 @@ sub_80ADC58: @ 80ADC58
adds r4, r0, 0
ldr r0, _080ADC78 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080ADC80
@@ -24206,7 +24206,7 @@ sub_80ADCB8: @ 80ADCB8
strh r0, [r5, 0x22]
ldr r0, _080ADD00 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080ADD08
@@ -24613,7 +24613,7 @@ sub_80AE000: @ 80AE000
bne _080AE01C
ldr r0, _080AE060 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AE024
@@ -24685,7 +24685,7 @@ _080AE092:
cmp r0, 0
bne _080AE0AA
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AE0B2
@@ -25637,7 +25637,7 @@ sub_80AE7DC: @ 80AE7DC
movs r0, 0x10
strh r0, [r5, 0x3C]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -25756,7 +25756,7 @@ _080AE8D4:
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AE910
@@ -25932,7 +25932,7 @@ _080AEA3E:
_080AEA40:
ldr r4, _080AEA80 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -27131,7 +27131,7 @@ sub_80AF330: @ 80AF330
strh r0, [r4, 0x32]
ldr r0, _080AF368 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF370
@@ -27205,7 +27205,7 @@ _080AF3D4:
bl sub_8076D9C
ldr r0, _080AF420 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF3FA
@@ -27319,7 +27319,7 @@ _080AF4B8:
_080AF4CA:
ldr r0, _080AF4E8 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF4F0
@@ -27445,7 +27445,7 @@ sub_80AF5A4: @ 80AF5A4
strh r0, [r4, 0x2E]
ldr r0, _080AF600 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _080AF604 @ =0x0000ffec
cmp r0, 0
@@ -27483,7 +27483,7 @@ sub_80AF60C: @ 80AF60C
adds r4, r0, 0
ldr r0, _080AF660 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _080AF664 @ =0x0000ffec
cmp r0, 0
@@ -27632,7 +27632,7 @@ _080AF724:
_080AF736:
ldr r0, _080AF758 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF760
@@ -27835,7 +27835,7 @@ _080AF8B0:
bl sub_8076D9C
ldr r0, _080AF8F4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF8D6
@@ -27904,7 +27904,7 @@ _080AF938:
movs r1, 0
bl sub_8076D9C
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF964
@@ -27950,7 +27950,7 @@ _080AF996:
movs r1, 0
bl sub_8076D9C
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080AF9C0
@@ -27997,7 +27997,7 @@ _080AF9FA:
strh r0, [r5, 0x3A]
ldr r0, _080AFA40 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080AFA10
@@ -29317,7 +29317,7 @@ sub_80B0458: @ 80B0458
ldrh r0, [r4, 0x2]
lsls r0, 20
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
@@ -29648,7 +29648,7 @@ _080B071A:
strh r0, [r5, 0x2E]
ldr r0, _080B0784 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B0742
@@ -29874,7 +29874,7 @@ sub_80B08DC: @ 80B08DC
bne _080B0904
ldr r0, _080B0924 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B0904
@@ -30296,7 +30296,7 @@ sub_80B0C28: @ 80B0C28
cmp r0, r1
bne _080B0C54
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -30312,7 +30312,7 @@ _080B0C54:
bl sub_8075114
ldr r0, _080B0CA4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B0C72
@@ -31225,7 +31225,7 @@ _080B1364: .4byte gUnknown_2037F1A
_080B1368: .4byte gUnknown_2037F1B
_080B136C:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B138C
@@ -31324,7 +31324,7 @@ sub_80B13F8: @ 80B13F8
ldr r0, _080B147C @ =gUnknown_2037F16
ldrb r6, [r0]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B1442
@@ -31395,7 +31395,7 @@ _080B14A8:
_080B14BC:
ldr r0, _080B14E4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B14D2
@@ -31510,7 +31510,7 @@ _080B158E:
strh r0, [r4, 0x1C]
ldr r0, _080B15BC @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B15C4
@@ -31662,7 +31662,7 @@ _080B16B8:
bl sub_8076D9C
ldr r0, _080B171C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B16E6
@@ -31795,7 +31795,7 @@ sub_80B17C4: @ 80B17C4
bl sub_8076D9C
ldr r0, _080B1828 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B17F0
@@ -31862,7 +31862,7 @@ _080B1854:
bl sub_8076D9C
ldr r0, _080B1898 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B187A
@@ -32096,7 +32096,7 @@ sub_80B1A1C: @ 80B1A1C
bl sub_8075160
ldr r0, _080B1A88 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B1A3C
@@ -32169,7 +32169,7 @@ sub_80B1AB8: @ 80B1AB8
adds r5, r0, 0
ldr r4, _080B1B54 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B1AE4
@@ -32360,7 +32360,7 @@ sub_80B1C3C: @ 80B1C3C
adds r5, r0, 0
ldr r0, _080B1C64 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B1C6C
@@ -32546,7 +32546,7 @@ _080B1DB0:
_080B1DB2:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B1DC8
@@ -33875,7 +33875,7 @@ _080B27A4:
bne _080B27BC
ldr r0, _080B2810 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B27D2
@@ -33886,7 +33886,7 @@ _080B27BC:
bne _080B27D8
ldr r0, _080B2814 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B27D8
@@ -34833,7 +34833,7 @@ sub_80B2ECC: @ 80B2ECC
adds r6, r0, 0
ldr r0, _080B2F84 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B2EE8
@@ -34859,7 +34859,7 @@ _080B2EFE:
cmp r0, 0
bne _080B2F5A
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
@@ -34905,7 +34905,7 @@ _080B2F5A:
beq _080B2F90
ldr r0, _080B2F84 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B2F88
@@ -34923,7 +34923,7 @@ _080B2F88:
_080B2F90:
ldr r5, _080B3000 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B2FA6
@@ -35098,7 +35098,7 @@ sub_80B30B0: @ 80B30B0
cmp r0, 0
bne _080B3146
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
@@ -35172,7 +35172,7 @@ sub_80B3168: @ 80B3168
cmp r0, 0
bne _080B31C0
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
@@ -35239,7 +35239,7 @@ _080B31EA:
beq _080B3232
ldr r0, _080B3220 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B3224
@@ -35317,7 +35317,7 @@ sub_80B3278: @ 80B3278
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B32C8
@@ -35384,7 +35384,7 @@ sub_80B32F4: @ 80B32F4
lsls r1, 16
lsrs r7, r1, 16
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -35581,7 +35581,7 @@ sub_80B3480: @ 80B3480
strh r1, [r4, 0xC]
ldr r0, _080B34D0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
@@ -37023,7 +37023,7 @@ _080B3FD4: .4byte gUnknown_2037F02
_080B3FD8:
ldr r0, _080B406C @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B4008
@@ -37116,7 +37116,7 @@ _080B409C: .4byte gUnknown_2037F02
_080B40A0:
ldr r0, _080B4118 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B40BC
@@ -37293,7 +37293,7 @@ sub_80B41F8: @ 80B41F8
bl sub_8076D9C
ldr r0, _080B422C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B4234
@@ -37321,7 +37321,7 @@ _080B4240:
strh r0, [r4, 0x22]
ldr r0, _080B426C @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B425C
@@ -37492,7 +37492,7 @@ _080B4380: .4byte gUnknown_2037F02
_080B4384:
ldr r0, _080B4480 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B43A6
@@ -37513,22 +37513,22 @@ _080B43A6:
bne _080B43F6
ldr r0, _080B4480 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r5, _080B4488 @ =gUnknown_2037F1B
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080B43F6
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _080B43E4
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -37622,7 +37622,7 @@ sub_80B4494: @ 80B4494
bl sub_8075160
ldr r0, _080B4500 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B44B4
@@ -37923,7 +37923,7 @@ sub_80B46F8: @ 80B46F8
bl AnimateSprite
ldr r0, _080B4724 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B4728
@@ -38132,7 +38132,7 @@ _080B48B0:
beq _080B48CA
ldr r0, _080B4900 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B48CA
@@ -38378,7 +38378,7 @@ sub_80B4AA8: @ 80B4AA8
beq _080B4AF4
ldr r0, _080B4AF0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B4AF4
@@ -39121,7 +39121,7 @@ sub_80B5074: @ 80B5074
adds r4, r0, 0
ldr r0, _080B509C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -40248,7 +40248,7 @@ _080B58DC:
strh r1, [r0, 0x2E]
ldr r0, _080B5948 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B5950
@@ -41614,7 +41614,7 @@ sub_80B63B4: @ 80B63B4
bl SetGpuReg
ldr r0, _080B6410 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B63FC
@@ -41897,7 +41897,7 @@ sub_80B664C: @ 80B664C
bl sub_8075160
ldr r0, _080B6678 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B6680
@@ -42103,7 +42103,7 @@ sub_80B67D4: @ 80B67D4
strh r0, [r5, 0x24]
ldr r0, _080B683C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B67F8
@@ -42348,7 +42348,7 @@ _080B69B2:
strh r7, [r5, 0x2E]
ldr r0, _080B6A1C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0
lsls r0, 24
cmp r0, 0
@@ -42824,7 +42824,7 @@ _080B6D8C:
lsls r0, 6
bl AllocZeroed
adds r1, r0, 0
- ldr r5, _080B6DFC @ =gUnknown_202401C
+ ldr r5, _080B6DFC @ =gMonSpritesGfxPtr
ldr r0, [r5]
movs r4, 0xBE
lsls r4, 1
@@ -42866,7 +42866,7 @@ _080B6D8C:
str r1, [r0]
b _080B6F1E
.align 2, 0
-_080B6DFC: .4byte gUnknown_202401C
+_080B6DFC: .4byte gMonSpritesGfxPtr
_080B6E00: .4byte gUnknown_8E7F4AC
_080B6E04:
ldrh r0, [r6, 0xA]
@@ -43435,7 +43435,7 @@ sub_80B725C: @ 80B725C
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B72AC
@@ -43514,7 +43514,7 @@ sub_80B72F8: @ 80B72F8
strh r0, [r5, 0x36]
ldr r0, _080B7354 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B735C
@@ -43637,7 +43637,7 @@ sub_80B741C: @ 80B741C
adds r4, r0, 0
ldr r0, _080B7444 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B7436
@@ -44901,7 +44901,7 @@ sub_80B7DA4: @ 80B7DA4
adds r0, 0x20
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B7E14
@@ -45351,7 +45351,7 @@ _080B817C:
adds r0, 0x4
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080B81D0
@@ -46085,13 +46085,13 @@ _080B8750:
bne _080B87CA
ldr r4, _080B8804 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080B8780
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _080B87CA
@@ -46134,7 +46134,7 @@ _080B8780:
_080B87CA:
ldr r4, _080B8804 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B8818
@@ -46489,7 +46489,7 @@ _080B8ADA:
beq _080B8B06
_080B8AE0:
adds r0, r4, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
@@ -46680,7 +46680,7 @@ sub_80B8C54: @ 80B8C54
bl sub_8075114
ldr r0, _080B8CB4 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B8C74
@@ -48355,7 +48355,7 @@ sub_80B9904: @ 80B9904
strh r0, [r4, 0x2E]
ldr r0, _080B9940 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -48887,7 +48887,7 @@ sub_80B9CE4: @ 80B9CE4
strh r1, [r0, 0x12]
strh r5, [r0, 0x18]
movs r4, 0
- ldr r0, _080B9D90 @ =gUnknown_2023BCC
+ ldr r0, _080B9D90 @ =gBattlersCount
ldrb r1, [r0]
mov r9, r3
mov r8, r2
@@ -48947,7 +48947,7 @@ _080B9D5A:
.align 2, 0
_080B9D88: .4byte gTasks
_080B9D8C: .4byte gUnknown_2037F02
-_080B9D90: .4byte gUnknown_2023BCC
+_080B9D90: .4byte gBattlersCount
_080B9D94: .4byte gUnknown_2037F1A
_080B9D98: .4byte gUnknown_2037F1B
_080B9D9C: .4byte sub_80B9DF0
@@ -49732,7 +49732,7 @@ _080BA362:
cmp r0, 0x1
bhi _080BA3B4
movs r4, 0
- ldr r5, _080BA3C0 @ =gUnknown_2023BCC
+ ldr r5, _080BA3C0 @ =gBattlersCount
ldrb r0, [r5]
cmp r4, r0
bcs _080BA3B4
@@ -49767,7 +49767,7 @@ _080BA3BA:
pop {r0}
bx r0
.align 2, 0
-_080BA3C0: .4byte gUnknown_2023BCC
+_080BA3C0: .4byte gBattlersCount
_080BA3C4: .4byte gSprites
_080BA3C8: .4byte gUnknown_2023D44
thumb_func_end sub_80BA320
@@ -50062,7 +50062,7 @@ sub_80BA5F8: @ 80BA5F8
adds r4, r0, 0
ldr r0, _080BA628 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080BA61C
@@ -51035,13 +51035,13 @@ _080BAD7A:
bne _080BADFE
ldr r5, _080BAE38 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080BADAA
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _080BADFE
@@ -51089,7 +51089,7 @@ _080BADAA:
_080BADFE:
ldr r4, _080BAE38 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080BAE4C
@@ -51506,14 +51506,14 @@ _080BB18E:
cmp r0, 0
bne _080BB20A
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080BB1C0
ldr r0, [r4]
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _080BB20A
@@ -51557,7 +51557,7 @@ _080BB20A:
ldr r4, _080BB234 @ =gUnknown_20399B4
ldr r0, [r4]
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080BB25C
@@ -52348,7 +52348,7 @@ sub_80BB82C: @ 80BB82C
beq _080BB868
ldr r0, _080BB89C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080BB868
@@ -52456,7 +52456,7 @@ sub_80BB920: @ 80BB920
lsrs r4, 24
ldr r0, _080BB944 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, _080BB948 @ =gUnknown_2037F02
lsls r0, 24
lsrs r0, 24
@@ -52479,7 +52479,7 @@ sub_80BB94C: @ 80BB94C
lsrs r4, 24
ldr r0, _080BB970 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, _080BB974 @ =gUnknown_2037F02
lsls r0, 24
lsrs r0, 24
@@ -52689,7 +52689,7 @@ _080BBAFC:
movs r0, 0xA
bl SetGpuReg
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080BBB3C
@@ -53068,7 +53068,7 @@ sub_80BBE10: @ 80BBE10
movs r0, 0x80
lsls r0, 6
bl AllocZeroed
- ldr r1, _080BBE38 @ =gUnknown_202401C
+ ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 1
@@ -53080,7 +53080,7 @@ sub_80BBE10: @ 80BBE10
pop {r0}
bx r0
.align 2, 0
-_080BBE38: .4byte gUnknown_202401C
+_080BBE38: .4byte gMonSpritesGfxPtr
thumb_func_end sub_80BBE10
thumb_func_start sub_80BBE3C
@@ -53089,7 +53089,7 @@ sub_80BBE3C: @ 80BBE3C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r6, _080BBE68 @ =gUnknown_202401C
+ ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
ldr r0, [r6]
movs r5, 0xBE
lsls r5, 1
@@ -53106,7 +53106,7 @@ sub_80BBE3C: @ 80BBE3C
pop {r0}
bx r0
.align 2, 0
-_080BBE68: .4byte gUnknown_202401C
+_080BBE68: .4byte gMonSpritesGfxPtr
thumb_func_end sub_80BBE3C
thumb_func_start sub_80BBE6C
@@ -53161,7 +53161,7 @@ _080BBEC2:
adds r4, r0, 0
adds r4, 0x10
_080BBEC8:
- ldr r0, _080BBEFC @ =gUnknown_202401C
+ ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
ldr r1, [r0]
ldr r0, _080BBF00 @ =gUnknown_2037F02
movs r2, 0x2
@@ -53185,7 +53185,7 @@ _080BBEC8:
bx r0
.align 2, 0
_080BBEF8: .4byte gUnknown_2037F1B
-_080BBEFC: .4byte gUnknown_202401C
+_080BBEFC: .4byte gMonSpritesGfxPtr
_080BBF00: .4byte gUnknown_2037F02
_080BBF04: .4byte gUnknown_20371F8
thumb_func_end sub_80BBE6C
@@ -53245,7 +53245,7 @@ _080BBF64:
lsls r0, r4, 5
ldr r1, _080BBF98 @ =gUnknown_20371F8
adds r0, r1
- ldr r1, _080BBF9C @ =gUnknown_202401C
+ ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
ldr r2, [r1]
ldr r1, _080BBFA0 @ =gUnknown_2037F02
movs r3, 0x2
@@ -53267,7 +53267,7 @@ _080BBF64:
.align 2, 0
_080BBF94: .4byte gUnknown_2037F1B
_080BBF98: .4byte gUnknown_20371F8
-_080BBF9C: .4byte gUnknown_202401C
+_080BBF9C: .4byte gMonSpritesGfxPtr
_080BBFA0: .4byte gUnknown_2037F02
thumb_func_end sub_80BBF08
@@ -53401,11 +53401,11 @@ sub_80BC090: @ 80BC090
lsrs r5, r0, 24
ldr r0, _080BC0B8 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldr r0, _080BC0BC @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -55242,10 +55242,10 @@ sub_80BCEF4: @ 80BCEF4
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- ldr r1, _080BCFC4 @ =gUnknown_202401C
+ ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
ldr r2, [r1]
lsls r4, 2
adds r2, 0x4
@@ -55319,7 +55319,7 @@ _080BCFA0:
pop {r0}
bx r0
.align 2, 0
-_080BCFC4: .4byte gUnknown_202401C
+_080BCFC4: .4byte gMonSpritesGfxPtr
_080BCFC8: .4byte gUnknown_2024024
thumb_func_end sub_80BCEF4
@@ -55355,7 +55355,7 @@ sub_80BCFCC: @ 80BCFCC
lsls r0, 24
mov r9, r0
ldr r4, _080BD090 @ =0x040000d4
- ldr r0, _080BD094 @ =gUnknown_202401C
+ ldr r0, _080BD094 @ =gMonSpritesGfxPtr
ldr r0, [r0]
lsrs r2, 22
adds r0, 0x4
@@ -55429,7 +55429,7 @@ _080BD080:
bx r0
.align 2, 0
_080BD090: .4byte 0x040000d4
-_080BD094: .4byte gUnknown_202401C
+_080BD094: .4byte gMonSpritesGfxPtr
_080BD098: .4byte 0x80000400
thumb_func_end sub_80BCFCC
diff --git a/asm/battle_anim_80DE2C0.s b/asm/battle_anim_80DE2C0.s
index b80374308..7ee2d2075 100644
--- a/asm/battle_anim_80DE2C0.s
+++ b/asm/battle_anim_80DE2C0.s
@@ -810,7 +810,7 @@ sub_80DE8B0: @ 80DE8B0
bl sub_8076D9C
ldr r0, _080DE918 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DE8E4
@@ -963,7 +963,7 @@ sub_80DE9D8: @ 80DE9D8
bne _080DEA2C
ldr r0, _080DEA18 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080DEA1C
@@ -1063,7 +1063,7 @@ sub_80DEAB4: @ 80DEAB4
lsrs r4, r0, 24
ldr r0, _080DEAD0 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2604,7 +2604,7 @@ sub_80DF688: @ 80DF688
adds r4, r0, 0
ldr r0, _080DF6A0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DF6A8
@@ -2638,7 +2638,7 @@ sub_80DF6C0: @ 80DF6C0
strh r0, [r4, 0x2E]
ldr r0, _080DF6E0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DF6E4
@@ -3155,11 +3155,11 @@ _080DFAB4: .4byte gUnknown_2037F1A
_080DFAB8: .4byte gUnknown_2037F1B
_080DFABC:
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r1, r0, 24
_080DFAC6:
- ldr r0, _080DFB08 @ =gUnknown_202401C
+ ldr r0, _080DFB08 @ =gMonSpritesGfxPtr
ldr r2, [r0]
lsls r0, r1, 2
adds r2, 0x4
@@ -3192,7 +3192,7 @@ _080DFB00:
strh r0, [r1, 0x8]
b _080DFBCE
.align 2, 0
-_080DFB08: .4byte gUnknown_202401C
+_080DFB08: .4byte gMonSpritesGfxPtr
_080DFB0C: .4byte gUnknown_2024024
_080DFB10: .4byte gUnknown_2037F1A
_080DFB14: .4byte 0x04000200
@@ -3258,7 +3258,7 @@ _080DFB8A:
bne _080DFBC8
ldr r4, _080DFBD8 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3447,7 +3447,7 @@ _080DFD2C: .4byte 0x0000ffc8
_080DFD30:
ldr r0, _080DFD48 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DFD54
@@ -4091,7 +4091,7 @@ _080E0260: .4byte 0x0000ffc8
_080E0264:
ldr r0, _080E02A4 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r4, r0, 24
bl sub_8075290
@@ -4176,7 +4176,7 @@ _080E0304:
strh r0, [r5, 0xE]
ldr r0, _080E033C @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4428,7 +4428,7 @@ _080E04FE:
strh r0, [r4, 0x32]
ldr r0, _080E052C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080E0530
@@ -4539,7 +4539,7 @@ _080E05E8:
ldr r0, _080E0620 @ =gUnknown_2037F1B
_080E05EA:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4756,7 +4756,7 @@ sub_80E0790: @ 80E0790
adds r4, r0, 0
ldr r0, _080E07AC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -4800,7 +4800,7 @@ sub_80E07E0: @ 80E07E0
strh r0, [r4, 0x2E]
ldr r0, _080E0820 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E0824
@@ -5301,7 +5301,7 @@ _080E0BB2:
cmp r0, 0
bne _080E0BD8
ldrb r0, [r6, 0x1E]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsls r2, r5, 4
cmp r0, 0
@@ -5828,7 +5828,7 @@ sub_80E0FB8: @ 80E0FB8
bl GetAnimBankSpriteId
ldr r0, _080E1040 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080E107C
@@ -5866,7 +5866,7 @@ sub_80E0FB8: @ 80E0FB8
cmp r0, 0
bne _080E1074
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E1054
@@ -5940,7 +5940,7 @@ _080E107C:
cmp r0, 0
bne _080E110C
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E10F4
@@ -6251,7 +6251,7 @@ _080E1326:
movs r0, 0x18
strh r0, [r4, 0x18]
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7020,7 +7020,7 @@ sub_80E1928: @ 80E1928
bl StartSpriteAffineAnim
ldr r0, _080E1984 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080E194E
@@ -7465,7 +7465,7 @@ sub_80E1C48: @ 80E1C48
strh r0, [r4, 0x14]
_080E1C8C:
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080E1CBC
@@ -8019,7 +8019,7 @@ sub_80E20D4: @ 80E20D4
adds r5, r0, 0
ldr r6, _080E212C @ =gUnknown_2037F1A
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8084,7 +8084,7 @@ _080E2152:
_080E2160:
ldr r0, _080E218C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080E2180
@@ -8158,7 +8158,7 @@ sub_80E21CC: @ 80E21CC
strh r1, [r6, 0x16]
ldr r5, _080E2220 @ =gUnknown_2037F1A
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E2224
@@ -8697,7 +8697,7 @@ _080E258A:
bl sub_8075068
mov r1, r10
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -9651,7 +9651,7 @@ _080E2D40: .4byte 0x0000ffff
_080E2D44:
ldr r0, _080E2D58 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E2D60
@@ -9916,7 +9916,7 @@ _080E2F3A:
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -10303,7 +10303,7 @@ sub_80E321C: @ 80E321C
movs r1, 0x3
bl sub_8074480
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E3258
@@ -10649,7 +10649,7 @@ sub_80E34D0: @ 80E34D0
adds r5, r0, 0
ldr r4, _080E34F4 @ =gUnknown_2037F1B
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E34FC
@@ -11268,7 +11268,7 @@ _080E3978:
strh r0, [r6, 0xA]
ldr r0, _080E39C8 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11339,7 +11339,7 @@ _080E3A28: .4byte gTasks
_080E3A2C:
ldr r4, _080E3A90 @ =gUnknown_2037F1A
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E3ACC
@@ -11561,7 +11561,7 @@ _080E3BEC:
strh r0, [r6, 0xA]
ldr r0, _080E3C3C @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11618,7 +11618,7 @@ _080E3C5A:
bne _080E3CDA
ldr r0, _080E3CB0 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E3CB8
@@ -11702,7 +11702,7 @@ _080E3D0C:
bl sub_8076B20
ldr r0, _080E3D60 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11765,7 +11765,7 @@ _080E3D90:
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x18]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
ldr r2, [sp, 0x18]
@@ -11911,7 +11911,7 @@ _080E3E96:
strb r0, [r2]
ldr r0, _080E3F20 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -11981,7 +11981,7 @@ _080E3F6A:
strh r0, [r4, 0x32]
ldr r0, _080E3F94 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E3F98
@@ -12242,7 +12242,7 @@ sub_80E4160: @ 80E4160
strh r0, [r4, 0xE]
ldr r0, _080E41CC @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -12425,7 +12425,7 @@ sub_80E42DC: @ 80E42DC
adds r4, r0, 0
ldr r0, _080E4330 @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x30]
@@ -12469,7 +12469,7 @@ sub_80E4334: @ 80E4334
adds r4, r0, 0
ldr r0, _080E436C @ =gUnknown_2037F1B
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E4378
diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_80EEC0C.s
index 84c8c93e2..bb6d8d8d8 100644
--- a/asm/battle_anim_80EEC0C.s
+++ b/asm/battle_anim_80EEC0C.s
@@ -906,7 +906,7 @@ sub_80EF344: @ 80EF344
adds r1, r0, r1
ldrb r1, [r1]
mov r9, r1
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080EF38C
@@ -1376,7 +1376,7 @@ _080EF708:
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_807685C
@@ -1429,7 +1429,7 @@ _080EF708:
ldr r0, _080EF7D8 @ =SpriteCallbackDummy
str r0, [r4]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080EF7DC @ =gUnknown_2023D44
lsls r0, 24
lsrs r0, 24
@@ -1475,7 +1475,7 @@ sub_80EF7EC: @ 80EF7EC
lsrs r5, r0, 24
ldr r6, _080EF84C @ =gSprites
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080EF850 @ =gUnknown_2023D44
lsls r0, 24
lsrs r0, 24
@@ -1532,7 +1532,7 @@ sub_80EF864: @ 80EF864
lsrs r5, r0, 24
ldr r6, _080EF8B8 @ =gSprites
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _080EF8BC @ =gUnknown_2023D44
lsls r0, 24
lsrs r0, 24
@@ -1548,7 +1548,7 @@ sub_80EF864: @ 80EF864
cmp r0, 0
bge _080EF8B0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -5120,7 +5120,7 @@ _080F1466:
adds r0, r4
strh r0, [r5, 0x8]
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080F14A8
@@ -5198,7 +5198,7 @@ _080F150A:
adds r0, r2
strh r0, [r5, 0x8]
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080F1540
@@ -5240,7 +5240,7 @@ _080F1558:
strh r1, [r0, 0x8]
ldr r0, _080F1594 @ =gUnknown_2037F1A
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -5745,7 +5745,7 @@ _080F1948:
cmp r0, 0
bne _080F1990
mov r0, r8
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x3F
cmp r0, 0
@@ -5986,7 +5986,7 @@ sub_80F1B3C: @ 80F1B3C
movs r0, 0x1E
strh r0, [r4, 0x2E]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -5998,7 +5998,7 @@ sub_80F1B3C: @ 80F1B3C
adds r0, r1
strh r0, [r4, 0x32]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -6159,7 +6159,7 @@ sub_80F1C8C: @ 80F1C8C
_080F1CA4: .4byte gUnknown_2037F02
_080F1CA8:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080F1CB8 @ =gUnknown_2037F1A
strb r0, [r1]
movs r0, 0x1
@@ -6168,12 +6168,12 @@ _080F1CA8:
_080F1CB8: .4byte gUnknown_2037F1A
_080F1CBC:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080F1CDC @ =gUnknown_2037F1A
strb r0, [r1]
movs r0, 0
_080F1CC8:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080F1CE0 @ =gUnknown_2037F1B
strb r0, [r1]
_080F1CD0:
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index d6e095db4..016e8b093 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -375,7 +375,7 @@ _080DD0E0: .4byte gUnknown_2037F1B
_080DD0E4: .4byte gUnknown_2037F02
_080DD0E8:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DD10C
@@ -487,7 +487,7 @@ _080DD1BC: .4byte gUnknown_2037F1B
_080DD1C0: .4byte gUnknown_2037F02
_080DD1C4:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DD1E8
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index 405114d91..d08554a15 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -286,7 +286,7 @@ _0803A888:
ldr r0, _0803A964 @ =gActiveBattler
mov r8, r0
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
@@ -376,7 +376,7 @@ _0803A936:
beq _0803A97C
mov r1, r8
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -523,7 +523,7 @@ _0803AA6C:
cmp r0, 0
beq _0803AABA
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -2541,12 +2541,12 @@ _0803BB54:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -2587,12 +2587,12 @@ _0803BBBA:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2608,15 +2608,15 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -2625,7 +2625,7 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -2634,7 +2634,7 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -2643,7 +2643,7 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -2652,7 +2652,7 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -2661,7 +2661,7 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -2670,47 +2670,47 @@ _0803BBBA:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BCE8: .4byte gEnemyParty
@@ -2723,7 +2723,7 @@ _0803BCEC:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BD04: .4byte gEnemyParty
@@ -2736,7 +2736,7 @@ _0803BD08:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BD20: .4byte gEnemyParty
@@ -2758,12 +2758,12 @@ _0803BD3C:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2777,7 +2777,7 @@ _0803BD3C:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BD74: .4byte gEnemyParty
@@ -2809,7 +2809,7 @@ _0803BD98:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2817,7 +2817,7 @@ _0803BD98:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2825,7 +2825,7 @@ _0803BD98:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2833,7 +2833,7 @@ _0803BD98:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2841,7 +2841,7 @@ _0803BD98:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BDFC: .4byte gEnemyParty
@@ -2860,7 +2860,7 @@ _0803BE00:
_0803BE16:
adds r3, 0x3
adds r2, r3
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BE20: .4byte gEnemyParty
@@ -2874,7 +2874,7 @@ _0803BE28:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BE40: .4byte gEnemyParty
@@ -2887,7 +2887,7 @@ _0803BE44:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BE5C: .4byte gEnemyParty
@@ -2900,7 +2900,7 @@ _0803BE60:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BE78: .4byte gEnemyParty
@@ -2913,7 +2913,7 @@ _0803BE7C:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BE94: .4byte gEnemyParty
@@ -2926,7 +2926,7 @@ _0803BE98:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BEB0: .4byte gEnemyParty
@@ -2939,7 +2939,7 @@ _0803BEB4:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BECC: .4byte gEnemyParty
@@ -2952,7 +2952,7 @@ _0803BED0:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BEE8: .4byte gEnemyParty
@@ -2965,7 +2965,7 @@ _0803BEEC:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF04: .4byte gEnemyParty
@@ -2978,7 +2978,7 @@ _0803BF08:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF20: .4byte gEnemyParty
@@ -2991,7 +2991,7 @@ _0803BF24:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF3C: .4byte gEnemyParty
@@ -3004,7 +3004,7 @@ _0803BF40:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF58: .4byte gEnemyParty
@@ -3017,7 +3017,7 @@ _0803BF5C:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF74: .4byte gEnemyParty
@@ -3030,7 +3030,7 @@ _0803BF78:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BF90: .4byte gEnemyParty
@@ -3043,7 +3043,7 @@ _0803BF94:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803BFAC: .4byte gEnemyParty
@@ -3059,7 +3059,7 @@ _0803BFB0:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3067,7 +3067,7 @@ _0803BFB0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3075,7 +3075,7 @@ _0803BFB0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3083,7 +3083,7 @@ _0803BFB0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3091,7 +3091,7 @@ _0803BFB0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3110,7 +3110,7 @@ _0803C024:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C03C: .4byte gEnemyParty
@@ -3123,7 +3123,7 @@ _0803C040:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C058: .4byte gEnemyParty
@@ -3136,7 +3136,7 @@ _0803C05C:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C074: .4byte gEnemyParty
@@ -3149,7 +3149,7 @@ _0803C078:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C090: .4byte gEnemyParty
@@ -3162,7 +3162,7 @@ _0803C094:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C0AC: .4byte gEnemyParty
@@ -3176,7 +3176,7 @@ _0803C0B0:
adds r2, r3
_0803C0BE:
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C0C8: .4byte gEnemyParty
@@ -3189,7 +3189,7 @@ _0803C0CC:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C0E4: .4byte gEnemyParty
@@ -3202,7 +3202,7 @@ _0803C0E8:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C100: .4byte gEnemyParty
@@ -3215,7 +3215,7 @@ _0803C104:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C11C: .4byte gEnemyParty
@@ -3228,7 +3228,7 @@ _0803C120:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C138: .4byte gEnemyParty
@@ -3241,7 +3241,7 @@ _0803C13C:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C154: .4byte gEnemyParty
@@ -3254,7 +3254,7 @@ _0803C158:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C170: .4byte gEnemyParty
@@ -3267,7 +3267,7 @@ _0803C174:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C18C: .4byte gEnemyParty
@@ -3280,7 +3280,7 @@ _0803C190:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C1A8: .4byte gEnemyParty
@@ -3293,7 +3293,7 @@ _0803C1AC:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C1C4: .4byte gEnemyParty
@@ -3306,7 +3306,7 @@ _0803C1C8:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C1E0: .4byte gEnemyParty
@@ -3319,7 +3319,7 @@ _0803C1E4:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C1FC: .4byte gEnemyParty
@@ -3332,7 +3332,7 @@ _0803C200:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C218: .4byte gEnemyParty
@@ -3345,7 +3345,7 @@ _0803C21C:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C234: .4byte gEnemyParty
@@ -3358,7 +3358,7 @@ _0803C238:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C250: .4byte gEnemyParty
@@ -3371,7 +3371,7 @@ _0803C254:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C26C: .4byte gEnemyParty
@@ -3384,7 +3384,7 @@ _0803C270:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C288: .4byte gEnemyParty
@@ -3397,7 +3397,7 @@ _0803C28C:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C2A4: .4byte gEnemyParty
@@ -3410,7 +3410,7 @@ _0803C2A8:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C2C0: .4byte gEnemyParty
@@ -3423,7 +3423,7 @@ _0803C2C4:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C2DC: .4byte gEnemyParty
@@ -3436,7 +3436,7 @@ _0803C2E0:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C2F8: .4byte gEnemyParty
@@ -3449,7 +3449,7 @@ _0803C2FC:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _0803C32C
.align 2, 0
_0803C314: .4byte gEnemyParty
@@ -3462,7 +3462,7 @@ _0803C318:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_0803C32C:
add sp, 0x38
pop {r3-r5}
@@ -3571,13 +3571,13 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
add r0, r9
bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_803F7D4
- ldr r0, _0803C4E8 @ =gUnknown_20244DC
+ ldr r0, _0803C4E8 @ =gMultiuseSpriteTemplate
mov r8, r0
ldrb r0, [r6]
movs r1, 0x2
@@ -3677,7 +3677,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
_0803C4DC: .4byte gBattlerPartyIndexes
_0803C4E0: .4byte gActiveBattler
_0803C4E4: .4byte gEnemyParty
-_0803C4E8: .4byte gUnknown_20244DC
+_0803C4E8: .4byte gMultiuseSpriteTemplate
_0803C4EC: .4byte gUnknown_2023D44
_0803C4F0: .4byte gSprites
_0803C4F4: .4byte 0x0000ff10
@@ -3775,13 +3775,13 @@ sub_803C550: @ 803C550
adds r1, r6, 0
bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _0803C6C0 @ =gUnknown_20244DC
+ ldr r0, _0803C6C0 @ =gMultiuseSpriteTemplate
mov r9, r0
adds r0, r6, 0
movs r1, 0x2
@@ -3892,7 +3892,7 @@ _0803C6B0: .4byte gUnknown_2022BC4
_0803C6B4: .4byte gEnemyParty
_0803C6B8: .4byte sub_8033E3C
_0803C6BC: .4byte gUnknown_3004FFC
-_0803C6C0: .4byte gUnknown_20244DC
+_0803C6C0: .4byte gMultiuseSpriteTemplate
_0803C6C4: .4byte gUnknown_2023D44
_0803C6C8: .4byte gSprites
_0803C6CC: .4byte gUnknown_2024024
@@ -4056,7 +4056,7 @@ sub_803C7F8: @ 803C7F8
beq _0803C8C0
ldr r6, _0803C888 @ =gActiveBattler
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
ands r1, r0
movs r7, 0xC8
@@ -4108,20 +4108,20 @@ _0803C866:
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0803C894
- ldr r0, _0803C890 @ =gUnknown_82538A8
+ ldr r0, _0803C890 @ =gFacilityClassToPicIndex
adds r0, 0x3D
b _0803C990
.align 2, 0
_0803C884: .4byte gBattleTypeFlags
_0803C888: .4byte gActiveBattler
_0803C88C: .4byte gUnknown_202273C
-_0803C890: .4byte gUnknown_82538A8
+_0803C890: .4byte gFacilityClassToPicIndex
_0803C894:
- ldr r0, _0803C89C @ =gUnknown_82538A8
+ ldr r0, _0803C89C @ =gFacilityClassToPicIndex
adds r0, 0x3A
b _0803C990
.align 2, 0
-_0803C89C: .4byte gUnknown_82538A8
+_0803C89C: .4byte gFacilityClassToPicIndex
_0803C8A0:
ldrb r0, [r6]
bl GetBankMultiplayerId
@@ -4132,11 +4132,11 @@ _0803C8A0:
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0803C98C
- ldr r0, _0803C8BC @ =gUnknown_82538A8
+ ldr r0, _0803C8BC @ =gFacilityClassToPicIndex
adds r0, 0x87
b _0803C990
.align 2, 0
-_0803C8BC: .4byte gUnknown_82538A8
+_0803C8BC: .4byte gFacilityClassToPicIndex
_0803C8C0:
movs r7, 0xB0
ldr r0, _0803C8D8 @ =gTrainerBattleOpponent_A
@@ -4205,18 +4205,18 @@ _0803C930:
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0803C95C
- ldr r0, _0803C958 @ =gUnknown_82538A8
+ ldr r0, _0803C958 @ =gFacilityClassToPicIndex
adds r0, 0x3D
b _0803C990
.align 2, 0
_0803C954: .4byte gUnknown_202273C
-_0803C958: .4byte gUnknown_82538A8
+_0803C958: .4byte gFacilityClassToPicIndex
_0803C95C:
- ldr r0, _0803C964 @ =gUnknown_82538A8
+ ldr r0, _0803C964 @ =gFacilityClassToPicIndex
adds r0, 0x3A
b _0803C990
.align 2, 0
-_0803C964: .4byte gUnknown_82538A8
+_0803C964: .4byte gFacilityClassToPicIndex
_0803C968:
bl GetMultiplayerId
eors r0, r5
@@ -4229,13 +4229,13 @@ _0803C968:
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0803C98C
- ldr r0, _0803C988 @ =gUnknown_82538A8
+ ldr r0, _0803C988 @ =gFacilityClassToPicIndex
adds r0, 0x87
b _0803C990
.align 2, 0
-_0803C988: .4byte gUnknown_82538A8
+_0803C988: .4byte gFacilityClassToPicIndex
_0803C98C:
- ldr r0, _0803CAC8 @ =gUnknown_82538A8
+ ldr r0, _0803CAC8 @ =gFacilityClassToPicIndex
adds r0, 0x86
_0803C990:
ldrb r0, [r0]
@@ -4248,13 +4248,13 @@ _0803C992:
bl sub_80346C4
mov r1, r8
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803F864
- ldr r5, _0803CAD0 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r5, _0803CAD0 @ =gMultiuseSpriteTemplate
adds r6, r7, 0
ldr r1, _0803CAD4 @ =gUnknown_823932C
mov r2, r9
@@ -4388,9 +4388,9 @@ _0803C992:
pop {r0}
bx r0
.align 2, 0
-_0803CAC8: .4byte gUnknown_82538A8
+_0803CAC8: .4byte gFacilityClassToPicIndex
_0803CACC: .4byte gActiveBattler
-_0803CAD0: .4byte gUnknown_20244DC
+_0803CAD0: .4byte gMultiuseSpriteTemplate
_0803CAD4: .4byte gUnknown_823932C
_0803CAD8: .4byte gUnknown_2023D44
_0803CADC: .4byte gSprites
@@ -5501,7 +5501,7 @@ RecordedOpponentHandlePlaySE: @ 803D370
push {r4,lr}
ldr r4, _0803D3AC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
@@ -5883,7 +5883,7 @@ RecordedOpponentHandleDrawPartyStatusSummary: @ 803D67C
cmp r0, 0
beq _0803D6AC
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0803D6AC
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index 876d380ee..4f9dcbfe3 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -2244,12 +2244,12 @@ _080D5478:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -2290,12 +2290,12 @@ _080D54DE:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2311,15 +2311,15 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -2328,7 +2328,7 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -2337,7 +2337,7 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -2346,7 +2346,7 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -2355,7 +2355,7 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -2364,7 +2364,7 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -2373,47 +2373,47 @@ _080D54DE:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D560C: .4byte gPlayerParty
@@ -2427,7 +2427,7 @@ _080D5610:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5628: .4byte gPlayerParty
@@ -2442,7 +2442,7 @@ _080D5630:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5648: .4byte gPlayerParty
@@ -2466,12 +2466,12 @@ _080D566A:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2485,7 +2485,7 @@ _080D566A:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D56A4: .4byte gPlayerParty
@@ -2519,35 +2519,35 @@ _080D56D0:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D572C: .4byte gPlayerParty
@@ -2568,7 +2568,7 @@ _080D5734:
_080D574C:
adds r3, 0x3
adds r2, r3
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5758: .4byte gPlayerParty
@@ -2584,7 +2584,7 @@ _080D5764:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D577C: .4byte gPlayerParty
@@ -2599,7 +2599,7 @@ _080D5784:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D579C: .4byte gPlayerParty
@@ -2614,7 +2614,7 @@ _080D57A4:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D57BC: .4byte gPlayerParty
@@ -2629,7 +2629,7 @@ _080D57C4:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D57DC: .4byte gPlayerParty
@@ -2644,7 +2644,7 @@ _080D57E4:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D57FC: .4byte gPlayerParty
@@ -2659,7 +2659,7 @@ _080D5804:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D581C: .4byte gPlayerParty
@@ -2674,7 +2674,7 @@ _080D5824:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D583C: .4byte gPlayerParty
@@ -2689,7 +2689,7 @@ _080D5844:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D585C: .4byte gPlayerParty
@@ -2704,7 +2704,7 @@ _080D5864:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D587C: .4byte gPlayerParty
@@ -2719,7 +2719,7 @@ _080D5884:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D589C: .4byte gPlayerParty
@@ -2734,7 +2734,7 @@ _080D58A4:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D58BC: .4byte gPlayerParty
@@ -2749,7 +2749,7 @@ _080D58C4:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D58DC: .4byte gPlayerParty
@@ -2764,7 +2764,7 @@ _080D58E4:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D58FC: .4byte gPlayerParty
@@ -2779,7 +2779,7 @@ _080D5904:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D591C: .4byte gPlayerParty
@@ -2796,35 +2796,35 @@ _080D5924:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -2844,7 +2844,7 @@ _080D5994:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D59AC: .4byte gPlayerParty
@@ -2859,7 +2859,7 @@ _080D59B4:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D59CC: .4byte gPlayerParty
@@ -2874,7 +2874,7 @@ _080D59D4:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D59EC: .4byte gPlayerParty
@@ -2889,7 +2889,7 @@ _080D59F4:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5A0C: .4byte gPlayerParty
@@ -2904,7 +2904,7 @@ _080D5A14:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5A2C: .4byte gPlayerParty
@@ -2920,7 +2920,7 @@ _080D5A34:
adds r2, r7
_080D5A44:
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5A4C: .4byte gPlayerParty
@@ -2935,7 +2935,7 @@ _080D5A54:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5A6C: .4byte gPlayerParty
@@ -2950,7 +2950,7 @@ _080D5A74:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5A8C: .4byte gPlayerParty
@@ -2965,7 +2965,7 @@ _080D5A94:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5AAC: .4byte gPlayerParty
@@ -2980,7 +2980,7 @@ _080D5AB4:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5ACC: .4byte gPlayerParty
@@ -2995,7 +2995,7 @@ _080D5AD4:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5AEC: .4byte gPlayerParty
@@ -3010,7 +3010,7 @@ _080D5AF4:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5B0C: .4byte gPlayerParty
@@ -3025,7 +3025,7 @@ _080D5B14:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5B2C: .4byte gPlayerParty
@@ -3040,7 +3040,7 @@ _080D5B34:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5B4C: .4byte gPlayerParty
@@ -3055,7 +3055,7 @@ _080D5B54:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5B6C: .4byte gPlayerParty
@@ -3070,7 +3070,7 @@ _080D5B74:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5B8C: .4byte gPlayerParty
@@ -3085,7 +3085,7 @@ _080D5B94:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5BAC: .4byte gPlayerParty
@@ -3100,7 +3100,7 @@ _080D5BB4:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5BCC: .4byte gPlayerParty
@@ -3115,7 +3115,7 @@ _080D5BD4:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5BEC: .4byte gPlayerParty
@@ -3130,7 +3130,7 @@ _080D5BF4:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5C0C: .4byte gPlayerParty
@@ -3145,7 +3145,7 @@ _080D5C14:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5C2C: .4byte gPlayerParty
@@ -3160,7 +3160,7 @@ _080D5C34:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5C4C: .4byte gPlayerParty
@@ -3175,7 +3175,7 @@ _080D5C54:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5C6C: .4byte gPlayerParty
@@ -3190,7 +3190,7 @@ _080D5C74:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5C8C: .4byte gPlayerParty
@@ -3205,7 +3205,7 @@ _080D5C94:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5CAC: .4byte gPlayerParty
@@ -3220,7 +3220,7 @@ _080D5CB4:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5CCC: .4byte gPlayerParty
@@ -3235,7 +3235,7 @@ _080D5CD4:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _080D5D0A
.align 2, 0
_080D5CEC: .4byte gPlayerParty
@@ -3250,7 +3250,7 @@ _080D5CF4:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_080D5D0A:
ldr r2, _080D5D3C @ =gBattlerPartyIndexes
ldr r0, _080D5D38 @ =gActiveBattler
@@ -3365,13 +3365,13 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_803F7D4
- ldr r0, _080D5EB4 @ =gUnknown_20244DC
+ ldr r0, _080D5EB4 @ =gMultiuseSpriteTemplate
mov r8, r0
ldrb r0, [r6]
movs r1, 0x2
@@ -3454,7 +3454,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
_080D5EA8: .4byte gBattlerPartyIndexes
_080D5EAC: .4byte gActiveBattler
_080D5EB0: .4byte gPlayerParty
-_080D5EB4: .4byte gUnknown_20244DC
+_080D5EB4: .4byte gMultiuseSpriteTemplate
_080D5EB8: .4byte gUnknown_2023D44
_080D5EBC: .4byte gSprites
_080D5EC0: .4byte 0x0000ff10
@@ -3557,13 +3557,13 @@ sub_80D5F40: @ 80D5F40
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _080D6098 @ =gUnknown_20244DC
+ ldr r0, _080D6098 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
@@ -3674,7 +3674,7 @@ _080D6088: .4byte gUnknown_2022BC4
_080D608C: .4byte gPlayerParty
_080D6090: .4byte sub_8033E3C
_080D6094: .4byte gUnknown_3004FFC
-_080D6098: .4byte gUnknown_20244DC
+_080D6098: .4byte gMultiuseSpriteTemplate
_080D609C: .4byte gUnknown_2023D44
_080D60A0: .4byte gSprites
_080D60A4: .4byte gUnknown_2024024
@@ -3829,7 +3829,7 @@ sub_80D61C8: @ 80D61C8
push {r7}
ldr r6, _080D6240 @ =gActiveBattler
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
ands r1, r0
movs r7, 0x20
@@ -3898,13 +3898,13 @@ _080D6258:
adds r0, r4, 0
bl sub_8034750
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F864
- ldr r6, _080D631C @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r6, _080D631C @ =gMultiuseSpriteTemplate
mov r8, r7
ldr r0, _080D6320 @ =gUnknown_8239F8C
lsls r4, 2
@@ -3985,7 +3985,7 @@ _080D6258:
bx r0
.align 2, 0
_080D6318: .4byte gActiveBattler
-_080D631C: .4byte gUnknown_20244DC
+_080D631C: .4byte gMultiuseSpriteTemplate
_080D6320: .4byte gUnknown_8239F8C
_080D6324: .4byte gUnknown_2023D44
_080D6328: .4byte gSprites
@@ -5122,7 +5122,7 @@ LinkPartnerHandleEffectivenessSound: @ 80D6BEC
push {r4,lr}
ldr r4, _080D6C28 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
@@ -5605,7 +5605,7 @@ sub_80D6FDC: @ 80D6FDC
cmp r0, 0
beq _080D700C
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D700C
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index b5905ade8..4cb53b5d7 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -275,13 +275,13 @@ _080E77AC:
cmp r0, 0
beq _080E7838
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080E7838
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080E7824 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _080E7828 @ =gBitTable
@@ -1104,7 +1104,7 @@ _080E7E4A:
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
- ldr r3, _080E7F10 @ =gUnknown_8253AE4
+ ldr r3, _080E7F10 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _080E7F14 @ =gBaseStats
@@ -1129,7 +1129,7 @@ _080E7E4A:
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -1173,7 +1173,7 @@ _080E7EFE:
_080E7F04: .4byte gTasks
_080E7F08: .4byte gBattlerPartyIndexes
_080E7F0C: .4byte gPlayerParty
-_080E7F10: .4byte gUnknown_8253AE4
+_080E7F10: .4byte gExperienceTables
_080E7F14: .4byte gBaseStats
_080E7F18: .4byte gActiveBattler
_080E7F1C: .4byte sub_80E8190
@@ -1194,7 +1194,7 @@ _080E7F38:
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _080E7F58 @ =gUnknown_3004FE0
ldr r3, [sp, 0x8]
lsls r0, r3, 2
@@ -1273,7 +1273,7 @@ sub_80E7F7C: @ 80E7F7C
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
- ldr r6, _080E803C @ =gUnknown_8253AE4
+ ldr r6, _080E803C @ =gExperienceTables
lsls r1, r4, 2
ldr r2, _080E8040 @ =gBaseStats
lsls r0, r5, 3
@@ -1318,7 +1318,7 @@ sub_80E7F7C: @ 80E7F7C
.align 2, 0
_080E8034: .4byte gTasks
_080E8038: .4byte gPlayerParty
-_080E803C: .4byte gUnknown_8253AE4
+_080E803C: .4byte gExperienceTables
_080E8040: .4byte gBaseStats
_080E8044: .4byte gUnknown_3004FF0
_080E8048: .4byte sub_80E804C
@@ -1396,7 +1396,7 @@ _080E807C:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- ldr r3, _080E814C @ =gUnknown_8253AE4
+ ldr r3, _080E814C @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _080E8150 @ =gBaseStats
@@ -1422,7 +1422,7 @@ _080E807C:
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -1445,7 +1445,7 @@ _080E807C:
.align 2, 0
_080E8144: .4byte gUnknown_3004FF0
_080E8148: .4byte gPlayerParty
-_080E814C: .4byte gUnknown_8253AE4
+_080E814C: .4byte gExperienceTables
_080E8150: .4byte gBaseStats
_080E8154: .4byte gActiveBattler
_080E8158: .4byte sub_80E8190
@@ -1454,7 +1454,7 @@ _080E815C:
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _080E8188 @ =gUnknown_3004FE0
lsls r0, r7, 2
adds r0, r1
@@ -1746,7 +1746,7 @@ _080E83BA:
adds r5, 0x95
adds r4, 0x97
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -1924,7 +1924,7 @@ _080E8530:
cmp r4, 0
bne _080E855E
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_80EF0E0
@@ -2124,7 +2124,7 @@ _080E86B4:
bl sub_80EB524
ldr r0, _080E86DC @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E86E0
@@ -3833,12 +3833,12 @@ _080E94FC:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -3879,12 +3879,12 @@ _080E9562:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -3900,15 +3900,15 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -3917,7 +3917,7 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -3926,7 +3926,7 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -3935,7 +3935,7 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -3944,7 +3944,7 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -3953,7 +3953,7 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -3962,47 +3962,47 @@ _080E9562:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9690: .4byte gPlayerParty
@@ -4016,7 +4016,7 @@ _080E9694:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E96AC: .4byte gPlayerParty
@@ -4031,7 +4031,7 @@ _080E96B4:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E96CC: .4byte gPlayerParty
@@ -4055,12 +4055,12 @@ _080E96EE:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -4074,7 +4074,7 @@ _080E96EE:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9728: .4byte gPlayerParty
@@ -4108,35 +4108,35 @@ _080E9754:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E97B0: .4byte gPlayerParty
@@ -4157,7 +4157,7 @@ _080E97B8:
_080E97D0:
adds r3, 0x3
adds r2, r3
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E97DC: .4byte gPlayerParty
@@ -4173,7 +4173,7 @@ _080E97E8:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9800: .4byte gPlayerParty
@@ -4188,7 +4188,7 @@ _080E9808:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9820: .4byte gPlayerParty
@@ -4203,7 +4203,7 @@ _080E9828:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9840: .4byte gPlayerParty
@@ -4218,7 +4218,7 @@ _080E9848:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9860: .4byte gPlayerParty
@@ -4233,7 +4233,7 @@ _080E9868:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9880: .4byte gPlayerParty
@@ -4248,7 +4248,7 @@ _080E9888:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E98A0: .4byte gPlayerParty
@@ -4263,7 +4263,7 @@ _080E98A8:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E98C0: .4byte gPlayerParty
@@ -4278,7 +4278,7 @@ _080E98C8:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E98E0: .4byte gPlayerParty
@@ -4293,7 +4293,7 @@ _080E98E8:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9900: .4byte gPlayerParty
@@ -4308,7 +4308,7 @@ _080E9908:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9920: .4byte gPlayerParty
@@ -4323,7 +4323,7 @@ _080E9928:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9940: .4byte gPlayerParty
@@ -4338,7 +4338,7 @@ _080E9948:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9960: .4byte gPlayerParty
@@ -4353,7 +4353,7 @@ _080E9968:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9980: .4byte gPlayerParty
@@ -4368,7 +4368,7 @@ _080E9988:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E99A0: .4byte gPlayerParty
@@ -4385,35 +4385,35 @@ _080E99A8:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -4433,7 +4433,7 @@ _080E9A18:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A30: .4byte gPlayerParty
@@ -4448,7 +4448,7 @@ _080E9A38:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A50: .4byte gPlayerParty
@@ -4463,7 +4463,7 @@ _080E9A58:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A70: .4byte gPlayerParty
@@ -4478,7 +4478,7 @@ _080E9A78:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A90: .4byte gPlayerParty
@@ -4493,7 +4493,7 @@ _080E9A98:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AB0: .4byte gPlayerParty
@@ -4509,7 +4509,7 @@ _080E9AB8:
adds r2, r7
_080E9AC8:
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AD0: .4byte gPlayerParty
@@ -4524,7 +4524,7 @@ _080E9AD8:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AF0: .4byte gPlayerParty
@@ -4539,7 +4539,7 @@ _080E9AF8:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B10: .4byte gPlayerParty
@@ -4554,7 +4554,7 @@ _080E9B18:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B30: .4byte gPlayerParty
@@ -4569,7 +4569,7 @@ _080E9B38:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B50: .4byte gPlayerParty
@@ -4584,7 +4584,7 @@ _080E9B58:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B70: .4byte gPlayerParty
@@ -4599,7 +4599,7 @@ _080E9B78:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B90: .4byte gPlayerParty
@@ -4614,7 +4614,7 @@ _080E9B98:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BB0: .4byte gPlayerParty
@@ -4629,7 +4629,7 @@ _080E9BB8:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BD0: .4byte gPlayerParty
@@ -4644,7 +4644,7 @@ _080E9BD8:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BF0: .4byte gPlayerParty
@@ -4659,7 +4659,7 @@ _080E9BF8:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C10: .4byte gPlayerParty
@@ -4674,7 +4674,7 @@ _080E9C18:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C30: .4byte gPlayerParty
@@ -4689,7 +4689,7 @@ _080E9C38:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C50: .4byte gPlayerParty
@@ -4704,7 +4704,7 @@ _080E9C58:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C70: .4byte gPlayerParty
@@ -4719,7 +4719,7 @@ _080E9C78:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C90: .4byte gPlayerParty
@@ -4734,7 +4734,7 @@ _080E9C98:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CB0: .4byte gPlayerParty
@@ -4749,7 +4749,7 @@ _080E9CB8:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CD0: .4byte gPlayerParty
@@ -4764,7 +4764,7 @@ _080E9CD8:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CF0: .4byte gPlayerParty
@@ -4779,7 +4779,7 @@ _080E9CF8:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D10: .4byte gPlayerParty
@@ -4794,7 +4794,7 @@ _080E9D18:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D30: .4byte gPlayerParty
@@ -4809,7 +4809,7 @@ _080E9D38:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D50: .4byte gPlayerParty
@@ -4824,7 +4824,7 @@ _080E9D58:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D70: .4byte gPlayerParty
@@ -4839,7 +4839,7 @@ _080E9D78:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_080E9D8E:
ldr r2, _080E9DC0 @ =gBattlerPartyIndexes
ldr r0, _080E9DBC @ =gActiveBattler
@@ -4970,13 +4970,13 @@ sub_80E9E6C: @ 80E9E6C
ldr r0, [r4]
ldrb r5, [r0, 0x8]
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_803F864
- ldr r0, _080E9ED4 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _080E9ED4 @ =gMultiuseSpriteTemplate
ldr r2, _080E9ED8 @ =gUnknown_8239F8C
ldr r1, [r4]
ldrb r1, [r1, 0x8]
@@ -5000,7 +5000,7 @@ sub_80E9E6C: @ 80E9E6C
_080E9EC8: .4byte gBattleTypeFlags
_080E9ECC: .4byte gSaveBlock2Ptr
_080E9ED0: .4byte gActiveBattler
-_080E9ED4: .4byte gUnknown_20244DC
+_080E9ED4: .4byte gMultiuseSpriteTemplate
_080E9ED8: .4byte gUnknown_8239F8C
_080E9EDC: .4byte gUnknown_2023D44
_080E9EE0:
@@ -5009,13 +5009,13 @@ _080E9EE0:
movs r0, 0x5
bl sub_8034750
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
- bl sub_803F864
- ldr r0, _080E9F90 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _080E9F90 @ =gMultiuseSpriteTemplate
ldr r1, _080E9F94 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x14]
movs r2, 0x8
@@ -5088,7 +5088,7 @@ _080E9F1C:
bx r0
.align 2, 0
_080E9F8C: .4byte gActiveBattler
-_080E9F90: .4byte gUnknown_20244DC
+_080E9F90: .4byte gMultiuseSpriteTemplate
_080E9F94: .4byte gUnknown_8239F8C
_080E9F98: .4byte gUnknown_2023D44
_080E9F9C: .4byte gSprites
@@ -5116,13 +5116,13 @@ sub_80E9FB0: @ 80E9FB0
ldr r0, [r4]
ldrb r5, [r0, 0x8]
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_803F864
- ldr r0, _080EA018 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _080EA018 @ =gMultiuseSpriteTemplate
ldr r2, _080EA01C @ =gUnknown_8239F8C
ldr r1, [r4]
ldrb r1, [r1, 0x8]
@@ -5146,7 +5146,7 @@ sub_80E9FB0: @ 80E9FB0
_080EA00C: .4byte gBattleTypeFlags
_080EA010: .4byte gSaveBlock2Ptr
_080EA014: .4byte gActiveBattler
-_080EA018: .4byte gUnknown_20244DC
+_080EA018: .4byte gMultiuseSpriteTemplate
_080EA01C: .4byte gUnknown_8239F8C
_080EA020: .4byte gUnknown_2023D44
_080EA024:
@@ -5155,13 +5155,13 @@ _080EA024:
movs r0, 0x5
bl sub_8034750
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
- bl sub_803F864
- ldr r0, _080EA0D4 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _080EA0D4 @ =gMultiuseSpriteTemplate
ldr r1, _080EA0D8 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x14]
movs r2, 0x8
@@ -5234,7 +5234,7 @@ _080EA060:
bx r0
.align 2, 0
_080EA0D0: .4byte gActiveBattler
-_080EA0D4: .4byte gUnknown_20244DC
+_080EA0D4: .4byte gMultiuseSpriteTemplate
_080EA0D8: .4byte gUnknown_8239F8C
_080EA0DC: .4byte gUnknown_2023D44
_080EA0E0: .4byte gSprites
@@ -5388,7 +5388,7 @@ sub_80EA1F8: @ 80EA1F8
ldr r5, _080EA240 @ =gActiveBattler
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -5432,7 +5432,7 @@ sub_80EA24C: @ 80EA24C
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -5928,7 +5928,7 @@ sub_80EA66C: @ 80EA66C
push {lr}
ldr r0, _080EA684 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080EA688
@@ -6189,7 +6189,7 @@ sub_80EA870: @ 80EA870
adds r0, r1
ldr r1, _080EA8C4 @ =sub_80E7A70
str r1, [r0]
- ldr r1, _080EA8C8 @ =gUnknown_2024004
+ ldr r1, _080EA8C8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
movs r3, 0
@@ -6215,7 +6215,7 @@ _080EA89E:
_080EA8BC: .4byte gUnknown_3004FE0
_080EA8C0: .4byte gActiveBattler
_080EA8C4: .4byte sub_80E7A70
-_080EA8C8: .4byte gUnknown_2024004
+_080EA8C8: .4byte gBattlerInMenuId
_080EA8CC: .4byte gUnknown_203B0DC
_080EA8D0: .4byte gUnknown_2022BC4
thumb_func_end sub_80EA870
@@ -6301,7 +6301,7 @@ _080EA940:
adds r0, r1
ldr r1, _080EA9A4 @ =sub_80E79B8
str r1, [r0]
- ldr r1, _080EA9A8 @ =gUnknown_2024004
+ ldr r1, _080EA9A8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
add sp, 0x4
@@ -6318,7 +6318,7 @@ _080EA998: .4byte gBattleStruct
_080EA99C: .4byte gUnknown_203B0DC
_080EA9A0: .4byte gUnknown_3004FE0
_080EA9A4: .4byte sub_80E79B8
-_080EA9A8: .4byte gUnknown_2024004
+_080EA9A8: .4byte gBattlerInMenuId
thumb_func_end sub_80EA8D4
thumb_func_start sub_80EA9AC
@@ -7066,13 +7066,13 @@ sub_80EAF34: @ 80EAF34
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _080EB094 @ =gUnknown_20244DC
+ ldr r0, _080EB094 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
@@ -7184,7 +7184,7 @@ _080EB084: .4byte gUnknown_2022BC4
_080EB088: .4byte gPlayerParty
_080EB08C: .4byte sub_8033E3C
_080EB090: .4byte gUnknown_3004FFC
-_080EB094: .4byte gUnknown_20244DC
+_080EB094: .4byte gMultiuseSpriteTemplate
_080EB098: .4byte gUnknown_2023D44
_080EB09C: .4byte gSprites
_080EB0A0: .4byte gUnknown_2024024
@@ -7262,7 +7262,7 @@ sub_80EB11C: @ 80EB11C
cmp r0, 0
beq _080EB14C
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080EB14C
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index 5a7b6d684..4d16e6425 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -2567,12 +2567,12 @@ _08036F9C:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -2613,12 +2613,12 @@ _08037002:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2634,15 +2634,15 @@ _08037002:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -2651,7 +2651,7 @@ _08037002:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -2660,7 +2660,7 @@ _08037002:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -2669,7 +2669,7 @@ _08037002:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -2678,7 +2678,7 @@ _08037002:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -2687,7 +2687,7 @@ _08037002:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -2696,47 +2696,47 @@ _08037002:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037130: .4byte gEnemyParty
@@ -2749,7 +2749,7 @@ _08037134:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803714C: .4byte gEnemyParty
@@ -2762,7 +2762,7 @@ _08037150:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037168: .4byte gEnemyParty
@@ -2784,12 +2784,12 @@ _08037184:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -2803,7 +2803,7 @@ _08037184:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080371BC: .4byte gEnemyParty
@@ -2835,7 +2835,7 @@ _080371E0:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2843,7 +2843,7 @@ _080371E0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2851,7 +2851,7 @@ _080371E0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2859,7 +2859,7 @@ _080371E0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -2867,7 +2867,7 @@ _080371E0:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037244: .4byte gEnemyParty
@@ -2886,7 +2886,7 @@ _08037248:
_0803725E:
adds r3, 0x3
adds r2, r3
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037268: .4byte gEnemyParty
@@ -2900,7 +2900,7 @@ _08037270:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037288: .4byte gEnemyParty
@@ -2913,7 +2913,7 @@ _0803728C:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080372A4: .4byte gEnemyParty
@@ -2926,7 +2926,7 @@ _080372A8:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080372C0: .4byte gEnemyParty
@@ -2939,7 +2939,7 @@ _080372C4:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080372DC: .4byte gEnemyParty
@@ -2952,7 +2952,7 @@ _080372E0:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080372F8: .4byte gEnemyParty
@@ -2965,7 +2965,7 @@ _080372FC:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037314: .4byte gEnemyParty
@@ -2978,7 +2978,7 @@ _08037318:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037330: .4byte gEnemyParty
@@ -2991,7 +2991,7 @@ _08037334:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803734C: .4byte gEnemyParty
@@ -3004,7 +3004,7 @@ _08037350:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037368: .4byte gEnemyParty
@@ -3017,7 +3017,7 @@ _0803736C:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037384: .4byte gEnemyParty
@@ -3030,7 +3030,7 @@ _08037388:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080373A0: .4byte gEnemyParty
@@ -3043,7 +3043,7 @@ _080373A4:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080373BC: .4byte gEnemyParty
@@ -3056,7 +3056,7 @@ _080373C0:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080373D8: .4byte gEnemyParty
@@ -3069,7 +3069,7 @@ _080373DC:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080373F4: .4byte gEnemyParty
@@ -3085,7 +3085,7 @@ _080373F8:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3093,7 +3093,7 @@ _080373F8:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3101,7 +3101,7 @@ _080373F8:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3109,7 +3109,7 @@ _080373F8:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3117,7 +3117,7 @@ _080373F8:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -3136,7 +3136,7 @@ _0803746C:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037484: .4byte gEnemyParty
@@ -3149,7 +3149,7 @@ _08037488:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080374A0: .4byte gEnemyParty
@@ -3162,7 +3162,7 @@ _080374A4:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080374BC: .4byte gEnemyParty
@@ -3175,7 +3175,7 @@ _080374C0:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080374D8: .4byte gEnemyParty
@@ -3188,7 +3188,7 @@ _080374DC:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080374F4: .4byte gEnemyParty
@@ -3202,7 +3202,7 @@ _080374F8:
adds r2, r3
_08037506:
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037510: .4byte gEnemyParty
@@ -3215,7 +3215,7 @@ _08037514:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803752C: .4byte gEnemyParty
@@ -3228,7 +3228,7 @@ _08037530:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037548: .4byte gEnemyParty
@@ -3241,7 +3241,7 @@ _0803754C:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037564: .4byte gEnemyParty
@@ -3254,7 +3254,7 @@ _08037568:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037580: .4byte gEnemyParty
@@ -3267,7 +3267,7 @@ _08037584:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803759C: .4byte gEnemyParty
@@ -3280,7 +3280,7 @@ _080375A0:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080375B8: .4byte gEnemyParty
@@ -3293,7 +3293,7 @@ _080375BC:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080375D4: .4byte gEnemyParty
@@ -3306,7 +3306,7 @@ _080375D8:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080375F0: .4byte gEnemyParty
@@ -3319,7 +3319,7 @@ _080375F4:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803760C: .4byte gEnemyParty
@@ -3332,7 +3332,7 @@ _08037610:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037628: .4byte gEnemyParty
@@ -3345,7 +3345,7 @@ _0803762C:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037644: .4byte gEnemyParty
@@ -3358,7 +3358,7 @@ _08037648:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037660: .4byte gEnemyParty
@@ -3371,7 +3371,7 @@ _08037664:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803767C: .4byte gEnemyParty
@@ -3384,7 +3384,7 @@ _08037680:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037698: .4byte gEnemyParty
@@ -3397,7 +3397,7 @@ _0803769C:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080376B4: .4byte gEnemyParty
@@ -3410,7 +3410,7 @@ _080376B8:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080376D0: .4byte gEnemyParty
@@ -3423,7 +3423,7 @@ _080376D4:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_080376EC: .4byte gEnemyParty
@@ -3436,7 +3436,7 @@ _080376F0:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037708: .4byte gEnemyParty
@@ -3449,7 +3449,7 @@ _0803770C:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037724: .4byte gEnemyParty
@@ -3462,7 +3462,7 @@ _08037728:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_08037740: .4byte gEnemyParty
@@ -3475,7 +3475,7 @@ _08037744:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _08037774
.align 2, 0
_0803775C: .4byte gEnemyParty
@@ -3488,7 +3488,7 @@ _08037760:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_08037774:
add sp, 0x38
pop {r3-r5}
@@ -3644,13 +3644,13 @@ _08037890:
_080378AA:
ldr r7, _0803799C @ =gActiveBattler
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r6, _080379A0 @ =gUnknown_20244DC
+ ldr r6, _080379A0 @ =gMultiuseSpriteTemplate
ldrb r0, [r7]
movs r1, 0x2
bl sub_8074480
@@ -3758,7 +3758,7 @@ _08037986:
bx r0
.align 2, 0
_0803799C: .4byte gActiveBattler
-_080379A0: .4byte gUnknown_20244DC
+_080379A0: .4byte gMultiuseSpriteTemplate
_080379A4: .4byte gUnknown_2023D44
_080379A8: .4byte gSprites
_080379AC: .4byte 0x0000ff10
@@ -3867,13 +3867,13 @@ sub_8037A28: @ 8037A28
adds r1, r6, 0
bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _08037B98 @ =gUnknown_20244DC
+ ldr r0, _08037B98 @ =gMultiuseSpriteTemplate
mov r9, r0
adds r0, r6, 0
movs r1, 0x2
@@ -3984,7 +3984,7 @@ _08037B88: .4byte gUnknown_2022BC4
_08037B8C: .4byte gEnemyParty
_08037B90: .4byte sub_8033E3C
_08037B94: .4byte gUnknown_3004FFC
-_08037B98: .4byte gUnknown_20244DC
+_08037B98: .4byte gMultiuseSpriteTemplate
_08037B9C: .4byte gUnknown_2023D44
_08037BA0: .4byte gSprites
_08037BA4: .4byte gUnknown_2024024
@@ -4198,13 +4198,13 @@ _08037D3A:
bl sub_80346C4
mov r1, r8
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803F864
- ldr r5, _08037E74 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r5, _08037E74 @ =gMultiuseSpriteTemplate
ldr r1, _08037E78 @ =gUnknown_823932C
mov r2, r9
lsls r0, r2, 2
@@ -4339,7 +4339,7 @@ _08037D3A:
.align 2, 0
_08037E6C: .4byte gTrainers
_08037E70: .4byte gActiveBattler
-_08037E74: .4byte gUnknown_20244DC
+_08037E74: .4byte gMultiuseSpriteTemplate
_08037E78: .4byte gUnknown_823932C
_08037E7C: .4byte gUnknown_2023D44
_08037E80: .4byte gSprites
@@ -4417,13 +4417,13 @@ _08037F0E:
bl sub_80346C4
mov r1, r8
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803F864
- ldr r0, _08038048 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _08038048 @ =gMultiuseSpriteTemplate
ldr r2, _0803804C @ =gUnknown_823932C
mov r3, r9
lsls r1, r3, 2
@@ -4559,7 +4559,7 @@ _08037F0E:
.align 2, 0
_08038040: .4byte gTrainers
_08038044: .4byte gActiveBattler
-_08038048: .4byte gUnknown_20244DC
+_08038048: .4byte gMultiuseSpriteTemplate
_0803804C: .4byte gUnknown_823932C
_08038050: .4byte gUnknown_2023D44
_08038054: .4byte gSprites
@@ -5292,7 +5292,7 @@ _0803861C:
cmp r0, 0
beq _08038656
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r5, _08038674 @ =gBattlerTarget
strb r0, [r5]
ldr r0, _08038678 @ =gAbsentBattlerFlags
@@ -5306,7 +5306,7 @@ _0803861C:
cmp r1, 0
beq _08038656
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
_08038656:
ldr r0, _08038674 @ =gBattlerTarget
@@ -5371,7 +5371,7 @@ _080386C4:
lsls r1, 24
lsrs r1, 24
adds r0, r1, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
@@ -5384,7 +5384,7 @@ _080386C4:
_080386F4: .4byte gBattleTypeFlags
_080386F8:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
@@ -5427,7 +5427,7 @@ sub_8038744: @ 8038744
push {r4-r6,lr}
ldr r6, _08038788 @ =gActiveBattler
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r5, _0803878C @ =gBattleStruct
@@ -5449,7 +5449,7 @@ sub_8038744: @ 8038744
cmp r0, 0
bne _08038794
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
@@ -5460,11 +5460,11 @@ _0803878C: .4byte gBattleStruct
_08038790: .4byte gBattleTypeFlags
_08038794:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
_080387A8:
@@ -5500,7 +5500,7 @@ _080387DC: .4byte gEnemyParty
_080387E0: .4byte gBattlerPartyIndexes
_080387E4:
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, [r5]
@@ -5508,7 +5508,7 @@ _080387E4:
adds r0, 0x92
ldrb r4, [r0]
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
ldr r1, [r5]
@@ -5990,7 +5990,7 @@ OpponentHandleEffectivenessSound: @ 8038B9C
push {r4,lr}
ldr r4, _08038BD8 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
@@ -6372,7 +6372,7 @@ sub_8038EA8: @ 8038EA8
cmp r0, 0
beq _08038ED8
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08038ED8
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 6c6587e9c..c4f0635c6 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -348,13 +348,13 @@ _0802E5A8:
cmp r0, 0
beq _0802E634
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0802E634
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802E620 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _0802E624 @ =gBitTable
@@ -451,7 +451,7 @@ sub_802E674: @ 802E674
movs r3, 0x1
bl dp11b_obj_instanciate
movs r4, 0
- ldr r0, _0802E710 @ =gUnknown_2023BCC
+ ldr r0, _0802E710 @ =gBattlersCount
ldrb r0, [r0]
cmp r0, 0
beq _0802E6B6
@@ -466,7 +466,7 @@ _0802E69A:
bl dp11b_obj_free
_0802E6AC:
adds r4, 0x1
- ldr r0, _0802E710 @ =gUnknown_2023BCC
+ ldr r0, _0802E710 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _0802E69A
@@ -511,7 +511,7 @@ _0802E6B6:
.align 2, 0
_0802E708: .4byte gUnknown_8250980
_0802E70C: .4byte gUnknown_3004FF4
-_0802E710: .4byte gUnknown_2023BCC
+_0802E710: .4byte gBattlersCount
_0802E714: .4byte gMain
_0802E718: .4byte gSprites
_0802E71C: .4byte gUnknown_2023D44
@@ -592,7 +592,7 @@ _0802E7AA:
adds r5, r3, 0
_0802E7CC:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
@@ -622,9 +622,9 @@ _0802E804:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
- ldr r1, _0802E838 @ =gUnknown_2023BCC
+ ldr r1, _0802E838 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -632,7 +632,7 @@ _0802E804:
beq _0802E7FC
movs r4, 0
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -643,7 +643,7 @@ _0802E804:
beq _0802E846
b _0802E884
.align 2, 0
-_0802E838: .4byte gUnknown_2023BCC
+_0802E838: .4byte gBattlersCount
_0802E83C:
cmp r0, 0x2
beq _0802E846
@@ -733,7 +733,7 @@ _0802E8CE:
adds r5, r3, 0
_0802E8F0:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
@@ -763,9 +763,9 @@ _0802E928:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r5]
- ldr r1, _0802E95C @ =gUnknown_2023BCC
+ ldr r1, _0802E95C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -773,7 +773,7 @@ _0802E928:
beq _0802E920
movs r4, 0
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -784,7 +784,7 @@ _0802E928:
beq _0802E96A
b _0802E9A8
.align 2, 0
-_0802E95C: .4byte gUnknown_2023BCC
+_0802E95C: .4byte gBattlersCount
_0802E960:
cmp r0, 0x2
beq _0802E96A
@@ -948,13 +948,13 @@ _0802EAA4: .4byte gActiveBattler
_0802EAA8:
ldr r0, _0802EAEC @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r2, 0x1
movs r0, 0x1
ands r0, r1
eors r0, r2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802EAF0 @ =gUnknown_3004FF4
strb r0, [r1]
_0802EAC2:
@@ -1005,7 +1005,7 @@ _0802EB04:
cmp r0, 0
bne _0802EB3A
movs r0, 0
- bl sub_803F5B4
+ bl CountAliveMons
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1071,7 +1071,7 @@ _0802EBAC: .4byte sub_802E674
_0802EBB0: .4byte gUnknown_3004FF4
_0802EBB4:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802EBD4 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _0802EBD8 @ =gBitTable
@@ -1090,7 +1090,7 @@ _0802EBD8: .4byte gBitTable
_0802EBDC:
movs r0, 0x1
_0802EBDE:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802EC00 @ =gUnknown_3004FF4
_0802EBE4:
strb r0, [r1]
@@ -1925,7 +1925,7 @@ _0802F26A:
adds r1, r6, 0
adds r1, 0xD
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
@@ -1938,7 +1938,7 @@ _0802F26A:
adds r1, r6, 0
adds r1, 0x11
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r5, 0x1
adds r4, 0x2
adds r6, 0x1
@@ -1956,7 +1956,7 @@ _0802F26A:
adds r0, r1
movs r1, 0x15
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
_0802F2C8:
ldr r0, _0802F30C @ =gBattleTypeFlags
ldr r0, [r0]
@@ -3433,7 +3433,7 @@ _0802FEF2:
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
- ldr r3, _0802FFB8 @ =gUnknown_8253AE4
+ ldr r3, _0802FFB8 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _0802FFBC @ =gBaseStats
@@ -3458,7 +3458,7 @@ _0802FEF2:
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -3502,7 +3502,7 @@ _0802FFA6:
_0802FFAC: .4byte gTasks
_0802FFB0: .4byte gBattlerPartyIndexes
_0802FFB4: .4byte gPlayerParty
-_0802FFB8: .4byte gUnknown_8253AE4
+_0802FFB8: .4byte gExperienceTables
_0802FFBC: .4byte gBaseStats
_0802FFC0: .4byte gActiveBattler
_0802FFC4: .4byte sub_8030238
@@ -3523,7 +3523,7 @@ _0802FFE0:
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _08030000 @ =gUnknown_3004FE0
ldr r3, [sp, 0x8]
lsls r0, r3, 2
@@ -3602,7 +3602,7 @@ sub_8030024: @ 8030024
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
- ldr r6, _080300E4 @ =gUnknown_8253AE4
+ ldr r6, _080300E4 @ =gExperienceTables
lsls r1, r4, 2
ldr r2, _080300E8 @ =gBaseStats
lsls r0, r5, 3
@@ -3647,7 +3647,7 @@ sub_8030024: @ 8030024
.align 2, 0
_080300DC: .4byte gTasks
_080300E0: .4byte gPlayerParty
-_080300E4: .4byte gUnknown_8253AE4
+_080300E4: .4byte gExperienceTables
_080300E8: .4byte gBaseStats
_080300EC: .4byte gUnknown_3004FF0
_080300F0: .4byte sub_80300F4
@@ -3725,7 +3725,7 @@ _08030124:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- ldr r3, _080301F4 @ =gUnknown_8253AE4
+ ldr r3, _080301F4 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _080301F8 @ =gBaseStats
@@ -3751,7 +3751,7 @@ _08030124:
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -3774,7 +3774,7 @@ _08030124:
.align 2, 0
_080301EC: .4byte gUnknown_3004FF0
_080301F0: .4byte gPlayerParty
-_080301F4: .4byte gUnknown_8253AE4
+_080301F4: .4byte gExperienceTables
_080301F8: .4byte gBaseStats
_080301FC: .4byte gActiveBattler
_08030200: .4byte sub_8030238
@@ -3783,7 +3783,7 @@ _08030204:
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _08030230 @ =gUnknown_3004FE0
lsls r0, r7, 2
adds r0, r1
@@ -6192,12 +6192,12 @@ _080315C4:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -6238,12 +6238,12 @@ _0803162A:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -6259,15 +6259,15 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -6276,7 +6276,7 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -6285,7 +6285,7 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -6294,7 +6294,7 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -6303,7 +6303,7 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -6312,7 +6312,7 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -6321,47 +6321,47 @@ _0803162A:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031758: .4byte gPlayerParty
@@ -6375,7 +6375,7 @@ _0803175C:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031774: .4byte gPlayerParty
@@ -6390,7 +6390,7 @@ _0803177C:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031794: .4byte gPlayerParty
@@ -6414,12 +6414,12 @@ _080317B6:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -6433,7 +6433,7 @@ _080317B6:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080317F0: .4byte gPlayerParty
@@ -6467,35 +6467,35 @@ _0803181C:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031878: .4byte gPlayerParty
@@ -6516,7 +6516,7 @@ _08031880:
_08031898:
adds r3, 0x3
adds r2, r3
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080318A4: .4byte gPlayerParty
@@ -6532,7 +6532,7 @@ _080318B0:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080318C8: .4byte gPlayerParty
@@ -6547,7 +6547,7 @@ _080318D0:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080318E8: .4byte gPlayerParty
@@ -6562,7 +6562,7 @@ _080318F0:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031908: .4byte gPlayerParty
@@ -6577,7 +6577,7 @@ _08031910:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031928: .4byte gPlayerParty
@@ -6592,7 +6592,7 @@ _08031930:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031948: .4byte gPlayerParty
@@ -6607,7 +6607,7 @@ _08031950:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031968: .4byte gPlayerParty
@@ -6622,7 +6622,7 @@ _08031970:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031988: .4byte gPlayerParty
@@ -6637,7 +6637,7 @@ _08031990:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080319A8: .4byte gPlayerParty
@@ -6652,7 +6652,7 @@ _080319B0:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080319C8: .4byte gPlayerParty
@@ -6667,7 +6667,7 @@ _080319D0:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_080319E8: .4byte gPlayerParty
@@ -6682,7 +6682,7 @@ _080319F0:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031A08: .4byte gPlayerParty
@@ -6697,7 +6697,7 @@ _08031A10:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031A28: .4byte gPlayerParty
@@ -6712,7 +6712,7 @@ _08031A30:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031A48: .4byte gPlayerParty
@@ -6727,7 +6727,7 @@ _08031A50:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031A68: .4byte gPlayerParty
@@ -6744,35 +6744,35 @@ _08031A70:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -6792,7 +6792,7 @@ _08031AE0:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031AF8: .4byte gPlayerParty
@@ -6807,7 +6807,7 @@ _08031B00:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031B18: .4byte gPlayerParty
@@ -6822,7 +6822,7 @@ _08031B20:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031B38: .4byte gPlayerParty
@@ -6837,7 +6837,7 @@ _08031B40:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031B58: .4byte gPlayerParty
@@ -6852,7 +6852,7 @@ _08031B60:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031B78: .4byte gPlayerParty
@@ -6868,7 +6868,7 @@ _08031B80:
adds r2, r7
_08031B90:
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031B98: .4byte gPlayerParty
@@ -6883,7 +6883,7 @@ _08031BA0:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031BB8: .4byte gPlayerParty
@@ -6898,7 +6898,7 @@ _08031BC0:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031BD8: .4byte gPlayerParty
@@ -6913,7 +6913,7 @@ _08031BE0:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031BF8: .4byte gPlayerParty
@@ -6928,7 +6928,7 @@ _08031C00:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031C18: .4byte gPlayerParty
@@ -6943,7 +6943,7 @@ _08031C20:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031C38: .4byte gPlayerParty
@@ -6958,7 +6958,7 @@ _08031C40:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031C58: .4byte gPlayerParty
@@ -6973,7 +6973,7 @@ _08031C60:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031C78: .4byte gPlayerParty
@@ -6988,7 +6988,7 @@ _08031C80:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031C98: .4byte gPlayerParty
@@ -7003,7 +7003,7 @@ _08031CA0:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031CB8: .4byte gPlayerParty
@@ -7018,7 +7018,7 @@ _08031CC0:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031CD8: .4byte gPlayerParty
@@ -7033,7 +7033,7 @@ _08031CE0:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031CF8: .4byte gPlayerParty
@@ -7048,7 +7048,7 @@ _08031D00:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031D18: .4byte gPlayerParty
@@ -7063,7 +7063,7 @@ _08031D20:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031D38: .4byte gPlayerParty
@@ -7078,7 +7078,7 @@ _08031D40:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031D58: .4byte gPlayerParty
@@ -7093,7 +7093,7 @@ _08031D60:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031D78: .4byte gPlayerParty
@@ -7108,7 +7108,7 @@ _08031D80:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031D98: .4byte gPlayerParty
@@ -7123,7 +7123,7 @@ _08031DA0:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031DB8: .4byte gPlayerParty
@@ -7138,7 +7138,7 @@ _08031DC0:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031DD8: .4byte gPlayerParty
@@ -7153,7 +7153,7 @@ _08031DE0:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031DF8: .4byte gPlayerParty
@@ -7168,7 +7168,7 @@ _08031E00:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031E18: .4byte gPlayerParty
@@ -7183,7 +7183,7 @@ _08031E20:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _08031E56
.align 2, 0
_08031E38: .4byte gPlayerParty
@@ -7198,7 +7198,7 @@ _08031E40:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_08031E56:
ldr r2, _08031E88 @ =gBattlerPartyIndexes
ldr r0, _08031E84 @ =gActiveBattler
@@ -7437,13 +7437,13 @@ sub_8031FF4: @ 8031FF4
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _0803214C @ =gUnknown_20244DC
+ ldr r0, _0803214C @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
@@ -7554,7 +7554,7 @@ _0803213C: .4byte gUnknown_2022BC4
_08032140: .4byte gPlayerParty
_08032144: .4byte sub_8033E3C
_08032148: .4byte gUnknown_3004FFC
-_0803214C: .4byte gUnknown_20244DC
+_0803214C: .4byte gMultiuseSpriteTemplate
_08032150: .4byte gUnknown_2023D44
_08032154: .4byte gSprites
_08032158: .4byte gUnknown_2024024
@@ -7715,7 +7715,7 @@ sub_803227C: @ 803227C
beq _080322AC
ldr r0, _080322A8 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
ands r1, r0
movs r7, 0x20
@@ -7805,13 +7805,13 @@ _08032342:
adds r0, r4, 0
bl sub_8034750
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F864
- ldr r6, _08032408 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r6, _08032408 @ =gMultiuseSpriteTemplate
mov r8, r7
ldr r0, _0803240C @ =gUnknown_8239F8C
lsls r4, 2
@@ -7893,7 +7893,7 @@ _08032342:
.align 2, 0
_08032400: .4byte gSaveBlock2Ptr
_08032404: .4byte gActiveBattler
-_08032408: .4byte gUnknown_20244DC
+_08032408: .4byte gMultiuseSpriteTemplate
_0803240C: .4byte gUnknown_8239F8C
_08032410: .4byte gUnknown_2023D44
_08032414: .4byte gSprites
@@ -7982,13 +7982,13 @@ _080324BE:
adds r0, r4, 0
bl sub_8034750
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F864
- ldr r0, _08032570 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _08032570 @ =gMultiuseSpriteTemplate
ldr r1, _08032574 @ =gUnknown_8239F8C
lsls r4, 2
adds r4, r1
@@ -8061,7 +8061,7 @@ _080324BE:
.align 2, 0
_08032568: .4byte gSaveBlock2Ptr
_0803256C: .4byte gActiveBattler
-_08032570: .4byte gUnknown_20244DC
+_08032570: .4byte gMultiuseSpriteTemplate
_08032574: .4byte gUnknown_8239F8C
_08032578: .4byte gUnknown_2023D44
_0803257C: .4byte gSprites
@@ -8307,7 +8307,7 @@ sub_803275C: @ 803275C
ldr r5, _080327A4 @ =gActiveBattler
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -8351,7 +8351,7 @@ PlayerHandleBallThrowAnim: @ 80327B0
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -8801,7 +8801,7 @@ sub_8032B70: @ 8032B70
push {lr}
ldr r0, _08032B88 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08032B8C
@@ -8997,7 +8997,7 @@ sub_8032CEC: @ 8032CEC
adds r0, r1
ldr r1, _08032D40 @ =sub_8030700
str r1, [r0]
- ldr r1, _08032D44 @ =gUnknown_2024004
+ ldr r1, _08032D44 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
movs r3, 0
@@ -9023,7 +9023,7 @@ _08032D1A:
_08032D38: .4byte gUnknown_3004FE0
_08032D3C: .4byte gActiveBattler
_08032D40: .4byte sub_8030700
-_08032D44: .4byte gUnknown_2024004
+_08032D44: .4byte gBattlerInMenuId
_08032D48: .4byte gUnknown_203B0DC
_08032D4C: .4byte gUnknown_2022BC4
thumb_func_end sub_8032CEC
@@ -9109,7 +9109,7 @@ _08032DBC:
adds r0, r1
ldr r1, _08032E20 @ =sub_8030628
str r1, [r0]
- ldr r1, _08032E24 @ =gUnknown_2024004
+ ldr r1, _08032E24 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
add sp, 0x4
@@ -9126,7 +9126,7 @@ _08032E14: .4byte gBattleStruct
_08032E18: .4byte gUnknown_203B0DC
_08032E1C: .4byte gUnknown_3004FE0
_08032E20: .4byte sub_8030628
-_08032E24: .4byte gUnknown_2024004
+_08032E24: .4byte gBattlerInMenuId
thumb_func_end sub_8032D50
thumb_func_start sub_8032E28
@@ -9479,7 +9479,7 @@ PlayerHandleStatusXor: @ 80330C8
adds r0, r5
movs r1, 0x37
mov r2, sp
- bl sub_804037C
+ bl SetMonData
bl PlayerBufferExecCompleted
add sp, 0x4
pop {r3}
@@ -9818,7 +9818,7 @@ PlayerHandlePlaySE: @ 8033390
push {r4,lr}
ldr r4, _080333CC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
@@ -10290,7 +10290,7 @@ PlayerHandleDrawPartyStatusSummary: @ 803376C
cmp r0, 0
beq _0803379C
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0803379C
@@ -10846,10 +10846,10 @@ _08033C4C:
b _08033D92
_08033C54:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08033C7C @ =gBitTable
lsls r4, 24
lsrs r4, 22
@@ -10927,10 +10927,10 @@ _08033CE4:
b _08033D90
_08033CEA:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08033D10 @ =gBitTable
lsls r4, 24
lsrs r4, 22
@@ -10947,12 +10947,12 @@ _08033CEA:
_08033D10: .4byte gBitTable
_08033D14:
ldrb r0, [r3]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08033D34 @ =gBitTable
lsls r0, 24
lsrs r0, 22
@@ -10974,19 +10974,19 @@ _08033D42:
_08033D48: .4byte gBitTable
_08033D4C:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r5, r0, 0
ldr r0, _08033DAC @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r3, _08033DB0 @ =gBitTable
lsls r5, 24
lsrs r5, 22
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index fcfa5d275..59692c9f4 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -1080,7 +1080,7 @@ _08156922:
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
- ldr r3, _081569E8 @ =gUnknown_8253AE4
+ ldr r3, _081569E8 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _081569EC @ =gBaseStats
@@ -1105,7 +1105,7 @@ _08156922:
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -1149,7 +1149,7 @@ _081569D6:
_081569DC: .4byte gTasks
_081569E0: .4byte gBattlerPartyIndexes
_081569E4: .4byte gPlayerParty
-_081569E8: .4byte gUnknown_8253AE4
+_081569E8: .4byte gExperienceTables
_081569EC: .4byte gBaseStats
_081569F0: .4byte gActiveBattler
_081569F4: .4byte sub_8156C68
@@ -1170,7 +1170,7 @@ _08156A10:
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _08156A30 @ =gUnknown_3004FE0
ldr r3, [sp, 0x8]
lsls r0, r3, 2
@@ -1249,7 +1249,7 @@ sub_8156A54: @ 8156A54
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
- ldr r6, _08156B14 @ =gUnknown_8253AE4
+ ldr r6, _08156B14 @ =gExperienceTables
lsls r1, r4, 2
ldr r2, _08156B18 @ =gBaseStats
lsls r0, r5, 3
@@ -1294,7 +1294,7 @@ sub_8156A54: @ 8156A54
.align 2, 0
_08156B0C: .4byte gTasks
_08156B10: .4byte gPlayerParty
-_08156B14: .4byte gUnknown_8253AE4
+_08156B14: .4byte gExperienceTables
_08156B18: .4byte gBaseStats
_08156B1C: .4byte gUnknown_3004FF0
_08156B20: .4byte sub_8156B24
@@ -1372,7 +1372,7 @@ _08156B54:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- ldr r3, _08156C24 @ =gUnknown_8253AE4
+ ldr r3, _08156C24 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _08156C28 @ =gBaseStats
@@ -1398,7 +1398,7 @@ _08156B54:
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
ldr r2, [sp]
@@ -1421,7 +1421,7 @@ _08156B54:
.align 2, 0
_08156C1C: .4byte gUnknown_3004FF0
_08156C20: .4byte gPlayerParty
-_08156C24: .4byte gUnknown_8253AE4
+_08156C24: .4byte gExperienceTables
_08156C28: .4byte gBaseStats
_08156C2C: .4byte gActiveBattler
_08156C30: .4byte sub_8156C68
@@ -1430,7 +1430,7 @@ _08156C34:
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
ldr r1, _08156C60 @ =gUnknown_3004FE0
lsls r0, r7, 2
adds r0, r1
@@ -1630,7 +1630,7 @@ sub_8156DCC: @ 8156DCC
push {r4-r6,lr}
ldr r4, _08156E2C @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08156E3C
@@ -2124,7 +2124,7 @@ sub_81571A0: @ 81571A0
movs r4, 0
ldr r0, _081571CC @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081571D4
@@ -2865,7 +2865,7 @@ sub_81577B4: @ 81577B4
ldr r1, _081577E8 @ =gUnknown_2022BC7
adds r5, r2, r1
mov r8, r5
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081577F0
@@ -2973,12 +2973,12 @@ _0815791C:
adds r0, r6, 0
movs r1, 0xB
mov r2, r8
- bl sub_804037C
+ bl SetMonData
mov r2, r8
adds r2, 0x2E
adds r0, r6, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
movs r4, 0
movs r0, 0x3B
add r0, r8
@@ -3020,12 +3020,12 @@ _0815797A:
adds r1, 0xD
adds r0, r6, 0
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r1, r4, 0
adds r1, 0x11
adds r0, r6, 0
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
adds r5, 0x2
adds r4, 0x1
@@ -3034,15 +3034,15 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x15
mov r2, r9
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x20
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x19
ldr r2, [sp, 0x10]
- bl sub_804037C
+ bl SetMonData
mov r1, r8
ldrb r0, [r1, 0x14]
lsls r0, 27
@@ -3052,7 +3052,7 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x27
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
mov r2, r8
ldrh r0, [r2, 0x14]
@@ -3062,7 +3062,7 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x28
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
mov r2, r8
ldrb r0, [r2, 0x15]
@@ -3072,7 +3072,7 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x29
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
mov r2, r8
ldr r0, [r2, 0x14]
@@ -3082,7 +3082,7 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x2A
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
mov r2, r8
ldrh r0, [r2, 0x16]
@@ -3092,7 +3092,7 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x2B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, sp
mov r2, r8
ldrb r0, [r2, 0x17]
@@ -3102,47 +3102,47 @@ _0815797A:
adds r0, r6, 0
movs r1, 0x2C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x37
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x38
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x39
ldr r2, [sp, 0x4]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3A
ldr r2, [sp, 0xC]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3B
ldr r2, [sp, 0x1C]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3C
ldr r2, [sp, 0x20]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3D
ldr r2, [sp, 0x24]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3E
ldr r2, [sp, 0x28]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3F
ldr r2, [sp, 0x2C]
- bl sub_804037C
+ bl SetMonData
b _0815809A
_08157AA4:
ldr r0, _08157AB8 @ =gActiveBattler
@@ -3152,7 +3152,7 @@ _08157AA4:
adds r2, r0
adds r0, r6, 0
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157AB8: .4byte gActiveBattler
@@ -3165,7 +3165,7 @@ _08157AC0:
adds r2, r0
adds r0, r6, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157AD4: .4byte gActiveBattler
@@ -3182,12 +3182,12 @@ _08157AE8:
adds r1, 0xD
adds r0, r6, 0
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r1, r4, 0
adds r1, 0x11
adds r0, r6, 0
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
adds r5, 0x2
adds r4, 0x1
@@ -3196,7 +3196,7 @@ _08157AE8:
adds r0, r6, 0
movs r1, 0x15
mov r2, r8
- bl sub_804037C
+ bl SetMonData
b _0815809A
_08157B16:
ldr r0, _08157B28 @ =gActiveBattler
@@ -3217,35 +3217,35 @@ _08157B2C:
adds r2, r4
adds r0, r6, 0
movs r1, 0x11
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x1
adds r2, r0
adds r0, r6, 0
movs r1, 0x12
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x2
adds r2, r0
adds r0, r6, 0
movs r1, 0x13
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x3
adds r2, r0
adds r0, r6, 0
movs r1, 0x14
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r4, 0x4
adds r2, r4
adds r0, r6, 0
movs r1, 0x15
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157B80: .4byte gActiveBattler
@@ -3262,7 +3262,7 @@ _08157B96:
adds r0, r3, 0x3
adds r2, r0
adds r0, r6, 0
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157BA4: .4byte gActiveBattler
@@ -3274,7 +3274,7 @@ _08157BA8:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157BBC: .4byte gActiveBattler
@@ -3287,7 +3287,7 @@ _08157BC4:
adds r2, r0
adds r0, r6, 0
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157BD8: .4byte gActiveBattler
@@ -3300,7 +3300,7 @@ _08157BE0:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1A
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157BF4: .4byte gActiveBattler
@@ -3313,7 +3313,7 @@ _08157BFC:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1B
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C10: .4byte gActiveBattler
@@ -3326,7 +3326,7 @@ _08157C18:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1C
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C2C: .4byte gActiveBattler
@@ -3339,7 +3339,7 @@ _08157C34:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1D
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C48: .4byte gActiveBattler
@@ -3352,7 +3352,7 @@ _08157C50:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1E
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C64: .4byte gActiveBattler
@@ -3365,7 +3365,7 @@ _08157C6C:
adds r2, r0
adds r0, r6, 0
movs r1, 0x1F
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C80: .4byte gActiveBattler
@@ -3378,7 +3378,7 @@ _08157C88:
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157C9C: .4byte gActiveBattler
@@ -3391,7 +3391,7 @@ _08157CA4:
adds r2, r0
adds r0, r6, 0
movs r1, 0x22
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157CB8: .4byte gActiveBattler
@@ -3404,7 +3404,7 @@ _08157CC0:
adds r2, r0
adds r0, r6, 0
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157CD4: .4byte gActiveBattler
@@ -3417,7 +3417,7 @@ _08157CDC:
adds r2, r0
adds r0, r6, 0
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157CF0: .4byte gActiveBattler
@@ -3430,7 +3430,7 @@ _08157CF8:
adds r2, r0
adds r0, r6, 0
movs r1, 0x25
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157D0C: .4byte gActiveBattler
@@ -3443,7 +3443,7 @@ _08157D14:
adds r2, r0
adds r0, r6, 0
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157D28: .4byte gActiveBattler
@@ -3456,35 +3456,35 @@ _08157D30:
adds r2, r4
adds r0, r6, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x1
adds r2, r0
adds r0, r6, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x2
adds r2, r0
adds r0, r6, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r4, 0x4
adds r2, r0
adds r0, r6, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r4, 0x5
@@ -3501,7 +3501,7 @@ _08157D94:
adds r2, r0
adds r0, r6, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157DA8: .4byte gActiveBattler
@@ -3514,7 +3514,7 @@ _08157DB0:
adds r2, r0
adds r0, r6, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157DC4: .4byte gActiveBattler
@@ -3527,7 +3527,7 @@ _08157DCC:
adds r2, r0
adds r0, r6, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157DE0: .4byte gActiveBattler
@@ -3540,7 +3540,7 @@ _08157DE8:
adds r2, r0
adds r0, r6, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157DFC: .4byte gActiveBattler
@@ -3553,7 +3553,7 @@ _08157E04:
adds r2, r0
adds r0, r6, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157E18: .4byte gActiveBattler
@@ -3567,7 +3567,7 @@ _08157E20:
_08157E2A:
adds r0, r6, 0
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157E34: .4byte gActiveBattler
@@ -3580,7 +3580,7 @@ _08157E3C:
adds r2, r0
adds r0, r6, 0
movs r1, 0
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157E50: .4byte gActiveBattler
@@ -3593,7 +3593,7 @@ _08157E58:
adds r2, r0
adds r0, r6, 0
movs r1, 0x9
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157E6C: .4byte gActiveBattler
@@ -3606,7 +3606,7 @@ _08157E74:
adds r2, r0
adds r0, r6, 0
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157E88: .4byte gActiveBattler
@@ -3619,7 +3619,7 @@ _08157E90:
adds r2, r0
adds r0, r6, 0
movs r1, 0x38
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157EA4: .4byte gActiveBattler
@@ -3632,7 +3632,7 @@ _08157EAC:
adds r2, r0
adds r0, r6, 0
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157EC0: .4byte gActiveBattler
@@ -3645,7 +3645,7 @@ _08157EC8:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3A
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157EDC: .4byte gActiveBattler
@@ -3658,7 +3658,7 @@ _08157EE4:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3B
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157EF8: .4byte gActiveBattler
@@ -3671,7 +3671,7 @@ _08157F00:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3C
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157F14: .4byte gActiveBattler
@@ -3684,7 +3684,7 @@ _08157F1C:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3D
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157F30: .4byte gActiveBattler
@@ -3697,7 +3697,7 @@ _08157F38:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3E
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157F4C: .4byte gActiveBattler
@@ -3710,7 +3710,7 @@ _08157F54:
adds r2, r0
adds r0, r6, 0
movs r1, 0x3F
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157F68: .4byte gActiveBattler
@@ -3723,7 +3723,7 @@ _08157F70:
adds r2, r0
adds r0, r6, 0
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157F84: .4byte gActiveBattler
@@ -3736,7 +3736,7 @@ _08157F8C:
adds r2, r0
adds r0, r6, 0
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157FA0: .4byte gActiveBattler
@@ -3749,7 +3749,7 @@ _08157FA8:
adds r2, r0
adds r0, r6, 0
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157FBC: .4byte gActiveBattler
@@ -3762,7 +3762,7 @@ _08157FC4:
adds r2, r0
adds r0, r6, 0
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157FD8: .4byte gActiveBattler
@@ -3775,7 +3775,7 @@ _08157FE0:
adds r2, r0
adds r0, r6, 0
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08157FF4: .4byte gActiveBattler
@@ -3788,7 +3788,7 @@ _08157FFC:
adds r2, r0
adds r0, r6, 0
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08158010: .4byte gActiveBattler
@@ -3801,7 +3801,7 @@ _08158018:
adds r2, r0
adds r0, r6, 0
movs r1, 0x32
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_0815802C: .4byte gActiveBattler
@@ -3814,7 +3814,7 @@ _08158034:
adds r2, r0
adds r0, r6, 0
movs r1, 0x33
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08158048: .4byte gActiveBattler
@@ -3827,7 +3827,7 @@ _08158050:
adds r2, r0
adds r0, r6, 0
movs r1, 0x34
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08158064: .4byte gActiveBattler
@@ -3840,7 +3840,7 @@ _0815806C:
adds r2, r0
adds r0, r6, 0
movs r1, 0x35
- bl sub_804037C
+ bl SetMonData
b _0815809A
.align 2, 0
_08158080: .4byte gActiveBattler
@@ -3853,7 +3853,7 @@ _08158088:
adds r2, r0
adds r0, r6, 0
movs r1, 0x36
- bl sub_804037C
+ bl SetMonData
_0815809A:
ldr r2, _081580CC @ =gBattlerPartyIndexes
ldr r0, _081580C4 @ =gActiveBattler
@@ -3927,13 +3927,13 @@ sub_81580E0: @ 81580E0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _08158220 @ =gUnknown_20244DC
+ ldr r0, _08158220 @ =gMultiuseSpriteTemplate
mov r9, r0
ldrb r0, [r6]
movs r1, 0x2
@@ -4037,7 +4037,7 @@ sub_81580E0: @ 81580E0
_08158214: .4byte gActiveBattler
_08158218: .4byte gBattlerPartyIndexes
_0815821C: .4byte gEnemyParty
-_08158220: .4byte gUnknown_20244DC
+_08158220: .4byte gMultiuseSpriteTemplate
_08158224: .4byte gUnknown_2023D44
_08158228: .4byte gSprites
_0815822C: .4byte 0x0000ff10
@@ -4175,7 +4175,7 @@ sub_8158344: @ 8158344
push {r7}
ldr r7, _081583D8 @ =gActiveBattler
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081583F0
@@ -4183,13 +4183,13 @@ sub_8158344: @ 8158344
movs r0, 0x4
bl sub_8034750
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x4
- bl sub_803F864
- ldr r0, _081583DC @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _081583DC @ =gMultiuseSpriteTemplate
ldr r1, _081583E0 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x10]
movs r2, 0x8
@@ -4241,7 +4241,7 @@ sub_8158344: @ 8158344
b _081584E2
.align 2, 0
_081583D8: .4byte gActiveBattler
-_081583DC: .4byte gUnknown_20244DC
+_081583DC: .4byte gMultiuseSpriteTemplate
_081583E0: .4byte gUnknown_8239F8C
_081583E4: .4byte gUnknown_2023D44
_081583E8: .4byte gSprites
@@ -4251,13 +4251,13 @@ _081583F0:
movs r0, 0x84
bl sub_80346C4
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x84
- bl sub_803F864
- ldr r5, _08158510 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r5, _08158510 @ =gMultiuseSpriteTemplate
ldr r0, _08158514 @ =gUnknown_823932C
movs r1, 0x84
mov r8, r1
@@ -4385,7 +4385,7 @@ _081584E2:
pop {r0}
bx r0
.align 2, 0
-_08158510: .4byte gUnknown_20244DC
+_08158510: .4byte gMultiuseSpriteTemplate
_08158514: .4byte gUnknown_823932C
_08158518: .4byte gUnknown_2023D44
_0815851C: .4byte gSprites
@@ -4408,13 +4408,13 @@ sub_8158544: @ 8158544
movs r0, 0x4
bl sub_8034750
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x4
- bl sub_803F864
- ldr r0, _081585F0 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _081585F0 @ =gMultiuseSpriteTemplate
ldr r1, _081585F4 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x10]
movs r2, 0x8
@@ -4484,7 +4484,7 @@ sub_8158544: @ 8158544
bx r0
.align 2, 0
_081585EC: .4byte gActiveBattler
-_081585F0: .4byte gUnknown_20244DC
+_081585F0: .4byte gMultiuseSpriteTemplate
_081585F4: .4byte gUnknown_8239F8C
_081585F8: .4byte gUnknown_2023D44
_081585FC: .4byte gSprites
@@ -4554,7 +4554,7 @@ _08158670:
bne _0815872A
strb r0, [r3, 0x4]
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -4667,7 +4667,7 @@ sub_8158754: @ 8158754
ldr r5, _0815879C @ =gActiveBattler
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -4711,7 +4711,7 @@ sub_81587A8: @ 81587A8
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -5109,7 +5109,7 @@ sub_8158AFC: @ 8158AFC
push {lr}
ldr r0, _08158B14 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08158B18
@@ -5160,7 +5160,7 @@ sub_8158B60: @ 8158B60
push {r4,lr}
ldr r4, _08158BBC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08158BDC
@@ -5268,7 +5268,7 @@ sub_8158C48: @ 8158C48
push {r4,lr}
ldr r4, _08158C68 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08158C74
@@ -5317,7 +5317,7 @@ sub_8158C90: @ 8158C90
adds r0, r1
ldr r1, _08158CE4 @ =sub_8156594
str r1, [r0]
- ldr r1, _08158CE8 @ =gUnknown_2024004
+ ldr r1, _08158CE8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
movs r3, 0
@@ -5343,7 +5343,7 @@ _08158CBE:
_08158CDC: .4byte gUnknown_3004FE0
_08158CE0: .4byte gActiveBattler
_08158CE4: .4byte sub_8156594
-_08158CE8: .4byte gUnknown_2024004
+_08158CE8: .4byte gBattlerInMenuId
_08158CEC: .4byte gUnknown_203B0DC
_08158CF0: .4byte gUnknown_2022BC4
thumb_func_end sub_8158C90
@@ -5429,7 +5429,7 @@ _08158D60:
adds r0, r1
ldr r1, _08158DC4 @ =sub_81564F0
str r1, [r0]
- ldr r1, _08158DC8 @ =gUnknown_2024004
+ ldr r1, _08158DC8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
add sp, 0x4
@@ -5446,7 +5446,7 @@ _08158DB8: .4byte gBattleStruct
_08158DBC: .4byte gUnknown_203B0DC
_08158DC0: .4byte gUnknown_3004FE0
_08158DC4: .4byte sub_81564F0
-_08158DC8: .4byte gUnknown_2024004
+_08158DC8: .4byte gBattlerInMenuId
thumb_func_end sub_8158CF4
thumb_func_start sub_8158DCC
@@ -5463,7 +5463,7 @@ sub_8158DD8: @ 8158DD8
sub sp, 0x4
ldr r4, _08158DFC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08158E08
@@ -5653,7 +5653,7 @@ sub_8158F6C: @ 8158F6C
cmp r0, 0
bne _08158FF2
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08158FA8
@@ -5779,7 +5779,7 @@ sub_815907C: @ 815907C
sub sp, 0x4
ldr r4, _081590A0 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081590AC
@@ -5823,7 +5823,7 @@ _081590BC:
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
- bl sub_804037C
+ bl SetMonData
bl PlayerPartnerBufferExecCompleted
add sp, 0x4
pop {r4}
@@ -6048,7 +6048,7 @@ sub_815926C: @ 815926C
push {r4,lr}
ldr r4, _08159290 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815929C
@@ -6331,13 +6331,13 @@ sub_8159478: @ 8159478
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
- ldr r0, _081595D8 @ =gUnknown_20244DC
+ ldr r0, _081595D8 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
@@ -6449,7 +6449,7 @@ _081595C8: .4byte gUnknown_2022BC4
_081595CC: .4byte gPlayerParty
_081595D0: .4byte sub_8033E3C
_081595D4: .4byte gUnknown_3004FFC
-_081595D8: .4byte gUnknown_20244DC
+_081595D8: .4byte gMultiuseSpriteTemplate
_081595DC: .4byte gUnknown_2023D44
_081595E0: .4byte gSprites
_081595E4: .4byte gUnknown_2024024
@@ -6527,7 +6527,7 @@ sub_8159660: @ 8159660
cmp r0, 0
beq _08159690
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08159690
@@ -6757,7 +6757,7 @@ sub_8159824: @ 8159824
ldr r7, [r0]
ldr r4, _081598BC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815985C
@@ -6786,7 +6786,7 @@ _0815985C:
cmp r0, r1
bne _0815992C
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08159888
@@ -6956,7 +6956,7 @@ sub_8159998: @ 8159998
cmp r0, r4
bne _08159A48
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081599DE
@@ -7402,7 +7402,7 @@ _08159D62:
adds r5, 0x95
adds r4, 0x94
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -7566,7 +7566,7 @@ _08159EA4:
bl PlayBGM
_08159EC8:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_80EF0E0
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index a4e877dcb..44bdd5572 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -623,13 +623,13 @@ SafariHandleDrawTrainerPic: @ 80DD9C4
ldr r0, [r4]
ldrb r6, [r0, 0x8]
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
- bl sub_803F864
- ldr r0, _080DDA84 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r0, _080DDA84 @ =gMultiuseSpriteTemplate
ldr r2, _080DDA88 @ =gUnknown_8239F8C
ldr r1, [r4]
ldrb r1, [r1, 0x8]
@@ -704,7 +704,7 @@ SafariHandleDrawTrainerPic: @ 80DD9C4
.align 2, 0
_080DDA7C: .4byte gSaveBlock2Ptr
_080DDA80: .4byte gActiveBattler
-_080DDA84: .4byte gUnknown_20244DC
+_080DDA84: .4byte gMultiuseSpriteTemplate
_080DDA88: .4byte gUnknown_8239F8C
_080DDA8C: .4byte gUnknown_2023D44
_080DDA90: .4byte gSprites
@@ -760,7 +760,7 @@ sub_80DDAD4: @ 80DDAD4
ldr r5, _080DDB1C @ =gActiveBattler
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -804,7 +804,7 @@ sub_80DDB28: @ 80DDB28
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -903,7 +903,7 @@ sub_80DDC14: @ 80DDC14
push {lr}
ldr r0, _080DDC2C @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080DDC30
@@ -1033,7 +1033,7 @@ sub_80DDD04: @ 80DDD04
adds r0, r1
ldr r1, _080DDD3C @ =sub_80DD82C
str r1, [r0]
- ldr r1, _080DDD40 @ =gUnknown_2024004
+ ldr r1, _080DDD40 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
add sp, 0x4
@@ -1043,7 +1043,7 @@ sub_80DDD04: @ 80DDD04
_080DDD34: .4byte gUnknown_3004FE0
_080DDD38: .4byte gActiveBattler
_080DDD3C: .4byte sub_80DD82C
-_080DDD40: .4byte gUnknown_2024004
+_080DDD40: .4byte gBattlerInMenuId
thumb_func_end sub_80DDD04
thumb_func_start sub_80DDD44
@@ -1239,7 +1239,7 @@ SafariHandlePlaySE: @ 80DDE70
push {r4,lr}
ldr r4, _080DDEAC @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s
index feb5fb81c..1795e4b8f 100644
--- a/asm/battle_controllers.s
+++ b/asm/battle_controllers.s
@@ -129,7 +129,7 @@ _0800D328:
cmp r0, 0
bne _0800D356
movs r4, 0
- ldr r0, _0800D360 @ =gUnknown_2023BCC
+ ldr r0, _0800D360 @ =gBattlersCount
ldrb r1, [r0]
cmp r4, r1
bge _0800D356
@@ -149,7 +149,7 @@ _0800D356:
bx r0
.align 2, 0
_0800D35C: .4byte gBattleTypeFlags
-_0800D360: .4byte gUnknown_2023BCC
+_0800D360: .4byte gBattlersCount
thumb_func_end sub_800D30C
thumb_func_start sub_800D364
@@ -177,7 +177,7 @@ sub_800D364: @ 800D364
strb r3, [r0]
str r1, [r2, 0x4]
strb r4, [r0, 0x1]
- ldr r1, _0800D3B0 @ =gUnknown_2023BCC
+ ldr r1, _0800D3B0 @ =gBattlersCount
movs r0, 0x2
b _0800D478
.align 2, 0
@@ -187,7 +187,7 @@ _0800D3A0: .4byte sub_80123C0
_0800D3A4: .4byte gUnknown_3004FE0
_0800D3A8: .4byte sub_81560A4
_0800D3AC: .4byte gUnknown_2023BD6
-_0800D3B0: .4byte gUnknown_2023BCC
+_0800D3B0: .4byte gBattlersCount
_0800D3B4:
movs r0, 0x80
ands r0, r2
@@ -224,7 +224,7 @@ _0800D3E8:
str r0, [r2, 0x4]
movs r0, 0x1
strb r0, [r1, 0x1]
- ldr r1, _0800D410 @ =gUnknown_2023BCC
+ ldr r1, _0800D410 @ =gBattlersCount
movs r0, 0x2
b _0800D478
.align 2, 0
@@ -232,7 +232,7 @@ _0800D400: .4byte gUnknown_3004FE0
_0800D404: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D408: .4byte gUnknown_2023BD6
_0800D40C: .4byte sub_8035A7C
-_0800D410: .4byte gUnknown_2023BCC
+_0800D410: .4byte gBattlersCount
_0800D414:
ldr r1, _0800D444 @ =gUnknown_3004F84
ldr r0, _0800D448 @ =sub_80123C0
@@ -279,7 +279,7 @@ _0800D458:
movs r0, 0x3
strb r0, [r1, 0x3]
_0800D474:
- ldr r1, _0800D490 @ =gUnknown_2023BCC
+ ldr r1, _0800D490 @ =gBattlersCount
movs r0, 0x4
_0800D478:
strb r0, [r1]
@@ -291,7 +291,7 @@ _0800D480: .4byte gUnknown_3004FE0
_0800D484: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D488: .4byte gUnknown_2023BD6
_0800D48C: .4byte sub_8035A7C
-_0800D490: .4byte gUnknown_2023BCC
+_0800D490: .4byte gBattlersCount
thumb_func_end sub_800D364
thumb_func_start sub_800D494
@@ -323,7 +323,7 @@ sub_800D494: @ 800D494
ldr r0, _0800D4E8 @ =sub_803A668
str r0, [r2, 0x4]
strb r5, [r1, 0x1]
- ldr r1, _0800D4EC @ =gUnknown_2023BCC
+ ldr r1, _0800D4EC @ =gBattlersCount
movs r0, 0x2
b _0800D752
.align 2, 0
@@ -334,7 +334,7 @@ _0800D4DC: .4byte gUnknown_3004FE0
_0800D4E0: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D4E4: .4byte gUnknown_2023BD6
_0800D4E8: .4byte sub_803A668
-_0800D4EC: .4byte gUnknown_2023BCC
+_0800D4EC: .4byte gBattlersCount
_0800D4F0:
ldr r2, _0800D508 @ =gUnknown_3004FE0
ldr r0, _0800D50C @ =SetBankFuncToPlayerBufferRunCommand
@@ -344,7 +344,7 @@ _0800D4F0:
ldr r0, _0800D514 @ =sub_803A668
str r0, [r2]
strb r5, [r1]
- ldr r1, _0800D518 @ =gUnknown_2023BCC
+ ldr r1, _0800D518 @ =gBattlersCount
movs r0, 0x2
b _0800D752
.align 2, 0
@@ -352,7 +352,7 @@ _0800D508: .4byte gUnknown_3004FE0
_0800D50C: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D510: .4byte gUnknown_2023BD6
_0800D514: .4byte sub_803A668
-_0800D518: .4byte gUnknown_2023BCC
+_0800D518: .4byte gBattlersCount
_0800D51C:
movs r5, 0x41
ands r5, r0
@@ -405,7 +405,7 @@ _0800D56C:
movs r0, 0x3
strb r0, [r1, 0x2]
_0800D588:
- ldr r0, _0800D5A0 @ =gUnknown_2023BCC
+ ldr r0, _0800D5A0 @ =gBattlersCount
strb r6, [r0]
b _0800D754
.align 2, 0
@@ -413,7 +413,7 @@ _0800D590: .4byte gUnknown_3004FE0
_0800D594: .4byte SetBankFuncToPlayerBufferRunCommand
_0800D598: .4byte gUnknown_2023BD6
_0800D59C: .4byte sub_803A668
-_0800D5A0: .4byte gUnknown_2023BCC
+_0800D5A0: .4byte gBattlersCount
_0800D5A4:
bl GetMultiplayerId
lsls r0, 24
@@ -639,7 +639,7 @@ _0800D740:
bgt _0800D74E
b _0800D5D0
_0800D74E:
- ldr r1, _0800D764 @ =gUnknown_2023BCC
+ ldr r1, _0800D764 @ =gBattlersCount
movs r0, 0x4
_0800D752:
strb r0, [r1]
@@ -652,7 +652,7 @@ _0800D754:
pop {r0}
bx r0
.align 2, 0
-_0800D764: .4byte gUnknown_2023BCC
+_0800D764: .4byte gBattlersCount
thumb_func_end sub_800D494
thumb_func_start sub_800D768
@@ -801,7 +801,7 @@ _0800D888:
_0800D890:
mov r8, r10
_0800D892:
- ldr r0, _0800D8AC @ =gUnknown_2023BCC
+ ldr r0, _0800D8AC @ =gBattlersCount
ldrb r0, [r0]
cmp r8, r0
bge _0800D89C
@@ -815,7 +815,7 @@ _0800D89C:
pop {r0}
bx r0
.align 2, 0
-_0800D8AC: .4byte gUnknown_2023BCC
+_0800D8AC: .4byte gBattlersCount
thumb_func_end sub_800D768
thumb_func_start PrepareBufferDataTransfer
@@ -1709,8 +1709,8 @@ _0800DF9C: .4byte gBitTable
_0800DFA0: .4byte gTasks
thumb_func_end Task_HandleCopyReceivedLinkBuffersData
- thumb_func_start EmitGetMonData
-EmitGetMonData: @ 800DFA4
+ thumb_func_start BtlController_EmitGetMonData
+BtlController_EmitGetMonData: @ 800DFA4
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1728,7 +1728,7 @@ EmitGetMonData: @ 800DFA4
bx r0
.align 2, 0
_0800DFC4: .4byte gUnknown_2022874
- thumb_func_end EmitGetMonData
+ thumb_func_end BtlController_EmitGetMonData
thumb_func_start EmitGetRawMonData
EmitGetRawMonData: @ 800DFC8
@@ -2106,7 +2106,7 @@ EmitMoveAnimation: @ 800E1FC
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2116,7 +2116,7 @@ EmitMoveAnimation: @ 800E1FC
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0800E29C
@@ -2194,7 +2194,7 @@ EmitPrintString: @ 800E2D4
ldr r0, _0800E3C4 @ =gUnknown_2023D68
ldrh r0, [r0]
strh r0, [r1, 0x4]
- ldr r0, _0800E3C8 @ =gUnknown_2023D6A
+ ldr r0, _0800E3C8 @ =gLastUsedAbility
ldrb r0, [r0]
strb r0, [r1, 0x6]
ldr r0, _0800E3CC @ =gBattleScripting
@@ -2210,7 +2210,7 @@ EmitPrintString: @ 800E2D4
adds r0, 0xAD
ldrb r0, [r0]
strb r0, [r3, 0x9]
- ldr r0, _0800E3D4 @ =gUnknown_2023D6F
+ ldr r0, _0800E3D4 @ =gPotentialItemEffectBattler
ldrb r0, [r0]
strb r0, [r3, 0xA]
ldr r3, _0800E3D8 @ =gBattleMoves
@@ -2281,10 +2281,10 @@ _0800E3B8: .4byte gUnknown_2023E8A
_0800E3BC: .4byte gCurrentMove
_0800E3C0: .4byte gUnknown_2023D4C
_0800E3C4: .4byte gUnknown_2023D68
-_0800E3C8: .4byte gUnknown_2023D6A
+_0800E3C8: .4byte gLastUsedAbility
_0800E3CC: .4byte gBattleScripting
_0800E3D0: .4byte gBattleStruct
-_0800E3D4: .4byte gUnknown_2023D6F
+_0800E3D4: .4byte gPotentialItemEffectBattler
_0800E3D8: .4byte gBattleMoves
_0800E3DC: .4byte gUnknown_2022AD8
_0800E3E0: .4byte gBattleMons
@@ -2323,7 +2323,7 @@ EmitPrintSelectionString: @ 800E3EC
ldr r0, _0800E4B4 @ =gUnknown_2023D68
ldrh r0, [r0]
strh r0, [r1, 0x4]
- ldr r0, _0800E4B8 @ =gUnknown_2023D6A
+ ldr r0, _0800E4B8 @ =gLastUsedAbility
ldrb r0, [r0]
strb r0, [r1, 0x6]
ldr r0, _0800E4BC @ =gBattleScripting
@@ -2393,7 +2393,7 @@ _0800E4A8: .4byte gUnknown_2022874
_0800E4AC: .4byte gCurrentMove
_0800E4B0: .4byte gUnknown_2023D4C
_0800E4B4: .4byte gUnknown_2023D68
-_0800E4B8: .4byte gUnknown_2023D6A
+_0800E4B8: .4byte gLastUsedAbility
_0800E4BC: .4byte gBattleScripting
_0800E4C0: .4byte gBattleStruct
_0800E4C4: .4byte gUnknown_2022AD8
diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s
index 877f1ee42..3ff8f9318 100644
--- a/asm/battle_dome_cards.s
+++ b/asm/battle_dome_cards.s
@@ -291,7 +291,7 @@ _0810BD90: .4byte gUnknown_203AD40
_0810BD94: .4byte gUnknown_82349BC
_0810BD98:
ldr r0, _0810BDA4 @ =gUnknown_203AD40
- ldr r1, _0810BDA8 @ =gUnknown_82390DC
+ ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable
ldr r1, [r1]
str r1, [r0, 0x8]
_0810BDA0:
@@ -299,7 +299,7 @@ _0810BDA0:
bx r0
.align 2, 0
_0810BDA4: .4byte gUnknown_203AD40
-_0810BDA8: .4byte gUnknown_82390DC
+_0810BDA8: .4byte gTrainerFrontAnimsPtrTable
thumb_func_end uns_builder_assign_animtable1
thumb_func_start oamt_spawn_poke_or_trainer_picture
@@ -1082,21 +1082,21 @@ sub_810C374: @ 810C374
bne _0810C39A
cmp r0, 0
beq _0810C394
- ldr r0, _0810C390 @ =gUnknown_82538A8
+ ldr r0, _0810C390 @ =gFacilityClassToPicIndex
adds r0, 0x87
ldrb r0, [r0]
b _0810C39A
.align 2, 0
-_0810C390: .4byte gUnknown_82538A8
+_0810C390: .4byte gFacilityClassToPicIndex
_0810C394:
- ldr r0, _0810C3A0 @ =gUnknown_82538A8
+ ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex
adds r0, 0x86
ldrb r0, [r0]
_0810C39A:
pop {r1}
bx r1
.align 2, 0
-_0810C3A0: .4byte gUnknown_82538A8
+_0810C3A0: .4byte gFacilityClassToPicIndex
thumb_func_end sub_810C374
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s
index e56df1923..1aa87e8a4 100644
--- a/asm/battle_gfx_sfx_util.s
+++ b/asm/battle_gfx_sfx_util.s
@@ -753,12 +753,12 @@ _0803436C:
bl GetMonData
mov r10, r0
mov r0, r8
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsls r2, r5, 3
ldr r1, _080343C4 @ =gUnknown_82350AC
adds r2, r1
- ldr r1, _080343C8 @ =gUnknown_202401C
+ ldr r1, _080343C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsrs r0, 22
adds r1, 0x4
@@ -789,7 +789,7 @@ _0803436C:
.align 2, 0
_080343C0: .4byte gUnknown_2024008
_080343C4: .4byte gUnknown_82350AC
-_080343C8: .4byte gUnknown_202401C
+_080343C8: .4byte gMonSpritesGfxPtr
_080343CC: .4byte gUnknown_2024018
_080343D0:
adds r0, r5, 0
@@ -924,7 +924,7 @@ _080344E4:
bl GetMonData
str r0, [sp, 0x4]
mov r0, r8
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x1
@@ -948,7 +948,7 @@ _0803451C:
lsls r0, r5, 3
ldr r1, _08034540 @ =gUnknown_823654C
adds r0, r1
- ldr r1, _08034544 @ =gUnknown_202401C
+ ldr r1, _08034544 @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r2, r7, 2
adds r1, 0x4
@@ -962,12 +962,12 @@ _0803451C:
_08034538: .4byte gUnknown_2024008
_0803453C: .4byte gUnknown_2024018
_08034540: .4byte gUnknown_823654C
-_08034544: .4byte gUnknown_202401C
+_08034544: .4byte gMonSpritesGfxPtr
_08034548:
lsls r0, r5, 3
ldr r1, _08034584 @ =gUnknown_823654C
adds r0, r1
- ldr r1, _08034588 @ =gUnknown_202401C
+ ldr r1, _08034588 @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r2, r7, 2
adds r1, 0x4
@@ -995,7 +995,7 @@ _08034562:
b _0803459A
.align 2, 0
_08034584: .4byte gUnknown_823654C
-_08034588: .4byte gUnknown_202401C
+_08034588: .4byte gMonSpritesGfxPtr
_0803458C: .4byte gUnknown_2024018
_08034590:
adds r0, r5, 0
@@ -1091,10 +1091,10 @@ sub_8034658: @ 8034658
lsls r4, r1, 24
lsrs r4, 24
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
ldr r2, _080346B8 @ =gUnknown_8E93B38
- ldr r1, _080346BC @ =gUnknown_202401C
+ ldr r1, _080346BC @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsrs r0, 22
adds r1, 0x4
@@ -1129,7 +1129,7 @@ sub_8034658: @ 8034658
bx r0
.align 2, 0
_080346B8: .4byte gUnknown_8E93B38
-_080346BC: .4byte gUnknown_202401C
+_080346BC: .4byte gMonSpritesGfxPtr
_080346C0: .4byte gUnknown_8E93B14
thumb_func_end sub_8034658
@@ -1145,13 +1145,13 @@ sub_80346C4: @ 80346C4
lsrs r5, 16
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r4, r0, 0
lsls r4, 24
lsls r5, 3
ldr r6, _0803473C @ =gUnknown_823957C
adds r6, r5, r6
- ldr r0, _08034740 @ =gUnknown_202401C
+ ldr r0, _08034740 @ =gMonSpritesGfxPtr
mov r8, r0
ldr r0, [r0]
lsrs r4, 22
@@ -1193,7 +1193,7 @@ sub_80346C4: @ 80346C4
bx r0
.align 2, 0
_0803473C: .4byte gUnknown_823957C
-_08034740: .4byte gUnknown_202401C
+_08034740: .4byte gMonSpritesGfxPtr
_08034744: .4byte 0xffff0000
_08034748: .4byte 0x0000ffff
_0803474C: .4byte gUnknown_8239A1C
@@ -1467,7 +1467,7 @@ _0803495A:
LoadBattleBarGfx: @ 8034964
push {lr}
ldr r0, _0803497C @ =gUnknown_8D093D8
- ldr r1, _08034980 @ =gUnknown_202401C
+ ldr r1, _08034980 @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBA
lsls r2, 1
@@ -1478,7 +1478,7 @@ LoadBattleBarGfx: @ 8034964
bx r0
.align 2, 0
_0803497C: .4byte gUnknown_8D093D8
-_08034980: .4byte gUnknown_202401C
+_08034980: .4byte gMonSpritesGfxPtr
thumb_func_end LoadBattleBarGfx
thumb_func_start BattleInitAllSprites
@@ -1577,7 +1577,7 @@ _08034A34:
_08034A44: .4byte gUnknown_3004FF0
_08034A48:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08034A90
@@ -1632,7 +1632,7 @@ _08034ABA:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _08034AE4 @ =gUnknown_2023BCC
+ ldr r1, _08034AE4 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -1650,7 +1650,7 @@ _08034AD0:
_08034AD8: .4byte gUnknown_3004FF0
_08034ADC: .4byte gBattlerPartyIndexes
_08034AE0: .4byte gEnemyParty
-_08034AE4: .4byte gUnknown_2023BCC
+_08034AE4: .4byte gBattlersCount
_08034AE8:
bl LoadAndCreateEnemyShadowSprites
bl sub_8127CAC
@@ -1706,7 +1706,7 @@ CopyAllBattleSpritesInvisibilities: @ 8034B40
mov r6, r8
push {r6,r7}
movs r4, 0
- ldr r5, _08034BA4 @ =gUnknown_2023BCC
+ ldr r5, _08034BA4 @ =gBattlersCount
ldrb r0, [r5]
cmp r4, r0
bge _08034B96
@@ -1753,7 +1753,7 @@ _08034B96:
pop {r0}
bx r0
.align 2, 0
-_08034BA4: .4byte gUnknown_2023BCC
+_08034BA4: .4byte gBattlersCount
_08034BA8: .4byte gSprites
_08034BAC: .4byte gUnknown_2024018
_08034BB0: .4byte gUnknown_2023D44
@@ -1813,7 +1813,7 @@ sub_8034BF4: @ 8034BF4
beq _08034C16
b _08034D88
_08034C16:
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -1854,7 +1854,7 @@ _08034C16:
lsls r0, r1, 3
ldr r1, _08034D60 @ =gUnknown_82350AC
adds r0, r1
- ldr r4, _08034D64 @ =gUnknown_202401C
+ ldr r4, _08034D64 @ =gMonSpritesGfxPtr
ldr r1, [r4]
mov r2, r10
lsls r5, r2, 2
@@ -1940,10 +1940,10 @@ _08034C16:
movs r1, 0xB
mov r2, r8
muls r2, r1
- ldr r1, _08034D80 @ =gUnknown_8245EE0
+ ldr r1, _08034D80 @ =gSpeciesNames
adds r2, r1
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
ldr r4, _08034D84 @ =gUnknown_3004FF0
add r4, r9
ldrb r0, [r4]
@@ -1962,14 +1962,14 @@ _08034C16:
_08034D58: .4byte gBattlerPartyIndexes
_08034D5C: .4byte gEnemyParty
_08034D60: .4byte gUnknown_82350AC
-_08034D64: .4byte gUnknown_202401C
+_08034D64: .4byte gMonSpritesGfxPtr
_08034D68: .4byte gSprites
_08034D6C: .4byte gUnknown_2023D44
_08034D70: .4byte 0x06010000
_08034D74: .4byte 0x040000d4
_08034D78: .4byte 0x84000200
_08034D7C: .4byte gUnknown_2024024
-_08034D80: .4byte gUnknown_8245EE0
+_08034D80: .4byte gSpeciesNames
_08034D84: .4byte gUnknown_3004FF0
_08034D88:
cmp r2, 0
@@ -2059,12 +2059,12 @@ _08034E44: .4byte gUnknown_20371F8
_08034E48: .4byte 0x04000008
_08034E4C:
mov r0, r9
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, [sp]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2098,7 +2098,7 @@ _08034E90:
lsrs r0, 16
mov r8, r0
mov r0, r9
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08034F10
@@ -2124,7 +2124,7 @@ _08034E90:
lsls r0, r2, 3
ldr r1, _08034F04 @ =gUnknown_823654C
adds r0, r1
- ldr r1, _08034F08 @ =gUnknown_202401C
+ ldr r1, _08034F08 @ =gMonSpritesGfxPtr
ldr r1, [r1]
mov r3, r10
lsls r5, r3, 2
@@ -2143,7 +2143,7 @@ _08034E90:
_08034EFC: .4byte gBattlerPartyIndexes
_08034F00: .4byte gPlayerParty
_08034F04: .4byte gUnknown_823654C
-_08034F08: .4byte gUnknown_202401C
+_08034F08: .4byte gMonSpritesGfxPtr
_08034F0C: .4byte gUnknown_2024008
_08034F10:
ldr r0, _08035074 @ =gBattlerPartyIndexes
@@ -2168,7 +2168,7 @@ _08034F10:
lsls r0, r2, 3
ldr r1, _0803507C @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _08035080 @ =gUnknown_202401C
+ ldr r1, _08035080 @ =gMonSpritesGfxPtr
ldr r1, [r1]
mov r3, r10
lsls r5, r3, 2
@@ -2184,7 +2184,7 @@ _08034F10:
bl HandleLoadSpecialPokePic_DontHandleDeoxys
_08034F5E:
str r4, [sp, 0x14]
- ldr r0, _08035080 @ =gUnknown_202401C
+ ldr r0, _08035080 @ =gMonSpritesGfxPtr
ldr r0, [r0]
adds r0, 0x4
adds r0, r5
@@ -2316,7 +2316,7 @@ _08035062:
_08035074: .4byte gBattlerPartyIndexes
_08035078: .4byte gEnemyParty
_0803507C: .4byte gUnknown_82350AC
-_08035080: .4byte gUnknown_202401C
+_08035080: .4byte gMonSpritesGfxPtr
_08035084: .4byte gUnknown_2024008
_08035088: .4byte gUnknown_2023D44
_0803508C: .4byte gSprites
@@ -2343,16 +2343,16 @@ sub_80350BC: @ 80350BC
cmp r1, 0
bne _08035158
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080350FC
ldr r0, _080350F4 @ =gUnknown_8D2D0B4
- ldr r1, _080350F8 @ =gUnknown_202401C
+ ldr r1, _080350F8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r4, r5, 2
adds r1, 0x4
@@ -2362,10 +2362,10 @@ sub_80350BC: @ 80350BC
b _0803510E
.align 2, 0
_080350F4: .4byte gUnknown_8D2D0B4
-_080350F8: .4byte gUnknown_202401C
+_080350F8: .4byte gMonSpritesGfxPtr
_080350FC:
ldr r0, _08035144 @ =gUnknown_8D2D2F4
- ldr r1, _08035148 @ =gUnknown_202401C
+ ldr r1, _08035148 @ =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r4, r5, 2
adds r1, 0x4
@@ -2376,7 +2376,7 @@ _0803510E:
movs r3, 0x1
lsls r6, 4
ldr r7, _0803514C @ =gUnknown_8D2D090
- ldr r0, _08035148 @ =gUnknown_202401C
+ ldr r0, _08035148 @ =gMonSpritesGfxPtr
ldr r0, [r0]
adds r0, 0x4
adds r4, r0, r4
@@ -2402,13 +2402,13 @@ _08035120:
b _0803519A
.align 2, 0
_08035144: .4byte gUnknown_8D2D2F4
-_08035148: .4byte gUnknown_202401C
+_08035148: .4byte gMonSpritesGfxPtr
_0803514C: .4byte gUnknown_8D2D090
_08035150: .4byte 0x040000d4
_08035154: .4byte 0x84000200
_08035158:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08035184
@@ -2640,7 +2640,7 @@ _0803530E:
BattleStopLowHpSound: @ 8035314
push {r4-r6,lr}
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
ldr r5, _08035364 @ =gUnknown_2024018
@@ -2720,12 +2720,12 @@ sub_803539C: @ 803539C
cmp r0, 0
beq _08035432
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
mov r9, r0
@@ -2799,7 +2799,7 @@ sub_8035450: @ 8035450
lsrs r0, 24
mov r8, r0
movs r5, 0
- ldr r0, _080354E0 @ =gUnknown_2023BCC
+ ldr r0, _080354E0 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _08035520
@@ -2862,7 +2862,7 @@ _0803547C:
strb r1, [r0, 0x3]
b _08035514
.align 2, 0
-_080354E0: .4byte gUnknown_2023BCC
+_080354E0: .4byte gBattlersCount
_080354E4: .4byte gSprites
_080354E8: .4byte gUnknown_2023D44
_080354EC: .4byte gUnknown_2024018
@@ -2888,7 +2888,7 @@ _080354F0:
_08035514:
adds r6, 0xC
adds r5, 0x1
- ldr r0, _08035534 @ =gUnknown_2023BCC
+ ldr r0, _08035534 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0803547C
@@ -2902,7 +2902,7 @@ _08035520:
bx r0
.align 2, 0
_08035530: .4byte gUnknown_2024018
-_08035534: .4byte gUnknown_2023BCC
+_08035534: .4byte gBattlersCount
thumb_func_end sub_8035450
thumb_func_start LoadAndCreateEnemyShadowSprites
@@ -2913,7 +2913,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538
ldr r0, _08035614 @ =gUnknown_8250A0C
bl sub_800F034
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -2962,7 +2962,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538
cmp r0, 0
beq _0803560A
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -3147,7 +3147,7 @@ SetBankEnemyShadowSpriteCallback: @ 8035708
lsls r1, 16
lsrs r5, r1, 16
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08035784
@@ -3395,7 +3395,7 @@ AllocateMonSpritesGfx: @ 80358D4
mov r5, r8
push {r5-r7}
movs r6, 0
- ldr r4, _080359A4 @ =gUnknown_202401C
+ ldr r4, _080359A4 @ =gMonSpritesGfxPtr
str r6, [r4]
movs r0, 0xC0
lsls r0, 1
@@ -3407,7 +3407,7 @@ AllocateMonSpritesGfx: @ 80358D4
ldr r1, [r4]
str r0, [r1]
_080358FA:
- ldr r0, _080359A4 @ =gUnknown_202401C
+ ldr r0, _080359A4 @ =gMonSpritesGfxPtr
ldr r1, [r0]
lsls r4, r6, 2
adds r2, r1, 0x4
@@ -3436,7 +3436,7 @@ _080358FA:
mov r12, r8
adds r7, r4, 0
_08035932:
- ldr r2, _080359A4 @ =gUnknown_202401C
+ ldr r2, _080359A4 @ =gMonSpritesGfxPtr
ldr r1, [r2]
lsls r4, r5, 3
add r4, r12
@@ -3459,7 +3459,7 @@ _08035932:
lsrs r5, r0, 24
cmp r5, 0x3
bls _08035932
- ldr r1, _080359A4 @ =gUnknown_202401C
+ ldr r1, _080359A4 @ =gMonSpritesGfxPtr
ldr r2, [r1]
mov r5, r9
adds r0, r5, r6
@@ -3479,7 +3479,7 @@ _08035932:
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
- ldr r1, _080359A4 @ =gUnknown_202401C
+ ldr r1, _080359A4 @ =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBA
lsls r2, 1
@@ -3493,14 +3493,14 @@ _08035932:
pop {r0}
bx r0
.align 2, 0
-_080359A4: .4byte gUnknown_202401C
+_080359A4: .4byte gMonSpritesGfxPtr
_080359A8: .4byte gUnknown_825DEF0
thumb_func_end AllocateMonSpritesGfx
thumb_func_start FreeMonSpritesGfx
FreeMonSpritesGfx: @ 80359AC
push {r4-r6,lr}
- ldr r6, _08035A24 @ =gUnknown_202401C
+ ldr r6, _08035A24 @ =gMonSpritesGfxPtr
ldr r0, [r6]
cmp r0, 0
beq _08035A1E
@@ -3558,7 +3558,7 @@ _08035A1E:
pop {r0}
bx r0
.align 2, 0
-_08035A24: .4byte gUnknown_202401C
+_08035A24: .4byte gMonSpritesGfxPtr
thumb_func_end FreeMonSpritesGfx
thumb_func_start ShouldPlayNormalPokeCry
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 3e3fb6500..76fc42280 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -273,7 +273,7 @@ CreateBankHealthboxSprites: @ 8047CE0
cmp r0, 0
bne _08047DF4
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08047D78
@@ -385,12 +385,12 @@ _08047DEC: .4byte 0xfffffc00
_08047DF0: .4byte sub_8048128
_08047DF4:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08047E98
mov r0, r10
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
@@ -406,7 +406,7 @@ _08047DF4:
lsls r0, 24
lsrs r6, r0, 24
mov r0, r10
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
@@ -459,7 +459,7 @@ _08047E90: .4byte 0xfffffc00
_08047E94: .4byte sub_8048128
_08047E98:
mov r0, r10
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
@@ -475,7 +475,7 @@ _08047E98:
lsls r0, 24
lsrs r6, r0, 24
mov r0, r10
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 25
@@ -544,7 +544,7 @@ _08047F1C:
mov r8, r1
add r4, r8
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
adds r1, r0, 0
lsls r1, 24
lsrs r1, 21
@@ -984,7 +984,7 @@ UpdateOamPriorityInAllHealthboxes: @ 804828C
lsls r0, 24
lsrs r0, 24
movs r6, 0
- ldr r1, _08048310 @ =gUnknown_2023BCC
+ ldr r1, _08048310 @ =gBattlersCount
mov r8, r1
ldrb r2, [r1]
cmp r6, r2
@@ -1046,7 +1046,7 @@ _08048304:
pop {r0}
bx r0
.align 2, 0
-_08048310: .4byte gUnknown_2023BCC
+_08048310: .4byte gBattlersCount
_08048314: .4byte gSprites
_08048318: .4byte gUnknown_3004FF0
thumb_func_end UpdateOamPriorityInAllHealthboxes
@@ -1063,7 +1063,7 @@ SetBankHealthboxSpritePos: @ 804831C
cmp r0, 0
bne _08048348
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08048342
@@ -1076,7 +1076,7 @@ _08048342:
b _08048380
_08048348:
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1165,7 +1165,7 @@ UpdateLvlInHealthbox: @ 8048398
ldrh r0, [r1, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048420
@@ -1226,7 +1226,7 @@ sub_8048440: @ 8048440
ldrh r0, [r4, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048514
@@ -1321,7 +1321,7 @@ _08048514:
cmp r0, 0x1
beq _0804854C
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1341,7 +1341,7 @@ _08048564:
ldrh r0, [r7, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048580
@@ -1366,7 +1366,7 @@ _0804858A:
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r0, _08048608 @ =gUnknown_202401C
+ ldr r0, _08048608 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
@@ -1387,7 +1387,7 @@ _0804858A:
lsls r0, 2
adds r4, r0, r1
_080485C6:
- ldr r0, _08048608 @ =gUnknown_202401C
+ ldr r0, _08048608 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
@@ -1421,7 +1421,7 @@ _080485F8:
pop {r0}
bx r0
.align 2, 0
-_08048608: .4byte gUnknown_202401C
+_08048608: .4byte gMonSpritesGfxPtr
_0804860C: .4byte gSprites
_08048610: .4byte 0x06010000
_08048614: .4byte 0x04000008
@@ -1492,7 +1492,7 @@ _0804866A:
ldr r1, _08048704 @ =gUnknown_8260540
bl StringCopy
_08048698:
- ldr r0, _08048708 @ =gUnknown_202401C
+ ldr r0, _08048708 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r3, 0xBA
lsls r3, 1
@@ -1517,7 +1517,7 @@ _08048698:
_080486C6:
cmp r4, 0x2
bhi _08048714
- ldr r0, _08048708 @ =gUnknown_202401C
+ ldr r0, _08048708 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
@@ -1543,11 +1543,11 @@ _080486F8: .4byte gUnknown_8260542
_080486FC: .4byte gSprites
_08048700: .4byte gUnknown_2024018
_08048704: .4byte gUnknown_8260540
-_08048708: .4byte gUnknown_202401C
+_08048708: .4byte gMonSpritesGfxPtr
_0804870C: .4byte 0x06010000
_08048710: .4byte 0x04000008
_08048714:
- ldr r0, _08048790 @ =gUnknown_202401C
+ ldr r0, _08048790 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r3, 0xBA
lsls r3, 1
@@ -1577,7 +1577,7 @@ _08048748:
mov r3, r8
cmp r3, 0
bne _080487A8
- ldr r0, _08048790 @ =gUnknown_202401C
+ ldr r0, _08048790 @ =gMonSpritesGfxPtr
ldr r0, [r0]
movs r1, 0xBA
lsls r1, 1
@@ -1608,7 +1608,7 @@ _08048748:
bl CpuSet
b _080487DC
.align 2, 0
-_08048790: .4byte gUnknown_202401C
+_08048790: .4byte gMonSpritesGfxPtr
_08048794: .4byte 0x06010020
_08048798: .4byte 0x04000008
_0804879C: .4byte gSprites
@@ -1616,7 +1616,7 @@ _080487A0: .4byte 0x06010000
_080487A4: .4byte 0x05000008
_080487A8:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080487DC
@@ -1678,8 +1678,8 @@ sub_80487F8: @ 80487F8
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
- ldr r1, _080488B4 @ =gUnknown_202401C
+ bl GetBattlerPosition
+ ldr r1, _080488B4 @ =gMonSpritesGfxPtr
ldr r2, [r1]
movs r3, 0xBA
lsls r3, 1
@@ -1745,7 +1745,7 @@ _080488A8:
.align 2, 0
_080488AC: .4byte gUnknown_826052C
_080488B0: .4byte gSprites
-_080488B4: .4byte gUnknown_202401C
+_080488B4: .4byte gMonSpritesGfxPtr
_080488B8: .4byte gUnknown_8463E60
_080488BC:
adds r0, r1, 0
@@ -1866,7 +1866,7 @@ _08048966:
adds r2, r0, 0
movs r0, 0xBA
strb r0, [r2, 0x8]
- ldr r5, _08048A08 @ =gUnknown_202401C
+ ldr r5, _08048A08 @ =gMonSpritesGfxPtr
ldr r0, [r5]
movs r2, 0xBA
lsls r2, 1
@@ -1910,7 +1910,7 @@ _080489F8: .4byte 0x04000008
_080489FC: .4byte gSprites
_08048A00: .4byte 0x06010000
_08048A04: .4byte gBattleStruct
-_08048A08: .4byte gUnknown_202401C
+_08048A08: .4byte gMonSpritesGfxPtr
_08048A0C:
ldr r0, [r5]
movs r3, 0xBA
@@ -1955,7 +1955,7 @@ sub_8048A4C: @ 8048A4C
sub sp, 0x4
movs r0, 0
mov r9, r0
- ldr r0, _08048B78 @ =gUnknown_2023BCC
+ ldr r0, _08048B78 @ =gBattlersCount
ldrb r0, [r0]
cmp r9, r0
blt _08048A66
@@ -1986,7 +1986,7 @@ _08048A8C:
lsls r0, r2, 24
lsrs r7, r0, 24
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1998,7 +1998,7 @@ _08048AA2:
cmp r0, 0
bne _08048ABA
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048ABA
@@ -2032,7 +2032,7 @@ _08048ABA:
lsls r0, 27
lsrs r4, r0, 31
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048BE8
@@ -2096,7 +2096,7 @@ _08048B16:
ldr r2, _08048B9C @ =gPlayerParty
b _08048C6E
.align 2, 0
-_08048B78: .4byte gUnknown_2023BCC
+_08048B78: .4byte gBattlersCount
_08048B7C: .4byte gSprites
_08048B80: .4byte gBattlerPartyIndexes
_08048B84: .4byte gUnknown_3004FF0
@@ -2258,7 +2258,7 @@ _08048CE0:
add r8, r0
movs r1, 0x1
add r9, r1
- ldr r0, _08048D10 @ =gUnknown_2023BCC
+ ldr r0, _08048D10 @ =gBattlersCount
ldrb r0, [r0]
cmp r9, r0
bge _08048CF2
@@ -2276,7 +2276,7 @@ _08048CF2:
_08048D04: .4byte gEnemyParty
_08048D08: .4byte gBattleTypeFlags
_08048D0C: .4byte gUnknown_3004FF0
-_08048D10: .4byte gUnknown_2023BCC
+_08048D10: .4byte gBattlersCount
thumb_func_end sub_8048A4C
thumb_func_start sub_8048D14
@@ -2299,14 +2299,14 @@ sub_8048D14: @ 8048D14
str r3, [sp, 0x10]
cmp r4, 0
beq _08048D44
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08048D88
_08048D44:
ldr r0, [sp, 0x8]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08048D64
@@ -2588,7 +2588,7 @@ _08048F66:
b _08048E80
_08048F86:
ldr r0, [sp, 0x8]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0804906E
@@ -2966,7 +2966,7 @@ _0804925A:
_08049268:
ldr r0, [sp, 0x8]
str r3, [sp, 0x14]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
ldr r3, [sp, 0x14]
@@ -3592,7 +3592,7 @@ sub_80496C0: @ 80496C0
_08049720:
movs r0, 0xB
muls r1, r0
- ldr r0, _08049768 @ =gUnknown_8245EE0
+ ldr r0, _08049768 @ =gSpeciesNames
adds r1, r0
mov r0, sp
bl StringCompare
@@ -3625,7 +3625,7 @@ _08049754:
.align 2, 0
_08049760: .4byte gUnknown_202298C
_08049764: .4byte gUnknown_8260556
-_08049768: .4byte gUnknown_8245EE0
+_08049768: .4byte gSpeciesNames
_0804976C: .4byte gSprites
_08049770:
movs r0, 0xB
@@ -3659,7 +3659,7 @@ _08049782:
ldrh r0, [r1, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080497F8
@@ -3742,7 +3742,7 @@ sub_804981C: @ 804981C
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0804991C
@@ -3862,7 +3862,7 @@ UpdateStatusIconInHealthbox: @ 8049934
lsrs r0, 24
mov r10, r0
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080499A4
@@ -4090,7 +4090,7 @@ _08049AF4:
cmp r0, 0x1
beq _08049B62
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4386,7 +4386,7 @@ UpdateHealthboxAttribute: @ 8049D98
cmp r0, 0
bne _08049DD4
mov r0, r9
- bl GetBankSide
+ bl GetBattlerSide
_08049DD4:
ldr r1, _08049F44 @ =gSprites
lsls r0, r6, 4
@@ -4396,7 +4396,7 @@ _08049DD4:
ldrh r0, [r0, 0x3A]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08049DF0
@@ -4499,7 +4499,7 @@ _08049E96:
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
- ldr r0, _08049F48 @ =gUnknown_8253AE4
+ ldr r0, _08049F48 @ =gExperienceTables
mov r12, r0
lsls r1, r4, 2
ldr r2, _08049F4C @ =gBaseStats
@@ -4565,7 +4565,7 @@ _08049F2E:
b _08049FC6
.align 2, 0
_08049F44: .4byte gSprites
-_08049F48: .4byte gUnknown_8253AE4
+_08049F48: .4byte gExperienceTables
_08049F4C: .4byte gBaseStats
_08049F50:
cmp r7, 0x3
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 9a9ca1f2f..5b98e90f0 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -26,7 +26,7 @@ sub_80D7274: @ 80D7274
ldr r2, _080D733C @ =gUnknown_2023D68
ldrh r0, [r1, 0x4]
strh r0, [r2]
- ldr r2, _080D7340 @ =gUnknown_2023D6A
+ ldr r2, _080D7340 @ =gLastUsedAbility
ldrb r0, [r1, 0x6]
strb r0, [r2]
ldr r5, _080D7344 @ =gBattleScripting
@@ -42,7 +42,7 @@ sub_80D7274: @ 80D7274
ldr r1, [r4]
ldrb r1, [r1, 0x9]
strb r1, [r0]
- ldr r1, _080D734C @ =gUnknown_2023D6F
+ ldr r1, _080D734C @ =gPotentialItemEffectBattler
ldr r2, [r4]
ldrb r0, [r2, 0xA]
strb r0, [r1]
@@ -109,10 +109,10 @@ _080D7330: .4byte gUnknown_2039A34
_080D7334: .4byte gActiveBattler
_080D7338: .4byte gUnknown_2022BC8
_080D733C: .4byte gUnknown_2023D68
-_080D7340: .4byte gUnknown_2023D6A
+_080D7340: .4byte gLastUsedAbility
_080D7344: .4byte gBattleScripting
_080D7348: .4byte gBattleStruct
-_080D734C: .4byte gUnknown_2023D6F
+_080D734C: .4byte gPotentialItemEffectBattler
_080D7350: .4byte gUnknown_2022AB8
_080D7354: .4byte gUnknown_2039A30
_080D7358: .4byte gUnknown_2022AC8
@@ -217,7 +217,7 @@ _080D7424: .4byte gUnknown_83FD2AA
_080D7428:
mov r1, r12
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D7468
@@ -297,7 +297,7 @@ _080D74C4: .4byte gUnknown_83FD3B1
_080D74C8:
mov r1, r12
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D7520
@@ -369,7 +369,7 @@ _080D7554: .4byte gUnknown_83FD522
_080D7558:
mov r1, r10
ldrb r0, [r1, 0x17]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D75B0
@@ -497,7 +497,7 @@ _080D7654:
strb r0, [r4]
mov r1, r12
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -552,7 +552,7 @@ _080D76D0: .4byte gUnknown_83FE9D4
_080D76D4:
mov r1, r12
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -924,7 +924,7 @@ _080D79F4:
_080D79FC: .4byte gStringVar3
_080D7A00:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7A1C @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -940,7 +940,7 @@ _080D7A1C: .4byte gBattlerPartyIndexes
_080D7A20: .4byte gPlayerParty
_080D7A24:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7A40 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -956,7 +956,7 @@ _080D7A40: .4byte gBattlerPartyIndexes
_080D7A44: .4byte gEnemyParty
_080D7A48:
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7A64 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -972,7 +972,7 @@ _080D7A64: .4byte gBattlerPartyIndexes
_080D7A68: .4byte gPlayerParty
_080D7A6C:
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7A88 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -1075,7 +1075,7 @@ _080D7B48: .4byte gEnemyParty
_080D7B4C:
ldr r4, _080D7B70 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
adds r2, r4, 0
cmp r0, 0
@@ -1106,11 +1106,11 @@ _080D7B8A:
cmp r0, 0xFF
bne _080D7B80
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7BB8 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -1126,11 +1126,11 @@ _080D7BB8: .4byte gBattlerPartyIndexes
_080D7BBC: .4byte gEnemyParty
_080D7BC0:
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7BDC @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -1142,16 +1142,16 @@ _080D7BDC: .4byte gBattlerPartyIndexes
_080D7BE0:
ldr r4, _080D7C14 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D7C20
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7C18 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -1169,11 +1169,11 @@ _080D7C18: .4byte gBattlerPartyIndexes
_080D7C1C: .4byte gPlayerParty
_080D7C20:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _080D7C44 @ =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
@@ -1190,7 +1190,7 @@ _080D7C48: .4byte gEnemyParty
_080D7C4C:
ldr r5, _080D7C98 @ =sBattler_AI
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D7CB0
@@ -1246,7 +1246,7 @@ _080D7CBC: .4byte gBattlerPartyIndexes
_080D7CC0:
ldr r5, _080D7D0C @ =gBattlerTarget
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D7D24
@@ -1302,7 +1302,7 @@ _080D7D30: .4byte gBattlerPartyIndexes
_080D7D34:
ldr r5, _080D7D80 @ =gUnknown_2023D6E
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D7D98
@@ -1358,7 +1358,7 @@ _080D7DA4: .4byte gBattlerPartyIndexes
_080D7DA8:
ldr r5, _080D7DF4 @ =gActiveBattler
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D7E0C
@@ -1414,7 +1414,7 @@ _080D7E18: .4byte gBattlerPartyIndexes
_080D7E1C:
ldr r5, _080D7E68 @ =gBattleScripting
ldrb r0, [r5, 0x17]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D7E80
@@ -1531,7 +1531,7 @@ _080D7EE4:
ldrb r0, [r0]
cmp r0, 0
beq _080D7F2C
- ldr r2, _080D7F28 @ =gUnknown_2023D6F
+ ldr r2, _080D7F28 @ =gPotentialItemEffectBattler
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -1542,9 +1542,9 @@ _080D7EE4:
_080D7F1C: .4byte gBattleTypeFlags
_080D7F20: .4byte gUnknown_2023D68
_080D7F24: .4byte gBattleStruct
-_080D7F28: .4byte gUnknown_2023D6F
+_080D7F28: .4byte gPotentialItemEffectBattler
_080D7F2C:
- ldr r2, _080D7F40 @ =gUnknown_2023D6F
+ ldr r2, _080D7F40 @ =gPotentialItemEffectBattler
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -1556,7 +1556,7 @@ _080D7F38:
subs r1, r0
b _080D7F64
.align 2, 0
-_080D7F40: .4byte gUnknown_2023D6F
+_080D7F40: .4byte gPotentialItemEffectBattler
_080D7F44:
ldr r2, _080D7F7C @ =gUnknown_202273C
ldr r0, _080D7F80 @ =gBattleStruct
@@ -1567,7 +1567,7 @@ _080D7F44:
subs r0, r1
lsls r0, 2
adds r0, r2
- ldr r1, _080D7F84 @ =gUnknown_2023D6F
+ ldr r1, _080D7F84 @ =gPotentialItemEffectBattler
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
@@ -1576,7 +1576,7 @@ _080D7F44:
subs r1, r2
_080D7F64:
lsls r1, 2
- ldr r0, _080D7F88 @ =gUnknown_2023F54
+ ldr r0, _080D7F88 @ =gEnigmaBerries
adds r1, r0
mov r0, sp
bl StringCopy
@@ -1588,8 +1588,8 @@ _080D7F64:
.align 2, 0
_080D7F7C: .4byte gUnknown_202273C
_080D7F80: .4byte gBattleStruct
-_080D7F84: .4byte gUnknown_2023D6F
-_080D7F88: .4byte gUnknown_2023F54
+_080D7F84: .4byte gPotentialItemEffectBattler
+_080D7F88: .4byte gEnigmaBerries
_080D7F8C: .4byte gUnknown_83FD8AF
_080D7F90:
ldr r4, _080D7F94 @ =gUnknown_83FD8A2
@@ -1610,10 +1610,10 @@ _080D7FA0:
.align 2, 0
_080D7FAC: .4byte gUnknown_2023D68
_080D7FB0:
- ldr r0, _080D7FB4 @ =gUnknown_2023D6A
+ ldr r0, _080D7FB4 @ =gLastUsedAbility
b _080D7FF0
.align 2, 0
-_080D7FB4: .4byte gUnknown_2023D6A
+_080D7FB4: .4byte gLastUsedAbility
_080D7FB8:
ldr r1, _080D7FC0 @ =gUnknown_2039A30
ldr r0, _080D7FC4 @ =sBattler_AI
@@ -1959,7 +1959,7 @@ _080D825C: .4byte gStringVar4
_080D8260:
ldr r0, _080D82B4 @ =gBattleScripting
ldrb r0, [r0, 0x17]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D82CC
@@ -2053,7 +2053,7 @@ _080D8320:
ldr r0, _080D8334 @ =gBattlerTarget
_080D8322:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r4, _080D8338 @ =gUnknown_83FD569
cmp r0, 0
@@ -2073,7 +2073,7 @@ _080D8348:
ldr r0, _080D835C @ =gBattlerTarget
_080D834A:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r4, _080D8360 @ =gUnknown_83FD560
cmp r0, 0
@@ -2093,7 +2093,7 @@ _080D8370:
ldr r0, _080D83D4 @ =gBattlerTarget
_080D8372:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r4, _080D83D8 @ =gUnknown_83FD572
cmp r0, 0
@@ -2310,7 +2310,7 @@ _080D8504:
_080D8510: .4byte gUnknown_824F1A0
_080D8514:
ldrb r0, [r4, 0x1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D8538
@@ -2385,7 +2385,7 @@ _080D85A0:
_080D85B2:
adds r4, r5, r7
ldrb r0, [r4, 0x1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D85D8
@@ -2463,7 +2463,7 @@ _080D8628:
subs r0, r1
lsls r0, 2
adds r0, r2
- ldr r1, _080D8680 @ =gUnknown_2023D6F
+ ldr r1, _080D8680 @ =gPotentialItemEffectBattler
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
@@ -2471,7 +2471,7 @@ _080D8628:
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
- ldr r0, _080D8684 @ =gUnknown_2023F54
+ ldr r0, _080D8684 @ =gEnigmaBerries
adds r1, r0
adds r0, r6, 0
bl StringCopy
@@ -2481,8 +2481,8 @@ _080D8628:
_080D8674: .4byte gBattleTypeFlags
_080D8678: .4byte gUnknown_202273C
_080D867C: .4byte gBattleStruct
-_080D8680: .4byte gUnknown_2023D6F
-_080D8684: .4byte gUnknown_2023F54
+_080D8680: .4byte gPotentialItemEffectBattler
+_080D8684: .4byte gEnigmaBerries
_080D8688: .4byte gUnknown_83FD8AF
_080D868C:
ldr r1, _080D8698 @ =gUnknown_83FD8A2
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 9d165dd4c..ee6b44113 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -67,7 +67,7 @@ _0801D7D6:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _0801D7EE
@@ -230,7 +230,7 @@ _0801D944: .4byte gUnknown_2023D74
_0801D948: .4byte gUnknown_81D8FAA
_0801D94C:
movs r2, 0
- ldr r0, _0801D9C8 @ =gUnknown_2023BCC
+ ldr r0, _0801D9C8 @ =gBattlersCount
ldrb r0, [r0]
cmp r2, r0
bge _0801D98E
@@ -280,7 +280,7 @@ _0801D98E:
negs r0, r0
ands r0, r3
strb r0, [r1]
- ldr r4, _0801D9E0 @ =gUnknown_2023D6A
+ ldr r4, _0801D9E0 @ =gLastUsedAbility
movs r0, 0x1F
strb r0, [r4]
bl BattleScriptPushCursor
@@ -293,13 +293,13 @@ _0801D98E:
bl sub_80C71D0
b _0801DAFC
.align 2, 0
-_0801D9C8: .4byte gUnknown_2023BCC
+_0801D9C8: .4byte gBattlersCount
_0801D9CC: .4byte gUnknown_2023E8C
_0801D9D0: .4byte gBattleMoves
_0801D9D4: .4byte gUnknown_2023BDE
_0801D9D8: .4byte gCurrentMove
_0801D9DC: .4byte gUnknown_2023ECC
-_0801D9E0: .4byte gUnknown_2023D6A
+_0801D9E0: .4byte gLastUsedAbility
_0801D9E4: .4byte gUnknown_2023D74
_0801D9E8: .4byte gUnknown_81D938D
_0801D9EC:
@@ -495,7 +495,7 @@ _0801DB70:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0801DB8E
@@ -724,7 +724,7 @@ _0801DD36:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
lsls r4, r5, 1
@@ -735,7 +735,7 @@ _0801DD36:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0801DD86
@@ -818,7 +818,7 @@ sub_801DDC4: @ 801DDC4
beq _0801DE12
ldr r0, _0801DE6C @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0801DE56
@@ -844,7 +844,7 @@ _0801DE12:
bne _0801DE48
ldr r0, _0801DE6C @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0801DE56
@@ -1047,7 +1047,7 @@ _0801DFC0:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
str r4, [sp, 0x4]
@@ -1058,7 +1058,7 @@ _0801DFC0:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0801E012
@@ -1110,7 +1110,7 @@ _0801E050:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1120,7 +1120,7 @@ _0801E050:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0801E0A8
@@ -1179,7 +1179,7 @@ _0801E0D4:
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _0801E118
- ldr r1, _0801E114 @ =gUnknown_2023F54
+ ldr r1, _0801E114 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -1194,7 +1194,7 @@ _0801E104: .4byte gBattleWeather
_0801E108: .4byte gUnknown_82504FC
_0801E10C: .4byte gBattleMons
_0801E110: .4byte gBattlerTarget
-_0801E114: .4byte gUnknown_2023F54
+_0801E114: .4byte gEnigmaBerries
_0801E118:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -1209,7 +1209,7 @@ _0801E118:
lsls r0, 24
lsrs r2, r0, 24
_0801E134:
- ldr r0, _0801E198 @ =gUnknown_2023D6F
+ ldr r0, _0801E198 @ =gPotentialItemEffectBattler
ldr r1, _0801E19C @ =gBattlerTarget
ldrb r1, [r1]
strb r1, [r0]
@@ -1259,7 +1259,7 @@ _0801E192:
movs r0, 0x2
b _0801E1B4
.align 2, 0
-_0801E198: .4byte gUnknown_2023D6F
+_0801E198: .4byte gPotentialItemEffectBattler
_0801E19C: .4byte gBattlerTarget
_0801E1A0: .4byte gMoveResultFlags
_0801E1A4: .4byte gBattleTypeFlags
@@ -1389,7 +1389,7 @@ _0801E296:
adds r1, r3, 0
movs r2, 0x2E
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0x1
@@ -1402,7 +1402,7 @@ _0801E2AC:
movs r0, 0x10
movs r2, 0x2E
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
adds r6, r0
@@ -1575,7 +1575,7 @@ sub_801E408: @ 801E408
ldrh r0, [r0, 0x2E]
cmp r0, 0xAF
bne _0801E438
- ldr r1, _0801E434 @ =gUnknown_2023F54
+ ldr r1, _0801E434 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -1585,13 +1585,13 @@ sub_801E408: @ 801E408
.align 2, 0
_0801E42C: .4byte gBattleMons
_0801E430: .4byte sBattler_AI
-_0801E434: .4byte gUnknown_2023F54
+_0801E434: .4byte gEnigmaBerries
_0801E438:
bl ItemId_GetHoldEffect
lsls r0, 24
lsrs r6, r0, 24
_0801E440:
- ldr r1, _0801E4CC @ =gUnknown_2023D6F
+ ldr r1, _0801E4CC @ =gPotentialItemEffectBattler
ldr r3, _0801E4D0 @ =sBattler_AI
ldrb r0, [r3]
strb r0, [r1]
@@ -1668,7 +1668,7 @@ _0801E4C0:
adds r0, r2, r0
b _0801E4E2
.align 2, 0
-_0801E4CC: .4byte gUnknown_2023D6F
+_0801E4CC: .4byte gPotentialItemEffectBattler
_0801E4D0: .4byte sBattler_AI
_0801E4D4: .4byte gBattleMons
_0801E4D8: .4byte gBattleMoves
@@ -1774,7 +1774,7 @@ atk05_damagecalc: @ 801E59C
ldr r4, _0801E654 @ =gSideAffecting
ldr r5, _0801E658 @ =gBattlerTarget
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
lsls r1, 1
@@ -1802,7 +1802,7 @@ atk05_damagecalc: @ 801E59C
str r4, [sp, 0x8]
ldrb r4, [r5]
str r4, [sp, 0xC]
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldr r4, _0801E670 @ =gBattleMoveDamage
ldr r1, _0801E674 @ =gCritMultiplier
ldrb r1, [r1]
@@ -1889,7 +1889,7 @@ AI_CalcDmg: @ 801E68C
lsrs r5, 24
ldr r4, _0801E744 @ =gSideAffecting
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
lsls r1, 1
@@ -1914,7 +1914,7 @@ AI_CalcDmg: @ 801E68C
str r4, [sp, 0x4]
str r7, [sp, 0x8]
str r5, [sp, 0xC]
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldr r4, _0801E758 @ =gBattleMoveDamage
movs r1, 0
strh r1, [r6]
@@ -2175,7 +2175,7 @@ _0801E8C0:
mov r1, r8
cmp r1, 0x4
bne _0801E938
- ldr r3, _0801E924 @ =gUnknown_2023D6A
+ ldr r3, _0801E924 @ =gLastUsedAbility
strb r0, [r3]
ldr r2, _0801E928 @ =gMoveResultFlags
ldrb r0, [r2]
@@ -2206,7 +2206,7 @@ _0801E914: .4byte gBattleMons
_0801E918: .4byte sBattler_AI
_0801E91C: .4byte gBattleMoveDamage
_0801E920: .4byte gBattlerTarget
-_0801E924: .4byte gUnknown_2023D6A
+_0801E924: .4byte gLastUsedAbility
_0801E928: .4byte gMoveResultFlags
_0801E92C: .4byte gUnknown_2023DA0
_0801E930: .4byte gUnknown_2023DA8
@@ -2333,7 +2333,7 @@ _0801EA10:
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0801EA52
- ldr r3, _0801EAA0 @ =gUnknown_2023D6A
+ ldr r3, _0801EAA0 @ =gLastUsedAbility
strb r6, [r3]
movs r0, 0x1
orrs r0, r4
@@ -2391,7 +2391,7 @@ _0801EA90: .4byte sBattler_AI
_0801EA94: .4byte gCurrentMove
_0801EA98: .4byte gMoveResultFlags
_0801EA9C: .4byte gBattleMoves
-_0801EAA0: .4byte gUnknown_2023D6A
+_0801EAA0: .4byte gLastUsedAbility
_0801EAA4: .4byte gUnknown_2023DA0
_0801EAA8: .4byte gUnknown_2023DA8
_0801EAAC: .4byte gUnknown_2023E82
@@ -2458,7 +2458,7 @@ _0801EB08:
mov r0, r12
cmp r0, 0x4
bne _0801EB4C
- ldr r0, _0801EB44 @ =gUnknown_2023D6A
+ ldr r0, _0801EB44 @ =gLastUsedAbility
strb r1, [r0]
ldr r0, _0801EB48 @ =gUnknown_2023E82
mov r1, r12
@@ -2470,7 +2470,7 @@ _0801EB08:
.align 2, 0
_0801EB3C: .4byte gBattleMons
_0801EB40: .4byte gBattlerTarget
-_0801EB44: .4byte gUnknown_2023D6A
+_0801EB44: .4byte gLastUsedAbility
_0801EB48: .4byte gUnknown_2023E82
_0801EB4C:
ldr r1, _0801EB58 @ =gUnknown_824F050
@@ -2702,7 +2702,7 @@ _0801ECC2:
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0801ED18
- ldr r0, _0801ED34 @ =gUnknown_2023D6A
+ ldr r0, _0801ED34 @ =gLastUsedAbility
strb r4, [r0]
ldr r1, _0801ED38 @ =gUnknown_2023E82
movs r0, 0x3
@@ -2723,7 +2723,7 @@ _0801ED24: .4byte gMoveResultFlags
_0801ED28: .4byte gUnknown_2023E8C
_0801ED2C: .4byte sBattler_AI
_0801ED30: .4byte gBattleMoves
-_0801ED34: .4byte gUnknown_2023D6A
+_0801ED34: .4byte gLastUsedAbility
_0801ED38: .4byte gUnknown_2023E82
thumb_func_end CheckWonderGuardAndLevitate
@@ -3278,7 +3278,7 @@ _0801F136:
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _0801F16C
- ldr r1, _0801F168 @ =gUnknown_2023F54
+ ldr r1, _0801F168 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -3290,7 +3290,7 @@ _0801F136:
_0801F15C: .4byte gBattleMoveDamage
_0801F160: .4byte gBattleMons
_0801F164: .4byte gBattlerTarget
-_0801F168: .4byte gUnknown_2023F54
+_0801F168: .4byte gEnigmaBerries
_0801F16C:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -3304,7 +3304,7 @@ _0801F16C:
lsls r0, 24
lsrs r6, r0, 24
_0801F186:
- ldr r1, _0801F248 @ =gUnknown_2023D6F
+ ldr r1, _0801F248 @ =gPotentialItemEffectBattler
ldr r5, _0801F24C @ =gBattlerTarget
ldrb r0, [r5]
strb r0, [r1]
@@ -3401,7 +3401,7 @@ _0801F216:
strb r1, [r0]
b _0801F294
.align 2, 0
-_0801F248: .4byte gUnknown_2023D6F
+_0801F248: .4byte gPotentialItemEffectBattler
_0801F24C: .4byte gBattlerTarget
_0801F250: .4byte gUnknown_2023ECC
_0801F254: .4byte gBattleMons
@@ -3482,7 +3482,7 @@ _0801F2E6:
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _0801F31C
- ldr r1, _0801F318 @ =gUnknown_2023F54
+ ldr r1, _0801F318 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -3494,7 +3494,7 @@ _0801F2E6:
_0801F30C: .4byte gBattleMoveDamage
_0801F310: .4byte gBattleMons
_0801F314: .4byte gBattlerTarget
-_0801F318: .4byte gUnknown_2023F54
+_0801F318: .4byte gEnigmaBerries
_0801F31C:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -3508,7 +3508,7 @@ _0801F31C:
lsls r0, 24
lsrs r6, r0, 24
_0801F336:
- ldr r1, _0801F3DC @ =gUnknown_2023D6F
+ ldr r1, _0801F3DC @ =gPotentialItemEffectBattler
ldr r5, _0801F3E0 @ =gBattlerTarget
ldrb r0, [r5]
strb r0, [r1]
@@ -3591,7 +3591,7 @@ _0801F3B2:
strb r1, [r0]
b _0801F420
.align 2, 0
-_0801F3DC: .4byte gUnknown_2023D6F
+_0801F3DC: .4byte gPotentialItemEffectBattler
_0801F3E0: .4byte gBattlerTarget
_0801F3E4: .4byte gUnknown_2023ECC
_0801F3E8: .4byte gBattleMons
@@ -3719,7 +3719,7 @@ _0801F4CE:
ldrh r1, [r3]
ldr r6, _0801F540 @ =gBattleScripting
ldrb r2, [r6, 0x18]
- ldr r0, _0801F550 @ =gUnknown_2024020
+ ldr r0, _0801F550 @ =gBattleMovePower
ldrh r3, [r0]
ldr r0, _0801F554 @ =gBattleMoveDamage
ldr r0, [r0]
@@ -3764,7 +3764,7 @@ _0801F540: .4byte gBattleScripting
_0801F544: .4byte gMoveResultFlags
_0801F548: .4byte gActiveBattler
_0801F54C: .4byte sBattler_AI
-_0801F550: .4byte gUnknown_2024020
+_0801F550: .4byte gBattleMovePower
_0801F554: .4byte gBattleMoveDamage
_0801F558: .4byte gBattleMons
_0801F55C: .4byte gDisableStructs
@@ -3880,7 +3880,7 @@ _0801F636:
ldrb r0, [r4]
bl MarkBufferBankForExecution
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801F662
@@ -4645,7 +4645,7 @@ _0801FC38:
adds r0, r2
ldrh r0, [r0, 0x2E]
strh r0, [r4]
- ldr r1, _0801FC6C @ =gUnknown_2023D6F
+ ldr r1, _0801FC6C @ =gPotentialItemEffectBattler
ldrb r0, [r3]
strb r0, [r1]
movs r0, 0x3F
@@ -4659,7 +4659,7 @@ _0801FC38:
_0801FC60: .4byte gUnknown_2023D68
_0801FC64: .4byte gBattleMons
_0801FC68: .4byte gBattlerTarget
-_0801FC6C: .4byte gUnknown_2023D6F
+_0801FC6C: .4byte gPotentialItemEffectBattler
_0801FC70: .4byte gUnknown_2023D74
_0801FC74: .4byte gUnknown_81D9641
_0801FC78:
@@ -4720,7 +4720,7 @@ _0801FCD0:
adds r0, r2
ldrh r0, [r0, 0x2E]
strh r0, [r4]
- ldr r1, _0801FD0C @ =gUnknown_2023D6F
+ ldr r1, _0801FD0C @ =gPotentialItemEffectBattler
ldrb r0, [r3]
strb r0, [r1]
movs r0, 0x3F
@@ -4734,7 +4734,7 @@ _0801FCD0:
_0801FD00: .4byte gUnknown_2023D68
_0801FD04: .4byte gBattleMons
_0801FD08: .4byte gBattlerTarget
-_0801FD0C: .4byte gUnknown_2023D6F
+_0801FD0C: .4byte gPotentialItemEffectBattler
_0801FD10: .4byte gUnknown_2023D74
_0801FD14: .4byte gUnknown_81D9641
_0801FD18:
@@ -4985,7 +4985,7 @@ BankGetTurnOrder: @ 801FEE8
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
- ldr r0, _0801FF18 @ =gUnknown_2023BCC
+ ldr r0, _0801FF18 @ =gBattlersCount
ldrb r3, [r0]
cmp r1, r3
bge _0801FF0E
@@ -5008,7 +5008,7 @@ _0801FF0E:
pop {r1}
bx r1
.align 2, 0
-_0801FF18: .4byte gUnknown_2023BCC
+_0801FF18: .4byte gBattlersCount
_0801FF1C: .4byte gUnknown_2023BDE
thumb_func_end BankGetTurnOrder
@@ -5076,7 +5076,7 @@ _0801FF84:
beq _0801FFB2
mov r2, r9
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5111,7 +5111,7 @@ _0801FFB2:
_0801FFE6:
mov r3, r9
ldrb r0, [r3]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r2, _080200B4 @ =gSideAffecting
movs r1, 0x1
ands r1, r0
@@ -5240,7 +5240,7 @@ _080200D6:
ldr r0, _08020130 @ =gActiveBattler
movs r1, 0
strb r1, [r0]
- ldr r1, _08020134 @ =gUnknown_2023BCC
+ ldr r1, _08020134 @ =gBattlersCount
ldrb r3, [r1]
adds r7, r0, 0
mov r12, r1
@@ -5275,10 +5275,10 @@ _08020110:
b _08020144
.align 2, 0
_08020130: .4byte gActiveBattler
-_08020134: .4byte gUnknown_2023BCC
+_08020134: .4byte gBattlersCount
_08020138:
ldr r0, _08020184 @ =gActiveBattler
- ldr r2, _08020188 @ =gUnknown_2023BCC
+ ldr r2, _08020188 @ =gBattlersCount
ldrb r1, [r2]
strb r1, [r0]
adds r7, r0, 0
@@ -5321,7 +5321,7 @@ _0802017C:
b _08020560
.align 2, 0
_08020184: .4byte gActiveBattler
-_08020188: .4byte gUnknown_2023BCC
+_08020188: .4byte gBattlersCount
_0802018C:
mov r2, r9
ldrb r1, [r2]
@@ -5337,7 +5337,7 @@ _0802018C:
cmp r5, 0x80
bne _080201E4
_080201A6:
- ldr r0, _080201D4 @ =gUnknown_2023D6A
+ ldr r0, _080201D4 @ =gLastUsedAbility
strb r1, [r0]
mov r3, r9
ldrb r0, [r3]
@@ -5361,7 +5361,7 @@ _080201C0:
_080201D2:
b _080204A8
.align 2, 0
-_080201D4: .4byte gUnknown_2023D6A
+_080201D4: .4byte gLastUsedAbility
_080201D8: .4byte gUnknown_2023D74
_080201DC: .4byte gUnknown_81D9438
_080201E0: .4byte gUnknown_2023DD0
@@ -5460,7 +5460,7 @@ _08020270:
cmp r5, 0x80
bne _080202B4
_0802028A:
- ldr r0, _080202A8 @ =gUnknown_2023D6A
+ ldr r0, _080202A8 @ =gLastUsedAbility
strb r1, [r0]
mov r3, r9
ldrb r0, [r3]
@@ -5473,7 +5473,7 @@ _0802028A:
ldr r0, _080202B0 @ =gUnknown_81D9420
b _080201C0
.align 2, 0
-_080202A8: .4byte gUnknown_2023D6A
+_080202A8: .4byte gLastUsedAbility
_080202AC: .4byte gUnknown_2023D74
_080202B0: .4byte gUnknown_81D9420
_080202B4:
@@ -5561,7 +5561,7 @@ _08020346:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -5571,7 +5571,7 @@ _08020346:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _08020382
@@ -5651,7 +5651,7 @@ _080203E4:
beq _08020402
b _08020570
_08020402:
- ldr r0, _08020420 @ =gUnknown_2023D6A
+ ldr r0, _08020420 @ =gLastUsedAbility
strb r2, [r0]
mov r3, r9
ldrb r0, [r3]
@@ -5664,7 +5664,7 @@ _08020402:
ldr r0, _08020428 @ =gUnknown_81D942C
b _080201C0
.align 2, 0
-_08020420: .4byte gUnknown_2023D6A
+_08020420: .4byte gLastUsedAbility
_08020424: .4byte gUnknown_2023D74
_08020428: .4byte gUnknown_81D942C
_0802042C:
@@ -5694,7 +5694,7 @@ _08020440:
cmp r5, 0x80
bne _080204AE
_0802045A:
- ldr r0, _08020494 @ =gUnknown_2023D6A
+ ldr r0, _08020494 @ =gLastUsedAbility
strb r1, [r0]
mov r1, r9
ldrb r0, [r1]
@@ -5721,7 +5721,7 @@ _08020484:
str r1, [r2]
bl _0802110A
.align 2, 0
-_08020494: .4byte gUnknown_2023D6A
+_08020494: .4byte gLastUsedAbility
_08020498: .4byte gUnknown_2023D74
_0802049C: .4byte gUnknown_81D9438
_080204A0: .4byte gUnknown_2023DD0
@@ -6123,7 +6123,7 @@ _0802082C:
beq _0802084C
bl _080210EC
_0802084C:
- ldr r0, _08020864 @ =gUnknown_2023D6A
+ ldr r0, _08020864 @ =gLastUsedAbility
strb r1, [r0]
mov r1, r9
ldrb r0, [r1]
@@ -6134,7 +6134,7 @@ _0802084C:
str r0, [r1]
bl _0802110A
.align 2, 0
-_08020864: .4byte gUnknown_2023D6A
+_08020864: .4byte gLastUsedAbility
_08020868: .4byte gUnknown_2023D74
_0802086C: .4byte gUnknown_81D9452
_08020870:
@@ -6228,7 +6228,7 @@ _08020930: .4byte gUnknown_2023E82
_08020934:
ldr r5, _08020984 @ =sBattler_AI
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
cmp r1, 0
@@ -6656,11 +6656,11 @@ _08020CA8:
_08020CB8:
ldr r4, _08020D68 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6728,7 +6728,7 @@ _08020D26:
ldr r1, _08020D88 @ =gUnknown_2023D74
ldr r0, _08020D8C @ =gUnknown_81D948E
str r0, [r1]
- ldr r1, _08020D90 @ =gUnknown_2023D6A
+ ldr r1, _08020D90 @ =gLastUsedAbility
ldrb r0, [r7]
muls r0, r3
add r0, r8
@@ -6751,7 +6751,7 @@ _08020D80: .4byte gBattleMons
_08020D84: .4byte gBattlerTarget
_08020D88: .4byte gUnknown_2023D74
_08020D8C: .4byte gUnknown_81D948E
-_08020D90: .4byte gUnknown_2023D6A
+_08020D90: .4byte gLastUsedAbility
_08020D94:
ldr r4, _08020E60 @ =sBattler_AI
mov r10, r4
@@ -7068,7 +7068,7 @@ _08021018:
ldrh r0, [r1, 0x2E]
cmp r0, 0
beq _080210EC
- ldr r0, _0802104C @ =gUnknown_2023D6A
+ ldr r0, _0802104C @ =gLastUsedAbility
strb r2, [r0]
ldr r1, _08021050 @ =gUnknown_2023D74
ldr r0, _08021054 @ =gUnknown_81D948E
@@ -7078,7 +7078,7 @@ _08021018:
bl sub_80C71D0
b _0802110A
.align 2, 0
-_0802104C: .4byte gUnknown_2023D6A
+_0802104C: .4byte gLastUsedAbility
_08021050: .4byte gUnknown_2023D74
_08021054: .4byte gUnknown_81D948E
_08021058:
@@ -7086,7 +7086,7 @@ _08021058:
cmp r0, 0
beq _080210EC
adds r0, r3, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _080210D0 @ =gUnknown_2023D68
@@ -7415,7 +7415,7 @@ _080212E4:
bl BattleScriptPop
str r4, [r6]
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, _08021328 @ =gSideAffecting
lsls r0, 24
lsrs r0, 23
@@ -7493,7 +7493,7 @@ _08021392:
bl BattleScriptPush
str r4, [r6]
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080213F4
@@ -7608,10 +7608,10 @@ _08021492:
ldr r0, _0802155C @ =sBattler_AI
mov r8, r0
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -7955,12 +7955,12 @@ atk1E_jumpifability: @ 8021730
movs r0, 0xD
adds r2, r5, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08021804
- ldr r1, _0802178C @ =gUnknown_2023D6A
+ ldr r1, _0802178C @ =gLastUsedAbility
strb r5, [r1]
str r7, [r6]
subs r4, 0x1
@@ -7971,7 +7971,7 @@ atk1E_jumpifability: @ 8021730
.align 2, 0
_08021784: .4byte gUnknown_2023D74
_08021788: .4byte sBattler_AI
-_0802178C: .4byte gUnknown_2023D6A
+_0802178C: .4byte gLastUsedAbility
_08021790:
cmp r0, 0x9
bne _080217C8
@@ -7982,12 +7982,12 @@ _08021790:
movs r0, 0xC
adds r2, r5, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08021804
- ldr r1, _080217C4 @ =gUnknown_2023D6A
+ ldr r1, _080217C4 @ =gLastUsedAbility
strb r5, [r1]
str r7, [r6]
subs r4, 0x1
@@ -7997,7 +7997,7 @@ _08021790:
b _080217EC
.align 2, 0
_080217C0: .4byte sBattler_AI
-_080217C4: .4byte gUnknown_2023D6A
+_080217C4: .4byte gLastUsedAbility
_080217C8:
ldrb r0, [r2, 0x1]
bl sub_8016E24
@@ -8011,7 +8011,7 @@ _080217C8:
ldrb r1, [r0]
cmp r1, r8
bne _08021804
- ldr r0, _080217FC @ =gUnknown_2023D6A
+ ldr r0, _080217FC @ =gLastUsedAbility
strb r1, [r0]
str r7, [r6]
ldrb r1, [r0]
@@ -8023,7 +8023,7 @@ _080217EC:
b _0802180A
.align 2, 0
_080217F8: .4byte gBattleMons
-_080217FC: .4byte gUnknown_2023D6A
+_080217FC: .4byte gLastUsedAbility
_08021800: .4byte gBattleScripting
_08021804:
ldr r0, [r6]
@@ -8048,7 +8048,7 @@ atk1F_jumpifsideaffecting: @ 8021818
bne _08021838
ldr r0, _08021834 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
b _08021842
.align 2, 0
_08021830: .4byte gUnknown_2023D74
@@ -8056,7 +8056,7 @@ _08021834: .4byte sBattler_AI
_08021838:
ldr r0, _08021878 @ =gBattlerTarget
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r4, 0x1
_08021842:
ands r4, r0
@@ -8402,7 +8402,7 @@ _08021AC8:
_08021AE4:
ldr r4, _08021B34 @ =gUnknown_2023D6D
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -9573,7 +9573,7 @@ _08022498:
beq _08022582
movs r3, 0
movs r5, 0
- ldr r0, _08022548 @ =gUnknown_2023BCC
+ ldr r0, _08022548 @ =gBattlersCount
ldrb r1, [r0]
mov r12, r0
ldr r7, _0802254C @ =gUnknown_2023D74
@@ -9650,7 +9650,7 @@ _08022538: .4byte gPlayerParty
_0802253C: .4byte gUnknown_2023E8A
_08022540: .4byte gEnemyParty
_08022544: .4byte gBattleTypeFlags
-_08022548: .4byte gUnknown_2023BCC
+_08022548: .4byte gBattlersCount
_0802254C: .4byte gUnknown_2023D74
_08022550: .4byte gUnknown_2023DD0
_08022554: .4byte gUnknown_2023ECC
@@ -10859,7 +10859,7 @@ atk43_jumpifabilitypresent: @ 8022DCC
movs r0, 0x13
movs r1, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08022E08
@@ -11226,13 +11226,13 @@ _0802309C:
ldr r6, _08023120 @ =gActiveBattler
ldrb r0, [r6]
str r3, [sp]
- bl GetBankIdentity
+ bl GetBattlerPosition
mov r1, r10
ands r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
- ldr r1, _08023124 @ =gUnknown_2023DE4
+ ldr r1, _08023124 @ =gSideTimers
adds r0, r1
ldrb r0, [r0, 0x4]
ldr r3, [sp]
@@ -11295,7 +11295,7 @@ _08023104:
b _08023190
.align 2, 0
_08023120: .4byte gActiveBattler
-_08023124: .4byte gUnknown_2023DE4
+_08023124: .4byte gSideTimers
_08023128: .4byte gBattleMons
_0802312C: .4byte gUnknown_2023D74
_08023130:
@@ -11454,7 +11454,7 @@ _08023232:
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _08023278
- ldr r1, _08023274 @ =gUnknown_2023F54
+ ldr r1, _08023274 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -11467,7 +11467,7 @@ _08023264: .4byte 0x0000ffff
_08023268: .4byte gUnknown_2023D74
_0802326C: .4byte gBattleMons
_08023270: .4byte sBattler_AI
-_08023274: .4byte gUnknown_2023F54
+_08023274: .4byte gEnigmaBerries
_08023278:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -11639,10 +11639,10 @@ _080233EE:
b _080237C8
_080233F8:
adds r0, r1, 0
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -11813,7 +11813,7 @@ _0802355C:
movs r0, 0x7
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _08023576
@@ -11832,7 +11832,7 @@ _08023580:
movs r0, 0x4
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
b _080236F6
.align 2, 0
_08023594: .4byte gBattlerTarget
@@ -11843,7 +11843,7 @@ _08023598:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _080235B0
@@ -11864,7 +11864,7 @@ _080235C0:
movs r0, 0x8
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _080235DA
@@ -11963,7 +11963,7 @@ _08023684: .4byte gBattleMons
_08023688: .4byte sBattler_AI
_0802368C:
movs r4, 0
- ldr r0, _080236C0 @ =gUnknown_2023BCC
+ ldr r0, _080236C0 @ =gBattlersCount
ldrb r3, [r0]
cmp r4, r3
blt _08023698
@@ -11991,7 +11991,7 @@ _080236B0:
blt _080236A2
b _08023846
.align 2, 0
-_080236C0: .4byte gUnknown_2023BCC
+_080236C0: .4byte gBattlersCount
_080236C4: .4byte gBattleStruct
_080236C8: .4byte gBattleMons
_080236CC:
@@ -12135,7 +12135,7 @@ _080237D8:
lsls r0, 29
cmp r0, 0
blt _08023846
- ldr r0, _08023810 @ =gUnknown_2023BCC
+ ldr r0, _08023810 @ =gBattlersCount
ldrb r0, [r0]
cmp r2, r0
bcs _08023846
@@ -12152,12 +12152,12 @@ _08023806:
.align 2, 0
_08023808: .4byte gUnknown_2023ECC
_0802380C: .4byte gBattlerTarget
-_08023810: .4byte gUnknown_2023BCC
+_08023810: .4byte gBattlersCount
_08023814: .4byte gStatuses3
_08023818: .4byte 0x000400c0
_0802381C:
movs r4, 0
- ldr r0, _08023850 @ =gUnknown_2023BCC
+ ldr r0, _08023850 @ =gBattlersCount
ldrb r2, [r0]
cmp r4, r2
bge _08023846
@@ -12186,7 +12186,7 @@ _08023846:
strb r0, [r1, 0x14]
b _08023BB4
.align 2, 0
-_08023850: .4byte gUnknown_2023BCC
+_08023850: .4byte gBattlersCount
_08023854: .4byte gDisableStructs
_08023858: .4byte 0xfeffffff
_0802385C: .4byte gUnknown_2023C34
@@ -12571,12 +12571,12 @@ _08023B28:
bne _08023BAC
ldr r7, _08023C28 @ =gBattlerTarget
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _08023C2C @ =gBattleMons
@@ -12692,7 +12692,7 @@ atk4A_typecalc2: @ 8023C38
mov r1, r8
cmp r1, 0x4
bne _08023CCC
- ldr r3, _08023CAC @ =gUnknown_2023D6A
+ ldr r3, _08023CAC @ =gLastUsedAbility
strb r0, [r3]
ldr r2, _08023CB0 @ =gMoveResultFlags
ldrb r0, [r2]
@@ -12716,7 +12716,7 @@ _08023C9C: .4byte gBattleMoves
_08023CA0: .4byte gCurrentMove
_08023CA4: .4byte gBattleMons
_08023CA8: .4byte gBattlerTarget
-_08023CAC: .4byte gUnknown_2023D6A
+_08023CAC: .4byte gLastUsedAbility
_08023CB0: .4byte gMoveResultFlags
_08023CB4: .4byte gUnknown_2023DA0
_08023CB8: .4byte gUnknown_2023E82
@@ -12892,7 +12892,7 @@ _08023DF0:
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _08023E2A
- ldr r3, _08023E70 @ =gUnknown_2023D6A
+ ldr r3, _08023E70 @ =gLastUsedAbility
strb r6, [r3]
ldr r2, _08023E74 @ =gMoveResultFlags
ldrb r0, [r2]
@@ -12943,7 +12943,7 @@ _08023E60: .4byte gBattlerTarget
_08023E64: .4byte sBattler_AI
_08023E68: .4byte gCurrentMove
_08023E6C: .4byte gBattleMoves
-_08023E70: .4byte gUnknown_2023D6A
+_08023E70: .4byte gLastUsedAbility
_08023E74: .4byte gMoveResultFlags
_08023E78: .4byte gUnknown_2023DA0
_08023E7C: .4byte gUnknown_2023E82
@@ -13023,7 +13023,7 @@ atk4C_getswitchedmondata: @ 8023ED8
ldrb r2, [r0]
movs r0, 0
movs r1, 0
- bl EmitGetMonData
+ bl BtlController_EmitGetMonData
ldrb r0, [r4]
bl MarkBufferBankForExecution
ldr r0, [r5]
@@ -13126,7 +13126,7 @@ _08023F84:
adds r1, 0x20
strb r0, [r1]
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080240B8 @ =gUnknown_2023F20
@@ -13247,7 +13247,7 @@ sub_80240D4: @ 80240D4
ldr r6, _08024170 @ =gActiveBattler
strb r0, [r6]
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -13383,7 +13383,7 @@ _08024204:
beq _080242A4
ldr r4, _08024294 @ =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
ldr r1, _08024298 @ =gPlayerParty
@@ -13453,13 +13453,13 @@ _080242A0: .4byte gBattlerPartyIndexes
_080242A4:
ldr r0, _080242D4 @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bne _080242E4
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
ldr r0, [r5]
@@ -13467,7 +13467,7 @@ _080242A4:
cmp r0, 0
beq _080242D8
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
b _080242DA
@@ -13483,7 +13483,7 @@ _080242DA:
_080242E0: .4byte gEnemyParty
_080242E4:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
ldr r0, [r5]
@@ -13492,7 +13492,7 @@ _080242E4:
cmp r0, 0
beq _08024304
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
b _08024306
@@ -13654,7 +13654,7 @@ _08024422:
beq _08024510
ldr r1, _080244A0 @ =gActiveBattler
strb r7, [r1]
- ldr r0, _080244A4 @ =gUnknown_2023BCC
+ ldr r0, _080244A4 @ =gBattlersCount
ldrb r0, [r0]
cmp r7, r0
bcc _0802443C
@@ -13708,7 +13708,7 @@ _08024446:
_08024498: .4byte gUnknown_2023D74
_0802449C: .4byte gBattleTypeFlags
_080244A0: .4byte gActiveBattler
-_080244A4: .4byte gUnknown_2023BCC
+_080244A4: .4byte gBattlersCount
_080244A8: .4byte gUnknown_2023DD0
_080244AC: .4byte gBitTable
_080244B0: .4byte gAbsentBattlerFlags
@@ -13747,7 +13747,7 @@ _080244F6:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _0802450C @ =gUnknown_2023BCC
+ ldr r1, _0802450C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -13755,7 +13755,7 @@ _080244F6:
bcc _08024446
b _080248A6
.align 2, 0
-_0802450C: .4byte gUnknown_2023BCC
+_0802450C: .4byte gBattlersCount
_08024510:
ands r0, r1
cmp r0, 0
@@ -14387,7 +14387,7 @@ _08024A4C:
ldr r4, _08024AA4 @ =gBitTable
ldr r2, [r4]
ands r2, r5
- ldr r6, _08024AA8 @ =gUnknown_2023BCC
+ ldr r6, _08024AA8 @ =gBattlersCount
cmp r2, 0
bne _08024A88
adds r7, r6, 0
@@ -14424,7 +14424,7 @@ _08024A92:
_08024A9C: .4byte gUnknown_2023DD0
_08024AA0: .4byte gUnknown_2023D6D
_08024AA4: .4byte gBitTable
-_08024AA8: .4byte gUnknown_2023BCC
+_08024AA8: .4byte gBattlersCount
_08024AAC:
movs r0, 0x80
ands r0, r1
@@ -14525,7 +14525,7 @@ _08024B34:
adds r0, 0x6
str r0, [r6]
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08024B94
@@ -14545,7 +14545,7 @@ _08024B94:
ldr r1, _08024BD8 @ =gActiveBattler
movs r0, 0
strb r0, [r1]
- ldr r0, _08024BEC @ =gUnknown_2023BCC
+ ldr r0, _08024BEC @ =gBattlersCount
ldrb r0, [r0]
cmp r0, 0
beq _08024C2E
@@ -14563,7 +14563,7 @@ _08024BC4:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _08024BEC @ =gUnknown_2023BCC
+ ldr r1, _08024BEC @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -14576,15 +14576,15 @@ _08024BDC: .4byte gBattleStruct
_08024BE0: .4byte gBattlerPartyIndexes
_08024BE4: .4byte gBattleResults
_08024BE8: .4byte gBattleTypeFlags
-_08024BEC: .4byte gUnknown_2023BCC
+_08024BEC: .4byte gBattlersCount
_08024BF0:
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _08024C3C @ =gActiveBattler
strb r0, [r4]
ldr r0, _08024C40 @ =gAbsentBattlerFlags
@@ -14654,7 +14654,7 @@ _08024C80:
b _08024E0E
_08024C86:
movs r3, 0
- ldr r0, _08024CB8 @ =gUnknown_2023BCC
+ ldr r0, _08024CB8 @ =gBattlersCount
ldrb r1, [r0]
cmp r3, r1
blt _08024C92
@@ -14682,7 +14682,7 @@ _08024CAC:
blt _08024C9C
b _08024E0E
.align 2, 0
-_08024CB8: .4byte gUnknown_2023BCC
+_08024CB8: .4byte gBattlersCount
_08024CBC: .4byte gBattleStruct
_08024CC0: .4byte gUnknown_20233C4
_08024CC4:
@@ -14905,7 +14905,7 @@ sub_8024E38: @ 8024E38
ands r0, r2
strb r0, [r1]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
ldr r5, _08024F54 @ =gSideAffecting
lsls r0, 24
lsrs r0, 23
@@ -14918,7 +14918,7 @@ sub_8024E38: @ 8024E38
cmp r0, 0
bne _08024F88
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 23
adds r0, r5
@@ -14950,7 +14950,7 @@ sub_8024E38: @ 8024E38
cmp r0, 0x1A
beq _08024F88
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 23
adds r0, r5
@@ -14959,8 +14959,8 @@ sub_8024E38: @ 8024E38
orrs r1, r2
strh r1, [r0]
ldrb r0, [r4]
- bl GetBankSide
- ldr r2, _08024F5C @ =gUnknown_2023DE4
+ bl GetBattlerSide
+ ldr r2, _08024F5C @ =gSideTimers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -15003,7 +15003,7 @@ _08024F4C: .4byte gBitTable
_08024F50: .4byte gUnknown_2023ECC
_08024F54: .4byte gSideAffecting
_08024F58: .4byte gBattleMons
-_08024F5C: .4byte gUnknown_2023DE4
+_08024F5C: .4byte gSideTimers
_08024F60: .4byte gBattleMoveDamage
_08024F64: .4byte gBattleScripting
_08024F68: .4byte gUnknown_81D8CBE
@@ -15047,7 +15047,7 @@ _08024FAE:
str r0, [sp]
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08024FC4
@@ -15061,7 +15061,7 @@ _08024FC4:
cmp r0, 0
bne _080250C6
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, _08025070 @ =gSideAffecting
lsls r0, 24
lsrs r0, 23
@@ -15071,7 +15071,7 @@ _08024FC4:
ands r1, r2
strh r1, [r0]
movs r4, 0
- ldr r0, _08025078 @ =gUnknown_2023BCC
+ ldr r0, _08025078 @ =gBattlersCount
ldrb r3, [r0]
cmp r4, r3
bge _08025012
@@ -15094,7 +15094,7 @@ _0802500A:
blt _08024FFC
_08025012:
movs r4, 0
- ldr r0, _08025078 @ =gUnknown_2023BCC
+ ldr r0, _08025078 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bge _08025046
@@ -15103,7 +15103,7 @@ _08025012:
_08025020:
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 23
adds r0, 0xA8
@@ -15115,7 +15115,7 @@ _08025020:
ldrh r0, [r0, 0x28]
strh r0, [r1]
adds r4, 0x1
- ldr r0, _08025078 @ =gUnknown_2023BCC
+ ldr r0, _08025078 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _08025020
@@ -15141,7 +15141,7 @@ _08025068: .4byte gActiveBattler
_0802506C: .4byte gDisableStructs
_08025070: .4byte gSideAffecting
_08025074: .4byte 0x0000fdff
-_08025078: .4byte gUnknown_2023BCC
+_08025078: .4byte gBattlersCount
_0802507C: .4byte gUnknown_2023BDE
_08025080: .4byte gUnknown_2023BDA
_08025084: .4byte gBattleStruct
@@ -15150,7 +15150,7 @@ _0802508C: .4byte gUnknown_2023DD0
_08025090: .4byte gUnknown_2023D6D
_08025094: .4byte gBitTable
_08025098:
- ldr r0, _080250D4 @ =gUnknown_2023BCC
+ ldr r0, _080250D4 @ =gBattlersCount
ldrb r3, [r1]
ldrb r0, [r0]
cmp r3, r0
@@ -15184,7 +15184,7 @@ _080250C6:
pop {r0}
bx r0
.align 2, 0
-_080250D4: .4byte gUnknown_2023BCC
+_080250D4: .4byte gBattlersCount
_080250D8: .4byte gAbsentBattlerFlags
thumb_func_end sub_8024E38
@@ -15203,7 +15203,7 @@ _080250EC: .4byte gUnknown_2023D74
_080250F0:
movs r0, 0x1
_080250F2:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08025114 @ =gActiveBattler
strb r0, [r1]
movs r0, 0
@@ -15308,7 +15308,7 @@ _080251C0: .4byte gActiveBattler
atk57: @ 80251C4
push {r4,lr}
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _080251F0 @ =gActiveBattler
strb r0, [r4]
ldr r0, _080251F4 @ =gUnknown_2023E8A
@@ -15434,7 +15434,7 @@ _080252C4: .4byte 0x0000ffff
_080252C8: .4byte gUnknown_2023D74
_080252CC:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08025364 @ =gActiveBattler
strb r0, [r1]
ldr r2, _08025368 @ =gBattlerPartyIndexes
@@ -15471,7 +15471,7 @@ _0802530C:
cmp r0, 0
beq _08025358
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08025364 @ =gActiveBattler
strb r0, [r1]
ldr r2, _08025368 @ =gBattlerPartyIndexes
@@ -15667,13 +15667,13 @@ _080254B6:
ldr r1, _080254EC @ =gBattleStruct
ldr r1, [r1]
ldrb r1, [r1, 0x10]
- ldr r2, _080254F0 @ =gUnknown_2024029
+ ldr r2, _080254F0 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, _080254F4 @ =sub_8077764
- ldr r4, _080254F8 @ =gUnknown_2024022
+ ldr r4, _080254F8 @ =gMoveToLearn
ldrh r4, [r4]
str r4, [sp]
bl sub_8134738
@@ -15687,9 +15687,9 @@ _080254D8:
_080254E4: .4byte gUnknown_2037AB8
_080254E8: .4byte gPlayerParty
_080254EC: .4byte gBattleStruct
-_080254F0: .4byte gUnknown_2024029
+_080254F0: .4byte gPlayerPartyCount
_080254F4: .4byte sub_8077764
-_080254F8: .4byte gUnknown_2024022
+_080254F8: .4byte gMoveToLearn
_080254FC: .4byte gBattleScripting
_08025500:
ldr r0, _0802552C @ =gUnknown_2037AB8
@@ -15792,7 +15792,7 @@ _0802558C:
muls r1, r0
adds r0, r1, 0
adds r0, r7
- ldr r7, _08025688 @ =gUnknown_2024022
+ ldr r7, _08025688 @ =gMoveToLearn
ldrh r1, [r7]
adds r2, r5, 0
bl SetMonMoveSlot
@@ -15865,7 +15865,7 @@ _08025622:
adds r0, r4, 0
adds r1, r5, 0
bl RemoveBattleMonPPBonus
- ldr r0, _08025688 @ =gUnknown_2024022
+ ldr r0, _08025688 @ =gMoveToLearn
ldrh r1, [r0]
adds r0, r4, 0
adds r2, r5, 0
@@ -15874,7 +15874,7 @@ _08025622:
.align 2, 0
_08025680: .4byte gUnknown_2023D74
_08025684: .4byte gUnknown_2022AC8
-_08025688: .4byte gUnknown_2024022
+_08025688: .4byte gMoveToLearn
_0802568C: .4byte gBattlerPartyIndexes
_08025690: .4byte gBattleMons
_08025694: .4byte gDisableStructs
@@ -16393,7 +16393,7 @@ _08025AA0:
movs r0, 0
movs r1, 0
movs r2, 0
- bl EmitGetMonData
+ bl BtlController_EmitGetMonData
ldrb r0, [r6]
bl MarkBufferBankForExecution
ldrb r0, [r5]
@@ -16503,7 +16503,7 @@ atk60_incrementgamestat: @ 8025B74
push {lr}
ldr r0, _08025B9C @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08025B8E
@@ -16540,7 +16540,7 @@ atk61_drawpartystatussummary: @ 8025BA4
ldr r1, _08025C10 @ =gActiveBattler
strb r0, [r1]
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _08025C14 @ =gEnemyParty
mov r8, r1
@@ -17020,7 +17020,7 @@ _08025FA4: .4byte gUnknown_2023D74
atk68_cancelallactions: @ 8025FA8
push {r4,r5,lr}
movs r1, 0
- ldr r2, _08025FD4 @ =gUnknown_2023BCC
+ ldr r2, _08025FD4 @ =gBattlersCount
ldr r5, _08025FD8 @ =gUnknown_2023D74
ldrb r0, [r2]
cmp r1, r0
@@ -17042,7 +17042,7 @@ _08025FC6:
pop {r0}
bx r0
.align 2, 0
-_08025FD4: .4byte gUnknown_2023BCC
+_08025FD4: .4byte gBattlersCount
_08025FD8: .4byte gUnknown_2023D74
_08025FDC: .4byte gUnknown_2023BDA
thumb_func_end atk68_cancelallactions
@@ -17060,7 +17060,7 @@ atk69_adjustsetdamage: @ 8025FE0
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _08026014
- ldr r1, _08026010 @ =gUnknown_2023F54
+ ldr r1, _08026010 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -17071,7 +17071,7 @@ atk69_adjustsetdamage: @ 8025FE0
.align 2, 0
_08026008: .4byte gBattleMons
_0802600C: .4byte gBattlerTarget
-_08026010: .4byte gUnknown_2023F54
+_08026010: .4byte gEnigmaBerries
_08026014:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -17085,7 +17085,7 @@ _08026014:
lsls r0, 24
lsrs r6, r0, 24
_0802602E:
- ldr r1, _080260F0 @ =gUnknown_2023D6F
+ ldr r1, _080260F0 @ =gPotentialItemEffectBattler
ldr r5, _080260F4 @ =gBattlerTarget
ldrb r0, [r5]
strb r0, [r1]
@@ -17182,7 +17182,7 @@ _080260BE:
strb r1, [r0]
b _0802613C
.align 2, 0
-_080260F0: .4byte gUnknown_2023D6F
+_080260F0: .4byte gPotentialItemEffectBattler
_080260F4: .4byte gBattlerTarget
_080260F8: .4byte gUnknown_2023ECC
_080260FC: .4byte gBattleMons
@@ -18039,7 +18039,7 @@ _080267EC: .4byte gUnknown_2023D74
atk6E_setatktoplayer0: @ 80267F0
push {lr}
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _08026808 @ =sBattler_AI
strb r0, [r1]
ldr r1, _0802680C @ =gUnknown_2023D74
@@ -18088,7 +18088,7 @@ atk70_recordlastability: @ 8026844
ldr r1, _08026870 @ =gActiveBattler
strb r0, [r1]
ldrb r0, [r1]
- ldr r1, _08026874 @ =gUnknown_2023D6A
+ ldr r1, _08026874 @ =gLastUsedAbility
ldrb r1, [r1]
bl sub_80C71D0
ldr r0, [r4]
@@ -18100,7 +18100,7 @@ atk70_recordlastability: @ 8026844
.align 2, 0
_0802686C: .4byte gUnknown_2023D74
_08026870: .4byte gActiveBattler
-_08026874: .4byte gUnknown_2023D6A
+_08026874: .4byte gLastUsedAbility
thumb_func_end atk70_recordlastability
thumb_func_start BufferMoveToLearnIntoBattleTextBuff2
@@ -18110,7 +18110,7 @@ BufferMoveToLearnIntoBattleTextBuff2: @ 8026878
strb r0, [r2]
movs r0, 0x2
strb r0, [r2, 0x1]
- ldr r0, _0802689C @ =gUnknown_2024022
+ ldr r0, _0802689C @ =gMoveToLearn
ldrh r1, [r0]
strb r1, [r2, 0x2]
movs r0, 0xFF
@@ -18123,7 +18123,7 @@ BufferMoveToLearnIntoBattleTextBuff2: @ 8026878
bx lr
.align 2, 0
_08026898: .4byte gUnknown_2022AC8
-_0802689C: .4byte gUnknown_2024022
+_0802689C: .4byte gMoveToLearn
thumb_func_end BufferMoveToLearnIntoBattleTextBuff2
thumb_func_start atk71_buffermovetolearn
@@ -18290,7 +18290,7 @@ atk74_hpthresholds2: @ 80269A8
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _08026A18 @ =gBattleStruct
ldr r6, [r1]
@@ -18360,7 +18360,7 @@ _08026A54: .4byte gUnknown_2023D74
atk75_useitemonopponent: @ 8026A58
push {lr}
sub sp, 0x4
- ldr r2, _08026A98 @ =gUnknown_2024004
+ ldr r2, _08026A98 @ =gBattlerInMenuId
ldr r1, _08026A9C @ =sBattler_AI
ldrb r0, [r1]
strb r0, [r2]
@@ -18380,7 +18380,7 @@ atk75_useitemonopponent: @ 8026A58
movs r3, 0x1
str r3, [sp]
movs r3, 0
- bl sub_80413E4
+ bl PokemonUseItemEffects
ldr r1, _08026AAC @ =gUnknown_2023D74
ldr r0, [r1]
adds r0, 0x1
@@ -18389,7 +18389,7 @@ atk75_useitemonopponent: @ 8026A58
pop {r0}
bx r0
.align 2, 0
-_08026A98: .4byte gUnknown_2024004
+_08026A98: .4byte gBattlerInMenuId
_08026A9C: .4byte sBattler_AI
_08026AA0: .4byte gBattlerPartyIndexes
_08026AA4: .4byte gEnemyParty
@@ -18453,12 +18453,12 @@ _08026B2C:
ldrb r0, [r4]
strb r0, [r1]
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r2, _08026B70 @ =gUnknown_2023DE4
+ ldr r2, _08026B70 @ =gSideTimers
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -18479,7 +18479,7 @@ _08026B2C:
.align 2, 0
_08026B68: .4byte sBattler_AI
_08026B6C: .4byte gBattlerTarget
-_08026B70: .4byte gUnknown_2023DE4
+_08026B70: .4byte gSideTimers
_08026B74: .4byte gBattleMons
_08026B78:
ldr r0, _08026B84 @ =gBattlerTarget
@@ -18677,7 +18677,7 @@ _08026CF4:
movs r0, 0x1
strb r0, [r1]
mov r8, r1
- ldr r0, _08026D44 @ =gUnknown_2023BCC
+ ldr r0, _08026D44 @ =gBattlersCount
mov r4, r8
ldrb r5, [r0]
ldr r6, _08026D48 @ =gBattleMons
@@ -18711,7 +18711,7 @@ _08026D2A:
.align 2, 0
_08026D3C: .4byte gUnknown_2023E82
_08026D40: .4byte gActiveBattler
-_08026D44: .4byte gUnknown_2023BCC
+_08026D44: .4byte gBattlersCount
_08026D48: .4byte gBattleMons
_08026D4C: .4byte gBitTable
_08026D50:
@@ -18725,7 +18725,7 @@ _08026D50:
_08026D5C: .4byte gActiveBattler
_08026D60: .4byte gBattleMons
_08026D64:
- ldr r0, _08026D94 @ =gUnknown_2023BCC
+ ldr r0, _08026D94 @ =gBattlersCount
ldrb r0, [r0]
cmp r0, 0x3
bhi _08026D6E
@@ -18751,7 +18751,7 @@ _08026D84:
bl MarkBufferBankForExecution
b _08026F4E
.align 2, 0
-_08026D94: .4byte gUnknown_2023BCC
+_08026D94: .4byte gBattlersCount
_08026D98: .4byte gActiveBattler
_08026D9C: .4byte gBattleMons
_08026DA0:
@@ -18760,7 +18760,7 @@ _08026DA0:
strb r1, [r0, 0x5]
mov r8, r1
movs r7, 0
- ldr r0, _08026F2C @ =gUnknown_2023BCC
+ ldr r0, _08026F2C @ =gBattlersCount
mov r12, r0
ldrb r2, [r0]
cmp r8, r2
@@ -18850,7 +18850,7 @@ _08026E4E:
cmp r0, 0
beq _08026E88
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _08026F3C @ =gActiveBattler
strb r0, [r4]
movs r0, 0
@@ -18925,7 +18925,7 @@ _08026EEC:
cmp r2, 0
beq _08026F4E
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _08026F3C @ =gActiveBattler
strb r0, [r4]
movs r0, 0
@@ -18947,7 +18947,7 @@ _08026EEC:
b _08026F4E
.align 2, 0
_08026F28: .4byte gUnknown_2023E82
-_08026F2C: .4byte gUnknown_2023BCC
+_08026F2C: .4byte gBattlersCount
_08026F30: .4byte gBattleMons
_08026F34: .4byte 0xf7ffffff
_08026F38: .4byte gPlayerParty
@@ -19004,7 +19004,7 @@ atk77_setprotectlike: @ 8026F68
_08026F98:
ldr r0, _08027040 @ =gUnknown_2023BE2
ldrb r1, [r0]
- ldr r0, _08027044 @ =gUnknown_2023BCC
+ ldr r0, _08027044 @ =gBattlersCount
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
@@ -19086,7 +19086,7 @@ _08027034: .4byte gUnknown_2023DB0
_08027038: .4byte sBattler_AI
_0802703C: .4byte gDisableStructs
_08027040: .4byte gUnknown_2023BE2
-_08027044: .4byte gUnknown_2023BCC
+_08027044: .4byte gBattlersCount
_08027048: .4byte gUnknown_82507E0
_0802704C: .4byte gBattleMoves
_08027050: .4byte gCurrentMove
@@ -19139,7 +19139,7 @@ atk78_faintifabilitynotdamp: @ 80270A4
bne _080271A8
ldr r1, _08027164 @ =gBattlerTarget
strb r2, [r1]
- ldr r0, _08027168 @ =gUnknown_2023BCC
+ ldr r0, _08027168 @ =gBattlersCount
ldrb r3, [r0]
adds r5, r1, 0
mov r8, r0
@@ -19229,7 +19229,7 @@ _08027152:
.align 2, 0
_08027160: .4byte gUnknown_2023BC8
_08027164: .4byte gBattlerTarget
-_08027168: .4byte gUnknown_2023BCC
+_08027168: .4byte gBattlersCount
_0802716C: .4byte gBattleMons
_08027170: .4byte gActiveBattler
_08027174: .4byte sBattler_AI
@@ -19239,7 +19239,7 @@ _08027180: .4byte gUnknown_2023D74
_08027184: .4byte gBitTable
_08027188: .4byte gAbsentBattlerFlags
_0802718C:
- ldr r1, _080271B4 @ =gUnknown_2023D6A
+ ldr r1, _080271B4 @ =gLastUsedAbility
movs r0, 0x6
strb r0, [r1]
ldrb r0, [r5]
@@ -19259,7 +19259,7 @@ _080271A8:
pop {r0}
bx r0
.align 2, 0
-_080271B4: .4byte gUnknown_2023D6A
+_080271B4: .4byte gLastUsedAbility
_080271B8: .4byte gUnknown_2023D74
_080271BC: .4byte gUnknown_81D93AF
thumb_func_end atk78_faintifabilitynotdamp
@@ -19343,7 +19343,7 @@ atk7A_jumpifnexttargetvalid: @ 8027220
adds r3, r0, 0
ldr r6, _080272A8 @ =gAbsentBattlerFlags
ldr r5, _080272AC @ =gBitTable
- ldr r0, _080272B0 @ =gUnknown_2023BCC
+ ldr r0, _080272B0 @ =gBattlersCount
mov r12, r0
ldrb r0, [r2]
cmp r1, r0
@@ -19382,7 +19382,7 @@ _080272A0: .4byte gBattlerTarget
_080272A4: .4byte sBattler_AI
_080272A8: .4byte gAbsentBattlerFlags
_080272AC: .4byte gBitTable
-_080272B0: .4byte gUnknown_2023BCC
+_080272B0: .4byte gBattlersCount
_080272B4:
str r4, [r7]
b _080272BC
@@ -19468,7 +19468,7 @@ atk7C_trymirrormove: @ 8027340
mov r5, r8
push {r5-r7}
sub sp, 0x8
- ldr r2, _080273E0 @ =gUnknown_2023BCC
+ ldr r2, _080273E0 @ =gBattlersCount
ldr r0, _080273E4 @ =gBattleStruct
mov r10, r0
movs r1, 0
@@ -19547,7 +19547,7 @@ _080273AC:
strh r3, [r4]
b _08027426
.align 2, 0
-_080273E0: .4byte gUnknown_2023BCC
+_080273E0: .4byte gBattlersCount
_080273E4: .4byte gBattleStruct
_080273E8: .4byte sBattler_AI
_080273EC: .4byte 0x0000ffff
@@ -19682,7 +19682,7 @@ atk7E_setreflect: @ 80274FC
push {r4-r6,lr}
ldr r6, _0802752C @ =sBattler_AI
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r4, _08027530 @ =gSideAffecting
movs r5, 0x1
adds r1, r5, 0
@@ -19709,7 +19709,7 @@ _08027534: .4byte gMoveResultFlags
_08027538: .4byte gUnknown_2023E82
_0802753C:
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r5, 0
ands r1, r0
lsls r1, 1
@@ -19719,8 +19719,8 @@ _0802753C:
orrs r0, r2
strh r0, [r1]
ldrb r0, [r6]
- bl GetBankIdentity
- ldr r4, _080275A0 @ =gUnknown_2023DE4
+ bl GetBattlerPosition
+ ldr r4, _080275A0 @ =gSideTimers
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 1
@@ -19730,7 +19730,7 @@ _0802753C:
movs r1, 0x5
strb r1, [r0]
ldrb r0, [r6]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 1
@@ -19745,7 +19745,7 @@ _0802753C:
cmp r0, 0
beq _080275AC
movs r0, 0x1
- bl sub_803F5B4
+ bl CountAliveMons
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
@@ -19754,7 +19754,7 @@ _0802753C:
strb r1, [r0, 0x5]
b _080275B2
.align 2, 0
-_080275A0: .4byte gUnknown_2023DE4
+_080275A0: .4byte gSideTimers
_080275A4: .4byte gBattleTypeFlags
_080275A8: .4byte gUnknown_2023E82
_080275AC:
@@ -20108,7 +20108,7 @@ UproarWakeUpCheck: @ 8027830
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
- ldr r0, _08027888 @ =gUnknown_2023BCC
+ ldr r0, _08027888 @ =gBattlersCount
ldrb r1, [r0]
mov r8, r0
cmp r2, r1
@@ -20148,7 +20148,7 @@ _0802785C:
strb r0, [r7, 0x5]
b _080278A4
.align 2, 0
-_08027888: .4byte gUnknown_2023BCC
+_08027888: .4byte gBattlersCount
_0802788C: .4byte gBattleMons
_08027890: .4byte gBattleScripting
_08027894: .4byte gUnknown_2023E82
@@ -20224,7 +20224,7 @@ _08027900:
cmp r1, 0x48
bne _0802793C
_08027918:
- ldr r2, _08027934 @ =gUnknown_2023D6A
+ ldr r2, _08027934 @ =gLastUsedAbility
strb r0, [r2]
ldr r1, _08027938 @ =gUnknown_2023E82
movs r0, 0x2
@@ -20236,7 +20236,7 @@ _08027918:
b _08027942
.align 2, 0
_08027930: .4byte gBattleMons
-_08027934: .4byte gUnknown_2023D6A
+_08027934: .4byte gLastUsedAbility
_08027938: .4byte gUnknown_2023E82
_0802793C:
ldr r0, [r5]
@@ -20355,7 +20355,7 @@ _08027A08:
ldr r4, _08027AC0 @ =gSideAffecting
ldr r5, _08027AC4 @ =gBattlerTarget
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
lsls r1, 1
@@ -20378,7 +20378,7 @@ _08027A08:
str r4, [sp, 0x8]
ldrb r4, [r5]
str r4, [sp, 0xC]
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldrb r2, [r6]
lsls r1, r2, 3
subs r1, r2
@@ -20663,10 +20663,10 @@ _08027C64:
blt _08027C88
b _08027F6C
_08027C88:
- ldr r4, _08027CE0 @ =gUnknown_2023DE4
+ ldr r4, _08027CE0 @ =gSideTimers
ldr r1, _08027CD4 @ =gActiveBattler
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
lsls r0, r1, 1
@@ -20704,7 +20704,7 @@ _08027C88:
_08027CD4: .4byte gActiveBattler
_08027CD8: .4byte gBattlerTarget
_08027CDC: .4byte gUnknown_2022AB8
-_08027CE0: .4byte gUnknown_2023DE4
+_08027CE0: .4byte gSideTimers
_08027CE4: .4byte gCurrentMove
_08027CE8: .4byte gUnknown_2023ECC
_08027CEC: .4byte gUnknown_2023D74
@@ -20810,7 +20810,7 @@ _08027DB4:
ldr r1, _08027E00 @ =gUnknown_2023D74
ldr r0, _08027E04 @ =gUnknown_81D9416
str r0, [r1]
- ldr r1, _08027E08 @ =gUnknown_2023D6A
+ ldr r1, _08027E08 @ =gLastUsedAbility
ldrb r0, [r2]
movs r3, 0x58
muls r0, r3
@@ -20837,7 +20837,7 @@ _08027DF8: .4byte gBattleScripting
_08027DFC: .4byte gActiveBattler
_08027E00: .4byte gUnknown_2023D74
_08027E04: .4byte gUnknown_81D9416
-_08027E08: .4byte gUnknown_2023D6A
+_08027E08: .4byte gLastUsedAbility
_08027E0C:
ldr r1, _08027E58 @ =gActiveBattler
ldrb r0, [r1]
@@ -20864,7 +20864,7 @@ _08027E0C:
ldr r1, _08027E60 @ =gUnknown_2023D74
ldr r0, _08027E64 @ =gUnknown_81D947E
str r0, [r1]
- ldr r1, _08027E68 @ =gUnknown_2023D6A
+ ldr r1, _08027E68 @ =gLastUsedAbility
ldrb r0, [r3]
muls r0, r4
add r0, r10
@@ -20880,7 +20880,7 @@ _08027E58: .4byte gActiveBattler
_08027E5C: .4byte gBattleScripting
_08027E60: .4byte gUnknown_2023D74
_08027E64: .4byte gUnknown_81D947E
-_08027E68: .4byte gUnknown_2023D6A
+_08027E68: .4byte gLastUsedAbility
_08027E6C:
ldr r4, _08027EBC @ =gActiveBattler
ldrb r0, [r4]
@@ -20909,7 +20909,7 @@ _08027E8E:
ldr r1, _08027EC4 @ =gUnknown_2023D74
ldr r0, _08027EC8 @ =gUnknown_81D947E
str r0, [r1]
- ldr r1, _08027ECC @ =gUnknown_2023D6A
+ ldr r1, _08027ECC @ =gLastUsedAbility
ldrb r0, [r2]
muls r0, r4
add r0, r10
@@ -20925,7 +20925,7 @@ _08027EBC: .4byte gActiveBattler
_08027EC0: .4byte gBattleScripting
_08027EC4: .4byte gUnknown_2023D74
_08027EC8: .4byte gUnknown_81D947E
-_08027ECC: .4byte gUnknown_2023D6A
+_08027ECC: .4byte gLastUsedAbility
_08027ED0:
ldr r3, _08027F5C @ =gActiveBattler
ldrb r1, [r3]
@@ -21193,7 +21193,7 @@ _080280C8: .4byte gBattleScripting
atk8A_normalisebuffs: @ 80280CC
push {r4-r7,lr}
movs r2, 0
- ldr r0, _08028114 @ =gUnknown_2023BCC
+ ldr r0, _08028114 @ =gBattlersCount
ldrb r1, [r0]
ldr r0, _08028118 @ =gUnknown_2023D74
mov r12, r0
@@ -21230,7 +21230,7 @@ _08028104:
pop {r0}
bx r0
.align 2, 0
-_08028114: .4byte gUnknown_2023BCC
+_08028114: .4byte gBattlersCount
_08028118: .4byte gUnknown_2023D74
_0802811C: .4byte gBattleMons
thumb_func_end atk8A_normalisebuffs
@@ -21500,7 +21500,7 @@ sub_802830C: @ 802830C
_08028320:
ldr r5, _080283A8 @ =gBattlerTarget
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _080283AC @ =gEnemyParty
mov r8, r1
@@ -22144,7 +22144,7 @@ atk92_setlightscreen: @ 802883C
push {r4-r6,lr}
ldr r5, _0802886C @ =sBattler_AI
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r4, _08028870 @ =gSideAffecting
movs r6, 0x1
adds r1, r6, 0
@@ -22171,7 +22171,7 @@ _08028874: .4byte gMoveResultFlags
_08028878: .4byte gUnknown_2023E82
_0802887C:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r6, 0
ands r1, r0
lsls r1, 1
@@ -22181,8 +22181,8 @@ _0802887C:
orrs r0, r2
strh r0, [r1]
ldrb r0, [r5]
- bl GetBankIdentity
- ldr r4, _080288E0 @ =gUnknown_2023DE4
+ bl GetBattlerPosition
+ ldr r4, _080288E0 @ =gSideTimers
adds r1, r6, 0
ands r1, r0
lsls r0, r1, 1
@@ -22192,7 +22192,7 @@ _0802887C:
movs r1, 0x5
strb r1, [r0, 0x2]
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r6, 0
ands r1, r0
lsls r0, r1, 1
@@ -22207,7 +22207,7 @@ _0802887C:
cmp r0, 0
beq _080288EC
movs r0, 0x1
- bl sub_803F5B4
+ bl CountAliveMons
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -22216,7 +22216,7 @@ _0802887C:
movs r0, 0x4
b _080288F0
.align 2, 0
-_080288E0: .4byte gUnknown_2023DE4
+_080288E0: .4byte gSideTimers
_080288E4: .4byte gBattleTypeFlags
_080288E8: .4byte gUnknown_2023E82
_080288EC:
@@ -22252,7 +22252,7 @@ atk93_tryKO: @ 8028908
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _08028940
- ldr r1, _0802893C @ =gUnknown_2023F54
+ ldr r1, _0802893C @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -22263,7 +22263,7 @@ atk93_tryKO: @ 8028908
.align 2, 0
_08028934: .4byte gBattleMons
_08028938: .4byte gBattlerTarget
-_0802893C: .4byte gUnknown_2023F54
+_0802893C: .4byte gEnigmaBerries
_08028940:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
@@ -22277,7 +22277,7 @@ _08028940:
lsls r0, 24
lsrs r6, r0, 24
_0802895A:
- ldr r1, _080289D4 @ =gUnknown_2023D6F
+ ldr r1, _080289D4 @ =gPotentialItemEffectBattler
ldr r5, _080289D8 @ =gBattlerTarget
ldrb r0, [r5]
strb r0, [r1]
@@ -22325,7 +22325,7 @@ _08028998:
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- ldr r0, _080289E8 @ =gUnknown_2023D6A
+ ldr r0, _080289E8 @ =gLastUsedAbility
strb r4, [r0]
ldr r1, _080289EC @ =gUnknown_2023D74
ldr r0, _080289F0 @ =gUnknown_81D93A1
@@ -22336,12 +22336,12 @@ _08028998:
bl sub_80C71D0
b _08028C48
.align 2, 0
-_080289D4: .4byte gUnknown_2023D6F
+_080289D4: .4byte gPotentialItemEffectBattler
_080289D8: .4byte gBattlerTarget
_080289DC: .4byte gUnknown_2023ECC
_080289E0: .4byte gBattleMons
_080289E4: .4byte gMoveResultFlags
-_080289E8: .4byte gUnknown_2023D6A
+_080289E8: .4byte gLastUsedAbility
_080289EC: .4byte gUnknown_2023D74
_080289F0: .4byte gUnknown_81D93A1
_080289F4:
@@ -22733,7 +22733,7 @@ sub_8028CF0: @ 8028CF0
bne _08028D18
ldr r0, _08028DC0 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -22746,7 +22746,7 @@ _08028D18:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -22758,7 +22758,7 @@ _08028D32:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08028D48
@@ -22934,7 +22934,7 @@ sub_8028E90: @ 8028E90
push {r5-r7}
ldr r4, _08028EBC @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08028EC8
@@ -22964,7 +22964,7 @@ _08028ED8:
adds r5, r1, r0
ldr r4, _08028F04 @ =gBattlerTarget
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08028F0C
@@ -23026,7 +23026,7 @@ _08028F1C:
ldr r1, _08028F88 @ =gUnknown_2023D74
ldr r0, _08028F8C @ =gUnknown_81D9444
str r0, [r1]
- ldr r0, _08028F90 @ =gUnknown_2023D6A
+ ldr r0, _08028F90 @ =gLastUsedAbility
strb r2, [r0]
ldrb r0, [r5]
movs r1, 0xC
@@ -23039,7 +23039,7 @@ _08028F80: .4byte gBattlerTarget
_08028F84: .4byte gBattleMons
_08028F88: .4byte gUnknown_2023D74
_08028F8C: .4byte gUnknown_81D9444
-_08028F90: .4byte gUnknown_2023D6A
+_08028F90: .4byte gLastUsedAbility
_08028F94:
mov r0, r10
mov r1, r9
@@ -23144,7 +23144,7 @@ _08029054:
bne _080290D4
ldr r2, _080290C0 @ =gActiveBattler
strb r1, [r2]
- ldr r0, _080290C4 @ =gUnknown_2023BCC
+ ldr r0, _080290C4 @ =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bcs _08029164
@@ -23179,7 +23179,7 @@ _080290A2:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _080290C4 @ =gUnknown_2023BCC
+ ldr r1, _080290C4 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -23190,7 +23190,7 @@ _080290A2:
_080290B8: .4byte gUnknown_2023BC8
_080290BC: .4byte gUnknown_2023D74
_080290C0: .4byte gActiveBattler
-_080290C4: .4byte gUnknown_2023BCC
+_080290C4: .4byte gBattlersCount
_080290C8: .4byte gBitTable
_080290CC: .4byte gBattleMons
_080290D0: .4byte gAbsentBattlerFlags
@@ -23233,12 +23233,12 @@ _08029114:
cmp r0, 0
beq _08029164
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
strb r0, [r4]
ldrb r1, [r6]
ldrb r2, [r4]
@@ -23312,10 +23312,10 @@ _080291CC: .4byte gBattleMons
thumb_func_start atk99_setmist
atk99_setmist: @ 80291D0
push {r4-r6,lr}
- ldr r6, _08029200 @ =gUnknown_2023DE4
+ ldr r6, _08029200 @ =gSideTimers
ldr r4, _08029204 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r5, 0x1
adds r1, r5, 0
ands r1, r0
@@ -23335,13 +23335,13 @@ atk99_setmist: @ 80291D0
strb r5, [r0, 0x5]
b _0802925E
.align 2, 0
-_08029200: .4byte gUnknown_2023DE4
+_08029200: .4byte gSideTimers
_08029204: .4byte sBattler_AI
_08029208: .4byte gMoveResultFlags
_0802920C: .4byte gUnknown_2023E82
_08029210:
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 1
@@ -23351,7 +23351,7 @@ _08029210:
movs r1, 0x5
strb r1, [r0, 0x4]
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 1
@@ -23361,7 +23361,7 @@ _08029210:
ldrb r1, [r4]
strb r1, [r0, 0x5]
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r2, _0802926C @ =gSideAffecting
adds r1, r5, 0
ands r1, r0
@@ -24157,7 +24157,7 @@ atkA1_counterdamagecalculator: @ 8029880
push {r4-r6,lr}
ldr r4, _080298F0 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldr r5, _080298F4 @ =gUnknown_2023E8C
@@ -24165,7 +24165,7 @@ atkA1_counterdamagecalculator: @ 8029880
lsls r0, 4
adds r0, r5
ldrb r0, [r0, 0xC]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
ldrb r0, [r4]
@@ -24189,7 +24189,7 @@ atkA1_counterdamagecalculator: @ 8029880
ldr r1, _080298FC @ =gBattleMoveDamage
lsls r0, r3, 1
str r0, [r1]
- ldr r1, _08029900 @ =gUnknown_2023DE4
+ ldr r1, _08029900 @ =gSideTimers
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
@@ -24212,7 +24212,7 @@ _080298F0: .4byte sBattler_AI
_080298F4: .4byte gUnknown_2023E8C
_080298F8: .4byte gBattleMons
_080298FC: .4byte gBattleMoveDamage
-_08029900: .4byte gUnknown_2023DE4
+_08029900: .4byte gSideTimers
_08029904: .4byte gBattlerTarget
_08029908:
ldr r2, _08029924 @ =gBattlerTarget
@@ -24274,7 +24274,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8029978
push {r4-r6,lr}
ldr r4, _080299E8 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldr r5, _080299EC @ =gUnknown_2023E8C
@@ -24282,7 +24282,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8029978
lsls r0, 4
adds r0, r5
ldrb r0, [r0, 0xD]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
ldrb r0, [r4]
@@ -24307,7 +24307,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8029978
ldr r1, _080299F4 @ =gBattleMoveDamage
lsls r0, r3, 1
str r0, [r1]
- ldr r1, _080299F8 @ =gUnknown_2023DE4
+ ldr r1, _080299F8 @ =gSideTimers
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
@@ -24330,7 +24330,7 @@ _080299E8: .4byte sBattler_AI
_080299EC: .4byte gUnknown_2023E8C
_080299F0: .4byte gBattleMons
_080299F4: .4byte gBattleMoveDamage
-_080299F8: .4byte gUnknown_2023DE4
+_080299F8: .4byte gSideTimers
_080299FC: .4byte gBattlerTarget
_08029A00:
ldr r2, _08029A1C @ =gBattlerTarget
@@ -25628,12 +25628,12 @@ TrySetDestinyBondToHappen: @ 802A3F8
push {r4,r5,lr}
ldr r0, _0802A448 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r5, r0, 24
ldr r4, _0802A44C @ =gBattlerTarget
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _0802A450 @ =gBattleMons
@@ -25993,7 +25993,7 @@ _0802A6CC:
strb r0, [r6, 0x5]
ldr r5, _0802A728 @ =sBattler_AI
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _0802A72C @ =gEnemyParty
mov r10, r1
@@ -26049,14 +26049,14 @@ _0802A74C:
ldr r7, _0802A7C0 @ =gActiveBattler
ldr r0, _0802A7C4 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r2, 0x2
mov r9, r2
mov r1, r9
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802A7C8 @ =gBattleScripting
strb r0, [r1, 0x17]
strb r0, [r7]
@@ -26242,12 +26242,12 @@ _0802A8B6:
ands r0, r6
str r0, [r1]
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _0802A980 @ =gActiveBattler
strb r0, [r4]
ldr r0, _0802A984 @ =gBattleTypeFlags
@@ -26390,12 +26390,12 @@ atkB0_trysetspikes: @ 802AA18
push {r4,lr}
ldr r4, _0802AA6C @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r1, _0802AA70 @ =gUnknown_2023DE4
+ ldr r1, _0802AA70 @ =gSideTimers
lsls r2, r0, 1
adds r0, r2, r0
lsls r0, 2
@@ -26429,7 +26429,7 @@ atkB0_trysetspikes: @ 802AA18
b _0802AA96
.align 2, 0
_0802AA6C: .4byte sBattler_AI
-_0802AA70: .4byte gUnknown_2023DE4
+_0802AA70: .4byte gSideTimers
_0802AA74: .4byte gUnknown_2023ECC
_0802AA78: .4byte gUnknown_2023D74
_0802AA7C:
@@ -26488,7 +26488,7 @@ atkB2_trysetperishsong: @ 802AAD4
push {r6,r7}
movs r6, 0
movs r3, 0
- ldr r0, _0802AB18 @ =gUnknown_2023BCC
+ ldr r0, _0802AB18 @ =gBattlersCount
adds r7, r0, 0
ldr r0, _0802AB1C @ =sBattler_AI
mov r8, r0
@@ -26519,7 +26519,7 @@ _0802AB14:
adds r6, 0x1
b _0802AB34
.align 2, 0
-_0802AB18: .4byte gUnknown_2023BCC
+_0802AB18: .4byte gBattlersCount
_0802AB1C: .4byte sBattler_AI
_0802AB20: .4byte gBattleMons
_0802AB24: .4byte gDisableStructs
@@ -26540,7 +26540,7 @@ _0802AB40:
mov r1, r8
ldrb r0, [r1]
bl PressurePPLoseOnUsingPerishSong
- ldr r0, _0802AB6C @ =gUnknown_2023BCC
+ ldr r0, _0802AB6C @ =gBattlersCount
ldrb r0, [r0]
cmp r6, r0
bne _0802AB74
@@ -26559,7 +26559,7 @@ _0802AB40:
str r1, [r3]
b _0802AB7C
.align 2, 0
-_0802AB6C: .4byte gUnknown_2023BCC
+_0802AB6C: .4byte gBattlersCount
_0802AB70: .4byte gUnknown_2023D74
_0802AB74:
ldr r1, _0802AB88 @ =gUnknown_2023D74
@@ -27078,7 +27078,7 @@ atkB8_setsafeguard: @ 802AF74
push {r4-r7,lr}
ldr r7, _0802AFA8 @ =sBattler_AI
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r4, _0802AFAC @ =gSideAffecting
movs r6, 0x1
adds r1, r6, 0
@@ -27106,7 +27106,7 @@ _0802AFB0: .4byte gMoveResultFlags
_0802AFB4: .4byte gUnknown_2023E82
_0802AFB8:
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r6, 0
ands r1, r0
lsls r1, 1
@@ -27116,8 +27116,8 @@ _0802AFB8:
orrs r0, r2
strh r0, [r1]
ldrb r0, [r7]
- bl GetBankIdentity
- ldr r5, _0802B010 @ =gUnknown_2023DE4
+ bl GetBattlerPosition
+ ldr r5, _0802B010 @ =gSideTimers
adds r1, r6, 0
ands r1, r0
lsls r0, r1, 1
@@ -27127,7 +27127,7 @@ _0802AFB8:
movs r4, 0x5
strb r4, [r0, 0x6]
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r6, 0
ands r1, r0
lsls r0, r1, 1
@@ -27147,7 +27147,7 @@ _0802B000:
pop {r0}
bx r0
.align 2, 0
-_0802B010: .4byte gUnknown_2023DE4
+_0802B010: .4byte gSideTimers
_0802B014: .4byte gUnknown_2023E82
_0802B018: .4byte gUnknown_2023D74
thumb_func_end atkB8_setsafeguard
@@ -27243,7 +27243,7 @@ _0802B0B4:
strb r0, [r1, 0x5]
ldr r1, _0802B128 @ =gBattlerTarget
strb r2, [r1]
- ldr r0, _0802B12C @ =gUnknown_2023BCC
+ ldr r0, _0802B12C @ =gBattlersCount
ldrb r3, [r0]
adds r6, r1, 0
ldr r0, _0802B130 @ =gUnknown_2023D74
@@ -27289,7 +27289,7 @@ _0802B10C:
_0802B120: .4byte gDynamicBasePower
_0802B124: .4byte gUnknown_2022AB8
_0802B128: .4byte gBattlerTarget
-_0802B12C: .4byte gUnknown_2023BCC
+_0802B12C: .4byte gBattlersCount
_0802B130: .4byte gUnknown_2023D74
_0802B134: .4byte sBattler_AI
_0802B138: .4byte gBitTable
@@ -27309,7 +27309,7 @@ atkBA_jumpifnopursuitswitchdmg: @ 802B140
bne _0802B170
ldr r0, _0802B168 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0802B16C
@@ -27324,7 +27324,7 @@ _0802B16C:
_0802B170:
ldr r0, _0802B184 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0802B188
@@ -27335,7 +27335,7 @@ _0802B184: .4byte sBattler_AI
_0802B188:
movs r0, 0x2
_0802B18A:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0802B264 @ =gBattlerTarget
strb r0, [r1]
ldr r0, _0802B268 @ =gUnknown_2023D7C
@@ -27389,7 +27389,7 @@ _0802B1A2:
cmp r0, 0xE4
bne _0802B2A8
movs r1, 0
- ldr r0, _0802B280 @ =gUnknown_2023BCC
+ ldr r0, _0802B280 @ =gBattlersCount
ldr r2, _0802B284 @ =gCurrentMove
mov r8, r2
ldr r7, _0802B288 @ =gUnknown_2023D48
@@ -27455,7 +27455,7 @@ _0802B270: .4byte gBattleStruct
_0802B274: .4byte gBattleMons
_0802B278: .4byte gDisableStructs
_0802B27C: .4byte gUnknown_2023DC4
-_0802B280: .4byte gUnknown_2023BCC
+_0802B280: .4byte gBattlersCount
_0802B284: .4byte gCurrentMove
_0802B288: .4byte gUnknown_2023D48
_0802B28C: .4byte gUnknown_2023D49
@@ -27739,7 +27739,7 @@ _0802B4C0: .4byte gUnknown_2023D74
_0802B4C4: .4byte gUnknown_81D8E04
_0802B4C8:
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
ldr r4, _0802B518 @ =gSideAffecting
lsls r0, 24
lsrs r0, 23
@@ -27750,7 +27750,7 @@ _0802B4C8:
cmp r0, 0
beq _0802B52C
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 23
adds r0, r4
@@ -27760,8 +27760,8 @@ _0802B4C8:
movs r4, 0
strh r1, [r0]
ldrb r0, [r5]
- bl GetBankSide
- ldr r2, _0802B520 @ =gUnknown_2023DE4
+ bl GetBattlerSide
+ ldr r2, _0802B520 @ =gSideTimers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -27776,7 +27776,7 @@ _0802B4C8:
.align 2, 0
_0802B518: .4byte gSideAffecting
_0802B51C: .4byte 0x0000ffef
-_0802B520: .4byte gUnknown_2023DE4
+_0802B520: .4byte gSideTimers
_0802B524: .4byte gUnknown_2023D74
_0802B528: .4byte gUnknown_81D8E0B
_0802B52C:
@@ -27844,7 +27844,7 @@ atkC0_recoverbasedonsunlight: @ 802B570
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -27854,7 +27854,7 @@ atkC0_recoverbasedonsunlight: @ 802B570
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _0802B5F0
@@ -28081,7 +28081,7 @@ atkC2_selectfirstvalidtarget: @ 802B774
ldr r0, _0802B7D0 @ =gBattlerTarget
movs r1, 0
strb r1, [r0]
- ldr r1, _0802B7D4 @ =gUnknown_2023BCC
+ ldr r1, _0802B7D4 @ =gBattlersCount
ldrb r1, [r1]
adds r6, r0, 0
ldr r0, _0802B7D8 @ =gUnknown_2023D74
@@ -28126,7 +28126,7 @@ _0802B7BE:
bx r0
.align 2, 0
_0802B7D0: .4byte gBattlerTarget
-_0802B7D4: .4byte gUnknown_2023BCC
+_0802B7D4: .4byte gBattlersCount
_0802B7D8: .4byte gUnknown_2023D74
_0802B7DC: .4byte sBattler_AI
_0802B7E0: .4byte gBitTable
@@ -28189,7 +28189,7 @@ _0802B82C:
strb r1, [r0]
ldr r4, _0802B8D4 @ =gSideAffecting
ldrb r0, [r7]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
mov r10, r1
ands r1, r0
@@ -28212,7 +28212,7 @@ _0802B82C:
str r4, [sp, 0x8]
ldrb r4, [r7]
str r4, [sp, 0xC]
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldrb r1, [r7]
lsls r1, 2
mov r2, r8
@@ -28285,7 +28285,7 @@ atkC4_trydobeatup: @ 802B910
push {r6,r7}
ldr r0, _0802B954 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r7, _0802B958 @ =gEnemyParty
cmp r0, 0
@@ -28828,8 +28828,8 @@ atkCA_setforcedtarget: @ 802BD68
push {r4,r5,lr}
ldr r4, _0802BDA8 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
- ldr r5, _0802BDAC @ =gUnknown_2023DE4
+ bl GetBattlerSide
+ ldr r5, _0802BDAC @ =gSideTimers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -28839,7 +28839,7 @@ atkCA_setforcedtarget: @ 802BD68
movs r0, 0x1
strb r0, [r1, 0x8]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -28857,7 +28857,7 @@ atkCA_setforcedtarget: @ 802BD68
bx r0
.align 2, 0
_0802BDA8: .4byte sBattler_AI
-_0802BDAC: .4byte gUnknown_2023DE4
+_0802BDAC: .4byte gSideTimers
_0802BDB0: .4byte gUnknown_2023D74
thumb_func_end atkCA_setforcedtarget
@@ -29193,12 +29193,12 @@ atkD1_trysethelpinghand: @ 802C038
push {r4,lr}
ldr r4, _0802C0A0 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r3, _0802C0A4 @ =gBattlerTarget
strb r0, [r3]
ldr r0, _0802C0A8 @ =gBattleTypeFlags
@@ -29286,7 +29286,7 @@ sub_802C0E0: @ 802C0E0
bne _0802C1DE
ldr r0, _0802C200 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -29305,12 +29305,12 @@ sub_802C0E0: @ 802C0E0
_0802C120:
ldr r6, _0802C200 @ =sBattler_AI
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
ldr r7, _0802C20C @ =gBattlerTarget
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0802C1FC @ =gBattleTypeFlags
@@ -29433,7 +29433,7 @@ _0802C224:
ldr r1, _0802C24C @ =gUnknown_2023D74
ldr r0, _0802C250 @ =gUnknown_81D948E
str r0, [r1]
- ldr r1, _0802C254 @ =gUnknown_2023D6A
+ ldr r1, _0802C254 @ =gLastUsedAbility
ldrb r0, [r7]
muls r0, r5
add r0, r8
@@ -29447,7 +29447,7 @@ _0802C224:
.align 2, 0
_0802C24C: .4byte gUnknown_2023D74
_0802C250: .4byte gUnknown_81D948E
-_0802C254: .4byte gUnknown_2023D6A
+_0802C254: .4byte gLastUsedAbility
_0802C258:
ldr r3, _0802C344 @ =gBattleStruct
mov r10, r3
@@ -29621,7 +29621,7 @@ atkD3_trycopyability: @ 802C390
adds r0, r3
adds r0, 0x20
strb r1, [r0]
- ldr r1, _0802C3DC @ =gUnknown_2023D6A
+ ldr r1, _0802C3DC @ =gLastUsedAbility
ldrb r0, [r4]
muls r0, r2
adds r0, r3
@@ -29637,7 +29637,7 @@ atkD3_trycopyability: @ 802C390
_0802C3D0: .4byte gBattleMons
_0802C3D4: .4byte gBattlerTarget
_0802C3D8: .4byte sBattler_AI
-_0802C3DC: .4byte gUnknown_2023D6A
+_0802C3DC: .4byte gLastUsedAbility
_0802C3E0: .4byte gUnknown_2023D74
_0802C3E4:
ldr r3, _0802C404 @ =gUnknown_2023D74
@@ -30150,7 +30150,7 @@ _0802C7B4: .4byte gStatuses3
_0802C7B8: .4byte gUnknown_2023D74
_0802C7BC:
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -30160,7 +30160,7 @@ _0802C7BC:
b _0802C82E
_0802C7D2:
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r8, r0
@@ -30211,12 +30211,12 @@ _0802C828:
lsls r0, 24
lsrs r6, r0, 24
_0802C82E:
- ldr r0, _0802C86C @ =gUnknown_2023BCC
+ ldr r0, _0802C86C @ =gBattlersCount
ldrb r0, [r0]
cmp r6, r0
bcc _0802C7D2
_0802C836:
- ldr r0, _0802C86C @ =gUnknown_2023BCC
+ ldr r0, _0802C86C @ =gBattlersCount
ldrb r0, [r0]
cmp r6, r0
bne _0802C858
@@ -30244,7 +30244,7 @@ _0802C858:
.align 2, 0
_0802C864: .4byte sBattler_AI
_0802C868: .4byte gBattleMons
-_0802C86C: .4byte gUnknown_2023BCC
+_0802C86C: .4byte gBattlersCount
_0802C870: .4byte gUnknown_2023D74
thumb_func_end atkDB_tryimprision
@@ -30388,7 +30388,7 @@ atkDE_asistattackselect: @ 802C964
str r0, [sp, 0x4]
ldr r0, _0802CA88 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
ldr r0, _0802CA8C @ =gPlayerParty
@@ -30577,7 +30577,7 @@ atkDF_trysetmagiccoat: @ 802CAE4
strb r1, [r0]
ldr r0, _0802CB38 @ =gUnknown_2023BE2
ldrb r1, [r0]
- ldr r0, _0802CB3C @ =gUnknown_2023BCC
+ ldr r0, _0802CB3C @ =gBattlersCount
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
@@ -30601,7 +30601,7 @@ _0802CB2C: .4byte gBattlerTarget
_0802CB30: .4byte sBattler_AI
_0802CB34: .4byte gUnknown_2023ECC
_0802CB38: .4byte gUnknown_2023BE2
-_0802CB3C: .4byte gUnknown_2023BCC
+_0802CB3C: .4byte gBattlersCount
_0802CB40: .4byte gUnknown_2023D74
_0802CB44:
ldr r0, _0802CB60 @ =gUnknown_2023E8C
@@ -30640,7 +30640,7 @@ atkE0_trysetsnatch: @ 802CB68
strb r1, [r0]
ldr r0, _0802CBB4 @ =gUnknown_2023BE2
ldrb r1, [r0]
- ldr r0, _0802CBB8 @ =gUnknown_2023BCC
+ ldr r0, _0802CBB8 @ =gBattlersCount
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
@@ -30663,7 +30663,7 @@ atkE0_trysetsnatch: @ 802CB68
_0802CBAC: .4byte gUnknown_2023ECC
_0802CBB0: .4byte sBattler_AI
_0802CBB4: .4byte gUnknown_2023BE2
-_0802CBB8: .4byte gUnknown_2023BCC
+_0802CBB8: .4byte gBattlersCount
_0802CBBC: .4byte gUnknown_2023D74
_0802CBC0:
ldr r0, _0802CBDC @ =gUnknown_2023E8C
@@ -30695,7 +30695,7 @@ atkE1_trygetintimidatetarget: @ 802CBE4
ldrb r0, [r0]
strb r0, [r4, 0x17]
ldrb r0, [r4, 0x17]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _0802CC90 @ =gUnknown_2022AB8
@@ -30714,7 +30714,7 @@ atkE1_trygetintimidatetarget: @ 802CBE4
movs r0, 0xFF
strb r0, [r2, 0x3]
ldr r2, _0802CC98 @ =gBattlerTarget
- ldr r1, _0802CC9C @ =gUnknown_2023BCC
+ ldr r1, _0802CC9C @ =gBattlersCount
ldrb r0, [r2]
ldrb r1, [r1]
cmp r0, r1
@@ -30723,7 +30723,7 @@ atkE1_trygetintimidatetarget: @ 802CBE4
ldr r6, _0802CCA0 @ =gBitTable
_0802CC2A:
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, r5
@@ -30735,14 +30735,14 @@ _0802CC2A:
adds r0, r6
ldr r0, [r0]
ands r1, r0
- ldr r2, _0802CC9C @ =gUnknown_2023BCC
+ ldr r2, _0802CC9C @ =gBattlersCount
cmp r1, 0
beq _0802CC60
_0802CC4C:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
- ldr r1, _0802CC9C @ =gUnknown_2023BCC
+ ldr r1, _0802CC9C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
adds r2, r1, 0
@@ -30776,7 +30776,7 @@ _0802CC8C: .4byte gBattleStruct
_0802CC90: .4byte gUnknown_2022AB8
_0802CC94: .4byte gBattleMons
_0802CC98: .4byte gBattlerTarget
-_0802CC9C: .4byte gUnknown_2023BCC
+_0802CC9C: .4byte gBattlersCount
_0802CCA0: .4byte gBitTable
_0802CCA4: .4byte gAbsentBattlerFlags
_0802CCA8: .4byte gUnknown_2023D74
@@ -31080,7 +31080,7 @@ _0802CEF6:
ldr r1, _0802CF28 @ =gUnknown_8250848
adds r2, r1
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
_0802CF0A:
adds r7, r4, 0
cmp r7, 0x5
@@ -31284,7 +31284,7 @@ atkE9_setweatherballtype: @ 802D090
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -31294,7 +31294,7 @@ atkE9_setweatherballtype: @ 802D090
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0802D130
@@ -31546,12 +31546,12 @@ atkEC_pursuitrelated: @ 802D2A0
push {r4-r6,lr}
ldr r5, _0802D314 @ =sBattler_AI
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x2
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r4, _0802D318 @ =gActiveBattler
strb r0, [r4]
ldr r0, _0802D31C @ =gBattleTypeFlags
@@ -31681,12 +31681,12 @@ atkEE_removelightscreenreflect: @ 802D3B8
push {r4,lr}
ldr r0, _0802D400 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r1, _0802D404 @ =gUnknown_2023DE4
+ ldr r1, _0802D404 @ =gSideTimers
lsls r3, r0, 1
adds r0, r3, r0
lsls r0, 2
@@ -31716,7 +31716,7 @@ _0802D3E0:
b _0802D41E
.align 2, 0
_0802D400: .4byte sBattler_AI
-_0802D404: .4byte gUnknown_2023DE4
+_0802D404: .4byte gSideTimers
_0802D408: .4byte gSideAffecting
_0802D40C: .4byte 0x0000fffe
_0802D410: .4byte 0x0000fffd
@@ -32067,7 +32067,7 @@ _0802D6BC:
adds r0, r1
ldr r2, _0802D71C @ =gUnknown_2023D68
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r0, 24
@@ -32144,7 +32144,7 @@ _0802D76C:
adds r0, r1
movs r1, 0x26
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r0, 24
@@ -33070,7 +33070,7 @@ _0802DF18:
ldr r2, [r1]
adds r2, 0x6D
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
b _0802DF8C
.align 2, 0
_0802DF54: .4byte gMain
@@ -33183,14 +33183,14 @@ sub_802E020: @ 802E020
movs r0, 0xC
strb r0, [r1]
ldr r1, _0802E034 @ =gUnknown_2023BE2
- ldr r0, _0802E038 @ =gUnknown_2023BCC
+ ldr r0, _0802E038 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r1]
bx lr
.align 2, 0
_0802E030: .4byte gUnknown_2023BE3
_0802E034: .4byte gUnknown_2023BE2
-_0802E038: .4byte gUnknown_2023BCC
+_0802E038: .4byte gBattlersCount
thumb_func_end sub_802E020
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 27ac6b473..d9c84dcc4 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -260,7 +260,7 @@ sub_807F810: @ 807F810
ldr r0, _0807F860 @ =gEnemyParty
ldr r2, _0807F864 @ =gUnknown_841D148
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
movs r0, 0x7
bl IncrementGameStat
movs r0, 0x8
@@ -396,7 +396,7 @@ _0807F960:
ldr r0, _0807F990 @ =gEnemyParty
ldr r2, _0807F994 @ =gUnknown_841D148
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
movs r0, 0x7
bl IncrementGameStat
movs r0, 0x8
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 45107fad1..34b80978c 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -939,7 +939,7 @@ sub_80E6078: @ 80E6078
ldrb r0, [r1]
cmp r0, 0xC8
bne _080E60A4
- ldr r1, _080E609C @ =gUnknown_82538A8
+ ldr r1, _080E609C @ =gFacilityClassToPicIndex
ldr r2, _080E60A0 @ =0x000004a1
adds r0, r3, r2
ldrb r0, [r0]
@@ -948,12 +948,12 @@ sub_80E6078: @ 80E6078
.align 2, 0
_080E6094: .4byte gSaveBlock2Ptr
_080E6098: .4byte 0x0000056c
-_080E609C: .4byte gUnknown_82538A8
+_080E609C: .4byte gFacilityClassToPicIndex
_080E60A0: .4byte 0x000004a1
_080E60A4:
cmp r0, 0x63
bls _080E60C4
- ldr r2, _080E60C0 @ =gUnknown_82538A8
+ ldr r2, _080E60C0 @ =gFacilityClassToPicIndex
ldrb r0, [r1]
subs r0, 0x64
movs r1, 0xA4
@@ -965,9 +965,9 @@ _080E60A4:
adds r0, r2
b _080E60D6
.align 2, 0
-_080E60C0: .4byte gUnknown_82538A8
+_080E60C0: .4byte gFacilityClassToPicIndex
_080E60C4:
- ldr r3, _080E60DC @ =gUnknown_82538A8
+ ldr r3, _080E60DC @ =gFacilityClassToPicIndex
ldr r2, _080E60E0 @ =gUnknown_83FFAC4
ldrb r1, [r1]
lsls r0, r1, 2
@@ -981,7 +981,7 @@ _080E60D6:
pop {r1}
bx r1
.align 2, 0
-_080E60DC: .4byte gUnknown_82538A8
+_080E60DC: .4byte gFacilityClassToPicIndex
_080E60E0: .4byte gUnknown_83FFAC4
thumb_func_end sub_80E6078
@@ -995,7 +995,7 @@ sub_80E60E4: @ 80E60E4
ldrb r0, [r1]
cmp r0, 0xC8
bne _080E6110
- ldr r1, _080E6108 @ =gUnknown_825393E
+ ldr r1, _080E6108 @ =gFacilityClassToTrainerClass
ldr r2, _080E610C @ =0x000004a1
adds r0, r3, r2
ldrb r0, [r0]
@@ -1004,12 +1004,12 @@ sub_80E60E4: @ 80E60E4
.align 2, 0
_080E6100: .4byte gSaveBlock2Ptr
_080E6104: .4byte 0x0000056c
-_080E6108: .4byte gUnknown_825393E
+_080E6108: .4byte gFacilityClassToTrainerClass
_080E610C: .4byte 0x000004a1
_080E6110:
cmp r0, 0x63
bhi _080E6130
- ldr r3, _080E6128 @ =gUnknown_825393E
+ ldr r3, _080E6128 @ =gFacilityClassToTrainerClass
ldr r2, _080E612C @ =gUnknown_83FFAC4
ldrb r1, [r1]
lsls r0, r1, 2
@@ -1020,10 +1020,10 @@ _080E6110:
adds r0, r3
b _080E6144
.align 2, 0
-_080E6128: .4byte gUnknown_825393E
+_080E6128: .4byte gFacilityClassToTrainerClass
_080E612C: .4byte gUnknown_83FFAC4
_080E6130:
- ldr r2, _080E614C @ =gUnknown_825393E
+ ldr r2, _080E614C @ =gFacilityClassToTrainerClass
ldrb r0, [r1]
subs r0, 0x64
movs r1, 0xA4
@@ -1038,7 +1038,7 @@ _080E6144:
pop {r1}
bx r1
.align 2, 0
-_080E614C: .4byte gUnknown_825393E
+_080E614C: .4byte gFacilityClassToTrainerClass
thumb_func_end sub_80E60E4
thumb_func_start sub_80E6150
@@ -1465,7 +1465,7 @@ _080E646E:
adds r0, r4, 0
movs r1, 0x20
add r2, sp, 0xC
- bl sub_804037C
+ bl SetMonData
mov r0, r8
add r0, r10
ldrb r2, [r0, 0x2]
@@ -1474,7 +1474,7 @@ _080E646E:
adds r2, r0
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
mov r6, r9
_080E64A0:
cmp r6, 0x3
@@ -1523,7 +1523,7 @@ _080E64EC:
movs r0, 0xB
adds r1, r5, 0
muls r1, r0
- ldr r0, _080E651C @ =gUnknown_8245EE0
+ ldr r0, _080E651C @ =gSpeciesNames
adds r1, r0
adds r0, r6, 0
bl StringAppend
@@ -1537,7 +1537,7 @@ _080E64EC:
.align 2, 0
_080E6514: .4byte gStringVar1
_080E6518: .4byte gUnknown_83FE859
-_080E651C: .4byte gUnknown_8245EE0
+_080E651C: .4byte gSpeciesNames
_080E6520:
cmp r4, 0x8
beq _080E6538
@@ -1999,7 +1999,7 @@ _080E6874:
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r5, 0x1
cmp r5, 0x5
ble _080E6874
@@ -2101,7 +2101,7 @@ _080E6948:
adds r0, r4
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r5, 0x1
cmp r5, 0x5
ble _080E6948
@@ -3306,7 +3306,7 @@ _080E72EA:
adds r0, r4, 0
adds r1, r7, 0
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
_080E731A:
adds r5, 0x1
cmp r5, 0x2
@@ -3437,7 +3437,7 @@ _080E741C: .4byte gPlayerParty
thumb_func_start GetEreaderTrainerFrontSpriteId
GetEreaderTrainerFrontSpriteId: @ 80E7420
- ldr r1, _080E7434 @ =gUnknown_82538A8
+ ldr r1, _080E7434 @ =gFacilityClassToPicIndex
ldr r0, _080E7438 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _080E743C @ =0x000004a1
@@ -3447,14 +3447,14 @@ GetEreaderTrainerFrontSpriteId: @ 80E7420
ldrb r0, [r0]
bx lr
.align 2, 0
-_080E7434: .4byte gUnknown_82538A8
+_080E7434: .4byte gFacilityClassToPicIndex
_080E7438: .4byte gSaveBlock2Ptr
_080E743C: .4byte 0x000004a1
thumb_func_end GetEreaderTrainerFrontSpriteId
thumb_func_start GetEreaderTrainerClassId
GetEreaderTrainerClassId: @ 80E7440
- ldr r1, _080E7454 @ =gUnknown_825393E
+ ldr r1, _080E7454 @ =gFacilityClassToTrainerClass
ldr r0, _080E7458 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _080E745C @ =0x000004a1
@@ -3464,7 +3464,7 @@ GetEreaderTrainerClassId: @ 80E7440
ldrb r0, [r0]
bx lr
.align 2, 0
-_080E7454: .4byte gUnknown_825393E
+_080E7454: .4byte gFacilityClassToTrainerClass
_080E7458: .4byte gSaveBlock2Ptr
_080E745C: .4byte 0x000004a1
thumb_func_end GetEreaderTrainerClassId
diff --git a/asm/battle_util.s b/asm/battle_util.s
index 1c180978d..cab42d908 100644
--- a/asm/battle_util.s
+++ b/asm/battle_util.s
@@ -74,7 +74,7 @@ _08016EB4:
_08016EB8:
movs r0, 0x1
_08016EBA:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r2, r0, 24
_08016EC2:
@@ -199,12 +199,12 @@ PressurePPLoseOnUsingImprision: @ 8016F90
movs r0, 0x4
mov r8, r0
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r4, 0
- ldr r0, _080170B0 @ =gUnknown_2023BCC
+ ldr r0, _080170B0 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bge _08017038
@@ -217,7 +217,7 @@ PressurePPLoseOnUsingImprision: @ 8016F90
_08016FC6:
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
adds r6, r4, 0x1
@@ -270,7 +270,7 @@ _08017016:
strb r0, [r1]
_0801702E:
adds r4, r6, 0
- ldr r0, _080170B0 @ =gUnknown_2023BCC
+ ldr r0, _080170B0 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _08016FC6
@@ -335,7 +335,7 @@ _080170A0:
pop {r0}
bx r0
.align 2, 0
-_080170B0: .4byte gUnknown_2023BCC
+_080170B0: .4byte gBattlersCount
_080170B4: .4byte gBattleMons
_080170B8: .4byte gDisableStructs
_080170BC: .4byte gBitTable
@@ -354,7 +354,7 @@ PressurePPLoseOnUsingPerishSong: @ 80170C4
lsrs r3, r0, 24
movs r6, 0x4
movs r1, 0
- ldr r0, _080171BC @ =gUnknown_2023BCC
+ ldr r0, _080171BC @ =gBattlersCount
mov r8, r0
ldrb r0, [r0]
cmp r1, r0
@@ -472,7 +472,7 @@ _080171AA:
pop {r0}
bx r0
.align 2, 0
-_080171BC: .4byte gUnknown_2023BCC
+_080171BC: .4byte gBattlersCount
_080171C0: .4byte gBattleMons
_080171C4: .4byte gUnknown_2023BF0
_080171C8: .4byte gUnknown_2023C08
@@ -491,7 +491,7 @@ MarkAllBufferBanksForExecution: @ 80171D8
cmp r0, 0
beq _08017218
movs r2, 0
- ldr r4, _0801720C @ =gUnknown_2023BCC
+ ldr r4, _0801720C @ =gBattlersCount
ldrb r0, [r4]
cmp r2, r0
bge _08017236
@@ -510,12 +510,12 @@ _080171F4:
b _08017236
.align 2, 0
_08017208: .4byte gBattleTypeFlags
-_0801720C: .4byte gUnknown_2023BCC
+_0801720C: .4byte gBattlersCount
_08017210: .4byte gUnknown_2023BC8
_08017214: .4byte gBitTable
_08017218:
movs r2, 0
- ldr r4, _0801723C @ =gUnknown_2023BCC
+ ldr r4, _0801723C @ =gBattlersCount
ldrb r0, [r4]
cmp r2, r0
bge _08017236
@@ -535,7 +535,7 @@ _08017236:
pop {r0}
bx r0
.align 2, 0
-_0801723C: .4byte gUnknown_2023BCC
+_0801723C: .4byte gBattlersCount
_08017240: .4byte gUnknown_2023BC8
_08017244: .4byte gBitTable
thumb_func_end MarkAllBufferBanksForExecution
@@ -752,7 +752,7 @@ ResetSentPokesToOpponentValue: @ 80173D0
strb r3, [r0]
strb r3, [r0, 0x1]
movs r1, 0
- ldr r0, _08017428 @ =gUnknown_2023BCC
+ ldr r0, _08017428 @ =gBattlersCount
ldrb r2, [r0]
adds r6, r0, 0
cmp r1, r2
@@ -794,7 +794,7 @@ _0801741E:
bx r0
.align 2, 0
_08017424: .4byte gUnknown_2023F4E
-_08017428: .4byte gUnknown_2023BCC
+_08017428: .4byte gBattlersCount
_0801742C: .4byte gBitTable
_08017430: .4byte gBattlerPartyIndexes
thumb_func_end ResetSentPokesToOpponentValue
@@ -808,7 +808,7 @@ sub_8017434: @ 8017434
lsrs r5, r0, 24
movs r4, 0
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -822,7 +822,7 @@ sub_8017434: @ 8017434
adds r0, r1
strb r4, [r0]
adds r5, r4, 0
- ldr r0, _080174A8 @ =gUnknown_2023BCC
+ ldr r0, _080174A8 @ =gBattlersCount
ldrb r2, [r0]
mov r8, r1
cmp r4, r2
@@ -861,7 +861,7 @@ _08017498:
bx r0
.align 2, 0
_080174A4: .4byte gUnknown_2023F4E
-_080174A8: .4byte gUnknown_2023BCC
+_080174A8: .4byte gBattlersCount
_080174AC: .4byte gAbsentBattlerFlags
_080174B0: .4byte gBitTable
_080174B4: .4byte gBattlerPartyIndexes
@@ -873,7 +873,7 @@ sub_80174B8: @ 80174B8
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -883,7 +883,7 @@ sub_80174B8: @ 80174B8
b _0801750A
_080174D4:
movs r3, 0x1
- ldr r5, _08017510 @ =gUnknown_2023BCC
+ ldr r5, _08017510 @ =gBattlersCount
ldrb r0, [r5]
cmp r3, r0
bge _0801750A
@@ -915,7 +915,7 @@ _0801750A:
pop {r0}
bx r0
.align 2, 0
-_08017510: .4byte gUnknown_2023BCC
+_08017510: .4byte gBattlersCount
_08017514: .4byte gUnknown_2023F4E
_08017518: .4byte gBitTable
_0801751C: .4byte gBattlerPartyIndexes
@@ -1124,7 +1124,7 @@ _0801768E:
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _080176E8
- ldr r1, _080176E4 @ =gUnknown_2023F54
+ ldr r1, _080176E4 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -1146,14 +1146,14 @@ _080176D4: .4byte gUnknown_81D8EB7
_080176D8: .4byte gBattleMoves
_080176DC: .4byte gUnknown_81D8EC6
_080176E0: .4byte gUnknown_81D8F9F
-_080176E4: .4byte gUnknown_2023F54
+_080176E4: .4byte gEnigmaBerries
_080176E8:
ldrh r0, [r1, 0x2E]
bl ItemId_GetHoldEffect
lsls r0, 24
lsrs r3, r0, 24
_080176F2:
- ldr r2, _08017774 @ =gUnknown_2023D6F
+ ldr r2, _08017774 @ =gPotentialItemEffectBattler
ldr r1, _08017778 @ =gActiveBattler
ldrb r0, [r1]
strb r0, [r2]
@@ -1221,7 +1221,7 @@ _08017768:
pop {r1}
bx r1
.align 2, 0
-_08017774: .4byte gUnknown_2023D6F
+_08017774: .4byte gPotentialItemEffectBattler
_08017778: .4byte gActiveBattler
_0801777C: .4byte gBattleMons
_08017780: .4byte 0x0000ffff
@@ -1260,7 +1260,7 @@ CheckMoveLimitations: @ 801779C
ldrh r0, [r1, 0x2E]
cmp r0, 0xAF
bne _080177EC
- ldr r2, _080177E8 @ =gUnknown_2023F54
+ ldr r2, _080177E8 @ =gEnigmaBerries
lsls r1, r7, 3
subs r0, r1, r7
lsls r0, 2
@@ -1271,7 +1271,7 @@ CheckMoveLimitations: @ 801779C
.align 2, 0
_080177E0: .4byte gBattleStruct
_080177E4: .4byte gBattleMons
-_080177E8: .4byte gUnknown_2023F54
+_080177E8: .4byte gEnigmaBerries
_080177EC:
ldrh r0, [r1, 0x2E]
str r3, [sp, 0x14]
@@ -1282,7 +1282,7 @@ _080177EC:
lsls r1, r7, 3
ldr r3, [sp, 0x14]
_080177FE:
- ldr r0, _08017978 @ =gUnknown_2023D6F
+ ldr r0, _08017978 @ =gPotentialItemEffectBattler
strb r7, [r0]
movs r0, 0
mov r9, r0
@@ -1481,7 +1481,7 @@ _08017966:
pop {r1}
bx r1
.align 2, 0
-_08017978: .4byte gUnknown_2023D6F
+_08017978: .4byte gPotentialItemEffectBattler
_0801797C: .4byte gDisableStructs
_08017980: .4byte gBattleMons
_08017984: .4byte gUnknown_2023BF0
@@ -1524,7 +1524,7 @@ sub_8017998: @ 8017998
cmp r0, 0
beq _08017A1C
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r4, r0, 0
bl Random
movs r1, 0x1
@@ -1535,7 +1535,7 @@ sub_8017998: @ 8017998
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r2, _08017A18 @ =gUnknown_20233C4
ldrb r1, [r5]
lsls r1, 9
@@ -1551,12 +1551,12 @@ _08017A14: .4byte gBattleTypeFlags
_08017A18: .4byte gUnknown_20233C4
_08017A1C:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r2, _08017A3C @ =gUnknown_20233C4
ldrb r1, [r5]
lsls r1, 9
@@ -1599,12 +1599,12 @@ GetImprisonedMovesCount: @ 8017A64
lsls r1, 16
lsrs r5, r1, 16
movs r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r4, 0
- ldr r0, _08017AF8 @ =gUnknown_2023BCC
+ ldr r0, _08017AF8 @ =gBattlersCount
ldrb r0, [r0]
cmp r6, r0
bge _08017AE8
@@ -1613,7 +1613,7 @@ GetImprisonedMovesCount: @ 8017A64
_08017A8E:
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
adds r3, r4, 0x1
@@ -1654,7 +1654,7 @@ _08017AD4:
lsrs r6, r0, 24
_08017ADE:
adds r4, r3, 0
- ldr r0, _08017AF8 @ =gUnknown_2023BCC
+ ldr r0, _08017AF8 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _08017A8E
@@ -1667,7 +1667,7 @@ _08017AE8:
pop {r1}
bx r1
.align 2, 0
-_08017AF8: .4byte gUnknown_2023BCC
+_08017AF8: .4byte gBattlersCount
_08017AFC: .4byte gUnknown_2023BF0
_08017B00: .4byte gStatuses3
thumb_func_end GetImprisonedMovesCount
@@ -1684,7 +1684,7 @@ UpdateTurnCounters: @ 8017B04
ldr r1, _08017BA8 @ =sBattler_AI
mov r2, r9
strb r2, [r1]
- ldr r0, _08017BAC @ =gUnknown_2023BCC
+ ldr r0, _08017BAC @ =gBattlersCount
ldrb r4, [r0]
adds r6, r1, 0
mov r10, r0
@@ -1763,7 +1763,7 @@ _08017B9E:
mov pc, r0
.align 2, 0
_08017BA8: .4byte sBattler_AI
-_08017BAC: .4byte gUnknown_2023BCC
+_08017BAC: .4byte gBattlersCount
_08017BB0: .4byte gBattlerTarget
_08017BB4: .4byte gBattleStruct
_08017BB8: .4byte gAbsentBattlerFlags
@@ -1784,7 +1784,7 @@ _08017BC4:
.4byte _08018220
_08017BF0:
movs r5, 0
- ldr r1, _08017C10 @ =gUnknown_2023BCC
+ ldr r1, _08017C10 @ =gBattlersCount
mov r10, r1
ldrb r2, [r1]
cmp r5, r2
@@ -1801,7 +1801,7 @@ _08017C0A:
movs r5, 0
b _08017C58
.align 2, 0
-_08017C10: .4byte gUnknown_2023BCC
+_08017C10: .4byte gBattlersCount
_08017C14: .4byte gUnknown_2023BDE
_08017C18:
adds r4, r5, 0x1
@@ -1810,7 +1810,7 @@ _08017C18:
cmp r6, r1
bge _08017C56
ldr r7, _08017D14 @ =gUnknown_2023BDE
- ldr r0, _08017D18 @ =gUnknown_2023BCC
+ ldr r0, _08017D18 @ =gBattlersCount
mov r10, r0
lsls r1, r5, 24
mov r8, r1
@@ -1831,7 +1831,7 @@ _08017C2C:
bl SwapTurnOrder
_08017C4C:
adds r4, 0x1
- ldr r0, _08017D18 @ =gUnknown_2023BCC
+ ldr r0, _08017D18 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
blt _08017C2C
@@ -1871,7 +1871,7 @@ _08017C8E:
ldr r0, [r1]
adds r0, 0xDB
ldrb r4, [r0]
- ldr r2, _08017D2C @ =gUnknown_2023DE4
+ ldr r2, _08017D2C @ =gSideTimers
lsls r1, r4, 1
adds r0, r1, r4
lsls r0, 2
@@ -1938,12 +1938,12 @@ _08017D06:
b _08017F60
.align 2, 0
_08017D14: .4byte gUnknown_2023BDE
-_08017D18: .4byte gUnknown_2023BCC
+_08017D18: .4byte gBattlersCount
_08017D1C: .4byte gBattleStruct
_08017D20: .4byte gActiveBattler
_08017D24: .4byte sBattler_AI
_08017D28: .4byte gUnknown_2022AB8
-_08017D2C: .4byte gUnknown_2023DE4
+_08017D2C: .4byte gSideTimers
_08017D30: .4byte gSideAffecting
_08017D34: .4byte 0x0000fffe
_08017D38: .4byte gUnknown_81D8B32
@@ -1966,7 +1966,7 @@ _08017D56:
ldr r0, [r1]
adds r0, 0xDB
ldrb r4, [r0]
- ldr r2, _08017DEC @ =gUnknown_2023DE4
+ ldr r2, _08017DEC @ =gSideTimers
lsls r1, r4, 1
adds r0, r1, r4
lsls r0, 2
@@ -2037,7 +2037,7 @@ _08017DD4:
.align 2, 0
_08017DE4: .4byte sBattler_AI
_08017DE8: .4byte gUnknown_2022AB8
-_08017DEC: .4byte gUnknown_2023DE4
+_08017DEC: .4byte gSideTimers
_08017DF0: .4byte gActiveBattler
_08017DF4: .4byte gSideAffecting
_08017DF8: .4byte 0x0000fffd
@@ -2061,7 +2061,7 @@ _08017E20:
ldr r0, [r1]
adds r0, 0xDB
ldrb r4, [r0]
- ldr r1, _08017ECC @ =gUnknown_2023DE4
+ ldr r1, _08017ECC @ =gSideTimers
lsls r3, r4, 1
adds r0, r3, r4
lsls r0, 2
@@ -2144,7 +2144,7 @@ _08017EAC:
_08017EC0: .4byte gActiveBattler
_08017EC4: .4byte sBattler_AI
_08017EC8: .4byte gUnknown_2022AB8
-_08017ECC: .4byte gUnknown_2023DE4
+_08017ECC: .4byte gSideTimers
_08017ED0: .4byte gSideAffecting
_08017ED4: .4byte 0x0000feff
_08017ED8: .4byte gUnknown_81D8B32
@@ -2163,7 +2163,7 @@ _08017EF4:
ldr r0, [r1]
adds r0, 0xDB
ldrb r4, [r0]
- ldr r2, _08017F88 @ =gUnknown_2023DE4
+ ldr r2, _08017F88 @ =gSideTimers
lsls r1, r4, 1
adds r0, r1, r4
lsls r0, 2
@@ -2235,7 +2235,7 @@ _08017F68:
.align 2, 0
_08017F80: .4byte gActiveBattler
_08017F84: .4byte sBattler_AI
-_08017F88: .4byte gUnknown_2023DE4
+_08017F88: .4byte gSideTimers
_08017F8C: .4byte gSideAffecting
_08017F90: .4byte 0x0000ffdf
_08017F94: .4byte gUnknown_81D8B43
@@ -2244,7 +2244,7 @@ _08017F9C:
mov r2, r12
ldr r0, [r2]
adds r0, 0xDB
- ldr r1, _08018030 @ =gUnknown_2023BCC
+ ldr r1, _08018030 @ =gBattlersCount
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -2302,7 +2302,7 @@ _08017FF8:
_0801800E:
ldr r0, [r2]
adds r0, 0xDB
- ldr r1, _08018030 @ =gUnknown_2023BCC
+ ldr r1, _08018030 @ =gBattlersCount
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -2320,7 +2320,7 @@ _08018024:
strb r0, [r1, 0x3]
b _0801822A
.align 2, 0
-_08018030: .4byte gUnknown_2023BCC
+_08018030: .4byte gBattlersCount
_08018034: .4byte gActiveBattler
_08018038: .4byte gUnknown_2023BDE
_0801803C: .4byte gUnknown_2023F20
@@ -2597,7 +2597,7 @@ TurnBasedEffects: @ 8018258
str r0, [r2]
ldr r5, _08018294 @ =gBattleStruct
ldr r2, [r5]
- ldr r0, _08018298 @ =gUnknown_2023BCC
+ ldr r0, _08018298 @ =gBattlersCount
ldrb r1, [r2, 0x1]
adds r7, r5, 0
mov r8, r0
@@ -2611,7 +2611,7 @@ _08018288:
_0801828C: .4byte gUnknown_2023DD0
_08018290: .4byte 0x01000020
_08018294: .4byte gBattleStruct
-_08018298: .4byte gUnknown_2023BCC
+_08018298: .4byte gBattlersCount
_0801829C:
ldr r3, _080182D0 @ =gActiveBattler
ldr r4, _080182D4 @ =sBattler_AI
@@ -2731,7 +2731,7 @@ _080183AC:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _080183C6
@@ -3270,7 +3270,7 @@ _080187EE:
bcc _080187CE
_080187FC:
ldr r2, _08018814 @ =sBattler_AI
- ldr r1, _08018818 @ =gUnknown_2023BCC
+ ldr r1, _08018818 @ =gBattlersCount
ldrb r0, [r2]
ldrb r1, [r1]
cmp r0, r1
@@ -3281,7 +3281,7 @@ _080187FC:
.align 2, 0
_08018810: .4byte gBattleMons
_08018814: .4byte sBattler_AI
-_08018818: .4byte gUnknown_2023BCC
+_08018818: .4byte gBattlersCount
_0801881C:
ldr r5, _08018854 @ =gActiveBattler
ldrb r0, [r5]
@@ -3825,7 +3825,7 @@ _08018C4C:
_08018C50:
ldr r5, _08018C88 @ =gBattleStruct
ldr r2, [r5]
- ldr r0, _08018C8C @ =gUnknown_2023BCC
+ ldr r0, _08018C8C @ =gBattlersCount
ldrb r1, [r2, 0x1]
adds r7, r5, 0
mov r8, r0
@@ -3855,7 +3855,7 @@ _08018C78:
bx r1
.align 2, 0
_08018C88: .4byte gBattleStruct
-_08018C8C: .4byte gUnknown_2023BCC
+_08018C8C: .4byte gBattlersCount
_08018C90: .4byte gUnknown_2023DD0
_08018C94: .4byte 0xfeffffdf
thumb_func_end TurnBasedEffects
@@ -3893,7 +3893,7 @@ _08018CD0: .4byte gBattleStruct
_08018CD4:
ldr r2, _08018D20 @ =0x00000181
adds r0, r3, r2
- ldr r1, _08018D24 @ =gUnknown_2023BCC
+ ldr r1, _08018D24 @ =gBattlersCount
ldrb r0, [r0]
mov r8, r1
ldrb r6, [r1]
@@ -3933,7 +3933,7 @@ _08018CFC:
b _08018E04
.align 2, 0
_08018D20: .4byte 0x00000181
-_08018D24: .4byte gUnknown_2023BCC
+_08018D24: .4byte gBattlersCount
_08018D28: .4byte gActiveBattler
_08018D2C: .4byte gUnknown_2022AB8
_08018D30: .4byte gUnknown_2023F20
@@ -4059,7 +4059,7 @@ _08018E2C:
ldr r0, [r3]
ldr r2, _08018E7C @ =0x00000181
adds r0, r2
- ldr r1, _08018E80 @ =gUnknown_2023BCC
+ ldr r1, _08018E80 @ =gBattlersCount
ldrb r0, [r0]
mov r8, r1
ldrb r4, [r1]
@@ -4099,7 +4099,7 @@ _08018E4E:
b _08018F54
.align 2, 0
_08018E7C: .4byte 0x00000181
-_08018E80: .4byte gUnknown_2023BCC
+_08018E80: .4byte gBattlersCount
_08018E84: .4byte gActiveBattler
_08018E88: .4byte gUnknown_2022AB8
_08018E8C: .4byte gDisableStructs
@@ -4305,7 +4305,7 @@ _0801901C:
adds r0, 0x1
strb r0, [r1]
movs r5, 0
- ldr r0, _080190E8 @ =gUnknown_2023BCC
+ ldr r0, _080190E8 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _0801906E
@@ -4332,7 +4332,7 @@ _0801903C:
strb r0, [r6]
_08019064:
adds r5, 0x1
- ldr r0, _080190E8 @ =gUnknown_2023BCC
+ ldr r0, _080190E8 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801903C
@@ -4388,7 +4388,7 @@ _080190C6:
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
- ldr r0, _080190E8 @ =gUnknown_2023BCC
+ ldr r0, _080190E8 @ =gBattlersCount
lsls r1, 24
lsrs r1, 24
ldrb r0, [r0]
@@ -4401,7 +4401,7 @@ _080190C6:
strb r1, [r0]
b _08019264
.align 2, 0
-_080190E8: .4byte gUnknown_2023BCC
+_080190E8: .4byte gBattlersCount
_080190EC: .4byte gAbsentBattlerFlags
_080190F0: .4byte gBitTable
_080190F4: .4byte gBattleStruct
@@ -4419,7 +4419,7 @@ _08019108:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- ldr r1, _0801913C @ =gUnknown_2023BCC
+ ldr r1, _0801913C @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -4433,7 +4433,7 @@ _08019108:
.align 2, 0
_08019134: .4byte gUnknown_2023D6D
_08019138: .4byte gBattleStruct
-_0801913C: .4byte gUnknown_2023BCC
+_0801913C: .4byte gBattlersCount
_08019140:
ldr r0, [r2]
adds r0, 0x4D
@@ -4485,7 +4485,7 @@ _0801916A:
_08019198:
adds r0, r3, 0x1
strb r0, [r4]
- ldr r1, _080191C4 @ =gUnknown_2023BCC
+ ldr r1, _080191C4 @ =gBattlersCount
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
@@ -4499,7 +4499,7 @@ _080191B4: .4byte gBattleStruct
_080191B8: .4byte gBattleMons
_080191BC: .4byte gBitTable
_080191C0: .4byte gAbsentBattlerFlags
-_080191C4: .4byte gUnknown_2023BCC
+_080191C4: .4byte gBattlersCount
_080191C8:
mov r1, r8
ldr r0, [r1]
@@ -4507,7 +4507,7 @@ _080191C8:
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
- ldr r0, _080191EC @ =gUnknown_2023BCC
+ ldr r0, _080191EC @ =gBattlersCount
lsls r1, 24
lsrs r1, 24
ldrb r0, [r0]
@@ -4521,7 +4521,7 @@ _080191E0:
strb r1, [r0]
b _08019264
.align 2, 0
-_080191EC: .4byte gUnknown_2023BCC
+_080191EC: .4byte gBattlersCount
_080191F0:
mov r1, r8
ldr r0, [r1]
@@ -4536,7 +4536,7 @@ _080191FC:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -4548,7 +4548,7 @@ _08019216:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _0801922C
@@ -4569,7 +4569,7 @@ _08019240:
movs r1, 0
movs r2, 0
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08019256
@@ -4608,7 +4608,7 @@ _08019280: .4byte gBattleStruct
TryClearRageStatuses: @ 8019284
push {r4-r6,lr}
movs r3, 0
- ldr r0, _080192C4 @ =gUnknown_2023BCC
+ ldr r0, _080192C4 @ =gBattlersCount
adds r5, r0, 0
ldrb r0, [r5]
cmp r3, r0
@@ -4641,7 +4641,7 @@ _080192BC:
pop {r0}
bx r0
.align 2, 0
-_080192C4: .4byte gUnknown_2023BCC
+_080192C4: .4byte gBattlersCount
_080192C8: .4byte gUnknown_2023DC4
_080192CC: .4byte gUnknown_2023C34
_080192D0: .4byte 0xff7fffff
@@ -5315,7 +5315,7 @@ _08019868:
adds r0, r1, 0
movs r2, 0x1
movs r3, 0
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldr r1, _080198C0 @ =gBattleMoveDamage
str r0, [r1]
ldr r0, _080198C4 @ =gUnknown_2023E8C
@@ -5432,7 +5432,7 @@ _08019974:
_08019988:
ldr r0, _080199A0 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080199AC
@@ -5765,7 +5765,7 @@ _08019C40:
lsls r0, 24
lsrs r7, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, _08019CC4 @ =gEnemyParty
mov r8, r1
@@ -5826,17 +5826,17 @@ _08019CC4: .4byte gEnemyParty
_08019CC8: .4byte gPlayerParty
_08019CCC:
adds r0, r3, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08019CF8
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _08019CF4 @ =gEnemyParty
@@ -5846,11 +5846,11 @@ _08019CCC:
_08019CF4: .4byte gEnemyParty
_08019CF8:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _08019DA0 @ =gPlayerParty
@@ -5964,7 +5964,7 @@ sub_8019DAC: @ 8019DAC
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _08019DFE
@@ -5973,7 +5973,7 @@ sub_8019DAC: @ 8019DAC
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08019E24
@@ -6002,7 +6002,7 @@ _08019E24:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -6012,7 +6012,7 @@ _08019E24:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _08019E54
@@ -6124,8 +6124,8 @@ _08019F10: .4byte gBattleWeather
_08019F14: .4byte gBattleMons
thumb_func_end sub_8019DAC
- thumb_func_start sub_8019F18
-sub_8019F18: @ 8019F18
+ thumb_func_start AbilityBattleEffects
+AbilityBattleEffects: @ 8019F18
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -6149,7 +6149,7 @@ sub_8019F18: @ 8019F18
movs r0, 0
mov r9, r0
ldr r5, _08019F74 @ =sBattler_AI
- ldr r1, _08019F78 @ =gUnknown_2023BCC
+ ldr r1, _08019F78 @ =gBattlersCount
ldrb r0, [r5]
ldrb r1, [r1]
cmp r0, r1
@@ -6158,7 +6158,7 @@ sub_8019F18: @ 8019F18
strb r1, [r5]
_08019F54:
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08019F84
@@ -6173,7 +6173,7 @@ _08019F54:
b _08019F94
.align 2, 0
_08019F74: .4byte sBattler_AI
-_08019F78: .4byte gUnknown_2023BCC
+_08019F78: .4byte gBattlersCount
_08019F7C: .4byte gBattlerPartyIndexes
_08019F80: .4byte gPlayerParty
_08019F84:
@@ -6188,7 +6188,7 @@ _08019F84:
_08019F94:
adds r6, r1, r0
ldr r5, _08019FCC @ =gBattlerTarget
- ldr r1, _08019FD0 @ =gUnknown_2023BCC
+ ldr r1, _08019FD0 @ =gBattlersCount
ldrb r0, [r5]
ldrb r1, [r1]
cmp r0, r1
@@ -6197,7 +6197,7 @@ _08019F94:
strb r2, [r5]
_08019FA6:
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08019FD8
@@ -6214,7 +6214,7 @@ _08019FA6:
_08019FC4: .4byte gBattlerPartyIndexes
_08019FC8: .4byte gEnemyParty
_08019FCC: .4byte gBattlerTarget
-_08019FD0: .4byte gUnknown_2023BCC
+_08019FD0: .4byte gBattlersCount
_08019FD4: .4byte gPlayerParty
_08019FD8:
ldr r1, _0801A038 @ =gBattlerPartyIndexes
@@ -6258,7 +6258,7 @@ _0801A02A:
mov r3, r8
cmp r3, 0
beq _0801A048
- ldr r0, _0801A044 @ =gUnknown_2023D6A
+ ldr r0, _0801A044 @ =gLastUsedAbility
strb r3, [r0]
mov r8, r0
b _0801A05E
@@ -6266,9 +6266,9 @@ _0801A02A:
_0801A038: .4byte gBattlerPartyIndexes
_0801A03C: .4byte gEnemyParty
_0801A040: .4byte gBattleTypeFlags
-_0801A044: .4byte gUnknown_2023D6A
+_0801A044: .4byte gLastUsedAbility
_0801A048:
- ldr r2, _0801A078 @ =gUnknown_2023D6A
+ ldr r2, _0801A078 @ =gLastUsedAbility
ldr r1, _0801A07C @ =gBattleMons
movs r0, 0x58
mov r3, r10
@@ -6295,7 +6295,7 @@ _0801A066:
ands r5, r0
b _0801A094
.align 2, 0
-_0801A078: .4byte gUnknown_2023D6A
+_0801A078: .4byte gLastUsedAbility
_0801A07C: .4byte gBattleMons
_0801A080: .4byte gCurrentMove
_0801A084: .4byte gBattleStruct
@@ -6364,7 +6364,7 @@ _0801A0DC:
.4byte _0801B8B4
_0801A12C:
ldr r2, _0801A160 @ =sBattler_AI
- ldr r0, _0801A164 @ =gUnknown_2023BCC
+ ldr r0, _0801A164 @ =gBattlersCount
ldrb r1, [r2]
adds r3, r0, 0
ldrb r4, [r3]
@@ -6394,7 +6394,7 @@ _0801A15C:
bl _0801BBAA
.align 2, 0
_0801A160: .4byte sBattler_AI
-_0801A164: .4byte gUnknown_2023BCC
+_0801A164: .4byte gBattlersCount
_0801A168:
cmp r0, 0x16
bne _0801A16E
@@ -6681,13 +6681,13 @@ _0801A3C8:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0801A3DC @ =gUnknown_2023BCC
+ ldr r0, _0801A3DC @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _0801A3B4
bl _0801BBAA
.align 2, 0
-_0801A3DC: .4byte gUnknown_2023BCC
+_0801A3DC: .4byte gBattlersCount
_0801A3E0:
ldr r7, _0801A410 @ =gBattleMons
movs r0, 0x58
@@ -6731,7 +6731,7 @@ _0801A426:
movs r1, 0
movs r2, 0xD
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -6743,7 +6743,7 @@ _0801A442:
movs r1, 0
movs r2, 0x4D
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
beq _0801A45A
@@ -8085,7 +8085,7 @@ _0801B00C: .4byte gUnknown_81D94BE
_0801B010:
movs r4, 0
mov r10, r4
- ldr r0, _0801B044 @ =gUnknown_2023BCC
+ ldr r0, _0801B044 @ =gBattlersCount
ldrb r0, [r0]
cmp r10, r0
bcc _0801B020
@@ -8111,7 +8111,7 @@ _0801B03A:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0801B044: .4byte gUnknown_2023BCC
+_0801B044: .4byte gBattlersCount
_0801B048: .4byte gBattleMons
_0801B04C: .4byte _0801B050
.align 2, 0
@@ -8435,7 +8435,7 @@ _0801B358:
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r0, _0801B370 @ =gUnknown_2023BCC
+ ldr r0, _0801B370 @ =gBattlersCount
ldrb r0, [r0]
cmp r10, r0
bcs _0801B36C
@@ -8443,11 +8443,11 @@ _0801B358:
_0801B36C:
bl _0801BBAA
.align 2, 0
-_0801B370: .4byte gUnknown_2023BCC
+_0801B370: .4byte gBattlersCount
_0801B374:
movs r2, 0
mov r10, r2
- ldr r0, _0801B3C0 @ =gUnknown_2023BCC
+ ldr r0, _0801B3C0 @ =gBattlersCount
ldrb r0, [r0]
cmp r10, r0
bcc _0801B384
@@ -8478,13 +8478,13 @@ _0801B3AA:
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r0, _0801B3C0 @ =gUnknown_2023BCC
+ ldr r0, _0801B3C0 @ =gBattlersCount
ldrb r0, [r0]
cmp r10, r0
bcc _0801B386
bl _0801BBAA
.align 2, 0
-_0801B3C0: .4byte gUnknown_2023BCC
+_0801B3C0: .4byte gBattlersCount
_0801B3C4: .4byte gBattleMons
_0801B3C8:
mov r4, r8
@@ -8612,7 +8612,7 @@ _0801B4CC: .4byte gUnknown_2023D74
_0801B4D0: .4byte gUnknown_81D94CE
_0801B4D4:
movs r5, 0
- ldr r0, _0801B50C @ =gUnknown_2023BCC
+ ldr r0, _0801B50C @ =gBattlersCount
ldrb r1, [r0]
cmp r5, r1
blt _0801B4E0
@@ -8642,12 +8642,12 @@ _0801B4FE:
blt _0801B4EE
b _0801BBAA
.align 2, 0
-_0801B50C: .4byte gUnknown_2023BCC
+_0801B50C: .4byte gBattlersCount
_0801B510: .4byte gBattleMons
_0801B514: .4byte gStatuses3
_0801B518:
movs r5, 0
- ldr r0, _0801B5F4 @ =gUnknown_2023BCC
+ ldr r0, _0801B5F4 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B524
@@ -8681,17 +8681,17 @@ _0801B53C:
_0801B552:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
adds r6, r0, 0
eors r6, r1
ands r6, r1
adds r0, r6, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _0801B604 @ =gBattleTypeFlags
@@ -8735,7 +8735,7 @@ _0801B584:
lsls r1, 1
orrs r6, r1
adds r0, r6, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r2, r8
strb r0, [r2]
ldrb r0, [r2]
@@ -8752,16 +8752,16 @@ _0801B584:
adds r0, r4
adds r0, 0x20
ldrb r0, [r0]
- ldr r2, _0801B608 @ =gUnknown_2023D6A
+ ldr r2, _0801B608 @ =gLastUsedAbility
strb r0, [r2]
b _0801B6C4
.align 2, 0
-_0801B5F4: .4byte gUnknown_2023BCC
+_0801B5F4: .4byte gBattlersCount
_0801B5F8: .4byte gActiveBattler
_0801B5FC: .4byte gBattleMons
_0801B600: .4byte gStatuses3
_0801B604: .4byte gBattleTypeFlags
-_0801B608: .4byte gUnknown_2023D6A
+_0801B608: .4byte gLastUsedAbility
_0801B60C:
ldr r3, _0801B650 @ =gBattleMons
movs r2, 0x58
@@ -8794,12 +8794,12 @@ _0801B60C:
adds r0, r3
adds r0, 0x20
ldrb r0, [r0]
- ldr r2, _0801B654 @ =gUnknown_2023D6A
+ ldr r2, _0801B654 @ =gLastUsedAbility
strb r0, [r2]
b _0801B6C4
.align 2, 0
_0801B650: .4byte gBattleMons
-_0801B654: .4byte gUnknown_2023D6A
+_0801B654: .4byte gLastUsedAbility
_0801B658:
ldr r3, _0801B698 @ =gBattleMons
movs r2, 0x58
@@ -8854,7 +8854,7 @@ _0801B69C:
strb r1, [r0]
ldrb r0, [r2]
_0801B6C0:
- ldr r1, _0801B6F4 @ =gUnknown_2023D6A
+ ldr r1, _0801B6F4 @ =gLastUsedAbility
strb r0, [r1]
_0801B6C4:
mov r0, r9
@@ -8875,7 +8875,7 @@ _0801B6D6:
adds r4, 0x4
str r4, [sp, 0x20]
adds r5, 0x1
- ldr r0, _0801B6F8 @ =gUnknown_2023BCC
+ ldr r0, _0801B6F8 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _0801B6EE
@@ -8884,11 +8884,11 @@ _0801B6EE:
b _0801BBAA
.align 2, 0
_0801B6F0: .4byte gBattleMons
-_0801B6F4: .4byte gUnknown_2023D6A
-_0801B6F8: .4byte gUnknown_2023BCC
+_0801B6F4: .4byte gLastUsedAbility
+_0801B6F8: .4byte gBattlersCount
_0801B6FC:
movs r5, 0
- ldr r0, _0801B734 @ =gUnknown_2023BCC
+ ldr r0, _0801B734 @ =gBattlersCount
ldrb r1, [r0]
cmp r5, r1
blt _0801B708
@@ -8918,16 +8918,16 @@ _0801B726:
blt _0801B716
b _0801BBAA
.align 2, 0
-_0801B734: .4byte gUnknown_2023BCC
+_0801B734: .4byte gBattlersCount
_0801B738: .4byte gBattleMons
_0801B73C: .4byte gStatuses3
_0801B740:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _0801B790 @ =gUnknown_2023BCC
+ ldr r0, _0801B790 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B756
@@ -8938,7 +8938,7 @@ _0801B756:
_0801B75A:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
adds r4, r5, 0x1
@@ -8951,29 +8951,29 @@ _0801B75A:
ldrb r0, [r0]
cmp r0, r7
bne _0801B784
- ldr r0, _0801B798 @ =gUnknown_2023D6A
+ ldr r0, _0801B798 @ =gLastUsedAbility
strb r7, [r0]
lsls r0, r4, 24
lsrs r0, 24
mov r9, r0
_0801B784:
adds r5, r4, 0
- ldr r0, _0801B790 @ =gUnknown_2023BCC
+ ldr r0, _0801B790 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B75A
b _0801BBAA
.align 2, 0
-_0801B790: .4byte gUnknown_2023BCC
+_0801B790: .4byte gBattlersCount
_0801B794: .4byte gBattleMons
-_0801B798: .4byte gUnknown_2023D6A
+_0801B798: .4byte gLastUsedAbility
_0801B79C:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _0801B7EC @ =gUnknown_2023BCC
+ ldr r0, _0801B7EC @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B7B2
@@ -8984,7 +8984,7 @@ _0801B7B2:
_0801B7B6:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
adds r4, r5, 0x1
@@ -8997,22 +8997,22 @@ _0801B7B6:
ldrb r0, [r0]
cmp r0, r7
bne _0801B7E0
- ldr r0, _0801B7F4 @ =gUnknown_2023D6A
+ ldr r0, _0801B7F4 @ =gLastUsedAbility
strb r7, [r0]
lsls r0, r4, 24
lsrs r0, 24
mov r9, r0
_0801B7E0:
adds r5, r4, 0
- ldr r0, _0801B7EC @ =gUnknown_2023BCC
+ ldr r0, _0801B7EC @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B7B6
b _0801BBAA
.align 2, 0
-_0801B7EC: .4byte gUnknown_2023BCC
+_0801B7EC: .4byte gBattlersCount
_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gUnknown_2023D6A
+_0801B7F4: .4byte gLastUsedAbility
_0801B7F8:
mov r2, r8
ldrb r0, [r2]
@@ -9021,7 +9021,7 @@ _0801B7F8:
cmp r0, 0xFE
beq _0801B858
movs r5, 0
- ldr r0, _0801B818 @ =gUnknown_2023BCC
+ ldr r0, _0801B818 @ =gBattlersCount
adds r3, r0, 0
ldrb r4, [r3]
cmp r5, r4
@@ -9031,11 +9031,11 @@ _0801B812:
ldr r2, _0801B81C @ =gBattleMons
b _0801B890
.align 2, 0
-_0801B818: .4byte gUnknown_2023BCC
+_0801B818: .4byte gBattlersCount
_0801B81C: .4byte gBattleMons
_0801B820:
movs r5, 0
- ldr r0, _0801B850 @ =gUnknown_2023BCC
+ ldr r0, _0801B850 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B82C
@@ -9062,11 +9062,11 @@ _0801B848:
blt _0801B834
b _0801BBAA
.align 2, 0
-_0801B850: .4byte gUnknown_2023BCC
+_0801B850: .4byte gBattlersCount
_0801B854: .4byte gStatuses3
_0801B858:
movs r5, 0
- ldr r0, _0801B888 @ =gUnknown_2023BCC
+ ldr r0, _0801B888 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B864
@@ -9093,7 +9093,7 @@ _0801B880:
blt _0801B86C
b _0801BBAA
.align 2, 0
-_0801B888: .4byte gUnknown_2023BCC
+_0801B888: .4byte gBattlersCount
_0801B88C: .4byte gStatuses3
_0801B890:
movs r0, 0x58
@@ -9117,7 +9117,7 @@ _0801B8AA:
b _0801BBAA
_0801B8B4:
movs r5, 0
- ldr r0, _0801B8F0 @ =gUnknown_2023BCC
+ ldr r0, _0801B8F0 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B8C0
@@ -9150,10 +9150,10 @@ _0801B8E8:
blt _0801B8C6
b _0801BBAA
.align 2, 0
-_0801B8F0: .4byte gUnknown_2023BCC
+_0801B8F0: .4byte gBattlersCount
_0801B8F4: .4byte gBattleMons
_0801B8F8:
- ldr r0, _0801B908 @ =gUnknown_2023D6A
+ ldr r0, _0801B908 @ =gLastUsedAbility
strb r7, [r0]
adds r0, r5, 0x1
lsls r0, 24
@@ -9161,14 +9161,14 @@ _0801B8F8:
mov r9, r0
b _0801B94A
.align 2, 0
-_0801B908: .4byte gUnknown_2023D6A
+_0801B908: .4byte gLastUsedAbility
_0801B90C:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldr r0, _0801B99C @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _0801B94A
@@ -9176,7 +9176,7 @@ _0801B90C:
_0801B922:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, r6
@@ -9190,7 +9190,7 @@ _0801B922:
beq _0801B8F8
_0801B940:
adds r5, 0x1
- ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldr r0, _0801B99C @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B922
@@ -9201,7 +9201,7 @@ _0801B94A:
b _0801BBB0
_0801B952:
movs r5, 0
- ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldr r0, _0801B99C @ =gBattlersCount
ldrb r0, [r0]
cmp r9, r0
blt _0801B95E
@@ -9220,36 +9220,36 @@ _0801B962:
bne _0801B990
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, r6
bne _0801B990
cmp r5, r10
beq _0801B990
- ldr r0, _0801B9A4 @ =gUnknown_2023D6A
+ ldr r0, _0801B9A4 @ =gLastUsedAbility
strb r7, [r0]
lsls r0, r4, 24
lsrs r0, 24
mov r9, r0
_0801B990:
adds r5, r4, 0
- ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldr r0, _0801B99C @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B962
b _0801BBAA
.align 2, 0
-_0801B99C: .4byte gUnknown_2023BCC
+_0801B99C: .4byte gBattlersCount
_0801B9A0: .4byte gBattleMons
-_0801B9A4: .4byte gUnknown_2023D6A
+_0801B9A4: .4byte gLastUsedAbility
_0801B9A8:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _0801B9F8 @ =gUnknown_2023BCC
+ ldr r0, _0801B9F8 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B9BE
@@ -9259,7 +9259,7 @@ _0801B9BE:
_0801B9C0:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, r6
@@ -9271,7 +9271,7 @@ _0801B9C0:
ldrb r0, [r0]
cmp r0, r7
bne _0801B9EC
- ldr r0, _0801BA00 @ =gUnknown_2023D6A
+ ldr r0, _0801BA00 @ =gLastUsedAbility
strb r7, [r0]
mov r0, r9
adds r0, 0x1
@@ -9280,22 +9280,22 @@ _0801B9C0:
mov r9, r0
_0801B9EC:
adds r5, 0x1
- ldr r0, _0801B9F8 @ =gUnknown_2023BCC
+ ldr r0, _0801B9F8 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801B9C0
b _0801BBAA
.align 2, 0
-_0801B9F8: .4byte gUnknown_2023BCC
+_0801B9F8: .4byte gBattlersCount
_0801B9FC: .4byte gBattleMons
-_0801BA00: .4byte gUnknown_2023D6A
+_0801BA00: .4byte gLastUsedAbility
_0801BA04:
mov r0, r10
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
- ldr r0, _0801BA54 @ =gUnknown_2023BCC
+ ldr r0, _0801BA54 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801BA1A
@@ -9305,7 +9305,7 @@ _0801BA1A:
_0801BA1C:
lsls r0, r5, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, r6
@@ -9317,7 +9317,7 @@ _0801BA1C:
ldrb r0, [r0]
cmp r0, r7
bne _0801BA48
- ldr r0, _0801BA5C @ =gUnknown_2023D6A
+ ldr r0, _0801BA5C @ =gLastUsedAbility
strb r7, [r0]
mov r0, r9
adds r0, 0x1
@@ -9326,15 +9326,15 @@ _0801BA1C:
mov r9, r0
_0801BA48:
adds r5, 0x1
- ldr r0, _0801BA54 @ =gUnknown_2023BCC
+ ldr r0, _0801BA54 @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _0801BA1C
b _0801BBAA
.align 2, 0
-_0801BA54: .4byte gUnknown_2023BCC
+_0801BA54: .4byte gBattlersCount
_0801BA58: .4byte gBattleMons
-_0801BA5C: .4byte gUnknown_2023D6A
+_0801BA5C: .4byte gLastUsedAbility
_0801BA60:
ldr r0, _0801BA78 @ =gUnknown_81D92F8
bl BattleScriptPushCursorAndCallback
@@ -9414,7 +9414,7 @@ _0801BAC8:
strb r4, [r1]
movs r0, 0x9
strb r0, [r1, 0x1]
- ldr r0, _0801BB38 @ =gUnknown_2023D6A
+ ldr r0, _0801BB38 @ =gLastUsedAbility
ldrb r0, [r0]
strb r0, [r1, 0x2]
movs r0, 0x1
@@ -9430,7 +9430,7 @@ _0801BB28: .4byte gUnknown_2022AB8
_0801BB2C: .4byte gActiveBattler
_0801BB30: .4byte gBattlerPartyIndexes
_0801BB34: .4byte gUnknown_2022AC8
-_0801BB38: .4byte gUnknown_2023D6A
+_0801BB38: .4byte gLastUsedAbility
_0801BB3C:
mov r3, r8
strb r1, [r3]
@@ -9461,7 +9461,7 @@ _0801BB70: .4byte gUnknown_81D9310
_0801BB74: .4byte gBattleStruct
_0801BB78:
movs r5, 0
- ldr r0, _0801BBD8 @ =gUnknown_2023BCC
+ ldr r0, _0801BBD8 @ =gBattlersCount
ldrb r1, [r0]
cmp r5, r1
bge _0801BBAA
@@ -9469,7 +9469,7 @@ _0801BB78:
adds r2, r1, 0
adds r1, r0, 0
adds r1, 0x20
- ldr r3, _0801BBE0 @ =gUnknown_2023D6A
+ ldr r3, _0801BBE0 @ =gLastUsedAbility
_0801BB8C:
ldrb r0, [r1]
cmp r0, r7
@@ -9495,7 +9495,7 @@ _0801BBB0:
ldr r0, [sp, 0x4]
cmp r0, 0xB
bhi _0801BBC6
- ldr r1, _0801BBE0 @ =gUnknown_2023D6A
+ ldr r1, _0801BBE0 @ =gLastUsedAbility
ldrb r0, [r1]
cmp r0, 0xFF
beq _0801BBC6
@@ -9513,10 +9513,10 @@ _0801BBC6:
pop {r1}
bx r1
.align 2, 0
-_0801BBD8: .4byte gUnknown_2023BCC
+_0801BBD8: .4byte gBattlersCount
_0801BBDC: .4byte gBattleMons
-_0801BBE0: .4byte gUnknown_2023D6A
- thumb_func_end sub_8019F18
+_0801BBE0: .4byte gLastUsedAbility
+ thumb_func_end AbilityBattleEffects
thumb_func_start BattleScriptExecute
BattleScriptExecute: @ 801BBE4
@@ -9615,7 +9615,7 @@ sub_801BC68: @ 801BC68
lsrs r0, 16
cmp r0, 0xAF
bne _0801BCC0
- ldr r1, _0801BCBC @ =gUnknown_2023F54
+ ldr r1, _0801BCBC @ =gEnigmaBerries
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -9626,7 +9626,7 @@ sub_801BC68: @ 801BC68
.align 2, 0
_0801BCB4: .4byte gUnknown_2023D68
_0801BCB8: .4byte gBattleMons
-_0801BCBC: .4byte gUnknown_2023F54
+_0801BCBC: .4byte gEnigmaBerries
_0801BCC0:
ldrh r0, [r4]
bl ItemId_GetHoldEffect
@@ -9648,7 +9648,7 @@ _0801BCD4:
str r0, [sp, 0x14]
cmp r0, 0xAF
bne _0801BD08
- ldr r1, _0801BD04 @ =gUnknown_2023F54
+ ldr r1, _0801BD04 @ =gEnigmaBerries
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
@@ -9660,7 +9660,7 @@ _0801BCD4:
.align 2, 0
_0801BCFC: .4byte gBattleMons
_0801BD00: .4byte sBattler_AI
-_0801BD04: .4byte gUnknown_2023F54
+_0801BD04: .4byte gEnigmaBerries
_0801BD08:
ldr r0, [sp, 0x14]
bl ItemId_GetHoldEffect
@@ -9758,7 +9758,7 @@ _0801BDB8:
_0801BDD0:
ldr r0, _0801BDF0 @ =gBattleScripting
strb r7, [r0, 0x17]
- ldr r0, _0801BDF4 @ =gUnknown_2023D6F
+ ldr r0, _0801BDF4 @ =gPotentialItemEffectBattler
strb r7, [r0]
ldr r1, _0801BDF8 @ =gActiveBattler
ldr r0, _0801BDFC @ =sBattler_AI
@@ -9770,7 +9770,7 @@ _0801BDD0:
.align 2, 0
_0801BDEC: .4byte gBattleMons
_0801BDF0: .4byte gBattleScripting
-_0801BDF4: .4byte gUnknown_2023D6F
+_0801BDF4: .4byte gPotentialItemEffectBattler
_0801BDF8: .4byte gActiveBattler
_0801BDFC: .4byte sBattler_AI
_0801BE00: .4byte gUnknown_81D95D9
@@ -9886,7 +9886,7 @@ _0801BF2C:
bl _0801C952
_0801BF34:
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801BF58
@@ -10036,7 +10036,7 @@ _0801C04A:
_0801C066:
ldr r0, _0801C084 @ =gBattleScripting
strb r7, [r0, 0x17]
- ldr r0, _0801C088 @ =gUnknown_2023D6F
+ ldr r0, _0801C088 @ =gPotentialItemEffectBattler
strb r7, [r0]
ldr r1, _0801C08C @ =gActiveBattler
ldr r0, _0801C090 @ =sBattler_AI
@@ -10048,7 +10048,7 @@ _0801C066:
.align 2, 0
_0801C080: .4byte gBattleMons
_0801C084: .4byte gBattleScripting
-_0801C088: .4byte gUnknown_2023D6F
+_0801C088: .4byte gPotentialItemEffectBattler
_0801C08C: .4byte gActiveBattler
_0801C090: .4byte sBattler_AI
_0801C094: .4byte gUnknown_81D95D9
@@ -11175,7 +11175,7 @@ _0801C952:
_0801C95A:
ldr r0, _0801C98C @ =gBattleScripting
strb r7, [r0, 0x17]
- ldr r0, _0801C990 @ =gUnknown_2023D6F
+ ldr r0, _0801C990 @ =gPotentialItemEffectBattler
strb r7, [r0]
ldr r4, _0801C994 @ =gActiveBattler
ldr r0, _0801C998 @ =sBattler_AI
@@ -11194,7 +11194,7 @@ _0801C980: .4byte gUnknown_82500C4
_0801C984: .4byte gUnknown_81D95BF
_0801C988: .4byte gUnknown_2023E82
_0801C98C: .4byte gBattleScripting
-_0801C990: .4byte gUnknown_2023D6F
+_0801C990: .4byte gPotentialItemEffectBattler
_0801C994: .4byte gActiveBattler
_0801C998: .4byte sBattler_AI
_0801C99C:
@@ -11248,7 +11248,7 @@ _0801C9F4: .4byte gDisableStructs
_0801C9F8: .4byte gBitTable
_0801C9FC:
movs r7, 0
- ldr r0, _0801CA2C @ =gUnknown_2023BCC
+ ldr r0, _0801CA2C @ =gBattlersCount
ldrb r0, [r0]
cmp r7, r0
bcc _0801CA08
@@ -11265,7 +11265,7 @@ _0801CA08:
lsrs r0, 16
cmp r0, 0xAF
bne _0801CA3C
- ldr r1, _0801CA38 @ =gUnknown_2023F54
+ ldr r1, _0801CA38 @ =gEnigmaBerries
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
@@ -11273,10 +11273,10 @@ _0801CA08:
ldrb r5, [r0, 0x7]
b _0801CA4C
.align 2, 0
-_0801CA2C: .4byte gUnknown_2023BCC
+_0801CA2C: .4byte gBattlersCount
_0801CA30: .4byte gUnknown_2023D68
_0801CA34: .4byte gBattleMons
-_0801CA38: .4byte gUnknown_2023F54
+_0801CA38: .4byte gEnigmaBerries
_0801CA3C:
ldrh r0, [r4]
bl ItemId_GetHoldEffect
@@ -11684,7 +11684,7 @@ _0801CDB4:
beq _0801CE34
ldr r0, _0801CDE0 @ =gBattleScripting
strb r7, [r0, 0x17]
- ldr r0, _0801CDE4 @ =gUnknown_2023D6F
+ ldr r0, _0801CDE4 @ =gPotentialItemEffectBattler
strb r7, [r0]
bl BattleScriptPushCursor
ldr r1, _0801CDE8 @ =gUnknown_2023D74
@@ -11694,7 +11694,7 @@ _0801CDB4:
.align 2, 0
_0801CDDC: .4byte gBattleMons
_0801CDE0: .4byte gBattleScripting
-_0801CDE4: .4byte gUnknown_2023D6F
+_0801CDE4: .4byte gPotentialItemEffectBattler
_0801CDE8: .4byte gUnknown_2023D74
_0801CDEC: .4byte gUnknown_81D95DF
_0801CDF0:
@@ -11704,7 +11704,7 @@ _0801CDF0:
_0801CDF6:
ldr r0, _0801CE24 @ =gBattleScripting
strb r7, [r0, 0x17]
- ldr r0, _0801CE28 @ =gUnknown_2023D6F
+ ldr r0, _0801CE28 @ =gPotentialItemEffectBattler
strb r7, [r0]
ldr r4, _0801CE2C @ =gActiveBattler
strb r7, [r4]
@@ -11725,14 +11725,14 @@ _0801CE08:
b _0801CFA6
.align 2, 0
_0801CE24: .4byte gBattleScripting
-_0801CE28: .4byte gUnknown_2023D6F
+_0801CE28: .4byte gPotentialItemEffectBattler
_0801CE2C: .4byte gActiveBattler
_0801CE30: .4byte gUnknown_2023C30
_0801CE34:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _0801CE48 @ =gUnknown_2023BCC
+ ldr r0, _0801CE48 @ =gBattlersCount
ldrb r0, [r0]
cmp r7, r0
bcs _0801CE44
@@ -11740,7 +11740,7 @@ _0801CE34:
_0801CE44:
b _0801CFA6
.align 2, 0
-_0801CE48: .4byte gUnknown_2023BCC
+_0801CE48: .4byte gBattlersCount
_0801CE4C:
ldr r7, _0801CE64 @ =gBattleMoveDamage
ldr r0, [r7]
@@ -11871,7 +11871,7 @@ _0801CF10:
mov r2, sp
ldrh r2, [r2, 0x14]
strh r2, [r0]
- ldr r0, _0801CFD4 @ =gUnknown_2023D6F
+ ldr r0, _0801CFD4 @ =gPotentialItemEffectBattler
strb r3, [r0]
ldr r0, _0801CFD8 @ =gBattleScripting
strb r3, [r0, 0x17]
@@ -11924,7 +11924,7 @@ _0801CFC4: .4byte 0x0000ffff
_0801CFC8: .4byte sBattler_AI
_0801CFCC: .4byte gBattleMons
_0801CFD0: .4byte gUnknown_2023D68
-_0801CFD4: .4byte gUnknown_2023D6F
+_0801CFD4: .4byte gPotentialItemEffectBattler
_0801CFD8: .4byte gBattleScripting
_0801CFDC: .4byte gUnknown_2023D74
_0801CFE0: .4byte gUnknown_81D9622
@@ -12098,12 +12098,12 @@ _0801D0A0:
_0801D1A4:
ldr r0, _0801D284 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _0801D288 @ =gUnknown_2023DE4
+ ldr r1, _0801D288 @ =gSideTimers
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
@@ -12123,7 +12123,7 @@ _0801D1A4:
_0801D1D6:
ldr r0, _0801D284 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r7, 1
@@ -12132,7 +12132,7 @@ _0801D1E6:
bl Random
lsls r0, 16
lsrs r0, 16
- ldr r1, _0801D290 @ =gUnknown_2023BCC
+ ldr r1, _0801D290 @ =gBattlersCount
ldrb r1, [r1]
bl __modsi3
lsls r0, 24
@@ -12142,7 +12142,7 @@ _0801D1E6:
cmp r5, r3
beq _0801D1E6
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -12171,7 +12171,7 @@ _0801D234:
movs r0, 0x10
movs r2, 0x1F
movs r3, 0
- bl sub_8019F18
+ bl AbilityBattleEffects
lsls r0, 24
cmp r0, 0
bne _0801D24A
@@ -12208,9 +12208,9 @@ _0801D25E:
b _0801D39C
.align 2, 0
_0801D284: .4byte sBattler_AI
-_0801D288: .4byte gUnknown_2023DE4
+_0801D288: .4byte gSideTimers
_0801D28C: .4byte gBattleMons
-_0801D290: .4byte gUnknown_2023BCC
+_0801D290: .4byte gBattlersCount
_0801D294: .4byte gAbsentBattlerFlags
_0801D298: .4byte gBitTable
_0801D29C: .4byte gBattleMoves
@@ -12218,7 +12218,7 @@ _0801D2A0: .4byte gUnknown_2023ECC
_0801D2A4:
ldr r0, _0801D2B8 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r2, 0x1
movs r0, 0x1
@@ -12230,12 +12230,12 @@ _0801D2B8: .4byte sBattler_AI
_0801D2BC:
ldr r0, _0801D2F0 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _0801D2F4 @ =gUnknown_2023DE4
+ ldr r1, _0801D2F4 @ =gSideTimers
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
@@ -12256,7 +12256,7 @@ _0801D2EC:
b _0801D39C
.align 2, 0
_0801D2F0: .4byte sBattler_AI
-_0801D2F4: .4byte gUnknown_2023DE4
+_0801D2F4: .4byte gSideTimers
_0801D2F8: .4byte gBattleMons
_0801D2FC:
ldr r0, _0801D330 @ =gBattleTypeFlags
@@ -12271,7 +12271,7 @@ _0801D2FC:
beq _0801D378
ldr r0, _0801D334 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0801D33C
@@ -12299,7 +12299,7 @@ _0801D33C:
_0801D34C:
movs r0, 0x2
_0801D34E:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0801D370 @ =gAbsentBattlerFlags
@@ -12320,13 +12320,13 @@ _0801D374: .4byte gBitTable
_0801D378:
ldr r0, _0801D394 @ =sBattler_AI
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
movs r2, 0x1
movs r0, 0x1
ands r0, r1
eors r0, r2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
b _0801D39C
@@ -12360,7 +12360,7 @@ HasObedientBitSet: @ 801D3C0
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12429,7 +12429,7 @@ sub_801D438: @ 801D438
bne _0801D4F4
ldr r4, _0801D500 @ =sBattler_AI
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12686,7 +12686,7 @@ _0801D634:
cmp r0, 0xF
beq _0801D6CC
movs r2, 0
- ldr r0, _0801D6C0 @ =gUnknown_2023BCC
+ ldr r0, _0801D6C0 @ =gBattlersCount
ldrb r3, [r0]
adds r7, r0, 0
cmp r2, r3
@@ -12718,7 +12718,7 @@ _0801D6AA:
.align 2, 0
_0801D6B8: .4byte gBattleMons
_0801D6BC: .4byte sBattler_AI
-_0801D6C0: .4byte gUnknown_2023BCC
+_0801D6C0: .4byte gBattlersCount
_0801D6C4: .4byte gUnknown_2023D74
_0801D6C8: .4byte gUnknown_81D9504
_0801D6CC:
@@ -12759,7 +12759,7 @@ _0801D6F4:
adds r0, r1, 0
movs r2, 0x1
movs r3, 0
- bl sub_803ECEC
+ bl CalculateBaseDamage
ldr r1, _0801D74C @ =gBattleMoveDamage
str r0, [r1]
ldr r1, _0801D750 @ =gBattlerTarget
diff --git a/asm/battle_util2.s b/asm/battle_util2.s
index d83b79202..77c4a5a51 100644
--- a/asm/battle_util2.s
+++ b/asm/battle_util2.s
@@ -229,11 +229,11 @@ sub_802E228: @ 802E228
cmp r0, 0
beq _0802E274
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r3, r0, 24
ldr r2, _0802E270 @ =gBattleMons
@@ -256,7 +256,7 @@ _0802E26C: .4byte gBattleTypeFlags
_0802E270: .4byte gBattleMons
_0802E274:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
_0802E27E:
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index b474a1249..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1123 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_803ECEC
-sub_803ECEC: @ 803ECEC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r6, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- cmp r3, 0
- bne _0803ED40
- ldr r2, _0803ED38 @ =gUnknown_2024020
- ldr r1, _0803ED3C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _0803ED44
- .align 2, 0
-_0803ED38: .4byte gUnknown_2024020
-_0803ED3C: .4byte gBattleMoves
-_0803ED40:
- ldr r0, _0803ED5C @ =gUnknown_2024020
- strh r3, [r0]
-_0803ED44:
- cmp r7, 0
- bne _0803ED64
- ldr r1, _0803ED60 @ =gBattleMoves
- ldr r7, [sp, 0x8]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r9, r0
- b _0803ED6E
- .align 2, 0
-_0803ED5C: .4byte gUnknown_2024020
-_0803ED60: .4byte gBattleMoves
-_0803ED64:
- movs r0, 0x3F
- mov r9, r0
- mov r1, r9
- ands r1, r7
- mov r9, r1
-_0803ED6E:
- ldrh r7, [r6, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x14]
- ldrh r3, [r6, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x18]
- ldrh r0, [r6, 0x2E]
- cmp r0, 0xAF
- bne _0803EDA0
- ldr r1, _0803ED9C @ =gUnknown_2023F54
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r10, r3
- ldrb r0, [r0, 0x1A]
- b _0803EDB6
- .align 2, 0
-_0803ED9C: .4byte gUnknown_2023F54
-_0803EDA0:
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0803EDB6:
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803EDE6
- ldr r1, _0803EDD0 @ =gUnknown_2023F54
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x1C]
- b _0803EDFC
- .align 2, 0
-_0803EDD0: .4byte gUnknown_2023F54
-_0803EDD4:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- b _0803EF44
-_0803EDE6:
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffectParam
-_0803EDFC:
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x24]
- cmp r1, 0x25
- beq _0803EE0C
- cmp r1, 0x4A
- bne _0803EE10
-_0803EE0C:
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_0803EE10:
- ldr r0, _0803EF28 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0803EF2C @ =0x00000802
- ands r0, r1
- cmp r0, 0
- bne _0803EEE8
- movs r0, 0x82
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803EE44
- ldr r0, [sp, 0x10]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EE44
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_0803EE44:
- ldr r0, _0803EF28 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0803EF2C @ =0x00000802
- ands r0, r1
- cmp r0, 0
- bne _0803EEE8
- ldr r0, _0803EF30 @ =0x00000824
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803EE7A
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EE7A
- movs r0, 0x6E
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803EE7A:
- ldr r0, _0803EF28 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0803EF2C @ =0x00000802
- ands r0, r1
- cmp r0, 0
- bne _0803EEE8
- ldr r0, _0803EF34 @ =0x00000826
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803EEB2
- ldr r0, [sp, 0x10]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EEB2
- movs r0, 0x6E
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803EEB2:
- ldr r0, _0803EF28 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0803EF2C @ =0x00000802
- ands r0, r1
- cmp r0, 0
- bne _0803EEE8
- ldr r0, _0803EF34 @ =0x00000826
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803EEE8
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EEE8
- movs r0, 0x6E
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803EEE8:
- movs r2, 0
- ldr r4, _0803EF38 @ =gUnknown_825DECC
- ldr r0, [sp, 0x4]
- adds r0, 0x20
- str r0, [sp, 0x28]
- adds r3, r4, 0
-_0803EEF4:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r10, r0
- bne _0803EF3C
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r9, r0
- bne _0803EF3C
- mov r1, r9
- cmp r1, 0x8
- bhi _0803EF0E
- b _0803EDD4
-_0803EF0E:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0803EF44
- .align 2, 0
-_0803EF28: .4byte gBattleTypeFlags
-_0803EF2C: .4byte 0x00000802
-_0803EF30: .4byte 0x00000824
-_0803EF34: .4byte 0x00000826
-_0803EF38: .4byte gUnknown_825DECC
-_0803EF3C:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _0803EEF4
-_0803EF44:
- mov r3, r10
- cmp r3, 0x1D
- bne _0803EF58
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_0803EF58:
- mov r0, r10
- cmp r0, 0x22
- bne _0803EF90
- ldr r0, _0803F244 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0803EF90
- ldr r1, _0803F248 @ =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803EF90
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803EF90:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x22
- bne _0803EFC8
- ldr r0, _0803F244 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0803EFC8
- ldr r1, _0803F248 @ =0xfffffe69
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803EFC8
- movs r0, 0x96
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803EFC8:
- mov r0, r10
- cmp r0, 0x23
- bne _0803EFDE
- ldrh r1, [r6]
- ldr r0, _0803F24C @ =0x00000175
- cmp r1, r0
- bne _0803EFDE
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_0803EFDE:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x24
- bne _0803EFF6
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, _0803F24C @ =0x00000175
- cmp r1, r0
- bne _0803EFF6
- ldr r1, [sp, 0x18]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803EFF6:
- mov r2, r10
- cmp r2, 0x2D
- bne _0803F00A
- ldrh r0, [r6]
- cmp r0, 0x19
- bne _0803F00A
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0803F00A:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x40
- bne _0803F020
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _0803F020
- ldr r2, [sp, 0x14]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803F020:
- mov r3, r10
- cmp r3, 0x41
- bne _0803F036
- ldrh r0, [r6]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803F036
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_0803F036:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _0803F04E
- mov r2, r9
- cmp r2, 0xA
- beq _0803F048
- cmp r2, 0xF
- bne _0803F04E
-_0803F048:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_0803F04E:
- ldr r0, [sp, 0x24]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _0803F064
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_0803F064:
- cmp r4, 0x39
- bne _0803F092
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl sub_8019F18
- lsls r0, 24
- cmp r0, 0
- beq _0803F092
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803F092:
- ldr r2, [sp, 0x24]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _0803F0C4
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl sub_8019F18
- lsls r0, 24
- cmp r0, 0
- beq _0803F0C4
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803F0C4:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _0803F0E0
- ldr r0, [r6, 0x4C]
- cmp r0, 0
- beq _0803F0E0
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_0803F0E0:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _0803F102
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _0803F102
- movs r0, 0x96
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803F102:
- mov r2, r9
- cmp r2, 0xD
- bne _0803F126
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl sub_8019F18
- lsls r0, 24
- cmp r0, 0
- beq _0803F126
- ldr r1, _0803F250 @ =gUnknown_2024020
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803F126:
- mov r3, r9
- cmp r3, 0xA
- bne _0803F14A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl sub_8019F18
- lsls r0, 24
- cmp r0, 0
- beq _0803F14A
- ldr r1, _0803F250 @ =gUnknown_2024020
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803F14A:
- mov r0, r9
- cmp r0, 0xC
- bne _0803F17A
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0803F17A
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803F17A
- ldr r4, _0803F250 @ =gUnknown_2024020
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803F17A:
- mov r2, r9
- cmp r2, 0xA
- bne _0803F1AA
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _0803F1AA
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803F1AA
- ldr r4, _0803F250 @ =gUnknown_2024020
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803F1AA:
- mov r0, r9
- cmp r0, 0xB
- bne _0803F1DA
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _0803F1DA
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803F1DA
- ldr r4, _0803F250 @ =gUnknown_2024020
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803F1DA:
- mov r2, r9
- cmp r2, 0x6
- bne _0803F20A
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _0803F20A
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803F20A
- ldr r4, _0803F250 @ =gUnknown_2024020
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803F20A:
- ldr r2, _0803F254 @ =gBattleMoves
- ldr r0, _0803F258 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0803F224
- ldr r0, [sp, 0x14]
- lsrs r0, 1
- str r0, [sp, 0x14]
-_0803F224:
- mov r1, r9
- cmp r1, 0x8
- bls _0803F22C
- b _0803F38A
-_0803F22C:
- ldr r0, _0803F25C @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803F268
- movs r0, 0x19
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _0803F264
- ldr r2, _0803F260 @ =gUnknown_825DEAD
- b _0803F26E
- .align 2, 0
-_0803F244: .4byte gBattleTypeFlags
-_0803F248: .4byte 0xfffffe69
-_0803F24C: .4byte 0x00000175
-_0803F250: .4byte gUnknown_2024020
-_0803F254: .4byte gBattleMoves
-_0803F258: .4byte gCurrentMove
-_0803F25C: .4byte gCritMultiplier
-_0803F260: .4byte gUnknown_825DEAD
-_0803F264:
- adds r5, r7, 0
- b _0803F286
-_0803F268:
- ldr r2, _0803F2B8 @ =gUnknown_825DEAD
- movs r0, 0x19
- ldrsb r0, [r6, r0]
-_0803F26E:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r7, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803F286:
- ldr r0, _0803F2BC @ =gUnknown_2024020
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803F2C4
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _0803F2C0
- ldr r2, _0803F2B8 @ =gUnknown_825DEAD
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _0803F2CC
- .align 2, 0
-_0803F2B8: .4byte gUnknown_825DEAD
-_0803F2BC: .4byte gUnknown_2024020
-_0803F2C0:
- ldr r3, [sp, 0x14]
- b _0803F2E6
-_0803F2C4:
- ldr r2, _0803F344 @ =gUnknown_825DEAD
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_0803F2CC:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r7, [sp, 0x14]
- adds r3, r7, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803F2E6:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r6, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803F310
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _0803F310
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F310:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _0803F352
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803F352
- ldr r0, _0803F348 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _0803F34C
- movs r0, 0x2
- bl sub_803F5B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803F34C
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803F352
- .align 2, 0
-_0803F344: .4byte gUnknown_825DEAD
-_0803F348: .4byte gBattleTypeFlags
-_0803F34C:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F352:
- ldr r0, _0803F3B0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803F384
- ldr r0, _0803F3B4 @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803F384
- movs r0, 0x2
- bl sub_803F5B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803F384
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F384:
- cmp r5, 0
- bne _0803F38A
- movs r5, 0x1
-_0803F38A:
- mov r7, r9
- cmp r7, 0x9
- bne _0803F392
- movs r5, 0
-_0803F392:
- mov r0, r9
- cmp r0, 0x9
- bhi _0803F39A
- b _0803F59C
-_0803F39A:
- ldr r0, _0803F3B8 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803F3C4
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _0803F3C0
- ldr r2, _0803F3BC @ =gUnknown_825DEAD
- b _0803F3CA
- .align 2, 0
-_0803F3B0: .4byte gBattleTypeFlags
-_0803F3B4: .4byte gBattleMoves
-_0803F3B8: .4byte gCritMultiplier
-_0803F3BC: .4byte gUnknown_825DEAD
-_0803F3C0:
- mov r5, r8
- b _0803F3E2
-_0803F3C4:
- ldr r2, _0803F410 @ =gUnknown_825DEAD
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
-_0803F3CA:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803F3E2:
- ldr r0, _0803F414 @ =gUnknown_2024020
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803F41C
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0803F418
- ldr r2, _0803F410 @ =gUnknown_825DEAD
- b _0803F424
- .align 2, 0
-_0803F410: .4byte gUnknown_825DEAD
-_0803F414: .4byte gUnknown_2024020
-_0803F418:
- ldr r3, [sp, 0x18]
- b _0803F43E
-_0803F41C:
- ldr r2, _0803F484 @ =gUnknown_825DEAD
- ldr r7, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r7, r0]
-_0803F424:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x18]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803F43E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r7, [sp, 0xC]
- ands r0, r7
- cmp r0, 0
- beq _0803F492
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803F492
- ldr r0, _0803F488 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _0803F48C
- movs r0, 0x2
- bl sub_803F5B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803F48C
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803F492
- .align 2, 0
-_0803F484: .4byte gUnknown_825DEAD
-_0803F488: .4byte gBattleTypeFlags
-_0803F48C:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F492:
- ldr r0, _0803F50C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803F4C4
- ldr r0, _0803F510 @ =gBattleMoves
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803F4C4
- movs r0, 0x2
- bl sub_803F5B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803F4C4
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F4C4:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8019F18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0803F574
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8019F18
- lsls r0, 24
- cmp r0, 0
- bne _0803F574
- ldr r2, _0803F514 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0803F52C
- mov r3, r9
- cmp r3, 0xA
- beq _0803F518
- cmp r3, 0xB
- beq _0803F520
- b _0803F52C
- .align 2, 0
-_0803F50C: .4byte gBattleTypeFlags
-_0803F510: .4byte gBattleMoves
-_0803F514: .4byte gBattleWeather
-_0803F518:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _0803F52C
-_0803F520:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803F52C:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _0803F544
- ldr r0, _0803F55C @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _0803F544
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F544:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0803F574
- mov r6, r9
- cmp r6, 0xA
- beq _0803F560
- cmp r6, 0xB
- beq _0803F56E
- b _0803F574
- .align 2, 0
-_0803F55C: .4byte gCurrentMove
-_0803F560:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _0803F574
-_0803F56E:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803F574:
- ldr r0, _0803F5B0 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- ldr r7, [sp, 0x10]
- lsls r1, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803F59C
- mov r0, r9
- cmp r0, 0xA
- bne _0803F59C
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803F59C:
- adds r0, r5, 0x2
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F5B0: .4byte gBattleResources
- thumb_func_end sub_803ECEC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/daycare.s b/asm/daycare.s
index 9357c5cdb..88e4a235f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -331,7 +331,7 @@ _08045628:
movs r6, 0
cmp r0, r7
bne _08045638
- ldr r0, _08045658 @ =gUnknown_2024022
+ ldr r0, _08045658 @ =gMoveToLearn
ldrh r1, [r0]
adds r0, r4, 0
bl DeleteFirstMoveAndGiveMoveToMon
@@ -352,7 +352,7 @@ _0804564C:
pop {r0}
bx r0
.align 2, 0
-_08045658: .4byte gUnknown_2024022
+_08045658: .4byte gMoveToLearn
thumb_func_end ApplyDaycareExperience
thumb_func_start TakeSelectedPokemonFromDaycare
@@ -386,7 +386,7 @@ TakeSelectedPokemonFromDaycare: @ 804565C
add r2, sp, 0x64
mov r0, sp
movs r1, 0x19
- bl sub_804037C
+ bl SetMonData
mov r0, sp
bl ApplyDaycareExperience
_080456AA:
@@ -488,7 +488,7 @@ GetLevelAfterDaycareSteps: @ 804574C
add r2, sp, 0x50
mov r0, sp
movs r1, 0x19
- bl sub_80404D0
+ bl SetBoxMonData
mov r0, sp
bl GetLevelFromBoxMonExp
lsls r0, 24
@@ -1039,7 +1039,7 @@ _08045B64:
strb r0, [r2]
mov r0, r9
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
b _08045C0E
_08045B82:
add r4, sp, 0x10
@@ -1094,7 +1094,7 @@ _08045BD0:
movs r1, 0x2B
_08045BE8:
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
b _08045C0E
_08045BF0:
add r4, sp, 0x10
@@ -1109,7 +1109,7 @@ _08045BF0:
mov r0, r9
movs r1, 0x2C
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
_08045C0E:
adds r0, r5, 0x1
lsls r0, 24
@@ -1783,7 +1783,7 @@ sub_80460D4: @ 80460D4
strb r0, [r2]
mov r0, sp
movs r1, 0x2D
- bl sub_804037C
+ bl SetMonData
ldr r0, _0804614C @ =gPlayerParty
movs r1, 0xFA
lsls r1, 1
@@ -1842,11 +1842,11 @@ CreateEgg: @ 8046150
adds r0, r7, 0
movs r1, 0x26
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
ldr r2, _08046200 @ =gUnknown_825F83E
adds r0, r7, 0
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
lsls r2, r5, 3
subs r2, r5
lsls r2, 2
@@ -1854,15 +1854,15 @@ CreateEgg: @ 8046150
adds r2, r0
adds r0, r7, 0
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x24
mov r2, r8
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
cmp r6, 0
beq _080461E2
add r2, sp, 0x14
@@ -1870,7 +1870,7 @@ CreateEgg: @ 8046150
strb r0, [r2]
adds r0, r7, 0
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
_080461E2:
mov r2, sp
adds r2, 0x15
@@ -1878,7 +1878,7 @@ _080461E2:
strb r0, [r2]
adds r0, r7, 0
movs r1, 0x2D
- bl sub_804037C
+ bl SetMonData
add sp, 0x18
pop {r3,r4}
mov r8, r3
@@ -1936,11 +1936,11 @@ SetInitialEggData: @ 8046208
adds r0, r6, 0
movs r1, 0x26
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
ldr r2, _080462A4 @ =gUnknown_825F83E
adds r0, r6, 0
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
lsls r2, r5, 3
subs r2, r5
lsls r2, 2
@@ -1948,15 +1948,15 @@ SetInitialEggData: @ 8046208
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x24
mov r2, r9
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
add sp, 0x14
pop {r3,r4}
mov r8, r3
@@ -2089,11 +2089,11 @@ _08046390:
adds r0, r4, 0
movs r1, 0x20
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_0804639E:
adds r5, 0x1
_080463A0:
- ldr r0, _080463B4 @ =gUnknown_2024029
+ ldr r0, _080463B4 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r5, r0
bcc _08046350
@@ -2105,7 +2105,7 @@ _080463AA:
pop {r1}
bx r1
.align 2, 0
-_080463B4: .4byte gUnknown_2024029
+_080463B4: .4byte gPlayerPartyCount
thumb_func_end sub_80462C4
thumb_func_start sub_80463B8
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 6e20b06da..05a45baa1 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -158,11 +158,11 @@ _080BD810:
_080BD814:
movs r0, 0xB
muls r0, r2
- ldr r1, _080BD820 @ =gUnknown_8245EE0
+ ldr r1, _080BD820 @ =gSpeciesNames
adds r0, r1
b _080BD846
.align 2, 0
-_080BD820: .4byte gUnknown_8245EE0
+_080BD820: .4byte gSpeciesNames
_080BD824:
movs r0, 0xD
muls r0, r2
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index 16732a4d3..02d8f123f 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -110,7 +110,7 @@ _08046CC8:
adds r2, r0
adds r2, 0x10
adds r0, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -123,7 +123,7 @@ _08046CE6:
lsls r2, r4, 2
adds r2, r7, r2
adds r0, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -135,30 +135,30 @@ _08046CE6:
adds r0, r5, 0
movs r1, 0x3
mov r2, r9
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x25
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x8
ldr r2, [sp, 0x40]
- bl sub_804037C
+ bl SetMonData
movs r0, 0x78
ldr r1, [sp, 0x44]
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x20
ldr r2, [sp, 0x44]
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x22
ldr r2, [sp, 0x4C]
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x50
ldr r2, [sp, 0x48]
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x64
@@ -193,7 +193,7 @@ AddHatchedMonToParty: @ 8046D60
adds r0, r5, 0
movs r1, 0x2D
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
@@ -206,7 +206,7 @@ AddHatchedMonToParty: @ 8046D60
adds r0, r5, 0
movs r1, 0x2
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
bl SpeciesToNationalPokedexNum
adds r4, r0, 0
@@ -227,20 +227,20 @@ AddHatchedMonToParty: @ 8046D60
strh r0, [r2]
adds r0, r5, 0
movs r1, 0x26
- bl sub_804037C
+ bl SetMonData
add r2, sp, 0x10
movs r0, 0
strh r0, [r2]
adds r0, r5, 0
movs r1, 0x24
- bl sub_804037C
+ bl SetMonData
bl sav1_map_get_name
mov r2, sp
adds r2, 0x12
strb r0, [r2]
adds r0, r5, 0
movs r1, 0x23
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
bl MonRestorePP
adds r0, r5, 0
@@ -400,7 +400,7 @@ _08046F1C:
lsls r0, r4, 3
ldr r1, _08046F64 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _08046F68 @ =gUnknown_202401C
+ ldr r1, _08046F68 @ =gMonSpritesGfxPtr
ldr r2, [r1]
mov r6, r8
lsls r1, r6, 1
@@ -419,14 +419,14 @@ _08046F1C:
b _08046FA6
.align 2, 0
_08046F64: .4byte gUnknown_82350AC
-_08046F68: .4byte gUnknown_202401C
+_08046F68: .4byte gMonSpritesGfxPtr
_08046F6C:
adds r0, r5, 0
bl GetMonSpritePalStruct
ldrh r0, [r0, 0x4]
adds r1, r4, 0
bl sub_803F7D4
- ldr r0, _08046FB4 @ =gUnknown_20244DC
+ ldr r0, _08046FB4 @ =gMultiuseSpriteTemplate
movs r1, 0x78
movs r2, 0x46
movs r3, 0x6
@@ -456,7 +456,7 @@ _08046FA6:
pop {r1}
bx r1
.align 2, 0
-_08046FB4: .4byte gUnknown_20244DC
+_08046FB4: .4byte gMultiuseSpriteTemplate
_08046FB8: .4byte gSprites
_08046FBC: .4byte SpriteCallbackDummy
thumb_func_end sub_8046ED0
@@ -778,7 +778,7 @@ EggHatchSetMonNickname: @ 80472A0
adds r0, r1
ldr r2, _080472D8 @ =gStringVar3
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
bl FreeMonSpritesGfx
ldr r0, _080472DC @ =gUnknown_3000E74
ldr r0, [r0]
diff --git a/asm/event_data.s b/asm/event_data.s
index e2758639f..1875449fa 100644
--- a/asm/event_data.s
+++ b/asm/event_data.s
@@ -829,9 +829,9 @@ sub_806E6FC: @ 806E6FC
strh r0, [r1]
ldr r1, _0806E790 @ =gUnknown_20370D2
strh r0, [r1]
- ldr r1, _0806E794 @ =gUnknown_20370D6
+ ldr r1, _0806E794 @ =gSpecialVar_MonBoxId
strh r0, [r1]
- ldr r1, _0806E798 @ =gUnknown_20370D8
+ ldr r1, _0806E798 @ =gSpecialVar_MonBoxPos
strh r0, [r1]
ldr r1, _0806E79C @ =gUnknown_20370DA
strh r0, [r1]
@@ -857,8 +857,8 @@ _0806E784: .4byte gUnknown_20370D4
_0806E788: .4byte gUnknown_20370D0
_0806E78C: .4byte gUnknown_203AD30
_0806E790: .4byte gUnknown_20370D2
-_0806E794: .4byte gUnknown_20370D6
-_0806E798: .4byte gUnknown_20370D8
+_0806E794: .4byte gSpecialVar_MonBoxId
+_0806E798: .4byte gSpecialVar_MonBoxPos
_0806E79C: .4byte gUnknown_20370DA
_0806E7A0: .4byte gUnknown_20370DC
_0806E7A4: .4byte gUnknown_20370DE
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 1966dcaca..ed01b9e63 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -221,7 +221,7 @@ EvolutionScene: @ 80CDDF4
mov r2, r10
muls r2, r1
adds r1, r2, 0
- ldr r2, _080CE0B4 @ =gUnknown_8245EE0
+ ldr r2, _080CE0B4 @ =gSpeciesNames
adds r1, r2
bl StringCopy
adds r0, r4, 0
@@ -241,7 +241,7 @@ EvolutionScene: @ 80CDDF4
lsls r0, r5, 3
ldr r1, _080CE0B8 @ =gUnknown_82350AC
adds r0, r1
- ldr r2, _080CE0BC @ =gUnknown_202401C
+ ldr r2, _080CE0BC @ =gMonSpritesGfxPtr
ldr r1, [r2]
ldr r1, [r1, 0x8]
adds r2, r5, 0
@@ -258,7 +258,7 @@ EvolutionScene: @ 80CDDF4
adds r0, r5, 0
movs r1, 0x1
bl sub_803F7D4
- ldr r0, _080CE0C0 @ =gUnknown_20244DC
+ ldr r0, _080CE0C0 @ =gMultiuseSpriteTemplate
mov r8, r0
ldr r1, _080CE0C4 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
@@ -297,7 +297,7 @@ EvolutionScene: @ 80CDDF4
lsls r0, r1, 3
ldr r2, _080CE0B8 @ =gUnknown_82350AC
adds r0, r2
- ldr r2, _080CE0BC @ =gUnknown_202401C
+ ldr r2, _080CE0BC @ =gMonSpritesGfxPtr
ldr r1, [r2]
ldr r1, [r1, 0x10]
mov r2, r10
@@ -414,10 +414,10 @@ _080CE0A4: .4byte gReservedSpritePaletteCount
_080CE0A8: .4byte gUnknown_2039A20
_080CE0AC: .4byte gStringVar1
_080CE0B0: .4byte gStringVar2
-_080CE0B4: .4byte gUnknown_8245EE0
+_080CE0B4: .4byte gSpeciesNames
_080CE0B8: .4byte gUnknown_82350AC
-_080CE0BC: .4byte gUnknown_202401C
-_080CE0C0: .4byte gUnknown_20244DC
+_080CE0BC: .4byte gMonSpritesGfxPtr
+_080CE0C0: .4byte gMultiuseSpriteTemplate
_080CE0C4: .4byte gDummySpriteAffineAnimTable
_080CE0C8: .4byte gSprites
_080CE0CC: .4byte nullsub_10
@@ -526,7 +526,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
lsls r0, r5, 3
ldr r1, _080CE2B8 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080CE2BC @ =gUnknown_202401C
+ ldr r1, _080CE2BC @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x10]
adds r2, r5, 0
@@ -543,7 +543,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
adds r0, r5, 0
movs r1, 0x3
bl sub_803F7D4
- ldr r0, _080CE2C0 @ =gUnknown_20244DC
+ ldr r0, _080CE2C0 @ =gMultiuseSpriteTemplate
ldr r1, _080CE2C4 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
@@ -619,8 +619,8 @@ _080CE2AC: .4byte gUnknown_2022982
_080CE2B0: .4byte gUnknown_2022B50
_080CE2B4: .4byte gReservedSpritePaletteCount
_080CE2B8: .4byte gUnknown_82350AC
-_080CE2BC: .4byte gUnknown_202401C
-_080CE2C0: .4byte gUnknown_20244DC
+_080CE2BC: .4byte gMonSpritesGfxPtr
+_080CE2C0: .4byte gMultiuseSpriteTemplate
_080CE2C4: .4byte gDummySpriteAffineAnimTable
_080CE2C8: .4byte gSprites
_080CE2CC: .4byte nullsub_10
@@ -772,7 +772,7 @@ _080CE414:
lsls r0, r6, 3
ldr r1, _080CE454 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080CE458 @ =gUnknown_202401C
+ ldr r1, _080CE458 @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x10]
adds r2, r6, 0
@@ -789,12 +789,12 @@ _080CE414:
b _080CE4EC
.align 2, 0
_080CE454: .4byte gUnknown_82350AC
-_080CE458: .4byte gUnknown_202401C
+_080CE458: .4byte gMonSpritesGfxPtr
_080CE45C:
adds r0, r6, 0
movs r1, 0x1
bl sub_803F7D4
- ldr r0, _080CE4B4 @ =gUnknown_20244DC
+ ldr r0, _080CE4B4 @ =gMultiuseSpriteTemplate
ldr r1, _080CE4B8 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
@@ -832,7 +832,7 @@ _080CE45C:
bl sub_80504B0
b _080CE534
.align 2, 0
-_080CE4B4: .4byte gUnknown_20244DC
+_080CE4B4: .4byte gMultiuseSpriteTemplate
_080CE4B8: .4byte gDummySpriteAffineAnimTable
_080CE4BC: .4byte gUnknown_2039A20
_080CE4C0: .4byte gSprites
@@ -921,7 +921,7 @@ TradeEvolutionScene: @ 80CE540
ldr r0, _080CE6B4 @ =gStringVar2
movs r1, 0xB
muls r1, r5
- ldr r2, _080CE6B8 @ =gUnknown_8245EE0
+ ldr r2, _080CE6B8 @ =gSpeciesNames
adds r1, r2
bl StringCopy
ldr r1, _080CE6BC @ =gAffineAnimsDisabled
@@ -953,7 +953,7 @@ TradeEvolutionScene: @ 80CE540
lsls r0, r5, 3
ldr r1, _080CE6C4 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080CE6C8 @ =gUnknown_202401C
+ ldr r1, _080CE6C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x8]
adds r2, r5, 0
@@ -970,7 +970,7 @@ TradeEvolutionScene: @ 80CE540
adds r0, r5, 0
movs r1, 0x1
bl sub_803F7D4
- ldr r0, _080CE6CC @ =gUnknown_20244DC
+ ldr r0, _080CE6CC @ =gMultiuseSpriteTemplate
ldr r1, _080CE6D0 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
@@ -1066,12 +1066,12 @@ TradeEvolutionScene: @ 80CE540
.align 2, 0
_080CE6B0: .4byte gStringVar1
_080CE6B4: .4byte gStringVar2
-_080CE6B8: .4byte gUnknown_8245EE0
+_080CE6B8: .4byte gSpeciesNames
_080CE6BC: .4byte gAffineAnimsDisabled
_080CE6C0: .4byte gUnknown_2039A20
_080CE6C4: .4byte gUnknown_82350AC
-_080CE6C8: .4byte gUnknown_202401C
-_080CE6CC: .4byte gUnknown_20244DC
+_080CE6C8: .4byte gMonSpritesGfxPtr
+_080CE6CC: .4byte gMultiuseSpriteTemplate
_080CE6D0: .4byte gDummySpriteAffineAnimTable
_080CE6D4: .4byte gSprites
_080CE6D8: .4byte nullsub_10
@@ -1141,7 +1141,7 @@ CreateShedinja: @ 80CE748
beq _080CE778
b _080CE8B2
_080CE778:
- ldr r6, _080CE8C8 @ =gUnknown_2024029
+ ldr r6, _080CE8C8 @ =gPlayerPartyCount
ldrb r0, [r6]
cmp r0, 0x5
bls _080CE782
@@ -1162,7 +1162,7 @@ _080CE782:
adds r2, r1, r7
adds r2, 0xC
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6]
muls r0, r5
adds r0, r4
@@ -1170,28 +1170,28 @@ _080CE782:
ldrh r2, [r1, 0xC]
movs r1, 0xB
muls r2, r1
- ldr r1, _080CE8D0 @ =gUnknown_8245EE0
+ ldr r1, _080CE8D0 @ =gSpeciesNames
adds r2, r1
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0x8
mov r2, sp
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0xA
mov r2, sp
- bl sub_804037C
+ bl SetMonData
movs r4, 0x32
ldr r0, [sp, 0x8]
mov r8, r0
@@ -1204,12 +1204,12 @@ _080CE7F0:
adds r0, r1
adds r1, r4, 0
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r4, 0x1
cmp r4, 0x36
ble _080CE7F0
movs r4, 0x43
- ldr r7, _080CE8C8 @ =gUnknown_2024029
+ ldr r7, _080CE8C8 @ =gPlayerPartyCount
_080CE80C:
ldrb r0, [r7]
movs r6, 0x64
@@ -1218,17 +1218,17 @@ _080CE80C:
adds r0, r5
adds r1, r4, 0
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r4, 0x1
cmp r4, 0x4F
ble _080CE80C
- ldr r4, _080CE8C8 @ =gUnknown_2024029
+ ldr r4, _080CE8C8 @ =gPlayerPartyCount
ldrb r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x37
mov r2, sp
- bl sub_804037C
+ bl SetMonData
movs r0, 0xFF
str r0, [sp]
ldrb r0, [r4]
@@ -1236,7 +1236,7 @@ _080CE80C:
adds r0, r5
movs r1, 0x40
mov r2, sp
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r4]
muls r0, r6
adds r0, r5
@@ -1280,7 +1280,7 @@ _080CE80C:
ldr r2, _080CE8D8 @ =gUnknown_83F8440
mov r0, r9
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
_080CE8B2:
add sp, 0xC
pop {r3-r5}
@@ -1292,9 +1292,9 @@ _080CE8B2:
bx r0
.align 2, 0
_080CE8C4: .4byte gUnknown_8259754
-_080CE8C8: .4byte gUnknown_2024029
+_080CE8C8: .4byte gPlayerPartyCount
_080CE8CC: .4byte gPlayerParty
-_080CE8D0: .4byte gUnknown_8245EE0
+_080CE8D0: .4byte gSpeciesNames
_080CE8D4: .4byte 0x0000012f
_080CE8D8: .4byte gUnknown_83F8440
thumb_func_end CreateShedinja
@@ -1817,7 +1817,7 @@ _080CED3A:
adds r2, 0xC
mov r0, r9
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
mov r0, r9
bl CalculateMonStats
ldrh r1, [r4, 0xA]
@@ -2440,13 +2440,13 @@ _080CF2C2:
lsls r5, 3
adds r5, r1
ldrb r1, [r5, 0x1C]
- ldr r2, _080CF300 @ =gUnknown_2024029
+ ldr r2, _080CF300 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, _080CF304 @ =CB2_EvolutionSceneLoadGraphics
- ldr r4, _080CF308 @ =gUnknown_2024022
+ ldr r4, _080CF308 @ =gMoveToLearn
ldrh r4, [r4]
str r4, [sp]
bl sub_8134738
@@ -2458,9 +2458,9 @@ _080CF2C2:
_080CF2F4: .4byte gUnknown_2037AB8
_080CF2F8: .4byte gPlayerParty
_080CF2FC: .4byte gTasks
-_080CF300: .4byte gUnknown_2024029
+_080CF300: .4byte gPlayerPartyCount
_080CF304: .4byte CB2_EvolutionSceneLoadGraphics
-_080CF308: .4byte gUnknown_2024022
+_080CF308: .4byte gMoveToLearn
_080CF30C:
ldr r0, _080CF340 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -2540,7 +2540,7 @@ _080CF398:
mov r0, r9
adds r1, r4, 0
bl RemoveMonPPBonus
- ldr r0, _080CF3D8 @ =gUnknown_2024022
+ ldr r0, _080CF3D8 @ =gMoveToLearn
ldrh r1, [r0]
mov r0, r9
adds r2, r4, 0
@@ -2555,7 +2555,7 @@ _080CF398:
b _080CF526
.align 2, 0
_080CF3D4: .4byte gUnknown_2022AC8
-_080CF3D8: .4byte gUnknown_2024022
+_080CF3D8: .4byte gMoveToLearn
_080CF3DC: .4byte gTasks
_080CF3E0:
ldr r0, _080CF408 @ =gUnknown_83FDF3C
@@ -3124,7 +3124,7 @@ _080CF8A8:
adds r2, 0xC
mov r0, r8
movs r1, 0xB
- bl sub_804037C
+ bl SetMonData
mov r0, r8
bl CalculateMonStats
ldrh r1, [r4, 0xA]
@@ -3709,13 +3709,13 @@ _080CFDC6:
lsls r5, 3
adds r5, r1
ldrb r1, [r5, 0x1C]
- ldr r2, _080CFE24 @ =gUnknown_2024029
+ ldr r2, _080CFE24 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, _080CFE28 @ =CB2_TradeEvolutionSceneLoadGraphics
- ldr r4, _080CFE2C @ =gUnknown_2024022
+ ldr r4, _080CFE2C @ =gMoveToLearn
ldrh r4, [r4]
str r4, [sp]
bl sub_8134738
@@ -3728,9 +3728,9 @@ _080CFE14: .4byte gUnknown_2037AB8
_080CFE18: .4byte gUnknown_3003F3C
_080CFE1C: .4byte gPlayerParty
_080CFE20: .4byte gTasks
-_080CFE24: .4byte gUnknown_2024029
+_080CFE24: .4byte gPlayerPartyCount
_080CFE28: .4byte CB2_TradeEvolutionSceneLoadGraphics
-_080CFE2C: .4byte gUnknown_2024022
+_080CFE2C: .4byte gMoveToLearn
_080CFE30:
ldr r0, _080CFE64 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -3811,7 +3811,7 @@ _080CFEC0:
mov r0, r8
adds r1, r4, 0
bl RemoveMonPPBonus
- ldr r0, _080CFF18 @ =gUnknown_2024022
+ ldr r0, _080CFF18 @ =gMoveToLearn
ldrh r1, [r0]
mov r0, r8
adds r2, r4, 0
@@ -3835,7 +3835,7 @@ _080CFEC0:
b _080D0038
.align 2, 0
_080CFF14: .4byte gUnknown_2022AC8
-_080CFF18: .4byte gUnknown_2024022
+_080CFF18: .4byte gMoveToLearn
_080CFF1C: .4byte gUnknown_83FDF3C
_080CFF20: .4byte gUnknown_202298C
_080CFF24: .4byte gTasks
diff --git a/asm/field_poison.s b/asm/field_poison.s
index 348812b06..f875d985b 100644
--- a/asm/field_poison.s
+++ b/asm/field_poison.s
@@ -78,7 +78,7 @@ MonFaintFromPoisonOnField: @ 80A04B8
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
- bl sub_804037C
+ bl SetMonData
ldr r5, _080A0500 @ =gStringVar1
adds r0, r4, 0
movs r1, 0x2
@@ -279,7 +279,7 @@ _080A065C:
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r7, 0x1
_080A0668:
adds r4, 0x64
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 5132df30e..5a2f26625 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -713,7 +713,7 @@ GivLeadMonEffortRibbon: @ 80CAB08
adds r0, r1
movs r1, 0x47
mov r2, sp
- bl sub_804037C
+ bl SetMonData
add sp, 0x4
pop {r0}
bx r0
@@ -1457,7 +1457,7 @@ _080CB0EA:
lsrs r0, 16
movs r1, 0xB
muls r1, r0
- ldr r0, _080CB120 @ =gUnknown_8245EE0
+ ldr r0, _080CB120 @ =gSpeciesNames
adds r1, r0
adds r0, r4, 0
bl StringCopy
@@ -1470,7 +1470,7 @@ _080CB110: .4byte 0x0000ffff
_080CB114: .4byte 0x0000403b
_080CB118: .4byte 0x00004035
_080CB11C: .4byte gStringVar1
-_080CB120: .4byte gUnknown_8245EE0
+_080CB120: .4byte gSpeciesNames
thumb_func_end sub_80CB0A8
thumb_func_start sub_80CB124
@@ -3225,7 +3225,7 @@ sub_80CBE50: @ 80CBE50
bl GetMonData
movs r1, 0xB
muls r0, r1
- ldr r1, _080CBEAC @ =gUnknown_8245EE0
+ ldr r1, _080CBEAC @ =gSpeciesNames
adds r0, r1
adds r1, r6, 0
bl StringCompare
@@ -3236,7 +3236,7 @@ sub_80CBE50: @ 80CBE50
.align 2, 0
_080CBEA4: .4byte gPlayerParty
_080CBEA8: .4byte gStringVar1
-_080CBEAC: .4byte gUnknown_8245EE0
+_080CBEAC: .4byte gSpeciesNames
_080CBEB0:
movs r0, 0x1
_080CBEB2:
@@ -3407,9 +3407,9 @@ ChangeBoxPokemonNickname: @ 80CBFE0
mov r6, r8
push {r6}
sub sp, 0x8
- ldr r0, _080CC050 @ =gUnknown_20370D6
+ ldr r0, _080CC050 @ =gSpecialVar_MonBoxId
ldrb r0, [r0]
- ldr r1, _080CC054 @ =gUnknown_20370D8
+ ldr r1, _080CC054 @ =gSpecialVar_MonBoxPos
ldrb r1, [r1]
bl GetBoxedMonPtr
adds r6, r0, 0
@@ -3453,8 +3453,8 @@ ChangeBoxPokemonNickname: @ 80CBFE0
pop {r0}
bx r0
.align 2, 0
-_080CC050: .4byte gUnknown_20370D6
-_080CC054: .4byte gUnknown_20370D8
+_080CC050: .4byte gSpecialVar_MonBoxId
+_080CC054: .4byte gSpecialVar_MonBoxPos
_080CC058: .4byte gStringVar3
_080CC05C: .4byte gStringVar2
_080CC060: .4byte ChangeBoxPokemonNickname_CB
@@ -3463,9 +3463,9 @@ _080CC060: .4byte ChangeBoxPokemonNickname_CB
thumb_func_start ChangeBoxPokemonNickname_CB
ChangeBoxPokemonNickname_CB: @ 80CC064
push {lr}
- ldr r0, _080CC07C @ =gUnknown_20370D6
+ ldr r0, _080CC07C @ =gSpecialVar_MonBoxId
ldrb r0, [r0]
- ldr r1, _080CC080 @ =gUnknown_20370D8
+ ldr r1, _080CC080 @ =gSpecialVar_MonBoxPos
ldrb r1, [r1]
ldr r2, _080CC084 @ =gStringVar2
bl SetBoxMonNickFromAnyBox
@@ -3473,8 +3473,8 @@ ChangeBoxPokemonNickname_CB: @ 80CC064
pop {r0}
bx r0
.align 2, 0
-_080CC07C: .4byte gUnknown_20370D6
-_080CC080: .4byte gUnknown_20370D8
+_080CC07C: .4byte gSpecialVar_MonBoxId
+_080CC080: .4byte gSpecialVar_MonBoxPos
_080CC084: .4byte gStringVar2
thumb_func_end ChangeBoxPokemonNickname_CB
@@ -3576,7 +3576,7 @@ ChangePokemonNickname_CB: @ 80CC144
adds r0, r1
ldr r2, _080CC16C @ =gStringVar2
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
bl c2_exit_to_overworld_1_continue_scripts_restart_music
pop {r0}
bx r0
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 0f66e62de..3f29ac11c 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -2624,7 +2624,7 @@ _080F32C4:
lsrs r1, 23
movs r2, 0xB
muls r1, r2
- ldr r2, _080F3324 @ =gUnknown_8245EE0
+ ldr r2, _080F3324 @ =gSpeciesNames
adds r1, r2
bl StringCopy
adds r6, r0, 0
@@ -2641,7 +2641,7 @@ _080F3318:
.align 2, 0
_080F331C: .4byte gUnknown_840C23C
_080F3320: .4byte 0x000001ff
-_080F3324: .4byte gUnknown_8245EE0
+_080F3324: .4byte gSpeciesNames
_080F3328:
lsls r0, r1, 23
lsrs r0, 23
diff --git a/asm/item_use.s b/asm/item_use.s
index e2cad1322..8229f5a2b 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -743,7 +743,7 @@ _080A1578:
movs r1, 0x11
adds r2, r4, 0
movs r3, 0
- bl ExecuteTableBasedItemEffect_
+ bl ExecuteTableBasedItemEffect
lsls r0, 24
cmp r0, 0
bne _080A1592
@@ -1886,7 +1886,7 @@ sub_80A1E7C: @ 80A1E7C
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080A1EBC @ =gBattlerPartyIndexes
- ldr r0, _080A1EC0 @ =gUnknown_2024004
+ ldr r0, _080A1EC0 @ =gBattlerInMenuId
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1900,7 +1900,7 @@ sub_80A1E7C: @ 80A1E7C
lsls r2, 24
lsrs r2, 24
movs r3, 0
- bl ExecuteTableBasedItemEffect_
+ bl ExecuteTableBasedItemEffect
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -1913,7 +1913,7 @@ sub_80A1E7C: @ 80A1E7C
b _080A1EE4
.align 2, 0
_080A1EBC: .4byte gBattlerPartyIndexes
-_080A1EC0: .4byte gUnknown_2024004
+_080A1EC0: .4byte gBattlerInMenuId
_080A1EC4: .4byte gPlayerParty
_080A1EC8: .4byte gUnknown_203AD30
_080A1ECC: .4byte gUnknown_84169DC
diff --git a/asm/learn_move.s b/asm/learn_move.s
index eba23b712..743067bfe 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -744,7 +744,7 @@ _080E4C7E:
lsls r2, 2
adds r1, r5, r2
ldrb r1, [r1]
- ldr r2, _080E4CDC @ =gUnknown_2024029
+ ldr r2, _080E4CDC @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
@@ -768,7 +768,7 @@ _080E4CCC: .4byte 0x00000263
_080E4CD0: .4byte 0x00000a68
_080E4CD4: .4byte 0x00000a6a
_080E4CD8: .4byte gPlayerParty
-_080E4CDC: .4byte gUnknown_2024029
+_080E4CDC: .4byte gPlayerPartyCount
_080E4CE0: .4byte sub_80E4800
_080E4CE4:
ldr r1, [r7]
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index f4e12b60f..2e431b6de 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -6885,7 +6885,7 @@ _08119414:
lsrs r0, 22
movs r1, 0xB
muls r1, r0
- ldr r0, _08119458 @ =gUnknown_8245EE0
+ ldr r0, _08119458 @ =gSpeciesNames
adds r1, r0
adds r0, r4, 0
bl StringCopy
@@ -6907,7 +6907,7 @@ _0811944A:
b _081198DC
.align 2, 0
_08119454: .4byte gStringVar1
-_08119458: .4byte gUnknown_8245EE0
+_08119458: .4byte gSpeciesNames
_0811945C: .4byte gStringVar2
_08119460: .4byte gStringVar4
_08119464: .4byte gUnknown_8458DBC
@@ -10003,7 +10003,7 @@ _0811AC3C:
movs r0, 0xB
mov r2, r8
muls r2, r0
- ldr r0, _0811ACA0 @ =gUnknown_8245EE0
+ ldr r0, _0811ACA0 @ =gSpeciesNames
adds r2, r0
str r5, [sp]
str r4, [sp, 0x4]
@@ -10041,7 +10041,7 @@ _0811AC90:
pop {r0}
bx r0
.align 2, 0
-_0811ACA0: .4byte gUnknown_8245EE0
+_0811ACA0: .4byte gSpeciesNames
thumb_func_end sub_811ABE4
thumb_func_start sub_811ACA4
@@ -10227,7 +10227,7 @@ _0811ADE0:
beq _0811AE40
adds r4, 0x1
_0811ADFA:
- ldr r0, _0811AE0C @ =gUnknown_2024029
+ ldr r0, _0811AE0C @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
blt _0811ADE0
@@ -10235,10 +10235,10 @@ _0811ADFA:
b _0811AE5C
.align 2, 0
_0811AE08: .4byte gPlayerParty
-_0811AE0C: .4byte gUnknown_2024029
+_0811AE0C: .4byte gPlayerPartyCount
_0811AE10:
movs r4, 0
- ldr r0, _0811AE44 @ =gUnknown_2024029
+ ldr r0, _0811AE44 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
bge _0811AE5A
@@ -10265,12 +10265,12 @@ _0811AE40:
movs r0, 0
b _0811AE5C
.align 2, 0
-_0811AE44: .4byte gUnknown_2024029
+_0811AE44: .4byte gPlayerPartyCount
_0811AE48: .4byte gBaseStats
_0811AE4C: .4byte gPlayerParty
_0811AE50:
adds r4, 0x1
- ldr r0, _0811AE64 @ =gUnknown_2024029
+ ldr r0, _0811AE64 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
blt _0811AE1C
@@ -10281,7 +10281,7 @@ _0811AE5C:
pop {r1}
bx r1
.align 2, 0
-_0811AE64: .4byte gUnknown_2024029
+_0811AE64: .4byte gPlayerPartyCount
thumb_func_end sub_811ADD0
thumb_func_start sub_811AE68
@@ -10480,14 +10480,14 @@ _0811AFC8:
ldrh r2, [r4, 0xA]
movs r1, 0xB
muls r1, r2
- ldr r2, _0811AFF4 @ =gUnknown_8245EE0
+ ldr r2, _0811AFF4 @ =gSpeciesNames
adds r1, r2
bl StringCopy
movs r4, 0
b _0811AFFA
.align 2, 0
_0811AFF0: .4byte gUnknown_203B06C
-_0811AFF4: .4byte gUnknown_8245EE0
+_0811AFF4: .4byte gSpeciesNames
_0811AFF8:
adds r4, 0x1
_0811AFFA:
@@ -10509,7 +10509,7 @@ _0811AFFA:
ldrh r1, [r5, 0x2]
movs r0, 0xB
muls r1, r0
- ldr r0, _0811B048 @ =gUnknown_8245EE0
+ ldr r0, _0811B048 @ =gSpeciesNames
adds r1, r0
adds r0, r6, 0
adds r0, 0x79
@@ -10527,7 +10527,7 @@ _0811B030:
b _0811B080
.align 2, 0
_0811B044: .4byte gUnknown_3007460
-_0811B048: .4byte gUnknown_8245EE0
+_0811B048: .4byte gSpeciesNames
_0811B04C: .4byte gUnknown_8457DB8
_0811B050:
movs r4, 0
@@ -10626,7 +10626,7 @@ sub_811B0F0: @ 811B0F0
push {r4-r6,lr}
movs r6, 0
movs r5, 0
- ldr r0, _0811B138 @ =gUnknown_2024029
+ ldr r0, _0811B138 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r6, r0
bge _0811B130
@@ -10651,7 +10651,7 @@ _0811B0FE:
adds r6, 0x1
_0811B126:
adds r5, 0x1
- ldr r0, _0811B138 @ =gUnknown_2024029
+ ldr r0, _0811B138 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r5, r0
blt _0811B0FE
@@ -10661,7 +10661,7 @@ _0811B130:
movs r0, 0
b _0811B142
.align 2, 0
-_0811B138: .4byte gUnknown_2024029
+_0811B138: .4byte gPlayerPartyCount
_0811B13C: .4byte gPlayerParty
_0811B140:
movs r0, 0x1
@@ -10807,7 +10807,7 @@ _0811B212:
_0811B238:
adds r5, 0x1
_0811B23A:
- ldr r0, _0811B254 @ =gUnknown_2024029
+ ldr r0, _0811B254 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r5, r0
blt _0811B212
@@ -10820,7 +10820,7 @@ _0811B242:
bx r1
.align 2, 0
_0811B250: .4byte gPlayerParty
-_0811B254: .4byte gUnknown_2024029
+_0811B254: .4byte gPlayerPartyCount
thumb_func_end sub_811B1EC
thumb_func_start sub_811B258
diff --git a/asm/load_save.s b/asm/load_save.s
index f18414c41..836abd78e 100644
--- a/asm/load_save.s
+++ b/asm/load_save.s
@@ -273,7 +273,7 @@ copy_player_party_to_sav1: @ 804C1F0
push {r4,lr}
ldr r0, _0804C224 @ =gSaveBlock1Ptr
ldr r0, [r0]
- ldr r1, _0804C228 @ =gUnknown_2024029
+ ldr r1, _0804C228 @ =gPlayerPartyCount
ldrb r1, [r1]
adds r0, 0x34
strb r1, [r0]
@@ -297,14 +297,14 @@ _0804C200:
bx r0
.align 2, 0
_0804C224: .4byte gSaveBlock1Ptr
-_0804C228: .4byte gUnknown_2024029
+_0804C228: .4byte gPlayerPartyCount
_0804C22C: .4byte gPlayerParty
thumb_func_end copy_player_party_to_sav1
thumb_func_start sub_804C230
sub_804C230: @ 804C230
push {r4,r5,lr}
- ldr r1, _0804C264 @ =gUnknown_2024029
+ ldr r1, _0804C264 @ =gPlayerPartyCount
ldr r0, _0804C268 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x34
@@ -330,7 +330,7 @@ _0804C242:
pop {r0}
bx r0
.align 2, 0
-_0804C264: .4byte gUnknown_2024029
+_0804C264: .4byte gPlayerPartyCount
_0804C268: .4byte gSaveBlock1Ptr
_0804C26C: .4byte gPlayerParty
thumb_func_end sub_804C230
diff --git a/asm/mail_data.s b/asm/mail_data.s
index 5f577039b..421aaf452 100644
--- a/asm/mail_data.s
+++ b/asm/mail_data.s
@@ -301,11 +301,11 @@ _08097E36:
mov r0, r8
movs r1, 0x40
mov r2, r9
- bl sub_804037C
+ bl SetMonData
mov r0, r8
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, r9
ldrb r0, [r1]
b _08097EEE
@@ -413,7 +413,7 @@ GiveMailToMon2: @ 8097F44
adds r0, r6, 0
movs r1, 0x40
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r0, sp
strb r5, [r0]
mov r1, sp
@@ -422,7 +422,7 @@ GiveMailToMon2: @ 8097F44
adds r0, r6, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
ldrb r0, [r4]
b _08097FAA
.align 2, 0
@@ -476,11 +476,11 @@ TakeMailFromMon: @ 8097FB8
strb r1, [r0, 0x1]
adds r0, r4, 0
movs r1, 0x40
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08098008:
add sp, 0x8
pop {r4}
@@ -577,11 +577,11 @@ _08098060:
adds r0, r5, 0
movs r1, 0x40
mov r2, r9
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
b _080980E8
.align 2, 0
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index 18b6066d9..b150bb586 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -511,20 +511,20 @@ sub_80DAB80: @ 80DAB80
cmp r4, r0
bne _080DABD0
ldr r0, _080DABC8 @ =gStringVar1
- ldr r1, _080DABCC @ =gUnknown_8415A62
+ ldr r1, _080DABCC @ =gText_EggNickname
movs r2, 0xB
bl StringCopyN
b _080DABDA
.align 2, 0
_080DABC8: .4byte gStringVar1
-_080DABCC: .4byte gUnknown_8415A62
+_080DABCC: .4byte gText_EggNickname
_080DABD0:
ldr r0, _080DABF0 @ =gStringVar1
ldr r1, _080DABF4 @ =gUnknown_8415A66
movs r2, 0xB
bl StringCopyN
_080DABDA:
- ldr r0, _080DABF8 @ =gUnknown_2024029
+ ldr r0, _080DABF8 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r0, 0x6
bne _080DAC04
@@ -536,7 +536,7 @@ _080DABDA:
.align 2, 0
_080DABF0: .4byte gStringVar1
_080DABF4: .4byte gUnknown_8415A66
-_080DABF8: .4byte gUnknown_2024029
+_080DABF8: .4byte gPlayerPartyCount
_080DABFC: .4byte gStringVar4
_080DAC00: .4byte gUnknown_8488D8E
_080DAC04:
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index e42ed45d8..2601ab1f1 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -3524,7 +3524,7 @@ sub_809F4F0: @ 809F4F0
ldrh r1, [r0]
movs r0, 0xB
muls r1, r0
- ldr r0, _0809F560 @ =gUnknown_8245EE0
+ ldr r0, _0809F560 @ =gSpeciesNames
adds r1, r0
add r0, sp, 0xC
bl StringCopy
@@ -3565,7 +3565,7 @@ sub_809F4F0: @ 809F4F0
.align 2, 0
_0809F558: .4byte gUnknown_203998C
_0809F55C: .4byte 0x00001e34
-_0809F560: .4byte gUnknown_8245EE0
+_0809F560: .4byte gSpeciesNames
_0809F564: .4byte 0x00001e28
_0809F568: .4byte 0x00001e14
thumb_func_end sub_809F4F0
diff --git a/asm/new_game.s b/asm/new_game.s
index d7808dba7..b8f6515ef 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -253,7 +253,7 @@ sub_8054A60: @ 8054A60
bl sub_80A0904
bl sub_80A0958
bl sub_806E190
- ldr r0, _08054B64 @ =gUnknown_2024029
+ ldr r0, _08054B64 @ =gPlayerPartyCount
strb r5, [r0]
bl ZeroPlayerPartyMons
bl sub_808C7E0
@@ -291,7 +291,7 @@ _08054B54: .4byte 0x00003a4c
_08054B58: .4byte gUnknown_2031DB0
_08054B5C: .4byte gSaveBlock2Ptr
_08054B60: .4byte 0x00000bb8
-_08054B64: .4byte gUnknown_2024029
+_08054B64: .4byte gPlayerPartyCount
_08054B68: .4byte 0x00000296
_08054B6C: .4byte gUnknown_81A6481
thumb_func_end sub_8054A60
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
index c5591fc0e..54451e618 100644
--- a/asm/oak_speech.s
+++ b/asm/oak_speech.s
@@ -4637,7 +4637,7 @@ sub_8130F2C: @ 8130F2C
movs r0, 0x1D
movs r1, 0
bl sub_803F7D4
- ldr r0, _08130FA8 @ =gUnknown_20244DC
+ ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate
movs r1, 0x60
movs r2, 0x60
movs r3, 0x1
@@ -4677,7 +4677,7 @@ sub_8130F2C: @ 8130F2C
.align 2, 0
_08130FA0: .4byte gUnknown_8235194
_08130FA4: .4byte gUnknown_82373F4
-_08130FA8: .4byte gUnknown_20244DC
+_08130FA8: .4byte gMultiuseSpriteTemplate
_08130FAC: .4byte gSprites
_08130FB0: .4byte SpriteCallbackDummy
_08130FB4: .4byte gTasks
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c23e401ef..d21f709a3 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -1299,7 +1299,7 @@ _0811F4A2:
adds r0, r6, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
cmp r0, 0
bne _0811F492
@@ -2796,12 +2796,12 @@ _08120016:
_08120024:
cmp r1, 0x6
bne _08120034
- ldr r0, _08120030 @ =gUnknown_2024029
+ ldr r0, _08120030 @ =gPlayerPartyCount
ldrb r0, [r0]
subs r0, 0x1
b _081200EC
.align 2, 0
-_08120030: .4byte gUnknown_2024029
+_08120030: .4byte gPlayerPartyCount
_08120034:
cmp r1, 0x7
bne _08120058
@@ -2816,12 +2816,12 @@ _08120034:
.align 2, 0
_08120048: .4byte gUnknown_203B09C
_0812004C:
- ldr r0, _08120054 @ =gUnknown_2024029
+ ldr r0, _08120054 @ =gPlayerPartyCount
ldrb r0, [r0]
subs r0, 0x1
b _081200EC
.align 2, 0
-_08120054: .4byte gUnknown_2024029
+_08120054: .4byte gPlayerPartyCount
_08120058:
subs r0, 0x1
b _081200EC
@@ -2833,7 +2833,7 @@ _0812005C:
beq _081200EA
movs r1, 0
ldrsb r1, [r4, r1]
- ldr r0, _08120084 @ =gUnknown_2024029
+ ldr r0, _08120084 @ =gPlayerPartyCount
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
@@ -2847,7 +2847,7 @@ _0812005C:
movs r0, 0x6
b _081200EC
.align 2, 0
-_08120084: .4byte gUnknown_2024029
+_08120084: .4byte gPlayerPartyCount
_08120088: .4byte gUnknown_203B09C
_0812008C:
movs r0, 0x7
@@ -2856,7 +2856,7 @@ _08120090:
adds r0, r2, 0x1
b _081200EC
_08120094:
- ldr r0, _081200B8 @ =gUnknown_2024029
+ ldr r0, _081200B8 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r0, 0x1
beq _081200EE
@@ -2874,7 +2874,7 @@ _08120094:
movs r0, 0x1
b _081200EC
.align 2, 0
-_081200B8: .4byte gUnknown_2024029
+_081200B8: .4byte gPlayerPartyCount
_081200BC: .4byte gUnknown_203B09C
_081200C0:
movs r0, 0
@@ -2947,12 +2947,12 @@ _08120124:
_08120132:
cmp r0, 0x6
bne _08120144
- ldr r0, _08120140 @ =gUnknown_2024029
+ ldr r0, _08120140 @ =gPlayerPartyCount
ldrb r0, [r0]
subs r0, 0x1
b _0812028E
.align 2, 0
-_08120140: .4byte gUnknown_2024029
+_08120140: .4byte gPlayerPartyCount
_08120144:
cmp r0, 0x7
bne _08120160
@@ -3557,7 +3557,7 @@ _081205F2:
adds r0, r6, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08120606:
add sp, 0x4
pop {r4-r7}
@@ -3592,7 +3592,7 @@ _0812062C:
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
movs r0, 0x2
b _0812064E
_0812064C:
@@ -3672,7 +3672,7 @@ sub_81206A8: @ 81206A8
adds r0, r4
movs r1, 0x39
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
movs r3, 0x8
ldrsh r2, [r7, r3]
adds r0, r2, 0
@@ -3961,7 +3961,7 @@ sub_81208E4: @ 81208E4
cmp r0, 0
bne _08120944
movs r4, 0
- ldr r0, _0812093C @ =gUnknown_2024029
+ ldr r0, _0812093C @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
bcs _0812096E
@@ -3980,7 +3980,7 @@ _0812090C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0812093C @ =gUnknown_2024029
+ ldr r0, _0812093C @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
bcc _0812090C
@@ -3988,7 +3988,7 @@ _0812090C:
.align 2, 0
_08120934: .4byte gUnknown_203B0A0
_08120938: .4byte gUnknown_20370C2
-_0812093C: .4byte gUnknown_2024029
+_0812093C: .4byte gPlayerPartyCount
_08120940: .4byte gPlayerParty
_08120944:
movs r4, 0
@@ -4009,7 +4009,7 @@ _08120948:
lsls r0, 24
lsrs r4, r0, 24
_08120966:
- ldr r0, _08120978 @ =gUnknown_2024029
+ ldr r0, _08120978 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r4, r0
bcc _08120948
@@ -4019,7 +4019,7 @@ _0812096E:
bx r0
.align 2, 0
_08120974: .4byte gPlayerParty
-_08120978: .4byte gUnknown_2024029
+_08120978: .4byte gPlayerPartyCount
thumb_func_end sub_81208E4
thumb_func_start sub_812097C
@@ -6010,7 +6010,7 @@ _081218EC:
movs r0, 0xB
adds r1, r5, 0
muls r1, r0
- ldr r0, _0812190C @ =gUnknown_8245EE0
+ ldr r0, _0812190C @ =gSpeciesNames
adds r1, r0
mov r0, r9
bl StringCompare
@@ -6024,7 +6024,7 @@ _08121900:
beq _08121950
b _08121982
.align 2, 0
-_0812190C: .4byte gUnknown_8245EE0
+_0812190C: .4byte gSpeciesNames
_08121910:
ldr r5, _08121944 @ =gUnknown_845A2B8
ldrb r0, [r5]
@@ -8673,7 +8673,7 @@ sub_8122D78: @ 8122D78
_08122D8C:
ldr r0, _08122DB0 @ =gPlayerParty
ldrb r1, [r4, 0x9]
- ldr r2, _08122DB4 @ =gUnknown_2024029
+ ldr r2, _08122DB4 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
@@ -8689,7 +8689,7 @@ _08122D8C:
.align 2, 0
_08122DAC: .4byte gUnknown_203B0A0
_08122DB0: .4byte gPlayerParty
-_08122DB4: .4byte gUnknown_2024029
+_08122DB4: .4byte gPlayerPartyCount
_08122DB8: .4byte sub_8122DBC
thumb_func_end sub_8122D78
@@ -10327,7 +10327,7 @@ sub_8123ACC: @ 8123ACC
adds r0, r5, 0
movs r1, 0xC
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
bl sub_809A1D8
@@ -12920,7 +12920,7 @@ IsHPRecoveryItem: @ 8125018
_0812502C: .4byte gSaveBlock1Ptr
_08125030: .4byte 0x00003108
_08125034:
- ldr r1, _0812504C @ =gUnknown_82528BC
+ ldr r1, _0812504C @ =gItemEffectTable
subs r0, 0xD
lsls r0, 2
adds r0, r1
@@ -12934,7 +12934,7 @@ _0812503E:
movs r0, 0
b _08125052
.align 2, 0
-_0812504C: .4byte gUnknown_82528BC
+_0812504C: .4byte gItemEffectTable
_08125050:
movs r0, 0x1
_08125052:
@@ -13217,7 +13217,7 @@ _081252A0:
adds r1, r5, 0
_081252BA:
adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
+ bl ExecuteTableBasedItemEffect
lsls r0, 24
lsrs r0, 24
pop {r4-r6}
@@ -13749,7 +13749,7 @@ _08125710: .4byte gUnknown_203AD30
_08125714: .4byte gSaveBlock1Ptr
_08125718: .4byte 0x00003108
_0812571C:
- ldr r1, _0812574C @ =gUnknown_82528BC
+ ldr r1, _0812574C @ =gItemEffectTable
subs r0, 0xD
lsls r0, 2
adds r0, r1
@@ -13773,7 +13773,7 @@ _08125726:
bl sub_8125958
b _0812577E
.align 2, 0
-_0812574C: .4byte gUnknown_82528BC
+_0812574C: .4byte gItemEffectTable
_08125750: .4byte gUnknown_203B0A0
_08125754:
adds r0, r4, 0
@@ -14637,7 +14637,7 @@ sub_8125E4C: @ 8125E4C
ldr r0, _08125E74 @ =gPlayerParty
ldr r4, _08125E78 @ =gUnknown_203B0A0
ldrb r1, [r4, 0x9]
- ldr r2, _08125E7C @ =gUnknown_2024029
+ ldr r2, _08125E7C @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
@@ -14653,7 +14653,7 @@ sub_8125E4C: @ 8125E4C
.align 2, 0
_08125E74: .4byte gPlayerParty
_08125E78: .4byte gUnknown_203B0A0
-_08125E7C: .4byte gUnknown_2024029
+_08125E7C: .4byte gPlayerPartyCount
_08125E80: .4byte sub_8125E84
thumb_func_end sub_8125E4C
@@ -15693,7 +15693,7 @@ sub_8126704: @ 8126704
adds r0, r7, 0
movs r1, 0
movs r2, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -15750,7 +15750,7 @@ sub_8126770: @ 8126770
ldr r1, _081267E4 @ =gStringVar1
bl GetMonNickname
ldr r0, _081267E8 @ =gStringVar2
- ldr r6, _081267EC @ =gUnknown_2024022
+ ldr r6, _081267EC @ =gMoveToLearn
ldrh r2, [r6]
movs r1, 0xD
muls r1, r2
@@ -15786,7 +15786,7 @@ _081267DC: .4byte gUnknown_203B0A0
_081267E0: .4byte gPlayerParty
_081267E4: .4byte gStringVar1
_081267E8: .4byte gStringVar2
-_081267EC: .4byte gUnknown_2024022
+_081267EC: .4byte gMoveToLearn
_081267F0: .4byte gUnknown_8247094
_081267F4: .4byte gStringVar4
_081267F8: .4byte gUnknown_8416DF7
@@ -16297,7 +16297,7 @@ sub_8126C24: @ 8126C24
ldr r1, _08126C5C @ =gUnknown_203AD30
ldrh r2, [r1]
movs r1, 0x2
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r0, 16
cmp r0, 0x97
@@ -16339,7 +16339,7 @@ _08126C7C:
_08126C8C: .4byte gSaveBlock1Ptr
_08126C90: .4byte 0x00003108
_08126C94:
- ldr r1, _08126CC4 @ =gUnknown_82528BC
+ ldr r1, _08126CC4 @ =gItemEffectTable
lsls r0, r2, 2
adds r0, r1
ldr r4, [r0]
@@ -16365,7 +16365,7 @@ _08126CBE:
movs r0, 0
b _08126DC2
.align 2, 0
-_08126CC4: .4byte gUnknown_82528BC
+_08126CC4: .4byte gItemEffectTable
_08126CC8:
movs r2, 0x40
adds r0, r2, 0
@@ -16968,7 +16968,7 @@ sub_812713C: @ 812713C
adds r0, r5, 0
movs r1, 0xC
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
ldrh r0, [r4]
movs r1, 0x1
bl sub_809A1D8
@@ -18220,7 +18220,7 @@ _08127B3C:
b _08127B68
_08127B40:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08127B62
@@ -18239,7 +18239,7 @@ _08127B62:
lsls r0, 24
lsrs r4, r0, 24
_08127B68:
- ldr r0, _08127B94 @ =gUnknown_2023BCC
+ ldr r0, _08127B94 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _08127B40
@@ -18259,7 +18259,7 @@ _08127B68:
b _08127C86
.align 2, 0
_08127B90: .4byte gBattlerPartyIndexes
-_08127B94: .4byte gUnknown_2023BCC
+_08127B94: .4byte gBattlersCount
_08127B98: .4byte gPlayerParty
_08127B9C: .4byte gStringVar4
_08127BA0: .4byte gUnknown_8416ACB
@@ -18305,7 +18305,7 @@ _08127BEC:
movs r0, 0x1
strb r0, [r1]
ldr r1, _08127C38 @ =gBattlerPartyIndexes
- ldr r0, _08127C3C @ =gUnknown_2024004
+ ldr r0, _08127C3C @ =gBattlerInMenuId
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -18328,7 +18328,7 @@ _08127BEC:
_08127C30: .4byte gUnknown_203B0C1
_08127C34: .4byte gUnknown_203B0C0
_08127C38: .4byte gBattlerPartyIndexes
-_08127C3C: .4byte gUnknown_2024004
+_08127C3C: .4byte gBattlerInMenuId
_08127C40:
movs r0, 0x64
muls r0, r5
@@ -18345,7 +18345,7 @@ _08127C58: .4byte gStringVar1
_08127C5C: .4byte gStringVar4
_08127C60: .4byte gUnknown_8416A3A
_08127C64:
- ldr r0, _08127C98 @ =gUnknown_2024004
+ ldr r0, _08127C98 @ =gBattlerInMenuId
ldrb r0, [r0]
ldr r1, _08127C9C @ =gBattlerPartyIndexes
lsls r0, 1
@@ -18371,7 +18371,7 @@ _08127C8C:
pop {r1}
bx r1
.align 2, 0
-_08127C98: .4byte gUnknown_2024004
+_08127C98: .4byte gBattlerInMenuId
_08127C9C: .4byte gBattlerPartyIndexes
_08127CA0: .4byte gStringVar1
_08127CA4: .4byte gStringVar4
@@ -18431,7 +18431,7 @@ _08127D02:
bne _08127D40
movs r5, 0x1
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r2, sp
ldr r1, _08127D3C @ =gBattlerPartyIndexes
lsls r0, 24
@@ -18459,7 +18459,7 @@ _08127D3C: .4byte gBattlerPartyIndexes
_08127D40:
movs r5, 0x2
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r1, sp
ldr r4, _08127DA4 @ =gBattlerPartyIndexes
lsls r0, 24
@@ -18468,7 +18468,7 @@ _08127D40:
ldrh r0, [r0]
strb r0, [r1]
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r1, sp
lsls r0, 24
lsrs r0, 23
@@ -18545,24 +18545,24 @@ sub_8127DCC: @ 8127DCC
lsrs r7, r1, 24
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08127DF4
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
b _08127E00
_08127DF4:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x3
_08127E00:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
bl sub_811FA20
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 5408e5567..998c7cdc4 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -90,7 +90,7 @@ _0804A9D8:
mov r9, r0
ldrb r6, [r1, 0xE]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0804AA04
@@ -247,7 +247,7 @@ _0804AB30: .4byte gSprites
_0804AB34: .4byte SpriteCB_OpponentMonSendOut
_0804AB38:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r1, _0804AB64 @ =gBattlerTarget
strb r0, [r1]
movs r2, 0x1
@@ -1213,7 +1213,7 @@ sub_804B268: @ 804B268
b _0804B420
_0804B2DA:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0804B310
@@ -1253,13 +1253,13 @@ _0804B324:
lsrs r0, 16
mov r8, r0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r5, r0
beq _0804B34E
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r5, r0
@@ -1323,13 +1323,13 @@ _0804B3C8: .4byte 0x0000ffff
_0804B3CC: .4byte gUnknown_2024018
_0804B3D0:
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r5, r0
beq _0804B3EC
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r5, r0
@@ -1858,7 +1858,7 @@ _0804B7C8:
movs r0, 0x3A
ldrsh r4, [r5, r0]
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -1935,7 +1935,7 @@ SpriteCB_OpponentMonSendOut: @ 804B868
movs r0, 0x3A
ldrsh r4, [r5, r0]
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -2612,7 +2612,7 @@ sub_804BD94: @ 804BD94
ldr r0, _0804BE1C @ =sub_804BE48
str r0, [r4, 0x1C]
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0804BDE2
@@ -2641,7 +2641,7 @@ _0804BDE2:
ldr r1, [r1]
bl _call_via_r1
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -2856,7 +2856,7 @@ GetBankPokeballItemId: @ 804BF90
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0804BFBC
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index 9cd8b78f0..8277af735 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -1967,7 +1967,7 @@ _0810356C:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _081035C0 @ =gUnknown_8245EE0
+ ldr r1, _081035C0 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
mov r10, r5
@@ -1975,7 +1975,7 @@ _0810356C:
b _081035D6
.align 2, 0
_081035BC: .4byte gUnknown_203ACF0
-_081035C0: .4byte gUnknown_8245EE0
+_081035C0: .4byte gSpeciesNames
_081035C4:
ldr r2, _081035FC @ =gUnknown_203ACF0
ldr r0, [r2]
@@ -2048,7 +2048,7 @@ _0810360C:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _08103698 @ =gUnknown_8245EE0
+ ldr r1, _08103698 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
@@ -2080,7 +2080,7 @@ _08103682:
.align 2, 0
_08103690: .4byte gUnknown_203ACF0
_08103694: .4byte gUnknown_8443FC0
-_08103698: .4byte gUnknown_8245EE0
+_08103698: .4byte gSpeciesNames
_0810369C:
movs r1, 0
mov r8, r1
@@ -2124,7 +2124,7 @@ _081036A4:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _08103738 @ =gUnknown_8245EE0
+ ldr r1, _08103738 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
@@ -2156,7 +2156,7 @@ _08103722:
.align 2, 0
_08103730: .4byte gUnknown_203ACF0
_08103734: .4byte gUnknown_84448FE
-_08103738: .4byte gUnknown_8245EE0
+_08103738: .4byte gSpeciesNames
_0810373C:
movs r1, 0
mov r8, r1
@@ -2197,7 +2197,7 @@ _08103744:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _081037D0 @ =gUnknown_8245EE0
+ ldr r1, _081037D0 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
@@ -2228,7 +2228,7 @@ _081037BA:
.align 2, 0
_081037C8: .4byte gUnknown_203ACF0
_081037CC: .4byte gUnknown_84442F6
-_081037D0: .4byte gUnknown_8245EE0
+_081037D0: .4byte gSpeciesNames
_081037D4: .4byte 0x00000181
_081037D8:
movs r1, 0
@@ -2270,7 +2270,7 @@ _081037E0:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _0810386C @ =gUnknown_8245EE0
+ ldr r1, _0810386C @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
@@ -2301,7 +2301,7 @@ _08103856:
.align 2, 0
_08103864: .4byte gUnknown_203ACF0
_08103868: .4byte gUnknown_84445FA
-_0810386C: .4byte gUnknown_8245EE0
+_0810386C: .4byte gSpeciesNames
_08103870: .4byte 0x00000181
_08103874:
movs r1, 0
@@ -2338,7 +2338,7 @@ _08103878:
lsrs r0, 16
movs r1, 0xB
muls r0, r1
- ldr r1, _081038CC @ =gUnknown_8245EE0
+ ldr r1, _081038CC @ =gSpeciesNames
adds r0, r1
str r0, [r2]
mov r10, r5
@@ -2346,7 +2346,7 @@ _08103878:
b _081038E2
.align 2, 0
_081038C8: .4byte gUnknown_203ACF0
-_081038CC: .4byte gUnknown_8245EE0
+_081038CC: .4byte gSpeciesNames
_081038D0:
ldr r2, _08103918 @ =gUnknown_203ACF0
ldr r0, [r2]
@@ -4988,7 +4988,7 @@ _08104D72:
movs r1, 0xB
mov r2, r8
muls r2, r1
- ldr r1, _08104E70 @ =gUnknown_8245EE0
+ ldr r1, _08104E70 @ =gSpeciesNames
adds r2, r1
movs r1, 0xD
str r1, [sp]
@@ -5038,7 +5038,7 @@ _08104E60: .4byte gUnknown_203ACF0
_08104E64: .4byte gUnknown_84521CC
_08104E68: .4byte gUnknown_8452334
_08104E6C: .4byte gUnknown_8440124
-_08104E70: .4byte gUnknown_8245EE0
+_08104E70: .4byte gSpeciesNames
_08104E74: .4byte gUnknown_8443600
_08104E78:
ldrb r0, [r1]
@@ -7091,7 +7091,7 @@ sub_8105E1C: @ 8105E1C
ldrh r2, [r1]
movs r1, 0xB
muls r2, r1
- ldr r1, _08105FE0 @ =gUnknown_8245EE0
+ ldr r1, _08105FE0 @ =gSpeciesNames
adds r2, r1
str r5, [sp]
mov r1, r8
@@ -7189,7 +7189,7 @@ _08105FD0: .4byte gUnknown_84521D4
_08105FD4: .4byte gUnknown_203ACF0
_08105FD8: .4byte gUnknown_84521DC
_08105FDC: .4byte gUnknown_84521E4
-_08105FE0: .4byte gUnknown_8245EE0
+_08105FE0: .4byte gSpeciesNames
_08105FE4: .4byte gUnknown_8415FAD
_08105FE8: .4byte gUnknown_8415FB3
_08105FEC:
@@ -7710,7 +7710,7 @@ _08106478:
ldr r3, [sp, 0x1C]
adds r2, r3, 0
muls r2, r1
- ldr r1, _081066B0 @ =gUnknown_8245EE0
+ ldr r1, _081066B0 @ =gSpeciesNames
adds r2, r1
movs r1, 0xC
str r1, [sp]
@@ -7973,7 +7973,7 @@ _08106534:
bl SetOamMatrix
b _081066E2
.align 2, 0
-_081066B0: .4byte gUnknown_8245EE0
+_081066B0: .4byte gSpeciesNames
_081066B4: .4byte gBaseStats
_081066B8: .4byte gUnknown_203ACF0
_081066BC: .4byte gUnknown_8452368
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
deleted file mode 100644
index 5a1bd568a..000000000
--- a/asm/pokemon_1.s
+++ /dev/null
@@ -1,2431 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ZeroBoxMonData
-ZeroBoxMonData: @ 803D97C
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- movs r3, 0
-_0803D984:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x4F
- bls _0803D984
- pop {r0}
- bx r0
- thumb_func_end ZeroBoxMonData
-
- thumb_func_start ZeroMonData
-ZeroMonData: @ 803D994
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl ZeroBoxMonData
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x38
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3A
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3B
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3C
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3D
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3E
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3F
- mov r2, sp
- bl sub_804037C
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x40
- mov r2, sp
- bl sub_804037C
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ZeroMonData
-
- thumb_func_start ZeroPlayerPartyMons
-ZeroPlayerPartyMons: @ 803DA14
- push {r4,r5,lr}
- ldr r4, _0803DA30 @ =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0803DA1E:
- adds r0, r4, 0
- bl ZeroMonData
- adds r4, 0x64
- cmp r4, r5
- ble _0803DA1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DA30: .4byte gPlayerParty
- thumb_func_end ZeroPlayerPartyMons
-
- thumb_func_start ZeroEnemyPartyMons
-ZeroEnemyPartyMons: @ 803DA34
- push {r4,r5,lr}
- ldr r4, _0803DA50 @ =gEnemyParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0803DA3E:
- adds r0, r4, 0
- bl ZeroMonData
- adds r4, 0x64
- cmp r4, r5
- ble _0803DA3E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DA50: .4byte gEnemyParty
- thumb_func_end ZeroEnemyPartyMons
-
- thumb_func_start CreateMon
-CreateMon: @ 803DA54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- mov r8, r0
- adds r6, r1, 0
- ldr r4, [sp, 0x34]
- ldr r7, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- lsls r6, 16
- lsrs r6, 16
- add r0, sp, 0x10
- strb r2, [r0]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- str r3, [sp, 0x18]
- bl ZeroMonData
- str r4, [sp]
- str r7, [sp, 0x4]
- str r5, [sp, 0x8]
- ldr r0, [sp, 0x40]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- add r2, sp, 0x10
- ldrb r2, [r2]
- ldr r3, [sp, 0x18]
- bl CreateBoxMon
- mov r0, r8
- movs r1, 0x38
- add r2, sp, 0x10
- bl sub_804037C
- movs r0, 0xFF
- str r0, [sp, 0x14]
- add r2, sp, 0x14
- mov r0, r8
- movs r1, 0x40
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateMon
-
- thumb_func_start CreateBoxMon
-CreateBoxMon: @ 803DAC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r7, r0, 0
- ldr r4, [sp, 0x40]
- ldr r0, [sp, 0x48]
- movs r5, 0xE
- add r5, sp
- strh r1, [r5]
- add r6, sp, 0x10
- strb r2, [r6]
- mov r5, sp
- adds r5, 0x11
- strb r3, [r5]
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r7, 0
- bl ZeroBoxMonData
- cmp r4, 0
- beq _0803DB00
- ldr r0, [sp, 0x44]
- str r0, [sp, 0x14]
- b _0803DB14
-_0803DB00:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x14]
-_0803DB14:
- add r2, sp, 0x14
- adds r0, r7, 0
- movs r1, 0
- bl sub_80404D0
- add r0, sp, 0x18
- mov r9, r0
- add r5, sp, 0xC
- mov r1, r10
- cmp r1, 0x2
- bne _0803DB6C
- ldr r2, _0803DB64 @ =0xffff0000
- mov r8, r2
- ldr r6, _0803DB68 @ =0x0000ffff
-_0803DB30:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x18]
- adds r1, r4, 0
- mov r3, r8
- ands r1, r3
- lsrs r1, 16
- ands r4, r6
- eors r1, r4
- ldr r2, [sp, 0x14]
- adds r0, r2, 0
- ands r0, r3
- lsrs r0, 16
- eors r1, r0
- ands r2, r6
- eors r1, r2
- cmp r1, 0x7
- bls _0803DB30
- b _0803DB92
- .align 2, 0
-_0803DB64: .4byte 0xffff0000
-_0803DB68: .4byte 0x0000ffff
-_0803DB6C:
- mov r0, r10
- cmp r0, 0x1
- bne _0803DB78
- ldr r0, [sp, 0x4C]
- str r0, [sp, 0x18]
- b _0803DB92
-_0803DB78:
- ldr r0, _0803DCBC @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0xA]
- ldrb r0, [r2, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- orrs r1, r0
- str r1, [sp, 0x18]
-_0803DB92:
- adds r0, r7, 0
- movs r1, 0x1
- mov r2, r9
- bl sub_80404D0
- adds r0, r7, 0
- bl CalculateBoxMonChecksum
- strh r0, [r5]
- adds r0, r7, 0
- movs r1, 0x9
- adds r2, r5, 0
- bl sub_80404D0
- adds r0, r7, 0
- bl EncryptBoxMon
- mov r0, sp
- ldrh r1, [r0, 0xE]
- bl GetSpeciesName
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, sp
- bl sub_80404D0
- ldr r2, _0803DCC0 @ =gGameLanguage
- adds r0, r7, 0
- movs r1, 0x3
- bl sub_80404D0
- ldr r5, _0803DCBC @ =gSaveBlock2Ptr
- ldr r2, [r5]
- adds r0, r7, 0
- movs r1, 0x7
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0xB
- mov r2, sp
- adds r2, 0xE
- bl sub_80404D0
- ldr r4, _0803DCC4 @ =gBaseStats
- mov r2, sp
- ldrh r1, [r2, 0xE]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- mov r3, sp
- ldrb r0, [r3, 0x10]
- lsls r0, 2
- ldr r1, _0803DCC8 @ =gUnknown_8253AE4
- adds r0, r1
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x19
- bl sub_80404D0
- mov r1, sp
- ldrh r0, [r1, 0xE]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r4, 0x12
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x20
- bl sub_80404D0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x23
- mov r2, r9
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x24
- add r2, sp, 0x10
- bl sub_80404D0
- ldr r2, _0803DCCC @ =gGameVersion
- adds r0, r7, 0
- movs r1, 0x25
- bl sub_80404D0
- movs r0, 0x4
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x26
- mov r2, r9
- bl sub_80404D0
- ldr r2, [r5]
- adds r2, 0x8
- adds r0, r7, 0
- movs r1, 0x31
- bl sub_80404D0
- mov r2, sp
- ldrb r0, [r2, 0x11]
- cmp r0, 0x1F
- bhi _0803DCD0
- adds r0, r7, 0
- movs r1, 0x27
- adds r2, 0x11
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x28
- mov r2, sp
- adds r2, 0x11
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x29
- mov r2, sp
- adds r2, 0x11
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x2A
- mov r2, sp
- adds r2, 0x11
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x2B
- mov r2, sp
- adds r2, 0x11
- bl sub_80404D0
- adds r0, r7, 0
- movs r1, 0x2C
- mov r2, sp
- adds r2, 0x11
- bl sub_80404D0
- b _0803DD58
- .align 2, 0
-_0803DCBC: .4byte gSaveBlock2Ptr
-_0803DCC0: .4byte gGameLanguage
-_0803DCC4: .4byte gBaseStats
-_0803DCC8: .4byte gUnknown_8253AE4
-_0803DCCC: .4byte gGameVersion
-_0803DCD0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- movs r3, 0x1F
- mov r8, r3
- ands r0, r3
- str r0, [sp, 0x1C]
- add r4, sp, 0x1C
- adds r0, r7, 0
- movs r1, 0x27
- adds r2, r4, 0
- bl sub_80404D0
- ldr r0, [sp, 0x18]
- movs r6, 0xF8
- lsls r6, 2
- ands r0, r6
- lsrs r0, 5
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x28
- adds r2, r4, 0
- bl sub_80404D0
- ldr r0, [sp, 0x18]
- movs r5, 0xF8
- lsls r5, 7
- ands r0, r5
- lsrs r0, 10
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x29
- adds r2, r4, 0
- bl sub_80404D0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- mov r1, r8
- ands r0, r1
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2A
- adds r2, r4, 0
- bl sub_80404D0
- ldr r0, [sp, 0x18]
- ands r0, r6
- lsrs r0, 5
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2B
- adds r2, r4, 0
- bl sub_80404D0
- ldr r0, [sp, 0x18]
- ands r0, r5
- lsrs r0, 10
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2C
- adds r2, r4, 0
- bl sub_80404D0
-_0803DD58:
- ldr r2, _0803DD94 @ =gBaseStats
- mov r3, sp
- ldrh r1, [r3, 0xE]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x17]
- cmp r0, 0
- beq _0803DD7E
- ldr r0, [sp, 0x14]
- movs r1, 0x1
- ands r0, r1
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x2E
- mov r2, r9
- bl sub_80404D0
-_0803DD7E:
- adds r0, r7, 0
- bl GiveBoxMonInitialMoveset
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DD94: .4byte gBaseStats
- thumb_func_end CreateBoxMon
-
- thumb_func_start CreateMonWithNature
-CreateMonWithNature: @ 803DD98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r9, r0
- ldr r0, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
-_0803DDB8:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _0803DDB8
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r9
- mov r1, r8
- adds r2, r7, 0
- adds r3, r6, 0
- bl CreateMon
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateMonWithNature
-
- thumb_func_start CreateMonWithGenderNatureLetter
-CreateMonWithGenderNatureLetter: @ 803DE00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp, 0x10]
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- lsls r5, 24
- lsrs r6, r5, 24
- lsls r0, 24
- lsrs r1, r0, 24
- mov r9, r1
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1B
- bhi _0803DEA6
-_0803DE40:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0803DE40
- adds r0, r7, 0
- adds r1, r4, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bne _0803DE40
- mov r0, r9
- subs r0, 0x1
- cmp r5, r0
- bne _0803DE40
- b _0803DED6
-_0803DEA6:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0803DEA6
- adds r0, r7, 0
- adds r1, r4, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bne _0803DEA6
-_0803DED6:
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r1, r7, 0
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl CreateMon
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateMonWithGenderNatureLetter
-
- thumb_func_start CreateMaleMon
-CreateMaleMon: @ 803DF00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
-_0803DF12:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r5, r4, 16
- lsls r0, 16
- orrs r5, r0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r1, r4, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- cmp r0, 0
- bne _0803DF12
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x20
- bl CreateMon
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateMaleMon
-
- thumb_func_start CreateMonWithIVsPersonality
-CreateMonWithIVsPersonality: @ 803DF68
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- str r3, [sp, 0x10]
- ldr r3, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r3, 0
- bl CreateMon
- adds r0, r4, 0
- movs r1, 0x42
- add r2, sp, 0x10
- bl sub_804037C
- adds r0, r4, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CreateMonWithIVsPersonality
-
- thumb_func_start CreateMonWithIVsOTID
-CreateMonWithIVsOTID: @ 803DFA8
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- str r3, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0
- bl CreateMon
- adds r0, r5, 0
- movs r1, 0x27
- adds r2, r4, 0
- bl sub_804037C
- adds r2, r4, 0x1
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_804037C
- adds r2, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x29
- bl sub_804037C
- adds r2, r4, 0x3
- adds r0, r5, 0
- movs r1, 0x2A
- bl sub_804037C
- adds r2, r4, 0x4
- adds r0, r5, 0
- movs r1, 0x2B
- bl sub_804037C
- adds r4, 0x5
- adds r0, r5, 0
- movs r1, 0x2C
- adds r2, r4, 0
- bl sub_804037C
- adds r0, r5, 0
- bl CalculateMonStats
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end CreateMonWithIVsOTID
-
- thumb_func_start CreateMonWithEVSpread
-CreateMonWithEVSpread: @ 803E01C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r0, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r7, 0
- bl CreateMon
- mov r4, r8
- movs r1, 0x1
- movs r5, 0x5
-_0803E050:
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803E05A
- adds r6, 0x1
-_0803E05A:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _0803E050
- movs r0, 0xFF
- lsls r0, 1
- adds r1, r6, 0
- bl __divsi3
- add r1, sp, 0x10
- strh r0, [r1]
- movs r4, 0x1
- movs r5, 0
-_0803E074:
- mov r0, r8
- ands r0, r4
- cmp r0, 0
- beq _0803E088
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r7, 0
- add r2, sp, 0x10
- bl sub_804037C
-_0803E088:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _0803E074
- adds r0, r7, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateMonWithEVSpread
-
- thumb_func_start sub_803E0A4
-sub_803E0A4: @ 803E0A4
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r0, 0
- adds r6, r1, 0
- ldrh r1, [r6]
- ldrb r2, [r6, 0xC]
- movs r3, 0x1
- str r3, [sp]
- ldr r0, [r6, 0x1C]
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- ldr r0, [r6, 0x14]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- movs r3, 0
- bl CreateMon
- movs r5, 0
- adds r4, r6, 0x4
-_0803E0CA:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, 0
- bl SetMonMoveSlot
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803E0CA
- adds r2, r6, 0
- adds r2, 0xD
- adds r0, r7, 0
- movs r1, 0x15
- bl sub_804037C
- adds r2, r6, 0x2
- adds r0, r7, 0
- movs r1, 0xC
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x20
- adds r0, r7, 0
- movs r1, 0x2
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x2B
- adds r0, r7, 0
- movs r1, 0x20
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0xE
- adds r0, r7, 0
- movs r1, 0x1A
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0xF
- adds r0, r7, 0
- movs r1, 0x1B
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x10
- adds r0, r7, 0
- movs r1, 0x1C
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x11
- adds r0, r7, 0
- movs r1, 0x1D
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x12
- adds r0, r7, 0
- movs r1, 0x1E
- bl sub_804037C
- adds r2, r6, 0
- adds r2, 0x13
- adds r0, r7, 0
- movs r1, 0x1F
- bl sub_804037C
- ldrb r0, [r6, 0x1B]
- lsrs r0, 7
- add r1, sp, 0x10
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldrb r0, [r6, 0x18]
- lsls r0, 27
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x27
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldrh r0, [r6, 0x18]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x28
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldrb r0, [r6, 0x19]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x29
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldr r0, [r6, 0x18]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2A
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldrh r0, [r6, 0x1A]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2B
- add r2, sp, 0x10
- bl sub_804037C
- add r1, sp, 0x10
- ldrb r0, [r6, 0x1B]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2C
- add r2, sp, 0x10
- bl sub_804037C
- adds r0, r7, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803E0A4
-
- thumb_func_start sub_803E1EC
-sub_803E1EC: @ 803E1EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- mov r8, r0
- ldr r4, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- ldr r5, [sp, 0x34]
- ldr r7, [sp, 0x38]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- str r0, [sp, 0x10]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- str r7, [sp, 0xC]
- mov r0, r8
- bl CreateMon
- mov r0, r8
- movs r1, 0x50
- add r2, sp, 0x10
- bl sub_804037C
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803E1EC
-
- thumb_func_start sub_803E23C
-sub_803E23C: @ 803E23C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E266
- movs r0, 0
-_0803E266:
- strh r0, [r6, 0x2]
- movs r5, 0
- movs r0, 0x2B
- adds r0, r6
- mov r8, r0
- movs r1, 0x20
- adds r1, r6
- mov r9, r1
- adds r4, r6, 0x4
-_0803E278:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r7, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803E278
- adds r0, r7, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0xC]
- adds r0, r7, 0
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0xD]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- str r0, [r6, 0x14]
- adds r0, r7, 0
- movs r1, 0x1A
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0xE]
- adds r0, r7, 0
- movs r1, 0x1B
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0xF]
- adds r0, r7, 0
- movs r1, 0x1C
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0x10]
- adds r0, r7, 0
- movs r1, 0x1D
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0x11]
- adds r0, r7, 0
- movs r1, 0x1E
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0x12]
- adds r0, r7, 0
- movs r1, 0x1F
- movs r2, 0
- bl GetMonData
- strb r0, [r6, 0x13]
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x27
- movs r2, 0
- bl GetMonData
- movs r4, 0x1F
- ands r0, r4
- ldrb r2, [r6, 0x18]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x28
- movs r2, 0
- bl GetMonData
- movs r5, 0x1F
- ands r0, r5
- lsls r0, 5
- ldrh r2, [r6, 0x18]
- ldr r1, _0803E3DC @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x29
- movs r2, 0
- bl GetMonData
- ands r0, r4
- lsls r0, 2
- ldrb r2, [r6, 0x19]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x19]
- adds r0, r7, 0
- movs r1, 0x2A
- movs r2, 0
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [r6, 0x18]
- ldr r2, _0803E3E0 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x2B
- movs r2, 0
- bl GetMonData
- ands r0, r5
- lsls r0, 4
- ldrh r2, [r6, 0x1A]
- ldr r1, _0803E3E4 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r6, 0x1A]
- adds r0, r7, 0
- movs r1, 0x2C
- movs r2, 0
- bl GetMonData
- ands r0, r4
- lsls r0, 1
- ldrb r2, [r6, 0x1B]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x1B]
- adds r0, r7, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetMonData
- lsls r0, 7
- ldrb r2, [r6, 0x1B]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x1B]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [r6, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803E3DC: .4byte 0xfffffc1f
-_0803E3E0: .4byte 0xfff07fff
-_0803E3E4: .4byte 0xfffffe0f
- thumb_func_end sub_803E23C
-
- thumb_func_start CalculateBoxMonChecksum
-CalculateBoxMonChecksum: @ 803E3E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- movs r6, 0
- ldr r1, [r4]
- movs r2, 0
- bl GetSubstruct
- adds r5, r0, 0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x1
- bl GetSubstruct
- adds r7, r0, 0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x2
- bl GetSubstruct
- mov r8, r0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x3
- bl GetSubstruct
- adds r3, r0, 0
- movs r1, 0x5
-_0803E422:
- ldrh r0, [r5]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803E422
- adds r2, r7, 0
- movs r1, 0x5
-_0803E436:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803E436
- mov r2, r8
- movs r1, 0x5
-_0803E44A:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803E44A
- adds r2, r3, 0
- movs r1, 0x5
-_0803E45E:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803E45E
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CalculateBoxMonChecksum
-
- thumb_func_start CalculateMonStats
-CalculateMonStats: @ 803E47C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- adds r5, r0, 0
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- movs r1, 0x27
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl GetMonData
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x1B
- movs r2, 0
- bl GetMonData
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x29
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x20]
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x24]
- adds r0, r5, 0
- movs r1, 0x2A
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x28]
- adds r0, r5, 0
- movs r1, 0x1D
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x2C]
- adds r0, r5, 0
- movs r1, 0x2B
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x30]
- adds r0, r5, 0
- movs r1, 0x1E
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x34]
- adds r0, r5, 0
- movs r1, 0x2C
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x38]
- adds r0, r5, 0
- movs r1, 0x1F
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x3C]
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- bl GetLevelFromMonExp
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x38
- mov r2, sp
- bl sub_804037C
- ldr r0, _0803E564 @ =0x0000012f
- cmp r7, r0
- bne _0803E568
- movs r0, 0x1
- str r0, [sp, 0x4]
- lsls r6, r7, 3
- b _0803E596
- .align 2, 0
-_0803E564: .4byte 0x0000012f
-_0803E568:
- ldr r1, _0803E734 @ =gBaseStats
- lsls r2, r7, 3
- subs r0, r2, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r0, r6
- adds r0, r4, 0
- adds r6, r2, 0
- cmp r0, 0
- bge _0803E582
- adds r0, 0x3
-_0803E582:
- asrs r0, 2
- adds r0, r1, r0
- ldr r4, [sp]
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- adds r0, r4
- adds r0, 0xA
- str r0, [sp, 0x4]
-_0803E596:
- ldr r1, _0803E738 @ =gBattleScripting
- add r2, sp, 0x4
- ldrb r0, [r2]
- mov r3, r8
- subs r0, r3
- adds r1, 0x23
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0803E5AE
- movs r0, 0x1
- strb r0, [r1]
-_0803E5AE:
- adds r0, r5, 0
- movs r1, 0x3A
- bl sub_804037C
- ldr r0, _0803E734 @ =gBaseStats
- subs r1, r6, r7
- lsls r1, 2
- adds r6, r1, r0
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- mov r2, r10
- adds r1, r0, r2
- mov r0, r9
- cmp r0, 0
- bge _0803E5CE
- adds r0, 0x3
-_0803E5CE:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x8]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x8
- ldrh r1, [r4]
- movs r2, 0x1
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x3B
- adds r2, r4, 0
- bl sub_804037C
- ldrb r0, [r6, 0x2]
- lsls r0, 1
- ldr r3, [sp, 0x20]
- adds r1, r0, r3
- ldr r0, [sp, 0x24]
- cmp r0, 0
- bge _0803E614
- adds r0, 0x3
-_0803E614:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0xC]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0xC
- ldrh r1, [r4]
- movs r2, 0x2
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x3C
- adds r2, r4, 0
- bl sub_804037C
- ldrb r0, [r6, 0x3]
- lsls r0, 1
- ldr r2, [sp, 0x28]
- adds r1, r0, r2
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- bge _0803E65A
- adds r0, 0x3
-_0803E65A:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x10]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x10
- ldrh r1, [r4]
- movs r2, 0x3
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x3D
- adds r2, r4, 0
- bl sub_804037C
- ldrb r0, [r6, 0x4]
- lsls r0, 1
- ldr r3, [sp, 0x30]
- adds r1, r0, r3
- ldr r0, [sp, 0x34]
- cmp r0, 0
- bge _0803E6A0
- adds r0, 0x3
-_0803E6A0:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x14]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x14
- ldrh r1, [r4]
- movs r2, 0x4
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
- adds r0, r5, 0
- movs r1, 0x3E
- adds r2, r4, 0
- bl sub_804037C
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- ldr r2, [sp, 0x38]
- adds r1, r0, r2
- ldr r0, [sp, 0x3C]
- cmp r0, 0
- bge _0803E6E6
- adds r0, 0x3
-_0803E6E6:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x18]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x18
- ldrh r1, [r4]
- movs r2, 0x5
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- adds r0, r5, 0
- movs r1, 0x3F
- adds r2, r4, 0
- bl sub_804037C
- ldr r0, _0803E73C @ =0x0000012f
- cmp r7, r0
- bne _0803E740
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _0803E72E
- mov r3, r8
- cmp r3, 0
- bne _0803E764
-_0803E72E:
- movs r0, 0x1
- b _0803E758
- .align 2, 0
-_0803E734: .4byte gBaseStats
-_0803E738: .4byte gBattleScripting
-_0803E73C: .4byte 0x0000012f
-_0803E740:
- ldr r1, [sp, 0x1C]
- cmp r1, 0
- bne _0803E750
- mov r0, r8
- cmp r0, 0
- bne _0803E764
- ldr r0, [sp, 0x4]
- b _0803E758
-_0803E750:
- ldr r0, [sp, 0x4]
- mov r2, r8
- subs r0, r2
- adds r0, r1, r0
-_0803E758:
- str r0, [sp, 0x1C]
- add r2, sp, 0x1C
- adds r0, r5, 0
- movs r1, 0x39
- bl sub_804037C
-_0803E764:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CalculateMonStats
-
- thumb_func_start BoxMonToMon
-BoxMonToMon: @ 803E774
- push {r4,lr}
- sub sp, 0x4
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- movs r1, 0x3A
- mov r2, sp
- bl sub_804037C
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x40
- mov r2, sp
- bl sub_804037C
- adds r0, r4, 0
- bl CalculateMonStats
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BoxMonToMon
-
- thumb_func_start GetLevelFromMonExp
-GetLevelFromMonExp: @ 803E7C4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- adds r3, r0, 0
- movs r2, 0x1
- ldr r6, _0803E828 @ =gUnknown_8253AE4
- ldr r1, _0803E82C @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x13]
- movs r5, 0xCA
- lsls r5, 1
- muls r0, r5
- adds r0, 0x4
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bhi _0803E81A
- adds r4, r1, 0
-_0803E804:
- adds r2, 0x1
- cmp r2, 0x64
- bgt _0803E81A
- lsls r1, r2, 2
- ldrb r0, [r4, 0x13]
- muls r0, r5
- adds r1, r0
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r3
- bls _0803E804
-_0803E81A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803E828: .4byte gUnknown_8253AE4
-_0803E82C: .4byte gBaseStats
- thumb_func_end GetLevelFromMonExp
-
- thumb_func_start GetLevelFromBoxMonExp
-GetLevelFromBoxMonExp: @ 803E830
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x19
- movs r2, 0
- bl GetBoxMonData
- adds r3, r0, 0
- movs r2, 0x1
- ldr r6, _0803E894 @ =gUnknown_8253AE4
- ldr r1, _0803E898 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x13]
- movs r5, 0xCA
- lsls r5, 1
- muls r0, r5
- adds r0, 0x4
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bhi _0803E886
- adds r4, r1, 0
-_0803E870:
- adds r2, 0x1
- cmp r2, 0x64
- bgt _0803E886
- lsls r1, r2, 2
- ldrb r0, [r4, 0x13]
- muls r0, r5
- adds r1, r0
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r3
- bls _0803E870
-_0803E886:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803E894: .4byte gUnknown_8253AE4
-_0803E898: .4byte gBaseStats
- thumb_func_end GetLevelFromBoxMonExp
-
- thumb_func_start GiveMoveToMon
-GiveMoveToMon: @ 803E89C
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl GiveMoveToBoxMon
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GiveMoveToMon
-
- thumb_func_start GiveMoveToBoxMon
-GiveMoveToBoxMon: @ 803E8B0
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- mov r6, sp
-_0803E8BE:
- adds r4, r5, 0
- adds r4, 0xD
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803E8FC
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, sp
- bl sub_80404D0
- adds r1, r5, 0
- adds r1, 0x11
- ldrh r0, [r6]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803E8F8 @ =gUnknown_8250C08
- adds r2, r0
- adds r0, r7, 0
- bl sub_80404D0
- ldrh r0, [r6]
- b _0803E914
- .align 2, 0
-_0803E8F8: .4byte gUnknown_8250C08
-_0803E8FC:
- ldrh r1, [r6]
- cmp r0, r1
- bne _0803E90C
- ldr r0, _0803E908 @ =0x0000fffe
- b _0803E914
- .align 2, 0
-_0803E908: .4byte 0x0000fffe
-_0803E90C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803E8BE
- ldr r0, _0803E91C @ =0x0000ffff
-_0803E914:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803E91C: .4byte 0x0000ffff
- thumb_func_end GiveMoveToBoxMon
-
- thumb_func_start GiveMoveToBattleMon
-GiveMoveToBattleMon: @ 803E920
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- movs r3, 0
- adds r5, r0, 0
- adds r5, 0x24
- ldr r2, _0803E94C @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r2, r1, r2
- adds r1, r0, 0
- adds r1, 0xC
-_0803E93A:
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803E950
- strh r4, [r1]
- adds r1, r5, r3
- ldrb r0, [r2, 0x4]
- strb r0, [r1]
- adds r0, r4, 0
- b _0803E95A
- .align 2, 0
-_0803E94C: .4byte gBattleMoves
-_0803E950:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0803E93A
- ldr r0, _0803E960 @ =0x0000ffff
-_0803E95A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803E960: .4byte 0x0000ffff
- thumb_func_end GiveMoveToBattleMon
-
- thumb_func_start SetMonMoveSlot
-SetMonMoveSlot: @ 803E964
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- mov r0, sp
- strh r1, [r0]
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, 0
- mov r2, sp
- bl sub_804037C
- adds r4, 0x11
- mov r0, sp
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803E9A0 @ =gUnknown_8250C08
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804037C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803E9A0: .4byte gUnknown_8250C08
- thumb_func_end SetMonMoveSlot
-
- thumb_func_start SetBattleMonMoveSlot
-SetBattleMonMoveSlot: @ 803E9A4
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r4, r2, 1
- adds r3, r0, 0
- adds r3, 0xC
- adds r3, r4
- strh r1, [r3]
- adds r0, 0x24
- adds r0, r2
- ldr r3, _0803E9D0 @ =gBattleMoves
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803E9D0: .4byte gBattleMoves
- thumb_func_end SetBattleMonMoveSlot
-
- thumb_func_start GiveMonInitialMoveset
-GiveMonInitialMoveset: @ 803E9D4
- push {lr}
- bl GiveBoxMonInitialMoveset
- pop {r0}
- bx r0
- thumb_func_end GiveMonInitialMoveset
-
- thumb_func_start GiveBoxMonInitialMoveset
-GiveBoxMonInitialMoveset: @ 803E9E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0803EA7C @ =gUnknown_825D7B4
- lsls r6, r4, 2
- adds r0, r6, r0
- ldr r0, [r0]
- ldrh r1, [r0]
- ldr r2, _0803EA80 @ =0xffff0000
- lsrs r0, r2, 16
- cmp r1, r0
- beq _0803EA6C
- mov r9, r2
- movs r3, 0
-_0803EA1E:
- ldr r0, _0803EA7C @ =gUnknown_825D7B4
- adds r7, r6, r0
- ldr r0, [r7]
- adds r0, r3, r0
- ldrh r2, [r0]
- movs r1, 0xFE
- lsls r1, 8
- adds r0, r1, 0
- ands r0, r2
- mov r4, r10
- lsls r1, r4, 9
- cmp r0, r1
- bgt _0803EA6C
- ldr r1, _0803EA84 @ =0x000001ff
- adds r0, r1, 0
- adds r4, r0, 0
- ands r4, r2
- mov r0, r8
- adds r1, r4, 0
- str r3, [sp]
- bl GiveMoveToBoxMon
- lsls r0, 16
- mov r1, r9
- lsrs r5, r1, 16
- ldr r3, [sp]
- cmp r0, r9
- bne _0803EA60
- mov r0, r8
- adds r1, r4, 0
- bl DeleteFirstMoveAndGiveMoveToBoxMon
- ldr r3, [sp]
-_0803EA60:
- adds r3, 0x2
- ldr r0, [r7]
- adds r0, r3, r0
- ldrh r0, [r0]
- cmp r0, r5
- bne _0803EA1E
-_0803EA6C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803EA7C: .4byte gUnknown_825D7B4
-_0803EA80: .4byte 0xffff0000
-_0803EA84: .4byte 0x000001ff
- thumb_func_end GiveBoxMonInitialMoveset
-
- thumb_func_start MonTryLearningNewMove
-MonTryLearningNewMove: @ 803EA88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r4, r1, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r4, 0
- beq _0803EB20
- ldr r4, _0803EB0C @ =gUnknown_2024028
- mov r1, sp
- ldrb r1, [r1]
- strb r1, [r4]
- ldr r2, _0803EB10 @ =gUnknown_825D7B4
- mov r5, r9
- lsls r3, r5, 2
- adds r5, r3, r2
- ldr r0, [r5]
- ldrh r1, [r0]
- movs r7, 0xFE
- lsls r7, 8
- adds r0, r7, 0
- ands r0, r1
- adds r6, r4, 0
- mov r12, r2
- mov r1, r10
- lsls r4, r1, 9
- cmp r0, r4
- beq _0803EB48
- adds r2, r6, 0
- ldr r0, _0803EB14 @ =0x0000ffff
- mov r12, r0
- adds r6, r7, 0
- adds r3, r5, 0
-_0803EAF4:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [r3]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, r12
- bne _0803EB18
- movs r0, 0
- b _0803EB74
- .align 2, 0
-_0803EB0C: .4byte gUnknown_2024028
-_0803EB10: .4byte gUnknown_825D7B4
-_0803EB14: .4byte 0x0000ffff
-_0803EB18:
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r4
- bne _0803EAF4
-_0803EB20:
- ldr r3, _0803EB84 @ =gUnknown_825D7B4
- mov r1, r9
- lsls r4, r1, 2
- adds r1, r4, r3
- ldr r2, _0803EB88 @ =gUnknown_2024028
- ldrb r0, [r2]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- mov r5, r10
- lsls r1, r5, 9
- adds r6, r2, 0
- mov r12, r3
- adds r3, r4, 0
- cmp r0, r1
- bne _0803EB72
-_0803EB48:
- ldr r2, _0803EB8C @ =gUnknown_2024022
- mov r0, r12
- adds r1, r3, r0
- ldrb r0, [r6]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0803EB90 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldrh r1, [r2]
- mov r0, r8
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
-_0803EB72:
- ldr r0, [sp]
-_0803EB74:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803EB84: .4byte gUnknown_825D7B4
-_0803EB88: .4byte gUnknown_2024028
-_0803EB8C: .4byte gUnknown_2024022
-_0803EB90: .4byte 0x000001ff
- thumb_func_end MonTryLearningNewMove
-
- thumb_func_start DeleteFirstMoveAndGiveMoveToMon
-DeleteFirstMoveAndGiveMoveToMon: @ 803EB94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r4, 0
- add r7, sp, 0x8
- add r0, sp, 0xC
- mov r9, r0
- mov r5, sp
-_0803EBB0:
- adds r1, r4, 0
- adds r1, 0xE
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r5]
- adds r1, r4, 0
- adds r1, 0x12
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r1, r7, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _0803EBB0
- adds r0, r6, 0
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r1]
- lsrs r0, 2
- strb r0, [r1]
- mov r0, sp
- mov r2, r8
- strh r2, [r0, 0x6]
- ldr r1, _0803EC3C @ =gBattleMoves
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- strb r0, [r7, 0x3]
- movs r4, 0
- mov r5, sp
-_0803EC04:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- adds r2, r5, 0
- bl sub_804037C
- adds r1, r4, 0
- adds r1, 0x11
- adds r2, r7, r4
- adds r0, r6, 0
- bl sub_804037C
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803EC04
- adds r0, r6, 0
- movs r1, 0x15
- mov r2, r9
- bl sub_804037C
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803EC3C: .4byte gBattleMoves
- thumb_func_end DeleteFirstMoveAndGiveMoveToMon
-
- thumb_func_start DeleteFirstMoveAndGiveMoveToBoxMon
-DeleteFirstMoveAndGiveMoveToBoxMon: @ 803EC40
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r4, 0
- add r7, sp, 0x8
- add r0, sp, 0xC
- mov r9, r0
- mov r5, sp
-_0803EC5C:
- adds r1, r4, 0
- adds r1, 0xE
- adds r0, r6, 0
- movs r2, 0
- bl GetBoxMonData
- strh r0, [r5]
- adds r1, r4, 0
- adds r1, 0x12
- adds r0, r6, 0
- movs r2, 0
- bl GetBoxMonData
- adds r1, r7, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _0803EC5C
- adds r0, r6, 0
- movs r1, 0x15
- movs r2, 0
- bl GetBoxMonData
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r1]
- lsrs r0, 2
- strb r0, [r1]
- mov r0, sp
- mov r2, r8
- strh r2, [r0, 0x6]
- ldr r1, _0803ECE8 @ =gBattleMoves
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- strb r0, [r7, 0x3]
- movs r4, 0
- mov r5, sp
-_0803ECB0:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- adds r2, r5, 0
- bl sub_80404D0
- adds r1, r4, 0
- adds r1, 0x11
- adds r2, r7, r4
- adds r0, r6, 0
- bl sub_80404D0
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803ECB0
- adds r0, r6, 0
- movs r1, 0x15
- mov r2, r9
- bl sub_80404D0
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803ECE8: .4byte gBattleMoves
- thumb_func_end DeleteFirstMoveAndGiveMoveToBoxMon
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s
deleted file mode 100644
index 22246bf87..000000000
--- a/asm/pokemon_2.s
+++ /dev/null
@@ -1,3902 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_803F5B4
-sub_803F5B4: @ 803F5B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- movs r6, 0
- cmp r0, 0x1
- beq _0803F608
- cmp r0, 0x1
- bgt _0803F5CC
- cmp r0, 0
- beq _0803F5D2
- b _0803F68A
-_0803F5CC:
- cmp r1, 0x2
- beq _0803F650
- b _0803F68A
-_0803F5D2:
- movs r5, 0
- ldr r0, _0803F5FC @ =gActiveBattler
- ldrb r3, [r0]
- ldr r4, _0803F600 @ =gAbsentBattlerFlags
- ldr r2, _0803F604 @ =gBitTable
-_0803F5DC:
- cmp r5, r3
- beq _0803F5F0
- ldrb r0, [r4]
- ldr r1, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0803F5F0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803F5F0:
- adds r2, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803F5DC
- b _0803F68A
- .align 2, 0
-_0803F5FC: .4byte gActiveBattler
-_0803F600: .4byte gAbsentBattlerFlags
-_0803F604: .4byte gBitTable
-_0803F608:
- movs r5, 0
-_0803F60A:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _0803F644 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0803F63C
- ldr r0, _0803F648 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0803F64C @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803F63C
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803F63C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803F60A
- b _0803F68A
- .align 2, 0
-_0803F644: .4byte sBattler_AI
-_0803F648: .4byte gAbsentBattlerFlags
-_0803F64C: .4byte gBitTable
-_0803F650:
- movs r5, 0
-_0803F652:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBankSide
- adds r4, r0, 0
- ldr r0, _0803F694 @ =gBattlerTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0803F684
- ldr r0, _0803F698 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0803F69C @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803F684
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803F684:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803F652
-_0803F68A:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F694: .4byte gBattlerTarget
-_0803F698: .4byte gAbsentBattlerFlags
-_0803F69C: .4byte gBitTable
- thumb_func_end sub_803F5B4
-
- thumb_func_start GetDefaultMoveTarget
-GetDefaultMoveTarget: @ 803F6A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBankIdentity
- movs r1, 0x1
- movs r6, 0x1
- adds r4, r6, 0
- ands r4, r0
- eors r4, r1
- adds r5, r4, 0
- ldr r0, _0803F6C4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _0803F6C8
- adds r0, r4, 0
- b _0803F712
- .align 2, 0
-_0803F6C4: .4byte gBattleTypeFlags
-_0803F6C8:
- movs r0, 0
- bl sub_803F5B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803F6EC
- bl Random
- adds r1, r6, 0
- ands r1, r0
- cmp r1, 0
- bne _0803F6E8
- movs r0, 0x2
- eors r0, r4
- b _0803F712
-_0803F6E8:
- adds r0, r4, 0
- b _0803F712
-_0803F6EC:
- ldr r0, _0803F704 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0803F708 @ =gBitTable
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803F70C
- adds r0, r4, 0
- b _0803F712
- .align 2, 0
-_0803F704: .4byte gAbsentBattlerFlags
-_0803F708: .4byte gBitTable
-_0803F70C:
- movs r0, 0x2
- eors r5, r0
- adds r0, r5, 0
-_0803F712:
- bl GetBankByIdentity
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetDefaultMoveTarget
-
- thumb_func_start GetMonGender
-GetMonGender: @ 803F720
- push {lr}
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetMonGender
-
- thumb_func_start GetBoxMonGender
-GetBoxMonGender: @ 803F730
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetBoxMonData
- adds r2, r0, 0
- ldr r1, _0803F780 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0803F786
- cmp r0, 0
- blt _0803F768
- cmp r0, 0xFF
- bgt _0803F768
- cmp r0, 0xFE
- bge _0803F786
-_0803F768:
- ldr r1, _0803F780 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0xFF
- ands r0, r2
- cmp r1, r0
- bhi _0803F784
- movs r0, 0
- b _0803F786
- .align 2, 0
-_0803F780: .4byte gBaseStats
-_0803F784:
- movs r0, 0xFE
-_0803F786:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetBoxMonGender
-
- thumb_func_start GetGenderFromSpeciesAndPersonality
-GetGenderFromSpeciesAndPersonality: @ 803F78C
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0803F7C8 @ =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0803F7CE
- cmp r0, 0
- blt _0803F7B0
- cmp r0, 0xFF
- bgt _0803F7B0
- cmp r0, 0xFE
- bge _0803F7CE
-_0803F7B0:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0xFF
- ands r0, r3
- cmp r1, r0
- bhi _0803F7CC
- movs r0, 0
- b _0803F7CE
- .align 2, 0
-_0803F7C8: .4byte gBaseStats
-_0803F7CC:
- movs r0, 0xFE
-_0803F7CE:
- pop {r1}
- bx r1
- thumb_func_end GetGenderFromSpeciesAndPersonality
-
- thumb_func_start sub_803F7D4
-sub_803F7D4: @ 803F7D4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0803F808 @ =gUnknown_202401C
- ldr r2, [r0]
- cmp r2, 0
- beq _0803F810
- cmp r4, 0x3
- bls _0803F7EC
- movs r4, 0
-_0803F7EC:
- ldr r0, _0803F80C @ =gUnknown_20244DC
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 3
- adds r1, r2, r1
- adds r2, r0, 0
- adds r1, 0x14
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- adds r3, r0, 0
- b _0803F84C
- .align 2, 0
-_0803F808: .4byte gUnknown_202401C
-_0803F80C: .4byte gUnknown_20244DC
-_0803F810:
- ldr r0, _0803F828 @ =gUnknown_20244F4
- ldr r1, [r0]
- cmp r1, 0
- beq _0803F830
- ldrb r0, [r1]
- lsrs r0, 4
- cmp r4, r0
- blt _0803F822
- movs r4, 0
-_0803F822:
- ldr r3, _0803F82C @ =gUnknown_20244DC
- ldr r2, [r1, 0x10]
- b _0803F83A
- .align 2, 0
-_0803F828: .4byte gUnknown_20244F4
-_0803F82C: .4byte gUnknown_20244DC
-_0803F830:
- cmp r4, 0x3
- bls _0803F836
- movs r4, 0
-_0803F836:
- ldr r3, _0803F858 @ =gUnknown_20244DC
- ldr r2, _0803F85C @ =gUnknown_825DEF0
-_0803F83A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- adds r1, r3, 0
- adds r0, r2
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
-_0803F84C:
- strh r5, [r3, 0x2]
- ldr r0, _0803F860 @ =gUnknown_82349BC
- str r0, [r3, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803F858: .4byte gUnknown_20244DC
-_0803F85C: .4byte gUnknown_825DEF0
-_0803F860: .4byte gUnknown_82349BC
- thumb_func_end sub_803F7D4
-
- thumb_func_start sub_803F864
-sub_803F864: @ 803F864
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, _0803F89C @ =gUnknown_20244DC
- strh r4, [r0, 0x2]
- adds r5, r0, 0
- cmp r3, 0
- beq _0803F87C
- cmp r3, 0x2
- bne _0803F8A8
-_0803F87C:
- ldr r2, _0803F8A0 @ =gUnknown_825DF50
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- adds r1, r5, 0
- adds r0, r2
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r1, _0803F8A4 @ =gUnknown_8239F74
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- b _0803F8E8
- .align 2, 0
-_0803F89C: .4byte gUnknown_20244DC
-_0803F8A0: .4byte gUnknown_825DF50
-_0803F8A4: .4byte gUnknown_8239F74
-_0803F8A8:
- ldr r0, _0803F8C8 @ =gUnknown_202401C
- ldr r1, [r0]
- cmp r1, 0
- beq _0803F8CC
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r0, r1, r0
- adds r1, r5, 0
- adds r0, 0x14
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- b _0803F8E0
- .align 2, 0
-_0803F8C8: .4byte gUnknown_202401C
-_0803F8CC:
- ldr r0, _0803F8F0 @ =gUnknown_825DEF0
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r2, r5, 0
- adds r1, r0
- ldm r1!, {r0,r3,r6}
- stm r2!, {r0,r3,r6}
- ldm r1!, {r0,r3,r6}
- stm r2!, {r0,r3,r6}
-_0803F8E0:
- ldr r0, _0803F8F4 @ =gUnknown_82390DC
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
-_0803F8E8:
- str r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803F8F0: .4byte gUnknown_825DEF0
-_0803F8F4: .4byte gUnknown_82390DC
- thumb_func_end sub_803F864
-
- thumb_func_start EncryptBoxMon
-EncryptBoxMon: @ 803F8F8
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803F902:
- ldr r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803F902
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end EncryptBoxMon
-
- thumb_func_start DecryptBoxMon
-DecryptBoxMon: @ 803F91C
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803F926:
- ldr r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803F926
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end DecryptBoxMon
-
- thumb_func_start GetSubstruct
-GetSubstruct: @ 803F940
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- movs r6, 0
- movs r1, 0x18
- bl __umodsi3
- cmp r0, 0x17
- bls _0803F958
- b _0803FBE0
-_0803F958:
- lsls r0, 2
- ldr r1, _0803F964 @ =_0803F968
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F964: .4byte _0803F968
- .align 2, 0
-_0803F968:
- .4byte _0803F9C8
- .4byte _0803F9EC
- .4byte _0803FA08
- .4byte _0803FA1E
- .4byte _0803FA34
- .4byte _0803FA50
- .4byte _0803FA66
- .4byte _0803FA7C
- .4byte _0803FA8C
- .4byte _0803FAAA
- .4byte _0803FAC2
- .4byte _0803FAD2
- .4byte _0803FAE6
- .4byte _0803FAF8
- .4byte _0803FB0A
- .4byte _0803FB1C
- .4byte _0803FB2E
- .4byte _0803FB40
- .4byte _0803FB52
- .4byte _0803FB68
- .4byte _0803FB7C
- .4byte _0803FB8A
- .4byte _0803FB9C
- .4byte _0803FBB0
-_0803F9C8:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803F9D2
- b _0803FBD8
-_0803F9D2:
- cmp r4, 0x1
- bgt _0803F9DE
-_0803F9D6:
- cmp r4, 0
- bne _0803F9DC
- b _0803FBDE
-_0803F9DC:
- b _0803FBE0
-_0803F9DE:
- cmp r4, 0x2
- bne _0803F9E4
- b _0803FBD2
-_0803F9E4:
- cmp r4, 0x3
- beq _0803F9EA
- b _0803FBE0
-_0803F9EA:
- b _0803FBCC
-_0803F9EC:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803F9F6
- b _0803FBD8
-_0803F9F6:
- cmp r4, 0x1
- ble _0803F9D6
-_0803F9FA:
- cmp r4, 0x2
- bne _0803FA00
- b _0803FBCC
-_0803FA00:
- cmp r4, 0x3
- beq _0803FA06
- b _0803FBE0
-_0803FA06:
- b _0803FBD2
-_0803FA08:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA12
- b _0803FBD2
-_0803FA12:
- cmp r4, 0x1
- ble _0803F9D6
- cmp r4, 0x2
- bne _0803FA1C
- b _0803FBD8
-_0803FA1C:
- b _0803F9E4
-_0803FA1E:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA28
- b _0803FBCC
-_0803FA28:
- cmp r4, 0x1
- ble _0803F9D6
- cmp r4, 0x2
- bne _0803FA32
- b _0803FBD8
-_0803FA32:
- b _0803FA00
-_0803FA34:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA3E
- b _0803FBD2
-_0803FA3E:
- cmp r4, 0x1
- ble _0803F9D6
-_0803FA42:
- cmp r4, 0x2
- bne _0803FA48
- b _0803FBCC
-_0803FA48:
- cmp r4, 0x3
- beq _0803FA4E
- b _0803FBE0
-_0803FA4E:
- b _0803FBD8
-_0803FA50:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA5A
- b _0803FBCC
-_0803FA5A:
- cmp r4, 0x1
- ble _0803F9D6
- cmp r4, 0x2
- bne _0803FA64
- b _0803FBD2
-_0803FA64:
- b _0803FA48
-_0803FA66:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA70
- b _0803FBDE
-_0803FA70:
- cmp r4, 0x1
- bgt _0803F9DE
-_0803FA74:
- cmp r4, 0
- bne _0803FA7A
- b _0803FBD8
-_0803FA7A:
- b _0803FBE0
-_0803FA7C:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA86
- b _0803FBDE
-_0803FA86:
- cmp r4, 0x1
- ble _0803FA74
- b _0803F9FA
-_0803FA8C:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FA96
- b _0803FBDE
-_0803FA96:
- cmp r4, 0x1
- bgt _0803FAA2
-_0803FA9A:
- cmp r4, 0
- bne _0803FAA0
- b _0803FBD2
-_0803FAA0:
- b _0803FBE0
-_0803FAA2:
- cmp r4, 0x2
- bne _0803FAA8
- b _0803FBD8
-_0803FAA8:
- b _0803F9E4
-_0803FAAA:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FAB4
- b _0803FBDE
-_0803FAB4:
- cmp r4, 0x1
- bgt _0803FABA
- b _0803FBBC
-_0803FABA:
- cmp r4, 0x2
- bne _0803FAC0
- b _0803FBD8
-_0803FAC0:
- b _0803FA00
-_0803FAC2:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FACC
- b _0803FBDE
-_0803FACC:
- cmp r4, 0x1
- ble _0803FA9A
- b _0803FA42
-_0803FAD2:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- bne _0803FADC
- b _0803FBDE
-_0803FADC:
- cmp r4, 0x1
- ble _0803FBBC
- cmp r4, 0x2
- beq _0803FBD2
- b _0803FA48
-_0803FAE6:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD2
- cmp r4, 0x1
- ble _0803FA74
- cmp r4, 0x2
- beq _0803FBDE
- b _0803F9E4
-_0803FAF8:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBCC
- cmp r4, 0x1
- ble _0803FA74
- cmp r4, 0x2
- beq _0803FBDE
- b _0803FA00
-_0803FB0A:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD8
- cmp r4, 0x1
- ble _0803FA9A
- cmp r4, 0x2
- beq _0803FBDE
- b _0803F9E4
-_0803FB1C:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD8
- cmp r4, 0x1
- ble _0803FBBC
- cmp r4, 0x2
- beq _0803FBDE
- b _0803FA00
-_0803FB2E:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBCC
- cmp r4, 0x1
- ble _0803FA9A
- cmp r4, 0x2
- beq _0803FBDE
- b _0803FA48
-_0803FB40:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD2
- cmp r4, 0x1
- ble _0803FBBC
- cmp r4, 0x2
- beq _0803FBDE
- b _0803FA48
-_0803FB52:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD2
- cmp r4, 0x1
- ble _0803FA74
-_0803FB5E:
- cmp r4, 0x2
- beq _0803FBCC
-_0803FB62:
- cmp r4, 0x3
- bne _0803FBE0
- b _0803FBDE
-_0803FB68:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBCC
- cmp r4, 0x1
- bgt _0803FB76
- b _0803FA74
-_0803FB76:
- cmp r4, 0x2
- beq _0803FBD2
- b _0803FB62
-_0803FB7C:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD8
- cmp r4, 0x1
- ble _0803FA9A
- b _0803FB5E
-_0803FB8A:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD8
- cmp r4, 0x1
- ble _0803FBBC
- cmp r4, 0x2
- beq _0803FBD2
- b _0803FB62
-_0803FB9C:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBCC
- cmp r4, 0x1
- bgt _0803FBAA
- b _0803FA9A
-_0803FBAA:
- cmp r4, 0x2
- beq _0803FBD8
- b _0803FB62
-_0803FBB0:
- adds r0, r5, 0
- adds r0, 0x20
- cmp r4, 0x1
- beq _0803FBD2
- cmp r4, 0x1
- bgt _0803FBC2
-_0803FBBC:
- cmp r4, 0
- beq _0803FBCC
- b _0803FBE0
-_0803FBC2:
- cmp r4, 0x2
- beq _0803FBD8
- cmp r4, 0x3
- beq _0803FBDE
- b _0803FBE0
-_0803FBCC:
- adds r6, r5, 0
- adds r6, 0x44
- b _0803FBE0
-_0803FBD2:
- adds r6, r5, 0
- adds r6, 0x38
- b _0803FBE0
-_0803FBD8:
- adds r6, r5, 0
- adds r6, 0x2C
- b _0803FBE0
-_0803FBDE:
- adds r6, r0, 0
-_0803FBE0:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetSubstruct
-
- thumb_func_start GetMonData
-GetMonData: @ 803FBE8
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- adds r0, r3, 0
- subs r0, 0x37
- cmp r0, 0x21
- bls _0803FBF8
- b _0803FD36
-_0803FBF8:
- lsls r0, 2
- ldr r1, _0803FC04 @ =_0803FC08
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FC04: .4byte _0803FC08
- .align 2, 0
-_0803FC08:
- .4byte _0803FC90
- .4byte _0803FC94
- .4byte _0803FC9C
- .4byte _0803FCA4
- .4byte _0803FCAC
- .4byte _0803FCBE
- .4byte _0803FCD0
- .4byte _0803FCE2
- .4byte _0803FCF4
- .4byte _0803FD2E
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD36
- .4byte _0803FD06
- .4byte _0803FD0E
- .4byte _0803FD16
- .4byte _0803FD1E
- .4byte _0803FD26
-_0803FC90:
- ldr r0, [r4, 0x50]
- b _0803FD3E
-_0803FC94:
- adds r0, r4, 0
- adds r0, 0x54
- ldrb r0, [r0]
- b _0803FD3E
-_0803FC9C:
- adds r0, r4, 0
- adds r0, 0x56
- ldrh r0, [r0]
- b _0803FD3E
-_0803FCA4:
- adds r0, r4, 0
- adds r0, 0x58
- ldrh r0, [r0]
- b _0803FD3E
-_0803FCAC:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetDeoxysStat
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803FD3E
- b _0803FD06
-_0803FCBE:
- adds r0, r4, 0
- movs r1, 0x2
- bl GetDeoxysStat
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803FD3E
- b _0803FD0E
-_0803FCD0:
- adds r0, r4, 0
- movs r1, 0x3
- bl GetDeoxysStat
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803FD3E
- b _0803FD16
-_0803FCE2:
- adds r0, r4, 0
- movs r1, 0x4
- bl GetDeoxysStat
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803FD3E
- b _0803FD1E
-_0803FCF4:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetDeoxysStat
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803FD3E
- b _0803FD26
-_0803FD06:
- adds r0, r4, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- b _0803FD3E
-_0803FD0E:
- adds r0, r4, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- b _0803FD3E
-_0803FD16:
- adds r0, r4, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- b _0803FD3E
-_0803FD1E:
- adds r0, r4, 0
- adds r0, 0x60
- ldrh r0, [r0]
- b _0803FD3E
-_0803FD26:
- adds r0, r4, 0
- adds r0, 0x62
- ldrh r0, [r0]
- b _0803FD3E
-_0803FD2E:
- adds r0, r4, 0
- adds r0, 0x55
- ldrb r0, [r0]
- b _0803FD3E
-_0803FD36:
- adds r0, r4, 0
- adds r1, r3, 0
- bl GetBoxMonData
-_0803FD3E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonData
-
- thumb_func_start GetBoxMonData
-GetBoxMonData: @ 803FD44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- str r1, [sp]
- adds r6, r2, 0
- movs r4, 0
- mov r9, r4
- mov r10, r4
- movs r7, 0
- movs r5, 0
- cmp r1, 0xA
- ble _0803FDC2
- ldr r1, [r0]
- movs r2, 0
- bl GetSubstruct
- mov r9, r0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x1
- bl GetSubstruct
- mov r10, r0
- mov r2, r8
- ldr r1, [r2]
- mov r0, r8
- movs r2, 0x2
- bl GetSubstruct
- adds r7, r0, 0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x3
- bl GetSubstruct
- adds r5, r0, 0
- mov r0, r8
- bl DecryptBoxMon
- mov r0, r8
- bl CalculateBoxMonChecksum
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- ldrh r1, [r1, 0x1C]
- cmp r0, r1
- beq _0803FDC2
- mov r2, r8
- ldrb r0, [r2, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
-_0803FDC2:
- ldr r0, [sp]
- cmp r0, 0x53
- bls _0803FDCA
- b _0804035C
-_0803FDCA:
- lsls r0, 2
- ldr r1, _0803FDD4 @ =_0803FDD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FDD4: .4byte _0803FDD8
- .align 2, 0
-_0803FDD8:
- .4byte _0803FF28
- .4byte _0803FF2E
- .4byte _0803FF34
- .4byte _0803FFE8
- .4byte _0803FFEE
- .4byte _0803FFF4
- .4byte _0803FFFA
- .4byte _08040000
- .4byte _0804001C
- .4byte _08040022
- .4byte _08040028
- .4byte _0804002E
- .4byte _08040046
- .4byte _0804005E
- .4byte _0804005E
- .4byte _0804005E
- .4byte _0804005E
- .4byte _0804006A
- .4byte _0804006A
- .4byte _0804006A
- .4byte _0804006A
- .4byte _08040052
- .4byte _0804008C
- .4byte _08040090
- .4byte _08040094
- .4byte _0804004C
- .4byte _08040074
- .4byte _08040078
- .4byte _0804007C
- .4byte _08040080
- .4byte _08040084
- .4byte _08040088
- .4byte _08040058
- .4byte _08040098
- .4byte _080400A4
- .4byte _080400A8
- .4byte _080400AC
- .4byte _080400B4
- .4byte _080400BC
- .4byte _080400C6
- .4byte _080400CE
- .4byte _080400D6
- .4byte _080400DE
- .4byte _080400E6
- .4byte _080400EE
- .4byte _080400F6
- .4byte _080400FA
- .4byte _0804009C
- .4byte _080400A0
- .4byte _080400C0
- .4byte _08040100
- .4byte _08040108
- .4byte _08040110
- .4byte _08040118
- .4byte _08040120
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _0804035C
- .4byte _08040186
- .4byte _080401AC
- .4byte _08040128
- .4byte _0804012E
- .4byte _08040132
- .4byte _08040136
- .4byte _0804013A
- .4byte _08040142
- .4byte _0804014A
- .4byte _08040152
- .4byte _0804015A
- .4byte _08040160
- .4byte _08040168
- .4byte _08040170
- .4byte _08040178
- .4byte _08040180
- .4byte _080401E6
- .4byte _08040240
- .4byte _080402C2
-_0803FF28:
- mov r1, r8
- ldr r4, [r1]
- b _0804035C
-_0803FF2E:
- mov r2, r8
- ldr r4, [r2, 0x4]
- b _0804035C
-_0803FF34:
- mov r0, r8
- ldrb r1, [r0, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803FF6C
- movs r4, 0
- ldr r0, _0803FF68 @ =gUnknown_83FE868
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08040014
- adds r3, r2, 0
-_0803FF4E:
- adds r0, r6, r4
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x9
- bhi _08040014
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0803FF4E
- b _08040014
- .align 2, 0
-_0803FF68: .4byte gUnknown_83FE868
-_0803FF6C:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803FF8C
- ldr r1, _0803FF88 @ =gUnknown_8415A62
- adds r0, r6, 0
- bl StringCopy
- adds r0, r6, 0
- bl StringLength
- lsls r0, 16
- lsrs r4, r0, 16
- b _0804035C
- .align 2, 0
-_0803FF88: .4byte gUnknown_8415A62
-_0803FF8C:
- mov r1, r8
- ldrb r0, [r1, 0x12]
- cmp r0, 0x1
- bne _0803FFD2
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x15
- strb r0, [r6, 0x1]
- movs r4, 0x2
- movs r3, 0
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _0803FFC0
- mov r2, r8
- adds r2, 0x8
-_0803FFAA:
- adds r1, r6, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x5
- bgt _0803FFC0
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0803FFAA
-_0803FFC0:
- adds r1, r6, r4
- movs r0, 0xFC
- strb r0, [r1]
- adds r4, 0x1
- adds r1, r6, r4
- movs r0, 0x16
- strb r0, [r1]
- adds r4, 0x1
- b _08040014
-_0803FFD2:
- movs r4, 0
- mov r2, r8
- adds r2, 0x8
-_0803FFD8:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x9
- bls _0803FFD8
- b _08040014
-_0803FFE8:
- mov r2, r8
- ldrb r4, [r2, 0x12]
- b _0804035C
-_0803FFEE:
- mov r6, r8
- ldrb r0, [r6, 0x13]
- b _08040162
-_0803FFF4:
- mov r1, r8
- ldrb r0, [r1, 0x13]
- b _0804016A
-_0803FFFA:
- mov r2, r8
- ldrb r0, [r2, 0x13]
- b _08040172
-_08040000:
- movs r4, 0
- mov r2, r8
- adds r2, 0x14
-_08040006:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- bls _08040006
-_08040014:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
- b _0804035C
-_0804001C:
- mov r6, r8
- ldrb r4, [r6, 0x1B]
- b _0804035C
-_08040022:
- mov r0, r8
- ldrh r4, [r0, 0x1C]
- b _0804035C
-_08040028:
- mov r1, r8
- ldrh r4, [r1, 0x1E]
- b _0804035C
-_0804002E:
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- movs r4, 0xCE
- lsls r4, 1
- cmp r0, 0
- beq _08040040
- b _0804035C
-_08040040:
- mov r6, r9
- ldrh r4, [r6]
- b _0804035C
-_08040046:
- mov r0, r9
- ldrh r4, [r0, 0x2]
- b _0804035C
-_0804004C:
- mov r1, r9
- ldr r4, [r1, 0x4]
- b _0804035C
-_08040052:
- mov r2, r9
- ldrb r4, [r2, 0x8]
- b _0804035C
-_08040058:
- mov r6, r9
- ldrb r4, [r6, 0x9]
- b _0804035C
-_0804005E:
- ldr r0, [sp]
- subs r0, 0xD
- lsls r0, 1
- add r0, r10
- ldrh r4, [r0]
- b _0804035C
-_0804006A:
- ldr r0, [sp]
- add r0, r10
- subs r0, 0x9
- ldrb r4, [r0]
- b _0804035C
-_08040074:
- ldrb r4, [r7]
- b _0804035C
-_08040078:
- ldrb r4, [r7, 0x1]
- b _0804035C
-_0804007C:
- ldrb r4, [r7, 0x2]
- b _0804035C
-_08040080:
- ldrb r4, [r7, 0x3]
- b _0804035C
-_08040084:
- ldrb r4, [r7, 0x4]
- b _0804035C
-_08040088:
- ldrb r4, [r7, 0x5]
- b _0804035C
-_0804008C:
- ldrb r4, [r7, 0x6]
- b _0804035C
-_08040090:
- ldrb r4, [r7, 0x7]
- b _0804035C
-_08040094:
- ldrb r4, [r7, 0x8]
- b _0804035C
-_08040098:
- ldrb r4, [r7, 0x9]
- b _0804035C
-_0804009C:
- ldrb r4, [r7, 0xA]
- b _0804035C
-_080400A0:
- ldrb r4, [r7, 0xB]
- b _0804035C
-_080400A4:
- ldrb r4, [r5]
- b _0804035C
-_080400A8:
- ldrb r4, [r5, 0x1]
- b _0804035C
-_080400AC:
- ldrb r0, [r5, 0x2]
- lsls r0, 25
- lsrs r4, r0, 25
- b _0804035C
-_080400B4:
- ldrh r0, [r5, 0x2]
- lsls r0, 21
- lsrs r4, r0, 28
- b _0804035C
-_080400BC:
- ldrb r0, [r5, 0x3]
- b _0804017A
-_080400C0:
- ldrb r0, [r5, 0x3]
- lsrs r4, r0, 7
- b _0804035C
-_080400C6:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- b _0804035C
-_080400CE:
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r4, r0, 27
- b _0804035C
-_080400D6:
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r4, r0, 27
- b _0804035C
-_080400DE:
- ldr r0, [r5, 0x4]
- lsls r0, 12
- lsrs r4, r0, 27
- b _0804035C
-_080400E6:
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r4, r0, 27
- b _0804035C
-_080400EE:
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r4, r0, 27
- b _0804035C
-_080400F6:
- ldrb r0, [r5, 0x7]
- b _08040154
-_080400FA:
- ldrb r0, [r5, 0x7]
- lsrs r4, r0, 7
- b _0804035C
-_08040100:
- ldrb r0, [r5, 0x8]
- lsls r0, 29
- lsrs r4, r0, 29
- b _0804035C
-_08040108:
- ldrb r0, [r5, 0x8]
- lsls r0, 26
- lsrs r4, r0, 29
- b _0804035C
-_08040110:
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r4, r0, 29
- b _0804035C
-_08040118:
- ldrb r0, [r5, 0x9]
- lsls r0, 28
- lsrs r4, r0, 29
- b _0804035C
-_08040120:
- ldrb r0, [r5, 0x9]
- lsls r0, 25
- lsrs r4, r0, 29
- b _0804035C
-_08040128:
- ldrb r0, [r5, 0x9]
- lsrs r4, r0, 7
- b _0804035C
-_0804012E:
- ldrb r0, [r5, 0xA]
- b _08040162
-_08040132:
- ldrb r0, [r5, 0xA]
- b _0804016A
-_08040136:
- ldrb r0, [r5, 0xA]
- b _08040172
-_0804013A:
- ldrb r0, [r5, 0xA]
- lsls r0, 28
- lsrs r4, r0, 31
- b _0804035C
-_08040142:
- ldrb r0, [r5, 0xA]
- lsls r0, 27
- lsrs r4, r0, 31
- b _0804035C
-_0804014A:
- ldrb r0, [r5, 0xA]
- lsls r0, 26
- lsrs r4, r0, 31
- b _0804035C
-_08040152:
- ldrb r0, [r5, 0xA]
-_08040154:
- lsls r0, 25
- lsrs r4, r0, 31
- b _0804035C
-_0804015A:
- ldrb r0, [r5, 0xA]
- lsrs r4, r0, 7
- b _0804035C
-_08040160:
- ldrb r0, [r5, 0xB]
-_08040162:
- lsls r0, 31
- lsrs r4, r0, 31
- b _0804035C
-_08040168:
- ldrb r0, [r5, 0xB]
-_0804016A:
- lsls r0, 30
- lsrs r4, r0, 31
- b _0804035C
-_08040170:
- ldrb r0, [r5, 0xB]
-_08040172:
- lsls r0, 29
- lsrs r4, r0, 31
- b _0804035C
-_08040178:
- ldrb r0, [r5, 0xB]
-_0804017A:
- lsls r0, 25
- lsrs r4, r0, 28
- b _0804035C
-_08040180:
- ldrb r0, [r5, 0xB]
- lsrs r4, r0, 7
- b _0804035C
-_08040186:
- mov r0, r9
- ldrh r4, [r0]
- cmp r4, 0
- bne _08040190
- b _0804035C
-_08040190:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _080401A6
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080401A6
- b _0804035C
-_080401A6:
- movs r4, 0xCE
- lsls r4, 1
- b _0804035C
-_080401AC:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- ldrh r1, [r5, 0x4]
- movs r0, 0xF8
- lsls r0, 2
- ands r0, r1
- orrs r4, r0
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r0, 27
- lsls r0, 10
- orrs r4, r0
- ldr r0, [r5, 0x4]
- movs r1, 0xF8
- lsls r1, 12
- ands r0, r1
- orrs r4, r0
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r0, 27
- lsls r0, 20
- orrs r4, r0
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r0, 27
- lsls r0, 25
- orrs r4, r0
- b _0804035C
-_080401E6:
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _080401F0
- b _0804035C
-_080401F0:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _080401FA
- b _0804035C
-_080401FA:
- ldrh r0, [r6]
- ldr r1, _08040238 @ =0x00000163
- cmp r0, r1
- bne _08040204
- b _0804035C
-_08040204:
- mov r2, r10
- ldrh r5, [r2]
- adds r7, r1, 0
- adds r2, r6, 0
- ldr r1, _0804023C @ =gBitTable
-_0804020E:
- ldrh r3, [r2]
- cmp r5, r3
- beq _08040228
- mov r6, r10
- ldrh r0, [r6, 0x2]
- cmp r0, r3
- beq _08040228
- ldrh r0, [r6, 0x4]
- cmp r0, r3
- beq _08040228
- ldrh r0, [r6, 0x6]
- cmp r0, r3
- bne _0804022C
-_08040228:
- ldr r0, [r1]
- orrs r4, r0
-_0804022C:
- adds r2, 0x2
- adds r1, 0x4
- ldrh r0, [r2]
- cmp r0, r7
- bne _0804020E
- b _0804035C
- .align 2, 0
-_08040238: .4byte 0x00000163
-_0804023C: .4byte gBitTable
-_08040240:
- movs r4, 0
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _0804024C
- b _0804035C
-_0804024C:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _08040256
- b _0804035C
-_08040256:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 29
- lsrs r4, r1, 29
- lsls r0, 26
- lsrs r0, 29
- adds r4, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- adds r4, r0
- ldrb r1, [r5, 0x9]
- lsls r0, r1, 28
- lsrs r0, 29
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 29
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r1, 29
- lsrs r1, 31
- adds r4, r1
- b _0804035C
-_080402C2:
- movs r4, 0
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, 0
- beq _0804035C
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _0804035C
- ldrb r2, [r5, 0x9]
- lsrs r4, r2, 7
- ldrb r1, [r5, 0x8]
- lsls r0, r1, 29
- lsrs r0, 28
- orrs r4, r0
- lsls r1, 26
- lsrs r1, 29
- lsls r1, 4
- orrs r4, r1
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- lsls r0, 7
- orrs r4, r0
- lsls r0, r2, 28
- lsrs r0, 29
- lsls r0, 10
- orrs r4, r0
- lsls r2, 25
- lsrs r2, 29
- lsls r2, 13
- orrs r4, r2
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 16
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 17
- orrs r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- lsls r0, 18
- orrs r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- lsls r0, 19
- orrs r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- lsls r0, 20
- orrs r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- lsls r0, 21
- orrs r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- lsls r0, 22
- orrs r4, r0
- lsrs r1, 7
- lsls r1, 23
- orrs r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 24
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 25
- orrs r4, r0
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 26
- orrs r4, r1
-_0804035C:
- ldr r6, [sp]
- cmp r6, 0xA
- ble _08040368
- mov r0, r8
- bl EncryptBoxMon
-_08040368:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetBoxMonData
-
- thumb_func_start sub_804037C
-sub_804037C: @ 804037C
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- subs r0, 0x37
- cmp r0, 0x21
- bls _0804038C
- b _080404C0
-_0804038C:
- lsls r0, 2
- ldr r1, _08040398 @ =_0804039C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08040398: .4byte _0804039C
- .align 2, 0
-_0804039C:
- .4byte _08040424
- .4byte _0804043C
- .4byte _08040446
- .4byte _08040456
- .4byte _08040466
- .4byte _08040476
- .4byte _08040486
- .4byte _08040496
- .4byte _080404A6
- .4byte _080404B6
- .4byte _080404C8
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _080404C0
- .4byte _08040466
- .4byte _08040476
- .4byte _08040486
- .4byte _08040496
- .4byte _080404A6
-_08040424:
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3, 0x50]
- b _080404C8
-_0804043C:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x54
- strb r1, [r0]
- b _080404C8
-_08040446:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x56
- strh r0, [r1]
- b _080404C8
-_08040456:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x58
- strh r0, [r1]
- b _080404C8
-_08040466:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5A
- strh r0, [r1]
- b _080404C8
-_08040476:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5C
- strh r0, [r1]
- b _080404C8
-_08040486:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- b _080404C8
-_08040496:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x60
- strh r0, [r1]
- b _080404C8
-_080404A6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x62
- strh r0, [r1]
- b _080404C8
-_080404B6:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x55
- strb r1, [r0]
- b _080404C8
-_080404C0:
- adds r0, r3, 0
- adds r1, r4, 0
- bl sub_80404D0
-_080404C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804037C
-
- thumb_func_start sub_80404D0
-sub_80404D0: @ 80404D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- cmp r1, 0xA
- ble _08040550
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0
- bl GetSubstruct
- mov r8, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x1
- bl GetSubstruct
- mov r9, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x2
- bl GetSubstruct
- adds r6, r0, 0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x3
- bl GetSubstruct
- adds r5, r0, 0
- adds r0, r7, 0
- bl DecryptBoxMon
- adds r0, r7, 0
- bl CalculateBoxMonChecksum
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r7, 0x1C]
- cmp r0, r1
- beq _08040550
- ldrb r0, [r7, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r7, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
- adds r0, r7, 0
- bl EncryptBoxMon
- b _08040AEE
-_08040550:
- mov r0, r10
- cmp r0, 0x50
- bls _08040558
- b _08040ADA
-_08040558:
- lsls r0, 2
- ldr r1, _08040564 @ =_08040568
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08040564: .4byte _08040568
- .align 2, 0
-_08040568:
- .4byte _080406AC
- .4byte _080406C4
- .4byte _080406DC
- .4byte _080406F2
- .4byte _080406F8
- .4byte _08040708
- .4byte _0804071A
- .4byte _0804072C
- .4byte _08040742
- .4byte _08040748
- .4byte _08040754
- .4byte _08040760
- .4byte _08040780
- .4byte _080407B8
- .4byte _080407B8
- .4byte _080407B8
- .4byte _080407B8
- .4byte _080407CC
- .4byte _080407CC
- .4byte _080407CC
- .4byte _080407CC
- .4byte _080407A8
- .4byte _080407FC
- .4byte _08040802
- .4byte _08040808
- .4byte _0804078E
- .4byte _080407D8
- .4byte _080407DE
- .4byte _080407E4
- .4byte _080407EA
- .4byte _080407F0
- .4byte _080407F6
- .4byte _080407B0
- .4byte _0804080E
- .4byte _08040820
- .4byte _08040826
- .4byte _0804082C
- .4byte _08040840
- .4byte _08040858
- .4byte _0804087E
- .4byte _08040892
- .4byte _080408AC
- .4byte _080408C2
- .4byte _080408DC
- .4byte _080408F4
- .4byte _08040908
- .4byte _08040938
- .4byte _08040814
- .4byte _0804081A
- .4byte _0804086E
- .4byte _08040948
- .4byte _08040956
- .4byte _0804096C
- .4byte _08040984
- .4byte _08040994
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040ADA
- .4byte _08040A92
- .4byte _080409AA
- .4byte _080409BA
- .4byte _080409C8
- .4byte _080409D8
- .4byte _080409E8
- .4byte _080409F8
- .4byte _08040A08
- .4byte _08040A18
- .4byte _08040A2E
- .4byte _08040A3E
- .4byte _08040A4C
- .4byte _08040A5C
- .4byte _08040A6C
- .4byte _08040A82
-_080406AC:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08040ADA
-_080406C4:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7, 0x4]
- b _08040ADA
-_080406DC:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x8
-_080406E2:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080406E2
- b _08040ADA
-_080406F2:
- ldrb r0, [r4]
- strb r0, [r7, 0x12]
- b _08040ADA
-_080406F8:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r7, 0x13]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- b _08040926
-_08040708:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- b _08040926
-_0804071A:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _08040926
-_0804072C:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x14
-_08040732:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08040732
- b _08040ADA
-_08040742:
- ldrb r0, [r4]
- strb r0, [r7, 0x1B]
- b _08040ADA
-_08040748:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1C]
- b _08040ADA
-_08040754:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1E]
- b _08040ADA
-_08040760:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0]
- lsls r1, 16
- cmp r1, 0
- beq _08040778
- ldrb r0, [r7, 0x13]
- movs r1, 0x2
- b _08040926
-_08040778:
- ldrb r1, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- b _08040932
-_08040780:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x2]
- b _08040ADA
-_0804078E:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- mov r0, r8
- str r1, [r0, 0x4]
- b _08040ADA
-_080407A8:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x8]
- b _08040ADA
-_080407B0:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x9]
- b _08040ADA
-_080407B8:
- mov r2, r10
- subs r2, 0xD
- lsls r2, 1
- add r2, r9
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r2]
- b _08040ADA
-_080407CC:
- mov r0, r9
- add r0, r10
- subs r0, 0x9
- ldrb r1, [r4]
- strb r1, [r0]
- b _08040ADA
-_080407D8:
- ldrb r0, [r4]
- strb r0, [r6]
- b _08040ADA
-_080407DE:
- ldrb r0, [r4]
- strb r0, [r6, 0x1]
- b _08040ADA
-_080407E4:
- ldrb r0, [r4]
- strb r0, [r6, 0x2]
- b _08040ADA
-_080407EA:
- ldrb r0, [r4]
- strb r0, [r6, 0x3]
- b _08040ADA
-_080407F0:
- ldrb r0, [r4]
- strb r0, [r6, 0x4]
- b _08040ADA
-_080407F6:
- ldrb r0, [r4]
- strb r0, [r6, 0x5]
- b _08040ADA
-_080407FC:
- ldrb r0, [r4]
- strb r0, [r6, 0x6]
- b _08040ADA
-_08040802:
- ldrb r0, [r4]
- strb r0, [r6, 0x7]
- b _08040ADA
-_08040808:
- ldrb r0, [r4]
- strb r0, [r6, 0x8]
- b _08040ADA
-_0804080E:
- ldrb r0, [r4]
- strb r0, [r6, 0x9]
- b _08040ADA
-_08040814:
- ldrb r0, [r4]
- strb r0, [r6, 0xA]
- b _08040ADA
-_0804081A:
- ldrb r0, [r4]
- strb r0, [r6, 0xB]
- b _08040ADA
-_08040820:
- ldrb r0, [r4]
- strb r0, [r5]
- b _08040ADA
-_08040826:
- ldrb r0, [r4]
- strb r0, [r5, 0x1]
- b _08040ADA
-_0804082C:
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r1, r0
- ldrb r2, [r5, 0x2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x2]
- b _08040ADA
-_08040840:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5, 0x2]
- ldr r0, _08040854 @ =0xfffff87f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x2]
- b _08040ADA
- .align 2, 0
-_08040854: .4byte 0xfffff87f
-_08040858:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x3]
- movs r0, 0x79
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _08040ADA
-_0804086E:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x3]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- b _08040ADA
-_0804087E:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- ldrb r2, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x4]
- b _08040ADA
-_08040892:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _080408A8 @ =0xfffffc1f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- b _08040ADA
- .align 2, 0
-_080408A8: .4byte 0xfffffc1f
-_080408AC:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _08040ADA
-_080408C2:
- ldrb r2, [r4]
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 15
- ldr r0, [r5, 0x4]
- ldr r1, _080408D8 @ =0xfff07fff
- ands r0, r1
- orrs r0, r2
- str r0, [r5, 0x4]
- b _08040ADA
- .align 2, 0
-_080408D8: .4byte 0xfff07fff
-_080408DC:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 4
- ldrh r2, [r5, 0x6]
- ldr r0, _080408F0 @ =0xfffffe0f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x6]
- b _08040ADA
- .align 2, 0
-_080408F0: .4byte 0xfffffe0f
-_080408F4:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _08040AD8
-_08040908:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0x7]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0804092C
- ldrb r0, [r7, 0x13]
- movs r1, 0x4
-_08040926:
- orrs r0, r1
- strb r0, [r7, 0x13]
- b _08040ADA
-_0804092C:
- ldrb r1, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
-_08040932:
- ands r0, r1
- strb r0, [r7, 0x13]
- b _08040ADA
-_08040938:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x7]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x7]
- b _08040ADA
-_08040948:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- ldrb r2, [r5, 0x8]
- movs r0, 0x8
- negs r0, r0
- b _08040964
-_08040956:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x8]
- movs r0, 0x39
- negs r0, r0
-_08040964:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x8]
- b _08040ADA
-_0804096C:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 6
- ldrh r2, [r5, 0x8]
- ldr r0, _08040980 @ =0xfffffe3f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x8]
- b _08040ADA
- .align 2, 0
-_08040980: .4byte 0xfffffe3f
-_08040984:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x9]
- movs r0, 0xF
- negs r0, r0
- b _080409A2
-_08040994:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0x9]
- movs r0, 0x71
- negs r0, r0
-_080409A2:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x9]
- b _08040ADA
-_080409AA:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x9]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- b _08040ADA
-_080409BA:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xA]
- movs r0, 0x2
- negs r0, r0
- b _08040A26
-_080409C8:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xA]
- movs r0, 0x3
- negs r0, r0
- b _08040A26
-_080409D8:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xA]
- movs r0, 0x5
- negs r0, r0
- b _08040A26
-_080409E8:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0xA]
- movs r0, 0x9
- negs r0, r0
- b _08040A26
-_080409F8:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0xA]
- movs r0, 0x11
- negs r0, r0
- b _08040A26
-_08040A08:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r5, 0xA]
- movs r0, 0x21
- negs r0, r0
- b _08040A26
-_08040A18:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0xA]
- movs r0, 0x41
- negs r0, r0
-_08040A26:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xA]
- b _08040ADA
-_08040A2E:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0xA]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xA]
- b _08040ADA
-_08040A3E:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xB]
- movs r0, 0x2
- negs r0, r0
- b _08040A7A
-_08040A4C:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xB]
- movs r0, 0x3
- negs r0, r0
- b _08040A7A
-_08040A5C:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xB]
- movs r0, 0x5
- negs r0, r0
- b _08040A7A
-_08040A6C:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0xB]
- movs r0, 0x79
- negs r0, r0
-_08040A7A:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xB]
- b _08040ADA
-_08040A82:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0xB]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xB]
- b _08040ADA
-_08040A92:
- ldrb r1, [r4]
- movs r4, 0x1F
- adds r2, r1, 0
- ands r2, r4
- ldrb r3, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x4]
- lsrs r1, 5
- ands r1, r4
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _08040AFC @ =0xfffffc1f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldrb r1, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x5]
- ldr r0, [r5, 0x4]
- ldr r1, _08040B00 @ =0xfff07fff
- ands r0, r1
- str r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- ldr r0, _08040B04 @ =0xfffffe0f
- ands r0, r1
- strh r0, [r5, 0x6]
- ldrb r1, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
-_08040AD8:
- strb r0, [r5, 0x7]
-_08040ADA:
- mov r0, r10
- cmp r0, 0xA
- ble _08040AEE
- adds r0, r7, 0
- bl CalculateBoxMonChecksum
- strh r0, [r7, 0x1C]
- adds r0, r7, 0
- bl EncryptBoxMon
-_08040AEE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08040AFC: .4byte 0xfffffc1f
-_08040B00: .4byte 0xfff07fff
-_08040B04: .4byte 0xfffffe0f
- thumb_func_end sub_80404D0
-
- thumb_func_start CopyMon
-CopyMon: @ 8040B08
- push {lr}
- bl memcpy
- pop {r0}
- bx r0
- thumb_func_end CopyMon
-
- thumb_func_start GiveMonToPlayer
-GiveMonToPlayer: @ 8040B14
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _08040B40 @ =gSaveBlock2Ptr
- ldr r2, [r4]
- movs r1, 0x7
- bl sub_804037C
- ldr r2, [r4]
- adds r2, 0x8
- adds r0, r6, 0
- movs r1, 0x31
- bl sub_804037C
- ldr r2, [r4]
- adds r2, 0xA
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_804037C
- movs r5, 0
- b _08040B46
- .align 2, 0
-_08040B40: .4byte gSaveBlock2Ptr
-_08040B44:
- adds r5, 0x1
-_08040B46:
- cmp r5, 0x5
- bgt _08040B80
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040B78 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08040B44
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x64
- bl CopyMon
- ldr r1, _08040B7C @ =gUnknown_2024029
- adds r0, r5, 0x1
- strb r0, [r1]
- movs r0, 0
- b _08040B8A
- .align 2, 0
-_08040B78: .4byte gPlayerParty
-_08040B7C: .4byte gUnknown_2024029
-_08040B80:
- adds r0, r6, 0
- bl SendMonToPC
- lsls r0, 24
- lsrs r0, 24
-_08040B8A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GiveMonToPlayer
-
- thumb_func_start SendMonToPC
-SendMonToPC: @ 8040B90
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, _08040C04 @ =0x00004037
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl set_unknown_box_id
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r5, r0, 24
-_08040BAE:
- movs r6, 0
- lsls r7, r5, 24
-_08040BB2:
- lsls r1, r6, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl GetBoxedMonPtr
- adds r4, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _08040C14
- mov r0, r8
- bl MonRestorePP
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0x50
- bl CopyMon
- ldr r0, _08040C08 @ =gUnknown_20370D6
- strh r5, [r0]
- ldr r0, _08040C0C @ =gUnknown_20370D8
- strh r6, [r0]
- bl get_unknown_box_id
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- beq _08040BF4
- ldr r0, _08040C10 @ =0x00000843
- bl FlagClear
-_08040BF4:
- lsls r1, r5, 16
- ldr r0, _08040C04 @ =0x00004037
- lsrs r1, 16
- bl VarSet
- movs r0, 0x1
- b _08040C30
- .align 2, 0
-_08040C04: .4byte 0x00004037
-_08040C08: .4byte gUnknown_20370D6
-_08040C0C: .4byte gUnknown_20370D8
-_08040C10: .4byte 0x00000843
-_08040C14:
- adds r6, 0x1
- cmp r6, 0x1D
- ble _08040BB2
- adds r5, 0x1
- cmp r5, 0xE
- bne _08040C22
- movs r5, 0
-_08040C22:
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08040BAE
- movs r0, 0x2
-_08040C30:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SendMonToPC
-
- thumb_func_start CalculatePlayerPartyCount
-CalculatePlayerPartyCount: @ 8040C3C
- push {r4,lr}
- ldr r0, _08040C48 @ =gUnknown_2024029
- movs r1, 0
- strb r1, [r0]
- b _08040C54
- .align 2, 0
-_08040C48: .4byte gUnknown_2024029
-_08040C4C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_08040C54:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _08040C72
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08040C7C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08040C4C
-_08040C72:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040C7C: .4byte gPlayerParty
- thumb_func_end CalculatePlayerPartyCount
-
- thumb_func_start CalculateEnemyPartyCount
-CalculateEnemyPartyCount: @ 8040C80
- push {r4,lr}
- ldr r0, _08040C8C @ =gUnknown_202402A
- movs r1, 0
- strb r1, [r0]
- b _08040C98
- .align 2, 0
-_08040C8C: .4byte gUnknown_202402A
-_08040C90:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_08040C98:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _08040CB6
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08040CC0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08040C90
-_08040CB6:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040CC0: .4byte gEnemyParty
- thumb_func_end CalculateEnemyPartyCount
-
- thumb_func_start GetMonsStateToDoubles
-GetMonsStateToDoubles: @ 8040CC4
- push {r4-r6,lr}
- movs r6, 0
- bl CalculatePlayerPartyCount
- ldr r1, _08040D30 @ =gUnknown_2024029
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _08040D28
- movs r5, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08040D20
-_08040CDC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040D34 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08040D16
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08040D16
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08040D16
- adds r6, 0x1
-_08040D16:
- adds r5, 0x1
- ldr r0, _08040D30 @ =gUnknown_2024029
- ldrb r0, [r0]
- cmp r5, r0
- blt _08040CDC
-_08040D20:
- movs r0, 0
- cmp r6, 0x1
- bgt _08040D28
- movs r0, 0x2
-_08040D28:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D30: .4byte gUnknown_2024029
-_08040D34: .4byte gPlayerParty
- thumb_func_end GetMonsStateToDoubles
-
- thumb_func_start GetAbilityBySpecies
-GetAbilityBySpecies: @ 8040D38
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- cmp r1, 0
- beq _08040D5C
- ldr r2, _08040D54 @ =gUnknown_2023D6A
- ldr r1, _08040D58 @ =gBaseStats
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x17]
- b _08040D6A
- .align 2, 0
-_08040D54: .4byte gUnknown_2023D6A
-_08040D58: .4byte gBaseStats
-_08040D5C:
- ldr r2, _08040D74 @ =gUnknown_2023D6A
- ldr r1, _08040D78 @ =gBaseStats
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
-_08040D6A:
- strb r0, [r2]
- ldrb r0, [r2]
- pop {r1}
- bx r1
- .align 2, 0
-_08040D74: .4byte gUnknown_2023D6A
-_08040D78: .4byte gBaseStats
- thumb_func_end GetAbilityBySpecies
-
- thumb_func_start GetMonAbility
-GetMonAbility: @ 8040D7C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetMonAbility
-
- thumb_func_start CreateSecretBaseEnemyParty
-CreateSecretBaseEnemyParty: @ 8040DB0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r5, r0, 0
- bl ZeroEnemyPartyMons
- ldr r4, _08040ED8 @ =gBattleResources
- ldr r0, [r4]
- ldr r0, [r0]
- adds r1, r5, 0
- movs r2, 0xA0
- bl memcpy
- movs r0, 0
- mov r9, r0
-_08040DD4:
- ldr r1, _08040ED8 @ =gBattleResources
- ldr r3, [r1]
- ldr r2, [r3]
- mov r4, r9
- lsls r7, r4, 1
- adds r0, r2, 0
- adds r0, 0x7C
- adds r1, r0, r7
- ldrh r0, [r1]
- adds r4, 0x1
- str r4, [sp, 0x10]
- cmp r0, 0
- beq _08040EAE
- movs r0, 0x64
- mov r6, r9
- muls r6, r0
- ldr r4, _08040EDC @ =gEnemyParty
- mov r8, r4
- adds r5, r6, r4
- ldrh r1, [r1]
- adds r0, r2, 0
- adds r0, 0x94
- add r0, r9
- ldrb r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- ldr r0, [r3]
- mov r3, r9
- lsls r4, r3, 2
- adds r0, 0x34
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0xF
- bl CreateMon
- ldr r1, _08040ED8 @ =gBattleResources
- ldr r0, [r1]
- adds r1, r7, 0
- adds r1, 0x88
- ldr r2, [r0]
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0xC
- bl sub_804037C
- movs r5, 0
- mov r10, r4
- mov r7, r9
- adds r7, 0x9A
- mov r4, r8
-_08040E44:
- adds r1, r5, 0
- adds r1, 0x1A
- ldr r2, _08040ED8 @ =gBattleResources
- ldr r0, [r2]
- ldr r2, [r0]
- adds r2, r7
- adds r0, r6, r4
- bl sub_804037C
- adds r5, 0x1
- cmp r5, 0x5
- ble _08040E44
- movs r5, 0
- movs r3, 0x64
- mov r0, r9
- muls r0, r3
- ldr r1, _08040EDC @ =gEnemyParty
- adds r7, r0, r1
- mov r4, r10
- lsls r0, r4, 1
- adds r6, r0, 0
- adds r6, 0x4C
- adds r4, r0, 0
-_08040E72:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r2, _08040ED8 @ =gBattleResources
- ldr r0, [r2]
- ldr r2, [r0]
- adds r2, r6
- adds r0, r7, 0
- bl sub_804037C
- adds r1, r5, 0
- adds r1, 0x11
- ldr r3, _08040ED8 @ =gBattleResources
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x4C
- adds r0, r4
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _08040EE0 @ =gUnknown_8250C08
- adds r2, r0
- adds r0, r7, 0
- bl sub_804037C
- adds r6, 0x2
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040E72
-_08040EAE:
- ldr r4, [sp, 0x10]
- mov r9, r4
- cmp r4, 0x5
- ble _08040DD4
- ldr r1, _08040EE4 @ =gBattleTypeFlags
- movs r0, 0x8
- str r0, [r1]
- ldr r1, _08040EE8 @ =gTrainerBattleOpponent_A
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08040ED8: .4byte gBattleResources
-_08040EDC: .4byte gEnemyParty
-_08040EE0: .4byte gUnknown_8250C08
-_08040EE4: .4byte gBattleTypeFlags
-_08040EE8: .4byte gTrainerBattleOpponent_A
- thumb_func_end CreateSecretBaseEnemyParty
-
- thumb_func_start GetSecretBaseTrainerPicIndex
-GetSecretBaseTrainerPicIndex: @ 8040EEC
- push {r4,r5,lr}
- ldr r5, _08040F20 @ =gUnknown_825DFE0
- ldr r0, _08040F24 @ =gBattleResources
- ldr r0, [r0]
- ldr r4, [r0]
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _08040F28 @ =gUnknown_82538A8
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08040F20: .4byte gUnknown_825DFE0
-_08040F24: .4byte gBattleResources
-_08040F28: .4byte gUnknown_82538A8
- thumb_func_end GetSecretBaseTrainerPicIndex
-
- thumb_func_start GetSecretBaseTrainerNameIndex
-GetSecretBaseTrainerNameIndex: @ 8040F2C
- push {r4,r5,lr}
- ldr r5, _08040F60 @ =gUnknown_825DFE0
- ldr r0, _08040F64 @ =gBattleResources
- ldr r0, [r0]
- ldr r4, [r0]
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _08040F68 @ =gUnknown_825393E
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08040F60: .4byte gUnknown_825DFE0
-_08040F64: .4byte gBattleResources
-_08040F68: .4byte gUnknown_825393E
- thumb_func_end GetSecretBaseTrainerNameIndex
-
- thumb_func_start IsPlayerPartyAndPokemonStorageFull
-IsPlayerPartyAndPokemonStorageFull: @ 8040F6C
- push {r4,lr}
- movs r4, 0
-_08040F70:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08040F88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08040F8C
- movs r0, 0
- b _08040F9A
- .align 2, 0
-_08040F88: .4byte gPlayerParty
-_08040F8C:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040F70
- bl IsPokemonStorageFull
- lsls r0, 24
- lsrs r0, 24
-_08040F9A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerPartyAndPokemonStorageFull
-
- thumb_func_start IsPokemonStorageFull
-IsPokemonStorageFull: @ 8040FA0
- push {r4-r6,lr}
- movs r6, 0
-_08040FA4:
- movs r4, 0
- lsls r5, r6, 24
-_08040FA8:
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r5, 24
- movs r2, 0xB
- bl GetBoxMonDataFromAnyBox
- cmp r0, 0
- bne _08040FBC
- movs r0, 0
- b _08040FCA
-_08040FBC:
- adds r4, 0x1
- cmp r4, 0x1D
- ble _08040FA8
- adds r6, 0x1
- cmp r6, 0xD
- ble _08040FA4
- movs r0, 0x1
-_08040FCA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsPokemonStorageFull
-
- thumb_func_start GetSpeciesName
-GetSpeciesName: @ 8040FD0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r1, 0
- movs r0, 0xCE
- lsls r0, 1
- mov r12, r0
- ldr r7, _08040FEC @ =gUnknown_8245EE0
- movs r0, 0xB
- muls r0, r5
- adds r3, r0, r7
- adds r2, r6, 0
- b _08040FF6
- .align 2, 0
-_08040FEC: .4byte gUnknown_8245EE0
-_08040FF0:
- adds r3, 0x1
- adds r2, 0x1
- adds r1, 0x1
-_08040FF6:
- adds r4, r6, r1
- cmp r1, 0x9
- bgt _08041010
- cmp r5, r12
- bls _08041006
- adds r0, r1, r7
- ldrb r0, [r0]
- b _08041008
-_08041006:
- ldrb r0, [r3]
-_08041008:
- strb r0, [r2]
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08040FF0
-_08041010:
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetSpeciesName
-
- thumb_func_start CalculatePPWithBonus
-CalculatePPWithBonus: @ 804101C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _0804105C @ =gBattleMoves
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrb r4, [r3, 0x4]
- ldr r0, _08041060 @ =gUnknown_825DEA1
- adds r0, r2, r0
- ldrb r3, [r0]
- ands r3, r1
- lsls r2, 1
- asrs r3, r2
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0804105C: .4byte gBattleMoves
-_08041060: .4byte gUnknown_825DEA1
- thumb_func_end CalculatePPWithBonus
-
- thumb_func_start RemoveMonPPBonus
-RemoveMonPPBonus: @ 8041064
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0804109C @ =gUnknown_825DEA5
- adds r4, r1
- ldrb r1, [r4]
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x15
- mov r2, sp
- bl sub_804037C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804109C: .4byte gUnknown_825DEA5
- thumb_func_end RemoveMonPPBonus
-
- thumb_func_start RemoveBattleMonPPBonus
-RemoveBattleMonPPBonus: @ 80410A0
- lsls r1, 24
- lsrs r1, 24
- adds r0, 0x3B
- ldr r2, _080410B4 @ =gUnknown_825DEA5
- adds r1, r2
- ldrb r2, [r0]
- ldrb r1, [r1]
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080410B4: .4byte gUnknown_825DEA5
- thumb_func_end RemoveBattleMonPPBonus
-
- thumb_func_start CopyPlayerPartyMonToBattleData
-CopyPlayerPartyMonToBattleData: @ 80410B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x64
- mov r5, r9
- muls r5, r0
- ldr r0, _080413A4 @ =gPlayerParty
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, _080413A8 @ =gBattleMons
- mov r8, r1
- movs r1, 0x58
- ldr r2, [sp, 0x14]
- adds r4, r2, 0
- muls r4, r1
- mov r3, r8
- adds r6, r4, r3
- strh r0, [r6]
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- strh r0, [r6, 0x2E]
- movs r6, 0
- mov r0, r8
- adds r0, 0x24
- adds r7, r4, r0
-_0804110A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0xC
- add r1, r8
- mov r10, r1
- adds r1, r4, r1
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- movs r2, 0
- bl GetMonData
- strb r0, [r7]
- adds r7, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0804110A
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _080413A4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- movs r2, 0xC
- negs r2, r2
- add r2, r10
- mov r9, r2
- movs r1, 0x58
- ldr r3, [sp, 0x14]
- adds r5, r3, 0
- muls r5, r1
- adds r7, r5, r2
- adds r1, r7, 0
- adds r1, 0x3B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r1, r7, 0
- adds r1, 0x2B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- mov r1, r10
- adds r1, 0x38
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- movs r2, 0
- bl GetMonData
- movs r6, 0x1F
- ands r0, r6
- ldrb r2, [r7, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0
- bl GetMonData
- movs r1, 0x1F
- mov r8, r1
- mov r2, r8
- ands r0, r2
- lsls r0, 5
- ldrh r2, [r7, 0x14]
- ldr r1, _080413AC @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- movs r2, 0
- bl GetMonData
- ands r0, r6
- lsls r0, 2
- ldrb r2, [r7, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- movs r2, 0
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [r7, 0x14]
- ldr r2, _080413B0 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- movs r2, 0
- bl GetMonData
- mov r3, r8
- ands r0, r3
- lsls r0, 4
- ldrh r2, [r7, 0x16]
- ldr r1, _080413B4 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- movs r2, 0
- bl GetMonData
- ands r0, r6
- lsls r0, 1
- ldrb r2, [r7, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r1, r10
- adds r1, 0x3C
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- mov r1, r10
- adds r1, 0x40
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl GetMonData
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r7, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetMonData
- lsls r0, 7
- ldrb r2, [r7, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- mov r1, r10
- adds r1, 0x48
- adds r1, r5, r1
- str r0, [r1]
- ldr r2, _080413B8 @ =gBaseStats
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, r7, 0
- adds r1, 0x21
- strb r0, [r1]
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, r7, 0
- adds r1, 0x22
- strb r0, [r1]
- ldrh r0, [r7]
- ldrb r1, [r7, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- adds r1, r7, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, r10
- adds r0, 0x24
- adds r0, r5, r0
- mov r1, sp
- bl StringCopy10
- mov r2, r10
- adds r2, 0x30
- adds r2, r5, r2
- adds r0, r4, 0
- movs r1, 0x7
- bl GetMonData
- ldr r0, [sp, 0x14]
- bl GetBankSide
- ldr r1, _080413BC @ =gBattleStruct
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0xA8
- ldr r1, [r1]
- adds r1, r0
- ldrh r0, [r7, 0x28]
- strh r0, [r1]
- movs r2, 0x6
- mov r1, r9
- movs r6, 0x7
- add r5, r10
- adds r0, r5, 0
- adds r0, 0x13
-_0804136E:
- strb r2, [r0]
- subs r0, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0804136E
- movs r2, 0
- movs r0, 0x58
- ldr r3, [sp, 0x14]
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- str r2, [r0]
- ldr r0, [sp, 0x14]
- bl sub_80174B8
- ldr r0, [sp, 0x14]
- movs r1, 0
- bl ClearTemporarySpeciesSpriteData
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080413A4: .4byte gPlayerParty
-_080413A8: .4byte gBattleMons
-_080413AC: .4byte 0xfffffc1f
-_080413B0: .4byte 0xfff07fff
-_080413B4: .4byte 0xfffffe0f
-_080413B8: .4byte gBaseStats
-_080413BC: .4byte gBattleStruct
- thumb_func_end CopyPlayerPartyMonToBattleData
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index b8fc0356d..29fd8ba66 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -5,63 +5,6 @@
.text
- thumb_func_start sub_80423A4
-sub_80423A4: @ 80423A4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _08042408
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl sub_804037C
- ldr r0, _080423FC @ =gMain
- ldr r1, _08042400 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080423F6
- cmp r6, 0x4
- beq _080423F6
- ldr r0, _08042404 @ =gBattleMons
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_080423F6:
- movs r0, 0
- b _0804240A
- .align 2, 0
-_080423FC: .4byte gMain
-_08042400: .4byte 0x00000439
-_08042404: .4byte gBattleMons
-_08042408:
- movs r0, 0x1
-_0804240A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A4
-
thumb_func_start sub_8042414
sub_8042414: @ 8042414
push {r4-r7,lr}
@@ -97,8 +40,8 @@ sub_8042414: @ 8042414
beq _08042458
bl ItemId_GetHoldEffect
_08042458:
- ldr r1, _080424B0 @ =gUnknown_2023D6F
- ldr r0, _080424B4 @ =gUnknown_2024004
+ ldr r1, _080424B0 @ =gPotentialItemEffectBattler
+ ldr r0, _080424B4 @ =gBattlerInMenuId
ldrb r2, [r0]
strb r2, [r1]
ldr r0, _080424B8 @ =gMain
@@ -114,14 +57,14 @@ _08042458:
ldr r0, _080424C0 @ =gActiveBattler
strb r2, [r0]
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
str r1, [sp, 0xC]
- ldr r0, _080424C4 @ =gUnknown_2023BCC
+ ldr r0, _080424C4 @ =gBattlersCount
ldr r4, [sp]
subs r4, 0xD
ldrb r0, [r0]
@@ -141,18 +84,18 @@ _08042458:
str r2, [sp, 0x1C]
b _08042504
.align 2, 0
-_080424B0: .4byte gUnknown_2023D6F
-_080424B4: .4byte gUnknown_2024004
+_080424B0: .4byte gPotentialItemEffectBattler
+_080424B4: .4byte gBattlerInMenuId
_080424B8: .4byte gMain
_080424BC: .4byte 0x00000439
_080424C0: .4byte gActiveBattler
-_080424C4: .4byte gUnknown_2023BCC
+_080424C4: .4byte gBattlersCount
_080424C8: .4byte gBattlerPartyIndexes
_080424CC:
ldr r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0xC]
- ldr r0, _080424F4 @ =gUnknown_2023BCC
+ ldr r0, _080424F4 @ =gBattlersCount
ldr r1, [sp, 0xC]
ldrb r0, [r0]
cmp r1, r0
@@ -169,7 +112,7 @@ _080424CC:
str r0, [sp, 0x1C]
b _08042504
.align 2, 0
-_080424F4: .4byte gUnknown_2023BCC
+_080424F4: .4byte gBattlersCount
_080424F8:
ldr r0, _08042520 @ =gActiveBattler
strb r1, [r0]
@@ -182,7 +125,7 @@ _08042504:
lsrs r0, 16
cmp r0, 0xA5
bhi _08042578
- ldr r1, _08042524 @ =gUnknown_82528BC
+ ldr r1, _08042524 @ =gItemEffectTable
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
@@ -194,7 +137,7 @@ _08042504:
b _08042578
.align 2, 0
_08042520: .4byte gActiveBattler
-_08042524: .4byte gUnknown_82528BC
+_08042524: .4byte gItemEffectTable
_08042528:
ldr r2, [sp]
cmp r2, 0xAF
@@ -213,14 +156,14 @@ _0804252E:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _0804255C @ =gUnknown_2023F5C
+ ldr r1, _0804255C @ =gEnigmaBerries+0x8
adds r0, r1
b _0804257C
.align 2, 0
_08042550: .4byte gMain
_08042554: .4byte 0x00000439
_08042558: .4byte gActiveBattler
-_0804255C: .4byte gUnknown_2023F5C
+_0804255C: .4byte gEnigmaBerries+0x8
_08042560:
ldr r0, _0804256C @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -451,10 +394,10 @@ _08042708:
adds r5, r2, 0
cmp r0, 0
beq _0804273A
- ldr r4, _08042838 @ =gUnknown_2023DE4
+ ldr r4, _08042838 @ =gSideTimers
ldr r0, _0804283C @ =gActiveBattler
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -599,7 +542,7 @@ _08042832:
str r0, [sp, 0x10]
b _08042BCA
.align 2, 0
-_08042838: .4byte gUnknown_2023DE4
+_08042838: .4byte gSideTimers
_0804283C: .4byte gActiveBattler
_08042840: .4byte 0x00000f88
_08042844: .4byte gMain
@@ -698,7 +641,7 @@ _08042904:
bls _08042914
b _08042578
_08042914:
- ldr r0, _08042930 @ =gUnknown_825DFEA
+ ldr r0, _08042930 @ =sGetMonDataEVConstants
add r0, r9
ldrb r1, [r0]
mov r0, r8
@@ -712,7 +655,7 @@ _0804292A:
b _08042A3A
.align 2, 0
_0804292C: .4byte 0x01fd0000
-_08042930: .4byte gUnknown_825DFEA
+_08042930: .4byte sGetMonDataEVConstants
_08042934:
movs r0, 0x10
ands r0, r7
@@ -854,7 +797,7 @@ _08042A4A:
mov r0, r8
movs r1, 0x2
ldr r2, [sp]
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
cmp r0, 0
beq _08042A5C
@@ -916,7 +859,7 @@ _08042ABC:
bls _08042ACC
b _08042578
_08042ACC:
- ldr r0, _08042AF0 @ =gUnknown_825DFEA
+ ldr r0, _08042AF0 @ =sGetMonDataEVConstants
mov r1, r9
adds r1, 0x2
adds r1, r0
@@ -932,7 +875,7 @@ _08042ACC:
b _08042BB4
.align 2, 0
_08042AEC: .4byte 0x01fd0000
-_08042AF0: .4byte gUnknown_825DFEA
+_08042AF0: .4byte sGetMonDataEVConstants
_08042AF4:
mov r0, r8
movs r1, 0x15
@@ -1089,7 +1032,7 @@ GetItemEffectParamOffset: @ 8042C08
lsls r2, 24
lsrs r5, r2, 24
movs r7, 0x6
- ldr r1, _08042C30 @ =gUnknown_82528BC
+ ldr r1, _08042C30 @ =gItemEffectTable
adds r0, r3, 0
subs r0, 0xD
lsls r0, 2
@@ -1103,7 +1046,7 @@ _08042C2C:
movs r0, 0
b _08042D48
.align 2, 0
-_08042C30: .4byte gUnknown_82528BC
+_08042C30: .4byte gItemEffectTable
_08042C34:
cmp r3, 0xAF
bne _08042C46
@@ -1113,7 +1056,7 @@ _08042C38:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _08042C5C @ =gUnknown_2023F5C
+ ldr r1, _08042C5C @ =gEnigmaBerries+0x8
adds r0, r1
_08042C46:
mov r12, r0
@@ -1128,7 +1071,7 @@ _08042C4A:
b _08042D3E
.align 2, 0
_08042C58: .4byte gActiveBattler
-_08042C5C: .4byte gUnknown_2023F5C
+_08042C5C: .4byte gEnigmaBerries+0x8
_08042C60:
cmp r2, 0
blt _08042D3E
@@ -1266,7 +1209,7 @@ _08042D48:
sub_8042D50: @ 8042D50
push {lr}
ldr r2, _08042D84 @ =gBattlerTarget
- ldr r1, _08042D88 @ =gUnknown_2024004
+ ldr r1, _08042D88 @ =gBattlerInMenuId
ldrb r1, [r1]
strb r1, [r2]
ldr r3, _08042D8C @ =gUnknown_2022AB8
@@ -1288,7 +1231,7 @@ sub_8042D50: @ 8042D50
bx r0
.align 2, 0
_08042D84: .4byte gBattlerTarget
-_08042D88: .4byte gUnknown_2024004
+_08042D88: .4byte gBattlerInMenuId
_08042D8C: .4byte gUnknown_2022AB8
_08042D90: .4byte gUnknown_83FD5D0
_08042D94: .4byte gUnknown_825DFF0
@@ -1314,19 +1257,19 @@ sub_8042DA4: @ 8042DA4
ands r0, r1
cmp r0, 0
beq _08042DE4
- ldr r2, _08042DDC @ =gUnknown_2024004
+ ldr r2, _08042DDC @ =gBattlerInMenuId
ldrb r1, [r2]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
- ldr r1, _08042DE0 @ =gUnknown_2023F5C
+ ldr r1, _08042DE0 @ =gEnigmaBerries+0x8
adds r7, r0, r1
b _08042E04
.align 2, 0
_08042DD4: .4byte gMain
_08042DD8: .4byte 0x00000439
-_08042DDC: .4byte gUnknown_2024004
-_08042DE0: .4byte gUnknown_2023F5C
+_08042DDC: .4byte gBattlerInMenuId
+_08042DE0: .4byte gEnigmaBerries+0x8
_08042DE4:
ldr r0, _08042DF0 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -1337,15 +1280,15 @@ _08042DE4:
_08042DF0: .4byte gSaveBlock1Ptr
_08042DF4: .4byte 0x00003108
_08042DF8:
- ldr r1, _08042E3C @ =gUnknown_82528BC
+ ldr r1, _08042E3C @ =gItemEffectTable
subs r0, 0xD
lsls r0, 2
adds r0, r1
ldr r7, [r0]
_08042E02:
- ldr r2, _08042E40 @ =gUnknown_2024004
+ ldr r2, _08042E40 @ =gBattlerInMenuId
_08042E04:
- ldr r1, _08042E44 @ =gUnknown_2023D6F
+ ldr r1, _08042E44 @ =gPotentialItemEffectBattler
ldrb r0, [r2]
strb r0, [r1]
movs r5, 0
@@ -1373,12 +1316,12 @@ _08042E24:
bl sub_8042D50
b _08042E5A
.align 2, 0
-_08042E3C: .4byte gUnknown_82528BC
-_08042E40: .4byte gUnknown_2024004
-_08042E44: .4byte gUnknown_2023D6F
+_08042E3C: .4byte gItemEffectTable
+_08042E40: .4byte gBattlerInMenuId
+_08042E44: .4byte gPotentialItemEffectBattler
_08042E48: .4byte sBattler_AI
_08042E4C:
- ldr r0, _08042E88 @ =gUnknown_2024004
+ ldr r0, _08042E88 @ =gBattlerInMenuId
ldrb r0, [r0]
mov r1, r8
strb r0, [r1]
@@ -1395,7 +1338,7 @@ _08042E5A:
cmp r0, 0
beq _08042E7A
ldr r1, _08042E90 @ =sBattler_AI
- ldr r0, _08042E88 @ =gUnknown_2024004
+ ldr r0, _08042E88 @ =gBattlerInMenuId
ldrb r0, [r0]
strb r0, [r1]
ldr r0, _08042E94 @ =gUnknown_83FBBB4
@@ -1408,7 +1351,7 @@ _08042E7A:
pop {r1}
bx r1
.align 2, 0
-_08042E88: .4byte gUnknown_2024004
+_08042E88: .4byte gBattlerInMenuId
_08042E8C: .4byte gUnknown_83FBBE9
_08042E90: .4byte sBattler_AI
_08042E94: .4byte gUnknown_83FBBB4
@@ -1440,8 +1383,8 @@ GetNatureFromPersonality: @ 8042EB4
bx r1
thumb_func_end GetNatureFromPersonality
- thumb_func_start sub_8042EC4
-sub_8042EC4: @ 8042EC4
+ thumb_func_start GetEvolutionTargetSpecies
+GetEvolutionTargetSpecies: @ 8042EC4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1778,7 +1721,7 @@ _0804315E:
mov r0, r8
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_0804316E:
adds r4, 0x8
ldr r2, [sp, 0x4]
@@ -1820,7 +1763,7 @@ _080431A4:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8042EC4
+ thumb_func_end GetEvolutionTargetSpecies
thumb_func_start sub_80431B4
sub_80431B4: @ 80431B4
@@ -2064,7 +2007,7 @@ sub_8043338: @ 8043338
lsls r1, 17
cmp r0, r1
bne _08043446
- ldr r0, _08043408 @ =gUnknown_202401C
+ ldr r0, _08043408 @ =gMonSpritesGfxPtr
ldr r1, [r0]
ldr r0, [r1, 0x4]
cmp r10, r0
@@ -2159,7 +2102,7 @@ _080433C8:
adds r0, 0x40
b _08043426
.align 2, 0
-_08043408: .4byte gUnknown_202401C
+_08043408: .4byte gMonSpritesGfxPtr
_0804340C: .4byte gUnknown_825265C
_08043410: .4byte gUnknown_825265E
_08043414:
@@ -2383,7 +2326,7 @@ EvolutionRenameMon: @ 804356C
movs r6, 0xB
adds r0, r7, 0
muls r0, r6
- ldr r4, _080435DC @ =gUnknown_8245EE0
+ ldr r4, _080435DC @ =gSpeciesNames
adds r0, r4
mov r1, r9
bl StringCompare
@@ -2394,7 +2337,7 @@ EvolutionRenameMon: @ 804356C
adds r2, r4
adds r0, r5, 0
movs r1, 0x2
- bl sub_804037C
+ bl SetMonData
_080435C8:
add sp, 0x4
pop {r3,r4}
@@ -2405,7 +2348,7 @@ _080435C8:
bx r0
.align 2, 0
_080435D8: .4byte gStringVar1
-_080435DC: .4byte gUnknown_8245EE0
+_080435DC: .4byte gSpeciesNames
thumb_func_end EvolutionRenameMon
thumb_func_start sub_80435E0
@@ -2606,13 +2549,13 @@ sub_80436F8: @ 80436F8
ands r0, r1
cmp r0, 0
beq _08043744
- ldr r0, _08043740 @ =gUnknown_2023F54
+ ldr r0, _08043740 @ =gEnigmaBerries
ldrb r4, [r0, 0x7]
b _08043760
.align 2, 0
_08043738: .4byte gMain
_0804373C: .4byte 0x00000439
-_08043740: .4byte gUnknown_2023F54
+_08043740: .4byte gEnigmaBerries
_08043744:
ldr r0, _08043750 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -2770,7 +2713,7 @@ _0804386C:
adds r0, r7, 0
movs r1, 0x20
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08043876:
add sp, 0x4
pop {r4-r7}
@@ -2925,14 +2868,14 @@ _0804397C:
ands r0, r1
cmp r0, 0
beq _080439B4
- ldr r0, _080439B0 @ =gUnknown_2023F54
+ ldr r0, _080439B0 @ =gEnigmaBerries
ldrb r0, [r0, 0x7]
b _080439D0
.align 2, 0
_080439A4: .4byte gBaseStats
_080439A8: .4byte gMain
_080439AC: .4byte 0x00000439
-_080439B0: .4byte gUnknown_2023F54
+_080439B0: .4byte gEnigmaBerries
_080439B4:
ldr r0, _080439C0 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -2989,7 +2932,7 @@ _08043A0C:
adds r1, r6, 0
adds r1, 0x1A
mov r0, r8
- bl sub_804037C
+ bl SetMonData
adds r6, 0x1
cmp r6, 0x5
bgt _08043A2E
@@ -3170,7 +3113,7 @@ sub_8043B48: @ 8043B48
sub sp, 0x4
adds r4, r0, 0
str r3, [sp]
- ldr r2, _08043B88 @ =gUnknown_8253AE4
+ ldr r2, _08043B88 @ =gExperienceTables
ldr r3, _08043B8C @ =gBaseStats
lsls r0, r1, 3
subs r0, r1
@@ -3192,14 +3135,14 @@ sub_8043B48: @ 8043B48
adds r0, r4, 0
movs r1, 0x19
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08043B80:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_08043B88: .4byte gUnknown_8253AE4
+_08043B88: .4byte gExperienceTables
_08043B8C: .4byte gBaseStats
thumb_func_end sub_8043B48
@@ -3232,7 +3175,7 @@ sub_8043B90: @ 8043B90
adds r5, r0, 0
cmp r7, 0x63
bhi _08043C14
- ldr r3, _08043C0C @ =gUnknown_8253AE4
+ ldr r3, _08043C0C @ =gExperienceTables
mov r0, sp
ldrb r1, [r0]
lsls r1, 2
@@ -3253,7 +3196,7 @@ sub_8043B90: @ 8043B90
adds r0, r4, 0
movs r1, 0x38
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r0, sp
ldrb r2, [r0]
adds r0, r4, 0
@@ -3263,7 +3206,7 @@ sub_8043B90: @ 8043B90
movs r0, 0x1
b _08043C22
.align 2, 0
-_08043C0C: .4byte gUnknown_8253AE4
+_08043C0C: .4byte gExperienceTables
_08043C10: .4byte gBaseStats
_08043C14:
adds r0, r4, 0
@@ -3369,7 +3312,7 @@ _08043CBA:
cmp r5, 0x3
ble _08043CBA
movs r5, 0
- ldr r6, _08043DC8 @ =gUnknown_825D7B4
+ ldr r6, _08043DC8 @ =gLevelUpLearnsets
lsls r1, r7, 2
adds r2, r1, r6
ldr r3, [r2]
@@ -3403,7 +3346,7 @@ _08043CE8:
cmp r1, r0
beq _08043D38
ldr r0, [sp, 0x14]
- ldr r1, _08043DC8 @ =gUnknown_825D7B4
+ ldr r1, _08043DC8 @ =gLevelUpLearnsets
adds r6, r0, r1
ldr r2, _08043DD0 @ =0x000001ff
mov r8, r2
@@ -3439,7 +3382,7 @@ _08043D38:
cmp r2, r0
beq _08043D7C
ldr r1, [sp, 0x14]
- ldr r2, _08043DC8 @ =gUnknown_825D7B4
+ ldr r2, _08043DC8 @ =gLevelUpLearnsets
adds r6, r1, r2
ldr r0, _08043DD0 @ =0x000001ff
mov r8, r0
@@ -3499,7 +3442,7 @@ _08043DB4:
pop {r1}
bx r1
.align 2, 0
-_08043DC8: .4byte gUnknown_825D7B4
+_08043DC8: .4byte gLevelUpLearnsets
_08043DCC: .4byte 0x0000ffff
_08043DD0: .4byte 0x000001ff
thumb_func_end GetMoveRelearnerMoves
@@ -3511,7 +3454,7 @@ GetLevelUpMovesBySpecies: @ 8043DD4
lsls r0, 16
movs r5, 0
movs r4, 0
- ldr r1, _08043E20 @ =gUnknown_825D7B4
+ ldr r1, _08043E20 @ =gLevelUpLearnsets
lsrs r0, 14
adds r0, r1
ldr r2, [r0]
@@ -3547,7 +3490,7 @@ _08043E18:
pop {r1}
bx r1
.align 2, 0
-_08043E20: .4byte gUnknown_825D7B4
+_08043E20: .4byte gLevelUpLearnsets
_08043E24: .4byte 0x0000ffff
_08043E28: .4byte 0x000001ff
thumb_func_end GetLevelUpMovesBySpecies
@@ -3599,7 +3542,7 @@ _08043E70:
cmp r5, 0x3
ble _08043E70
movs r5, 0
- ldr r3, _08043F84 @ =gUnknown_825D7B4
+ ldr r3, _08043F84 @ =gLevelUpLearnsets
ldr r2, [sp, 0x38]
adds r1, r2, r3
ldr r0, [r1]
@@ -3635,7 +3578,7 @@ _08043EA0:
cmp r1, r0
beq _08043EF2
ldr r0, [sp, 0x38]
- ldr r1, _08043F84 @ =gUnknown_825D7B4
+ ldr r1, _08043F84 @ =gLevelUpLearnsets
adds r6, r0, r1
ldr r2, _08043F8C @ =0x000001ff
mov r8, r2
@@ -3672,7 +3615,7 @@ _08043EF2:
cmp r2, r0
beq _08043F38
ldr r2, [sp, 0x38]
- ldr r0, _08043F84 @ =gUnknown_825D7B4
+ ldr r0, _08043F84 @ =gLevelUpLearnsets
adds r6, r2, r0
ldr r2, _08043F8C @ =0x000001ff
mov r8, r2
@@ -3733,7 +3676,7 @@ _08043F72:
pop {r1}
bx r1
.align 2, 0
-_08043F84: .4byte gUnknown_825D7B4
+_08043F84: .4byte gLevelUpLearnsets
_08043F88: .4byte 0x0000ffff
_08043F8C: .4byte 0x000001ff
thumb_func_end GetNumberOfRelearnableMoves
@@ -4245,7 +4188,7 @@ _080442EC:
adds r1, 0x11
adds r0, r5, 0
mov r2, sp
- bl sub_80404D0
+ bl SetBoxMonData
_08044338:
adds r6, 0x1
cmp r6, 0x3
@@ -4259,7 +4202,7 @@ _08044338:
thumb_func_start sub_8044348
sub_8044348: @ 8044348
push {r4,r5,lr}
- ldr r2, _0804438C @ =gUnknown_2023D6A
+ ldr r2, _0804438C @ =gLastUsedAbility
ldr r5, _08044390 @ =gBattleStruct
ldr r1, [r5]
adds r0, r1, 0
@@ -4277,7 +4220,7 @@ sub_8044348: @ 8044348
movs r0, 0xFF
strb r0, [r4, 0x4]
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0804439C
@@ -4291,7 +4234,7 @@ sub_8044348: @ 8044348
bl pokemon_order_func
b _080443AA
.align 2, 0
-_0804438C: .4byte gUnknown_2023D6A
+_0804438C: .4byte gLastUsedAbility
_08044390: .4byte gBattleStruct
_08044394: .4byte gUnknown_2022AB8
_08044398: .4byte gBattlerPartyIndexes
@@ -4310,7 +4253,7 @@ _080443AA:
strb r0, [r4]
movs r0, 0x4
strb r0, [r4, 0x1]
- ldr r1, _080443E8 @ =gUnknown_2024004
+ ldr r1, _080443E8 @ =gBattlerInMenuId
ldrb r0, [r1]
strb r0, [r4, 0x2]
ldr r2, _080443E0 @ =gBattlerPartyIndexes
@@ -4331,7 +4274,7 @@ _080443AA:
.align 2, 0
_080443E0: .4byte gBattlerPartyIndexes
_080443E4: .4byte gUnknown_2022AC8
-_080443E8: .4byte gUnknown_2024004
+_080443E8: .4byte gBattlerInMenuId
_080443EC: .4byte gUnknown_83FCA2C
_080443F0: .4byte gStringVar4
thumb_func_end sub_8044348
@@ -4377,7 +4320,7 @@ _0804443E:
adds r2, r3, r2
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _08044468
.align 2, 0
_0804444C: .4byte gBattleTypeFlags
@@ -4389,7 +4332,7 @@ _0804445C:
adds r2, r3, r2
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
_08044468:
pop {r4,r5}
pop {r0}
@@ -4518,12 +4461,12 @@ _08044548: .4byte gPlayerParty
sub_804454C: @ 804454C
lsls r0, 16
lsrs r0, 16
- ldr r1, _08044558 @ =gUnknown_82538A8
+ ldr r1, _08044558 @ =gFacilityClassToPicIndex
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
-_08044558: .4byte gUnknown_82538A8
+_08044558: .4byte gFacilityClassToPicIndex
thumb_func_end sub_804454C
thumb_func_start sub_804455C
@@ -4647,7 +4590,7 @@ _08044648:
beq _08044632
_08044658:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08044632
@@ -4765,7 +4708,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
movs r2, 0
@@ -4774,7 +4717,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
movs r2, 0
@@ -4783,7 +4726,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3D
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
movs r2, 0
@@ -4792,7 +4735,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3E
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
movs r2, 0
@@ -4801,7 +4744,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3F
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08044798:
adds r5, 0x1
cmp r5, 0x5
@@ -4870,7 +4813,7 @@ sub_80447F0: @ 80447F0
ldrb r0, [r1, 0x13]
lsls r0, 3
orrs r2, r0
- ldr r1, _08044830 @ =gUnknown_825393E
+ ldr r1, _08044830 @ =gFacilityClassToTrainerClass
ldr r0, _08044834 @ =gUnknown_825E032
lsls r2, 1
adds r2, r0
@@ -4881,7 +4824,7 @@ sub_80447F0: @ 80447F0
bx r1
.align 2, 0
_0804482C: .4byte gUnknown_202273C
-_08044830: .4byte gUnknown_825393E
+_08044830: .4byte gFacilityClassToTrainerClass
_08044834: .4byte gUnknown_825E032
thumb_func_end sub_80447F0
@@ -4908,7 +4851,7 @@ sub_8044838: @ 8044838
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x20
- bl sub_803E1EC
+ bl CreateObedientMon
cmp r6, 0
beq _08044880
add r0, sp, 0x10
@@ -4919,7 +4862,7 @@ sub_8044838: @ 8044838
adds r0, r7, 0
movs r1, 0xC
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
_08044880:
add sp, 0x14
pop {r4-r7}
@@ -4997,7 +4940,7 @@ sub_80448F8: @ 80448F8
cmp r0, 0
beq _08044944
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08044944
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
deleted file mode 100644
index 09be52894..000000000
--- a/asm/pokemon_item_effect.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 80413C0
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_80413E4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_80413E4
-sub_80413E4: @ 80413E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08041474
- ldr r0, _08041450 @ =gMain
- ldr r4, _08041454 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041460
- ldr r2, _08041458 @ =gUnknown_2023F54
- ldr r0, _0804145C @ =gUnknown_2024004
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0804147C
- .align 2, 0
-_08041450: .4byte gMain
-_08041454: .4byte 0x00000439
-_08041458: .4byte gUnknown_2023F54
-_0804145C: .4byte gUnknown_2024004
-_08041460:
- ldr r0, _0804146C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r5, _08041470 @ =0x0000311a
- adds r0, r5
- ldrb r0, [r0]
- b _0804147C
- .align 2, 0
-_0804146C: .4byte gSaveBlock1Ptr
-_08041470: .4byte 0x0000311a
-_08041474:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0804147C:
- str r0, [sp, 0x30]
- ldr r1, _080414D8 @ =gUnknown_2023D6F
- ldr r0, _080414DC @ =gUnknown_2024004
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _080414E0 @ =gMain
- ldr r1, _080414E4 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804151C
- ldr r0, _080414E8 @ =gActiveBattler
- strb r2, [r0]
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _080414EC @ =gUnknown_2023BCC
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _08041528
- ldr r2, _080414F0 @ =gBattlerPartyIndexes
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _080414F4
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _08041528
- .align 2, 0
-_080414D8: .4byte gUnknown_2023D6F
-_080414DC: .4byte gUnknown_2024004
-_080414E0: .4byte gMain
-_080414E4: .4byte 0x00000439
-_080414E8: .4byte gActiveBattler
-_080414EC: .4byte gUnknown_2023BCC
-_080414F0: .4byte gBattlerPartyIndexes
-_080414F4:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _08041518 @ =gUnknown_2023BCC
- ldrb r0, [r0]
- cmp r1, r0
- bge _08041528
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _080414F4
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _08041528
- .align 2, 0
-_08041518: .4byte gUnknown_2023BCC
-_0804151C:
- ldr r0, _08041544 @ =gActiveBattler
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_08041528:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _080415A8
- ldr r1, _08041548 @ =gUnknown_82528BC
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0804154C
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _08041552
- b _080415A8
- .align 2, 0
-_08041544: .4byte gActiveBattler
-_08041548: .4byte gUnknown_82528BC
-_0804154C:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _080415AE
-_08041552:
- ldr r0, _08041574 @ =gMain
- ldr r1, _08041578 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041584
- ldr r0, _0804157C @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08041580 @ =gUnknown_2023F5C
- adds r0, r1
- b _080415AE
- .align 2, 0
-_08041574: .4byte gMain
-_08041578: .4byte 0x00000439
-_0804157C: .4byte gActiveBattler
-_08041580: .4byte gUnknown_2023F5C
-_08041584:
- ldr r0, _08041590 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _08041594 @ =0x00003108
- adds r2, r0, r2
- str r2, [sp, 0x20]
- b _080415B0
- .align 2, 0
-_08041590: .4byte gSaveBlock1Ptr
-_08041594: .4byte 0x00003108
-_08041598:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _08042394
-_080415A8:
- movs r0, 0x1
- bl _08042394
-_080415AE:
- str r0, [sp, 0x20]
-_080415B0:
- movs r3, 0
- str r3, [sp, 0x18]
-_080415B4:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _080415BE
- bl _08042384
-_080415BE:
- lsls r0, r4, 2
- ldr r1, _080415C8 @ =_080415CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080415C8: .4byte _080415CC
- .align 2, 0
-_080415CC:
- .4byte _080415E4
- .4byte _080416B0
- .4byte _08041744
- .4byte _080417D8
- .4byte _080419B8
- .4byte _08042056
-_080415E4:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0804162C
- ldr r0, _0804169C @ =gMain
- ldr r1, _080416A0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804162C
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0804162C
- ldr r1, _080416A4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0804162C
- ldr r0, _080416A8 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0804162C:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0804165A
- ldr r1, _080416A4 @ =gBattleMons
- ldr r0, _080416AC @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0804165A
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0804165A:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041668
- bl _08042384
-_08041668:
- ldr r6, _080416A4 @ =gBattleMons
- ldr r5, _080416AC @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _08041682
- bl _08042384
-_08041682:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _08041696
- b _0804198A
-_08041696:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0804198A
- .align 2, 0
-_0804169C: .4byte gMain
-_080416A0: .4byte 0x00000439
-_080416A4: .4byte gBattleMons
-_080416A8: .4byte 0xfff0ffff
-_080416AC: .4byte gActiveBattler
-_080416B0:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _080416F6
- ldr r7, _0804173C @ =gBattleMons
- ldr r5, _08041740 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080416F6
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _080416F2
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_080416F2:
- movs r2, 0
- str r2, [sp, 0x1C]
-_080416F6:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041704
- bl _08042384
-_08041704:
- ldr r6, _0804173C @ =gBattleMons
- ldr r5, _08041740 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0804171E
- bl _08042384
-_0804171E:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08041734
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_08041734:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_0804173C: .4byte gBattleMons
-_08041740: .4byte gActiveBattler
-_08041744:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0804178A
- ldr r7, _080417D0 @ =gBattleMons
- ldr r5, _080417D4 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0804178A
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08041786
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_08041786:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0804178A:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041798
- bl _08042384
-_08041798:
- ldr r6, _080417D0 @ =gBattleMons
- ldr r5, _080417D4 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _080417B2
- bl _08042384
-_080417B2:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _080417C8
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_080417C8:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_080417D0: .4byte gBattleMons
-_080417D4: .4byte gActiveBattler
-_080417D8:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _08041820
- ldr r5, _08041994 @ =gUnknown_2023DE4
- ldr r4, _08041998 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _08041820
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x4]
- movs r5, 0
- str r5, [sp, 0x1C]
-_08041820:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08041882
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _08041882
- ldr r5, _0804199C @ =gUnknown_8253AE4
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080419A0 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_08041882:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080418BE
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418BE
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _080418BA
- ldr r1, _080419A4 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080419A8 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_080418BA:
- movs r4, 0
- str r4, [sp, 0x1C]
-_080418BE:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080418DE
- ldr r2, _080419AC @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418DE
- movs r5, 0
- str r5, [sp, 0x1C]
-_080418DE:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080418FE
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418FE
- movs r0, 0
- str r0, [sp, 0x1C]
-_080418FE:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0804191E
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _0804191E
- movs r1, 0
- str r1, [sp, 0x1C]
-_0804191E:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804193E
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _0804193E
- movs r2, 0
- str r2, [sp, 0x1C]
-_0804193E:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804194C
- bl _08042384
-_0804194C:
- ldr r0, _080419B0 @ =gMain
- ldr r3, _080419B4 @ =0x00000439
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08041960
- bl _08042384
-_08041960:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0804196A
- bl _08042384
-_0804196A:
- ldr r1, _080419A4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08041982
- bl _08042384
-_08041982:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0804198A:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_08041994: .4byte gUnknown_2023DE4
-_08041998: .4byte gActiveBattler
-_0804199C: .4byte gUnknown_8253AE4
-_080419A0: .4byte gBaseStats
-_080419A4: .4byte gBattleMons
-_080419A8: .4byte 0xf7ffffff
-_080419AC: .4byte 0x00000f88
-_080419B0: .4byte gMain
-_080419B4: .4byte 0x00000439
-_080419B8:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _08041A90
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _08041ABC @ =gUnknown_825DEA1
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _08041A90
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _08041A90
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _08041AC0 @ =gUnknown_825DEA9
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl sub_804037C
- movs r4, 0
- str r4, [sp, 0x1C]
-_08041A90:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _08041A9E
- bl _08042384
-_08041A9E:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _08041AAA
- b _08042042
-_08041AAA:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _08041AB2
- b _08042042
-_08041AB2:
- lsls r0, r2, 2
- ldr r1, _08041AC4 @ =_08041AC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041ABC: .4byte gUnknown_825DEA1
-_08041AC0: .4byte gUnknown_825DEA9
-_08041AC4: .4byte _08041AC8
- .align 2, 0
-_08041AC8:
- .4byte _08041AE8
- .4byte _08041AE8
- .4byte _08041B70
- .4byte _08041D94
- .4byte _08042042
- .4byte _08042042
- .4byte _08042042
- .4byte _0804202C
-_08041AE8:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08041B28 @ =0x000001fd
- cmp r5, r0
- bls _08041AFA
- b _080415A8
-_08041AFA:
- ldr r0, _08041B2C @ =gUnknown_825DFEA
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _08041B14
- b _08042042
-_08041B14:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _08041B30
- adds r0, 0x64
- subs r4, r0, r1
- b _08041B32
- .align 2, 0
-_08041B28: .4byte 0x000001fd
-_08041B2C: .4byte gUnknown_825DFEA
-_08041B30:
- adds r4, r0, 0
-_08041B32:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _08041B40
- adds r0, r4, r0
- subs r4, r0, r1
-_08041B40:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _08041B6C @ =gUnknown_825DFEA
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _08042042
- .align 2, 0
-_08041B6C: .4byte gUnknown_825DFEA
-_08041B70:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _08041C30
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08041B90
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _08041ED6
-_08041B90:
- ldr r0, _08041BD8 @ =gMain
- ldr r1, _08041BDC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041C46
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08041BF0
- ldr r2, _08041BE0 @ =gAbsentBattlerFlags
- ldr r1, _08041BE4 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _08041BE8 @ =gBattlerPartyIndexes
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _08041BEC @ =gActiveBattler
- ldrb r0, [r0]
- b _08041C08
- .align 2, 0
-_08041BD8: .4byte gMain
-_08041BDC: .4byte 0x00000439
-_08041BE0: .4byte gAbsentBattlerFlags
-_08041BE4: .4byte gBitTable
-_08041BE8: .4byte gBattlerPartyIndexes
-_08041BEC: .4byte gActiveBattler
-_08041BF0:
- ldr r3, _08041C20 @ =gAbsentBattlerFlags
- ldr r1, _08041C24 @ =gBitTable
- ldr r2, _08041C28 @ =gActiveBattler
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_08041C08:
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08041C46
- ldr r1, _08041C2C @ =gBattleResults
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _08041C46
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08041C46
- .align 2, 0
-_08041C20: .4byte gAbsentBattlerFlags
-_08041C24: .4byte gBitTable
-_08041C28: .4byte gActiveBattler
-_08041C2C: .4byte gBattleResults
-_08041C30:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08041C46
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _08041ED6
-_08041C46:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _08041C88
- cmp r0, 0xFE
- bhi _08041C68
- cmp r0, 0xFD
- beq _08041C9E
- b _08041CA6
-_08041C68:
- cmp r1, 0xFF
- bne _08041CA6
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _08041CA6
-_08041C88:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _08041CA6
- movs r0, 0x1
- b _08041CA4
-_08041C9E:
- ldr r0, _08041D60 @ =gBattleScripting
- adds r0, 0x23
- ldrb r0, [r0]
-_08041CA4:
- str r0, [sp]
-_08041CA6:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _08041D84
- ldr r5, [sp, 0x14]
- cmp r5, 0
- bne _08041D78
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _08041CF2
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_08041CF2:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl sub_804037C
- ldr r0, _08041D64 @ =gMain
- ldr r1, _08041D68 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041D80
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08041D80
- ldr r1, _08041D6C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _08041D80
- ldr r4, _08041D70 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08041D80
- ldr r1, _08041D74 @ =gBattleResults
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _08041D42
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_08041D42:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- strb r5, [r4]
- b _08041D80
- .align 2, 0
-_08041D60: .4byte gBattleScripting
-_08041D64: .4byte gMain
-_08041D68: .4byte 0x00000439
-_08041D6C: .4byte gBattleMons
-_08041D70: .4byte gActiveBattler
-_08041D74: .4byte gBattleResults
-_08041D78:
- ldr r1, _08041D90 @ =gBattleMoveDamage
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_08041D80:
- movs r1, 0
- str r1, [sp, 0x1C]
-_08041D84:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _08042042
- .align 2, 0
-_08041D90: .4byte gBattleMoveDamage
-_08041D94:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _08041DA0
- b _08041EF0
-_08041DA0:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_08041DA8:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _08041ECA
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _08041E60
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08041E60:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl sub_804037C
- ldr r0, _08041EDC @ =gMain
- ldr r4, _08041EE0 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041EC6
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _08041EC6
- ldr r4, _08041EE4 @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _08041EC6
- ldr r1, _08041EE8 @ =gDisableStructs
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08041EEC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08041EC6
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_08041EC6:
- movs r3, 0
- str r3, [sp, 0x1C]
-_08041ECA:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08041ED2
- b _08041DA8
-_08041ED2:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_08041ED6:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _08042042
- .align 2, 0
-_08041EDC: .4byte gMain
-_08041EE0: .4byte 0x00000439
-_08041EE4: .4byte gBattleMons
-_08041EE8: .4byte gDisableStructs
-_08041EEC: .4byte gBitTable
-_08041EF0:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _08041F38
- b _08042042
-_08041F38:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _08041FAC
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08041FAC:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl sub_804037C
- ldr r0, _08042018 @ =gMain
- ldr r1, _0804201C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08042010
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08042010
- ldr r4, _08042020 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08042010
- ldr r1, _08042024 @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08042028 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08042010
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_08042010:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _08042042
- .align 2, 0
-_08042018: .4byte gMain
-_0804201C: .4byte 0x00000439
-_08042020: .4byte gBattleMons
-_08042024: .4byte gDisableStructs
-_08042028: .4byte gBitTable
-_0804202C:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl sub_8042EC4
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08042042
- bl _08041598
-_08042042:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _08042054
- b _08041A9E
-_08042054:
- b _08042384
-_08042056:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0804206A
- b _08042384
-_0804206A:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _08042076
- b _08042372
-_08042076:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0804207E
- b _08042372
-_0804207E:
- lsls r0, r2, 2
- ldr r1, _08042088 @ =_0804208C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042088: .4byte _0804208C
- .align 2, 0
-_0804208C:
- .4byte _080420AC
- .4byte _080420AC
- .4byte _080420AC
- .4byte _080420AC
- .4byte _08042130
- .4byte _08042204
- .4byte _0804225E
- .4byte _080422B4
-_080420AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080420F4 @ =0x000001fd
- cmp r5, r0
- bls _080420C0
- bl _080415A8
-_080420C0:
- ldr r0, _080420F8 @ =gUnknown_825DFEA
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _080420DE
- b _08042372
-_080420DE:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _080420FC
- adds r0, 0x64
- subs r4, r0, r1
- b _080420FE
- .align 2, 0
-_080420F4: .4byte 0x000001fd
-_080420F8: .4byte gUnknown_825DFEA
-_080420FC:
- adds r4, r0, 0
-_080420FE:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0804210C
- adds r0, r4, r0
- subs r4, r0, r1
-_0804210C:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0804212C @ =gUnknown_825DFEA
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _08042368
- .align 2, 0
-_0804212C: .4byte gUnknown_825DFEA
-_08042130:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _080421F8 @ =gUnknown_825DEA1
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _08042150
- b _08042372
-_08042150:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _080421FC @ =gUnknown_825DEA5
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _08042200 @ =gUnknown_825DEA9
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl sub_804037C
- movs r4, 0
- str r4, [sp, 0x1C]
- b _08042372
- .align 2, 0
-_080421F8: .4byte gUnknown_825DEA1
-_080421FC: .4byte gUnknown_825DEA5
-_08042200: .4byte gUnknown_825DEA9
-_08042204:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _08042214
- b _08042368
-_08042214:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0804221C
- b _08042368
-_0804221C:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _08042224
- b _08042368
-_08042224:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _08042308
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _08042308
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _08042314
-_0804225E:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _08042368
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _08042368
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _08042368
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _08042368
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _080422AE
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _080422F6
-_080422AE:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0804230C
-_080422B4:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _08042368
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _08042368
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _08042368
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _08042308
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _08042308
-_080422F6:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _08042314
-_08042308:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0804230C:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_08042314:
- cmp r2, 0
- ble _0804234A
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0804232C
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0804232C:
- mov r0, r8
- 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 _0804234A
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0804234A:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _08042354
- movs r0, 0
- str r0, [sp, 0x4]
-_08042354:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0804235E
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0804235E:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl sub_804037C
-_08042368:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_08042372:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _08042384
- b _0804206A
-_08042384:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _08042392
- bl _080415B4
-_08042392:
- ldr r0, [sp, 0x1C]
-_08042394:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80413E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_size_record.s b/asm/pokemon_size_record.s
index be196e54e..50ddd41a4 100644
--- a/asm/pokemon_size_record.s
+++ b/asm/pokemon_size_record.s
@@ -299,7 +299,7 @@ sub_80A08CC: @ 80A08CC
ldr r0, _080A08FC @ =gStringVar1
movs r1, 0xB
muls r1, r4
- ldr r2, _080A0900 @ =gUnknown_8245EE0
+ ldr r2, _080A0900 @ =gSpeciesNames
adds r1, r2
bl StringCopy
pop {r4}
@@ -308,7 +308,7 @@ sub_80A08CC: @ 80A08CC
.align 2, 0
_080A08F8: .4byte gStringVar3
_080A08FC: .4byte gStringVar1
-_080A0900: .4byte gUnknown_8245EE0
+_080A0900: .4byte gSpeciesNames
thumb_func_end sub_80A08CC
thumb_func_start sub_80A0904
@@ -454,7 +454,7 @@ _080A09E6:
ldrb r1, [r0]
adds r0, r4, 0
mov r2, r8
- bl sub_804037C
+ bl SetMonData
movs r7, 0x1
_080A0A18:
adds r5, 0x1
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 67dea9b9e..8373f261a 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -127,7 +127,7 @@ SetBoxMonDataFromAnyBox: @ 808BA5C
adds r0, r1
adds r1, r5, 0
adds r2, r6, 0
- bl sub_80404D0
+ bl SetBoxMonData
_0808BA94:
pop {r4-r6}
pop {r0}
@@ -242,7 +242,7 @@ SetBoxMonNickFromAnyBox: @ 808BB2C
adds r0, r1
movs r1, 0x2
adds r2, r5, 0
- bl sub_80404D0
+ bl SetBoxMonData
_0808BB62:
pop {r4,r5}
pop {r0}
@@ -6333,7 +6333,7 @@ _0808ECAC:
bne _0808ECD0
bl sub_808FF70
bl CalculatePlayerPartyCount
- ldr r1, _0808ECD8 @ =gUnknown_2024029
+ ldr r1, _0808ECD8 @ =gPlayerPartyCount
strb r0, [r1]
ldr r0, _0808ECDC @ =gUnknown_20397B0
ldr r0, [r0]
@@ -6345,7 +6345,7 @@ _0808ECD0:
pop {r0}
bx r0
.align 2, 0
-_0808ECD8: .4byte gUnknown_2024029
+_0808ECD8: .4byte gPlayerPartyCount
_0808ECDC: .4byte gUnknown_20397B0
_0808ECE0: .4byte sub_808EE18
thumb_func_end sub_808EBB0
@@ -6476,7 +6476,7 @@ _0808EDE0:
bne _0808EE04
bl sub_808FF70
bl CalculatePlayerPartyCount
- ldr r1, _0808EE0C @ =gUnknown_2024029
+ ldr r1, _0808EE0C @ =gPlayerPartyCount
strb r0, [r1]
ldr r0, _0808EE10 @ =gUnknown_20397B0
ldr r0, [r0]
@@ -6488,7 +6488,7 @@ _0808EE04:
pop {r0}
bx r0
.align 2, 0
-_0808EE0C: .4byte gUnknown_2024029
+_0808EE0C: .4byte gPlayerPartyCount
_0808EE10: .4byte gUnknown_20397B0
_0808EE14: .4byte sub_808EE18
thumb_func_end sub_808ECE4
@@ -6628,7 +6628,7 @@ sub_808EF0C: @ 808EF0C
adds r0, r1
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
b _0808EF56
.align 2, 0
_0808EF40: .4byte gUnknown_203AD30
@@ -16062,7 +16062,7 @@ sub_8093878: @ 8093878
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl sub_804037C
+ bl SetMonData
b _080938EC
.align 2, 0
_080938A8: .4byte gUnknown_20397B0
@@ -16084,7 +16084,7 @@ _080938B8:
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_080938D8:
movs r0, 0
ldrsb r0, [r4, r0]
@@ -16674,7 +16674,7 @@ _08093D90: .4byte 0x00000cf5
_08093D94:
ldr r2, _08093DD0 @ =0x00000cf5
adds r0, r1, r2
- ldr r1, _08093DD4 @ =gUnknown_8415A62
+ ldr r1, _08093DD4 @ =gText_EggNickname
movs r2, 0
movs r3, 0x8
bl StringCopyPadded
@@ -16702,7 +16702,7 @@ _08093DC6:
b _08093F84
.align 2, 0
_08093DD0: .4byte 0x00000cf5
-_08093DD4: .4byte gUnknown_8415A62
+_08093DD4: .4byte gText_EggNickname
_08093DD8: .4byte gUnknown_20397B0
_08093DDC: .4byte 0x00000d19
_08093DE0: .4byte 0x00000d3d
@@ -16739,7 +16739,7 @@ _08093DF4:
ldrh r1, [r0]
movs r0, 0xB
muls r1, r0
- ldr r0, _08093E8C @ =gUnknown_8245EE0
+ ldr r0, _08093E8C @ =gSpeciesNames
adds r1, r0
adds r0, r2, 0
movs r2, 0
@@ -16785,7 +16785,7 @@ _08093E7C: .4byte 0x00000cf5
_08093E80: .4byte 0x00000cea
_08093E84: .4byte 0x00000d19
_08093E88: .4byte 0x00000d1a
-_08093E8C: .4byte gUnknown_8245EE0
+_08093E8C: .4byte gSpeciesNames
_08093E90: .4byte 0x00000d3d
_08093E94: .4byte 0x00000d3e
_08093E98: .4byte 0x00000d3f
@@ -20886,7 +20886,7 @@ _08095DEC:
adds r0, r1
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x1
bl sub_8090C84
@@ -21032,7 +21032,7 @@ _08095F10:
adds r2, r5
adds r0, r4, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
mov r1, r8
ldr r0, [r1]
adds r0, r5
@@ -21118,7 +21118,7 @@ _08095FD4:
ldr r1, _08096004 @ =0x00002224
adds r2, r1
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
mov r0, r8
movs r1, 0
bl sub_8090C84
@@ -21183,7 +21183,7 @@ _08096064:
adds r0, r1
movs r1, 0xC
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x1
bl sub_8090C84
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index ead0c8a01..570e67218 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3490,7 +3490,7 @@ _08136240:
adds r0, r3
movs r1, 0xB
muls r1, r4
- ldr r2, _08136318 @ =gUnknown_8245EE0
+ ldr r2, _08136318 @ =gSpeciesNames
adds r1, r2
bl StringCompare
cmp r0, 0
@@ -3575,7 +3575,7 @@ _08136308: .4byte 0x00003084
_0813630C: .4byte gUnknown_84161CD
_08136310: .4byte gUnknown_203B140
_08136314: .4byte 0x00003034
-_08136318: .4byte gUnknown_8245EE0
+_08136318: .4byte gSpeciesNames
_0813631C: .4byte 0x00003290
_08136320: .4byte 0x0000ffff
_08136324: .4byte 0x0000306c
@@ -3973,7 +3973,7 @@ _08136630:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- ldr r4, _08136790 @ =gUnknown_8253AE4
+ ldr r4, _08136790 @ =gExperienceTables
adds r2, r5, 0x1
lsls r2, 2
ldr r3, _08136794 @ =gBaseStats
@@ -4084,7 +4084,7 @@ _08136780: .4byte 0x00003290
_08136784: .4byte 0x0000309c
_08136788: .4byte gUnknown_203B144
_0813678C: .4byte 0x000031a4
-_08136790: .4byte gUnknown_8253AE4
+_08136790: .4byte gExperienceTables
_08136794: .4byte gBaseStats
_08136798: .4byte 0x000031b0
_0813679C: .4byte 0x000031bc
@@ -9242,29 +9242,29 @@ sub_81390B0: @ 81390B0
adds r1, 0xD
adds r0, r6, 0
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r0, r8
ldrb r1, [r0]
adds r1, 0xD
adds r0, r6, 0
ldr r2, [sp, 0x8]
- bl sub_804037C
+ bl SetMonData
ldr r3, _081391E0 @ =gUnknown_203B16D
ldrb r1, [r3]
adds r1, 0x11
adds r0, r6, 0
adds r2, r7, 0
- bl sub_804037C
+ bl SetMonData
mov r0, r8
ldrb r1, [r0]
adds r1, 0x11
adds r0, r6, 0
mov r2, r10
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x15
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -9389,29 +9389,29 @@ sub_81391EC: @ 81391EC
adds r1, 0xD
adds r0, r6, 0
mov r2, sp
- bl sub_80404D0
+ bl SetBoxMonData
mov r0, r8
ldrb r1, [r0]
adds r1, 0xD
adds r0, r6, 0
ldr r2, [sp, 0x8]
- bl sub_80404D0
+ bl SetBoxMonData
ldr r3, _0813931C @ =gUnknown_203B16D
ldrb r1, [r3]
adds r1, 0x11
adds r0, r6, 0
adds r2, r7, 0
- bl sub_80404D0
+ bl SetBoxMonData
mov r0, r8
ldrb r1, [r0]
adds r1, 0x11
adds r0, r6, 0
mov r2, r10
- bl sub_80404D0
+ bl SetBoxMonData
adds r0, r6, 0
movs r1, 0x15
adds r2, r4, 0
- bl sub_80404D0
+ bl SetBoxMonData
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -12270,7 +12270,7 @@ _0813A9B4:
bls _0813A9E2
b _0813AAE8
_0813A9E2:
- ldr r3, _0813AADC @ =gUnknown_8253AE4
+ ldr r3, _0813AADC @ =gExperienceTables
adds r1, r5, 0x1
lsls r1, 2
ldr r2, _0813AAE0 @ =gBaseStats
@@ -12395,7 +12395,7 @@ _0813AAB8:
.align 2, 0
_0813AAD4: .4byte gUnknown_203B140
_0813AAD8: .4byte 0x00003290
-_0813AADC: .4byte gUnknown_8253AE4
+_0813AADC: .4byte gExperienceTables
_0813AAE0: .4byte gBaseStats
_0813AAE4: .4byte gUnknown_203B160
_0813AAE8:
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index c3a732184..14703e26e 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -78,7 +78,7 @@ _080CA34A:
adds r0, r4, 0
movs r1, 0x43
mov r2, sp
- bl sub_804037C
+ bl SetMonData
movs r6, 0x1
_080CA388:
adds r5, 0x1
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 9b7c29ccc..c54193c6f 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -7157,12 +7157,12 @@ sub_8113EAC: @ 8113EAC
bl GetSpeciesName
b _08113F08
_08113ED0:
- ldr r1, _08113EDC @ =gUnknown_8415A62
+ ldr r1, _08113EDC @ =gText_EggNickname
adds r0, r3, 0
bl StringCopy
b _08113F08
.align 2, 0
-_08113EDC: .4byte gUnknown_8415A62
+_08113EDC: .4byte gText_EggNickname
_08113EE0:
movs r0, 0xCE
lsls r0, 1
@@ -7171,15 +7171,15 @@ _08113EE0:
movs r0, 0xB
adds r1, r4, 0
muls r1, r0
- ldr r0, _08113EFC @ =gUnknown_8245EE0
+ ldr r0, _08113EFC @ =gSpeciesNames
adds r1, r0
adds r0, r2, 0
bl UnkTextUtil_SetPtrI
b _08113F08
.align 2, 0
-_08113EFC: .4byte gUnknown_8245EE0
+_08113EFC: .4byte gSpeciesNames
_08113F00:
- ldr r1, _08113F10 @ =gUnknown_8415A62
+ ldr r1, _08113F10 @ =gText_EggNickname
adds r0, r5, 0
bl UnkTextUtil_SetPtrI
_08113F08:
@@ -7187,7 +7187,7 @@ _08113F08:
pop {r0}
bx r0
.align 2, 0
-_08113F10: .4byte gUnknown_8415A62
+_08113F10: .4byte gText_EggNickname
thumb_func_end sub_8113EAC
thumb_func_start sub_8113F14
diff --git a/asm/quest_log_battle.s b/asm/quest_log_battle.s
index 19703e014..635aaf5c3 100644
--- a/asm/quest_log_battle.s
+++ b/asm/quest_log_battle.s
@@ -99,7 +99,7 @@ _0812C06A:
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0812C0BC
@@ -121,7 +121,7 @@ _0812C0B8: .4byte gBattleMons
_0812C0BC:
ldr r5, _0812C0D8 @ =gBattleMons
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r4, 0x58
@@ -137,7 +137,7 @@ _0812C0D8: .4byte gBattleMons
_0812C0DC:
movs r0, 0x2
_0812C0DE:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
muls r0, r4
@@ -146,10 +146,10 @@ _0812C0EA:
ldrh r0, [r0]
strh r0, [r7, 0x4]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r6, _0812C14C @ =gBattleMons
lsls r4, 24
lsrs r4, 24
@@ -168,10 +168,10 @@ _0812C0EA:
lsrs r0, 16
mov r8, r0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r4, 24
lsrs r4, 24
adds r1, r4, 0
@@ -194,7 +194,7 @@ _0812C150:
ldrh r0, [r0, 0x20]
strh r0, [r7, 0x2]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldr r5, _0812C1C8 @ =gBattleMons
lsls r0, 24
lsrs r0, 24
@@ -204,7 +204,7 @@ _0812C150:
ldrh r0, [r0]
strh r0, [r7, 0x4]
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
muls r0, r4
@@ -212,7 +212,7 @@ _0812C150:
ldrh r0, [r0, 0x28]
mov r8, r0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
muls r0, r4
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 5538afcff..e946e5087 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -276,7 +276,7 @@ _080779A8:
_080779B0:
bl LoadAndCreateEnemyShadowSprites
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -300,7 +300,7 @@ _080779B0:
cmp r0, 0
beq _08077A14
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -318,7 +318,7 @@ _080779B0:
bl SetBankEnemyShadowSpriteCallback
_08077A14:
ldr r1, _08077A4C @ =gUnknown_2023FF8
- ldr r0, _08077A50 @ =gUnknown_2024004
+ ldr r0, _08077A50 @ =gBattlerInMenuId
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -341,7 +341,7 @@ _08077A14:
_08077A44: .4byte gBattlerPartyIndexes
_08077A48: .4byte gEnemyParty
_08077A4C: .4byte gUnknown_2023FF8
-_08077A50: .4byte gUnknown_2024004
+_08077A50: .4byte gBattlerInMenuId
_08077A54: .4byte gUnknown_3003F3C
_08077A58: .4byte gUnknown_3003F64
_08077A5C:
@@ -426,14 +426,14 @@ sub_8077B0C: @ 8077B0C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08077B54 @ =gUnknown_2023BCC
+ ldr r0, _08077B54 @ =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _08077B1C
b _08077C2C
_08077B1C:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08077BA6
@@ -458,7 +458,7 @@ _08077B1C:
bl sub_8034658
b _08077C24
.align 2, 0
-_08077B54: .4byte gUnknown_2023BCC
+_08077B54: .4byte gBattlersCount
_08077B58: .4byte gBattleTypeFlags
_08077B5C: .4byte gBattlerPartyIndexes
_08077B60: .4byte gEnemyParty
@@ -576,7 +576,7 @@ sub_8077C38: @ 8077C38
push {r5-r7}
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _08077C6C @ =gUnknown_2023BCC
+ ldr r0, _08077C6C @ =gBattlersCount
ldrb r0, [r0]
cmp r7, r0
bcc _08077C50
@@ -595,7 +595,7 @@ _08077C50:
bl sub_8074900
b _08077C9A
.align 2, 0
-_08077C6C: .4byte gUnknown_2023BCC
+_08077C6C: .4byte gBattlersCount
_08077C70: .4byte gBattleTypeFlags
_08077C74:
ldr r0, _08077C90 @ =gUnknown_2024018
@@ -621,7 +621,7 @@ _08077C9A:
lsrs r0, 24
mov r8, r0
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08077CAE
@@ -656,13 +656,13 @@ _08077CD2:
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_803F7D4
- ldr r5, _08077D98 @ =gUnknown_20244DC
+ ldr r5, _08077D98 @ =gMultiuseSpriteTemplate
adds r0, r7, 0
movs r1, 0x2
bl sub_8074480
@@ -734,7 +734,7 @@ _08077CD2:
.align 2, 0
_08077D90: .4byte gBattlerPartyIndexes
_08077D94: .4byte gEnemyParty
-_08077D98: .4byte gUnknown_20244DC
+_08077D98: .4byte gMultiuseSpriteTemplate
_08077D9C: .4byte gUnknown_2023D44
_08077DA0: .4byte gSprites
_08077DA4: .4byte SpriteCallbackDummy
@@ -752,13 +752,13 @@ _08077DAC:
ldr r0, [r5]
ldrb r4, [r0, 0x8]
movs r0, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_803F864
- ldr r6, _08077E08 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r6, _08077E08 @ =gMultiuseSpriteTemplate
ldr r1, _08077E0C @ =gUnknown_8239F8C
ldr r0, [r5]
ldrb r0, [r0, 0x8]
@@ -782,7 +782,7 @@ _08077DAC:
.align 2, 0
_08077E00: .4byte gBattleTypeFlags
_08077E04: .4byte gSaveBlock2Ptr
-_08077E08: .4byte gUnknown_20244DC
+_08077E08: .4byte gMultiuseSpriteTemplate
_08077E0C: .4byte gUnknown_8239F8C
_08077E10:
ldr r0, [r0]
@@ -794,13 +794,13 @@ _08077E10:
cmp r7, 0
bne _08077EA8
movs r0, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
- bl sub_803F864
- ldr r5, _08077E94 @ =gUnknown_20244DC
+ bl SetMultiuseSpriteTemplateToTrainerBack
+ ldr r5, _08077E94 @ =gMultiuseSpriteTemplate
ldr r0, _08077E98 @ =gUnknown_8239F8C
ldrb r0, [r0, 0x14]
movs r4, 0x8
@@ -849,7 +849,7 @@ _08077E54:
strh r7, [r0, 0x2E]
b _08077F84
.align 2, 0
-_08077E94: .4byte gUnknown_20244DC
+_08077E94: .4byte gMultiuseSpriteTemplate
_08077E98: .4byte gUnknown_8239F8C
_08077E9C: .4byte gUnknown_2023D44
_08077EA0: .4byte gSprites
@@ -882,13 +882,13 @@ _08077EA8:
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_803F7D4
- ldr r5, _08077FCC @ =gUnknown_20244DC
+ ldr r5, _08077FCC @ =gMultiuseSpriteTemplate
adds r0, r7, 0
movs r1, 0x2
bl sub_8074480
@@ -992,7 +992,7 @@ _08077FB4:
.align 2, 0
_08077FC4: .4byte gBattlerPartyIndexes
_08077FC8: .4byte gPlayerParty
-_08077FCC: .4byte gUnknown_20244DC
+_08077FCC: .4byte gMultiuseSpriteTemplate
_08077FD0: .4byte gUnknown_2023D44
_08077FD4: .4byte gSprites
_08077FD8: .4byte SpriteCallbackDummy
@@ -1005,7 +1005,7 @@ CreateHealthboxSprite: @ 8077FE4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _0807800C @ =gUnknown_2023BCC
+ ldr r0, _0807800C @ =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bcc _08077FF4
@@ -1022,7 +1022,7 @@ _08077FF4:
bl CreateSafariPlayerHealthboxSprites
b _0807802C
.align 2, 0
-_0807800C: .4byte gUnknown_2023BCC
+_0807800C: .4byte gBattlersCount
_08078010: .4byte gBattleTypeFlags
_08078014:
ldr r0, [r0]
@@ -1048,7 +1048,7 @@ _0807802C:
adds r0, r6, 0
bl SetHealthboxSpriteVisible
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08078074
@@ -1105,13 +1105,13 @@ _080780A8:
bl UpdateHealthboxAttribute
_080780C0:
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080780DC
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -1135,7 +1135,7 @@ _080780F8:
bl nullsub_21
_08078104:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0807813C
diff --git a/asm/roamer.s b/asm/roamer.s
index d44c91a55..d42b34293 100644
--- a/asm/roamer.s
+++ b/asm/roamer.s
@@ -364,43 +364,43 @@ CreateRoamerMonInstance: @ 8141EF8
adds r2, r0
adds r0, r5, 0
movs r1, 0x37
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r1, _08141F94 @ =0x000030da
adds r2, r1
adds r0, r5, 0
movs r1, 0x39
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r0, _08141F98 @ =0x000030de
adds r2, r0
adds r0, r5, 0
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r1, _08141F9C @ =0x000030df
adds r2, r1
adds r0, r5, 0
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r0, _08141FA0 @ =0x000030e0
adds r2, r0
adds r0, r5, 0
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r1, _08141FA4 @ =0x000030e1
adds r2, r1
adds r0, r5, 0
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
ldr r2, [r4]
ldr r0, _08141FA8 @ =0x000030e2
adds r2, r0
adds r0, r5, 0
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
add sp, 0x4
pop {r4,r5}
pop {r0}
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index ec78da1d5..53215ab33 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -4022,7 +4022,7 @@ ScrCmd_bufferspeciesname: @ 806BC88
ldr r2, [r4]
movs r1, 0xB
muls r1, r0
- ldr r0, _0806BCC4 @ =gUnknown_8245EE0
+ ldr r0, _0806BCC4 @ =gSpeciesNames
adds r1, r0
adds r0, r2, 0
bl StringCopy
@@ -4032,7 +4032,7 @@ ScrCmd_bufferspeciesname: @ 806BC88
bx r1
.align 2, 0
_0806BCC0: .4byte gUnknown_83A7294
-_0806BCC4: .4byte gUnknown_8245EE0
+_0806BCC4: .4byte gSpeciesNames
thumb_func_end ScrCmd_bufferspeciesname
thumb_func_start ScrCmd_bufferleadmonspeciesname
@@ -4058,7 +4058,7 @@ ScrCmd_bufferleadmonspeciesname: @ 806BCC8
bl GetMonData
movs r1, 0xB
muls r1, r0
- ldr r0, _0806BD10 @ =gUnknown_8245EE0
+ ldr r0, _0806BD10 @ =gSpeciesNames
adds r1, r0
adds r0, r4, 0
bl StringCopy
@@ -4069,7 +4069,7 @@ ScrCmd_bufferleadmonspeciesname: @ 806BCC8
.align 2, 0
_0806BD08: .4byte gUnknown_83A7294
_0806BD0C: .4byte gPlayerParty
-_0806BD10: .4byte gUnknown_8245EE0
+_0806BD10: .4byte gSpeciesNames
thumb_func_end ScrCmd_bufferleadmonspeciesname
thumb_func_start ScrCmd_bufferpartymonnick
@@ -5537,7 +5537,7 @@ ScrCmd_setmonobedient: @ 806C7D4
adds r0, r1
movs r1, 0x50
mov r2, sp
- bl sub_804037C
+ bl SetMonData
movs r0, 0
add sp, 0x4
pop {r1}
@@ -5598,7 +5598,7 @@ sub_806C844: @ 806C844
adds r0, r1
movs r1, 0x23
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_0806C87A:
movs r0, 0
add sp, 0x4
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 2c8a3af2a..604de1de2 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -15,7 +15,7 @@ sp000_heal_pokemon: @ 80A0058
sub sp, 0x4
movs r0, 0
mov r8, r0
- ldr r0, _080A0114 @ =gUnknown_2024029
+ ldr r0, _080A0114 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r8, r0
bcs _080A0104
@@ -37,7 +37,7 @@ _080A0076:
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x15
bl GetMonData
@@ -62,7 +62,7 @@ _080A00AC:
adds r1, 0x11
adds r0, r4, 0
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -79,12 +79,12 @@ _080A00AC:
add r0, r10
movs r1, 0x37
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r1, r9
lsls r0, r1, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _080A0114 @ =gUnknown_2024029
+ ldr r0, _080A0114 @ =gPlayerPartyCount
ldrb r0, [r0]
cmp r8, r0
bcc _080A0076
@@ -98,7 +98,7 @@ _080A0104:
pop {r0}
bx r0
.align 2, 0
-_080A0114: .4byte gUnknown_2024029
+_080A0114: .4byte gPlayerPartyCount
_080A0118: .4byte gPlayerParty
thumb_func_end sp000_heal_pokemon
@@ -139,7 +139,7 @@ ScriptGiveMon: @ 80A011C
adds r0, r7, 0
movs r1, 0xC
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
adds r0, r7, 0
bl GiveMonToPlayer
lsls r0, 24
@@ -189,7 +189,7 @@ sub_80A01AC: @ 80A01AC
adds r0, r5, 0
movs r1, 0x2D
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r5, 0
bl GiveMonToPlayer
adds r4, r0, 0
@@ -335,7 +335,7 @@ CreateScriptedWildMon: @ 80A029C
mov r0, r8
movs r1, 0xC
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
_080A02EA:
add sp, 0x14
pop {r3}
@@ -358,7 +358,7 @@ ScriptSetMonMoveSlot: @ 80A02FC
lsrs r2, 24
cmp r3, 0x6
bls _080A0318
- ldr r0, _080A032C @ =gUnknown_2024029
+ ldr r0, _080A032C @ =gPlayerPartyCount
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
@@ -374,7 +374,7 @@ _080A0318:
pop {r0}
bx r0
.align 2, 0
-_080A032C: .4byte gUnknown_2024029
+_080A032C: .4byte gPlayerPartyCount
_080A0330: .4byte gPlayerParty
thumb_func_end ScriptSetMonMoveSlot
diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s
index 81b861413..c2184904c 100644
--- a/asm/script_pokemon_util_80BF8FC.s
+++ b/asm/script_pokemon_util_80BF8FC.s
@@ -107,7 +107,7 @@ sub_80BF9BC: @ 80BF9BC
ldr r0, _080BF9F0 @ =gPlayerParty
ldr r1, _080BF9F4 @ =gUnknown_20370C0
ldrb r1, [r1]
- ldr r2, _080BF9F8 @ =gUnknown_2024029
+ ldr r2, _080BF9F8 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
@@ -128,7 +128,7 @@ sub_80BF9BC: @ 80BF9BC
.align 2, 0
_080BF9F0: .4byte gPlayerParty
_080BF9F4: .4byte gUnknown_20370C0
-_080BF9F8: .4byte gUnknown_2024029
+_080BF9F8: .4byte gPlayerPartyCount
_080BF9FC: .4byte c2_exit_to_overworld_2_switch
_080BFA00: .4byte gUnknown_3005020
_080BFA04: .4byte sub_807DD24
@@ -304,23 +304,23 @@ sub_80BFAA8: @ 80BFAA8
mov r0, r8
ldr r1, [sp, 0x8]
mov r2, sp
- bl sub_804037C
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x14]
- bl sub_804037C
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0x10]
mov r2, r10
- bl sub_804037C
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0x1C]
ldr r2, [sp, 0x18]
- bl sub_804037C
+ bl SetMonData
mov r0, r8
movs r1, 0x15
adds r2, r6, 0
- bl sub_804037C
+ bl SetMonData
add sp, 0x20
pop {r3-r5}
mov r8, r3
diff --git a/asm/trade.s b/asm/trade.s
index 8351a9a73..c78aba5ef 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -473,12 +473,12 @@ _0804CA10:
bl SetGpuReg
ldr r2, _0804CB2C @ =gUnknown_2031DA8
ldr r0, [r2]
- ldr r1, _0804CB30 @ =gUnknown_2024029
+ ldr r1, _0804CB30 @ =gPlayerPartyCount
ldrb r1, [r1]
adds r0, 0x36
strb r1, [r0]
ldr r0, [r2]
- ldr r1, _0804CB34 @ =gUnknown_202402A
+ ldr r1, _0804CB34 @ =gEnemyPartyCount
ldrb r1, [r1]
adds r0, 0x37
strb r1, [r0]
@@ -602,8 +602,8 @@ _0804CB20:
b _0804CEC2
.align 2, 0
_0804CB2C: .4byte gUnknown_2031DA8
-_0804CB30: .4byte gUnknown_2024029
-_0804CB34: .4byte gUnknown_202402A
+_0804CB30: .4byte gPlayerPartyCount
+_0804CB34: .4byte gEnemyPartyCount
_0804CB38: .4byte gUnknown_8261E40
_0804CB3C: .4byte gPlayerParty
_0804CB40: .4byte 0xfff40000
@@ -1156,12 +1156,12 @@ _0804D00C:
bl CalculateEnemyPartyCount
ldr r4, _0804D12C @ =gUnknown_2031DA8
ldr r0, [r4]
- ldr r1, _0804D130 @ =gUnknown_2024029
+ ldr r1, _0804D130 @ =gPlayerPartyCount
ldrb r1, [r1]
adds r0, 0x36
strb r1, [r0]
ldr r0, [r4]
- ldr r1, _0804D134 @ =gUnknown_202402A
+ ldr r1, _0804D134 @ =gEnemyPartyCount
ldrb r1, [r1]
adds r0, 0x37
strb r1, [r0]
@@ -1292,8 +1292,8 @@ _0804D120:
b _0804D4B4
.align 2, 0
_0804D12C: .4byte gUnknown_2031DA8
-_0804D130: .4byte gUnknown_2024029
-_0804D134: .4byte gUnknown_202402A
+_0804D130: .4byte gPlayerPartyCount
+_0804D134: .4byte gEnemyPartyCount
_0804D138: .4byte gUnknown_8261E40
_0804D13C: .4byte gPlayerParty
_0804D140: .4byte 0xfff40000
@@ -2488,7 +2488,7 @@ _0804DB1A:
adds r0, r4, 0
movs r1, 0x2
ldr r2, _0804DB74 @ =gUnknown_8246BE5
- bl sub_804037C
+ bl SetMonData
_0804DB5A:
adds r4, 0x64
subs r5, 0x1
@@ -3568,7 +3568,7 @@ _0804E3B6:
_0804E3D0: .4byte gUnknown_2031DA8
_0804E3D4:
ldr r0, _0804E3F4 @ =gPlayerParty
- ldr r1, _0804E3F8 @ =gUnknown_2024029
+ ldr r1, _0804E3F8 @ =gPlayerPartyCount
ldrb r1, [r1]
ldr r2, _0804E3FC @ =gUnknown_2031DA8
ldr r2, [r2]
@@ -3584,7 +3584,7 @@ _0804E3D4:
mov pc, r0
.align 2, 0
_0804E3F4: .4byte gPlayerParty
-_0804E3F8: .4byte gUnknown_2024029
+_0804E3F8: .4byte gPlayerPartyCount
_0804E3FC: .4byte gUnknown_2031DA8
_0804E400: .4byte _0804E404
.align 2, 0
@@ -7287,7 +7287,7 @@ _08050040:
lsls r0, r5, 3
ldr r1, _08050074 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _08050078 @ =gUnknown_202401C
+ ldr r1, _08050078 @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x8]
adds r2, r5, 0
@@ -7297,12 +7297,12 @@ _08050040:
b _0805009A
.align 2, 0
_08050074: .4byte gUnknown_82350AC
-_08050078: .4byte gUnknown_202401C
+_08050078: .4byte gMonSpritesGfxPtr
_0805007C:
lsls r0, r5, 3
ldr r1, _080500BC @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080500C0 @ =gUnknown_202401C
+ ldr r1, _080500C0 @ =gMonSpritesGfxPtr
ldr r2, [r1]
lsls r4, r6, 1
adds r1, r4, 0x1
@@ -7330,7 +7330,7 @@ _0805009A:
b _0805011E
.align 2, 0
_080500BC: .4byte gUnknown_82350AC
-_080500C0: .4byte gUnknown_202401C
+_080500C0: .4byte gMonSpritesGfxPtr
_080500C4: .4byte gUnknown_2031DAC
_080500C8:
mov r0, r8
@@ -7338,7 +7338,7 @@ _080500C8:
ldrh r0, [r0, 0x4]
adds r1, r4, 0
bl sub_803F7D4
- ldr r0, _08050128 @ =gUnknown_20244DC
+ ldr r0, _08050128 @ =gMultiuseSpriteTemplate
movs r1, 0x78
movs r2, 0x3C
movs r3, 0x6
@@ -7380,7 +7380,7 @@ _0805011E:
pop {r0}
bx r0
.align 2, 0
-_08050128: .4byte gUnknown_20244DC
+_08050128: .4byte gMultiuseSpriteTemplate
_0805012C: .4byte gUnknown_2031DAC
_08050130: .4byte gSprites
_08050134: .4byte SpriteCallbackDummy
@@ -8221,7 +8221,7 @@ _08050866:
adds r0, r7, 0
movs r1, 0x20
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_080508A2:
mov r0, r8
cmp r0, 0xFF
@@ -10809,7 +10809,7 @@ _08052042:
lsls r0, r2, 3
ldr r1, _08052068 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _0805206C @ =gUnknown_202401C
+ ldr r1, _0805206C @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
@@ -10820,7 +10820,7 @@ _08052042:
_08052060: .4byte gSprites
_08052064: .4byte SpriteCallbackDummy
_08052068: .4byte gUnknown_82350AC
-_0805206C: .4byte gUnknown_202401C
+_0805206C: .4byte gMonSpritesGfxPtr
_08052070:
ldr r4, _0805211C @ =gSprites
ldr r2, [r7]
@@ -11063,7 +11063,7 @@ _0805223C:
adds r0, r5
movs r1, 0x1
movs r2, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -13034,7 +13034,7 @@ _0805349E:
lsls r0, r2, 3
ldr r1, _080534C4 @ =gUnknown_82350AC
adds r0, r1
- ldr r1, _080534C8 @ =gUnknown_202401C
+ ldr r1, _080534C8 @ =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
@@ -13045,7 +13045,7 @@ _0805349E:
_080534BC: .4byte gSprites
_080534C0: .4byte SpriteCallbackDummy
_080534C4: .4byte gUnknown_82350AC
-_080534C8: .4byte gUnknown_202401C
+_080534C8: .4byte gMonSpritesGfxPtr
_080534CC:
ldr r4, _08053578 @ =gSprites
ldr r2, [r7]
@@ -13288,7 +13288,7 @@ _08053698:
adds r0, r5
movs r1, 0x1
movs r2, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -13416,7 +13416,7 @@ _080537B8:
adds r0, r5
movs r1, 0x1
movs r2, 0
- bl sub_8042EC4
+ bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -13793,7 +13793,7 @@ sub_8053A9C: @ 8053A9C
ldrh r1, [r4, 0x38]
movs r6, 0xB
muls r1, r6
- ldr r5, _08053ADC @ =gUnknown_8245EE0
+ ldr r5, _08053ADC @ =gSpeciesNames
adds r1, r5
bl StringCopy
ldr r0, _08053AE0 @ =gStringVar2
@@ -13809,7 +13809,7 @@ sub_8053A9C: @ 8053A9C
_08053AD0: .4byte gUnknown_20370C0
_08053AD4: .4byte gUnknown_826CF8C
_08053AD8: .4byte gStringVar1
-_08053ADC: .4byte gUnknown_8245EE0
+_08053ADC: .4byte gSpeciesNames
_08053AE0: .4byte gStringVar2
thumb_func_end sub_8053A9C
@@ -13840,7 +13840,7 @@ sub_8053AE4: @ 8053AE4
ldrh r2, [r4, 0xC]
movs r1, 0xB
muls r1, r2
- ldr r2, _08053B44 @ =gUnknown_8245EE0
+ ldr r2, _08053B44 @ =gSpeciesNames
adds r1, r2
bl StringCopy
add sp, 0x20
@@ -13854,7 +13854,7 @@ _08053B34: .4byte gUnknown_20370C2
_08053B38: .4byte gPlayerParty
_08053B3C: .4byte gStringVar1
_08053B40: .4byte gStringVar2
-_08053B44: .4byte gUnknown_8245EE0
+_08053B44: .4byte gSpeciesNames
thumb_func_end sub_8053AE4
thumb_func_start sub_8053B48
@@ -13898,85 +13898,85 @@ sub_8053B48: @ 8053B48
adds r2, 0xE
adds r0, r6, 0
movs r1, 0x27
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0xF
adds r0, r6, 0
movs r1, 0x28
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x10
adds r0, r6, 0
movs r1, 0x29
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x11
adds r0, r6, 0
movs r1, 0x2A
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x12
adds r0, r6, 0
movs r1, 0x2B
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x13
adds r0, r6, 0
movs r1, 0x2C
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x2
adds r2, r5, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x2B
adds r0, r6, 0
movs r1, 0x7
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x36
adds r0, r6, 0
movs r1, 0x31
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x14
adds r0, r6, 0
movs r1, 0x2E
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1D
adds r0, r6, 0
movs r1, 0x17
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1E
adds r0, r6, 0
movs r1, 0x18
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1C
adds r0, r6, 0
movs r1, 0x16
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1F
adds r0, r6, 0
movs r1, 0x21
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x20
adds r0, r6, 0
movs r1, 0x2F
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x37
adds r0, r6, 0
movs r1, 0x30
- bl sub_804037C
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x23
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
mov r4, sp
adds r4, 0x35
movs r0, 0
@@ -14002,12 +14002,12 @@ sub_8053B48: @ 8053B48
adds r0, r6, 0
movs r1, 0x40
adds r2, r4, 0
- bl sub_804037C
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
b _08053CC0
.align 2, 0
_08053CA4: .4byte gUnknown_826CF8C
@@ -14019,7 +14019,7 @@ _08053CB4:
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
- bl sub_804037C
+ bl SetMonData
_08053CC0:
ldr r0, _08053CD0 @ =gEnemyParty
bl CalculateMonStats
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index e9071a0dd..36b5085b3 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -319,7 +319,7 @@ _0815DA0C: .4byte gUnknown_20370C0
thumb_func_start sub_815DA10
sub_815DA10: @ 815DA10
- ldr r1, _0815DA20 @ =gUnknown_825393E
+ ldr r1, _0815DA20 @ =gFacilityClassToTrainerClass
ldr r0, _0815DA24 @ =gUnknown_203F45C
ldr r0, [r0]
adds r0, 0x3D
@@ -328,7 +328,7 @@ sub_815DA10: @ 815DA10
ldrb r0, [r0]
bx lr
.align 2, 0
-_0815DA20: .4byte gUnknown_825393E
+_0815DA20: .4byte gFacilityClassToTrainerClass
_0815DA24: .4byte gUnknown_203F45C
thumb_func_end sub_815DA10
@@ -347,7 +347,7 @@ _0815DA38: .4byte gUnknown_203F45C
thumb_func_start sub_815DA3C
sub_815DA3C: @ 815DA3C
- ldr r1, _0815DA4C @ =gUnknown_82538A8
+ ldr r1, _0815DA4C @ =gFacilityClassToPicIndex
ldr r0, _0815DA50 @ =gUnknown_203F45C
ldr r0, [r0]
adds r0, 0x3D
@@ -356,7 +356,7 @@ sub_815DA3C: @ 815DA3C
ldrb r0, [r0]
bx lr
.align 2, 0
-_0815DA4C: .4byte gUnknown_82538A8
+_0815DA4C: .4byte gFacilityClassToPicIndex
_0815DA50: .4byte gUnknown_203F45C
thumb_func_end sub_815DA3C
@@ -2287,14 +2287,14 @@ sub_815E948: @ 815E948
ldrb r1, [r3, 0x1B]
movs r3, 0
ldr r2, _0815E984 @ =gUnknown_847A074
- ldr r0, _0815E988 @ =gUnknown_825393E
+ ldr r0, _0815E988 @ =gFacilityClassToTrainerClass
adds r1, r0
b _0815E994
.align 2, 0
_0815E97C: .4byte 0x00004001
_0815E980: .4byte gUnknown_203F458
_0815E984: .4byte gUnknown_847A074
-_0815E988: .4byte gUnknown_825393E
+_0815E988: .4byte gFacilityClassToTrainerClass
_0815E98C:
adds r2, 0x4
adds r3, 0x1
diff --git a/data/data.s b/data/data.s
index 7f2b474aa..b6b915577 100644
--- a/data/data.s
+++ b/data/data.s
@@ -88,7 +88,7 @@ gUnknown_82373F4:: @ 82373F4
gUnknown_82380CC:: @ 82380CC
.incbin "baserom.gba", 0x2380CC, 0x1010
-gUnknown_82390DC:: @ 82390DC
+gTrainerFrontAnimsPtrTable:: @ 82390DC
.incbin "baserom.gba", 0x2390DC, 0x250
gUnknown_823932C:: @ 823932C
@@ -100,7 +100,7 @@ gUnknown_823957C:: @ 823957C
gUnknown_8239A1C:: @ 8239A1C
.incbin "baserom.gba", 0x239A1C, 0x558
-gUnknown_8239F74:: @ 8239F74
+gTrainerBackAnimsPtrTable:: @ 8239F74
.incbin "baserom.gba", 0x239F74, 0x18
gUnknown_8239F8C:: @ 8239F8C
@@ -121,7 +121,7 @@ gUnknown_823E558:: @ 823E558
gTrainers:: @ 823EAD8
.incbin "baserom.gba", 0x23EAC8, 0x7418
-gUnknown_8245EE0:: @ 8245EE0
+gSpeciesNames:: @ 8245EE0
.incbin "baserom.gba", 0x245EE0, 0xD05
gUnknown_8246BE5:: @ 8246BE5
@@ -296,10 +296,7 @@ gUnknown_8250B20:: @ 8250B20
.incbin "baserom.gba", 0x250B20, 0xE4
gBattleMoves:: @ 8250C04
- .incbin "baserom.gba", 0x250C04, 0x4
-
-gUnknown_8250C08:: @ 8250C08
- .incbin "baserom.gba", 0x250C08, 0x10B0
+ .incbin "baserom.gba", 0x250C04, 0x10B4
gUnknown_8251CB8:: @ 8251CB8
.incbin "baserom.gba", 0x251CB8, 0x336
@@ -316,7 +313,7 @@ gUnknown_825265C:: @ 825265C
gUnknown_825265E:: @ 825265E
.incbin "baserom.gba", 0x25265E, 0x25E
-gUnknown_82528BC:: @ 82528BC
+gItemEffectTable:: @ 82528BC
.incbin "baserom.gba", 0x2528BC, 0x28C
gUnknown_8252B48:: @ 8252B48
@@ -325,16 +322,16 @@ gUnknown_8252B48:: @ 8252B48
gUnknown_8252BC8:: @ 8252BC8
.incbin "baserom.gba", 0x252BC8, 0xCE0
-gUnknown_82538A8:: @ 82538A8
+gFacilityClassToPicIndex:: @ 82538A8
.incbin "baserom.gba", 0x2538A8, 0x96
-gUnknown_825393E:: @ 825393E
+gFacilityClassToTrainerClass:: @ 825393E
.incbin "baserom.gba", 0x25393E, 0x96
gUnknown_82539D4:: @ 82539D4
.incbin "baserom.gba", 0x2539D4, 0x110
-gUnknown_8253AE4:: @ 8253AE4
+gExperienceTables:: @ 8253AE4
.incbin "baserom.gba", 0x253AE4, 0xCA0
gBaseStats:: @ 8254784
@@ -346,7 +343,7 @@ gUnknown_8254795:: @ 8254795
gUnknown_8259754:: @ 8259754
.incbin "baserom.gba", 0x259754, 0x4060
-gUnknown_825D7B4:: @ 825D7B4
+gLevelUpLearnsets:: @ 825D7B4
.incbin "baserom.gba", 0x25D7B4, 0x670
gUnknown_825DE24:: @ 825DE24
@@ -355,16 +352,16 @@ gUnknown_825DE24:: @ 825DE24
gUnknown_825DEA1:: @ 825DEA1
.incbin "baserom.gba", 0x25DEA1, 0x4
-gUnknown_825DEA5:: @ 825DEA5
+gPPUpWriteMasks:: @ 825DEA5
.incbin "baserom.gba", 0x25DEA5, 0x4
gUnknown_825DEA9:: @ 825DEA9
.incbin "baserom.gba", 0x25DEA9, 0x4
-gUnknown_825DEAD:: @ 825DEAD
+gStatStageRatios:: @ 825DEAD
.incbin "baserom.gba", 0x25DEAD, 0x1F
-gUnknown_825DECC:: @ 825DECC
+sHoldEffectToType:: @ 825DECC
.incbin "baserom.gba", 0x25DECC, 0x24
gUnknown_825DEF0:: @ 825DEF0
@@ -373,10 +370,10 @@ gUnknown_825DEF0:: @ 825DEF0
gUnknown_825DF50:: @ 825DF50
.incbin "baserom.gba", 0x25DF50, 0x90
-gUnknown_825DFE0:: @ 825DFE0
+sSecretBaseFacilityClasses:: @ 825DFE0
.incbin "baserom.gba", 0x25DFE0, 0xA
-gUnknown_825DFEA:: @ 825DFEA
+sGetMonDataEVConstants:: @ 825DFEA
.incbin "baserom.gba", 0x25DFEA, 0x6
gUnknown_825DFF0:: @ 825DFF0
diff --git a/data/data_84827AC.s b/data/data_84827AC.s
index 2c69a76d7..0176941f6 100644
--- a/data/data_84827AC.s
+++ b/data/data_84827AC.s
@@ -579,7 +579,7 @@ gUnknown_83FE860:: @ 83FE860
gUnknown_83FE864:: @ 83FE864
.incbin "baserom.gba", 0x3FE864, 0x4
-gUnknown_83FE868:: @ 83FE868
+gText_BadEgg:: @ 83FE868
.incbin "baserom.gba", 0x3FE868, 0xC
gUnknown_83FE874:: @ 83FE874
@@ -1185,7 +1185,7 @@ gExpandedPlaceholder_Red:: @ 8415A58
gExpandedPlaceholder_Green:: @ 8415A5C
.incbin "baserom.gba", 0x415A5C, 0x6
-gUnknown_8415A62:: @ 8415A62
+gText_EggNickname:: @ 8415A62
.incbin "baserom.gba", 0x415A62, 0x4
gUnknown_8415A66:: @ 8415A66
diff --git a/include/battle.h b/include/battle.h
index f98b2231a..b1d442c73 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -28,7 +28,7 @@
#define SIDE_OPPONENT 0x1
#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
-#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
+#define GET_BANK_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE))
#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
#define BATTLE_TYPE_DOUBLE 0x0001
@@ -210,7 +210,7 @@ struct TrainerMonNoItemDefaultMoves
};
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
-u8 GetBankSide(u8 bank);
+u8 GetBattlerSide(u8 bank);
struct TrainerMonItemDefaultMoves
{
@@ -646,6 +646,9 @@ extern struct BattleStruct* gBattleStruct;
typeArg = gBattleMoves[move].type; \
}
+#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
+#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
+
#define MOVE_EFFECT_SLEEP 0x1
#define MOVE_EFFECT_POISON 0x2
#define MOVE_EFFECT_BURN 0x3
@@ -847,9 +850,9 @@ enum
};
// rom_80A5C6C
-u8 GetBankSide(u8 bank);
-u8 GetBankIdentity(u8 bank);
-u8 GetBankByIdentity(u8 bank);
+u8 GetBattlerSide(u8 bank);
+u8 GetBattlerPosition(u8 bank);
+u8 GetBattlerAtPosition(u8 bank);
struct BattleSpriteInfo
{
@@ -961,5 +964,17 @@ extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
extern struct MonSpritesGfx* gMonSpritesGfxPtr;
extern u16 gTrainerBattleOpponent_A;
+extern u16 gMoveToLearn;
+extern u16 gBattleMovePower;
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
+extern u16 gCurrentMove;
+extern u8 gCritMultiplier;
+extern u16 gBattleWeather;
+extern u8 gLastUsedAbility;
+extern u8 gBattlerInMenuId;
+extern u8 gPotentialItemEffectBattler;
+extern u8 gBattlersCount;
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern s32 gBattleMoveDamage;
#endif // GUARD_BATTLE_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index c69cb1017..66984b453 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -181,7 +181,7 @@ void sub_8033648(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
// emitters
-void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
+void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
diff --git a/include/battle_util.h b/include/battle_util.h
index 81eb85dc7..25e26719b 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -30,6 +30,10 @@
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
+#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
+#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
+#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0))
+
#define ITEMEFFECT_ON_SWITCH_IN 0x0
#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
@@ -80,5 +84,6 @@ void ClearFuryCutterDestinyBondGrudge(u8 bank);
void HandleAction_RunBattleScript(void);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 IsMonDisobedient(void);
+void MarkBufferBankForExecution(u8 battlerId);
#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index e74ef1ef0..04c20b2f2 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1286,6 +1286,13 @@
#define TRAINERS_FLAG_NO 0x356
#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
+// TODO: Find what these are
+#define FLAG_UNK820 0x820
+#define FLAG_UNK824 0x824
+#define FLAG_UNK826 0x826
+
+#define FLAG_UNK843 0x843
+
// SYSTEM FLAGS
// 0x860
diff --git a/include/constants/items.h b/include/constants/items.h
index 6135b8d6f..dd2b4c4ed 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -390,4 +390,7 @@
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
+// Check if the item is one that can be used on a Pokemon.
+#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
+
#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
new file mode 100644
index 000000000..78c1583b4
--- /dev/null
+++ b/include/constants/pokemon.h
@@ -0,0 +1,80 @@
+#ifndef GUARD_CONSTANTS_POKEMON_H
+#define GUARD_CONSTANTS_POKEMON_H
+
+// Pokemon types
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+#define NUMBER_OF_MON_TYPES 0x12
+
+// Pokemon egg groups
+#define EGG_GROUP_NONE 0
+#define EGG_GROUP_MONSTER 1
+#define EGG_GROUP_WATER_1 2
+#define EGG_GROUP_BUG 3
+#define EGG_GROUP_FLYING 4
+#define EGG_GROUP_FIELD 5
+#define EGG_GROUP_FAIRY 6
+#define EGG_GROUP_GRASS 7
+#define EGG_GROUP_HUMAN_LIKE 8
+#define EGG_GROUP_WATER_3 9
+#define EGG_GROUP_MINERAL 10
+#define EGG_GROUP_AMORPHOUS 11
+#define EGG_GROUP_WATER_2 12
+#define EGG_GROUP_DITTO 13
+#define EGG_GROUP_DRAGON 14
+#define EGG_GROUP_UNDISCOVERED 15
+
+// Pokemon natures
+#define NATURE_HARDY 0
+#define NATURE_LONELY 1
+#define NATURE_BRAVE 2
+#define NATURE_ADAMANT 3
+#define NATURE_NAUGHTY 4
+#define NATURE_BOLD 5
+#define NATURE_DOCILE 6
+#define NATURE_RELAXED 7
+#define NATURE_IMPISH 8
+#define NATURE_LAX 9
+#define NATURE_TIMID 10
+#define NATURE_HASTY 11
+#define NATURE_SERIOUS 12
+#define NATURE_JOLLY 13
+#define NATURE_NAIVE 14
+#define NATURE_MODEST 15
+#define NATURE_MILD 16
+#define NATURE_QUIET 17
+#define NATURE_BASHFUL 18
+#define NATURE_RASH 19
+#define NATURE_CALM 20
+#define NATURE_GENTLE 21
+#define NATURE_SASSY 22
+#define NATURE_CAREFUL 23
+#define NATURE_QUIRKY 24
+
+// Pokemon Stats
+#define STAT_HP 0
+#define STAT_ATK 1
+#define STAT_DEF 2
+#define STAT_SPEED 3
+#define STAT_SPATK 4
+#define STAT_SPDEF 5
+#define STAT_ACC 6 // only in battles
+#define STAT_EVASION 7 // only in battles
+
+#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/global.h b/include/global.h
index 75911b9f2..7de1232ad 100644
--- a/include/global.h
+++ b/include/global.h
@@ -239,6 +239,18 @@ struct SaveBlock2
extern struct SaveBlock2 *gSaveBlock2Ptr;
+#define PARTY_SIZE 6
+
+struct SecretBaseParty
+{
+ u32 personality[PARTY_SIZE];
+ u16 moves[PARTY_SIZE * 4];
+ u16 species[PARTY_SIZE];
+ u16 heldItems[PARTY_SIZE];
+ u8 levels[PARTY_SIZE];
+ u8 EVs[PARTY_SIZE];
+};
+
struct SecretBaseRecord
{
/*0x1A9C*/ u8 secretBaseId;
@@ -246,7 +258,7 @@ struct SecretBaseRecord
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 sbr_field_1_5:1;
/*0x1A9D*/ u8 sbr_field_1_6:2;
- /*0x1A9E*/ u8 trainerName[OT_NAME_LENGTH];
+ /*0x1A9E*/ u8 trainerName[7]; // TODO: Change PLAYER_NAME_LENGTH to 7
/*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 sbr_field_e;
@@ -254,12 +266,7 @@ struct SecretBaseRecord
/*0x1AAD*/ u8 sbr_field_11;
/*0x1AAE*/ u8 decorations[16];
/*0x1ABE*/ u8 decorationPos[16];
- /*0x1AD0*/ u32 partyPersonality[6];
- /*0x1AE8*/ u16 partyMoves[6 * 4];
- /*0x1B18*/ u16 partySpecies[6];
- /*0x1B24*/ u16 partyHeldItems[6];
- /*0x1B2E*/ u8 partyLevels[6];
- /*0x1B34*/ u8 partyEVs[6];
+ /*0x1AD0*/ struct SecretBaseParty party;
};
#include "constants/game_stat.h"
@@ -476,7 +483,9 @@ struct SaveBlock1
{
/*0x0000*/ u8 filler[0x4];
/*0x0004*/ struct WarpData location;
- /*0x000C*/ u8 fillerC[0x3610];
+ /*0x000C*/ u8 fillerC[0x30DE];
+ /*0x30EA*/ struct EnigmaBerry enigmaBerry;
+ /*0x3120*/ u8 filler3120[0x4FC];
/*0x361C*/ struct RamScript ramScript;
/*0x3A08*/ u8 filler3A08[0x44];
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
diff --git a/include/pokemon.h b/include/pokemon.h
index 480c8d9b9..2a8dc9c7d 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -523,11 +523,15 @@ extern struct Pokemon gEnemyParty[PARTY_SIZE];
extern const struct BaseStats gBaseStats[];
extern const u8 *const gItemEffectTable[];
extern const struct EvolutionData gEvolutionTable[];
+extern const u8 gStatStageRatios[][2];
+extern struct SpriteTemplate gMultiuseSpriteTemplate;
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
+extern const u8 gFacilityClassToPicIndex[];
+extern const u8 gFacilityClassToTrainerClass[];
-u8 CountAliveMonsInBattle(u8 caseId);
+u8 CountAliveMons(u8 caseId);
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
@@ -558,6 +562,8 @@ void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
+bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
+bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
@@ -653,6 +659,7 @@ u8 GetSecretBaseTrainerPicIndex(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
+bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
#include "sprite.h"
diff --git a/ld_script.txt b/ld_script.txt
index bc27ac048..578a3f147 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -75,10 +75,7 @@ SECTIONS {
asm/battle_controller_opponent.o(.text);
asm/battle_ai_switch_items.o(.text);
asm/battle_controller_link_opponent.o(.text);
- asm/pokemon_1.o(.text);
- asm/calculate_base_damage.o(.text);
- asm/pokemon_2.o(.text);
- asm/pokemon_item_effect.o(.text);
+ src/pokemon.o(.text);
asm/pokemon_3.o(.text);
asm/trig.o(.text);
src/random.o(.text);
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 22ed95040..6f5577f70 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -256,7 +256,6 @@ extern const u32 gBitTable[]; // util.h
extern u32 gStatuses3[]; // battle_2.h
extern u16 gSideAffecting[2];
extern const struct BattleMove gBattleMoves[];
-extern u16 gBattlerPartyIndexes[];
extern u16 gDynamicBasePower;
extern u8 gMoveResultFlags;
extern u8 gCritMultiplier;
@@ -485,14 +484,14 @@ void sub_80C71A8(u8 a)
void sub_80C71D0(u8 a, u8 b)
{
- if (GetBankSide(a) == 0)
- BATTLE_HISTORY->abilities[GetBankIdentity(a) & 1] = b;
+ if (GetBattlerSide(a) == 0)
+ BATTLE_HISTORY->abilities[GetBattlerPosition(a) & 1] = b;
}
void sub_80C7208(u8 a, u8 b)
{
- if (GetBankSide(a) == 0)
- BATTLE_HISTORY->itemEffects[GetBankIdentity(a) & 1] = b;
+ if (GetBattlerSide(a) == 0)
+ BATTLE_HISTORY->itemEffects[GetBattlerPosition(a) & 1] = b;
}
static void BattleAICmd_if_random_less_than(void)
@@ -720,7 +719,7 @@ static void BattleAICmd_if_status4(void)
else
index = gBattlerTarget;
- arg1 = GetBankIdentity(index) & 1;
+ arg1 = GetBattlerPosition(index) & 1;
arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) != 0)
@@ -739,7 +738,7 @@ static void BattleAICmd_if_not_status4(void)
else
index = gBattlerTarget;
- arg1 = GetBankIdentity(index) & 1;
+ arg1 = GetBattlerPosition(index) & 1;
arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) == 0)
@@ -1361,7 +1360,7 @@ static void BattleAICmd_count_alive_pokemon(void)
else
index = gBattlerTarget;
- if (GetBankSide(index) == 0)
+ if (GetBattlerSide(index) == 0)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -1370,8 +1369,8 @@ static void BattleAICmd_count_alive_pokemon(void)
{
u32 status;
var = gBattlerPartyIndexes[index];
- status = GetBankIdentity(index) ^ 2;
- var2 = gBattlerPartyIndexes[GetBankByIdentity(status)];
+ status = GetBattlerPosition(index) ^ 2;
+ var2 = gBattlerPartyIndexes[GetBattlerAtPosition(status)];
}
else
{
@@ -1414,9 +1413,9 @@ static void BattleAICmd_get_ability(void)
else
index = gBattlerTarget;
- if (GetBankSide(index) == TARGET)
+ if (GetBattlerSide(index) == TARGET)
{
- u16 side = GetBankIdentity(index) & 1;
+ u16 side = GetBattlerPosition(index) & 1;
if (BATTLE_HISTORY->abilities[side] != 0)
{
@@ -2008,9 +2007,9 @@ static void BattleAICmd_get_hold_effect(void)
else
index = gBattlerTarget;
- if (GetBankSide(index) == 0)
+ if (GetBattlerSide(index) == 0)
{
- side = (GetBankIdentity(index) & 1);
+ side = (GetBattlerPosition(index) & 1);
AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->itemEffects[side];
}
else
diff --git a/src/pokemon.c b/src/pokemon.c
new file mode 100644
index 000000000..c9bfa8614
--- /dev/null
+++ b/src/pokemon.c
@@ -0,0 +1,2833 @@
+#include "global.h"
+#include "pokemon.h"
+#include "random.h"
+#include "main.h"
+#include "text.h"
+#include "string_util.h"
+#include "battle.h"
+#include "item.h"
+#include "event_data.h"
+#include "util.h"
+#include "pokemon_storage_system.h"
+#include "data2.h"
+#include "battle_gfx_sfx_util.h"
+#include "battle_controllers.h"
+#include "evolution_scene.h"
+#include "constants/items.h"
+#include "constants/species.h"
+#include "constants/pokemon.h"
+#include "constants/abilities.h"
+#include "constants/flags.h"
+#include "constants/moves.h"
+#include "constants/hold_effects.h"
+#include "constants/battle_move_effects.h"
+
+// Extracts the upper 16 bits of a 32-bit number
+#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
+
+// Extracts the lower 16 bits of a 32-bit number
+#define LOHALF(n) ((n) & 0xFFFF)
+
+// TODO: what is this
+struct UnkStruct20244F4
+{
+ u8 unk0:4;
+ u8 unk0_2:4;
+ u8 filler1[0xF];
+ struct SpriteTemplate *unk10;
+};
+extern struct UnkStruct20244F4 *gUnknown_20244F4;
+extern struct SpriteTemplate gUnknown_825DEF0[];
+extern struct SpriteTemplate gUnknown_825DF50[];
+extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
+extern struct SpriteTemplate gUnknown_825DEF0[];
+extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
+extern const union AnimCmd *const gUnknown_82349BC[];
+extern const u8 gText_EggNickname[];
+extern const u8 gText_BadEgg[];
+extern const u8 gUnknown_825DEA1[];
+extern const u8 gPPUpWriteMasks[];
+
+extern u8 sav1_map_get_name(void); // overworld
+extern const struct BattleMove gBattleMoves[];
+extern u8 sBattler_AI; // battle_ai
+extern void set_unknown_box_id(u8); // field_specials
+extern u8 pokemon_order_func(u8);
+extern u16 get_unknown_box_id(void); // field_specials
+extern u8 StorageGetCurrentBox(void); // pokemon_storage_system
+extern void sub_80174B8(u8 battlerId);
+
+union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType);
+s32 GetDeoxysStat(struct Pokemon *mon, s32 statId);
+
+extern const u8 sHoldEffectToType[][2];
+extern u8 sLearningMoveTableID;
+extern const u8 sSecretBaseFacilityClasses[2][5];
+
+// code
+void ZeroBoxMonData(struct BoxPokemon *boxMon)
+{
+ u8 *raw = (u8 *)boxMon;
+ u32 i;
+ for (i = 0; i < sizeof(struct BoxPokemon); i++)
+ raw[i] = 0;
+}
+
+void ZeroMonData(struct Pokemon *mon)
+{
+ u32 arg;
+ ZeroBoxMonData(&mon->box);
+ arg = 0;
+ SetMonData(mon, MON_DATA_STATUS, &arg);
+ SetMonData(mon, MON_DATA_LEVEL, &arg);
+ SetMonData(mon, MON_DATA_HP, &arg);
+ SetMonData(mon, MON_DATA_MAX_HP, &arg);
+ SetMonData(mon, MON_DATA_ATK, &arg);
+ SetMonData(mon, MON_DATA_DEF, &arg);
+ SetMonData(mon, MON_DATA_SPEED, &arg);
+ SetMonData(mon, MON_DATA_SPATK, &arg);
+ SetMonData(mon, MON_DATA_SPDEF, &arg);
+ arg = 255;
+ SetMonData(mon, MON_DATA_MAIL, &arg);
+}
+
+void ZeroPlayerPartyMons(void)
+{
+ s32 i;
+ for (i = 0; i < PARTY_SIZE; i++)
+ ZeroMonData(&gPlayerParty[i]);
+}
+
+void ZeroEnemyPartyMons(void)
+{
+ s32 i;
+ for (i = 0; i < PARTY_SIZE; i++)
+ ZeroMonData(&gEnemyParty[i]);
+}
+
+void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
+{
+ u32 arg;
+ ZeroMonData(mon);
+ CreateBoxMon(&mon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
+ SetMonData(mon, MON_DATA_LEVEL, &level);
+ arg = 255;
+ SetMonData(mon, MON_DATA_MAIL, &arg);
+ CalculateMonStats(mon);
+}
+
+void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
+{
+ u8 speciesName[POKEMON_NAME_LENGTH + 1];
+ u32 personality;
+ u32 value;
+ u16 checksum;
+
+ ZeroBoxMonData(boxMon);
+
+ if (hasFixedPersonality)
+ personality = fixedPersonality;
+ else
+ personality = Random32();
+
+ SetBoxMonData(boxMon, MON_DATA_PERSONALITY, &personality);
+
+ //Determine original trainer ID
+ if (otIdType == OT_ID_RANDOM_NO_SHINY) //Pokemon cannot be shiny
+ {
+ u32 shinyValue;
+ do
+ {
+ value = Random32();
+ shinyValue = HIHALF(value) ^ LOHALF(value) ^ HIHALF(personality) ^ LOHALF(personality);
+ } while (shinyValue < 8);
+ }
+ else if (otIdType == OT_ID_PRESET) //Pokemon has a preset OT ID
+ {
+ value = fixedOtId;
+ }
+ else //Player is the OT
+ {
+ value = gSaveBlock2Ptr->playerTrainerId[0]
+ | (gSaveBlock2Ptr->playerTrainerId[1] << 8)
+ | (gSaveBlock2Ptr->playerTrainerId[2] << 16)
+ | (gSaveBlock2Ptr->playerTrainerId[3] << 24);
+ }
+
+ SetBoxMonData(boxMon, MON_DATA_OT_ID, &value);
+
+ checksum = CalculateBoxMonChecksum(boxMon);
+ SetBoxMonData(boxMon, MON_DATA_CHECKSUM, &checksum);
+ EncryptBoxMon(boxMon);
+ GetSpeciesName(speciesName, species);
+ SetBoxMonData(boxMon, MON_DATA_NICKNAME, speciesName);
+ SetBoxMonData(boxMon, MON_DATA_LANGUAGE, &gGameLanguage);
+ SetBoxMonData(boxMon, MON_DATA_OT_NAME, gSaveBlock2Ptr->playerName);
+ SetBoxMonData(boxMon, MON_DATA_SPECIES, &species);
+ SetBoxMonData(boxMon, MON_DATA_EXP, &gExperienceTables[gBaseStats[species].growthRate][level]);
+ SetBoxMonData(boxMon, MON_DATA_FRIENDSHIP, &gBaseStats[species].friendship);
+ value = sav1_map_get_name();
+ SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &value);
+ SetBoxMonData(boxMon, MON_DATA_MET_LEVEL, &level);
+ SetBoxMonData(boxMon, MON_DATA_MET_GAME, &gGameVersion);
+ value = ITEM_POKE_BALL;
+ SetBoxMonData(boxMon, MON_DATA_POKEBALL, &value);
+ SetBoxMonData(boxMon, MON_DATA_OT_GENDER, &gSaveBlock2Ptr->playerGender);
+
+ if (fixedIV < 32)
+ {
+ SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_DEF_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &fixedIV);
+ }
+ else
+ {
+ u32 iv;
+ value = Random();
+
+ iv = value & 0x1F;
+ SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv);
+ iv = (value & 0x3E0) >> 5;
+ SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv);
+ iv = (value & 0x7C00) >> 10;
+ SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv);
+
+ value = Random();
+
+ iv = value & 0x1F;
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
+ iv = (value & 0x3E0) >> 5;
+ SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
+ iv = (value & 0x7C00) >> 10;
+ SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
+ }
+
+ if (gBaseStats[species].ability2)
+ {
+ value = personality & 1;
+ SetBoxMonData(boxMon, MON_DATA_ALT_ABILITY, &value);
+ }
+
+ GiveBoxMonInitialMoveset(boxMon);
+}
+
+void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 nature)
+{
+ u32 personality;
+
+ do
+ {
+ personality = Random32();
+ }
+ while (nature != GetNatureFromPersonality(personality));
+
+ CreateMon(mon, species, level, fixedIV, 1, personality, OT_ID_PLAYER_ID, 0);
+}
+
+void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter)
+{
+ u32 personality;
+
+ if ((u8)(unownLetter - 1) < 28)
+ {
+ u16 actualLetter;
+
+ do
+ {
+ personality = Random32();
+ actualLetter = ((((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 28);
+ }
+ while (nature != GetNatureFromPersonality(personality)
+ || gender != GetGenderFromSpeciesAndPersonality(species, personality)
+ || actualLetter != unownLetter - 1);
+ }
+ else
+ {
+ do
+ {
+ personality = Random32();
+ }
+ while (nature != GetNatureFromPersonality(personality)
+ || gender != GetGenderFromSpeciesAndPersonality(species, personality));
+ }
+
+ CreateMon(mon, species, level, fixedIV, 1, personality, OT_ID_PLAYER_ID, 0);
+}
+
+// Used to create the Old Man's Weedle?
+void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level)
+{
+ u32 personality;
+ u32 otId;
+
+ do
+ {
+ otId = Random32();
+ personality = Random32();
+ }
+ while (GetGenderFromSpeciesAndPersonality(species, personality) != MON_MALE);
+ CreateMon(mon, species, level, 32, 1, personality, OT_ID_PRESET, otId);
+}
+
+void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality)
+{
+ CreateMon(mon, species, level, 0, 1, personality, OT_ID_PLAYER_ID, 0);
+ SetMonData(mon, MON_DATA_IVS, &ivs);
+ CalculateMonStats(mon);
+}
+
+void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId)
+{
+ CreateMon(mon, species, level, 0, 0, 0, OT_ID_PRESET, otId);
+ SetMonData(mon, MON_DATA_HP_IV, &ivs[0]);
+ SetMonData(mon, MON_DATA_ATK_IV, &ivs[1]);
+ SetMonData(mon, MON_DATA_DEF_IV, &ivs[2]);
+ SetMonData(mon, MON_DATA_SPEED_IV, &ivs[3]);
+ SetMonData(mon, MON_DATA_SPATK_IV, &ivs[4]);
+ SetMonData(mon, MON_DATA_SPDEF_IV, &ivs[5]);
+ CalculateMonStats(mon);
+}
+
+void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread)
+{
+ s32 i;
+ s32 statCount = 0;
+ u16 evAmount;
+ u8 evsBits;
+
+ CreateMon(mon, species, level, fixedIV, 0, 0, 0, 0);
+
+ evsBits = evSpread;
+
+ for (i = 0; i < NUM_STATS; i++)
+ {
+ if (evsBits & 1)
+ statCount++;
+ evsBits >>= 1;
+ }
+
+ evAmount = MAX_TOTAL_EVS / statCount;
+
+ evsBits = 1;
+
+ for (i = 0; i < NUM_STATS; i++)
+ {
+ if (evSpread & evsBits)
+ SetMonData(mon, MON_DATA_HP_EV + i, &evAmount);
+ evsBits <<= 1;
+ }
+
+ CalculateMonStats(mon);
+}
+
+void sub_803E0A4(struct Pokemon *mon, struct UnknownPokemonStruct *src)
+{
+ s32 i;
+ u8 value;
+
+ CreateMon(mon, src->species, src->level, 0, 1, src->personality, 1, src->otId);
+
+ for (i = 0; i < 4; i++)
+ SetMonMoveSlot(mon, src->moves[i], i);
+
+ SetMonData(mon, MON_DATA_PP_BONUSES, &src->ppBonuses);
+ SetMonData(mon, MON_DATA_HELD_ITEM, &src->heldItem);
+
+ // Why is this commented out in FR/LG?
+ /*
+ StringCopy(nickname, src->nickname);
+
+ if (nickname[0] == 0xFC && nickname[1] == 0x15)
+ language = LANGUAGE_JAPANESE;
+ else
+ language = GAME_LANGUAGE;
+
+ SetMonData(mon, MON_DATA_LANGUAGE, &language);
+ Text_StripExtCtrlCodes(nickname);
+ */
+
+ SetMonData(mon, MON_DATA_NICKNAME, &src->nickname);
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &src->friendship);
+ SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
+ SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
+ SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
+ SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
+ SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
+ SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
+ value = src->altAbility;
+ SetMonData(mon, MON_DATA_ALT_ABILITY, &value);
+ value = src->hpIV;
+ SetMonData(mon, MON_DATA_HP_IV, &value);
+ value = src->attackIV;
+ SetMonData(mon, MON_DATA_ATK_IV, &value);
+ value = src->defenseIV;
+ SetMonData(mon, MON_DATA_DEF_IV, &value);
+ value = src->speedIV;
+ SetMonData(mon, MON_DATA_SPEED_IV, &value);
+ value = src->spAttackIV;
+ SetMonData(mon, MON_DATA_SPATK_IV, &value);
+ value = src->spDefenseIV;
+ SetMonData(mon, MON_DATA_SPDEF_IV, &value);
+ CalculateMonStats(mon);
+}
+
+void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
+{
+ bool32 obedient = TRUE;
+
+ CreateMon(mon, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
+ SetMonData(mon, MON_DATA_OBEDIENCE, &obedient);
+}
+
+void sub_803E23C(struct Pokemon *mon, struct UnknownPokemonStruct *dest)
+{
+ s32 i;
+ u16 heldItem;
+
+ dest->species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
+
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ heldItem = 0;
+
+ dest->heldItem = heldItem;
+
+ for (i = 0; i < 4; i++)
+ dest->moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
+
+ dest->level = GetMonData(mon, MON_DATA_LEVEL, NULL);
+ dest->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
+ dest->otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+ dest->hpEV = GetMonData(mon, MON_DATA_HP_EV, NULL);
+ dest->attackEV = GetMonData(mon, MON_DATA_ATK_EV, NULL);
+ dest->defenseEV = GetMonData(mon, MON_DATA_DEF_EV, NULL);
+ dest->speedEV = GetMonData(mon, MON_DATA_SPEED_EV, NULL);
+ dest->spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV, NULL);
+ dest->spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV, NULL);
+ dest->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
+ dest->hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
+ dest->attackIV = GetMonData(mon, MON_DATA_ATK_IV, NULL);
+ dest->defenseIV = GetMonData(mon, MON_DATA_DEF_IV, NULL);
+ dest->speedIV = GetMonData(mon, MON_DATA_SPEED_IV, NULL);
+ dest->spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV, NULL);
+ dest->spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV, NULL);
+ dest->altAbility = GetMonData(mon, MON_DATA_ALT_ABILITY, NULL);
+ dest->personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ GetMonData(mon, MON_DATA_NICKNAME, dest->nickname);
+}
+
+u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon)
+{
+ u16 checksum = 0;
+ union PokemonSubstruct *substruct0 = GetSubstruct(boxMon, boxMon->personality, 0);
+ union PokemonSubstruct *substruct1 = GetSubstruct(boxMon, boxMon->personality, 1);
+ union PokemonSubstruct *substruct2 = GetSubstruct(boxMon, boxMon->personality, 2);
+ union PokemonSubstruct *substruct3 = GetSubstruct(boxMon, boxMon->personality, 3);
+ s32 i;
+
+ for (i = 0; i < 6; i++)
+ checksum += substruct0->raw[i];
+
+ for (i = 0; i < 6; i++)
+ checksum += substruct1->raw[i];
+
+ for (i = 0; i < 6; i++)
+ checksum += substruct2->raw[i];
+
+ for (i = 0; i < 6; i++)
+ checksum += substruct3->raw[i];
+
+ return checksum;
+}
+
+#define CALC_STAT(base, iv, ev, statIndex, field) \
+{ \
+ u8 baseStat = gBaseStats[species].base; \
+ s32 n = (((2 * baseStat + iv + ev / 4) * level) / 100) + 5; \
+ u8 nature = GetNature(mon); \
+ n = nature_stat_mod(nature, n, statIndex); \
+ SetMonData(mon, field, &n); \
+}
+
+void CalculateMonStats(struct Pokemon *mon)
+{
+ s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP, NULL);
+ s32 currentHP = GetMonData(mon, MON_DATA_HP, NULL);
+ s32 hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
+ s32 hpEV = GetMonData(mon, MON_DATA_HP_EV, NULL);
+ s32 attackIV = GetMonData(mon, MON_DATA_ATK_IV, NULL);
+ s32 attackEV = GetMonData(mon, MON_DATA_ATK_EV, NULL);
+ s32 defenseIV = GetMonData(mon, MON_DATA_DEF_IV, NULL);
+ s32 defenseEV = GetMonData(mon, MON_DATA_DEF_EV, NULL);
+ s32 speedIV = GetMonData(mon, MON_DATA_SPEED_IV, NULL);
+ s32 speedEV = GetMonData(mon, MON_DATA_SPEED_EV, NULL);
+ s32 spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV, NULL);
+ s32 spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV, NULL);
+ s32 spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV, NULL);
+ s32 spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV, NULL);
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ s32 level = GetLevelFromMonExp(mon);
+ s32 newMaxHP;
+
+ SetMonData(mon, MON_DATA_LEVEL, &level);
+
+ if (species == SPECIES_SHEDINJA)
+ {
+ newMaxHP = 1;
+ }
+ else
+ {
+ s32 n = 2 * gBaseStats[species].baseHP + hpIV;
+ newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10;
+ }
+
+ gBattleScripting.field_23 = newMaxHP - oldMaxHP;
+ if (gBattleScripting.field_23 == 0)
+ gBattleScripting.field_23 = 1;
+
+ SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP);
+
+ CALC_STAT(baseAttack, attackIV, attackEV, STAT_ATK, MON_DATA_ATK)
+ CALC_STAT(baseDefense, defenseIV, defenseEV, STAT_DEF, MON_DATA_DEF)
+ CALC_STAT(baseSpeed, speedIV, speedEV, STAT_SPEED, MON_DATA_SPEED)
+ CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, STAT_SPATK, MON_DATA_SPATK)
+ CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, STAT_SPDEF, MON_DATA_SPDEF)
+
+ if (species == SPECIES_SHEDINJA)
+ {
+ if (currentHP != 0 || oldMaxHP == 0)
+ currentHP = 1;
+ else
+ return;
+ }
+ else
+ {
+ if (currentHP == 0 && oldMaxHP == 0)
+ currentHP = newMaxHP;
+ else if (currentHP != 0)
+ currentHP += newMaxHP - oldMaxHP;
+ else
+ return;
+ }
+
+ SetMonData(mon, MON_DATA_HP, &currentHP);
+}
+
+void BoxMonToMon(struct BoxPokemon *src, struct Pokemon *dest)
+{
+ u32 value = 0;
+ dest->box = *src;
+ SetMonData(dest, MON_DATA_STATUS, &value);
+ SetMonData(dest, MON_DATA_HP, &value);
+ SetMonData(dest, MON_DATA_MAX_HP, &value);
+ value = 255;
+ SetMonData(dest, MON_DATA_MAIL, &value);
+ CalculateMonStats(dest);
+}
+
+u8 GetLevelFromMonExp(struct Pokemon *mon)
+{
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
+ s32 level = 1;
+
+ while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
+ level++;
+
+ return level - 1;
+}
+
+u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon)
+{
+ u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
+ u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP, NULL);
+ s32 level = 1;
+
+ while (level <= MAX_MON_LEVEL && gExperienceTables[gBaseStats[species].growthRate][level] <= exp)
+ level++;
+
+ return level - 1;
+}
+
+u16 GiveMoveToMon(struct Pokemon *mon, u16 move)
+{
+ return GiveMoveToBoxMon(&mon->box, move);
+}
+
+u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
+{
+ s32 i;
+ for (i = 0; i < 4; i++)
+ {
+ u16 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
+ if (!existingMove)
+ {
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &move);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + i, &gBattleMoves[move].pp);
+ return move;
+ }
+ if (existingMove == move)
+ return -2;
+ }
+ return -1;
+}
+
+u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (!mon->moves[i])
+ {
+ mon->moves[i] = move;
+ mon->pp[i] = gBattleMoves[move].pp;
+ return move;
+ }
+ }
+
+ return -1;
+}
+
+void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot)
+{
+ SetMonData(mon, MON_DATA_MOVE1 + slot, &move);
+ SetMonData(mon, MON_DATA_PP1 + slot, &gBattleMoves[move].pp);
+}
+
+void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot)
+{
+ mon->moves[slot] = move;
+ mon->pp[slot] = gBattleMoves[move].pp;
+}
+
+void GiveMonInitialMoveset(struct Pokemon *mon)
+{
+ GiveBoxMonInitialMoveset(&mon->box);
+}
+
+// TODO: make level_up_learnsets.h in src/data and move this to there.
+#define LEVEL_UP_END 0xffff
+
+void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
+{
+ u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
+ s32 level = GetLevelFromBoxMonExp(boxMon);
+ s32 i;
+
+ for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
+ {
+ u16 moveLevel;
+ u16 move;
+
+ moveLevel = (gLevelUpLearnsets[species][i] & 0xFE00);
+
+ if (moveLevel > (level << 9))
+ break;
+
+ move = (gLevelUpLearnsets[species][i] & 0x1FF);
+
+ if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
+ DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
+ }
+}
+
+u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
+{
+ u32 retVal = 0;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL);
+
+ // since you can learn more than one move per level
+ // the game needs to know whether you decided to
+ // learn it or keep the old set to avoid asking
+ // you to learn the same move over and over again
+ if (firstMove)
+ {
+ sLearningMoveTableID = 0;
+
+ while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9))
+ {
+ sLearningMoveTableID++;
+ if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END)
+ return 0;
+ }
+ }
+
+ if ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) == (level << 9))
+ {
+ gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & 0x1FF);
+ sLearningMoveTableID++;
+ retVal = GiveMoveToMon(mon, gMoveToLearn);
+ }
+
+ return retVal;
+}
+
+void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move)
+{
+ s32 i;
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+
+ for (i = 0; i < 3; i++)
+ {
+ moves[i] = GetMonData(mon, MON_DATA_MOVE2 + i, NULL);
+ pp[i] = GetMonData(mon, MON_DATA_PP2 + i, NULL);
+ }
+
+ ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
+ ppBonuses >>= 2;
+ moves[3] = move;
+ pp[3] = gBattleMoves[move].pp;
+
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(mon, MON_DATA_MOVE1 + i, &moves[i]);
+ SetMonData(mon, MON_DATA_PP1 + i, &pp[i]);
+ }
+
+ SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
+}
+
+void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
+{
+ s32 i;
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+
+ for (i = 0; i < 3; i++)
+ {
+ moves[i] = GetBoxMonData(boxMon, MON_DATA_MOVE2 + i, NULL);
+ pp[i] = GetBoxMonData(boxMon, MON_DATA_PP2 + i, NULL);
+ }
+
+ ppBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES, NULL);
+ ppBonuses >>= 2;
+ moves[3] = move;
+ pp[3] = gBattleMoves[move].pp;
+
+ for (i = 0; i < 4; i++)
+ {
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &moves[i]);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + i, &pp[i]);
+ }
+
+ SetBoxMonData(boxMon, MON_DATA_PP_BONUSES, &ppBonuses);
+}
+
+#define APPLY_STAT_MOD(var, mon, stat, statIndex) \
+{ \
+ (var) = (stat) * (gStatStageRatios)[(mon)->statStages[(statIndex)]][0]; \
+ (var) /= (gStatStageRatios)[(mon)->statStages[(statIndex)]][1]; \
+}
+
+s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 battlerIdAtk, u8 battlerIdDef)
+{
+ u32 i;
+ s32 damage = 0;
+ s32 damageHelper;
+ u8 type;
+ u16 attack, defense;
+ u16 spAttack, spDefense;
+ u8 defenderHoldEffect;
+ u8 defenderHoldEffectParam;
+ u8 attackerHoldEffect;
+ u8 attackerHoldEffectParam;
+
+ if (!powerOverride)
+ gBattleMovePower = gBattleMoves[move].power;
+ else
+ gBattleMovePower = powerOverride;
+
+ if (!typeOverride)
+ type = gBattleMoves[move].type;
+ else
+ type = typeOverride & 0x3F;
+
+ attack = attacker->attack;
+ defense = defender->defense;
+ spAttack = attacker->spAttack;
+ spDefense = defender->spDefense;
+
+ if (attacker->item == ITEM_ENIGMA_BERRY)
+ {
+ attackerHoldEffect = gEnigmaBerries[battlerIdAtk].holdEffect;
+ attackerHoldEffectParam = gEnigmaBerries[battlerIdAtk].holdEffectParam;
+ }
+ else
+ {
+ attackerHoldEffect = ItemId_GetHoldEffect(attacker->item);
+ attackerHoldEffectParam = ItemId_GetHoldEffectParam(attacker->item);
+ }
+
+ if (defender->item == ITEM_ENIGMA_BERRY)
+ {
+ defenderHoldEffect = gEnigmaBerries[battlerIdDef].holdEffect;
+ defenderHoldEffectParam = gEnigmaBerries[battlerIdDef].holdEffectParam;
+ }
+ else
+ {
+ defenderHoldEffect = ItemId_GetHoldEffect(defender->item);
+ defenderHoldEffectParam = ItemId_GetHoldEffectParam(defender->item);
+ }
+
+ if (attacker->ability == ABILITY_HUGE_POWER || attacker->ability == ABILITY_PURE_POWER)
+ attack *= 2;
+
+ // In FRLG, the Battle Tower and opponent checks are stubbed here.
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | /*BATTLE_TYPE_BATTLE_TOWER |*/ BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if (FlagGet(FLAG_UNK820)
+ && !GetBattlerSide(battlerIdAtk))
+ attack = (110 * attack) / 100;
+ }
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | /*BATTLE_TYPE_BATTLE_TOWER |*/ BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if (FlagGet(FLAG_UNK824)
+ && !GetBattlerSide(battlerIdDef))
+ defense = (110 * defense) / 100;
+ }
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | /*BATTLE_TYPE_BATTLE_TOWER |*/ BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if (FlagGet(FLAG_UNK826)
+ && !GetBattlerSide(battlerIdAtk))
+ spAttack = (110 * spAttack) / 100;
+ }
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | /*BATTLE_TYPE_BATTLE_TOWER |*/ BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if (FlagGet(FLAG_UNK826)
+ && !GetBattlerSide(battlerIdDef))
+ spDefense = (110 * spDefense) / 100;
+ }
+
+ // TODO: Use ARRAY_COUNT(sHoldEffectToType)
+ for (i = 0; i < 17; i++)
+ {
+ if (attackerHoldEffect == sHoldEffectToType[i][0]
+ && type == sHoldEffectToType[i][1])
+ {
+ if (IS_TYPE_PHYSICAL(type))
+ attack = (attack * (attackerHoldEffectParam + 100)) / 100;
+ else
+ spAttack = (spAttack * (attackerHoldEffectParam + 100)) / 100;
+ break;
+ }
+ }
+
+ if (attackerHoldEffect == HOLD_EFFECT_CHOICE_BAND)
+ attack = (150 * attack) / 100;
+ if (attackerHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER)) && (attacker->species == SPECIES_LATIAS || attacker->species == SPECIES_LATIOS))
+ spAttack = (150 * spAttack) / 100;
+ if (defenderHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER)) && (defender->species == SPECIES_LATIAS || defender->species == SPECIES_LATIOS))
+ spDefense = (150 * spDefense) / 100;
+ if (attackerHoldEffect == HOLD_EFFECT_DEEP_SEA_TOOTH && attacker->species == SPECIES_CLAMPERL)
+ spAttack *= 2;
+ if (defenderHoldEffect == HOLD_EFFECT_DEEP_SEA_SCALE && defender->species == SPECIES_CLAMPERL)
+ spDefense *= 2;
+ if (attackerHoldEffect == HOLD_EFFECT_LIGHT_BALL && attacker->species == SPECIES_PIKACHU)
+ spAttack *= 2;
+ if (defenderHoldEffect == HOLD_EFFECT_METAL_POWDER && defender->species == SPECIES_DITTO)
+ defense *= 2;
+ if (attackerHoldEffect == HOLD_EFFECT_THICK_CLUB && (attacker->species == SPECIES_CUBONE || attacker->species == SPECIES_MAROWAK))
+ attack *= 2;
+ if (defender->ability == ABILITY_THICK_FAT && (type == TYPE_FIRE || type == TYPE_ICE))
+ spAttack /= 2;
+ if (attacker->ability == ABILITY_HUSTLE)
+ attack = (150 * attack) / 100;
+ if (attacker->ability == ABILITY_PLUS && ABILITY_ON_FIELD2(ABILITY_MINUS))
+ spAttack = (150 * spAttack) / 100;
+ if (attacker->ability == ABILITY_MINUS && ABILITY_ON_FIELD2(ABILITY_PLUS))
+ spAttack = (150 * spAttack) / 100;
+ if (attacker->ability == ABILITY_GUTS && attacker->status1)
+ attack = (150 * attack) / 100;
+ if (defender->ability == ABILITY_MARVEL_SCALE && defender->status1)
+ defense = (150 * defense) / 100;
+ if (type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, 0xFD, 0))
+ gBattleMovePower /= 2;
+ if (type == TYPE_FIRE && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, 0xFE, 0))
+ gBattleMovePower /= 2;
+ if (type == TYPE_GRASS && attacker->ability == ABILITY_OVERGROW && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_FIRE && attacker->ability == ABILITY_BLAZE && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_WATER && attacker->ability == ABILITY_TORRENT && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_BUG && attacker->ability == ABILITY_SWARM && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_EXPLOSION)
+ defense /= 2;
+
+ if (IS_TYPE_PHYSICAL(type))
+ {
+ if (gCritMultiplier == 2)
+ {
+ if (attacker->statStages[STAT_ATK] > 6)
+ APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
+ else
+ damage = attack;
+ }
+ else
+ APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
+
+ damage = damage * gBattleMovePower;
+ damage *= (2 * attacker->level / 5 + 2);
+
+ if (gCritMultiplier == 2)
+ {
+ if (defender->statStages[STAT_DEF] < 6)
+ APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
+ else
+ damageHelper = defense;
+ }
+ else
+ APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
+
+ damage = damage / damageHelper;
+ damage /= 50;
+
+ if ((attacker->status1 & STATUS1_BURN) && attacker->ability != ABILITY_GUTS)
+ damage /= 2;
+
+ if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1)
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMons(2) == 2)
+ damage = 2 * (damage / 3);
+ else
+ damage /= 2;
+ }
+
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMons(2) == 2)
+ damage /= 2;
+
+ // moves always do at least 1 damage.
+ if (damage == 0)
+ damage = 1;
+ }
+
+ if (type == TYPE_MYSTERY)
+ damage = 0; // is ??? type. does 0 damage.
+
+ if (IS_TYPE_SPECIAL(type))
+ {
+ if (gCritMultiplier == 2)
+ {
+ if (attacker->statStages[STAT_SPATK] > 6)
+ APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
+ else
+ damage = spAttack;
+ }
+ else
+ APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
+
+ damage = damage * gBattleMovePower;
+ damage *= (2 * attacker->level / 5 + 2);
+
+ if (gCritMultiplier == 2)
+ {
+ if (defender->statStages[STAT_SPDEF] < 6)
+ APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
+ else
+ damageHelper = spDefense;
+ }
+ else
+ APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
+
+ damage = (damage / damageHelper);
+ damage /= 50;
+
+ if ((sideStatus & SIDE_STATUS_LIGHTSCREEN) && gCritMultiplier == 1)
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMons(2) == 2)
+ damage = 2 * (damage / 3);
+ else
+ damage /= 2;
+ }
+
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMons(2) == 2)
+ damage /= 2;
+
+ // are effects of weather negated with cloud nine or air lock
+ if (WEATHER_HAS_EFFECT2)
+ {
+ if (gBattleWeather & WEATHER_RAIN_TEMPORARY)
+ {
+ switch (type)
+ {
+ case TYPE_FIRE:
+ damage /= 2;
+ break;
+ case TYPE_WATER:
+ damage = (15 * damage) / 10;
+ break;
+ }
+ }
+
+ // any weather except sun weakens solar beam
+ if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL)) && gCurrentMove == MOVE_SOLAR_BEAM)
+ damage /= 2;
+
+ // sunny
+ if (gBattleWeather & WEATHER_SUN_ANY)
+ {
+ switch (type)
+ {
+ case TYPE_FIRE:
+ damage = (15 * damage) / 10;
+ break;
+ case TYPE_WATER:
+ damage /= 2;
+ break;
+ }
+ }
+ }
+
+ // flash fire triggered
+ if ((gBattleResources->flags->flags[battlerIdAtk] & UNKNOWN_FLAG_FLASH_FIRE) && type == TYPE_FIRE)
+ damage = (15 * damage) / 10;
+ }
+
+ return damage + 2;
+}
+
+u8 CountAliveMons(u8 a1)
+{
+ s32 i;
+ u8 retVal = 0;
+
+ switch (a1)
+ {
+ case 0:
+ for (i = 0; i < 4; i++)
+ {
+ if (i != gActiveBattler && !(gAbsentBattlerFlags & gBitTable[i]))
+ retVal++;
+ }
+ break;
+ case 1:
+ for (i = 0; i < 4; i++)
+ {
+ if (GetBattlerSide(i) == GetBattlerSide(sBattler_AI) && !(gAbsentBattlerFlags & gBitTable[i]))
+ retVal++;
+ }
+ break;
+ case 2:
+ for (i = 0; i < 4; i++)
+ {
+ if (GetBattlerSide(i) == GetBattlerSide(gBattlerTarget) && !(gAbsentBattlerFlags & gBitTable[i]))
+ retVal++;
+ }
+ break;
+ }
+
+ return retVal;
+}
+
+u8 GetDefaultMoveTarget(u8 a1)
+{
+ u8 status = GetBattlerPosition(a1) & 1;
+
+ status ^= 1;
+ if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ return GetBattlerAtPosition(status);
+ if (CountAliveMons(0) > 1)
+ {
+ u8 val;
+
+ if ((Random() & 1) == 0)
+ val = status ^ 2;
+ else
+ val = status;
+ return GetBattlerAtPosition(val);
+ }
+ else
+ {
+ if ((gAbsentBattlerFlags & gBitTable[status]))
+ return GetBattlerAtPosition(status ^ 2);
+ else
+ return GetBattlerAtPosition(status);
+ }
+}
+
+u8 GetMonGender(struct Pokemon *mon)
+{
+ return GetBoxMonGender(&mon->box);
+}
+
+u8 GetBoxMonGender(struct BoxPokemon *boxMon)
+{
+ u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL);
+
+ switch (gBaseStats[species].genderRatio)
+ {
+ case MON_MALE:
+ case MON_FEMALE:
+ case MON_GENDERLESS:
+ return gBaseStats[species].genderRatio;
+ }
+
+ if (gBaseStats[species].genderRatio > (personality & 0xFF))
+ return MON_FEMALE;
+ else
+ return MON_MALE;
+}
+
+u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality)
+{
+ switch (gBaseStats[species].genderRatio)
+ {
+ case MON_MALE:
+ case MON_FEMALE:
+ case MON_GENDERLESS:
+ return gBaseStats[species].genderRatio;
+ }
+
+ if (gBaseStats[species].genderRatio > (personality & 0xFF))
+ return MON_FEMALE;
+ else
+ return MON_MALE;
+}
+
+void sub_803F7D4(u16 trainerSpriteId, u8 battlerPosition)
+{
+ if(gMonSpritesGfxPtr != NULL)
+ {
+ if(battlerPosition >= 4)
+ battlerPosition = 0;
+
+ gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition];
+ }
+ else
+ {
+ if(gUnknown_20244F4)
+ {
+ if(battlerPosition >= (s8)gUnknown_20244F4->unk0_2) // why a cast?!? changing the unk0_2 type to s8 causes extra shifts, but a cast is the correct fix. why, compiler?
+ battlerPosition = 0;
+
+ gMultiuseSpriteTemplate = gUnknown_20244F4->unk10[battlerPosition];
+ }
+ else
+ {
+ if(battlerPosition >= 4)
+ battlerPosition = 0;
+
+ gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition];
+ }
+ }
+ gMultiuseSpriteTemplate.paletteTag = trainerSpriteId;
+ gMultiuseSpriteTemplate.anims = gUnknown_82349BC;
+}
+
+void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition)
+{
+ gMultiuseSpriteTemplate.paletteTag = trainerSpriteId;
+ if(battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT)
+ {
+ gMultiuseSpriteTemplate = gUnknown_825DF50[trainerSpriteId];
+ gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId];
+ }
+ else
+ {
+ if (gMonSpritesGfxPtr != NULL)
+ gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition];
+ else
+ gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition];
+ gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId];
+ }
+}
+
+void EncryptBoxMon(struct BoxPokemon *boxMon)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ boxMon->secure.raw[i] ^= boxMon->personality;
+ boxMon->secure.raw[i] ^= boxMon->otId;
+ }
+}
+
+void DecryptBoxMon(struct BoxPokemon *boxMon)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ boxMon->secure.raw[i] ^= boxMon->otId;
+ boxMon->secure.raw[i] ^= boxMon->personality;
+ }
+}
+
+#define SUBSTRUCT_CASE(n, v1, v2, v3, v4) \
+case n: \
+ { \
+ union PokemonSubstruct *substructs0 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs1 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs2 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs3 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs4 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs5 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs6 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs7 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs8 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs9 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs10 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs11 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs12 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs13 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs14 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs15 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs16 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs17 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs18 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs19 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs20 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs21 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs22 = boxMon->secure.substructs; \
+ union PokemonSubstruct *substructs23 = boxMon->secure.substructs; \
+ \
+ switch (substructType) \
+ { \
+ case 0: \
+ substruct = &substructs ## n [v1]; \
+ break; \
+ case 1: \
+ substruct = &substructs ## n [v2]; \
+ break; \
+ case 2: \
+ substruct = &substructs ## n [v3]; \
+ break; \
+ case 3: \
+ substruct = &substructs ## n [v4]; \
+ break; \
+ } \
+ break; \
+ } \
+
+union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType)
+{
+ union PokemonSubstruct *substruct = NULL;
+
+ switch (personality % 24)
+ {
+ SUBSTRUCT_CASE( 0,0,1,2,3)
+ SUBSTRUCT_CASE( 1,0,1,3,2)
+ SUBSTRUCT_CASE( 2,0,2,1,3)
+ SUBSTRUCT_CASE( 3,0,3,1,2)
+ SUBSTRUCT_CASE( 4,0,2,3,1)
+ SUBSTRUCT_CASE( 5,0,3,2,1)
+ SUBSTRUCT_CASE( 6,1,0,2,3)
+ SUBSTRUCT_CASE( 7,1,0,3,2)
+ SUBSTRUCT_CASE( 8,2,0,1,3)
+ SUBSTRUCT_CASE( 9,3,0,1,2)
+ SUBSTRUCT_CASE(10,2,0,3,1)
+ SUBSTRUCT_CASE(11,3,0,2,1)
+ SUBSTRUCT_CASE(12,1,2,0,3)
+ SUBSTRUCT_CASE(13,1,3,0,2)
+ SUBSTRUCT_CASE(14,2,1,0,3)
+ SUBSTRUCT_CASE(15,3,1,0,2)
+ SUBSTRUCT_CASE(16,2,3,0,1)
+ SUBSTRUCT_CASE(17,3,2,0,1)
+ SUBSTRUCT_CASE(18,1,2,3,0)
+ SUBSTRUCT_CASE(19,1,3,2,0)
+ SUBSTRUCT_CASE(20,2,1,3,0)
+ SUBSTRUCT_CASE(21,3,1,2,0)
+ SUBSTRUCT_CASE(22,2,3,1,0)
+ SUBSTRUCT_CASE(23,3,2,1,0)
+ }
+
+ return substruct;
+}
+
+u32 GetMonData(struct Pokemon *mon, s32 field, u8* data)
+{
+ u32 ret;
+
+ switch (field)
+ {
+ case MON_DATA_STATUS:
+ ret = mon->status;
+ break;
+ case MON_DATA_LEVEL:
+ ret = mon->level;
+ break;
+ case MON_DATA_HP:
+ ret = mon->hp;
+ break;
+ case MON_DATA_MAX_HP:
+ ret = mon->maxHP;
+ break;
+ case MON_DATA_ATK:
+ ret = (u16)GetDeoxysStat(mon, STAT_ATK);
+ if (!ret)
+ ret = mon->attack;
+ break;
+ case MON_DATA_DEF:
+ ret = (u16)GetDeoxysStat(mon, STAT_DEF);
+ if (!ret)
+ ret = mon->defense;
+ break;
+ case MON_DATA_SPEED:
+ ret = (u16)GetDeoxysStat(mon, STAT_SPEED);
+ if (!ret)
+ ret = mon->speed;
+ break;
+ case MON_DATA_SPATK:
+ ret = (u16)GetDeoxysStat(mon, STAT_SPATK);
+ if (!ret)
+ ret = mon->spAttack;
+ break;
+ case MON_DATA_SPDEF:
+ ret = (u16)GetDeoxysStat(mon, STAT_SPDEF);
+ if (!ret)
+ ret = mon->spDefense;
+ break;
+ case MON_DATA_ATK2:
+ ret = mon->attack;
+ break;
+ case MON_DATA_DEF2:
+ ret = mon->defense;
+ break;
+ case MON_DATA_SPEED2:
+ ret = mon->speed;
+ break;
+ case MON_DATA_SPATK2:
+ ret = mon->spAttack;
+ break;
+ case MON_DATA_SPDEF2:
+ ret = mon->spDefense;
+ break;
+ case MON_DATA_MAIL:
+ ret = mon->mail;
+ break;
+ default:
+ ret = GetBoxMonData(&mon->box, field, data);
+ break;
+ }
+ return ret;
+}
+
+u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
+{
+ s32 i;
+ u32 retVal = 0;
+ struct PokemonSubstruct0 *substruct0 = NULL;
+ struct PokemonSubstruct1 *substruct1 = NULL;
+ struct PokemonSubstruct2 *substruct2 = NULL;
+ struct PokemonSubstruct3 *substruct3 = NULL;
+
+ if (field > MON_DATA_10)
+ {
+ substruct0 = &(GetSubstruct(boxMon, boxMon->personality, 0)->type0);
+ substruct1 = &(GetSubstruct(boxMon, boxMon->personality, 1)->type1);
+ substruct2 = &(GetSubstruct(boxMon, boxMon->personality, 2)->type2);
+ substruct3 = &(GetSubstruct(boxMon, boxMon->personality, 3)->type3);
+
+ DecryptBoxMon(boxMon);
+
+ if (CalculateBoxMonChecksum(boxMon) != boxMon->checksum)
+ {
+ boxMon->isBadEgg = 1;
+ boxMon->isEgg = 1;
+ substruct3->isEgg = 1;
+ }
+ }
+
+ switch (field)
+ {
+ case MON_DATA_PERSONALITY:
+ retVal = boxMon->personality;
+ break;
+ case MON_DATA_OT_ID:
+ retVal = boxMon->otId;
+ break;
+ case MON_DATA_NICKNAME:
+ {
+ if (boxMon->isBadEgg)
+ {
+ for (retVal = 0;
+ retVal < POKEMON_NAME_LENGTH && gText_BadEgg[retVal] != EOS;
+ data[retVal] = gText_BadEgg[retVal], retVal++) {}
+
+ data[retVal] = EOS;
+ }
+ else if (boxMon->isEgg)
+ {
+ StringCopy(data, gText_EggNickname);
+ retVal = StringLength(data);
+ }
+ else if (boxMon->language == LANGUAGE_JAPANESE)
+ {
+ data[0] = EXT_CTRL_CODE_BEGIN;
+ data[1] = EXT_CTRL_CODE_JPN;
+
+ // FRLG changed i < 7 to i < 6
+ for (retVal = 2, i = 0;
+ i < 6 && boxMon->nickname[i] != EOS;
+ data[retVal] = boxMon->nickname[i], retVal++, i++) {}
+
+ data[retVal++] = EXT_CTRL_CODE_BEGIN;
+ data[retVal++] = EXT_CTRL_CODE_ENG;
+ data[retVal] = EOS;
+ }
+ else
+ {
+ for (retVal = 0;
+ retVal < POKEMON_NAME_LENGTH;
+ data[retVal] = boxMon->nickname[retVal], retVal++){}
+
+ data[retVal] = EOS;
+ }
+ break;
+ }
+ case MON_DATA_LANGUAGE:
+ retVal = boxMon->language;
+ break;
+ case MON_DATA_SANITY_BIT1:
+ retVal = boxMon->isBadEgg;
+ break;
+ case MON_DATA_SANITY_BIT2:
+ retVal = boxMon->hasSpecies;
+ break;
+ case MON_DATA_SANITY_BIT3:
+ retVal = boxMon->isEgg;
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ retVal = 0;
+
+ // FRLG changed this to 7 which used to be PLAYER_NAME_LENGTH
+ while (retVal < 7)
+ {
+ data[retVal] = boxMon->otName[retVal];
+ retVal++;
+ }
+
+ data[retVal] = EOS;
+ break;
+ }
+ case MON_DATA_MARKINGS:
+ retVal = boxMon->markings;
+ break;
+ case MON_DATA_CHECKSUM:
+ retVal = boxMon->checksum;
+ break;
+ case MON_DATA_10:
+ retVal = boxMon->unknown;
+ break;
+ case MON_DATA_SPECIES:
+ retVal = boxMon->isBadEgg ? SPECIES_EGG : substruct0->species;
+ break;
+ case MON_DATA_HELD_ITEM:
+ retVal = substruct0->heldItem;
+ break;
+ case MON_DATA_EXP:
+ retVal = substruct0->experience;
+ break;
+ case MON_DATA_PP_BONUSES:
+ retVal = substruct0->ppBonuses;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ retVal = substruct0->friendship;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ retVal = substruct1->moves[field - MON_DATA_MOVE1];
+ break;
+ case MON_DATA_PP1:
+ case MON_DATA_PP2:
+ case MON_DATA_PP3:
+ case MON_DATA_PP4:
+ retVal = substruct1->pp[field - MON_DATA_PP1];
+ break;
+ case MON_DATA_HP_EV:
+ retVal = substruct2->hpEV;
+ break;
+ case MON_DATA_ATK_EV:
+ retVal = substruct2->attackEV;
+ break;
+ case MON_DATA_DEF_EV:
+ retVal = substruct2->defenseEV;
+ break;
+ case MON_DATA_SPEED_EV:
+ retVal = substruct2->speedEV;
+ break;
+ case MON_DATA_SPATK_EV:
+ retVal = substruct2->spAttackEV;
+ break;
+ case MON_DATA_SPDEF_EV:
+ retVal = substruct2->spDefenseEV;
+ break;
+ case MON_DATA_COOL:
+ retVal = substruct2->cool;
+ break;
+ case MON_DATA_BEAUTY:
+ retVal = substruct2->beauty;
+ break;
+ case MON_DATA_CUTE:
+ retVal = substruct2->cute;
+ break;
+ case MON_DATA_SMART:
+ retVal = substruct2->smart;
+ break;
+ case MON_DATA_TOUGH:
+ retVal = substruct2->tough;
+ break;
+ case MON_DATA_SHEEN:
+ retVal = substruct2->sheen;
+ break;
+ case MON_DATA_POKERUS:
+ retVal = substruct3->pokerus;
+ break;
+ case MON_DATA_MET_LOCATION:
+ retVal = substruct3->metLocation;
+ break;
+ case MON_DATA_MET_LEVEL:
+ retVal = substruct3->metLevel;
+ break;
+ case MON_DATA_MET_GAME:
+ retVal = substruct3->metGame;
+ break;
+ case MON_DATA_POKEBALL:
+ retVal = substruct3->pokeball;
+ break;
+ case MON_DATA_OT_GENDER:
+ retVal = substruct3->otGender;
+ break;
+ case MON_DATA_HP_IV:
+ retVal = substruct3->hpIV;
+ break;
+ case MON_DATA_ATK_IV:
+ retVal = substruct3->attackIV;
+ break;
+ case MON_DATA_DEF_IV:
+ retVal = substruct3->defenseIV;
+ break;
+ case MON_DATA_SPEED_IV:
+ retVal = substruct3->speedIV;
+ break;
+ case MON_DATA_SPATK_IV:
+ retVal = substruct3->spAttackIV;
+ break;
+ case MON_DATA_SPDEF_IV:
+ retVal = substruct3->spDefenseIV;
+ break;
+ case MON_DATA_IS_EGG:
+ retVal = substruct3->isEgg;
+ break;
+ case MON_DATA_ALT_ABILITY:
+ retVal = substruct3->altAbility;
+ break;
+ case MON_DATA_COOL_RIBBON:
+ retVal = substruct3->coolRibbon;
+ break;
+ case MON_DATA_BEAUTY_RIBBON:
+ retVal = substruct3->beautyRibbon;
+ break;
+ case MON_DATA_CUTE_RIBBON:
+ retVal = substruct3->cuteRibbon;
+ break;
+ case MON_DATA_SMART_RIBBON:
+ retVal = substruct3->smartRibbon;
+ break;
+ case MON_DATA_TOUGH_RIBBON:
+ retVal = substruct3->toughRibbon;
+ break;
+ case MON_DATA_CHAMPION_RIBBON:
+ retVal = substruct3->championRibbon;
+ break;
+ case MON_DATA_WINNING_RIBBON:
+ retVal = substruct3->winningRibbon;
+ break;
+ case MON_DATA_VICTORY_RIBBON:
+ retVal = substruct3->victoryRibbon;
+ break;
+ case MON_DATA_ARTIST_RIBBON:
+ retVal = substruct3->artistRibbon;
+ break;
+ case MON_DATA_EFFORT_RIBBON:
+ retVal = substruct3->effortRibbon;
+ break;
+ case MON_DATA_GIFT_RIBBON_1:
+ retVal = substruct3->giftRibbon1;
+ break;
+ case MON_DATA_GIFT_RIBBON_2:
+ retVal = substruct3->giftRibbon2;
+ break;
+ case MON_DATA_GIFT_RIBBON_3:
+ retVal = substruct3->giftRibbon3;
+ break;
+ case MON_DATA_GIFT_RIBBON_4:
+ retVal = substruct3->giftRibbon4;
+ break;
+ case MON_DATA_GIFT_RIBBON_5:
+ retVal = substruct3->giftRibbon5;
+ break;
+ case MON_DATA_GIFT_RIBBON_6:
+ retVal = substruct3->giftRibbon6;
+ break;
+ case MON_DATA_GIFT_RIBBON_7:
+ retVal = substruct3->giftRibbon7;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ retVal = substruct3->fatefulEncounter;
+ break;
+ case MON_DATA_OBEDIENCE:
+ retVal = substruct3->obedient;
+ break;
+ case MON_DATA_SPECIES2:
+ retVal = substruct0->species;
+ if (substruct0->species && (substruct3->isEgg || boxMon->isBadEgg))
+ retVal = SPECIES_EGG;
+ break;
+ case MON_DATA_IVS:
+ retVal = substruct3->hpIV | (substruct3->attackIV << 5) | (substruct3->defenseIV << 10) | (substruct3->speedIV << 15) | (substruct3->spAttackIV << 20) | (substruct3->spDefenseIV << 25);
+ break;
+ case MON_DATA_KNOWN_MOVES:
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ u16 *moves = (u16 *)data;
+ s32 i = 0;
+
+ while (moves[i] != 355)
+ {
+ u16 move = moves[i];
+ if (substruct1->moves[0] == move
+ || substruct1->moves[1] == move
+ || substruct1->moves[2] == move
+ || substruct1->moves[3] == move)
+ retVal |= gBitTable[i];
+ i++;
+ }
+ }
+ break;
+ case MON_DATA_RIBBON_COUNT:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal += substruct3->coolRibbon;
+ retVal += substruct3->beautyRibbon;
+ retVal += substruct3->cuteRibbon;
+ retVal += substruct3->smartRibbon;
+ retVal += substruct3->toughRibbon;
+ retVal += substruct3->championRibbon;
+ retVal += substruct3->winningRibbon;
+ retVal += substruct3->victoryRibbon;
+ retVal += substruct3->artistRibbon;
+ retVal += substruct3->effortRibbon;
+ retVal += substruct3->giftRibbon1;
+ retVal += substruct3->giftRibbon2;
+ retVal += substruct3->giftRibbon3;
+ retVal += substruct3->giftRibbon4;
+ retVal += substruct3->giftRibbon5;
+ retVal += substruct3->giftRibbon6;
+ retVal += substruct3->giftRibbon7;
+ }
+ break;
+ case MON_DATA_RIBBONS:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal = substruct3->championRibbon
+ | (substruct3->coolRibbon << 1)
+ | (substruct3->beautyRibbon << 4)
+ | (substruct3->cuteRibbon << 7)
+ | (substruct3->smartRibbon << 10)
+ | (substruct3->toughRibbon << 13)
+ | (substruct3->winningRibbon << 16)
+ | (substruct3->victoryRibbon << 17)
+ | (substruct3->artistRibbon << 18)
+ | (substruct3->effortRibbon << 19)
+ | (substruct3->giftRibbon1 << 20)
+ | (substruct3->giftRibbon2 << 21)
+ | (substruct3->giftRibbon3 << 22)
+ | (substruct3->giftRibbon4 << 23)
+ | (substruct3->giftRibbon5 << 24)
+ | (substruct3->giftRibbon6 << 25)
+ | (substruct3->giftRibbon7 << 26);
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (field > MON_DATA_10)
+ EncryptBoxMon(boxMon);
+
+ return retVal;
+}
+
+#define SET8(lhs) (lhs) = *data
+#define SET16(lhs) (lhs) = data[0] + (data[1] << 8)
+#define SET32(lhs) (lhs) = data[0] + (data[1] << 8) + (data[2] << 16) + (data[3] << 24)
+
+void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg)
+{
+ const u8 *data = dataArg;
+
+ switch (field)
+ {
+ case MON_DATA_STATUS:
+ SET32(mon->status);
+ break;
+ case MON_DATA_LEVEL:
+ SET8(mon->level);
+ break;
+ case MON_DATA_HP:
+ SET16(mon->hp);
+ break;
+ case MON_DATA_MAX_HP:
+ SET16(mon->maxHP);
+ break;
+ case MON_DATA_ATK:
+ case MON_DATA_ATK2:
+ SET16(mon->attack);
+ break;
+ case MON_DATA_DEF:
+ case MON_DATA_DEF2:
+ SET16(mon->defense);
+ break;
+ case MON_DATA_SPEED:
+ case MON_DATA_SPEED2:
+ SET16(mon->speed);
+ break;
+ case MON_DATA_SPATK:
+ case MON_DATA_SPATK2:
+ SET16(mon->spAttack);
+ break;
+ case MON_DATA_SPDEF:
+ case MON_DATA_SPDEF2:
+ SET16(mon->spDefense);
+ break;
+ case MON_DATA_MAIL:
+ SET8(mon->mail);
+ break;
+ case MON_DATA_SPECIES2:
+ break;
+ // why did FRLG go out of its way to specify all of these for default?
+ case MON_DATA_IVS:
+ case MON_DATA_CHAMPION_RIBBON:
+ case MON_DATA_WINNING_RIBBON:
+ case MON_DATA_VICTORY_RIBBON:
+ case MON_DATA_ARTIST_RIBBON:
+ case MON_DATA_EFFORT_RIBBON:
+ case MON_DATA_GIFT_RIBBON_1:
+ case MON_DATA_GIFT_RIBBON_2:
+ case MON_DATA_GIFT_RIBBON_3:
+ case MON_DATA_GIFT_RIBBON_4:
+ case MON_DATA_GIFT_RIBBON_5:
+ case MON_DATA_GIFT_RIBBON_6:
+ case MON_DATA_GIFT_RIBBON_7:
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ case MON_DATA_OBEDIENCE:
+ case MON_DATA_KNOWN_MOVES:
+ case MON_DATA_RIBBON_COUNT:
+ case MON_DATA_RIBBONS:
+ default:
+ SetBoxMonData(&mon->box, field, data);
+ break;
+ }
+}
+
+void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
+{
+ const u8 *data = dataArg;
+
+ struct PokemonSubstruct0 *substruct0 = NULL;
+ struct PokemonSubstruct1 *substruct1 = NULL;
+ struct PokemonSubstruct2 *substruct2 = NULL;
+ struct PokemonSubstruct3 *substruct3 = NULL;
+
+ if (field > MON_DATA_10)
+ {
+ substruct0 = &(GetSubstruct(boxMon, boxMon->personality, 0)->type0);
+ substruct1 = &(GetSubstruct(boxMon, boxMon->personality, 1)->type1);
+ substruct2 = &(GetSubstruct(boxMon, boxMon->personality, 2)->type2);
+ substruct3 = &(GetSubstruct(boxMon, boxMon->personality, 3)->type3);
+
+ DecryptBoxMon(boxMon);
+
+ if (CalculateBoxMonChecksum(boxMon) != boxMon->checksum)
+ {
+ boxMon->isBadEgg = 1;
+ boxMon->isEgg = 1;
+ substruct3->isEgg = 1;
+ EncryptBoxMon(boxMon);
+ return;
+ }
+ }
+
+ switch (field)
+ {
+ case MON_DATA_PERSONALITY:
+ SET32(boxMon->personality);
+ break;
+ case MON_DATA_OT_ID:
+ SET32(boxMon->otId);
+ break;
+ case MON_DATA_NICKNAME:
+ {
+ s32 i;
+ for (i = 0; i < POKEMON_NAME_LENGTH; i++)
+ boxMon->nickname[i] = data[i];
+ break;
+ }
+ case MON_DATA_LANGUAGE:
+ SET8(boxMon->language);
+ break;
+ case MON_DATA_SANITY_BIT1:
+ SET8(boxMon->isBadEgg);
+ break;
+ case MON_DATA_SANITY_BIT2:
+ SET8(boxMon->hasSpecies);
+ break;
+ case MON_DATA_SANITY_BIT3:
+ SET8(boxMon->isEgg);
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ s32 i;
+ for (i = 0; i < 7; i++)
+ boxMon->otName[i] = data[i];
+ break;
+ }
+ case MON_DATA_MARKINGS:
+ SET8(boxMon->markings);
+ break;
+ case MON_DATA_CHECKSUM:
+ SET16(boxMon->checksum);
+ break;
+ case MON_DATA_10:
+ SET16(boxMon->unknown);
+ break;
+ case MON_DATA_SPECIES:
+ {
+ SET16(substruct0->species);
+ if (substruct0->species)
+ boxMon->hasSpecies = 1;
+ else
+ boxMon->hasSpecies = 0;
+ break;
+ }
+ case MON_DATA_HELD_ITEM:
+ SET16(substruct0->heldItem);
+ break;
+ case MON_DATA_EXP:
+ SET32(substruct0->experience);
+ break;
+ case MON_DATA_PP_BONUSES:
+ SET8(substruct0->ppBonuses);
+ break;
+ case MON_DATA_FRIENDSHIP:
+ SET8(substruct0->friendship);
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ SET16(substruct1->moves[field - MON_DATA_MOVE1]);
+ break;
+ case MON_DATA_PP1:
+ case MON_DATA_PP2:
+ case MON_DATA_PP3:
+ case MON_DATA_PP4:
+ SET8(substruct1->pp[field - MON_DATA_PP1]);
+ break;
+ case MON_DATA_HP_EV:
+ SET8(substruct2->hpEV);
+ break;
+ case MON_DATA_ATK_EV:
+ SET8(substruct2->attackEV);
+ break;
+ case MON_DATA_DEF_EV:
+ SET8(substruct2->defenseEV);
+ break;
+ case MON_DATA_SPEED_EV:
+ SET8(substruct2->speedEV);
+ break;
+ case MON_DATA_SPATK_EV:
+ SET8(substruct2->spAttackEV);
+ break;
+ case MON_DATA_SPDEF_EV:
+ SET8(substruct2->spDefenseEV);
+ break;
+ case MON_DATA_COOL:
+ SET8(substruct2->cool);
+ break;
+ case MON_DATA_BEAUTY:
+ SET8(substruct2->beauty);
+ break;
+ case MON_DATA_CUTE:
+ SET8(substruct2->cute);
+ break;
+ case MON_DATA_SMART:
+ SET8(substruct2->smart);
+ break;
+ case MON_DATA_TOUGH:
+ SET8(substruct2->tough);
+ break;
+ case MON_DATA_SHEEN:
+ SET8(substruct2->sheen);
+ break;
+ case MON_DATA_POKERUS:
+ SET8(substruct3->pokerus);
+ break;
+ case MON_DATA_MET_LOCATION:
+ SET8(substruct3->metLocation);
+ break;
+ case MON_DATA_MET_LEVEL:
+ {
+ u8 metLevel = *data;
+ substruct3->metLevel = metLevel;
+ break;
+ }
+ case MON_DATA_MET_GAME:
+ SET8(substruct3->metGame);
+ break;
+ case MON_DATA_POKEBALL:
+ {
+ u8 pokeball = *data;
+ substruct3->pokeball = pokeball;
+ break;
+ }
+ case MON_DATA_OT_GENDER:
+ SET8(substruct3->otGender);
+ break;
+ case MON_DATA_HP_IV:
+ SET8(substruct3->hpIV);
+ break;
+ case MON_DATA_ATK_IV:
+ SET8(substruct3->attackIV);
+ break;
+ case MON_DATA_DEF_IV:
+ SET8(substruct3->defenseIV);
+ break;
+ case MON_DATA_SPEED_IV:
+ SET8(substruct3->speedIV);
+ break;
+ case MON_DATA_SPATK_IV:
+ SET8(substruct3->spAttackIV);
+ break;
+ case MON_DATA_SPDEF_IV:
+ SET8(substruct3->spDefenseIV);
+ break;
+ case MON_DATA_IS_EGG:
+ SET8(substruct3->isEgg);
+ if (substruct3->isEgg)
+ boxMon->isEgg = 1;
+ else
+ boxMon->isEgg = 0;
+ break;
+ case MON_DATA_ALT_ABILITY:
+ SET8(substruct3->altAbility);
+ break;
+ case MON_DATA_COOL_RIBBON:
+ SET8(substruct3->coolRibbon);
+ break;
+ case MON_DATA_BEAUTY_RIBBON:
+ SET8(substruct3->beautyRibbon);
+ break;
+ case MON_DATA_CUTE_RIBBON:
+ SET8(substruct3->cuteRibbon);
+ break;
+ case MON_DATA_SMART_RIBBON:
+ SET8(substruct3->smartRibbon);
+ break;
+ case MON_DATA_TOUGH_RIBBON:
+ SET8(substruct3->toughRibbon);
+ break;
+ case MON_DATA_CHAMPION_RIBBON:
+ SET8(substruct3->championRibbon);
+ break;
+ case MON_DATA_WINNING_RIBBON:
+ SET8(substruct3->winningRibbon);
+ break;
+ case MON_DATA_VICTORY_RIBBON:
+ SET8(substruct3->victoryRibbon);
+ break;
+ case MON_DATA_ARTIST_RIBBON:
+ SET8(substruct3->artistRibbon);
+ break;
+ case MON_DATA_EFFORT_RIBBON:
+ SET8(substruct3->effortRibbon);
+ break;
+ case MON_DATA_GIFT_RIBBON_1:
+ SET8(substruct3->giftRibbon1);
+ break;
+ case MON_DATA_GIFT_RIBBON_2:
+ SET8(substruct3->giftRibbon2);
+ break;
+ case MON_DATA_GIFT_RIBBON_3:
+ SET8(substruct3->giftRibbon3);
+ break;
+ case MON_DATA_GIFT_RIBBON_4:
+ SET8(substruct3->giftRibbon4);
+ break;
+ case MON_DATA_GIFT_RIBBON_5:
+ SET8(substruct3->giftRibbon5);
+ break;
+ case MON_DATA_GIFT_RIBBON_6:
+ SET8(substruct3->giftRibbon6);
+ break;
+ case MON_DATA_GIFT_RIBBON_7:
+ SET8(substruct3->giftRibbon7);
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ SET8(substruct3->fatefulEncounter);
+ break;
+ case MON_DATA_OBEDIENCE:
+ SET8(substruct3->obedient);
+ break;
+ case MON_DATA_IVS:
+ {
+#ifdef BUGFIX_SETMONIVS
+ u32 ivs = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
+#else
+ u32 ivs = *data; // Bug: Only the HP IV and the lower 3 bits of the Attack IV are read. The rest become 0.
+#endif
+ substruct3->hpIV = ivs & 0x1F;
+ substruct3->attackIV = (ivs >> 5) & 0x1F;
+ substruct3->defenseIV = (ivs >> 10) & 0x1F;
+ substruct3->speedIV = (ivs >> 15) & 0x1F;
+ substruct3->spAttackIV = (ivs >> 20) & 0x1F;
+ substruct3->spDefenseIV = (ivs >> 25) & 0x1F;
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (field > MON_DATA_10)
+ {
+ boxMon->checksum = CalculateBoxMonChecksum(boxMon);
+ EncryptBoxMon(boxMon);
+ }
+}
+
+void CopyMon(void *dest, void *src, size_t size)
+{
+ memcpy(dest, src, size);
+}
+
+u8 GiveMonToPlayer(struct Pokemon *mon)
+{
+ s32 i;
+
+ SetMonData(mon, MON_DATA_OT_NAME, gSaveBlock2Ptr->playerName);
+ SetMonData(mon, MON_DATA_OT_GENDER, &gSaveBlock2Ptr->playerGender);
+ SetMonData(mon, MON_DATA_OT_ID, gSaveBlock2Ptr->playerTrainerId);
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
+ break;
+ }
+
+ if (i >= PARTY_SIZE)
+ return SendMonToPC(mon);
+
+ CopyMon(&gPlayerParty[i], mon, sizeof(*mon));
+ gPlayerPartyCount = i + 1;
+ return MON_GIVEN_TO_PARTY;
+}
+
+u8 SendMonToPC(struct Pokemon* mon)
+{
+ s32 boxNo, boxPos;
+
+ set_unknown_box_id(VarGet(VAR_0x4037));
+
+ boxNo = StorageGetCurrentBox();
+
+ do
+ {
+ for (boxPos = 0; boxPos < 30; boxPos++)
+ {
+ struct BoxPokemon* checkingMon = GetBoxedMonPtr(boxNo, boxPos);
+ if (GetBoxMonData(checkingMon, MON_DATA_SPECIES, NULL) == SPECIES_NONE)
+ {
+ MonRestorePP(mon);
+ CopyMon(checkingMon, &mon->box, sizeof(mon->box));
+ gSpecialVar_MonBoxId = boxNo;
+ gSpecialVar_MonBoxPos = boxPos;
+ if (get_unknown_box_id() != boxNo)
+ FlagClear(FLAG_UNK843);
+ VarSet(VAR_0x4037, boxNo);
+ return MON_GIVEN_TO_PC;
+ }
+ }
+
+ boxNo++;
+ if (boxNo == 14)
+ boxNo = 0;
+ } while (boxNo != StorageGetCurrentBox());
+
+ return MON_CANT_GIVE;
+}
+
+u8 CalculatePlayerPartyCount(void)
+{
+ gPlayerPartyCount = 0;
+
+ while (gPlayerPartyCount < 6
+ && GetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ gPlayerPartyCount++;
+ }
+
+ return gPlayerPartyCount;
+}
+
+
+u8 CalculateEnemyPartyCount(void)
+{
+ gEnemyPartyCount = 0;
+
+ while (gEnemyPartyCount < 6
+ && GetMonData(&gEnemyParty[gEnemyPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ gEnemyPartyCount++;
+ }
+
+ return gEnemyPartyCount;
+}
+
+u8 GetMonsStateToDoubles(void)
+{
+ s32 aliveCount = 0;
+ s32 i;
+ CalculatePlayerPartyCount();
+
+ if (gPlayerPartyCount == 1)
+ return gPlayerPartyCount; // PLAYER_HAS_ONE_MON
+
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ // FRLG changed the order of these checks, but there's no point to doing that
+ // because of the requirement of all 3 of these checks.
+ if (GetMonData(&gPlayerParty[i], MON_DATA_HP, NULL) != 0
+ && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_NONE
+ && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG)
+ aliveCount++;
+ }
+
+ return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON;
+}
+
+u8 GetAbilityBySpecies(u16 species, bool8 altAbility)
+{
+ if (altAbility)
+ gLastUsedAbility = gBaseStats[species].ability2;
+ else
+ gLastUsedAbility = gBaseStats[species].ability1;
+
+ return gLastUsedAbility;
+}
+
+u8 GetMonAbility(struct Pokemon *mon)
+{
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u8 altAbility = GetMonData(mon, MON_DATA_ALT_ABILITY, NULL);
+ return GetAbilityBySpecies(species, altAbility);
+}
+
+void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
+{
+ s32 i, j;
+
+ ZeroEnemyPartyMons();
+ *gBattleResources->secretBase = *secretBaseRecord;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (gBattleResources->secretBase->party.species[i])
+ {
+ CreateMon(&gEnemyParty[i],
+ gBattleResources->secretBase->party.species[i],
+ gBattleResources->secretBase->party.levels[i],
+ 15,
+ 1,
+ gBattleResources->secretBase->party.personality[i],
+ 2,
+ 0);
+
+ SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]);
+
+ for (j = 0; j < 6; j++)
+ SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->party.EVs[i]);
+
+ for (j = 0; j < 4; j++)
+ {
+ SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * 4 + j]);
+ SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * 4 + j]].pp);
+ }
+ }
+ }
+ gBattleTypeFlags = 8;
+ gTrainerBattleOpponent_A = 0x400;
+}
+
+u8 GetSecretBaseTrainerPicIndex(void)
+{
+ u8 facilityClass = sSecretBaseFacilityClasses[gBattleResources->secretBase->gender][gBattleResources->secretBase->trainerId[0] % 5];
+ return gFacilityClassToPicIndex[facilityClass];
+}
+
+u8 GetSecretBaseTrainerNameIndex(void)
+{
+ u8 facilityClass = sSecretBaseFacilityClasses[gBattleResources->secretBase->gender][gBattleResources->secretBase->trainerId[0] % 5];
+ return gFacilityClassToTrainerClass[facilityClass];
+}
+
+bool8 IsPlayerPartyAndPokemonStorageFull(void)
+{
+ s32 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
+ return FALSE;
+
+ return IsPokemonStorageFull();
+}
+
+bool8 IsPokemonStorageFull(void)
+{
+ s32 i, j;
+
+ for (i = 0; i < 14; i++)
+ for (j = 0; j < 30; j++)
+ if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE)
+ return FALSE;
+
+ return TRUE;
+}
+
+void GetSpeciesName(u8 *name, u16 species)
+{
+ s32 i;
+
+ // Hmm? FRLG has < while Ruby/Emerald has <=
+ for (i = 0; i < POKEMON_NAME_LENGTH; i++)
+ {
+ if (species > NUM_SPECIES)
+ name[i] = gSpeciesNames[0][i];
+ else
+ name[i] = gSpeciesNames[species][i];
+
+ if (name[i] == EOS)
+ break;
+ }
+
+ name[i] = EOS;
+}
+
+u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex)
+{
+ u8 basePP = gBattleMoves[move].pp;
+ return basePP + ((basePP * 20 * ((gUnknown_825DEA1[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100);
+}
+
+void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex)
+{
+ u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL);
+ ppBonuses &= gPPUpWriteMasks[moveIndex];
+ SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
+}
+
+void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex)
+{
+ mon->ppBonuses &= gPPUpWriteMasks[moveIndex];
+}
+
+void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex)
+{
+ u16* hpSwitchout;
+ s32 i;
+ u8 nickname[POKEMON_NAME_LENGTH * 2]; // Why is the nickname array here longer in FR/LG?
+
+ gBattleMons[battlerId].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
+ gBattleMons[battlerId].item = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM, NULL);
+
+ for (i = 0; i < 4; i++)
+ {
+ gBattleMons[battlerId].moves[i] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE1 + i, NULL);
+ gBattleMons[battlerId].pp[i] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PP1 + i, NULL);
+ }
+
+ gBattleMons[battlerId].ppBonuses = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PP_BONUSES, NULL);
+ gBattleMons[battlerId].friendship = GetMonData(&gPlayerParty[partyIndex], MON_DATA_FRIENDSHIP, NULL);
+ gBattleMons[battlerId].experience = GetMonData(&gPlayerParty[partyIndex], MON_DATA_EXP, NULL);
+ gBattleMons[battlerId].hpIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP_IV, NULL);
+ gBattleMons[battlerId].attackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK_IV, NULL);
+ gBattleMons[battlerId].defenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF_IV, NULL);
+ gBattleMons[battlerId].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED_IV, NULL);
+ gBattleMons[battlerId].spAttackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK_IV, NULL);
+ gBattleMons[battlerId].spDefenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF_IV, NULL);
+ gBattleMons[battlerId].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY, NULL);
+ gBattleMons[battlerId].status1 = GetMonData(&gPlayerParty[partyIndex], MON_DATA_STATUS, NULL);
+ gBattleMons[battlerId].level = GetMonData(&gPlayerParty[partyIndex], MON_DATA_LEVEL, NULL);
+ gBattleMons[battlerId].hp = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP, NULL);
+ gBattleMons[battlerId].maxHP = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MAX_HP, NULL);
+ gBattleMons[battlerId].attack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK, NULL);
+ gBattleMons[battlerId].defense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF, NULL);
+ gBattleMons[battlerId].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED, NULL);
+ gBattleMons[battlerId].spAttack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK, NULL);
+ gBattleMons[battlerId].spDefense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF, NULL);
+ gBattleMons[battlerId].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL);
+ gBattleMons[battlerId].altAbility = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ALT_ABILITY, NULL);
+ gBattleMons[battlerId].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID, NULL);
+ gBattleMons[battlerId].type1 = gBaseStats[gBattleMons[battlerId].species].type1;
+ gBattleMons[battlerId].type2 = gBaseStats[gBattleMons[battlerId].species].type2;
+ gBattleMons[battlerId].ability = GetAbilityBySpecies(gBattleMons[battlerId].species, gBattleMons[battlerId].altAbility);
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname);
+ StringCopy10(gBattleMons[battlerId].nickname, nickname);
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battlerId].otName);
+
+ hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(battlerId)];
+ *hpSwitchout = gBattleMons[battlerId].hp;
+
+ for (i = 0; i < 8; i++)
+ gBattleMons[battlerId].statStages[i] = 6;
+
+ gBattleMons[battlerId].status2 = 0;
+ sub_80174B8(battlerId);
+ ClearTemporarySpeciesSpriteData(battlerId, FALSE);
+}
+
+bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex)
+{
+ return PokemonUseItemEffects(mon, item, partyIndex, moveIndex, 0);
+}
+
+extern const u8 gUnknown_825DEA1[];
+extern const u8 gUnknown_825DEA9[];
+extern const u8 sGetMonDataEVConstants[];
+
+bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex, u8 e)
+{
+ u32 data;
+ s32 friendship;
+ s32 cmdIndex;
+ bool8 retVal = TRUE;
+ const u8 *itemEffect;
+ u8 sp24 = 6;
+ u32 sp28;
+ s8 sp2C = 0;
+ u8 holdEffect;
+ u8 sp34 = 4;
+ u16 heldItem;
+ u8 r10;
+ u32 r4;
+
+ heldItem = GetMonData(pkmn, MON_DATA_HELD_ITEM, NULL);
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ holdEffect = gEnigmaBerries[gBattlerInMenuId].holdEffect;
+ else
+ holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(heldItem);
+ }
+
+ gPotentialItemEffectBattler = gBattlerInMenuId;
+ if (gMain.inBattle)
+ {
+ gActiveBattler = gBattlerInMenuId;
+ cmdIndex = (GetBattlerSide(gActiveBattler) != 0);
+ while (cmdIndex < gBattlersCount)
+ {
+ if (gBattlerPartyIndexes[cmdIndex] == partyIndex)
+ {
+ sp34 = cmdIndex;
+ break;
+ }
+ cmdIndex += 2;
+ }
+ }
+ else
+ {
+ gActiveBattler = 0;
+ sp34 = 4;
+ }
+
+ if (!IS_POKEMON_ITEM(item))
+ return TRUE;
+ if (gItemEffectTable[item - 13] == NULL && item != ITEM_ENIGMA_BERRY)
+ return TRUE;
+
+ if (item == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ itemEffect = gEnigmaBerries[gActiveBattler].itemEffect;
+ else
+ itemEffect = gSaveBlock1Ptr->enigmaBerry.itemEffect;
+ }
+ else
+ {
+ itemEffect = gItemEffectTable[item - 13];
+ }
+
+ for (cmdIndex = 0; cmdIndex < 6; cmdIndex++)
+ {
+ switch (cmdIndex)
+ {
+ // status healing effects
+ case 0:
+ if ((itemEffect[cmdIndex] & 0x80)
+ && gMain.inBattle && sp34 != 4 && (gBattleMons[sp34].status2 & STATUS2_INFATUATION))
+ {
+ gBattleMons[sp34].status2 &= ~STATUS2_INFATUATION;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x30)
+ && !(gBattleMons[gActiveBattler].status2 & STATUS2_FOCUS_ENERGY))
+ {
+ gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] < 12)
+ {
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] = 12;
+ retVal = FALSE;
+ }
+ break;
+ // in-battle stat boosting effects?
+ case 1:
+ if ((itemEffect[cmdIndex] & 0xF0)
+ && gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] < 12)
+ {
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] = 12;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] < 12)
+ {
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] = 12;
+ retVal = FALSE;
+ }
+ break;
+ // more stat boosting effects?
+ case 2:
+ if ((itemEffect[cmdIndex] & 0xF0)
+ && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] < 12)
+ {
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] = 12;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] < 12)
+ {
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] > 12)
+ gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] = 12;
+ retVal = FALSE;
+ }
+ break;
+ case 3:
+ if ((itemEffect[cmdIndex] & 0x80)
+ && gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer == 0)
+ {
+ gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer = 5;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x40) // raise level
+ && GetMonData(pkmn, MON_DATA_LEVEL, NULL) != 100)
+ {
+ data = gExperienceTables[gBaseStats[GetMonData(pkmn, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(pkmn, MON_DATA_LEVEL, NULL) + 1];
+ SetMonData(pkmn, MON_DATA_EXP, &data);
+ CalculateMonStats(pkmn);
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x20)
+ && HealStatusConditions(pkmn, partyIndex, 7, sp34) == 0)
+ {
+ if (sp34 != 4)
+ gBattleMons[sp34].status2 &= ~STATUS2_NIGHTMARE;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x10) && HealStatusConditions(pkmn, partyIndex, 0xF88, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 8) && HealStatusConditions(pkmn, partyIndex, 16, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 4) && HealStatusConditions(pkmn, partyIndex, 32, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 2) && HealStatusConditions(pkmn, partyIndex, 64, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 1) // heal confusion
+ && gMain.inBattle && sp34 != 4 && (gBattleMons[sp34].status2 & STATUS2_CONFUSION))
+ {
+ gBattleMons[sp34].status2 &= ~STATUS2_CONFUSION;
+ retVal = FALSE;
+ }
+ break;
+ // EV, HP, and PP raising effects
+ case 4:
+ r10 = itemEffect[cmdIndex];
+ if (r10 & 0x20)
+ {
+ r10 &= ~0x20;
+ data = (GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) & gUnknown_825DEA1[moveIndex]) >> (moveIndex * 2);
+ sp28 = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ if (data < 3 && sp28 > 4)
+ {
+ data = GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) + gUnknown_825DEA9[moveIndex];
+ SetMonData(pkmn, MON_DATA_PP_BONUSES, &data);
+
+ data = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), data, moveIndex) - sp28;
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL) + data;
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ retVal = FALSE;
+ }
+ }
+ sp28 = 0;
+ while (r10 != 0)
+ {
+ if (r10 & 1)
+ {
+ u16 evCount;
+ s32 r5;
+
+ switch (sp28)
+ {
+ case 0:
+ case 1:
+ evCount = GetMonEVCount(pkmn);
+ if (evCount >= 510)
+ return TRUE;
+ data = GetMonData(pkmn, sGetMonDataEVConstants[sp28], NULL);
+ if (data < 100)
+ {
+ if (data + itemEffect[sp24] > 100)
+ r4 = 100 - (data + itemEffect[sp24]) + itemEffect[sp24];
+ else
+ r4 = itemEffect[sp24];
+ if (evCount + r4 > 510)
+ r4 += 510 - (evCount + r4);
+ data += r4;
+ SetMonData(pkmn, sGetMonDataEVConstants[sp28], &data);
+ CalculateMonStats(pkmn);
+ sp24++;
+ retVal = FALSE;
+ }
+ break;
+ case 2:
+ // revive?
+ if (r10 & 0x10)
+ {
+ if (GetMonData(pkmn, MON_DATA_HP, NULL) != 0)
+ {
+ sp24++;
+ break;
+ }
+ if (gMain.inBattle)
+ {
+ if (sp34 != 4)
+ {
+ gAbsentBattlerFlags &= ~gBitTable[sp34];
+ CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlerPartyIndexes[sp34]));
+ if (GetBattlerSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255)
+ gBattleResults.unk4++;
+ }
+ else
+ {
+ gAbsentBattlerFlags &= ~gBitTable[gActiveBattler ^ 2];
+ if (GetBattlerSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255)
+ gBattleResults.unk4++;
+ }
+ }
+ }
+ else
+ {
+ if (GetMonData(pkmn, MON_DATA_HP, NULL) == 0)
+ {
+ sp24++;
+ break;
+ }
+ }
+ data = itemEffect[sp24++];
+ switch (data)
+ {
+ case 0xFF:
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL) - GetMonData(pkmn, MON_DATA_HP, NULL);
+ break;
+ case 0xFE:
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL) / 2;
+ if (data == 0)
+ data = 1;
+ break;
+ case 0xFD:
+ data = gBattleScripting.field_23;
+ break;
+ }
+ if (GetMonData(pkmn, MON_DATA_MAX_HP, NULL) != GetMonData(pkmn, MON_DATA_HP, NULL))
+ {
+ if (e == 0)
+ {
+ data = GetMonData(pkmn, MON_DATA_HP, NULL) + data;
+ if (data > GetMonData(pkmn, MON_DATA_MAX_HP, NULL))
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL);
+ SetMonData(pkmn, MON_DATA_HP, &data);
+ if (gMain.inBattle && sp34 != 4)
+ {
+ gBattleMons[sp34].hp = data;
+ if (!(r10 & 0x10) && GetBattlerSide(gActiveBattler) == 0)
+ {
+ if (gBattleResults.unk3 < 255)
+ gBattleResults.unk3++;
+ // I have to re-use this variable to match.
+ r5 = gActiveBattler;
+ gActiveBattler = sp34;
+ BtlController_EmitGetMonData(0, 0, 0);
+ MarkBufferBankForExecution(gActiveBattler);
+ gActiveBattler = r5;
+ }
+ }
+ }
+ else
+ {
+ gBattleMoveDamage = -data;
+ }
+ retVal = FALSE;
+ }
+ r10 &= 0xEF;
+ break;
+ case 3:
+ if (!(r10 & 2))
+ {
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ u16 r4;
+
+ data = GetMonData(pkmn, MON_DATA_PP1 + r5, NULL);
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ if (data != CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5))
+ {
+ data += itemEffect[sp24];
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ if (data > CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5))
+ {
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ data = CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5);
+ }
+ SetMonData(pkmn, MON_DATA_PP1 + r5, &data);
+ if (gMain.inBattle
+ && sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
+ && !(gDisableStructs[sp34].unk18_b & gBitTable[r5]))
+ gBattleMons[sp34].pp[r5] = data;
+ retVal = FALSE;
+ }
+ }
+ sp24++;
+ }
+ else
+ {
+ u16 r4;
+
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL);
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ if (data != CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex))
+ {
+ data += itemEffect[sp24++];
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ if (data > CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex))
+ {
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ data = CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ }
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ if (gMain.inBattle
+ && sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
+ && !(gDisableStructs[sp34].unk18_b & gBitTable[moveIndex]))
+ gBattleMons[sp34].pp[moveIndex] = data;
+ retVal = FALSE;
+ }
+ }
+ break;
+ case 7:
+ {
+ u16 targetSpecies = GetEvolutionTargetSpecies(pkmn, 2, item);
+
+ if (targetSpecies != SPECIES_NONE)
+ {
+ BeginEvolutionScene(pkmn, targetSpecies, 0, partyIndex);
+ return FALSE;
+ }
+ }
+ break;
+ }
+ }
+ sp28++;
+ r10 >>= 1;
+ }
+ break;
+ case 5:
+ r10 = itemEffect[cmdIndex];
+ sp28 = 0;
+ while (r10 != 0)
+ {
+ if (r10 & 1)
+ {
+ u16 evCount;
+
+ switch (sp28)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ evCount = GetMonEVCount(pkmn);
+ if (evCount >= 510)
+ return TRUE;
+ data = GetMonData(pkmn, sGetMonDataEVConstants[sp28 + 2], NULL);
+ if (data < 100)
+ {
+ if (data + itemEffect[sp24] > 100)
+ r4 = 100 - (data + itemEffect[sp24]) + itemEffect[sp24];
+ else
+ r4 = itemEffect[sp24];
+ if (evCount + r4 > 510)
+ r4 += 510 - (evCount + r4);
+ data += r4;
+ SetMonData(pkmn, sGetMonDataEVConstants[sp28 + 2], &data);
+ CalculateMonStats(pkmn);
+ retVal = FALSE;
+ sp24++;
+ }
+ break;
+ case 4:
+ data = (GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) & gUnknown_825DEA1[moveIndex]) >> (moveIndex * 2);
+ if (data < 3)
+ {
+ r4 = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ data = GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL);
+ data &= gPPUpWriteMasks[moveIndex];
+ data += gUnknown_825DEA9[moveIndex] * 3;
+
+ SetMonData(pkmn, MON_DATA_PP_BONUSES, &data);
+ data = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), data, moveIndex) - r4;
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL) + data;
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ retVal = FALSE;
+ }
+ break;
+ case 5:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) < 100 && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ case 6:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) >= 100 && GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) < 200
+ && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ case 7:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) >= 200 && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ }
+ }
+ sp28++;
+ r10 >>= 1;
+ }
+ break;
+ }
+ }
+ return retVal;
+}
+
+bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId)
+{
+ u32 status = GetMonData(mon, MON_DATA_STATUS, 0);
+
+ if (status & healMask)
+ {
+ status &= ~healMask;
+ SetMonData(mon, MON_DATA_STATUS, &status);
+ if (gMain.inBattle && battleId != 4)
+ gBattleMons[battleId].status1 &= ~healMask;
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+// continued in pokemon_3.s but i cant keep going
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 3864a27a7..381d3af13 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -212,7 +212,7 @@ gActiveBattler: @ 2023BC4
gUnknown_2023BC8: @ 2023BC8
.space 0x4
-gUnknown_2023BCC: @ 2023BCC
+gBattlersCount: @ 2023BCC
.space 0x2
gBattlerPartyIndexes: @ 2023BCE
@@ -284,7 +284,7 @@ gUnknown_2023D58: @ 2023D58
gUnknown_2023D68: @ 2023D68
.space 0x2
-gUnknown_2023D6A: @ 2023D6A
+gLastUsedAbility: @ 2023D6A
.space 0x1
sBattler_AI: @ 2023D6B
@@ -299,7 +299,7 @@ gUnknown_2023D6D: @ 2023D6D
gUnknown_2023D6E: @ 2023D6E
.space 0x1
-gUnknown_2023D6F: @ 2023D6F
+gPotentialItemEffectBattler: @ 2023D6F
.space 0x1
gAbsentBattlerFlags: @ 2023D70
@@ -362,7 +362,7 @@ gUnknown_2023DDC: @ 2023DDC
gSideAffecting: @ 2023DDE
.space 0x6
-gUnknown_2023DE4: @ 2023DE4
+gSideTimers: @ 2023DE4
.space 0x18
gStatuses3: @ 2023DFC
@@ -413,11 +413,8 @@ gDynamicBasePower: @ 2023F50
gUnknown_2023F52: @ 2023F52
.space 0x2
-gUnknown_2023F54: @ 2023F54
- .space 0x8
-
-gUnknown_2023F5C: @ 2023F5C
- .space 0x68
+gEnigmaBerries: @ 2023F54
+ .space 0x70
gBattleScripting: @ 2023FC4
.space 0x4
@@ -446,7 +443,7 @@ gUnknown_2023FFC: @ 2023FFC
gUnknown_2024000: @ 2024000
.space 0x4
-gUnknown_2024004: @ 2024004
+gBattlerInMenuId: @ 2024004
.space 0x1
gUnknown_2024005: @ 2024005
@@ -458,25 +455,25 @@ gUnknown_2024008: @ 2024008
gUnknown_2024018: @ 2024018
.space 0x4
-gUnknown_202401C: @ 202401C
+gMonSpritesGfxPtr: @ 202401C
.space 0x4
-gUnknown_2024020: @ 2024020
+gBattleMovePower: @ 2024020
.space 0x2
-gUnknown_2024022: @ 2024022
+gMoveToLearn: @ 2024022
.space 0x2
gUnknown_2024024: @ 2024024
.space 0x4
-gUnknown_2024028: @ 2024028
+sLearningMoveTableID: @ 2024028
.space 0x1
-gUnknown_2024029: @ 2024029
+gPlayerPartyCount: @ 2024029
.space 0x1
-gUnknown_202402A: @ 202402A
+gEnemyPartyCount: @ 202402A
.space 0x2
gEnemyParty: @ 202402C
@@ -512,7 +509,7 @@ gUnknown_2024414: @ 2024414
gUnknown_2024478: @ 2024478
.space 0x64
-gUnknown_20244DC: @ 20244DC
+gMultiuseSpriteTemplate: @ 20244DC
.space 0x18
gUnknown_20244F4: @ 20244F4
@@ -716,10 +713,10 @@ gUnknown_20370D2: @ 20370D2
gUnknown_20370D4: @ 20370D4
.space 0x2
-gUnknown_20370D6: @ 20370D6
+gSpecialVar_MonBoxId: @ 20370D6
.space 0x2
-gUnknown_20370D8: @ 20370D8
+gSpecialVar_MonBoxPos: @ 20370D8
.space 0x2
gUnknown_20370DA: @ 20370DA