more renaming

This commit is contained in:
camthesaxman 2018-01-16 15:12:38 -06:00
parent 157b88b6db
commit c3c13d0acf
46 changed files with 1630 additions and 1609 deletions

View File

@ -1830,13 +1830,13 @@ GetBankPosition: @ 80A6A44
.pool .pool
thumb_func_end GetBankPosition thumb_func_end GetBankPosition
thumb_func_start GetBankByIdentity thumb_func_start GetBankByPosition
GetBankByIdentity: @ 80A6A54 GetBankByPosition: @ 80A6A54
push {r4,lr} push {r4,lr}
lsls r0, 24 lsls r0, 24
lsrs r3, r0, 24 lsrs r3, r0, 24
movs r1, 0 movs r1, 0
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r2, [r0] ldrb r2, [r0]
cmp r1, r2 cmp r1, r2
bcs _080A6A7E bcs _080A6A7E
@ -1860,7 +1860,7 @@ _080A6A7E:
pop {r1} pop {r1}
bx r1 bx r1
.pool .pool
thumb_func_end GetBankByIdentity thumb_func_end GetBankByPosition
thumb_func_start IsBankSpritePresent thumb_func_start IsBankSpritePresent
IsBankSpritePresent: @ 80A6A90 IsBankSpritePresent: @ 80A6A90
@ -3496,7 +3496,7 @@ _080A76F2:
cmp r5, 0 cmp r5, 0
beq _080A771A beq _080A771A
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl IsAnimBankSpriteVisible bl IsAnimBankSpriteVisible
@ -3504,7 +3504,7 @@ _080A76F2:
cmp r0, 0 cmp r0, 0
beq _080A771A beq _080A771A
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, 0x10 adds r0, 0x10
@ -3514,7 +3514,7 @@ _080A771A:
cmp r6, 0 cmp r6, 0
beq _080A7746 beq _080A7746
movs r0, 0x2 movs r0, 0x2
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl IsAnimBankSpriteVisible bl IsAnimBankSpriteVisible
@ -3522,7 +3522,7 @@ _080A771A:
cmp r0, 0 cmp r0, 0
beq _080A7746 beq _080A7746
movs r0, 0x2 movs r0, 0x2
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@ -3534,7 +3534,7 @@ _080A7746:
cmp r7, 0 cmp r7, 0
beq _080A7772 beq _080A7772
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl IsAnimBankSpriteVisible bl IsAnimBankSpriteVisible
@ -3542,7 +3542,7 @@ _080A7746:
cmp r0, 0 cmp r0, 0
beq _080A7772 beq _080A7772
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@ -3555,7 +3555,7 @@ _080A7772:
cmp r0, 0 cmp r0, 0
beq _080A77A0 beq _080A77A0
movs r0, 0x3 movs r0, 0x3
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl IsAnimBankSpriteVisible bl IsAnimBankSpriteVisible
@ -3563,7 +3563,7 @@ _080A7772:
cmp r0, 0 cmp r0, 0
beq _080A77A0 beq _080A77A0
movs r0, 0x3 movs r0, 0x3
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r1, r0, 0 adds r1, r0, 0
@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4
push {lr} push {lr}
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
pop {r1} pop {r1}
@ -4959,7 +4959,7 @@ _080A825C:
sub_80A8278: @ 80A8278 sub_80A8278: @ 80A8278
push {r4-r6,lr} push {r4-r6,lr}
movs r5, 0 movs r5, 0
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r5, r0 cmp r5, r0
bge _080A82D2 bge _080A82D2
@ -4998,7 +4998,7 @@ _080A8286:
strb r2, [r0, 0x5] strb r2, [r0, 0x5]
_080A82C8: _080A82C8:
adds r5, 0x1 adds r5, 0x1
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r5, r0 cmp r5, r0
blt _080A8286 blt _080A8286

View File

@ -200,7 +200,7 @@ _080D5320:
_080D5324: _080D5324:
movs r0, 0x3 movs r0, 0x3
_080D5326: _080D5326:
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r0, r4, 0 adds r0, r4, 0

View File

@ -7539,7 +7539,7 @@ sub_8102434: @ 8102434
lsls r0, 24 lsls r0, 24
lsrs r7, r0, 24 lsrs r7, r0, 24
movs r4, 0 movs r4, 0
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r4, r0 cmp r4, r0
bcs _08102490 bcs _08102490
@ -7576,7 +7576,7 @@ _08102482:
adds r0, r4, 0x1 adds r0, r4, 0x1
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r4, r0 cmp r4, r0
bcc _08102448 bcc _08102448
@ -7605,7 +7605,7 @@ _081024B2:
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
_081024C2: _081024C2:
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r4, r0 cmp r4, r0
bcc _081024B2 bcc _081024B2
@ -21049,14 +21049,14 @@ sub_8109198: @ 8109198
cmp r4, r0 cmp r4, r0
bne _081091DE bne _081091DE
movs r0, 0x2 movs r0, 0x2
bl GetBankByIdentity bl GetBankByPosition
ldrb r1, [r5] ldrb r1, [r5]
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r1, r0 cmp r1, r0
beq _081091D6 beq _081091D6
movs r0, 0x3 movs r0, 0x3
bl GetBankByIdentity bl GetBankByPosition
ldrb r1, [r5] ldrb r1, [r5]
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@ -28050,7 +28050,7 @@ sub_810C9E4: @ 810C9E4
ldrh r0, [r4, 0x2] ldrh r0, [r4, 0x2]
lsls r0, 20 lsls r0, 20
lsrs r0, 24 lsrs r0, 24
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
adds r0, r5, 0 adds r0, r5, 0
@ -33064,7 +33064,7 @@ _0810F212:
bne _0810F2B8 bne _0810F2B8
_0810F22E: _0810F22E:
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r7, r4, 0 adds r7, r4, 0
@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340
push {r4,r5,lr} push {r4,r5,lr}
adds r5, r0, 0 adds r5, r0, 0
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
movs r1, 0x3C movs r1, 0x3C
@ -33370,7 +33370,7 @@ sub_810F46C: @ 810F46C
cmp r0, 0 cmp r0, 0
bne _0810F502 bne _0810F502
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r6, r4, 0 adds r6, r4, 0
@ -33441,7 +33441,7 @@ sub_810F524: @ 810F524
cmp r0, 0 cmp r0, 0
bne _0810F57C bne _0810F57C
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r4, r0, 0 adds r4, r0, 0
@ -43586,7 +43586,7 @@ _08114902:
beq _0811492E beq _0811492E
_08114908: _08114908:
adds r0, r4, 0 adds r0, r4, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r0, r4, 0 adds r0, r4, 0
@ -45846,7 +45846,7 @@ sub_8115B0C: @ 8115B0C
strh r1, [r0, 0x12] strh r1, [r0, 0x12]
strh r5, [r0, 0x18] strh r5, [r0, 0x18]
movs r4, 0 movs r4, 0
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r1, [r0] ldrb r1, [r0]
mov r9, r3 mov r9, r3
mov r8, r2 mov r8, r2
@ -46650,7 +46650,7 @@ _0811618A:
cmp r0, 0x1 cmp r0, 0x1
bhi _081161DC bhi _081161DC
movs r4, 0 movs r4, 0
ldr r5, =gNoOfAllBanks ldr r5, =gBattleBanksCount
ldrb r0, [r5] ldrb r0, [r5]
cmp r4, r0 cmp r4, r0
bcs _081161DC bcs _081161DC
@ -50065,7 +50065,7 @@ sub_8117E94: @ 8117E94
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r2, =gAnimBankAttacker ldr r2, =gAnimBankAttacker
ldr r1, =gBankTarget ldr r1, =gBankDefender
ldrb r1, [r1] ldrb r1, [r1]
strb r1, [r2] strb r1, [r2]
ldr r2, =gAnimBankTarget ldr r2, =gAnimBankTarget
@ -50117,7 +50117,7 @@ sub_8117F10: @ 8117F10
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r2, =gAnimBankTarget ldr r2, =gAnimBankTarget
ldr r1, =gBankTarget ldr r1, =gBankDefender
ldrb r1, [r1] ldrb r1, [r1]
strb r1, [r2] strb r1, [r2]
bl DestroyAnimVisualTask bl DestroyAnimVisualTask
@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC
lsls r5, 16 lsls r5, 16
lsrs r5, 16 lsrs r5, 16
adds r0, r4, 0 adds r0, r4, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r1, =gMonSpritesGfxPtr ldr r1, =gMonSpritesGfxPtr

View File

@ -1283,7 +1283,7 @@ _08170F54:
lsls r4, 24 lsls r4, 24
lsrs r4, 24 lsrs r4, 24
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl sub_80A82E4 bl sub_80A82E4
@ -1335,7 +1335,7 @@ _08170F54:
ldr r0, =SpriteCallbackDummy ldr r0, =SpriteCallbackDummy
str r0, [r4] str r0, [r4]
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
ldr r1, =gBankSpriteIds ldr r1, =gBankSpriteIds
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@ -1371,7 +1371,7 @@ sub_8171030: @ 8171030
lsrs r5, r0, 24 lsrs r5, r0, 24
ldr r6, =gSprites ldr r6, =gSprites
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
ldr r1, =gBankSpriteIds ldr r1, =gBankSpriteIds
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@ -1422,7 +1422,7 @@ sub_81710A8: @ 81710A8
lsrs r5, r0, 24 lsrs r5, r0, 24
ldr r6, =gSprites ldr r6, =gSprites
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
ldr r4, =gBankSpriteIds ldr r4, =gBankSpriteIds
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8
cmp r0, 0 cmp r0, 0
bge _081710F4 bge _081710F4
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r0, r4 adds r0, r4
@ -5575,7 +5575,7 @@ sub_817330C: @ 817330C
movs r0, 0x1E movs r0, 0x1E
strh r0, [r4, 0x2E] strh r0, [r4, 0x2E]
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
movs r1, 0 movs r1, 0
@ -5587,7 +5587,7 @@ sub_817330C: @ 817330C
adds r0, r1 adds r0, r1
strh r0, [r4, 0x32] strh r0, [r4, 0x32]
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
movs r1, 0x1 movs r1, 0x1
@ -5732,7 +5732,7 @@ sub_817345C: @ 817345C
.pool .pool
_08173478: _08173478:
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
ldr r1, =gAnimBankAttacker ldr r1, =gAnimBankAttacker
strb r0, [r1] strb r0, [r1]
movs r0, 0x1 movs r0, 0x1
@ -5740,12 +5740,12 @@ _08173478:
.pool .pool
_0817348C: _0817348C:
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
ldr r1, =gAnimBankAttacker ldr r1, =gAnimBankAttacker
strb r0, [r1] strb r0, [r1]
movs r0, 0 movs r0, 0
_08173498: _08173498:
bl GetBankByIdentity bl GetBankByPosition
ldr r1, =gAnimBankTarget ldr r1, =gAnimBankTarget
strb r0, [r1] strb r0, [r1]
_081734A0: _081734A0:

View File

@ -21034,7 +21034,7 @@ sub_81A5718: @ 81A5718
b _081A57D8 b _081A57D8
.pool .pool
_081A576C: _081A576C:
ldr r0, =gBattleMoveFlags ldr r0, =gMoveResultFlags
ldrb r1, [r0] ldrb r1, [r0]
movs r0, 0x29 movs r0, 0x29
ands r0, r1 ands r0, r1

View File

@ -39,7 +39,7 @@ _0817C988:
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
@ -83,7 +83,7 @@ _0817CA10:
str r1, [sp, 0x8] str r1, [sp, 0x8]
cmp r6, 0 cmp r6, 0
bne _0817CA3C bne _0817CA3C
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
lsls r0, 1 lsls r0, 1
adds r0, r2 adds r0, r2
@ -94,7 +94,7 @@ _0817CA10:
b _0817CA4C b _0817CA4C
.pool .pool
_0817CA3C: _0817CA3C:
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
lsls r0, 1 lsls r0, 1
adds r0, r2 adds r0, r2
@ -140,7 +140,7 @@ _0817CA9C:
lsls r0, 24 lsls r0, 24
lsrs r0, 25 lsrs r0, 25
mov r8, r0 mov r8, r0
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
bl GetBankPosition bl GetBankPosition
lsls r0, 24 lsls r0, 24
@ -941,7 +941,7 @@ _0817D3F2:
bl _0817E0A6 bl _0817E0A6
_0817D3FE: _0817D3FE:
ldr r0, =gBankAttacker ldr r0, =gBankAttacker
ldr r1, =gBankTarget ldr r1, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
ldrb r1, [r1] ldrb r1, [r1]
cmp r0, r1 cmp r0, r1
@ -2564,7 +2564,7 @@ _0817E122:
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r9, r0 mov r9, r0
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
@ -3249,7 +3249,7 @@ sub_817E684: @ 817E684
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
@ -3714,7 +3714,7 @@ sub_817EA80: @ 817EA80
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
bl GetBankSide bl GetBankSide
lsls r0, 24 lsls r0, 24
@ -4291,7 +4291,7 @@ _0817EEF8:
bgt _0817EF10 bgt _0817EF10
b _0817F1FA b _0817F1FA
_0817EF10: _0817EF10:
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
muls r0, r1 muls r0, r1
adds r0, r5 adds r0, r5
@ -4386,7 +4386,7 @@ _0817EF98:
mov r10, r3 mov r10, r3
mov r8, r0 mov r8, r0
add r7, sp, 0x10 add r7, sp, 0x10
ldr r4, =gBankTarget ldr r4, =gBankDefender
mov r9, r4 mov r9, r4
_0817EFC2: _0817EFC2:
lsls r1, r5, 1 lsls r1, r5, 1
@ -4411,7 +4411,7 @@ _0817EFC2:
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0817F0B4 beq _0817F0B4
ldr r4, =gSideAffecting ldr r4, =gSideStatuses
mov r1, r9 mov r1, r9
ldrb r0, [r1] ldrb r0, [r1]
bl GetBankPosition bl GetBankPosition
@ -4545,7 +4545,7 @@ _0817F0D8:
movs r7, 0 movs r7, 0
_0817F0F6: _0817F0F6:
movs r5, 0 movs r5, 0
ldr r4, =gBankTarget ldr r4, =gBankDefender
ldr r6, =gEnemyParty ldr r6, =gEnemyParty
ldr r0, =gBankAttacker ldr r0, =gBankAttacker
ldrb r0, [r0] ldrb r0, [r0]

View File

@ -1060,7 +1060,7 @@ _080D8004:
str r4, [r0] str r4, [r0]
ldr r4, =gBankAttacker ldr r4, =gBankAttacker
strb r2, [r4] strb r2, [r4]
ldr r0, =gBankTarget ldr r0, =gBankDefender
strb r3, [r0] strb r3, [r0]
bl sub_80DB0C4 bl sub_80DB0C4
ldr r2, =gBankSpriteIds ldr r2, =gBankSpriteIds
@ -13798,7 +13798,7 @@ sub_80DEA20: @ 80DEA20
bl CreateInvisibleSpriteWithCallback bl CreateInvisibleSpriteWithCallback
ldr r1, =gBankSpriteIds ldr r1, =gBankSpriteIds
strb r0, [r1, 0x3] strb r0, [r1, 0x3]
ldr r0, =gBankTarget ldr r0, =gBankDefender
ldrb r0, [r0] ldrb r0, [r0]
adds r0, r1 adds r0, r1
ldrb r1, [r0] ldrb r1, [r0]
@ -13905,12 +13905,12 @@ _080DEAD0:
.4byte _080DEB60 .4byte _080DEB60
.4byte _080DEB60 .4byte _080DEB60
_080DEB54: _080DEB54:
ldr r1, =gBankTarget ldr r1, =gBankDefender
movs r0, 0x2 movs r0, 0x2
b _080DEB64 b _080DEB64
.pool .pool
_080DEB60: _080DEB60:
ldr r1, =gBankTarget ldr r1, =gBankDefender
movs r0, 0x3 movs r0, 0x3
_080DEB64: _080DEB64:
strb r0, [r1] strb r0, [r1]

View File

@ -1389,7 +1389,7 @@
.endm .endm
.macro jumpifmovehadnoeffect jumpptr .macro jumpifmovehadnoeffect jumpptr
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
.endm .endm
.macro jumpifbattletype flags, jumpptr .macro jumpifbattletype flags, jumpptr

View File

@ -16060,7 +16060,7 @@ _081B8B1E:
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
_081B8B24: _081B8B24:
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r4, r0 cmp r4, r0
bcc _081B8AFC bcc _081B8AFC
@ -16228,7 +16228,7 @@ _081B8CBE:
bne _081B8CFC bne _081B8CFC
movs r5, 0x1 movs r5, 0x1
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
mov r2, sp mov r2, sp
ldr r1, =gBattlePartyID ldr r1, =gBattlePartyID
lsls r0, 24 lsls r0, 24
@ -16255,7 +16255,7 @@ _081B8CF0:
_081B8CFC: _081B8CFC:
movs r5, 0x2 movs r5, 0x2
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
mov r1, sp mov r1, sp
ldr r4, =gBattlePartyID ldr r4, =gBattlePartyID
lsls r0, 24 lsls r0, 24
@ -16264,7 +16264,7 @@ _081B8CFC:
ldrh r0, [r0] ldrh r0, [r0]
strb r0, [r1] strb r0, [r1]
movs r0, 0x2 movs r0, 0x2
bl GetBankByIdentity bl GetBankByPosition
mov r1, sp mov r1, sp
lsls r0, 24 lsls r0, 24
lsrs r0, 23 lsrs r0, 23
@ -16344,19 +16344,19 @@ sub_81B8D88: @ 81B8D88
cmp r0, 0 cmp r0, 0
bne _081B8DB0 bne _081B8DB0
movs r0, 0 movs r0, 0
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
movs r0, 0x2 movs r0, 0x2
b _081B8DBC b _081B8DBC
_081B8DB0: _081B8DB0:
movs r0, 0x1 movs r0, 0x1
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
movs r0, 0x3 movs r0, 0x3
_081B8DBC: _081B8DBC:
bl GetBankByIdentity bl GetBankByPosition
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
bl sub_81B1250 bl sub_81B1250

View File

@ -124,7 +124,7 @@ _0806BDC4:
orrs r1, r0 orrs r1, r0
lsrs r1, 31 lsrs r1, 31
str r1, [sp, 0x1C] str r1, [sp, 0x1C]
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldr r4, [sp, 0xC] ldr r4, [sp, 0xC]
subs r4, 0xD subs r4, 0xD
ldrb r0, [r0] ldrb r0, [r0]
@ -148,7 +148,7 @@ _0806BE3C:
ldr r1, [sp, 0x1C] ldr r1, [sp, 0x1C]
adds r1, 0x2 adds r1, 0x2
str r1, [sp, 0x1C] str r1, [sp, 0x1C]
ldr r0, =gNoOfAllBanks ldr r0, =gBattleBanksCount
ldrb r0, [r0] ldrb r0, [r0]
cmp r1, r0 cmp r1, r0
bge _0806BE70 bge _0806BE70

View File

@ -51,15 +51,15 @@
.set B_POSITION_OPPONENT_RIGHT, 3 .set B_POSITION_OPPONENT_RIGHT, 3
@ status 1 @ status 1
.set STATUS_SLEEP, 0x7 .set STATUS1_SLEEP, 0x7
.set STATUS_POISON, 0x8 .set STATUS1_POISON, 0x8
.set STATUS_BURN, 0x10 .set STATUS1_BURN, 0x10
.set STATUS_FREEZE, 0x20 .set STATUS1_FREEZE, 0x20
.set STATUS_PARALYSIS, 0x40 .set STATUS1_PARALYSIS, 0x40
.set STATUS_TOXIC_POISON, 0x80 .set STATUS1_TOXIC_POISON, 0x80
.set STATUS_TOXIC_COUNTER, 0xF00 .set STATUS1_TOXIC_COUNTER, 0xF00
.set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON .set STATUS1_ANY, STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON
@ status 2 @ status 2
.set STATUS2_CONFUSION, 0x00000007 .set STATUS2_CONFUSION, 0x00000007
@ -160,11 +160,12 @@
.set HITMARKER_x8000000, 0x08000000 .set HITMARKER_x8000000, 0x08000000
@ move flags @ move flags
.set MOVESTATUS_MISSED, 0x1 .set MOVE_RESULT_MISSED, 0x1
.set MOVESTATUS_SUPEREFFECTIVE, 0x2 .set MOVE_RESULT_SUPER_EFFECTIVE, 0x2
.set MOVESTATUS_NOTVERYEFFECTIVE, 0x4 .set MOVE_RESULT_NOT_VERY_EFFECTIVE, 0x4
.set MOVESTATUS_NOTAFFECTED, 0x8 .set MOVE_RESULT_DOESNT_AFFECT_FOE, 0x8
.set MOVESTATUS_ONEHITKO, 0x10 .set MOVE_RESULT_ONE_HIT_KO, 0x10
.set MOVESTATUS_FAILED, 0x20 .set MOVE_RESULT_FAILED, 0x20
.set MOVESTATUS_ENDURED, 0x40 .set MOVE_RESULT_FOE_ENDURED, 0x40
.set MOVESTATUS_HUNGON, 0x80 .set MOVE_RESULT_FOE_HUNG_ON, 0x80
.set MOVE_RESULT_NO_EFFECT, (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)

