From eae74e7623a3dffd7a84a777d6c236a119265d6c Mon Sep 17 00:00:00 2001 From: Adrienn Tindall <33725376+adrienntindall@users.noreply.github.com> Date: Thu, 27 Jul 2023 23:41:57 -0400 Subject: [PATCH] Fix BattleSystem_GetBattleType return value --- asm/include/overlay_08.inc | 2 +- asm/include/overlay_12_022378C0.inc | 4 +- asm/include/overlay_12_02266024.inc | 2 +- asm/include/overlay_12_battle_command.inc | 2 +- asm/include/overlay_12_battle_controller.inc | 2 +- .../overlay_12_battle_controller_opponent.inc | 4 +- .../overlay_12_battle_controller_player.inc | 4 +- asm/include/overlay_12_battle_system.inc | 4 +- asm/overlay_08.s | 2 +- asm/overlay_12_022378C0.s | 4 +- asm/overlay_12_02266024.s | 12 +-- asm/overlay_12_battle_command.s | 20 ++-- asm/overlay_12_battle_controller.s | 8 +- asm/overlay_12_battle_controller_opponent.s | 44 ++++----- asm/overlay_12_battle_controller_player.s | 14 +-- asm/overlay_12_battle_system.s | 28 +----- include/battle.h | 2 +- include/battle_system.h | 8 +- include/constants/battle_script.h | 2 +- src/battle/battle_command.c | 94 +++++++++---------- src/battle/battle_controller_player.c | 12 +-- src/battle/battle_system.c | 18 +++- src/battle/overlay_12_0224E4FC.c | 4 +- 23 files changed, 143 insertions(+), 153 deletions(-) diff --git a/asm/include/overlay_08.inc b/asm/include/overlay_08.inc index a87f8d208..e4cca7b9a 100644 --- a/asm/include/overlay_08.inc +++ b/asm/include/overlay_08.inc @@ -166,7 +166,7 @@ .public ov08_022225D4 .public BattleSystem_GetBgConfig .public BattleSystem_GetBattleType -.public ov12_0223A7E4 +.public BattleSystem_GetBattleContext .public BattleSystem_GetParty .public BattleSystem_GetPartyMon .public ov12_0223A8E4 diff --git a/asm/include/overlay_12_022378C0.inc b/asm/include/overlay_12_022378C0.inc index 11028e6ac..dc2496030 100644 --- a/asm/include/overlay_12_022378C0.inc +++ b/asm/include/overlay_12_022378C0.inc @@ -198,8 +198,8 @@ .public ov12_02237ED0 .public ov12_022399BC .public BattleSystem_GetBattleType -.public ov12_0223A7E4 -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetBattleContext +.public BattleSystem_GetOpponentData .public BattleSystem_GetMaxBattlers .public BattleSystem_GetPartySize .public BattleSystem_GetPartyMon diff --git a/asm/include/overlay_12_02266024.inc b/asm/include/overlay_12_02266024.inc index c12d30613..5c67e287c 100644 --- a/asm/include/overlay_12_02266024.inc +++ b/asm/include/overlay_12_02266024.inc @@ -131,7 +131,7 @@ .public ov06_0221BA1C .public BattleSystem_GetBgConfig .public BattleSystem_GetBattleType -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetOpponentData .public BattleSystem_GetPartyMon .public ov12_0223A8E4 .public ov12_0223A8EC diff --git a/asm/include/overlay_12_battle_command.inc b/asm/include/overlay_12_battle_command.inc index 14c77efd3..cd00c5600 100644 --- a/asm/include/overlay_12_battle_command.inc +++ b/asm/include/overlay_12_battle_command.inc @@ -117,7 +117,7 @@ .public BattleSystem_GetBgConfig .public BattleSystem_GetWindow .public BattleSystem_GetBattleType -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetOpponentData .public BattleSystem_GetMaxBattlers .public BattleSystem_GetParty .public BattleSystem_GetPartySize diff --git a/asm/include/overlay_12_battle_controller.inc b/asm/include/overlay_12_battle_controller.inc index 181abf23a..6f86b1098 100644 --- a/asm/include/overlay_12_battle_controller.inc +++ b/asm/include/overlay_12_battle_controller.inc @@ -18,7 +18,7 @@ .public _s32_div_f .public _u32_div_f .public BattleSystem_GetBattleType -.public ov12_0223A7E4 +.public BattleSystem_GetBattleContext .public BattleSystem_GetMaxBattlers .public BattleSystem_GetParty .public BattleSystem_GetPartyMon diff --git a/asm/include/overlay_12_battle_controller_opponent.inc b/asm/include/overlay_12_battle_controller_opponent.inc index 414eed662..2d8125653 100644 --- a/asm/include/overlay_12_battle_controller_opponent.inc +++ b/asm/include/overlay_12_battle_controller_opponent.inc @@ -149,8 +149,8 @@ .public BattleSystem_GetBgConfig .public BattleSystem_GetWindow .public BattleSystem_GetBattleType -.public ov12_0223A7E4 -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetBattleContext +.public BattleSystem_GetOpponentData .public BattleSystem_GetMaxBattlers .public BattleSystem_GetParty .public BattleSystem_GetPartySize diff --git a/asm/include/overlay_12_battle_controller_player.inc b/asm/include/overlay_12_battle_controller_player.inc index 3c3a89465..ecf05a2fc 100644 --- a/asm/include/overlay_12_battle_controller_player.inc +++ b/asm/include/overlay_12_battle_controller_player.inc @@ -26,8 +26,8 @@ .public ov10_02220AAC .public ov12_02237ED0 .public BattleSystem_GetBattleType -.public ov12_0223A7E4 -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetBattleContext +.public BattleSystem_GetOpponentData .public BattleSystem_GetMaxBattlers .public BattleSystem_GetParty .public ov12_0223A9F4 diff --git a/asm/include/overlay_12_battle_system.inc b/asm/include/overlay_12_battle_system.inc index 12aaa883e..f9e84c146 100644 --- a/asm/include/overlay_12_battle_system.inc +++ b/asm/include/overlay_12_battle_system.inc @@ -68,8 +68,8 @@ .public BattleSystem_GetBgConfig .public BattleSystem_GetWindow .public BattleSystem_GetBattleType -.public ov12_0223A7E4 -.public BattleSystem_GetOpponentDataByBattlerId +.public BattleSystem_GetBattleContext +.public BattleSystem_GetOpponentData .public BattleSystem_GetMaxBattlers .public BattleSystem_GetParty .public BattleSystem_GetPartySize diff --git a/asm/overlay_08.s b/asm/overlay_08.s index 0fcd275aa..5f892a707 100644 --- a/asm/overlay_08.s +++ b/asm/overlay_08.s @@ -14412,7 +14412,7 @@ ov08_02223374: ; 0x02223374 add r5, r0, #0 ldr r4, [r5] ldr r0, [r4] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r0, #0 ldr r0, [r5] ldr r3, [r4, #0x10] diff --git a/asm/overlay_12_022378C0.s b/asm/overlay_12_022378C0.s index f339f76e8..b52aea48e 100644 --- a/asm/overlay_12_022378C0.s +++ b/asm/overlay_12_022378C0.s @@ -1948,7 +1948,7 @@ ov12_022389B8: ; 0x022389B8 add r3, r4, #0 bl ov12_02265FD4 add r0, r5, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext str r0, [sp] ldr r0, [r5, #0x44] mov r4, #0 @@ -3790,7 +3790,7 @@ _02239898: _022398A0: add r0, r5, #0 add r1, r4, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r7, r0, #0 bl ov12_02261264 cmp r0, #0 diff --git a/asm/overlay_12_02266024.s b/asm/overlay_12_02266024.s index 25a5521dd..5873bbc83 100644 --- a/asm/overlay_12_02266024.s +++ b/asm/overlay_12_02266024.s @@ -7220,7 +7220,7 @@ ov12_02269A9C: ; 0x02269A9C bl ov12_0223AAD8 add r1, r0, #0 ldr r0, [r6] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 ldr r1, [sp, #8] cmp r1, #1 @@ -7462,7 +7462,7 @@ ov12_02269C7C: ; 0x02269C7C bne _02269CCE _02269C9A: ldr r0, [r5] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 mov r5, #0 ldr r1, _02269CD8 ; =ov12_0226E220 @@ -7639,7 +7639,7 @@ ov12_02269DD4: ; 0x02269DD4 bl ov12_0223AAD8 add r1, r0, #0 ldr r0, [r5] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 ldr r1, _02269F44 ; =0x000006DC add r3, r0, #0 @@ -7838,7 +7838,7 @@ ov12_02269F54: ; 0x02269F54 bl ov12_0223AAD8 add r1, r0, #0 ldr r0, [r5] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 mov r3, #0 ldr r7, _02269FA0 ; =ov12_0226E218 @@ -7886,7 +7886,7 @@ ov12_02269FA4: ; 0x02269FA4 bl ov12_0223AAD8 add r1, r0, #0 ldr r0, [r6] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 ldr r1, _0226A288 ; =0x000006DC str r0, [sp, #0x1c] @@ -8690,7 +8690,7 @@ ov12_0226A594: ; 0x0226A594 bl ov12_0223AAD8 add r1, r0, #0 ldr r0, [r5] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261280 ldr r1, _0226A5E8 ; =0x0000068C mov r3, #0 diff --git a/asm/overlay_12_battle_command.s b/asm/overlay_12_battle_command.s index 7c42db38d..abda020cd 100644 --- a/asm/overlay_12_battle_command.s +++ b/asm/overlay_12_battle_command.s @@ -1748,7 +1748,7 @@ _0224668A: _022466B0: ldr r0, [r4] mov r1, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 add r0, #0x88 ldr r0, [r0] @@ -2203,7 +2203,7 @@ _02246A72: bl ov12_02265FC4 ldr r0, [r4] mov r1, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData mov r1, #0 bl ov12_02261294 ldr r0, [r4] @@ -2374,7 +2374,7 @@ _02246C00: bl sub_0200878C ldr r0, [r4] mov r1, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData mov r1, #0 bl ov12_02261294 ldr r0, [r4] @@ -2582,7 +2582,7 @@ _02246DB0: _02246DF6: ldr r0, [r4] add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r6, r0, #0 ldr r0, [r6, #0x18] cmp r0, #0 @@ -3734,7 +3734,7 @@ _022476F8: _02247706: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldr r1, _022478F0 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 @@ -3754,7 +3754,7 @@ _0224771E: _0224772C: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldrb r0, [r0, r7] cmp r0, #3 beq _02247744 @@ -3784,7 +3784,7 @@ _02247756: _02247764: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldr r1, _022478F0 ; =0x00000195 ldrb r0, [r0, r1] cmp r0, r6 @@ -3804,7 +3804,7 @@ _0224777C: _0224778A: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldr r1, _022478F0 ; =0x00000195 ldrb r0, [r0, r1] tst r0, r7 @@ -3824,7 +3824,7 @@ _022477A2: _022477B0: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldrb r0, [r0, r7] cmp r0, #2 beq _022477C8 @@ -3854,7 +3854,7 @@ _022477DA: _022477E8: add r0, r4, #0 add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldr r1, _022478F0 ; =0x00000195 ldrb r0, [r0, r1] cmp r0, r6 diff --git a/asm/overlay_12_battle_controller.s b/asm/overlay_12_battle_controller.s index be1561dba..2f64cc51f 100644 --- a/asm/overlay_12_battle_controller.s +++ b/asm/overlay_12_battle_controller.s @@ -1435,7 +1435,7 @@ ov12_02262B80: ; 0x02262B80 add r6, r3, #0 bl MIi_CpuClearFast ldr r0, [sp, #4] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext ldr r1, [sp, #0xc] bl ov12_0224EDC0 mov r5, #0 @@ -1905,7 +1905,7 @@ ov12_02262F40: ; 0x02262F40 str r2, [sp, #0xc] str r0, [sp, #4] str r1, [sp, #8] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext ldr r1, [sp, #0xc] bl ov12_0224EDC0 mov r0, #0xf @@ -3307,7 +3307,7 @@ ov12_022639B8: ; 0x022639B8 sub sp, #0x2c add r4, r1, #0 add r5, r0, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r4, #0 bl ov12_0224EDC0 mov r1, #0x25 @@ -3743,7 +3743,7 @@ ov12_02263D14: ; 0x02263D14 add r7, r0, #0 add r4, r2, #0 add r6, r3, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r5, #0 bl ov12_0224EDC0 mov r1, #0x2b diff --git a/asm/overlay_12_battle_controller_opponent.s b/asm/overlay_12_battle_controller_opponent.s index 884a699ff..f4b26426d 100644 --- a/asm/overlay_12_battle_controller_opponent.s +++ b/asm/overlay_12_battle_controller_opponent.s @@ -12,7 +12,7 @@ ov12_02258800: ; 0x02258800 sub sp, #0x94 str r1, [sp, #0x18] add r7, r0, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r5, r0, #0 ldr r0, [sp, #0x18] lsl r0, r0, #0x18 @@ -461,7 +461,7 @@ _02258B9C: .word 0x00140808 ov12_02258BA0: ; 0x02258BA0 push {r4, lr} add r4, r1, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r0, r4 ldr r0, _02258BB0 ; =0x000021A4 ldrb r0, [r1, r0] @@ -9526,7 +9526,7 @@ _0225D244: bl BattleSystem_GetBattlerIdPartner add r1, r0, #0 ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r4, r0, #0 add r0, #0x88 ldr r0, [r0] @@ -9704,7 +9704,7 @@ _0225D368: bl BattleSystem_GetBattlerIdPartner add r1, r0, #0 ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData ldr r1, [r4, #0xc] add r6, r0, #0 add r3, r1, #0 @@ -10089,7 +10089,7 @@ _0225D71C: bl BattleSystem_GetBattlerIdPartner add r1, r0, #0 ldr r0, [r5] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r4, r0, #0 cmp r7, #3 bne _0225D7F2 @@ -10515,7 +10515,7 @@ ov12_0225DAD4: ; 0x0225DAD4 add r6, r0, #0 ldrb r1, [r4, #9] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp, #0xc] ldr r0, [r4] bl BattleSystem_GetBattleType @@ -11019,7 +11019,7 @@ _0225DEF0: _0225DF04: ldr r0, [r4] add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r0, #0x28 bl ov12_02264C84 ldr r0, [r4] @@ -11290,7 +11290,7 @@ ov12_0225E154: ; 0x0225E154 bl ov12_0223B694 add r5, r0, #0 ldr r0, [r4] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext mov r2, #0 ldrb r1, [r4, #9] add r3, r2, #0 @@ -11413,7 +11413,7 @@ ov12_0225E250: ; 0x0225E250 add r7, r0, #0 ldrb r1, [r4, #0x1d] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp, #0x10] ldrb r1, [r4, #0x1d] ldr r0, [r4] @@ -11617,7 +11617,7 @@ ov12_0225E404: ; 0x0225E404 bl BattleSystem_GetBattleType add r4, r0, #0 ldr r0, [r6] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext str r0, [sp, #0xc] ldr r0, _0225E4C8 ; =0x00000101 tst r0, r4 @@ -11746,7 +11746,7 @@ _0225E514: b _0225E53E _0225E51C: ldr r0, [r5] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext ldrb r1, [r5, #0x1d] add r2, r4, #5 mov r3, #0 @@ -11790,7 +11790,7 @@ ov12_0225E568: ; 0x0225E568 bl BattleSystem_GetBgConfig ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r7, r0, #0 ldr r0, [r4] bl ov12_0223A900 @@ -11981,7 +11981,7 @@ ov12_0225E6FC: ; 0x0225E6FC add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r0, #0 ldrb r3, [r5, #0xd] ldr r0, [r5] @@ -12913,7 +12913,7 @@ _0225EE3E: bl ov12_022643C8 ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -12945,7 +12945,7 @@ _0225EE7E: bl ov12_022643C8 ldr r0, [r4] add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -12978,7 +12978,7 @@ _0225EEC4: bl ov12_022643C8 ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -13003,7 +13003,7 @@ _0225EF02: bl ov12_022643C8 ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -13026,7 +13026,7 @@ _0225EF3A: bl ov12_022643C8 ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -13154,7 +13154,7 @@ _0225F02A: bl ov12_022643C8 ldr r0, [r4] add r1, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r5, r0, #0 ldr r0, [r4] bl ov12_0223A8DC @@ -14378,7 +14378,7 @@ ov12_0225FA44: ; 0x0225FA44 add r5, r0, #0 ldrb r1, [r4, #0xd] ldr r0, [r4] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp, #0xc] ldrb r1, [r4, #0xd] ldr r0, [r4] @@ -19024,7 +19024,7 @@ ov12_02261EB8: ; 0x02261EB8 mov r1, #1 bl ov12_0223BFFC add r0, r4, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r0, #0 add r0, r4, #0 bl ov12_022581BC @@ -19039,7 +19039,7 @@ ov12_02261ED4: ; 0x02261ED4 mov r1, #2 bl ov12_0223BFFC add r0, r4, #0 - bl ov12_0223A7E4 + bl BattleSystem_GetBattleContext add r1, r0, #0 add r0, r4, #0 bl ov12_022581BC diff --git a/asm/overlay_12_battle_controller_player.s b/asm/overlay_12_battle_controller_player.s index a2d2e6987..6b80e06b4 100644 --- a/asm/overlay_12_battle_controller_player.s +++ b/asm/overlay_12_battle_controller_player.s @@ -4560,7 +4560,7 @@ _0224D060: bl BattleSystem_GetMaxBattlers ldr r1, [r4, #0x64] add r0, r5, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData bl ov12_02261258 mov r1, #1 add r7, r0, #0 @@ -4591,7 +4591,7 @@ _0224D0AE: beq _0224D116 add r0, r5, #0 add r1, r6, #0 - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp] cmp r7, #0 beq _0224D0F6 @@ -5266,7 +5266,7 @@ _0224D5E6: add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x2c] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r0, r6, #0 add r5, r7, #0 bl GetPartyCount @@ -5359,7 +5359,7 @@ _0224D69E: add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x2c] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r0, r6, #0 add r5, r7, #0 bl GetPartyCount @@ -5565,7 +5565,7 @@ _0224D820: add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x28] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData add r0, r6, #0 add r4, r7, #0 bl GetPartyCount @@ -5644,7 +5644,7 @@ _0224D8DE: str r0, [sp, #0x18] ldr r0, [sp] ldr r1, [sp, #0x28] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp, #0x14] add r0, r7, #0 add r5, r4, #0 @@ -5748,7 +5748,7 @@ _0224D9C4: add r6, r0, #0 ldr r0, [sp] ldr r1, [sp, #0x28] - bl BattleSystem_GetOpponentDataByBattlerId + bl BattleSystem_GetOpponentData str r0, [sp, #0x10] add r0, r6, #0 add r4, r7, #0 diff --git a/asm/overlay_12_battle_system.s b/asm/overlay_12_battle_system.s index 93cfd5d0c..e505b11ef 100644 --- a/asm/overlay_12_battle_system.s +++ b/asm/overlay_12_battle_system.s @@ -5,33 +5,7 @@ .include "global.inc" .text - - thumb_func_start BattleSystem_GetBattleType -BattleSystem_GetBattleType: ; 0x0223A7E0 - ldr r0, [r0, #0x2c] - bx lr - thumb_func_end BattleSystem_GetBattleType - - thumb_func_start ov12_0223A7E4 -ov12_0223A7E4: ; 0x0223A7E4 - ldr r0, [r0, #0x30] - bx lr - thumb_func_end ov12_0223A7E4 - - thumb_func_start BattleSystem_GetOpponentDataByBattlerId -BattleSystem_GetOpponentDataByBattlerId: ; 0x0223A7E8 - lsl r1, r1, #2 - add r0, r0, r1 - ldr r0, [r0, #0x34] - bx lr - thumb_func_end BattleSystem_GetOpponentDataByBattlerId - - thumb_func_start BattleSystem_GetMaxBattlers -BattleSystem_GetMaxBattlers: ; 0x0223A7F0 - ldr r0, [r0, #0x44] - bx lr - thumb_func_end BattleSystem_GetMaxBattlers - + thumb_func_start BattleSystem_GetParty BattleSystem_GetParty: ; 0x0223A7F4 push {r3, r4, r5, lr} diff --git a/include/battle.h b/include/battle.h index e9170573c..6a53f4ca5 100644 --- a/include/battle.h +++ b/include/battle.h @@ -516,7 +516,7 @@ struct BattleSystem { u32 battleTypeFlags; BATTLECONTEXT *ctx; OpponentData *opponentData[4]; - int unk44; //offset labels wrong from here until unk23E8 + int maxBattlers; u32 *unk48[4]; u32 *unk58; u32 *unk5C; diff --git a/include/battle_system.h b/include/battle_system.h index 4e26af7c1..81ee5d15d 100644 --- a/include/battle_system.h +++ b/include/battle_system.h @@ -9,11 +9,13 @@ BgConfig *BattleSystem_GetBgConfig(BattleSystem *bsys); Window *BattleSystem_GetWindow(BattleSystem *bsys, int index); +u32 BattleSystem_GetBattleType(BattleSystem *bsys); +BATTLECONTEXT *BattleSystem_GetBattleContext(BattleSystem *bsys); +OpponentData *BattleSystem_GetOpponentData(BattleSystem *bsys, int battlerId); +int BattleSystem_GetMaxBattlers(BattleSystem *bsys); //These functions haven't been decompiled -u16 BattleSystem_GetBattleType(BattleSystem *bsys); u32 BattleSystem_GetFieldSide(BattleSystem *bsys, int battlerId); -int BattleSystem_GetMaxBattlers(BattleSystem *bsys); int BattleSystem_Random(BattleSystem *bsys); PlayerProfile *BattleSystem_GetPlayerProfile(BattleSystem *bsys, int a1); PARTY *BattleSystem_GetParty(BattleSystem *bsys, int battlerId); @@ -24,7 +26,6 @@ int ov12_0223ABB8(BattleSystem *bsys, int battlerId, int a2); void BattleSystem_RecoverStatus(BattleSystem *bsys, int battlerIdA, int battlerIdB, int a2, int itemWork); void ov12_0223BDDC(BattleSystem *bsys, int battlerId, u8 a2); void PokedexSetBattlerSeen(BattleSystem *bsys, int battlerId); -OpponentData *BattleSystem_GetOpponentDataByBattlerId(BattleSystem *bsys, int battlerId); SOUND_CHATOT *BattleSystem_GetChatotVoice(BattleSystem *bsys, int battlerId); int BattleSystem_GetChatotVoiceParam(BattleSystem *bsys, int battlerId); int BattleSystem_GetBattlerIdPartner(BattleSystem *bsys, int battlerId); @@ -44,7 +45,6 @@ int ov12_0223AB60(BattleSystem *bsys); BOOL ov12_0223BFEC(BattleSystem *bsys); void ov12_0223BB64(BattleSystem *bsys, int a1); void ov12_02237ED0(BattleSystem *bsys, int a1); -BATTLECONTEXT *ov12_0223A7E4(BattleSystem *bsys); void ov12_022642F0(BattleSystem *bsys); BOOL ov12_022581BC(BattleSystem *bsys, BATTLECONTEXT *ctx); Bag *BattleSystem_GetBag(BattleSystem *bsys); diff --git a/include/constants/battle_script.h b/include/constants/battle_script.h index 6d8478059..534023a43 100644 --- a/include/constants/battle_script.h +++ b/include/constants/battle_script.h @@ -63,7 +63,7 @@ #define BSCRIPT_VAR_59 59 #define BSCRIPT_VAR_BATTLE_STATUS_2 60 #define BSCRIPT_VAR_61 61 -#define BSCRIPT_VAR_62 62 +#define BSCRIPT_VAR_MAX_BATTLERS 62 #define BSCRIPT_VAR_BATTLER_ATTACKER_TEMP 63 #define BSCRIPT_VAR_BATTLER_TARGET_TEMP 64 #define BSCRIPT_VAR_PHYSICAL_DAMAGE_TAKEN 65 diff --git a/src/battle/battle_command.c b/src/battle/battle_command.c index 1a8a08238..1f5aef2e3 100644 --- a/src/battle/battle_command.c +++ b/src/battle/battle_command.c @@ -64,7 +64,7 @@ BOOL BtlCmd_PokemonEncounter(BattleSystem *bsys, BATTLECONTEXT *ctx) { case B_SIDE_OPPONENT: OpponentData *opponentData; for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitPokemonEncounter(bsys, battlerId); PokedexSetBattlerSeen(bsys, battlerId); @@ -93,7 +93,7 @@ BOOL BtlCmd_PokemonSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (!(opponentData->unk195 & 1)) { BattleController_EmitPokemonSlideIn(bsys, battlerId); PokedexSetBattlerSeen(bsys, battlerId); @@ -104,7 +104,7 @@ BOOL BtlCmd_PokemonSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleSystem_ClearExperienceEarnFlags(ctx, battlerId); BattleSystem_SetExperienceEarnFlags(bsys, ctx, battlerId); @@ -114,7 +114,7 @@ BOOL BtlCmd_PokemonSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { } break; case B_SIDE_1: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdAttacker); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdAttacker); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -126,7 +126,7 @@ BOOL BtlCmd_PokemonSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { BattleController_EmitPokemonSlideIn(bsys, ctx->battlerIdAttacker); break; case B_SIDE_2: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdTarget); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdTarget); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -138,7 +138,7 @@ BOOL BtlCmd_PokemonSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { BattleController_EmitPokemonSlideIn(bsys, ctx->battlerIdTarget); break; case B_SIDE_6: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdSwitch); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdSwitch); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -171,7 +171,7 @@ BOOL BtlCmd_PokemonSendOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 3: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (!(opponentData->unk195 & 1)) { BattleController_EmitPokemonSendOut(bsys, battlerId, 0, 0); PokedexSetBattlerSeen(bsys, battlerId); @@ -182,7 +182,7 @@ BOOL BtlCmd_PokemonSendOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleSystem_ClearExperienceEarnFlags(ctx, battlerId); BattleSystem_SetExperienceEarnFlags(bsys, ctx, battlerId); @@ -192,7 +192,7 @@ BOOL BtlCmd_PokemonSendOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { } break; case 1: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdAttacker); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdAttacker); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -204,7 +204,7 @@ BOOL BtlCmd_PokemonSendOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { BattleController_EmitPokemonSendOut(bsys, ctx->battlerIdAttacker, 0, 0); break; case 2: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdTarget); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdTarget); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -216,7 +216,7 @@ BOOL BtlCmd_PokemonSendOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { BattleController_EmitPokemonSendOut(bsys, ctx->battlerIdTarget, 0, 0); break; case 6: - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdSwitch); + opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdSwitch); if (!(opponentData->unk195 & 1)) { BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY); BattleSystem_SetExperienceEarnFlags(bsys, ctx, BATTLER_ENEMY2); @@ -248,7 +248,7 @@ BOOL BtlCmd_RecallPokemon(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == 0) { BattleController_EmitRecallPokemon(bsys, ctx, battlerId); } @@ -256,7 +256,7 @@ BOOL BtlCmd_RecallPokemon(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1 && !(ctx->unk_3108 & MaskOfFlagNo(battlerId))) { BattleController_EmitRecallPokemon(bsys, ctx, battlerId); } @@ -291,7 +291,7 @@ BOOL BtlCmd_TrainerEncounter(BattleSystem *bsys, BATTLECONTEXT *ctx) { default: if (BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_INGAME_PARTNER) { for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 != 4) { BattleController_EmitTrainerEncounter(bsys, battlerId); } @@ -309,7 +309,7 @@ BOOL BtlCmd_TrainerEncounter(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 3: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == FALSE) { BattleController_EmitTrainerEncounter(bsys, battlerId); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -321,7 +321,7 @@ BOOL BtlCmd_TrainerEncounter(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitTrainerEncounter(bsys, battlerId); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -361,7 +361,7 @@ BOOL BtlCmd_ThrowPokeball(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 3: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == FALSE) { BattleController_EmitThrowPokeball(bsys, battlerId, unkC); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -373,7 +373,7 @@ BOOL BtlCmd_ThrowPokeball(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitThrowPokeball(bsys, battlerId, unkC); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -414,7 +414,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 3: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == FALSE) { BattleController_EmitTrainerSlideOut(bsys, battlerId); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -426,7 +426,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitTrainerSlideOut(bsys, battlerId); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_MULTI) == 0 && @@ -439,7 +439,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 9: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 0 || opponentData->unk195 == 2) { BattleController_EmitTrainerSlideOut(bsys, battlerId); break; @@ -448,7 +448,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 10: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 1 || opponentData->unk195 == 3) { BattleController_EmitTrainerSlideOut(bsys, battlerId); break; @@ -457,7 +457,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 11: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 4) { BattleController_EmitTrainerSlideOut(bsys, battlerId); break; @@ -466,7 +466,7 @@ BOOL BtlCmd_TrainerSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 12: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 5) { BattleController_EmitTrainerSlideOut(bsys, battlerId); break; @@ -500,7 +500,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == FALSE) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_DOUBLES)) { @@ -511,7 +511,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); if ((BattleSystem_GetBattleType(bsys) & BATTLE_TYPE_DOUBLES)) { @@ -522,7 +522,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_9: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 0 || opponentData->unk195 == 2) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); break; @@ -531,7 +531,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_10: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 1 || opponentData->unk195 == 3) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); break; @@ -540,7 +540,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_11: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 4) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); break; @@ -549,7 +549,7 @@ BOOL BtlCmd_TrainerSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_12: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 == 5) { BattleController_EmitTrainerSlideIn(bsys, battlerId, index); break; @@ -589,7 +589,7 @@ BOOL BtlCmd_HealthbarSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == 0) { BattleController_EmitHealthbarSlideIn(bsys, ctx, battlerId, 0); } @@ -597,7 +597,7 @@ BOOL BtlCmd_HealthbarSlideIn(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitHealthbarSlideIn(bsys, ctx, battlerId, 0); } @@ -630,7 +630,7 @@ BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == 0) { BattleController_EmitHealthbarSlideIn(bsys, ctx, battlerId, delay); delay += 4; @@ -639,7 +639,7 @@ BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitHealthbarSlideIn(bsys, ctx, battlerId, delay); delay += 4; @@ -670,7 +670,7 @@ BOOL BtlCmd_HealthbarSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_PLAYER: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if ((opponentData->unk195 & 1) == 0 && (ctx->unk_3108 & MaskOfFlagNo(battlerId)) == 0) { BattleController_EmitHealthbarSlideOut(bsys, battlerId); } @@ -678,7 +678,7 @@ BOOL BtlCmd_HealthbarSlideOut(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case B_SIDE_OPPONENT: for (battlerId = 0; battlerId < battlersMax; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { BattleController_EmitHealthbarSlideOut(bsys, battlerId); } @@ -1182,7 +1182,7 @@ BOOL BtlCmd_CritCalc(BattleSystem *bsys, BATTLECONTEXT *ctx) { BOOL BtlCmd_ShouldGetExp(BattleSystem *bsys, BATTLECONTEXT *ctx) { int adrs; u32 battleType = BattleSystem_GetBattleType(bsys); - OpponentData *opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, ctx->battlerIdFainted); + OpponentData *opponentData = BattleSystem_GetOpponentData(bsys, ctx->battlerIdFainted); BattleScriptIncrementPointer(ctx, 1); @@ -2170,7 +2170,7 @@ BOOL BtlCmd_CalcPrizeMoney(BattleSystem *bsys, BATTLECONTEXT *ctx) { if (bsys->battleOutcomeFlag == 1) { prizeMoney = CalcPrizeMoney(bsys, ctx, 1); - if (bsys->battleTypeFlags & 16 || bsys->battleTypeFlags == 0x4b) { + if (bsys->battleTypeFlags & BATTLE_TYPE_INGAME_PARTNER || bsys->battleTypeFlags == (BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLES | BATTLE_TYPE_MULTI | BATTLE_TYPE_6)) { prizeMoney += CalcPrizeMoney(bsys, ctx, 3); } PlayerProfile_AddMoney(BattleSystem_GetPlayerProfile(bsys, 0), prizeMoney); @@ -5435,7 +5435,7 @@ BOOL BtlCmd_198(BattleSystem *bsys, BATTLECONTEXT *ctx) { switch (side) { case 3: for (battlerId = 0; battlerId < maxBattlers; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (!(opponentData->unk195 & 1)) { ov12_02264038(bsys, battlerId); } @@ -5443,7 +5443,7 @@ BOOL BtlCmd_198(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < maxBattlers; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { ov12_02264038(bsys, battlerId); } @@ -5470,7 +5470,7 @@ BOOL BtlCmd_199(BattleSystem *bsys, BATTLECONTEXT *ctx) { switch (side) { case 3: for (battlerId = 0; battlerId < maxBattlers; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (!(opponentData->unk195 & 1)) { ov12_02264054(bsys, battlerId); } @@ -5478,7 +5478,7 @@ BOOL BtlCmd_199(BattleSystem *bsys, BATTLECONTEXT *ctx) { break; case 4: for (battlerId = 0; battlerId < maxBattlers; battlerId++) { - opponentData = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponentData = BattleSystem_GetOpponentData(bsys, battlerId); if (opponentData->unk195 & 1) { ov12_02264054(bsys, battlerId); } @@ -5513,7 +5513,7 @@ BOOL BtlCmd_CheckWhiteout(BattleSystem *bsys, BATTLECONTEXT *ctx) { PARTY *party1 = BattleSystem_GetParty(bsys, battlerId); PARTY *party2 = BattleSystem_GetParty(bsys, BattleSystem_GetBattlerIdPartner(bsys, battlerId)); - BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + BattleSystem_GetOpponentData(bsys, battlerId); for (i = 0; i < GetPartyCount(party1); i++) { mon = GetPartyMonByIndex(party1, i); @@ -5539,7 +5539,7 @@ BOOL BtlCmd_CheckWhiteout(BattleSystem *bsys, BATTLECONTEXT *ctx) { } else { PARTY *party = BattleSystem_GetParty(bsys, battlerId); - BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + BattleSystem_GetOpponentData(bsys, battlerId); for (i = 0; i < GetPartyCount(party); i++) { mon = GetPartyMonByIndex(party, i); @@ -5799,7 +5799,7 @@ BOOL BtlCmd_WaitWithoutInterrupt(BattleSystem *bsys, BATTLECONTEXT *ctx) { int wait = BattleScriptReadWord(ctx); - if ((bsys->battleTypeFlags & 4) && !(bsys->unk240C & 16)) { + if ((bsys->battleTypeFlags & BATTLE_TYPE_LINK) && !(bsys->unk240C & BATTLE_TYPE_INGAME_PARTNER)) { tSpeed = 2; } else { tSpeed = 1; @@ -6034,8 +6034,8 @@ static void *BattleScriptGetVarPointer(BattleSystem *bsys, BATTLECONTEXT *ctx, i return &ctx->battleStatus2; case BSCRIPT_VAR_61: return &ctx->unk_EC; - case BSCRIPT_VAR_62: - return &bsys->unk44; + case BSCRIPT_VAR_MAX_BATTLERS: + return &bsys->maxBattlers; case BSCRIPT_VAR_BATTLER_ATTACKER_TEMP: return &ctx->battlerIdAttackerTemp; case BSCRIPT_VAR_BATTLER_TARGET_TEMP: diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 35a1446b1..19e752f95 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -139,7 +139,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE int battlerId; int battlersMax; int var; - u16 battleType; + s32 battleType; BATTLEMSG msg; battlersMax = BattleSystem_GetMaxBattlers(bsys); @@ -164,7 +164,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE break; } - if ((ov12_02261264(BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId)) == 1) || (ctx->totalTurns)) { + if ((ov12_02261264(BattleSystem_GetOpponentData(bsys, battlerId)) == 1) || (ctx->totalTurns)) { ov12_02262B80(bsys, ctx, battlerId, ctx->selectedMonIndex[battlerId]); ctx->unk_0[battlerId] = SSI_STATE_1; } else { @@ -179,7 +179,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE continue; } - if (ov12_02261264(BattleSystem_GetOpponentDataByBattlerId(bsys, battlerIdCheck)) != 0x1) { + if (ov12_02261264(BattleSystem_GetOpponentData(bsys, battlerIdCheck)) != 0x1) { continue; } @@ -327,7 +327,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE } else if (ov12_02251A28(bsys, ctx, battlerId, ctx->unk_2300[battlerId][0] - 1, &msg) == 0) { if (BattleSystem_GetBattleSpecial(bsys) & BATTLE_SPECIAL_RECORDED) { ov12_0223BFFC(bsys, 1); - ov12_022581BC(bsys, ov12_0223A7E4(bsys)); + ov12_022581BC(bsys, BattleSystem_GetBattleContext(bsys)); } else { ov12_022639B8(bsys, battlerId, msg); ctx->unk_0[battlerId] = SSI_STATE_15; @@ -410,7 +410,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE } else if ((battleType & BATTLE_TYPE_TRAINER) && !(battleType & BATTLE_TYPE_LINK)) { if (BattleSystem_GetBattleSpecial(bsys) & BATTLE_SPECIAL_RECORDED) { ov12_0223BFFC(bsys, 1); - ov12_022581BC(bsys, ov12_0223A7E4(bsys)); + ov12_022581BC(bsys, BattleSystem_GetBattleContext(bsys)); } else { msg.tag = 0; msg.id = msg_0197_00793; //There's no running from a Trainer battle! @@ -421,7 +421,7 @@ void BattleControllerPlayer_SelectionScreenInput(BattleSystem *bsys, BATTLECONTE } else if (CantEscape(bsys, ctx, battlerId, &msg)) { if (BattleSystem_GetBattleSpecial(bsys) & BATTLE_SPECIAL_RECORDED) { ov12_0223BFFC(bsys, 1); - ov12_022581BC(bsys, ov12_0223A7E4(bsys)); + ov12_022581BC(bsys, BattleSystem_GetBattleContext(bsys)); } else { ov12_022639B8(bsys, battlerId, msg); ctx->unk_0[battlerId] = SSI_STATE_15; diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index 2fd0769ed..6cb8bfd25 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -7,4 +7,20 @@ BgConfig *BattleSystem_GetBgConfig(BattleSystem *bsys) { Window *BattleSystem_GetWindow(BattleSystem *bsys, int index) { return &bsys->window[index]; -} \ No newline at end of file +} + +u32 BattleSystem_GetBattleType(BattleSystem *bsys) { + return bsys->battleTypeFlags; +} + +BATTLECONTEXT *BattleSystem_GetBattleContext(BattleSystem *bsys) { + return bsys->ctx; +} + +OpponentData *BattleSystem_GetOpponentData(BattleSystem *bsys, int battlerId) { + return bsys->opponentData[battlerId]; +} + +int BattleSystem_GetMaxBattlers(BattleSystem *bsys) { + return bsys->maxBattlers; +} diff --git a/src/battle/overlay_12_0224E4FC.c b/src/battle/overlay_12_0224E4FC.c index d24229c96..e37b814c3 100644 --- a/src/battle/overlay_12_0224E4FC.c +++ b/src/battle/overlay_12_0224E4FC.c @@ -1388,13 +1388,13 @@ int ov12_022506D4(BattleSystem *bsys, BATTLECONTEXT *ctx, int battlerIdAttacker, if (moveRange == RANGE_ADJACENT_OPPONENTS) { int battlerId; int maxBattlers = BattleSystem_GetMaxBattlers(bsys); - OpponentData *opponent = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerIdAttacker); + OpponentData *opponent = BattleSystem_GetOpponentData(bsys, battlerIdAttacker); u8 flag = ov12_02261258(opponent); for (ctx->unk_217E = 0; ctx->unk_217E < maxBattlers; ctx->unk_217E++) { battlerId = ctx->turnOrder[ctx->unk_217E]; if (ctx->battleMons[battlerId].hp) { - opponent = BattleSystem_GetOpponentDataByBattlerId(bsys, battlerId); + opponent = BattleSystem_GetOpponentData(bsys, battlerId); if (((flag & 1) && !(ov12_02261258(opponent) & 1)) || (!(flag & 1) && (ov12_02261258(opponent) & 1))) { battlerIdTarget = battlerId;