diff options
-rw-r--r-- | asm/battle_controller_oak.s | 12 | ||||
-rw-r--r-- | asm/battle_controller_pokedude.s | 200 | ||||
-rw-r--r-- | asm/battle_message.s | 8 | ||||
-rw-r--r-- | include/battle_main.h | 73 | ||||
-rw-r--r-- | include/data.h | 2 | ||||
-rw-r--r-- | src/battle_main.c | 412 | ||||
-rw-r--r-- | sym_ewram.txt | 352 |
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 |