View File

@ -218,7 +218,7 @@ BattleAIScript_82DC2D4:
get_ability AI_TARGET get_ability AI_TARGET
if_equal ABILITY_INSOMNIA, Score_Minus10 if_equal ABILITY_INSOMNIA, Score_Minus10
if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 if_equal ABILITY_VITAL_SPIRIT, Score_Minus10
if_status AI_TARGET, STATUS_ANY, Score_Minus10 if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end end
@ -237,11 +237,11 @@ BattleAIScript_82DC31A:
BattleAIScript_82DC31B: BattleAIScript_82DC31B:
if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10 if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10
if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8
end end
BattleAIScript_82DC330: BattleAIScript_82DC330:
if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
end end
@ -350,7 +350,7 @@ BattleAIScript_82DC48C:
if_equal TYPE_POISON, Score_Minus10 if_equal TYPE_POISON, Score_Minus10
get_ability AI_TARGET get_ability AI_TARGET
if_equal ABILITY_IMMUNITY, Score_Minus10 if_equal ABILITY_IMMUNITY, Score_Minus10
if_status AI_TARGET, STATUS_ANY, Score_Minus10 if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end end
@ -402,7 +402,7 @@ BattleAIScript_82DC545:
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
get_ability AI_TARGET get_ability AI_TARGET
if_equal ABILITY_LIMBER, Score_Minus10 if_equal ABILITY_LIMBER, Score_Minus10
if_status AI_TARGET, STATUS_ANY, Score_Minus10 if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end end
@ -428,7 +428,7 @@ BattleAIScript_82DC59D:
end end
BattleAIScript_82DC5A5: BattleAIScript_82DC5A5:
if_not_status AI_USER, STATUS_SLEEP, Score_Minus8 if_not_status AI_USER, STATUS1_SLEEP, Score_Minus8
end end
BattleAIScript_82DC5B0: BattleAIScript_82DC5B0:
@ -536,7 +536,7 @@ BattleAIScript_82DC6A9:
BattleAIScript_82DC6B4: BattleAIScript_82DC6B4:
get_ability AI_TARGET get_ability AI_TARGET
if_equal ABILITY_WATER_VEIL, Score_Minus10 if_equal ABILITY_WATER_VEIL, Score_Minus10
if_status AI_TARGET, STATUS_ANY, Score_Minus10 if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0_5, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0_5, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0_25, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0_25, Score_Minus10
@ -566,7 +566,7 @@ BattleAIScript_82DC708:
end end
BattleAIScript_82DC713: BattleAIScript_82DC713:
if_not_status AI_USER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, Score_Minus10 if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, Score_Minus10
end end
BattleAIScript_82DC71E: BattleAIScript_82DC71E:
@ -1076,7 +1076,7 @@ BattleAIScript_82DCD3D:
score -1 score -1
BattleAIScript_82DCD4D: BattleAIScript_82DCD4D:
if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCD6C if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCD6C
if_hp_more_than AI_USER, 50, BattleAIScript_82DCD64 if_hp_more_than AI_USER, 50, BattleAIScript_82DCD64
if_random_less_than 80, BattleAIScript_82DCD6C if_random_less_than 80, BattleAIScript_82DCD6C
@ -1263,7 +1263,7 @@ BattleAIScript_82DCF22:
score -2 score -2
BattleAIScript_82DCF32: BattleAIScript_82DCF32:
if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCF44 if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCF44
if_random_less_than 70, BattleAIScript_82DCF44 if_random_less_than 70, BattleAIScript_82DCF44
score +2 score +2
@ -1520,7 +1520,7 @@ BattleAIScript_82DD228:
end end
BattleAIScript_82DD229: BattleAIScript_82DD229:
if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD256 if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD256
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD256 if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD256
if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD256 if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD256
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD256 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD256
@ -1673,7 +1673,7 @@ BattleAIScript_82DD381:
goto BattleAIScript_82DD3E9 goto BattleAIScript_82DD3E9
BattleAIScript_82DD3B9: BattleAIScript_82DD3B9:
if_not_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD3E1 if_not_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD3E1
goto BattleAIScript_82DD3E9 goto BattleAIScript_82DD3E9
BattleAIScript_82DD3C8: BattleAIScript_82DD3C8:
@ -1722,7 +1722,7 @@ BattleAIScript_82DD430:
end end
BattleAIScript_82DD431: BattleAIScript_82DD431:
if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD4D6 if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD4D6
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD4D6 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD4D6
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD4D6 if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD4D6
if_hp_more_than AI_USER, 30, BattleAIScript_82DD45E if_hp_more_than AI_USER, 30, BattleAIScript_82DD45E
@ -1901,7 +1901,7 @@ BattleAIScript_82DD582:
end end
BattleAIScript_82DD583: BattleAIScript_82DD583:
if_status AI_USER, STATUS_SLEEP, Score_Plus10 if_status AI_USER, STATUS1_SLEEP, Score_Plus10
score -5 score -5
end end
@ -1952,8 +1952,8 @@ BattleAIScript_82DD60A:
end end
BattleAIScript_82DD60B: BattleAIScript_82DD60B:
if_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 if_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621
if_status_in_party AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 if_status_in_party AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621
score -5 score -5
BattleAIScript_82DD621: BattleAIScript_82DD621:
@ -2012,7 +2012,7 @@ BattleAIScript_82DD693:
BattleAIScript_82DD694: BattleAIScript_82DD694:
get_protect_count AI_USER get_protect_count AI_USER
if_more_than 1, BattleAIScript_82DD75A if_more_than 1, BattleAIScript_82DD75A
if_status AI_USER, STATUS_TOXIC_POISON, BattleAIScript_82DD751 if_status AI_USER, STATUS1_TOXIC_POISON, BattleAIScript_82DD751
if_status2 AI_USER, STATUS2_CURSED, BattleAIScript_82DD751 if_status2 AI_USER, STATUS2_CURSED, BattleAIScript_82DD751
if_status3 AI_USER, STATUS3_PERISH_SONG, BattleAIScript_82DD751 if_status3 AI_USER, STATUS3_PERISH_SONG, BattleAIScript_82DD751
if_status2 AI_USER, STATUS2_INFATUATION, BattleAIScript_82DD751 if_status2 AI_USER, STATUS2_INFATUATION, BattleAIScript_82DD751
@ -2020,7 +2020,7 @@ BattleAIScript_82DD694:
if_status3 AI_USER, STATUS3_YAWN, BattleAIScript_82DD751 if_status3 AI_USER, STATUS3_YAWN, BattleAIScript_82DD751
if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DD751 if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DD751
if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DD751 if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DD751
if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD730 if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD730
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD730 if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD730
if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD730 if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD730
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD730 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD730
@ -2238,7 +2238,7 @@ BattleAIScript_82DD959:
end end
BattleAIScript_82DD95A: BattleAIScript_82DD95A:
if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD9FF if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD9FF
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD9FF if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD9FF
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD9FF if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD9FF
if_hp_more_than AI_USER, 30, BattleAIScript_82DD987 if_hp_more_than AI_USER, 30, BattleAIScript_82DD987
@ -2323,7 +2323,7 @@ BattleAIScript_82DDA2F:
goto BattleAIScript_82DDAB4 goto BattleAIScript_82DDAB4
BattleAIScript_82DDA3D: BattleAIScript_82DDA3D:
if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DDAAC if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DDAAC
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DDAAC if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DDAAC
if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DDAAC if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DDAAC
get_weather get_weather
@ -2396,7 +2396,7 @@ BattleAIScript_82DDAF5:
end end
BattleAIScript_82DDAF6: BattleAIScript_82DDAF6:
if_not_status AI_TARGET, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleAIScript_82DDB02 if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleAIScript_82DDB02
score +1 score +1
BattleAIScript_82DDB02: BattleAIScript_82DDB02:
@ -2405,7 +2405,7 @@ BattleAIScript_82DDB02:
BattleAIScript_82DDB03: BattleAIScript_82DDB03:
if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDB42 if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDB42
if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDB42 if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDB42
if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDB59 if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDB59
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDB49 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDB49
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDB49 if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDB49
is_first_turn_for AI_USER is_first_turn_for AI_USER
@ -2429,7 +2429,7 @@ BattleAIScript_82DDB5B:
end end
BattleAIScript_82DDB5C: BattleAIScript_82DDB5C:
if_status AI_TARGET, STATUS_PARALYSIS, BattleAIScript_82DDB6B if_status AI_TARGET, STATUS1_PARALYSIS, BattleAIScript_82DDB6B
goto BattleAIScript_82DDB6D goto BattleAIScript_82DDB6D
BattleAIScript_82DDB6B: BattleAIScript_82DDB6B:
@ -2571,7 +2571,7 @@ sItemsTable_82DDC6E:
.byte -1 .byte -1
BattleAIScript_82DDC72: BattleAIScript_82DDC72:
if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDC9D if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDC9D
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDC9D if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDC9D
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDC9D if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDC9D
if_random_less_than 180, BattleAIScript_82DDC9D if_random_less_than 180, BattleAIScript_82DDC9D
@ -2960,7 +2960,7 @@ BattleAIScript_82DDFED:
end end
BattleAIScript_82DDFF5: BattleAIScript_82DDFF5:
if_status AI_USER, STATUS_ANY, BattleAIScript_82DE000 if_status AI_USER, STATUS1_ANY, BattleAIScript_82DE000
end end
BattleAIScript_82DE000: BattleAIScript_82DE000:
@ -3060,7 +3060,7 @@ BattleAIScript_82DE14A:
BattleAIScript_82DE14F: BattleAIScript_82DE14F:
get_ability AI_TARGET get_ability AI_TARGET
if_not_equal ABILITY_GUTS, Score_Minus30_ if_not_equal ABILITY_GUTS, Score_Minus30_
if_status AI_TARGET, STATUS_ANY, Score_Minus30_ if_status AI_TARGET, STATUS1_ANY, Score_Minus30_
if_hp_less_than AI_USER, 91, Score_Minus30_ if_hp_less_than AI_USER, 91, Score_Minus30_
goto Score_Plus5 goto Score_Plus5

View File

@ -286,7 +286,7 @@ BattleScript_MoveEnd::
end end
BattleScript_MakeMoveMissed:: BattleScript_MakeMoveMissed::
orbyte gBattleMoveFlags, MOVESTATUS_MISSED orbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_PrintMoveMissed:: BattleScript_PrintMoveMissed::
attackstring attackstring
ppreduce ppreduce
@ -303,9 +303,9 @@ BattleScript_EffectSleep::
attackstring attackstring
ppreduce ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
jumpifcantmakeasleep BattleScript_CantMakeAsleep jumpifcantmakeasleep BattleScript_CantMakeAsleep
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation attackanimation
@ -397,7 +397,7 @@ BattleScript_EffectExplosion::
faintifabilitynotdamp faintifabilitynotdamp
setatkhptozero setatkhptozero
waitstate waitstate
jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 jumpifbyte NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_82D8B94
call BattleScript_82D8BEA call BattleScript_82D8BEA
goto BattleScript_82D8B96 goto BattleScript_82D8B96
BattleScript_82D8B94:: BattleScript_82D8B94::
@ -436,16 +436,16 @@ BattleScript_82D8BCF::
end end
BattleScript_82D8BEA:: BattleScript_82D8BEA::
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation attackanimation
waitanimation waitanimation
orbyte gBattleMoveFlags, MOVESTATUS_MISSED orbyte gMoveResultFlags, MOVE_RESULT_MISSED
return return
BattleScript_EffectDreamEater:: BattleScript_EffectDreamEater::
attackcanceler attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_82D8C18
BattleScript_82D8C0E:: BattleScript_82D8C0E::
attackstring attackstring
ppreduce ppreduce
@ -487,7 +487,7 @@ BattleScript_EffectMirrorMove::
pause 0x40 pause 0x40
trymirrormove trymirrormove
ppreduce ppreduce
orbyte gBattleMoveFlags, MOVESTATUS_FAILED orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_MIRRORMOVEFAILED printstring STRINGID_MIRRORMOVEFAILED
waitmessage 0x40 waitmessage 0x40
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -633,7 +633,7 @@ BattleScript_MultiHitLoop::
jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd
jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_MultiHitPrintStrings jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings
BattleScript_DoMultiHit:: BattleScript_DoMultiHit::
movevaluescleanup movevaluescleanup
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
@ -656,7 +656,7 @@ BattleScript_DoMultiHit::
addbyte sMULTIHIT_STRING + 4, 0x1 addbyte sMULTIHIT_STRING + 4, 0x1
setbyte sMOVEEND_STATE, 0x0 setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10 moveend 0x2, 0x10
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings
decrementmultihit BattleScript_MultiHitLoop decrementmultihit BattleScript_MultiHitLoop
goto BattleScript_MultiHitPrintStrings goto BattleScript_MultiHitPrintStrings
BattleScript_MultiHitNoMoreHits:: BattleScript_MultiHitNoMoreHits::
@ -712,9 +712,9 @@ BattleScript_EffectToxic::
ppreduce ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_ImmunityProtected:: BattleScript_ImmunityProtected::
copybyte gEffectBank, gBankTarget copybyte gEffectBank, gBankDefender
setbyte cMULTISTRING_CHOOSER, 0x0 setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PSNPrevention call BattleScript_PSNPrevention
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -759,7 +759,7 @@ BattleScript_EffectRest::
attackcanceler attackcanceler
attackstring attackstring
ppreduce ppreduce
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
jumpifcantmakeasleep BattleScript_RestCantSleep jumpifcantmakeasleep BattleScript_RestCantSleep
trysetrest BattleScript_AlreadyAtFullHp trysetrest BattleScript_AlreadyAtFullHp
pause 0x20 pause 0x20
@ -835,7 +835,7 @@ BattleScript_EffectSuperFang::
attackstring attackstring
ppreduce ppreduce
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
damagetohalftargethp damagetohalftargethp
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -845,7 +845,7 @@ BattleScript_EffectDragonRage::
attackstring attackstring
ppreduce ppreduce
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 40 setword gBattleMoveDamage, 40
adjustsetdamage adjustsetdamage
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -879,19 +879,19 @@ BattleScript_MoveMissedDoDamage::
pause 0x40 pause 0x40
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED printstring STRINGID_PKMNCRASHED
waitmessage 0x40 waitmessage 0x40
damagecalc damagecalc
typecalc typecalc
adjustnormaldamage adjustnormaldamage
manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER healthbarupdate ATTACKER
datahpupdate ATTACKER datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL tryfaintmon ATTACKER, FALSE, NULL
orbyte gBattleMoveFlags, MOVESTATUS_MISSED orbyte gMoveResultFlags, MOVE_RESULT_MISSED
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_EffectMist:: BattleScript_EffectMist::
@ -1012,11 +1012,11 @@ BattleScript_EffectPoison::
ppreduce ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation attackanimation
@ -1035,8 +1035,8 @@ BattleScript_EffectParalyze::
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
typecalc typecalc
jumpifmovehadnoeffect BattleScript_ButItFailed jumpifmovehadnoeffect BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation attackanimation
@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_LimberProtected:: BattleScript_LimberProtected::
copybyte gEffectBank, gBankTarget copybyte gEffectBank, gBankDefender
setbyte cMULTISTRING_CHOOSER, 0x0 setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PRLZPrevention call BattleScript_PRLZPrevention
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -1221,7 +1221,7 @@ BattleScript_EffectLevelDamage::
attackstring attackstring
ppreduce ppreduce
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtolevel dmgtolevel
adjustsetdamage adjustsetdamage
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -1232,7 +1232,7 @@ BattleScript_EffectPsywave::
attackstring attackstring
ppreduce ppreduce
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
psywavedamageeffect psywavedamageeffect
adjustsetdamage adjustsetdamage
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -1279,7 +1279,7 @@ BattleScript_EffectPainSplit::
BattleScript_EffectSnore:: BattleScript_EffectSnore::
attackcanceler attackcanceler
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
attackstring attackstring
ppreduce ppreduce
goto BattleScript_ButItFailed goto BattleScript_ButItFailed
@ -1333,7 +1333,7 @@ BattleScript_EffectSketch::
BattleScript_EffectSleepTalk:: BattleScript_EffectSleepTalk::
attackcanceler attackcanceler
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
attackstring attackstring
ppreduce ppreduce
goto BattleScript_ButItFailed goto BattleScript_ButItFailed
@ -1415,7 +1415,7 @@ BattleScript_TripleKickLoop::
jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd
jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_TripleKickNoMoreHits
BattleScript_DoTripleKickAttack:: BattleScript_DoTripleKickAttack::
accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
movevaluescleanup movevaluescleanup
@ -1440,18 +1440,18 @@ BattleScript_DoTripleKickAttack::
waitmessage 0x1 waitmessage 0x1
setbyte sMOVEEND_STATE, 0x0 setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10 moveend 0x2, 0x10
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
decrementmultihit BattleScript_TripleKickLoop decrementmultihit BattleScript_TripleKickLoop
goto BattleScript_TripleKickPrintStrings goto BattleScript_TripleKickPrintStrings
BattleScript_TripleKickNoMoreHits:: BattleScript_TripleKickNoMoreHits::
pause 0x20 pause 0x20
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_TripleKickPrintStrings:: BattleScript_TripleKickPrintStrings::
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
printstring STRINGID_HITXTIMES printstring STRINGID_HITXTIMES
waitmessage 0x40 waitmessage 0x40
@ -1487,7 +1487,7 @@ BattleScript_EffectNightmare::
ppreduce ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
goto BattleScript_ButItFailed goto BattleScript_ButItFailed
BattleScript_NightmareWorked:: BattleScript_NightmareWorked::
attackanimation attackanimation
@ -1513,7 +1513,7 @@ BattleScript_EffectCurse::
jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed
jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed
BattleScript_CurseTrySpeed:: BattleScript_CurseTrySpeed::
copybyte gBankTarget, gBankAttacker copybyte gBankDefender, gBankAttacker
setbyte sANIM_TURN, 0x1 setbyte sANIM_TURN, 0x1
attackanimation attackanimation
waitanimation waitanimation
@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence::
BattleScript_CurseEnd:: BattleScript_CurseEnd::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_GhostCurse:: BattleScript_GhostCurse::
jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse jumpifbytenotequal gBankAttacker, gBankDefender, BattleScript_DoGhostCurse
getmovetarget ATTACKER getmovetarget ATTACKER
BattleScript_DoGhostCurse:: BattleScript_DoGhostCurse::
attackcanceler attackcanceler
@ -1603,7 +1603,7 @@ BattleScript_PerishSongLoop::
jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
BattleScript_PerishSongLoopIncrement:: BattleScript_PerishSongLoopIncrement::
addbyte sBANK, 0x1 addbyte sBANK, 0x1
jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_PerishSongLoop
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_PerishSongNotAffected:: BattleScript_PerishSongNotAffected::
@ -1748,7 +1748,7 @@ BattleScript_EffectSonicboom::
attackstring attackstring
ppreduce ppreduce
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 20 setword gBattleMoveDamage, 20
adjustsetdamage adjustsetdamage
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -2085,14 +2085,14 @@ BattleScript_ButItFailedPpReduce::
ppreduce ppreduce
BattleScript_ButItFailed:: BattleScript_ButItFailed::
pause 0x20 pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_NotAffected:: BattleScript_NotAffected::
pause 0x20 pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -2204,10 +2204,10 @@ BattleScript_EffectWillOWisp::
attackstring attackstring
ppreduce ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned jumpifstatus TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected
jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation attackanimation
@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_WaterVeilPrevents:: BattleScript_WaterVeilPrevents::
copybyte gEffectBank, gBankTarget copybyte gEffectBank, gBankDefender
setbyte cMULTISTRING_CHOOSER, 0x0 setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_BRNPrevention call BattleScript_BRNPrevention
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -2275,7 +2275,7 @@ BattleScript_82DA15A::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_EffectFacade:: BattleScript_EffectFacade::
jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg jumpifstatus ATTACKER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleScript_FacadeDoubleDmg
goto BattleScript_EffectHit goto BattleScript_EffectHit
BattleScript_FacadeDoubleDmg:: BattleScript_FacadeDoubleDmg::
@ -2293,7 +2293,7 @@ BattleScript_EffectFocusPunch::
BattleScript_EffectSmellingsalt:: BattleScript_EffectSmellingsalt::
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN
jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_SmellingsaltDoubleDmg jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_SmellingsaltDoubleDmg
goto BattleScript_EffectHit goto BattleScript_EffectHit
BattleScript_SmellingsaltDoubleDmg:: BattleScript_SmellingsaltDoubleDmg::
@ -2452,7 +2452,7 @@ BattleScript_EffectBrickBreak::
typecalc typecalc
adjustnormaldamage adjustnormaldamage
jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
BattleScript_BrickBreakAnim:: BattleScript_BrickBreakAnim::
attackanimation attackanimation
waitanimation waitanimation
@ -2511,7 +2511,7 @@ BattleScript_EffectEndeavor::
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc typecalc
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, gHpDealt copyword gBattleMoveDamage, gHpDealt
adjustsetdamage adjustsetdamage
goto BattleScript_HitFromAtkAnimation goto BattleScript_HitFromAtkAnimation
@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance::
attackcanceler attackcanceler
attackstring attackstring
ppreduce ppreduce
setbyte gBankTarget, 0x0 setbyte gBankDefender, 0x0
BattleScript_TeeterDanceLoop:: BattleScript_TeeterDanceLoop::
movevaluescleanup movevaluescleanup
setmoveeffect EFFECT_CONFUSION setmoveeffect EFFECT_CONFUSION
jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceLoopIncrement jumpifbyteequal gBankAttacker, gBankDefender, BattleScript_TeeterDanceLoopIncrement
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents
jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement::
setbyte sMOVEEND_STATE, 0x0 setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10 moveend 0x2, 0x10
BattleScript_TeeterDanceLoopIncrement:: BattleScript_TeeterDanceLoopIncrement::
addbyte gBankTarget, 0x1 addbyte gBankDefender, 0x1
jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop jumpifbytenotequal gBankDefender, gBattleBanksCount, BattleScript_TeeterDanceLoop
end end
BattleScript_TeeterDanceOwnTempoPrevents:: BattleScript_TeeterDanceOwnTempoPrevents::
@ -2706,7 +2706,7 @@ BattleScript_TickleEnd::
BattleScript_CantLowerMultipleStats:: BattleScript_CantLowerMultipleStats::
pause 0x20 pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTDECREASE2 printstring STRINGID_STATSWONTDECREASE2
waitmessage 0x40 waitmessage 0x40
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -2792,7 +2792,7 @@ BattleScript_CalmMindEnd::
BattleScript_CantRaiseMultipleStats:: BattleScript_CantRaiseMultipleStats::
pause 0x20 pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTINCREASE2 printstring STRINGID_STATSWONTINCREASE2
waitmessage 0x40 waitmessage 0x40
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
@ -2935,7 +2935,7 @@ BattleScript_82DA908::
switchinanim GBANK_1, FALSE switchinanim GBANK_1, FALSE
waitstate waitstate
switchineffects 5 switchineffects 5
jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 jumpifbytenotequal gBank1, gBattleBanksCount, BattleScript_82DA908
BattleScript_82DA92C:: BattleScript_82DA92C::
end2 end2
@ -3243,7 +3243,7 @@ BattleScript_DamagingWeatherLoop::
BattleScript_DamagingWeatherLoopIncrement:: BattleScript_DamagingWeatherLoopIncrement::
jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
addbyte gBattleCommunication, 0x1 addbyte gBattleCommunication, 0x1
jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop jumpifbytenotequal gBattleCommunication, gBattleBanksCount, BattleScript_DamagingWeatherLoop
BattleScript_DamagingWeatherContinuesEnd:: BattleScript_DamagingWeatherContinuesEnd::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
end2 end2
@ -3322,7 +3322,7 @@ BattleScript_BideAttack::
waitmessage 0x40 waitmessage 0x40
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, sBIDE_DMG copyword gBattleMoveDamage, sBIDE_DMG
adjustsetdamage adjustsetdamage
setbyte sANIM_TURN, 0x1 setbyte sANIM_TURN, 0x1
@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway::
BattleScript_WrapFree:: BattleScript_WrapFree::
printstring STRINGID_PKMNGOTFREE printstring STRINGID_PKMNGOTFREE
waitmessage 0x40 waitmessage 0x40
copybyte gBankTarget, sBANK copybyte gBankDefender, sBANK
return return
BattleScript_LeechSeedFree:: BattleScript_LeechSeedFree::
@ -3564,16 +3564,16 @@ BattleScript_FutureAttackEnd::
moveend 0x1, 0x0 moveend 0x1, 0x0
setbyte sMOVEEND_STATE, 0xB setbyte sMOVEEND_STATE, 0xB
moveend 0x2, 0xE moveend 0x2, 0xE
setbyte gBattleMoveFlags, 0 setbyte gMoveResultFlags, 0
end2 end2
BattleScript_FutureAttackMiss:: BattleScript_FutureAttackMiss::
pause 0x20 pause 0x20
setbyte gBattleMoveFlags, 0 setbyte gMoveResultFlags, 0
orbyte gBattleMoveFlags, MOVESTATUS_FAILED orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
setbyte gBattleMoveFlags, 0 setbyte gMoveResultFlags, 0
end2 end2
BattleScript_NoMovesLeft:: BattleScript_NoMovesLeft::
@ -4032,7 +4032,7 @@ BattleScript_WeatherFormChanges::
BattleScript_WeatherFormChangesLoop:: BattleScript_WeatherFormChangesLoop::
trycastformdatachange trycastformdatachange
addbyte sBANK, 0x1 addbyte sBANK, 0x1
jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_WeatherFormChangesLoop
return return
BattleScript_CastformChange:: BattleScript_CastformChange::
@ -4053,7 +4053,7 @@ BattleScript_82DB4B8::
BattleScript_82DB4BE:: BattleScript_82DB4BE::
pause 0x20 pause 0x20
BattleScript_82DB4C1:: BattleScript_82DB4C1::
setbyte gBankTarget, 0x0 setbyte gBankDefender, 0x0
setstatchanger ATK, 1, TRUE setstatchanger ATK, 1, TRUE
BattleScript_82DB4CD:: BattleScript_82DB4CD::
trygetintimidatetarget BattleScript_82DB51B trygetintimidatetarget BattleScript_82DB51B
@ -4068,7 +4068,7 @@ BattleScript_82DB4CD::
printstring STRINGID_PKMNCUTSATTACKWITH printstring STRINGID_PKMNCUTSATTACKWITH
waitmessage 0x40 waitmessage 0x40
BattleScript_82DB510:: BattleScript_82DB510::
addbyte gBankTarget, 0x1 addbyte gBankDefender, 0x1
goto BattleScript_82DB4CD goto BattleScript_82DB4CD
BattleScript_82DB51B:: BattleScript_82DB51B::
return return
@ -4117,7 +4117,7 @@ BattleScript_MoveHPDrain::
datahpupdate TARGET datahpupdate TARGET
printstring STRINGID_PKMNRESTOREDHPUSING printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage 0x40 waitmessage 0x40
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_MonMadeMoveUseless_PPLoss:: BattleScript_MonMadeMoveUseless_PPLoss::
@ -4127,7 +4127,7 @@ BattleScript_MonMadeMoveUseless::
pause 0x20 pause 0x20
printstring STRINGID_PKMNSXMADEYUSELESS printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage 0x40 waitmessage 0x40
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss:: BattleScript_FlashFireBoost_PPLoss::
@ -4474,7 +4474,7 @@ BattleScript_82DB887::
waitmessage 0x40 waitmessage 0x40
BattleScript_82DB89D:: BattleScript_82DB89D::
addbyte gBattleCommunication + 1, 0x1 addbyte gBattleCommunication + 1, 0x1
jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 jumpifbytenotequal gBattleCommunication + 1, gBattleBanksCount, BattleScript_82DB887
setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication, 0x0
setbyte gBattleCommunication + 1, 0x0 setbyte gBattleCommunication + 1, 0x0
end2 end2

