summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_controller_oak.s12
-rw-r--r--asm/battle_controller_pokedude.s200
-rw-r--r--asm/battle_message.s8
-rw-r--r--include/battle_main.h73
-rw-r--r--include/data.h2
-rw-r--r--src/battle_main.c412
-rw-r--r--sym_ewram.txt352
7 files changed, 402 insertions, 657 deletions
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 47230be60..809f8ba9c 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -3742,7 +3742,7 @@ SetWallyMonData: @ 80E93C8
ldr r0, _080E9400 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 9
- ldr r2, _080E9404 @ =gUnknown_2022BC7
+ ldr r2, _080E9404 @ =(gBattleBufferA + 3)
adds r3, r0, r2
adds r6, r3, 0
subs r1, r2, 0x2
@@ -3760,7 +3760,7 @@ _080E93F4:
mov pc, r0
.align 2, 0
_080E9400: .4byte gActiveBattler
-_080E9404: .4byte gUnknown_2022BC7
+_080E9404: .4byte (gBattleBufferA + 3)
_080E9408: .4byte _080E940C
.align 2, 0
_080E940C:
@@ -5784,7 +5784,7 @@ sub_80EA52C: @ 80EA52C
ldr r0, _080EA564 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 9
- ldr r1, _080EA568 @ =gUnknown_2022BC6
+ ldr r1, _080EA568 @ =(gBattleBufferA + 2)
adds r4, r0, r1
ldr r0, _080EA56C @ =gBattleTypeFlags
ldr r0, [r0]
@@ -5802,7 +5802,7 @@ sub_80EA52C: @ 80EA52C
_080EA55C: .4byte gBattle_BG0_X
_080EA560: .4byte gBattle_BG0_Y
_080EA564: .4byte gActiveBattler
-_080EA568: .4byte gUnknown_2022BC6
+_080EA568: .4byte (gBattleBufferA + 2)
_080EA56C: .4byte gBattleTypeFlags
_080EA570:
ldrh r0, [r4]
@@ -7287,7 +7287,7 @@ _080EB14C:
strb r1, [r0]
ldrb r0, [r5]
lsls r4, r0, 9
- ldr r3, _080EB198 @ =gUnknown_2022BC8
+ ldr r3, _080EB198 @ =(gBattleBufferA + 4)
adds r1, r4, r3
subs r2, r3, 0x3
adds r2, r4, r2
@@ -7308,7 +7308,7 @@ _080EB18A:
.align 2, 0
_080EB190: .4byte gBattleSpritesDataPtr
_080EB194: .4byte gActiveBattler
-_080EB198: .4byte gUnknown_2022BC8
+_080EB198: .4byte (gBattleBufferA + 4)
_080EB19C: .4byte gBattlerStatusSummaryTaskId
thumb_func_end sub_80EB11C
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 1857d92c8..e241b21b2 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -2862,7 +2862,7 @@ sub_81577B4: @ 81577B4
ldr r0, _081577E4 @ =gActiveBattler
ldrb r0, [r0]
lsls r2, r0, 9
- ldr r1, _081577E8 @ =gUnknown_2022BC7
+ ldr r1, _081577E8 @ =(gBattleBufferA + 3)
adds r5, r2, r1
mov r8, r5
bl GetBattlerSide
@@ -2876,7 +2876,7 @@ sub_81577B4: @ 81577B4
b _081577F8
.align 2, 0
_081577E4: .4byte gActiveBattler
-_081577E8: .4byte gUnknown_2022BC7
+_081577E8: .4byte (gBattleBufferA + 3)
_081577EC: .4byte gPlayerParty
_081577F0:
movs r0, 0x64
@@ -3148,7 +3148,7 @@ _08157AA4:
ldr r0, _08157AB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157ABC @ =gUnknown_2022BC7
+ ldr r0, _08157ABC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0xB
@@ -3156,12 +3156,12 @@ _08157AA4:
b _0815809A
.align 2, 0
_08157AB8: .4byte gActiveBattler
-_08157ABC: .4byte gUnknown_2022BC7
+_08157ABC: .4byte (gBattleBufferA + 3)
_08157AC0:
ldr r0, _08157AD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157AD8 @ =gUnknown_2022BC7
+ ldr r0, _08157AD8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0xC
@@ -3169,7 +3169,7 @@ _08157AC0:
b _0815809A
.align 2, 0
_08157AD4: .4byte gActiveBattler
-_08157AD8: .4byte gUnknown_2022BC7
+_08157AD8: .4byte (gBattleBufferA + 3)
_08157ADC:
movs r4, 0
movs r0, 0xC
@@ -3213,7 +3213,7 @@ _08157B2C:
ldr r5, _08157B80 @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157B84 @ =gUnknown_2022BC7
+ ldr r4, _08157B84 @ =(gBattleBufferA + 3)
adds r2, r4
adds r0, r6, 0
movs r1, 0x11
@@ -3249,7 +3249,7 @@ _08157B2C:
b _0815809A
.align 2, 0
_08157B80: .4byte gActiveBattler
-_08157B84: .4byte gUnknown_2022BC7
+_08157B84: .4byte (gBattleBufferA + 3)
_08157B88:
ldr r0, _08157BA4 @ =gActiveBattler
ldrb r2, [r0]
@@ -3270,7 +3270,7 @@ _08157BA8:
ldr r0, _08157BBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BC0 @ =gUnknown_2022BC7
+ ldr r0, _08157BC0 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1
@@ -3278,12 +3278,12 @@ _08157BA8:
b _0815809A
.align 2, 0
_08157BBC: .4byte gActiveBattler
-_08157BC0: .4byte gUnknown_2022BC7
+_08157BC0: .4byte (gBattleBufferA + 3)
_08157BC4:
ldr r0, _08157BD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BDC @ =gUnknown_2022BC7
+ ldr r0, _08157BDC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x19
@@ -3291,12 +3291,12 @@ _08157BC4:
b _0815809A
.align 2, 0
_08157BD8: .4byte gActiveBattler
-_08157BDC: .4byte gUnknown_2022BC7
+_08157BDC: .4byte (gBattleBufferA + 3)
_08157BE0:
ldr r0, _08157BF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BF8 @ =gUnknown_2022BC7
+ ldr r0, _08157BF8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1A
@@ -3304,12 +3304,12 @@ _08157BE0:
b _0815809A
.align 2, 0
_08157BF4: .4byte gActiveBattler
-_08157BF8: .4byte gUnknown_2022BC7
+_08157BF8: .4byte (gBattleBufferA + 3)
_08157BFC:
ldr r0, _08157C10 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C14 @ =gUnknown_2022BC7
+ ldr r0, _08157C14 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1B
@@ -3317,12 +3317,12 @@ _08157BFC:
b _0815809A
.align 2, 0
_08157C10: .4byte gActiveBattler
-_08157C14: .4byte gUnknown_2022BC7
+_08157C14: .4byte (gBattleBufferA + 3)
_08157C18:
ldr r0, _08157C2C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C30 @ =gUnknown_2022BC7
+ ldr r0, _08157C30 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1C
@@ -3330,12 +3330,12 @@ _08157C18:
b _0815809A
.align 2, 0
_08157C2C: .4byte gActiveBattler
-_08157C30: .4byte gUnknown_2022BC7
+_08157C30: .4byte (gBattleBufferA + 3)
_08157C34:
ldr r0, _08157C48 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C4C @ =gUnknown_2022BC7
+ ldr r0, _08157C4C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1D
@@ -3343,12 +3343,12 @@ _08157C34:
b _0815809A
.align 2, 0
_08157C48: .4byte gActiveBattler
-_08157C4C: .4byte gUnknown_2022BC7
+_08157C4C: .4byte (gBattleBufferA + 3)
_08157C50:
ldr r0, _08157C64 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C68 @ =gUnknown_2022BC7
+ ldr r0, _08157C68 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1E
@@ -3356,12 +3356,12 @@ _08157C50:
b _0815809A
.align 2, 0
_08157C64: .4byte gActiveBattler
-_08157C68: .4byte gUnknown_2022BC7
+_08157C68: .4byte (gBattleBufferA + 3)
_08157C6C:
ldr r0, _08157C80 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C84 @ =gUnknown_2022BC7
+ ldr r0, _08157C84 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x1F
@@ -3369,12 +3369,12 @@ _08157C6C:
b _0815809A
.align 2, 0
_08157C80: .4byte gActiveBattler
-_08157C84: .4byte gUnknown_2022BC7
+_08157C84: .4byte (gBattleBufferA + 3)
_08157C88:
ldr r0, _08157C9C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CA0 @ =gUnknown_2022BC7
+ ldr r0, _08157CA0 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
@@ -3382,12 +3382,12 @@ _08157C88:
b _0815809A
.align 2, 0
_08157C9C: .4byte gActiveBattler
-_08157CA0: .4byte gUnknown_2022BC7
+_08157CA0: .4byte (gBattleBufferA + 3)
_08157CA4:
ldr r0, _08157CB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CBC @ =gUnknown_2022BC7
+ ldr r0, _08157CBC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x22
@@ -3395,12 +3395,12 @@ _08157CA4:
b _0815809A
.align 2, 0
_08157CB8: .4byte gActiveBattler
-_08157CBC: .4byte gUnknown_2022BC7
+_08157CBC: .4byte (gBattleBufferA + 3)
_08157CC0:
ldr r0, _08157CD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CD8 @ =gUnknown_2022BC7
+ ldr r0, _08157CD8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x23
@@ -3408,12 +3408,12 @@ _08157CC0:
b _0815809A
.align 2, 0
_08157CD4: .4byte gActiveBattler
-_08157CD8: .4byte gUnknown_2022BC7
+_08157CD8: .4byte (gBattleBufferA + 3)
_08157CDC:
ldr r0, _08157CF0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CF4 @ =gUnknown_2022BC7
+ ldr r0, _08157CF4 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x24
@@ -3421,12 +3421,12 @@ _08157CDC:
b _0815809A
.align 2, 0
_08157CF0: .4byte gActiveBattler
-_08157CF4: .4byte gUnknown_2022BC7
+_08157CF4: .4byte (gBattleBufferA + 3)
_08157CF8:
ldr r0, _08157D0C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D10 @ =gUnknown_2022BC7
+ ldr r0, _08157D10 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x25
@@ -3434,12 +3434,12 @@ _08157CF8:
b _0815809A
.align 2, 0
_08157D0C: .4byte gActiveBattler
-_08157D10: .4byte gUnknown_2022BC7
+_08157D10: .4byte (gBattleBufferA + 3)
_08157D14:
ldr r0, _08157D28 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D2C @ =gUnknown_2022BC7
+ ldr r0, _08157D2C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x26
@@ -3447,12 +3447,12 @@ _08157D14:
b _0815809A
.align 2, 0
_08157D28: .4byte gActiveBattler
-_08157D2C: .4byte gUnknown_2022BC7
+_08157D2C: .4byte (gBattleBufferA + 3)
_08157D30:
ldr r5, _08157D8C @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157D90 @ =gUnknown_2022BC7
+ ldr r4, _08157D90 @ =(gBattleBufferA + 3)
adds r2, r4
adds r0, r6, 0
movs r1, 0x27
@@ -3492,12 +3492,12 @@ _08157D30:
b _08157E2A
.align 2, 0
_08157D8C: .4byte gActiveBattler
-_08157D90: .4byte gUnknown_2022BC7
+_08157D90: .4byte (gBattleBufferA + 3)
_08157D94:
ldr r0, _08157DA8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DAC @ =gUnknown_2022BC7
+ ldr r0, _08157DAC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x27
@@ -3505,12 +3505,12 @@ _08157D94:
b _0815809A
.align 2, 0
_08157DA8: .4byte gActiveBattler
-_08157DAC: .4byte gUnknown_2022BC7
+_08157DAC: .4byte (gBattleBufferA + 3)
_08157DB0:
ldr r0, _08157DC4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DC8 @ =gUnknown_2022BC7
+ ldr r0, _08157DC8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x28
@@ -3518,12 +3518,12 @@ _08157DB0:
b _0815809A
.align 2, 0
_08157DC4: .4byte gActiveBattler
-_08157DC8: .4byte gUnknown_2022BC7
+_08157DC8: .4byte (gBattleBufferA + 3)
_08157DCC:
ldr r0, _08157DE0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DE4 @ =gUnknown_2022BC7
+ ldr r0, _08157DE4 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x29
@@ -3531,12 +3531,12 @@ _08157DCC:
b _0815809A
.align 2, 0
_08157DE0: .4byte gActiveBattler
-_08157DE4: .4byte gUnknown_2022BC7
+_08157DE4: .4byte (gBattleBufferA + 3)
_08157DE8:
ldr r0, _08157DFC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E00 @ =gUnknown_2022BC7
+ ldr r0, _08157E00 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x2A
@@ -3544,12 +3544,12 @@ _08157DE8:
b _0815809A
.align 2, 0
_08157DFC: .4byte gActiveBattler
-_08157E00: .4byte gUnknown_2022BC7
+_08157E00: .4byte (gBattleBufferA + 3)
_08157E04:
ldr r0, _08157E18 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E1C @ =gUnknown_2022BC7
+ ldr r0, _08157E1C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x2B
@@ -3557,12 +3557,12 @@ _08157E04:
b _0815809A
.align 2, 0
_08157E18: .4byte gActiveBattler
-_08157E1C: .4byte gUnknown_2022BC7
+_08157E1C: .4byte (gBattleBufferA + 3)
_08157E20:
ldr r0, _08157E34 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E38 @ =gUnknown_2022BC7
+ ldr r0, _08157E38 @ =(gBattleBufferA + 3)
adds r2, r0
_08157E2A:
adds r0, r6, 0
@@ -3571,12 +3571,12 @@ _08157E2A:
b _0815809A
.align 2, 0
_08157E34: .4byte gActiveBattler
-_08157E38: .4byte gUnknown_2022BC7
+_08157E38: .4byte (gBattleBufferA + 3)
_08157E3C:
ldr r0, _08157E50 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E54 @ =gUnknown_2022BC7
+ ldr r0, _08157E54 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0
@@ -3584,12 +3584,12 @@ _08157E3C:
b _0815809A
.align 2, 0
_08157E50: .4byte gActiveBattler
-_08157E54: .4byte gUnknown_2022BC7
+_08157E54: .4byte (gBattleBufferA + 3)
_08157E58:
ldr r0, _08157E6C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E70 @ =gUnknown_2022BC7
+ ldr r0, _08157E70 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x9
@@ -3597,12 +3597,12 @@ _08157E58:
b _0815809A
.align 2, 0
_08157E6C: .4byte gActiveBattler
-_08157E70: .4byte gUnknown_2022BC7
+_08157E70: .4byte (gBattleBufferA + 3)
_08157E74:
ldr r0, _08157E88 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E8C @ =gUnknown_2022BC7
+ ldr r0, _08157E8C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x37
@@ -3610,12 +3610,12 @@ _08157E74:
b _0815809A
.align 2, 0
_08157E88: .4byte gActiveBattler
-_08157E8C: .4byte gUnknown_2022BC7
+_08157E8C: .4byte (gBattleBufferA + 3)
_08157E90:
ldr r0, _08157EA4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EA8 @ =gUnknown_2022BC7
+ ldr r0, _08157EA8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x38
@@ -3623,12 +3623,12 @@ _08157E90:
b _0815809A
.align 2, 0
_08157EA4: .4byte gActiveBattler
-_08157EA8: .4byte gUnknown_2022BC7
+_08157EA8: .4byte (gBattleBufferA + 3)
_08157EAC:
ldr r0, _08157EC0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EC4 @ =gUnknown_2022BC7
+ ldr r0, _08157EC4 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x39
@@ -3636,12 +3636,12 @@ _08157EAC:
b _0815809A
.align 2, 0
_08157EC0: .4byte gActiveBattler
-_08157EC4: .4byte gUnknown_2022BC7
+_08157EC4: .4byte (gBattleBufferA + 3)
_08157EC8:
ldr r0, _08157EDC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EE0 @ =gUnknown_2022BC7
+ ldr r0, _08157EE0 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3A
@@ -3649,12 +3649,12 @@ _08157EC8:
b _0815809A
.align 2, 0
_08157EDC: .4byte gActiveBattler
-_08157EE0: .4byte gUnknown_2022BC7
+_08157EE0: .4byte (gBattleBufferA + 3)
_08157EE4:
ldr r0, _08157EF8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EFC @ =gUnknown_2022BC7
+ ldr r0, _08157EFC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3B
@@ -3662,12 +3662,12 @@ _08157EE4:
b _0815809A
.align 2, 0
_08157EF8: .4byte gActiveBattler
-_08157EFC: .4byte gUnknown_2022BC7
+_08157EFC: .4byte (gBattleBufferA + 3)
_08157F00:
ldr r0, _08157F14 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F18 @ =gUnknown_2022BC7
+ ldr r0, _08157F18 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3C
@@ -3675,12 +3675,12 @@ _08157F00:
b _0815809A
.align 2, 0
_08157F14: .4byte gActiveBattler
-_08157F18: .4byte gUnknown_2022BC7
+_08157F18: .4byte (gBattleBufferA + 3)
_08157F1C:
ldr r0, _08157F30 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F34 @ =gUnknown_2022BC7
+ ldr r0, _08157F34 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3D
@@ -3688,12 +3688,12 @@ _08157F1C:
b _0815809A
.align 2, 0
_08157F30: .4byte gActiveBattler
-_08157F34: .4byte gUnknown_2022BC7
+_08157F34: .4byte (gBattleBufferA + 3)
_08157F38:
ldr r0, _08157F4C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F50 @ =gUnknown_2022BC7
+ ldr r0, _08157F50 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3E
@@ -3701,12 +3701,12 @@ _08157F38:
b _0815809A
.align 2, 0
_08157F4C: .4byte gActiveBattler
-_08157F50: .4byte gUnknown_2022BC7
+_08157F50: .4byte (gBattleBufferA + 3)
_08157F54:
ldr r0, _08157F68 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F6C @ =gUnknown_2022BC7
+ ldr r0, _08157F6C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x3F
@@ -3714,12 +3714,12 @@ _08157F54:
b _0815809A
.align 2, 0
_08157F68: .4byte gActiveBattler
-_08157F6C: .4byte gUnknown_2022BC7
+_08157F6C: .4byte (gBattleBufferA + 3)
_08157F70:
ldr r0, _08157F84 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F88 @ =gUnknown_2022BC7
+ ldr r0, _08157F88 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x16
@@ -3727,12 +3727,12 @@ _08157F70:
b _0815809A
.align 2, 0
_08157F84: .4byte gActiveBattler
-_08157F88: .4byte gUnknown_2022BC7
+_08157F88: .4byte (gBattleBufferA + 3)
_08157F8C:
ldr r0, _08157FA0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FA4 @ =gUnknown_2022BC7
+ ldr r0, _08157FA4 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x17
@@ -3740,12 +3740,12 @@ _08157F8C:
b _0815809A
.align 2, 0
_08157FA0: .4byte gActiveBattler
-_08157FA4: .4byte gUnknown_2022BC7
+_08157FA4: .4byte (gBattleBufferA + 3)
_08157FA8:
ldr r0, _08157FBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FC0 @ =gUnknown_2022BC7
+ ldr r0, _08157FC0 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x18
@@ -3753,12 +3753,12 @@ _08157FA8:
b _0815809A
.align 2, 0
_08157FBC: .4byte gActiveBattler
-_08157FC0: .4byte gUnknown_2022BC7
+_08157FC0: .4byte (gBattleBufferA + 3)
_08157FC4:
ldr r0, _08157FD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FDC @ =gUnknown_2022BC7
+ ldr r0, _08157FDC @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x21
@@ -3766,12 +3766,12 @@ _08157FC4:
b _0815809A
.align 2, 0
_08157FD8: .4byte gActiveBattler
-_08157FDC: .4byte gUnknown_2022BC7
+_08157FDC: .4byte (gBattleBufferA + 3)
_08157FE0:
ldr r0, _08157FF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FF8 @ =gUnknown_2022BC7
+ ldr r0, _08157FF8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x2F
@@ -3779,12 +3779,12 @@ _08157FE0:
b _0815809A
.align 2, 0
_08157FF4: .4byte gActiveBattler
-_08157FF8: .4byte gUnknown_2022BC7
+_08157FF8: .4byte (gBattleBufferA + 3)
_08157FFC:
ldr r0, _08158010 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158014 @ =gUnknown_2022BC7
+ ldr r0, _08158014 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x30
@@ -3792,12 +3792,12 @@ _08157FFC:
b _0815809A
.align 2, 0
_08158010: .4byte gActiveBattler
-_08158014: .4byte gUnknown_2022BC7
+_08158014: .4byte (gBattleBufferA + 3)
_08158018:
ldr r0, _0815802C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158030 @ =gUnknown_2022BC7
+ ldr r0, _08158030 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x32
@@ -3805,12 +3805,12 @@ _08158018:
b _0815809A
.align 2, 0
_0815802C: .4byte gActiveBattler
-_08158030: .4byte gUnknown_2022BC7
+_08158030: .4byte (gBattleBufferA + 3)
_08158034:
ldr r0, _08158048 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _0815804C @ =gUnknown_2022BC7
+ ldr r0, _0815804C @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x33
@@ -3818,12 +3818,12 @@ _08158034:
b _0815809A
.align 2, 0
_08158048: .4byte gActiveBattler
-_0815804C: .4byte gUnknown_2022BC7
+_0815804C: .4byte (gBattleBufferA + 3)
_08158050:
ldr r0, _08158064 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158068 @ =gUnknown_2022BC7
+ ldr r0, _08158068 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x34
@@ -3831,12 +3831,12 @@ _08158050:
b _0815809A
.align 2, 0
_08158064: .4byte gActiveBattler
-_08158068: .4byte gUnknown_2022BC7
+_08158068: .4byte (gBattleBufferA + 3)
_0815806C:
ldr r0, _08158080 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158084 @ =gUnknown_2022BC7
+ ldr r0, _08158084 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x35
@@ -3844,12 +3844,12 @@ _0815806C:
b _0815809A
.align 2, 0
_08158080: .4byte gActiveBattler
-_08158084: .4byte gUnknown_2022BC7
+_08158084: .4byte (gBattleBufferA + 3)
_08158088:
ldr r0, _081580C4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _081580C8 @ =gUnknown_2022BC7
+ ldr r0, _081580C8 @ =(gBattleBufferA + 3)
adds r2, r0
adds r0, r6, 0
movs r1, 0x36
@@ -3876,7 +3876,7 @@ _0815809A:
bx r0
.align 2, 0
_081580C4: .4byte gActiveBattler
-_081580C8: .4byte gUnknown_2022BC7
+_081580C8: .4byte (gBattleBufferA + 3)
_081580CC: .4byte gBattlerPartyIndexes
_081580D0: .4byte gPlayerParty
thumb_func_end sub_81577B4
@@ -5063,7 +5063,7 @@ sub_8158A88: @ 8158A88
ldr r0, _08158AC4 @ =gActiveBattler
ldrb r4, [r0]
lsls r4, 9
- ldr r0, _08158AC8 @ =gUnknown_2022BC6
+ ldr r0, _08158AC8 @ =(gBattleBufferA + 2)
adds r4, r0
ldrh r0, [r4]
bl BufferStringBattle
@@ -5080,7 +5080,7 @@ sub_8158A88: @ 8158A88
_08158ABC: .4byte gBattle_BG0_X
_08158AC0: .4byte gBattle_BG0_Y
_08158AC4: .4byte gActiveBattler
-_08158AC8: .4byte gUnknown_2022BC6
+_08158AC8: .4byte (gBattleBufferA + 2)
_08158ACC: .4byte gDisplayedStringBattle
_08158AD0:
ldr r0, _08158AEC @ =gDisplayedStringBattle
@@ -6552,7 +6552,7 @@ _08159690:
strb r1, [r0]
ldrb r0, [r5]
lsls r4, r0, 9
- ldr r3, _081596DC @ =gUnknown_2022BC8
+ ldr r3, _081596DC @ =(gBattleBufferA + 4)
adds r1, r4, r3
subs r2, r3, 0x3
adds r2, r4, r2
@@ -6573,7 +6573,7 @@ _081596CE:
.align 2, 0
_081596D4: .4byte gBattleSpritesDataPtr
_081596D8: .4byte gActiveBattler
-_081596DC: .4byte gUnknown_2022BC8
+_081596DC: .4byte (gBattleBufferA + 4)
_081596E0: .4byte gBattlerStatusSummaryTaskId
thumb_func_end sub_8159660
@@ -7081,7 +7081,7 @@ sub_8159AB8: @ 8159AB8
ldr r3, _08159B5C @ =gActiveBattler
ldrb r5, [r3]
lsls r1, r5, 9
- ldr r0, _08159B60 @ =gUnknown_2022BC6
+ ldr r0, _08159B60 @ =(gBattleBufferA + 2)
adds r7, r1, r0
mov r12, r7
subs r0, 0x2
@@ -7150,7 +7150,7 @@ _08159B04:
_08159B54: .4byte gUnknown_8479198
_08159B58: .4byte gBattleStruct
_08159B5C: .4byte gActiveBattler
-_08159B60: .4byte gUnknown_2022BC6
+_08159B60: .4byte (gBattleBufferA + 2)
_08159B64: .4byte gBattlerControllerFuncs
_08159B68: .4byte gUnknown_3005EE0
_08159B6C:
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 8c83d9496..516fbc249 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -20,7 +20,7 @@ BufferStringBattle: @ 80D7274
mov r8, r0
ldrb r1, [r0]
lsls r1, 9
- ldr r0, _080D7338 @ =gUnknown_2022BC8
+ ldr r0, _080D7338 @ =(gBattleBufferA + 4)
adds r1, r0
str r1, [r4]
ldr r2, _080D733C @ =gLastUsedItem
@@ -107,7 +107,7 @@ _080D7326:
.align 2, 0
_080D7330: .4byte gUnknown_2039A34
_080D7334: .4byte gActiveBattler
-_080D7338: .4byte gUnknown_2022BC8
+_080D7338: .4byte (gBattleBufferA + 4)
_080D733C: .4byte gLastUsedItem
_080D7340: .4byte gLastUsedAbility
_080D7344: .4byte gBattleScripting
@@ -2943,7 +2943,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
ldr r0, _080D8A38 @ =gActiveBattler
ldrb r2, [r0]
lsls r1, r2, 9
- ldr r0, _080D8A3C @ =gUnknown_2022BC8
+ ldr r0, _080D8A3C @ =(gBattleBufferA + 4)
adds r1, r0
ldr r4, _080D8A40 @ =gUnknown_8D2FBB4
ldr r0, _080D8A44 @ =gMoveSelectionCursor
@@ -2983,7 +2983,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
bx r0
.align 2, 0
_080D8A38: .4byte gActiveBattler
-_080D8A3C: .4byte gUnknown_2022BC8
+_080D8A3C: .4byte (gBattleBufferA + 4)
_080D8A40: .4byte gUnknown_8D2FBB4
_080D8A44: .4byte gMoveSelectionCursor
_080D8A48: .4byte gPlttBufferUnfaded
diff --git a/include/battle_main.h b/include/battle_main.h
index 06d658483..613171da9 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_MAIN_H
#define GUARD_BATTLE_MAIN_H
+#include "constants/abilities.h"
+
struct TrainerMoney
{
u8 classId;
@@ -43,61 +45,54 @@ struct UnknownPokemonStruct4
#define BOUNCE_MON 0x0
#define BOUNCE_HEALTHBOX 0x1
+extern const struct SpriteTemplate gUnknown_824EFF0;
+extern const struct OamData gOamData_824F010;
+extern const struct OamData gOamData_824F018;
+extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
+extern const u8 gStatusConditionString_PoisonJpn[8];
+extern const u8 gStatusConditionString_SleepJpn[8];
+extern const u8 gStatusConditionString_ParalysisJpn[8];
+extern const u8 gStatusConditionString_BurnJpn[8];
+extern const u8 gStatusConditionString_IceJpn[8];
+extern const u8 gStatusConditionString_ConfusionJpn[8];
+extern const u8 gStatusConditionString_LoveJpn[8];
+extern const u8 *const gStatusConditionStringsTable[7][2];
+extern const u8 gTypeEffectiveness[336];
+extern const struct TrainerMoney gTrainerMoneyTable[];
+extern const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT];
+extern const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1];
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
-void CB2_QuitPokeDudeBattle(void);
-void sub_8038528(struct Sprite* sprite);
-void sub_8038A04(void); // unused
+void FreeRestoreBattleData(void);
void VBlankCB_Battle(void);
+void nullsub_9(struct Sprite *sprite);
void sub_801182C(struct Sprite *sprite);
void sub_8011A1C(void);
-u32 sub_80391E0(u8 arrayId, u8 caseId);
-u32 sub_80397C4(u32 setId, u32 tableId);
+u32 sub_8011C44(u8 arrayId, u8 caseId);
void SpriteCB_WildMon(struct Sprite *sprite);
-void SpriteCallbackDummy_2(struct Sprite *sprite);
-void sub_8039934(struct Sprite *sprite);
-void sub_8012098(struct Sprite *sprite);
+void SpriteCallbackDummy2(struct Sprite *sprite);
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8012044(struct Sprite *sprite);
-void sub_8039B58(struct Sprite *sprite);
-void sub_8039BB4(struct Sprite *sprite);
-void sub_80105DC(struct Sprite *sprite);
+void sub_8012098(struct Sprite *sprite);
+void sub_80120C4(struct Sprite *sprite);
+void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite);
-void DoBounceEffect(u8 bank, u8 b, s8 c, s8 d);
-void EndBounceEffect(u8 bank, bool8 b);
-void sub_8039E44(struct Sprite *sprite);
-void sub_8039E60(struct Sprite *sprite);
-void sub_8039E84(struct Sprite *sprite);
+void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
+void EndBounceEffect(u8 battler, u8 which);
+void sub_8012354(struct Sprite *sprite);
void sub_801236C(struct Sprite *sprite);
+void nullsub_12(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
void FaintClearSetData(void);
-void sub_803B3AC(void); // unused
-void sub_803B598(void); // unused
void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(void);
-void sub_8013F6C(u8 battlerId);
+void sub_8013F6C(u8 battler);
void SwapTurnOrder(u8 id1, u8 id2);
-u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
+u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
-bool8 TryRunFromBattle(u8 bank);
-void CB2_InitBattle(void);
-void sub_80120C4(struct Sprite *);
-void sub_8012100(struct Sprite *);
-void nullsub_12(void);
-void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
-
-extern const u8 gStatusConditionString_PoisonJpn[8];
-extern const u8 gStatusConditionString_SleepJpn[8];
-extern const u8 gStatusConditionString_ParalysisJpn[8];
-extern const u8 gStatusConditionString_BurnJpn[8];
-extern const u8 gStatusConditionString_IceJpn[8];
-extern const u8 gStatusConditionString_ConfusionJpn[8];
-extern const u8 gStatusConditionString_LoveJpn[8];
-
-extern const u8 * const gStatusConditionStringsTable[7][2];
-
-extern const u8 gTypeEffectiveness[336];
-extern const struct TrainerMoney gTrainerMoneyTable[];
+bool8 TryRunFromBattle(u8 battler);
#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/data.h b/include/data.h
index 005c798b3..82fc527dc 100644
--- a/include/data.h
+++ b/include/data.h
@@ -17,8 +17,6 @@ extern struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
-extern const u8 gAbilityNames[][13];
-extern const u8 gTypeNames[][7];
extern const u16 gUnknown_8251CB8[];
extern const u16 gUnknown_8251FEE[];
extern const u16 gUnknown_8252324[];
diff --git a/src/battle_main.c b/src/battle_main.c
index ba6ce6bbf..d82cf471b 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -60,75 +60,177 @@
#include "constants/trainers.h"
#include "constants/trainer_classes.h"
-void sub_80111EC(struct Sprite *sprite);
-void HandleAction_UseMove(void);
-void HandleAction_Switch(void);
-void HandleAction_UseItem(void);
-void HandleAction_Run(void);
-void HandleAction_WatchesCarefully(void);
-void HandleAction_SafariZoneBallThrow(void);
-void HandleAction_ThrowPokeblock(void);
-void HandleAction_GoNear(void);
-void HandleAction_SafariZoneRun(void);
-void HandleAction_OldManBallThrow(void);
-void HandleAction_TryFinish(void);
-void HandleAction_NothingIsFainted(void);
-void HandleAction_ActionFinished(void);
-void HandleEndTurn_ContinueBattle(void);
-void HandleEndTurn_BattleWon(void);
-void HandleEndTurn_BattleLost(void);
-void HandleEndTurn_RanFromBattle(void);
-void HandleEndTurn_MonFled(void);
-void HandleEndTurn_FinishBattle(void);
-void CB2_InitBattleInternal(void);
-void CB2_PreInitMultiBattle(void);
-void CB2_HandleStartMultiBattle(void);
-u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
-void CB2_HandleStartBattle(void);
-void TryCorrectShedinjaLanguage(struct Pokemon *mon);
-void BattleMainCB1(void);
-void CB2_QuitPokeDudeBattle(void);
-void sub_80111FC(struct Sprite *sprite);
-void sub_8011B94(void);
-void sub_8011BB0(void);
-void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
-void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
-void SpriteCallbackDummy2(struct Sprite *sprite);
-void sub_8011E3C(struct Sprite *sprite);
-void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
-void sub_8012060(struct Sprite *sprite);
-void oac_poke_ally_(struct Sprite *sprite);
-void SpriteCallbackDummy3(struct Sprite *sprite);
-void SpriteCB_BounceEffect(struct Sprite *sprite);
-void sub_8012398(struct Sprite *sprite);
-void BattleStartClearSetData(void);
-void BattleIntroGetMonsData(void);
-void TurnValuesCleanUp(bool8 var0);
-void SpecialStatusesClear(void);
-void BattleIntroPrepareBackgroundSlide(void);
-void BattleIntroDrawTrainersOrMonsSprites(void);
-void BattleIntroDrawPartySummaryScreens(void);
-void BattleIntroPrintTrainerWantsToBattle(void);
-void BattleIntroPrintWildMonAttacked(void);
-void BattleIntroPrintOpponentSendsOut(void);
-void BattleIntroPrintPlayerSendsOut(void);
-void BattleIntroRecordMonsToDex(void);
-void BattleIntroOpponentSendsOutMonAnimation(void);
-void BattleIntroPlayerSendsOutMonAnimation(void);
-void TryDoEventsBeforeFirstTurn(void);
-void HandleTurnActionSelectionState(void);
-void RunTurnActionsFunctions(void);
-void SetActionsAndBattlersTurnOrder(void);
-void CheckFocusPunch_ClearVarsBeforeTurnStarts(void);
-void HandleEndTurn_FinishBattle(void);
-void FreeResetData_ReturnToOvOrDoEvolutions(void);
-void ReturnFromBattleToOverworld(void);
-void TryEvolvePokemon(void);
-void WaitForEvoSceneToFinish(void);
-
-// TODO: put ewram variables here after resolving symbol ref in between
-extern u32 gUnknown_2022AE8[25];
-extern u8 gUnknown_2023DD4[MAX_BATTLERS_COUNT];
+static void sub_80111EC(struct Sprite *sprite);
+static void HandleAction_UseMove(void);
+static void HandleAction_Switch(void);
+static void HandleAction_UseItem(void);
+static void HandleAction_Run(void);
+static void HandleAction_WatchesCarefully(void);
+static void HandleAction_SafariZoneBallThrow(void);
+static void HandleAction_ThrowPokeblock(void);
+static void HandleAction_GoNear(void);
+static void HandleAction_SafariZoneRun(void);
+static void HandleAction_OldManBallThrow(void);
+static void HandleAction_TryFinish(void);
+static void HandleAction_NothingIsFainted(void);
+static void HandleAction_ActionFinished(void);
+static void HandleEndTurn_ContinueBattle(void);
+static void HandleEndTurn_BattleWon(void);
+static void HandleEndTurn_BattleLost(void);
+static void HandleEndTurn_RanFromBattle(void);
+static void HandleEndTurn_MonFled(void);
+static void HandleEndTurn_FinishBattle(void);
+static void CB2_InitBattleInternal(void);
+static void CB2_PreInitMultiBattle(void);
+static void CB2_HandleStartMultiBattle(void);
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
+static void CB2_HandleStartBattle(void);
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
+static void BattleMainCB1(void);
+static void CB2_QuitPokeDudeBattle(void);
+static void sub_80111FC(struct Sprite *sprite);
+static void sub_8011B94(void);
+static void sub_8011BB0(void);
+static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
+static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
+static void sub_8011E3C(struct Sprite *sprite);
+static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
+static void sub_8012060(struct Sprite *sprite);
+static void oac_poke_ally_(struct Sprite *sprite);
+static void SpriteCallbackDummy3(struct Sprite *sprite);
+static void SpriteCB_BounceEffect(struct Sprite *sprite);
+static void sub_8012398(struct Sprite *sprite);
+static void BattleStartClearSetData(void);
+static void BattleIntroGetMonsData(void);
+static void TurnValuesCleanUp(bool8 var0);
+static void SpecialStatusesClear(void);
+static void BattleIntroPrepareBackgroundSlide(void);
+static void BattleIntroDrawTrainersOrMonsSprites(void);
+static void BattleIntroDrawPartySummaryScreens(void);
+static void BattleIntroPrintTrainerWantsToBattle(void);
+static void BattleIntroPrintWildMonAttacked(void);
+static void BattleIntroPrintOpponentSendsOut(void);
+static void BattleIntroPrintPlayerSendsOut(void);
+static void BattleIntroRecordMonsToDex(void);
+static void BattleIntroOpponentSendsOutMonAnimation(void);
+static void BattleIntroPlayerSendsOutMonAnimation(void);
+static void TryDoEventsBeforeFirstTurn(void);
+static void HandleTurnActionSelectionState(void);
+static void RunTurnActionsFunctions(void);
+static void SetActionsAndBattlersTurnOrder(void);
+static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void);
+static void HandleEndTurn_FinishBattle(void);
+static void FreeResetData_ReturnToOvOrDoEvolutions(void);
+static void ReturnFromBattleToOverworld(void);
+static void TryEvolvePokemon(void);
+static void WaitForEvoSceneToFinish(void);
+
+EWRAM_DATA u16 gBattle_BG0_X = 0;
+EWRAM_DATA u16 gBattle_BG0_Y = 0;
+EWRAM_DATA u16 gBattle_BG1_X = 0;
+EWRAM_DATA u16 gBattle_BG1_Y = 0;
+EWRAM_DATA u16 gBattle_BG2_X = 0;
+EWRAM_DATA u16 gBattle_BG2_Y = 0;
+EWRAM_DATA u16 gBattle_BG3_X = 0;
+EWRAM_DATA u16 gBattle_BG3_Y = 0;
+EWRAM_DATA u16 gBattle_WIN0H = 0;
+EWRAM_DATA u16 gBattle_WIN0V = 0;
+EWRAM_DATA u16 gBattle_WIN1H = 0;
+EWRAM_DATA u16 gBattle_WIN1V = 0;
+EWRAM_DATA u8 gDisplayedStringBattle[300] = {0};
+EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0};
+EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0};
+EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0};
+static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0};
+EWRAM_DATA u32 gBattleTypeFlags = 0;
+EWRAM_DATA u8 gBattleTerrain = 0;
+EWRAM_DATA u32 gUnknown_2022B54 = 0;
+EWRAM_DATA struct UnknownPokemonStruct4 gUnknown_2022B58[3] = {0};
+EWRAM_DATA u8 *gUnknown_2022BB8 = NULL;
+EWRAM_DATA u8 *gUnknown_2022BBC = NULL;
+EWRAM_DATA u16 *gUnknown_2022BC0 = NULL;
+EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
+EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0};
+EWRAM_DATA u8 gActiveBattler = 0;
+EWRAM_DATA u32 gBattleControllerExecFlags = 0;
+EWRAM_DATA u8 gBattlersCount = 0;
+EWRAM_DATA u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerPositions[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gCurrentTurnActionNumber = 0;
+EWRAM_DATA u8 gCurrentActionFuncId = 0;
+EWRAM_DATA struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gCurrMovePos = 0;
+EWRAM_DATA u8 gChosenMovePos = 0;
+EWRAM_DATA u16 gCurrentMove = 0;
+EWRAM_DATA u16 gChosenMove = 0;
+EWRAM_DATA u16 gCalledMove = 0;
+EWRAM_DATA s32 gBattleMoveDamage = 0;
+EWRAM_DATA s32 gHpDealt = 0;
+EWRAM_DATA s32 gTakenDmg[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastUsedItem = 0;
+EWRAM_DATA u8 gLastUsedAbility = 0;
+EWRAM_DATA u8 gBattlerAttacker = 0;
+EWRAM_DATA u8 gBattlerTarget = 0;
+EWRAM_DATA u8 gBattlerFainted = 0;
+EWRAM_DATA u8 gEffectBattler = 0;
+EWRAM_DATA u8 gPotentialItemEffectBattler = 0;
+EWRAM_DATA u8 gAbsentBattlerFlags = 0;
+EWRAM_DATA u8 gCritMultiplier = 0;
+EWRAM_DATA u8 gMultiHitCounter = 0;
+EWRAM_DATA const u8 *gBattlescriptCurrInstr = NULL;
+EWRAM_DATA u32 gUnusedBattleMainVar = 0;
+EWRAM_DATA u8 gChosenActionByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT] = {NULL};
+EWRAM_DATA u16 gLastPrintedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastLandedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastHitByType[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastResultingMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLockedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gMoveResultFlags = 0;
+EWRAM_DATA u32 gHitMarker = 0;
+static EWRAM_DATA u8 gUnknown_2023DD4[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gUnknown_2023DDC = 0;
+EWRAM_DATA u16 gSideStatuses[2] = {0};
+EWRAM_DATA struct SideTimer gSideTimers[2] = {0};
+EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gPauseCounterBattle = 0;
+EWRAM_DATA u16 gPaydayMoney = 0;
+EWRAM_DATA u16 gRandomTurnNumber = 0;
+EWRAM_DATA u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT] = {0};
+EWRAM_DATA u8 gBattleOutcome = 0;
+EWRAM_DATA struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gBattleWeather = 0;
+EWRAM_DATA struct WishFutureKnock gWishFutureKnock = {0};
+EWRAM_DATA u16 gIntroSlideFlags = 0;
+EWRAM_DATA u8 gSentPokesToOpponent[2] = {0};
+EWRAM_DATA u16 gDynamicBasePower = 0;
+EWRAM_DATA u16 gExpShareExp = 0;
+EWRAM_DATA struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct BattleScripting gBattleScripting = {0};
+EWRAM_DATA struct BattleStruct *gBattleStruct = NULL;
+EWRAM_DATA u8 *gLinkBattleSendBuffer = NULL;
+EWRAM_DATA u8 *gLinkBattleRecvBuffer = NULL;
+EWRAM_DATA struct BattleResources *gBattleResources = NULL;
+EWRAM_DATA u8 gActionSelectionCursor[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerInMenuId = 0;
+EWRAM_DATA bool8 gDoingBattleAnim = FALSE;
+EWRAM_DATA u32 gTransformedPersonalities[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct BattleSpriteData *gBattleSpritesDataPtr = NULL;
+EWRAM_DATA struct MonSpritesGfx *gMonSpritesGfxPtr = NULL;
+EWRAM_DATA u16 gBattleMovePower = 0;
+EWRAM_DATA u16 gMoveToLearn = 0;
+EWRAM_DATA u8 gBattleMonForms[MAX_BATTLERS_COUNT] = {0};
void (*gPreBattleCallback1)(void);
void (*gBattleMainFunc)(void);
@@ -140,7 +242,7 @@ u8 gMultiUsePlayerCursor;
u8 gNumberOfMovesToChoose;
u8 gUnknown_3004FFC[MAX_BATTLERS_COUNT];
-const struct ScanlineEffectParams sIntroScanlineParams16Bit =
+static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
{
(void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
};
@@ -156,7 +258,7 @@ const struct SpriteTemplate gUnknown_824EFF0 =
.callback = sub_80111EC,
};
-const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
+static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
const struct OamData gOamData_824F010 =
{
@@ -189,20 +291,20 @@ const struct OamData gOamData_824F018 =
};
// not used
-const union AnimCmd gUnknown_824F020[] =
+static const union AnimCmd gUnknown_824F020[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0),
};
// not used
-const union AnimCmd *const gUnknown_824F028[] =
+static const union AnimCmd *const gUnknown_824F028[] =
{
gUnknown_824F020,
};
// not used
-const union AffineAnimCmd gUnknown_824F02C[] =
+static const union AffineAnimCmd gUnknown_824F02C[] =
{
AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C),
@@ -210,12 +312,12 @@ const union AffineAnimCmd gUnknown_824F02C[] =
};
// not used
-const union AffineAnimCmd *const gUnknown_824F044[] =
+static const union AffineAnimCmd *const gUnknown_824F044[] =
{
gUnknown_824F02C,
};
-const s8 gUnknown_824F048[] ={ -32, -16, -16, -32, -32, 0, 0, 0 };
+static const s8 gUnknown_824F048[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
// format: attacking type, defending type, damage multiplier
// the multiplier is a (decimal) fixed-point number:
@@ -473,7 +575,7 @@ const struct TrainerMoney gTrainerMoneyTable[] =
#include "data/text/abilities.h"
-void (*const sTurnActionsFuncsTable[])(void) =
+static void (*const sTurnActionsFuncsTable[])(void) =
{
[B_ACTION_USE_MOVE] = HandleAction_UseMove,
[B_ACTION_USE_ITEM] = HandleAction_UseItem,
@@ -491,7 +593,7 @@ void (*const sTurnActionsFuncsTable[])(void) =
[B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted,
};
-void (*const sEndTurnFuncsTable[])(void) =
+static void (*const sEndTurnFuncsTable[])(void) =
{
[0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE?
[B_OUTCOME_WON] = HandleEndTurn_BattleWon,
@@ -559,7 +661,7 @@ void CB2_InitBattle(void)
}
}
-void CB2_InitBattleInternal(void)
+static void CB2_InitBattleInternal(void)
{
s32 i;
@@ -619,7 +721,7 @@ void CB2_InitBattleInternal(void)
gBattleCommunication[MULTIUSE_STATE] = 0;
}
-void sub_800FFEC(void)
+static void sub_800FFEC(void)
{
u16 r6 = 0;
u16 species = SPECIES_NONE;
@@ -649,7 +751,7 @@ void sub_800FFEC(void)
*(&gBattleStruct->field_187) = r6 >> 8;
}
-void SetPlayerBerryDataInBattleStruct(void)
+static void SetPlayerBerryDataInBattleStruct(void)
{
s32 i;
struct BattleStruct *battleStruct = gBattleStruct;
@@ -679,7 +781,7 @@ void SetPlayerBerryDataInBattleStruct(void)
}
}
-void SetAllPlayersBerryData(void)
+static void SetAllPlayersBerryData(void)
{
s32 i, j;
@@ -773,7 +875,7 @@ void SetAllPlayersBerryData(void)
}
}
-void sub_8010414(u8 arg0, u8 arg1)
+static void sub_8010414(u8 arg0, u8 arg1)
{
u8 var = 0;
@@ -818,7 +920,7 @@ void sub_8010414(u8 arg0, u8 arg1)
}
}
-void CB2_HandleStartBattle(void)
+static void CB2_HandleStartBattle(void)
{
u8 playerMultiplayerId;
u8 enemyMultiplayerId;
@@ -970,7 +1072,7 @@ void CB2_HandleStartBattle(void)
}
}
-void sub_80108C4(void)
+static void sub_80108C4(void)
{
s32 i, j;
u8 *nick, *cur;
@@ -978,7 +1080,7 @@ void sub_80108C4(void)
for (i = 0; i < 3; ++i)
{
gUnknown_2022B58[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES);
- gUnknown_2022B58[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+ gUnknown_2022B58[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
nick = gUnknown_2022B58[i].nickname;
GetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, nick);
gUnknown_2022B58[i].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
@@ -1000,7 +1102,7 @@ void sub_80108C4(void)
memcpy(&gBattleStruct->field_184, gUnknown_2022B58, sizeof(gUnknown_2022B58));
}
-void CB2_PreInitMultiBattle(void)
+static void CB2_PreInitMultiBattle(void)
{
s32 i;
u8 playerMultiplierId;
@@ -1075,7 +1177,7 @@ void CB2_PreInitMultiBattle(void)
}
}
-void CB2_HandleStartMultiBattle(void)
+static void CB2_HandleStartMultiBattle(void)
{
u8 playerMultiplayerId;
s32 id;
@@ -1353,7 +1455,7 @@ void FreeRestoreBattleData(void)
FreeBattleResources();
}
-void CB2_QuitPokeDudeBattle(void)
+static void CB2_QuitPokeDudeBattle(void)
{
UpdatePaletteFade();
if (!gPaletteFade.active)
@@ -1364,13 +1466,13 @@ void CB2_QuitPokeDudeBattle(void)
}
}
-void sub_80111EC(struct Sprite *sprite)
+static void sub_80111EC(struct Sprite *sprite)
{
sprite->data[0] = 0;
sprite->callback = sub_80111FC;
}
-void sub_80111FC(struct Sprite *sprite)
+static void sub_80111FC(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1416,7 +1518,7 @@ void sub_80111FC(struct Sprite *sprite)
}
}
-u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
{
u32 nameHash = 0;
u32 personalityValue;
@@ -1507,7 +1609,7 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
}
// not used
-void sub_80116CC(void)
+static void sub_80116CC(void)
{
if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F)
REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512;
@@ -1539,7 +1641,7 @@ void nullsub_9(struct Sprite *sprite)
{
}
-void sub_80117BC(struct Sprite *sprite)
+static void sub_80117BC(struct Sprite *sprite)
{
if (sprite->data[0] != 0)
sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8);
@@ -1562,7 +1664,7 @@ void sub_801182C(struct Sprite *sprite)
PlaySE(SE_BT_START);
}
-void sub_801184C(u8 taskId)
+static void sub_801184C(u8 taskId)
{
struct Pokemon *party1 = NULL;
struct Pokemon *party2 = NULL;
@@ -1692,7 +1794,7 @@ void sub_8011A1C(void)
gBattleCommunication[MULTIUSE_STATE] = 0;
}
-void sub_8011B94(void)
+static void sub_8011B94(void)
{
sub_8011BB0();
AnimateSprites();
@@ -1701,7 +1803,7 @@ void sub_8011B94(void)
RunTasks();
}
-void sub_8011BB0(void)
+static void sub_8011BB0(void)
{
s32 i;
@@ -1765,7 +1867,7 @@ u32 sub_8011C44(u8 arrayId, u8 caseId)
return ret;
}
-void TryCorrectShedinjaLanguage(struct Pokemon *mon)
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
{
u8 nickname[POKEMON_NAME_LENGTH + 1];
u8 language = LANGUAGE_JAPANESE;
@@ -1789,7 +1891,7 @@ void SpriteCB_WildMon(struct Sprite *sprite)
BeginNormalPaletteFade(0x20000, 0, 10, 10, RGB(8, 8, 8));
}
-void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
+static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
{
if ((gIntroSlideFlags & 1) == 0)
{
@@ -1802,7 +1904,7 @@ void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
}
}
-void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
+static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
{
if (sprite->animEnded)
{
@@ -1819,7 +1921,7 @@ void SpriteCallbackDummy2(struct Sprite *sprite)
}
// not used
-void sub_8011E28(struct Sprite *sprite)
+static void sub_8011E28(struct Sprite *sprite)
{
sprite->data[3] = 6;
sprite->data[4] = 1;
@@ -1827,7 +1929,7 @@ void sub_8011E28(struct Sprite *sprite)
}
// not used
-void sub_8011E3C(struct Sprite *sprite)
+static void sub_8011E3C(struct Sprite *sprite)
{
--sprite->data[4];
if (sprite->data[4] == 0)
@@ -1884,7 +1986,7 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite)
sprite->callback = SpriteCB_AnimFaintOpponent;
}
-void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
+static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
{
s32 i;
@@ -1915,7 +2017,7 @@ void sub_8012044(struct Sprite *sprite)
sprite->callback = sub_8012060;
}
-void sub_8012060(struct Sprite *sprite)
+static void sub_8012060(struct Sprite *sprite)
{
--sprite->data[3];
if (sprite->data[3] == 0)
@@ -1937,7 +2039,7 @@ void sub_80120C4(struct Sprite *sprite)
sprite->callback = oac_poke_ally_;
}
-void oac_poke_ally_(struct Sprite *sprite)
+static void oac_poke_ally_(struct Sprite *sprite)
{
if (!(gIntroSlideFlags & 1))
{
@@ -1955,7 +2057,7 @@ void sub_8012100(struct Sprite *sprite)
sprite->callback = SpriteCallbackDummy3;
}
-void SpriteCallbackDummy3(struct Sprite *sprite)
+static void SpriteCallbackDummy3(struct Sprite *sprite)
{
}
@@ -2040,7 +2142,7 @@ void EndBounceEffect(u8 battler, u8 which)
gSprites[bouncerSpriteId].pos2.y = 0;
}
-void SpriteCB_BounceEffect(struct Sprite *sprite)
+static void SpriteCB_BounceEffect(struct Sprite *sprite)
{
u8 bouncerSpriteId = sprite->sBouncerSpriteId;
s32 index;
@@ -2065,7 +2167,7 @@ void sub_801236C(struct Sprite *sprite)
sprite->centerToCornerVecX = gUnknown_824F048[sprite->animCmdIndex];
}
-void sub_8012398(struct Sprite *sprite)
+static void sub_8012398(struct Sprite *sprite)
{
sub_801236C(sprite);
if (sprite->animEnded)
@@ -2083,14 +2185,14 @@ void BeginBattleIntro(void)
gBattleMainFunc = BattleIntroGetMonsData;
}
-void BattleMainCB1(void)
+static void BattleMainCB1(void)
{
gBattleMainFunc();
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
gBattlerControllerFuncs[gActiveBattler]();
}
-void BattleStartClearSetData(void)
+static void BattleStartClearSetData(void)
{
s32 i;
u32 j;
@@ -2280,8 +2382,8 @@ void SwitchInClearSetData(void)
*(gBattleStruct->lastTakenMove + i * 2 + 0) = MOVE_NONE;
*(gBattleStruct->lastTakenMove + i * 2 + 1) = MOVE_NONE;
}
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
- *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
}
*((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE;
*((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE;
@@ -2365,7 +2467,7 @@ void FaintClearSetData(void)
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
}
-void BattleIntroGetMonsData(void)
+static void BattleIntroGetMonsData(void)
{
switch (gBattleCommunication[MULTIUSE_STATE])
{
@@ -2388,7 +2490,7 @@ void BattleIntroGetMonsData(void)
}
}
-void BattleIntroPrepareBackgroundSlide(void)
+static void BattleIntroPrepareBackgroundSlide(void)
{
if (gBattleControllerExecFlags == 0)
{
@@ -2401,7 +2503,7 @@ void BattleIntroPrepareBackgroundSlide(void)
}
}
-void BattleIntroDrawTrainersOrMonsSprites(void)
+static void BattleIntroDrawTrainersOrMonsSprites(void)
{
u8 *ptr;
s32 i;
@@ -2487,7 +2589,7 @@ void BattleIntroDrawTrainersOrMonsSprites(void)
}
}
-void BattleIntroDrawPartySummaryScreens(void)
+static void BattleIntroDrawPartySummaryScreens(void)
{
s32 i;
struct HpAndStatus hpStatus[PARTY_SIZE];
@@ -2557,7 +2659,7 @@ void BattleIntroDrawPartySummaryScreens(void)
}
}
-void BattleIntroPrintTrainerWantsToBattle(void)
+static void BattleIntroPrintTrainerWantsToBattle(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2567,7 +2669,7 @@ void BattleIntroPrintTrainerWantsToBattle(void)
}
}
-void BattleIntroPrintWildMonAttacked(void)
+static void BattleIntroPrintWildMonAttacked(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2581,7 +2683,7 @@ void BattleIntroPrintWildMonAttacked(void)
}
}
-void BattleIntroPrintOpponentSendsOut(void)
+static void BattleIntroPrintOpponentSendsOut(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2590,7 +2692,7 @@ void BattleIntroPrintOpponentSendsOut(void)
}
}
-void BattleIntroOpponentSendsOutMonAnimation(void)
+static void BattleIntroOpponentSendsOutMonAnimation(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2611,7 +2713,7 @@ void BattleIntroOpponentSendsOutMonAnimation(void)
}
}
-void BattleIntroRecordMonsToDex(void)
+static void BattleIntroRecordMonsToDex(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2629,7 +2731,7 @@ void BattleIntroRecordMonsToDex(void)
}
// not used
-void sub_80136C4(void)
+static void sub_80136C4(void)
{
if (!gBattleControllerExecFlags)
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
@@ -2645,7 +2747,7 @@ void BattleIntroPrintPlayerSendsOut(void)
}
}
-void BattleIntroPlayerSendsOutMonAnimation(void)
+static void BattleIntroPlayerSendsOutMonAnimation(void)
{
u32 position;
@@ -2672,7 +2774,7 @@ void BattleIntroPlayerSendsOutMonAnimation(void)
}
// not used
-void sub_80137D0(void)
+static void sub_80137D0(void)
{
if (!gBattleControllerExecFlags)
{
@@ -2691,7 +2793,7 @@ void sub_80137D0(void)
}
}
-void TryDoEventsBeforeFirstTurn(void)
+static void TryDoEventsBeforeFirstTurn(void)
{
s32 i, j;
u8 effect = 0;
@@ -2765,7 +2867,7 @@ void TryDoEventsBeforeFirstTurn(void)
}
}
-void HandleEndTurn_ContinueBattle(void)
+static void HandleEndTurn_ContinueBattle(void)
{
s32 i;
@@ -2935,7 +3037,7 @@ enum
STATE_WAIT_SET_BEFORE_ACTION,
};
-void HandleTurnActionSelectionState(void)
+static void HandleTurnActionSelectionState(void)
{
s32 i;
@@ -3368,7 +3470,7 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
return strikesFirst;
}
-void SetActionsAndBattlersTurnOrder(void)
+static void SetActionsAndBattlersTurnOrder(void)
{
s32 turnOrderId = 0;
s32 i, j;
@@ -3459,7 +3561,7 @@ void SetActionsAndBattlersTurnOrder(void)
gBattleStruct->focusPunchBattlerId = 0;
}
-void TurnValuesCleanUp(bool8 var0)
+static void TurnValuesCleanUp(bool8 var0)
{
s32 i;
u8 *dataPtr;
@@ -3493,7 +3595,7 @@ void TurnValuesCleanUp(bool8 var0)
gSideTimers[1].followmeTimer = 0;
}
-void SpecialStatusesClear(void)
+static void SpecialStatusesClear(void)
{
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{
@@ -3505,7 +3607,7 @@ void SpecialStatusesClear(void)
}
}
-void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
+static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
{
if (!(gHitMarker & HITMARKER_RUN))
{
@@ -3540,7 +3642,7 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
gBattleResources->battleScriptsStack->size = 0;
}
-void RunTurnActionsFunctions(void)
+static void RunTurnActionsFunctions(void)
{
if (gBattleOutcome != 0)
gCurrentActionFuncId = B_ACTION_FINISHED;
@@ -3562,7 +3664,7 @@ void RunTurnActionsFunctions(void)
}
}
-void HandleEndTurn_BattleWon(void)
+static void HandleEndTurn_BattleWon(void)
{
gCurrentActionFuncId = 0;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
@@ -3605,7 +3707,7 @@ void HandleEndTurn_BattleWon(void)
gBattleMainFunc = HandleEndTurn_FinishBattle;
}
-void HandleEndTurn_BattleLost(void)
+static void HandleEndTurn_BattleLost(void)
{
gCurrentActionFuncId = 0;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
@@ -3634,7 +3736,7 @@ void HandleEndTurn_BattleLost(void)
gBattleMainFunc = HandleEndTurn_FinishBattle;
}
-void HandleEndTurn_RanFromBattle(void)
+static void HandleEndTurn_RanFromBattle(void)
{
gCurrentActionFuncId = 0;
switch (gProtectStructs[gBattlerAttacker].fleeFlag)
@@ -3652,7 +3754,7 @@ void HandleEndTurn_RanFromBattle(void)
gBattleMainFunc = HandleEndTurn_FinishBattle;
}
-void HandleEndTurn_MonFled(void)
+static void HandleEndTurn_MonFled(void)
{
gCurrentActionFuncId = 0;
PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]);
@@ -3660,7 +3762,7 @@ void HandleEndTurn_MonFled(void)
gBattleMainFunc = HandleEndTurn_FinishBattle;
}
-void HandleEndTurn_FinishBattle(void)
+static void HandleEndTurn_FinishBattle(void)
{
if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED)
{
@@ -3697,7 +3799,7 @@ void HandleEndTurn_FinishBattle(void)
}
}
-void FreeResetData_ReturnToOvOrDoEvolutions(void)
+static void FreeResetData_ReturnToOvOrDoEvolutions(void)
{
if (!gPaletteFade.active)
{
@@ -3716,7 +3818,7 @@ void FreeResetData_ReturnToOvOrDoEvolutions(void)
}
}
-void TryEvolvePokemon(void)
+static void TryEvolvePokemon(void)
{
s32 i;
@@ -3744,13 +3846,13 @@ void TryEvolvePokemon(void)
gBattleMainFunc = ReturnFromBattleToOverworld;
}
-void WaitForEvoSceneToFinish(void)
+static void WaitForEvoSceneToFinish(void)
{
if (gMain.callback2 == BattleMainCB2)
gBattleMainFunc = TryEvolvePokemon;
}
-void ReturnFromBattleToOverworld(void)
+static void ReturnFromBattleToOverworld(void)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
{
@@ -3794,7 +3896,7 @@ void RunBattleScriptCommands(void)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
-void HandleAction_UseMove(void)
+static void HandleAction_UseMove(void)
{
u8 side;
u8 var = 4;
@@ -3966,7 +4068,7 @@ void HandleAction_UseMove(void)
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-void HandleAction_Switch(void)
+static void HandleAction_Switch(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -3981,7 +4083,7 @@ void HandleAction_Switch(void)
++gBattleResults.playerSwitchesCounter;
}
-void HandleAction_UseItem(void)
+static void HandleAction_UseItem(void)
{
gBattlerAttacker = gBattlerTarget = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4115,14 +4217,14 @@ bool8 TryRunFromBattle(u8 battler)
return effect;
}
-void HandleAction_Run(void)
+static void HandleAction_Run(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gCurrentTurnActionNumber = gBattlersCount;
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
@@ -4166,7 +4268,7 @@ void HandleAction_Run(void)
}
}
-void HandleAction_WatchesCarefully(void)
+static void HandleAction_WatchesCarefully(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4203,7 +4305,7 @@ void HandleAction_WatchesCarefully(void)
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-void HandleAction_SafariZoneBallThrow(void)
+static void HandleAction_SafariZoneBallThrow(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4214,7 +4316,7 @@ void HandleAction_SafariZoneBallThrow(void)
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-void HandleAction_ThrowPokeblock(void)
+static void HandleAction_ThrowPokeblock(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4230,7 +4332,7 @@ void HandleAction_ThrowPokeblock(void)
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-void HandleAction_GoNear(void)
+static void HandleAction_GoNear(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4246,7 +4348,7 @@ void HandleAction_GoNear(void)
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-void HandleAction_SafariZoneRun(void)
+static void HandleAction_SafariZoneRun(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
PlaySE(SE_NIGERU);
@@ -4254,7 +4356,7 @@ void HandleAction_SafariZoneRun(void)
gBattleOutcome = B_OUTCOME_RAN;
}
-void HandleAction_OldManBallThrow(void)
+static void HandleAction_OldManBallThrow(void)
{
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
@@ -4265,7 +4367,7 @@ void HandleAction_OldManBallThrow(void)
gActionsByTurnOrder[1] = B_ACTION_FINISHED;
}
-void HandleAction_TryFinish(void)
+static void HandleAction_TryFinish(void)
{
if (!HandleFaintedMonActions())
{
@@ -4274,7 +4376,7 @@ void HandleAction_TryFinish(void)
}
}
-void HandleAction_NothingIsFainted(void)
+static void HandleAction_NothingIsFainted(void)
{
++gCurrentTurnActionNumber;
gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
@@ -4285,7 +4387,7 @@ void HandleAction_NothingIsFainted(void)
| HITMARKER_CHARGING | HITMARKER_x4000000);
}
-void HandleAction_ActionFinished(void)
+static void HandleAction_ActionFinished(void)
{
++gCurrentTurnActionNumber;
gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
diff --git a/sym_ewram.txt b/sym_ewram.txt
index c3134786d..06dd2afdc 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -19,357 +19,7 @@
@ .include "src/link_rfu.o"
.include "src/battle_controllers.o"
-
-gBattle_BG0_X: @ 2022974
- .space 0x2
-
-gBattle_BG0_Y: @ 2022976
- .space 0x2
-
-gBattle_BG1_X: @ 2022978
- .space 0x2
-
-gBattle_BG1_Y: @ 202297A
- .space 0x2
-
-gBattle_BG2_X: @ 202297C
- .space 0x2
-
-gBattle_BG2_Y: @ 202297E
- .space 0x2
-
-gBattle_BG3_X: @ 2022980
- .space 0x2
-
-gBattle_BG3_Y: @ 2022982
- .space 0x2
-
-gBattle_WIN0H: @ 2022984
- .space 0x2
-
-gBattle_WIN0V: @ 2022986
- .space 0x2
-
-gBattle_WIN1H: @ 2022988
- .space 0x2
-
-gBattle_WIN1V: @ 202298A
- .space 0x2
-
-gDisplayedStringBattle: @ 202298C
- .space 0x12C
-
-gBattleTextBuff1: @ 2022AB8
- .space 0x10
-
-gBattleTextBuff2: @ 2022AC8
- .space 0x10
-
-gBattleTextBuff3: @ 2022AD8
- .space 0x10
-
-gUnknown_2022AE8: @ 2022AE8
- .space 0x64
-
-gBattleTypeFlags: @ 2022B4C
- .space 0x4
-
-gBattleTerrain: @ 2022B50
- .space 0x4
-
-gUnknown_2022B54: @ 2022B54
- .space 0x4
-
-gUnknown_2022B58: @ 2022B58
- .space 0x60
-
-gUnknown_2022BB8: @ 2022BB8
- .space 0x4
-
-gUnknown_2022BBC: @ 2022BBC
- .space 0x4
-
-gUnknown_2022BC0: @ 2022BC0
- .space 0x4
-
-gBattleBufferA: @ 2022BC4
- .space 0x2
-
-gUnknown_2022BC6: @ 2022BC6
- .space 0x1
-
-gUnknown_2022BC7: @ 2022BC7
- .space 0x1
-
-gUnknown_2022BC8: @ 2022BC8
- .space 0x7FC
-
-gBattleBufferB: @ 20233C4
- .space 0x4
-
-gUnknown_20233C8: @ 20233C8
- .space 0x7FC
-
-gActiveBattler: @ 2023BC4
- .space 0x4
-
-gBattleControllerExecFlags: @ 2023BC8
- .space 0x4
-
-gBattlersCount: @ 2023BCC
- .space 0x2
-
-gBattlerPartyIndexes: @ 2023BCE
- .space 0x8
-
-gBattlerPositions: @ 2023BD6
- .space 0x4
-
-gActionsByTurnOrder: @ 2023BDA
- .space 0x4
-
-gBattlerByTurnOrder: @ 2023BDE
- .space 0x4
-
-gCurrentTurnActionNumber: @ 2023BE2
- .space 0x1
-
-gCurrentActionFuncId: @ 2023BE3
- .space 0x1
-
-gBattleMons: @ 2023BE4
- .space 0xC
-
-gUnknown_2023BF0: @ 2023BF0
- .space 0xC
-
-gUnknown_2023BFC: @ 2023BFC
- .space 0xC
-
-gUnknown_2023C08: @ 2023C08
- .space 0x4
-
-gUnknown_2023C0C: @ 2023C0C
- .space 0x24
-
-gUnknown_2023C30: @ 2023C30
- .space 0x4
-
-gUnknown_2023C34: @ 2023C34
- .space 0x110
-
-gBattlerSpriteIds: @ 2023D44
- .space 0x4
-
-gCurrMovePos: @ 2023D48
- .space 0x1
-
-gChosenMovePos: @ 2023D49
- .space 0x1
-
-gCurrentMove: @ 2023D4A
- .space 0x2
-
-gChosenMove: @ 2023D4C
- .space 0x2
-
-gCalledMove: @ 2023D4E
- .space 0x2
-
-gBattleMoveDamage: @ 2023D50
- .space 0x4
-
-gHpDealt: @ 2023D54
- .space 0x4
-
-gTakenDmg: @ 2023D58
- .space 0x10
-
-gLastUsedItem: @ 2023D68
- .space 0x2
-
-gLastUsedAbility: @ 2023D6A
- .space 0x1
-
-gBattlerAttacker: @ 2023D6B
- .space 0x1
-
-gBattlerTarget: @ 2023D6C
- .space 0x1
-
-gBattlerFainted: @ 2023D6D
- .space 0x1
-
-gEffectBattler: @ 2023D6E
- .space 0x1
-
-gPotentialItemEffectBattler: @ 2023D6F
- .space 0x1
-
-gAbsentBattlerFlags: @ 2023D70
- .space 0x1
-
-gCritMultiplier: @ 2023D71
- .space 0x1
-
-gMultiHitCounter: @ 2023D72
- .space 0x2
-
-gBattlescriptCurrInstr: @ 2023D74
- .space 0x8
-
-gChosenActionByBattler: @ 2023D7C
- .space 0x4
-
-gSelectionBattleScripts: @ 2023D80
- .space 0x10
-
-gLastPrintedMoves: @ 2023D90
- .space 0x8
-
-gLastMoves: @ 2023D98
- .space 0x8
-
-gLastLandedMoves: @ 2023DA0
- .space 0x8
-
-gLastHitByType: @ 2023DA8
- .space 0x8
-
-gLastResultingMoves: @ 2023DB0
- .space 0x8
-
-gLockedMoves: @ 2023DB8
- .space 0x8
-
-gLastHitBy: @ 2023DC0
- .space 0x4
-
-gChosenMoveByBattler: @ 2023DC4
- .space 0x8
-
-gMoveResultFlags: @ 2023DCC
- .space 0x4
-
-gHitMarker: @ 2023DD0
- .space 0x4
-
-gUnknown_2023DD4: @ 2023DD4
- .space 0x4
-
-gTakenDmgByBattler: @ 2023DD8
- .space 0x4
-
-gUnknown_2023DDC: @ 2023DDC
- .space 0x2
-
-gSideStatuses: @ 2023DDE
- .space 0x6
-
-gSideTimers: @ 2023DE4
- .space 0x18
-
-gStatuses3: @ 2023DFC
- .space 0x10
-
-gDisableStructs: @ 2023E0C
- .space 0x70
-
-gPauseCounterBattle: @ 2023E7C
- .space 0x2
-
-gPaydayMoney: @ 2023E7E
- .space 0x2
-
-gRandomTurnNumber: @ 2023E80
- .space 0x2
-
-gBattleCommunication: @ 2023E82
- .space 0x1
-
-gUnknown_2023E83: @ 2023E83
- .space 0x7
-
-gBattleOutcome: @ 2023E8A
- .space 0x2
-
-gProtectStructs: @ 2023E8C
- .space 0x40
-
-gSpecialStatuses: @ 2023ECC
- .space 0x50
-
-gBattleWeather: @ 2023F1C
- .space 0x4
-
-gWishFutureKnock: @ 2023F20
- .space 0x2C
-
-gIntroSlideFlags: @ 2023F4C
- .space 0x2
-
-gSentPokesToOpponent: @ 2023F4E
- .space 0x2
-
-gDynamicBasePower: @ 2023F50
- .space 0x2
-
-gExpShareExp: @ 2023F52
- .space 0x2
-
-gEnigmaBerries: @ 2023F54
- .space 0x70
-
-gBattleScripting: @ 2023FC4
- .space 0x4
-
-gUnknown_2023FC8: @ 2023FC8
- .space 0x20
-
-gBattleStruct: @ 2023FE8
- .space 0x4
-
-gLinkBattleSendBuffer: @ 2023FEC
- .space 0x4
-
-gLinkBattleRecvBuffer: @ 2023FF0
- .space 0x4
-
-gBattleResources: @ 2023FF4
- .space 0x4
-
-gActionSelectionCursor: @ 2023FF8
- .space 0x4
-
-gMoveSelectionCursor: @ 2023FFC
- .space 0x4
-
-gBattlerStatusSummaryTaskId: @ 2024000
- .space 0x4
-
-gBattlerInMenuId: @ 2024004
- .space 0x1
-
-gDoingBattleAnim: @ 2024005
- .space 0x3
-
-gTransformedPersonalities: @ 2024008
- .space 0x10
-
-gBattleSpritesDataPtr: @ 2024018
- .space 0x4
-
-gMonSpritesGfxPtr: @ 202401C
- .space 0x4
-
-gBattleMovePower: @ 2024020
- .space 0x2
-
-gMoveToLearn: @ 2024022
- .space 0x2
-
-gBattleMonForms: @ 2024024
- .space 0x4
+ .include "src/battle_main.o"
sLearningMoveTableID: @ 2024028
.space 0x1