View File

@ -39,15 +39,20 @@
#define B_POSITION_PLAYER_RIGHT 2 #define B_POSITION_PLAYER_RIGHT 2
#define B_POSITION_OPPONENT_RIGHT 3 #define B_POSITION_OPPONENT_RIGHT 3
#define B_POSITION_PARTNER(position) ((position) ^ 2)
#define B_POSITION_OPPOSITE(position) ((position) ^ 1)
#define SIDE_PLAYER 0x0 #define SIDE_PLAYER 0x0
#define SIDE_OPPONENT 0x1 #define SIDE_OPPONENT 0x1
#define BIT_SIDE 0x1 #define BIT_SIDE 0x1
#define BIT_MON 0x2 #define BIT_MON 0x2
#define GET_BANK_POSITION(bank)((gBankPositions[bank])) #define GET_BANK_POSITION(bank) (gBankPositions[bank])
#define GET_BANK_SIDE(bank)((GetBankPosition(bank) & BIT_SIDE)) #define GET_BANK_SIDE(bank) (GetBankPosition(bank) & BIT_SIDE)
#define GET_BANK_SIDE2(bank)((GET_BANK_POSITION(bank) & BIT_SIDE)) #define GET_BANK_SIDE2(bank) (GET_BANK_POSITION(bank) & BIT_SIDE)
// Battle Type Flags
#define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_LINK 0x0002
@ -84,59 +89,66 @@
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
extern u32 gBattleTypeFlags;
#define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00 #define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_OPPONENT_800 0x800 #define TRAINER_OPPONENT_800 0x800
#define STEVEN_PARTNER_ID 0xC03 #define STEVEN_PARTNER_ID 0xC03
#define SECRET_BASE_OPPONENT 0x400 #define SECRET_BASE_OPPONENT 0x400
#define BATTLE_WON 0x1 #define B_OUTCOME_WON 0x1
#define BATTLE_LOST 0x2 #define B_OUTCOME_LOST 0x2
#define BATTLE_DREW 0x3 #define B_OUTCOME_DREW 0x3
#define BATTLE_RAN 0x4 #define B_OUTCOME_RAN 0x4
#define BATTLE_PLAYER_TELEPORTED 0x5 #define B_OUTCOME_PLAYER_TELEPORTED 0x5
#define BATTLE_POKE_FLED 0x6 #define B_OUTCOME_POKE_FLED 0x6
#define BATTLE_CAUGHT 0x7 #define B_OUTCOME_CAUGHT_POKE 0x7
#define BATTLE_SAFARI_OUT_OF_BALLS 0x8 #define B_OUTCOME_NO_SAFARI_BALLS 0x8
#define BATTLE_FORFEITED 0x9 #define B_OUTCOME_FORFEITED 0x9
#define BATTLE_OPPONENT_TELEPORTED 0xA #define B_OUTCOME_POKE_TELEPORTED 0xA
#define B_OUTCOME_LINK_BATTLE_RAN 0x80
#define OUTCOME_LINK_BATTLE_RUN 0x80 extern u8 gBattleOutcome;
#define STATUS_NONE 0x0 // Non-volatile status conditions
#define STATUS_SLEEP 0x7 // These persist remain outside of battle and after switching out
#define STATUS_POISON 0x8 #define STATUS1_NONE 0x0
#define STATUS_BURN 0x10 #define STATUS1_SLEEP 0x7
#define STATUS_FREEZE 0x20 #define STATUS1_POISON 0x8
#define STATUS_PARALYSIS 0x40 #define STATUS1_BURN 0x10
#define STATUS_TOXIC_POISON 0x80 #define STATUS1_FREEZE 0x20
#define STATUS_TOXIC_COUNTER 0xF00 #define STATUS1_PARALYSIS 0x40
#define STATUS1_TOXIC_POISON 0x80
#define STATUS1_TOXIC_COUNTER 0xF00
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) // Volatile status ailments
#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) // These are removed after exiting the battle or switching out
#define STATUS2_CONFUSION 0x00000007
#define STATUS2_CONFUSION 0x00000007 #define STATUS2_FLINCHED 0x00000008
#define STATUS2_FLINCHED 0x00000008 #define STATUS2_UPROAR 0x00000070
#define STATUS2_UPROAR 0x00000070 #define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 #define STATUS2_LOCK_CONFUSE 0x00000C00
#define STATUS2_LOCK_CONFUSE 0x00000C00 #define STATUS2_MULTIPLETURNS 0x00001000
#define STATUS2_MULTIPLETURNS 0x00001000 #define STATUS2_WRAPPED 0x0000E000
#define STATUS2_WRAPPED 0x0000E000 #define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank #define STATUS2_INFATUATED_WITH(bank) (gBitTable[bank] << 16)
#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16)) #define STATUS2_FOCUS_ENERGY 0x00100000
#define STATUS2_FOCUS_ENERGY 0x00100000 #define STATUS2_TRANSFORMED 0x00200000
#define STATUS2_TRANSFORMED 0x00200000 #define STATUS2_RECHARGE 0x00400000
#define STATUS2_RECHARGE 0x00400000 #define STATUS2_RAGE 0x00800000
#define STATUS2_RAGE 0x00800000 #define STATUS2_SUBSTITUTE 0x01000000
#define STATUS2_SUBSTITUTE 0x01000000 #define STATUS2_DESTINY_BOND 0x02000000
#define STATUS2_DESTINY_BOND 0x02000000 #define STATUS2_ESCAPE_PREVENTION 0x04000000
#define STATUS2_ESCAPE_PREVENTION 0x04000000 #define STATUS2_NIGHTMARE 0x08000000
#define STATUS2_NIGHTMARE 0x08000000 #define STATUS2_CURSED 0x10000000
#define STATUS2_CURSED 0x10000000 #define STATUS2_FORESIGHT 0x20000000
#define STATUS2_FORESIGHT 0x20000000 #define STATUS2_DEFENSE_CURL 0x40000000
#define STATUS2_DEFENSE_CURL 0x40000000 #define STATUS2_TORMENT 0x80000000
#define STATUS2_TORMENT 0x80000000
// Seems like per-bank statuses. Not quite sure how to categorize these
#define STATUS3_LEECHSEED_BANK 0x3 #define STATUS3_LEECHSEED_BANK 0x3
#define STATUS3_LEECHSEED 0x4 #define STATUS3_LEECHSEED 0x4
#define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_ALWAYS_HITS 0x18 // two bits
@ -155,8 +167,11 @@
#define STATUS3_UNDERWATER 0x40000 #define STATUS3_UNDERWATER 0x40000
#define STATUS3_INTIMIDATE_POKES 0x80000 #define STATUS3_INTIMIDATE_POKES 0x80000
#define STATUS3_TRACE 0x100000 #define STATUS3_TRACE 0x100000
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) extern u32 gStatuses3[BATTLE_BANKS_COUNT];
//
#define HITMARKER_x10 0x00000010 #define HITMARKER_x10 0x00000010
#define HITMARKER_x20 0x00000020 #define HITMARKER_x20 0x00000020
@ -182,8 +197,12 @@
#define HITMARKER_OBEYS 0x02000000 #define HITMARKER_OBEYS 0x02000000
#define HITMARKER_x4000000 0x04000000 #define HITMARKER_x4000000 0x04000000
#define HITMARKER_x8000000 0x08000000 #define HITMARKER_x8000000 0x08000000
#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) #define HITMARKER_FAINTED(bank) (gBitTable[bank] << 0x1C)
#define HITMARKER_UNK(bank) ((0x10000000 << bank)) #define HITMARKER_UNK(bank) (0x10000000 << bank)
extern u32 gHitMarker;
// Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0) #define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1) #define SIDE_STATUS_LIGHTSCREEN (1 << 1)
@ -194,6 +213,8 @@
#define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
extern u16 gSideStatuses[2];
#define ACTION_USE_MOVE 0 #define ACTION_USE_MOVE 0
#define ACTION_USE_ITEM 1 #define ACTION_USE_ITEM 1
#define ACTION_SWITCH 2 #define ACTION_SWITCH 2
@ -210,33 +231,36 @@
#define ACTION_NOTHING_FAINTED 13 // when choosing an action #define ACTION_NOTHING_FAINTED 13 // when choosing an action
#define ACTION_INIT_VALUE 0xFF #define ACTION_INIT_VALUE 0xFF
#define MOVESTATUS_MISSED (1 << 0) #define MOVE_RESULT_MISSED (1 << 0)
#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) #define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1)
#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) #define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2)
#define MOVESTATUS_NOTAFFECTED (1 << 3) #define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3)
#define MOVESTATUS_ONEHITKO (1 << 4) #define MOVE_RESULT_ONE_HIT_KO (1 << 4)
#define MOVESTATUS_FAILED (1 << 5) #define MOVE_RESULT_FAILED (1 << 5)
#define MOVESTATUS_ENDURED (1 << 6) #define MOVE_RESULT_FOE_ENDURED (1 << 6)
#define MOVESTATUS_HUNGON (1 << 7) #define MOVE_RESULT_FOE_HUNG_ON (1 << 7)
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
#define MAX_TRAINER_ITEMS 4 #define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4 #define MAX_MON_MOVES 4
// Battle Weather flags
#define WEATHER_RAIN_TEMPORARY (1 << 0) #define WEATHER_RAIN_TEMPORARY (1 << 0)
#define WEATHER_RAIN_DOWNPOUR (1 << 1) #define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
#define WEATHER_RAIN_PERMANENT (1 << 2) #define WEATHER_RAIN_PERMANENT (1 << 2)
#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) #define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) #define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
#define WEATHER_SANDSTORM_PERMANENT (1 << 4) #define WEATHER_SANDSTORM_PERMANENT (1 << 4)
#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) #define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
#define WEATHER_SUN_TEMPORARY (1 << 5) #define WEATHER_SUN_TEMPORARY (1 << 5)
#define WEATHER_SUN_PERMANENT (1 << 6) #define WEATHER_SUN_PERMANENT (1 << 6)
#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) #define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
#define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL (1 << 7)
#define WEATHER_HAIL_ANY ((WEATHER_HAIL)) #define WEATHER_HAIL_ANY (WEATHER_HAIL)
#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) #define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
extern u16 gBattleWeather;
#define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_GRASS 0
#define BATTLE_TERRAIN_LONG_GRASS 1 #define BATTLE_TERRAIN_LONG_GRASS 1
@ -249,6 +273,8 @@
#define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9 #define BATTLE_TERRAIN_PLAIN 9
extern u8 gBattleTerrain;
// array entries for battle communication // array entries for battle communication
#define MULTIUSE_STATE 0x0 #define MULTIUSE_STATE 0x0
#define CURSOR_POSITION 0x1 #define CURSOR_POSITION 0x1
@ -847,7 +873,7 @@ enum
// rom_80A5C6C // rom_80A5C6C
u8 GetBankSide(u8 bank); u8 GetBankSide(u8 bank);
u8 GetBankPosition(u8 bank); u8 GetBankPosition(u8 bank);
u8 GetBankByIdentity(u8 bank); u8 GetBankByPosition(u8 bank);
struct BattleSpriteInfo struct BattleSpriteInfo
{ {

View File

@ -111,14 +111,14 @@ extern u16 gBattleWeather;
extern u16 gPauseCounterBattle; extern u16 gPauseCounterBattle;
extern u16 gRandomTurnNumber; extern u16 gRandomTurnNumber;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gLeveledUpInBattle; extern u8 gLeveledUpInBattle;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u32 gBattleExecBuffer; extern u32 gBattleExecBuffer;
extern u8 gMultiHitCounter; extern u8 gMultiHitCounter;
extern u8 gBattleMoveFlags; extern u8 gMoveResultFlags;
extern s32 gBattleMoveDamage; extern s32 gBattleMoveDamage;
extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT];
extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT];
@ -130,7 +130,7 @@ extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT];
extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern u16 gSideAffecting[2]; extern u16 gSideStatuses[2];
extern u16 gCurrentMove; extern u16 gCurrentMove;
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
@ -291,16 +291,16 @@ static void (* const sTurnActionsFuncsTable[])(void) =
static void (* const sEndTurnFuncsTable[])(void) = static void (* const sEndTurnFuncsTable[])(void) =
{ {
HandleEndTurn_ContinueBattle, // battle outcome 0 HandleEndTurn_ContinueBattle, // battle outcome 0
HandleEndTurn_BattleWon, // BATTLE_WON HandleEndTurn_BattleWon, // B_OUTCOME_WON
HandleEndTurn_BattleLost, // BATTLE_LOST HandleEndTurn_BattleLost, // B_OUTCOME_LOST
HandleEndTurn_BattleLost, // BATTLE_DREW HandleEndTurn_BattleLost, // B_OUTCOME_DREW
HandleEndTurn_RanFromBattle, // BATTLE_RAN HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN
HandleEndTurn_FinishBattle, // BATTLE_PLAYER_TELEPORTED HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED
HandleEndTurn_MonFled, // BATTLE_POKE_FLED HandleEndTurn_MonFled, // B_OUTCOME_POKE_FLED
HandleEndTurn_FinishBattle, // BATTLE_CAUGHT HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT_POKE
HandleEndTurn_FinishBattle, // battle outcome 8 HandleEndTurn_FinishBattle, // battle outcome 8
HandleEndTurn_FinishBattle, // BATTLE_FORFEITED HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED
HandleEndTurn_FinishBattle, // BATTLE_OPPONENT_TELEPORTED HandleEndTurn_FinishBattle, // B_OUTCOME_POKE_TELEPORTED
}; };
const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
@ -1586,7 +1586,7 @@ void BattleMainCB2(void)
if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450()) if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450())
{ {
gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED;
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle); SetMainCallback2(CB2_QuitRecordedBattle);
@ -2720,7 +2720,7 @@ static void BattleMainCB1(void)
{ {
gBattleMainFunc(); gBattleMainFunc();
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
gBattleBankFunc[gActiveBank](); gBattleBankFunc[gActiveBank]();
} }
@ -2756,7 +2756,7 @@ static void BattleStartClearSetData(void)
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
{ {
gSideAffecting[i] = 0; gSideStatuses[i] = 0;
dataPtr = (u8 *)&gSideTimers[i]; dataPtr = (u8 *)&gSideTimers[i];
for (j = 0; j < sizeof(struct SideTimer); j++) for (j = 0; j < sizeof(struct SideTimer); j++)
@ -2764,7 +2764,7 @@ static void BattleStartClearSetData(void)
} }
gBankAttacker = 0; gBankAttacker = 0;
gBankTarget = 0; gBankDefender = 0;
gBattleWeather = 0; gBattleWeather = 0;
dataPtr = (u8 *)&gWishFutureKnock; dataPtr = (u8 *)&gWishFutureKnock;
@ -2850,7 +2850,7 @@ void SwitchInClearSetData(void)
{ {
for (i = 0; i < BATTLE_STATS_NO; i++) for (i = 0; i < BATTLE_STATS_NO; i++)
gBattleMons[gActiveBank].statStages[i] = 6; gBattleMons[gActiveBank].statStages[i] = 6;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
@ -2866,7 +2866,7 @@ void SwitchInClearSetData(void)
gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (GetBankSide(gActiveBank) != GetBankSide(i) if (GetBankSide(gActiveBank) != GetBankSide(i)
&& (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
@ -2883,7 +2883,7 @@ void SwitchInClearSetData(void)
gStatuses3[gActiveBank] = 0; gStatuses3[gActiveBank] = 0;
} }
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank))
gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank));
@ -2907,7 +2907,7 @@ void SwitchInClearSetData(void)
gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape; gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape;
} }
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].isFirstTurn = 2;
gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit;
gLastMoves[gActiveBank] = 0; gLastMoves[gActiveBank] = 0;
@ -2930,7 +2930,7 @@ void SwitchInClearSetData(void)
gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]);
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank))
{ {
@ -2963,7 +2963,7 @@ void FaintClearSetData(void)
gBattleMons[gActiveBank].status2 = 0; gBattleMons[gActiveBank].status2 = 0;
gStatuses3[gActiveBank] = 0; gStatuses3[gActiveBank] = 0;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
@ -3025,7 +3025,7 @@ void FaintClearSetData(void)
gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]);
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank))
{ {
@ -3059,7 +3059,7 @@ static void BattleIntroGetMonsData(void)
if (gBattleExecBuffer == 0) if (gBattleExecBuffer == 0)
{ {
gBattleCommunication[1]++; gBattleCommunication[1]++;
if (gBattleCommunication[1] == gNoOfAllBanks) if (gBattleCommunication[1] == gBattleBanksCount)
gBattleMainFunc = BattleIntroPrepareBackgroundSlide; gBattleMainFunc = BattleIntroPrepareBackgroundSlide;
else else
gBattleCommunication[MULTIUSE_STATE] = 0; gBattleCommunication[MULTIUSE_STATE] = 0;
@ -3072,7 +3072,7 @@ static void BattleIntroPrepareBackgroundSlide(void)
{ {
if (gBattleExecBuffer == 0) if (gBattleExecBuffer == 0)
{ {
gActiveBank = GetBankByIdentity(0); gActiveBank = GetBankByPosition(0);
EmitIntroSlide(0, gBattleTerrain); EmitIntroSlide(0, gBattleTerrain);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites;
@ -3089,7 +3089,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
if (gBattleExecBuffer) if (gBattleExecBuffer)
return; return;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
&& GetBankSide(gActiveBank) == SIDE_PLAYER) && GetBankSide(gActiveBank) == SIDE_PLAYER)
@ -3203,7 +3203,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
} }
} }
gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80); EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
@ -3221,7 +3221,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
} }
} }
gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80); EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
@ -3257,7 +3257,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void)
{ {
if (gBattleExecBuffer == 0) if (gBattleExecBuffer == 0)
{ {
gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); PrepareStringBattle(STRINGID_INTROMSG, gActiveBank);
gBattleMainFunc = BattleIntroPrintOpponentSendsOut; gBattleMainFunc = BattleIntroPrintOpponentSendsOut;
} }
@ -3291,7 +3291,7 @@ static void BattleIntroPrintOpponentSendsOut(void)
else else
identity = B_POSITION_OPPONENT_LEFT; identity = B_POSITION_OPPONENT_LEFT;
PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity));
gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation;
} }
@ -3311,7 +3311,7 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void)
else else
identity = B_POSITION_OPPONENT_RIGHT; identity = B_POSITION_OPPONENT_RIGHT;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankPosition(gActiveBank) == identity) if (GetBankPosition(gActiveBank) == identity)
{ {
@ -3343,7 +3343,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
if (gBattleExecBuffer) if (gBattleExecBuffer)
return; return;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankPosition(gActiveBank) == identity) if (GetBankPosition(gActiveBank) == identity)
{ {
@ -3400,7 +3400,7 @@ _0803B29A:\n\
bne _0803B2F2\n\ bne _0803B2F2\n\
ldr r0, =gActiveBank\n\ ldr r0, =gActiveBank\n\
strb r2, [r0]\n\ strb r2, [r0]\n\
ldr r1, =gNoOfAllBanks\n\ ldr r1, =gBattleBanksCount\n\
adds r4, r0, 0\n\ adds r4, r0, 0\n\
ldrb r1, [r1]\n\ ldrb r1, [r1]\n\
cmp r2, r1\n\ cmp r2, r1\n\
@ -3427,7 +3427,7 @@ _0803B2D8:\n\
ldrb r0, [r6]\n\ ldrb r0, [r6]\n\
adds r0, 0x1\n\ adds r0, 0x1\n\
strb r0, [r6]\n\ strb r0, [r6]\n\
ldr r1, =gNoOfAllBanks\n\ ldr r1, =gBattleBanksCount\n\
lsls r0, 24\n\ lsls r0, 24\n\
lsrs r0, 24\n\ lsrs r0, 24\n\
ldr r4, =gActiveBank\n\ ldr r4, =gActiveBank\n\
@ -3453,7 +3453,7 @@ static void BattleIntroRecordMonsToDex(void)
{ {
if (gBattleExecBuffer == 0) if (gBattleExecBuffer == 0)
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankSide(gActiveBank) == SIDE_OPPONENT if (GetBankSide(gActiveBank) == SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
@ -3494,7 +3494,7 @@ static void BattleIntroPrintPlayerSendsOut(void)
identity = B_POSITION_PLAYER_LEFT; identity = B_POSITION_PLAYER_LEFT;
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity));
gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation;
} }
@ -3516,7 +3516,7 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void)
else else
identity = B_POSITION_PLAYER_RIGHT; identity = B_POSITION_PLAYER_RIGHT;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankPosition(gActiveBank) == identity) if (GetBankPosition(gActiveBank) == identity)
{ {
@ -3551,7 +3551,7 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void)
if (gBattleExecBuffer) if (gBattleExecBuffer)
return; return;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankPosition(gActiveBank) == identity) if (GetBankPosition(gActiveBank) == identity)
{ {
@ -3576,7 +3576,7 @@ void sub_803B598(void) // unused
{ {
if (gBattleExecBuffer == 0) if (gBattleExecBuffer == 0)
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankSide(gActiveBank) == SIDE_PLAYER) if (GetBankSide(gActiveBank) == SIDE_PLAYER)
{ {
@ -3604,11 +3604,11 @@ static void TryDoEventsBeforeFirstTurn(void)
if (gBattleStruct->switchInAbilitiesCounter == 0) if (gBattleStruct->switchInAbilitiesCounter == 0)
{ {
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
gBanksByTurnOrder[i] = i; gBanksByTurnOrder[i] = i;
for (i = 0; i < gNoOfAllBanks - 1; i++) for (i = 0; i < gBattleBanksCount - 1; i++)
{ {
for (j = i + 1; j < gNoOfAllBanks; j++) for (j = i + 1; j < gBattleBanksCount; j++)
{ {
if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0) if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0)
SwapTurnOrder(i, j); SwapTurnOrder(i, j);
@ -3622,7 +3622,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return; return;
} }
// check all switch in abilities happening from the fastest mon to slowest // check all switch in abilities happening from the fastest mon to slowest
while (gBattleStruct->switchInAbilitiesCounter < gNoOfAllBanks) while (gBattleStruct->switchInAbilitiesCounter < gBattleBanksCount)
{ {
if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0)
effect++; effect++;
@ -3637,7 +3637,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0)
return; return;
// check all switch in items having effect from the fastest mon to slowest // check all switch in items having effect from the fastest mon to slowest
while (gBattleStruct->switchInItemsCounter < gNoOfAllBanks) while (gBattleStruct->switchInItemsCounter < gBattleBanksCount)
{ {
if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0)
effect++; effect++;
@ -3663,7 +3663,7 @@ static void TryDoEventsBeforeFirstTurn(void)
for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++)
gBattleCommunication[i] = 0; gBattleCommunication[i] = 0;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
*(&gBattleStruct->turnEffectsTracker) = 0; *(&gBattleStruct->turnEffectsTracker) = 0;
@ -3673,7 +3673,7 @@ static void TryDoEventsBeforeFirstTurn(void)
gBattleScripting.atk49_state = 0; gBattleScripting.atk49_state = 0;
gBattleStruct->faintedActionsState = 0; gBattleStruct->faintedActionsState = 0;
gBattleStruct->turncountersTracker = 0; gBattleStruct->turncountersTracker = 0;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gRandomTurnNumber = Random(); gRandomTurnNumber = Random();
@ -3693,10 +3693,10 @@ static void HandleEndTurn_ContinueBattle(void)
gBattleMainFunc = BattleTurnPassed; gBattleMainFunc = BattleTurnPassed;
for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++)
gBattleCommunication[i] = 0; gBattleCommunication[i] = 0;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
if ((gBattleMons[i].status1 & STATUS_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS))
CancelMultiTurnMoves(i); CancelMultiTurnMoves(i);
} }
gBattleStruct->turnEffectsTracker = 0; gBattleStruct->turnEffectsTracker = 0;
@ -3704,7 +3704,7 @@ static void HandleEndTurn_ContinueBattle(void)
gBattleStruct->wishPerishSongState = 0; gBattleStruct->wishPerishSongState = 0;
gBattleStruct->wishPerishSongBank = 0; gBattleStruct->wishPerishSongBank = 0;
gBattleStruct->turncountersTracker = 0; gBattleStruct->turncountersTracker = 0;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
} }
} }
@ -3735,7 +3735,7 @@ void BattleTurnPassed(void)
gBattleScripting.animTargetsHit = 0; gBattleScripting.animTargetsHit = 0;
gBattleScripting.atk49_state = 0; gBattleScripting.atk49_state = 0;
gBattleMoveDamage = 0; gBattleMoveDamage = 0;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
for (i = 0; i < 5; i++) for (i = 0; i < 5; i++)
gBattleCommunication[i] = 0; gBattleCommunication[i] = 0;
@ -3753,7 +3753,7 @@ void BattleTurnPassed(void)
gBattleStruct->field_DA++; gBattleStruct->field_DA++;
} }
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
gActionForBanks[i] = ACTION_INIT_VALUE; gActionForBanks[i] = ACTION_INIT_VALUE;
gChosenMovesByBanks[i] = MOVE_NONE; gChosenMovesByBanks[i] = MOVE_NONE;
@ -3795,7 +3795,7 @@ u8 IsRunningFromBattleImpossible(void)
side = GetBankSide(gActiveBank); side = GetBankSide(gActiveBank);
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (side != GetBankSide(i) if (side != GetBankSide(i)
&& gBattleMons[i].ability == ABILITY_SHADOW_TAG) && gBattleMons[i].ability == ABILITY_SHADOW_TAG)
@ -3889,7 +3889,7 @@ static void HandleTurnActionSelectionState(void)
s32 i; s32 i;
gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
u8 identity = GetBankPosition(gActiveBank); u8 identity = GetBankPosition(gActiveBank);
switch (gBattleCommunication[gActiveBank]) switch (gBattleCommunication[gActiveBank])
@ -3902,8 +3902,8 @@ static void HandleTurnActionSelectionState(void)
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
if (gBattleTypeFlags & BATTLE_TYPE_MULTI if (gBattleTypeFlags & BATTLE_TYPE_MULTI
|| !(identity & BIT_MON) || !(identity & BIT_MON)
|| gBattleStruct->field_91 & gBitTable[GetBankByIdentity(identity ^ BIT_MON)] || gBattleStruct->field_91 & gBitTable[GetBankByPosition(identity ^ BIT_MON)]
|| gBattleCommunication[GetBankByIdentity(identity ^ BIT_MON)] == 5) || gBattleCommunication[GetBankByPosition(identity ^ BIT_MON)] == 5)
{ {
if (gBattleStruct->field_91 & gBitTable[gActiveBank]) if (gBattleStruct->field_91 & gBitTable[gActiveBank])
{ {
@ -4041,38 +4041,38 @@ static void HandleTurnActionSelectionState(void)
break; break;
case ACTION_CANCEL_PARTNER: case ACTION_CANCEL_PARTNER:
gBattleCommunication[gActiveBank] = 7; gBattleCommunication[gActiveBank] = 7;
gBattleCommunication[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; gBattleCommunication[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1;
RecordedBattle_ClearBankAction(gActiveBank, 1); RecordedBattle_ClearBankAction(gActiveBank, 1);
if (gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS if (gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS
|| gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) || gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE)
{ {
EmitCmd50(0); EmitCmd50(0);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
return; return;
} }
else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH)
{ {
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 2); RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 2);
} }
else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN)
{ {
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1);
} }
else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE
&& (gProtectStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle && (gProtectStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle
|| gDisableStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) || gDisableStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove))
{ {
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1);
} }
else if (gBattleTypeFlags & BATTLE_TYPE_PALACE else if (gBattleTypeFlags & BATTLE_TYPE_PALACE
&& gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) && gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE)
{ {
gRngValue = gBattlePalaceMoveSelectionRngValue; gRngValue = gBattlePalaceMoveSelectionRngValue;
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1);
} }
else else
{ {
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 3); RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 3);
} }
EmitCmd50(0); EmitCmd50(0);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
@ -4226,7 +4226,7 @@ static void HandleTurnActionSelectionState(void)
if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
|| (identity & BIT_MON) || (identity & BIT_MON)
|| (*(&gBattleStruct->field_91) & gBitTable[GetBankByIdentity(identity ^ BIT_MON)])) || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(identity ^ BIT_MON)]))
{ {
EmitLinkStandbyMsg(0, 0, i); EmitLinkStandbyMsg(0, 0, i);
} }
@ -4296,14 +4296,14 @@ static void HandleTurnActionSelectionState(void)
} }
// check if everyone chose actions // check if everyone chose actions
if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gNoOfAllBanks) if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattleBanksCount)
{ {
sub_818603C(1); sub_818603C(1);
gBattleMainFunc = SetActionsAndBanksTurnOrder; gBattleMainFunc = SetActionsAndBanksTurnOrder;
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{ {
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (gActionForBanks[i] == ACTION_SWITCH) if (gActionForBanks[i] == ACTION_SWITCH)
sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i));
@ -4316,13 +4316,13 @@ static bool8 sub_803CDB8(void)
{ {
s32 i, var; s32 i, var;
for (var = 0, i = 0; i < gNoOfAllBanks; i++) for (var = 0, i = 0; i < gBattleBanksCount; i++)
{ {
if (gBattleCommunication[i] == 5) if (gBattleCommunication[i] == 5)
var++; var++;
} }
if (var + 1 == gNoOfAllBanks) if (var + 1 == gBattleBanksCount)
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@ -4411,7 +4411,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
if (holdEffect == HOLD_EFFECT_MACHO_BRACE) if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
speedBank1 /= 2; speedBank1 /= 2;
if (gBattleMons[bank1].status1 & STATUS_PARALYSIS) if (gBattleMons[bank1].status1 & STATUS1_PARALYSIS)
speedBank1 /= 4; speedBank1 /= 4;
if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
@ -4445,7 +4445,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
if (holdEffect == HOLD_EFFECT_MACHO_BRACE) if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
speedBank2 /= 2; speedBank2 /= 2;
if (gBattleMons[bank2].status1 & STATUS_PARALYSIS) if (gBattleMons[bank2].status1 & STATUS1_PARALYSIS)
speedBank2 /= 4; speedBank2 /= 4;
if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
@ -4518,7 +4518,7 @@ static void SetActionsAndBanksTurnOrder(void)
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
gBanksByTurnOrder[var] = gActiveBank; gBanksByTurnOrder[var] = gActiveBank;
@ -4529,7 +4529,7 @@ static void SetActionsAndBanksTurnOrder(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (gActionForBanks[gActiveBank] == ACTION_RUN) if (gActionForBanks[gActiveBank] == ACTION_RUN)
{ {
@ -4557,7 +4557,7 @@ static void SetActionsAndBanksTurnOrder(void)
gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; gActionsByTurnOrder[0] = gActionForBanks[gActiveBank];
gBanksByTurnOrder[0] = gActiveBank; gBanksByTurnOrder[0] = gActiveBank;
var = 1; var = 1;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (i != gActiveBank) if (i != gActiveBank)
{ {
@ -4572,7 +4572,7 @@ static void SetActionsAndBanksTurnOrder(void)
} }
else else
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH)
{ {
@ -4581,7 +4581,7 @@ static void SetActionsAndBanksTurnOrder(void)
var++; var++;
} }
} }
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH)
{ {
@ -4590,9 +4590,9 @@ static void SetActionsAndBanksTurnOrder(void)
var++; var++;
} }
} }
for (i = 0; i < gNoOfAllBanks - 1; i++) for (i = 0; i < gBattleBanksCount - 1; i++)
{ {
for (j = i + 1; j < gNoOfAllBanks; j++) for (j = i + 1; j < gBattleBanksCount; j++)
{ {
u8 bank1 = gBanksByTurnOrder[i]; u8 bank1 = gBanksByTurnOrder[i];
u8 bank2 = gBanksByTurnOrder[j]; u8 bank2 = gBanksByTurnOrder[j];
@ -4617,7 +4617,7 @@ static void TurnValuesCleanUp(bool8 var0)
s32 i; s32 i;
u8 *dataPtr; u8 *dataPtr;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (var0) if (var0)
{ {
@ -4651,7 +4651,7 @@ static void TurnValuesCleanUp(bool8 var0)
static void SpecialStatusesClear(void) static void SpecialStatusesClear(void)
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
s32 i; s32 i;
u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]);
@ -4665,12 +4665,12 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
{ {
if (!(gHitMarker & HITMARKER_RUN)) if (!(gHitMarker & HITMARKER_RUN))
{ {
while (gBattleStruct->focusPunchBank < gNoOfAllBanks) while (gBattleStruct->focusPunchBank < gBattleBanksCount)
{ {
gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank; gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank;
gBattleStruct->focusPunchBank++; gBattleStruct->focusPunchBank++;
if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH
&& !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP) && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)
&& !(gDisableStructs[gBankAttacker].truantCounter) && !(gDisableStructs[gBankAttacker].truantCounter)
&& !(gProtectStructs[gActiveBank].onlyStruggle)) && !(gProtectStructs[gActiveBank].onlyStruggle))
{ {
@ -4704,7 +4704,7 @@ static void RunTurnActionsFunctions(void)
*(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber;
sTurnActionsFuncsTable[gCurrentActionFuncId](); sTurnActionsFuncsTable[gCurrentActionFuncId]();
if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished if (gCurrentTurnActionNumber >= gBattleBanksCount) // everyone did their actions, turn finished
{ {
gHitMarker &= ~(HITMARKER_x100000); gHitMarker &= ~(HITMARKER_x100000);
gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
@ -4727,9 +4727,9 @@ static void HandleEndTurn_BattleWon(void)
{ {
gSpecialVar_Result = gBattleOutcome; gSpecialVar_Result = gBattleOutcome;
gBattleTextBuff1[0] = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome;
gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT);
gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
} }
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
&& gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER))
@ -4785,24 +4785,24 @@ static void HandleEndTurn_BattleLost(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{ {
if (gBattleOutcome & OUTCOME_LINK_BATTLE_RUN) if (gBattleOutcome & B_OUTCOME_LINK_BATTLE_RAN)
{ {
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle; gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle;
gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
gSaveBlock2Ptr->field_CA9_b = 1; gSaveBlock2Ptr->field_CA9_b = 1;
} }
else else
{ {
gBattlescriptCurrInstr = BattleScript_82DAA0B; gBattlescriptCurrInstr = BattleScript_82DAA0B;
gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
} }
} }
else else
{ {
gBattleTextBuff1[0] = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome;
gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT);
gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
} }
} }
else else
@ -4820,13 +4820,13 @@ static void HandleEndTurn_RanFromBattle(void)
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{ {
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited;
gBattleOutcome = BATTLE_FORFEITED; gBattleOutcome = B_OUTCOME_FORFEITED;
gSaveBlock2Ptr->field_CA9_b = 1; gSaveBlock2Ptr->field_CA9_b = 1;
} }
else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) else if (gBattleTypeFlags & BATTLE_TYPE_x4000000)
{ {
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited;
gBattleOutcome = BATTLE_FORFEITED; gBattleOutcome = B_OUTCOME_FORFEITED;
} }
else else
{ {
@ -4869,7 +4869,7 @@ static void HandleEndTurn_FinishBattle(void)
| BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_WALLY_TUTORIAL
| BATTLE_TYPE_FRONTIER))) | BATTLE_TYPE_FRONTIER)))
{ {
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankSide(gActiveBank) == SIDE_PLAYER) if (GetBankSide(gActiveBank) == SIDE_PLAYER)
{ {
@ -4919,7 +4919,7 @@ static void FreeResetData_ReturnToOvOrDoEvolutions(void)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
ResetSpriteData(); ResetSpriteData();
if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON) if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON)
{ {
gBattleMainFunc = ReturnFromBattleToOverworld; gBattleMainFunc = ReturnFromBattleToOverworld;
return; return;
@ -4994,7 +4994,7 @@ static void ReturnFromBattleToOverworld(void)
if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
{ {
UpdateRoamerHPStatus(&gEnemyParty[0]); UpdateRoamerHPStatus(&gEnemyParty[0]);
if ((gBattleOutcome & BATTLE_WON) || gBattleOutcome == BATTLE_CAUGHT) if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
SetRoamerInactive(); SetRoamerInactive();
} }
@ -5039,7 +5039,7 @@ static void HandleAction_UseMove(void)
gCritMultiplier = 1; gCritMultiplier = 1;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleStruct->atkCancellerTracker = 0; gBattleStruct->atkCancellerTracker = 0;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gMultiHitCounter = 0; gMultiHitCounter = 0;
gBattleCommunication[6] = 0; gBattleCommunication[6] = 0;
gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker); gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker);
@ -5100,7 +5100,7 @@ static void HandleAction_UseMove(void)
&& GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget)
&& gBattleMons[gSideTimers[side].followmeTarget].hp != 0) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
{ {
gBankTarget = gSideTimers[side].followmeTarget; gBankDefender = gSideTimers[side].followmeTarget;
} }
else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& gSideTimers[side].followmeTimer == 0 && gSideTimers[side].followmeTimer == 0
@ -5110,7 +5110,7 @@ static void HandleAction_UseMove(void)
&& gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
{ {
side = GetBankSide(gBankAttacker); side = GetBankSide(gBankAttacker);
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (side != GetBankSide(gActiveBank) if (side != GetBankSide(gActiveBank)
&& *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank
@ -5127,34 +5127,34 @@ static void HandleAction_UseMove(void)
if (GetBankSide(gBankAttacker) == SIDE_PLAYER) if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
{ {
if (Random() & 1) if (Random() & 1)
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
else else
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
} }
else else
{ {
if (Random() & 1) if (Random() & 1)
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT);
else else
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
} }
} }
else else
{ {
gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker); gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker);
} }
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
{ {
if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender))
{ {
gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON);
} }
else else
{ {
gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON);
} }
} }
} }
@ -5163,7 +5163,7 @@ static void HandleAction_UseMove(void)
gActiveBank = gBanksByTurnOrder[var]; gActiveBank = gBanksByTurnOrder[var];
RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability);
gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; gSpecialStatuses[gActiveBank].lightningRodRedirected = 1;
gBankTarget = gActiveBank; gBankDefender = gActiveBank;
} }
} }
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
@ -5172,38 +5172,38 @@ static void HandleAction_UseMove(void)
if (GetBankSide(gBankAttacker) == SIDE_PLAYER) if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
{ {
if (Random() & 1) if (Random() & 1)
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
else else
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
} }
else else
{ {
if (Random() & 1) if (Random() & 1)
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT);
else else
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
} }
if (gAbsentBankFlags & gBitTable[gBankTarget] if (gAbsentBankFlags & gBitTable[gBankDefender]
&& GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender))
{ {
gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON);
} }
} }
else else
{ {
gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker); gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
{ {
if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender))
{ {
gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON);
} }
else else
{ {
gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON);
} }
} }
} }
@ -5260,7 +5260,7 @@ static void HandleAction_Switch(void)
static void HandleAction_UseItem(void) static void HandleAction_UseItem(void)
{ {
gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBankAttacker = gBankDefender = gBanksByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0; gBattle_BG0_X = 0;
gBattle_BG0_Y = 0; gBattle_BG0_Y = 0;
ClearFuryCutterDestinyBondGrudge(gBankAttacker); ClearFuryCutterDestinyBondGrudge(gBankAttacker);
@ -5410,8 +5410,8 @@ bool8 TryRunFromBattle(u8 bank)
if (effect) if (effect)
{ {
gCurrentTurnActionNumber = gNoOfAllBanks; gCurrentTurnActionNumber = gBattleBanksCount;
gBattleOutcome = BATTLE_RAN; gBattleOutcome = B_OUTCOME_RAN;
} }
return effect; return effect;
@ -5423,23 +5423,23 @@ static void HandleAction_Run(void)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
{ {
gCurrentTurnActionNumber = gNoOfAllBanks; gCurrentTurnActionNumber = gBattleBanksCount;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++)
{ {
if (GetBankSide(gActiveBank) == SIDE_PLAYER) if (GetBankSide(gActiveBank) == SIDE_PLAYER)
{ {
if (gActionForBanks[gActiveBank] == ACTION_RUN) if (gActionForBanks[gActiveBank] == ACTION_RUN)
gBattleOutcome |= BATTLE_LOST; gBattleOutcome |= B_OUTCOME_LOST;
} }
else else
{ {
if (gActionForBanks[gActiveBank] == ACTION_RUN) if (gActionForBanks[gActiveBank] == ACTION_RUN)
gBattleOutcome |= BATTLE_WON; gBattleOutcome |= B_OUTCOME_WON;
} }
} }
gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN; gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN;
gSaveBlock2Ptr->field_CA9_b = 1; gSaveBlock2Ptr->field_CA9_b = 1;
} }
else else
@ -5464,8 +5464,8 @@ static void HandleAction_Run(void)
} }
else else
{ {
gCurrentTurnActionNumber = gNoOfAllBanks; gCurrentTurnActionNumber = gBattleBanksCount;
gBattleOutcome = BATTLE_POKE_FLED; gBattleOutcome = B_OUTCOME_POKE_FLED;
} }
} }
} }
@ -5546,8 +5546,8 @@ static void HandleAction_SafriZoneRun(void)
{ {
gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
PlaySE(SE_NIGERU); PlaySE(SE_NIGERU);
gCurrentTurnActionNumber = gNoOfAllBanks; gCurrentTurnActionNumber = gBattleBanksCount;
gBattleOutcome = BATTLE_RAN; gBattleOutcome = B_OUTCOME_RAN;
} }
static void HandleAction_Action9(void) static void HandleAction_Action9(void)
@ -5597,7 +5597,7 @@ static void HandleAction_ActionFinished(void)
gCurrentMove = 0; gCurrentMove = 0;
gBattleMoveDamage = 0; gBattleMoveDamage = 0;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gBattleScripting.animTurn = 0; gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0; gBattleScripting.animTargetsHit = 0;
gLastLandedMoves[gBankAttacker] = 0; gLastLandedMoves[gBankAttacker] = 0;

View File

@ -48,16 +48,16 @@ extern u32 gBattleTypeFlags;
extern u8 gActiveBank; extern u8 gActiveBank;
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gCurrentMove; extern u16 gCurrentMove;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gLastMoves[BATTLE_BANKS_COUNT];
extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B; extern u16 gTrainerBattleOpponent_B;
extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern u16 gSideAffecting[2]; extern u16 gSideStatuses[2];
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u16 gDynamicBasePower; extern u16 gDynamicBasePower;
extern u8 gBattleMoveFlags; extern u8 gMoveResultFlags;
extern s32 gBattleMoveDamage; extern s32 gBattleMoveDamage;
extern u8 gCritMultiplier; extern u8 gCritMultiplier;
extern u16 gBattleWeather; extern u16 gBattleWeather;
@ -367,14 +367,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
// decide a random target bank in doubles // decide a random target bank in doubles
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
gBankTarget = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE); gBankDefender = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
gBankTarget ^= BIT_MON; gBankDefender ^= BIT_MON;
} }
// in singles there's only one choice // in singles there's only one choice
else else
{ {
gBankTarget = sBank_AI ^ BIT_SIDE; gBankDefender = sBank_AI ^ BIT_SIDE;
} }
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
@ -491,7 +491,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
else else
BattleAI_SetupAIData(0xF); BattleAI_SetupAIData(0xF);
gBankTarget = i; gBankDefender = i;
if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE))
RecordLastUsedMoveByTarget(); RecordLastUsedMoveByTarget();
@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
} }
} }
gBankTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; gBankDefender = mostViableTargetsArray[Random() % mostViableTargetsNo];
return actionOrMoveIndex[gBankTarget]; return actionOrMoveIndex[gBankDefender];
} }
static void BattleAI_DoAIProcessing(void) static void BattleAI_DoAIProcessing(void)
@ -627,12 +627,12 @@ static void RecordLastUsedMoveByTarget(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget]) if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == gLastMoves[gBankDefender])
break; break;
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] != gLastMoves[gBankDefender] // HACK: This redundant condition is a hack to make the asm match.
&& gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) && gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == 0)
{ {
gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget]; gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] = gLastMoves[gBankDefender];
break; break;
} }
} }
@ -723,7 +723,7 @@ static void BattleAICmd_if_hp_less_than(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@ -738,7 +738,7 @@ static void BattleAICmd_if_hp_more_than(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@ -753,7 +753,7 @@ static void BattleAICmd_if_hp_equal(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@ -768,7 +768,7 @@ static void BattleAICmd_if_hp_not_equal(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@ -784,7 +784,7 @@ static void BattleAICmd_if_status(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -802,7 +802,7 @@ static void BattleAICmd_if_not_status(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -820,7 +820,7 @@ static void BattleAICmd_if_status2(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -838,7 +838,7 @@ static void BattleAICmd_if_not_status2(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -856,7 +856,7 @@ static void BattleAICmd_if_status3(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -874,7 +874,7 @@ static void BattleAICmd_if_not_status3(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
@ -892,12 +892,12 @@ static void BattleAICmd_if_side_affecting(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
side = GET_BANK_SIDE(bank); side = GET_BANK_SIDE(bank);
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
if ((gSideAffecting[side] & status) != 0) if ((gSideStatuses[side] & status) != 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else else
gAIScriptPtr += 10; gAIScriptPtr += 10;
@ -911,12 +911,12 @@ static void BattleAICmd_if_not_side_affecting(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
side = GET_BANK_SIDE(bank); side = GET_BANK_SIDE(bank);
status = AIScriptRead32(gAIScriptPtr + 2); status = AIScriptRead32(gAIScriptPtr + 2);
if ((gSideAffecting[side] & status) == 0) if ((gSideStatuses[side] & status) == 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else else
gAIScriptPtr += 10; gAIScriptPtr += 10;
@ -1126,13 +1126,13 @@ static void BattleAICmd_get_type(void)
AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1;
break; break;
case AI_TYPE1_TARGET: // target primary type case AI_TYPE1_TARGET: // target primary type
AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type1;
break; break;
case AI_TYPE2_USER: // AI user secondary type case AI_TYPE2_USER: // AI user secondary type
AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2;
break; break;
case AI_TYPE2_TARGET: // target secondary type case AI_TYPE2_TARGET: // target secondary type
AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type2;
break; break;
case AI_TYPE_MOVE: // type of move being pointed to case AI_TYPE_MOVE: // type of move being pointed to
AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type;
@ -1149,11 +1149,11 @@ static u8 BattleAI_GetWantedBank(u8 bank)
return sBank_AI; return sBank_AI;
case AI_TARGET: case AI_TARGET:
default: default:
return gBankTarget; return gBankDefender;
case AI_USER_PARTNER: case AI_USER_PARTNER:
return sBank_AI ^ BIT_MON; return sBank_AI ^ BIT_MON;
case AI_TARGET_PARTNER: case AI_TARGET_PARTNER:
return gBankTarget ^ BIT_MON; return gBankDefender ^ BIT_MON;
} }
} }
@ -1196,7 +1196,7 @@ static void BattleAICmd_get_how_powerful_move_is(void)
gDynamicBasePower = 0; gDynamicBasePower = 0;
*(&gBattleStruct->dynamicMoveType) = 0; *(&gBattleStruct->dynamicMoveType) = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
for (checkedMove = 0; checkedMove < 4; checkedMove++) for (checkedMove = 0; checkedMove < 4; checkedMove++)
@ -1212,8 +1212,8 @@ static void BattleAICmd_get_how_powerful_move_is(void)
&& gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1)
{ {
gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove];
AI_CalcDmg(sBank_AI, gBankTarget); AI_CalcDmg(sBank_AI, gBankDefender);
TypeCalc(gCurrentMove, sBank_AI, gBankTarget); TypeCalc(gCurrentMove, sBank_AI, gBankDefender);
moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100;
if (moveDmgs[checkedMove] == 0) if (moveDmgs[checkedMove] == 0)
moveDmgs[checkedMove] = 1; moveDmgs[checkedMove] = 1;
@ -1248,7 +1248,7 @@ static void BattleAICmd_get_last_used_bank_move(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI];
else else
AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget]; AI_THINKING_STRUCT->funcResult = gLastMoves[gBankDefender];
gAIScriptPtr += 2; gAIScriptPtr += 2;
} }
@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal
static void BattleAICmd_if_user_goes(void) static void BattleAICmd_if_user_goes(void)
{ {
if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) == gAIScriptPtr[1]) if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else else
gAIScriptPtr += 6; gAIScriptPtr += 6;
@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void)
static void BattleAICmd_if_user_doesnt_go(void) static void BattleAICmd_if_user_doesnt_go(void)
{ {
if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) != gAIScriptPtr[1]) if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else else
gAIScriptPtr += 6; gAIScriptPtr += 6;
@ -1305,7 +1305,7 @@ static void BattleAICmd_count_usable_party_mons(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (GetBankSide(bank) == SIDE_PLAYER) if (GetBankSide(bank) == SIDE_PLAYER)
party = gPlayerParty; party = gPlayerParty;
@ -1317,7 +1317,7 @@ static void BattleAICmd_count_usable_party_mons(void)
u32 identity; u32 identity;
bankOnField1 = gBattlePartyID[bank]; bankOnField1 = gBattlePartyID[bank];
identity = GetBankPosition(bank) ^ BIT_MON; identity = GetBankPosition(bank) ^ BIT_MON;
bankOnField2 = gBattlePartyID[GetBankByIdentity(identity)]; bankOnField2 = gBattlePartyID[GetBankByPosition(identity)];
} }
else // in singles there's only one bank by side else // in singles there's only one bank by side
{ {
@ -1358,7 +1358,7 @@ static void BattleAICmd_get_ability(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gActiveBank != bank) if (gActiveBank != bank)
{ {
@ -1482,7 +1482,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void)
dynamicMoveType = &gBattleStruct->dynamicMoveType; dynamicMoveType = &gBattleStruct->dynamicMoveType;
*dynamicMoveType = 0; *dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
AI_THINKING_STRUCT->funcResult = 0; AI_THINKING_STRUCT->funcResult = 0;
@ -1493,7 +1493,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void)
if (gCurrentMove) if (gCurrentMove)
{ {
TypeCalc(gCurrentMove, sBank_AI, gBankTarget); TypeCalc(gCurrentMove, sBank_AI, gBankDefender);
// reduce by 1/3. // reduce by 1/3.
if (gBattleMoveDamage == 120) if (gBattleMoveDamage == 120)
@ -1505,7 +1505,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void)
if (gBattleMoveDamage == 15) if (gBattleMoveDamage == 15)
gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; gBattleMoveDamage = AI_EFFECTIVENESS_x0_25;
if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
gBattleMoveDamage = AI_EFFECTIVENESS_x0; gBattleMoveDamage = AI_EFFECTIVENESS_x0;
if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage)
@ -1522,13 +1522,13 @@ static void BattleAICmd_if_type_effectiveness(void)
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
gBattleMoveDamage = AI_EFFECTIVENESS_x1; gBattleMoveDamage = AI_EFFECTIVENESS_x1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered; gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
TypeCalc(gCurrentMove, sBank_AI, gBankTarget); TypeCalc(gCurrentMove, sBank_AI, gBankDefender);
if (gBattleMoveDamage == 120) if (gBattleMoveDamage == 120)
gBattleMoveDamage = AI_EFFECTIVENESS_x2; gBattleMoveDamage = AI_EFFECTIVENESS_x2;
@ -1539,7 +1539,7 @@ static void BattleAICmd_if_type_effectiveness(void)
if (gBattleMoveDamage == 15) if (gBattleMoveDamage == 15)
gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; gBattleMoveDamage = AI_EFFECTIVENESS_x0_25;
if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
gBattleMoveDamage = AI_EFFECTIVENESS_x0; gBattleMoveDamage = AI_EFFECTIVENESS_x0;
// store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8.
@ -1572,7 +1572,7 @@ static void BattleAICmd_if_status_in_party(void)
bank = sBank_AI; bank = sBank_AI;
break; break;
default: default:
bank = gBankTarget; bank = gBankDefender;
break; break;
} }
@ -1609,7 +1609,7 @@ static void BattleAICmd_if_status_not_in_party(void)
bank = sBank_AI; bank = sBank_AI;
break; break;
default: default:
bank = gBankTarget; bank = gBankDefender;
break; break;
} }
@ -1669,7 +1669,7 @@ static void BattleAICmd_if_stat_level_less_than(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@ -1684,7 +1684,7 @@ static void BattleAICmd_if_stat_level_more_than(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@ -1699,7 +1699,7 @@ static void BattleAICmd_if_stat_level_equal(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@ -1714,7 +1714,7 @@ static void BattleAICmd_if_stat_level_not_equal(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@ -1733,11 +1733,11 @@ static void BattleAICmd_if_can_faint(void)
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered; gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
AI_CalcDmg(sBank_AI, gBankTarget); AI_CalcDmg(sBank_AI, gBankDefender);
TypeCalc(gCurrentMove, sBank_AI, gBankTarget); TypeCalc(gCurrentMove, sBank_AI, gBankDefender);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void)
if (gBattleMoveDamage == 0) if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1; gBattleMoveDamage = 1;
if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) if (gBattleMons[gBankDefender].hp <= gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else else
gAIScriptPtr += 5; gAIScriptPtr += 5;
@ -1762,17 +1762,17 @@ static void BattleAICmd_if_cant_faint(void)
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered; gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
AI_CalcDmg(sBank_AI, gBankTarget); AI_CalcDmg(sBank_AI, gBankDefender);
TypeCalc(gCurrentMove, sBank_AI, gBankTarget); TypeCalc(gCurrentMove, sBank_AI, gBankDefender);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
// this macro is missing the damage 0 = 1 assumption. // this macro is missing the damage 0 = 1 assumption.
if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) if (gBattleMons[gBankDefender].hp > gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else else
gAIScriptPtr += 5; gAIScriptPtr += 5;
@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void)
case AI_TARGET_PARTNER: case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr)
break; break;
} }
if (i == 4) if (i == 4)
@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void)
case AI_TARGET_PARTNER: case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr)
break; break;
} }
if (i != 4) if (i != 4)
@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void)
case AI_TARGET_PARTNER: case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
// UB: checks sBank_AI instead of gBankTarget // UB: checks sBank_AI instead of gBankDefender
if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2]) if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2])
break; break;
} }
if (i == 4) if (i == 4)
@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void)
case AI_TARGET_PARTNER: case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2]) if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2])
break; break;
} }
if (i != 4) if (i != 4)
@ -1963,7 +1963,7 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gAIScriptPtr[2] == 0) if (gAIScriptPtr[2] == 0)
{ {
@ -2041,7 +2041,7 @@ static void BattleAICmd_get_hold_effect(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
if (gActiveBank != bank) if (gActiveBank != bank)
AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]);
@ -2079,7 +2079,7 @@ static void BattleAICmd_get_gender(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality); AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality);
@ -2093,7 +2093,7 @@ static void BattleAICmd_is_first_turn_for(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn;
@ -2107,7 +2107,7 @@ static void BattleAICmd_get_stockpile_count(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter;
@ -2128,7 +2128,7 @@ static void BattleAICmd_get_used_held_item(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
// This is likely a leftover from Ruby's code and its ugly ewram access // This is likely a leftover from Ruby's code and its ugly ewram access
#ifdef NONMATCHING #ifdef NONMATCHING
@ -2168,7 +2168,7 @@ static void BattleAICmd_get_protect_count(void)
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
bank = sBank_AI; bank = sBank_AI;
else else
bank = gBankTarget; bank = gBankDefender;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses;
@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void)
switch (gAIScriptPtr[1]) switch (gAIScriptPtr[1])
{ {
case 0: // greater than case 0: // greater than
if (gBattleMons[sBank_AI].level > gBattleMons[gBankTarget].level) if (gBattleMons[sBank_AI].level > gBattleMons[gBankDefender].level)
{ {
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return; return;
@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void)
gAIScriptPtr += 6; gAIScriptPtr += 6;
return; return;
case 1: // less than case 1: // less than
if (gBattleMons[sBank_AI].level < gBattleMons[gBankTarget].level) if (gBattleMons[sBank_AI].level < gBattleMons[gBankDefender].level)
{ {
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return; return;
@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void)
gAIScriptPtr += 6; gAIScriptPtr += 6;
return; return;
case 2: // equal case 2: // equal
if (gBattleMons[sBank_AI].level == gBattleMons[gBankTarget].level) if (gBattleMons[sBank_AI].level == gBattleMons[gBankDefender].level)
{ {
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return; return;
@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void)
static void BattleAICmd_if_target_taunted(void) static void BattleAICmd_if_target_taunted(void)
{ {
if (gDisableStructs[gBankTarget].tauntTimer1 != 0) if (gDisableStructs[gBankDefender].tauntTimer1 != 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else else
gAIScriptPtr += 5; gAIScriptPtr += 5;
@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void)
static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_not_taunted(void)
{ {
if (gDisableStructs[gBankTarget].tauntTimer1 == 0) if (gDisableStructs[gBankDefender].tauntTimer1 == 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else else
gAIScriptPtr += 5; gAIScriptPtr += 5;
@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void)
static void BattleAICmd_if_target_is_ally(void) static void BattleAICmd_if_target_is_ally(void)
{ {
if ((sBank_AI & BIT_SIDE) == (gBankTarget & BIT_SIDE)) if ((sBank_AI & BIT_SIDE) == (gBankDefender & BIT_SIDE))
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else else
gAIScriptPtr += 5; gAIScriptPtr += 5;

View File

@ -19,7 +19,7 @@ extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u16 gDynamicBasePower; extern u16 gDynamicBasePower;
extern u8 gBattleMoveFlags; extern u8 gMoveResultFlags;
extern u8 gCritMultiplier; extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage; extern s32 gBattleMoveDamage;
@ -48,7 +48,7 @@ static bool8 ShouldSwitchIfPerishSong(void)
static bool8 ShouldSwitchIfWonderGuard(void) static bool8 ShouldSwitchIfWonderGuard(void)
{ {
u8 opposingIdentity; u8 opposingPosition;
u8 opposingBank; u8 opposingBank;
u8 moveFlags; u8 moveFlags;
s32 i, j; s32 i, j;
@ -60,20 +60,20 @@ static bool8 ShouldSwitchIfWonderGuard(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
return FALSE; return FALSE;
opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank));
if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) if (gBattleMons[GetBankByPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD)
return FALSE; return FALSE;
// check if pokemon has a super effective move // check if pokemon has a super effective move
for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++) for (opposingBank = GetBankByPosition(opposingPosition), i = 0; i < 4; i++)
{ {
move = gBattleMons[gActiveBank].moves[i]; move = gBattleMons[gActiveBank].moves[i];
if (move == MOVE_NONE) if (move == MOVE_NONE)
continue; continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
return FALSE; return FALSE;
} }
@ -110,14 +110,14 @@ static bool8 ShouldSwitchIfWonderGuard(void)
GetMonData(&party[i], MON_DATA_SPECIES); // unused return value GetMonData(&party[i], MON_DATA_SPECIES); // unused return value
GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value
for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++) for (opposingBank = GetBankByPosition(opposingPosition), j = 0; j < 4; j++)
{ {
move = GetMonData(&party[i], MON_DATA_MOVE1 + j); move = GetMonData(&party[i], MON_DATA_MOVE1 + j);
if (move == MOVE_NONE) if (move == MOVE_NONE)
continue; continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % 3 < 2)
{ {
// we found a mon // we found a mon
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
@ -151,10 +151,10 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
bankIn1 = gActiveBank; bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))])
bankIn2 = gActiveBank; bankIn2 = gActiveBank;
else else
bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)));
} }
else else
{ {
@ -231,7 +231,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
static bool8 ShouldSwitchIfNaturalCure(void) static bool8 ShouldSwitchIfNaturalCure(void)
{ {
if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) if (!(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP))
return FALSE; return FALSE;
if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE)
return FALSE; return FALSE;
@ -251,9 +251,9 @@ static bool8 ShouldSwitchIfNaturalCure(void)
return TRUE; return TRUE;
} }
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1)) if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 1))
return TRUE; return TRUE;
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1)) if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 1))
return TRUE; return TRUE;
if (Random() & 1) if (Random() & 1)
{ {
@ -267,14 +267,14 @@ static bool8 ShouldSwitchIfNaturalCure(void)
static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
{ {
u8 opposingIdentity; u8 opposingPosition;
u8 opposingBank; u8 opposingBank;
s32 i; s32 i;
u8 moveFlags; u8 moveFlags;
u16 move; u16 move;
opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank));
opposingBank = GetBankByIdentity(opposingIdentity); opposingBank = GetBankByPosition(opposingPosition);
if (!(gAbsentBankFlags & gBitTable[opposingBank])) if (!(gAbsentBankFlags & gBitTable[opposingBank]))
{ {
@ -285,7 +285,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
continue; continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{ {
if (noRng) if (noRng)
return TRUE; return TRUE;
@ -297,7 +297,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
return FALSE; return FALSE;
opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON); opposingBank = GetBankByPosition(B_POSITION_PARTNER(opposingPosition));
if (!(gAbsentBankFlags & gBitTable[opposingBank])) if (!(gAbsentBankFlags & gBitTable[opposingBank]))
{ {
@ -308,7 +308,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
continue; continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{ {
if (noRng) if (noRng)
return TRUE; return TRUE;
@ -357,10 +357,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
bankIn1 = gActiveBank; bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))])
bankIn2 = gActiveBank; bankIn2 = gActiveBank;
else else
bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)));
} }
else else
{ {
@ -423,7 +423,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
continue; continue;
moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0)
{ {
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
EmitTwoReturnValues(1, ACTION_SWITCH, 0); EmitTwoReturnValues(1, ACTION_SWITCH, 0);
@ -468,10 +468,10 @@ static bool8 ShouldSwitch(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
bankIn1 = *activeBankPtr; bankIn1 = *activeBankPtr;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON)]) if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON)])
bankIn2 = *activeBankPtr; bankIn2 = *activeBankPtr;
else else
bankIn2 = GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON); bankIn2 = GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON);
} }
else else
{ {
@ -530,8 +530,8 @@ static bool8 ShouldSwitch(void)
return FALSE; return FALSE;
if (AreStatsRaised()) if (AreStatsRaised())
return FALSE; return FALSE;
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2) if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2)
|| FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) || FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 3))
return TRUE; return TRUE;
return FALSE; return FALSE;
@ -561,13 +561,13 @@ void AI_TrySwitchOrUseItem(void)
{ {
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{ {
bankIn1 = GetBankByIdentity(bankIdentity); bankIn1 = GetBankByPosition(bankIdentity);
bankIn2 = bankIn1; bankIn2 = bankIn1;
} }
else else
{ {
bankIn1 = GetBankByIdentity(bankIdentity); bankIn1 = GetBankByPosition(bankIdentity);
bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON); bankIn2 = GetBankByPosition(bankIdentity ^ BIT_MON);
} }
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
@ -659,10 +659,10 @@ u8 GetMostSuitableMonToSwitchInto(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
bankIn1 = gActiveBank; bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)])
bankIn2 = gActiveBank; bankIn2 = gActiveBank;
else else
bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); bankIn2 = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON);
// UB: It considers the opponent only player's side even though it can battle alongside player; // UB: It considers the opponent only player's side even though it can battle alongside player;
opposingBank = Random() & BIT_MON; opposingBank = Random() & BIT_MON;
@ -671,7 +671,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
} }
else else
{ {
opposingBank = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_SIDE); opposingBank = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_SIDE);
bankIn1 = gActiveBank; bankIn1 = gActiveBank;
bankIn2 = gActiveBank; bankIn2 = gActiveBank;
} }
@ -734,7 +734,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i);
if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE) if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE)
break; break;
} }
@ -752,7 +752,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0; gMoveResultFlags = 0;
gCritMultiplier = 1; gCritMultiplier = 1;
bestDmg = 0; bestDmg = 0;
bestMonId = 6; bestMonId = 6;
@ -877,27 +877,27 @@ static bool8 ShouldUseItem(void)
break; break;
case AI_ITEM_CURE_CONDITION: case AI_ITEM_CURE_CONDITION:
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0;
if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS_SLEEP) if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20;
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS_POISON || gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON)) if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS1_POISON || gBattleMons[gActiveBank].status1 & STATUS1_TOXIC_POISON))
{ {
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10;
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS_BURN) if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS1_BURN)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8;
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS_FREEZE) if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS1_FREEZE)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4;
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS_PARALYSIS) if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS1_PARALYSIS)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2;
shouldUse = TRUE; shouldUse = TRUE;

View File

@ -26,7 +26,7 @@
#define ANIM_SPRITE_INDEX_COUNT 8 #define ANIM_SPRITE_INDEX_COUNT 8
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0H;
extern u16 gBattle_WIN0V; extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1H; extern u16 gBattle_WIN1H;
@ -222,7 +222,7 @@ void ClearBattleAnimationVars(void)
void DoMoveAnim(u16 move) void DoMoveAnim(u16 move)
{ {
gAnimBankAttacker = gBankAttacker; gAnimBankAttacker = gBankAttacker;
gAnimBankTarget = gBankTarget; gAnimBankTarget = gBankDefender;
LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE);
} }

View File

@ -273,13 +273,13 @@ static void sub_8035AE4(u8 taskId, u8 bank, u8 bgId, u8 destX, u8 destY)
static void sub_8035C4C(void) static void sub_8035C4C(void)
{ {
if (gBattleOutcome == BATTLE_DREW) if (gBattleOutcome == B_OUTCOME_DREW)
{ {
BattleHandleAddTextPrinter(gText_Draw, 0x15); BattleHandleAddTextPrinter(gText_Draw, 0x15);
} }
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
if (gBattleOutcome == BATTLE_WON) if (gBattleOutcome == B_OUTCOME_WON)
{ {
switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18) switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
{ {
@ -324,7 +324,7 @@ static void sub_8035C4C(void)
} }
} }
} }
else if (gBattleOutcome == BATTLE_WON) else if (gBattleOutcome == B_OUTCOME_WON)
{ {
if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0) if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
{ {

View File

@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[]; extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
@ -1875,10 +1875,10 @@ static void LinkOpponentHandleCmd55(void)
{ {
sub_81851A8(&gBattleBufferA[gActiveBank][4]); sub_81851A8(&gBattleBufferA[gActiveBank][4]);
if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW) if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW)
gBattleOutcome = gBattleBufferA[gActiveBank][1]; gBattleOutcome = gBattleBufferA[gActiveBank][1];
else else
gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW; gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW;
gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2]; gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2];
FadeOutMapMusic(5); FadeOutMapMusic(5);

View File

@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[]; extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];

View File

@ -30,7 +30,7 @@
extern u32 gBattleExecBuffer; extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
@ -1581,18 +1581,18 @@ static void OpponentHandleChooseMove(void)
EmitTwoReturnValues(1, ACTION_RUN, 0); EmitTwoReturnValues(1, ACTION_RUN, 0);
break; break;
case 6: case 6:
EmitTwoReturnValues(1, 15, gBankTarget); EmitTwoReturnValues(1, 15, gBankDefender);
break; break;
default: default:
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10))
gBankTarget = gActiveBank; gBankDefender = gActiveBank;
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH)
{ {
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
} }
EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankTarget << 8)); EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankDefender << 8));
break; break;
} }
OpponentBufferExecCompleted(); OpponentBufferExecCompleted();
@ -1609,9 +1609,9 @@ static void OpponentHandleChooseMove(void)
if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10))
EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBank << 8)); EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBank << 8));
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(Random() & 2) << 8)); EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(Random() & 2) << 8));
else else
EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(B_POSITION_PLAYER_LEFT) << 8)); EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(B_POSITION_PLAYER_LEFT) << 8));
OpponentBufferExecCompleted(); OpponentBufferExecCompleted();
} }
@ -1638,12 +1638,12 @@ static void OpponentHandleChoosePokemon(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{ {
bank2 = bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); bank2 = bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
} }
else else
{ {
bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
bank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); bank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
} }
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))

View File

@ -33,7 +33,7 @@ extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern u8 gPlayerDpadHoldFrames; extern u8 gPlayerDpadHoldFrames;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
@ -358,7 +358,7 @@ static void HandleInputChooseAction(void)
{ {
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT
&& !(gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]) && !(gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PLAYER_LEFT)])
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{ {
if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM) if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM)
@ -397,14 +397,14 @@ static void HandleInputChooseTarget(void)
// what a weird loop // what a weird loop
i = 0; i = 0;
if (gNoOfAllBanks != 0) if (gBattleBanksCount != 0)
{ {
do do
{ {
if (i != gMultiUsePlayerCursor) if (i != gMultiUsePlayerCursor)
dp11b_obj_free(i, 1); dp11b_obj_free(i, 1);
i++; i++;
} while (i < gNoOfAllBanks); } while (i < gBattleBanksCount);
} }
if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2)
@ -447,8 +447,8 @@ static void HandleInputChooseTarget(void)
{ {
if (--i < 0) if (--i < 0)
i = 4; // UB: array out of range i = 4; // UB: array out of range
gMultiUsePlayerCursor = GetBankByIdentity(identities[i]); gMultiUsePlayerCursor = GetBankByPosition(identities[i]);
} while (gMultiUsePlayerCursor == gNoOfAllBanks); } while (gMultiUsePlayerCursor == gBattleBanksCount);
i = 0; i = 0;
switch (GetBankPosition(gMultiUsePlayerCursor)) switch (GetBankPosition(gMultiUsePlayerCursor))
@ -489,8 +489,8 @@ static void HandleInputChooseTarget(void)
{ {
if (++i > 3) if (++i > 3)
i = 0; i = 0;
gMultiUsePlayerCursor = GetBankByIdentity(identities[i]); gMultiUsePlayerCursor = GetBankByPosition(identities[i]);
} while (gMultiUsePlayerCursor == gNoOfAllBanks); } while (gMultiUsePlayerCursor == gBattleBanksCount);
i = 0; i = 0;
switch (GetBankPosition(gMultiUsePlayerCursor)) switch (GetBankPosition(gMultiUsePlayerCursor))
@ -545,7 +545,7 @@ static void HandleInputChooseMove(void)
if (moveTarget & MOVE_TARGET_x10) if (moveTarget & MOVE_TARGET_x10)
gMultiUsePlayerCursor = gActiveBank; gMultiUsePlayerCursor = gActiveBank;
else else
gMultiUsePlayerCursor = GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); gMultiUsePlayerCursor = GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE);
if (!gBattleBufferA[gActiveBank][1]) // not a double battle if (!gBattleBufferA[gActiveBank][1]) // not a double battle
{ {
@ -579,10 +579,10 @@ static void HandleInputChooseMove(void)
if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER))
gMultiUsePlayerCursor = gActiveBank; gMultiUsePlayerCursor = gActiveBank;
else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]) else if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_OPPONENT_LEFT)])
gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
else else
gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
} }
@ -905,7 +905,7 @@ static void sub_80586F8(void)
gMain.inBattle = 0; gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1; gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64); SetMainCallback2(sub_8038D64);
if (gBattleOutcome == BATTLE_WON) if (gBattleOutcome == B_OUTCOME_WON)
sub_817E3F4(); sub_817E3F4();
FreeAllWindowBuffers(); FreeAllWindowBuffers();
} }
@ -918,7 +918,7 @@ static void sub_80586F8(void)
gMain.inBattle = 0; gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1; gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64); SetMainCallback2(sub_8038D64);
if (gBattleOutcome == BATTLE_WON) if (gBattleOutcome == B_OUTCOME_WON)
sub_817E3F4(); sub_817E3F4();
FreeAllWindowBuffers(); FreeAllWindowBuffers();
} }
@ -2463,7 +2463,7 @@ static void PlayerHandleSuccessBallThrowAnim(void)
{ {
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
} }
@ -2473,7 +2473,7 @@ static void PlayerHandleBallThrowAnim(void)
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
} }

View File

@ -27,7 +27,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[]; extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
@ -1545,15 +1545,15 @@ static void PlayerPartnerHandleChooseMove(void)
chosenMoveId = BattleAI_ChooseMoveOrAction(); chosenMoveId = BattleAI_ChooseMoveOrAction();
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER))
gBankTarget = gActiveBank; gBankDefender = gActiveBank;
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH)
{ {
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
if (gAbsentBankFlags & gBitTable[gBankTarget]) if (gAbsentBankFlags & gBitTable[gBankDefender])
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
} }
EmitTwoReturnValues(1, 10, chosenMoveId | (gBankTarget << 8)); EmitTwoReturnValues(1, 10, chosenMoveId | (gBankDefender << 8));
PlayerPartnerBufferExecCompleted(); PlayerPartnerBufferExecCompleted();
} }
@ -1568,8 +1568,8 @@ static void PlayerPartnerHandleChoosePokemon(void)
if (chosenMonId == 6) // just switch to the next mon if (chosenMonId == 6) // just switch to the next mon
{ {
u8 playerMonIdentity = GetBankByIdentity(B_POSITION_PLAYER_LEFT); u8 playerMonIdentity = GetBankByPosition(B_POSITION_PLAYER_LEFT);
u8 selfIdentity = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); u8 selfIdentity = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) for (chosenMonId = 3; chosenMonId < 6; chosenMonId++)
{ {

View File

@ -29,7 +29,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[]; extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
@ -1814,10 +1814,10 @@ static void RecordedOpponentHandleResetActionMoveSelection(void)
static void RecordedOpponentHandleCmd55(void) static void RecordedOpponentHandleCmd55(void)
{ {
if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW) if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW)
gBattleOutcome = gBattleBufferA[gActiveBank][1]; gBattleOutcome = gBattleBufferA[gActiveBank][1];
else else
gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW; gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW;
FadeOutMapMusic(5); FadeOutMapMusic(5);
BeginFastPaletteFade(3); BeginFastPaletteFade(3);

View File

@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[]; extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
@ -1445,7 +1445,7 @@ static void RecordedPlayerHandlePrintSelectionString(void)
static void ChooseActionInBattlePalace(void) static void ChooseActionInBattlePalace(void)
{ {
if (gBattleCommunication[4] >= gNoOfAllBanks / 2) if (gBattleCommunication[4] >= gBattleBanksCount / 2)
{ {
EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0); EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0);
RecordedPlayerBufferExecCompleted(); RecordedPlayerBufferExecCompleted();

View File

@ -26,7 +26,7 @@ extern u32 gBattleExecBuffer;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void); extern void (*gPreBattleCallback1)(void);
@ -415,7 +415,7 @@ static void SafariHandleSuccessBallThrowAnim(void)
{ {
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
} }
@ -425,7 +425,7 @@ static void SafariHandleBallThrowAnim(void)
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
} }

View File

@ -34,7 +34,7 @@ extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
@ -1113,7 +1113,7 @@ static void WallyHandleSuccessBallThrowAnim(void)
{ {
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
} }
@ -1123,7 +1123,7 @@ static void WallyHandleBallThrowAnim(void)
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE; gDoingBattleAnim = TRUE;
InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
} }

View File

@ -19,7 +19,7 @@ extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u8 gBankPositions[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gUnknown_0202428C; extern u8 gUnknown_0202428C;
extern u32 gUnknown_02022FF4; extern u32 gUnknown_02022FF4;
@ -32,7 +32,7 @@ extern u8 gUnknown_02022D08;
extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D09;
extern u8 gUnknown_02022D0A; extern u8 gUnknown_02022D0A;
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gEffectBank; extern u8 gEffectBank;
extern u16 gBattleWeather; extern u16 gBattleWeather;
@ -124,7 +124,7 @@ void sub_8032768(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{ {
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
sub_81B8D64(i, 0); sub_81B8D64(i, 0);
} }
@ -172,7 +172,7 @@ static void SetControllersVariables(void)
gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT;
} }
gNoOfAllBanks = 4; gBattleBanksCount = 4;
sub_81B8D64(0, 0); sub_81B8D64(0, 0);
sub_81B8D64(1, 0); sub_81B8D64(1, 0);
@ -200,7 +200,7 @@ static void SetControllersVariables(void)
gBattleBankFunc[1] = SetControllerToOpponent; gBattleBankFunc[1] = SetControllerToOpponent;
gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBankPositions[1] = B_POSITION_OPPONENT_LEFT;
gNoOfAllBanks = 2; gBattleBanksCount = 2;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{ {
@ -216,7 +216,7 @@ static void SetControllersVariables(void)
gBattleBankFunc[1] = SetControllerToRecordedOpponent; gBattleBankFunc[1] = SetControllerToRecordedOpponent;
gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBankPositions[1] = B_POSITION_OPPONENT_LEFT;
gNoOfAllBanks = 2; gBattleBanksCount = 2;
} }
else // see how the banks are switched else // see how the banks are switched
{ {
@ -226,7 +226,7 @@ static void SetControllersVariables(void)
gBattleBankFunc[0] = SetControllerToRecordedOpponent; gBattleBankFunc[0] = SetControllerToRecordedOpponent;
gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gBankPositions[0] = B_POSITION_OPPONENT_LEFT;
gNoOfAllBanks = 2; gBattleBanksCount = 2;
} }
} }
else else
@ -255,7 +255,7 @@ static void SetControllersVariables(void)
gBattleBankFunc[3] = SetControllerToOpponent; gBattleBankFunc[3] = SetControllerToOpponent;
gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{ {
@ -275,7 +275,7 @@ static void SetControllersVariables(void)
gBattleBankFunc[3] = SetControllerToOpponent; gBattleBankFunc[3] = SetControllerToOpponent;
gBankPositions[3] = 3; gBankPositions[3] = 3;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
sub_81B8D64(0, 0); sub_81B8D64(0, 0);
sub_81B8D64(1, 0); sub_81B8D64(1, 0);
@ -430,7 +430,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[1] = SetControllerToLinkOpponent; gBattleBankFunc[1] = SetControllerToLinkOpponent;
gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBankPositions[1] = B_POSITION_OPPONENT_LEFT;
gNoOfAllBanks = 2; gBattleBanksCount = 2;
} }
else else
{ {
@ -440,7 +440,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[0] = SetControllerToLinkOpponent; gBattleBankFunc[0] = SetControllerToLinkOpponent;
gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gBankPositions[0] = B_POSITION_OPPONENT_LEFT;
gNoOfAllBanks = 2; gBattleBanksCount = 2;
} }
} }
else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@ -461,7 +461,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[3] = SetControllerToLinkOpponent; gBattleBankFunc[3] = SetControllerToLinkOpponent;
gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
} }
else else
{ {
@ -477,7 +477,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[2] = SetControllerToLinkOpponent; gBattleBankFunc[2] = SetControllerToLinkOpponent;
gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; gBankPositions[2] = B_POSITION_OPPONENT_RIGHT;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
} }
} }
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
@ -498,7 +498,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[3] = SetControllerToOpponent; gBattleBankFunc[3] = SetControllerToOpponent;
gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
} }
else else
{ {
@ -514,7 +514,7 @@ static void SetControllersVariablesInLinkBattle(void)
gBattleBankFunc[3] = SetControllerToLinkOpponent; gBattleBankFunc[3] = SetControllerToLinkOpponent;
gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT;
gNoOfAllBanks = 4; gBattleBanksCount = 4;
} }
sub_81B8D64(0, 0); sub_81B8D64(0, 0);
@ -604,7 +604,7 @@ static void SetControllersVariablesInLinkBattle(void)
} }
} }
gNoOfAllBanks = 4; gBattleBanksCount = 4;
} }
} }
@ -614,7 +614,7 @@ static void SetBattlePartyIds(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{ {
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
for (j = 0; j < 6; j++) for (j = 0; j < 6; j++)
{ {
@ -753,7 +753,7 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data)
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankTarget; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankDefender;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags;
@ -921,7 +921,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
{ {
gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2];
gBankTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; gBankDefender = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3];
gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6];
gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7];
} }

View File

@ -25,7 +25,7 @@
extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u16 gUnknown_020243FC; extern u16 gUnknown_020243FC;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
@ -262,7 +262,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
else if (var1 == MOVE_TARGET_SELECTED) else if (var1 == MOVE_TARGET_SELECTED)
chosenMoveId |= (BattlePalaceGetTargetRetValue()); chosenMoveId |= (BattlePalaceGetTargetRetValue());
else else
chosenMoveId |= (GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); chosenMoveId |= (GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8);
return chosenMoveId; return chosenMoveId;
} }
@ -299,13 +299,13 @@ static u16 BattlePalaceGetTargetRetValue(void)
if (GetBankSide(gActiveBank) == SIDE_PLAYER) if (GetBankSide(gActiveBank) == SIDE_PLAYER)
{ {
opposing1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); opposing1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
opposing2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); opposing2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
} }
else else
{ {
opposing1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); opposing1 = GetBankByPosition(B_POSITION_PLAYER_LEFT);
opposing2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); opposing2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
} }
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp) if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
@ -391,15 +391,15 @@ void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status)
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 1; gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 1;
if (!isStatus2) if (!isStatus2)
{ {
if (status == STATUS_FREEZE) if (status == STATUS1_FREEZE)
LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_FRZ); LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_FRZ);
else if (status == STATUS_POISON || status & STATUS_TOXIC_POISON) else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON)
LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PSN); LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PSN);
else if (status == STATUS_BURN) else if (status == STATUS1_BURN)
LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_BRN); LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_BRN);
else if (status & STATUS_SLEEP) else if (status & STATUS1_SLEEP)
LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_SLP); LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_SLP);
else if (status == STATUS_PARALYSIS) else if (status == STATUS1_PARALYSIS)
LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PRZ); LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PRZ);
else // no animation else // no animation
gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0;
@ -807,7 +807,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank)
gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank); gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank);
(*bank)++; (*bank)++;
if (*bank == gNoOfAllBanks) if (*bank == gBattleBanksCount)
{ {
*bank = 0; *bank = 0;
(*state1)++; (*state1)++;
@ -821,7 +821,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank)
DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE); DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE);
(*bank)++; (*bank)++;
if (*bank == gNoOfAllBanks) if (*bank == gBattleBanksCount)
{ {
*bank = 0; *bank = 0;
(*state1)++; (*state1)++;
@ -839,7 +839,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank)
} }
SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]); SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]);
(*bank)++; (*bank)++;
if (*bank == gNoOfAllBanks) if (*bank == gBattleBanksCount)
{ {
*bank = 0; *bank = 0;
(*state1)++; (*state1)++;
@ -871,7 +871,7 @@ void CopyAllBattleSpritesInvisibilities(void)
{ {
s32 i; s32 i;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible; gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible;
} }
@ -1080,7 +1080,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank)
void BattleStopLowHpSound(void) void BattleStopLowHpSound(void)
{ {
u8 playerBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); u8 playerBank = GetBankByPosition(B_POSITION_PLAYER_LEFT);
gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0; gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0;
if (IsDoubleBattle()) if (IsDoubleBattle())
@ -1101,8 +1101,8 @@ void sub_805EAE8(void)
{ {
if (gMain.inBattle) if (gMain.inBattle)
{ {
u8 playerBank1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); u8 playerBank1 = GetBankByPosition(B_POSITION_PLAYER_LEFT);
u8 playerBank2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); u8 playerBank2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT);
u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]); u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]);
u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]); u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]);
@ -1117,7 +1117,7 @@ void sub_805EB9C(u8 affineMode)
{ {
s32 i; s32 i;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (IsBankSpritePresent(i)) if (IsBankSpritePresent(i))
{ {
@ -1143,13 +1143,13 @@ void LoadAndCreateEnemyShadowSprites(void)
LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow);
bank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); bank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank;
if (IsDoubleBattle()) if (IsDoubleBattle())
{ {
bank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); bank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank;
} }
@ -1286,7 +1286,7 @@ bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon)
s16 hp, maxHP; s16 hp, maxHP;
s32 barLevel; s32 barLevel;
if (GetMonData(mon, MON_DATA_STATUS) & (STATUS_ANY | STATUS_TOXIC_COUNTER)) if (GetMonData(mon, MON_DATA_STATUS) & (STATUS1_ANY | STATUS1_TOXIC_COUNTER))
return FALSE; return FALSE;
hp = GetMonData(mon, MON_DATA_HP); hp = GetMonData(mon, MON_DATA_HP);

View File

@ -154,7 +154,7 @@ enum
extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u8 gBankPositions[BATTLE_BANKS_COUNT];
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
extern const u8 * const gNatureNamePointers[]; extern const u8 * const gNatureNamePointers[];
@ -1086,7 +1086,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority)
{ {
s32 i; s32 i;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; u8 healthboxSpriteId_1 = gHealthBoxesIds[i];
u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam;
@ -1414,7 +1414,7 @@ void SwapHpBarsWithHpText(void)
s32 i; s32 i;
u8 spriteId; u8 spriteId;
for (i = 0; i < gNoOfAllBanks; i++) for (i = 0; i < gBattleBanksCount; i++)
{ {
if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy
&& GetBankSide(i) != SIDE_OPPONENT && GetBankSide(i) != SIDE_OPPONENT
@ -2029,27 +2029,27 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
tileNumAdder = 0x11; tileNumAdder = 0x11;
} }
if (status & STATUS_SLEEP) if (status & STATUS1_SLEEP)
{ {
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank)); statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank));
statusPalId = PAL_STATUS_SLP; statusPalId = PAL_STATUS_SLP;
} }
else if (status & STATUS_PSN_ANY) else if (status & STATUS1_PSN_ANY)
{ {
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank)); statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank));
statusPalId = PAL_STATUS_PSN; statusPalId = PAL_STATUS_PSN;
} }
else if (status & STATUS_BURN) else if (status & STATUS1_BURN)
{ {
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank)); statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank));
statusPalId = PAL_STATUS_BRN; statusPalId = PAL_STATUS_BRN;
} }
else if (status & STATUS_FREEZE) else if (status & STATUS1_FREEZE)
{ {
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank)); statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank));
statusPalId = PAL_STATUS_FRZ; statusPalId = PAL_STATUS_FRZ;
} }
else if (status & STATUS_PARALYSIS) else if (status & STATUS1_PARALYSIS)
{ {
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank)); statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank));
statusPalId = PAL_STATUS_PAR; statusPalId = PAL_STATUS_PAR;

View File

@ -18,7 +18,7 @@ extern u16 gLastUsedItem;
extern u8 gLastUsedAbility; extern u8 gLastUsedAbility;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gStringBank; extern u8 gStringBank;
extern u8 gEffectBank; extern u8 gEffectBank;
extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT];
@ -1631,13 +1631,13 @@ void BufferStringBattle(u16 stringID)
stringPtr = gText_AttackerUsedX; stringPtr = gText_AttackerUsedX;
break; break;
case STRINGID_BATTLEEND: // battle end case STRINGID_BATTLEEND: // battle end
if (gBattleTextBuff1[0] & OUTCOME_LINK_BATTLE_RUN) if (gBattleTextBuff1[0] & B_OUTCOME_LINK_BATTLE_RAN)
{ {
gBattleTextBuff1[0] &= ~(OUTCOME_LINK_BATTLE_RUN); gBattleTextBuff1[0] &= ~(B_OUTCOME_LINK_BATTLE_RAN);
if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW)
gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON);
if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) if (gBattleTextBuff1[0] == B_OUTCOME_LOST || gBattleTextBuff1[0] == B_OUTCOME_DREW)
stringPtr = gText_GotAwaySafely; stringPtr = gText_GotAwaySafely;
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
stringPtr = gText_TwoWildFled; stringPtr = gText_TwoWildFled;
@ -1646,23 +1646,23 @@ void BufferStringBattle(u16 stringID)
} }
else else
{ {
if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW)
gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON);
if (gBattleTypeFlags & BATTLE_TYPE_MULTI) if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
switch (gBattleTextBuff1[0]) switch (gBattleTextBuff1[0])
{ {
case BATTLE_WON: case B_OUTCOME_WON:
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_x800000)
stringPtr = gText_TwoInGameTrainersDefeated; stringPtr = gText_TwoInGameTrainersDefeated;
else else
stringPtr = gText_TwoLinkTrainersDefeated; stringPtr = gText_TwoLinkTrainersDefeated;
break; break;
case BATTLE_LOST: case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostToTwo; stringPtr = gText_PlayerLostToTwo;
break; break;
case BATTLE_DREW: case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawVsTwo; stringPtr = gText_PlayerBattledToDrawVsTwo;
break; break;
} }
@ -1671,13 +1671,13 @@ void BufferStringBattle(u16 stringID)
{ {
switch (gBattleTextBuff1[0]) switch (gBattleTextBuff1[0])
{ {
case BATTLE_WON: case B_OUTCOME_WON:
stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1; stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1;
break; break;
case BATTLE_LOST: case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostAgainstTrainer1; stringPtr = gText_PlayerLostAgainstTrainer1;
break; break;
case BATTLE_DREW: case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawTrainer1; stringPtr = gText_PlayerBattledToDrawTrainer1;
break; break;
} }
@ -1686,13 +1686,13 @@ void BufferStringBattle(u16 stringID)
{ {
switch (gBattleTextBuff1[0]) switch (gBattleTextBuff1[0])
{ {
case BATTLE_WON: case B_OUTCOME_WON:
stringPtr = gText_PlayerDefeatedLinkTrainer; stringPtr = gText_PlayerDefeatedLinkTrainer;
break; break;
case BATTLE_LOST: case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostAgainstLinkTrainer; stringPtr = gText_PlayerLostAgainstLinkTrainer;
break; break;
case BATTLE_DREW: case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawLinkTrainer; stringPtr = gText_PlayerBattledToDrawLinkTrainer;
break; break;
} }
@ -1834,25 +1834,25 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gStringVar3; toCpy = gStringVar3;
break; break;
case B_TXT_PLAYER_MON1_NAME: // first player poke name case B_TXT_PLAYER_MON1_NAME: // first player poke name
GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]], GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_LEFT)]],
MON_DATA_NICKNAME, text); MON_DATA_NICKNAME, text);
StringGetEnd10(text); StringGetEnd10(text);
toCpy = text; toCpy = text;
break; break;
case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name
GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]], GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_LEFT)]],
MON_DATA_NICKNAME, text); MON_DATA_NICKNAME, text);
StringGetEnd10(text); StringGetEnd10(text);
toCpy = text; toCpy = text;
break; break;
case B_TXT_PLAYER_MON2_NAME: // second player poke name case B_TXT_PLAYER_MON2_NAME: // second player poke name
GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_RIGHT)]], GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_RIGHT)]],
MON_DATA_NICKNAME, text); MON_DATA_NICKNAME, text);
StringGetEnd10(text); StringGetEnd10(text);
toCpy = text; toCpy = text;
break; break;
case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name
GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)]], GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_RIGHT)]],
MON_DATA_NICKNAME, text); MON_DATA_NICKNAME, text);
StringGetEnd10(text); StringGetEnd10(text);
toCpy = text; toCpy = text;
@ -1883,13 +1883,13 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
break; break;
case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1
HANDLE_NICKNAME_STRING_CASE(gBankAttacker, HANDLE_NICKNAME_STRING_CASE(gBankAttacker,
gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker))]) gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker))])
break; break;
case B_TXT_ATK_PARTNER_NAME: // attacker partner name case B_TXT_ATK_PARTNER_NAME: // attacker partner name
if (GetBankSide(gBankAttacker) == SIDE_PLAYER) if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text);
else else
GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text);
StringGetEnd10(text); StringGetEnd10(text);
toCpy = text; toCpy = text;
@ -1898,7 +1898,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker])
break; break;
case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix
HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget]) HANDLE_NICKNAME_STRING_CASE(gBankDefender, gBattlePartyID[gBankDefender])
break; break;
case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix
HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank])
@ -1971,7 +1971,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]]; toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]];
break; break;
case B_TXT_DEF_ABILITY: // target ability case B_TXT_DEF_ABILITY: // target ability
toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]]; toCpy = gAbilityNames[gAbilitiesPerBank[gBankDefender]];
break; break;
case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability
toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]]; toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]];
@ -2098,7 +2098,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gText_FoePkmnPrefix3; toCpy = gText_FoePkmnPrefix3;
break; break;
case B_TXT_DEF_PREFIX2: case B_TXT_DEF_PREFIX2:
if (GetBankSide(gBankTarget) == SIDE_PLAYER) if (GetBankSide(gBankDefender) == SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix2; toCpy = gText_AllyPkmnPrefix2;
else else
toCpy = gText_FoePkmnPrefix3; toCpy = gText_FoePkmnPrefix3;
@ -2110,7 +2110,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gText_FoePkmnPrefix2; toCpy = gText_FoePkmnPrefix2;
break; break;
case B_TXT_DEF_PREFIX1: case B_TXT_DEF_PREFIX1:
if (GetBankSide(gBankTarget) == SIDE_PLAYER) if (GetBankSide(gBankDefender) == SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix; toCpy = gText_AllyPkmnPrefix;
else else
toCpy = gText_FoePkmnPrefix2; toCpy = gText_FoePkmnPrefix2;
@ -2122,7 +2122,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gText_FoePkmnPrefix4; toCpy = gText_FoePkmnPrefix4;
break; break;
case B_TXT_DEF_PREFIX3: case B_TXT_DEF_PREFIX3:
if (GetBankSide(gBankTarget) == SIDE_PLAYER) if (GetBankSide(gBankDefender) == SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix3; toCpy = gText_AllyPkmnPrefix3;
else else
toCpy = gText_FoePkmnPrefix4; toCpy = gText_FoePkmnPrefix4;

File diff suppressed because it is too large Load Diff

View File

@ -990,14 +990,14 @@ static bool32 IsPlayerDefeated(u32 battleOutcome)
{ {
switch (battleOutcome) switch (battleOutcome)
{ {
case BATTLE_LOST: case B_OUTCOME_LOST:
case BATTLE_DREW: case B_OUTCOME_DREW:
return TRUE; return TRUE;
case BATTLE_WON: case B_OUTCOME_WON:
case BATTLE_RAN: case B_OUTCOME_RAN:
case BATTLE_PLAYER_TELEPORTED: case B_OUTCOME_PLAYER_TELEPORTED:
case BATTLE_POKE_FLED: case B_OUTCOME_POKE_FLED:
case BATTLE_CAUGHT: case B_OUTCOME_CAUGHT_POKE:
return FALSE; return FALSE;
default: default:
return FALSE; return FALSE;

File diff suppressed because it is too large Load Diff

View File

@ -87,15 +87,15 @@ void AdjustFriendshipOnBattleFaint(u8 bank)
{ {
u8 opposingBank2; u8 opposingBank2;
opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
opposingBank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); opposingBank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level) if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level)
opposingBank = opposingBank2; opposingBank = opposingBank2;
} }
else else
{ {
opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
} }
if (gBattleMons[opposingBank].level > gBattleMons[bank].level) if (gBattleMons[opposingBank].level > gBattleMons[bank].level)
@ -138,11 +138,11 @@ u32 sub_805725C(u8 bank)
switch (gBattleCommunication[MULTIUSE_STATE]) switch (gBattleCommunication[MULTIUSE_STATE])
{ {
case 0: case 0:
if (gBattleMons[bank].status1 & STATUS_SLEEP) if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{ {
if (UproarWakeUpCheck(bank)) if (UproarWakeUpCheck(bank))
{ {
gBattleMons[bank].status1 &= ~(STATUS_SLEEP); gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@ -158,12 +158,12 @@ u32 sub_805725C(u8 bank)
else else
toSub = 1; toSub = 1;
if ((gBattleMons[bank].status1 & STATUS_SLEEP) < toSub) if ((gBattleMons[bank].status1 & STATUS1_SLEEP) < toSub)
gBattleMons[bank].status1 &= ~(STATUS_SLEEP); gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
else else
gBattleMons[bank].status1 -= toSub; gBattleMons[bank].status1 -= toSub;
if (gBattleMons[bank].status1 & STATUS_SLEEP) if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{ {
gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep;
effect = 2; effect = 2;
@ -181,7 +181,7 @@ u32 sub_805725C(u8 bank)
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
break; break;
case 1: case 1:
if (gBattleMons[bank].status1 & STATUS_FREEZE) if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{ {
if (Random() % 5 != 0) if (Random() % 5 != 0)
{ {
@ -189,7 +189,7 @@ u32 sub_805725C(u8 bank)
} }
else else
{ {
gBattleMons[bank].status1 &= ~(STATUS_FREEZE); gBattleMons[bank].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 0;

View File

@ -177,7 +177,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
damage = damage / damageHelper; damage = damage / damageHelper;
damage /= 50; damage /= 50;
if ((attacker->status1 & STATUS_BURN) && attacker->ability != ABILITY_GUTS) if ((attacker->status1 & STATUS1_BURN) && attacker->ability != ABILITY_GUTS)
damage /= 2; damage /= 2;
if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1) if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1)

View File

@ -42,7 +42,7 @@ static bool32 sub_80F958C(void)
static void sub_80F95C0(u8 partyIdx) static void sub_80F95C0(u8 partyIdx)
{ {
struct Pokemon *pokemon = gPlayerParty + partyIdx; struct Pokemon *pokemon = gPlayerParty + partyIdx;
unsigned int status = STATUS_NONE; unsigned int status = STATUS1_NONE;
AdjustFriendship(pokemon, 0x07); AdjustFriendship(pokemon, 0x07);
SetMonData(pokemon, MON_DATA_STATUS, &status); SetMonData(pokemon, MON_DATA_STATUS, &status);
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);

View File

@ -17,7 +17,7 @@
extern bool8 gDoingBattleAnim; extern bool8 gDoingBattleAnim;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u16 gBattlePartyID[]; extern u16 gBattlePartyID[];
extern u8 gBankSpriteIds[]; extern u8 gBankSpriteIds[];
extern u8 gHealthBoxesIds[]; extern u8 gHealthBoxesIds[];
@ -378,7 +378,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
switch (throwCaseId) switch (throwCaseId)
{ {
case POKEBALL_PLAYER_SENDOUT: case POKEBALL_PLAYER_SENDOUT:
gBankTarget = bank; gBankDefender = bank;
gSprites[ballSpriteId].pos1.x = 24; gSprites[ballSpriteId].pos1.x = 24;
gSprites[ballSpriteId].pos1.y = 68; gSprites[ballSpriteId].pos1.y = 68;
gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1;
@ -386,17 +386,17 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
case POKEBALL_OPPONENT_SENDOUT: case POKEBALL_OPPONENT_SENDOUT:
gSprites[ballSpriteId].pos1.x = GetBankCoord(bank, BANK_X_POS); gSprites[ballSpriteId].pos1.x = GetBankCoord(bank, BANK_X_POS);
gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24; gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24;
gBankTarget = bank; gBankDefender = bank;
gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].data[0] = 0;
gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut;
break; break;
default: default:
gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
notSendOut = TRUE; notSendOut = TRUE;
break; break;
} }
gSprites[ballSpriteId].sBank = gBankTarget; gSprites[ballSpriteId].sBank = gBankDefender;
if (!notSendOut) if (!notSendOut)
{ {
DestroyTask(taskId); DestroyTask(taskId);
@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
// this will perform an unused ball throw animation // this will perform an unused ball throw animation
gSprites[ballSpriteId].data[0] = 0x22; gSprites[ballSpriteId].data[0] = 0x22;
gSprites[ballSpriteId].data[2] = GetBankCoord(gBankTarget, BANK_X_POS); gSprites[ballSpriteId].data[2] = GetBankCoord(gBankDefender, BANK_X_POS);
gSprites[ballSpriteId].data[4] = GetBankCoord(gBankTarget, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[4] = GetBankCoord(gBankDefender, BANK_Y_POS) - 16;
gSprites[ballSpriteId].data[5] = -40; gSprites[ballSpriteId].data[5] = -40;
sub_80A68D4(&gSprites[ballSpriteId]); sub_80A68D4(&gSprites[ballSpriteId]);
gSprites[ballSpriteId].oam.affineParam = taskId; gSprites[ballSpriteId].oam.affineParam = taskId;
gTasks[taskId].tOpponentBank = gBankTarget; gTasks[taskId].tOpponentBank = gBankDefender;
gTasks[taskId].func = TaskDummy; gTasks[taskId].func = TaskDummy;
PlaySE(SE_NAGERU); PlaySE(SE_NAGERU);
} }
@ -767,7 +767,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
} }
species = GetMonData(mon, MON_DATA_SPECIES); species = GetMonData(mon, MON_DATA_SPECIES);
if ((bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) if ((bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT))
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
@ -783,7 +783,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1)
wantedCryCase = 0; wantedCryCase = 0;
else if (bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) else if (bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT))
wantedCryCase = 1; wantedCryCase = 1;
else else
wantedCryCase = 2; wantedCryCase = 2;
@ -956,7 +956,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
sprite->data[0] = 0; sprite->data[0] = 0;
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1
&& sprite->sBank == GetBankByIdentity(B_POSITION_PLAYER_RIGHT)) && sprite->sBank == GetBankByPosition(B_POSITION_PLAYER_RIGHT))
sprite->callback = SpriteCB_ReleaseMon2FromBall; sprite->callback = SpriteCB_ReleaseMon2FromBall;
else else
sprite->callback = SpriteCB_ReleaseMonFromBall; sprite->callback = SpriteCB_ReleaseMonFromBall;
@ -982,7 +982,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite)
{ {
sprite->data[0] = 0; sprite->data[0] = 0;
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1
&& sprite->sBank == GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)) && sprite->sBank == GetBankByPosition(B_POSITION_OPPONENT_RIGHT))
sprite->callback = SpriteCB_ReleaseMon2FromBall; sprite->callback = SpriteCB_ReleaseMon2FromBall;
else else
sprite->callback = SpriteCB_ReleaseMonFromBall; sprite->callback = SpriteCB_ReleaseMonFromBall;

View File

@ -17,7 +17,7 @@ struct Unknown_020249B4
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gLastUsedAbility; extern u8 gLastUsedAbility;
extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_A;
extern u32 gBattleTypeFlags; extern u32 gBattleTypeFlags;
@ -35,7 +35,7 @@ extern const u8 gText_BadEgg[];
extern const u8 gText_EggNickname[]; extern const u8 gText_EggNickname[];
extern u8 GetBankSide(u8 bank); extern u8 GetBankSide(u8 bank);
extern u8 GetBankByIdentity(u8 bank); extern u8 GetBankByPosition(u8 bank);
extern u8 GetBankPosition(u8 bank); extern u8 GetBankPosition(u8 bank);
u8 CountAliveMonsInBattle(u8 caseId) u8 CountAliveMonsInBattle(u8 caseId)
@ -62,7 +62,7 @@ u8 CountAliveMonsInBattle(u8 caseId)
case BATTLE_ALIVE_DEF_SIDE: case BATTLE_ALIVE_DEF_SIDE:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i])) if (GetBankSide(i) == GetBankSide(gBankDefender) && !(gAbsentBankFlags & gBitTable[i]))
retVal++; retVal++;
} }
break; break;
@ -90,7 +90,7 @@ u8 GetDefaultMoveTarget(u8 bank)
status ^= 1; status ^= 1;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
return GetBankByIdentity(status); return GetBankByPosition(status);
if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1) if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1)
{ {
u8 val; u8 val;
@ -99,14 +99,14 @@ u8 GetDefaultMoveTarget(u8 bank)
val = status ^ 2; val = status ^ 2;
else else
val = status; val = status;
return GetBankByIdentity(val); return GetBankByPosition(val);
} }
else else
{ {
if ((gAbsentBankFlags & gBitTable[status])) if ((gAbsentBankFlags & gBitTable[status]))
return GetBankByIdentity(status ^ 2); return GetBankByPosition(status ^ 2);
else else
return GetBankByIdentity(status); return GetBankByPosition(status);
} }
} }

View File

@ -27,7 +27,7 @@ extern struct BattlePokemon gBattleMons[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gBankInMenu; extern u8 gBankInMenu;
extern u8 gBankTarget; extern u8 gBankDefender;
extern u8 gBankAttacker; extern u8 gBankAttacker;
extern u8 gStringBank; extern u8 gStringBank;
extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_A;
@ -212,7 +212,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
void sub_806CF24(s32 stat) void sub_806CF24(s32 stat)
{ {
gBankTarget = gBankInMenu; gBankDefender = gBankInMenu;
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]);
StringCopy(gBattleTextBuff2, gText_StatRose); StringCopy(gBattleTextBuff2, gText_StatRose);
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2);

View File

@ -26,7 +26,7 @@ extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B; extern u16 gTrainerBattleOpponent_B;
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
@ -226,7 +226,7 @@ u8 RecordedBattle_ReadBankAction(u8 bank)
// trying to read past array or invalid action byte, battle is over // trying to read past array or invalid action byte, battle is over
if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF) if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF)
{ {
gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; // hah gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle); SetMainCallback2(CB2_QuitRecordedBattle);
@ -1523,7 +1523,7 @@ void sub_818603C(u8 arg0)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
return; return;
for (bank = 0; bank < gNoOfAllBanks; bank++) for (bank = 0; bank < gBattleBanksCount; bank++)
{ {
if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only
{ {

View File

@ -25,7 +25,7 @@ extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gBankInMenu; extern u8 gBankInMenu;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks; extern u8 gBattleBanksCount;
extern u32 gBattleTypeFlags; extern u32 gBattleTypeFlags;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
@ -164,13 +164,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
LoadAndCreateEnemyShadowSprites(); LoadAndCreateEnemyShadowSprites();
opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); opponentBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species); SetBankEnemyShadowSpriteCallback(opponentBank, species);
if (IsDoubleBattle()) if (IsDoubleBattle())
{ {
opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); opponentBank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species); SetBankEnemyShadowSpriteCallback(opponentBank, species);
} }
@ -210,7 +210,7 @@ static void sub_80A95F4(void)
static bool8 LoadBankSpriteGfx(u8 bank) static bool8 LoadBankSpriteGfx(u8 bank)
{ {
if (bank < gNoOfAllBanks) if (bank < gBattleBanksCount)
{ {
if (GetBankSide(bank) != SIDE_PLAYER) if (GetBankSide(bank) != SIDE_PLAYER)
{ {
@ -245,7 +245,7 @@ extern const struct MonCoords gTrainerBackPicCoords[];
static void CreateBankSprite(u8 bank) static void CreateBankSprite(u8 bank)
{ {
if (bank < gNoOfAllBanks) if (bank < gBattleBanksCount)
{ {
u8 posY; u8 posY;
@ -313,7 +313,7 @@ static void CreateBankSprite(u8 bank)
static void CreateHealthboxSprite(u8 bank) static void CreateHealthboxSprite(u8 bank)
{ {
if (bank < gNoOfAllBanks) if (bank < gBattleBanksCount)
{ {
u8 healthboxSpriteId; u8 healthboxSpriteId;

View File

@ -108,20 +108,20 @@ void SafariZoneRetirePrompt(void)
void CB2_EndSafariBattle(void) void CB2_EndSafariBattle(void)
{ {
sSafariZoneFleedMons += gBattleResults.field_1F; sSafariZoneFleedMons += gBattleResults.field_1F;
if (gBattleOutcome == BATTLE_CAUGHT) if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
sSafariZoneCaughtMons++; sSafariZoneCaughtMons++;
if (gNumSafariBalls != 0) if (gNumSafariBalls != 0)
{ {
SetMainCallback2(c2_exit_to_overworld_2_switch); SetMainCallback2(c2_exit_to_overworld_2_switch);
} }
else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS) else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS)
{ {
ScriptContext2_RunNewScript(EventScript_2A4B4C); ScriptContext2_RunNewScript(EventScript_2A4B4C);
warp_in(); warp_in();
gFieldCallback = sub_80AF6F0; gFieldCallback = sub_80AF6F0;
SetMainCallback2(c2_load_new_map); SetMainCallback2(c2_load_new_map);
} }
else if (gBattleOutcome == BATTLE_CAUGHT) else if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
{ {
ScriptContext1_SetupScript(EventScript_2A4B9B); ScriptContext1_SetupScript(EventScript_2A4B9B);
ScriptContext1_Stop(); ScriptContext1_Stop();

View File

@ -1208,7 +1208,7 @@ void PutPokemonTodayFailedOnTheAir(void)
{ {
ct = 0xFF; ct = 0xFF;
} }
if (ct > 2 && (gBattleOutcome == BATTLE_POKE_FLED || gBattleOutcome == BATTLE_WON)) if (ct > 2 && (gBattleOutcome == B_OUTCOME_POKE_FLED || gBattleOutcome == B_OUTCOME_WON))
{ {
sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE) if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE)
@ -2402,23 +2402,23 @@ void sub_80EE184(void)
show->breakingNews.poke1Species = gBattleResults.playerMon1Species; show->breakingNews.poke1Species = gBattleResults.playerMon1Species;
switch (gBattleOutcome) switch (gBattleOutcome)
{ {
case BATTLE_LOST: case B_OUTCOME_LOST:
case BATTLE_DREW: case B_OUTCOME_DREW:
show->breakingNews.kind = TVSHOW_OFF_AIR; show->breakingNews.kind = TVSHOW_OFF_AIR;
return; return;
case BATTLE_CAUGHT: case B_OUTCOME_CAUGHT_POKE:
show->breakingNews.outcome = 0; show->breakingNews.outcome = 0;
break; break;
case BATTLE_WON: case B_OUTCOME_WON:
show->breakingNews.outcome = 1; show->breakingNews.outcome = 1;
break; break;
case BATTLE_RAN: case B_OUTCOME_RAN:
case BATTLE_PLAYER_TELEPORTED: case B_OUTCOME_PLAYER_TELEPORTED:
case BATTLE_SAFARI_OUT_OF_BALLS: case B_OUTCOME_NO_SAFARI_BALLS:
show->breakingNews.outcome = 2; show->breakingNews.outcome = 2;
break; break;
case BATTLE_POKE_FLED: case B_OUTCOME_POKE_FLED:
case BATTLE_OPPONENT_TELEPORTED: case B_OUTCOME_POKE_TELEPORTED:
show->breakingNews.outcome = 3; show->breakingNews.outcome = 3;
break; break;
} }

View File

@ -276,7 +276,7 @@ gActiveBank: @ 2024064
gBattleExecBuffer: @ 2024068 gBattleExecBuffer: @ 2024068
.space 0x4 .space 0x4
gNoOfAllBanks: @ 202406C gBattleBanksCount: @ 202406C
.space 0x2 .space 0x2
gBattlePartyID: @ 202406E gBattlePartyID: @ 202406E
@ -336,7 +336,7 @@ gLastUsedAbility: @ 202420A
gBankAttacker: @ 202420B gBankAttacker: @ 202420B
.space 0x1 .space 0x1
gBankTarget: @ 202420C gBankDefender: @ 202420C
.space 0x1 .space 0x1
gBank1: @ 202420D gBank1: @ 202420D
@ -393,7 +393,7 @@ gLastHitBy: @ 2024270
gChosenMovesByBanks: @ 2024274 gChosenMovesByBanks: @ 2024274
.space 0x8 .space 0x8
gBattleMoveFlags: @ 202427C gMoveResultFlags: @ 202427C
.space 0x4 .space 0x4
gHitMarker: @ 2024280 gHitMarker: @ 2024280
@ -408,7 +408,7 @@ gTakenDmgBanks: @ 2024288
gUnknown_0202428C: @ 202428C gUnknown_0202428C: @ 202428C
.space 0x2 .space 0x2
gSideAffecting: @ 202428E gSideStatuses: @ 202428E
.space 0x6 .space 0x6
gSideTimers: @ 2024294 gSideTimers: @ 2024294