diff options
198 files changed, 10439 insertions, 18772 deletions
diff --git a/asm/battle_9.s b/asm/battle_9.s deleted file mode 100644 index 3f162df12..000000000 --- a/asm/battle_9.s +++ /dev/null @@ -1,2840 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start AI_SwitchIfPerishSong -AI_SwitchIfPerishSong: @ 8035FEC - push {lr} - ldr r1, _08036038 @ =gStatuses3 - ldr r0, _0803603C @ =gActiveBank - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0803604C - ldr r0, _08036040 @ =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xF] - lsls r0, 28 - cmp r0, 0 - bne _0803604C - adds r0, r2, 0 - bl GetBankIdentity - ldr r1, _08036044 @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036048 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl Emitcmd33 - movs r0, 0x1 - b _0803604E - .align 2, 0 -_08036038: .4byte gStatuses3 -_0803603C: .4byte gActiveBank -_08036040: .4byte gDisableStructs -_08036044: .4byte gSharedMem -_08036048: .4byte 0x000160c8 -_0803604C: - movs r0, 0 -_0803604E: - pop {r1} - bx r1 - thumb_func_end AI_SwitchIfPerishSong - - thumb_func_start AI_SwitchIfWonderguard -AI_SwitchIfWonderguard: @ 8036054 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0803606C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080360A0 - b _080361C8 - .align 2, 0 -_0803606C: .4byte gBattleTypeFlags -_08036070: - ldr r0, _08036094 @ =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - ldr r1, _08036098 @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r2, _0803609C @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl Emitcmd33 - movs r0, 0x1 - b _080361CA - .align 2, 0 -_08036094: .4byte gActiveBank -_08036098: .4byte gSharedMem -_0803609C: .4byte 0x000160c8 -_080360A0: - ldr r4, _080361D8 @ =gBattleMons - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - beq _080360BC - b _080361C8 -_080360BC: - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r2, r0, 24 - movs r6, 0 - adds r7, r4, 0 - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r4, r0, r7 - movs r3, 0x20 - adds r3, r4 - mov r8, r3 -_080360D8: - lsls r1, r6, 1 - ldr r0, _080361DC @ =gActiveBank - ldrb r0, [r0] - muls r0, r5 - adds r1, r0 - adds r0, r7, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036104 - ldrh r1, [r4] - mov r3, r8 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - bne _080361C8 -_08036104: - adds r6, 0x1 - cmp r6, 0x3 - ble _080360D8 - movs r6, 0 - ldr r0, _080361E0 @ =gEnemyParty - mov r9, r0 -_08036110: - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - mov r2, r9 - adds r4, r5, r2 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080361C2 - ldr r1, _080361E4 @ =gBattlePartyID - ldr r0, _080361DC @ =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r2, r0, 24 - movs r4, 0 - mov r8, r5 - ldr r1, _080361D8 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_0803617C: - adds r1, r4, 0 - adds r1, 0xD - mov r0, r8 - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080361BC - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080361BC - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080361BC - b _08036070 -_080361BC: - adds r4, 0x1 - cmp r4, 0x3 - ble _0803617C -_080361C2: - adds r6, 0x1 - cmp r6, 0x5 - ble _08036110 -_080361C8: - movs r0, 0 -_080361CA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080361D8: .4byte gBattleMons -_080361DC: .4byte gActiveBank -_080361E0: .4byte gEnemyParty -_080361E4: .4byte gBattlePartyID - thumb_func_end AI_SwitchIfWonderguard - - thumb_func_start sub_80361E8 -sub_80361E8: @ 80361E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x1 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - beq _08036214 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08036214 - b _08036400 -_08036214: - ldr r1, _0803627C @ =gLastLandedMoves - ldr r5, _08036280 @ =gActiveBank - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _08036226 - b _08036400 -_08036226: - ldr r0, _08036284 @ =0x0000ffff - cmp r1, r0 - bne _0803622E - b _08036400 -_0803622E: - ldr r2, _08036288 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08036242 - b _08036400 -_08036242: - ldr r0, _0803628C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080362AE - mov r8, r3 - mov r0, r8 - bl GetBankIdentity - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, _08036290 @ =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, _08036294 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036298 - ldrb r7, [r5] - b _080362B2 - .align 2, 0 -_0803627C: .4byte gLastLandedMoves -_08036280: .4byte gActiveBank -_08036284: .4byte 0x0000ffff -_08036288: .4byte gBattleMoves -_0803628C: .4byte gBattleTypeFlags -_08036290: .4byte gAbsentBankFlags -_08036294: .4byte gBitTable -_08036298: - ldrb r0, [r5] - bl GetBankIdentity - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r7, r0, 24 - b _080362B2 -_080362AE: - adds r7, r3, 0 - mov r8, r7 -_080362B2: - ldr r3, _080362D4 @ =gBattleMoves - ldr r1, _080362D8 @ =gLastLandedMoves - ldr r2, _080362DC @ =gActiveBank - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - adds r1, r2, 0 - cmp r0, 0xA - bne _080362E0 - movs r0, 0x12 - b _080362F2 - .align 2, 0 -_080362D4: .4byte gBattleMoves -_080362D8: .4byte gLastLandedMoves -_080362DC: .4byte gActiveBank -_080362E0: - cmp r0, 0xB - bne _080362EA - movs r2, 0xB - mov r10, r2 - b _080362F4 -_080362EA: - cmp r0, 0xD - beq _080362F0 - b _08036400 -_080362F0: - movs r0, 0xA -_080362F2: - mov r10, r0 -_080362F4: - ldr r2, _08036308 @ =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r10 - bne _0803633C - b _08036400 - .align 2, 0 -_08036308: .4byte gBattleMons -_0803630C: - ldr r0, _08036330 @ =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - ldr r1, _08036334 @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036338 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl Emitcmd33 - movs r0, 0x1 - b _08036402 - .align 2, 0 -_08036330: .4byte gActiveBank -_08036334: .4byte gSharedMem -_08036338: .4byte 0x000160c8 -_0803633C: - movs r6, 0 - ldr r0, _080363CC @ =gBaseStats - mov r9, r0 -_08036342: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080363D0 @ =gEnemyParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080363FA - ldr r1, _080363D4 @ =gBattlePartyID - mov r2, r8 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080363FA - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080363FA - ldr r1, _080363D8 @ =gSharedMem - ldr r0, _080363DC @ =0x00016068 - add r0, r8 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080363FA - ldr r2, _080363DC @ =0x00016068 - adds r0, r7, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _080363E0 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x17] - b _080363EA - .align 2, 0 -_080363CC: .4byte gBaseStats -_080363D0: .4byte gEnemyParty -_080363D4: .4byte gBattlePartyID -_080363D8: .4byte gSharedMem -_080363DC: .4byte 0x00016068 -_080363E0: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x16] -_080363EA: - cmp r10, r0 - bne _080363FA - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0803630C -_080363FA: - adds r6, 0x1 - cmp r6, 0x5 - ble _08036342 -_08036400: - movs r0, 0 -_08036402: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80361E8 - - thumb_func_start AI_SwitchIfNaturalCure -AI_SwitchIfNaturalCure: @ 8036410 - push {r4,r5,lr} - ldr r3, _08036468 @ =gBattleMons - ldr r5, _0803646C @ =gActiveBank - ldrb r4, [r5] - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080364D8 - adds r1, r2, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _080364D8 - ldrh r0, [r1, 0x2C] - ldrh r1, [r1, 0x28] - lsrs r0, 1 - cmp r1, r0 - bcc _080364D8 - ldr r1, _08036470 @ =gLastLandedMoves - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08036456 - ldr r0, _08036474 @ =0x0000ffff - cmp r1, r0 - bne _08036478 -_08036456: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08036478 - ldrb r0, [r5] - b _080364E0 - .align 2, 0 -_08036468: .4byte gBattleMons -_0803646C: .4byte gActiveBank -_08036470: .4byte gLastLandedMoves -_08036474: .4byte 0x0000ffff -_08036478: - ldr r2, _080364A4 @ =gBattleMoves - ldr r1, _080364A8 @ =gLastLandedMoves - ldr r4, _080364AC @ =gActiveBank - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080364B0 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080364B0 - ldrb r0, [r4] - b _080364E0 - .align 2, 0 -_080364A4: .4byte gBattleMoves -_080364A8: .4byte gLastLandedMoves -_080364AC: .4byte gActiveBank -_080364B0: - movs r0, 0x8 - movs r1, 0x1 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _080364FE - movs r0, 0x4 - movs r1, 0x1 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _080364FE - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080364DC -_080364D8: - movs r0, 0 - b _08036500 -_080364DC: - ldr r0, _08036508 @ =gActiveBank - ldrb r0, [r0] -_080364E0: - bl GetBankIdentity - ldr r1, _0803650C @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036510 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl Emitcmd33 -_080364FE: - movs r0, 0x1 -_08036500: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08036508: .4byte gActiveBank -_0803650C: .4byte gSharedMem -_08036510: .4byte 0x000160c8 - thumb_func_end AI_SwitchIfNaturalCure - - thumb_func_start ai_has_super_effective_move_on_field -ai_has_super_effective_move_on_field: @ 8036514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080365AC @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _080365B0 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803659C - movs r4, 0 - ldr r6, _080365B4 @ =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r0, 0x20 - adds r0, r5 - mov r9, r0 -_08036550: - lsls r1, r4, 1 - ldr r0, _080365B8 @ =gActiveBank - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036596 - ldrh r1, [r5] - mov r3, r9 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08036596 - mov r0, r8 - cmp r0, 0 - bne _080365C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080365C0 -_08036596: - adds r4, 0x1 - cmp r4, 0x3 - ble _08036550 -_0803659C: - ldr r0, _080365BC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080365C4 - b _0803663E - .align 2, 0 -_080365AC: .4byte gAbsentBankFlags -_080365B0: .4byte gBitTable -_080365B4: .4byte gBattleMons -_080365B8: .4byte gActiveBank -_080365BC: .4byte gBattleTypeFlags -_080365C0: - movs r0, 0x1 - b _08036640 -_080365C4: - movs r0, 0x2 - bl GetBankByIdentity - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0803664C @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08036650 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803663E - movs r4, 0 - ldr r6, _08036654 @ =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r3, 0x20 - adds r3, r5 - mov r9, r3 -_080365F2: - lsls r1, r4, 1 - ldr r0, _08036658 @ =gActiveBank - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036638 - ldrh r1, [r5] - mov r3, r9 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08036638 - mov r0, r8 - cmp r0, 0 - bne _080365C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080365C0 -_08036638: - adds r4, 0x1 - cmp r4, 0x3 - ble _080365F2 -_0803663E: - movs r0, 0 -_08036640: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803664C: .4byte gAbsentBankFlags -_08036650: .4byte gBitTable -_08036654: .4byte gBattleMons -_08036658: .4byte gActiveBank - thumb_func_end ai_has_super_effective_move_on_field - - thumb_func_start AI_AreStatsRaised -AI_AreStatsRaised: @ 803665C - push {r4,lr} - movs r4, 0 - ldr r1, _0803669C @ =gBattleMons - ldr r0, _080366A0 @ =gActiveBank - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x18 - adds r2, r0, r1 - movs r3, 0x7 -_08036670: - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x6 - ble _08036686 - subs r1, 0x6 - lsls r0, r4, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 -_08036686: - adds r2, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08036670 - movs r0, 0 - cmp r4, 0x3 - bls _08036696 - movs r0, 0x1 -_08036696: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0803669C: .4byte gBattleMons -_080366A0: .4byte gActiveBank - thumb_func_end AI_AreStatsRaised - - thumb_func_start sub_80366A4 -sub_80366A4: @ 80366A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - ldr r1, _08036730 @ =gLastLandedMoves - ldr r5, _08036734 @ =gActiveBank - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _080366CE - b _080368D8 -_080366CE: - ldr r0, _08036738 @ =0x0000ffff - cmp r1, r0 - bne _080366D6 - b _080368D8 -_080366D6: - ldr r0, _0803673C @ =gUnknown_02024C5C - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080366E2 - b _080368D8 -_080366E2: - ldr r2, _08036740 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080366F6 - b _080368D8 -_080366F6: - ldr r0, _08036744 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036798 - mov r9, r3 - mov r0, r9 - bl GetBankIdentity - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, _08036748 @ =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, _0803674C @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036750 - ldrb r5, [r5] - mov r10, r5 - b _0803679C - .align 2, 0 -_08036730: .4byte gLastLandedMoves -_08036734: .4byte gActiveBank -_08036738: .4byte 0x0000ffff -_0803673C: .4byte gUnknown_02024C5C -_08036740: .4byte gBattleMoves -_08036744: .4byte gBattleTypeFlags -_08036748: .4byte gAbsentBankFlags -_0803674C: .4byte gBitTable -_08036750: - ldrb r0, [r5] - bl GetBankIdentity - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _0803679C -_08036768: - ldr r0, _0803678C @ =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - ldr r1, _08036790 @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036794 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl Emitcmd33 - movs r0, 0x1 - b _080368DA - .align 2, 0 -_0803678C: .4byte gActiveBank -_08036790: .4byte gSharedMem -_08036794: .4byte 0x000160c8 -_08036798: - mov r9, r3 - mov r10, r9 -_0803679C: - movs r6, 0 -_0803679E: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _08036830 @ =gEnemyParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080367B6 - b _080368D0 -_080367B6: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - bne _080367C4 - b _080368D0 -_080367C4: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080368D0 - ldr r1, _08036834 @ =gBattlePartyID - mov r2, r9 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080368D0 - mov r2, r10 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080368D0 - ldr r1, _08036838 @ =gSharedMem - ldr r0, _0803683C @ =0x00016068 - add r0, r9 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080368D0 - ldr r0, _0803683C @ =0x00016068 - add r0, r10 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080368D0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08036844 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _08036840 @ =gBaseStats - adds r0, r1 - ldrb r2, [r0, 0x17] - b _08036850 - .align 2, 0 -_08036830: .4byte gEnemyParty -_08036834: .4byte gBattlePartyID -_08036838: .4byte gSharedMem -_0803683C: .4byte 0x00016068 -_08036840: .4byte gBaseStats -_08036844: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r2, _080368EC @ =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08036850: - ldr r1, _080368F0 @ =gLastLandedMoves - ldr r5, _080368F4 @ =gActiveBank - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r4, 0 - bl AI_TypeCalc - ldr r1, [sp] - ands r1, r0 - cmp r1, 0 - beq _080368D0 - ldr r1, _080368F8 @ =gUnknown_02024C5C - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 - movs r4, 0 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - mov r8, r1 - ldr r1, _080368FC @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_0803688E: - ldr r0, _08036900 @ =gEnemyParty - adds r1, r4, 0 - adds r1, 0xD - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080368CA - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080368CA - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - bl __modsi3 - cmp r0, 0 - bne _080368CA - b _08036768 -_080368CA: - adds r4, 0x1 - cmp r4, 0x3 - ble _0803688E -_080368D0: - adds r6, 0x1 - cmp r6, 0x5 - bgt _080368D8 - b _0803679E -_080368D8: - movs r0, 0 -_080368DA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080368EC: .4byte gBaseStats -_080368F0: .4byte gLastLandedMoves -_080368F4: .4byte gActiveBank -_080368F8: .4byte gUnknown_02024C5C -_080368FC: .4byte gBattleMons -_08036900: .4byte gEnemyParty - thumb_func_end sub_80366A4 - - thumb_func_start AI_ShouldSwitch -AI_ShouldSwitch: @ 8036904 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r6, _080369E0 @ =gBattleMons - ldr r4, _080369E4 @ =gActiveBank - ldrb r2, [r4] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080369E8 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _0803692A - b _08036AFC -_0803692A: - ldr r0, _080369EC @ =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _0803693E - b _08036AFC -_0803693E: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08036956 - b _08036AFC -_08036956: - ldrb r1, [r4] - str r0, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0803696E - b _08036AFC -_0803696E: - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _080369A0 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08036994 - b _08036AFC -_08036994: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080369A0 - b _08036AFC -_080369A0: - movs r0, 0 - mov r8, r0 - ldr r0, _080369F0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036A12 - ldr r4, _080369E4 @ =gActiveBank - ldrb r7, [r4] - adds r0, r7, 0 - bl GetBankIdentity - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, _080369F4 @ =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, _080369F8 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080369FC - ldrb r6, [r4] - b _08036A18 - .align 2, 0 -_080369E0: .4byte gBattleMons -_080369E4: .4byte gActiveBank -_080369E8: .4byte 0x0400e000 -_080369EC: .4byte gStatuses3 -_080369F0: .4byte gBattleTypeFlags -_080369F4: .4byte gAbsentBankFlags -_080369F8: .4byte gBitTable -_080369FC: - ldrb r0, [r4] - bl GetBankIdentity - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r6, r0, 24 - b _08036A18 -_08036A12: - ldr r0, _08036AE8 @ =gActiveBank - ldrb r6, [r0] - adds r7, r6, 0 -_08036A18: - movs r5, 0 -_08036A1A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08036AEC @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036A7E - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08036A7E - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08036A7E - ldr r1, _08036AF0 @ =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08036A7E - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08036A7E - ldr r1, _08036AF4 @ =gSharedMem - ldr r2, _08036AF8 @ =0x00016068 - adds r0, r7, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - beq _08036A7E - adds r0, r6, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - beq _08036A7E - movs r0, 0x1 - add r8, r0 -_08036A7E: - adds r5, 0x1 - cmp r5, 0x5 - ble _08036A1A - mov r2, r8 - cmp r2, 0 - beq _08036AFC - bl AI_SwitchIfPerishSong - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl AI_SwitchIfWonderguard - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl sub_80361E8 - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl AI_SwitchIfNaturalCure - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - movs r0, 0 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - bne _08036AFC - bl AI_AreStatsRaised - lsls r0, 24 - cmp r0, 0 - bne _08036AFC - movs r0, 0x8 - movs r1, 0x2 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - movs r0, 0x4 - movs r1, 0x3 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - beq _08036AFC -_08036AE4: - movs r0, 0x1 - b _08036AFE - .align 2, 0 -_08036AE8: .4byte gActiveBank -_08036AEC: .4byte gEnemyParty -_08036AF0: .4byte gBattlePartyID -_08036AF4: .4byte gSharedMem -_08036AF8: .4byte 0x00016068 -_08036AFC: - movs r0, 0 -_08036AFE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AI_ShouldSwitch - -.if DEBUG - thumb_func_start sub_8036B0C -sub_8036B0C: -.syntax divided - push {r4, r5, r6, lr} - ldr r5, ._205 @ gBattleTypeFlags - ldrh r1, [r5] - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - bne ._197 @cond_branch - b ._216 -._197: - bl AI_ShouldSwitch - lsl r0, r0, #0x18 - cmp r0, #0 - bne ._199 @cond_branch - b ._200 -._199: - ldr r4, ._205 + 4 @ 0x2000000 - ldr r0, ._205 + 8 @ gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - lsl r0, r0, #0x18 - lsr r0, r0, #0x19 - ldr r1, ._205 + 12 @ 0x160c8 - add r0, r0, r1 - add r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0x6 - bne ._201 @cond_branch - bl sub_8036CD4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x6 - bne ._211 @cond_branch - ldrh r1, [r5] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - bne ._203 @cond_branch - mov r0, #0x1 - bl GetBankByIdentity - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r6, r5, #0 - b ._204 -._206: - .align 2, 0 -._205: - .word gBattleTypeFlags - .word 0x2000000 - .word gActiveBank - .word 0x160c8 -._203: - mov r0, #0x1 - bl GetBankByIdentity - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - mov r0, #0x3 - bl GetBankByIdentity - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 -._204: - mov r4, #0x0 -._212: - mov r0, #0x64 - mul r0, r0, r4 - ldr r1, ._214 @ gEnemyParty - add r0, r0, r1 - mov r1, #0x39 - bl GetMonData - cmp r0, #0 - beq ._210 @cond_branch - ldr r1, ._214 + 4 @ gBattlePartyID - lsl r0, r6, #0x1 - add r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq ._210 @cond_branch - lsl r0, r5, #0x1 - add r0, r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq ._210 @cond_branch - ldr r1, ._214 + 8 @ 0x2000000 - ldr r2, ._214 + 12 @ 0x16068 - add r0, r6, r2 - add r0, r0, r1 - ldrb r0, [r0] - cmp r4, r0 - beq ._210 @cond_branch - add r0, r5, r2 - add r0, r0, r1 - ldrb r0, [r0] - cmp r4, r0 - bne ._211 @cond_branch -._210: - add r4, r4, #0x1 - cmp r4, #0x5 - ble ._212 @cond_branch -._211: - ldr r0, ._214 + 16 @ gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - ldr r1, ._214 + 8 @ 0x2000000 - lsl r0, r0, #0x18 - lsr r0, r0, #0x19 - ldr r3, ._214 + 20 @ 0x160c8 - add r0, r0, r3 - add r0, r0, r1 - strb r4, [r0] -._201: - ldr r4, ._214 + 16 @ gActiveBank - ldrb r0, [r4] - bl GetBankIdentity - ldr r2, ._214 + 8 @ 0x2000000 - ldrb r1, [r4] - ldr r3, ._214 + 12 @ 0x16068 - add r1, r1, r3 - add r1, r1, r2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x19 - add r3, r3, #0x60 - add r0, r0, r3 - add r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b ._217 -._215: - .align 2, 0 -._214: - .word gEnemyParty - .word gBattlePartyID - .word 0x2000000 - .word 0x16068 - .word gActiveBank - .word 0x160c8 -._200: - ldr r0, ._218 @ gUnknown_02023A14 - ldrb r1, [r0] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - bne ._216 @cond_branch - bl AI_ShouldUseItem - lsl r0, r0, #0x18 - cmp r0, #0 - bne ._217 @cond_branch -._216: - ldr r0, ._218 + 4 @ gActiveBank - ldrb r0, [r0] - mov r2, #0x1 - eor r2, r2, r0 - lsl r2, r2, #0x8 - mov r0, #0x1 - mov r1, #0x0 - bl Emitcmd33 -._217: - pop {r4, r5, r6} - pop {r0} - bx r0 -._219: - .align 2, 0 -._218: - .word gUnknown_02023A14+0x50 - .word gActiveBank -.syntax unified - thumb_func_end sub_8036B0C -.else - thumb_func_start sub_8036B0C -sub_8036B0C: @ 8036B0C - push {r4-r6,lr} - ldr r5, _08036B68 @ =gBattleTypeFlags - ldrh r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08036B1C - b _08036C2E -_08036B1C: - bl AI_ShouldSwitch - lsls r0, 24 - cmp r0, 0 - bne _08036B28 - b _08036C24 -_08036B28: - ldr r4, _08036B6C @ =gSharedMem - ldr r0, _08036B70 @ =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 25 - ldr r1, _08036B74 @ =0x000160c8 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x6 - bne _08036BEA - bl sub_8036CD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _08036BD4 - ldrh r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08036B78 - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - b _08036B8C - .align 2, 0 -_08036B68: .4byte gBattleTypeFlags -_08036B6C: .4byte gSharedMem -_08036B70: .4byte gActiveBank -_08036B74: .4byte 0x000160c8 -_08036B78: - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x3 - bl GetBankByIdentity - lsls r0, 24 - lsrs r5, r0, 24 -_08036B8C: - movs r4, 0 -_08036B8E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08036C0C @ =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036BCE - ldr r1, _08036C10 @ =gBattlePartyID - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08036BCE - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08036BCE - ldr r1, _08036C14 @ =gSharedMem - ldr r2, _08036C18 @ =0x00016068 - adds r0, r6, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - beq _08036BCE - adds r0, r5, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - bne _08036BD4 -_08036BCE: - adds r4, 0x1 - cmp r4, 0x5 - ble _08036B8E -_08036BD4: - ldr r0, _08036C1C @ =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - ldr r1, _08036C14 @ =gSharedMem - lsls r0, 24 - lsrs r0, 25 - ldr r3, _08036C20 @ =0x000160c8 - adds r0, r3 - adds r0, r1 - strb r4, [r0] -_08036BEA: - ldr r4, _08036C1C @ =gActiveBank - ldrb r0, [r4] - bl GetBankIdentity - ldr r2, _08036C14 @ =gSharedMem - ldrb r1, [r4] - ldr r3, _08036C18 @ =0x00016068 - adds r1, r3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 25 - adds r3, 0x60 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b _08036C40 - .align 2, 0 -_08036C0C: .4byte gEnemyParty -_08036C10: .4byte gBattlePartyID -_08036C14: .4byte gSharedMem -_08036C18: .4byte 0x00016068 -_08036C1C: .4byte gActiveBank -_08036C20: .4byte 0x000160c8 -_08036C24: - bl AI_ShouldUseItem - lsls r0, 24 - cmp r0, 0 - bne _08036C40 -_08036C2E: - ldr r0, _08036C48 @ =gActiveBank - ldrb r0, [r0] - movs r2, 0x1 - eors r2, r0 - lsls r2, 8 - movs r0, 0x1 - movs r1, 0 - bl Emitcmd33 -_08036C40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08036C48: .4byte gActiveBank - thumb_func_end sub_8036B0C -.endif - - thumb_func_start sub_8036C4C -sub_8036C4C: @ 8036C4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r7, 0 - ldr r0, _08036CD0 @ =gTypeEffectiveness - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08036CBE - mov r5, r10 -_08036C7A: - ldrb r0, [r5] - cmp r0, 0xFE - beq _08036CB0 - ldr r1, [sp] - cmp r0, r1 - bne _08036CB0 - ldrb r4, [r5, 0x1] - cmp r4, r9 - bne _08036C9A - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08036C9A: - cmp r4, r8 - bne _08036CB0 - cmp r9, r8 - beq _08036CB0 - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08036CB0: - adds r5, 0x3 - adds r7, 0x3 - mov r1, r10 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08036C7A -_08036CBE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08036CD0: .4byte gTypeEffectiveness - thumb_func_end sub_8036C4C - - thumb_func_start sub_8036CD4 -sub_8036CD4: @ 8036CD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _08036D1C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036D78 - ldr r4, _08036D20 @ =gActiveBank - ldrb r0, [r4] - str r0, [sp, 0xC] - bl GetBankIdentity - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, _08036D24 @ =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, _08036D28 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036D2C - ldrb r4, [r4] - str r4, [sp, 0x10] - b _08036D42 - .align 2, 0 -_08036D1C: .4byte gBattleTypeFlags -_08036D20: .4byte gActiveBank -_08036D24: .4byte gAbsentBankFlags -_08036D28: .4byte gBitTable -_08036D2C: - ldrb r0, [r4] - bl GetBankIdentity - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] -_08036D42: - bl Random - movs r3, 0x2 - ands r0, r3 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08036D70 @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08036D74 @ =gBitTable - mov r4, r10 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036D8C - eors r4, r3 - lsls r0, r4, 24 - lsrs r0, 24 - mov r10, r0 - b _08036D8C - .align 2, 0 -_08036D70: .4byte gAbsentBankFlags -_08036D74: .4byte gBitTable -_08036D78: - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08036E5C @ =gActiveBank - ldrb r0, [r0] - str r0, [sp, 0x10] - str r0, [sp, 0xC] -_08036D8C: - movs r0, 0 - mov r9, r0 - mov r1, sp - str r1, [sp, 0x14] -_08036D94: - movs r2, 0 - str r2, [sp, 0x4] - movs r3, 0x6 - str r3, [sp, 0x8] - movs r7, 0 - ldr r4, _08036E60 @ =gBitTable - mov r8, r4 -_08036DA2: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08036E64 @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08036E7C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036E7C - mov r1, r8 - ldr r0, [r1] - mov r2, r9 - ands r0, r2 - cmp r0, 0 - bne _08036E7C - ldr r1, _08036E68 @ =gBattlePartyID - ldr r3, [sp, 0xC] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036E7C - ldr r4, [sp, 0x10] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036E7C - ldr r1, _08036E6C @ =gSharedMem - ldr r2, _08036E70 @ =0x00016068 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036E7C - adds r0, r4, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036E7C - ldr r1, _08036E74 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x6] - ldrb r6, [r0, 0x7] - movs r0, 0xA - ldr r3, [sp, 0x14] - strb r0, [r3] - movs r0, 0x58 - mov r4, r10 - muls r4, r0 - ldr r0, _08036E78 @ =gBattleMons - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8036C4C - adds r4, 0x22 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8036C4C - ldr r2, [sp, 0x4] - ldr r1, [sp, 0x14] - ldrb r1, [r1] - cmp r2, r1 - bcs _08036E8A - ldr r2, [sp, 0x14] - ldrb r2, [r2] - str r2, [sp, 0x4] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - b _08036E8A - .align 2, 0 -_08036E5C: .4byte gActiveBank -_08036E60: .4byte gBitTable -_08036E64: .4byte gEnemyParty -_08036E68: .4byte gBattlePartyID -_08036E6C: .4byte gSharedMem -_08036E70: .4byte 0x00016068 -_08036E74: .4byte gBaseStats -_08036E78: .4byte gBattleMons -_08036E7C: - mov r3, r8 - ldr r0, [r3] - mov r4, r9 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_08036E8A: - movs r0, 0x4 - add r8, r0 - adds r7, 0x1 - cmp r7, 0x5 - ble _08036DA2 - ldr r1, [sp, 0x8] - cmp r1, 0x6 - beq _08036EF8 - movs r7, 0 - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r6, _08036EEC @ =gEnemyParty -_08036EA4: - adds r1, r7, 0 - adds r1, 0xD - adds r0, r5, r6 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08036ECA - ldr r0, _08036EF0 @ =gActiveBank - ldrb r1, [r0] - adds r0, r4, 0 - mov r2, r10 - bl TypeCalc - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _08036ED0 -_08036ECA: - adds r7, 0x1 - cmp r7, 0x3 - ble _08036EA4 -_08036ED0: - cmp r7, 0x4 - beq _08036ED6 - b _08036FEE -_08036ED6: - ldr r2, [sp, 0x8] - lsls r0, r2, 2 - ldr r3, _08036EF4 @ =gBitTable - adds r0, r3 - ldr r0, [r0] - mov r4, r9 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r0, 24 - b _08036EFA - .align 2, 0 -_08036EEC: .4byte gEnemyParty -_08036EF0: .4byte gActiveBank -_08036EF4: .4byte gBitTable -_08036EF8: - movs r0, 0x3F -_08036EFA: - mov r9, r0 - mov r1, r9 - cmp r1, 0x3F - beq _08036F04 - b _08036D94 -_08036F04: - ldr r0, _08037000 @ =gDynamicBasePower - movs r2, 0 - strh r2, [r0] - ldr r0, _08037004 @ =gSharedMem - ldr r3, _08037008 @ =0x0001601c - adds r1, r0, r3 - strb r2, [r1] - ldr r4, _0803700C @ =0x0001601f - adds r0, r4 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08037010 @ =gBattleMoveFlags - strb r2, [r0] - ldr r0, _08037014 @ =gCritMultiplier - strb r1, [r0] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0x6 - str r1, [sp, 0x8] - movs r7, 0 -_08036F2C: - movs r0, 0x64 - adds r6, r7, 0 - muls r6, r0 - ldr r2, _08037018 @ =gEnemyParty - adds r4, r6, r2 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - adds r3, r7, 0x1 - str r3, [sp, 0x18] - cmp r0, 0 - beq _08036FE8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036FE8 - ldr r1, _0803701C @ =gBattlePartyID - ldr r4, [sp, 0xC] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036FE8 - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036FE8 - ldr r1, _08037004 @ =gSharedMem - ldr r3, _08037020 @ =0x00016068 - adds r0, r4, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036FE8 - adds r0, r2, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036FE8 - movs r5, 0 - mov r9, r6 - ldr r4, _08037024 @ =gBattleMoveDamage - mov r8, r4 - ldr r6, _08037028 @ =gActiveBank -_08036F90: - adds r1, r5, 0 - adds r1, 0xD - ldr r0, _08037018 @ =gEnemyParty - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - mov r1, r8 - str r0, [r1] - cmp r4, 0 - beq _08036FCC - ldr r0, _0803702C @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - beq _08036FCC - ldrb r0, [r6] - mov r1, r10 - bl AI_CalcDmg - ldrb r1, [r6] - adds r0, r4, 0 - mov r2, r10 - bl TypeCalc -_08036FCC: - mov r2, r8 - ldr r0, [r2] - ldr r3, [sp, 0x4] - cmp r3, r0 - bge _08036FE2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x8] -_08036FE2: - adds r5, 0x1 - cmp r5, 0x3 - ble _08036F90 -_08036FE8: - ldr r7, [sp, 0x18] - cmp r7, 0x5 - ble _08036F2C -_08036FEE: - ldr r0, [sp, 0x8] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08037000: .4byte gDynamicBasePower -_08037004: .4byte gSharedMem -_08037008: .4byte 0x0001601c -_0803700C: .4byte 0x0001601f -_08037010: .4byte gBattleMoveFlags -_08037014: .4byte gCritMultiplier -_08037018: .4byte gEnemyParty -_0803701C: .4byte gBattlePartyID -_08037020: .4byte 0x00016068 -_08037024: .4byte gBattleMoveDamage -_08037028: .4byte gActiveBank -_0803702C: .4byte gBattleMoves - thumb_func_end sub_8036CD4 - - thumb_func_start ai_identify_item_effect -ai_identify_item_effect: @ 8037030 - push {r4,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bne _08037040 - movs r0, 0x1 - b _08037086 -_08037040: - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803704E - movs r0, 0x2 - b _08037086 -_0803704E: - ldrb r4, [r2, 0x3] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r4 - cmp r0, 0 - beq _0803705E - movs r0, 0x3 - b _08037086 -_0803705E: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08037074 - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _08037074 - ldrb r0, [r2, 0x2] - cmp r0, 0 - beq _08037078 -_08037074: - movs r0, 0x4 - b _08037086 -_08037078: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - bne _08037084 - movs r0, 0x6 - b _08037086 -_08037084: - movs r0, 0x5 -_08037086: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ai_identify_item_effect - - thumb_func_start AI_ShouldUseItem -AI_ShouldUseItem: @ 803708C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - str r0, [sp] - mov r8, r0 - mov r9, r0 -_080370A0: - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _08037170 @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080370DC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080370DC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080370DC - ldr r0, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_080370DC: - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x5 - ble _080370A0 - movs r3, 0 - mov r9, r3 -_080370EA: - ldr r4, _08037174 @ =gSharedMem + 0x16A00 - mov r0, r9 - cmp r0, 0 - beq _08037106 - adds r0, r4, 0 - adds r0, 0x2C - ldrb r0, [r0] - mov r1, r9 - subs r0, r1 - adds r0, 0x1 - ldr r2, [sp] - cmp r2, r0 - ble _08037106 - b _080374EC -_08037106: - mov r3, r9 - lsls r1, r3, 1 - adds r0, r4, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldrh r0, [r0] - mov r10, r0 - str r1, [sp, 0x4] - cmp r0, 0 - bne _0803711C - b _080374EC -_0803711C: - ldr r1, _08037178 @ =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - bne _0803712C - b _080374EC -_0803712C: - adds r5, r1, 0 - mov r0, r10 - cmp r0, 0xAF - bne _08037136 - ldr r5, _0803717C @ =gSaveBlock1 + 0x3676 -_08037136: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl ai_identify_item_effect - ldr r2, _08037180 @ =0xfffe9600 - adds r4, r2 - ldr r3, _08037184 @ =gActiveBank - ldrb r1, [r3] - lsrs r1, 1 - ldr r2, _08037188 @ =0x000160d8 - adds r1, r2 - adds r1, r4 - strb r0, [r1] - ldrb r0, [r3] - lsrs r0, 1 - adds r0, r2 - adds r0, r4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x5 - bls _08037166 - b _080374A8 -_08037166: - lsls r0, 2 - ldr r1, _0803718C @ =_08037190 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037170: .4byte gEnemyParty -_08037174: .4byte gSharedMem + 0x16A00 -_08037178: .4byte gItemEffectTable -_0803717C: .4byte gSaveBlock1 + 0x3676 -_08037180: .4byte 0xfffe9600 -_08037184: .4byte gActiveBank -_08037188: .4byte 0x000160d8 -_0803718C: .4byte _08037190 - .align 2, 0 -_08037190: - .4byte _080371A8 - .4byte _080371D0 - .4byte _0803721C - .4byte _08037388 - .4byte _08037468 - .4byte _080374F8 -_080371A8: - ldr r2, _080371C8 @ =gBattleMons - ldr r0, _080371CC @ =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - lsrs r1, 2 - cmp r0, r1 - bcc _080371C0 - b _080374A8 -_080371C0: - cmp r0, 0 - bne _080371C6 - b _080374A8 -_080371C6: - b _08037450 - .align 2, 0 -_080371C8: .4byte gBattleMons -_080371CC: .4byte gActiveBank -_080371D0: - mov r0, r10 - movs r1, 0x4 - movs r2, 0x4 - bl GetItemEffectParamOffset - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080371E4 - b _080374A8 -_080371E4: - ldr r2, _08037214 @ =gBattleMons - ldr r0, _08037218 @ =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - ldrh r2, [r1, 0x28] - cmp r2, 0 - bne _080371F8 - b _080374A8 -_080371F8: - ldrh r3, [r1, 0x2C] - lsrs r0, r3, 2 - cmp r2, r0 - bcs _08037202 - b _08037496 -_08037202: - adds r0, r2, 0 - subs r0, r3, r0 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bgt _08037210 - b _080374A8 -_08037210: - b _08037496 - .align 2, 0 -_08037214: .4byte gBattleMons -_08037218: .4byte gActiveBank -_0803721C: - ldr r2, _08037378 @ =gSharedMem - ldr r3, _0803737C @ =gActiveBank - ldrb r0, [r3] - lsrs r0, 1 - ldr r6, _08037380 @ =0x000160da - adds r0, r6 - adds r0, r2 - movs r1, 0 - mov r12, r1 - movs r1, 0 - strb r1, [r0] - ldrb r1, [r5, 0x3] - movs r7, 0x20 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08037264 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08037264 - lsrs r1, r4, 1 - adds r1, r6 - adds r1, r2 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - movs r0, 0x1 - mov r8, r0 -_08037264: - ldrb r1, [r5, 0x3] - movs r6, 0x10 - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080372A0 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0803728E - movs r0, 0x80 - ands r1, r0 - cmp r1, 0 - beq _080372A0 -_0803728E: - lsrs r1, r4, 1 - ldr r0, _08037380 @ =0x000160da - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r1, 0x1 - mov r8, r1 -_080372A0: - ldrb r1, [r5, 0x3] - movs r6, 0x8 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080372D4 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080372D4 - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_080372D4: - ldrb r1, [r5, 0x3] - movs r6, 0x4 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08037308 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08037308 - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_08037308: - ldrb r1, [r5, 0x3] - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803733C - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803733C - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_0803733C: - ldrb r1, [r5, 0x3] - movs r4, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0803734A - b _080374A8 -_0803734A: - ldr r1, _08037384 @ =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08037362 - b _080374A8 -_08037362: - lsrs r0, r3, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r4 - strb r1, [r0] - movs r2, 0x1 - mov r8, r2 - b _080374AE - .align 2, 0 -_08037378: .4byte gSharedMem -_0803737C: .4byte gActiveBank -_08037380: .4byte 0x000160da -_08037384: .4byte gBattleMons -_08037388: - ldr r6, _08037458 @ =gSharedMem - ldr r4, _0803745C @ =gActiveBank - ldrb r0, [r4] - lsrs r0, 1 - ldr r3, _08037460 @ =0x000160da - adds r0, r3 - adds r0, r6 - movs r1, 0 - mov r12, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _08037464 @ =gDisableStructs - ldrb r2, [r4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _080374A8 - ldrb r1, [r5] - movs r7, 0xF - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080373CA - lsrs r0, r2, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_080373CA: - ldrb r1, [r5, 0x1] - movs r2, 0xF0 - mov r8, r2 - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _080373E8 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_080373E8: - ldrb r1, [r5, 0x1] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08037402 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08037402: - ldrb r1, [r5, 0x2] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0803741C - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_0803741C: - ldrb r1, [r5, 0x2] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _08037436 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] -_08037436: - ldrb r1, [r5] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _08037450 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08037450: - movs r3, 0x1 - mov r8, r3 - b _080374AE - .align 2, 0 -_08037458: .4byte gSharedMem -_0803745C: .4byte gActiveBank -_08037460: .4byte 0x000160da -_08037464: .4byte gDisableStructs -_08037468: - ldr r4, _0803749C @ =gActiveBank - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080374A0 @ =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _080374A8 - ldr r0, _080374A4 @ =gSideTimers - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _080374A8 -_08037496: - movs r0, 0x1 - mov r8, r0 - b _080374AE - .align 2, 0 -_0803749C: .4byte gActiveBank -_080374A0: .4byte gDisableStructs -_080374A4: .4byte gSideTimers -_080374A8: - mov r1, r8 - cmp r1, 0 - beq _080374EC -_080374AE: - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl Emitcmd33 - ldr r1, _080374DC @ =gSharedMem - ldr r0, _080374E0 @ =gActiveBank - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 1 - ldr r2, _080374E4 @ =0x000160d4 - adds r0, r2 - adds r0, r1 - movs r2, 0 - mov r3, r10 - strb r3, [r0] - ldr r0, _080374E8 @ =0x00016a24 - adds r1, r0 - ldr r3, [sp, 0x4] - adds r1, r3, r1 - strh r2, [r1] - mov r0, r8 - b _080374FA - .align 2, 0 -_080374DC: .4byte gSharedMem -_080374E0: .4byte gActiveBank -_080374E4: .4byte 0x000160d4 -_080374E8: .4byte 0x00016a24 -_080374EC: - movs r0, 0x1 - add r9, r0 - mov r1, r9 - cmp r1, 0x3 - bgt _080374F8 - b _080370EA -_080374F8: - movs r0, 0 -_080374FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AI_ShouldUseItem - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s index d748a78f1..e49873ee6 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -92,7 +92,7 @@ sub_812C1D0: @ 812C1D0 ldr r6, _0812C21C @ =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 8 @@ -102,7 +102,7 @@ sub_812C1D0: @ 812C1D0 asrs r4, 16 ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 @@ -213,13 +213,13 @@ sub_812C2BC: @ 812C2BC ldr r4, _0812C348 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -806,7 +806,7 @@ sub_812C720: @ 812C720 bl SetAverageBattlerPositions ldr r0, _0812C788 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812C754 @@ -959,7 +959,7 @@ sub_812C848: @ 812C848 bne _0812C89C ldr r0, _0812C888 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0812C88C @@ -1059,7 +1059,7 @@ sub_812C924: @ 812C924 lsrs r4, r0, 24 ldr r0, _0812C940 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1309,13 +1309,13 @@ sub_812CAFC: @ 812CAFC ldr r4, _0812CB74 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1562,7 +1562,7 @@ _0812CD04: _0812CD06: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -1570,7 +1570,7 @@ _0812CD06: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1688,7 +1688,7 @@ _0812CDF6: lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -1977,13 +1977,13 @@ sub_812D008: @ 812D008 ldr r6, _0812D060 @ =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] @@ -1993,7 +1993,7 @@ sub_812D008: @ 812D008 strh r0, [r4, 0x12] strh r5, [r4, 0x14] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -2366,13 +2366,13 @@ _0812D2F0: ldr r4, _0812D348 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -2409,7 +2409,7 @@ sub_812D350: @ 812D350 _0812D370: .4byte gTasks _0812D374: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2441,7 +2441,7 @@ sub_812D3AC: @ 812D3AC push {r4-r6,lr} adds r5, r0, 0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x2E @@ -2463,13 +2463,13 @@ _0812D3D6: ldr r4, _0812D408 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2576,7 +2576,7 @@ sub_812D4B4: @ 812D4B4 adds r4, r0, 0 ldr r0, _0812D4CC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812D4D4 @@ -2610,7 +2610,7 @@ sub_812D4EC: @ 812D4EC strh r0, [r4, 0x2E] ldr r0, _0812D50C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812D510 @@ -2829,7 +2829,7 @@ sub_812D674: @ 812D674 cmp r0, 0 bne _0812D6B4 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2873,7 +2873,7 @@ sub_812D6CC: @ 812D6CC cmp r0, 0 bne _0812D70C movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2922,7 +2922,7 @@ _0812D736: ldr r0, _0812D75C @ =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -2974,7 +2974,7 @@ sub_812D790: @ 812D790 cmp r0, 0 bne _0812D7D0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3045,7 +3045,7 @@ _0812D834: strh r0, [r1] ldr r0, _0812D854 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3136,7 +3136,7 @@ _0812D8F4: .4byte gAnimBankAttacker _0812D8F8: .4byte gAnimBankTarget _0812D8FC: ldrb r0, [r5] - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 lsrs r1, r0, 24 _0812D906: @@ -3330,7 +3330,7 @@ _0812DA84: strh r0, [r1] ldr r0, _0812DAA4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3355,7 +3355,7 @@ _0812DAAE: bne _0812DAF4 ldr r4, _0812DB0C @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3573,7 +3573,7 @@ _0812DC98: .4byte gBattle_BG1_Y _0812DC9C: ldr r0, _0812DCB4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812DCC0 @@ -3858,14 +3858,14 @@ _0812DED6: ldr r4, _0812DFD0 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -4293,7 +4293,7 @@ _0812E25C: .4byte gBattle_BG1_Y _0812E260: ldr r0, _0812E2A0 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 lsrs r4, r0, 24 bl IsDoubleBattle @@ -4378,7 +4378,7 @@ _0812E300: strh r0, [r5, 0xE] ldr r0, _0812E338 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4587,7 +4587,7 @@ sub_812E498: @ 812E498 cmp r0, 0 bne _0812E4D8 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -4644,7 +4644,7 @@ _0812E50E: strh r0, [r4, 0x32] ldr r0, _0812E53C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812E540 @@ -4739,7 +4739,7 @@ _0812E5AC: subs r0, 0x1 strh r0, [r4, 0x14] ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -4755,7 +4755,7 @@ _0812E5F8: ldr r0, _0812E630 @ =gAnimBankTarget _0812E5FA: ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4972,7 +4972,7 @@ sub_812E7A0: @ 812E7A0 adds r4, r0, 0 ldr r0, _0812E7BC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5016,7 +5016,7 @@ sub_812E7F0: @ 812E7F0 strh r0, [r4, 0x2E] ldr r0, _0812E830 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0812E834 @@ -5090,7 +5090,7 @@ sub_812E860: @ 812E860 strh r0, [r4, 0x24] ldr r0, _0812E8AC @ =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -5332,13 +5332,13 @@ sub_812EA4C: @ 812EA4C ldr r4, _0812EAA8 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -5453,7 +5453,7 @@ _0812EB4E: strh r0, [r2, 0x1E] mov r1, r8 ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812EB8C @ =gTasks @@ -5517,7 +5517,7 @@ _0812EBC2: cmp r0, 0 bne _0812EBE8 ldrb r0, [r6, 0x1E] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 @@ -5895,13 +5895,13 @@ sub_812EEA4: @ 812EEA4 ldr r5, _0812EEE0 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -6045,7 +6045,7 @@ sub_812EFC8: @ 812EFC8 lsrs r0, 24 str r0, [sp, 0x10] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId bl IsContest lsls r0, 24 cmp r0, 0 @@ -6065,13 +6065,13 @@ _0812F000: .4byte gSharedMem + 0x19348 _0812F004: ldr r0, _0812F070 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812F0AC movs r0, 0 str r0, [sp, 0x14] - ldr r6, _0812F074 @ =gBattlePartyID + ldr r6, _0812F074 @ =gBattlerPartyIndexes ldr r4, _0812F078 @ =gAnimBankTarget ldrb r0, [r4] lsls r0, 1 @@ -6101,7 +6101,7 @@ _0812F004: cmp r0, 0 bne _0812F0A4 adds r0, r2, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0812F084 @@ -6114,7 +6114,7 @@ _0812F004: b _0812F092 .align 2, 0 _0812F070: .4byte gAnimBankAttacker -_0812F074: .4byte gBattlePartyID +_0812F074: .4byte gBattlerPartyIndexes _0812F078: .4byte gAnimBankTarget _0812F07C: .4byte gPlayerParty _0812F080: .4byte gSharedMem + 0x17800 @@ -6143,7 +6143,7 @@ _0812F0A6: _0812F0AC: movs r2, 0x1 str r2, [sp, 0x14] - ldr r6, _0812F10C @ =gBattlePartyID + ldr r6, _0812F10C @ =gBattlerPartyIndexes ldr r4, _0812F110 @ =gAnimBankTarget ldrb r0, [r4] lsls r0, 1 @@ -6173,7 +6173,7 @@ _0812F0AC: cmp r0, 0 bne _0812F138 adds r0, r2, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0812F120 @@ -6186,7 +6186,7 @@ _0812F0AC: adds r0, r1 b _0812F12C .align 2, 0 -_0812F10C: .4byte gBattlePartyID +_0812F10C: .4byte gBattlerPartyIndexes _0812F110: .4byte gAnimBankTarget _0812F114: .4byte gEnemyParty _0812F118: .4byte gSharedMem + 0x17800 @@ -6219,13 +6219,13 @@ _0812F13E: ldr r5, _0812F21C @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 mov r2, r10 lsls r1, r2, 16 @@ -6478,7 +6478,7 @@ _0812F342: movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6503,12 +6503,12 @@ _0812F388: strh r0, [r4, 0x24] ldr r0, _0812F3C4 @ =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6620,7 +6620,7 @@ sub_812F474: @ 812F474 ldr r1, _0812F4A8 @ =gTasks adds r6, r0, r1 ldrb r0, [r6, 0x12] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6974,7 +6974,7 @@ sub_812F724: @ 812F724 strh r0, [r4, 0x8] ldr r0, _0812F760 @ =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -7251,7 +7251,7 @@ sub_812F948: @ 812F948 bl StartSpriteAffineAnim ldr r0, _0812F9A4 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812F96E @@ -7262,7 +7262,7 @@ _0812F96E: ldr r4, _0812F9A8 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -7270,7 +7270,7 @@ _0812F96E: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7696,7 +7696,7 @@ sub_812FC68: @ 812FC68 strh r0, [r4, 0x14] _0812FCAC: ldrb r0, [r2] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812FCDC @@ -7833,13 +7833,13 @@ _0812FDC2: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -7850,7 +7850,7 @@ _0812FDC2: strh r0, [r5, 0x14] ldr r0, _0812FE14 @ =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -8123,7 +8123,7 @@ sub_812FFE4: @ 812FFE4 ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, _08130034 @ =gSprites @@ -8250,7 +8250,7 @@ sub_81300F4: @ 81300F4 adds r5, r0, 0 ldr r6, _0813014C @ =gAnimBankAttacker ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8262,7 +8262,7 @@ sub_81300F4: @ 81300F4 _08130110: ldrb r0, [r6] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, _08130150 @ =gBattleAnimArgs lsrs r0, 24 @@ -8271,7 +8271,7 @@ _08130110: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -8315,7 +8315,7 @@ _08130172: _08130180: ldr r0, _081301AC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081301A0 @@ -8404,13 +8404,13 @@ _0813021C: _08130226: ldr r5, _0813025C @ =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08130260 ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -8431,7 +8431,7 @@ _0813025C: .4byte gAnimBankAttacker _08130260: ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -8451,7 +8451,7 @@ _08130284: ldr r5, _081302D8 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -8470,13 +8470,13 @@ _081302A8: ldr r4, _081302DC @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] @@ -8840,14 +8840,14 @@ sub_8130554: @ 8130554 mov r10, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] @@ -8855,14 +8855,14 @@ sub_8130554: @ 8130554 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] @@ -8942,7 +8942,7 @@ _081305C6: bl InitAnimSpriteTranslationOverDuration mov r1, r10 ldrb r0, [r1] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9163,7 +9163,7 @@ _081307FC: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -9336,7 +9336,7 @@ _08130934: ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -9470,7 +9470,7 @@ _08130A48: _08130A4A: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -9858,7 +9858,7 @@ sub_8130D20: @ 8130D20 ldr r0, _08130D7C @ =gTasks adds r6, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -9874,7 +9874,7 @@ sub_8130D20: @ 8130D20 ldr r5, _08130D80 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -9882,7 +9882,7 @@ sub_8130D20: @ 8130D20 movs r0, 0x2 eors r0, r1 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -9900,7 +9900,7 @@ _08130D88: .4byte 0x0000ffff _08130D8C: ldr r0, _08130DA0 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08130DA8 @@ -10165,7 +10165,7 @@ _08130F82: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -10323,14 +10323,14 @@ _081310C4: lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r1, r0, 24 _081310E4: @@ -10547,12 +10547,12 @@ sub_8131264: @ 8131264 ldr r4, _081312A0 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08131290 @@ -10614,7 +10614,7 @@ sub_81312E4: @ 81312E4 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 @@ -10755,7 +10755,7 @@ sub_8131408: @ 8131408 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08131434 @ =gTasks @@ -10933,7 +10933,7 @@ sub_8131564: @ 8131564 adds r5, r0, 0 ldr r4, _08131588 @ =gAnimBankTarget ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131590 @@ -10960,7 +10960,7 @@ _081315A0: ldr r0, _081315C0 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -11473,7 +11473,7 @@ _0813197C: .4byte _08131DC4 _08131990: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _081319DC @ =gTasks @@ -11490,7 +11490,7 @@ _08131990: strh r0, [r6, 0xA] ldr r0, _081319E0 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11582,11 +11582,11 @@ _08131A70: .4byte gAnimBankAttacker _08131A74: ldr r4, _08131AD4 @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131B10 - ldr r7, _08131AD8 @ =gBattlePartyID + ldr r7, _08131AD8 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11626,14 +11626,14 @@ _08131A74: b _08131AE6 .align 2, 0 _08131AD4: .4byte gAnimBankAttacker -_08131AD8: .4byte gBattlePartyID +_08131AD8: .4byte gBattlerPartyIndexes _08131ADC: .4byte gPlayerParty _08131AE0: .4byte gSharedMem + 0x17800 _08131AE4: ldrh r5, [r1, 0x2] _08131AE6: movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _08131B0C @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -11653,7 +11653,7 @@ _08131AE6: .align 2, 0 _08131B0C: .4byte gSprites _08131B10: - ldr r7, _08131B64 @ =gBattlePartyID + ldr r7, _08131B64 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11692,14 +11692,14 @@ _08131B10: lsrs r5, r0, 16 b _08131B72 .align 2, 0 -_08131B64: .4byte gBattlePartyID +_08131B64: .4byte gBattlerPartyIndexes _08131B68: .4byte gEnemyParty _08131B6C: .4byte gSharedMem + 0x17800 _08131B70: ldrh r5, [r1, 0x2] _08131B72: movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _08131C04 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -11719,7 +11719,7 @@ _08131B94: ldr r0, _08131C0C @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 lsls r3, r6, 16 @@ -11795,7 +11795,7 @@ _08131C20: strh r0, [r6, 0xA] ldr r0, _08131C70 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11852,7 +11852,7 @@ _08131C8E: bne _08131D0E ldr r0, _08131CE4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131CEC @@ -11861,7 +11861,7 @@ _08131C8E: ldr r0, _08131CE8 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11878,7 +11878,7 @@ _08131CEC: ldr r0, _08131D30 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11916,7 +11916,7 @@ _08131D38: .4byte 0x0000ffff _08131D3C: .4byte gTasks _08131D40: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131D8C @ =gTasks @@ -11936,7 +11936,7 @@ _08131D40: bl sub_807A0F4 ldr r0, _08131D94 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11980,7 +11980,7 @@ _08131DB6: _08131DC0: .4byte gTasks _08131DC4: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131E38 @ =gTasks @@ -11999,7 +11999,7 @@ _08131DC4: mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] @@ -12024,7 +12024,7 @@ _08131DC4: mov r1, r10 ldrb r0, [r1] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -12057,7 +12057,7 @@ _08131E44: mov r2, r10 ldrb r0, [r2] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -12126,7 +12126,7 @@ _08131ECA: ldr r0, _08131F54 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -12145,7 +12145,7 @@ _08131ECA: strb r0, [r2] ldr r0, _08131F5C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12155,7 +12155,7 @@ _08131ECA: cmp r0, 0 bne _08131FF4 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _08131F60 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -12219,7 +12219,7 @@ _08131FA6: strh r0, [r4, 0x32] ldr r0, _08131FD0 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131FD4 @@ -12292,14 +12292,14 @@ _08132040: ldr r0, _08132084 @ =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _08132088 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 @@ -12473,14 +12473,14 @@ sub_813219C: @ 813219C ldr r0, _08132204 @ =gTasks adds r4, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] ldr r0, _08132208 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -12663,7 +12663,7 @@ sub_8132318: @ 8132318 adds r4, r0, 0 ldr r0, _0813236C @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] @@ -12707,7 +12707,7 @@ sub_8132370: @ 8132370 adds r4, r0, 0 ldr r0, _081323A8 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081323B4 @@ -12764,7 +12764,7 @@ sub_81323E0: @ 81323E0 ldr r4, _08132424 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -12996,7 +12996,7 @@ sub_813257C: @ 813257C strh r0, [r4, 0x8] ldr r0, _081325B8 @ =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index a2e942ec9..df39aef31 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -915,11 +915,11 @@ sub_813F844: @ 813F844 adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0813F88C - ldr r1, _0813F884 @ =gBattlePartyID + ldr r1, _0813F884 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -931,10 +931,10 @@ sub_813F844: @ 813F844 .align 2, 0 _0813F87C: .4byte gBankSpriteIds _0813F880: .4byte gAnimBankAttacker -_0813F884: .4byte gBattlePartyID +_0813F884: .4byte gBattlerPartyIndexes _0813F888: .4byte gPlayerParty _0813F88C: - ldr r1, _0813F8CC @ =gBattlePartyID + ldr r1, _0813F8CC @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -965,20 +965,20 @@ _0813F89C: beq _0813F958 b _0813F982 .align 2, 0 -_0813F8CC: .4byte gBattlePartyID +_0813F8CC: .4byte gBattlerPartyIndexes _0813F8D0: .4byte gEnemyParty _0813F8D4: .4byte gTasks _0813F8D8: ldr r5, _0813F950 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r1, r0, 0 lsls r1, 24 ldr r2, _0813F954 @ =gSprites @@ -1238,14 +1238,14 @@ sub_813FA94: @ 813FA94 mov r8, r2 ldrb r0, [r2] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1366,7 +1366,7 @@ _0813FBE0: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByIdentity + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl sub_8079E90 @@ -1400,14 +1400,14 @@ _0813FBE0: mov r8, r1 ldrb r0, [r1] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1418,7 +1418,7 @@ _0813FBE0: ldr r0, _0813FCAC @ =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByIdentity + bl GetBattlerAtPosition ldr r1, _0813FCB0 @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1462,7 +1462,7 @@ sub_813FCBC: @ 813FCBC lsrs r5, r0, 24 ldr r6, _0813FD1C @ =gSprites movs r0, 0 - bl GetBankByIdentity + bl GetBattlerAtPosition ldr r1, _0813FD20 @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1519,7 +1519,7 @@ sub_813FD34: @ 813FD34 lsrs r5, r0, 24 ldr r6, _0813FD88 @ =gSprites movs r0, 0 - bl GetBankByIdentity + bl GetBattlerAtPosition ldr r4, _0813FD8C @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1535,7 +1535,7 @@ sub_813FD34: @ 813FD34 cmp r0, 0 bge _0813FD80 movs r0, 0 - bl GetBankByIdentity + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4619,7 +4619,7 @@ _08141562: adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081415A4 @@ -4697,7 +4697,7 @@ _08141606: adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0814163C @@ -4739,7 +4739,7 @@ _08141654: strh r1, [r0, 0x8] ldr r0, _08141690 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 @@ -4817,7 +4817,7 @@ _081416EC: _081416F2: ldr r0, _08141708 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5124,12 +5124,12 @@ _08141966: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1E @@ -5247,7 +5247,7 @@ _08141A44: cmp r0, 0 bne _08141A8C mov r0, r8 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0x3F cmp r0, 0 @@ -5483,11 +5483,11 @@ sub_8141C30: @ 8141C30 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByIdentity + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r5, _08141CA4 @ =gBattleAnimArgs lsrs r0, 24 @@ -5495,11 +5495,11 @@ sub_8141C30: @ 8141C30 adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByIdentity + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -5644,11 +5644,11 @@ sub_8141D7C: @ 8141D7C lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl GetBankByIdentity + bl GetBattlerAtPosition ldr r1, _08141DA4 @ =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 - bl GetBankByIdentity + bl GetBattlerAtPosition ldr r1, _08141DA8 @ =gAnimBankTarget strb r0, [r1] adds r0, r4, 0 diff --git a/asm/contest_effect.s b/asm/contest_effect.s deleted file mode 100644 index 341cb0903..000000000 --- a/asm/contest_effect.s +++ /dev/null @@ -1,2941 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start AreMovesContestCombo -AreMovesContestCombo: @ 80B7D24 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsls r1, 16 - ldr r2, _080B7D78 @ =gContestMoves - lsrs r0, 13 - adds r0, r2 - ldrb r4, [r0, 0x2] - mov r3, sp - lsrs r1, 13 - adds r1, r2 - ldrb r0, [r1, 0x3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x1] - ldrb r0, [r1, 0x5] - strb r0, [r2, 0x2] - mov r0, sp - ldrb r1, [r1, 0x6] - strb r1, [r0, 0x3] - cmp r4, 0 - beq _080B7D80 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x2] - cmp r4, r0 - beq _080B7D6E - cmp r4, r1 - bne _080B7D80 -_080B7D6E: - ldr r0, _080B7D7C @ =gComboStarterLookupTable - adds r0, r4, r0 - ldrb r0, [r0] - b _080B7D82 - .align 2, 0 -_080B7D78: .4byte gContestMoves -_080B7D7C: .4byte gComboStarterLookupTable -_080B7D80: - movs r0, 0 -_080B7D82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreMovesContestCombo - - thumb_func_start ContestEffect_00 -ContestEffect_00: @ 80B7D8C - bx lr - thumb_func_end ContestEffect_00 - - thumb_func_start ContestEffect_01 -ContestEffect_01: @ 80B7D90 - push {lr} - ldr r3, _080B7DB8 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DB8: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_01 - - thumb_func_start ContestEffect_02 -ContestEffect_02: @ 80B7DBC - push {lr} - ldr r3, _080B7DE4 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r3, 0x11] - movs r1, 0x1 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DE4: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_02 - - thumb_func_start ContestEffect_03 -ContestEffect_03: @ 80B7DE8 - push {r4,lr} - ldr r3, _080B7E30 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x10] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x15] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x15] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7E30: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_03 - - thumb_func_start ContestEffect_04 -ContestEffect_04: @ 80B7E34 - push {lr} - ldr r2, _080B7E58 @ =gSharedMem + 0x192D0 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0, 0x12] - ldrb r0, [r2, 0x11] - movs r1, 0x2 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E58: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_04 - - thumb_func_start ContestEffect_05 -ContestEffect_05: @ 80B7E5C - push {lr} - ldr r3, _080B7E84 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x3 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E84: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_05 - - thumb_func_start ContestEffect_06 -ContestEffect_06: @ 80B7E88 - push {lr} - ldr r2, _080B7EAC @ =gSharedMem + 0x192D0 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x14 - strb r1, [r0, 0xF] - ldrb r0, [r2, 0x11] - movs r1, 0x4 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7EAC: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_06 - - thumb_func_start ContestEffect_07 -ContestEffect_07: @ 80B7EB0 - push {lr} - ldr r3, _080B7ED8 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x5 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7ED8: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_07 - - thumb_func_start ContestEffect_08 -ContestEffect_08: @ 80B7EDC - push {r4,lr} - movs r2, 0 - ldr r3, _080B7F38 @ =gSharedMem + 0x192D0 - ldrb r0, [r3, 0x11] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - beq _080B7F1A - subs r0, 0x1 - ldrb r4, [r3] - cmp r0, r4 - beq _080B7F0A - adds r4, r3, 0 - adds r3, r1, 0 -_080B7EF8: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080B7F0A - ldrb r0, [r3] - subs r0, 0x1 - adds r1, r2, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B7EF8 -_080B7F0A: - ldr r1, _080B7F38 @ =gSharedMem + 0x192D0 - strb r2, [r1, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F1A: - cmp r2, 0 - bne _080B7F28 - ldr r0, _080B7F38 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F28: - ldr r0, _080B7F38 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7F38: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_08 - - thumb_func_start ContestEffect_09 -ContestEffect_09: @ 80B7F3C - push {r4-r6,lr} - movs r2, 0 - ldr r1, _080B7F9C @ =gSharedMem + 0x192D0 - ldrb r0, [r1, 0x11] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080B7F7C - movs r3, 0 - adds r5, r1, 0 - adds r6, r5, 0 - adds r6, 0x8 -_080B7F54: - adds r1, r2, r5 - ldrb r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bls _080B7F64 - adds r0, r3, r6 - strb r2, [r0] - adds r3, 0x1 -_080B7F64: - adds r2, 0x1 - cmp r2, 0x3 - ble _080B7F54 - ldr r0, _080B7F9C @ =gSharedMem + 0x192D0 - adds r0, 0x8 - adds r0, r3, r0 - movs r1, 0xFF - strb r1, [r0] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F7C: - cmp r2, 0 - bne _080B7F8A - ldr r0, _080B7F9C @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F8A: - ldr r0, _080B7F9C @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7F9C: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_09 - - thumb_func_start ContestEffect_14 -ContestEffect_14: @ 80B7FA0 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - cmp r0, 0x1 - bls _080B7FC2 - movs r1, 0x3C - cmp r0, 0x7 - bhi _080B7FC2 - movs r1, 0x28 -_080B7FC2: - ldr r0, _080B7FD0 @ =gSharedMem + 0x192D0 - strh r1, [r0, 0x4] - bl ContestEffect_08 - pop {r0} - bx r0 - .align 2, 0 -_080B7FD0: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_14 - - thumb_func_start ContestEffect_15 -ContestEffect_15: @ 80B7FD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r0, _080B806C @ =gSharedMem + 0x192D0 - ldrb r6, [r0, 0x11] - adds r1, r6, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B804A - movs r5, 0 - mov r4, r8 -_080B7FEE: - adds r0, r6, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8044 - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r0, 0 - beq _080B8032 - movs r1, 0xA - cmp r0, 0x2 - bls _080B8032 - movs r1, 0x14 - cmp r0, 0x4 - bls _080B8032 - movs r1, 0x1E - cmp r0, 0x6 - bls _080B8032 - movs r1, 0x3C - cmp r0, 0x8 - bhi _080B8032 - movs r1, 0x28 -_080B8032: - strh r1, [r4, 0x4] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8044 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8044: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B7FEE -_080B804A: - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x30 - bl sub_80B13EC - cmp r7, 0 - bne _080B8062 - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8062: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B806C: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_15 - - thumb_func_start ContestEffect_16 -ContestEffect_16: @ 80B8070 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8108 @ =gSharedMem + 0x192D0 - ldrb r7, [r0, 0x11] - adds r1, r7, r0 - ldrb r1, [r1] - mov r10, r0 - cmp r1, 0 - beq _080B80E0 - movs r6, 0 - mov r8, r10 - mov r5, r10 - subs r5, 0x5B -_080B8094: - mov r1, r8 - adds r0, r7, r1 - adds r1, r6, r1 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B80D8 - ldrb r1, [r5] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B80D8 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B80D8 - ldrb r0, [r5] - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x8 - bl sub_80B13EC - movs r0, 0x1 - mov r9, r0 -_080B80D8: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8094 -_080B80E0: - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x7 - bl sub_80B13EC - mov r2, r9 - cmp r2, 0 - bne _080B80FA - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B80FA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8108: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_16 - - thumb_func_start ContestEffect_17 -ContestEffect_17: @ 80B810C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8150 @ =gSharedMem + 0x192D0 - ldrb r1, [r0, 0x11] - mov r8, r1 - adds r1, r0 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _080B817C - movs r5, 0 - adds r4, r6, 0 - movs r7, 0 -_080B812E: - mov r2, r8 - adds r0, r2, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8172 - adds r0, r6, 0 - subs r0, 0x70 - adds r0, r7, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B8154 - movs r0, 0x32 - b _080B8156 - .align 2, 0 -_080B8150: .4byte gSharedMem + 0x192D0 -_080B8154: - movs r0, 0xA -_080B8156: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8172 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B8172: - adds r7, 0x1C - adds r5, 0x1 - ldr r6, _080B81A0 @ =gSharedMem + 0x192D0 - cmp r5, 0x3 - ble _080B812E -_080B817C: - ldrb r0, [r6, 0x11] - movs r1, 0x30 - bl sub_80B13EC - mov r0, r9 - cmp r0, 0 - bne _080B8192 - ldrb r0, [r6, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8192: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B81A0: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_17 - - thumb_func_start ContestEffect_18 -ContestEffect_18: @ 80B81A4 - push {r4,lr} - ldr r4, _080B81D0 @ =gSharedMem + 0x192D0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x11] - bl ContestEffect_09 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B81D0: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_18 - - thumb_func_start ContestEffect_19 -ContestEffect_19: @ 80B81D4 - push {r4,lr} - ldr r4, _080B8208 @ =gSharedMem + 0x192D0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - ldr r1, _080B820C @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - bl sub_80B9038 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8208: .4byte gSharedMem + 0x192D0 -_080B820C: .4byte gContestMoves - thumb_func_end ContestEffect_19 - - thumb_func_start ContestEffect_20 -ContestEffect_20: @ 80B8210 - push {lr} - movs r0, 0 - bl sub_80B9038 - ldr r0, _080B8228 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8228: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_20 - - thumb_func_start ContestEffect_21 -ContestEffect_21: @ 80B822C - push {lr} - movs r0, 0x1 - bl sub_80B9038 - ldr r0, _080B8244 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8244: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_21 - - thumb_func_start ContestEffect_22 -ContestEffect_22: @ 80B8248 - push {lr} - movs r0, 0x2 - bl sub_80B9038 - ldr r0, _080B8260 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8260: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_22 - - thumb_func_start ContestEffect_23 -ContestEffect_23: @ 80B8264 - push {lr} - movs r0, 0x3 - bl sub_80B9038 - ldr r0, _080B827C @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B827C: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_23 - - thumb_func_start ContestEffect_24 -ContestEffect_24: @ 80B8280 - push {lr} - movs r0, 0x4 - bl sub_80B9038 - ldr r0, _080B8298 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8298: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_24 - - thumb_func_start ContestEffect_25 -ContestEffect_25: @ 80B829C - push {r4-r7,lr} - movs r4, 0 - ldr r0, _080B82E0 @ =gSharedMem + 0x192D0 - ldrb r1, [r0, 0x11] - adds r1, r0 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0x3 - beq _080B82F4 - movs r5, 0 - adds r6, r7, 0 -_080B82B2: - ldrb r0, [r6, 0x11] - adds r0, r6 - ldrb r0, [r0] - adds r0, 0x1 - adds r1, r5, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B82EE - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B82E4 - adds r0, r4, 0 - bl sub_80B157C - adds r0, r4, 0 - movs r1, 0xA - b _080B82E8 - .align 2, 0 -_080B82E0: .4byte gSharedMem + 0x192D0 -_080B82E4: - adds r0, r4, 0 - movs r1, 0x3C -_080B82E8: - bl sub_80B13EC - movs r4, 0x1 -_080B82EE: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B82B2 -_080B82F4: - ldrb r0, [r7, 0x11] - movs r1, 0x9 - bl sub_80B13EC - cmp r4, 0 - bne _080B8308 - ldrb r0, [r7, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8308: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_25 - - thumb_func_start ContestEffect_26 -ContestEffect_26: @ 80B8310 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x18] - mov r0, sp - movs r1, 0xFF - movs r2, 0x5 - bl memset - movs r6, 0 - movs r4, 0 - add r2, sp, 0x10 - mov r8, r2 - add r3, sp, 0x8 - mov r10, r3 - ldr r5, _080B8384 @ =gSharedMem + 0x192D0 - adds r7, r5, 0 - subs r7, 0x70 -_080B8340: - ldrb r0, [r5, 0x11] - adds r0, r5 - adds r1, r6, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080B836E - ldrb r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B836E - lsls r0, r6, 24 - lsrs r0, 24 - bl Contest_IsMonsTurnDisabled - lsls r0, 24 - cmp r0, 0 - bne _080B836E - mov r1, sp - adds r0, r1, r4 - strb r6, [r0] - adds r4, 0x1 -_080B836E: - adds r7, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8340 - cmp r4, 0x1 - bne _080B8388 - movs r0, 0x3C - mov r2, r8 - strh r0, [r2] - b _080B83B6 - .align 2, 0 -_080B8384: .4byte gSharedMem + 0x192D0 -_080B8388: - cmp r4, 0x2 - bne _080B8396 - movs r0, 0x1E - mov r3, r8 - strh r0, [r3] - strh r0, [r3, 0x2] - b _080B83B6 -_080B8396: - cmp r4, 0x3 - bne _080B83A6 - movs r0, 0x14 - mov r7, r8 - strh r0, [r7] - strh r0, [r7, 0x2] - strh r0, [r7, 0x4] - b _080B83B6 -_080B83A6: - mov r1, r8 - movs r2, 0 - mov r0, r8 - adds r0, 0x6 -_080B83AE: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080B83AE -_080B83B6: - movs r6, 0 - movs r7, 0 - mov r4, r10 -_080B83BC: - ldr r0, _080B83F0 @ =gSharedMem + 0x19260 - adds r5, r7, r0 - ldrb r1, [r5, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B83FC - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _080B83FC - ldr r1, _080B83F4 @ =gContestMoves - ldrh r0, [r5, 0x8] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - ldr r1, _080B83F8 @ =gComboStarterLookupTable - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - b _080B83FE - .align 2, 0 -_080B83F0: .4byte gSharedMem + 0x19260 -_080B83F4: .4byte gContestMoves -_080B83F8: .4byte gComboStarterLookupTable -_080B83FC: - movs r0, 0 -_080B83FE: - strh r0, [r4] - ldr r5, _080B8494 @ =gSharedMem + 0x19260 - adds r0, r7, r5 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4] - subs r0, r1 - strh r0, [r4] - adds r7, 0x1C - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080B83BC - mov r2, r8 - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080B84CA - movs r6, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0xFF - beq _080B84CA - adds r5, 0x7D - mov r4, sp -_080B8442: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 1 - add r1, r8 - movs r7, 0 - ldrsh r2, [r1, r7] - ldrb r3, [r4] - lsls r1, r3, 1 - add r1, r10 - movs r7, 0 - ldrsh r1, [r1, r7] - adds r2, r1 - cmp r0, r2 - bge _080B8498 - adds r0, r3, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B84A2 - ldrb r0, [r4] - bl sub_80B157C - ldrb r0, [r4] - movs r1, 0xA - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _080B849C - .align 2, 0 -_080B8494: .4byte gSharedMem + 0x19260 -_080B8498: - movs r0, 0x1 - str r0, [sp, 0x18] -_080B849C: - ldr r1, [sp, 0x18] - cmp r1, 0 - beq _080B84B8 -_080B84A2: - movs r2, 0 - str r2, [sp, 0x18] - ldrb r0, [r4] - movs r1, 0x3C - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B84B8: - ldrb r0, [r4] - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - adds r4, 0x1 - adds r6, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080B8442 -_080B84CA: - ldr r4, _080B84F4 @ =gSharedMem + 0x192D0 - ldrb r0, [r4, 0x11] - movs r1, 0xB - bl sub_80B13EC - mov r3, r9 - cmp r3, 0 - bne _080B84E2 - ldrb r0, [r4, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B84E2: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B84F4: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_26 - - thumb_func_start ContestEffect_27 -ContestEffect_27: @ 80B84F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r6, 0 - ldr r7, _080B8580 @ =gSharedMem + 0x192D0 - adds r5, r7, 0 - subs r5, 0x63 -_080B850A: - ldrb r0, [r7, 0x11] - adds r0, r7 - adds r1, r6, r7 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8556 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - ble _080B8556 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B8556 - movs r0, 0 - strb r0, [r5] - ldrb r1, [r5, 0x3] - movs r2, 0x31 - negs r2, r2 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r5, 0x3] - adds r0, r4, 0 - movs r1, 0xD - bl sub_80B13EC - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080B8556: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B850A - ldr r4, _080B8580 @ =gSharedMem + 0x192D0 - ldrb r0, [r4, 0x11] - movs r1, 0xC - bl sub_80B13EC - mov r0, r8 - cmp r0, 0 - bne _080B8576 - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B8576: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8580: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_27 - - thumb_func_start ContestEffect_28 -ContestEffect_28: @ 80B8584 - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B85B0 @ =gSharedMem + 0x192D0 - movs r6, 0 -_080B858E: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B85CE - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080B85B4 - movs r0, 0x28 - b _080B85B6 - .align 2, 0 -_080B85B0: .4byte gSharedMem + 0x192D0 -_080B85B4: - movs r0, 0xA -_080B85B6: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B85CE - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B85CE: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B858E - ldr r4, _080B85F4 @ =gSharedMem + 0x192D0 - ldrb r0, [r4, 0x11] - movs r1, 0xE - bl sub_80B13EC - cmp r7, 0 - bne _080B85EC - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B85EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B85F4: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_28 - - thumb_func_start ContestEffect_29 -ContestEffect_29: @ 80B85F8 - push {r4,lr} - ldr r0, _080B863C @ =gUnknown_02038696 - ldr r4, _080B8640 @ =gSharedMem + 0x192D0 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080B8636 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8644 @ =gContestEffects - ldr r2, _080B8648 @ =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0xF - bl sub_80B13EC -_080B8636: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B863C: .4byte gUnknown_02038696 -_080B8640: .4byte gSharedMem + 0x192D0 -_080B8644: .4byte gContestEffects -_080B8648: .4byte gContestMoves - thumb_func_end ContestEffect_29 - - thumb_func_start ContestEffect_30 -ContestEffect_30: @ 80B864C - push {r4,lr} - ldr r0, _080B8690 @ =gUnknown_02038696 - ldr r4, _080B8694 @ =gSharedMem + 0x192D0 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080B868A - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8698 @ =gContestEffects - ldr r2, _080B869C @ =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x10 - bl sub_80B13EC -_080B868A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8690: .4byte gUnknown_02038696 -_080B8694: .4byte gSharedMem + 0x192D0 -_080B8698: .4byte gContestEffects -_080B869C: .4byte gContestMoves - thumb_func_end ContestEffect_30 - - thumb_func_start ContestEffect_31 -ContestEffect_31: @ 80B86A0 - push {r4-r7,lr} - movs r1, 0 - movs r3, 0 - ldr r4, _080B86EC @ =gSharedMem + 0x192D0 - ldrb r0, [r4, 0x11] - adds r0, r4 - ldrb r5, [r0] - movs r2, 0 - adds r6, r4, 0 - subs r6, 0x70 -_080B86B4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r5, r0 - bls _080B86C4 - adds r0, r2, r6 - movs r7, 0x2 - ldrsh r0, [r0, r7] - adds r3, r0 -_080B86C4: - adds r2, 0x1C - adds r1, 0x1 - cmp r1, 0x3 - ble _080B86B4 - cmp r3, 0 - bge _080B86D2 - movs r3, 0 -_080B86D2: - ldr r4, _080B86EC @ =gSharedMem + 0x192D0 - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080B86E2 - cmp r3, 0 - bne _080B86F0 -_080B86E2: - adds r0, r2, 0 - movs r1, 0x12 - bl sub_80B13EC - b _080B8710 - .align 2, 0 -_080B86EC: .4byte gSharedMem + 0x192D0 -_080B86F0: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - lsrs r0, r3, 31 - adds r0, r3, r0 - asrs r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x11 - bl sub_80B13EC -_080B8710: - ldr r4, _080B873C @ =gSharedMem + 0x192D0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r0, r5 - movs r7, 0x2 - ldrsh r0, [r0, r7] - bl sub_80B9224 - ldrb r2, [r4, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B873C: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_31 - - thumb_func_start ContestEffect_32 -ContestEffect_32: @ 80B8740 - push {r4-r7,lr} - movs r6, 0 - ldr r0, _080B8794 @ =gSharedMem + 0x192D0 - ldrb r1, [r0, 0x11] - adds r3, r1, r0 - ldrb r1, [r3] - adds r4, r0, 0 - cmp r1, 0 - beq _080B8788 - movs r2, 0 - adds r7, r4, 0 - adds r0, r1, 0 - subs r1, r0, 0x1 - movs r3, 0 - adds r5, r4, 0 - subs r5, 0x70 -_080B8760: - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _080B876C - adds r0, r3, r5 - ldrh r6, [r0, 0x2] -_080B876C: - adds r3, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B8760 - adds r0, r4, 0 - ldrb r2, [r0, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8788 - lsls r0, r6, 16 - asrs r3, r0, 16 - cmp r3, 0 - bgt _080B8798 -_080B8788: - ldrb r0, [r4, 0x11] - movs r1, 0x14 - bl sub_80B13EC - b _080B87B2 - .align 2, 0 -_080B8794: .4byte gSharedMem + 0x192D0 -_080B8798: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x2] - adds r0, r3, r0 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x13 - bl sub_80B13EC -_080B87B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_32 - - thumb_func_start ContestEffect_33 -ContestEffect_33: @ 80B87B8 - push {lr} - ldr r0, _080B87D8 @ =gSharedMem + 0x192D0 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r3, [r1] - mov r12, r0 - cmp r3, 0 - bne _080B87DC - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - movs r1, 0xA - b _080B87EE - .align 2, 0 -_080B87D8: .4byte gSharedMem + 0x192D0 -_080B87DC: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 -_080B87EE: - strh r1, [r0, 0x2] - cmp r3, 0 - bne _080B8800 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x15 - bl sub_80B13EC - b _080B882A -_080B8800: - cmp r3, 0x1 - bne _080B8810 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x16 - bl sub_80B13EC - b _080B882A -_080B8810: - cmp r3, 0x2 - bne _080B8820 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x17 - bl sub_80B13EC - b _080B882A -_080B8820: - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x18 - bl sub_80B13EC -_080B882A: - pop {r0} - bx r0 - thumb_func_end ContestEffect_33 - - thumb_func_start ContestEffect_34 -ContestEffect_34: @ 80B8830 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - bhi _080B885C - movs r4, 0xA - ldr r0, _080B8858 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8858: .4byte gSharedMem + 0x192D0 -_080B885C: - cmp r0, 0x5 - bhi _080B8874 - movs r4, 0x14 - ldr r0, _080B8870 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8870: .4byte gSharedMem + 0x192D0 -_080B8874: - cmp r0, 0x7 - bhi _080B888C - movs r4, 0x28 - ldr r0, _080B8888 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8888: .4byte gSharedMem + 0x192D0 -_080B888C: - cmp r1, 0x8 - bhi _080B88A4 - movs r4, 0x3C - ldr r0, _080B88A0 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B88A0: .4byte gSharedMem + 0x192D0 -_080B88A4: - movs r4, 0x50 - ldr r0, _080B88C8 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B88B0: - ldr r0, _080B88C8 @ =gSharedMem + 0x192D0 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B88C8: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_34 - - thumb_func_start ContestEffect_35 -ContestEffect_35: @ 80B88CC - push {r4-r7,lr} - ldr r1, _080B8940 @ =gSharedMem + 0x192D0 - ldrb r0, [r1, 0x11] - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r12, r1 - cmp r2, 0 - beq _080B8994 - ldrb r5, [r1] - mov r6, r12 - subs r6, 0x70 -_080B88EA: - movs r2, 0 - lsls r0, r4, 24 - asrs r1, r0, 24 - adds r4, r0, 0 - cmp r5, r1 - beq _080B8910 - ldr r3, _080B8940 @ =gSharedMem + 0x192D0 -_080B88F8: - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080B8910 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080B88F8 -_080B8910: - lsls r2, 24 - asrs r1, r2, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r6 - ldrb r1, [r3, 0xB] - movs r0, 0x80 - ands r0, r1 - adds r7, r2, 0 - cmp r0, 0 - bne _080B8932 - ldrb r1, [r3, 0xC] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080B8944 -_080B8932: - movs r1, 0xFF - lsls r1, 24 - adds r0, r4, r1 - lsrs r4, r0, 24 - cmp r0, 0 - blt _080B8994 - b _080B88EA - .align 2, 0 -_080B8940: .4byte gSharedMem + 0x192D0 -_080B8944: - mov r2, r12 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r3, r12 - subs r3, 0x70 - adds r5, r0, r3 - ldrh r0, [r5, 0x6] - ldr r4, _080B899C @ =gContestMoves - lsls r0, 3 - adds r6, r0, r4 - ldrb r2, [r6, 0x1] - lsls r2, 29 - asrs r1, r7, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x6] - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r2, r0 - bne _080B8994 - ldr r1, _080B89A0 @ =gContestEffects - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - mov r2, r12 - ldrb r0, [r2, 0x11] - movs r1, 0x1F - bl sub_80B13EC -_080B8994: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B899C: .4byte gContestMoves -_080B89A0: .4byte gContestEffects - thumb_func_end ContestEffect_35 - - thumb_func_start ContestEffect_36 -ContestEffect_36: @ 80B89A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080B8A28 @ =gSharedMem + 0x192D0 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B8A3C - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r8 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - mov r9, r0 - movs r4, 0 - mov r6, r8 - ldr r0, _080B8A2C @ =gContestMoves - mov r12, r0 - movs r7, 0 -_080B89D4: - ldrb r2, [r6, 0x11] - adds r0, r2, r6 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r4, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8A34 - mov r1, r9 - lsls r0, r1, 3 - mov r1, r12 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - lsls r1, 29 - mov r5, r8 - subs r5, 0x70 - adds r0, r7, r5 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r12 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r1, r0 - beq _080B8A34 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldr r2, _080B8A30 @ =gContestEffects - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r6, 0x11] - movs r1, 0x20 - bl sub_80B13EC - b _080B8A3C - .align 2, 0 -_080B8A28: .4byte gSharedMem + 0x192D0 -_080B8A2C: .4byte gContestMoves -_080B8A30: .4byte gContestEffects -_080B8A34: - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080B89D4 -_080B8A3C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_36 - - thumb_func_start ContestEffect_37 -ContestEffect_37: @ 80B8A48 - push {r4-r7,lr} - ldr r1, _080B8A94 @ =gSharedMem + 0x192D0 - ldrb r0, [r1, 0x11] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8AB0 - movs r5, 0 - adds r4, r1, 0 - adds r6, r4, 0 - subs r6, 0x70 - adds r7, r6, 0 -_080B8A60: - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8AA8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r2, r0, r7 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r1, r0 - ble _080B8A98 - adds r0, r1, 0 - lsls r0, 1 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x21 - bl sub_80B13EC - b _080B8AA8 - .align 2, 0 -_080B8A94: .4byte gSharedMem + 0x192D0 -_080B8A98: - cmp r1, r0 - bge _080B8AA8 - movs r0, 0 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x22 - bl sub_80B13EC -_080B8AA8: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8A60 -_080B8AB0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_37 - - thumb_func_start ContestEffect_38 -ContestEffect_38: @ 80B8AB8 - push {r4,r5,lr} - ldr r4, _080B8AFC @ =gSharedMem + 0x192D0 - ldrb r2, [r4, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r1, r0, r5 - ldrb r3, [r1, 0xD] - movs r0, 0xD - ldrsb r0, [r1, r0] - cmp r0, 0x1D - bgt _080B8B00 - adds r0, r3, 0 - adds r0, 0xA - strb r0, [r1, 0xD] - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r2, [r0, 0x10] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r4, 0x11] - movs r1, 0x23 - bl sub_80B13EC - b _080B8B08 - .align 2, 0 -_080B8AFC: .4byte gSharedMem + 0x192D0 -_080B8B00: - adds r0, r2, 0 - movs r1, 0x3A - bl sub_80B13EC -_080B8B08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestEffect_38 - - thumb_func_start ContestEffect_39 -ContestEffect_39: @ 80B8B10 - push {r4,lr} - ldr r3, _080B8B48 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x11] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080B8B4C - adds r0, r1, 0 - movs r1, 0x24 - bl sub_80B13EC - b _080B8B54 - .align 2, 0 -_080B8B48: .4byte gSharedMem + 0x192D0 -_080B8B4C: - adds r0, r1, 0 - movs r1, 0x3B - bl sub_80B13EC -_080B8B54: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestEffect_39 - - thumb_func_start ContestEffect_40 -ContestEffect_40: @ 80B8B5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, _080B8BE4 @ =gSharedMem + 0x19204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8B6E - b _080B8C76 -_080B8B6E: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8B78: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8B78 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 -_080B8BAE: - movs r5, 0 -_080B8BB0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r0, r12 - ldrb r0, [r0, 0x11] - cmp r2, r0 - beq _080B8BE8 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r1, sp - adds r4, r1, r2 - ldrb r0, [r4] - cmp r3, r0 - bne _080B8BE8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8BE8 - adds r0, r3, 0x1 - strb r0, [r4] - b _080B8BF8 - .align 2, 0 -_080B8BE4: .4byte gSharedMem + 0x19204 -_080B8BE8: - lsls r0, r5, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BB0 -_080B8BF8: - cmp r5, 0x4 - beq _080B8C0C - lsls r0, r6, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BAE -_080B8C0C: - ldrb r0, [r7, 0x11] - mov r4, sp - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8C32: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8C32 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x25 - bl sub_80B13EC -_080B8C76: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_40 - - thumb_func_start ContestEffect_41 -ContestEffect_41: @ 80B8C84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _080B8D14 @ =gSharedMem + 0x19204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8C98 - b _080B8DA6 -_080B8C98: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8CA2: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8CA2 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0x3 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 -_080B8CDE: - movs r5, 0 -_080B8CE0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r1, r12 - ldrb r1, [r1, 0x11] - cmp r2, r1 - beq _080B8D18 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080B8D18 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8D18 - subs r0, r3, 0x1 - strb r0, [r4] - b _080B8D28 - .align 2, 0 -_080B8D14: .4byte gSharedMem + 0x19204 -_080B8D18: - lsls r0, r5, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8CE0 -_080B8D28: - cmp r5, 0x4 - beq _080B8D3C - lsls r0, r6, 24 - movs r4, 0xFF - lsls r4, 24 - adds r0, r4 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r9 - bgt _080B8CDE -_080B8D3C: - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0x3 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8D62: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8D62 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x26 - bl sub_80B13EC -_080B8DA6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_41 - - thumb_func_start ContestEffect_42 -ContestEffect_42: @ 80B8DB4 - bx lr - thumb_func_end ContestEffect_42 - - thumb_func_start ContestEffect_43 -ContestEffect_43: @ 80B8DB8 - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _080B8E30 @ =gSharedMem + 0x19204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _080B8EAE - movs r6, 0 - add r3, sp, 0x4 - adds r5, r1, 0 - adds r5, 0x5C - adds r4, r3, 0 -_080B8DCE: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r0, r4, r1 - strb r6, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8DCE - movs r6, 0 - adds r7, r3, 0 -_080B8DF6: - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r2, r6, 24 - asrs r2, 24 - movs r1, 0x4 - subs r1, r2 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0 -_080B8E10: - lsls r0, r1, 24 - asrs r2, r0, 24 - adds r3, r7, r2 - ldrb r1, [r3] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080B8E3A - cmp r4, 0 - bne _080B8E34 - mov r1, sp - adds r0, r1, r2 - strb r6, [r0] - movs r0, 0xFF - strb r0, [r3] - b _080B8E48 - .align 2, 0 -_080B8E30: .4byte gSharedMem + 0x19204 -_080B8E34: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080B8E3A: - movs r3, 0x80 - lsls r3, 17 - adds r0, r5, r3 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8E10 -_080B8E48: - lsls r0, r6, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8DF6 - movs r6, 0 - ldr r4, _080B8EB8 @ =gSharedMem + 0x192D0 - adds r7, r4, 0 - subs r7, 0x70 - movs r3, 0x3F - mov r12, r3 - movs r5, 0x80 -_080B8E66: - lsls r2, r6, 24 - asrs r2, 24 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - mov r3, sp - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, 0x19] - ldrb r3, [r1, 0x10] - mov r0, r12 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, 0x10] - adds r2, 0x1 - lsls r2, 24 - lsrs r6, r2, 24 - asrs r2, 24 - cmp r2, 0x3 - ble _080B8E66 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r4, 0x11] - movs r1, 0x27 - bl sub_80B13EC -_080B8EAE: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8EB8: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_43 - - thumb_func_start ContestEffect_44 -ContestEffect_44: @ 80B8EBC - push {lr} - ldr r3, _080B8EF0 @ =gContestMoves - ldr r1, _080B8EF4 @ =gSharedMem + 0x192D0 - ldrb r2, [r1, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrh r0, [r2, 0x6] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 29 - ldr r1, _080B8EF8 @ =gSpecialVar_ContestCategory - lsrs r0, 29 - ldrh r1, [r1] - cmp r0, r1 - beq _080B8EEA - ldrb r0, [r2, 0x11] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x11] -_080B8EEA: - pop {r0} - bx r0 - .align 2, 0 -_080B8EF0: .4byte gContestMoves -_080B8EF4: .4byte gSharedMem + 0x192D0 -_080B8EF8: .4byte gSpecialVar_ContestCategory - thumb_func_end ContestEffect_44 - - thumb_func_start ContestEffect_45 -ContestEffect_45: @ 80B8EFC - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B8F34 @ =gSharedMem + 0x192D0 - movs r6, 0 -_080B8F06: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8F52 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r6, r0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0 - ble _080B8F38 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x4] - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl sub_80B9268 - b _080B8F3A - .align 2, 0 -_080B8F34: .4byte gSharedMem + 0x192D0 -_080B8F38: - movs r0, 0xA -_080B8F3A: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8F52 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8F52: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8F06 - cmp r7, 0 - bne _080B8F68 - ldr r0, _080B8F78 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8F68: - ldr r0, _080B8F78 @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8F78: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_45 - - thumb_func_start ContestEffect_46 -ContestEffect_46: @ 80B8F7C - push {r4,lr} - ldr r0, _080B8F98 @ =gSharedMem + 0x19204 - movs r1, 0x13 - ldrsb r1, [r0, r1] - cmp r1, 0 - bne _080B8F9C - movs r4, 0xA - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B8FDE - .align 2, 0 -_080B8F98: .4byte gSharedMem + 0x19204 -_080B8F9C: - cmp r1, 0x1 - bne _080B8FAE - movs r4, 0x14 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B8FDE -_080B8FAE: - cmp r1, 0x2 - bne _080B8FC0 - movs r4, 0x1E - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B8FDE -_080B8FC0: - cmp r1, 0x3 - bne _080B8FD2 - movs r4, 0x32 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B8FDE -_080B8FD2: - movs r4, 0x3C - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B8FDE: - ldr r0, _080B8FF4 @ =gSharedMem + 0x192D0 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8FF4: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_46 - - thumb_func_start ContestEffect_47 -ContestEffect_47: @ 80B8FF8 - push {lr} - ldr r3, _080B9034 @ =gSharedMem + 0x19328 - ldrb r2, [r3, 0x1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080B902E - movs r0, 0x1 - orrs r2, r0 - movs r0, 0x58 - negs r0, r0 - adds r0, r3 - mov r12, r0 - ldrb r1, [r0, 0x11] - movs r0, 0x7 - ands r0, r1 - lsls r0, 1 - movs r1, 0xF - negs r1, r1 - ands r2, r1 - orrs r2, r0 - strb r2, [r3, 0x1] - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x3D - bl sub_80B13EC -_080B902E: - pop {r0} - bx r0 - .align 2, 0 -_080B9034: .4byte gSharedMem + 0x19328 - thumb_func_end ContestEffect_47 - - thumb_func_start sub_80B9038 -sub_80B9038: @ 80B9038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 - ldr r4, _080B907C @ =gSharedMem + 0x192D0 - ldr r0, _080B9080 @ =gContestMoves - mov r9, r0 - movs r6, 0 -_080B9052: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B909A - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - cmp r8, r0 - bne _080B9084 - movs r0, 0x28 - b _080B9086 - .align 2, 0 -_080B907C: .4byte gSharedMem + 0x192D0 -_080B9080: .4byte gContestMoves -_080B9084: - movs r0, 0xA -_080B9086: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B909A - adds r7, 0x1 -_080B909A: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B9052 - cmp r7, 0 - bne _080B90B0 - ldr r0, _080B90BC @ =gSharedMem + 0x192D0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B90B0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B90BC: .4byte gSharedMem + 0x192D0 - thumb_func_end sub_80B9038 - - thumb_func_start sub_80B90C0 -sub_80B90C0: @ 80B90C0 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B90EC @ =gSharedMem + 0x192D0 - adds r0, r2, 0 - adds r0, 0xD - adds r0, r3, r0 - movs r1, 0x1 - strb r1, [r0] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - subs r2, 0x70 - adds r2, r0, r2 - ldrb r1, [r2, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B90F0 - adds r0, r3, 0 - movs r1, 0x2D - b _080B9116 - .align 2, 0 -_080B90EC: .4byte gSharedMem + 0x192D0 -_080B90F0: - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _080B910E - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B911A - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080B911A - movs r0, 0x1 - b _080B911C -_080B910E: - subs r0, 0x1 - strb r0, [r2, 0x12] - adds r0, r3, 0 - movs r1, 0x2C -_080B9116: - bl sub_80B13EC -_080B911A: - movs r0, 0 -_080B911C: - pop {r1} - bx r1 - thumb_func_end sub_80B90C0 - - thumb_func_start sub_80B9120 -sub_80B9120: @ 80B9120 - push {r4-r7,lr} - sub sp, 0xC - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - movs r7, 0 - ldr r1, _080B918C @ =gSharedMem + 0x192D0 - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _080B91D8 - adds r5, r1, 0 -_080B913A: - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r4, [r0] - adds r6, r4, 0 - adds r0, r4, 0 - str r1, [sp, 0x8] - bl sub_80B90C0 - lsls r0, 24 - ldr r1, [sp, 0x8] - cmp r0, 0 - beq _080B91C8 - ldrh r0, [r1, 0x4] - strh r0, [r1, 0x6] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrb r1, [r2, 0x10] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B9174 - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 1 - strh r0, [r5, 0x6] -_080B9174: - ldrb r0, [r2, 0x10] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _080B9190 - movs r0, 0xA - strh r0, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2F - bl sub_80B13EC - b _080B91C8 - .align 2, 0 -_080B918C: .4byte gSharedMem + 0x192D0 -_080B9190: - ldrb r1, [r2, 0xF] - ldrh r0, [r5, 0x6] - subs r0, r1 - adds r1, r0, 0 - strh r0, [r5, 0x6] - lsls r0, 16 - cmp r0, 0 - bgt _080B91AC - strh r3, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2E - bl sub_80B13EC - b _080B91C8 -_080B91AC: - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_80B9200 - ldrb r1, [r5, 0x6] - adds r0, r6, 0 - bl sub_80B141C - lsls r0, r6, 1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r5, 0x6] - strh r0, [r1] -_080B91C8: - adds r7, 0x1 - ldr r1, _080B91E8 @ =gSharedMem + 0x192D0 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080B913A -_080B91D8: - movs r7, 0 - mov r1, sp -_080B91DC: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B91EC - movs r0, 0x1 - b _080B91F6 - .align 2, 0 -_080B91E8: .4byte gSharedMem + 0x192D0 -_080B91EC: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _080B91DC - movs r0, 0 -_080B91F6: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B9120 - - thumb_func_start sub_80B9200 -sub_80B9200: @ 80B9200 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r0, _080B9220 @ =gSharedMem + 0x19260 - adds r2, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - strh r0, [r2, 0x2] - ldrb r0, [r2, 0xE] - adds r1, r0 - strb r1, [r2, 0xE] - bx lr - .align 2, 0 -_080B9220: .4byte gSharedMem + 0x19260 - thumb_func_end sub_80B9200 - - thumb_func_start sub_80B9224 -sub_80B9224: @ 80B9224 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9234 - negs r0, r4 -_080B9234: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, 0 - bge _080B9252 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B925C - adds r0, r4, 0 - subs r0, 0xA - adds r0, r1, r0 - b _080B9258 -_080B9252: - lsls r0, 16 - asrs r0, 16 - subs r0, r4, r0 -_080B9258: - lsls r0, 16 - lsrs r5, r0, 16 -_080B925C: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9224 - - thumb_func_start sub_80B9268 -sub_80B9268: @ 80B9268 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9278 - negs r0, r4 -_080B9278: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B9290 - adds r0, r4, 0 - adds r0, 0xA - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B9290: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9268 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/cute_sketch.s b/asm/contest_painting_effects.s index bc72a6ef5..bc72a6ef5 100644 --- a/asm/cute_sketch.s +++ b/asm/contest_painting_effects.s diff --git a/asm/current.s b/asm/current.s index fa3fec58a..2010b0336 100644 --- a/asm/current.s +++ b/asm/current.s @@ -21,7 +21,7 @@ sub_80D648C: @ 80D648C ldr r6, _080D6504 @ =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -29,7 +29,7 @@ sub_80D648C: @ 80D648C strh r0, [r4, 0x34] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -188,7 +188,7 @@ sub_80D65DC: @ 80D65DC beq _080D65FE ldr r0, _080D664C @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D6606 @@ -201,7 +201,7 @@ _080D6606: ldr r5, _080D664C @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, _080D6650 @ =gBattleAnimArgs lsrs r0, 24 @@ -210,7 +210,7 @@ _080D6606: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -266,7 +266,7 @@ _080D667E: cmp r0, 0 beq _080D669C adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D66A4 @@ -278,7 +278,7 @@ _080D669C: _080D66A4: adds r0, r6, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, _080D6718 @ =gBattleAnimArgs lsrs r0, 24 @@ -287,7 +287,7 @@ _080D66A4: strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x2] @@ -465,7 +465,7 @@ sub_80D681C: @ 80D681C ldr r6, _080D6864 @ =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord ldr r1, _080D6868 @ =gTasks lsls r4, r5, 2 adds r4, r5 @@ -479,7 +479,7 @@ sub_80D681C: @ 80D681C strh r0, [r4, 0x8] ldrb r0, [r6] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] @@ -887,13 +887,13 @@ _080D6B68: _080D6B6A: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] @@ -1120,13 +1120,13 @@ _080D6D34: _080D6D36: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1163,13 +1163,13 @@ _080D6D8C: _080D6D8E: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1202,25 +1202,25 @@ sub_80D6DD8: @ 80D6DD8 ldr r4, _080D6E30 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1326,7 +1326,7 @@ _080D6ECE: b _080D7000 _080D6ED0: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r6, 0 @@ -1334,12 +1334,12 @@ _080D6ED0: ldr r4, _080D6F04 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D6F0C @@ -1515,7 +1515,7 @@ _080D703A: _080D703C: ldr r4, _080D707C @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -1551,13 +1551,13 @@ _080D7084: .4byte 0x0000fff0 _080D7088: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -1577,13 +1577,13 @@ _080D70B0: ldr r4, _080D70E4 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r2, 0xA @@ -1829,13 +1829,13 @@ _080D728E: ldr r4, _080D72BC @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1899,13 +1899,13 @@ _080D731C: ldr r4, _080D73A0 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -1914,7 +1914,7 @@ _080D731C: ldr r0, _080D73A4 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -2257,7 +2257,7 @@ _080D75CA: ldr r0, _080D7614 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -2279,7 +2279,7 @@ _080D75F4: ldr r4, _080D7614 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] diff --git a/asm/battle_1.s b/asm/decompress.s index 99e449d8f..99e449d8f 100644 --- a/asm/battle_1.s +++ b/asm/decompress.s diff --git a/asm/flying.s b/asm/flying.s index 1862e3218..72d1e3bdc 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -177,7 +177,7 @@ sub_80DA16C: @ 80DA16C bl InitAnimSpritePos ldr r0, _080DA1D8 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DA18C @@ -194,7 +194,7 @@ _080DA18C: ldr r5, _080DA1E0 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -204,7 +204,7 @@ _080DA18C: strh r0, [r6, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -250,7 +250,7 @@ sub_80DA208: @ 80DA208 adds r5, r0, 0 ldr r4, _080DA2A4 @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DA234 @@ -282,13 +282,13 @@ _080DA234: _080DA24C: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r2, _080DA2A8 @ =gBattleAnimArgs ldrh r1, [r2] @@ -308,13 +308,13 @@ _080DA24C: ldr r4, _080DA2AC @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -374,7 +374,7 @@ sub_80DA300: @ 80DA300 ldr r0, _080DA340 @ =sub_80DA348 str r0, [r4, 0x1C] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080DA344 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -441,7 +441,7 @@ sub_80DA38C: @ 80DA38C adds r5, r0, 0 ldr r0, _080DA3B4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DA3BC @@ -470,7 +470,7 @@ _080DA3C2: ldr r4, _080DA408 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -478,7 +478,7 @@ _080DA3C2: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -537,7 +537,7 @@ _080DA438: ble _080DA480 _080DA45A: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080DA488 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -627,7 +627,7 @@ _080DA500: _080DA502: ldrb r6, [r0] adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080DA518 @@ -638,7 +638,7 @@ _080DA502: _080DA518: adds r0, r6, 0 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, _080DA5B4 @ =gBattleAnimArgs lsrs r0, 24 @@ -647,7 +647,7 @@ _080DA518: strh r0, [r7, 0x20] adds r0, r6, 0 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 @@ -1733,13 +1733,13 @@ sub_80DAD30: @ 80DAD30 ldr r5, _080DAD7C @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -1784,7 +1784,7 @@ sub_80DAD84: @ 80DAD84 beq _080DADE0 adds r0, r2, 0 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -1799,7 +1799,7 @@ _080DADDC: .4byte gAnimBankTarget _080DADE0: adds r0, r2, 0 movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x28 @@ -1849,7 +1849,7 @@ _080DAE44: ldr r0, _080DAEFC @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -2102,7 +2102,7 @@ _080DB024: bne _080DB03C ldr r0, _080DB090 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DB052 @@ -2113,7 +2113,7 @@ _080DB03C: bne _080DB058 ldr r0, _080DB094 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080DB058 @@ -2239,13 +2239,13 @@ sub_80DB0E8: @ 80DB0E8 ldr r5, _080DB190 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -2293,7 +2293,7 @@ _080DB1A6: movs r1, 0x1 bl InitAnimSpritePos movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080DB1D4 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -2349,7 +2349,7 @@ _080DB210: ldr r0, _080DB228 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -2385,7 +2385,7 @@ _080DB240: cmp r0, r1 bge _080DB27E movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080DB284 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -2423,7 +2423,7 @@ sub_80DB288: @ 80DB288 ldr r0, _080DB2C8 @ =sub_80DB2D0 str r0, [r4, 0x1C] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080DB2CC @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -2566,13 +2566,13 @@ _080DB3A0: _080DB3A2: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2726,13 +2726,13 @@ _080DB4D4: _080DB4D6: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -2885,14 +2885,14 @@ sub_80DB5E4: @ 80DB5E4 ldr r6, _080DB698 @ =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -3012,7 +3012,7 @@ unref_sub_80DB6E4: @ 80DB6E4 cmp r0, 0 bne _080DB71C movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, _080DB718 @ =gSprites @@ -3030,7 +3030,7 @@ _080DB714: .4byte gBattleAnimArgs _080DB718: .4byte gSprites _080DB71C: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, _080DB748 @ =gSprites diff --git a/asm/ghost.s b/asm/ghost.s index b5620910b..59671ec7f 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -21,7 +21,7 @@ sub_80DDB6C: @ 80DDB6C ldr r5, _080DDBCC @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -29,7 +29,7 @@ sub_80DDB6C: @ 80DDB6C strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -358,7 +358,7 @@ sub_80DDDF0: @ 80DDDF0 adds r0, r2, 0 strh r0, [r1] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -475,7 +475,7 @@ sub_80DDED0: @ 80DDED0 _080DDEF4: .4byte gTasks _080DDEF8: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r4, 0x8] @@ -524,7 +524,7 @@ sub_80DDF40: @ 80DDF40 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -533,7 +533,7 @@ sub_80DDF40: @ 80DDF40 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -643,13 +643,13 @@ _080DE032: ldr r4, _080DE098 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -706,13 +706,13 @@ _080DE09C: ldr r4, _080DE0EC @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -888,7 +888,7 @@ _080DE1E0: strh r1, [r0, 0x2E] ldr r0, _080DE250 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080DE258 @@ -1127,7 +1127,7 @@ sub_80DE3D4: @ 80DE3D4 adds r5, r0, r1 ldr r0, _080DE410 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -1219,7 +1219,7 @@ _080DE464: movs r0, 0x10 strh r0, [r5, 0xE] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1487,7 +1487,7 @@ sub_80DE6B0: @ 80DE6B0 adds r4, r0, r1 ldr r0, _080DE6E4 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -1511,7 +1511,7 @@ _080DE6EE: movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] @@ -1620,12 +1620,12 @@ sub_80DE7B8: @ 80DE7B8 ldr r4, _080DE7F8 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -1642,12 +1642,12 @@ _080DE800: ldr r4, _080DE8C8 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -1658,13 +1658,13 @@ _080DE800: _080DE824: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 @@ -1816,7 +1816,7 @@ sub_80DE918: @ 80DE918 ldr r4, _080DEA74 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -1868,7 +1868,7 @@ _080DE98A: beq _080DEA56 adds r0, r4, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -2261,7 +2261,7 @@ sub_80DECB0: @ 80DECB0 strh r0, [r1] ldr r0, _080DED08 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080DECF4 @@ -2542,7 +2542,7 @@ sub_80DEF3C: @ 80DEF3C bl InitAnimSpritePos ldr r0, _080DEF68 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080DEF70 @@ -2746,7 +2746,7 @@ sub_80DF0B8: @ 80DF0B8 strh r0, [r4, 0x24] ldr r0, _080DF120 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DF0DC @@ -2880,7 +2880,7 @@ sub_80DF1A4: @ 80DF1A4 ldr r5, _080DF240 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -2993,7 +2993,7 @@ _080DF292: strh r7, [r5, 0x2E] ldr r0, _080DF2FC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide movs r1, 0 lsls r0, 24 cmp r0, 0 diff --git a/asm/ground.s b/asm/ground.s index ac3f909b5..82e56fcc0 100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -14,13 +14,13 @@ sub_80E0F1C: @ 80E0F1C ldr r5, _080E0F74 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -29,13 +29,13 @@ sub_80E0F1C: @ 80E0F1C ldr r5, _080E0F78 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -79,13 +79,13 @@ sub_80E0F84: @ 80E0F84 ldr r4, _080E0FE0 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -128,7 +128,7 @@ sub_80E1004: @ 80E1004 bl sub_8078764 ldr r0, _080E1064 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E1024 @@ -143,7 +143,7 @@ _080E1024: ldr r5, _080E106C @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -151,7 +151,7 @@ _080E1024: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -264,7 +264,7 @@ sub_80E1108: @ 80E1108 ldr r4, _080E1174 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x2] @@ -272,7 +272,7 @@ sub_80E1108: @ 80E1108 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] @@ -475,13 +475,13 @@ _080E12B0: .4byte _080E1414 _080E12C4: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E12EC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -670,7 +670,7 @@ sub_80E143C: @ 80E143C lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, _080E147C @ =gSprites @@ -689,7 +689,7 @@ sub_80E143C: @ 80E143C strh r4, [r1, 0x26] ldr r0, _080E1480 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -768,7 +768,7 @@ sub_80E14DC: @ 80E14DC _080E14FC: .4byte gTasks _080E1500: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -848,13 +848,13 @@ _080E158C: .4byte _080E165C _080E15A0: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E15C4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -1082,7 +1082,7 @@ _080E1746: _080E1762: adds r0, r4, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -1152,7 +1152,7 @@ _080E17EA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r2, _080E184C @ =0x0000fff0 @@ -1288,7 +1288,7 @@ _080E18F8: _080E1904: .4byte gBankSpriteIds _080E1908: ldrb r0, [r6] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -1700,7 +1700,7 @@ _080E1BE2: adds r4, r0 adds r0, r5, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x20 @@ -1711,7 +1711,7 @@ _080E1BE2: strh r1, [r4, 0xA] adds r0, r5, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x40 @@ -65,26 +65,26 @@ sub_80D7704: @ 80D7704 ldr r4, _080D7814 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080D7818 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080D781C @ =gBattleAnimArgs @@ -329,13 +329,13 @@ sub_80D792C: @ 80D792C ldr r0, _080D7960 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r0, _080D7964 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D796C @@ -359,7 +359,7 @@ _080D7976: ldr r0, _080D79A8 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 ldr r1, _080D79A4 @ =gBattleAnimArgs lsrs r0, 24 @@ -409,7 +409,7 @@ _080D79D0: bl SetAverageBattlerPositions ldr r0, _080D7A1C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D79F6 @@ -495,13 +495,13 @@ sub_80D7A64: @ 80D7A64 ldr r4, _080D7AB0 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -523,7 +523,7 @@ _080D7AB4: _080D7AC6: ldr r0, _080D7AE4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D7AEC @@ -649,7 +649,7 @@ sub_80D7BA0: @ 80D7BA0 strh r0, [r4, 0x2E] ldr r0, _080D7BFC @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldr r1, _080D7C00 @ =0x0000ffec cmp r0, 0 @@ -687,7 +687,7 @@ sub_80D7C08: @ 80D7C08 adds r4, r0, 0 ldr r0, _080D7C5C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldr r1, _080D7C60 @ =0x0000ffec cmp r0, 0 @@ -810,13 +810,13 @@ sub_80D7CD4: @ 80D7CD4 ldr r4, _080D7D1C @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -836,7 +836,7 @@ _080D7D20: _080D7D32: ldr r0, _080D7D54 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D7D5C @@ -1039,7 +1039,7 @@ _080D7EAC: bl SetAverageBattlerPositions ldr r0, _080D7EF0 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D7ED2 @@ -1108,7 +1108,7 @@ _080D7F34: movs r1, 0 bl SetAverageBattlerPositions ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D7F60 @@ -1154,7 +1154,7 @@ _080D7F92: movs r1, 0 bl SetAverageBattlerPositions ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D7FBC @@ -1201,7 +1201,7 @@ _080D7FF6: strh r0, [r5, 0x3A] ldr r0, _080D803C @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D800C @@ -1686,13 +1686,13 @@ sub_80D83E0: @ 80D83E0 ldr r5, _080D840C @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -2074,12 +2074,12 @@ sub_80D8700: @ 80D8700 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord adds r4, r0, 0 ldr r7, _080D87F0 @ =gAnimBankTarget ldrb r0, [r7] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -2119,7 +2119,7 @@ _080D8734: cmp r0, 0 bne _080D8790 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r2, _080D87F8 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -2140,13 +2140,13 @@ _080D8794: ldr r4, _080D87EC @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2162,7 +2162,7 @@ _080D8794: ldr r4, _080D87F0 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -2189,7 +2189,7 @@ _080D87FC: ldr r4, _080D886C @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -2202,7 +2202,7 @@ _080D87FC: ldrb r0, [r4] movs r1, 0x1 _080D8824: - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] @@ -2301,7 +2301,7 @@ _080D88D6: ldr r6, _080D8928 @ =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] @@ -2701,7 +2701,7 @@ sub_80D8BA8: @ 80D8BA8 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByIdentity + bl GetBattlerAtPosition lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -2713,12 +2713,12 @@ sub_80D8BA8: @ 80D8BA8 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 @@ -3032,7 +3032,7 @@ _080D8E6A: strh r0, [r5, 0x2E] ldr r0, _080D8ED4 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D8E92 @@ -3043,7 +3043,7 @@ _080D8E92: ldr r4, _080D8ED8 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -3051,7 +3051,7 @@ _080D8E92: strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s deleted file mode 100644 index 21092fe4b..000000000 --- a/asm/nakamura_debug_menu.s +++ /dev/null @@ -1,4686 +0,0 @@ -.if DEBUG - - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .text - - thumb_func_start debug_sub_815F1B8 -debug_sub_815F1B8: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0xe - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r3, ._1 @ _843E3DC - mov r0, #0x10 - mov r1, #0x1 - mov r2, #0x9 - bl Menu_PrintItems - mov r0, #0x0 - str r0, [sp] - mov r0, #0xe - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0xf - mov r2, #0x1 - mov r3, #0x9 - bl InitMenu - add sp, sp, #0x8 - pop {r0} - bx r0 -._2: - .align 2, 0 -._1: - .word _843E3DC - - thumb_func_end debug_sub_815F1B8 - - thumb_func_start InitNakamuraDebugMenu -InitNakamuraDebugMenu: - push {lr} - bl debug_sub_815F1B8 - ldr r1, ._3 @ gMenuCallback - ldr r0, ._3 + 4 @ debug_sub_815F214 - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._4: - .align 2, 0 -._3: - .word gMenuCallback - .word debug_sub_815F214+1 - - thumb_func_end InitNakamuraDebugMenu - - thumb_func_start debug_sub_815F214 -debug_sub_815F214: - push {r4, lr} - ldr r4, ._9 @ gMain - ldrh r1, [r4, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._5 @cond_branch - mov r0, #0x1 - neg r0, r0 - bl Menu_MoveCursor -._5: - ldrh r1, [r4, #0x2e] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._6 @cond_branch - mov r0, #0x1 - bl Menu_MoveCursor -._6: - ldrh r1, [r4, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._7 @cond_branch - ldr r4, ._9 + 4 @ _843E3DC - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - lsr r0, r0, #0x15 - add r4, r4, #0x4 - add r0, r0, r4 - ldr r4, [r0] - bl Menu_DestroyCursor - bl _call_via_r4 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - b ._12 -._10: - .align 2, 0 -._9: - .word gMain - .word _843E3DC -._7: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - bne ._11 @cond_branch - mov r0, #0x0 - b ._12 -._11: - bl CloseMenu - mov r0, #0x1 -._12: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_815F214 - - thumb_func_start debug_sub_815F284 -debug_sub_815F284: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, ._14 @ gPaletteFade - ldrb r1, [r0, #0x7] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - bne ._13 @cond_branch - bl debug_sub_81381B4 - mov r0, #0x5 - mov r1, #0x0 - bl OpenPartyMenu - add r0, r4, #0 - bl DestroyTask -._13: - pop {r4} - pop {r0} - bx r0 -._15: - .align 2, 0 -._14: - .word gPaletteFade - - thumb_func_end debug_sub_815F284 - - thumb_func_start debug_sub_815F2B4 -debug_sub_815F2B4: - push {lr} - add sp, sp, #0xfffffffc - bl CloseMenu - bl Menu_EraseScreen - ldr r1, ._16 @ gMain - ldr r0, ._16 + 4 @ sub_805469C - str r0, [r1, #0x8] - ldr r0, ._16 + 8 @ debug_sub_815F284 - mov r1, #0x0 - bl CreateTask - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - mov r0, #0x1 - add sp, sp, #0x4 - pop {r1} - bx r1 -._17: - .align 2, 0 -._16: - .word gMain - .word sub_805469C+1 - .word debug_sub_815F284+1 - - thumb_func_end debug_sub_815F2B4 - - thumb_func_start debug_sub_815F2F4 -debug_sub_815F2F4: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xfffffffc - bl CloseMenu - mov r7, #0x1 -._34: - lsl r1, r7, #0x2 - add r0, r1, r7 - lsl r2, r0, #0x5 - ldr r3, ._24 @ gSaveBlock1 - add r0, r2, r3 - ldr r5, ._24 + 4 @ 0x1a08 - add r0, r0, r5 - ldrb r0, [r0] - mov r9, r1 - add r1, r7, #1 - str r1, [sp] - cmp r0, #0 - beq ._18 @cond_branch - b ._19 -._18: - mov r5, #0x0 - ldr r6, ._24 + 8 @ gSaveBlock2 - add r4, r7, #0 - sub r4, r4, #0x46 - ldr r3, ._24 + 12 @ gSaveBlock1 -._21: - add r1, r5, r2 - add r1, r1, r3 - add r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0xff - beq ._20 @cond_branch - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x6 - bls ._21 @cond_branch -._20: - cmp r5, #0x7 - bne ._22 @cond_branch - add r0, r2, #6 - b ._23 -._25: - .align 2, 0 -._24: - .word gSaveBlock1 - .word 0x1a08 - .word gSaveBlock2 - .word gSaveBlock1+0x1a0a -._22: - add r0, r5, r2 -._23: - add r0, r0, r3 - strb r4, [r0] - ldr r1, ._35 @ gSaveBlock1 - ldr r2, ._35 + 4 @ 0x1a08 - add r2, r2, r1 - mov sl, r2 - mov r3, r9 - add r0, r3, r7 - lsl r6, r0, #0x5 - add r1, r6, r1 - ldr r5, ._35 + 4 @ 0x1a08 - add r5, r5, r1 - mov r8, r5 -._30: - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x4b - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0xe - ldr r1, ._35 + 8 @ _843E424 - add r0, r0, r1 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2] - mov r5, #0x0 - cmp r5, r7 - bcs ._28 @cond_branch - mov r3, sl - ldrb r3, [r3] - cmp r0, r3 - beq ._28 @cond_branch - ldr r4, ._35 @ gSaveBlock1 - add r0, r6, r4 - ldr r2, ._35 + 4 @ 0x1a08 - add r3, r0, r2 -._29: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r7 - bcs ._28 @cond_branch - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x5 - add r0, r0, r4 - add r0, r0, r2 - ldrb r1, [r3] - ldrb r0, [r0] - cmp r1, r0 - bne ._29 @cond_branch -._28: - cmp r5, r7 - bne ._30 @cond_branch - bl Random - mov r5, r9 - add r4, r5, r7 - lsl r4, r4, #0x5 - ldr r1, ._35 @ gSaveBlock1 - add r3, r4, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - ldr r2, ._35 + 12 @ 0x1a09 - add r3, r3, r2 - and r0, r0, r1 - lsl r0, r0, #0x4 - ldrb r1, [r3] - mov r5, #0x11 - neg r5, r5 - add r2, r5, #0 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3] - mov r5, #0x0 - ldr r6, ._35 + 16 @ gSaveBlock1 -._31: - bl Random - add r1, r5, r4 - add r1, r1, r6 - strb r0, [r1] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x3 - bls ._31 @cond_branch - mov r5, #0x0 - mov r1, r9 - add r0, r1, r7 - lsl r4, r0, #0x5 - ldr r3, ._35 + 20 @ gSaveBlock1 - mov r2, #0x0 - add r6, r3, #0 - add r6, r6, #0x10 -._32: - add r1, r5, r4 - add r0, r1, r3 - strb r2, [r0] - add r1, r1, r6 - strb r2, [r1] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0xf - bls ._32 @cond_branch - add r0, r7, #0 - bl unref_sub_80BCD7C -._19: - ldr r2, [sp] - lsl r0, r2, #0x18 - lsr r7, r0, #0x18 - cmp r7, #0x13 - bhi ._33 @cond_branch - b ._34 -._33: - mov r0, #0x1 - add sp, sp, #0x4 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._36: - .align 2, 0 -._35: - .word gSaveBlock1 - .word 0x1a08 - .word _843E424 - .word 0x1a09 - .word gSaveBlock1+0x1a11 - .word gSaveBlock1+0x1a1a - - thumb_func_end debug_sub_815F2F4 - - thumb_func_start debug_sub_815F470 -debug_sub_815F470: - push {r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - mov ip, r2 - ldr r2, ._39 @ gSaveBlock1 - ldr r0, ._39 + 4 @ _nakamuraData0 - ldrb r1, [r0] - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r0, r0, #0x5 - add r0, r0, r2 - ldr r1, ._39 + 8 @ 0x1a08 - add r0, r0, r1 - ldrb r4, [r0] - mov r2, #0x0 - ldr r3, ._39 + 12 @ _843E424 - add r5, r3, #0 -._41: - lsl r1, r2, #0x2 - add r0, r1, r5 - ldrb r0, [r0] - cmp r0, r4 - bne ._37 @cond_branch - add r0, r1, #1 - add r0, r0, r3 - ldrb r0, [r0] - strb r0, [r6] - add r0, r1, #2 - add r0, r0, r3 - ldrb r0, [r0] - strb r0, [r7] - add r0, r1, #3 - add r0, r0, r3 - ldrb r0, [r0] - mov r1, ip - strb r0, [r1] - b ._38 -._40: - .align 2, 0 -._39: - .word gSaveBlock1 - .word _nakamuraData0 - .word 0x1a08 - .word _843E424 -._37: - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x4a - bls ._41 @cond_branch -._38: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_sub_815F470 - - thumb_func_start debug_sub_815F4D8 -debug_sub_815F4D8: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffffc - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0xa - mov r3, #0xa - bl Menu_BlankWindowRect - ldr r6, ._43 @ gStringVar1 - ldr r7, ._43 + 4 @ _nakamuraData0 - ldrb r1, [r7] - add r0, r6, #0 - mov r2, #0x0 - mov r3, #0x2 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - ldr r2, ._43 + 8 @ gSaveBlock1 - ldrb r1, [r7] - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r0, r0, #0x5 - add r0, r0, r2 - ldr r1, ._43 + 12 @ 0x1a08 - add r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq ._42 @cond_branch - mov r4, sp - add r4, r4, #0x1 - mov r5, sp - add r5, r5, #0x2 - mov r0, sp - add r1, r4, #0 - add r2, r5, #0 - bl debug_sub_815F470 - ldrb r1, [r7] - add r0, r6, #0 - bl sub_80BC190 - add r0, r6, #0 - mov r1, #0x1 - mov r2, #0x3 - bl Menu_PrintText - ldr r0, ._43 + 16 @ Str_843E550 - mov r1, #0x1 - mov r2, #0x5 - bl Menu_PrintText - mov r0, sp - ldrb r1, [r0] - add r0, r6, #0 - mov r2, #0x0 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x2 - mov r2, #0x5 - bl Menu_PrintText - ldr r0, ._43 + 20 @ Str_843E552 - mov r1, #0x1 - mov r2, #0x7 - bl Menu_PrintText - ldrb r1, [r4] - add r0, r6, #0 - mov r2, #0x0 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x3 - mov r2, #0x7 - bl Menu_PrintText - ldr r0, ._43 + 24 @ Str_843E554 - mov r1, #0x1 - mov r2, #0x9 - bl Menu_PrintText - ldrb r1, [r5] - add r0, r6, #0 - mov r2, #0x0 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x3 - mov r2, #0x9 - bl Menu_PrintText -._42: - add sp, sp, #0x4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._44: - .align 2, 0 -._43: - .word gStringVar1 - .word _nakamuraData0 - .word gSaveBlock1 - .word 0x1a08 - .word Str_843E550 - .word Str_843E552 - .word Str_843E554 - - thumb_func_end debug_sub_815F4D8 - - thumb_func_start debug_sub_815F5C4 -debug_sub_815F5C4: - push {lr} - ldr r0, ._48 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x20 - and r0, r0, r1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - cmp r2, #0 - beq ._45 @cond_branch - ldr r1, ._48 + 4 @ _nakamuraData0 - ldrb r0, [r1] - cmp r0, #0 - bne ._46 @cond_branch - mov r0, #0x13 - b ._50 -._49: - .align 2, 0 -._48: - .word gMain - .word _nakamuraData0 -._46: - sub r0, r0, #0x1 - b ._50 -._45: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._51 @cond_branch - ldr r1, ._54 @ _nakamuraData0 - ldrb r0, [r1] - cmp r0, #0x13 - bne ._52 @cond_branch - strb r2, [r1] - b ._53 -._55: - .align 2, 0 -._54: - .word _nakamuraData0 -._52: - add r0, r0, #0x1 -._50: - strb r0, [r1] -._53: - bl debug_sub_815F4D8 - mov r0, #0x0 - b ._58 -._51: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - bne ._57 @cond_branch - mov r0, #0x0 - b ._58 -._57: - bl CloseMenu - mov r0, #0x1 -._58: - pop {r1} - bx r1 - - thumb_func_end debug_sub_815F5C4 - - thumb_func_start debug_sub_815F62C -debug_sub_815F62C: - push {lr} - ldr r1, ._59 @ _nakamuraData0 - mov r0, #0x0 - strb r0, [r1] - ldr r1, ._59 + 4 @ gMenuCallback - ldr r0, ._59 + 8 @ debug_sub_815F5C4 - str r0, [r1] - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xb - mov r3, #0xb - bl Menu_DrawStdWindowFrame - bl debug_sub_815F4D8 - mov r0, #0x0 - pop {r1} - bx r1 -._60: - .align 2, 0 -._59: - .word _nakamuraData0 - .word gMenuCallback - .word debug_sub_815F5C4+1 - - thumb_func_end debug_sub_815F62C - - thumb_func_start debug_sub_815F668 -debug_sub_815F668: - push {r4, r5, r6, lr} - ldr r0, ._61 @ _nakamuraData0 - ldrb r0, [r0] - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x5 - ldr r0, ._61 + 4 @ gSaveBlock1 - add r1, r1, r0 - ldrb r4, [r1, #0x3] - lsl r4, r4, #0x18 - ldrb r0, [r1, #0x2] - lsl r0, r0, #0x10 - orr r4, r4, r0 - ldrb r0, [r1, #0x1] - lsl r0, r0, #0x8 - orr r4, r4, r0 - ldrb r0, [r1] - orr r4, r4, r0 - ldr r5, ._61 + 8 @ gStringVar1 - ldr r6, ._61 + 12 @ 0x186a0 - add r0, r4, #0 - add r1, r6, #0 - bl __udivsi3 - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x2 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x2 - mov r2, #0x7 - bl Menu_PrintText - add r0, r4, #0 - add r1, r6, #0 - bl __umodsi3 - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x2 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x7 - mov r2, #0x7 - bl Menu_PrintText - pop {r4, r5, r6} - pop {r0} - bx r0 -._62: - .align 2, 0 -._61: - .word _nakamuraData0 - .word gSaveBlock1+0x1a11 - .word gStringVar1 - .word 0x186a0 - - thumb_func_end debug_sub_815F668 - - thumb_func_start debug_sub_815F6E4 -debug_sub_815F6E4: - push {r4, lr} - mov r0, #0x2 - mov r1, #0x3 - mov r2, #0xb - mov r3, #0x4 - bl Menu_BlankWindowRect - ldr r4, ._63 @ gStringVar1 - ldr r0, ._63 + 4 @ _nakamuraData0 - ldrb r0, [r0] - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x5 - ldr r0, ._63 + 8 @ gSaveBlock1 - add r1, r1, r0 - add r0, r4, #0 - mov r2, #0x7 - bl StringCopyN - mov r1, #0xff - strb r1, [r0] - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - pop {r4} - pop {r0} - bx r0 -._64: - .align 2, 0 -._63: - .word gStringVar1 - .word _nakamuraData0 - .word gSaveBlock1+0x1a0a - - thumb_func_end debug_sub_815F6E4 - - thumb_func_start debug_sub_815F72C -debug_sub_815F72C: - push {r4, r5, lr} - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0xb - mov r3, #0xa - bl Menu_BlankWindowRect - ldr r4, ._66 @ gStringVar1 - ldr r5, ._66 + 4 @ _nakamuraData0 - ldrb r1, [r5] - add r0, r4, #0 - mov r2, #0x0 - mov r3, #0x2 - bl ConvertIntToDecimalStringN - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - ldr r2, ._66 + 8 @ gSaveBlock1 - ldrb r1, [r5] - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r0, r0, #0x5 - add r0, r0, r2 - ldr r1, ._66 + 12 @ 0x1a08 - add r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq ._65 @cond_branch - bl debug_sub_815F6E4 - bl debug_sub_815F668 -._65: - pop {r4, r5} - pop {r0} - bx r0 -._67: - .align 2, 0 -._66: - .word gStringVar1 - .word _nakamuraData0 - .word gSaveBlock1 - .word 0x1a08 - - thumb_func_end debug_sub_815F72C - - thumb_func_start debug_sub_815F788 -debug_sub_815F788: - push {lr} - mov r0, #0x2 - mov r1, #0x5 - mov r2, #0xb - mov r3, #0x6 - bl Menu_BlankWindowRect - ldr r0, ._68 @ Str_843E574 - ldr r1, ._68 + 4 @ _nakamuraData2 - ldrb r1, [r1] - add r1, r1, #0x2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0x5 - bl Menu_PrintText - pop {r0} - bx r0 -._69: - .align 2, 0 -._68: - .word Str_843E574 - .word _nakamuraData2 - - thumb_func_end debug_sub_815F788 - - thumb_func_start debug_sub_815F7B4 -debug_sub_815F7B4: - push {lr} - ldr r0, ._72 @ _nakamuraData1 - ldrb r0, [r0] - cmp r0, #0 - beq ._70 @cond_branch - mov r0, #0xb - mov r1, #0x1 - mov r2, #0xb - mov r3, #0x2 - bl Menu_BlankWindowRect - b ._71 -._73: - .align 2, 0 -._72: - .word _nakamuraData1 -._70: - ldr r0, ._74 @ _nakamuraData3 - ldrb r0, [r0] - lsl r0, r0, #0x1 - ldr r1, ._74 + 4 @ Str_843E576 - add r0, r0, r1 - mov r1, #0xb - mov r2, #0x1 - bl Menu_PrintText -._71: - pop {r0} - bx r0 -._75: - .align 2, 0 -._74: - .word _nakamuraData3 - .word Str_843E576 - - thumb_func_end debug_sub_815F7B4 - - thumb_func_start debug_sub_815F7F0 -debug_sub_815F7F0: - push {r4, r5, lr} - ldr r1, ._78 @ _nakamuraData0 - ldrb r2, [r1] - lsl r1, r2, #0x2 - add r1, r1, r2 - lsl r1, r1, #0x5 - ldr r2, ._78 + 4 @ gSaveBlock1 - add r3, r1, r2 - ldrb r1, [r3, #0x3] - lsl r2, r1, #0x18 - ldrb r1, [r3, #0x2] - lsl r1, r1, #0x10 - orr r2, r2, r1 - ldrb r1, [r3, #0x1] - lsl r1, r1, #0x8 - orr r2, r2, r1 - ldrb r1, [r3] - orr r2, r2, r1 - lsl r0, r0, #0x18 - asr r1, r0, #0x18 - mov r4, #0x9 - ldr r0, ._78 + 8 @ _nakamuraData2 - ldrb r0, [r0] - cmp r4, r0 - ble ._76 @cond_branch - add r5, r0, #0 -._77: - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r1, r0, #0x1 - lsl r0, r4, #0x18 - mov r4, #0xff - lsl r4, r4, #0x18 - add r0, r0, r4 - lsr r4, r0, #0x18 - asr r0, r0, #0x18 - cmp r0, r5 - bgt ._77 @cond_branch -._76: - add r2, r2, r1 - lsr r0, r2, #0x18 - strb r0, [r3, #0x3] - mov r0, #0xff - lsl r0, r0, #0x10 - and r0, r0, r2 - lsr r0, r0, #0x10 - strb r0, [r3, #0x2] - mov r0, #0xff - lsl r0, r0, #0x8 - and r0, r0, r2 - lsr r0, r0, #0x8 - strb r0, [r3, #0x1] - strb r2, [r3] - bl debug_sub_815F668 - pop {r4, r5} - pop {r0} - bx r0 -._79: - .align 2, 0 -._78: - .word _nakamuraData0 - .word gSaveBlock1+0x1a11 - .word _nakamuraData2 - - thumb_func_end debug_sub_815F7F0 - - thumb_func_start debug_sub_815F86C -debug_sub_815F86C: - push {r4, r5, r6, lr} - lsl r0, r0, #0x18 - ldr r1, ._84 @ _nakamuraData0 - ldrb r2, [r1] - lsl r1, r2, #0x2 - add r1, r1, r2 - lsl r1, r1, #0x5 - ldr r2, ._84 + 4 @ gSaveBlock1 - add r5, r1, r2 - mov r2, #0x0 - mov r3, #0x0 - lsr r6, r0, #0x18 - asr r0, r0, #0x18 - cmp r0, #0x64 - bne ._80 @cond_branch - ldr r0, ._84 + 8 @ _nakamuraData2 - ldrb r1, [r0] - cmp r1, #0x6 - bhi ._100 @cond_branch - mov r2, #0xff -._82: - add r0, r5, r1 - strb r2, [r0] - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - cmp r1, #0x6 - bls ._82 @cond_branch - b ._100 -._85: - .align 2, 0 -._84: - .word _nakamuraData0 - .word gSaveBlock1+0x1a0a - .word _nakamuraData2 -._80: - ldr r0, ._87 @ _nakamuraData3 - ldrb r0, [r0] - cmp r0, #0x4 - bhi ._98 @cond_branch - lsl r0, r0, #0x2 - ldr r1, ._87 + 4 @ - add r0, r0, r1 - ldr r0, [r0] - mov pc, r0 -._88: - .align 2, 0 -._87: - .word _nakamuraData3 - .word ._89 -._89: - .word ._90 - .word ._91 - .word ._92 - .word ._93 - .word ._94 -._90: - mov r3, #0x1 - mov r2, #0x50 - b ._98 -._91: - mov r3, #0x51 - mov r2, #0xa0 - b ._98 -._92: - mov r3, #0xbb - mov r2, #0xd4 - b ._98 -._93: - mov r3, #0xd5 - mov r2, #0xee - b ._98 -._94: - mov r3, #0xa1 - mov r2, #0xaa -._98: - ldr r4, ._101 @ _nakamuraData2 - ldrb r1, [r4] - add r1, r5, r1 - ldrb r0, [r1] - add r0, r0, r6 - strb r0, [r1] - ldrb r0, [r4] - add r1, r5, r0 - ldrb r0, [r1] - cmp r0, r3 - bcs ._99 @cond_branch - strb r2, [r1] -._99: - ldrb r0, [r4] - add r1, r5, r0 - ldrb r0, [r1] - cmp r0, r2 - bls ._100 @cond_branch - strb r3, [r1] -._100: - bl debug_sub_815F6E4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._102: - .align 2, 0 -._101: - .word _nakamuraData2 - - thumb_func_end debug_sub_815F86C - - thumb_func_start debug_sub_815F930 -debug_sub_815F930: - push {r4, r5, lr} - ldr r0, ._107 @ _nakamuraData1 - ldrb r2, [r0] - mov r4, #0xa - cmp r2, #0 - bne ._103 @cond_branch - mov r4, #0x7 -._103: - ldr r5, ._107 + 4 @ gMain - ldrh r1, [r5, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._104 @cond_branch - cmp r2, #0 - beq ._105 @cond_branch - mov r0, #0x1 - bl debug_sub_815F7F0 - b ._136 -._108: - .align 2, 0 -._107: - .word _nakamuraData1 - .word gMain -._105: - mov r0, #0x1 - b ._113 -._104: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._110 @cond_branch - cmp r2, #0 - beq ._111 @cond_branch - mov r0, #0x1 - neg r0, r0 - bl debug_sub_815F7F0 - b ._136 -._111: - mov r0, #0x1 - neg r0, r0 - b ._113 -._110: - mov r0, #0x20 - and r0, r0, r1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #0 - beq ._114 @cond_branch - ldr r1, ._117 @ _nakamuraData2 - ldrb r0, [r1] - cmp r0, #0 - bne ._115 @cond_branch - sub r0, r4, #1 - b ._116 -._118: - .align 2, 0 -._117: - .word _nakamuraData2 -._115: - sub r0, r0, #0x1 -._116: - strb r0, [r1] -._125: - bl debug_sub_815F788 - b ._136 -._114: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._120 @cond_branch - ldr r2, ._123 @ _nakamuraData2 - ldrb r1, [r2] - sub r0, r4, #1 - cmp r1, r0 - bne ._121 @cond_branch - strb r3, [r2] - b ._125 -._124: - .align 2, 0 -._123: - .word _nakamuraData2 -._121: - add r0, r1, #1 - strb r0, [r2] - b ._125 -._120: - ldrh r1, [r5, #0x2e] - mov r0, #0x4 - and r0, r0, r1 - cmp r0, #0 - beq ._126 @cond_branch - cmp r2, #0 - bne ._127 @cond_branch - ldr r4, ._129 @ _nakamuraData3 - ldrb r0, [r4] - add r0, r0, #0x1 - mov r1, #0x5 - bl __modsi3 - strb r0, [r4] -._127: - bl debug_sub_815F7B4 - b ._136 -._130: - .align 2, 0 -._129: - .word _nakamuraData3 -._126: - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._131 @cond_branch - mov r0, #0x2 - mov r1, #0x5 - mov r2, #0xb - mov r3, #0x6 - bl Menu_BlankWindowRect - mov r0, #0xb - mov r1, #0x1 - mov r2, #0xb - mov r3, #0x2 - bl Menu_BlankWindowRect - ldr r1, ._133 @ gMenuCallback - ldr r0, ._133 + 4 @ debug_sub_815FA38 - str r0, [r1] - b ._136 -._134: - .align 2, 0 -._133: - .word gMenuCallback - .word debug_sub_815FA38+1 -._131: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._136 @cond_branch - cmp r2, #0 - bne ._136 @cond_branch - mov r0, #0x64 -._113: - bl debug_sub_815F86C -._136: - mov r0, #0x0 - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_815F930 - - thumb_func_start debug_sub_815FA38 -debug_sub_815FA38: - push {r4, lr} - ldr r0, ._139 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._137 @cond_branch - mov r0, #0x2 - neg r0, r0 - b ._138 -._140: - .align 2, 0 -._139: - .word gMain -._137: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._141 @cond_branch - mov r0, #0x2 -._138: - bl Menu_MoveCursor -._161: - mov r0, #0x0 - b ._142 -._141: - mov r0, #0x20 - and r0, r0, r1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - cmp r2, #0 - beq ._143 @cond_branch - ldr r1, ._146 @ _nakamuraData0 - ldrb r0, [r1] - cmp r0, #0 - bne ._144 @cond_branch - mov r0, #0x13 - b ._148 -._147: - .align 2, 0 -._146: - .word _nakamuraData0 -._144: - sub r0, r0, #0x1 - b ._148 -._143: - mov r0, #0x10 - and r0, r0, r1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0 - beq ._149 @cond_branch - ldr r1, ._152 @ _nakamuraData0 - ldrb r0, [r1] - cmp r0, #0x13 - bne ._150 @cond_branch - strb r2, [r1] - b ._151 -._153: - .align 2, 0 -._152: - .word _nakamuraData0 -._150: - add r0, r0, #0x1 -._148: - strb r0, [r1] -._151: - bl debug_sub_815F72C - b ._161 -._149: - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._155 @cond_branch - ldr r1, ._159 @ _nakamuraData0 - ldrb r0, [r1] - cmp r0, #0 - beq ._161 @cond_branch - ldr r2, ._159 + 4 @ gSaveBlock1 - add r1, r0, #0 - lsl r0, r1, #0x2 - add r0, r0, r1 - lsl r0, r0, #0x5 - add r0, r0, r2 - ldr r1, ._159 + 8 @ 0x1a08 - add r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq ._161 @cond_branch - bl Menu_GetCursorPos - ldr r1, ._159 + 12 @ _nakamuraData1 - strb r0, [r1] - ldr r0, ._159 + 16 @ _nakamuraData2 - strb r4, [r0] - bl debug_sub_815F788 - bl debug_sub_815F7B4 - ldr r1, ._159 + 20 @ gMenuCallback - ldr r0, ._159 + 24 @ debug_sub_815F930 - str r0, [r1] - b ._161 -._160: - .align 2, 0 -._159: - .word _nakamuraData0 - .word gSaveBlock1 - .word 0x1a08 - .word _nakamuraData1 - .word _nakamuraData2 - .word gMenuCallback - .word debug_sub_815F930+1 -._155: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._161 @cond_branch - bl CloseMenu - mov r0, #0x1 -._142: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_815FA38 - - thumb_func_start debug_sub_815FB1C -debug_sub_815FB1C: - push {lr} - add sp, sp, #0xfffffff8 - ldr r0, ._162 @ _nakamuraData0 - mov r1, #0x0 - strb r1, [r0] - ldr r0, ._162 + 4 @ _nakamuraData3 - strb r1, [r0] - ldr r1, ._162 + 8 @ gMenuCallback - ldr r0, ._162 + 12 @ debug_sub_815FA38 - str r0, [r1] - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xc - mov r3, #0xb - bl Menu_DrawStdWindowFrame - bl debug_sub_815F72C - mov r0, #0x0 - str r0, [sp] - mov r0, #0xb - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x3 - bl InitMenu - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._163: - .align 2, 0 -._162: - .word _nakamuraData0 - .word _nakamuraData3 - .word gMenuCallback - .word debug_sub_815FA38+1 - - thumb_func_end debug_sub_815FB1C - - thumb_func_start debug_sub_815FB78 -debug_sub_815FB78: - push {lr} - ldr r0, ._166 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._164 @cond_branch - mov r0, #0x1 - neg r0, r0 - b ._165 -._167: - .align 2, 0 -._166: - .word gMain -._164: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._168 @cond_branch - mov r0, #0x1 -._165: - bl Menu_MoveCursor - mov r0, #0x0 - b ._177 -._168: - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._170 @cond_branch - bl CloseMenu - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0 - beq ._171 @cond_branch - cmp r0, #0x1 - beq ._172 @cond_branch - b ._175 -._171: - bl debug_sub_814A714 - b ._175 -._172: - bl ClearRoamerData - bl ClearRoamerLocationData - b ._175 -._170: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - bne ._176 @cond_branch - mov r0, #0x0 - b ._177 -._176: - bl CloseMenu -._175: - mov r0, #0x1 -._177: - pop {r1} - bx r1 - - thumb_func_end debug_sub_815FB78 - - thumb_func_start debug_sub_815FBE8 -debug_sub_815FBE8: - push {r4, lr} - add sp, sp, #0xfffffff8 - ldr r1, ._178 @ gMenuCallback - ldr r0, ._178 + 4 @ debug_sub_815FB78 - str r0, [r1] - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - ldr r4, ._178 + 8 @ gStringVar1 - add r0, r4, #0 - bl debug_sub_814A73C - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xb - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._178 + 12 @ Str_843E580 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - mov r0, #0x0 - str r0, [sp] - mov r0, #0xa - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x3 - bl InitMenu - mov r0, #0x0 - add sp, sp, #0x8 - pop {r4} - pop {r1} - bx r1 -._179: - .align 2, 0 -._178: - .word gMenuCallback - .word debug_sub_815FB78+1 - .word gStringVar1 - .word Str_843E580 - - thumb_func_end debug_sub_815FBE8 - - thumb_func_start debug_sub_815FC54 -debug_sub_815FC54: - push {r4, r5, r6, r7, lr} - mov r3, #0x0 - ldr r7, ._181 @ gSaveBlock1 - mov r6, #0xe8 - lsl r6, r6, #0x3 - ldr r5, ._181 + 4 @ 0x3e7 - ldr r4, ._181 + 8 @ 0x742 -._180: - lsl r1, r3, #0x2 - add r1, r1, r7 - add r2, r3, #0 - add r2, r2, #0x85 - add r0, r1, r6 - strh r2, [r0] - add r1, r1, r4 - strh r5, [r1] - add r0, r3, #1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #0x2a - bls ._180 @cond_branch - bl CloseMenu - mov r0, #0x1 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._182: - .align 2, 0 -._181: - .word gSaveBlock1 - .word 0x3e7 - .word 0x742 - - thumb_func_end debug_sub_815FC54 - - thumb_func_start debug_sub_815FC94 -debug_sub_815FC94: - push {lr} - bl ClearDecorationInventories - bl debug_sub_814A3A8 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl CloseMenu - mov r0, #0x1 - pop {r1} - bx r1 - - thumb_func_end debug_sub_815FC94 - - thumb_func_start debug_sub_815FCB4 -debug_sub_815FCB4: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - mov r7, #0x0 - ldr r5, ._188 @ gMapHeader - ldr r0, [r5] - ldr r0, [r0, #0x4] - mov r1, #0x3 - bl __divsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r0, #0 - mul r1, r1, r4 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - add r0, r6, r0 - mov r9, r5 - cmp r6, r0 - bge ._183 @cond_branch - mov r8, r0 -._187: - mov r4, #0x0 - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0] - add r5, r6, #1 - cmp r4, r0 - bge ._184 @cond_branch - ldr r0, ._188 @ gMapHeader - mov r9, r0 -._186: - add r0, r4, #7 - add r1, r6, #7 - bl MapGridGetMetatileBehaviorAt - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl sub_805759C - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bne ._185 @cond_branch - add r0, r7, #1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 -._185: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, ._188 @ gMapHeader - ldr r0, [r0] - ldr r0, [r0] - cmp r4, r0 - blt ._186 @cond_branch -._184: - lsl r0, r5, #0x10 - lsr r6, r0, #0x10 - cmp r6, r8 - blt ._187 @cond_branch -._183: - add r0, r7, #0 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._189: - .align 2, 0 -._188: - .word gMapHeader - - thumb_func_end debug_sub_815FCB4 - - thumb_func_start debug_sub_815FD40 -debug_sub_815FD40: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffffc - mov r6, #0x0 - mov r4, sp - add r4, r4, #0x2 - mov r0, sp - add r1, r4, #0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r1, sp - mov r0, sp - ldrh r0, [r0] - sub r0, r0, #0x7 - strh r0, [r1] - ldrh r0, [r4] - sub r0, r0, #0x7 - strh r0, [r4] - mov r5, #0x0 - ldr r1, ._192 @ gMapHeader - ldr r0, [r1] - ldr r0, [r0, #0x4] - add r7, r4, #0 - cmp r6, r0 - bge ._190 @cond_branch -._199: - mov r4, #0x0 - ldr r0, [r1] - b ._191 -._193: - .align 2, 0 -._192: - .word gMapHeader -._198: - add r0, r4, #7 - add r1, r5, #7 - bl MapGridGetMetatileBehaviorAt - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl sub_805759C - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bne ._196 @cond_branch - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - mov r0, sp - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, r4 - bne ._196 @cond_branch - mov r1, #0x0 - ldsh r0, [r7, r1] - cmp r0, r5 - bne ._196 @cond_branch - add r0, r6, #0 - b ._197 -._196: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, ._200 @ gMapHeader - ldr r0, [r0] -._191: - ldr r0, [r0] - cmp r4, r0 - blt ._198 @cond_branch - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - ldr r1, ._200 @ gMapHeader - ldr r0, [r1] - ldr r0, [r0, #0x4] - cmp r5, r0 - blt ._199 @cond_branch -._190: - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 -._197: - add sp, sp, #0x4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._201: - .align 2, 0 -._200: - .word gMapHeader - - thumb_func_end debug_sub_815FD40 - - thumb_func_start debug_sub_815FDE4 -debug_sub_815FDE4: - push {lr} - ldr r0, ._205 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - bne ._202 @cond_branch - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._203 @cond_branch -._202: - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl CloseMenu - mov r0, #0x1 - b ._204 -._206: - .align 2, 0 -._205: - .word gMain -._203: - mov r0, #0x0 -._204: - pop {r1} - bx r1 - - thumb_func_end debug_sub_815FDE4 - - thumb_func_start debug_sub_815FE1C -debug_sub_815FE1C: - push {r4, r5, r6, r7, lr} - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x10 - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._210 @ Str_843E58D - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - ldr r6, ._210 + 4 @ gStringVar1 - mov r0, #0x0 - bl debug_sub_815FCB4 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x5 - mov r2, #0x3 - bl Menu_PrintText - mov r0, #0x1 - bl debug_sub_815FCB4 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x5 - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0x2 - bl debug_sub_815FCB4 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0x5 - mov r2, #0x7 - bl Menu_PrintText - mov r0, #0x0 - bl debug_sub_8092344 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0xb - mov r2, #0x3 - bl Menu_PrintText - mov r0, #0x1 - bl debug_sub_8092344 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0xb - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0x2 - bl debug_sub_8092344 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r6, #0 - mov r1, #0xb - mov r2, #0x7 - bl Menu_PrintText - ldr r0, ._210 + 8 @ gSaveBlock1 - ldr r1, ._210 + 12 @ 0x2dd6 - add r0, r0, r1 - ldrh r0, [r0] - bl FeebasSeedRng - mov r0, #0x0 - bl debug_sub_815FCB4 - add r4, r0, #0 - mov r0, #0x1 - bl debug_sub_815FCB4 - add r5, r0, #0 - mov r0, #0x2 - bl debug_sub_815FCB4 - add r4, r4, r5 - add r0, r0, r4 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - mov r5, #0x0 -._209: - bl FeebasRandom - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r7, #0 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, #0 - bne ._207 @cond_branch - add r1, r7, #0 -._207: - sub r0, r1, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x2 - bls ._208 @cond_branch - add r0, r6, #0 - mov r2, #0x1 - mov r3, #0x4 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x3 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r4, r0, #0x2 - add r4, r4, r0 - add r4, r4, #0x2 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - add r0, r5, #0 - mov r1, #0x3 - bl __udivsi3 - add r2, r0, #0 - lsl r2, r2, #0x19 - mov r0, #0xb0 - lsl r0, r0, #0x14 - add r2, r2, r0 - lsr r2, r2, #0x18 - add r0, r6, #0 - add r1, r4, #0 - bl Menu_PrintText - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -._208: - cmp r5, #0x6 - bne ._209 @cond_branch - ldr r4, ._210 + 4 @ gStringVar1 - bl debug_sub_815FD40 - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r4, #0 - mov r2, #0x1 - mov r3, #0x4 - bl ConvertIntToDecimalStringN - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0x11 - bl Menu_PrintText - ldr r1, ._210 + 16 @ gMenuCallback - ldr r0, ._210 + 20 @ debug_sub_815FDE4 - str r0, [r1] - mov r0, #0x0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._211: - .align 2, 0 -._210: - .word Str_843E58D - .word gStringVar1 - .word gSaveBlock1 - .word 0x2dd6 - .word gMenuCallback - .word debug_sub_815FDE4+1 - - thumb_func_end debug_sub_815FE1C - - thumb_func_start debug_sub_815FFDC -debug_sub_815FFDC: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r0, #0xe - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xd - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0xe - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._214 @ Str_843E5D4 - mov r1, #0x1 - mov r2, #0xf - bl Menu_PrintText - mov r5, #0x0 - ldr r0, ._214 + 4 @ _nakamuraStatic0 - mov r8, r0 -._216: - mov r0, #0x64 - add r1, r5, #0 - mul r1, r1, r0 - ldr r0, ._214 + 8 @ gPlayerParty - add r6, r1, r0 - add r0, r6, #0 - mov r1, #0xb - bl GetMonData - lsl r1, r5, #0x2 - mov r2, r8 - add r4, r1, r2 - strh r0, [r4] - lsl r0, r0, #0x10 - add r7, r1, #0 - cmp r0, #0 - beq ._212 @cond_branch - add r0, r6, #0 - mov r1, #0x38 - bl GetMonData - strb r0, [r4, #0x2] - add r0, r5, #0 - bl debug_sub_816009C - add r0, r5, #0 - bl debug_sub_81600D0 - add r0, r5, #0 - bl debug_sub_816013C - b ._213 -._215: - .align 2, 0 -._214: - .word Str_843E5D4 - .word _nakamuraStatic0 - .word gPlayerParty -._212: - mov r0, #0x1 - strb r0, [r4, #0x2] -._213: - mov r0, r8 - add r1, r7, r0 - mov r0, #0x0 - strb r0, [r1, #0x3] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x5 - bls ._216 @cond_branch - ldr r1, ._217 @ _nakamuraData4 - mov r0, #0x0 - strb r0, [r1] - mov r0, #0xf - mov r1, #0x1 - mov r2, #0xff - bl PrintTriangleCursorWithPalette - ldr r1, ._217 + 4 @ gMenuCallback - ldr r0, ._217 + 8 @ debug_sub_8160498 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._218: - .align 2, 0 -._217: - .word _nakamuraData4 - .word gMenuCallback - .word debug_sub_8160498+1 - - thumb_func_end debug_sub_815FFDC - - thumb_func_start debug_sub_816009C -debug_sub_816009C: - push {lr} - add r2, r0, #0 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - ldr r1, ._219 @ _nakamuraStatic0 - lsl r0, r2, #0x2 - add r0, r0, r1 - mov r3, #0x0 - ldsh r1, [r0, r3] - mov r0, #0xb - mul r0, r0, r1 - ldr r1, ._219 + 4 @ gSpeciesNames - add r0, r0, r1 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r1, #0x10 - bl Menu_PrintText - pop {r0} - bx r0 -._220: - .align 2, 0 -._219: - .word _nakamuraStatic0 - .word gSpeciesNames - - thumb_func_end debug_sub_816009C - - thumb_func_start debug_sub_81600D0 -debug_sub_81600D0: - push {r4, r5, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - add r5, r4, #0 - ldr r1, ._223 @ Str_843E5F0 - mov r0, sp - mov r2, #0x2 - bl memcpy - mov r0, #0x64 - mul r0, r0, r4 - ldr r1, ._223 + 4 @ gPlayerParty - add r0, r0, r1 - bl GetMonGender - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0 - bne ._221 @cond_branch - ldr r0, ._223 + 8 @ gOtherText_MaleSymbol2 - b ._222 -._224: - .align 2, 0 -._223: - .word Str_843E5F0 - .word gPlayerParty - .word gOtherText_MaleSymbol2 -._221: - cmp r0, #0xfe - bne ._225 @cond_branch - ldr r0, ._227 @ gOtherText_FemaleSymbolAndLv -._222: - lsl r2, r4, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r1, #0x17 - bl Menu_PrintText - b ._226 -._228: - .align 2, 0 -._227: - .word gOtherText_FemaleSymbolAndLv -._225: - lsl r2, r5, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r0, sp - mov r1, #0x17 - bl Menu_PrintText -._226: - add sp, sp, #0x4 - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_end debug_sub_81600D0 - - thumb_func_start debug_sub_816013C -debug_sub_816013C: - push {r4, r5, lr} - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r5, ._229 @ gStringVar1 - ldr r1, ._229 + 4 @ _nakamuraStatic0 - lsl r0, r4, #0x2 - add r0, r0, r1 - mov r1, #0x2 - ldrsb r1, [r0, r1] - add r0, r5, #0 - mov r2, #0x1 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - lsl r4, r4, #0x1 - add r4, r4, #0x1 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - add r0, r5, #0 - mov r1, #0x1a - add r2, r4, #0 - bl Menu_PrintText - pop {r4, r5} - pop {r0} - bx r0 -._230: - .align 2, 0 -._229: - .word gStringVar1 - .word _nakamuraStatic0 - - thumb_func_end debug_sub_816013C - - thumb_func_start debug_sub_816017C -debug_sub_816017C: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - lsl r3, r4, #0x1 - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r3, r3, #0x2 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - mov r0, #0x10 - mov r2, #0x1c - bl Menu_BlankWindowRect - ldr r1, ._232 @ _nakamuraStatic0 - lsl r0, r4, #0x2 - add r0, r0, r1 - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0 - beq ._231 @cond_branch - add r0, r4, #0 - bl debug_sub_816009C - add r0, r4, #0 - bl debug_sub_81600D0 - add r0, r4, #0 - bl debug_sub_816013C -._231: - mov r0, #0x5 - bl debug_sub_81603B8 - pop {r4} - pop {r0} - bx r0 -._233: - .align 2, 0 -._232: - .word _nakamuraStatic0 - - thumb_func_end debug_sub_816017C - - thumb_func_start debug_sub_81601C8 -debug_sub_81601C8: - push {r4, r5, lr} - add sp, sp, #0xfffffff0 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldr r1, ._239 @ _nakamuraStatic0 - lsl r0, r5, #0x2 - add r2, r0, r1 - mov r4, #0x0 - ldsh r0, [r2, r4] - cmp r0, #0 - bne ._236 @cond_branch - ldrb r0, [r2, #0x3] - cmp r0, #0 - bne ._236 @cond_branch - cmp r3, #0x1 - bne ._236 @cond_branch - mov r0, #0x8a - lsl r0, r0, #0x1 - strh r0, [r2] -._236: - lsl r0, r5, #0x2 - add r4, r0, r1 - lsl r0, r3, #0x18 - asr r0, r0, #0x18 - ldrh r1, [r4] - add r2, r0, r1 - mov r3, #0x0 - strh r2, [r4] - lsl r1, r2, #0x10 - mov r0, #0xcd - lsl r0, r0, #0x11 - cmp r1, r0 - ble ._237 @cond_branch - ldr r1, ._239 + 4 @ 0xfffffe65 - add r0, r2, r1 - strh r0, [r4] -._237: - ldrh r1, [r4] - mov r2, #0x0 - ldsh r0, [r4, r2] - cmp r0, #0 - bge ._238 @cond_branch - ldr r2, ._239 + 8 @ 0x19b - add r0, r1, r2 - strh r0, [r4] -._238: - mov r0, #0x64 - mul r0, r0, r5 - ldr r1, ._239 + 12 @ gPlayerParty - add r0, r0, r1 - ldrh r1, [r4] - ldrb r2, [r4, #0x2] - str r3, [sp] - str r3, [sp, #0x4] - str r3, [sp, #0x8] - str r3, [sp, #0xc] - mov r3, #0x20 - bl CreateMon - mov r0, #0x1 - strb r0, [r4, #0x3] - add sp, sp, #0x10 - pop {r4, r5} - pop {r0} - bx r0 -._240: - .align 2, 0 -._239: - .word _nakamuraStatic0 - .word 0xfffffe65 - .word 0x19b - .word gPlayerParty - - thumb_func_end debug_sub_81601C8 - - thumb_func_start debug_sub_8160258 -debug_sub_8160258: - push {lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - ldr r1, ._242 @ _nakamuraStatic0 - lsl r0, r2, #0x2 - add r0, r0, r1 - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0 - beq ._241 @cond_branch - add r0, r2, #0 - bl debug_sub_816062C -._241: - pop {r0} - bx r0 -._243: - .align 2, 0 -._242: - .word _nakamuraStatic0 - - thumb_func_end debug_sub_8160258 - - thumb_func_start debug_sub_816027C -debug_sub_816027C: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r4, r0, #0 - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - ldr r1, ._247 @ _nakamuraStatic0 - lsl r0, r4, #0x2 - add r3, r0, r1 - mov r1, #0x0 - ldsh r0, [r3, r1] - cmp r0, #0 - beq ._244 @cond_branch - lsl r0, r2, #0x18 - asr r0, r0, #0x18 - ldrb r1, [r3, #0x2] - add r0, r0, r1 - strb r0, [r3, #0x2] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - cmp r0, #0x64 - ble ._245 @cond_branch - mov r0, #0x1 - strb r0, [r3, #0x2] -._245: - mov r0, #0x2 - ldrsb r0, [r3, r0] - cmp r0, #0 - bgt ._246 @cond_branch - mov r0, #0x64 - strb r0, [r3, #0x2] -._246: - mov r0, #0x64 - mul r4, r4, r0 - ldr r0, ._247 + 4 @ gPlayerParty - add r4, r4, r0 - ldr r2, ._247 + 8 @ gBaseStats - mov r0, #0x0 - ldsh r1, [r3, r0] - lsl r0, r1, #0x3 - sub r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r2 - ldrb r1, [r0, #0x13] - mov r0, #0xca - lsl r0, r0, #0x1 - add r2, r1, #0 - mul r2, r2, r0 - mov r0, #0x2 - ldrsb r0, [r3, r0] - lsl r0, r0, #0x2 - ldr r1, ._247 + 12 @ gExperienceTables - add r0, r0, r1 - add r2, r2, r0 - add r0, r4, #0 - mov r1, #0x19 - bl SetMonData - add r0, r4, #0 - bl debug_sub_803F55C -._244: - pop {r4} - pop {r0} - bx r0 -._248: - .align 2, 0 -._247: - .word _nakamuraStatic0 - .word gPlayerParty - .word gBaseStats - .word gExperienceTables - - thumb_func_end debug_sub_816027C - - thumb_func_start debug_sub_8160308 -debug_sub_8160308: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - add sp, sp, #0xffffff8c - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - mov r2, #0x0 -._252: - add r1, r2, #1 - lsl r0, r1, #0x18 - lsr r5, r0, #0x18 - mov r8, r1 - cmp r5, #0x5 - bhi ._249 @cond_branch - mov r0, #0x64 - mov r9, r0 - mov r0, r9 - mul r0, r0, r2 - ldr r7, ._254 @ gPlayerParty - add r6, r0, r7 -._251: - add r0, r6, #0 - mov r1, #0xb - mov r2, #0x0 - bl GetMonData - cmp r0, #0 - bne ._250 @cond_branch - add r0, sp, #0x10 - add r1, r6, #0 - mov r2, #0x64 - bl memcpy - mov r4, r9 - mul r4, r4, r5 - add r4, r4, r7 - add r0, r6, #0 - add r1, r4, #0 - mov r2, #0x64 - bl memcpy - add r0, r4, #0 - add r1, sp, #0x10 - mov r2, #0x64 - bl memcpy -._250: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x5 - bls ._251 @cond_branch -._249: - mov r1, r8 - lsl r0, r1, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x4 - bls ._252 @cond_branch - bl CalculatePlayerPartyCount - ldr r4, ._254 + 4 @ gPlayerPartyCount - ldrb r1, [r4] - cmp r1, #0 - bne ._253 @cond_branch - ldr r0, ._254 @ gPlayerParty - str r1, [sp] - str r1, [sp, #0x4] - str r1, [sp, #0x8] - str r1, [sp, #0xc] - mov r1, #0x1 - mov r2, #0xa - mov r3, #0x20 - bl CreateMon - mov r0, #0x1 - strb r0, [r4] -._253: - add sp, sp, #0x74 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._255: - .align 2, 0 -._254: - .word gPlayerParty - .word gPlayerPartyCount - - thumb_func_end debug_sub_8160308 - - thumb_func_start debug_sub_81603B8 -debug_sub_81603B8: - push {r4, r5, r6, r7, lr} - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - mov r0, #0x5 - bl PlaySE - ldr r7, ._259 @ _nakamuraData4 - ldrb r4, [r7] - add r0, r4, #0 - mov r1, #0x6 - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r0, r4, #0 - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, ._259 + 4 @ _843E5D1 - add r0, r5, r0 - ldrb r2, [r0] - lsl r3, r4, #0x1 - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r3, r3, #0x2 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - add r0, r2, #0 - bl Menu_BlankWindowRect - cmp r6, #0 - bne ._256 @cond_branch - cmp r4, #0 - beq ._257 @cond_branch - ldrb r0, [r7] - sub r0, r0, #0x1 - b ._258 -._260: - .align 2, 0 -._259: - .word _nakamuraData4 - .word _843E5D1 -._257: - lsl r0, r5, #0x1 - add r0, r0, r5 - lsl r0, r0, #0x1 - add r0, r0, #0x5 -._258: - strb r0, [r7] -._256: - ldr r1, ._264 @ _nakamuraData4 - cmp r6, #0x1 - bne ._261 @cond_branch - cmp r4, #0x5 - beq ._262 @cond_branch - ldrb r0, [r1] - add r0, r0, #0x1 - b ._263 -._265: - .align 2, 0 -._264: - .word _nakamuraData4 -._262: - lsl r0, r5, #0x1 - add r0, r0, r5 - lsl r0, r0, #0x1 -._263: - strb r0, [r1] -._261: - cmp r6, #0x2 - bne ._266 @cond_branch - cmp r5, #0 - beq ._267 @cond_branch - ldrb r0, [r1] - sub r0, r0, #0x6 - b ._268 -._267: - add r0, r4, #0 - add r0, r0, #0xc -._268: - strb r0, [r1] -._266: - cmp r6, #0x3 - bne ._271 @cond_branch - cmp r5, #0x2 - beq ._270 @cond_branch - ldrb r0, [r1] - add r0, r0, #0x6 - strb r0, [r1] - b ._271 -._270: - strb r4, [r1] -._271: - ldrb r4, [r1] - add r0, r4, #0 - mov r1, #0x6 - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r0, r4, #0 - mov r1, #0x6 - bl __umodsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - ldr r0, ._272 @ _843E5D1 - add r0, r5, r0 - ldrb r0, [r0] - lsr r1, r1, #0x17 - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0xff - bl PrintTriangleCursorWithPalette - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._273: - .align 2, 0 -._272: - .word _843E5D1 - - thumb_func_end debug_sub_81603B8 - - thumb_func_start debug_sub_8160498 -debug_sub_8160498: - push {r4, lr} - ldr r1, ._276 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x40 - and r0, r0, r2 - cmp r0, #0 - beq ._274 @cond_branch - mov r0, #0x0 - b ._281 -._277: - .align 2, 0 -._276: - .word gMain -._274: - mov r0, #0x80 - and r0, r0, r2 - cmp r0, #0 - beq ._278 @cond_branch - mov r0, #0x1 - b ._281 -._278: - mov r0, #0x20 - and r0, r0, r2 - cmp r0, #0 - beq ._280 @cond_branch - mov r0, #0x2 - b ._281 -._280: - mov r0, #0x10 - and r0, r0, r2 - cmp r0, #0 - beq ._282 @cond_branch - mov r0, #0x3 -._281: - bl debug_sub_81603B8 - mov r0, #0x0 - b ._311 -._282: - ldrh r1, [r1, #0x30] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._284 @cond_branch - ldr r4, ._289 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._285 @cond_branch - mov r1, #0x1 - bl debug_sub_81601C8 -._285: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._286 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._286: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - b ._300 -._290: - .align 2, 0 -._289: - .word _nakamuraData4 -._284: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._291 @cond_branch - ldr r4, ._294 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._304 @cond_branch - mov r1, #0x1 - neg r1, r1 - b ._293 -._295: - .align 2, 0 -._294: - .word _nakamuraData4 -._291: - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._296 @cond_branch - ldr r4, ._301 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._297 @cond_branch - mov r1, #0xa - bl debug_sub_81601C8 -._297: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._298 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._298: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - b ._300 -._302: - .align 2, 0 -._301: - .word _nakamuraData4 -._296: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._303 @cond_branch - ldr r4, ._308 @ _nakamuraData4 - ldrb r0, [r4] - cmp r0, #0x5 - bhi ._304 @cond_branch - mov r1, #0xa - neg r1, r1 -._293: - bl debug_sub_81601C8 -._304: - ldrb r0, [r4] - sub r0, r0, #0x6 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._305 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160258 -._305: - ldrb r0, [r4] - sub r0, r0, #0xc - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi ._306 @cond_branch - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - neg r1, r1 -._300: - bl debug_sub_816027C -._306: - ldrb r0, [r4] - mov r1, #0x6 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_816017C - mov r0, #0x0 - b ._311 -._309: - .align 2, 0 -._308: - .word _nakamuraData4 -._303: - mov r0, #0x8 - and r0, r0, r2 - cmp r0, #0 - bne ._310 @cond_branch - mov r0, #0x0 - b ._311 -._310: - bl debug_sub_8160308 - bl CloseMenu - mov r0, #0x1 -._311: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_8160498 - - thumb_func_start debug_sub_816062C -debug_sub_816062C: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - add sp, sp, #0xfffffff0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r8, r0 - mov r0, #0x64 - mov r4, r8 - mul r4, r4, r0 - ldr r0, ._316 @ gPlayerParty - add r4, r4, r0 - add r0, r4, #0 - mov r1, #0xb - bl GetMonData - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - add r0, r4, #0 - bl GetMonGender - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - ldr r1, ._316 + 4 @ gBaseStats - lsl r0, r7, #0x3 - sub r0, r0, r7 - lsl r0, r0, #0x2 - add r0, r0, r1 - ldrb r6, [r0, #0x10] - cmp r6, #0 - beq ._313 @cond_branch - cmp r6, #0xfe - beq ._313 @cond_branch - cmp r6, #0xff - bne ._314 @cond_branch -._313: - mov r0, #0x64 - mov r1, r8 - mul r1, r1, r0 - add r0, r1, #0 - ldr r1, ._316 @ gPlayerParty - add r0, r0, r1 - bl GetMonGender - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - b ._320 -._317: - .align 2, 0 -._316: - .word gPlayerParty - .word gBaseStats -._314: - cmp r2, #0 - beq ._318 @cond_branch - cmp r2, #0xfe - beq ._319 @cond_branch - mov r0, #0x0 - b ._320 -._318: - mov r6, #0xfe - b ._321 -._319: - mov r6, #0x0 -._321: - mov r0, r8 - lsl r0, r0, #0x2 - mov r9, r0 -._322: - bl Random - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - bl Random - lsl r0, r0, #0x10 - orr r5, r5, r0 - add r0, r7, #0 - add r1, r5, #0 - bl GetGenderFromSpeciesAndPersonality - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, r6 - bne ._322 @cond_branch - mov r0, #0x64 - mov r4, r8 - mul r4, r4, r0 - ldr r0, ._323 @ gPlayerParty - add r4, r4, r0 - add r0, r4, #0 - mov r1, #0x42 - bl GetMonData - ldr r0, ._323 + 4 @ _nakamuraStatic0 - add r0, r0, r9 - ldrh r1, [r0] - ldrb r2, [r0, #0x2] - mov r0, #0x1 - str r0, [sp] - str r5, [sp, #0x4] - mov r0, #0x0 - str r0, [sp, #0x8] - str r0, [sp, #0xc] - add r0, r4, #0 - mov r3, #0x20 - bl CreateMon - add r0, r6, #0 -._320: - add sp, sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._324: - .align 2, 0 -._323: - .word gPlayerParty - .word _nakamuraStatic0 - - thumb_func_end debug_sub_816062C - - thumb_func_start debug_sub_8160714 -debug_sub_8160714: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - add sp, sp, #0xfffffff0 - add r6, r0, #0 - mov r9, r1 - mov r7, #0x0 - mov r0, #0x0 - mov r8, r0 - mov r2, #0x0 - mov r5, #0x0 -._329: - add r4, r5, #1 - lsl r1, r4, #0x18 - lsr r1, r1, #0x18 - mov r0, r9 - str r2, [sp, #0xc] - bl GetPokeblockData - add r1, r0, #0 - lsl r0, r5, #0x1 - add r0, r0, sp - strh r1, [r0] - ldr r2, [sp, #0xc] - cmp r5, #0x5 - beq ._328 @cond_branch - lsl r0, r1, #0x10 - asr r1, r0, #0x10 - cmp r1, #0 - ble ._326 @cond_branch - add r0, r7, #1 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._326: - cmp r1, #0 - bge ._327 @cond_branch - mov r0, r8 - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r8, r0 -._327: - cmp r1, #0 - bne ._328 @cond_branch - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 -._328: - lsl r0, r4, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x5 - bls ._329 @cond_branch - mov r0, sp - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0x31 - bgt ._333 @cond_branch - mov r0, sp - ldrh r0, [r0, #0x2] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #0x31 - bgt ._333 @cond_branch - mov r0, sp - mov r4, #0x4 - ldsh r0, [r0, r4] - cmp r0, #0x31 - bgt ._333 @cond_branch - mov r0, sp - mov r1, #0x6 - ldsh r0, [r0, r1] - cmp r0, #0x31 - bgt ._333 @cond_branch - mov r0, sp - mov r4, #0x8 - ldsh r0, [r0, r4] - cmp r0, #0x31 - ble ._334 @cond_branch -._333: - ldr r1, ._336 @ ContestStatsText_GoldPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0xe - b ._400 -._337: - .align 2, 0 -._336: - .word ContestStatsText_GoldPokeBlock -._334: - cmp r7, #0x4 - bne ._338 @cond_branch - ldr r1, ._340 @ ContestStatsText_WhitePokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0xd - b ._400 -._341: - .align 2, 0 -._340: - .word ContestStatsText_WhitePokeBlock -._338: - mov r3, #0x0 - mov r5, #0x0 -._343: - lsl r0, r5, #0x1 - add r0, r0, sp - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0x2 - bne ._342 @cond_branch - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 -._342: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x4 - bls ._343 @cond_branch - cmp r3, #0x3 - beq ._345 @cond_branch - cmp r2, #0x5 - beq ._345 @cond_branch - mov r4, r8 - cmp r4, #0x4 - bne ._346 @cond_branch -._345: - ldr r1, ._348 @ ContestStatsText_BlackPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0xc - b ._400 -._349: - .align 2, 0 -._348: - .word ContestStatsText_BlackPokeBlock -._346: - cmp r7, #0x3 - bne ._350 @cond_branch - ldr r1, ._352 @ ContestStatsText_GrayPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0xb - b ._400 -._353: - .align 2, 0 -._352: - .word ContestStatsText_GrayPokeBlock -._350: - cmp r7, #0x2 - beq ._354 @cond_branch - mov r0, r8 - cmp r0, #0x2 - bne ._377 @cond_branch -._354: - mov r3, #0x6 - mov r2, #0x0 - mov r5, #0x0 -._359: - lsl r0, r5, #0x1 - add r0, r0, sp - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0 - beq ._358 @cond_branch - cmp r3, #0x6 - bne ._357 @cond_branch - add r3, r5, #0 - b ._358 -._357: - add r2, r5, #0 -._358: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x4 - bls ._359 @cond_branch - lsl r0, r3, #0x1 - mov r4, sp - add r1, r4, r0 - lsl r0, r2, #0x1 - add r0, r0, sp - mov r4, #0x0 - ldsh r1, [r1, r4] - mov r4, #0x0 - ldsh r0, [r0, r4] - cmp r1, r0 - blt ._360 @cond_branch - add r2, r3, #0 -._360: - cmp r2, #0 - bne ._361 @cond_branch - ldr r1, ._363 @ ContestStatsText_PurplePokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x6 - b ._400 -._364: - .align 2, 0 -._363: - .word ContestStatsText_PurplePokeBlock -._361: - cmp r2, #0x1 - bne ._365 @cond_branch - ldr r1, ._367 @ ContestStatsText_IndigoPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x7 - b ._400 -._368: - .align 2, 0 -._367: - .word ContestStatsText_IndigoPokeBlock -._365: - cmp r2, #0x2 - bne ._369 @cond_branch - ldr r1, ._371 @ ContestStatsText_BrownPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x8 - b ._400 -._372: - .align 2, 0 -._371: - .word ContestStatsText_BrownPokeBlock -._369: - cmp r2, #0x3 - bne ._373 @cond_branch - ldr r1, ._375 @ ContestStatsText_LiteBluePokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x9 - b ._400 -._376: - .align 2, 0 -._375: - .word ContestStatsText_LiteBluePokeBlock -._373: - cmp r2, #0x4 - bne ._377 @cond_branch - ldr r1, ._379 @ ContestStatsText_OlivePokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0xa - b ._400 -._380: - .align 2, 0 -._379: - .word ContestStatsText_OlivePokeBlock -._377: - cmp r7, #0x1 - beq ._381 @cond_branch - mov r0, r8 - cmp r0, #0x1 - bne ._399 @cond_branch -._381: - mov r0, sp - mov r1, #0x0 - ldsh r0, [r0, r1] - cmp r0, #0 - beq ._383 @cond_branch - ldr r1, ._385 @ ContestStatsText_RedPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x1 - b ._400 -._386: - .align 2, 0 -._385: - .word ContestStatsText_RedPokeBlock -._383: - mov r0, sp - ldrh r0, [r0, #0x2] - cmp r0, #0 - beq ._387 @cond_branch - ldr r1, ._389 @ ContestStatsText_BluePokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x2 - b ._400 -._390: - .align 2, 0 -._389: - .word ContestStatsText_BluePokeBlock -._387: - mov r0, sp - mov r4, #0x4 - ldsh r0, [r0, r4] - cmp r0, #0 - beq ._391 @cond_branch - ldr r1, ._393 @ ContestStatsText_PinkPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x3 - b ._400 -._394: - .align 2, 0 -._393: - .word ContestStatsText_PinkPokeBlock -._391: - mov r0, sp - mov r1, #0x6 - ldsh r0, [r0, r1] - cmp r0, #0 - beq ._395 @cond_branch - ldr r1, ._397 @ ContestStatsText_GreenPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x4 - b ._400 -._398: - .align 2, 0 -._397: - .word ContestStatsText_GreenPokeBlock -._395: - mov r0, sp - mov r4, #0x8 - ldsh r0, [r0, r4] - cmp r0, #0 - beq ._399 @cond_branch - ldr r1, ._401 @ ContestStatsText_YellowPokeBlock - add r0, r6, #0 - bl StringCopy - mov r0, #0x5 - b ._400 -._402: - .align 2, 0 -._401: - .word ContestStatsText_YellowPokeBlock -._399: - ldr r1, ._403 @ gOtherText_FiveQuestions - add r0, r6, #0 - bl StringCopy - mov r0, #0x0 -._400: - add sp, sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._404: - .align 2, 0 -._403: - .word gOtherText_FiveQuestions - - thumb_func_end debug_sub_8160714 - - thumb_func_start debug_sub_816097C -debug_sub_816097C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add r7, r0, #0 - lsl r1, r1, #0x10 - lsr r5, r1, #0x10 - mov r6, #0x0 - mov r1, #0x0 -._405: - add r0, r7, r6 - strb r1, [r0] - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x3 - bls ._405 @cond_branch - mov r0, #0xff - strb r0, [r7, #0x4] - lsl r0, r5, #0x10 - asr r0, r0, #0x10 - cmp r0, #0 - bne ._406 @cond_branch - mov r0, #0xa1 - strb r0, [r7, #0x3] - b ._414 -._406: - cmp r0, #0 - ble ._408 @cond_branch - mov r4, #0x64 - mov r0, #0x0 - mov r8, r0 - mov r6, #0x0 -._412: - lsl r5, r5, #0x10 - asr r0, r5, #0x10 - lsl r4, r4, #0x10 - asr r1, r4, #0x10 - bl __divsi3 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r1, r8 - cmp r1, #0 - bne ._410 @cond_branch - cmp r6, #0x2 - beq ._410 @cond_branch - cmp r2, #0 - beq ._411 @cond_branch -._410: - add r1, r6, r7 - add r0, r2, #0 - sub r0, r0, #0x5f - strb r0, [r1, #0x1] - mov r0, #0x1 - mov r8, r0 -._411: - asr r0, r5, #0x10 - asr r4, r4, #0x10 - add r1, r4, #0 - bl __modsi3 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0 - mov r1, #0xa - bl __divsi3 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x2 - bls ._412 @cond_branch - b ._414 -._408: - cmp r0, #0 - bge ._414 @cond_branch - neg r0, r0 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - mov r4, #0x64 - mov r1, #0x0 - mov r8, r1 - mov r6, #0x0 -._419: - lsl r5, r5, #0x10 - asr r0, r5, #0x10 - lsl r4, r4, #0x10 - asr r1, r4, #0x10 - bl __divsi3 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r1, r8 - lsl r0, r1, #0x10 - add r3, r0, #0 - cmp r3, #0 - bne ._416 @cond_branch - cmp r6, #0x2 - beq ._416 @cond_branch - cmp r2, #0 - beq ._417 @cond_branch -._416: - add r1, r6, r7 - add r0, r2, #0 - sub r0, r0, #0x5f - strb r0, [r1, #0x1] - cmp r3, #0 - bne ._418 @cond_branch - mov r0, #0xae - strb r0, [r1] -._418: - mov r0, #0x1 - mov r8, r0 -._417: - asr r0, r5, #0x10 - asr r4, r4, #0x10 - add r1, r4, #0 - bl __modsi3 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0 - mov r1, #0xa - bl __divsi3 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x2 - bls ._419 @cond_branch -._414: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_sub_816097C - - thumb_func_start debug_sub_8160A80 -debug_sub_8160A80: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r2, r0, #0 - ldr r1, ._422 @ _nakamuraStatic18 - cmp r0, #0 - bne ._420 @cond_branch - ldr r4, ._422 + 4 @ gStringVar1 - ldrb r1, [r1, #0x1] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0x3 - bl Menu_PrintText - b ._440 -._423: - .align 2, 0 -._422: - .word _nakamuraStatic18 - .word gStringVar1 -._420: - cmp r0, #0x1 - bne ._424 @cond_branch - ldr r4, ._426 @ gStringVar1 - ldrb r1, [r1, #0x2] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0x5 - bl Menu_PrintText - b ._440 -._427: - .align 2, 0 -._426: - .word gStringVar1 -._424: - cmp r0, #0x2 - bne ._428 @cond_branch - ldr r4, ._430 @ gStringVar1 - ldrb r1, [r1, #0x3] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0x7 - bl Menu_PrintText - b ._440 -._431: - .align 2, 0 -._430: - .word gStringVar1 -._428: - cmp r0, #0x3 - bne ._432 @cond_branch - ldr r4, ._434 @ gStringVar1 - ldrb r1, [r1, #0x4] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0x9 - bl Menu_PrintText - b ._440 -._435: - .align 2, 0 -._434: - .word gStringVar1 -._432: - cmp r0, #0x4 - bne ._436 @cond_branch - ldr r4, ._438 @ gStringVar1 - ldrb r1, [r1, #0x5] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0xb - bl Menu_PrintText - b ._440 -._439: - .align 2, 0 -._438: - .word gStringVar1 -._436: - cmp r2, #0x5 - bne ._440 @cond_branch - ldr r4, ._441 @ gStringVar1 - ldrb r1, [r1, #0x6] - add r0, r4, #0 - bl debug_sub_816097C - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0xd - bl Menu_PrintText -._440: - pop {r4} - pop {r0} - bx r0 -._442: - .align 2, 0 -._441: - .word gStringVar1 - - thumb_func_end debug_sub_8160A80 - - thumb_func_start debug_sub_8160B50 -debug_sub_8160B50: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r3, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r4, r1, #0 - ldr r2, ._445 @ _nakamuraStatic18 - cmp r0, #0 - bne ._443 @cond_branch - ldrb r0, [r2, #0x1] - add r0, r0, r1 - strb r0, [r2, #0x1] - b ._455 -._446: - .align 2, 0 -._445: - .word _nakamuraStatic18 -._443: - cmp r0, #0x1 - bne ._447 @cond_branch - ldrb r0, [r2, #0x2] - add r0, r0, r1 - strb r0, [r2, #0x2] - b ._455 -._447: - cmp r0, #0x2 - bne ._449 @cond_branch - ldrb r0, [r2, #0x3] - add r0, r0, r1 - strb r0, [r2, #0x3] - b ._455 -._449: - cmp r0, #0x3 - bne ._451 @cond_branch - ldrb r0, [r2, #0x4] - add r0, r0, r1 - strb r0, [r2, #0x4] - b ._455 -._451: - cmp r0, #0x4 - bne ._453 @cond_branch - ldrb r0, [r2, #0x5] - add r0, r0, r1 - strb r0, [r2, #0x5] - b ._455 -._453: - cmp r3, #0x5 - bne ._455 @cond_branch - ldrb r0, [r2, #0x6] - add r0, r0, r4 - strb r0, [r2, #0x6] -._455: - pop {r4} - pop {r0} - bx r0 - - thumb_func_end debug_sub_8160B50 - - thumb_func_start debug_sub_8160BB0 -debug_sub_8160BB0: - push {r4, r5, lr} - ldr r5, ._456 @ gStringVar1 - ldr r4, ._456 + 4 @ _nakamuraStatic18 - add r0, r5, #0 - add r1, r4, #0 - bl debug_sub_8160714 - strb r0, [r4] - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0x8 - mov r3, #0x2 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - pop {r4, r5} - pop {r0} - bx r0 -._457: - .align 2, 0 -._456: - .word gStringVar1 - .word _nakamuraStatic18 - - thumb_func_end debug_sub_8160BB0 - - thumb_func_start debug_sub_8160BE4 -debug_sub_8160BE4: - push {r4, lr} - add sp, sp, #0xfffffff8 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xc - mov r3, #0xf - bl Menu_DrawStdWindowFrame - bl debug_sub_8160BB0 - ldr r0, ._459 @ gContestStatsText_Spicy - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - ldr r0, ._459 + 4 @ gContestStatsText_Dry - mov r1, #0x2 - mov r2, #0x5 - bl Menu_PrintText - ldr r0, ._459 + 8 @ gContestStatsText_Sweet - mov r1, #0x2 - mov r2, #0x7 - bl Menu_PrintText - ldr r0, ._459 + 12 @ gContestStatsText_Bitter - mov r1, #0x2 - mov r2, #0x9 - bl Menu_PrintText - ldr r0, ._459 + 16 @ gContestStatsText_Sour - mov r1, #0x2 - mov r2, #0xb - bl Menu_PrintText - ldr r0, ._459 + 20 @ gContestStatsText_Tasty - mov r1, #0x2 - mov r2, #0xd - bl Menu_PrintText - mov r4, #0x0 -._458: - add r0, r4, #0 - bl debug_sub_8160A80 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x5 - bls ._458 @cond_branch - mov r0, #0x0 - str r0, [sp] - mov r0, #0xb - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x6 - bl InitMenu - add sp, sp, #0x8 - pop {r4} - pop {r0} - bx r0 -._460: - .align 2, 0 -._459: - .word gContestStatsText_Spicy - .word gContestStatsText_Dry - .word gContestStatsText_Sweet - .word gContestStatsText_Bitter - .word gContestStatsText_Sour - .word gContestStatsText_Tasty - - thumb_func_end debug_sub_8160BE4 - - thumb_func_start debug_sub_8160C7C -debug_sub_8160C7C: - push {r4, lr} - ldr r2, ._469 @ _nakamuraStatic18 - mov r1, #0x0 - ldrb r0, [r2] - cmp r0, #0xc - bne ._467 @cond_branch - ldrb r0, [r2, #0x1] - cmp r0, #0x2 - bne ._462 @cond_branch - mov r1, #0x1 -._462: - ldrb r0, [r2, #0x3] - cmp r0, #0x2 - bne ._463 @cond_branch - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -._463: - ldrb r0, [r2, #0x4] - cmp r0, #0x2 - bne ._464 @cond_branch - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -._464: - ldrb r0, [r2, #0x2] - cmp r0, #0x2 - bne ._465 @cond_branch - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -._465: - ldrb r0, [r2, #0x5] - cmp r0, #0x2 - bne ._466 @cond_branch - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -._466: - cmp r1, #0x3 - beq ._467 @cond_branch - mov r0, #0x2 - strb r0, [r2, #0x1] - strb r0, [r2, #0x3] - strb r0, [r2, #0x4] -._467: - add r0, r2, #0 - bl sub_810CA34 - bl debug_sub_8160BB0 - mov r4, #0x0 -._468: - add r0, r4, #0 - bl debug_sub_8160A80 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x5 - bls ._468 @cond_branch - pop {r4} - pop {r0} - bx r0 -._470: - .align 2, 0 -._469: - .word _nakamuraStatic18 - - thumb_func_end debug_sub_8160C7C - - thumb_func_start debug_sub_8160CF4 -debug_sub_8160CF4: - push {lr} - ldr r2, ._473 @ gMain - ldrh r1, [r2, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._471 @cond_branch - mov r0, #0x1 - neg r0, r0 - b ._472 -._474: - .align 2, 0 -._473: - .word gMain -._471: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._475 @cond_branch - mov r0, #0x1 -._472: - bl Menu_MoveCursor - mov r0, #0x0 - b ._484 -._475: - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._477 @cond_branch - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - neg r1, r1 - b ._478 -._477: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._479 @cond_branch - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 -._478: - bl debug_sub_8160B50 - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl debug_sub_8160A80 - bl debug_sub_8160BB0 - mov r0, #0x0 - b ._484 -._479: - ldrh r1, [r2, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._481 @cond_branch - bl debug_sub_8160C7C - mov r0, #0x5 - bl PlaySE - mov r0, #0x0 - b ._484 -._481: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - bne ._483 @cond_branch - mov r0, #0x0 - b ._484 -._483: - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl CloseMenu - mov r0, #0x1 -._484: - pop {r1} - bx r1 - - thumb_func_end debug_sub_8160CF4 - - thumb_func_start debug_sub_8160D98 -debug_sub_8160D98: - push {lr} - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl debug_sub_8160BE4 - ldr r1, ._485 @ gMenuCallback - ldr r0, ._485 + 4 @ debug_sub_8160CF4 - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._486: - .align 2, 0 -._485: - .word gMenuCallback - .word debug_sub_8160CF4+1 - - thumb_func_end debug_sub_8160D98 - - thumb_func_start debug_sub_8160DC0 -debug_sub_8160DC0: - push {lr} - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x16 - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._487 @ gOtherText_Slash - mov r1, #0xb - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._487 + 4 @ Str_843E5F2 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - ldr r0, ._487 + 8 @ Str_843E5FB - mov r1, #0x2 - mov r2, #0x5 - bl Menu_PrintText - ldr r0, ._487 + 12 @ Str_843E606 - mov r1, #0x2 - mov r2, #0x7 - bl Menu_PrintText - ldr r0, ._487 + 16 @ Str_843E611 - mov r1, #0x2 - mov r2, #0x9 - bl Menu_PrintText - ldr r0, ._487 + 20 @ Str_843E61C - mov r1, #0x2 - mov r2, #0xb - bl Menu_PrintText - ldr r0, ._487 + 24 @ Str_843E627 - mov r1, #0x2 - mov r2, #0xd - bl Menu_PrintText - ldr r0, ._487 + 28 @ Str_843E637 - mov r1, #0x2 - mov r2, #0xf - bl Menu_PrintText - ldr r0, ._487 + 32 @ Str_843E632 - mov r1, #0x2 - mov r2, #0x11 - bl Menu_PrintText - pop {r0} - bx r0 -._488: - .align 2, 0 -._487: - .word gOtherText_Slash - .word Str_843E5F2 - .word Str_843E5FB - .word Str_843E606 - .word Str_843E611 - .word Str_843E61C - .word Str_843E627 - .word Str_843E637 - .word Str_843E632 - - thumb_func_end debug_sub_8160DC0 - - thumb_func_start debug_sub_8160E50 -debug_sub_8160E50: - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0xa - mov r3, #0x2 - bl Menu_BlankWindowRect - ldr r5, ._489 @ gStringVar1 - add r0, r6, #0 - mov r1, #0x2 - add r2, r5, #0 - bl GetMonData - add r0, r5, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - mov r0, #0xc - mov r1, #0x1 - mov r2, #0x15 - mov r3, #0x2 - bl Menu_BlankWindowRect - add r0, r6, #0 - mov r1, #0xb - bl GetMonData - mov r1, #0xb - mul r0, r0, r1 - ldr r1, ._489 + 4 @ gSpeciesNames - add r0, r0, r1 - mov r1, #0xc - mov r2, #0x1 - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1a - bl GetMonData - add r4, r0, #0 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0x3 - mov r2, #0x11 - mov r3, #0x4 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0x3 - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1b - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r4, r4, r1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0x5 - mov r2, #0x11 - mov r3, #0x6 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0x5 - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1c - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r4, r4, r1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0x7 - mov r2, #0x11 - mov r3, #0x8 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0x7 - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1d - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r4, r4, r1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0x9 - mov r2, #0x11 - mov r3, #0xa - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0x9 - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1e - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r4, r4, r1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0xb - mov r2, #0x11 - mov r3, #0xc - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0xb - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x1f - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r4, r4, r1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0xd - mov r2, #0x11 - mov r3, #0xe - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0xd - bl Menu_PrintText - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0xf - mov r2, #0x11 - mov r3, #0x10 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0xf - bl Menu_PrintText - add r0, r6, #0 - mov r1, #0x20 - bl GetMonData - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x0 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - mov r0, #0xd - mov r1, #0x11 - mov r2, #0x11 - mov r3, #0x12 - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0xd - mov r2, #0x11 - bl Menu_PrintText - pop {r4, r5, r6} - pop {r0} - bx r0 -._490: - .align 2, 0 -._489: - .word gStringVar1 - .word gSpeciesNames - - thumb_func_end debug_sub_8160E50 - - thumb_func_start debug_sub_8161028 -debug_sub_8161028: - push {r4, r5, r6, lr} - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - asr r1, r0, #0x18 - mov r0, #0x1 - neg r0, r0 - cmp r1, r0 - bne ._491 @cond_branch - ldr r0, ._496 @ _nakamuraData5 - ldrb r0, [r0] - cmp r0, #0 - bne ._492 @cond_branch - mov r5, #0x5 -._494: - lsl r0, r5, #0x10 - asr r4, r0, #0x10 - mov r0, #0x64 - mul r0, r0, r4 - ldr r1, ._496 + 4 @ gPlayerParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - bne ._493 @cond_branch - sub r0, r4, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r0, #0 - bge ._494 @cond_branch -._492: - ldr r1, ._496 @ _nakamuraData5 - ldrb r0, [r1] - add r0, r0, r6 - strb r0, [r1] - b ._506 -._497: - .align 2, 0 -._496: - .word _nakamuraData5 - .word gPlayerParty -._491: - cmp r1, #0x1 - bne ._506 @cond_branch - ldr r4, ._501 @ _nakamuraData5 - ldrb r0, [r4] - add r0, r0, r6 - strb r0, [r4] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x6 - bne ._499 @cond_branch - mov r0, #0x0 - b ._500 -._502: - .align 2, 0 -._501: - .word _nakamuraData5 -._493: - ldr r0, ._504 @ _nakamuraData5 - strb r5, [r0] - b ._506 -._505: - .align 2, 0 -._504: - .word _nakamuraData5 -._499: - ldrb r1, [r4] - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._507 @ gPlayerParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - bne ._506 @cond_branch -._500: - strb r0, [r4] -._506: - pop {r4, r5, r6} - pop {r0} - bx r0 -._508: - .align 2, 0 -._507: - .word gPlayerParty - - thumb_func_end debug_sub_8161028 - - thumb_func_start debug_sub_81610BC -debug_sub_81610BC: - push {lr} - ldr r0, ._511 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._509 @cond_branch - mov r0, #0x1 - neg r0, r0 - b ._510 -._512: - .align 2, 0 -._511: - .word gMain -._509: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._513 @cond_branch - mov r0, #0x1 -._510: - bl debug_sub_8161028 - ldr r0, ._515 @ _nakamuraData5 - ldrb r1, [r0] - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._515 + 4 @ gPlayerParty - add r0, r0, r1 - bl debug_sub_8160E50 - mov r0, #0x0 - b ._518 -._516: - .align 2, 0 -._515: - .word _nakamuraData5 - .word gPlayerParty -._513: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - bne ._517 @cond_branch - mov r0, #0x0 - b ._518 -._517: - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl CloseMenu - mov r0, #0x1 -._518: - pop {r1} - bx r1 - - thumb_func_end debug_sub_81610BC - - thumb_func_start DebugMenu_EffortValues -DebugMenu_EffortValues: - push {lr} - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - ldr r1, ._519 @ _nakamuraData5 - mov r0, #0x0 - strb r0, [r1] - bl debug_sub_8160DC0 - ldr r0, ._519 + 4 @ gPlayerParty - bl debug_sub_8160E50 - ldr r1, ._519 + 8 @ gMenuCallback - ldr r0, ._519 + 12 @ debug_sub_81610BC - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._520: - .align 2, 0 -._519: - .word _nakamuraData5 - .word gPlayerParty - .word gMenuCallback - .word debug_sub_81610BC+1 - - thumb_func_end DebugMenu_EffortValues - - thumb_func_start debug_sub_8161160 -debug_sub_8161160: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r7, #0x0 - ldr r2, ._523 @ _nakamuraData6 - ldr r1, ._523 + 4 @ _nakamuraData8 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bhi ._521 @cond_branch - add r6, r0, #0 - ldrh r5, [r1] - b ._522 -._524: - .align 2, 0 -._523: - .word _nakamuraData6 - .word _nakamuraData8 -._521: - ldrh r6, [r1] - ldrh r5, [r2] -._522: - mov r4, #0x0 - ldr r0, ._529 @ _nakamuraDataA - ldrh r0, [r0] - cmp r4, r0 - bcs ._525 @cond_branch - ldr r0, ._529 + 4 @ _nakamuraDataC - mov r8, r0 -._528: - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, r8 - ldrh r1, [r2] - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, r6 - bcc ._527 @cond_branch - cmp r0, r5 - bhi ._527 @cond_branch - add r0, r7, #1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 -._527: - add r4, r4, #0x1 - ldr r0, ._529 @ _nakamuraDataA - ldrh r0, [r0] - cmp r4, r0 - bcc ._528 @cond_branch -._525: - add r0, r7, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._530: - .align 2, 0 -._529: - .word _nakamuraDataA - .word _nakamuraDataC - - thumb_func_end debug_sub_8161160 - - thumb_func_start debug_sub_81611D8 -debug_sub_81611D8: - push {r4, lr} - add sp, sp, #0xfffffff8 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xf - mov r3, #0xb - bl Menu_DrawStdWindowFrame - ldr r0, ._531 @ Str_843E642 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._531 + 4 @ Str_843E647 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - ldr r0, ._531 + 8 @ Str_843E65A - mov r1, #0x2 - mov r2, #0x5 - bl Menu_PrintText - ldr r0, ._531 + 12 @ Str_843E64C - mov r1, #0x2 - mov r2, #0x7 - bl Menu_PrintText - ldr r0, ._531 + 16 @ Str_843E651 - mov r1, #0x2 - mov r2, #0x9 - bl Menu_PrintText - ldr r0, ._531 + 20 @ Str_843E655 - mov r1, #0xd - mov r2, #0x9 - bl Menu_PrintText - ldr r4, ._531 + 24 @ Str_843E658 - add r0, r4, #0 - mov r1, #0xc - mov r2, #0x1 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xc - mov r2, #0x3 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xc - mov r2, #0x5 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xc - mov r2, #0x7 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xc - mov r2, #0x9 - bl Menu_PrintText - mov r0, #0x0 - str r0, [sp] - mov r0, #0xe - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x4 - bl InitMenu - add sp, sp, #0x8 - pop {r4} - pop {r0} - bx r0 -._532: - .align 2, 0 -._531: - .word Str_843E642 - .word Str_843E647 - .word Str_843E65A - .word Str_843E64C - .word Str_843E651 - .word Str_843E655 - .word Str_843E658 - - thumb_func_end debug_sub_81611D8 - - thumb_func_start debug_sub_8161290 -debug_sub_8161290: - push {r4, lr} - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - ldr r4, ._533 @ gStringVar1 - add r0, r4, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r4, #0 - mov r1, #0x8 - mov r2, #0x9 - bl Menu_PrintText - pop {r4} - pop {r0} - bx r0 -._534: - .align 2, 0 -._533: - .word gStringVar1 - - thumb_func_end debug_sub_8161290 - - thumb_func_start debug_sub_81612B8 -debug_sub_81612B8: - push {r4, r5, lr} - add r4, r2, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - lsl r1, r1, #0x18 - asr r1, r1, #0x18 - ldrh r2, [r0] - add r1, r1, r2 - strh r1, [r0] - ldr r5, ._535 @ gStringVar1 - ldrh r1, [r0] - add r0, r5, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r5, #0 - mov r1, #0x8 - add r2, r4, #0 - bl Menu_PrintText - pop {r4, r5} - pop {r0} - bx r0 -._536: - .align 2, 0 -._535: - .word gStringVar1 - - thumb_func_end debug_sub_81612B8 - - thumb_func_start debug_sub_81612EC -debug_sub_81612EC: - push {r4, r5, lr} - ldr r2, ._540 @ gMain - ldrh r1, [r2, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - mov r5, #0x1 - cmp r0, #0 - beq ._537 @cond_branch - mov r5, #0x64 -._537: - ldrh r1, [r2, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._538 @cond_branch - mov r0, #0x1 - neg r0, r0 - b ._539 -._541: - .align 2, 0 -._540: - .word gMain -._538: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._542 @cond_branch - mov r0, #0x1 -._539: - bl Menu_MoveCursor -._565: - mov r0, #0x0 - b ._543 -._542: - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._544 @cond_branch - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - cmp r4, #0 - bne ._545 @cond_branch - ldr r0, ._550 @ _nakamuraData6 - neg r1, r5 - mov r2, #0x1 - bl debug_sub_81612B8 -._545: - cmp r4, #0x1 - bne ._546 @cond_branch - ldr r0, ._550 + 4 @ _nakamuraData8 - neg r1, r5 - mov r2, #0x3 - bl debug_sub_81612B8 -._546: - cmp r4, #0x2 - bne ._547 @cond_branch - ldr r0, ._550 + 8 @ _nakamuraDataC - neg r1, r5 - mov r2, #0x5 - bl debug_sub_81612B8 -._547: - cmp r4, #0x3 - bne ._565 @cond_branch - ldr r0, ._550 + 12 @ _nakamuraDataA - neg r1, r5 - mov r2, #0x7 - bl debug_sub_81612B8 - b ._565 -._551: - .align 2, 0 -._550: - .word _nakamuraData6 - .word _nakamuraData8 - .word _nakamuraDataC - .word _nakamuraDataA -._544: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._552 @cond_branch - bl Menu_GetCursorPos - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - cmp r4, #0 - bne ._553 @cond_branch - ldr r0, ._558 @ _nakamuraData6 - add r1, r5, #0 - mov r2, #0x1 - bl debug_sub_81612B8 -._553: - cmp r4, #0x1 - bne ._554 @cond_branch - ldr r0, ._558 + 4 @ _nakamuraData8 - add r1, r5, #0 - mov r2, #0x3 - bl debug_sub_81612B8 -._554: - cmp r4, #0x2 - bne ._555 @cond_branch - ldr r0, ._558 + 8 @ _nakamuraDataC - add r1, r5, #0 - mov r2, #0x5 - bl debug_sub_81612B8 -._555: - cmp r4, #0x3 - bne ._565 @cond_branch - ldr r0, ._558 + 12 @ _nakamuraDataA - add r1, r5, #0 - mov r2, #0x7 - bl debug_sub_81612B8 - b ._565 -._559: - .align 2, 0 -._558: - .word _nakamuraData6 - .word _nakamuraData8 - .word _nakamuraDataC - .word _nakamuraDataA -._552: - ldrh r1, [r2, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._560 @cond_branch - ldr r0, ._563 @ _nakamuraDataC - ldrh r0, [r0] - cmp r0, #0 - beq ._565 @cond_branch - mov r0, #0x5 - bl PlaySE - bl debug_sub_8161160 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl debug_sub_8161290 - b ._565 -._564: - .align 2, 0 -._563: - .word _nakamuraDataC -._560: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._565 @cond_branch - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl CloseMenu - mov r0, #0x1 -._543: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_81612EC - - thumb_func_start DebugMenu_RandomNumberTest -DebugMenu_RandomNumberTest: - push {lr} - ldr r0, ._566 @ _nakamuraData6 - mov r1, #0x0 - strh r1, [r0] - ldr r0, ._566 + 4 @ _nakamuraData8 - strh r1, [r0] - ldr r0, ._566 + 8 @ _nakamuraDataC - strh r1, [r0] - ldr r0, ._566 + 12 @ _nakamuraDataA - strh r1, [r0] - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_EraseWindowRect - bl debug_sub_81611D8 - ldr r1, ._566 + 16 @ gMenuCallback - ldr r0, ._566 + 20 @ debug_sub_81612EC - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._567: - .align 2, 0 -._566: - .word _nakamuraData6 - .word _nakamuraData8 - .word _nakamuraDataC - .word _nakamuraDataA - .word gMenuCallback - .word debug_sub_81612EC+1 - - thumb_func_end DebugMenu_RandomNumberTest - - .align 2, 0 - -.endif diff --git a/asm/normal.s b/asm/normal.s index 732c049ab..55aae48fd 100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -24,7 +24,7 @@ sub_80E1CB4: @ 80E1CB4 strh r0, [r4, 0x2E] ldr r0, _080E1CF0 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -1208,7 +1208,7 @@ _080E25A0: cmp r0, 0x1 bhi _080E25F4 movs r4, 0 - ldr r5, _080E2600 @ =gNoOfAllBanks + ldr r5, _080E2600 @ =gBattlersCount ldrb r0, [r5] cmp r4, r0 bcs _080E25F4 @@ -1243,7 +1243,7 @@ _080E25FA: pop {r0} bx r0 .align 2, 0 -_080E2600: .4byte gNoOfAllBanks +_080E2600: .4byte gBattlersCount _080E2604: .4byte gSprites _080E2608: .4byte gBankSpriteIds thumb_func_end sub_80E255C @@ -1538,7 +1538,7 @@ sub_80E2838: @ 80E2838 adds r4, r0, 0 ldr r0, _080E2868 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E285C @@ -1636,7 +1636,7 @@ sub_80E2908: @ 80E2908 adds r4, r0, 0 ldr r5, _080E2968 @ =gBattleAnimArgs ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] @@ -2512,13 +2512,13 @@ _080E2FAC: bne _080E3028 ldr r5, _080E305C @ =gAnimBankAttacker ldrb r0, [r5] - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E2FDC ldrb r0, [r5] - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 bne _080E3028 @@ -2585,11 +2585,11 @@ _080E3068: .4byte gSharedMem + 0x19348 _080E306C: ldr r4, _080E308C @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E3098 - ldr r1, _080E3090 @ =gBattlePartyID + ldr r1, _080E3090 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -2600,10 +2600,10 @@ _080E306C: b _080E30A8 .align 2, 0 _080E308C: .4byte gAnimBankAttacker -_080E3090: .4byte gBattlePartyID +_080E3090: .4byte gBattlerPartyIndexes _080E3094: .4byte gEnemyParty _080E3098: - ldr r1, _080E3160 @ =gBattlePartyID + ldr r1, _080E3160 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -2619,7 +2619,7 @@ _080E30A8: lsrs r4, r0, 16 _080E30B4: movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E3168 @ =gAnimBankAttacker @@ -2697,7 +2697,7 @@ _080E3106: pop {r0} bx r0 .align 2, 0 -_080E3160: .4byte gBattlePartyID +_080E3160: .4byte gBattlerPartyIndexes _080E3164: .4byte gPlayerParty _080E3168: .4byte gAnimBankAttacker _080E316C: .4byte 0x040000d4 @@ -2784,7 +2784,7 @@ _080E3208: adds r0, 0x2 strh r5, [r0] movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId ldr r0, _080E32CC @ =gSprites mov r8, r0 movs r2, 0x8 @@ -3051,13 +3051,13 @@ _080E3432: cmp r0, 0 bne _080E34A4 adds r0, r5, 0 - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E345E adds r0, r5, 0 - bl GetBankIdentity + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 bne _080E34A4 @@ -3119,11 +3119,11 @@ _080E34DC: .4byte gBankSpriteIds _080E34E0: .4byte gSharedMem + 0x19348 _080E34E4: adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E3508 - ldr r1, _080E3500 @ =gBattlePartyID + ldr r1, _080E3500 @ =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -3132,10 +3132,10 @@ _080E34E4: ldr r1, _080E3504 @ =gEnemyParty b _080E3516 .align 2, 0 -_080E3500: .4byte gBattlePartyID +_080E3500: .4byte gBattlerPartyIndexes _080E3504: .4byte gEnemyParty _080E3508: - ldr r1, _080E3568 @ =gBattlePartyID + ldr r1, _080E3568 @ =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -3182,7 +3182,7 @@ _080E3550: bl LZDecompressVram b _080E3580 .align 2, 0 -_080E3568: .4byte gBattlePartyID +_080E3568: .4byte gBattlerPartyIndexes _080E356C: .4byte gPlayerParty _080E3570: .4byte gBankSpriteIds _080E3574: .4byte gBattleStatMask1_Tilemap @@ -3847,7 +3847,7 @@ sub_80E3A58: @ 80E3A58 beq _080E3A94 ldr r0, _080E3AC8 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E3A94 @@ -3955,7 +3955,7 @@ sub_80E3B4C: @ 80E3B4C lsrs r4, 24 ldr r0, _080E3B70 @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide ldr r1, _080E3B74 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -3978,7 +3978,7 @@ sub_80E3B78: @ 80E3B78 lsrs r4, 24 ldr r0, _080E3B9C @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide ldr r1, _080E3BA0 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -4206,11 +4206,11 @@ _080E3D50: .4byte REG_BG1CNT _080E3D54: .4byte gSharedMem + 0x19348 _080E3D58: adds r0, r7, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080E3D7C - ldr r1, _080E3D74 @ =gBattlePartyID + ldr r1, _080E3D74 @ =gBattlerPartyIndexes lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -4219,10 +4219,10 @@ _080E3D58: ldr r1, _080E3D78 @ =gEnemyParty b _080E3D8A .align 2, 0 -_080E3D74: .4byte gBattlePartyID +_080E3D74: .4byte gBattlerPartyIndexes _080E3D78: .4byte gEnemyParty _080E3D7C: - ldr r1, _080E3E48 @ =gBattlePartyID + ldr r1, _080E3E48 @ =gBattlerPartyIndexes lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -4320,7 +4320,7 @@ _080E3DE6: pop {r0} bx r0 .align 2, 0 -_080E3E48: .4byte gBattlePartyID +_080E3E48: .4byte gBattlerPartyIndexes _080E3E4C: .4byte gPlayerParty _080E3E50: .4byte gBankSpriteIds _080E3E54: .4byte gBattle_BG1_X @@ -4861,11 +4861,11 @@ sub_80E4264: @ 80E4264 lsrs r5, r0, 24 ldr r0, _080E428C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r0, _080E4290 @ =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 diff --git a/asm/water.s b/asm/water.s index 2f0ebb8f8..6f9c5cb9d 100644 --- a/asm/water.s +++ b/asm/water.s @@ -757,7 +757,7 @@ sub_80D40F4: @ 80D40F4 ldr r0, _080D4144 @ =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -1085,11 +1085,11 @@ sub_80D4394: @ 80D4394 push {r4,r5,lr} ldr r4, _080D43B8 @ =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D43C8 - ldr r1, _080D43BC @ =gBattlePartyID + ldr r1, _080D43BC @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -1100,13 +1100,13 @@ sub_80D4394: @ 80D4394 b _080D43D8 .align 2, 0 _080D43B8: .4byte gAnimBankAttacker -_080D43BC: .4byte gBattlePartyID +_080D43BC: .4byte gBattlerPartyIndexes _080D43C0: .4byte gPlayerParty _080D43C4: adds r0, r2, 0 b _080D440A _080D43C8: - ldr r1, _080D4410 @ =gBattlePartyID + ldr r1, _080D4410 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -1144,7 +1144,7 @@ _080D440A: pop {r1} bx r1 .align 2, 0 -_080D4410: .4byte gBattlePartyID +_080D4410: .4byte gBattlerPartyIndexes _080D4414: .4byte gEnemyParty thumb_func_end sub_80D4394 @@ -1163,13 +1163,13 @@ sub_80D4418: @ 80D4418 ldr r4, _080D4520 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC @@ -1392,7 +1392,7 @@ sub_80D45D8: @ 80D45D8 strh r0, [r4, 0xA] ldr r0, _080D460C @ =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D4610 @@ -1791,19 +1791,19 @@ sub_80D48F4: @ 80D48F4 ldr r4, _080D497C @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -2268,13 +2268,13 @@ sub_80D4CA4: @ 80D4CA4 ldr r5, _080D4CE0 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d309aea7e..7bf760480 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -291,7 +291,7 @@ BattleScript_MoveEnd:: @ 81D6F62 end BattleScript_MakeMoveMissed: @ 81D6F6C - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED BattleScript_PrintMoveMissed: @ 81D6F72 attackstring @@ -407,7 +407,7 @@ BattleScript_EffectExplosion: @ 81D708A faintifabilitynotdamp setatkhptozero waitstate - jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_1D70A5 + jumpifbyte NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_1D70A5 call BattleScript_1D70FB goto BattleScript_1D70A7 @@ -449,10 +449,10 @@ BattleScript_1D70E0: @ 81D70E0 end BattleScript_1D70FB: @ 81D70FB - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED attackanimation waitanimation - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED return BattleScript_EffectDreamEater: @ 81D710A @@ -503,7 +503,7 @@ BattleScript_EffectMirrorMove: @ 81D7173 pause 64 trymirrormove ppreduce - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring BATTLE_TEXT_MirrorFail waitmessage 64 goto BattleScript_MoveEnd @@ -684,7 +684,7 @@ BattleScript_DoMultiHit: @ 81D7322 addbyte sMULTIHIT_STRING + 4, 1 setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings decrementmultihit BattleScript_MultiHitLoop goto BattleScript_MultiHitPrintStrings @@ -865,7 +865,7 @@ BattleScript_EffectSuperFang: @ 81D7596 attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE damagetohalftargethp goto BattleScript_HitFromAtkAnimation @@ -875,7 +875,7 @@ BattleScript_EffectDragonRage: @ 81D75AD attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE setword gBattleMoveDamage, 40 adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -911,19 +911,19 @@ BattleScript_MoveMissedDoDamage: @ 81D7632 pause 64 resultmessage waitmessage 64 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd printstring BATTLE_TEXT_KeptGoingCrash waitmessage 64 damagecalc typecalc adjustnormaldamage manipulatedamage 1 - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER tryfaintmon USER, FALSE, NULL - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED goto BattleScript_MoveEnd BattleScript_EffectMist: @ 81D7676 @@ -1256,7 +1256,7 @@ BattleScript_EffectLevelDamage: @ 81D7A17 attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE dmgtolevel adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -1267,7 +1267,7 @@ BattleScript_EffectPsywave: @ 81D7A2F attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE psywavedamageeffect adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -1483,7 +1483,7 @@ BattleScript_DoTripleKickAttack: @ 81D7C2E waitmessage 1 setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings decrementmultihit BattleScript_TripleKickLoop goto BattleScript_TripleKickPrintStrings @@ -1653,7 +1653,7 @@ BattleScript_PerishSongLoop: @ 81D7E53 BattleScript_PerishSongLoopIncrement: @ 81D7E5A addbyte sBANK, 1 - jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop + jumpifbytenotequal sBANK, gBattlersCount, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_1D7E73: @ 81D7E73 @@ -1801,7 +1801,7 @@ BattleScript_EffectSonicboom: @ 81D7FB4 attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE setword gBattleMoveDamage, 20 adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -2156,14 +2156,14 @@ BattleScript_ButItFailedPpReduce: @ 81D83D5 BattleScript_ButItFailed:: @ 81D83D6 pause 32 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED resultmessage waitmessage 64 goto BattleScript_MoveEnd BattleScript_NotAffected: @ 81D83E8 pause 32 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE resultmessage waitmessage 64 goto BattleScript_MoveEnd @@ -2530,7 +2530,7 @@ BattleScript_EffectBrickBreak: @ 81D879D typecalc adjustnormaldamage jumpifbyte EQUAL, sANIM_TURN, 0, BattleScript_BrickBreakAnim - bicbyte gBattleMoveFlags, 9 + bicbyte gMoveResultFlags, 9 BattleScript_BrickBreakAnim: @ 81D87BD attackanimation @@ -2593,7 +2593,7 @@ BattleScript_EffectEndeavor: @ 81D8852 accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copyword gBattleMoveDamage, gHpDealt adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -2701,7 +2701,7 @@ BattleScript_TeeterDanceDoMoveEndIncrement: @ 81D8978 setbyte sMOVEEND_STATE, 0 moveend 2, 16 addbyte gBankTarget, 1 - jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop + jumpifbytenotequal gBankTarget, gBattlersCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceLoopIncrement: @ 81D8996 @@ -2790,7 +2790,7 @@ BattleScript_TickleEnd: @ 81D8A78 BattleScript_CantLowerMultipleStats: @ 81D8A7D pause 32 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring BATTLE_TEXT_StatNoLower waitmessage 64 goto BattleScript_MoveEnd @@ -2885,7 +2885,7 @@ BattleScript_CalmMindEnd: @ 81D8BC6 BattleScript_CantRaiseMultipleStats: @ 81D8BCB pause 32 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring BATTLE_TEXT_StatNoHigher waitmessage 64 goto BattleScript_MoveEnd @@ -3034,7 +3034,7 @@ BattleScript_1D8D99: @ 81D8D99 switchinanim 3, 0 waitstate switchineffects 5 - jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_1D8D99 + jumpifbytenotequal gBank1, gBattlersCount, BattleScript_1D8D99 BattleScript_1D8DBD: @ 81D8DBD end2 @@ -3264,7 +3264,7 @@ BattleScript_DamagingWeatherLoop: @ 81D8F95 BattleScript_DamagingWeatherLoopIncrement: @ 81D8FD6 jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd addbyte gBattleCommunication, 1 - jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop + jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd: @ 81D8FF5 bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE @@ -3343,7 +3343,7 @@ BattleScript_BideAttack:: @ 81D90B2 waitmessage 64 accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copyword gBattleMoveDamage, sBIDE_DMG adjustsetdamage setbyte sANIM_TURN, 1 @@ -3579,16 +3579,16 @@ BattleScript_FutureAttackEnd: @ 81D9332 moveend 1, 0 setbyte sMOVEEND_STATE, 8 moveend 2, 14 - setbyte gBattleMoveFlags, 0 + setbyte gMoveResultFlags, 0 end2 BattleScript_FutureAttackMiss: @ 81D934B pause 32 - setbyte gBattleMoveFlags, 0 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + setbyte gMoveResultFlags, 0 + orbyte gMoveResultFlags, MOVE_RESULT_FAILED resultmessage waitmessage 64 - setbyte gBattleMoveFlags, 0 + setbyte gMoveResultFlags, 0 end2 BattleScript_NoMovesLeft:: @ 81D9365 @@ -4042,7 +4042,7 @@ BattleScript_WeatherFormChanges: @ 81D9761 BattleScript_WeatherFormChangesLoop: @ 81D9767 trycastformdatachange addbyte sBANK, 1 - jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop + jumpifbytenotequal sBANK, gBattlersCount, BattleScript_WeatherFormChangesLoop return BattleScript_CastformChange:: @ 81D977D @@ -4132,7 +4132,7 @@ BattleScript_MoveHPDrain:: @ 81D9843 datahpupdate TARGET printstring BATTLE_TEXT_HPRestoredUsing waitmessage 64 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_MoveHPDrain_FullHP_PPLoss:: @ 81D9865 @@ -4143,7 +4143,7 @@ BattleScript_MoveHPDrain_FullHP:: @ 81D9866 pause 32 printstring BATTLE_TEXT_MadeUseless waitmessage 64 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: @ 81D987B diff --git a/data/contest_effect.s b/data/contest_effect.s deleted file mode 100644 index cd960fb52..000000000 --- a/data/contest_effect.s +++ /dev/null @@ -1,21 +0,0 @@ - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83CF594 - .include "data/contest_moves.inc" - -@ 83D00AC - .include "data/contest_effects.inc" - -@ A lookup table with TRUE for each combo starter ID and FALSE for ID 0, -@ which means "not a combo starter move". -gComboStarterLookupTable:: @ 83D016C - .byte FALSE - .rept 62 - .byte TRUE - .endr - -@ 83D01AC - .include "data/contest_effect_funcs.inc" diff --git a/data/contest_effect_funcs.inc b/data/contest_effect_funcs.inc deleted file mode 100644 index 8dbe9d595..000000000 --- a/data/contest_effect_funcs.inc +++ /dev/null @@ -1,50 +0,0 @@ - .align 2 -gContestEffectFuncs:: - .4byte ContestEffect_00 - .4byte ContestEffect_01 - .4byte ContestEffect_02 - .4byte ContestEffect_03 - .4byte ContestEffect_04 - .4byte ContestEffect_05 - .4byte ContestEffect_06 - .4byte ContestEffect_07 - .4byte ContestEffect_08 - .4byte ContestEffect_09 - .4byte ContestEffect_08 - .4byte ContestEffect_09 - .4byte ContestEffect_08 - .4byte ContestEffect_09 - .4byte ContestEffect_14 - .4byte ContestEffect_15 - .4byte ContestEffect_16 - .4byte ContestEffect_17 - .4byte ContestEffect_18 - .4byte ContestEffect_19 - .4byte ContestEffect_20 - .4byte ContestEffect_21 - .4byte ContestEffect_22 - .4byte ContestEffect_23 - .4byte ContestEffect_24 - .4byte ContestEffect_25 - .4byte ContestEffect_26 - .4byte ContestEffect_27 - .4byte ContestEffect_28 - .4byte ContestEffect_29 - .4byte ContestEffect_30 - .4byte ContestEffect_31 - .4byte ContestEffect_32 - .4byte ContestEffect_33 - .4byte ContestEffect_34 - .4byte ContestEffect_35 - .4byte ContestEffect_36 - .4byte ContestEffect_37 - .4byte ContestEffect_38 - .4byte ContestEffect_39 - .4byte ContestEffect_40 - .4byte ContestEffect_41 - .4byte ContestEffect_42 - .4byte ContestEffect_43 - .4byte ContestEffect_44 - .4byte ContestEffect_45 - .4byte ContestEffect_46 - .4byte ContestEffect_47 diff --git a/data/contest_effects.inc b/data/contest_effects.inc deleted file mode 100644 index 55d5c0e50..000000000 --- a/data/contest_effects.inc +++ /dev/null @@ -1,289 +0,0 @@ - .align 2 -gContestEffects:: -@ 0 - .byte 0 @ effect type - .byte 40 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 1 - .byte 0 @ effect type - .byte 60 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 2 - .byte 0 @ effect type - .byte 80 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 3 - .byte 0 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 4 - .byte 1 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 5 - .byte 1 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 6 - .byte 1 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 7 - .byte 1 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 8 - .byte 2 @ effect type - .byte 30 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 9 - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 10 - .byte 2 @ effect type - .byte 20 @ appeal - .byte 30 @ jam - .byte 0 @ padding - -@ 11 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 12 - .byte 2 @ effect type - .byte 10 @ appeal - .byte 40 @ jam - .byte 0 @ padding - -@ 13 - .byte 3 @ effect type - .byte 10 @ appeal - .byte 30 @ jam - .byte 0 @ padding - -@ 14 - .byte 2 @ effect type - .byte 30 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 15 - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 16 - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 17 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 18 - .byte 3 @ effect type - .byte 40 @ appeal - .byte 40 @ jam - .byte 0 @ padding - -@ 19 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 20 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 21 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 22 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 23 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 24 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 25 - .byte 4 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 26 - .byte 4 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 27 - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 28 - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 29 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 30 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 31 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 32 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 33 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 34 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 35 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 36 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 37 - .byte 5 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 38 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 39 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 40 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 41 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 42 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 43 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 44 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 45 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 46 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 47 - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding diff --git a/data/contest_moves.inc b/data/contest_moves.inc deleted file mode 100644 index 8765c0dbe..000000000 --- a/data/contest_moves.inc +++ /dev/null @@ -1,2486 +0,0 @@ - .align 2 -gContestMoves:: -@ NONE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ POUND - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte COMBO_STARTER_POUND @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ KARATE_CHOP - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DOUBLE_SLAP - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POUND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ COMET_PUNCH - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEGA_PUNCH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ combo moves - .byte 0 @ padding - -@ PAY_DAY - .byte CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FIRE_PUNCH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_FIRE_PUNCH @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0 @ combo moves - .byte 0 @ padding - -@ ICE_PUNCH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_ICE_PUNCH @ combo starter ID - .byte COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0 @ combo moves - .byte 0 @ padding - -@ THUNDER_PUNCH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte COMBO_STARTER_THUNDER_PUNCH @ combo starter ID - .byte COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0 @ combo moves - .byte 0 @ padding - -@ SCRATCH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SCRATCH @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ VICE_GRIP - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte COMBO_STARTER_VICE_GRIP @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GUILLOTINE - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RAZOR_WIND - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SWORDS_DANCE - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SWORDS_DANCE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CUT - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GUST - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WING_ATTACK - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WHIRLWIND - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLY - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BIND - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLAM - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POUND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ VINE_WHIP - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STOMP - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, COMBO_STARTER_LEER, 0, 0 @ combo moves - .byte 0 @ padding - -@ DOUBLE_KICK - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEGA_KICK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ combo moves - .byte 0 @ padding - -@ JUMP_KICK - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROLLING_KICK - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SAND_ATTACK - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_CUTE - .byte COMBO_STARTER_SAND_ATTACK @ combo starter ID - .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0 @ combo moves - .byte 0 @ padding - -@ HEADBUTT - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HORN_ATTACK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte COMBO_STARTER_HORN_ATTACK @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FURY_ATTACK - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0 @ combo moves - .byte 0 @ padding - -@ HORN_DRILL - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HORN_ATTACK, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TACKLE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0 @ combo moves - .byte 0 @ padding - -@ BODY_SLAM - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WRAP - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TAKE_DOWN - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ combo moves - .byte 0 @ padding - -@ THRASH - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DOUBLE_EDGE - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ combo moves - .byte 0 @ padding - -@ TAIL_WHIP - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ POISON_STING - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TWINEEDLE - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PIN_MISSILE - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LEER - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_COOL - .byte COMBO_STARTER_LEER @ combo starter ID - .byte COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0 @ combo moves - .byte 0 @ padding - -@ BITE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0 @ combo moves - .byte 0 @ padding - -@ GROWL - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROAR - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SING - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte COMBO_STARTER_SING @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUPERSONIC - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SONIC_BOOM - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DISABLE - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ACID - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ EMBER - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLAMETHROWER - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIST - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WATER_GUN - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0 @ combo moves - .byte 0 @ padding - -@ HYDRO_PUMP - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SURF - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SURF @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0 @ combo moves - .byte 0 @ padding - -@ ICE_BEAM - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BLIZZARD - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0 @ combo moves - .byte 0 @ padding - -@ PSYBEAM - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BUBBLE_BEAM - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AURORA_BEAM - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HYPER_BEAM - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PECK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte COMBO_STARTER_PECK @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DRILL_PECK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_PECK, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUBMISSION - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LOW_KICK - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ COUNTER - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SEISMIC_TOSS - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STRENGTH - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ABSORB - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEGA_DRAIN - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LEECH_SEED - .byte CONTEST_EFFECT_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GROWTH - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_GROWTH @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RAZOR_LEAF - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SOLAR_BEAM - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0 @ combo moves - .byte 0 @ padding - -@ POISON_POWDER - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STUN_SPORE - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLEEP_POWDER - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PETAL_DANCE - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STRING_SHOT - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte COMBO_STARTER_STRING_SHOT @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DRAGON_RAGE - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_RAGE @ combo starter ID - .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ combo moves - .byte 0 @ padding - -@ FIRE_SPIN - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ THUNDER_SHOCK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ THUNDERBOLT - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ THUNDER_WAVE - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ THUNDER - .byte CONTEST_EFFECT_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0 @ combo moves - .byte 0 @ padding - -@ ROCK_THROW - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_TOUGH - .byte COMBO_STARTER_ROCK_THROW @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ EARTHQUAKE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte COMBO_STARTER_EARTHQUAKE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FISSURE - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_EARTHQUAKE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DIG - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TOXIC - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CONFUSION - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte COMBO_STARTER_CONFUSION @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0 @ combo moves - .byte 0 @ padding - -@ PSYCHIC - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte COMBO_STARTER_PSYCHIC @ combo starter ID - .byte COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0 @ combo moves - .byte 0 @ padding - -@ HYPNOSIS - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte COMBO_STARTER_HYPNOSIS @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEDITATE - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AGILITY - .byte CONTEST_EFFECT_NEXT_APPEAL_EARLIER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ QUICK_ATTACK - .byte CONTEST_EFFECT_NEXT_APPEAL_EARLIER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RAGE - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_COOL - .byte COMBO_STARTER_RAGE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TELEPORT - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION @ combo moves - .byte 0 @ padding - -@ NIGHT_SHADE - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIMIC - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SCREECH - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DOUBLE_TEAM - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_COOL - .byte COMBO_STARTER_DOUBLE_TEAM @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RECOVER - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HARDEN - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_TOUGH - .byte COMBO_STARTER_HARDEN @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MINIMIZE - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SMOKESCREEN - .byte CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SMOG, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CONFUSE_RAY - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WITHDRAW - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DEFENSE_CURL - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_CUTE - .byte COMBO_STARTER_DEFENSE_CURL @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BARRIER - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LIGHT_SCREEN - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HAZE - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ REFLECT - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FOCUS_ENERGY - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte COMBO_STARTER_FOCUS_ENERGY @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BIDE - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ METRONOME - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIRROR_MOVE - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SELF_DESTRUCT - .byte CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ EGG_BOMB - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SOFT_BOILED, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LICK - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SMOG - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SMOG @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLUDGE - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SLUDGE @ combo starter ID - .byte COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BONE_CLUB - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONE_CLUB @ combo starter ID - .byte COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0 @ combo moves - .byte 0 @ padding - -@ FIRE_BLAST - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WATERFALL - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CLAMP - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SWIFT - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SKULL_BASH - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPIKE_CANNON - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CONSTRICT - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AMNESIA - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ KINESIS - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte COMBO_STARTER_KINESIS @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0 @ combo moves - .byte 0 @ padding - -@ SOFT_BOILED - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SOFT_BOILED @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HI_JUMP_KICK - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GLARE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DREAM_EATER - .byte CONTEST_EFFECT_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0 @ combo moves - .byte 0 @ padding - -@ POISON_GAS - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BARRAGE - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LEECH_LIFE - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LOVELY_KISS - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SKY_ATTACK - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TRANSFORM - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BUBBLE - .byte CONTEST_EFFECT_STARTLE_PREV_MONS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DIZZY_PUNCH - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPORE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLASH - .byte CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PSYWAVE - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPLASH - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ACID_ARMOR - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CRABHAMMER - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0 @ combo moves - .byte 0 @ padding - -@ EXPLOSION - .byte CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FURY_SWIPES - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCRATCH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BONEMERANG - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONEMERANG @ combo starter ID - .byte COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0 @ combo moves - .byte 0 @ padding - -@ REST - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_CUTE - .byte COMBO_STARTER_REST @ combo starter ID - .byte COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0 @ combo moves - .byte 0 @ padding - -@ ROCK_SLIDE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HYPER_FANG - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SHARPEN - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CONVERSION - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TRI_ATTACK - .byte CONTEST_EFFECT_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUPER_FANG - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLASH - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUBSTITUTE - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STRUGGLE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SKETCH - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TRIPLE_KICK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ THIEF - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPIDER_WEB - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STRING_SHOT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIND_READER - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte COMBO_STARTER_MIND_READER @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ NIGHTMARE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HYPNOSIS, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLAME_WHEEL - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SNORE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_REST, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CURSE - .byte CONTEST_EFFECT_NEXT_APPEAL_LATER - .byte CONTEST_TOUGH - .byte COMBO_STARTER_CURSE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLAIL - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CONVERSION_2 - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AEROBLAST - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ COTTON_SPORE - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ REVERSAL - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPITE - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ POWDER_SNOW - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_POWDER_SNOW @ combo starter ID - .byte COMBO_STARTER_HAIL, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PROTECT - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HARDEN, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MACH_PUNCH - .byte CONTEST_EFFECT_NEXT_APPEAL_EARLIER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SCARY_FACE - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SCARY_FACE @ combo starter ID - .byte COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0 @ combo moves - .byte 0 @ padding - -@ FAINT_ATTACK - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0 @ combo moves - .byte 0 @ padding - -@ SWEET_KISS - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BELLY_DRUM - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_CUTE - .byte COMBO_STARTER_BELLY_DRUM @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLUDGE_BOMB - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SLUDGE_BOMB @ combo starter ID - .byte COMBO_STARTER_SLUDGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MUD_SLAP - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_CUTE - .byte COMBO_STARTER_MUD_SLAP @ combo starter ID - .byte COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0 @ combo moves - .byte 0 @ padding - -@ OCTAZOOKA - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPIKES - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ZAP_CANNON - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FORESIGHT - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DESTINY_BOND - .byte CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0 @ combo moves - .byte 0 @ padding - -@ PERISH_SONG - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0 @ combo moves - .byte 0 @ padding - -@ ICY_WIND - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DETECT - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BONE_RUSH - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONE_RUSH @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0 @ combo moves - .byte 0 @ padding - -@ LOCK_ON - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte COMBO_STARTER_LOCK_ON @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ OUTRAGE - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SANDSTORM - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SANDSTORM @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GIGA_DRAIN - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ENDURE - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_TOUGH - .byte COMBO_STARTER_ENDURE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CHARM - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_CUTE - .byte COMBO_STARTER_CHARM @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROLLOUT - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0 @ combo moves - .byte 0 @ padding - -@ FALSE_SWIPE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SWAGGER - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MILK_DRINK - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPARK - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FURY_CUTTER - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STEEL_WING - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEAN_LOOK - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_MEAN_LOOK @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ATTRACT - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLEEP_TALK - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_REST, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HEAL_BELL - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RETURN - .byte CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PRESENT - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FRUSTRATION - .byte CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SAFEGUARD - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PAIN_SPLIT - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SACRED_FIRE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MAGNITUDE - .byte CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DYNAMIC_PUNCH - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEGAHORN - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DRAGON_BREATH - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_BREATH @ combo starter ID - .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ combo moves - .byte 0 @ padding - -@ BATON_PASS - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ENCORE - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PURSUIT - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RAPID_SPIN - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SWEET_SCENT - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_CUTE - .byte COMBO_STARTER_SWEET_SCENT @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ IRON_TAIL - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ METAL_CLAW - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_METAL_SOUND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ VITAL_THROW - .byte CONTEST_EFFECT_NEXT_APPEAL_LATER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MORNING_SUN - .byte CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SYNTHESIS - .byte CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MOONLIGHT - .byte CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HIDDEN_POWER - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CROSS_CHOP - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TWISTER - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RAIN_DANCE - .byte CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - .byte CONTEST_TOUGH - .byte COMBO_STARTER_RAIN_DANCE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUNNY_DAY - .byte CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SUNNY_DAY @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CRUNCH - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIRROR_COAT - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PSYCH_UP - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ EXTREME_SPEED - .byte CONTEST_EFFECT_NEXT_APPEAL_EARLIER - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ANCIENT_POWER - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SHADOW_BALL - .byte CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FUTURE_SIGHT - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND @ combo moves - .byte 0 @ padding - -@ ROCK_SMASH - .byte CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WHIRLPOOL - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BEAT_UP - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FAKE_OUT - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_CUTE - .byte COMBO_STARTER_FAKE_OUT @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ UPROAR - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ STOCKPILE - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_TOUGH - .byte COMBO_STARTER_STOCKPILE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SPIT_UP - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SWALLOW - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HEAT_WAVE - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HAIL - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_HAIL @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TORMENT - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FLATTER - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WILL_O_WISP - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MEMENTO - .byte CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FACADE - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FOCUS_PUNCH - .byte CONTEST_EFFECT_NEXT_APPEAL_LATER - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SMELLING_SALT - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FOLLOW_ME - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ NATURE_POWER - .byte CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CHARGE - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_SMART - .byte COMBO_STARTER_CHARGE @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TAUNT - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte COMBO_STARTER_TAUNT @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HELPING_HAND - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TRICK - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROLE_PLAY - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WISH - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ASSIST - .byte CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ INGRAIN - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SUPERPOWER - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MAGIC_COAT - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ RECYCLE - .byte CONTEST_EFFECT_REPETITION_NOT_BORING - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ REVENGE - .byte CONTEST_EFFECT_NEXT_APPEAL_LATER - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BRICK_BREAK - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ YAWN - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte COMBO_STARTER_YAWN @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ KNOCK_OFF - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ENDEAVOR - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ERUPTION - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0 @ combo moves - .byte 0 @ padding - -@ SKILL_SWAP - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ IMPRISON - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ REFRESH - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0 @ combo moves - .byte 0 @ padding - -@ GRUDGE - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SNATCH - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SECRET_POWER - .byte CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DIVE - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_DIVE @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0 @ combo moves - .byte 0 @ padding - -@ ARM_THRUST - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0 @ combo moves - .byte 0 @ padding - -@ CAMOUFLAGE - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TAIL_GLOW - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LUSTER_PURGE - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MIST_BALL - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FEATHER_DANCE - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TEETER_DANCE - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BLAZE_KICK - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MUD_SPORT - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_CUTE - .byte COMBO_STARTER_MUD_SPORT @ combo starter ID - .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0 @ combo moves - .byte 0 @ padding - -@ ICE_BALL - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ NEEDLE_ARM - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SLACK_OFF - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_YAWN, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HYPER_VOICE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ POISON_FANG - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ CRUSH_CLAW - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BLAST_BURN - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HYDRO_CANNON - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ METEOR_MASH - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ASTONISH - .byte CONTEST_EFFECT_STARTLE_PREV_MON - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WEATHER_BALL - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM @ combo moves - .byte 0 @ padding - -@ AROMATHERAPY - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ FAKE_TEARS - .byte CONTEST_EFFECT_BETTER_IF_LAST - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AIR_CUTTER - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ OVERHEAT - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ODOR_SLEUTH - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROCK_TOMB - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SILVER_WIND - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ METAL_SOUND - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte COMBO_STARTER_METAL_SOUND @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ GRASS_WHISTLE - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ TICKLE - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ COSMIC_POWER - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WATER_SPOUT - .byte CONTEST_EFFECT_BETTER_WHEN_LATER - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SIGNAL_BEAM - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SHADOW_PUNCH - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ EXTRASENSORY - .byte CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SKY_UPPERCUT - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SAND_TOMB - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SANDSTORM, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SHEER_COLD - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MUDDY_WATER - .byte CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BULLET_SEED - .byte CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ AERIAL_ACE - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ ICICLE_SPEAR - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ IRON_DEFENSE - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BLOCK - .byte CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ HOWL - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DRAGON_CLAW - .byte CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0 @ combo moves - .byte 0 @ padding - -@ FRENZY_PLANT - .byte CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BULK_UP - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ BOUNCE - .byte CONTEST_EFFECT_AVOID_STARTLE - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MUD_SHOT - .byte CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ POISON_TAIL - .byte CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ COVET - .byte CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ VOLT_TACKLE - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ MAGICAL_LEAF - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WATER_SPORT - .byte CONTEST_EFFECT_HIGHLY_APPEALING - .byte CONTEST_CUTE - .byte COMBO_STARTER_WATER_SPORT @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0 @ combo moves - .byte 0 @ padding - -@ CALM_MIND - .byte CONTEST_EFFECT_AVOID_STARTLE_ONCE - .byte CONTEST_SMART - .byte COMBO_STARTER_CALM_MIND @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ LEAF_BLADE - .byte CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DRAGON_DANCE - .byte CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_DANCE @ combo starter ID - .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0 @ combo moves - .byte 0 @ padding - -@ ROCK_BLAST - .byte CONTEST_EFFECT_BETTER_IF_SAME_TYPE - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ SHOCK_WAVE - .byte CONTEST_EFFECT_BETTER_IF_FIRST - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ WATER_PULSE - .byte CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ DOOM_DESIRE - .byte CONTEST_EFFECT_DONT_EXCITE_AUDIENCE - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ combo moves - .byte 0 @ padding - -@ PSYCHO_BOOST - .byte CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ combo moves - .byte 0 @ padding diff --git a/data/cute_sketch.s b/data/contest_painting_effects.s index e3e75753d..e3e75753d 100644 --- a/data/cute_sketch.s +++ b/data/contest_painting_effects.s diff --git a/include/battle.h b/include/battle.h index 11bb9e387..af0b48013 100644 --- a/include/battle.h +++ b/include/battle.h @@ -4,29 +4,43 @@ #include "sprite.h" #include "constants/battle_constants.h" -/* - Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. - Each bank has a value consisting of two bits. - 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side. - 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.) -*/ - -#define BATTLE_BANKS_COUNT 4 - -#define IDENTITY_PLAYER_MON1 0 -#define IDENTITY_OPPONENT_MON1 1 -#define IDENTITY_PLAYER_MON2 2 -#define IDENTITY_OPPONENT_MON2 3 - -#define SIDE_PLAYER 0x0 -#define SIDE_OPPONENT 0x1 - -#define BIT_SIDE 0x1 -#define BIT_MON 0x2 - -#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank])) -#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE)) -#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE)) +#define GET_BATTLER_POSITION(bank)((gBattlerPositions[bank])) +#define GET_BATTLER_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE)) +#define GET_BATTLER_SIDE2(bank)((GET_BATTLER_POSITION(bank) & BIT_SIDE)) + +// Battle Actions +// These determine what each battler will do in a turn +#define B_ACTION_USE_MOVE 0 +#define B_ACTION_USE_ITEM 1 +#define B_ACTION_SWITCH 2 +#define B_ACTION_RUN 3 +#define B_ACTION_SAFARI_WATCH_CAREFULLY 4 +#define B_ACTION_SAFARI_BALL 5 +#define B_ACTION_SAFARI_POKEBLOCK 6 +#define B_ACTION_SAFARI_GO_NEAR 7 +#define B_ACTION_SAFARI_RUN 8 +// The exact purposes of these are unclear +#define B_ACTION_UNKNOWN9 9 +#define B_ACTION_EXEC_SCRIPT 10 // when executing an action +#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action +#define B_ACTION_FINISHED 12 // when executing an action +#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action +#define B_ACTION_NONE 0xFF + +// defines for the u8 array gTypeEffectiveness +#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0])) +#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1])) +#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2])) + +// defines for the gTypeEffectiveness multipliers +#define TYPE_MUL_NO_EFFECT 0 +#define TYPE_MUL_NOT_EFFECTIVE 5 +#define TYPE_MUL_NORMAL 10 +#define TYPE_MUL_SUPER_EFFECTIVE 20 + +// special type table Ids +#define TYPE_FORESIGHT 0xFE +#define TYPE_ENDTABLE 0xFF enum { @@ -56,13 +70,13 @@ struct Trainer /*0x24*/ const void *party; }; -struct UnkBattleStruct1 // AI_Opponent_Info? +struct BattleHistory { - /*0x00*/ u16 movesUsed[2][8]; // 0xFFFF means move not used (confuse self hit, etc) - /*0x20*/ u8 unk20[2]; - /*0x22*/ u8 unk22[2]; - /*0x24*/ u16 items[4]; - /*0x2C*/ u8 numOfItems; + /*0x00*/ u16 usedMoves[2][8]; // 0xFFFF means move not used (confuse self hit, etc) + /*0x20*/ u8 abilities[MAX_BATTLERS_COUNT / 2]; + /*0x22*/ u8 itemEffects[MAX_BATTLERS_COUNT / 2]; + /*0x24*/ u16 trainerItems[MAX_BATTLERS_COUNT]; + /*0x2C*/ u8 numItems; }; struct AI_Stack @@ -179,7 +193,7 @@ struct BattleStruct /* 0x2000000 */ /*0x1605F*/ u8 sentInPokes; /*0x16060*/ u8 unk16060[4]; /*0x16064*/ u8 unk16064[4]; - /*0x16068*/ u8 unk16068[4]; + /*0x16068*/ u8 monToSwitchIntoId[MAX_BATTLERS_COUNT]; /*0x1606C*/ u8 unk1606C[4][3]; /*0x16078*/ u8 unk16078; /*0x16079*/ u8 caughtNick[11]; @@ -242,8 +256,7 @@ struct BattleStruct /* 0x2000000 */ /*0x160C5*/ u8 unk160C5; /*0x160C6*/ u8 unk160C6; /*0x160C7*/ u8 unk160C7; - /*0x160C8*/ u8 unk160C8; - /*0x160C9*/ u8 unk160C9; + /*0x160C8*/ u8 AI_monToSwitchIntoId[2]; /*0x160CA*/ u8 synchroniseEffect; /*0x160CB*/ u8 linkPlayerIndex; /*0x160CC*/ u16 usedHeldItems[4]; @@ -323,7 +336,7 @@ struct BattleStruct /* 0x2000000 */ /*0x1611F*/ u8 unk1611F; //u8 filler2[0x72E]; - /* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2; + /* 0x16A00 */ struct BattleHistory unk_2016A00_2; }; struct StatsArray @@ -352,8 +365,8 @@ struct DisableStruct /*0x0D*/ u8 unkD; /*0x0E*/ u8 encoreTimer1 : 4; /*0x0E*/ u8 encoreTimer2 : 4; - /*0x0F*/ u8 perishSong1 : 4; - /*0x0F*/ u8 perishSong2 : 4; + /*0x0F*/ u8 perishSongTimer1 : 4; + /*0x0F*/ u8 perishSongTimer2 : 4; /*0x10*/ u8 furyCutterCounter; /*0x11*/ u8 rolloutTimer1 : 4; /*0x11*/ u8 rolloutTimer2 : 4; @@ -520,21 +533,21 @@ struct sideTimer struct WishFutureKnock { - u8 futureSightCounter[MAX_BANKS_BATTLE]; - u8 futureSightAttacker[MAX_BANKS_BATTLE]; - s32 futureSightDmg[MAX_BANKS_BATTLE]; - u16 futureSightMove[MAX_BANKS_BATTLE]; - u8 wishCounter[MAX_BANKS_BATTLE]; - u8 wishUserID[MAX_BANKS_BATTLE]; + u8 futureSightCounter[MAX_BATTLERS_COUNT]; + u8 futureSightAttacker[MAX_BATTLERS_COUNT]; + s32 futureSightDmg[MAX_BATTLERS_COUNT]; + u16 futureSightMove[MAX_BATTLERS_COUNT]; + u8 wishCounter[MAX_BATTLERS_COUNT]; + u8 wishUserID[MAX_BATTLERS_COUNT]; u8 weatherDuration; u8 knockedOffPokes[2]; }; -extern struct UnkBattleStruct1 unk_2016A00; -extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE]; +extern struct BattleHistory unk_2016A00; +extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; extern struct BattleResults gBattleResults; -extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE]; -extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE]; +extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; +extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; extern struct sideTimer gSideTimers[2]; extern struct WishFutureKnock gWishFutureKnock; extern struct AI_ThinkingStruct gAIThinkingSpace; @@ -708,7 +721,7 @@ void MarkBufferBankForExecution(u8 bank); extern u8 gBattleTextBuff1[]; -// asm/battle_1.o +// src/battle_bg.o void sub_800D6D4(); void ApplyPlayerChosenFrameToBattleMenu(); void DrawMainBattleBackground(void); @@ -803,7 +816,6 @@ void sub_8032AA8(u8, u8); void SetBankFuncToOpponentBufferRunCommand(void); void BattleStopLowHpSound(void); -// asm/battle_9.o void SetBankFuncToLinkOpponentBufferRunCommand(void); #endif // GUARD_BATTLE_H diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h new file mode 100755 index 000000000..648cfad74 --- /dev/null +++ b/include/battle_ai_switch_items.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H +#define GUARD_BATTLE_AI_SWITCH_ITEMS_H + +u8 GetMostSuitableMonToSwitchInto(void); + +#endif diff --git a/include/choose_party.h b/include/choose_party.h index 853202a89..9aacef27d 100644 --- a/include/choose_party.h +++ b/include/choose_party.h @@ -9,5 +9,8 @@ bool8 SetupLinkMultiBattlePartyMenu(void); void HandleLinkMultiBattlePartyMenu(u8 taskId); void HandleDaycarePartyMenu(u8 taskId); void sub_8123138(u8 taskId); +#if DEBUG +void Debug_CopyLastThreePartyMonsToMultiPartnerParty(void); +#endif #endif // GUARD_CHOOSE_PARTY_H diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index 49768f33e..65f44d8aa 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -1,12 +1,47 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H #define GUARD_CONSTANTS_BATTLE_CONSTANTS_H -// Bank sides -#define SIDE_PLAYER 0x0 -#define SIDE_OPPONENT 0x1 - -#define BIT_SIDE 0x1 -#define BIT_MON 0x2 +/* + * A battler may be in one of four positions on the field. The first bit determines + * what side the battler is on, either the player's side or the opponent's side. + * The second bit determines what flank the battler is on, either the left or right. + * Note that the opponent's flanks are drawn corresponding to their perspective, so + * their right mon appears on the left, and their left mon appears on the right. + * The battler ID is usually the same as the position, except in the case of link battles. + * + * + ------------------------- + + * | Opponent's side | + * | Right Left | + * | 3 1 | + * | | + * | Player's side | + * | Left Right | + * | 0 2 | + * ----------------------------+ + * | | + * | | + * +---------------------------+ + */ + +#define MAX_BATTLERS_COUNT 4 + +#define B_POSITION_PLAYER_LEFT 0 +#define B_POSITION_OPPONENT_LEFT 1 +#define B_POSITION_PLAYER_RIGHT 2 +#define B_POSITION_OPPONENT_RIGHT 3 + +// These macros can be used with either battler ID or positions to get the partner or the opposite mon +#define BATTLE_OPPOSITE(id) ((id) ^ 1) +#define BATTLE_PARTNER(id) ((id) ^ 2) + +#define B_SIDE_PLAYER 0 +#define B_SIDE_OPPONENT 1 + +#define B_FLANK_LEFT 0 +#define B_FLANK_RIGHT 1 + +#define BIT_SIDE 1 +#define BIT_FLANK 2 #define STATUS_SLEEP 0x7 #define STATUS_POISON 0x8 @@ -88,19 +123,16 @@ #define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) #define HITMARKER_UNK(bank) ((0x10000000 << bank)) -#define MOVESTATUS_MISSED (1 << 0) -#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) -#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) -#define MOVESTATUS_NOTAFFECTED (1 << 3) -#define MOVESTATUS_ONEHITKO (1 << 4) -#define MOVESTATUS_FAILED (1 << 5) -#define MOVESTATUS_ENDURED (1 << 6) -#define MOVESTATUS_HUNGON (1 << 7) - -#define IDENTITY_PLAYER_MON1 0 -#define IDENTITY_OPPONENT_MON1 1 -#define IDENTITY_PLAYER_MON2 2 -#define IDENTITY_OPPONENT_MON2 3 +// Flags describing move's result +#define MOVE_RESULT_MISSED (1 << 0) +#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) +#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) +#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) +#define MOVE_RESULT_ONE_HIT_KO (1 << 4) +#define MOVE_RESULT_FAILED (1 << 5) +#define MOVE_RESULT_FOE_ENDURED (1 << 6) +#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 BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 @@ -206,11 +238,8 @@ #define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) -#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) - #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 #define WEATHER_RAIN_TEMPORARY (1 << 0) #define WEATHER_RAIN_DOWNPOUR (1 << 1) diff --git a/include/contest.h b/include/contest.h index 557b9e5c4..86a5ea4d7 100644 --- a/include/contest.h +++ b/include/contest.h @@ -13,13 +13,186 @@ enum enum { CONTEST_EFFECT_HIGHLY_APPEALING, - CONTEST_EFFECT_USER_MORE_STARTLED, - CONTEST_EFFECT_APPEAL_ONLY_ONCE, - CONTEST_EFFECT_REPEATABLE, + CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_EFFECT_AVOID_STARTLE, - CONTEST_EFFECT_AVOID_STARTLE_LITTLE, - //... + CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, + CONTEST_EFFECT_USER_LESS_EASILY_STARTLED, + CONTEST_EFFECT_STARTLE_FRONT_MON, + CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, + CONTEST_EFFECT_STARTLE_PREV_MON, + CONTEST_EFFECT_STARTLE_PREV_MONS, + CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + CONTEST_EFFECT_STARTLE_PREV_MON_2, + CONTEST_EFFECT_STARTLE_PREV_MONS_2, + CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, + CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, + CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, + CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, + CONTEST_EFFECT_BETTER_IF_FIRST, + CONTEST_EFFECT_BETTER_IF_LAST, + CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, + CONTEST_EFFECT_BETTER_WHEN_LATER, + CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, + CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, + CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + CONTEST_EFFECT_NEXT_APPEAL_LATER, + CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER, + CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, + CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + CONTEST_EFFECT_DONT_EXCITE_AUDIENCE +}; + +enum +{ + COMBO_STARTER_RAIN_DANCE = 1, + COMBO_STARTER_RAGE, + COMBO_STARTER_FOCUS_ENERGY, + COMBO_STARTER_HYPNOSIS, + COMBO_STARTER_ENDURE, + COMBO_STARTER_HORN_ATTACK, + COMBO_STARTER_SWORDS_DANCE, + COMBO_STARTER_STOCKPILE, + COMBO_STARTER_SUNNY_DAY, + COMBO_STARTER_REST, + COMBO_STARTER_VICE_GRIP, + COMBO_STARTER_DEFENSE_CURL, + COMBO_STARTER_CHARGE, + COMBO_STARTER_ROCK_THROW, + COMBO_STARTER_YAWN, + COMBO_STARTER_SCARY_FACE, + COMBO_STARTER_POWDER_SNOW, + COMBO_STARTER_LOCK_ON, + COMBO_STARTER_SOFT_BOILED, + COMBO_STARTER_MEAN_LOOK, + COMBO_STARTER_SCRATCH, + COMBO_STARTER_GROWTH, + COMBO_STARTER_HAIL, + COMBO_STARTER_SANDSTORM, + COMBO_STARTER_BELLY_DRUM, + COMBO_STARTER_MIND_READER, + COMBO_STARTER_DRAGON_BREATH, + COMBO_STARTER_DRAGON_RAGE, + COMBO_STARTER_DRAGON_DANCE, + COMBO_STARTER_SURF, + COMBO_STARTER_DIVE, + COMBO_STARTER_STRING_SHOT, + COMBO_STARTER_LEER, + COMBO_STARTER_TAUNT, + COMBO_STARTER_CHARM, + COMBO_STARTER_HARDEN, + COMBO_STARTER_SING, + COMBO_STARTER_EARTHQUAKE, + COMBO_STARTER_DOUBLE_TEAM, + COMBO_STARTER_CURSE, + COMBO_STARTER_SWEET_SCENT, + COMBO_STARTER_SLUDGE, + COMBO_STARTER_SLUDGE_BOMB, + COMBO_STARTER_THUNDER_PUNCH, + COMBO_STARTER_FIRE_PUNCH, + COMBO_STARTER_ICE_PUNCH, + COMBO_STARTER_PECK, + COMBO_STARTER_METAL_SOUND, + COMBO_STARTER_MUD_SPORT, + COMBO_STARTER_WATER_SPORT, + COMBO_STARTER_BONE_CLUB, + COMBO_STARTER_BONEMERANG, + COMBO_STARTER_BONE_RUSH, + COMBO_STARTER_SAND_ATTACK, + COMBO_STARTER_MUD_SLAP, + COMBO_STARTER_FAKE_OUT, + COMBO_STARTER_PSYCHIC, + COMBO_STARTER_KINESIS, + COMBO_STARTER_CONFUSION, + COMBO_STARTER_POUND, + COMBO_STARTER_SMOG, + COMBO_STARTER_CALM_MIND +}; + +enum +{ + CONTEST_STRING_MORE_CONSCIOUS, + CONTEST_STRING_NO_APPEAL, + CONTEST_STRING_SETTLE_DOWN, + CONTEST_STRING_OBLIVIOUS_TO_OTHERS, + CONTEST_STRING_LESS_AWARE, + CONTEST_STRING_STOPPED_CARING, + CONTEST_STRING_STARTLE_ATTEMPT, + CONTEST_STRING_DAZZLE_ATTEMPT, + CONTEST_STRING_JUDGE_LOOK_AWAY2, + CONTEST_STRING_UNNERVE_ATTEMPT, + CONTEST_STRING_NERVOUS, + CONTEST_STRING_UNNERVE_WAITING, + CONTEST_STRING_TAUNT_WELL, + CONTEST_STRING_REGAINED_FORM, + CONTEST_STRING_JAM_WELL, + CONTEST_STRING_HUSTLE_STANDOUT, + CONTEST_STRING_WORK_HARD_UNNOTICED, + CONTEST_STRING_WORK_BEFORE, + CONTEST_STRING_APPEAL_NOT_WELL, + CONTEST_STRING_WORK_PRECEDING, + CONTEST_STRING_APPEAL_NOT_WELL2, + CONTEST_STRING_APPEAL_NOT_SHOWN_WELL, + CONTEST_STRING_APPEAL_SLIGHTLY_WELL, + CONTEST_STRING_APPEAL_PRETTY_WELL, + CONTEST_STRING_APPEAL_EXCELLENTLY, + CONTEST_STRING_APPEAL_DUD, + CONTEST_STRING_APPEAL_NOT_VERY_WELL, + CONTEST_STRING_APPEAL_SLIGHTLY_WELL2, + CONTEST_STRING_APPEAL_PRETTY_WELL2, + CONTEST_STRING_APPEAL_VERY_WELL, + CONTEST_STRING_APPEAL_EXCELLENTLY2, + CONTEST_STRING_SAME_TYPE_GOOD, + CONTEST_STRING_DIFF_TYPE_GOOD, + CONTEST_STRING_STOOD_OUT_AS_MUCH, + CONTEST_STRING_NOT_AS_WELL, + CONTEST_STRING_CONDITION_ROSE, + CONTEST_STRING_HOT_STATUS, + CONTEST_STRING_MOVE_UP_LINE, + CONTEST_STRING_MOVE_BACK_LINE, + CONTEST_STRING_SCRAMBLE_ORDER, + CONTEST_STRING_JUDGE_EXPECTANTLY2, + CONTEST_STRING_WENT_OVER_WELL, + CONTEST_STRING_WENT_OVER_VERY_WELL, + CONTEST_STRING_APPEAL_COMBO_EXCELLENTLY, + CONTEST_STRING_AVERT_GAZE, + CONTEST_STRING_AVOID_SEEING, + CONTEST_STRING_NOT_FAZED, + CONTEST_STRING_LITTLE_DISTRACTED, + CONTEST_STRING_ATTEMPT_STARTLE, + CONTEST_STRING_LOOKED_DOWN, + CONTEST_STRING_TURNED_BACK, + CONTEST_STRING_UTTER_CRY, + CONTEST_STRING_LEAPT_UP, + CONTEST_STRING_TRIPPED_OVER, + CONTEST_STRING_MESSED_UP2, + CONTEST_STRING_FAILED_TARGET_NERVOUS, + CONTEST_STRING_FAILED_ANYONE_NERVOUS, + CONTEST_STRING_IGNORED, + CONTEST_STRING_NO_CONDITION_IMPROVE, + CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL, + CONTEST_STRING_UNAFFECTED, + CONTEST_STRING_ATTRACTED_ATTENTION, + CONTEST_STRING_NONE = 255 }; struct ContestMove @@ -156,51 +329,44 @@ struct ContestantStatus /*0x0B*/ u8 unkB_0:2; u8 unkB_2:2; u8 moveRepeatCount:3; - u8 unkB_7:1; // used a one-time move? - /*0x0C*/ u8 unkC_0:1; - u8 unkC_1:2; - /*0x0D*/ s8 unkD; - /*0x0E*/ u8 unkE; - /*0x0F*/ u8 unkF; - /*0x10*/ u8 unk10_0:1; - u8 unk10_1:1; - u8 unk10_2:1; - u8 unk10_3:1; - u8 unk10_4:2; - u8 unk10_6:2; - /*0x11*/ u8 unk11_0:2; - u8 unk11_2:1; - u8 unk11_3:1; - u8 unk11_4:1; - u8 unk11_5:1; - /*0x12*/ u8 unk12; - /*0x13*/ u8 unk13; // status action? - /*0x14*/ u8 unk14; + u8 noMoreTurns:1; // used a one-time move? + /*0x0C*/ u8 nervous:1; + u8 numTurnsSkipped:2; + /*0x0D*/ s8 condition; + /*0x0E*/ u8 jam; + /*0x0F*/ u8 jamReduction; + + // Flags set by move effect + /*0x10*/ u8 resistant:1; + u8 immune:1; + u8 moreEasilyStartled:1; + u8 usedRepeatableMove:1; + u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition + u8 turnOrderMod:2; // 1: defined; 2: random + /*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random + u8 turnSkipped:1; + u8 exploded:1; + u8 overrideCategoryExcitementMod:1; + u8 appealTripleCondition:1; + + /*0x12*/ u8 jamSafetyCount; + /*0x13*/ u8 effectStringId; // status action? + /*0x14*/ u8 effectStringId2; /*0x15*/ u8 disappointedRepeat:1; u8 unk15_1:1; u8 unk15_2:1; u8 unk15_3:1; - u8 unk15_4:1; - u8 unk15_5:1; + u8 hasJudgesAttention:1; + u8 judgesAttentionWasRemoved:1; u8 unk15_6:1; /*0x16*/ u8 unk16; /*0x17*/ u8 unk17; /*0x18*/ u8 unk18; - /*0x19*/ u8 unk19; // turn position + /*0x19*/ u8 nextTurnOrder; // turn position /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out" /*0x1B*/ u8 unk1B; }; -struct UnknownContestStruct3 -{ - u8 unk0; - u8 unk1; - //u8 unk2_0:1; - //u8 unk2_1:1; - u8 unk2; // maybe a bitfield - u8 filler3; -}; - // possibly the same as UnknownContestStruct3? struct UnknownContestStruct4 { @@ -209,28 +375,24 @@ struct UnknownContestStruct4 u8 unk2_0:1; u8 unk2_1:1; u8 unk2_2:1; - u8 filler3; }; struct UnknownContestStruct5 { s8 bits_0; // current move excitement? - u8 bits_8:1; - u8 bits_9:3; - u8 bits_C:4; + u8 excitementFrozen:1; + u8 excitementFreezer:3; s8 unk2; - u8 filler3; }; struct UnknownContestStruct7 { - u8 unk0[4]; - u16 unk4; - u16 unk6; - u8 filler8[0xD-8]; - u8 unkD[4]; - u8 unk11; - u8 filler12[2]; + u8 turnOrder[4]; + s16 jam; + s16 jam2; + u8 jamQueue[5]; + u8 unnervedPokes[4]; + u8 contestant; }; struct UnknownContestStruct8 @@ -239,7 +401,6 @@ struct UnknownContestStruct8 u16 unk2; u8 unk4_0:1; u8 unk5; - u8 filler6[2]; u32 unk8; u32 unkC; u32 unk10; @@ -277,5 +438,13 @@ extern u16 gUnknown_02038688[4]; extern u8 gContestFinalStandings[4]; extern u8 gUnknown_02038696[4]; extern u8 gUnknown_0203869B; +extern u16 gSpecialVar_ContestCategory; + +void SetContestantEffectStringID(u8 a, u8 b); +void SetContestantEffectStringID2(u8 a, u8 b); +void MakeContestantNervous(u8 p); +bool8 Contest_IsMonsTurnDisabled(u8 a); +bool8 sub_80B214C(u8 a); +void SetStartledString(u8 a, u8 b); #endif // GUARD_CONTEST_H diff --git a/include/contest_effect.h b/include/contest_effect.h new file mode 100644 index 000000000..2840bf106 --- /dev/null +++ b/include/contest_effect.h @@ -0,0 +1,6 @@ +#ifndef POKERUBY_GBA_CONTEST_EFFECT_H +#define POKERUBY_GBA_CONTEST_EFFECT_H + +extern bool8 AreMovesContestCombo(u16, u16); + +#endif //POKERUBY_GBA_CONTEST_EFFECT_H diff --git a/include/cute_sketch.h b/include/contest_painting_effects.h index 1fa3c90fb..1fa3c90fb 100644 --- a/include/cute_sketch.h +++ b/include/contest_painting_effects.h diff --git a/include/debug.h b/include/debug.h index 2136dbfb8..469560b9e 100644 --- a/include/debug.h +++ b/include/debug.h @@ -14,4 +14,7 @@ void debug_nullsub_66(void); // sound_check_menu void CB2_StartSoundCheckMenu(void); +// nakamura_debug_menu +void NakaGenderTest(void); + #endif // GUARD_DEBUG_H diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h index e59a23008..e2e31bee9 100644 --- a/include/decoration_inventory.h +++ b/include/decoration_inventory.h @@ -4,9 +4,12 @@ void ClearDecorationInventories(void); s8 sub_8133F9C(u8); u8 sub_8133FE4(u8); -u8 IsThereStorageSpaceForDecoration(u8); +u8 GiveDecoration(u8); u8 sub_8134074(u8); s8 sub_81340A8(u8); u8 sub_8134194(u8); +#if DEBUG +void Debug_GiveAllDecorations(void); +#endif // DEBUG #endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/ewram.h b/include/ewram.h index f1d9baa78..6b164648b 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -98,13 +98,13 @@ extern u8 gSharedMem[]; #define ewram16001 (gSharedMem[0x16001]) #define ewram16002 (gSharedMem[0x16002]) #define ewram16003 (gSharedMem[0x16003]) -#define ewram16004arr(i, bank) (gSharedMem[0x16004 + i + bank * 2]) +#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2]) #define ewram1600C (gSharedMem[0x1600C]) #define ewram1600E (gSharedMem[0x1600E]) -#define ewram16010arr(bank) (gSharedMem[0x16010 + bank]) +#define ewram16010arr(battler) (gSharedMem[0x16010 + battler]) #define ewram1601B (gSharedMem[0x1601B]) #define eDynamicMoveType (gSharedMem[0x1601C]) -#define eFocusPunchBank (gSharedMem[0x1601D]) +#define eFocusPunchBattler (gSharedMem[0x1601D]) #define eDmgMultiplier (gSharedMem[0x1601F]) #define ewram16020 ((u8 *)(gSharedMem + 0x16020)) #define ewram16020arr(i) (gSharedMem[0x16020 + i]) @@ -112,10 +112,10 @@ extern u8 gSharedMem[]; #define ewram16056 (gSharedMem[0x16056]) #define ewram16058 (gSharedMem[0x16058]) #define ewram16059 (gSharedMem[0x16059]) -#define ewram16060(bank) (gSharedMem[0x16060 + bank]) -#define BATTLE_PARTY_ID(bank) (gSharedMem[0x16064 + bank]) +#define ewram16060(battler) (gSharedMem[0x16060 + battler]) +#define BATTLE_PARTY_ID(battler) (gSharedMem[0x16064 + battler]) #define ewram16064 (&gSharedMem[0x16064]) -#define ewram16064arr(bank) (gSharedMem[0x16064 + bank]) +#define ewram16064arr(battler) (gSharedMem[0x16064 + battler]) #define ewram16068arr(i) (gSharedMem[0x16068 + i]) #define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever. #define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3]) @@ -132,7 +132,7 @@ extern u8 gSharedMem[]; #define ewram1608A gSharedMem[0x1608A] #define ewram1608B gSharedMem[0x1608B] -#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank]) +#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler]) #define EWRAM_1609D (gSharedMem[0x1609D]) #define ewram160A1 (gSharedMem[0x160A1]) #define ewram160A4 (gSharedMem[0x160A4]) @@ -144,31 +144,31 @@ extern u8 gSharedMem[]; #define ewram160AB (gSharedMem[0x160AB]) #define ewram160AC ((u8 *)(gSharedMem + 0x160AC)) #define ewram160ACarr(i) (gSharedMem[0x160AC + i]) -#define ewram160ACarr2(i, bank) (gSharedMem[0x160AC + i + bank * 2]) +#define ewram160ACarr2(i, battler) (gSharedMem[0x160AC + i + battler * 2]) #define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp -#define ewram160BCarr(bank) (gSharedMem[0x160BC + bank * 2]) +#define ewram160BCarr(battler) (gSharedMem[0x160BC + battler * 2]) #define ewram160C0 (gSharedMem[0x160C0]) #define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2)) #define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4)) #define ewram160C8 (gSharedMem[0x160C8]) -#define ewram160C8arr(bank) (gSharedMem[0x160C8 + (bank / 2)]) +#define ewram160C8arr(battler) (gSharedMem[0x160C8 + (battler / 2)]) #define ewram160C9 (gSharedMem[0x160C9]) #define ewram160CB (gSharedMem[0x160CB]) #define ewram160CC ((u8 *)(gSharedMem + 0x160CC)) #define ewram160CCarr(i) (gSharedMem[0x160CC + i]) -#define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2])))) -#define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)]) -#define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2]) -#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)]) -#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)]) +#define USED_HELD_ITEM(battler) ((((u16*)(&gSharedMem[0x160CC + battler * 2])))) +#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[0x160CC + 2 * (battler)]) +#define ewram160D4(battler) (gSharedMem[0x160D4 + (battler / 2) * 2]) +#define ewram160D8(battler) (gSharedMem[0x160D8 + (battler / 2)]) +#define ewram160DA(battler) (gSharedMem[0x160DA + (battler / 2)]) #define ewram160DD (gSharedMem[0x160DD]) #define ewram160E0(i) (gSharedMem[0x160E0 + i]) #define ewram160E6 (gSharedMem[0x160E6]) #define ewram160E7 (gSharedMem[0x160E7]) -#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2]))) +#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[0x160E8 + battler * 2]))) #define ewram160E8 ((u8 *)(gSharedMem + 0x160E8)) #define ewram160E8arr(i) (gSharedMem[0x160E8 + i]) -#define ewram160E8arr2(i, bank) (gSharedMem[0x160E8 + i + bank * 2]) +#define ewram160E8arr2(i, battler) (gSharedMem[0x160E8 + i + battler * 2]) #define ewram160F0 ((u8 *)(gSharedMem + 0x160F0)) #define ewram160F0arr(i) (gSharedMem[0x160F0 + i]) #define ewram160F8 (gSharedMem[0x160F8]) @@ -177,7 +177,7 @@ extern u8 gSharedMem[]; #define ewram160FB (gSharedMem[0x160FB]) #define ewram16100 ((u8 *)(gSharedMem + 0x16100)) #define ewram16100arr(i) (gSharedMem[0x16100 + i]) -#define ewram16100arr2(i, bank) (gSharedMem[0x16100 + i + bank * 4]) +#define ewram16100arr2(i, battler) (gSharedMem[0x16100 + i + battler * 4]) #define ewram16108 ((u8 *)(gSharedMem + 0x16108)) #define ewram16108arr(i) (gSharedMem[0x16108 + i]) #define ewram16110 (gSharedMem[0x16110]) @@ -186,7 +186,7 @@ extern u8 gSharedMem[]; #define ewram16113 (gSharedMem[0x16113]) #define ewram16400 (gSharedMem + 0x16400) #define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800)) -#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (gSharedMem + 0x16A00)) +#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00)) #define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00)) #define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2]) #define ewram16800 (&gSharedMem[0x16800]) diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index cd0cb6eab..64e922651 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -13,7 +13,7 @@ void sub_8080A3C(void); void sub_8080AC4(void); void mapldr_default(); void sub_8080B60(void); -void atk17_seteffectsecondary(void); +void sub_8080DEC(void); void sub_8080E28(void); void sub_8080E44(void); bool32 sub_8080E70(void); diff --git a/include/global.h b/include/global.h index faa4ace68..4437b7feb 100644 --- a/include/global.h +++ b/include/global.h @@ -1,6 +1,8 @@ #ifndef GUARD_GLOBAL_H #define GUARD_GLOBAL_H +#include <string.h> +#include <stdlib.h> #include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" @@ -14,9 +16,6 @@ #define INCBIN_S8 {0} #define INCBIN_S16 {0} #define INCBIN_S32 {0} -void *memcpy (void *, const void *, size_t); -void *memset (void *, int, size_t); -int strcmp (const char *, const char *); #endif // Prevent cross-jump optimization. diff --git a/include/macros/battle_script.inc b/include/macros/battle_script.inc index e4fa0c454..d92e28934 100644 --- a/include/macros/battle_script.inc +++ b/include/macros/battle_script.inc @@ -1402,7 +1402,7 @@ .endm .macro jumpifmovehadnoeffect jumpptr - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED, \jumpptr .endm .macro jumpifbattletype flags, jumpptr diff --git a/include/menu.h b/include/menu.h index 3295cd5c5..523037839 100644 --- a/include/menu.h +++ b/include/menu.h @@ -4,10 +4,12 @@ #include "task.h" #include "text.h" +typedef bool8 (*MenuFunc)(); + struct MenuAction { const u8 *text; - u8 (*func)(); + MenuFunc func; }; struct MenuAction2 diff --git a/include/menu_helpers.h b/include/menu_helpers.h index a1c872c73..fb50ae724 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -50,5 +50,8 @@ void StartVerticalScrollIndicators(u8); void sub_80F98DC(u8); void PauseVerticalScrollIndicator(u8); void SetVerticalScrollIndicatorPriority(u8, u8); +#if DEBUG +void PrintTriangleCursorWithPalette(u8, u8, u8); +#endif // DEBUG #endif // GUARD_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h index dc393cc63..b18027933 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -138,7 +138,7 @@ void c2_exit_to_overworld_2_switch(void); void c2_exit_to_overworld_2_local(void); void c2_exit_to_overworld_2_link(void); // sub_805465C -void sub_805469C(void); +void c2_exit_to_overworld_1_sub_8080DEC(void); // sub_80546B8 void c2_exit_to_overworld_1_continue_scripts_restart_music(void); void sub_80546F0(void); diff --git a/include/pokeblock.h b/include/pokeblock.h index a606a32ad..f674666ff 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -42,7 +42,7 @@ s16 PokeblockGetGain(u8, const struct Pokeblock *); u8 sub_810CB68(u8, u8*); void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest); void CB2_PreparePokeblockFeedScene(void); -bool8 sub_810CA34(const struct Pokeblock *); +bool8 GivePokeblock(const struct Pokeblock *); #include "main.h" diff --git a/include/pokemon.h b/include/pokemon.h index 169045c0c..8864aee8a 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -312,6 +312,8 @@ struct UnknownPokemonStruct /*0x2B*/u8 friendship; }; +#define BATTLE_STATS_NO 8 + struct BattlePokemon { /*0x00*/ u16 species; @@ -329,7 +331,7 @@ struct BattlePokemon /*0x17*/ u32 spDefenseIV:5; /*0x17*/ u32 isEgg:1; /*0x17*/ u32 altAbility:1; - /*0x18*/ s8 statStages[8]; + /*0x18*/ s8 statStages[BATTLE_STATS_NO]; /*0x20*/ u8 ability; /*0x21*/ u8 type1; /*0x22*/ u8 type2; @@ -630,5 +632,10 @@ struct Sprite *sub_80F7920(u16, u16, const u16 *); void BoxMonRestorePP(struct BoxPokemon *); bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId); +u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); + +#if DEBUG +void Nakamura_NakaGenderTest_RecalcStats(struct Pokemon *); +#endif // DEBUG #endif // GUARD_POKEMON_H diff --git a/include/roamer.h b/include/roamer.h index 86908bd00..6f0813eb8 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -10,4 +10,9 @@ u8 TryStartRoamerEncounter(void); void UpdateRoamerHPStatus(struct Pokemon *mon); void SetRoamerInactive(void); -#endif +#if DEBUG +void Debug_CreateRoamer(void); +void Debug_GetRoamerLocation(u8 *); +#endif // DEBUG + +#endif // GUARD_ROAMER_H diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 1910b7cb2..7215e7fb3 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -10,24 +10,24 @@ struct Struct_sub_8078914 { u8 field_8; }; -u8 GetBankPosition(u8, u8); +u8 GetBattlerSpriteCoord(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 GetAnimBankSpriteId(u8 bank); +u8 GetAnimBattlerSpriteId(u8 bank); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); void TranslateSpriteOverDuration(struct Sprite *sprite); void TranslateMonBGUntil(struct Sprite *sprite); void TranslateMonBGSubPixelUntil(struct Sprite *sprite); -u8 GetBankSide(u8); -u8 GetBankSide(u8); -u8 GetBankSide(u8 side); -u8 GetBankSide(u8 slot); -u8 GetBankSide(u8); -u8 GetBankIdentity(u8); -u8 GetBankIdentity(u8 slot); -u8 GetBankByIdentity(u8); -u8 GetBankByIdentity(u8); -u8 GetBankByIdentity(u8 state); +u8 GetBattlerSide(u8); +u8 GetBattlerSide(u8); +u8 GetBattlerSide(u8 side); +u8 GetBattlerSide(u8 slot); +u8 GetBattlerSide(u8); +u8 GetBattlerPosition(u8); +u8 GetBattlerPosition(u8 slot); +u8 GetBattlerAtPosition(u8); +u8 GetBattlerAtPosition(u8); +u8 GetBattlerAtPosition(u8 state); bool8 IsBankSpritePresent(u8); bool8 IsDoubleBattle(); u8 IsDoubleBattle(void); @@ -58,7 +58,7 @@ void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a u8 sub_8079C74(struct Task *task); void sub_8079E24(); u8 sub_8079E90(u8 slot); -u8 GetBankIdentity_permutated(u8 slot); +u8 GetBattlerPosition_permutated(u8 slot); void sub_807A784(u8 taskId); void sub_807A850(struct Task *task, u8 taskId); void sub_807A8D4(struct Sprite *sprite); diff --git a/include/secret_base.h b/include/secret_base.h index a3fa22c05..450850155 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -20,5 +20,9 @@ u8 sub_80BCCA4(u8 secretBaseIndex); const u8 *GetSecretBaseTrainerLoseText(void); void sub_80BCF1C(u8 taskId); void sub_80BD674(void *playerRecords, u32 size, u8 c); +#if DEBUG +void unref_sub_80BCD7C(u8 secretBaseIndex); +u8 *sub_80BC190(u8 *dest, u8 arg1); +#endif #endif // GUARD_SECRET_BASE_H diff --git a/include/strings.h b/include/strings.h index 91c5c5344..240e212ac 100644 --- a/include/strings.h +++ b/include/strings.h @@ -165,6 +165,7 @@ extern const u8 gOtherText_None[]; extern const u8 gOtherText_ThreeQuestions2[]; extern const u8 gOtherText_FiveQuestions[]; +extern const u8 gOtherText_Slash[]; extern const u8 gOtherText_OneDash[]; extern const u8 gOtherText_TwoDashes[]; @@ -250,6 +251,7 @@ extern const u8 gContestStatsText_Dry[]; extern const u8 gContestStatsText_Sweet[]; extern const u8 gContestStatsText_Bitter[]; extern const u8 gContestStatsText_Sour[]; +extern const u8 gContestStatsText_Tasty[]; extern const u8 gContestStatsText_StowCase[]; extern const u8 gContestStatsText_ThrowAwayPrompt[]; diff --git a/include/wild_encounter.h b/include/wild_encounter.h index c9d7c3fa1..41ca31835 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -35,5 +35,10 @@ void FishingWildEncounter(u8 rod); u16 GetLocalWildMon(bool8 *isWaterMon); u16 GetLocalWaterMon(void); bool8 UpdateRepelCounter(void); +#if DEBUG +u16 FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(u8 arg0); +void FeebasSeedRng(u16 seed); +u16 FeebasRandom(void); +#endif // DEBUG #endif // GUARD_WILD_ENCOUNTER_H diff --git a/ld_script.txt b/ld_script.txt index 2cfd8bf6f..56d1ac39f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -47,7 +47,7 @@ SECTIONS { src/main_menu.o(.text); src/rom3.o(.text); src/decompress.o(.text); - asm/battle_1.o(.text); + asm/decompress.o(.text); src/battle/battle_bg.o(.text); src/battle/battle_2.o(.text); src/battle/battle_util.o(.text); @@ -55,7 +55,7 @@ SECTIONS { src/battle/battle_controller_player.o(.text); src/battle/battle_7.o(.text); src/battle/battle_controller_opponent.o(.text); - asm/battle_9.o(.text); + src/battle/battle_ai_switch_items.o(.text); src/battle/battle_controller_linkopponent.o(.text); src/pokemon_1.o(.text); src/battle/calculate_base_damage.o(.text); @@ -158,7 +158,7 @@ SECTIONS { src/script_menu.o(.text); src/naming_screen.o(.text); src/money.o(.text); - asm/contest_effect.o(.text); + src/contest_effect.o(.text); src/record_mixing.o(.text); src/debug/sound_check_menu.o(.text); src/secret_base.o(.text); @@ -326,8 +326,8 @@ SECTIONS { src/dewford_trend.o(.text); src/heal_location.o(.text); src/region_map.o(.text); - src/cute_sketch.o(.text); - asm/cute_sketch.o(.text); + src/contest_painting_effects.o(.text); + asm/contest_painting_effects.o(.text); src/decoration.o(.text); src/slot_machine.o(.text); src/contest_painting.o(.text); @@ -394,7 +394,6 @@ SECTIONS { src/pokeblock_feed.o(.text); src/clear_save_data_menu.o(.text); src/debug/nakamura_debug_menu.o(.text); - asm/nakamura_debug_menu.o(.text); src/intro_credits_graphics.o(.text); src/evolution_graphics.o(.text); src/bard_music.o(.text); @@ -596,7 +595,7 @@ SECTIONS { src/script_menu.o(.rodata); src/naming_screen.o(.rodata); src/money.o(.rodata); - data/contest_effect.o(.rodata); + src/contest_effect.o(.rodata); src/record_mixing.o(.data); src/record_mixing.o(.rodata); src/debug/sound_check_menu.o(.rodata); @@ -625,7 +624,7 @@ SECTIONS { src/menu_helpers.o(.rodata); src/heal_location.o(.rodata); src/region_map.o(.rodata); - data/cute_sketch.o(.rodata); + data/contest_painting_effects.o(.rodata); src/decoration.o(.rodata); src/slot_machine.o(.rodata); src/contest_painting.o(.rodata); diff --git a/src/battle/anim/alert.c b/src/battle/anim/alert.c index 7cd42c17b..72f8ec947 100644 --- a/src/battle/anim/alert.c +++ b/src/battle/anim/alert.c @@ -16,7 +16,7 @@ void sub_80CF610(struct Sprite* sprite) sub_8078650(sprite); sub_807867C(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->hFlip = 1; if (gBattleAnimArgs[2] != 0) diff --git a/src/battle/anim/anger.c b/src/battle/anim/anger.c index 011aa68ce..4ea56636b 100644 --- a/src/battle/anim/anger.c +++ b/src/battle/anim/anger.c @@ -19,13 +19,13 @@ void sub_80D09C0(struct Sprite* sprite) else bank = gAnimBankTarget; - if (GetBankSide(bank) == 1) + if (GetBattlerSide(bank) == 1) { gBattleAnimArgs[1] *= -1; } - sprite->pos1.x = GetBankPosition(bank, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(bank, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(bank, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[2]; if (sprite->pos1.y <= 7) sprite->pos1.y = 8; diff --git a/src/battle/anim/aurora.c b/src/battle/anim/aurora.c index b24809264..de145d6a4 100644 --- a/src/battle/anim/aurora.c +++ b/src/battle/anim/aurora.c @@ -17,15 +17,15 @@ void sub_80D33B4(struct Sprite *sprite) s16 r6; InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) r6 = -gBattleAnimArgs[2]; else r6 = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r6; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + r6; sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D344C; sprite->affineAnimPaused = TRUE; diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c index 01f823fa7..d96dc7ea8 100644 --- a/src/battle/anim/battle_intro.c +++ b/src/battle/anim/battle_intro.c @@ -466,7 +466,7 @@ void sub_80E4EF8(u8 left, u8 top, u8 c, u8 paletteNum, u16 e, u8 bgMap, u8 g) u32 tileNum; s32 x; s32 y; - u8 bank = GetBankByIdentity(c); + u8 bank = GetBattlerAtPosition(c); DmaCopy16(3, gUnknown_081FAF4C[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800); tileNum = e / 32 - g * 512; diff --git a/src/battle/anim/beta_beat_up.c b/src/battle/anim/beta_beat_up.c index 3af6dd926..ee889492c 100644 --- a/src/battle/anim/beta_beat_up.c +++ b/src/battle/anim/beta_beat_up.c @@ -13,7 +13,7 @@ static void sub_80D6278(struct Sprite *); void sub_80D6234(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; } diff --git a/src/battle/anim/blow_kiss.c b/src/battle/anim/blow_kiss.c index f585b74bc..6d762bc7f 100644 --- a/src/battle/anim/blow_kiss.c +++ b/src/battle/anim/blow_kiss.c @@ -18,9 +18,9 @@ void sub_80D1F58(struct Sprite* sprite) InitAnimSpritePos(sprite, 1); sprite->data[0] = 0x5F; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); sprite->callback = sub_80D1FA4; } diff --git a/src/battle/anim/bottle.c b/src/battle/anim/bottle.c index 5485bcf5d..0d5a54e18 100644 --- a/src/battle/anim/bottle.c +++ b/src/battle/anim/bottle.c @@ -16,8 +16,8 @@ static void sub_80CD0CC(struct Sprite* sprite, int unk1, int unk2); void sub_80CCF04(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + 0xFFE8; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + 0xFFE8; sprite->data[0] = 0; sprite->data[1] = 0; sprite->data[2] = 0; diff --git a/src/battle/anim/brace.c b/src/battle/anim/brace.c index 19ea4297b..a81af73ac 100644 --- a/src/battle/anim/brace.c +++ b/src/battle/anim/brace.c @@ -17,13 +17,13 @@ void sub_80CDF0C(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[2]; } sprite->data[0] = 0; diff --git a/src/battle/anim/breath.c b/src/battle/anim/breath.c index 831b222ad..58b5066c0 100644 --- a/src/battle/anim/breath.c +++ b/src/battle/anim/breath.c @@ -13,20 +13,20 @@ extern u8 gAnimBankTarget; void sub_80D0930(struct Sprite* sprite) { - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { StartSpriteAnim(sprite, 0); - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + 32; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + 32; sprite->data[1] = 0x40; } else { StartSpriteAnim(sprite, 1); - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) - 32; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) - 32; sprite->data[1] = -0x40; } - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[0] = 0x34; sprite->data[2] = 0; sprite->data[3] = 0; diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c index d6ec06be9..27791eedf 100644 --- a/src/battle/anim/bubble.c +++ b/src/battle/anim/bubble.c @@ -19,29 +19,29 @@ void sub_80D31C8(struct Sprite* sprite) { u8 newSpriteId; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) - gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) - gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[1]; } else { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[1]; } sprite->animPaused = 1; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[6]; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index d57a1046e..245e45774 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -24,7 +24,7 @@ void sub_80DC824(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - else if (!GetBankSide(gAnimBankTarget)) + else if (!GetBattlerSide(gAnimBankTarget)) { StartSpriteAffineAnim(sprite, 1); gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -37,8 +37,8 @@ void sub_80DC824(struct Sprite *sprite) sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 3) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); @@ -52,7 +52,7 @@ void sub_80DC8F4(struct Sprite *sprite) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; StartSpriteAffineAnim(sprite, 2); } - else if (!GetBankSide(gAnimBankTarget)) + else if (!GetBattlerSide(gAnimBankTarget)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -62,8 +62,8 @@ void sub_80DC8F4(struct Sprite *sprite) sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 3) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); @@ -83,8 +83,8 @@ void sub_80DC9A0(struct Sprite *sprite) if (!gBattleAnimArgs[4]) { - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); } else { @@ -112,13 +112,13 @@ static void sub_80DCA38(struct Sprite *sprite) void sub_80DCA70(struct Sprite *sprite) { SetAverageBattlerPositions(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) sprite->pos1.x -= gBattleAnimArgs[0]; else sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - if (!GetBankSide(gAnimBankTarget)) + if (!GetBattlerSide(gAnimBankTarget)) sprite->pos1.y += 8; sprite->callback = sub_80DCAEC; @@ -193,7 +193,7 @@ void AnimTranslateStinger(struct Sprite *sprite) } else { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -203,9 +203,9 @@ void AnimTranslateStinger(struct Sprite *sprite) if (!IsContest()) { - if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { - if (GetBankIdentity(gAnimBankTarget) == 0 || GetBankIdentity(gAnimBankTarget) == 1) + if (GetBattlerPosition(gAnimBankTarget) == 0 || GetBattlerPosition(gAnimBankTarget) == 1) { s16 temp1, temp2; @@ -220,8 +220,8 @@ void AnimTranslateStinger(struct Sprite *sprite) InitAnimSpritePos(sprite, 1); - lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + lVarX = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + lVarY = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); rot += 0xC000; sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot); @@ -247,12 +247,12 @@ void AnimMissileArc(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimSpriteTranslationOverDuration(sprite); @@ -301,13 +301,13 @@ void sub_80DCE40(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + 18; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + 18; } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + 18; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + 18; } StoreSpriteCallbackInData(sprite, move_anim_8074EE0); diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c index 1dca0b886..035adf394 100644 --- a/src/battle/anim/bullet.c +++ b/src/battle/anim/bullet.c @@ -19,8 +19,8 @@ void sub_80CFFD8(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); sprite->data[0] = 20; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; sprite->affineAnimPaused = 1; StoreSpriteCallbackInData(sprite, sub_80D0030); diff --git a/src/battle/anim/copy_orb.c b/src/battle/anim/copy_orb.c index 4fa8ea163..ac60d2c2b 100644 --- a/src/battle/anim/copy_orb.c +++ b/src/battle/anim/copy_orb.c @@ -16,14 +16,14 @@ void sub_80CB4CC(struct Sprite* sprite) { case 0: { - if (GetBankSide(gAnimBankTarget) == 0) + if (GetBattlerSide(gAnimBankTarget) == 0) { s16 a = gBattleAnimArgs[0]; gBattleAnimArgs[0] = -a; } - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[1]; sprite->invisible = 1; sprite->data[0]++; break; @@ -35,8 +35,8 @@ void sub_80CB4CC(struct Sprite* sprite) { ChangeSpriteAffineAnim(sprite, 1); sprite->data[0] = 25; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->callback = sub_8078CC0; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); break; diff --git a/src/battle/anim/cube.c b/src/battle/anim/cube.c index 9adf46e32..6fef2de69 100644 --- a/src/battle/anim/cube.c +++ b/src/battle/anim/cube.c @@ -16,8 +16,8 @@ static void sub_80CE000(struct Sprite* sprite); void sub_80CDFB0(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) - 12; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) - 12; sprite->data[0] = 0; sprite->data[1] = 2; sprite->data[2] = 0; diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c index fed3598fc..bc7478053 100644 --- a/src/battle/anim/cutter.c +++ b/src/battle/anim/cutter.c @@ -24,7 +24,7 @@ static void AnimMoveTwisterParticleStep(struct Sprite* sprite); void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } @@ -32,8 +32,8 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[4]; if (!gBattleAnimArgs[6]) { - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; } else { @@ -44,7 +44,7 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) sprite->data[5] = gBattleAnimArgs[5]; InitAnimSpriteTranslationOverDuration(sprite); - if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { sprite->data[0] = 1; } diff --git a/src/battle/anim/cyclone.c b/src/battle/anim/cyclone.c index b1210bc54..9bfa95e92 100644 --- a/src/battle/anim/cyclone.c +++ b/src/battle/anim/cyclone.c @@ -14,7 +14,7 @@ extern u8 gAnimBankTarget; void sub_80D0118(struct Sprite* sprite) { InitAnimSpritePos(sprite, 0); - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) sprite->pos1.y += 16; sprite->data[0] = gBattleAnimArgs[4]; diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 055cf5802..9a1d0842b 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -21,7 +21,7 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gAnimMoveTurn; extern const u8 gUnknown_08D1D574[]; @@ -49,7 +49,7 @@ void sub_80DFC24(u8 taskId) bank = gAnimBankAttacker; gTasks[taskId].data[1] = 16; REG_BLDALPHA = 16; - if (GetBankIdentity_permutated(bank) == 1) + if (GetBattlerPosition_permutated(bank) == 1) REG_BLDCNT = 0x3F42; else REG_BLDCNT = 0x3F44; @@ -112,7 +112,7 @@ void sub_80DFD58(u8 taskId) void sub_80DFDC0(u8 taskId) { REG_BLDALPHA = 0x1000; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) REG_BLDCNT = 0x3F42; else REG_BLDCNT = 0x3F44; @@ -123,10 +123,10 @@ void sub_80DFDC0(u8 taskId) void sub_80DFE14(struct Sprite *sprite) { - sprite->data[1] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[3] = GetBankPosition(gAnimBankTarget, 3); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[1] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[3] = GetBattlerSpriteCoord(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[0] = 0x7E; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = -sprite->data[1]; @@ -257,22 +257,22 @@ void sub_80E00EC(u8 taskId) int var0; struct Task *task = &gTasks[taskId]; - task->data[7] = GetBankPosition(gAnimBankAttacker, 1) + 31; + task->data[7] = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + 31; task->data[6] = sub_807A100(gAnimBankAttacker, 2) - 7; task->data[5] = task->data[7]; task->data[4] = task->data[6]; task->data[13] = (task->data[7] - task->data[6]) << 8; - pos = GetBankPosition(gAnimBankAttacker, 0); + pos = GetBattlerSpriteCoord(gAnimBankAttacker, 0); task->data[14] = pos - 32; task->data[15] = pos + 32; - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER) task->data[8] = -12; else task->data[8] = -64; - task->data[3] = GetBankIdentity_permutated(gAnimBankAttacker); + task->data[3] = GetBattlerPosition_permutated(gAnimBankAttacker); if (task->data[3] == 1) { sub_8078914(&subStruct); @@ -403,7 +403,7 @@ void sub_80E03BC(u8 taskId) } else { - task->data[3] = GetBankIdentity_permutated(gAnimBankTarget); + task->data[3] = GetBattlerPosition_permutated(gAnimBankTarget); if (task->data[3] == 1) { REG_BLDCNT = 0x3F42; @@ -435,14 +435,14 @@ void sub_80E03BC(u8 taskId) task->data[0]++; break; case 2: - task->data[7] = GetBankPosition(gAnimBankTarget, 1) + 31; + task->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + 31; task->data[6] = sub_807A100(gAnimBankTarget, 2) - 7; task->data[13] = (task->data[7] - task->data[6]) << 8; - pos = GetBankPosition(gAnimBankTarget, 0); + pos = GetBattlerSpriteCoord(gAnimBankTarget, 0); task->data[14] = pos - 4; task->data[15] = pos + 4; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) task->data[8] = -12; else task->data[8] = -64; @@ -783,7 +783,7 @@ static void sub_80E08CC(u8 priority) for (i = 0; i < 4; i++) { - u8 spriteId = GetAnimBankSpriteId(i); + u8 spriteId = GetAnimBattlerSpriteId(i); if (spriteId != 0xFF) gSprites[spriteId].oam.priority = priority; } @@ -791,7 +791,7 @@ static void sub_80E08CC(u8 priority) void sub_80E0918(u8 taskId) { - u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + u8 toBG2 = GetBattlerPosition_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; MoveBattlerSpriteToBG(gAnimBankAttacker, toBG2); gSprites[gBankSpriteIds[gAnimBankAttacker]].invisible = 0; @@ -806,7 +806,7 @@ void sub_80E0918(u8 taskId) void sub_80E09C4(u8 taskId) { - u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; + u8 toBG2 = GetBattlerPosition_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0; sub_8076464(toBG2); if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) @@ -847,7 +847,7 @@ void sub_80E0A4C(u8 taskId) if (IsDoubleBattle() && !IsContest()) { - if (GetBankIdentity(gAnimBankAttacker) == 3 || GetBankIdentity(gAnimBankAttacker) == 0) + if (GetBattlerPosition(gAnimBankAttacker) == 3 || GetBattlerPosition(gAnimBankAttacker) == 0) { if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2) == TRUE) { @@ -864,13 +864,13 @@ void sub_80E0A4C(u8 taskId) } else { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) - species = GetMonData(&gEnemyParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gAnimBankAttacker]], MON_DATA_SPECIES); else - species = GetMonData(&gPlayerParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gAnimBankAttacker]], MON_DATA_SPECIES); } - spriteId = GetAnimBankSpriteId(0); + spriteId = GetAnimBattlerSpriteId(0); newSpriteId = sub_807A4A0(gAnimBankAttacker, spriteId, species); sub_8078914(&subStruct); @@ -926,7 +926,7 @@ static void sub_80E0CD0(u8 taskId) REG_BLDCNT = 0; REG_BLDALPHA = 0; - spriteId = GetAnimBankSpriteId(0); + spriteId = GetAnimBattlerSpriteId(0); paletteNum = 16 + gSprites[spriteId].oam.paletteNum; if (gTasks[taskIdCopy].data[1] == 0) sub_8079108(paletteNum, 1); @@ -958,22 +958,22 @@ void sub_80E0E24(u8 taskId) case 1: case 2: case 3: - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; case 4: - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; calcSpriteId = TRUE; break; case 5: - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; calcSpriteId = TRUE; break; case 6: - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; calcSpriteId = TRUE; break; case 7: - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; calcSpriteId = TRUE; break; default: @@ -983,7 +983,7 @@ void sub_80E0E24(u8 taskId) if (calcSpriteId) { - bank = GetBankByIdentity(identity); + bank = GetBattlerAtPosition(identity); if (IsAnimBankSpriteVisible(bank)) spriteId = gBankSpriteIds[bank]; else diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c index dc2c0bc50..4c8448636 100644 --- a/src/battle/anim/dragon.c +++ b/src/battle/anim/dragon.c @@ -25,9 +25,9 @@ extern u8 gBankSpriteIds[]; void sub_80DF5A0(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); - if (GetBankSide(gAnimBankAttacker)) + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; @@ -50,9 +50,9 @@ void sub_80DF5A0(struct Sprite *sprite) void sub_80DF63C(struct Sprite *sprite) { sub_8078650(sprite); - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); - if (GetBankSide(gAnimBankAttacker)) + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -78,13 +78,13 @@ void sub_80DF6F0(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1); } sub_807867C(sprite, gBattleAnimArgs[1]); sprite->pos1.y += gBattleAnimArgs[2]; @@ -96,7 +96,7 @@ void sub_80DF6F0(struct Sprite *sprite) void sub_80DF760(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) StartSpriteAffineAnim(sprite, 1); sub_80DF63C(sprite); } @@ -107,8 +107,8 @@ void sub_80DF78C(struct Sprite *sprite) { u16 r5; u16 r0; - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; @@ -169,7 +169,7 @@ void sub_80DF924(u8 taskId) struct Task *task = &gTasks[taskId]; u16 i; u8 r1; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { sp.dmaDest = ®_BG1HOFS; task->data[2] = gBattle_BG1_X; @@ -252,8 +252,8 @@ void sub_80DFB28(struct Sprite *sprite) { int r6 = (gBattleAnimArgs[2] * 3) / 5; int i; - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[4]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[4]; sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); sprite->data[2] = Sin(gBattleAnimArgs[1], r6); sprite->pos1.x += sprite->data[1] * gBattleAnimArgs[0]; diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c index be3a280af..9eea43220 100644 --- a/src/battle/anim/draw.c +++ b/src/battle/anim/draw.c @@ -32,7 +32,7 @@ void sub_80D0C88(u8 taskId) task->data[5] = 0; task->data[15] = sub_807A100(gAnimBankTarget, 0); - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { task->data[6] = gBattle_BG1_X; params.dmaDest = (u16 *)REG_ADDR_BG1HOFS; @@ -108,7 +108,7 @@ void sub_80D0D68(u8 taskId) void sub_80D0E30(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0) - 16; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0) - 16; sprite->pos1.y = sub_8077FC0(gAnimBankTarget) + 16; sprite->data[0] = 0; sprite->data[1] = 0; diff --git a/src/battle/anim/drum.c b/src/battle/anim/drum.c index 7937d040a..8dea7e608 100644 --- a/src/battle/anim/drum.c +++ b/src/battle/anim/drum.c @@ -24,8 +24,8 @@ void sub_80CEDF0(struct Sprite* sprite) a = -16; } - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + a; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + 8; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + a; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + 8; sprite->data[0] = 8; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c index b3de1dbb1..44ff484f2 100644 --- a/src/battle/anim/egg.c +++ b/src/battle/anim/egg.c @@ -23,7 +23,7 @@ void sub_80D1368(struct Sprite* sprite) { s16 r1; InitAnimSpritePos(sprite, 0); - r1 = (GetBankSide(gAnimBankAttacker)) ? -0xA0 : 0xA0; + r1 = (GetBattlerSide(gAnimBankAttacker)) ? -0xA0 : 0xA0; sprite->data[0] = 0x380; sprite->data[1] = r1; sprite->data[7] = gBattleAnimArgs[2]; @@ -36,7 +36,7 @@ void sub_80D13AC(struct Sprite* sprite) sprite->pos2.y -= (sprite->data[0] >> 8); sprite->pos2.x = sprite->data[1] >> 8; sprite->data[0] -= 32; - add = (GetBankSide(gAnimBankAttacker)) ? -0xA0 : 0xA0; + add = (GetBattlerSide(gAnimBankAttacker)) ? -0xA0 : 0xA0; sprite->data[1] += add; if (sprite->pos2.y > 0) { diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c index 8111f70a3..7980c7b34 100644 --- a/src/battle/anim/energy_wave.c +++ b/src/battle/anim/energy_wave.c @@ -24,9 +24,9 @@ void sub_80D3554(struct Sprite *sprite) sprite->data[0] = 30; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); @@ -86,15 +86,15 @@ void sub_80D3698(struct Sprite *sprite) { u8 subpriority; - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); sprite->pos2.y = -10; subpriority = sub_8079E90(gAnimBankAttacker); if (!IsContest()) { - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { sprite->pos2.x = 10; sprite->subpriority = subpriority + 2; @@ -126,11 +126,11 @@ void sub_80D3728(struct Sprite *sprite) { int var1, var2; - if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { gBattleAnimArgs[0] *= -1; - if (GetBankIdentity(gAnimBankAttacker) == 0 || GetBankIdentity(gAnimBankAttacker) == 1) + if (GetBattlerPosition(gAnimBankAttacker) == 0 || GetBattlerPosition(gAnimBankAttacker) == 1) { gBattleAnimArgs[0] *= -1; } @@ -149,14 +149,14 @@ void sub_80D3728(struct Sprite *sprite) InitAnimSpritePos(sprite, var1); - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, var2) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, var2) + gBattleAnimArgs[3]; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/espeed.c b/src/battle/anim/espeed.c index 469522092..2e80afff7 100644 --- a/src/battle/anim/espeed.c +++ b/src/battle/anim/espeed.c @@ -25,7 +25,7 @@ static void sub_80D1930(u8 taskId); void sub_80D15A4(u8 taskId) { struct Task* task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; sub_80798F4(task, spriteId, &gUnknown_083D79BC); task->func = sub_80D15E0; @@ -51,7 +51,7 @@ void sub_80D1638(u8 taskId) task->data[2] = 0; task->data[3] = 0; task->data[12] = 3; - if (GetBankSide(gAnimBankTarget) == 0) + if (GetBattlerSide(gAnimBankTarget) == 0) { task->data[13] = 0xFFFF; task->data[14] = 8; @@ -62,7 +62,7 @@ void sub_80D1638(u8 taskId) task->data[14] = -8; } - task->data[15] = GetAnimBankSpriteId(1); + task->data[15] = GetAnimBattlerSpriteId(1); task->func = sub_80D16A0; } @@ -123,7 +123,7 @@ void sub_80D17C4(u8 taskId) task->data[4] = 1; task->data[13] = 14; task->data[14] = 2; - task->data[15] = GetAnimBankSpriteId(0); + task->data[15] = GetAnimBattlerSpriteId(0); task->func = sub_80D1808; } @@ -169,8 +169,8 @@ void sub_80D18D4(u8 taskId) task->data[7] = 0; task->data[8] = 0; task->data[13] = 0; - task->data[14] = GetBankPosition(gAnimBankAttacker, 0); - task->data[15] = GetBankPosition(gAnimBankAttacker, 1); + task->data[14] = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + task->data[15] = GetBattlerSpriteCoord(gAnimBankAttacker, 1); task->func = sub_80D1930; } diff --git a/src/battle/anim/evasion.c b/src/battle/anim/evasion.c index ded8428d4..e7387a52a 100644 --- a/src/battle/anim/evasion.c +++ b/src/battle/anim/evasion.c @@ -23,7 +23,7 @@ void sub_80CE7E0(u8 taskId) u16 r3; u16 r4; struct Task* task = &gTasks[taskId]; - task->data[0] = GetAnimBankSpriteId(0); + task->data[0] = GetAnimBattlerSpriteId(0); task->data[1] = AllocSpritePalette(0x2771); r3 = (task->data[1] * 16) + 0x100; r4 = (gSprites[task->data[0]].oam.paletteNum + 16) << 4; @@ -47,7 +47,7 @@ void sub_80CE7E0(u8 taskId) } task->func = sub_80CE910; - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { REG_DISPCNT &= 0xFDFF; } @@ -62,7 +62,7 @@ void sub_80CE910(u8 taskId) struct Task* task = &gTasks[taskId]; if (!task->data[3]) { - if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) REG_DISPCNT |= 0x200; else REG_DISPCNT |= 0x400; diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index 0f46187f2..5e25d664a 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -21,7 +21,7 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gAnimMoveTurn; extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; @@ -50,7 +50,7 @@ void sub_080B08A0(struct Sprite *sprite) void sub_80D902C(struct Sprite *sprite) { - if (gBattleAnimArgs[7] == 1 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[7] == 1 && GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; @@ -108,8 +108,8 @@ void sub_80D90F4(struct Sprite *sprite) gBattleAnimArgs[2] = Random() % 5; StartSpriteAnim(sprite, gBattleAnimArgs[2]); - sprite->pos1.x = GetBankPosition(bank, 2); - sprite->pos1.y = GetBankPosition(bank, 3); + sprite->pos1.x = GetBattlerSpriteCoord(bank, 2); + sprite->pos1.y = GetBattlerSpriteCoord(bank, 3); xMod = sub_807A100(bank, 1) / 2; yMod = sub_807A100(bank, 0) / 4; @@ -196,12 +196,12 @@ static void sub_80D9328(struct Sprite *sprite) void sub_80D9378(struct Sprite *sprite) { - if ((gAnimBankAttacker ^ 2) == gAnimBankTarget && GetBankIdentity(gAnimBankTarget) < 2) + if ((gAnimBankAttacker ^ 2) == gAnimBankTarget && GetBattlerPosition(gAnimBankTarget) < 2) gBattleAnimArgs[0] *= -1; sub_8078764(sprite, 1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; @@ -275,8 +275,8 @@ static void AnimStompFootStep(struct Sprite *sprite) if (--sprite->data[0] == -1) { sprite->data[0] = 6; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, AnimStompFootEnd); @@ -319,13 +319,13 @@ void sub_80D95D0(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1); } sprite->pos1.x += gBattleAnimArgs[1]; @@ -372,13 +372,13 @@ void sub_80D96B8(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0) + gBattleAnimArgs[2]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[3]; } sprite->oam.tileNum += gBattleAnimArgs[1] * 16; @@ -423,8 +423,8 @@ void sub_80D97CC(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBankAttacker, 3); sprite->oam.priority = sub_8079ED4(gAnimBankAttacker); sprite->data[7] = gAnimBankTarget; } @@ -448,9 +448,9 @@ static void sub_80D986C(struct Sprite *sprite) sprite->data[0] = 16; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(sprite->data[7], 2); + sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(sprite->data[7], 3); + sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3); InitAnimSpriteTranslationDeltas(sprite); StoreSpriteCallbackInData(sprite, move_anim_8074EE0); @@ -491,10 +491,10 @@ static void sub_80D9934(struct Sprite *sprite) } else { - s16 pos0 = GetBankPosition(gAnimBankAttacker, 2); - s16 pos1 = GetBankPosition(gAnimBankAttacker, 3); - s16 pos2 = GetBankPosition(gAnimBankTarget, 2); - s16 pos3 = GetBankPosition(gAnimBankTarget, 3); + s16 pos0 = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + s16 pos1 = GetBattlerSpriteCoord(gAnimBankAttacker, 3); + s16 pos2 = GetBattlerSpriteCoord(gAnimBankTarget, 2); + s16 pos3 = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->data[0] = pos2 - pos0; sprite->data[1] = pos3 - pos1; @@ -525,8 +525,8 @@ void sub_80D9A38(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBankAttacker, 3); bank = gAnimBankTarget; sprite->oam.priority = sub_8079ED4(gAnimBankAttacker); } @@ -538,14 +538,14 @@ void sub_80D9A38(struct Sprite *sprite) if (IsContest()) sprite->oam.matrixNum |= 0x8; - else if (GetBankSide(bank) == SIDE_PLAYER) + else if (GetBattlerSide(bank) == B_SIDE_PLAYER) sprite->oam.matrixNum |= 0x18; sprite->data[0] = 16; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(bank, 2); + sprite->data[2] = GetBattlerSpriteCoord(bank, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(bank, 3); + sprite->data[4] = GetBattlerSpriteCoord(bank, 3); InitAnimSpriteTranslationDeltas(sprite); StoreSpriteCallbackInData(sprite, DestroyAnimSprite); @@ -564,15 +564,15 @@ void sub_80D9B48(struct Sprite *sprite) { u8 turn; - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; sprite->data[4] = gBattleAnimArgs[2]; turn = gAnimMoveTurn; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) turn++; if (turn & 1) @@ -598,7 +598,7 @@ void sub_80D9BD4(struct Sprite *sprite) { StartSpriteAnim(sprite, 2); } - else if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + else if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { StartSpriteAnim(sprite, 1); } @@ -644,7 +644,7 @@ void sub_80D9C80(u8 taskId) task->data[10] += 2816; - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) gBattle_BG3_X += task->data[9] >> 8; else gBattle_BG3_X -= task->data[9] >> 8; diff --git a/src/battle/anim/fire.c b/src/battle/anim/fire.c index 253236805..0939c938c 100644 --- a/src/battle/anim/fire.c +++ b/src/battle/anim/fire.c @@ -40,7 +40,7 @@ void sub_80D4F5C(struct Sprite *sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -62,7 +62,7 @@ void sub_80D4F5C(struct Sprite *sprite) void sub_80D4FCC(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -98,7 +98,7 @@ void sub_80D5074(struct Sprite *sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; } diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index f9c9b6d3b..97ac2e933 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -33,9 +33,9 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); // arg 6: ? (todo: something related to which mon the pixel offsets are based on) void AnimEmberFlare(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget) - && (gAnimBankAttacker == GetBankByIdentity(IDENTITY_PLAYER_MON2) - || gAnimBankAttacker == GetBankByIdentity(IDENTITY_OPPONENT_MON2))) + if (GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget) + && (gAnimBankAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + || gAnimBankAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; @@ -76,9 +76,9 @@ static void AnimFireRingStep1(struct Sprite *sprite) { sprite->data[0] = 0x19; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); @@ -92,8 +92,8 @@ static void AnimFireRingStep2(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->pos2.y = 0; sprite->pos2.x = 0; @@ -184,14 +184,14 @@ void sub_80D5470(u8 taskId) // initialize animation task for Move_ERUPTION? { struct Task *task = &gTasks[taskId]; - task->data[15] = GetAnimBankSpriteId(0); + task->data[15] = GetAnimBattlerSpriteId(0); task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; task->data[3] = 0; task->data[4] = gSprites[task->data[15]].pos1.y; - task->data[5] = GetBankSide(gAnimBankAttacker); + task->data[5] = GetBattlerSide(gAnimBankAttacker); task->data[6] = 0; sub_8078E70(task->data[15], 0); @@ -317,7 +317,7 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3) u16 y = sub_80D5940(spriteId); u16 x = gSprites[spriteId].pos1.x; - if(!GetBankSide(gAnimBankAttacker)) + if(!GetBattlerSide(gAnimBankAttacker)) { x -= 0xC; sign = 1; diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c index 70c418afc..5e9de8cb1 100644 --- a/src/battle/anim/flying_path.c +++ b/src/battle/anim/flying_path.c @@ -23,11 +23,11 @@ void sub_80CBDF4(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[4] = sub_8079E90(gAnimBankTarget) - 1; - task->data[6] = GetBankPosition(gAnimBankTarget, 2); - task->data[7] = GetBankPosition(gAnimBankTarget, 3); + task->data[6] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + task->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 3); task->data[10] = sub_807A100(gAnimBankTarget, 1); task->data[11] = sub_807A100(gAnimBankTarget, 0); - task->data[5] = (GetBankSide(gAnimBankTarget) == 1) ? 1 : -1; + task->data[5] = (GetBattlerSide(gAnimBankTarget) == 1) ? 1 : -1; task->data[9] = 0x38 - (task->data[5] * 64); task->data[8] = task->data[7] - task->data[9] + task->data[6]; task->data[2] = CreateSprite(&gSpriteTemplate_83D6884, task->data[8], task->data[9], task->data[4]); diff --git a/src/battle/anim/flying_petals.c b/src/battle/anim/flying_petals.c index 4eeaa5215..c7a596b56 100644 --- a/src/battle/anim/flying_petals.c +++ b/src/battle/anim/flying_petals.c @@ -21,7 +21,7 @@ void sub_80CC474(struct Sprite* sprite) else bank = gAnimBankTarget; - if (GetBankSide(bank) != 0) + if (GetBattlerSide(bank) != 0) { sprite->data[4] = 0; sprite->data[2] = gBattleAnimArgs[3]; @@ -48,12 +48,12 @@ void sub_80CC474(struct Sprite* sprite) sprite->oam.priority = sub_8079ED4(bank) + 1; break; case 2: - sprite->pos1.y = GetBankPosition(bank, 3) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[0]; sprite->oam.priority = sub_8079ED4(bank); break; case 3: - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[0]; - GetAnimBankSpriteId(1); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[0]; + GetAnimBattlerSpriteId(1); sprite->oam.priority = sub_8079ED4(bank) + 1; break; } diff --git a/src/battle/anim/glitter.c b/src/battle/anim/glitter.c index e6c101de3..d73b46bbd 100644 --- a/src/battle/anim/glitter.c +++ b/src/battle/anim/glitter.c @@ -43,13 +43,13 @@ void sub_80CD190(struct Sprite* sprite) { if (!gBattleAnimArgs[6]) { - sprite->pos1.x = GetBankPosition(bank, 0); - sprite->pos1.y = GetBankPosition(bank, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(bank, 0); + sprite->pos1.y = GetBattlerSpriteCoord(bank, 1) + gBattleAnimArgs[1]; } else { - sprite->pos1.x = GetBankPosition(bank, 2); - sprite->pos1.y = GetBankPosition(bank, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(bank, 2); + sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[1]; } sub_807867C(sprite, gBattleAnimArgs[0]); diff --git a/src/battle/anim/glow.c b/src/battle/anim/glow.c index 63466c0ff..174655080 100644 --- a/src/battle/anim/glow.c +++ b/src/battle/anim/glow.c @@ -13,7 +13,7 @@ extern u8 gAnimBankTarget; extern u16 gUnknown_083D7A5C[5]; -extern struct INCBIN_U8 gBattleAnimSpritePalette_206; +extern const u8 gBattleAnimSpritePalette_206[]; // glow (a whitening effect where the Pokemon glows white in a cycle.) // Used in Heal Bell. diff --git a/src/battle/anim/grip.c b/src/battle/anim/grip.c index dbf7a1562..a56a02d82 100644 --- a/src/battle/anim/grip.c +++ b/src/battle/anim/grip.c @@ -31,8 +31,8 @@ void sub_80D0178(struct Sprite* sprite) sprite->pos1.x += r7; sprite->pos1.y += r4; sprite->data[0] = 6; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r8; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + r8; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + r6; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80D020C); } diff --git a/src/battle/anim/grow.c b/src/battle/anim/grow.c index 8788b32fe..924629048 100644 --- a/src/battle/anim/grow.c +++ b/src/battle/anim/grow.c @@ -18,7 +18,7 @@ static void sub_80D0904(u8 taskId); void sub_80D08C8(u8 taskId) { struct Task* task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); sub_80798F4(task, spriteId, &gUnknown_083D7714); task->func = sub_80D0904; } diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c index 211e0e841..d54fa4abc 100644 --- a/src/battle/anim/guard.c +++ b/src/battle/anim/guard.c @@ -22,8 +22,8 @@ void sub_80D3014(struct Sprite *sprite) } else { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + 40; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + 40; } sprite->data[0] = 13; diff --git a/src/battle/anim/guillotine.c b/src/battle/anim/guillotine.c index 15279d5e2..0768e8334 100644 --- a/src/battle/anim/guillotine.c +++ b/src/battle/anim/guillotine.c @@ -34,9 +34,9 @@ void sub_80D0228(struct Sprite* sprite) sprite->pos1.y += r4; sprite->data[0] = 6; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r9; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + r9; sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + r6; InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[0]; sprite->data[6] = sprite->data[0]; diff --git a/src/battle/anim/heated_rock.c b/src/battle/anim/heated_rock.c index 055960f40..6f1a1344a 100644 --- a/src/battle/anim/heated_rock.c +++ b/src/battle/anim/heated_rock.c @@ -28,7 +28,7 @@ u16 sub_80D5940(u8 spriteId) { u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { var1 = ((var1 << 16) + 0x4A0000) >> 16; } diff --git a/src/battle/anim/homing.c b/src/battle/anim/homing.c index 208d3b831..b24fcf4b1 100644 --- a/src/battle/anim/homing.c +++ b/src/battle/anim/homing.c @@ -29,13 +29,13 @@ void sub_80CC6CC(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - a = GetBankPosition(gAnimBankAttacker, 2); - b = GetBankPosition(gAnimBankAttacker, 3); + a = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + b = GetBattlerSpriteCoord(gAnimBankAttacker, 3); } else { - a = GetBankPosition(gAnimBankTarget, 2); - b = GetBankPosition(gAnimBankTarget, 3); + a = GetBattlerSpriteCoord(gAnimBankTarget, 2); + b = GetBattlerSpriteCoord(gAnimBankTarget, 3); } sprite->data[0] = gBattleAnimArgs[4]; diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c index 0697e83a0..7d1b2fd01 100644 --- a/src/battle/anim/hop.c +++ b/src/battle/anim/hop.c @@ -92,8 +92,8 @@ void sub_80CB94C(struct Sprite* sprite) s16 e1; s16 e2; InitAnimSpritePos(sprite, 0); - e1 = GetBankPosition(gAnimBankTarget, 0); - e2 = GetBankPosition(gAnimBankTarget, 1); + e1 = GetBattlerSpriteCoord(gAnimBankTarget, 0); + e2 = GetBattlerSpriteCoord(gAnimBankTarget, 1); if ((gAnimBankAttacker ^ 2) == gAnimBankTarget) { sprite->data[6] = e1; @@ -135,8 +135,8 @@ void sub_80CB9C4(struct Sprite* sprite) void sub_80CBA28(struct Sprite* sprite) { - s16 e = GetBankPosition(gAnimBankTarget, 1); - if (GetBankSide(gAnimBankTarget) == 0) + s16 e = GetBattlerSpriteCoord(gAnimBankTarget, 1); + if (GetBattlerSide(gAnimBankTarget) == 0) { sprite->data[6] = 0; sprite->data[7] = e + 10; diff --git a/src/battle/anim/hop_2.c b/src/battle/anim/hop_2.c index 1bc3f46af..861f428da 100644 --- a/src/battle/anim/hop_2.c +++ b/src/battle/anim/hop_2.c @@ -22,8 +22,8 @@ void sub_80CBAE8(struct Sprite* sprite) s16 p1; s16 p2; sub_8078764(sprite, 0); - p1 = GetBankPosition(gAnimBankAttacker, 0); - p2 = GetBankPosition(gAnimBankAttacker, 1); + p1 = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + p2 = GetBattlerSpriteCoord(gAnimBankAttacker, 1); if ((gAnimBankTarget ^ 2) == gAnimBankAttacker) { sprite->data[6] = p1; diff --git a/src/battle/anim/leaf.c b/src/battle/anim/leaf.c index 676734717..ca2af257d 100644 --- a/src/battle/anim/leaf.c +++ b/src/battle/anim/leaf.c @@ -15,8 +15,8 @@ static void sub_80CAF6C(struct Sprite* sprite); void sub_80CAED8(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; @@ -51,7 +51,7 @@ void sub_80CAF20(struct Sprite* sprite) void sub_80CAF6C(struct Sprite* sprite) { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos2.x = -Sin(sprite->data[0], 0x19); } diff --git a/src/battle/anim/love_bg.c b/src/battle/anim/love_bg.c index c3828c681..72d9325f2 100644 --- a/src/battle/anim/love_bg.c +++ b/src/battle/anim/love_bg.c @@ -10,9 +10,9 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern struct INCBIN_U8 gAttractTilemap; -extern struct INCBIN_U8 gAttractGfx; -extern struct INCBIN_U8 gAttractPal; +extern const u8 gAttractTilemap[]; +extern const u8 gAttractGfx[]; +extern const u8 gAttractPal[]; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG1_X; diff --git a/src/battle/anim/lunge_1.c b/src/battle/anim/lunge_1.c index a3b5f19c5..949fb89f4 100644 --- a/src/battle/anim/lunge_1.c +++ b/src/battle/anim/lunge_1.c @@ -44,7 +44,7 @@ void sub_80CD774(struct Sprite* sprite) void sub_80CD7CC(struct Sprite* sprite) { sprite->data[0] = 6; - sprite->data[1] = (GetBankSide(gAnimBankAttacker)) ? 2 : -2; + sprite->data[1] = (GetBattlerSide(gAnimBankAttacker)) ? 2 : -2; sprite->data[2] = 0; sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD81C); @@ -57,7 +57,7 @@ void sub_80CD81C(struct Sprite* sprite) { sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; sub_8078E70(sprite->data[3], 0); - sprite->data[4] = (sprite->data[6] = GetBankSide(gAnimBankAttacker)) ? 0x300 : 0xFFFFFD00; + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gAnimBankAttacker)) ? 0x300 : 0xFFFFFD00; sprite->data[5] = 0; } @@ -74,7 +74,7 @@ void sub_80CD81C(struct Sprite* sprite) void sub_80CD8A8(struct Sprite* sprite) { sprite->data[0] = 4; - sprite->data[1] = (GetBankSide(gAnimBankAttacker)) ? -3 : 3; + sprite->data[1] = (GetBattlerSide(gAnimBankAttacker)) ? -3 : 3; sprite->data[2] = 0; sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; StoreSpriteCallbackInData(sprite, sub_80CD9B8); @@ -95,8 +95,8 @@ void sub_80CD91C(struct Sprite* sprite) if (sprite->data[0] == 0) { sprite->data[3] = gBankSpriteIds[gAnimBankAttacker]; - sprite->data[6] = GetBankSide(gAnimBankAttacker); - if (GetBankSide(gAnimBankAttacker)) + sprite->data[6] = GetBattlerSide(gAnimBankAttacker); + if (GetBattlerSide(gAnimBankAttacker)) { sprite->data[4] = 0xFC00; sprite->data[5] = 0xC00; diff --git a/src/battle/anim/lunge_2.c b/src/battle/anim/lunge_2.c index f222b291d..c0100922c 100644 --- a/src/battle/anim/lunge_2.c +++ b/src/battle/anim/lunge_2.c @@ -21,7 +21,7 @@ void sub_80CDAC8(u8 taskId) u8 a; gTasks[taskId].data[0] = gBankSpriteIds[gAnimBankAttacker]; - a = GetBankSide(gAnimBankAttacker); + a = GetBattlerSide(gAnimBankAttacker); gTasks[taskId].data[1] = a; gTasks[taskId].data[2] = 0; switch (gBattleAnimArgs[0]) diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c index c3d130750..1407e8cd7 100644 --- a/src/battle/anim/money.c +++ b/src/battle/anim/money.c @@ -20,9 +20,9 @@ void sub_80CFE9C(struct Sprite* sprite) u16 var; InitAnimSpritePos(sprite, 1); - r6 = GetBankPosition(gAnimBankTarget, 2); - r7 = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker) != 0) + r6 = GetBattlerSpriteCoord(gAnimBankTarget, 2); + r7 = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + if (GetBattlerSide(gAnimBankAttacker) != 0) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; r6 += gBattleAnimArgs[2]; @@ -47,7 +47,7 @@ void sub_80CFF68(struct Sprite* sprite) { sprite->data[0] += 0x80; sprite->pos2.x = sprite->data[0] >> 8; - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) sprite->pos2.x = -sprite->pos2.x; sprite->pos2.y = Sin(sprite->data[1], sprite->data[2]); diff --git a/src/battle/anim/noise.c b/src/battle/anim/noise.c index 369650d82..0b6498318 100644 --- a/src/battle/anim/noise.c +++ b/src/battle/anim/noise.c @@ -16,13 +16,13 @@ void sub_80D2D68(struct Sprite* sprite) int var1; u8 slot = gBattleAnimArgs[0] == 0 ? gAnimBankAttacker : gAnimBankTarget; - if (GetBankSide(slot) == 1) + if (GetBattlerSide(slot) == 1) { gBattleAnimArgs[1] *= -1; } - sprite->pos1.x = GetBankPosition(slot, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(slot, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(slot, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(slot, 3) + gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->data[1] = (u16)sprite->pos1.x << 3; sprite->data[2] = (u16)sprite->pos1.y << 3; diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c index 44817b0a0..4e12c7e1a 100644 --- a/src/battle/anim/note_rain.c +++ b/src/battle/anim/note_rain.c @@ -25,12 +25,12 @@ void sub_80D1BA8(struct Sprite* sprite, u8 a, u8 b) void sub_80D1C08(struct Sprite* sprite) { InitAnimSpritePos(sprite, 0); - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 0) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[3]; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); sub_80D1BA8(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); diff --git a/src/battle/anim/note_scatter.c b/src/battle/anim/note_scatter.c index 8564c58fe..53afa7d78 100644 --- a/src/battle/anim/note_scatter.c +++ b/src/battle/anim/note_scatter.c @@ -16,14 +16,14 @@ static void sub_80CED78(struct Sprite* sprite); void sub_80CECE8(struct Sprite* sprite) { int a; - if (GetBankSide(gAnimBankAttacker) == 1) + if (GetBattlerSide(gAnimBankAttacker) == 1) { a = gBattleAnimArgs[1]; (u16)gBattleAnimArgs[1] = -a; } - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[0]); sprite->data[2] = 0; sprite->data[3] = 0; diff --git a/src/battle/anim/note_wave.c b/src/battle/anim/note_wave.c index 80ed2256f..1f3db8c56 100644 --- a/src/battle/anim/note_wave.c +++ b/src/battle/anim/note_wave.c @@ -81,8 +81,8 @@ void sub_80CEB0C(struct Sprite* sprite) } else { - a = GetBankPosition(gAnimBankTarget, 2); - b = GetBankPosition(gAnimBankTarget, 3); + a = GetBattlerSpriteCoord(gAnimBankTarget, 2); + b = GetBattlerSpriteCoord(gAnimBankTarget, 3); } sprite->data[4] = sprite->pos1.x << 4; diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c index e7dd0df49..b4a641cc2 100644 --- a/src/battle/anim/orbit.c +++ b/src/battle/anim/orbit.c @@ -64,7 +64,7 @@ void sub_80CACEC(u8 taskId) } else { - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { REG_BG2CNT_BITFIELD.priority = 3; } @@ -84,7 +84,7 @@ void sub_80CAD54(struct Sprite* sprite) sprite->data[1] = sprite->pos1.x; sprite->data[2] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = 0x40; sprite->callback = sub_80CADA8; @@ -121,7 +121,7 @@ void sub_80CAE20(struct Sprite* sprite) sprite->data[1] = sprite->pos1.x; sprite->data[2] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = 0x40; sprite->callback = sub_80CAE74; diff --git a/src/battle/anim/orbit_fast.c b/src/battle/anim/orbit_fast.c index 71303b03c..67a59583f 100644 --- a/src/battle/anim/orbit_fast.c +++ b/src/battle/anim/orbit_fast.c @@ -16,8 +16,8 @@ static void AnimOrbitFastStep(struct Sprite* sprite); // arg 1: initial wave offset void AnimOrbitFast(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->affineAnimPaused = 1; sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; diff --git a/src/battle/anim/orbit_scatter.c b/src/battle/anim/orbit_scatter.c index cda09a729..bd03ee78c 100644 --- a/src/battle/anim/orbit_scatter.c +++ b/src/battle/anim/orbit_scatter.c @@ -15,8 +15,8 @@ static void AnimOrbitScatterStep(struct Sprite* sprite); // arg 0: initial wave offset void AnimOrbitScatter(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->callback = AnimOrbitScatterStep; diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c index 6f1bba9c3..53c16d8d7 100644 --- a/src/battle/anim/orbs.c +++ b/src/battle/anim/orbs.c @@ -21,8 +21,8 @@ void sub_80CA7B0(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); } @@ -32,8 +32,8 @@ void sub_80CA800(struct Sprite* sprite) InitAnimSpritePos(sprite, 1); StartSpriteAnim(sprite, gBattleAnimArgs[3]); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -43,9 +43,9 @@ void sub_80CA858(struct Sprite* sprite) InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = sub_80CA8B4; @@ -96,8 +96,8 @@ void sub_80CA9A8(struct Sprite* sprite) { sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[5] = gBattleAnimArgs[2]; InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80CA9F8; @@ -115,9 +115,9 @@ void sub_80CAA14(struct Sprite* sprite) u16 b; StartSpriteAnim(sprite, a & 7); - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); - if (GetBankSide(gAnimBankAttacker)) + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= 20; } @@ -129,9 +129,9 @@ void sub_80CAA14(struct Sprite* sprite) b = Random(); sprite->data[0] = (b & 31) + 64; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sub_8078D60(sprite); sprite->data[5] = Random() & 0xFF; sprite->data[6] = sprite->subpriority; diff --git a/src/battle/anim/osmose.c b/src/battle/anim/osmose.c index 1140aa34a..cca7af76e 100644 --- a/src/battle/anim/osmose.c +++ b/src/battle/anim/osmose.c @@ -14,8 +14,8 @@ void sub_80CB768(struct Sprite* sprite) { if (!sprite->data[0]) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c index 3a7477a57..2cc104c07 100644 --- a/src/battle/anim/poison.c +++ b/src/battle/anim/poison.c @@ -20,8 +20,8 @@ void sub_80D9D70(struct Sprite *sprite) InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->data[5] = -30; InitAnimSpriteTranslationOverDuration(sprite); @@ -44,7 +44,7 @@ void sub_80D9DF0(struct Sprite *sprite) InitAnimSpritePos(sprite, 1); SetAverageBattlerPositions(gAnimBankTarget, 1, &l1, &l2); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[4] = -gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[2]; @@ -94,7 +94,7 @@ void sub_80D9F14(struct Sprite *sprite) { SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0]; @@ -124,7 +124,7 @@ void AnimBubbleEffect(struct Sprite *sprite) { SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0]; diff --git a/src/battle/anim/powder.c b/src/battle/anim/powder.c index 5d67311dc..88339522e 100644 --- a/src/battle/anim/powder.c +++ b/src/battle/anim/powder.c @@ -23,7 +23,7 @@ void AnimMovePowderParticle(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->data[3] = -gBattleAnimArgs[4]; } diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index 42f396870..4a48d1ecf 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -38,7 +38,7 @@ void sub_80DC5F4(u8 taskId); void sub_80DB74C(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER || IsContest()) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER || IsContest()) { sprite->oam.priority = 2; sprite->subpriority = 200; @@ -47,8 +47,8 @@ void sub_80DB74C(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - u8 identity = GetBankIdentity_permutated(bank); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + u8 identity = GetBattlerPosition_permutated(bank); int var0 = 1; u8 toBG_2 = (identity ^ var0) != 0; @@ -62,7 +62,7 @@ void sub_80DB74C(struct Sprite *sprite) if (!IsContest() && IsDoubleBattle()) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER) { sprite->pos1.x = 72; sprite->pos1.y = 80; @@ -75,11 +75,11 @@ void sub_80DB74C(struct Sprite *sprite) } else { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; } if (IsContest()) @@ -131,7 +131,7 @@ static void sub_80DB92C(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (IsAnimBankSpriteVisible(bank)) gSprites[gBankSpriteIds[bank]].invisible = 0; @@ -151,8 +151,8 @@ static void sub_80DB9E4(struct Sprite *sprite) if (!IsContest()) { u8 bankCopy; - u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - u8 identity = GetBankIdentity_permutated(bank); + u8 bank = bankCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + u8 identity = GetBattlerPosition_permutated(bank); int var0 = 1; u8 toBG_2 = (identity ^ var0) != 0; @@ -178,7 +178,7 @@ void sub_80DBA4C(struct Sprite *sprite) if (!IsContest() && IsDoubleBattle()) { - if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER) { sprite->pos1.x = 72 - gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1] + 80; @@ -208,10 +208,10 @@ void sub_80DBA4C(struct Sprite *sprite) void sub_80DBAF4(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { StartSpriteAnim(sprite, 1); sprite->pos1.x -= 40; @@ -234,13 +234,13 @@ void sub_80DBB70(struct Sprite *sprite) s16 x = sub_807A100(gAnimBankAttacker, 1) / 2; s16 y = sub_807A100(gAnimBankAttacker, 0) / -2; - if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_OPPONENT) { x = -x; } - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + x; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + y; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + x; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + y; if (sprite->pos1.y < 16) { @@ -285,7 +285,7 @@ static void sub_80DBC34(struct Sprite *sprite) void sub_80DBC94(u8 taskId) { struct Task *task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; sub_80798F4(task, spriteId, &gUnknown_083DA8A4); task->func = sub_80DBCD0; @@ -302,11 +302,11 @@ static void sub_80DBCD0(u8 taskId) void sub_80DBCFC(u8 taskId) { struct Task *task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; task->data[1] = 0; task->data[2] = 0; - task->data[3] = GetBankSide(gAnimBankAttacker) != SIDE_PLAYER ? 4 : 8; + task->data[3] = GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER ? 4 : 8; sub_80798F4(task, task->data[0], &gUnknown_083DA8C4); task->func = sub_80DBD58; @@ -348,8 +348,8 @@ void sub_80DBE00(u8 taskId) task->data[3] = 16; task->data[4] = 0; - task->data[13] = GetBankPosition(gAnimBankAttacker, 2); - task->data[14] = GetBankPosition(gAnimBankAttacker, 3); + task->data[13] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + task->data[14] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); var0 = sub_807A100(gAnimBankAttacker, 1) / 3; var1 = sub_807A100(gAnimBankAttacker, 0) / 3; @@ -448,8 +448,8 @@ void sub_80DC068(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); } sprite->data[0] = gBattleAnimArgs[1]; @@ -581,7 +581,7 @@ void sub_80DC2D4(u8 taskId) if (task->data[14] < 0) task->data[14] = 0; - if (GetBankIdentity_permutated(gAnimBankTarget) == 1) + if (GetBattlerPosition_permutated(gAnimBankTarget) == 1) { task->data[10] = gBattle_BG1_X; scanlineParams.dmaDest = ®_BG1HOFS; @@ -684,7 +684,7 @@ void sub_80DC4F4(u8 taskId) obj_id_set_rotscale(spriteId, 256, 256, 0); CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode); - task->data[13] = GetAnimBankSpriteId(gBattleAnimArgs[0]); + task->data[13] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); task->data[14] = matrixNum; task->data[15] = spriteId; task->func = sub_80DC5F4; @@ -789,7 +789,7 @@ _080DC554:\n\ bl CalcCenterToCornerVec\n\ ldr r1, _080DC5EC @ =gBattleAnimArgs\n\ ldrb r0, [r1]\n\ - bl GetAnimBankSpriteId\n\ + bl GetAnimBattlerSpriteId\n\ lsls r0, 24\n\ lsrs r0, 24\n\ strh r0, [r7, 0x22]\n\ @@ -854,8 +854,8 @@ void sub_80DC700(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); if (IsContest()) sprite->pos1.y += 12; diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c index 86b2c4659..b317cdaed 100644 --- a/src/battle/anim/ring.c +++ b/src/battle/anim/ring.c @@ -34,11 +34,11 @@ void sub_80D0FD8(struct Sprite* sprite) { SetAverageBattlerPositions(bank, r4, &sp0, &sp1); if (r4 == 0) - r4 = GetBankPosition(bank, 0); + r4 = GetBattlerSpriteCoord(bank, 0); else - r4 = GetBankPosition(bank, 2); + r4 = GetBattlerSpriteCoord(bank, 2); - if (GetBankSide(bank) != 0) + if (GetBattlerSide(bank) != 0) gBattleAnimArgs[0] -= (sp0 - r4) - gBattleAnimArgs[0]; // This is weird. else gBattleAnimArgs[0] = sp0 - r4; @@ -90,9 +90,9 @@ void sub_80D10B8(struct Sprite* sprite) sp4 = 3; } - if (GetBankSide(bankr7) != 0) + if (GetBattlerSide(bankr7) != 0) { - r9 = GetBankPosition(bankr7, r10) + gBattleAnimArgs[0]; + r9 = GetBattlerSpriteCoord(bankr7, r10) + gBattleAnimArgs[0]; if (IsAnimBankSpriteVisible(bankr8 ^ 2)) sprite->subpriority = gSprites[gBankSpriteIds[bankr8 ^ 2]].subpriority - 1; else @@ -100,7 +100,7 @@ void sub_80D10B8(struct Sprite* sprite) } else { - r9 = GetBankPosition(bankr7, r10) - gBattleAnimArgs[0]; + r9 = GetBattlerSpriteCoord(bankr7, r10) - gBattleAnimArgs[0]; if (gMain.inBattle && IsAnimBankSpriteVisible(bankr7 ^ 2)) { if (gSprites[gBankSpriteIds[bankr7]].pos1.x < gSprites[gBankSpriteIds[bankr7 ^ 2]].pos1.x) @@ -115,18 +115,18 @@ void sub_80D10B8(struct Sprite* sprite) } - r6 = GetBankPosition(bankr7, sp4) + gBattleAnimArgs[1]; + r6 = GetBattlerSpriteCoord(bankr7, sp4) + gBattleAnimArgs[1]; if (gMain.inBattle && IsAnimBankSpriteVisible(bankr8 ^ 2)) { SetAverageBattlerPositions(bankr8, gBattleAnimArgs[6], &sp0, &sp1); } else { - sp0 = GetBankPosition(bankr8, r10); - sp1 = GetBankPosition(bankr8, sp4); + sp0 = GetBattlerSpriteCoord(bankr8, r10); + sp1 = GetBattlerSpriteCoord(bankr8, sp4); } - if (GetBankSide(bankr8)) + if (GetBattlerSide(bankr8)) sp0 += gBattleAnimArgs[3]; else sp0 -= gBattleAnimArgs[3]; diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index 6fbe065b8..73be7c42b 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -78,7 +78,7 @@ void sub_80DCF60(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[5]); AnimateSprite(sprite); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; else sprite->pos1.x += gBattleAnimArgs[0]; @@ -154,7 +154,7 @@ void do_boulder_dust(u8 taskId) if (IsContest()) sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0); - if (gBattleAnimArgs[0] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[0] != 0 && GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; @@ -231,7 +231,7 @@ void sub_80DD3AC(struct Sprite *sprite) { if (sprite->data[0] == 0) { - if (gBattleAnimArgs[3] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (gBattleAnimArgs[3] != 0 && GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { sprite->pos1.x = 304; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -295,10 +295,10 @@ void sub_80DD4D4(u8 taskId) task = &gTasks[taskId]; - var0 = GetBankPosition(gAnimBankAttacker, 2); - var1 = GetBankPosition(gAnimBankAttacker, 1) + 24; - var2 = GetBankPosition(gAnimBankTarget, 2); - var3 = GetBankPosition(gAnimBankTarget, 1) + 24; + var0 = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + var1 = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + 24; + var2 = GetBattlerSpriteCoord(gAnimBankTarget, 2); + var3 = GetBattlerSpriteCoord(gAnimBankTarget, 1) + 24; if ((gAnimBankAttacker ^ 2) == gAnimBankTarget) var3 = var1; @@ -333,7 +333,7 @@ void sub_80DD4D4(u8 taskId) task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; task->data[1] = var4; - task->data[15] = GetAnimBankSpriteId(0); + task->data[15] = GetAnimBattlerSpriteId(0); task->func = sub_80DD604; } @@ -514,7 +514,7 @@ static void sub_80DD928(struct Sprite *sprite) void sub_80DD978(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT) + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); TranslateAnimSpriteToTargetMonLocation(sprite); @@ -522,8 +522,8 @@ void sub_80DD978(struct Sprite *sprite) void sub_80DD9A4(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1); sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c index 68f8a3e2f..30c2d9652 100644 --- a/src/battle/anim/roots.c +++ b/src/battle/anim/roots.c @@ -18,8 +18,8 @@ void sub_80CB59C(struct Sprite* sprite) { if (!sprite->data[0]) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); sprite->pos2.x = gBattleAnimArgs[0]; sprite->pos2.y = gBattleAnimArgs[1]; sprite->subpriority = gBattleAnimArgs[2] + 30; @@ -36,10 +36,10 @@ void sub_80CB59C(struct Sprite* sprite) void sub_80CB620(struct Sprite *sprite) { - s16 p1 = GetBankPosition(gAnimBankAttacker, 2); - s16 p2 = GetBankPosition(gAnimBankAttacker, 3); - s16 e1 = GetBankPosition(gAnimBankTarget, 2); - s16 e2 = GetBankPosition(gAnimBankTarget, 3); + s16 p1 = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + s16 p2 = GetBattlerSpriteCoord(gAnimBankAttacker, 3); + s16 e1 = GetBattlerSpriteCoord(gAnimBankTarget, 2); + s16 e2 = GetBattlerSpriteCoord(gAnimBankTarget, 3); e1 -= p1; e2 -= p2; diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c index 403894cc8..abd54cef3 100644 --- a/src/battle/anim/scan.c +++ b/src/battle/anim/scan.c @@ -110,8 +110,8 @@ void sub_80CD4EC(struct Sprite* sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; sprite->data[0] = 6; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + a; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + b; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + a; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + b; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, sub_80CD654); } diff --git a/src/battle/anim/scary_face.c b/src/battle/anim/scary_face.c index 8d51521ee..5a2c52825 100644 --- a/src/battle/anim/scary_face.c +++ b/src/battle/anim/scary_face.c @@ -10,11 +10,11 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFaceContest; -extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFacePlayer; -extern struct INCBIN_U8 gBattleAnimBackgroundTilemap_ScaryFaceOpponent; -extern struct INCBIN_U8 gBattleAnimBackgroundImage_ScaryFace; -extern struct INCBIN_U8 gBattleAnimBackgroundPalette_ScaryFace; +extern const u8 gBattleAnimBackgroundTilemap_ScaryFaceContest[]; +extern const u8 gBattleAnimBackgroundTilemap_ScaryFacePlayer[]; +extern const u8 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[]; +extern const u8 gBattleAnimBackgroundImage_ScaryFace[]; +extern const u8 gBattleAnimBackgroundPalette_ScaryFace[]; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG1_X; @@ -43,7 +43,7 @@ void sub_80D23B4(u8 taskId) DmaFill32Defvars(3, 0, subStruct.field_4, 0x1000); if (IsContest()) LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFaceContest, subStruct.field_4); - else if (GetBankSide(gAnimBankTarget) == 1) + else if (GetBattlerSide(gAnimBankTarget) == 1) LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFacePlayer, subStruct.field_4); else LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFaceOpponent, subStruct.field_4); diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c index 7f8154504..d7c56e7a8 100644 --- a/src/battle/anim/seed.c +++ b/src/battle/anim/seed.c @@ -21,14 +21,14 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite); void AnimLeechSeed(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 0) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = AnimLeechSeedStep; diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 10ef1681e..6d47f0b46 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -9,7 +9,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gAnimSpeciesByBanks[]; extern u8 gUnknown_0202F7D2; @@ -175,10 +175,10 @@ void sub_812B18C(u8 taskId) } } - if (GetBankSide(bank)) - species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], 0xB); + if (GetBattlerSide(bank)) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], 0xB); else - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], 0xB); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], 0xB); } if (species != 0) diff --git a/src/battle/anim/shadow_enlarge.c b/src/battle/anim/shadow_enlarge.c index 399cf1ba4..7662583ac 100644 --- a/src/battle/anim/shadow_enlarge.c +++ b/src/battle/anim/shadow_enlarge.c @@ -15,7 +15,7 @@ static void sub_80D0428(u8 taskId); void sub_80D03C4(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); sub_8078E70(spriteId, 1); obj_id_set_rotscale(spriteId, 0xD0, 0xD0, 0); sub_8079108(gSprites[spriteId].oam.paletteNum + 16, 0); @@ -27,7 +27,7 @@ void sub_80D0428(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); sub_8078F40(spriteId); sub_8079108(gSprites[spriteId].oam.paletteNum + 16, 1); DestroyAnimVisualTask(taskId); diff --git a/src/battle/anim/shadow_minimize.c b/src/battle/anim/shadow_minimize.c index 61645bc59..b4e18eb51 100644 --- a/src/battle/anim/shadow_minimize.c +++ b/src/battle/anim/shadow_minimize.c @@ -18,7 +18,7 @@ void sub_80D0704(struct Sprite* sprite); void sub_80D0488(u8 taskId) { struct Task* task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; sub_8078E70(spriteId, 0); task->data[1] = 0; diff --git a/src/battle/anim/shield.c b/src/battle/anim/shield.c index 676318545..323df4ab2 100644 --- a/src/battle/anim/shield.c +++ b/src/battle/anim/shield.c @@ -23,7 +23,7 @@ void sub_80CCD24(struct Sprite* sprite) sprite->pos1.x = sub_8077EE4(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; sprite->pos1.y = sub_8077EE4(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; - if (GetBankSide(gAnimBankAttacker) == 0 || IsContest()) + if (GetBattlerSide(gAnimBankAttacker) == 0 || IsContest()) sprite->oam.priority = sub_8079ED4(gAnimBankAttacker) + 1; else sprite->oam.priority = sub_8079ED4(gAnimBankAttacker); diff --git a/src/battle/anim/shock.c b/src/battle/anim/shock.c index 16e04c9db..19e4d0fb2 100644 --- a/src/battle/anim/shock.c +++ b/src/battle/anim/shock.c @@ -15,10 +15,10 @@ extern void sub_80DA48C(struct Sprite *); void sub_80D6294(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; sprite->pos1.y -= gBattleAnimArgs[1]; @@ -77,13 +77,13 @@ void sub_80D6328(struct Sprite *sprite) if (gBattleAnimArgs[5] == 0) { - sprite->pos1.x = GetBankPosition(slot, 0); - sprite->pos1.y = GetBankPosition(slot, 1); + sprite->pos1.x = GetBattlerSpriteCoord(slot, 0); + sprite->pos1.y = GetBattlerSpriteCoord(slot, 1); } else { - sprite->pos1.x = GetBankPosition(slot, 2); - sprite->pos1.y = GetBankPosition(slot, 3); + sprite->pos1.x = GetBattlerSpriteCoord(slot, 2); + sprite->pos1.y = GetBattlerSpriteCoord(slot, 3); } sprite->pos2.x = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8; diff --git a/src/battle/anim/silhouette.c b/src/battle/anim/silhouette.c index a3147f598..00bb24762 100644 --- a/src/battle/anim/silhouette.c +++ b/src/battle/anim/silhouette.c @@ -15,7 +15,7 @@ static void sub_80CB438(u8 taskId); void sub_80CB340(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); if (gSprites[spriteId].invisible) { DestroyAnimVisualTask(taskId); @@ -32,10 +32,10 @@ void sub_80CB340(u8 taskId) void sub_80CB3A8(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); gTasks[taskId].data[10] += gTasks[taskId].data[0]; gSprites[spriteId].pos2.x = gTasks[taskId].data[10] >> 8; - if (GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankTarget)) { gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; } @@ -57,7 +57,7 @@ void sub_80CB438(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); sub_8078F40(spriteId); gSprites[spriteId].pos2.x = 0; gSprites[spriteId].pos2.y = 0; diff --git a/src/battle/anim/slash.c b/src/battle/anim/slash.c index 306968111..68a1b81ef 100644 --- a/src/battle/anim/slash.c +++ b/src/battle/anim/slash.c @@ -19,13 +19,13 @@ void sub_80CDD74(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[2]; } sprite->data[0] = 0; @@ -36,16 +36,16 @@ void sub_80CDD74(struct Sprite* sprite) void sub_80CDDDC(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2) + 0xFFD0; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2) + 0xFFD0; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); StoreSpriteCallbackInData(sprite, sub_80CDE78); sprite->callback = sub_8078600; } void sub_80CDE24(struct Sprite* sprite) { - sprite->pos1.x = sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; diff --git a/src/battle/anim/sleep.c b/src/battle/anim/sleep.c index 0f0e54f80..cc3518395 100644 --- a/src/battle/anim/sleep.c +++ b/src/battle/anim/sleep.c @@ -16,7 +16,7 @@ static void sub_80CD394(struct Sprite* sprite); void sub_80CD328(struct Sprite* sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; diff --git a/src/battle/anim/slice.c b/src/battle/anim/slice.c index 80c58dddf..8e7f35f46 100644 --- a/src/battle/anim/slice.c +++ b/src/battle/anim/slice.c @@ -17,9 +17,9 @@ static void AnimSliceStep(struct Sprite* sprite); // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right void AnimCuttingSlice(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); - if (GetBankSide(gAnimBankTarget) == 0) + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 1); + if (GetBattlerSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; sprite->callback = AnimSliceStep; @@ -48,28 +48,28 @@ void sub_80CC9BC(struct Sprite* sprite) switch (gBattleAnimArgs[3]) { case 1: - a = GetBankPosition(gAnimBankTarget ^ 2, 0); - b = GetBankPosition(gAnimBankTarget ^ 2, 1); + a = GetBattlerSpriteCoord(gAnimBankTarget ^ 2, 0); + b = GetBattlerSpriteCoord(gAnimBankTarget ^ 2, 1); break; case 2: - a = GetBankPosition(gAnimBankTarget, 0); - b = GetBankPosition(gAnimBankTarget, 1); + a = GetBattlerSpriteCoord(gAnimBankTarget, 0); + b = GetBattlerSpriteCoord(gAnimBankTarget, 1); if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) { - a = (GetBankPosition(gAnimBankTarget ^ 2, 0) + a) / 2; - b = (GetBankPosition(gAnimBankTarget ^ 2, 1) + b) / 2; + a = (GetBattlerSpriteCoord(gAnimBankTarget ^ 2, 0) + a) / 2; + b = (GetBattlerSpriteCoord(gAnimBankTarget ^ 2, 1) + b) / 2; } break; case 0: default: - a = GetBankPosition(gAnimBankTarget, 0); - b = GetBankPosition(gAnimBankTarget, 1); + a = GetBattlerSpriteCoord(gAnimBankTarget, 0); + b = GetBattlerSpriteCoord(gAnimBankTarget, 1); break; } sprite->pos1.x = a; sprite->pos1.y = b; - if (GetBankSide(gAnimBankTarget) == 0) + if (GetBattlerSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; sprite->callback = AnimSliceStep; diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 1501f51f1..a882be73c 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -26,7 +26,7 @@ void AnimSonicBoomProjectile(struct Sprite* sprite) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - else if (GetBankSide(gAnimBankAttacker) != 0) + else if (GetBattlerSide(gAnimBankAttacker) != 0) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -34,8 +34,8 @@ void AnimSonicBoomProjectile(struct Sprite* sprite) } InitAnimSpritePos(sprite, 1); - targetXPos = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - targetYPos = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + targetXPos = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + targetYPos = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); rotation += 0xF000; if (IsContest()) diff --git a/src/battle/anim/sonic_task.c b/src/battle/anim/sonic_task.c index 260ae544c..dc5d60efa 100644 --- a/src/battle/anim/sonic_task.c +++ b/src/battle/anim/sonic_task.c @@ -82,8 +82,8 @@ void sub_80CFB04(u8 taskId) gBattleAnimArgs[2] |= 1; } } - r6 = gTasks[taskId].data[9] = GetBankPosition(gAnimBankAttacker, 0); - r9 = gTasks[taskId].data[10] = GetBankPosition(gAnimBankAttacker, 1); + r6 = gTasks[taskId].data[9] = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + r9 = gTasks[taskId].data[10] = GetBattlerSpriteCoord(gAnimBankAttacker, 1); if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) { @@ -91,8 +91,8 @@ void sub_80CFB04(u8 taskId) } else { - sp1 = GetBankPosition(gAnimBankTarget, 0); - sp2 = GetBankPosition(gAnimBankTarget, 1); + sp1 = GetBattlerSpriteCoord(gAnimBankTarget, 0); + sp2 = GetBattlerSpriteCoord(gAnimBankTarget, 1); } sp1 = gTasks[taskId].data[11] = sp1 + gBattleAnimArgs[0]; diff --git a/src/battle/anim/spin_finger.c b/src/battle/anim/spin_finger.c index 8eb060358..1ce3aa0d0 100644 --- a/src/battle/anim/spin_finger.c +++ b/src/battle/anim/spin_finger.c @@ -23,7 +23,7 @@ void sub_80CF0BC(struct Sprite* sprite) else bank = gAnimBankTarget; - sprite->pos1.x = GetBankPosition(bank, 0); + sprite->pos1.x = GetBattlerSpriteCoord(bank, 0); sprite->pos1.y = sub_807A100(bank, 2); if (sprite->pos1.y <= 9) sprite->pos1.y = 10; diff --git a/src/battle/anim/spit.c b/src/battle/anim/spit.c index 1e65ba53e..36fcb788c 100644 --- a/src/battle/anim/spit.c +++ b/src/battle/anim/spit.c @@ -21,8 +21,8 @@ void sub_80D287C(struct Sprite* sprite) void sub_80D28AC(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->data[2] = gBattleAnimArgs[1]; diff --git a/src/battle/anim/splash.c b/src/battle/anim/splash.c index 570ef0dca..d6caaf0f6 100644 --- a/src/battle/anim/splash.c +++ b/src/battle/anim/splash.c @@ -24,7 +24,7 @@ void sub_80D074C(u8 taskId) } else { - u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); task->data[0] = spriteId; task->data[1] = 0; task->data[2] = gBattleAnimArgs[1]; diff --git a/src/battle/anim/startle.c b/src/battle/anim/startle.c index 50e78af37..95462bd9f 100644 --- a/src/battle/anim/startle.c +++ b/src/battle/anim/startle.c @@ -16,10 +16,10 @@ extern struct AffineAnimFrameCmd gUnknown_083D7A98; // opponent void sub_80D1E38(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(1); + u8 spriteId = GetAnimBattlerSpriteId(1); if (++gTasks[taskId].data[0] == 1) { - sub_80798F4(&gTasks[taskId], GetAnimBankSpriteId(1), &gUnknown_083D7A98); + sub_80798F4(&gTasks[taskId], GetAnimBattlerSpriteId(1), &gUnknown_083D7A98); gSprites[spriteId].pos2.x = 4; } else @@ -37,10 +37,10 @@ void sub_80D1E38(u8 taskId) // player void sub_80D1EC8(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); if (++gTasks[taskId].data[0] == 1) { - sub_80798F4(&gTasks[taskId], GetAnimBankSpriteId(0), &gUnknown_083D7A98); + sub_80798F4(&gTasks[taskId], GetAnimBattlerSpriteId(0), &gUnknown_083D7A98); gSprites[spriteId].pos2.x = 4; } else diff --git a/src/battle/anim/strike.c b/src/battle/anim/strike.c index bfa1dc4f7..775485a79 100644 --- a/src/battle/anim/strike.c +++ b/src/battle/anim/strike.c @@ -23,8 +23,8 @@ void sub_80CE670(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[2]; - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[1]; sprite->data[6] = sprite->pos1.x; sprite->data[7] = sprite->pos1.y; if (IsContest() != 0) @@ -37,7 +37,7 @@ void sub_80CE670(struct Sprite* sprite) sprite->data[4] = sprite->pos1.y << 7; sprite->data[5] = -0xA00 / sprite->data[1]; } - else if (GetBankSide(gAnimBankAttacker) == 0) + else if (GetBattlerSide(gAnimBankAttacker) == 0) { sprite->pos1.x -= 40; sprite->pos1.y += 20; diff --git a/src/battle/anim/struggle.c b/src/battle/anim/struggle.c index 20dbaf2dc..6a1355e1b 100644 --- a/src/battle/anim/struggle.c +++ b/src/battle/anim/struggle.c @@ -19,13 +19,13 @@ void sub_80D2C38(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); } else { - sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2); - sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3); } if (gBattleAnimArgs[1] == 0) diff --git a/src/battle/anim/taunt_finger.c b/src/battle/anim/taunt_finger.c index 023e14e45..c512f8cf4 100644 --- a/src/battle/anim/taunt_finger.c +++ b/src/battle/anim/taunt_finger.c @@ -24,7 +24,7 @@ void sub_80CF1C8(struct Sprite* sprite) bank = gAnimBankTarget; sub_80CEF44(bank, sprite); - if (GetBankSide(bank) == 0) + if (GetBattlerSide(bank) == 0) { StartSpriteAnim(sprite, 0); sprite->data[0] = 2; diff --git a/src/battle/anim/tendrils.c b/src/battle/anim/tendrils.c index 9f57ffd45..4ef704f3a 100644 --- a/src/battle/anim/tendrils.c +++ b/src/battle/anim/tendrils.c @@ -28,7 +28,7 @@ void sub_80CB298(struct Sprite* sprite) if ((u16)gBattleAnimArgs[7] == 0xFFFF) { sprite->affineAnimPaused = 0; - GetAnimBankSpriteId(1); + GetAnimBattlerSpriteId(1); sprite->data[0] = 0x100; sprite->callback = sub_80CB2D4; } @@ -36,7 +36,7 @@ void sub_80CB298(struct Sprite* sprite) void sub_80CB2D4(struct Sprite* sprite) { - GetAnimBankSpriteId(1); + GetAnimBattlerSpriteId(1); if (!sprite->data[2]) { sprite->data[0] += 11; diff --git a/src/battle/anim/thought.c b/src/battle/anim/thought.c index c3ab6f82c..5163cbfad 100644 --- a/src/battle/anim/thought.c +++ b/src/battle/anim/thought.c @@ -15,12 +15,12 @@ static void sub_80CF008(struct Sprite* sprite); void sub_80CEF44(u8 bank, struct Sprite* sprite) { - if (GetBankSide(bank) == 0) + if (GetBattlerSide(bank) == 0) sprite->pos1.x = sub_807A100(bank, 5) + 8; else sprite->pos1.x = sub_807A100(bank, 4) - 8; - sprite->pos1.y = GetBankPosition(bank, 3) - (s16)sub_807A100(bank, 0) / 4; + sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) - (s16)sub_807A100(bank, 0) / 4; } void sub_80CEF9C(struct Sprite* sprite) @@ -33,7 +33,7 @@ void sub_80CEF9C(struct Sprite* sprite) bank = gAnimBankTarget; sub_80CEF44(bank, sprite); - a = (GetBankSide(bank) == 0) ? 0 : 1; + a = (GetBattlerSide(bank) == 0) ? 0 : 1; sprite->data[0] = gBattleAnimArgs[1]; sprite->data[1] = a + 2; StartSpriteAnim(sprite, a); diff --git a/src/battle/anim/thrashing.c b/src/battle/anim/thrashing.c index 3fde815ae..bc1fc4842 100644 --- a/src/battle/anim/thrashing.c +++ b/src/battle/anim/thrashing.c @@ -20,7 +20,7 @@ static void sub_80D0B3C(u8 taskId); void sub_80D0A4C(u8 taskId) { struct Task* task = &gTasks[taskId]; - u8 spriteId = GetAnimBankSpriteId(0); + u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; task->data[1] = 0; sub_80798F4(task, spriteId, &gUnknown_083D77B0); @@ -38,7 +38,7 @@ void sub_80D0A8C(u8 taskId) void sub_80D0AB8(u8 taskId) { struct Task* task = &gTasks[taskId]; - task->data[0] = GetAnimBankSpriteId(0); + task->data[0] = GetAnimBattlerSpriteId(0); task->data[1] = 0; task->data[2] = 4; task->data[3] = 7; @@ -48,7 +48,7 @@ void sub_80D0AB8(u8 taskId) task->data[7] = 0; task->data[8] = 0; task->data[9] = 2; - if (GetBankSide(gAnimBankAttacker) == 1) + if (GetBattlerSide(gAnimBankAttacker) == 1) task->data[2] *= -1; task->func = sub_80D0B3C; diff --git a/src/battle/anim/thunder.c b/src/battle/anim/thunder.c index 2ed073221..70d4dc232 100644 --- a/src/battle/anim/thunder.c +++ b/src/battle/anim/thunder.c @@ -14,7 +14,7 @@ static void sub_80D6218(struct Sprite *); void sub_80D61C8(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; } diff --git a/src/battle/anim/tile_in.c b/src/battle/anim/tile_in.c index a4a544a0c..b1d804317 100644 --- a/src/battle/anim/tile_in.c +++ b/src/battle/anim/tile_in.c @@ -15,8 +15,8 @@ void sub_80CE09C(struct Sprite* sprite) { if (sprite->data[0] == 0) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 1) + gBattleAnimArgs[1]; if (IsContest()) sprite->pos1.y += 10; sprite->data[0]++; diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c index 39d4ff01f..04f51e556 100644 --- a/src/battle/anim/tile_out.c +++ b/src/battle/anim/tile_out.c @@ -9,7 +9,7 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern u8 gNoOfAllBanks; +extern u8 gBattlersCount; extern u8 gHealthboxIDs[]; static void sub_80CE1AC(struct Sprite* sprite); @@ -35,8 +35,8 @@ void sub_80CE1AC(struct Sprite* sprite) { sprite->animPaused = 0; sprite->data[0] = 30; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -57,12 +57,12 @@ void sub_80CE210(u8 taskId) void unref_sub_80CE260(u8 taskId) { u8 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBattleAnimArgs[0] == 1 && GetBankSide(i) == 0) + if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == 0) sub_8043DB0(gHealthboxIDs[i]); - if (gBattleAnimArgs[1] == 1 && GetBankSide(i) == 1) + if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == 1) sub_8043DB0(gHealthboxIDs[i]); } @@ -72,7 +72,7 @@ void unref_sub_80CE260(u8 taskId) void unref_sub_80CE2D4(u8 taskId) { u8 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { sub_8043DFC(gHealthboxIDs[i]); } diff --git a/src/battle/anim/twinkle.c b/src/battle/anim/twinkle.c index e26669f63..34082cc2f 100644 --- a/src/battle/anim/twinkle.c +++ b/src/battle/anim/twinkle.c @@ -15,7 +15,7 @@ static void sub_80CE3B0(struct Sprite* sprite); void sub_80CE36C(struct Sprite* sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; sprite->data[0] = 0; sprite->data[1] = 0; diff --git a/src/battle/anim/unused_2.c b/src/battle/anim/unused_2.c index 122f39e02..71e5e92d7 100644 --- a/src/battle/anim/unused_2.c +++ b/src/battle/anim/unused_2.c @@ -49,7 +49,7 @@ void unref_sub_80CCB6C(struct Sprite* sprite) void sub_80CCC50(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) sprite->pos1.x -= gBattleAnimArgs[0]; else sprite->pos1.x += gBattleAnimArgs[0]; diff --git a/src/battle/anim/unused_3.c b/src/battle/anim/unused_3.c index 6dbcbfefe..a89ed0246 100644 --- a/src/battle/anim/unused_3.c +++ b/src/battle/anim/unused_3.c @@ -16,7 +16,7 @@ static void sub_80CD2D4(struct Sprite* sprite); void sub_80CD274(struct Sprite* sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; diff --git a/src/battle/anim/unused_4.c b/src/battle/anim/unused_4.c index 50ffaba4a..63940f3e1 100644 --- a/src/battle/anim/unused_4.c +++ b/src/battle/anim/unused_4.c @@ -28,7 +28,7 @@ void sub_80CD9D4(struct Sprite* sprite) case 0: sprite->data[1] = 0; sprite->data[2] = gBankSpriteIds[gAnimBankAttacker]; - sprite->data[3] = GetBankSide(gAnimBankAttacker); + sprite->data[3] = GetBattlerSide(gAnimBankAttacker); sprite->data[4] = (sprite->data[3] != 0) ? 0x200 : -0x200; sprite->data[5] = 0; sub_8078E70(sprite->data[2], 0); diff --git a/src/battle/anim/unused_7.c b/src/battle/anim/unused_7.c index 5a2de33c3..a2f00db31 100644 --- a/src/battle/anim/unused_7.c +++ b/src/battle/anim/unused_7.c @@ -30,10 +30,10 @@ void sub_80CF374(struct Sprite* sprite) void sub_80CF3C4(struct Sprite* sprite) { u8 a; - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); a = gBankSpriteIds[gAnimBankTarget]; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; } diff --git a/src/battle/anim/uproar.c b/src/battle/anim/uproar.c index 03cc65bc0..538ca9b20 100644 --- a/src/battle/anim/uproar.c +++ b/src/battle/anim/uproar.c @@ -12,7 +12,7 @@ void sub_80D2D3C(u8); void sub_80D2CF8(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sub_80798F4(&gTasks[taskId], spriteId, gUnknown_083D7CA8); gTasks[taskId].func = sub_80D2D3C; diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c index e6945f9b2..2700bfd27 100644 --- a/src/battle/anim/water.c +++ b/src/battle/anim/water.c @@ -153,7 +153,7 @@ _080D3920:\n\ strb r0, [r2]\n\ ldr r0, _080D39A0 @ =gAnimBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -276,7 +276,7 @@ _080D3A90: .4byte gBattle_BG1_Y\n\ _080D3A94:\n\ ldr r0, _080D3AC4 @ =gAnimBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r1, r0, 24\n\ cmp r1, 0x1\n\ diff --git a/src/battle/anim/whip.c b/src/battle/anim/whip.c index cb3ce327e..08b24369d 100644 --- a/src/battle/anim/whip.c +++ b/src/battle/anim/whip.c @@ -20,7 +20,7 @@ void sub_80CC810(struct Sprite* sprite) // unused, beta effect for diagonal sprite movement? void sub_80CC82C(struct Sprite* sprite) { - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -37,7 +37,7 @@ void sub_80CC82C(struct Sprite* sprite) void sub_80CC884(struct Sprite* sprite) { - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) StartSpriteAnim(sprite, 1); sprite->callback = sub_80CC810; diff --git a/src/battle/anim/wisp_fire.c b/src/battle/anim/wisp_fire.c index 24cecb60c..5a51986c7 100644 --- a/src/battle/anim/wisp_fire.c +++ b/src/battle/anim/wisp_fire.c @@ -58,10 +58,10 @@ void sub_80D5DDC(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[12] = !GetBankSide(gAnimBankAttacker) ? 1 : -1; + task->data[12] = !GetBattlerSide(gAnimBankAttacker) ? 1 : -1; task->data[13] = IsAnimBankSpriteVisible(gAnimBankTarget ^ 2) + 1; - task->data[14] = GetAnimBankSpriteId(1); - task->data[15] = GetAnimBankSpriteId(3); + task->data[14] = GetAnimBattlerSpriteId(1); + task->data[15] = GetAnimBattlerSpriteId(3); task->func = sub_80D5E4C; } diff --git a/src/battle/anim/wisp_orb.c b/src/battle/anim/wisp_orb.c index 7c22b7f13..90b90acb7 100644 --- a/src/battle/anim/wisp_orb.c +++ b/src/battle/anim/wisp_orb.c @@ -25,7 +25,7 @@ void sub_80D5B0C(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[7] = gBattleAnimArgs[2]; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->data[4] = 4; } @@ -39,7 +39,7 @@ void sub_80D5B0C(struct Sprite *sprite) break; case 1: sprite->data[1] += 192; - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos2.y = -(sprite->data[1] >> 8); } @@ -70,9 +70,9 @@ void sub_80D5B0C(struct Sprite *sprite) sprite->data[0] = 256; sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sub_8078BD4(sprite); sprite->callback = sub_80D5C5C; diff --git a/src/battle/anim/withdraw.c b/src/battle/anim/withdraw.c index 933c97fa9..baf5d9b94 100644 --- a/src/battle/anim/withdraw.c +++ b/src/battle/anim/withdraw.c @@ -25,7 +25,7 @@ void sub_80CF514(u8 taskId) { u8 a = gBankSpriteIds[gAnimBankAttacker]; s16 b; - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { b = -gTasks[taskId].data[0]; } diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 73f9223e5..096bd878f 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -82,12 +82,12 @@ extern const u8 gUnknown_Debug_821F7F3[]; extern const u8 BattleText_YesNo[]; extern u8 gStatStageRatios[][2]; extern u8 gActionsByTurnOrder[4]; -extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; +extern struct UnknownPokemonStruct2 gMultiPartnerParty[]; extern u8 gBattleBufferB[][0x200]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u8 gCurrentActionFuncId; extern u8 gBanksByTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; @@ -95,7 +95,7 @@ extern u8 gBankSpriteIds[]; extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID. extern u8 gLastUsedAbility; extern u8 gStringBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gActionForBanks[]; extern u16 gUnknown_02024C2C[]; @@ -104,7 +104,7 @@ extern u16 gLastLandedMoves[]; extern u16 gLastHitByType[]; extern u16 gUnknown_02024C4C[]; extern u16 gLockedMoves[]; -extern u8 gUnknown_02024C5C[]; +extern u8 gLastHitBy[]; extern u16 gChosenMovesByBanks[]; extern u32 gHitMarker; extern u8 gUnknown_02024C70[]; @@ -152,9 +152,9 @@ extern u8 gBattleMonForms[]; extern u8 gBankAttacker; extern u8 gBankTarget; extern u16 gBattleWeather; -extern u32 gBattleMoveDamage; +extern s32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 BattleScript_FocusPunchSetUp[]; extern u16 gDynamicBasePower; extern u8 gCurrentTurnActionNumber; @@ -576,23 +576,23 @@ void sub_800F02C(void) for (i = 0; i < 3; i++) { - u8 *nickname = gUnknown_02023A00[i].nickname; + u8 *nickname = gMultiPartnerParty[i].nickname; - gUnknown_02023A00[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); - gUnknown_02023A00[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + gMultiPartnerParty[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + gMultiPartnerParty[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); GetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, nickname); - gUnknown_02023A00[i].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); - gUnknown_02023A00[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - gUnknown_02023A00[i].maxhp = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); - gUnknown_02023A00[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - gUnknown_02023A00[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); - gUnknown_02023A00[i].gender = GetMonGender(&gPlayerParty[i]); + gMultiPartnerParty[i].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + gMultiPartnerParty[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + gMultiPartnerParty[i].maxhp = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); + gMultiPartnerParty[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + gMultiPartnerParty[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); + gMultiPartnerParty[i].gender = GetMonGender(&gPlayerParty[i]); Text_StripExtCtrlCodes(nickname); - gUnknown_02023A00[i].language = GetMonData(&gPlayerParty[i], MON_DATA_LANGUAGE); - if (gUnknown_02023A00[i].language != 1) + gMultiPartnerParty[i].language = GetMonData(&gPlayerParty[i], MON_DATA_LANGUAGE); + if (gMultiPartnerParty[i].language != 1) PadNameString(nickname, 0); } - memcpy(gSharedMem, gUnknown_02023A00, 0x60); + memcpy(gSharedMem, gMultiPartnerParty, 0x60); } void sub_800F104(void) @@ -646,7 +646,7 @@ void sub_800F104(void) { if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerId].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[playerId].lp_field_18 & 1))) - memcpy(gUnknown_02023A00, gBlockRecvBuffer[i], 0x60); + memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 0x60); } } gBattleCommunication[0]++; @@ -2442,7 +2442,7 @@ void debug_sub_801174C(void) AddBagItem(ITEM_POKE_DOLL, 99); for (i = 0; i < 15; i++) - sub_810CA34(&gUnknown_Debug_821F5AC[i]); + GivePokeblock(&gUnknown_Debug_821F5AC[i]); } void debug_sub_8011D40(void) @@ -3347,11 +3347,11 @@ void sub_8010384(struct Sprite *sprite) else species = sprite->data[2]; - GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); // Unused return value + GetMonData(&gEnemyParty[gBattlerPartyIndexes[r6]], MON_DATA_PERSONALITY); // Unused return value if (species == SPECIES_UNOWN) { - u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); + u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r6]], MON_DATA_PERSONALITY); u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); u16 unownSpecies; @@ -3399,7 +3399,7 @@ void sub_8010494(struct Sprite *sprite) else { // this should use a MEMSET_ALT, but *(dst++) wont match with it. - dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); + dst = (u8 *)gUnknown_081FAF4C[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; StartSpriteAnim(sprite, gBattleMonForms[sprite->data[0]]); @@ -3558,12 +3558,12 @@ void sub_8010800(void) #if DEBUG void debug_sub_80138CC(void) { - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) { switch (gSharedMem[0x160FD]) { case 0: - if (gBattleBankFunc[gActiveBank] == sub_802C098) + if (gBattleBankFunc[gActiveBattler] == sub_802C098) gSharedMem[0x160FD]++; break; case 1: @@ -3604,18 +3604,18 @@ void sub_8010824(void) #if DEBUG if (gUnknown_02023A14_50 & 0x80) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) debug_sub_80138CC(); gBattleMainFunc(); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) - gBattleBankFunc[gActiveBank](); + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + gBattleBankFunc[gActiveBattler](); } else #endif { gBattleMainFunc(); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) - gBattleBankFunc[gActiveBank](); + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + gBattleBankFunc[gActiveBattler](); } } @@ -3639,7 +3639,7 @@ void sub_8010874(void) gLastLandedMoves[i] = 0; gLastHitByType[i] = 0; gUnknown_02024C4C[i] = 0; - gUnknown_02024C5C[i] = 0xFF; + gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; gUnknown_02024C2C[i] = 0; eFlashFireArr.arr[i] = 0; @@ -3675,7 +3675,7 @@ void sub_8010874(void) ewram16002 = 0; ewram160A1 = 0; gLeveledUpInBattle = 0; - gAbsentBankFlags = 0; + gAbsentBattlerFlags = 0; ewram16078 = 0; ewram16086 = 0; ewram16087 = 0; @@ -3727,21 +3727,21 @@ void sub_8010874(void) void SwitchInClearSetData(void) { - struct DisableStruct sp0 = gDisableStructs[gActiveBank]; + struct DisableStruct sp0 = gDisableStructs[gActiveBattler]; s32 i; u8 *ptr; if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) { for (i = 0; i < 8; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - for (i = 0; i < gNoOfAllBanks; i++) + gBattleMons[gActiveBattler].statStages[i] = 6; + for (i = 0; i < gBattlersCount; i++) { struct UnknownStruct12 *sp20 = &gUnknown_02024AD0[i]; - if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) sp20->unk0 &= ~0x04000000; - if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBank) + if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBattler) { gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; gDisableStructs[i].bankWithSureHit = 0; @@ -3750,14 +3750,14 @@ void SwitchInClearSetData(void) } if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { - 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); + gBattleMons[gActiveBattler].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); + gStatuses3[gActiveBattler] &= (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 < gBattlersCount; i++) { - if (GetBankSide(gActiveBank) != GetBankSide(i) + if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 - && (gDisableStructs[i].bankWithSureHit == gActiveBank)) + && (gDisableStructs[i].bankWithSureHit == gActiveBattler)) { gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; gStatuses3[i] |= 0x10; @@ -3766,49 +3766,49 @@ void SwitchInClearSetData(void) } else { - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; + gBattleMons[gActiveBattler].status2 = 0; + gStatuses3[gActiveBattler] = 0; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gUnknown_02024AD0[i].unk0 & (gBitTable[gActiveBank] << 16)) - gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gActiveBank] << 16); - if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram16020arr(i) == gActiveBank) + if (gUnknown_02024AD0[i].unk0 & (gBitTable[gActiveBattler] << 16)) + gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gActiveBattler] << 16); + if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram16020arr(i) == gActiveBattler) gUnknown_02024AD0[i].unk0 &= ~0xE000; } - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; - MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr); + MEMSET_ALT(&gDisableStructs[gActiveBattler], 0, 0x1C, i, ptr); if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { - gDisableStructs[gActiveBank].substituteHP = sp0.substituteHP; - gDisableStructs[gActiveBank].bankWithSureHit = sp0.bankWithSureHit; - gDisableStructs[gActiveBank].perishSong1 = sp0.perishSong1; - gDisableStructs[gActiveBank].perishSong2 = sp0.perishSong2; + gDisableStructs[gActiveBattler].substituteHP = sp0.substituteHP; + gDisableStructs[gActiveBattler].bankWithSureHit = sp0.bankWithSureHit; + gDisableStructs[gActiveBattler].perishSongTimer1 = sp0.perishSongTimer1; + gDisableStructs[gActiveBattler].perishSongTimer2 = sp0.perishSongTimer2; } - gDisableStructs[gActiveBank].isFirstTurn= 2; - gLastUsedMove[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gUnknown_02024C4C[gActiveBank] = 0; - gUnknown_02024C2C[gActiveBank] = 0; - gUnknown_02024C5C[gActiveBank] = 0xFF; + gDisableStructs[gActiveBattler].isFirstTurn= 2; + gLastUsedMove[gActiveBattler] = 0; + gLastLandedMoves[gActiveBattler] = 0; + gLastHitByType[gActiveBattler] = 0; + gUnknown_02024C4C[gActiveBattler] = 0; + gUnknown_02024C2C[gActiveBattler] = 0; + gLastHitBy[gActiveBattler] = 0xFF; - ewram160ACarr2(0, gActiveBank) = 0; - ewram160ACarr2(1, gActiveBank) = 0; - ewram16100arr2(0, gActiveBank) = 0; - ewram16100arr2(1, gActiveBank) = 0; - ewram16100arr2(2, gActiveBank) = 0; - ewram16100arr2(3, gActiveBank) = 0; - ewram160E8arr2(0, gActiveBank) = 0; - ewram160E8arr2(1, gActiveBank) = 0; + ewram160ACarr2(0, gActiveBattler) = 0; + ewram160ACarr2(1, gActiveBattler) = 0; + ewram16100arr2(0, gActiveBattler) = 0; + ewram16100arr2(1, gActiveBattler) = 0; + ewram16100arr2(2, gActiveBattler) = 0; + ewram16100arr2(3, gActiveBattler) = 0; + ewram160E8arr2(0, gActiveBattler) = 0; + ewram160E8arr2(1, gActiveBattler) = 0; - eFlashFireArr.arr[gActiveBank] = 0; + eFlashFireArr.arr[gActiveBattler] = 0; gCurrentMove = 0; } @@ -3819,63 +3819,63 @@ void UndoEffectsAfterFainting(void) u8 *ptr; for (i = 0; i < 8; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].status2 = 0; + gStatuses3[gActiveBattler] = 0; + for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16)) - gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16); - if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram16020arr(i) == gActiveBank) + if (gBattleMons[i].status2 & (gBitTable[gActiveBattler] << 16)) + gBattleMons[i].status2 &= ~(gBitTable[gActiveBattler] << 16); + if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram16020arr(i) == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_WRAPPED; } - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; - - MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr); - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; - gProtectStructs[gActiveBank].onlyStruggle = 0; - gProtectStructs[gActiveBank].helpingHand = 0; - gProtectStructs[gActiveBank].bounceMove = 0; - gProtectStructs[gActiveBank].stealMove = 0; - gProtectStructs[gActiveBank].flag0Unknown = 0; - gProtectStructs[gActiveBank].prlzImmobility = 0; - gProtectStructs[gActiveBank].confusionSelfDmg = 0; - gProtectStructs[gActiveBank].notEffective = 0; - gProtectStructs[gActiveBank].chargingTurn = 0; - gProtectStructs[gActiveBank].fleeFlag = 0; - gProtectStructs[gActiveBank].usedImprisionedMove = 0; - gProtectStructs[gActiveBank].loveImmobility = 0; - gProtectStructs[gActiveBank].usedDisabledMove = 0; - gProtectStructs[gActiveBank].usedTauntedMove = 0; - gProtectStructs[gActiveBank].flag2Unknown = 0; - gProtectStructs[gActiveBank].flinchImmobility = 0; - gProtectStructs[gActiveBank].notFirstStrike = 0; - - gDisableStructs[gActiveBank].isFirstTurn= 2; - gLastUsedMove[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gUnknown_02024C4C[gActiveBank] = 0; - gUnknown_02024C2C[gActiveBank] = 0; - gUnknown_02024C5C[gActiveBank] = 0xFF; - - ewram160E8arr2(0, gActiveBank) = 0; - ewram160E8arr2(1, gActiveBank) = 0; - ewram160ACarr2(0, gActiveBank) = 0; - ewram160ACarr2(1, gActiveBank) = 0; - ewram16100arr2(0, gActiveBank) = 0; - ewram16100arr2(1, gActiveBank) = 0; - ewram16100arr2(2, gActiveBank) = 0; - ewram16100arr2(3, gActiveBank) = 0; - - eFlashFireArr.arr[gActiveBank] = 0; - - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; + + MEMSET_ALT(&gDisableStructs[gActiveBattler], 0, 0x1C, i, ptr); + gProtectStructs[gActiveBattler].protected = 0; + gProtectStructs[gActiveBattler].endured = 0; + gProtectStructs[gActiveBattler].onlyStruggle = 0; + gProtectStructs[gActiveBattler].helpingHand = 0; + gProtectStructs[gActiveBattler].bounceMove = 0; + gProtectStructs[gActiveBattler].stealMove = 0; + gProtectStructs[gActiveBattler].flag0Unknown = 0; + gProtectStructs[gActiveBattler].prlzImmobility = 0; + gProtectStructs[gActiveBattler].confusionSelfDmg = 0; + gProtectStructs[gActiveBattler].notEffective = 0; + gProtectStructs[gActiveBattler].chargingTurn = 0; + gProtectStructs[gActiveBattler].fleeFlag = 0; + gProtectStructs[gActiveBattler].usedImprisionedMove = 0; + gProtectStructs[gActiveBattler].loveImmobility = 0; + gProtectStructs[gActiveBattler].usedDisabledMove = 0; + gProtectStructs[gActiveBattler].usedTauntedMove = 0; + gProtectStructs[gActiveBattler].flag2Unknown = 0; + gProtectStructs[gActiveBattler].flinchImmobility = 0; + gProtectStructs[gActiveBattler].notFirstStrike = 0; + + gDisableStructs[gActiveBattler].isFirstTurn= 2; + gLastUsedMove[gActiveBattler] = 0; + gLastLandedMoves[gActiveBattler] = 0; + gLastHitByType[gActiveBattler] = 0; + gUnknown_02024C4C[gActiveBattler] = 0; + gUnknown_02024C2C[gActiveBattler] = 0; + gLastHitBy[gActiveBattler] = 0xFF; + + ewram160E8arr2(0, gActiveBattler) = 0; + ewram160E8arr2(1, gActiveBattler) = 0; + ewram160ACarr2(0, gActiveBattler) = 0; + ewram160ACarr2(1, gActiveBattler) = 0; + ewram16100arr2(0, gActiveBattler) = 0; + ewram16100arr2(1, gActiveBattler) = 0; + ewram16100arr2(2, gActiveBattler) = 0; + ewram16100arr2(3, gActiveBattler) = 0; + + eFlashFireArr.arr[gActiveBattler] = 0; + + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; } void bc_8012FAC(void) @@ -3883,16 +3883,16 @@ void bc_8012FAC(void) switch (gBattleCommunication[0]) { case 0: - gActiveBank = gBattleCommunication[1]; + gActiveBattler = gBattleCommunication[1]; EmitGetAttributes(0, 0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[0]++; break; case 1: if (gBattleExecBuffer == 0) { gBattleCommunication[1]++; - if (gBattleCommunication[1] == gNoOfAllBanks) + if (gBattleCommunication[1] == gBattlersCount) gBattleMainFunc = BattlePrepIntroSlide; else gBattleCommunication[0] = 0; @@ -3905,9 +3905,9 @@ static void BattlePrepIntroSlide(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); EmitIntroSlide(0, gBattleTerrain); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleMainFunc = sub_8011384; gBattleCommunication[0] = 0; gBattleCommunication[1] = 0; @@ -3921,63 +3921,63 @@ void sub_8011384(void) if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) - && GetBankSide(gActiveBank) == 0) + && GetBattlerSide(gActiveBattler) == 0) { - MEMSET_ALT(&gBattleMons[gActiveBank], 0, 0x58, i, ptr); + MEMSET_ALT(&gBattleMons[gActiveBattler], 0, 0x58, i, ptr); } else { u8 r0; - MEMSET_ALT(&gBattleMons[gActiveBank], gBattleBufferB[gActiveBank][4 + i], 0x58, i, ptr); - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); - r0 = GetBankSide(gActiveBank); - ewram160BC[r0] = gBattleMons[gActiveBank].hp; + MEMSET_ALT(&gBattleMons[gActiveBattler], gBattleBufferB[gActiveBattler][4 + i], 0x58, i, ptr); + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility); + r0 = GetBattlerSide(gActiveBattler); + ewram160BC[r0] = gBattleMons[gActiveBattler].hp; for (i = 0; i < 8; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - gBattleMons[gActiveBank].status2 = 0; + gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].status2 = 0; } - if (GetBankIdentity(gActiveBank) == 0) + if (GetBattlerPosition(gActiveBattler) == 0) { EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (GetBankIdentity(gActiveBank) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - if (GetBankSide(gActiveBank) == 1 + if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } else { - if (GetBankSide(gActiveBank) == 1 + if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); EmitLoadPokeSprite(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) == 2 - || GetBankIdentity(gActiveBank) == 3) + if (GetBattlerPosition(gActiveBattler) == 2 + || GetBattlerPosition(gActiveBattler) == 3) { EmitTrainerThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } @@ -4009,9 +4009,9 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(1); + gActiveBattler = GetBattlerAtPosition(1); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); for (i = 0; i < 6; i++) { @@ -4027,9 +4027,9 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleMainFunc = bc_battle_begin_message; } @@ -4062,8 +4062,8 @@ void bc_battle_begin_message(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByIdentity(1); - PrepareStringBattle(0, gActiveBank); + gActiveBattler = GetBattlerAtPosition(1); + PrepareStringBattle(0, gActiveBattler); gBattleMainFunc = sub_8011800; } } @@ -4081,7 +4081,7 @@ void sub_8011800(void) { if (gBattleExecBuffer == 0) { - PrepareStringBattle(1, GetBankByIdentity(1)); + PrepareStringBattle(1, GetBattlerAtPosition(1)); gBattleMainFunc = sub_8011834; } } @@ -4090,18 +4090,18 @@ void sub_8011834(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankIdentity(gActiveBank) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && GetBankIdentity(gActiveBank) == 3) + && GetBattlerPosition(gActiveBattler) == 3) { EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } gBattleMainFunc = bc_801362C; @@ -4112,11 +4112,11 @@ void bc_801362C(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == 1 + if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } gBattleMainFunc = sub_8011970; } @@ -4133,7 +4133,7 @@ void sub_8011970(void) if (gBattleExecBuffer == 0) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(1, GetBankByIdentity(0)); + PrepareStringBattle(1, GetBattlerAtPosition(0)); gBattleMainFunc = sub_80119B4; } } @@ -4142,18 +4142,18 @@ void sub_80119B4(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankIdentity(gActiveBank) == 0) + if (GetBattlerPosition(gActiveBattler) == 0) { EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && GetBankIdentity(gActiveBank) == 2) + && GetBattlerPosition(gActiveBattler) == 2) { EmitTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } ewram16058 = 0; @@ -4167,12 +4167,12 @@ void unref_sub_8011A68(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) { - EmitSendOutPoke(0, gBattlePartyID[gActiveBank], 0); - MarkBufferBankForExecution(gActiveBank); + EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], 0); + MarkBufferBankForExecution(gActiveBattler); } } ewram16058 = 0; @@ -4192,11 +4192,11 @@ void BattleBeginFirstTurn(void) { if (ewram16058 == 0) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) gBanksByTurnOrder[i] = i; - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattlersCount - 1; i++) { - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattlersCount; j++) { if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 1) != 0) SwapTurnOrder(i, j); @@ -4208,7 +4208,7 @@ void BattleBeginFirstTurn(void) ewram160E6 = 1; return; } - while (ewram16058 < gNoOfAllBanks) + while (ewram16058 < gBattlersCount) { if (AbilityBattleEffects(0, gBanksByTurnOrder[ewram16058], 0, 0, 0) != 0) r9++; @@ -4220,7 +4220,7 @@ void BattleBeginFirstTurn(void) return; if (AbilityBattleEffects(11, 0, 0, 0, 0) != 0) return; - while (ewram160F9 < gNoOfAllBanks) + while (ewram160F9 < gBattlersCount) { if (ItemBattleEffects(0, gBanksByTurnOrder[ewram160F9], 0) != 0) r9++; @@ -4229,7 +4229,7 @@ void BattleBeginFirstTurn(void) return; } // Absolutely pointless for-loop that somehow doesn't get optimized out - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) ; for (i = 0; i < 4; i++) { @@ -4239,12 +4239,12 @@ void BattleBeginFirstTurn(void) } TurnValuesCleanUp(0); SpecialStatusesClear(); - ewram160A6 = gAbsentBankFlags; + ewram160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; ResetSentPokesToOpponentValue(); for (i = 0; i < 8; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) gBattleMons[i].status2 &= ~8; ewram16000 = 0; ewram16001 = 0; @@ -4253,7 +4253,7 @@ void BattleBeginFirstTurn(void) ewram1600C = 0; ewram16059 = 0; ewram1600E = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gRandomTurnNumber = Random(); } } @@ -4267,7 +4267,7 @@ void bc_8013B1C(void) gBattleMainFunc = BattleTurnPassed; for (i = 0; i < 8; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { gBattleMons[i].status2 &= ~8; if ((gBattleMons[i].status1 & 7) && (gBattleMons[i].status2 & 0x1000)) @@ -4278,7 +4278,7 @@ void bc_8013B1C(void) ewram16110 = 0; ewram16111 = 0; ewram1600E = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; } } @@ -4308,7 +4308,7 @@ void BattleTurnPassed(void) ewram160A1 = 0; ewram1600C = 0; gBattleMoveDamage = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; for (i = 0; i < 5; i++) gBattleCommunication[i] = 0; if (gBattleOutcome != 0) @@ -4319,14 +4319,14 @@ void BattleTurnPassed(void) } if (gBattleResults.battleTurnCounter < 0xFF) gBattleResults.battleTurnCounter++; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { gActionForBanks[i] = 0xFF; gChosenMovesByBanks[i] = 0; } for (i = 0; i < 4; i++) ewram16068arr(i) = 6; - ewram160A6 = gAbsentBankFlags; + ewram160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; gRandomTurnNumber = Random(); } @@ -4337,21 +4337,21 @@ u8 CanRunFromBattle(void) u8 r6; s32 i; - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - r2 = gEnigmaBerries[gActiveBank].holdEffect; + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) + r2 = gEnigmaBerries[gActiveBattler].holdEffect; else - r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); - gStringBank = gActiveBank; + r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); + gStringBank = gActiveBattler; if (r2 == HOLD_EFFECT_CAN_ALWAYS_RUN) return 0; if (gBattleTypeFlags & BATTLE_TYPE_LINK) return 0; - if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY) + if (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY) return 0; - r6 = GetBankSide(gActiveBank); - for (i = 0; i < gNoOfAllBanks; i++) + r6 = GetBattlerSide(gActiveBattler); + for (i = 0; i < gBattlersCount; i++) { - if (r6 != GetBankSide(i) + if (r6 != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_SHADOW_TAG) { ewram16003 = i; @@ -4359,10 +4359,10 @@ u8 CanRunFromBattle(void) gBattleCommunication[5] = 2; return 2; } - if (r6 != GetBankSide(i) - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE - && gBattleMons[gActiveBank].type1 != 2 - && gBattleMons[gActiveBank].type2 != 2 + if (r6 != GetBattlerSide(i) + && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE + && gBattleMons[gActiveBattler].type1 != 2 + && gBattleMons[gActiveBattler].type2 != 2 && gBattleMons[i].ability == ABILITY_ARENA_TRAP) { ewram16003 = i; @@ -4371,15 +4371,15 @@ u8 CanRunFromBattle(void) return 2; } } - i = AbilityBattleEffects(15, gActiveBank, ABILITY_MAGNET_PULL, 0, 0); - if (i != 0 && (gBattleMons[gActiveBank].type1 == 8 || gBattleMons[gActiveBank].type2 == 8)) + i = AbilityBattleEffects(15, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0); + if (i != 0 && (gBattleMons[gActiveBattler].type1 == 8 || gBattleMons[gActiveBattler].type2 == 8)) { ewram16003 = i - 1; gLastUsedAbility = gBattleMons[i - 1].ability; gBattleCommunication[5] = 2; return 2; } - if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) || (gStatuses3[gActiveBank] & STATUS3_ROOTED)) + if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) || (gStatuses3[gActiveBattler] & STATUS3_ROOTED)) { gBattleCommunication[5] = 0; return 1; @@ -4400,7 +4400,7 @@ void sub_8012258(u8 a) for (i = 0; i < 3; i++) gUnknown_02038470[i] = ewram1606Carr(i, a); - r4 = pokemon_order_func(gBattlePartyID[a]); + r4 = pokemon_order_func(gBattlerPartyIndexes[a]); r1 = pokemon_order_func(ewram16068arr(a)); sub_8094C98(r4, r1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -4428,41 +4428,41 @@ void sub_8012324(void) gBattleCommunication[4] = 0; // inverted loop //_0801234C - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - r5 = GetBankIdentity(gActiveBank); - switch (gBattleCommunication[gActiveBank]) + r5 = GetBattlerPosition(gActiveBattler); + switch (gBattleCommunication[gActiveBattler]) { case 0: - ewram16068arr(gActiveBank) = 6; + ewram16068arr(gActiveBattler) = 6; if (!(gBattleTypeFlags & 0x40) && (r5 & 2) - && !(ewram160A6 & gBitTable[GetBankByIdentity(r5 ^ 2)]) - && gBattleCommunication[GetBankByIdentity(r5)] != 4) + && !(ewram160A6 & gBitTable[GetBattlerAtPosition(r5 ^ 2)]) + && gBattleCommunication[GetBattlerAtPosition(r5)] != 4) break; //_080123F8 - if (ewram160A6 & gBitTable[gActiveBank]) + if (ewram160A6 & gBitTable[gActiveBattler]) { - gActionForBanks[gActiveBank] = 13; + gActionForBanks[gActiveBattler] = 13; if (!(gBattleTypeFlags & 0x40)) - gBattleCommunication[gActiveBank] = 4; + gBattleCommunication[gActiveBattler] = 4; //_08012454 else - gBattleCommunication[gActiveBank] = 3; + gBattleCommunication[gActiveBattler] = 3; break; } //_08012468 - if ((gBattleMons[gActiveBank].status2 & 0x1000) - || (gBattleMons[gActiveBank].status2 & 0x10000000)) + if ((gBattleMons[gActiveBattler].status2 & 0x1000) + || (gBattleMons[gActiveBattler].status2 & 0x10000000)) { - gActionForBanks[gActiveBank] = 0; - gBattleCommunication[gActiveBank] = 3; + gActionForBanks[gActiveBattler] = 0; + gBattleCommunication[gActiveBattler] = 3; } else { Emitcmd18(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[gActiveBank]++; + MarkBufferBankForExecution(gActiveBattler); + gBattleCommunication[gActiveBattler]++; } break; case 1: @@ -4483,18 +4483,18 @@ void sub_8012324(void) ldr r0, _08012340 @ =gBattleCommunication\n\ movs r1, 0\n\ strb r1, [r0, 0x4]\n\ - ldr r0, _08012344 @ =gActiveBank\n\ + ldr r0, _08012344 @ =gActiveBattler\n\ strb r1, [r0]\n\ - ldr r0, _08012348 @ =gNoOfAllBanks\n\ + ldr r0, _08012348 @ =gBattlersCount\n\ bl _08012F74\n\ .align 2, 0\n\ _08012340: .4byte gBattleCommunication\n\ -_08012344: .4byte gActiveBank\n\ -_08012348: .4byte gNoOfAllBanks\n\ +_08012344: .4byte gActiveBattler\n\ +_08012348: .4byte gBattlersCount\n\ _0801234C:\n\ - ldr r4, _08012374 @ =gActiveBank\n\ + ldr r4, _08012374 @ =gActiveBattler\n\ ldrb r0, [r4]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r5, r0, 24\n\ ldr r1, _08012378 @ =gBattleCommunication\n\ @@ -4511,7 +4511,7 @@ _08012368:\n\ ldr r0, [r0]\n\ mov pc, r0\n\ .align 2, 0\n\ -_08012374: .4byte gActiveBank\n\ +_08012374: .4byte gActiveBattler\n\ _08012378: .4byte gBattleCommunication\n\ _0801237C: .4byte _08012380\n\ .align 2, 0\n\ @@ -4525,7 +4525,7 @@ _08012380:\n\ .4byte _08012F38\n\ _0801239C:\n\ ldr r4, _08012434 @ =gSharedMem\n\ - ldr r0, _08012438 @ =gActiveBank\n\ + ldr r0, _08012438 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ ldr r1, _0801243C @ =0x00016068\n\ adds r0, r1\n\ @@ -4545,7 +4545,7 @@ _0801239C:\n\ beq _080123F8\n\ eors r5, r1\n\ adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r2, _08012444 @ =0x000160a6\n\ adds r1, r4, r2\n\ ldrb r1, [r1]\n\ @@ -4559,7 +4559,7 @@ _0801239C:\n\ bne _080123F8\n\ ldr r4, _0801244C @ =gBattleCommunication\n\ adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -4573,7 +4573,7 @@ _080123F8:\n\ adds r0, r3\n\ ldrb r3, [r0]\n\ ldr r1, _08012448 @ =gBitTable\n\ - ldr r4, _08012438 @ =gActiveBank\n\ + ldr r4, _08012438 @ =gActiveBattler\n\ ldrb r2, [r4]\n\ lsls r0, r2, 2\n\ adds r0, r1\n\ @@ -4599,7 +4599,7 @@ _080123F8:\n\ bl _08012F66\n\ .align 2, 0\n\ _08012434: .4byte gSharedMem\n\ -_08012438: .4byte gActiveBank\n\ +_08012438: .4byte gActiveBattler\n\ _0801243C: .4byte 0x00016068\n\ _08012440: .4byte gBattleTypeFlags\n\ _08012444: .4byte 0x000160a6\n\ @@ -4663,7 +4663,7 @@ _080124C4: .4byte gBattleBufferB\n\ _080124C8:\n\ ldr r4, _08012520 @ =gBattleExecBuffer\n\ ldr r1, _08012524 @ =gBitTable\n\ - ldr r3, _08012528 @ =gActiveBank\n\ + ldr r3, _08012528 @ =gActiveBattler\n\ ldrb r5, [r3]\n\ lsls r0, r5, 2\n\ adds r0, r1\n\ @@ -4708,7 +4708,7 @@ _08012514:\n\ .align 2, 0\n\ _08012520: .4byte gBattleExecBuffer\n\ _08012524: .4byte gBitTable\n\ -_08012528: .4byte gActiveBank\n\ +_08012528: .4byte gActiveBattler\n\ _0801252C: .4byte gActionForBanks\n\ _08012530: .4byte gBattleBufferB\n\ _08012534: .4byte _08012538\n\ @@ -4733,7 +4733,7 @@ _0801256C:\n\ cmp r0, 0\n\ beq _080125D0\n\ ldr r0, _080125B4 @ =gBattleCommunication\n\ - ldr r2, _080125B8 @ =gActiveBank\n\ + ldr r2, _080125B8 @ =gActiveBattler\n\ ldrb r1, [r2]\n\ adds r1, r0\n\ movs r4, 0\n\ @@ -4764,7 +4764,7 @@ _0801256C:\n\ bl _08012F90\n\ .align 2, 0\n\ _080125B4: .4byte gBattleCommunication\n\ -_080125B8: .4byte gActiveBank\n\ +_080125B8: .4byte gActiveBattler\n\ _080125BC: .4byte gSharedMem\n\ _080125C0: .4byte 0x00016060\n\ _080125C4: .4byte 0x00016094\n\ @@ -4772,7 +4772,7 @@ _080125C8: .4byte 0x00016010\n\ _080125CC: .4byte gBattleBufferB\n\ _080125D0:\n\ ldr r1, _080125FC @ =gDisableStructs\n\ - ldr r5, _08012600 @ =gActiveBank\n\ + ldr r5, _08012600 @ =gActiveBattler\n\ ldrb r4, [r5]\n\ lsls r0, r4, 3\n\ subs r0, r4\n\ @@ -4793,7 +4793,7 @@ _080125D0:\n\ bl _08012F90\n\ .align 2, 0\n\ _080125FC: .4byte gDisableStructs\n\ -_08012600: .4byte gActiveBank\n\ +_08012600: .4byte gActiveBattler\n\ _08012604: .4byte gChosenMovesByBanks\n\ _08012608: .4byte gBattleCommunication\n\ _0801260C:\n\ @@ -4902,12 +4902,12 @@ _080126D8: .4byte gUnknown_02024C1C\n\ _080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed\n\ _080126E0:\n\ ldr r3, _08012738 @ =gSharedMem\n\ - ldr r5, _0801273C @ =gActiveBank\n\ + ldr r5, _0801273C @ =gActiveBattler\n\ ldrb r0, [r5]\n\ ldr r4, _08012740 @ =0x00016064\n\ adds r1, r0, r4\n\ adds r1, r3\n\ - ldr r2, _08012744 @ =gBattlePartyID\n\ + ldr r2, _08012744 @ =gBattlerPartyIndexes\n\ lsls r0, 1\n\ adds r0, r2\n\ ldrh r0, [r0]\n\ @@ -4947,9 +4947,9 @@ _08012722:\n\ b _0801286C\n\ .align 2, 0\n\ _08012738: .4byte gSharedMem\n\ -_0801273C: .4byte gActiveBank\n\ +_0801273C: .4byte gActiveBattler\n\ _08012740: .4byte 0x00016064\n\ -_08012744: .4byte gBattlePartyID\n\ +_08012744: .4byte gBattlerPartyIndexes\n\ _08012748: .4byte gBattleMons\n\ _0801274C: .4byte 0x0400e000\n\ _08012750: .4byte gStatuses3\n\ @@ -4994,7 +4994,7 @@ _08012758:\n\ cmp r0, 0x1A\n\ bne _080127E0\n\ _080127A8:\n\ - ldr r5, _08012808 @ =gActiveBank\n\ + ldr r5, _08012808 @ =gActiveBattler\n\ ldrb r1, [r5]\n\ movs r0, 0\n\ str r0, [sp]\n\ @@ -5030,7 +5030,7 @@ _080127E0:\n\ lsrs r1, 24\n\ ldr r0, _08012810 @ =gLastUsedAbility\n\ ldrb r3, [r0]\n\ - ldr r0, _08012808 @ =gActiveBank\n\ + ldr r0, _08012808 @ =gActiveBattler\n\ ldrb r2, [r0]\n\ lsls r0, r2, 1\n\ adds r0, r2\n\ @@ -5042,12 +5042,12 @@ _080127E0:\n\ bl EmitChoosePokemon\n\ b _0801289E\n\ .align 2, 0\n\ -_08012808: .4byte gActiveBank\n\ +_08012808: .4byte gActiveBattler\n\ _0801280C: .4byte gBattleMons\n\ _08012810: .4byte gLastUsedAbility\n\ _08012814: .4byte gSharedMem + 0x1606C\n\ _08012818:\n\ - ldr r0, _08012830 @ =gActiveBank\n\ + ldr r0, _08012830 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ mov r8, r0\n\ cmp r1, 0x2\n\ @@ -5060,7 +5060,7 @@ _08012818:\n\ ldr r4, _0801283C @ =0x00016068\n\ b _08012854\n\ .align 2, 0\n\ -_08012830: .4byte gActiveBank\n\ +_08012830: .4byte gActiveBattler\n\ _08012834: .4byte gActionForBanks\n\ _08012838: .4byte gSharedMem\n\ _0801283C: .4byte 0x00016068\n\ @@ -5098,7 +5098,7 @@ _08012878: .4byte gSharedMem\n\ _0801287C: .4byte 0x00016069\n\ _08012880: .4byte 0x0001606c\n\ _08012884:\n\ - ldr r0, _080128A8 @ =gActiveBank\n\ + ldr r0, _080128A8 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ lsls r0, r1, 1\n\ adds r0, r1\n\ @@ -5111,12 +5111,12 @@ _08012884:\n\ movs r3, 0\n\ bl EmitChoosePokemon\n\ _0801289E:\n\ - ldr r0, _080128A8 @ =gActiveBank\n\ + ldr r0, _080128A8 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ bl MarkBufferBankForExecution\n\ b _08012968\n\ .align 2, 0\n\ -_080128A8: .4byte gActiveBank\n\ +_080128A8: .4byte gActiveBattler\n\ _080128AC: .4byte gSharedMem + 0x1606C\n\ _080128B0:\n\ bl PlayerPartyAndPokemonStorageFull\n\ @@ -5124,7 +5124,7 @@ _080128B0:\n\ cmp r0, 0\n\ beq _08012968\n\ ldr r1, _080128EC @ =gUnknown_02024C1C\n\ - ldr r2, _080128F0 @ =gActiveBank\n\ + ldr r2, _080128F0 @ =gActiveBattler\n\ ldrb r0, [r2]\n\ lsls r0, 2\n\ adds r0, r1\n\ @@ -5150,14 +5150,14 @@ _080128B0:\n\ b _08012F90\n\ .align 2, 0\n\ _080128EC: .4byte gUnknown_02024C1C\n\ -_080128F0: .4byte gActiveBank\n\ +_080128F0: .4byte gActiveBattler\n\ _080128F4: .4byte BattleScript_PrintFullBox\n\ _080128F8: .4byte gBattleCommunication\n\ _080128FC: .4byte gSharedMem\n\ _08012900: .4byte 0x00016060\n\ _08012904: .4byte 0x00016094\n\ _08012908:\n\ - ldr r4, _08012924 @ =gActiveBank\n\ + ldr r4, _08012924 @ =gActiveBattler\n\ ldrb r0, [r4]\n\ lsls r1, r0, 1\n\ adds r1, r0\n\ @@ -5169,7 +5169,7 @@ _08012908:\n\ bl MarkBufferBankForExecution\n\ b _08012968\n\ .align 2, 0\n\ -_08012924: .4byte gActiveBank\n\ +_08012924: .4byte gActiveBattler\n\ _08012928: .4byte gSharedMem + 0x1606C\n\ _0801292C:\n\ ldr r4, _08012964 @ =gBattleCommunication\n\ @@ -5180,12 +5180,12 @@ _0801292C:\n\ movs r0, 0x6\n\ strb r0, [r1]\n\ ldrb r0, [r3]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x2\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -5206,7 +5206,7 @@ _08012968:\n\ cmp r0, 0x8\n\ bne _080129A8\n\ ldr r0, _08012998 @ =gBattleBufferB\n\ - ldr r4, _0801299C @ =gActiveBank\n\ + ldr r4, _0801299C @ =gActiveBattler\n\ ldrb r1, [r4]\n\ lsls r1, 9\n\ adds r0, 0x1\n\ @@ -5223,7 +5223,7 @@ _08012968:\n\ .align 2, 0\n\ _08012994: .4byte gBattleTypeFlags\n\ _08012998: .4byte gBattleBufferB\n\ -_0801299C: .4byte gActiveBank\n\ +_0801299C: .4byte gActiveBattler\n\ _080129A0: .4byte BattleScript_PrintCantRunFromTrainer\n\ _080129A4: .4byte gBattleCommunication\n\ _080129A8:\n\ @@ -5232,7 +5232,7 @@ _080129A8:\n\ cmp r0, 0\n\ beq _08012A14\n\ ldr r0, _080129F4 @ =gBattleBufferB\n\ - ldr r3, _080129F8 @ =gActiveBank\n\ + ldr r3, _080129F8 @ =gActiveBattler\n\ ldrb r2, [r3]\n\ lsls r1, r2, 9\n\ adds r0, 0x1\n\ @@ -5266,7 +5266,7 @@ _080129CC:\n\ b _08012F90\n\ .align 2, 0\n\ _080129F4: .4byte gBattleBufferB\n\ -_080129F8: .4byte gActiveBank\n\ +_080129F8: .4byte gActiveBattler\n\ _080129FC: .4byte gUnknown_02024C1C\n\ _08012A00: .4byte BattleScript_PrintCantEscapeFromBattle\n\ _08012A04: .4byte gBattleCommunication\n\ @@ -5275,17 +5275,17 @@ _08012A0C: .4byte 0x00016060\n\ _08012A10: .4byte 0x00016094\n\ _08012A14:\n\ ldr r2, _08012A20 @ =gBattleCommunication\n\ - ldr r0, _08012A24 @ =gActiveBank\n\ + ldr r0, _08012A24 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012A20: .4byte gBattleCommunication\n\ -_08012A24: .4byte gActiveBank\n\ +_08012A24: .4byte gActiveBattler\n\ _08012A28:\n\ ldr r4, _08012A6C @ =gBattleExecBuffer\n\ ldr r1, _08012A70 @ =gBitTable\n\ - ldr r3, _08012A74 @ =gActiveBank\n\ + ldr r3, _08012A74 @ =gActiveBattler\n\ ldrb r5, [r3]\n\ lsls r0, r5, 2\n\ adds r0, r1\n\ @@ -5322,7 +5322,7 @@ _08012A62:\n\ .align 2, 0\n\ _08012A6C: .4byte gBattleExecBuffer\n\ _08012A70: .4byte gBitTable\n\ -_08012A74: .4byte gActiveBank\n\ +_08012A74: .4byte gActiveBattler\n\ _08012A78: .4byte gActionForBanks\n\ _08012A7C: .4byte _08012A80\n\ .align 2, 0\n\ @@ -5462,7 +5462,7 @@ _08012BA8: .4byte 0x00016010\n\ _08012BAC: .4byte gBattleCommunication\n\ _08012BB0:\n\ ldr r2, _08012BD8 @ =gBattleBufferB\n\ - ldr r5, _08012BDC @ =gActiveBank\n\ + ldr r5, _08012BDC @ =gActiveBattler\n\ ldrb r4, [r5]\n\ lsls r1, r4, 9\n\ adds r0, r2, 0x1\n\ @@ -5484,12 +5484,12 @@ _08012BCE:\n\ b _08012E3C\n\ .align 2, 0\n\ _08012BD8: .4byte gBattleBufferB\n\ -_08012BDC: .4byte gActiveBank\n\ +_08012BDC: .4byte gActiveBattler\n\ _08012BE0: .4byte gLastUsedItem\n\ _08012BE4: .4byte gBattleCommunication\n\ _08012BE8:\n\ ldr r4, _08012C04 @ =gBattleBufferB\n\ - ldr r7, _08012C08 @ =gActiveBank\n\ + ldr r7, _08012C08 @ =gActiveBattler\n\ ldrb r2, [r7]\n\ lsls r0, r2, 9\n\ adds r1, r4, 0x1\n\ @@ -5505,7 +5505,7 @@ _08012BFE:\n\ b _08012F66\n\ .align 2, 0\n\ _08012C04: .4byte gBattleBufferB\n\ -_08012C08: .4byte gActiveBank\n\ +_08012C08: .4byte gActiveBattler\n\ _08012C0C: .4byte gBattleCommunication\n\ _08012C10:\n\ ldr r0, _08012CC4 @ =gSharedMem\n\ @@ -5615,35 +5615,35 @@ _08012CE0:\n\ orrs r0, r1\n\ str r0, [r2]\n\ ldr r2, _08012CFC @ =gBattleCommunication\n\ - ldr r0, _08012D00 @ =gActiveBank\n\ + ldr r0, _08012D00 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012CF8: .4byte gHitMarker\n\ _08012CFC: .4byte gBattleCommunication\n\ -_08012D00: .4byte gActiveBank\n\ +_08012D00: .4byte gActiveBattler\n\ _08012D04:\n\ ldr r2, _08012D10 @ =gBattleCommunication\n\ - ldr r0, _08012D14 @ =gActiveBank\n\ + ldr r0, _08012D14 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012D10: .4byte gBattleCommunication\n\ -_08012D14: .4byte gActiveBank\n\ +_08012D14: .4byte gActiveBattler\n\ _08012D18:\n\ ldr r2, _08012D24 @ =gBattleCommunication\n\ - ldr r0, _08012D28 @ =gActiveBank\n\ + ldr r0, _08012D28 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012D24: .4byte gBattleCommunication\n\ -_08012D28: .4byte gActiveBank\n\ +_08012D28: .4byte gActiveBattler\n\ _08012D2C:\n\ ldr r2, _08012D50 @ =gBattleBufferB\n\ - ldr r0, _08012D54 @ =gActiveBank\n\ + ldr r0, _08012D54 @ =gActiveBattler\n\ ldrb r4, [r0]\n\ lsls r1, r4, 9\n\ adds r0, r2, 0x1\n\ @@ -5663,17 +5663,17 @@ _08012D4A:\n\ b _08012E3E\n\ .align 2, 0\n\ _08012D50: .4byte gBattleBufferB\n\ -_08012D54: .4byte gActiveBank\n\ +_08012D54: .4byte gActiveBattler\n\ _08012D58: .4byte gBattleCommunication\n\ _08012D5C:\n\ ldr r2, _08012D68 @ =gBattleCommunication\n\ - ldr r0, _08012D6C @ =gActiveBank\n\ + ldr r0, _08012D6C @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012D68: .4byte gBattleCommunication\n\ -_08012D6C: .4byte gActiveBank\n\ +_08012D6C: .4byte gActiveBattler\n\ _08012D70:\n\ ldr r2, _08012D88 @ =gHitMarker\n\ ldr r0, [r2]\n\ @@ -5682,27 +5682,27 @@ _08012D70:\n\ orrs r0, r1\n\ str r0, [r2]\n\ ldr r2, _08012D8C @ =gBattleCommunication\n\ - ldr r0, _08012D90 @ =gActiveBank\n\ + ldr r0, _08012D90 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012D88: .4byte gHitMarker\n\ _08012D8C: .4byte gBattleCommunication\n\ -_08012D90: .4byte gActiveBank\n\ +_08012D90: .4byte gActiveBattler\n\ _08012D94:\n\ ldr r2, _08012DA0 @ =gBattleCommunication\n\ - ldr r0, _08012DA4 @ =gActiveBank\n\ + ldr r0, _08012DA4 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, r2\n\ b _08012E3E\n\ .align 2, 0\n\ _08012DA0: .4byte gBattleCommunication\n\ -_08012DA4: .4byte gActiveBank\n\ +_08012DA4: .4byte gActiveBattler\n\ _08012DA8:\n\ ldr r3, _08012E10 @ =gBattleExecBuffer\n\ ldr r4, _08012E14 @ =gBitTable\n\ - ldr r0, _08012E18 @ =gActiveBank\n\ + ldr r0, _08012E18 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ lsls r0, 2\n\ adds r0, r4\n\ @@ -5735,7 +5735,7 @@ _08012DD2:\n\ bne _08012E06\n\ adds r0, r5, 0\n\ eors r0, r1\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r1, _08012E20 @ =gSharedMem\n\ ldr r2, _08012E24 @ =0x000160a6\n\ adds r1, r2\n\ @@ -5755,7 +5755,7 @@ _08012E06:\n\ .align 2, 0\n\ _08012E10: .4byte gBattleExecBuffer\n\ _08012E14: .4byte gBitTable\n\ -_08012E18: .4byte gActiveBank\n\ +_08012E18: .4byte gActiveBattler\n\ _08012E1C: .4byte gBattleTypeFlags\n\ _08012E20: .4byte gSharedMem\n\ _08012E24: .4byte 0x000160a6\n\ @@ -5764,7 +5764,7 @@ _08012E28:\n\ movs r1, 0x1\n\ bl EmitLinkStandbyMsg\n\ _08012E30:\n\ - ldr r4, _08012E48 @ =gActiveBank\n\ + ldr r4, _08012E48 @ =gActiveBattler\n\ _08012E32:\n\ ldrb r0, [r4]\n\ bl MarkBufferBankForExecution\n\ @@ -5778,12 +5778,12 @@ _08012E3E:\n\ strb r0, [r1]\n\ b _08012F66\n\ .align 2, 0\n\ -_08012E48: .4byte gActiveBank\n\ +_08012E48: .4byte gActiveBattler\n\ _08012E4C: .4byte gBattleCommunication\n\ _08012E50:\n\ ldr r3, _08012E84 @ =gBattleExecBuffer\n\ ldr r1, _08012E88 @ =gBitTable\n\ - ldr r0, _08012E8C @ =gActiveBank\n\ + ldr r0, _08012E8C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ lsls r0, 2\n\ adds r0, r1\n\ @@ -5809,11 +5809,11 @@ _08012E50:\n\ .align 2, 0\n\ _08012E84: .4byte gBattleExecBuffer\n\ _08012E88: .4byte gBitTable\n\ -_08012E8C: .4byte gActiveBank\n\ +_08012E8C: .4byte gActiveBattler\n\ _08012E90: .4byte gBattleCommunication\n\ _08012E94:\n\ ldr r2, _08012EB8 @ =gSharedMem\n\ - ldr r5, _08012EBC @ =gActiveBank\n\ + ldr r5, _08012EBC @ =gActiveBattler\n\ ldrb r1, [r5]\n\ ldr r3, _08012EC0 @ =0x00016060\n\ adds r0, r1, r3\n\ @@ -5831,7 +5831,7 @@ _08012E94:\n\ b _08012F66\n\ .align 2, 0\n\ _08012EB8: .4byte gSharedMem\n\ -_08012EBC: .4byte gActiveBank\n\ +_08012EBC: .4byte gActiveBattler\n\ _08012EC0: .4byte 0x00016060\n\ _08012EC4: .4byte gBattleCommunication\n\ _08012EC8: .4byte 0x00016094\n\ @@ -5887,7 +5887,7 @@ _08012F34: .4byte gBattleScriptingCommandsTable\n\ _08012F38:\n\ ldr r3, _08012FA0 @ =gBattleExecBuffer\n\ ldr r1, _08012FA4 @ =gBitTable\n\ - ldr r0, _08012FA8 @ =gActiveBank\n\ + ldr r0, _08012FA8 @ =gActiveBattler\n\ ldrb r4, [r0]\n\ lsls r0, r4, 2\n\ adds r0, r1\n\ @@ -5910,11 +5910,11 @@ _08012F60:\n\ adds r0, r4, r0\n\ strb r3, [r0]\n\ _08012F66:\n\ - ldr r0, _08012FA8 @ =gActiveBank\n\ + ldr r0, _08012FA8 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ adds r1, 0x1\n\ strb r1, [r0]\n\ - ldr r0, _08012FB0 @ =gNoOfAllBanks\n\ + ldr r0, _08012FB0 @ =gBattlersCount\n\ lsls r1, 24\n\ lsrs r1, 24\n\ _08012F74:\n\ @@ -5944,9 +5944,9 @@ _08012F90:\n\ .align 2, 0\n\ _08012FA0: .4byte gBattleExecBuffer\n\ _08012FA4: .4byte gBitTable\n\ -_08012FA8: .4byte gActiveBank\n\ +_08012FA8: .4byte gActiveBattler\n\ _08012FAC: .4byte gBattleCommunication\n\ -_08012FB0: .4byte gNoOfAllBanks\n\ +_08012FB0: .4byte gBattlersCount\n\ _08012FB4: .4byte gBattleMainFunc\n\ _08012FB8: .4byte SetActionsAndBanksTurnOrder\n\ .syntax divided\n"); @@ -6017,7 +6017,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) } // Only give badge speed boost to the player's mon. - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank1) == 0) + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBattlerSide(bank1) == 0) bank1AdjustedSpeed = (bank1AdjustedSpeed * 110) / 100; if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE) @@ -6045,7 +6045,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) } // Only give badge speed boost to the player's mon. - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank2) == 0) + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBattlerSide(bank2) == 0) { bank2AdjustedSpeed = (bank2AdjustedSpeed * 110) / 100; } @@ -6117,10 +6117,10 @@ void SetActionsAndBanksTurnOrder(void) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBanksByTurnOrder[var] = gActiveBattler; var++; } } @@ -6128,9 +6128,9 @@ void SetActionsAndBanksTurnOrder(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) { var = 5; break; @@ -6141,19 +6141,19 @@ void SetActionsAndBanksTurnOrder(void) { if (gActionForBanks[0] == ACTION_RUN) { - gActiveBank = 0; + gActiveBattler = 0; var = 5; } } if (var == 5) { - gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[0] = gActiveBank; + gActionsByTurnOrder[0] = gActionForBanks[gActiveBattler]; + gBanksByTurnOrder[0] = gActiveBattler; var = 1; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (i != gActiveBank) + if (i != gActiveBattler) { gActionsByTurnOrder[var] = gActionForBanks[i]; gBanksByTurnOrder[var] = i; @@ -6161,32 +6161,32 @@ void SetActionsAndBanksTurnOrder(void) } } gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; - eFocusPunchBank = 0; + eFocusPunchBattler = 0; return; } else { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] == ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBanksByTurnOrder[var] = gActiveBattler; var++; } } - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] != ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBanksByTurnOrder[var] = gActiveBattler; var++; } } - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattlersCount - 1; i++) { - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattlersCount; j++) { u8 bank1 = gBanksByTurnOrder[i]; u8 bank2 = gBanksByTurnOrder[j]; @@ -6204,7 +6204,7 @@ void SetActionsAndBanksTurnOrder(void) } gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; - eFocusPunchBank = 0; + eFocusPunchBattler = 0; } static void TurnValuesCleanUp(bool8 var0) @@ -6212,32 +6212,32 @@ static void TurnValuesCleanUp(bool8 var0) s32 i; u8 *dataPtr; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (var0) { - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; + gProtectStructs[gActiveBattler].protected = 0; + gProtectStructs[gActiveBattler].endured = 0; } else { - dataPtr = (u8*)(&gProtectStructs[gActiveBank]); + dataPtr = (u8*)(&gProtectStructs[gActiveBattler]); for (i = 0; i < sizeof(struct ProtectStruct); i++) dataPtr[i] = 0; - if (gDisableStructs[gActiveBank].isFirstTurn) - gDisableStructs[gActiveBank].isFirstTurn--; + if (gDisableStructs[gActiveBattler].isFirstTurn) + gDisableStructs[gActiveBattler].isFirstTurn--; - if (gDisableStructs[gActiveBank].rechargeCounter) + if (gDisableStructs[gActiveBattler].rechargeCounter) { - gDisableStructs[gActiveBank].rechargeCounter--; - if (gDisableStructs[gActiveBank].rechargeCounter == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gActiveBattler].rechargeCounter--; + if (gDisableStructs[gActiveBattler].rechargeCounter == 0) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_RECHARGE); } } - if (gDisableStructs[gActiveBank].substituteHP == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE); + if (gDisableStructs[gActiveBattler].substituteHP == 0) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_SUBSTITUTE); } gSideTimers[0].followmeTimer = 0; @@ -6246,10 +6246,10 @@ static void TurnValuesCleanUp(bool8 var0) void SpecialStatusesClear(void) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { s32 i; - u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); + u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBattler]); for (i = 0; i < sizeof(struct SpecialStatus); i++) dataPtr[i] = 0; @@ -6260,14 +6260,14 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { if (!(gHitMarker & HITMARKER_RUN)) { - while (eFocusPunchBank < gNoOfAllBanks) + while (eFocusPunchBattler < gBattlersCount) { - gActiveBank = gBankAttacker = eFocusPunchBank; - eFocusPunchBank++; - if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH - && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + gActiveBattler = gBankAttacker = eFocusPunchBattler; + eFocusPunchBattler++; + if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH + && !(gBattleMons[gActiveBattler].status1 & STATUS_SLEEP) && !(gDisableStructs[gBankAttacker].truantCounter) - && !(gProtectStructs[gActiveBank].onlyStruggle)) + && !(gProtectStructs[gActiveBattler].onlyStruggle)) { BattleScriptExecute(BattleScript_FocusPunchSetUp); return; @@ -6300,7 +6300,7 @@ static void RunTurnActionsFunctions(void) gBattleStruct->unk16057 = gCurrentTurnActionNumber; gUnknown_081FA640[gCurrentActionFuncId](); - if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished + if (gCurrentTurnActionNumber >= gBattlersCount) // everyone did their actions, turn finished { gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = gUnknown_081FA678[gBattleOutcome & 0x7F]; @@ -6322,7 +6322,7 @@ void HandleEndTurn_BattleWon(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -6372,7 +6372,7 @@ void HandleEndTurn_BattleLost(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -6408,7 +6408,7 @@ void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -6425,19 +6425,19 @@ void HandleEndTurn_FinishBattle(void) | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_BATTLE_TOWER))) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { if (gBattleResults.poke1Species == SPECIES_NONE) { - gBattleResults.poke1Species = gBattleMons[gActiveBank].species; - StringCopy(gBattleResults.pokeString1, gBattleMons[gActiveBank].nickname); + gBattleResults.poke1Species = gBattleMons[gActiveBattler].species; + StringCopy(gBattleResults.pokeString1, gBattleMons[gActiveBattler].nickname); } else { - gBattleResults.opponentSpecies = gBattleMons[gActiveBank].species; - StringCopy(gBattleResults.pokeString2, gBattleMons[gActiveBank].nickname); + gBattleResults.opponentSpecies = gBattleMons[gActiveBattler].species; + StringCopy(gBattleResults.pokeString2, gBattleMons[gActiveBattler].nickname); } } } @@ -6572,7 +6572,7 @@ void HandleAction_UseMove(void) gCritMultiplier = 1; eDmgMultiplier = 1; ewram160E7 = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker); @@ -6618,16 +6618,16 @@ void HandleAction_UseMove(void) gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; } - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMove = gCurrentMove; else gBattleResults.opponentMove = gCurrentMove; // choose target - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) + && GetBattlerSide(gBankAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { gBankTarget = gSideTimers[side].followmeTarget; @@ -6639,34 +6639,34 @@ void HandleAction_UseMove(void) && gBattleMons[ewram16010arr(gBankAttacker)].ability != ABILITY_LIGHTNING_ROD && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { - side = GetBankSide(gBankAttacker); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + side = GetBattlerSide(gBankAttacker); + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (side != GetBankSide(gActiveBank) - && ewram16010arr(gBankAttacker) != gActiveBank - && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD - && BankGetTurnOrder(gActiveBank) < var) + if (side != GetBattlerSide(gActiveBattler) + && ewram16010arr(gBankAttacker) != gActiveBattler + && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD + && BankGetTurnOrder(gActiveBattler) < var) { - var = BankGetTurnOrder(gActiveBank); + var = BankGetTurnOrder(gActiveBattler); } } if (var == 4) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else @@ -6674,66 +6674,66 @@ void HandleAction_UseMove(void) gBankTarget = ewram16010arr(gBankAttacker); } - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } } else { - gActiveBank = gBanksByTurnOrder[var]; - RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); - gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; - gBankTarget = gActiveBank; + gActiveBattler = gBanksByTurnOrder[var]; + RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); + gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1; + gBankTarget = gActiveBattler; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBankFlags & gBitTable[gBankTarget] - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (gAbsentBattlerFlags & gBitTable[gBankTarget] + && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } else { gBankTarget = ewram16010arr(gBankAttacker); - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankTarget) ^ BIT_FLANK); } } } @@ -6777,7 +6777,7 @@ void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + else if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } @@ -6919,7 +6919,7 @@ _08014844: .4byte gBattlescriptCurrInstr\n\ _08014848: .4byte gBattlescriptsForRunningByItem\n\ _0801484C:\n\ ldrb r0, [r4]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0801486C\n\ @@ -7255,7 +7255,7 @@ bool8 TryRunFromBattle(u8 bank) if (effect) { - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = BATTLE_RAN; } @@ -7268,18 +7268,18 @@ void HandleAction_Run(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattlersCount; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) gBattleOutcome |= BATTLE_LOST; } else { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) gBattleOutcome |= BATTLE_WON; } } @@ -7288,7 +7288,7 @@ void HandleAction_Run(void) } else { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBankAttacker) == B_SIDE_PLAYER) { if (!TryRunFromBattle(gBankAttacker)) // failed to run away { @@ -7308,7 +7308,7 @@ void HandleAction_Run(void) } else { - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = BATTLE_POKE_FLED; } } @@ -7388,7 +7388,7 @@ void HandleAction_SafriZoneRun(void) { gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = BATTLE_RAN; } @@ -7398,7 +7398,7 @@ void HandleAction_Action9(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index f10cd2506..8f5ea7cae 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -98,23 +98,23 @@ enum extern u8 gUnknown_02023A14_50; extern u8 gCritMultiplier; extern s32 gBattleMoveDamage; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gBattleTypeFlags; extern const struct BaseStats gBaseStats[]; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gActiveBank; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; -extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; +extern u8 gBanksByTurnOrder[MAX_BATTLERS_COUNT]; +extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u16 gBattleWeather; extern u8 gStringBank; extern u8 gEffectBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u16 gLastUsedMove[4]; extern u16 gLockedMoves[4]; @@ -132,7 +132,7 @@ extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; extern u32 gHitMarker; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; @@ -142,8 +142,8 @@ extern const u8 gTypeEffectiveness[]; extern u16 gLastUsedItem; extern u16 gBattleMovePower; extern s32 gHpDealt; -extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; -extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; +extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT]; extern const u16 gMissStringIds[]; extern u8 gSentPokesToOpponent[2]; extern u8 gBank1; @@ -192,8 +192,8 @@ void RecordItemBattle(u8 bank, u8 holdEffect); static bool8 IsTwoTurnsMove(u16 move); static void TrySetDestinyBondToHappen(void); static void CheckWonderGuardAndLevitate(void); -u8 GetBankIdentity(u8 bank); -u8 GetBankSide(u8 bank); +u8 GetBattlerPosition(u8 bank); +u8 GetBattlerSide(u8 bank); u8 GetBattleBank(u8 bankValue); s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def); static u8 AttacksThisTurn(u8 bank, u16 move); //Note: returns 1 if it's a charging turn, otherwise 2 @@ -212,7 +212,7 @@ u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID); u16 SpeciesToNationalPokedexNum(u16 species); u8 sub_803FC34(u8 bank); u16 sub_803FBFC(u8 a); -u8 GetBankByIdentity(u8 ID); +u8 GetBattlerAtPosition(u8 ID); void sub_8012258(u8); //MonTryLearningNewMove teach poke a move u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); @@ -1119,7 +1119,7 @@ static void atk00_attackcanceler(void) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } @@ -1136,7 +1136,7 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; return; default: - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } } @@ -1152,7 +1152,7 @@ static void atk00_attackcanceler(void) return; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { @@ -1178,7 +1178,7 @@ static void atk00_attackcanceler(void) && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) { CancelMultiTurnMoves(gBankAttacker); - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 1; @@ -1193,7 +1193,7 @@ static void atk00_attackcanceler(void) static void JumpIfMoveFailed(u8 adder, u16 move) { const u8 *BS_ptr = gBattlescriptCurrInstr + adder; - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; @@ -1212,7 +1212,7 @@ static void atk40_jumpifaffectedbyprotect(void) { if (TARGET_PROTECT_AFFECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(5, 0); gBattleCommunication[6] = 1; } @@ -1227,7 +1227,7 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move) bool8 affected = FALSE; if (TARGET_PROTECT_AFFECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); gBattleCommunication[6] = 1; affected = TRUE; @@ -1245,7 +1245,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1254,7 +1254,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1263,7 +1263,7 @@ static bool8 AccuracyCalcHelper(u16 move) if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1359,7 +1359,7 @@ static void atk01_accuracycheck(void) // final calculation if ((Random() % 100 + 1) > calc) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (gBattleMoves[move].target == 0x8 || gBattleMoves[move].target == 0x20)) gBattleCommunication[6] = 2; @@ -1421,7 +1421,7 @@ static void atk03_ppreduce(void) if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); MarkBufferBankForExecution(gBankAttacker); } @@ -1470,7 +1470,7 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 side_hword = gSideAffecting[GetBankIdentity(gBankTarget) & 1]; + u16 side_hword = gSideAffecting[GetBattlerPosition(gBankTarget) & 1]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, side_hword, gDynamicBasePower, gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); @@ -1486,7 +1486,7 @@ static void atk05_damagecalc(void) void AI_CalcDmg(u8 BankAtk, u8 BankDef) { - u16 side_hword = gSideAffecting[GetBankIdentity(BankDef) & 1]; + u16 side_hword = gSideAffecting[GetBattlerPosition(BankDef) & 1]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[BankAtk], &gBattleMons[BankDef], gCurrentMove, side_hword, gDynamicBasePower, gBattleStruct->dynamicMoveType, BankAtk, BankDef); @@ -1508,26 +1508,26 @@ static void ModulateDmgByType(u8 multiplier) switch (multiplier) { case 0: //no effect - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case 5: //not very effecting - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_NOTVERYEFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case 20: //super effective - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1554,7 +1554,7 @@ static void atk06_typecalc(void) if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = move_type; @@ -1587,17 +1587,17 @@ static void atk06_typecalc(void) } if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 - && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].notEffective = 1; } gBattlescriptCurrInstr++; @@ -1637,14 +1637,14 @@ static void CheckWonderGuardAndLevitate(void) //check no effect if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].notEffective = 1; } if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].notEffective = 1; } @@ -1685,26 +1685,26 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c switch (multiplier) { case 0: //no effect - *flags |= MOVESTATUS_NOTAFFECTED; - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case 5: //not very effecting - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_SUPEREFFECTIVE) - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (*flags & MOVE_RESULT_SUPER_EFFECTIVE) + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - *flags |= MOVESTATUS_NOTVERYEFFECTIVE; + *flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case 20: //super effective - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_NOTVERYEFFECTIVE) - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - *flags |= MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1730,7 +1730,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) if (gBattleMons[bank_def].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { - flags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); } else { @@ -1758,12 +1758,12 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def) } } - if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_MISSED) && + if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) && AttacksThisTurn(bank_atk, move) == 2 && - (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && + (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) { - flags |= MOVESTATUS_MISSED; + flags |= MOVE_RESULT_MISSED; } return flags; } @@ -1780,7 +1780,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) move_type = gBattleMoves[move].type; if (ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) - flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; + flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE; else { while (gTypeEffectiveness[i]!= TYPE_ENDTABLE) @@ -1803,9 +1803,9 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) } } if (ability == ABILITY_WONDER_GUARD - && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) - flags |= MOVESTATUS_NOTAFFECTED; + flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; return flags; } @@ -1863,12 +1863,12 @@ static void atk07_adjustnormaldamage(void) if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -1910,12 +1910,12 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -1942,9 +1942,9 @@ static void atk09_attackanimation(void) gBattlescriptCurrInstr++; return; } - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker]); gBattleStruct->animTurn += 1; @@ -1971,13 +1971,13 @@ static void atk0B_healthbarupdate(void) if (gBattleExecBuffer) return; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - PrepareStringBattle(0x80, gActiveBank); + PrepareStringBattle(0x80, gActiveBattler); } else { @@ -1997,9 +1997,9 @@ static void atk0B_healthbarupdate(void) */ EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); - if (GetBankSide(gActiveBank) == SIDE_PLAYER && gBattleMoveDamage > 0) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; } } @@ -2021,27 +2021,27 @@ static void atk0C_datahpupdate(void) else moveType = gBattleMoves[gCurrentMove].type; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage) + if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = gBattleMoveDamage; - gDisableStructs[gActiveBank].substituteHP -= gBattleMoveDamage; + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gBattleMoveDamage; + gDisableStructs[gActiveBattler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = gDisableStructs[gActiveBank].substituteHP; - gHpDealt = gDisableStructs[gActiveBank].substituteHP; - gDisableStructs[gActiveBank].substituteHP = 0; + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gDisableStructs[gActiveBattler].substituteHP; + gHpDealt = gDisableStructs[gActiveBattler].substituteHP; + gDisableStructs[gActiveBattler].substituteHP = 0; } // check substitute fading - if (gDisableStructs[gActiveBank].substituteHP == 0) + if (gDisableStructs[gActiveBattler].substituteHP == 0) { gBattlescriptCurrInstr += 2; BattleScriptPushCursor(); @@ -2054,9 +2054,9 @@ static void atk0C_datahpupdate(void) gHitMarker &= ~(HITMARKER_IGNORE_SUBSTITUTE); if (gBattleMoveDamage < 0) // hp goes up { - gBattleMons[gActiveBank].hp -= gBattleMoveDamage; - if (gBattleMons[gActiveBank].hp > gBattleMons[gActiveBank].maxHP) - gBattleMons[gActiveBank].hp = gBattleMons[gActiveBank].maxHP; + gBattleMons[gActiveBattler].hp -= gBattleMoveDamage; + if (gBattleMons[gActiveBattler].hp > gBattleMons[gActiveBattler].maxHP) + gBattleMons[gActiveBattler].hp = gBattleMons[gActiveBattler].maxHP; } else // hp goes down @@ -2067,68 +2067,68 @@ static void atk0C_datahpupdate(void) } else { - gTakenDmg[gActiveBank] += gBattleMoveDamage; + gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBank] = gBankAttacker; + gTakenDmgBanks[gActiveBattler] = gBankAttacker; else - gTakenDmgBanks[gActiveBank] = gBankTarget; + gTakenDmgBanks[gActiveBattler] = gBankTarget; } - if (gBattleMons[gActiveBank].hp > gBattleMoveDamage) + if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) { - gBattleMons[gActiveBank].hp -= gBattleMoveDamage; + gBattleMons[gActiveBattler].hp -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - gHpDealt = gBattleMons[gActiveBank].hp; - gBattleMons[gActiveBank].hp = 0; + gHpDealt = gBattleMons[gActiveBattler].hp; + gBattleMons[gActiveBattler].hp = 0; } - if (!gSpecialStatuses[gActiveBank].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) - gSpecialStatuses[gActiveBank].moveturnLostHP = gHpDealt; + if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt; if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) { - gProtectStructs[gActiveBank].physicalDmg = gHpDealt; - gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHpDealt; + gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; + gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBank].physicalBank = gBankAttacker; - gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker; + gProtectStructs[gActiveBattler].physicalBank = gBankAttacker; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankAttacker; } else { - gProtectStructs[gActiveBank].physicalBank = gBankTarget; - gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankTarget; + gProtectStructs[gActiveBattler].physicalBank = gBankTarget; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankTarget; } } else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) { - gProtectStructs[gActiveBank].specialDmg = gHpDealt; - gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHpDealt; + gProtectStructs[gActiveBattler].specialDmg = gHpDealt; + gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBank].specialBank = gBankAttacker; - gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker; + gProtectStructs[gActiveBattler].specialBank = gBankAttacker; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankAttacker; } else { - gProtectStructs[gActiveBank].specialBank = gBankTarget; - gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankTarget; + gProtectStructs[gActiveBattler].specialBank = gBankTarget; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBankTarget; } } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBufferBankForExecution(gActiveBattler); } } else { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF; + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = 0xFFFF; } gBattlescriptCurrInstr += 2; } @@ -2137,7 +2137,7 @@ static void atk0D_critmessage(void) { if (gBattleExecBuffer == 0) { - if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { PrepareStringBattle(0xD9, gBankAttacker); gBattleCommunication[MSG_DISPLAY] = 1; @@ -2151,41 +2151,41 @@ static void atk0E_effectivenesssound(void) if (gBattleExecBuffer) return; - gActiveBank = gBankTarget; - if (!(gBattleMoveFlags & MOVESTATUS_MISSED)) + gActiveBattler = gBankTarget; + if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { - u8 flag = ~MOVESTATUS_MISSED; - switch (gBattleMoveFlags & flag) + u8 flag = ~MOVE_RESULT_MISSED; + switch (gMoveResultFlags & flag) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; - case MOVESTATUS_NOTAFFECTED: - case MOVESTATUS_FAILED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: + case MOVE_RESULT_FAILED: break; - case MOVESTATUS_ENDURED: - case MOVESTATUS_ONEHITKO: - case MOVESTATUS_HUNGON: + case MOVE_RESULT_FOE_ENDURED: + case MOVE_RESULT_ONE_HIT_KO: + case MOVE_RESULT_FOE_HUNG_ON: default: - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { EmitEffectivenessSound(0, 14); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) + else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { EmitEffectivenessSound(0, 12); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) + else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { EmitEffectivenessSound(0, 13); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } break; } @@ -2200,7 +2200,7 @@ static void atk0F_resultmessage(void) if (gBattleExecBuffer) return; - if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2)) + if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) { stringId = gMissStringIds[gBattleCommunication[6]]; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2208,64 +2208,64 @@ static void atk0F_resultmessage(void) else { gBattleCommunication[MSG_DISPLAY] = 1; - switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: stringId = STRINGID_SUPEREFFECTIVE; break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: stringId = STRINGID_NOTVERYEFFECTIVE; break; - case MOVESTATUS_ONEHITKO: + case MOVE_RESULT_ONE_HIT_KO: stringId = STRINGID_ONEHITKO; break; - case MOVESTATUS_ENDURED: + case MOVE_RESULT_FOE_ENDURED: stringId = STRINGID_PKMNENDUREDHIT; break; - case MOVESTATUS_FAILED: + case MOVE_RESULT_FAILED: stringId = STRINGID_BUTITFAILED; break; - case MOVESTATUS_NOTAFFECTED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: stringId = STRINGID_ITDOESNTAFFECT; break; - case MOVESTATUS_HUNGON: + case MOVE_RESULT_FOE_HUNG_ON: gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; default: - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) { stringId = STRINGID_ITDOESNTAFFECT; } - else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) + else if (gMoveResultFlags & MOVE_RESULT_ONE_HIT_KO) { - gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO); - gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE); - gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_ONE_HIT_KO); + gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_ENDURED) + else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED) { - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_EnduredMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_HUNGON) + else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_FAILED) + else if (gMoveResultFlags & MOVE_RESULT_FAILED) { stringId = STRINGID_BUTITFAILED; } @@ -2295,9 +2295,9 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitPrintStringPlayerOnly(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2341,9 +2341,9 @@ static void atk14_printselectionstringfromtable(void) { u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); // FIXME ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitPrintStringPlayerOnly(0, *(u16*)ptr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2352,7 +2352,7 @@ static void atk14_printselectionstringfromtable(void) u8 BankGetTurnOrder(u8 bank) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBanksByTurnOrder[i] == bank) break; @@ -2387,7 +2387,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) {gBattlescriptCurrInstr++; return;} - if (gSideAffecting[GetBankIdentity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && + if (gSideAffecting[GetBattlerPosition(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) {gBattlescriptCurrInstr++; return;} @@ -2406,12 +2406,12 @@ void SetMoveEffect(bool8 primary, u8 certainArg) //check active uproar if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); gActiveBank++) {} + for (gActiveBattler = 0; gActiveBattler < gBattlersCount && !(gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR); gActiveBattler++) {} } else - gActiveBank = gNoOfAllBanks; + gActiveBattler = gBattlersCount; if (gBattleMons[gEffectBank].status1) {break;} - if (gActiveBank != gNoOfAllBanks) {break;} //nice way of checking uproar... + if (gActiveBattler != gBattlersCount) {break;} //nice way of checking uproar... if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) {break;} if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) {break;} @@ -2555,7 +2555,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) break; } else - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (StatusChanged == 1) @@ -2566,9 +2566,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg) else gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; - gActiveBank = gEffectBank; + gActiveBattler = gEffectBank; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -2634,7 +2634,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 11: //pay day - if (!(GetBankIdentity(gBankAttacker) & 1)) + if (!(GetBattlerPosition(gBankAttacker) & 1)) { u16 PayDay = gPaydayMoney; gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); @@ -2729,10 +2729,10 @@ void SetMoveEffect(bool8 primary, u8 certainArg) break; case 31: //item steal { - u8 side = GetBankSide(gBankAttacker); - if (GetBankSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) + u8 side = GetBattlerSide(gBankAttacker); + if (GetBattlerSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400) {gBattlescriptCurrInstr++; return;} - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]])) + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBankAttacker]])) {gBattlescriptCurrInstr++; return;} if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) { @@ -2753,11 +2753,11 @@ void SetMoveEffect(bool8 primary, u8 certainArg) USED_HELD_ITEM(bank) = gLastUsedItem; gBattleMons[gBankTarget].item = 0; - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); MarkBufferBankForExecution(gBankAttacker); - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); MarkBufferBankForExecution(gBankTarget); @@ -2788,9 +2788,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS) { gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; } @@ -2832,10 +2832,10 @@ void SetMoveEffect(bool8 primary, u8 certainArg) {gBattlescriptCurrInstr++; return;} else { - u8 side = GetBankSide(gEffectBank); + u8 side = GetBattlerSide(gEffectBank); gLastUsedItem = gBattleMons[gEffectBank].item; gBattleMons[gEffectBank].item = 0; - gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]]; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]]; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; @@ -2932,7 +2932,7 @@ _0801E450:\n\ _0801E48A:\n\ mov r1, r8\n\ ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ ldr r2, _0801E554 @ =gSideAffecting\n\ movs r1, 0x1\n\ ands r1, r0\n\ @@ -3058,10 +3058,10 @@ _0801E57A:\n\ ldrb r0, [r0]\n\ cmp r0, 0x2B\n\ beq _0801E5DC\n\ - ldr r0, _0801E5D4 @ =gActiveBank\n\ + ldr r0, _0801E5D4 @ =gActiveBattler\n\ movs r1, 0\n\ strb r1, [r0]\n\ - ldr r1, _0801E5D8 @ =gNoOfAllBanks\n\ + ldr r1, _0801E5D8 @ =gBattlersCount\n\ ldrb r3, [r1]\n\ adds r7, r0, 0\n\ mov r12, r1\n\ @@ -3095,11 +3095,11 @@ _0801E5B4:\n\ beq _0801E5B4\n\ b _0801E5E8\n\ .align 2, 0\n\ -_0801E5D4: .4byte gActiveBank\n\ -_0801E5D8: .4byte gNoOfAllBanks\n\ +_0801E5D4: .4byte gActiveBattler\n\ +_0801E5D8: .4byte gBattlersCount\n\ _0801E5DC:\n\ - ldr r0, _0801E628 @ =gActiveBank\n\ - ldr r2, _0801E62C @ =gNoOfAllBanks\n\ + ldr r0, _0801E628 @ =gActiveBattler\n\ + ldr r2, _0801E62C @ =gBattlersCount\n\ ldrb r1, [r2]\n\ strb r1, [r0]\n\ adds r7, r0, 0\n\ @@ -3141,8 +3141,8 @@ _0801E620:\n\ bl CancelMultiTurnMoves\n\ b _0801EA04\n\ .align 2, 0\n\ -_0801E628: .4byte gActiveBank\n\ -_0801E62C: .4byte gNoOfAllBanks\n\ +_0801E628: .4byte gActiveBattler\n\ +_0801E62C: .4byte gBattlersCount\n\ _0801E630:\n\ mov r2, r8\n\ ldrb r1, [r2]\n\ @@ -3644,7 +3644,7 @@ _0801EA04:\n\ mov r10, r0\n\ b _0801EA14\n\ _0801EA0A:\n\ - ldr r0, _0801EA58 @ =gBattleMoveFlags\n\ + ldr r0, _0801EA58 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r2, 0x8\n\ orrs r1, r2\n\ @@ -3683,7 +3683,7 @@ _0801EA1C:\n\ str r0, [r3]\n\ b _0801EA84\n\ .align 2, 0\n\ -_0801EA58: .4byte gBattleMoveFlags\n\ +_0801EA58: .4byte gMoveResultFlags\n\ _0801EA5C: .4byte gBattlescriptCurrInstr\n\ _0801EA60: .4byte sStatusFlagsForMoveEffects\n\ _0801EA64: .4byte gBattleCommunication\n\ @@ -3709,7 +3709,7 @@ _0801EA84:\n\ adds r0, r1\n\ ldr r0, [r0]\n\ str r0, [r2]\n\ - ldr r4, _0801EAE8 @ =gActiveBank\n\ + ldr r4, _0801EAE8 @ =gActiveBattler\n\ ldr r1, _0801EAD8 @ =gEffectBank\n\ ldrb r0, [r1]\n\ strb r0, [r4]\n\ @@ -3745,7 +3745,7 @@ _0801EAD8: .4byte gEffectBank\n\ _0801EADC: .4byte gBattlescriptCurrInstr\n\ _0801EAE0: .4byte gMoveEffectBS_Ptrs\n\ _0801EAE4: .4byte gBattleCommunication\n\ -_0801EAE8: .4byte gActiveBank\n\ +_0801EAE8: .4byte gActiveBattler\n\ _0801EAEC: .4byte gUnknown_02024ACC\n\ _0801EAF0: .4byte gHitMarker\n\ _0801EAF4: .4byte 0xffffdfff\n\ @@ -4050,7 +4050,7 @@ _0801EDD8: .4byte gBattleCommunication\n\ _0801EDDC:\n\ ldr r5, _0801EE30 @ =gBankAttacker\n\ ldrb r0, [r5]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ ands r1, r0\n\ cmp r1, 0\n\ @@ -4499,11 +4499,11 @@ _0801F1A0: .4byte gBankAttacker\n\ _0801F1A4:\n\ ldr r4, _0801F254 @ =gBankAttacker\n\ ldrb r0, [r4]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r6, r0, 24\n\ ldrb r0, [r4]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -4539,7 +4539,7 @@ _0801F1D8:\n\ adds r0, r6, r0\n\ ldrb r1, [r0]\n\ ldr r3, _0801F268 @ =gBitTable\n\ - ldr r2, _0801F26C @ =gBattlePartyID\n\ + ldr r2, _0801F26C @ =gBattlerPartyIndexes\n\ ldr r0, _0801F254 @ =gBankAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ @@ -4590,7 +4590,7 @@ _0801F25C: .4byte 0x00000902\n\ _0801F260: .4byte gTrainerBattleOpponent\n\ _0801F264: .4byte gWishFutureKnock\n\ _0801F268: .4byte gBitTable\n\ -_0801F26C: .4byte gBattlePartyID\n\ +_0801F26C: .4byte gBattlerPartyIndexes\n\ _0801F270: .4byte gBattleMons\n\ _0801F274: .4byte gBankTarget\n\ _0801F278: .4byte gBattlescriptCurrInstr\n\ @@ -4638,7 +4638,7 @@ _0801F2B6:\n\ add r0, r9\n\ movs r6, 0\n\ strh r3, [r0, 0x2E]\n\ - ldr r4, _0801F34C @ =gActiveBank\n\ + ldr r4, _0801F34C @ =gActiveBattler\n\ mov r2, r10\n\ ldrb r0, [r2]\n\ strb r0, [r4]\n\ @@ -4693,7 +4693,7 @@ _0801F2B6:\n\ _0801F340: .4byte gBankAttacker\n\ _0801F344: .4byte gSharedMem + 0x160F0\n\ _0801F348: .4byte gLastUsedItem\n\ -_0801F34C: .4byte gActiveBank\n\ +_0801F34C: .4byte gActiveBattler\n\ _0801F350: .4byte gBattlescriptCurrInstr\n\ _0801F354: .4byte BattleScript_ItemSteal\n\ _0801F358: .4byte 0xfffe9f10\n\ @@ -4781,7 +4781,7 @@ _0801F406:\n\ negs r0, r0\n\ ands r4, r0\n\ str r4, [r5]\n\ - ldr r4, _0801F440 @ =gActiveBank\n\ + ldr r4, _0801F440 @ =gActiveBattler\n\ ldrb r0, [r6]\n\ strb r0, [r4]\n\ ldrb r0, [r4]\n\ @@ -4803,7 +4803,7 @@ _0801F406:\n\ b _0801F5F8\n\ .align 2, 0\n\ _0801F43C: .4byte gBankTarget\n\ -_0801F440: .4byte gActiveBank\n\ +_0801F440: .4byte gActiveBattler\n\ _0801F444: .4byte gBattlescriptCurrInstr\n\ _0801F448: .4byte BattleScript_TargetPRLZHeal\n\ _0801F44C:\n\ @@ -4924,7 +4924,7 @@ _0801F540:\n\ cmp r0, 0\n\ beq _0801F5DC\n\ adds r0, r3, 0\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r6, r0, 24\n\ ldr r1, _0801F5B8 @ =gLastUsedItem\n\ @@ -4944,7 +4944,7 @@ _0801F540:\n\ adds r2, 0x29\n\ adds r2, r6, r2\n\ ldr r3, _0801F5C0 @ =gBitTable\n\ - ldr r1, _0801F5C4 @ =gBattlePartyID\n\ + ldr r1, _0801F5C4 @ =gBattlerPartyIndexes\n\ mov r4, r8\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ @@ -4981,7 +4981,7 @@ _0801F540:\n\ _0801F5B8: .4byte gLastUsedItem\n\ _0801F5BC: .4byte gWishFutureKnock\n\ _0801F5C0: .4byte gBitTable\n\ -_0801F5C4: .4byte gBattlePartyID\n\ +_0801F5C4: .4byte gBattlerPartyIndexes\n\ _0801F5C8: .4byte gBattlescriptCurrInstr\n\ _0801F5CC: .4byte BattleScript_KnockedOff\n\ _0801F5D0: .4byte gSharedMem\n\ @@ -5029,16 +5029,16 @@ static void atk15_seteffectwithchance(void) PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; if (DEBUG && (gUnknown_02023A14_50 & 4) - && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { SetMoveEffect(0, 0); } - else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gBattleCommunication[MOVE_EFFECT_BYTE] &= 0x7F; SetMoveEffect(0, 0x80); } - else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (PercentChance >= 100) SetMoveEffect(0, 0x80); @@ -5066,11 +5066,11 @@ static void atk17_seteffectsecondary(void) static void atk18_clearstatusfromeffect(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6) - gBattleMons[gActiveBank].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); else - gBattleMons[gActiveBank].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattlescriptCurrInstr += 2; @@ -5083,14 +5083,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[2] != 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3); BattleScriptPop(); gBattlescriptCurrInstr = r4; - gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED; + gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~SIDE_STATUS_SPIKES_DAMAGED; } else { @@ -5103,18 +5103,18 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == 1) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; bank = gBankTarget; r4 = BattleScript_FaintAttacker; } else { - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; bank = gBankAttacker; r4 = BattleScript_FaintTarget; } - if (!(gAbsentBankFlags & gBitTable[gActiveBank]) - && gBattleMons[gActiveBank].hp == 0) + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) + && gBattleMons[gActiveBattler].hp == 0) { ewram160ACarr2(0, bank) = 0; ewram160ACarr2(1, bank) = 0; @@ -5123,27 +5123,27 @@ static void atk19_tryfaintmon(void) ewram16100arr2(2, bank) = 0; ewram16100arr2(3, bank) = 0; - gHitMarker |= HITMARKER_FAINTED(gActiveBank); + gHitMarker |= HITMARKER_FAINTED(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 7); gBattlescriptCurrInstr = r4; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) { gHitMarker |= HITMARKER_x400000; if (gBattleResults.playerFaintCounter < 0xFF) gBattleResults.playerFaintCounter++; - if (gBattleMons[bank].level > gBattleMons[gActiveBank].level) + if (gBattleMons[bank].level > gBattleMons[gActiveBattler].level) { - if (gBattleMons[bank].level - gBattleMons[gActiveBank].level > 0x1D) - AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 8); + if (gBattleMons[bank].level - gBattleMons[gActiveBattler].level > 0x1D) + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 8); else - AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 6); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 6); } } else { if (gBattleResults.opponentFaintCounter < 0xFF) gBattleResults.opponentFaintCounter++; - gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBank].species; + gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBattler].species; } if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) { @@ -5153,7 +5153,7 @@ static void atk19_tryfaintmon(void) } if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) + && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) && gBattleMons[gBankAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { @@ -5162,9 +5162,9 @@ static void atk19_tryfaintmon(void) gBattleMons[gBankAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace; - gActiveBank = gBankAttacker; - EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBankAttacker; + EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBufferBankForExecution(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -5184,9 +5184,9 @@ static void atk1A_dofaintanimation(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); Emitcmd10(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } } @@ -5196,10 +5196,10 @@ static void atk1B_cleareffectsonfaint(void) //Clears things like attraction or trapping to other banks if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - gBattleMons[gActiveBank].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gBattleMons[gActiveBattler].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); UndoEffectsAfterFainting(); gBattlescriptCurrInstr += 2; } @@ -5279,9 +5279,9 @@ static void atk1F_jumpifsideaffecting(void) u16 flags; void* jump_loc; if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1) - side = GetBankIdentity(gBankAttacker) & 1; + side = GetBattlerPosition(gBankAttacker) & 1; else - side = GetBankIdentity(gBankTarget) & 1; + side = GetBattlerPosition(gBankTarget) & 1; flags = T2_READ_16(gBattlescriptCurrInstr + 2); jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4); @@ -5335,19 +5335,19 @@ static void atk21_jumpifstatus3condition(void) u32 flags; void* jump_loc; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); flags = T2_READ_32(gBattlescriptCurrInstr + 2); jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7); if (T2_READ_8(gBattlescriptCurrInstr + 6)) { - if ((gStatuses3[gActiveBank] & flags) != 0) + if ((gStatuses3[gActiveBattler] & flags) != 0) gBattlescriptCurrInstr += 11; else gBattlescriptCurrInstr = jump_loc; } else { - if ((gStatuses3[gActiveBank] & flags) != 0) + if ((gStatuses3[gActiveBattler] & flags) != 0) gBattlescriptCurrInstr = jump_loc; else gBattlescriptCurrInstr += 11; @@ -5382,7 +5382,7 @@ static void atk23_getexp(void) switch (gBattleStruct->getexpStateTracker) { case 0: // check if should receive exp at all - if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags & + if (GetBattlerSide(gBank1) != B_SIDE_OPPONENT || (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER @@ -5393,7 +5393,7 @@ static void atk23_getexp(void) else { gBattleStruct->getexpStateTracker++; - gBattleStruct->unk16113 |= gBitTable[gBattlePartyID[gBank1]]; + gBattleStruct->unk16113 |= gBitTable[gBattlerPartyIndexes[gBank1]]; } break; case 1: // calculate experience points to redistribute @@ -5503,11 +5503,11 @@ static void atk23_getexp(void) // get exp getter bank if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!(gBattlePartyID[2] != gBattleStruct->expGetterID) && !(gAbsentBankFlags & gBitTable[2])) + if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBank = 2; else { - if (!(gAbsentBankFlags & gBitTable[0])) + if (!(gAbsentBattlerFlags & gBitTable[0])) gBattleStruct->expGetterBank = 0; else gBattleStruct->expGetterBank = 2; @@ -5544,9 +5544,9 @@ static void atk23_getexp(void) gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK); gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF); - gActiveBank = gBattleStruct->expGetterBank; + gActiveBattler = gBattleStruct->expGetterBank; EmitExpBarUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattleStruct->getexpStateTracker++; } @@ -5554,25 +5554,25 @@ static void atk23_getexp(void) case 4: // lvl up if necessary if (gBattleExecBuffer == 0) { - gActiveBank = gBattleStruct->expGetterBank; - if (gBattleBufferB[gActiveBank][0] == CONTROLLER_TWORETURNVALUES - && gBattleBufferB[gActiveBank][1] == RET_VALUE_LEVELLED_UP) + gActiveBattler = gBattleStruct->expGetterBank; + if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES + && gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP) { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID) + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterID) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterID) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL)) BattleScriptPushCursor(); gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterID]; gBattlescriptCurrInstr = BattleScript_LevelUp; - gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)); + gBattleMoveDamage = (gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)); AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterID], 0); // update battle mon structure after level up - if (gBattlePartyID[0] == gBattleStruct->expGetterID && gBattleMons[0].hp) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && gBattleMons[0].hp) { gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL); gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP); @@ -5586,7 +5586,7 @@ static void atk23_getexp(void) gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF); } // What is else if? - if (gBattlePartyID[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL); gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP); @@ -5662,13 +5662,13 @@ static void atk24(void) //I can't for the love of god decompile that part - for (found1 = 0, i = 0; i < gNoOfAllBanks; i += 2) + for (found1 = 0, i = 0; i < gBattlersCount; i += 2) { if ((gHitMarker & HITMARKER_UNK(i)) && !gSpecialStatuses[i].flag40) found1++; } - for (found2 = 0, i = 1; i < gNoOfAllBanks; i += 2) + for (found2 = 0, i = 1; i < gBattlersCount; i += 2) { if ((gHitMarker & HITMARKER_UNK(i)) && !gSpecialStatuses[i].flag40) found2++; @@ -5791,7 +5791,7 @@ _08020A54:\n\ beq _08020B3E\n\ movs r2, 0\n\ movs r5, 0\n\ - ldr r0, _08020B04 @ =gNoOfAllBanks\n\ + ldr r0, _08020B04 @ =gBattlersCount\n\ ldrb r3, [r0]\n\ mov r12, r0\n\ ldr r7, _08020B08 @ =gBattlescriptCurrInstr\n\ @@ -5868,7 +5868,7 @@ _08020AF4: .4byte gPlayerParty\n\ _08020AF8: .4byte gBattleOutcome\n\ _08020AFC: .4byte gEnemyParty\n\ _08020B00: .4byte gBattleTypeFlags\n\ -_08020B04: .4byte gNoOfAllBanks\n\ +_08020B04: .4byte gBattlersCount\n\ _08020B08: .4byte gBattlescriptCurrInstr\n\ _08020B0C: .4byte gHitMarker\n\ _08020B10: .4byte gSpecialStatuses\n\ @@ -5915,7 +5915,7 @@ _08020B50: .4byte gBattlescriptCurrInstr\n\ static void MoveValuesCleanUp(void) { - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gBattleStruct->dmgMultiplier = 1; gCritMultiplier = 1; gBattleCommunication[MOVE_EFFECT_BYTE] = 0; @@ -6230,12 +6230,12 @@ static void atk3A_waitstate(void) static void atk3B_healthbar_update(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; else - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6246,15 +6246,15 @@ static void atk3C_return(void) static void atk3D_end(void) { - gBattleMoveFlags = 0; - gActiveBank = 0; + gMoveResultFlags = 0; + gActiveBattler = 0; gCurrentActionFuncId = 0xB; } static void atk3E_end2(void) { //not much difference between this and 3D. It's more apparent in Emerald - gActiveBank = 0; + gActiveBattler = 0; gCurrentActionFuncId = 0xB; } @@ -6299,7 +6299,7 @@ static void atk45_playanimation(void) { const u16* argumentPtr; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3); if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE @@ -6307,7 +6307,7 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6321,17 +6321,17 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } - else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr += 7; } else { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } } @@ -6341,7 +6341,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po const u16* argumentPtr; const u8* animationIdPtr; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6); @@ -6350,7 +6350,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -6363,17 +6363,17 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_HAIL_CONTINUES) { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } - else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr += 10; } else { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } } @@ -6410,7 +6410,7 @@ static void atk48_playstatchangeanimation(void) u32 stats_to_check; u8 arg3; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); stats_to_check = T2_READ_8(gBattlescriptCurrInstr + 2); arg3 = T2_READ_8(gBattlescriptCurrInstr + 3); if (arg3 & 1) @@ -6425,13 +6425,13 @@ static void atk48_playstatchangeanimation(void) if (!(T2_READ_8(gBattlescriptCurrInstr + 3))) { u8 ability; - if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gActiveBattler) & 1].mistTimer) continue; - ability = gBattleMons[gActiveBank].ability; + ability = gBattleMons[gActiveBattler].ability; if (ability == ABILITY_CLEAR_BODY || ability == ABILITY_WHITE_SMOKE || (ability == ABILITY_KEEN_EYE && curr_stat == 6) || (ability == ABILITY_HYPER_CUTTER && curr_stat == 1)) continue; } - if (gBattleMons[gActiveBank].statStages[curr_stat] > 0) + if (gBattleMons[gActiveBattler].statStages[curr_stat] > 0) { stat_animID = r1; changeable_stats++; @@ -6455,7 +6455,7 @@ static void atk48_playstatchangeanimation(void) { if (!(stats_to_check & 1)) continue; - if (gBattleMons[gActiveBank].statStages[curr_stat] < 0xB) + if (gBattleMons[gActiveBattler].statStages[curr_stat] < 0xB) { stat_animID = r1; changeable_stats++; @@ -6476,7 +6476,7 @@ static void atk48_playstatchangeanimation(void) else { EmitBattleAnimation(0, 1, stat_animID); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1) gBattleStruct->filler2[0] = 1; gBattlescriptCurrInstr += 4; @@ -6503,7 +6503,7 @@ push {r4-r7,lr}\n\ ldrb r0, [r0, 0x1]\n\ str r3, [sp]\n\ bl GetBattleBank\n\ - ldr r2, _08021674 @ =gActiveBank\n\ + ldr r2, _08021674 @ =gActiveBattler\n\ strb r0, [r2]\n\ ldr r0, [r5]\n\ ldrb r4, [r0, 0x2]\n\ @@ -6540,7 +6540,7 @@ _0802164A:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0802167C\n\ - ldr r0, _08021674 @ =gActiveBank\n\ + ldr r0, _08021674 @ =gActiveBattler\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -6548,13 +6548,13 @@ _0802164A:\n\ b _080216C4\n\ .align 2, 0\n\ _08021670: .4byte gBattlescriptCurrInstr\n\ -_08021674: .4byte gActiveBank\n\ +_08021674: .4byte gActiveBattler\n\ _08021678: .4byte gUnknown_02024A98\n\ _0802167C:\n\ - ldr r6, _08021700 @ =gActiveBank\n\ + ldr r6, _08021700 @ =gActiveBattler\n\ ldrb r0, [r6]\n\ str r3, [sp]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ mov r1, r10\n\ ands r1, r0\n\ lsls r0, r1, 1\n\ @@ -6622,7 +6622,7 @@ _080216E4:\n\ movs r0, 0x3A\n\ b _08021770\n\ .align 2, 0\n\ -_08021700: .4byte gActiveBank\n\ +_08021700: .4byte gActiveBattler\n\ _08021704: .4byte gSideTimers\n\ _08021708: .4byte gBattleMons\n\ _0802170C: .4byte gBattlescriptCurrInstr\n\ @@ -6710,7 +6710,7 @@ _08021790:\n\ mov r2, r8\n\ str r3, [sp]\n\ bl EmitBattleAnimation\n\ - ldr r0, _080217D8 @ =gActiveBank\n\ + ldr r0, _080217D8 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ bl MarkBufferBankForExecution\n\ ldr r0, _080217DC @ =gBattlescriptCurrInstr\n\ @@ -6731,7 +6731,7 @@ _080217CC:\n\ .align 2, 0\n\ _080217D0: .4byte gSharedMem\n\ _080217D4: .4byte 0x000160dc\n\ -_080217D8: .4byte gActiveBank\n\ +_080217D8: .4byte gActiveBattler\n\ _080217DC: .4byte gBattlescriptCurrInstr\n\ _080217E0:\n\ mov r1, r9\n\ @@ -6783,8 +6783,8 @@ static void atk49_moveend(void) case 0: //rage check if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && TARGET_TURN_DAMAGED + && GetBattlerSide(gBankAttacker) != GetBattlerSide(gBankTarget) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) { gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; @@ -6798,12 +6798,12 @@ static void atk49_moveend(void) if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE && gBattleMons[gBankTarget].hp && gBankAttacker != gBankTarget && gSpecialStatuses[gBankTarget].moveturnLostHP - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && move_type == TYPE_FIRE) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move_type == TYPE_FIRE) { gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = 1; @@ -6834,7 +6834,7 @@ static void atk49_moveend(void) case 6: //update choice band move if (gHitMarker & HITMARKER_OBEYS && hold_effect_atk == HOLD_EFFECT_CHOICE_BAND && gLastUsedMove != MOVE_STRUGGLE && (*choiced_move_atk == 0 || *choiced_move_atk == 0xFFF) - && gLastUsedMove != MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && gLastUsedMove != MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { *choiced_move_atk = gLastUsedMove; for (i = 0; i < 4 && gBattleMons[gBankAttacker].moves[i] != *choiced_move_atk; i++){} @@ -6844,7 +6844,7 @@ static void atk49_moveend(void) gBattleStruct->cmd49StateTracker++; break; case 7: //changed held items - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { #define CHANGED_ITEM (((*u16)(gSharedMem + 0x160F0))) if (CHANGED_ITEM(i)) @@ -6856,31 +6856,31 @@ static void atk49_moveend(void) if (gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER) && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitSpriteInvisibility(0, 1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattleStruct->cmd49StateTracker++; break; case 9: //semi-invlurneable attacker make visible - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) || WasUnableToUseMove(gBankAttacker)) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER); gSpecialStatuses[gBankAttacker].restored_bank_sprite = 1; } gBattleStruct->cmd49StateTracker++; break; case 10: //semi-invlurneable target make visible - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) || WasUnableToUseMove(gBankTarget)) { - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER); gSpecialStatuses[gBankTarget].restored_bank_sprite = 1; } @@ -7070,16 +7070,16 @@ _08021958:\n\ cmp r1, r4\n\ beq _080219FE\n\ adds r0, r1, 0\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ adds r4, r0, 0\n\ ldr r1, _08021A0C @ =gBankTarget\n\ ldrb r0, [r1]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r4, 24\n\ lsls r0, 24\n\ cmp r4, r0\n\ beq _080219FE\n\ - ldr r0, _08021A14 @ =gBattleMoveFlags\n\ + ldr r0, _08021A14 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7136,7 +7136,7 @@ _080219FE:\n\ _08021A08: .4byte gBattleMons\n\ _08021A0C: .4byte gBankTarget\n\ _08021A10: .4byte gBankAttacker\n\ -_08021A14: .4byte gBattleMoveFlags\n\ +_08021A14: .4byte gMoveResultFlags\n\ _08021A18: .4byte gProtectStructs\n\ _08021A1C: .4byte gBattleMoves\n\ _08021A20: .4byte gCurrentMove\n\ @@ -7185,7 +7185,7 @@ _08021A68:\n\ bne _08021A7C\n\ b _08021DFA\n\ _08021A7C:\n\ - ldr r0, _08021AE0 @ =gBattleMoveFlags\n\ + ldr r0, _08021AE0 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7202,7 +7202,7 @@ _08021A92:\n\ negs r0, r0\n\ ands r5, r0\n\ str r5, [r6]\n\ - ldr r4, _08021AE4 @ =gActiveBank\n\ + ldr r4, _08021AE4 @ =gActiveBattler\n\ ldr r5, _08021AD4 @ =gBankTarget\n\ ldrb r0, [r5]\n\ strb r0, [r4]\n\ @@ -7231,8 +7231,8 @@ _08021AD0: .4byte gBattleMons\n\ _08021AD4: .4byte gBankTarget\n\ _08021AD8: .4byte gBankAttacker\n\ _08021ADC: .4byte gSpecialStatuses\n\ -_08021AE0: .4byte gBattleMoveFlags\n\ -_08021AE4: .4byte gActiveBank\n\ +_08021AE0: .4byte gMoveResultFlags\n\ +_08021AE4: .4byte gActiveBattler\n\ _08021AE8: .4byte gBattlescriptCurrInstr\n\ _08021AEC: .4byte BattleScript_DefrostedViaFireMove\n\ _08021AF0:\n\ @@ -7348,7 +7348,7 @@ _08021B9C:\n\ _08021BC8:\n\ cmp r2, 0xE2\n\ bne _08021BDA\n\ - ldr r0, _08021C34 @ =gBattleMoveFlags\n\ + ldr r0, _08021C34 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x20\n\ ands r0, r1\n\ @@ -7403,12 +7403,12 @@ _08021C22:\n\ _08021C28: .4byte gHitMarker\n\ _08021C2C: .4byte gChosenMove\n\ _08021C30: .4byte 0x0000ffff\n\ -_08021C34: .4byte gBattleMoveFlags\n\ +_08021C34: .4byte gMoveResultFlags\n\ _08021C38: .4byte gBattleMons\n\ _08021C3C: .4byte gBankAttacker\n\ _08021C40:\n\ movs r4, 0\n\ - ldr r0, _08021C6C @ =gNoOfAllBanks\n\ + ldr r0, _08021C6C @ =gBattlersCount\n\ ldrb r2, [r0]\n\ cmp r4, r2\n\ blt _08021C4C\n\ @@ -7432,7 +7432,7 @@ _08021C5C:\n\ blt _08021C52\n\ b _08022244\n\ .align 2, 0\n\ -_08021C6C: .4byte gNoOfAllBanks\n\ +_08021C6C: .4byte gBattlersCount\n\ _08021C70: .4byte gSharedMem + 0x160F0\n\ _08021C74: .4byte gBattleMons\n\ _08021C78:\n\ @@ -7497,7 +7497,7 @@ _08021CE2:\n\ bne _08021CF0\n\ b _08021DFA\n\ _08021CF0:\n\ - ldr r4, _08021D14 @ =gActiveBank\n\ + ldr r4, _08021D14 @ =gActiveBattler\n\ strb r2, [r4]\n\ movs r0, 0\n\ movs r1, 0x1\n\ @@ -7510,9 +7510,9 @@ _08021D04: .4byte gStatuses3\n\ _08021D08: .4byte gBankAttacker\n\ _08021D0C: .4byte 0x000400c0\n\ _08021D10: .4byte gHitMarker\n\ -_08021D14: .4byte gActiveBank\n\ +_08021D14: .4byte gActiveBattler\n\ _08021D18:\n\ - ldr r0, _08021D88 @ =gBattleMoveFlags\n\ + ldr r0, _08021D88 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7534,7 +7534,7 @@ _08021D18:\n\ cmp r0, 0\n\ beq _08021D7E\n\ _08021D44:\n\ - ldr r4, _08021D98 @ =gActiveBank\n\ + ldr r4, _08021D98 @ =gActiveBattler\n\ ldr r5, _08021D90 @ =gBankAttacker\n\ ldrb r0, [r5]\n\ strb r0, [r4]\n\ @@ -7567,11 +7567,11 @@ _08021D7E:\n\ adds r1, r2, r4\n\ b _08021E00\n\ .align 2, 0\n\ -_08021D88: .4byte gBattleMoveFlags\n\ +_08021D88: .4byte gMoveResultFlags\n\ _08021D8C: .4byte gStatuses3\n\ _08021D90: .4byte gBankAttacker\n\ _08021D94: .4byte 0x000400c0\n\ -_08021D98: .4byte gActiveBank\n\ +_08021D98: .4byte gActiveBattler\n\ _08021D9C: .4byte 0xfffbff3f\n\ _08021DA0: .4byte gSpecialStatuses\n\ _08021DA4: .4byte gSharedMem\n\ @@ -7588,7 +7588,7 @@ _08021DAC:\n\ lsls r0, 29\n\ cmp r0, 0\n\ blt _08021DFA\n\ - ldr r0, _08021E14 @ =gNoOfAllBanks\n\ + ldr r0, _08021E14 @ =gBattlersCount\n\ ldrb r0, [r0]\n\ cmp r3, r0\n\ bcs _08021DFA\n\ @@ -7599,7 +7599,7 @@ _08021DAC:\n\ ands r0, r1\n\ cmp r0, 0\n\ bne _08021DFA\n\ - ldr r4, _08021E20 @ =gActiveBank\n\ + ldr r4, _08021E20 @ =gActiveBattler\n\ strb r3, [r4]\n\ movs r0, 0\n\ movs r1, 0\n\ @@ -7627,16 +7627,16 @@ _08021E00:\n\ .align 2, 0\n\ _08021E0C: .4byte gSpecialStatuses\n\ _08021E10: .4byte gBankTarget\n\ -_08021E14: .4byte gNoOfAllBanks\n\ +_08021E14: .4byte gBattlersCount\n\ _08021E18: .4byte gStatuses3\n\ _08021E1C: .4byte 0x000400c0\n\ -_08021E20: .4byte gActiveBank\n\ +_08021E20: .4byte gActiveBattler\n\ _08021E24: .4byte 0xfffbff3f\n\ _08021E28: .4byte gSharedMem\n\ _08021E2C: .4byte 0x0001600c\n\ _08021E30:\n\ movs r4, 0\n\ - ldr r0, _08021E60 @ =gNoOfAllBanks\n\ + ldr r0, _08021E60 @ =gBattlersCount\n\ ldrb r5, [r0]\n\ cmp r4, r5\n\ blt _08021E3C\n\ @@ -7662,7 +7662,7 @@ _08021E50:\n\ blt _08021E44\n\ b _08022244\n\ .align 2, 0\n\ -_08021E60: .4byte gNoOfAllBanks\n\ +_08021E60: .4byte gBattlersCount\n\ _08021E64: .4byte gDisableStructs\n\ _08021E68: .4byte 0xfeffffff\n\ _08021E6C: .4byte gUnknown_02024AD0\n\ @@ -7677,7 +7677,7 @@ _08021E70:\n\ adds r5, r1, 0\n\ cmp r0, 0\n\ beq _08021E9A\n\ - ldr r0, _08021F34 @ =gActiveBank\n\ + ldr r0, _08021F34 @ =gActiveBattler\n\ ldrb r2, [r2]\n\ strb r2, [r0]\n\ ldr r1, _08021F38 @ =gBankTarget\n\ @@ -7701,7 +7701,7 @@ _08021E9A:\n\ adds r7, r2, 0\n\ cmp r0, 0x7F\n\ bne _08021EBE\n\ - ldr r0, _08021F48 @ =gBattleMoveFlags\n\ + ldr r0, _08021F48 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7715,7 +7715,7 @@ _08021EBE:\n\ adds r0, r1\n\ strh r3, [r0]\n\ _08021ECA:\n\ - ldr r0, _08021F50 @ =gAbsentBankFlags\n\ + ldr r0, _08021F50 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _08021F54 @ =gBitTable\n\ mov r3, r9\n\ @@ -7769,14 +7769,14 @@ _08021F04:\n\ .align 2, 0\n\ _08021F2C: .4byte gHitMarker\n\ _08021F30: .4byte gBankAttacker\n\ -_08021F34: .4byte gActiveBank\n\ +_08021F34: .4byte gActiveBattler\n\ _08021F38: .4byte gBankTarget\n\ _08021F3C: .4byte 0xffffefff\n\ _08021F40: .4byte gBattleMoves\n\ _08021F44: .4byte gChosenMove\n\ -_08021F48: .4byte gBattleMoveFlags\n\ +_08021F48: .4byte gMoveResultFlags\n\ _08021F4C: .4byte gUnknown_02024C2C\n\ -_08021F50: .4byte gAbsentBankFlags\n\ +_08021F50: .4byte gAbsentBattlerFlags\n\ _08021F54: .4byte gBitTable\n\ _08021F58: .4byte 0x000160a6\n\ _08021F5C: .4byte gLastUsedMove\n\ @@ -7807,7 +7807,7 @@ _08021F82:\n\ ands r1, r0\n\ cmp r1, 0\n\ bne _08021FA0\n\ - ldr r0, _08021FE0 @ =gUnknown_02024C5C\n\ + ldr r0, _08021FE0 @ =gLastHitBy\n\ adds r0, r3, r0\n\ mov r3, r9\n\ ldrb r1, [r3]\n\ @@ -7819,7 +7819,7 @@ _08021FA0:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0802204C\n\ - ldr r0, _08021FE4 @ =gBattleMoveFlags\n\ + ldr r0, _08021FE4 @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -7841,8 +7841,8 @@ _08021FD0: .4byte gLastUsedMove\n\ _08021FD4: .4byte 0x0000ffff\n\ _08021FD8: .4byte gUnknown_02024C4C\n\ _08021FDC: .4byte gBankTarget\n\ -_08021FE0: .4byte gUnknown_02024C5C\n\ -_08021FE4: .4byte gBattleMoveFlags\n\ +_08021FE0: .4byte gLastHitBy\n\ +_08021FE4: .4byte gMoveResultFlags\n\ _08021FE8: .4byte gLastLandedMoves\n\ _08021FEC:\n\ ldr r0, _08022014 @ =gLastLandedMoves\n\ @@ -7901,7 +7901,7 @@ _0802205C: .4byte gLastLandedMoves\n\ _08022060: .4byte gBankTarget\n\ _08022064: .4byte 0x0000ffff\n\ _08022068:\n\ - ldr r0, _0802212C @ =gAbsentBankFlags\n\ + ldr r0, _0802212C @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r6, _08022130 @ =gBitTable\n\ ldr r2, _08022134 @ =gBankAttacker\n\ @@ -7956,7 +7956,7 @@ _080220C0:\n\ ands r1, r0\n\ cmp r1, 0\n\ bne _0802215C\n\ - ldr r0, _0802214C @ =gBattleMoveFlags\n\ + ldr r0, _0802214C @ =gMoveResultFlags\n\ ldrb r1, [r0]\n\ movs r0, 0x29\n\ ands r0, r1\n\ @@ -8003,7 +8003,7 @@ _080220C0:\n\ strb r0, [r2]\n\ b _08022244\n\ .align 2, 0\n\ -_0802212C: .4byte gAbsentBankFlags\n\ +_0802212C: .4byte gAbsentBattlerFlags\n\ _08022130: .4byte gBitTable\n\ _08022134: .4byte gBankAttacker\n\ _08022138: .4byte 0x000160a6\n\ @@ -8011,7 +8011,7 @@ _0802213C: .4byte gBattleMoves\n\ _08022140: .4byte gChosenMove\n\ _08022144: .4byte gHitMarker\n\ _08022148: .4byte gBankTarget\n\ -_0802214C: .4byte gBattleMoveFlags\n\ +_0802214C: .4byte gMoveResultFlags\n\ _08022150: .4byte 0x000160ac\n\ _08022154: .4byte 0x000160ad\n\ _08022158: .4byte 0x00016100\n\ @@ -8106,12 +8106,12 @@ _080221C0:\n\ bne _08022244\n\ ldr r7, _080222C8 @ =gBankTarget\n\ ldrb r0, [r7]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x2\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsls r0, 24\n\ lsrs r2, r0, 24\n\ ldr r1, _080222CC @ =gBattleMons\n\ @@ -8213,7 +8213,7 @@ static void atk4A_typecalc2(void) if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND) { gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = move_type; RecordAbilityBattle(gBankTarget, gLastUsedAbility); @@ -8235,13 +8235,13 @@ static void atk4A_typecalc2(void) { if (gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (gTypeEffectiveness[i + 2] == 5) - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; if (gTypeEffectiveness[i + 2] == 20) - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } //check type2 if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2) @@ -8249,31 +8249,31 @@ static void atk4A_typecalc2(void) if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 0) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 5) - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && gTypeEffectiveness[i + 2] == 20) - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } i += 3; } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_NOEFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 && - (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && + if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 && + (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].notEffective = 1; gBattlescriptCurrInstr++; @@ -8281,11 +8281,11 @@ static void atk4A_typecalc2(void) static void atk4B_returnatktoball(void) { - gActiveBank = gBankAttacker; - if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) + gActiveBattler = gBankAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { EmitReturnPokeToBall(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr++; } @@ -8295,12 +8295,12 @@ static void atk4C_getswitchedmondata(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - gBattlePartyID[gActiveBank] = ewram16068arr(gActiveBank); + gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler); - EmitGetAttributes(0, 0, gBitTable[gBattlePartyID[gActiveBank]]); - MarkBufferBankForExecution(gActiveBank); + EmitGetAttributes(0, 0, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -8313,40 +8313,40 @@ static void atk4D_switchindataupdate(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - oldData = gBattleMons[gActiveBank]; - monData = (u8*)(&gBattleMons[gActiveBank]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + oldData = gBattleMons[gActiveBattler]; + monData = (u8*)(&gBattleMons[gActiveBattler]); for (i = 0; i < sizeof(struct BattlePokemon); i++) { - monData[i] = gBattleBufferB[gActiveBank][4 + i]; + monData[i] = gBattleBufferB[gActiveBattler][4 + i]; } - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility); // check knocked off item - i = GetBankSide(gActiveBank); - if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBank]]) + i = GetBattlerSide(gActiveBattler); + if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]]) { - gBattleMons[gActiveBank].item = 0; + gBattleMons[gActiveBattler].item = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { for (i = 0; i < 8; i++) { - gBattleMons[gActiveBank].statStages[i] = oldData.statStages[i]; + gBattleMons[gActiveBattler].statStages[i] = oldData.statStages[i]; } - gBattleMons[gActiveBank].status2 = oldData.status2; + gBattleMons[gActiveBattler].status2 = oldData.status2; } SwitchInClearSetData(); - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]); gBattlescriptCurrInstr += 2; } @@ -8356,14 +8356,14 @@ static void atk4E_switchinanim(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER))) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER))) { - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2); } - gAbsentBankFlags &= ~(gBitTable[gActiveBank]); - EmitSendOutPoke(0, gBattlePartyID[gActiveBank], T2_READ_8(gBattlescriptCurrInstr + 2)); - MarkBufferBankForExecution(gActiveBank); + gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); + EmitSendOutPoke(0, gBattlerPartyIndexes[gActiveBattler], T2_READ_8(gBattlescriptCurrInstr + 2)); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } @@ -8373,29 +8373,29 @@ static void atk4F_jumpifcantswitch(void) register struct Pokemon *party; u8 r7; //0x80 byte is used as a way of telling the function whether to not check status2/status3 - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F); if (!(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x80) - && ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) - || (gStatuses3[gActiveBank] & STATUS3_ROOTED))) + && ((gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + || (gStatuses3[gActiveBattler] & STATUS3_ROOTED))) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); return; } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankSide(gActiveBank) == 1) + if (GetBattlerSide(gActiveBattler) == 1) party = gEnemyParty; else party = gPlayerParty; val = 0; - if (sub_803FBFC(sub_803FC34(gActiveBank)) == 1) + if (sub_803FBFC(sub_803FC34(gActiveBattler)) == 1) val = 3; for (to_cmp = val + 3; val < to_cmp; val++) { if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBank] != val) + && gBattlerPartyIndexes[gActiveBattler] != val) break; } if (val == to_cmp) @@ -8405,20 +8405,20 @@ static void atk4F_jumpifcantswitch(void) } else { - if (GetBankSide(gActiveBank) == 1) + if (GetBattlerSide(gActiveBattler) == 1) { - r7 = GetBankByIdentity(1); + r7 = GetBattlerAtPosition(1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByIdentity(3); + to_cmp = GetBattlerAtPosition(3); else to_cmp = r7; party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); + r7 = GetBattlerAtPosition(0); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByIdentity(2); + to_cmp = GetBattlerAtPosition(2); else to_cmp = r7; party = gPlayerParty; @@ -8428,7 +8428,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_HP) != 0 && GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) - && val != gBattlePartyID[r7] && val != gBattlePartyID[to_cmp]) + && val != gBattlerPartyIndexes[r7] && val != gBattlerPartyIndexes[to_cmp]) break; } if (val == 6) @@ -8440,9 +8440,9 @@ static void atk4F_jumpifcantswitch(void) void sub_8022A3C(u8 unkown) { - BATTLE_PARTY_ID(gActiveBank) = gBattlePartyID[gActiveBank]; - EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); + BATTLE_PARTY_ID(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; + EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBattler]); + MarkBufferBankForExecution(gActiveBattler); } /* @@ -8456,25 +8456,25 @@ static void atk50_openpartyscreen(void) { if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) { - for (gActiveBank = i; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBattler = i; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) + if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (sub_8018018(gActiveBank, 6, 6) == 0 - && !gSpecialStatuses[gActiveBank].flag40) + else if (sub_8018018(gActiveBattler, 6, 6) == 0 + && !gSpecialStatuses[gActiveBattler].flag40) { sub_8022A3C(6); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } else { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= (~HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= (~HITMARKER_FAINTED(gActiveBattler)); EmitLinkStandbyMsg(0, 2); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } @@ -8484,8 +8484,8 @@ static void atk50_openpartyscreen(void) { } - else if (sub_8018018(gActiveBank, 6, 6) == 0 - && !gSpecialStatuses[gActiveBank].flag40) + else if (sub_8018018(gActiveBattler, 6, 6) == 0 + && !gSpecialStatuses[gActiveBattler].flag40) { } @@ -8536,9 +8536,9 @@ _08022ACE:\n\ ands r1, r0\n\ cmp r1, 0x1\n\ beq _08022BBC\n\ - ldr r1, _08022B4C @ =gActiveBank\n\ + ldr r1, _08022B4C @ =gActiveBattler\n\ strb r7, [r1]\n\ - ldr r0, _08022B50 @ =gNoOfAllBanks\n\ + ldr r0, _08022B50 @ =gBattlersCount\n\ ldrb r0, [r0]\n\ cmp r7, r0\n\ bcc _08022AE8\n\ @@ -8547,7 +8547,7 @@ _08022AE8:\n\ ldr r7, _08022B54 @ =gHitMarker\n\ ldr r6, _08022B58 @ =gBitTable\n\ adds r4, r1, 0\n\ - ldr r0, _08022B5C @ =gAbsentBankFlags\n\ + ldr r0, _08022B5C @ =gAbsentBattlerFlags\n\ mov r8, r0\n\ _08022AF2:\n\ ldrb r2, [r4]\n\ @@ -8591,11 +8591,11 @@ _08022AF2:\n\ .align 2, 0\n\ _08022B44: .4byte gBattlescriptCurrInstr\n\ _08022B48: .4byte gBattleTypeFlags\n\ -_08022B4C: .4byte gActiveBank\n\ -_08022B50: .4byte gNoOfAllBanks\n\ +_08022B4C: .4byte gActiveBattler\n\ +_08022B50: .4byte gBattlersCount\n\ _08022B54: .4byte gHitMarker\n\ _08022B58: .4byte gBitTable\n\ -_08022B5C: .4byte gAbsentBankFlags\n\ +_08022B5C: .4byte gAbsentBattlerFlags\n\ _08022B60:\n\ ldr r5, _08022B90 @ =gSpecialStatuses\n\ ldrb r0, [r4]\n\ @@ -8631,7 +8631,7 @@ _08022BA2:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ strb r0, [r4]\n\ - ldr r1, _08022BB8 @ =gNoOfAllBanks\n\ + ldr r1, _08022BB8 @ =gBattlersCount\n\ lsls r0, 24\n\ lsrs r0, 24\n\ ldrb r1, [r1]\n\ @@ -8639,7 +8639,7 @@ _08022BA2:\n\ bcc _08022AF2\n\ b _08022F62\n\ .align 2, 0\n\ -_08022BB8: .4byte gNoOfAllBanks\n\ +_08022BB8: .4byte gBattlersCount\n\ _08022BBC:\n\ ands r1, r0\n\ cmp r1, 0\n\ @@ -8655,7 +8655,7 @@ _08022BC4:\n\ ands r0, r5\n\ cmp r0, 0\n\ beq _08022C7E\n\ - ldr r4, _08022C24 @ =gActiveBank\n\ + ldr r4, _08022C24 @ =gActiveBattler\n\ strb r7, [r4]\n\ movs r0, 0\n\ movs r1, 0x6\n\ @@ -8664,7 +8664,7 @@ _08022BC4:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022C2C\n\ - ldr r2, _08022C28 @ =gAbsentBankFlags\n\ + ldr r2, _08022C28 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8689,8 +8689,8 @@ _08022BC4:\n\ .align 2, 0\n\ _08022C1C: .4byte gHitMarker\n\ _08022C20: .4byte gBitTable\n\ -_08022C24: .4byte gActiveBank\n\ -_08022C28: .4byte gAbsentBankFlags\n\ +_08022C24: .4byte gActiveBattler\n\ +_08022C28: .4byte gAbsentBattlerFlags\n\ _08022C2C:\n\ ldr r6, _08022C60 @ =gSpecialStatuses\n\ ldrb r0, [r4]\n\ @@ -8739,7 +8739,7 @@ _08022C7E:\n\ ands r0, r5\n\ cmp r0, 0\n\ bne _08022D40\n\ - ldr r4, _08022CDC @ =gActiveBank\n\ + ldr r4, _08022CDC @ =gActiveBattler\n\ movs r0, 0x2\n\ strb r0, [r4]\n\ movs r0, 0x2\n\ @@ -8749,7 +8749,7 @@ _08022C7E:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022CE8\n\ - ldr r2, _08022CE0 @ =gAbsentBankFlags\n\ + ldr r2, _08022CE0 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8773,8 +8773,8 @@ _08022C7E:\n\ b _08022D40\n\ .align 2, 0\n\ _08022CD8: .4byte gBitTable\n\ -_08022CDC: .4byte gActiveBank\n\ -_08022CE0: .4byte gAbsentBankFlags\n\ +_08022CDC: .4byte gActiveBattler\n\ +_08022CE0: .4byte gAbsentBattlerFlags\n\ _08022CE4: .4byte gHitMarker\n\ _08022CE8:\n\ ldr r6, _08022D1C @ =gSpecialStatuses\n\ @@ -8823,7 +8823,7 @@ _08022D40:\n\ ands r0, r5\n\ cmp r0, 0\n\ beq _08022DF6\n\ - ldr r4, _08022D94 @ =gActiveBank\n\ + ldr r4, _08022D94 @ =gActiveBattler\n\ movs r0, 0x1\n\ strb r0, [r4]\n\ movs r0, 0x1\n\ @@ -8833,7 +8833,7 @@ _08022D40:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022DA0\n\ - ldr r2, _08022D98 @ =gAbsentBankFlags\n\ + ldr r2, _08022D98 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8857,8 +8857,8 @@ _08022D40:\n\ b _08022DF6\n\ .align 2, 0\n\ _08022D90: .4byte gBitTable\n\ -_08022D94: .4byte gActiveBank\n\ -_08022D98: .4byte gAbsentBankFlags\n\ +_08022D94: .4byte gActiveBattler\n\ +_08022D98: .4byte gAbsentBattlerFlags\n\ _08022D9C: .4byte gHitMarker\n\ _08022DA0:\n\ ldr r6, _08022DD4 @ =gSpecialStatuses\n\ @@ -8910,7 +8910,7 @@ _08022DF6:\n\ ands r0, r5\n\ cmp r0, 0\n\ bne _08022EB8\n\ - ldr r4, _08022E54 @ =gActiveBank\n\ + ldr r4, _08022E54 @ =gActiveBattler\n\ movs r0, 0x3\n\ strb r0, [r4]\n\ movs r0, 0x3\n\ @@ -8920,7 +8920,7 @@ _08022DF6:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08022E60\n\ - ldr r2, _08022E58 @ =gAbsentBankFlags\n\ + ldr r2, _08022E58 @ =gAbsentBattlerFlags\n\ ldrb r0, [r4]\n\ lsls r0, 2\n\ adds r0, r6\n\ @@ -8944,8 +8944,8 @@ _08022DF6:\n\ b _08022EB8\n\ .align 2, 0\n\ _08022E50: .4byte gBitTable\n\ -_08022E54: .4byte gActiveBank\n\ -_08022E58: .4byte gAbsentBankFlags\n\ +_08022E54: .4byte gActiveBattler\n\ +_08022E58: .4byte gAbsentBattlerFlags\n\ _08022E5C: .4byte gHitMarker\n\ _08022E60:\n\ ldr r6, _08022E94 @ =gSpecialStatuses\n\ @@ -9002,30 +9002,30 @@ _08022EB8:\n\ blt _08022F0C\n\ cmp r5, 0\n\ beq _08022F0C\n\ - ldr r0, _08022EEC @ =gAbsentBankFlags\n\ + ldr r0, _08022EEC @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r0, _08022EF0 @ =gBitTable\n\ ldr r0, [r0]\n\ ands r1, r0\n\ cmp r1, 0\n\ beq _08022EF8\n\ - ldr r1, _08022EF4 @ =gActiveBank\n\ + ldr r1, _08022EF4 @ =gActiveBattler\n\ movs r0, 0x2\n\ strb r0, [r1]\n\ b _08022EFC\n\ .align 2, 0\n\ _08022EE8: .4byte gSpecialStatuses\n\ -_08022EEC: .4byte gAbsentBankFlags\n\ +_08022EEC: .4byte gAbsentBattlerFlags\n\ _08022EF0: .4byte gBitTable\n\ -_08022EF4: .4byte gActiveBank\n\ +_08022EF4: .4byte gActiveBattler\n\ _08022EF8:\n\ - ldr r0, _08022F3C @ =gActiveBank\n\ + ldr r0, _08022F3C @ =gActiveBattler\n\ strb r1, [r0]\n\ _08022EFC:\n\ movs r0, 0\n\ movs r1, 0x2\n\ bl EmitLinkStandbyMsg\n\ - ldr r0, _08022F3C @ =gActiveBank\n\ + ldr r0, _08022F3C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ bl MarkBufferBankForExecution\n\ _08022F0C:\n\ @@ -9042,30 +9042,30 @@ _08022F0C:\n\ blt _08022F62\n\ cmp r5, 0\n\ beq _08022F62\n\ - ldr r0, _08022F44 @ =gAbsentBankFlags\n\ + ldr r0, _08022F44 @ =gAbsentBattlerFlags\n\ ldrb r0, [r0]\n\ ldr r1, _08022F48 @ =gBitTable\n\ ldr r1, [r1, 0x4]\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _08022F4C\n\ - ldr r1, _08022F3C @ =gActiveBank\n\ + ldr r1, _08022F3C @ =gActiveBattler\n\ movs r0, 0x3\n\ b _08022F50\n\ .align 2, 0\n\ -_08022F3C: .4byte gActiveBank\n\ +_08022F3C: .4byte gActiveBattler\n\ _08022F40: .4byte gSpecialStatuses\n\ -_08022F44: .4byte gAbsentBankFlags\n\ +_08022F44: .4byte gAbsentBattlerFlags\n\ _08022F48: .4byte gBitTable\n\ _08022F4C:\n\ - ldr r1, _08022F6C @ =gActiveBank\n\ + ldr r1, _08022F6C @ =gActiveBattler\n\ movs r0, 0x1\n\ _08022F50:\n\ strb r0, [r1]\n\ movs r0, 0\n\ movs r1, 0x2\n\ bl EmitLinkStandbyMsg\n\ - ldr r0, _08022F6C @ =gActiveBank\n\ + ldr r0, _08022F6C @ =gActiveBattler\n\ ldrb r0, [r0]\n\ bl MarkBufferBankForExecution\n\ _08022F62:\n\ @@ -9075,7 +9075,7 @@ _08022F62:\n\ str r0, [r1]\n\ b _08023302\n\ .align 2, 0\n\ -_08022F6C: .4byte gActiveBank\n\ +_08022F6C: .4byte gActiveBattler\n\ _08022F70: .4byte gBattlescriptCurrInstr\n\ _08022F74:\n\ cmp r0, 0x6\n\ @@ -9108,7 +9108,7 @@ _08022F92:\n\ ands r0, r5\n\ cmp r0, 0\n\ beq _0802303A\n\ - ldr r6, _08022FFC @ =gActiveBank\n\ + ldr r6, _08022FFC @ =gActiveBattler\n\ movs r0, 0x2\n\ strb r0, [r6]\n\ ldr r0, _08023000 @ =gBattleBufferB\n\ @@ -9119,7 +9119,7 @@ _08022F92:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08023008\n\ - ldr r2, _08023004 @ =gAbsentBankFlags\n\ + ldr r2, _08023004 @ =gAbsentBattlerFlags\n\ ldrb r0, [r6]\n\ lsls r0, 2\n\ adds r0, r4\n\ @@ -9144,9 +9144,9 @@ _08022F92:\n\ _08022FF0: .4byte gBattleTypeFlags\n\ _08022FF4: .4byte gHitMarker\n\ _08022FF8: .4byte gBitTable\n\ -_08022FFC: .4byte gActiveBank\n\ +_08022FFC: .4byte gActiveBattler\n\ _08023000: .4byte gBattleBufferB\n\ -_08023004: .4byte gAbsentBankFlags\n\ +_08023004: .4byte gAbsentBattlerFlags\n\ _08023008:\n\ ldr r4, _08023098 @ =gSpecialStatuses\n\ ldrb r0, [r6]\n\ @@ -9182,7 +9182,7 @@ _0802303A:\n\ ands r5, r0\n\ cmp r5, 0\n\ beq _080230EE\n\ - ldr r5, _080230A8 @ =gActiveBank\n\ + ldr r5, _080230A8 @ =gActiveBattler\n\ movs r0, 0x3\n\ strb r0, [r5]\n\ ldr r0, _080230AC @ =gBattleBufferB\n\ @@ -9195,7 +9195,7 @@ _0802303A:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _080230BC\n\ - ldr r2, _080230B4 @ =gAbsentBankFlags\n\ + ldr r2, _080230B4 @ =gAbsentBattlerFlags\n\ ldrb r0, [r5]\n\ lsls r0, 2\n\ adds r0, r4\n\ @@ -9222,10 +9222,10 @@ _08023098: .4byte gSpecialStatuses\n\ _0802309C: .4byte gSharedMem\n\ _080230A0: .4byte 0x00016068\n\ _080230A4: .4byte gBitTable\n\ -_080230A8: .4byte gActiveBank\n\ +_080230A8: .4byte gActiveBattler\n\ _080230AC: .4byte gBattleBufferB\n\ _080230B0: .4byte 0x00000201\n\ -_080230B4: .4byte gAbsentBankFlags\n\ +_080230B4: .4byte gAbsentBattlerFlags\n\ _080230B8: .4byte gHitMarker\n\ _080230BC:\n\ ldr r4, _080230FC @ =gSpecialStatuses\n\ @@ -9277,7 +9277,7 @@ _08023110:\n\ ldr r4, _08023168 @ =gBitTable\n\ ldr r2, [r4]\n\ ands r2, r5\n\ - ldr r6, _0802316C @ =gNoOfAllBanks\n\ + ldr r6, _0802316C @ =gBattlersCount\n\ cmp r2, 0\n\ bne _0802314C\n\ adds r7, r6, 0\n\ @@ -9314,7 +9314,7 @@ _08023156:\n\ _08023160: .4byte gHitMarker\n\ _08023164: .4byte gBank1\n\ _08023168: .4byte gBitTable\n\ -_0802316C: .4byte gNoOfAllBanks\n\ +_0802316C: .4byte gBattlersCount\n\ _08023170:\n\ movs r0, 0x80\n\ ands r0, r2\n\ @@ -9351,9 +9351,9 @@ _080231A8:\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _080231F8\n\ - ldr r2, _080231E8 @ =gActiveBank\n\ + ldr r2, _080231E8 @ =gActiveBattler\n\ strb r7, [r2]\n\ - ldr r3, _080231EC @ =gAbsentBankFlags\n\ + ldr r3, _080231EC @ =gAbsentBattlerFlags\n\ ldr r4, _080231F0 @ =gBitTable\n\ ldrb r0, [r2]\n\ lsls r0, 2\n\ @@ -9375,19 +9375,19 @@ _080231A8:\n\ str r0, [r6]\n\ b _08023302\n\ .align 2, 0\n\ -_080231E8: .4byte gActiveBank\n\ -_080231EC: .4byte gAbsentBankFlags\n\ +_080231E8: .4byte gActiveBattler\n\ +_080231EC: .4byte gAbsentBattlerFlags\n\ _080231F0: .4byte gBitTable\n\ _080231F4: .4byte gHitMarker\n\ _080231F8:\n\ - ldr r4, _080232A0 @ =gActiveBank\n\ + ldr r4, _080232A0 @ =gActiveBattler\n\ strb r7, [r4]\n\ ldr r3, _080232A4 @ =gSharedMem\n\ ldrb r0, [r4]\n\ ldr r2, _080232A8 @ =0x00016064\n\ adds r1, r0, r2\n\ adds r1, r3\n\ - ldr r2, _080232AC @ =gBattlePartyID\n\ + ldr r2, _080232AC @ =gBattlerPartyIndexes\n\ lsls r0, 1\n\ adds r0, r2\n\ ldrh r0, [r0]\n\ @@ -9416,7 +9416,7 @@ _080231F8:\n\ adds r0, 0x6\n\ str r0, [r6]\n\ ldrb r0, [r4]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0802325A\n\ @@ -9433,10 +9433,10 @@ _0802325A:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _080232C4\n\ - ldr r1, _080232A0 @ =gActiveBank\n\ + ldr r1, _080232A0 @ =gActiveBattler\n\ movs r0, 0\n\ strb r0, [r1]\n\ - ldr r0, _080232C0 @ =gNoOfAllBanks\n\ + ldr r0, _080232C0 @ =gBattlersCount\n\ ldrb r0, [r0]\n\ cmp r0, 0\n\ beq _08023302\n\ @@ -9454,7 +9454,7 @@ _0802328A:\n\ ldrb r0, [r4]\n\ adds r0, 0x1\n\ strb r0, [r4]\n\ - ldr r1, _080232C0 @ =gNoOfAllBanks\n\ + ldr r1, _080232C0 @ =gBattlersCount\n\ lsls r0, 24\n\ lsrs r0, 24\n\ ldrb r1, [r1]\n\ @@ -9462,26 +9462,26 @@ _0802328A:\n\ bcc _08023276\n\ b _08023302\n\ .align 2, 0\n\ -_080232A0: .4byte gActiveBank\n\ +_080232A0: .4byte gActiveBattler\n\ _080232A4: .4byte gSharedMem\n\ _080232A8: .4byte 0x00016064\n\ -_080232AC: .4byte gBattlePartyID\n\ +_080232AC: .4byte gBattlerPartyIndexes\n\ _080232B0: .4byte 0x00016068\n\ _080232B4: .4byte 0x0001606c\n\ _080232B8: .4byte gBattleResults\n\ _080232BC: .4byte gBattleTypeFlags\n\ -_080232C0: .4byte gNoOfAllBanks\n\ +_080232C0: .4byte gBattlersCount\n\ _080232C4:\n\ adds r0, r7, 0\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByIdentity\n\ - ldr r4, _08023310 @ =gActiveBank\n\ + bl GetBattlerAtPosition\n\ + ldr r4, _08023310 @ =gActiveBattler\n\ strb r0, [r4]\n\ - ldr r0, _08023314 @ =gAbsentBankFlags\n\ + ldr r0, _08023314 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _08023318 @ =gBitTable\n\ ldrb r3, [r4]\n\ @@ -9509,8 +9509,8 @@ _08023302:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_08023310: .4byte gActiveBank\n\ -_08023314: .4byte gAbsentBankFlags\n\ +_08023310: .4byte gActiveBattler\n\ +_08023314: .4byte gAbsentBattlerFlags\n\ _08023318: .4byte gBitTable\n\ .syntax divided"); } @@ -9521,11 +9521,11 @@ static void atk51_switchhandleorder(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); switch (T2_READ_8(gBattlescriptCurrInstr + 2)) { case 0: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleBufferB[i][0] == 0x22) ewram16068arr(i) = gBattleBufferB[i][1]; @@ -9533,22 +9533,22 @@ static void atk51_switchhandleorder(void) break; case 1: if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - sub_8012258(gActiveBank); + sub_8012258(gActiveBattler); break; case 2: - gBattleCommunication[0] = gBattleBufferB[gActiveBank][1]; - ewram16068arr(gActiveBank) = gBattleBufferB[gActiveBank][1]; + gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1]; + ewram16068arr(gActiveBattler) = gBattleBufferB[gActiveBattler][1]; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - ewram1606Carr(0, gActiveBank) &= 0xF; - ewram1606Carr(0, gActiveBank) |= (gBattleBufferB[gActiveBank][2] & 0xF0); - ewram1606Carr(1, gActiveBank) = gBattleBufferB[gActiveBank][3]; - ewram1606Carr(0, (gActiveBank ^ 2)) &= (0xF0); - ewram1606Carr(0, (gActiveBank ^ 2)) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; - ewram1606Carr(2, (gActiveBank ^ 2)) = gBattleBufferB[gActiveBank][3]; + ewram1606Carr(0, gActiveBattler) &= 0xF; + ewram1606Carr(0, gActiveBattler) |= (gBattleBufferB[gActiveBattler][2] & 0xF0); + ewram1606Carr(1, gActiveBattler) = gBattleBufferB[gActiveBattler][3]; + ewram1606Carr(0, (gActiveBattler ^ 2)) &= (0xF0); + ewram1606Carr(0, (gActiveBattler ^ 2)) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4; + ewram1606Carr(2, (gActiveBattler ^ 2)) = gBattleBufferB[gActiveBattler][3]; } else - sub_8012258(gActiveBank); + sub_8012258(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 6; @@ -9558,8 +9558,8 @@ static void atk51_switchhandleorder(void) gBattleTextBuff2[0] = 0xFD; gBattleTextBuff2[1] = 7; - gBattleTextBuff2[2] = gActiveBank; - gBattleTextBuff2[3] = gBattleBufferB[gActiveBank][1]; + gBattleTextBuff2[2] = gActiveBattler; + gBattleTextBuff2[3] = gBattleBufferB[gActiveBattler][1]; gBattleTextBuff2[4] = 0xFF; break; } @@ -9570,24 +9570,24 @@ static void atk52_switchineffects(void) { int i; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - sub_80157C4(gActiveBank); - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - gSpecialStatuses[gActiveBank].flag40 = 0; + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + sub_80157C4(gActiveBattler); + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); + gSpecialStatuses[gActiveBattler].flag40 = 0; - if (!(gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES) - && gBattleMons[gActiveBank].type1 != TYPE_FLYING && gBattleMons[gActiveBank].type2 != TYPE_FLYING && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) + if (!(gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES) + && gBattleMons[gActiveBattler].type1 != TYPE_FLYING && gBattleMons[gActiveBattler].type2 != TYPE_FLYING && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE) { u8 spikesDmg; - gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; + gSideAffecting[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED; - spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2; - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg); + spikesDmg = (5 - gSideTimers[GetBattlerSide(gActiveBattler)].spikesAmount) * 2; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (spikesDmg); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; BattleScriptPushCursor(); if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0) @@ -9599,24 +9599,24 @@ static void atk52_switchineffects(void) } else { - if (gBattleMons[gActiveBank].ability == ABILITY_TRUANT) + if (gBattleMons[gActiveBattler].ability == ABILITY_TRUANT) { - gDisableStructs[gActiveBank].truantCounter = 1; + gDisableStructs[gActiveBattler].truantCounter = 1; } - if (AbilityBattleEffects(0, gActiveBank, 0, 0, 0) == 0 && ItemBattleEffects(0, gActiveBank, 0) == 0) + if (AbilityBattleEffects(0, gActiveBattler, 0, 0, 0) == 0 && ItemBattleEffects(0, gActiveBattler, 0) == 0) { - gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == gActiveBank) + if (gBanksByTurnOrder[i] == gActiveBattler) gActionsByTurnOrder[i] = 0xC; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - *(HP_ON_SWITCHOUT + GetBankSide(i)) = gBattleMons[i].hp; + *(HP_ON_SWITCHOUT + GetBattlerSide(i)) = gBattleMons[i].hp; } if (T2_READ_8(gBattlescriptCurrInstr + 1) == 5) @@ -9625,9 +9625,9 @@ static void atk52_switchineffects(void) gBank1++; while (1) { - if (hitmark & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1])) + if (hitmark & gBitTable[gBank1] && !(gAbsentBattlerFlags & gBitTable[gBank1])) break; - if (gBank1 >= gNoOfAllBanks) + if (gBank1 >= gBattlersCount) break; gBank1++; } @@ -9640,52 +9640,52 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBank = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); else - gActiveBank = GetBankByIdentity(1); + gActiveBattler = GetBattlerAtPosition(1); EmitTrainerSlide(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk54_playse(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitEffectivenessSound(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk55_fanfare(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; Emitcmd44(0, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk56_playfaintcry(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); EmitFaintingCry(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk57(void) { - gActiveBank = GetBankByIdentity(0); + gActiveBattler = GetBattlerAtPosition(0); Emitcmd55(0, gBattleOutcome); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 1; } static void atk58_returntoball(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); EmitReturnPokeToBall(0, 1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -9708,14 +9708,14 @@ void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByIdentity(0); - if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) - GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + gActiveBattler = GetBattlerAtPosition(0); + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) + GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if { - gActiveBank = GetBankByIdentity(2); - if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) - GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + gActiveBattler = GetBattlerAtPosition(2); + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) + GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); } gBattlescriptCurrInstr = loc1; } @@ -9737,7 +9737,7 @@ void sub_8023AD8(void) static void atk5A_yesnoboxlearnmove(void) { - gActiveBank = 0; + gActiveBattler = 0; switch (gBattleStruct->atk5A_StateTracker) { case 0: @@ -9800,7 +9800,7 @@ static void atk5A_yesnoboxlearnmove(void) u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MOVE1 + move_pos); if (IsHMMove2(move)) { - PrepareStringBattle(0x13F, gActiveBank); + PrepareStringBattle(0x13F, gActiveBattler); gBattleStruct->atk5A_StateTracker = 5; } else @@ -9819,13 +9819,13 @@ static void atk5A_yesnoboxlearnmove(void) ptr[0] = 0xFF; RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterID], move_pos); SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterID], gMoveToLearn, move_pos); - if (gBattlePartyID[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[0].unk18_b & gBitTable[move_pos])) { RemoveBattleMonPPBonus(&gBattleMons[0], move_pos); SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, move_pos); } - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[2].unk18_b & gBitTable[move_pos])) { RemoveBattleMonPPBonus(&gBattleMons[2], move_pos); @@ -9893,13 +9893,13 @@ static void atk5B_yesnoboxstoplearningmove(void) static void atk5C_hitanimation(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr += 2; - else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0) + else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { EmitHitAnimation(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } else @@ -10236,23 +10236,23 @@ static void atk5D_getmoneyreward(void) static void atk5E_8025A70(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); switch (gBattleCommunication[0]) { case 0: EmitGetAttributes(0, REQUEST_ALL_BATTLE, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[0]++; break; case 1: if (gBattleExecBuffer == 0) { int i; - struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBank][4]; + struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4]; for (i = 0; i < 4; i++) { - gBattleMons[gActiveBank].moves[i] = bufferPoke->moves[i]; - gBattleMons[gActiveBank].pp[i] = bufferPoke->pp[i]; + gBattleMons[gActiveBattler].moves[i] = bufferPoke->moves[i]; + gBattleMons[gActiveBattler].pp[i] = bufferPoke->pp[i]; } gBattlescriptCurrInstr += 2; } @@ -10262,9 +10262,9 @@ static void atk5E_8025A70(void) static void atk5F_8025B24(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; gBankAttacker = gBankTarget; - gBankTarget = gActiveBank; + gBankTarget = gActiveBattler; //what is xor... if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -10275,7 +10275,7 @@ static void atk5F_8025B24(void) static void atk60_incrementgamestat(void) { - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) { IncrementGameStat(T2_READ_8(gBattlescriptCurrInstr + 1)); } @@ -10290,8 +10290,8 @@ static void atk61_drawpartystatussummary(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (GetBankSide(gActiveBank) == 0) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + if (GetBattlerSide(gActiveBattler) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -10310,15 +10310,15 @@ static void atk61_drawpartystatussummary(void) } } EmitDrawPartyStatusSummary(0, hpStatus, 1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk62_08025C6C(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); Emitcmd49(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -10335,11 +10335,11 @@ static void atk64_statusanimation(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, 0, gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 2; } @@ -10350,12 +10350,12 @@ static void atk65_status2animation(void) if (gBattleExecBuffer == 0) { u32 possible_to_anim; - gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, 1, gBattleMons[gActiveBank].status2 & possible_to_anim); - MarkBufferBankForExecution(gActiveBank); + EmitStatusAnimation(0, 1, gBattleMons[gActiveBattler].status2 & possible_to_anim); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 6; } @@ -10366,12 +10366,12 @@ static void atk66_chosenstatusanimation(void) if (gBattleExecBuffer == 0) { u32 status; - gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1)); status = T1_READ_32(gBattlescriptCurrInstr + 3); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 7; } @@ -10422,7 +10422,7 @@ static void atk67_yesnobox(void) static void atk68_cancelallactions(void) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { gActionsByTurnOrder[i] = 0xC; } @@ -10459,12 +10459,12 @@ static void atk69_adjustsetdamage(void) //literally a copy of atk07 except there if (gProtectStructs[gBankTarget].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; goto END; } if (gSpecialStatuses[gBankTarget].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBankTarget].item; } @@ -10474,12 +10474,12 @@ static void atk69_adjustsetdamage(void) //literally a copy of atk07 except there void atk6A_removeitem(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item; + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + USED_HELD_ITEMS(gActiveBattler) = gBattleMons[gActiveBattler].item; - gBattleMons[gActiveBank].item = 0; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gActiveBattler].item = 0; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -10488,7 +10488,7 @@ static void atk6B_atknameinbuff1(void) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 7; gBattleTextBuff1[2] = gBankAttacker; - gBattleTextBuff1[3] = gBattlePartyID[gBankAttacker]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBankAttacker]; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr++; } @@ -10927,22 +10927,22 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(0); + gBankAttacker = GetBattlerAtPosition(0); gBattlescriptCurrInstr++; } static void atk6F_makevisible(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); EmitSpriteInvisibility(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk70_recordlastability(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); gBattlescriptCurrInstr += 1; //buggy, should be += 2, one byte for command, one byte for argument... } @@ -10975,8 +10975,8 @@ static void atk73_hpthresholds(void) s32 result; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - opposing_bank = gActiveBank ^ 1; + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + opposing_bank = gActiveBattler ^ 1; result = gBattleMons[opposing_bank].hp * 100 / gBattleMons[opposing_bank].maxHP; if (result == 0) @@ -11002,9 +11002,9 @@ static void atk74_hpthresholds2(void) s32 result; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - opposing_bank = gActiveBank ^ 1; - hp_switchout = ewram160BCarr(GetBankSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBankSide(opposing_bank)]; + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + opposing_bank = gActiveBattler ^ 1; + hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)]; result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout; if (gBattleMons[opposing_bank].hp >= hp_switchout) @@ -11023,27 +11023,27 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { gBankInMenu = gBankAttacker; - PokemonUseItemEffects(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); + PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBankAttacker], 0, 1); gBattlescriptCurrInstr += 1; } static void atk76_various(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); switch (T2_READ_8(gBattlescriptCurrInstr + 2)) { case 0: - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); break; case 1: { u8 side; gBankAttacker = gBankTarget; - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBattlerSide(gBankAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) gBankTarget = gSideTimers[side].followmeTarget; else - gBankTarget = gActiveBank; + gBankTarget = gActiveBattler; } break; case 2: @@ -11053,35 +11053,35 @@ static void atk76_various(void) gBankTarget = GetMoveTarget(gCurrentMove, 0); break; case 4: - if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) gBattleCommunication[0] = 1; else gBattleCommunication[0] = 0; break; case 5: - gSpecialStatuses[gActiveBank].intimidatedPoke = 0; - gSpecialStatuses[gActiveBank].traced = 0; + gSpecialStatuses[gActiveBattler].intimidatedPoke = 0; + gSpecialStatuses[gActiveBattler].traced = 0; break; case 6: { int i; u16* choiced_move; - if (gBattlePartyID[0] == gBattleStruct->expGetterID) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID) goto ACTIVE_0; - if (gBattlePartyID[2] != gBattleStruct->expGetterID) + if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) break; - if (gBattlePartyID[0] == gBattlePartyID[2]) + if (gBattlerPartyIndexes[0] == gBattlerPartyIndexes[2]) { ACTIVE_0: - gActiveBank = 0; + gActiveBattler = 0; } else - gActiveBank = 2; + gActiveBattler = 2; - choiced_move = CHOICED_MOVE(gActiveBank); + choiced_move = CHOICED_MOVE(gActiveBattler); for (i = 0; i < 4; i++) { - if (gBattleMons[gActiveBank].moves[i] == *choiced_move) + if (gBattleMons[gActiveBattler].moves[i] == *choiced_move) break; } if (i == 4) @@ -11100,7 +11100,7 @@ static void atk77_setprotectlike(void) //protect and endure if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; - if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1)) + if (gCurrentTurnActionNumber == (gBattlersCount - 1)) not_last_turn = 0; if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn) @@ -11121,7 +11121,7 @@ static void atk77_setprotectlike(void) //protect and endure { gDisableStructs[gBankAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; } gBattlescriptCurrInstr++; @@ -11132,25 +11132,25 @@ static void atk78_faintifabilitynotdamp(void) if (gBattleExecBuffer) return; - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) { if (gBattleMons[gBankTarget].ability == ABILITY_DAMP) break; } - if (gBankTarget == gNoOfAllBanks) + if (gBankTarget == gBattlersCount) { - gActiveBank = gBankAttacker; - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gActiveBattler = gBankAttacker; + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } } @@ -11167,10 +11167,10 @@ static void atk79_setatkhptozero(void) if (gBattleExecBuffer) return; - gActiveBank = gBankAttacker; - gBattleMons[gActiveBank].hp = 0; - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBankAttacker; + gBattleMons[gActiveBattler].hp = 0; + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; } @@ -11185,11 +11185,11 @@ static void atk7A_jumpifnexttargetvalid(void) //used by intimidate to loop throu { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } - if (gBankTarget >= gNoOfAllBanks) + if (gBankTarget >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jump_loc; @@ -11264,7 +11264,7 @@ static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -11278,15 +11278,15 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_REFLECT) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].reflectTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -11297,14 +11297,14 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -11342,7 +11342,7 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1); - gActiveBank = gBankTarget = gBankAttacker; + gActiveBattler = gBankTarget = gBankAttacker; gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) gBattlescriptCurrInstr = fail_loc; @@ -11354,8 +11354,8 @@ static void atk81_trysetrest(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleMons[gBankTarget].status1 = 3; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } } @@ -11378,7 +11378,7 @@ static void atk83_nop(void) bool8 UproarWakeUpCheck(u8 bank) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) //wtf gamefreak, you should check this only once, not every time in a loop... continue; @@ -11391,7 +11391,7 @@ bool8 UproarWakeUpCheck(u8 bank) gBattleCommunication[MULTISTRING_CHOOSER] = 1; break; } - if (i == gNoOfAllBanks) + if (i == gBattlersCount) return 0; else return 1; @@ -11419,7 +11419,7 @@ static void atk85_stockpile(void) { if (gDisableStructs[gBankAttacker].stockpileCounter == 3) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -11448,7 +11448,7 @@ static void atk86_stockpiletobasedamage(void) if (gBattleCommunication[6] != 1) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBankIdentity(gBankTarget) & 1], 0, + gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, 0, gBankAttacker, gBankTarget) * gDisableStructs[gBankAttacker].stockpileCounter; gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter; @@ -11504,9 +11504,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; else - gActiveBank = gBankTarget; + gActiveBattler = gBankTarget; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -11522,21 +11522,21 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if ((statValue << 0x18) < 0) // stat decrease { - if (gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer + if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer && !certain && gCurrentMove != MOVE_CURSE) { if (flags == STAT_CHANGE_BS_PTR) { - if (gSpecialStatuses[gActiveBank].statLowered) + if (gSpecialStatuses[gActiveBattler].statLowered) { gBattlescriptCurrInstr = BS_ptr; } else { BattleScriptPush(BS_ptr); - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; gBattlescriptCurrInstr = BattleScript_MistProtected; - gSpecialStatuses[gActiveBank].statLowered = 1; + gSpecialStatuses[gActiveBattler].statLowered = 1; } } return STAT_CHANGE_DIDNT_WORK; @@ -11547,55 +11547,55 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) gBattlescriptCurrInstr = BattleScript_ButItFailed; return STAT_CHANGE_DIDNT_WORK; } - else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY - || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE) + else if ((gBattleMons[gActiveBattler].ability == ABILITY_CLEAR_BODY + || gBattleMons[gActiveBattler].ability == ABILITY_WHITE_SMOKE) && !certain && gCurrentMove != MOVE_CURSE) { if (flags == STAT_CHANGE_BS_PTR) { - if (gSpecialStatuses[gActiveBank].statLowered) + if (gSpecialStatuses[gActiveBattler].statLowered) { gBattlescriptCurrInstr = BS_ptr; } else { BattleScriptPush(BS_ptr); - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); - gSpecialStatuses[gActiveBank].statLowered = 1; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); + gSpecialStatuses[gActiveBattler].statLowered = 1; } } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE + else if (gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && !certain && statId == STAT_STAGE_ACC) { if (flags == STAT_CHANGE_BS_PTR) { BattleScriptPush(BS_ptr); - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER + else if (gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && !certain && statId == STAT_STAGE_ATK) { if (flags == STAT_CHANGE_BS_PTR) { BattleScriptPush(BS_ptr); - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_SHIELD_DUST && flags == 0) + else if (gBattleMons[gActiveBattler].ability == ABILITY_SHIELD_DUST && flags == 0) { return STAT_CHANGE_DIDNT_WORK; } @@ -11619,10 +11619,10 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBank].statStages[statId] == 0) + if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); } } @@ -11646,20 +11646,20 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBank].statStages[statId] == 0xC) + if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBattler); } - gBattleMons[gActiveBank].statStages[statId] += statValue; - if (gBattleMons[gActiveBank].statStages[statId] < 0) - gBattleMons[gActiveBank].statStages[statId] = 0; - if (gBattleMons[gActiveBank].statStages[statId] > 0xC) - gBattleMons[gActiveBank].statStages[statId] = 0xC; + gBattleMons[gActiveBattler].statStages[statId] += statValue; + if (gBattleMons[gActiveBattler].statStages[statId] < 0) + gBattleMons[gActiveBattler].statStages[statId] = 0; + if (gBattleMons[gActiveBattler].statStages[statId] > 0xC) + gBattleMons[gActiveBattler].statStages[statId] = 0xC; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR) - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR)) return STAT_CHANGE_DIDNT_WORK; @@ -11677,7 +11677,7 @@ static void atk89_statbuffchange(void) static void atk8A_normalisebuffs(void) //haze { int i, j; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < 8; j++) { @@ -11733,7 +11733,7 @@ static bool8 sub_80264C0(void) { if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) { - ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget]; + ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; } else { @@ -11743,7 +11743,7 @@ static bool8 sub_80264C0(void) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return 0; } - ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget]; + ewram16064arr(gBankTarget) = gBattlerPartyIndexes[gBankTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; @@ -11757,7 +11757,7 @@ static void atk8F_forcerandomswitch(void) struct Pokemon* party; u8 valid; u8 val; - if (!GetBankSide(gBankTarget)) + if (!GetBattlerSide(gBankTarget)) party = gPlayerParty; else party = gEnemyParty; @@ -11805,7 +11805,7 @@ static void atk8F_forcerandomswitch(void) i = val + 3; else i = val; - } while (i == gBattlePartyID[gBankTarget] || i == gBattlePartyID[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { @@ -11814,14 +11814,14 @@ static void atk8F_forcerandomswitch(void) do { i = Random() % 6; - } while (i == gBattlePartyID[gBankTarget] || i == gBattlePartyID[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || i == gBattlerPartyIndexes[gBankTarget ^ 2] || !MON_CAN_BATTLE(&party[i])); } else { do { i = Random() % 6; - } while (i == gBattlePartyID[gBankTarget] || !MON_CAN_BATTLE(&party[i])); + } while (i == gBattlerPartyIndexes[gBankTarget] || !MON_CAN_BATTLE(&party[i])); } } ewram16068arr(gBankTarget) = i; @@ -11919,15 +11919,15 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].lightscreenTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else @@ -11957,7 +11957,7 @@ static void atk93_tryKO(void) if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = x; RecordAbilityBattle(gBankTarget, ABILITY_STURDY); @@ -11969,7 +11969,7 @@ static void atk93_tryKO(void) u16 to_cmp = gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level + gBattleMoves[gCurrentMove].accuracy; if (Random() % 0x64 + 1 < to_cmp || gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) { - goto MOVESTATUS_MISSED_LABEL; + goto MOVE_RESULT_MISSED_LABEL; } } else @@ -11980,8 +11980,8 @@ static void atk93_tryKO(void) } } -MOVESTATUS_MISSED_LABEL: - gBattleTypeFlags |= MOVESTATUS_MISSED; +MOVE_RESULT_MISSED_LABEL: + gBattleTypeFlags |= MOVE_RESULT_MISSED; if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else @@ -12078,7 +12078,7 @@ _08026C0C:\n\ mov r10, r8\n\ cmp r3, 0x5\n\ bne _08026C6C\n\ - ldr r2, _08026C5C @ =gBattleMoveFlags\n\ + ldr r2, _08026C5C @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x1\n\ orrs r0, r1\n\ @@ -12098,7 +12098,7 @@ _08026C4C: .4byte gStringBank\n\ _08026C50: .4byte gBankTarget\n\ _08026C54: .4byte gSpecialStatuses\n\ _08026C58: .4byte gBattleMons\n\ -_08026C5C: .4byte gBattleMoveFlags\n\ +_08026C5C: .4byte gMoveResultFlags\n\ _08026C60: .4byte gLastUsedAbility\n\ _08026C64: .4byte gBattlescriptCurrInstr\n\ _08026C68: .4byte BattleScript_SturdyPreventsOHKO\n\ @@ -12208,7 +12208,7 @@ _08026D20:\n\ ldrh r0, [r0, 0x28]\n\ subs r0, 0x1\n\ str r0, [r1]\n\ - ldr r2, _08026D60 @ =gBattleMoveFlags\n\ + ldr r2, _08026D60 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x40\n\ b _08026DC6\n\ @@ -12218,7 +12218,7 @@ _08026D50: .4byte gBankAttacker\n\ _08026D54: .4byte gProtectStructs\n\ _08026D58: .4byte gBankTarget\n\ _08026D5C: .4byte gBattleMoveDamage\n\ -_08026D60: .4byte gBattleMoveFlags\n\ +_08026D60: .4byte gMoveResultFlags\n\ _08026D64:\n\ ldr r0, _08026DA0 @ =gSpecialStatuses\n\ lsls r1, r2, 2\n\ @@ -12237,7 +12237,7 @@ _08026D64:\n\ ldrh r0, [r0, 0x28]\n\ subs r0, 0x1\n\ str r0, [r1]\n\ - ldr r2, _08026DA8 @ =gBattleMoveFlags\n\ + ldr r2, _08026DA8 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x80\n\ orrs r0, r1\n\ @@ -12253,7 +12253,7 @@ _08026D64:\n\ .align 2, 0\n\ _08026DA0: .4byte gSpecialStatuses\n\ _08026DA4: .4byte gBattleMoveDamage\n\ -_08026DA8: .4byte gBattleMoveFlags\n\ +_08026DA8: .4byte gMoveResultFlags\n\ _08026DAC: .4byte gLastUsedItem\n\ _08026DB0: .4byte gBankTarget\n\ _08026DB4:\n\ @@ -12263,7 +12263,7 @@ _08026DB4:\n\ add r0, r10\n\ ldrh r0, [r0, 0x28]\n\ str r0, [r1]\n\ - ldr r2, _08026DD8 @ =gBattleMoveFlags\n\ + ldr r2, _08026DD8 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x10\n\ _08026DC6:\n\ @@ -12277,10 +12277,10 @@ _08026DCA:\n\ b _08026E40\n\ .align 2, 0\n\ _08026DD4: .4byte gBattleMoveDamage\n\ -_08026DD8: .4byte gBattleMoveFlags\n\ +_08026DD8: .4byte gMoveResultFlags\n\ _08026DDC: .4byte gBattlescriptCurrInstr\n\ _08026DE0:\n\ - ldr r2, _08026E10 @ =gBattleMoveFlags\n\ + ldr r2, _08026E10 @ =gMoveResultFlags\n\ ldrb r0, [r2]\n\ movs r1, 0x1\n\ orrs r0, r1\n\ @@ -12305,7 +12305,7 @@ _08026DE0:\n\ movs r0, 0\n\ b _08026E24\n\ .align 2, 0\n\ -_08026E10: .4byte gBattleMoveFlags\n\ +_08026E10: .4byte gMoveResultFlags\n\ _08026E14: .4byte gBankAttacker\n\ _08026E18: .4byte gBankTarget\n\ _08026E1C: .4byte gBattleCommunication\n\ @@ -12354,7 +12354,7 @@ static void atk95_setsandstorm(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -12402,7 +12402,7 @@ static void atk96_weatherdamage(void) else gBattleMoveDamage = 0; - if (gAbsentBankFlags & gBitTable[gBankAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBankAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -12413,15 +12413,15 @@ static void atk97_tryinfatuating(void) struct Pokemon *attacker, *target; u16 atk_species, def_species; u32 atk_pid, def_pid; - if (!GetBankSide(gBankAttacker)) - attacker = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + if (!GetBattlerSide(gBankAttacker)) + attacker = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; else - attacker = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + attacker = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; - if (!GetBankSide(gBankTarget)) - target = &gPlayerParty[gBattlePartyID[gBankTarget]]; + if (!GetBattlerSide(gBankTarget)) + target = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; else - target = &gEnemyParty[gBattlePartyID[gBankTarget]]; + target = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; atk_species = GetMonData(attacker, MON_DATA_SPECIES); atk_pid = GetMonData(attacker, MON_DATA_PERSONALITY); @@ -12458,26 +12458,26 @@ static void atk98_updatestatusicon(void) if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } else { - gActiveBank = gBankAttacker; - if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + gActiveBattler = gBankAttacker; + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); } } gBattlescriptCurrInstr += 2; @@ -12486,15 +12486,15 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer) + if (gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5; - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_MIST; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].mistTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -12504,7 +12504,7 @@ static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -12521,7 +12521,7 @@ static void atk9B_transformdataexecution(void) gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -12554,9 +12554,9 @@ static void atk9B_transformdataexecution(void) gBattleMons[gBankAttacker].pp[j] = 5; } - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitResetActionMoveSelection(0, 2); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; } } @@ -12937,8 +12937,8 @@ static void atkA0_psywavedamageeffect(void) static void atkA1_counterdamagecalculator(void) { - u8 atk_side = GetBankSide(gBankAttacker); - u8 def_side = GetBankSide(gProtectStructs[gBankAttacker].physicalBank); + u8 atk_side = GetBattlerSide(gBankAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].physicalBank); if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) { gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; @@ -12957,8 +12957,8 @@ static void atkA1_counterdamagecalculator(void) static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the physical -> special field changes { - u8 atk_side = GetBankSide(gBankAttacker); - u8 def_side = GetBankSide(gProtectStructs[gBankAttacker].specialBank); + u8 atk_side = GetBattlerSide(gBankAttacker); + u8 def_side = GetBattlerSide(gProtectStructs[gBankAttacker].specialBank); if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) { gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; @@ -13387,7 +13387,7 @@ static void atkA8_copymovepermanently(void) struct move_pp moves_data; gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBankTarget]; gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBankTarget]].pp; - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; for (i = 0; i < 4; i++) { moves_data.move[i] = gBattleMons[gBankAttacker].moves[i]; @@ -13395,7 +13395,7 @@ static void atkA8_copymovepermanently(void) } moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = gUnknown_02024C2C[gBankTarget]; @@ -13478,8 +13478,8 @@ static void atkAA_setdestinybond(void) static void TrySetDestinyBondToHappen(void) { - u8 atk_side = GetBankSide(gBankAttacker); - u8 def_side = GetBankSide(gBankTarget); + u8 atk_side = GetBattlerSide(gBankAttacker); + u8 def_side = GetBattlerSide(gBankTarget); if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND && atk_side != def_side && !(gHitMarker & HITMARKER_GRUDGE)) gHitMarker |= HITMARKER_DESTINYBOND; } @@ -13533,12 +13533,12 @@ static void atkAD_tryspiteppreduce(void) gBattleTextBuff2[5] = 0xFF; gBattleMons[gBankTarget].pp[i] -= lost_pp; - gActiveBank = gBankTarget; - if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i]) - && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + gActiveBattler = gBankTarget; + if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) + && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 5; if (gBattleMons[gBankTarget].pp[i] == 0) @@ -13560,7 +13560,7 @@ static void atkAE_healpartystatus(void) int i; gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -13575,16 +13575,16 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBank = gBattleStruct->scriptingActive = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) + gActiveBattler = gBattleStruct->scriptingActive = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gActiveBank].status1 = 0; + gBattleMons[gActiveBattler].status1 = 0; } else { - RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); + RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 2; } } @@ -13596,10 +13596,10 @@ static void atkAE_healpartystatus(void) if (species != 0 && species != SPECIES_EGG) { u8 ability; - if (gBattlePartyID[gBankAttacker] == i) + if (gBattlerPartyIndexes[gBankAttacker] == i) ability = gBattleMons[gBankAttacker].ability; - else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[gActiveBank] == i && !(gAbsentBankFlags & gBitTable[gActiveBank])) - ability = gBattleMons[gActiveBank].ability; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) + ability = gBattleMons[gActiveBattler].ability; else ability = GetAbilityBySpecies(species, abilityBit); if (ability != ABILITY_SOUNDPROOF) @@ -13613,15 +13613,15 @@ static void atkAE_healpartystatus(void) to_heal = 0x3F; gBattleMons[gBankAttacker].status1 = zero2; - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) - gBattleMons[gActiveBank].status1 = 0; + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) + gBattleMons[gActiveBattler].status1 = 0; } //missing check? - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; } @@ -13644,7 +13644,7 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 side = GetBankSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBankAttacker) ^ 1; if (gSideTimers[side].spikesAmount == 3) { gSpecialStatuses[gBankAttacker].flag20 = 1; @@ -13668,20 +13668,20 @@ static void atkB2_trysetperishsong(void) { int not_affected_pokes = 0, i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_PERISH_SONG || gBattleMons[i].ability == ABILITY_SOUNDPROOF) not_affected_pokes++; else { gStatuses3[i] |= STATUS3_PERISH_SONG; - gDisableStructs[i].perishSong1 = 3; - gDisableStructs[i].perishSong2 = 3; + gDisableStructs[i].perishSongTimer1 = 3; + gDisableStructs[i].perishSongTimer2 = 3; } } PressurePPLoseOnUsingPerishSong(gBankAttacker); - if (not_affected_pokes == gNoOfAllBanks) + if (not_affected_pokes == gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -13689,7 +13689,7 @@ static void atkB2_trysetperishsong(void) static void atkB3_rolloutdamagecalculation(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { CancelMultiTurnMoves(gBankAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13728,7 +13728,7 @@ static void atkB4_jumpifconfusedandstatmaxed(void) static void atkB5_furycuttercalc(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13779,22 +13779,22 @@ static void atkB7_presentdamagecalculation(void) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { - //gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED); only in Emerald + //gMoveResultFlags &= ~(MOVE_RESULT_DOESNT_AFFECT_FOE); only in Emerald gBattlescriptCurrInstr = BattleScript_PresentHealTarget; } } static void atkB8_setsafeguard(void) { - if (gSideAffecting[GetBankIdentity(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) + if (gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] & SIDE_STATUS_SAFEGUARD) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5; + gSideAffecting[GetBattlerPosition(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GetBattlerPosition(gBankAttacker) & 1].safeguardTimer = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } gBattlescriptCurrInstr++; @@ -13846,11 +13846,11 @@ static void atkB9_magnitudedamagecalculation(void) gBattleTextBuff1[4] = magnitude; gBattleTextBuff1[5] = 0xFF; - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) //a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) //a valid target was found break; } gBattlescriptCurrInstr++; @@ -13860,24 +13860,24 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByIdentity(1); + if (GetBattlerSide(gBankAttacker) == 0) + gBankTarget = GetBattlerAtPosition(1); else - gBankTarget = GetBankByIdentity(0); + gBankTarget = GetBattlerAtPosition(0); } else { - if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByIdentity(3); + if (GetBattlerSide(gBankAttacker) == 0) + gBankTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBankByIdentity(2); + gBankTarget = GetBattlerAtPosition(2); } if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) && gBattleMons[gBankAttacker].hp && !gDisableStructs[gBankTarget].truantCounter && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBanksByTurnOrder[i] == gBankTarget) gActionsByTurnOrder[i] = 11; @@ -13895,7 +13895,7 @@ static void atkBB_setsunny(void) { if (gBattleWeather & WEATHER_SUN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -13958,10 +13958,10 @@ static void atkBE_rapidspinfree(void) //rapid spin BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideAffecting[GetBattlerSide(gBankAttacker)] & SIDE_STATUS_SPIKES) { - gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; + gSideAffecting[GetBattlerSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBankAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -14148,11 +14148,11 @@ _080298A8: .4byte gBattlescriptCurrInstr\n\ static void atkC2_selectfirstvalidtarget(void) { - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gBattlersCount; gBankTarget++) { if (gBankTarget == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } gBattlescriptCurrInstr++; @@ -14170,7 +14170,7 @@ static void atkC3_trysetfutureattack(void) gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; gWishFutureKnock.futureSightCounter[gBankTarget] = 3; gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GetBankIdentity(gBankTarget) & 1], 0, + gSideAffecting[GetBattlerPosition(gBankTarget) & 1], 0, 0, gBankAttacker, gBankTarget); if (gProtectStructs[gBankAttacker].helpingHand) @@ -14189,7 +14189,7 @@ static void atkC3_trysetfutureattack(void) static void atkC4_trydobeatup(void) { register struct Pokemon* party asm("r7"); - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -14241,7 +14241,7 @@ static void atkC4_trydobeatup(void) push {r6,r7}\n\ ldr r0, _08029A8C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ ldr r7, _08029A90 @ =gEnemyParty\n\ cmp r0, 0\n\ @@ -14532,7 +14532,7 @@ static void atkC8_sethail(void) { if (gBattleWeather & WEATHER_HAIL) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -14552,18 +14552,18 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { - gActiveBank = gBankAttacker; - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gActiveBattler = gBankAttacker; + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; EmitHealthBarUpdate(0, 0x7FFF); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } } static void atkCA_setforcedtarget(void) //follow me { - gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1; - gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker; + gSideTimers[GetBattlerSide(gBankAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBankAttacker)].followmeTarget = gBankAttacker; gBattlescriptCurrInstr++; } @@ -14590,9 +14590,9 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh { gBattleMons[gBankAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -14631,8 +14631,8 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBankTarget]) && !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand) { gProtectStructs[gBankTarget].helpingHand = 1; @@ -14645,9 +14645,9 @@ static void atkD1_trysethelpinghand(void) #ifdef NONMATCHING static void atkD2_tryswapitems(void) { - if ((GetBankSide(gBankAttacker) != 1 || gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER) || gTrainerBattleOpponent == 0x400)) + if ((GetBattlerSide(gBankAttacker) != 1 || gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER) || gTrainerBattleOpponent == 0x400)) { - u8 side = GetBankSide(gBankAttacker); + u8 side = GetBattlerSide(gBankAttacker); if (gBattleTypeFlags) } @@ -14667,7 +14667,7 @@ static void atkD2_tryswapitems(void) sub sp, 0x4\n\ ldr r0, _0802A30C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -14687,7 +14687,7 @@ static void atkD2_tryswapitems(void) _0802A24C:\n\ ldr r4, _0802A30C @ =gBankAttacker\n\ ldrb r0, [r4]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r2, r0, 24\n\ ldr r0, _0802A310 @ =gBattleTypeFlags\n\ @@ -14707,7 +14707,7 @@ _0802A24C:\n\ adds r0, r2, r0\n\ ldrb r1, [r0]\n\ ldr r3, _0802A320 @ =gBitTable\n\ - ldr r2, _0802A324 @ =gBattlePartyID\n\ + ldr r2, _0802A324 @ =gBattlerPartyIndexes\n\ ldrb r0, [r4]\n\ lsls r0, 1\n\ adds r0, r2\n\ @@ -14789,7 +14789,7 @@ _0802A314: .4byte 0x00000902\n\ _0802A318: .4byte gTrainerBattleOpponent\n\ _0802A31C: .4byte gWishFutureKnock\n\ _0802A320: .4byte gBitTable\n\ -_0802A324: .4byte gBattlePartyID\n\ +_0802A324: .4byte gBattlerPartyIndexes\n\ _0802A328: .4byte gBattleMons\n\ _0802A32C: .4byte gBankTarget\n\ _0802A330: .4byte gBattlescriptCurrInstr\n\ @@ -14841,7 +14841,7 @@ _0802A36C:\n\ add r0, r9\n\ mov r3, r10\n\ strh r3, [r0, 0x2E]\n\ - ldr r5, _0802A460 @ =gActiveBank\n\ + ldr r5, _0802A460 @ =gActiveBattler\n\ ldr r1, _0802A45C @ =gBankAttacker\n\ ldrb r0, [r1]\n\ strb r0, [r5]\n\ @@ -14937,7 +14937,7 @@ _0802A36C:\n\ .align 2, 0\n\ _0802A458: .4byte gSharedMem + 0x160F0\n\ _0802A45C: .4byte gBankAttacker\n\ -_0802A460: .4byte gActiveBank\n\ +_0802A460: .4byte gActiveBattler\n\ _0802A464: .4byte 0xfffe9f10\n\ _0802A468: .4byte 0x000160e8\n\ _0802A46C: .4byte 0x000160e9\n\ @@ -14995,7 +14995,7 @@ static void atkD4_trywish(void) if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) { gWishFutureKnock.wishCounter[gBankAttacker] = 2; - gWishFutureKnock.wishUserID[gBankAttacker] = gBattlePartyID[gBankAttacker]; + gWishFutureKnock.wishUserID[gBankAttacker] = gBattlerPartyIndexes[gBankAttacker]; gBattlescriptCurrInstr += 6; } else @@ -15078,7 +15078,7 @@ static void atkDA_tryswapabilities(void) { if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD - || gBattleMoveFlags & MOVESTATUS_NOEFFECT) + || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -15100,9 +15100,9 @@ static void atkDB_tryimprision(void) { u8 bank; PressurePPLoseOnUsingImprision(gBankAttacker); - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { - if (r8 != GetBankSide(bank)) + if (r8 != GetBattlerSide(bank)) { int j; for (j = 0; j < 4; j++) @@ -15124,7 +15124,7 @@ static void atkDB_tryimprision(void) } } } - if (bank == gNoOfAllBanks) + if (bank == gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } @@ -15162,14 +15162,14 @@ static void atkDE_asistattackselect(void) struct Pokemon* party; int i, j; u16* chooseable_moves; - if (GetBankIdentity(gBankAttacker) & 1) + if (GetBattlerPosition(gBankAttacker) & 1) party = gEnemyParty; else party = gPlayerParty; for (i = 0; i < 6; i++) { - if (i == gBattlePartyID[gBankAttacker]) + if (i == gBattlerPartyIndexes[gBankAttacker]) break; if (!GetMonData(&party[i], MON_DATA_SPECIES2) || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) break; @@ -15224,7 +15224,7 @@ static void atkDE_asistattackselect(void) mov r10, r0\n\ ldr r0, _0802AB9C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ movs r1, 0x1\n\ ands r1, r0\n\ ldr r0, _0802ABA0 @ =gPlayerParty\n\ @@ -15236,7 +15236,7 @@ static void atkDE_asistattackselect(void) _0802AAAC:\n\ movs r2, 0\n\ _0802AAAE:\n\ - ldr r1, _0802ABA8 @ =gBattlePartyID\n\ + ldr r1, _0802ABA8 @ =gBattlerPartyIndexes\n\ ldr r0, _0802AB9C @ =gBankAttacker\n\ ldrb r0, [r0]\n\ lsls r0, 1\n\ @@ -15358,7 +15358,7 @@ _0802AB54:\n\ _0802AB9C: .4byte gBankAttacker\n\ _0802ABA0: .4byte gPlayerParty\n\ _0802ABA4: .4byte gEnemyParty\n\ -_0802ABA8: .4byte gBattlePartyID\n\ +_0802ABA8: .4byte gBattlerPartyIndexes\n\ _0802ABAC: .4byte 0x0000ffff\n\ _0802ABB0: .4byte gSharedMem + 0x16024\n\ _0802ABB4: .4byte sMovesForbiddenToCopy\n\ @@ -15401,7 +15401,7 @@ static void atkDF_trysetmagiccoat(void) { gBankTarget = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn + if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -15413,7 +15413,7 @@ static void atkDF_trysetmagiccoat(void) static void atkE0_trysetsnatch(void) { gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn + if (gCurrentTurnActionNumber == gBattlersCount - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -15427,21 +15427,21 @@ static void atkE1_trygetintimidatetarget(void) u8 side; gBattleStruct->scriptingActive = ewram160DD; - side = GetBankSide(gBattleStruct->scriptingActive); + side = GetBattlerSide(gBattleStruct->scriptingActive); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 9; gBattleTextBuff1[2] = gBattleMons[gBattleStruct->scriptingActive].ability; gBattleTextBuff1[3] = 0xFF; - for (;gBankTarget < gNoOfAllBanks; gBankTarget++) + for (;gBankTarget < gBattlersCount; gBankTarget++) { - if (GetBankSide(gBankTarget) == side) + if (GetBattlerSide(gBankTarget) == side) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBankTarget])) break; } - if (gBankTarget >= gNoOfAllBanks) + if (gBankTarget >= gBattlersCount) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -15449,13 +15449,13 @@ static void atkE1_trygetintimidatetarget(void) static void atkE2_switchoutabilities(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - switch (gBattleMons[gActiveBank].ability) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + switch (gBattleMons[gActiveBattler].ability) { case ABILITY_NATURAL_CURE: - gBattleMons[gActiveBank].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gActiveBattler].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } gBattlescriptCurrInstr += 2; @@ -15463,8 +15463,8 @@ static void atkE2_switchoutabilities(void) static void atkE3_jumpifhasnohp(void) { - gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - if (gBattleMons[gActiveBank].hp == 0) + gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); + if (gBattleMons[gActiveBattler].hp == 0) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -15535,11 +15535,11 @@ static void atkE5_pickup(void) static void atkE6_docastformchangeanimation(void) { - gActiveBank = gBattleStruct->scriptingActive; - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) + gActiveBattler = gBattleStruct->scriptingActive; + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) gBattleStruct->castformToChangeInto |= 0x80; EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; } @@ -15605,15 +15605,15 @@ static void atkE9_setweatherballtype(void) static void atkEA_tryrecycleitem(void) { u16* used_item; - gActiveBank = gBankAttacker; - used_item = USED_HELD_ITEM(gActiveBank); - if (*used_item && gBattleMons[gActiveBank].item == 0) + gActiveBattler = gBankAttacker; + used_item = USED_HELD_ITEM(gActiveBattler); + if (*used_item && gBattleMons[gActiveBattler].item == 0) { gLastUsedItem = *used_item; *used_item = 0; - gBattleMons[gActiveBank].item = gLastUsedItem; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gActiveBattler].item = gLastUsedItem; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } else @@ -15638,15 +15638,15 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) && gActionForBanks[gActiveBank] == 0 && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gActionForBanks[gActiveBattler] == 0 && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) { - gActionsByTurnOrder[gActiveBank] = 11; + gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleStruct->animTurn = 1; gBattleStruct->unk160A7 = gBankAttacker; - gBankAttacker = gActiveBank; + gBankAttacker = gActiveBattler; } else gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -15665,7 +15665,7 @@ static void atkED_snatchsetbanks(void) static void atkEE_removelightscreenreflect(void) //brick break { - u8 side = GetBankSide(gBankAttacker) ^ 1; + u8 side = GetBattlerSide(gBankAttacker) ^ 1; if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer) { gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT); @@ -15689,18 +15689,18 @@ void atkEF_handleballthrow(void) if (gBattleExecBuffer) return; - gActiveBank = gBankAttacker; + gActiveBattler = gBankAttacker; gBankTarget = gBankAttacker ^ 1; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { EmitBallThrow(0, 5); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) { EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_WallyBallThrow; } else @@ -15778,9 +15778,9 @@ void atkEF_handleballthrow(void) if (odds > 254) //poke caught { EmitBallThrow(0, 4); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15795,11 +15795,11 @@ void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_MASTER_BALL) shakes = 4; //why calculate the shakes before that check? EmitBallThrow(0, shakes); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (shakes == 4) //poke caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankTarget]], MON_DATA_POKEBALL, (const void*) &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else @@ -15816,9 +15816,9 @@ void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]); + GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]); gBattleResults.caughtPoke = gBattleMons[gBankAttacker ^ 1].species; - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleResults.caughtNick); gBattlescriptCurrInstr++; } @@ -16020,15 +16020,15 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); - DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); gBattleCommunication[0]++; } break; case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } break; @@ -16061,5 +16061,5 @@ static void atkF6_finishaction(void) static void atkF7_finishturn(void) { gCurrentActionFuncId = 0xC; - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattlersCount; } diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c index 564d8b518..914ee245b 100644 --- a/src/battle/battle_7.c +++ b/src/battle/battle_7.c @@ -23,9 +23,9 @@ #include "graphics.h" extern u8 gBattleBufferA[][0x200]; -extern u8 gActiveBank; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gActiveBattler; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u8 gBankSpriteIds[]; extern u16 gUnknown_02024DE8; @@ -96,7 +96,7 @@ extern void c3_0802FDF4(u8); extern void sub_80440EC(); extern void sub_804777C(); extern void sub_8141828(); -extern u8 GetBankPosition(); +extern u8 GetBattlerSpriteCoord(); extern u8 IsBankSpritePresent(u8); extern u8 sub_8077F68(u8); extern u8 sub_8077F7C(u8); @@ -154,36 +154,36 @@ void sub_80313A0(struct Sprite *sprite) void move_anim_start_t2_for_situation(u8 a, u32 b) { - ewram17810[gActiveBank].unk0_4 = 1; + ewram17810[gActiveBattler].unk0_4 = 1; if (a == 0) { if (b == 0x20) - move_anim_start_t2(gActiveBank, 6); + move_anim_start_t2(gActiveBattler, 6); else if (b == 8 || (b & 0x80)) - move_anim_start_t2(gActiveBank, 0); + move_anim_start_t2(gActiveBattler, 0); else if (b == 0x10) - move_anim_start_t2(gActiveBank, 2); + move_anim_start_t2(gActiveBattler, 2); else if (b & 7) - move_anim_start_t2(gActiveBank, 4); + move_anim_start_t2(gActiveBattler, 4); else if (b == 0x40) - move_anim_start_t2(gActiveBank, 5); + move_anim_start_t2(gActiveBattler, 5); else - ewram17810[gActiveBank].unk0_4 = 0; + ewram17810[gActiveBattler].unk0_4 = 0; } else { if (b & 0x000F0000) - move_anim_start_t2(gActiveBank, 3); + move_anim_start_t2(gActiveBattler, 3); else if (b & 7) - move_anim_start_t2(gActiveBank, 1); + move_anim_start_t2(gActiveBattler, 1); else if (b & 0x10000000) - move_anim_start_t2(gActiveBank, 7); + move_anim_start_t2(gActiveBattler, 7); else if (b & 0x08000000) - move_anim_start_t2(gActiveBank, 8); + move_anim_start_t2(gActiveBattler, 8); else if (b & 0x0000E000) - move_anim_start_t2(gActiveBank, 9); + move_anim_start_t2(gActiveBattler, 9); else - ewram17810[gActiveBank].unk0_4 = 0; + ewram17810[gActiveBattler].unk0_4 = 0; } } @@ -274,7 +274,7 @@ bool8 mplay_80342A4(u8 a) if (IsSEPlaying()) { ewram17810[a].unk8++; - if (ewram17810[gActiveBank].unk8 < 30) + if (ewram17810[gActiveBattler].unk8 < 30) return TRUE; m4aMPlayStop(&gMPlay_SE1); m4aMPlayStop(&gMPlay_SE2); @@ -309,7 +309,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b) r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); - var = GetBankIdentity(b); + var = GetBattlerPosition(b); HandleLoadSpecialPokePic( &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, @@ -361,7 +361,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b) r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); - var = GetBankIdentity(b); + var = GetBattlerPosition(b); HandleLoadSpecialPokePic( &gMonBackPicTable[species], gMonBackPicCoords[species].coords, @@ -404,7 +404,7 @@ void sub_8031A6C(u16 a, u8 b) u8 status; struct CompressedSpriteSheet spriteSheet; - status = GetBankIdentity(b); + status = GetBattlerPosition(b); DecompressPicFromTable_2( &gTrainerFrontPicTable[a], gTrainerFrontPicCoords[a].coords, @@ -423,7 +423,7 @@ void LoadPlayerTrainerBankSprite(u16 a, u8 b) { u8 status; - status = GetBankIdentity(b); + status = GetBattlerPosition(b); DecompressPicFromTable_2( &gTrainerBackPicTable[a], gTrainerBackPicCoords[a].coords, @@ -558,7 +558,7 @@ u8 battle_load_something(u8 *pState, u8 *b) else gHealthboxIDs[*b] = battle_make_oam_normal_battle(*b); (*b)++; - if (*b == gNoOfAllBanks) + if (*b == gBattlersCount) { *b = 0; (*pState)++; @@ -571,25 +571,25 @@ u8 battle_load_something(u8 *pState, u8 *b) else nullsub_11(gHealthboxIDs[*b], 1); (*b)++; - if (*b == gNoOfAllBanks) + if (*b == gBattlersCount) { *b = 0; (*pState)++; } break; case 5: - if (GetBankSide(*b) == 0) + if (GetBattlerSide(*b) == 0) { if (!(gBattleTypeFlags & 0x80)) - sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlePartyID[*b]], 0); + sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlerPartyIndexes[*b]], 0); } else { - sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlePartyID[*b]], 0); + sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlerPartyIndexes[*b]], 0); } sub_8043DB0(gHealthboxIDs[*b]); (*b)++; - if (*b == gNoOfAllBanks) + if (*b == gBattlersCount) { *b = 0; (*pState)++; @@ -620,7 +620,7 @@ void sub_8031F24(void) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) ewram17800[i].invisible = gSprites[gBankSpriteIds[i]].invisible; } @@ -670,15 +670,15 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) } else { - r10 = GetBankIdentity(a); - if (GetBankSide(b) == 1) - species = GetMonData(&gEnemyParty[gBattlePartyID[b]], MON_DATA_SPECIES); + r10 = GetBattlerPosition(a); + if (GetBattlerSide(b) == 1) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[b]], MON_DATA_SPECIES); else - species = GetMonData(&gPlayerParty[gBattlePartyID[b]], MON_DATA_SPECIES); - if (GetBankSide(a) == 0) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[b]], MON_DATA_SPECIES); + if (GetBattlerSide(a) == 0) { - personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_OT_ID); HandleLoadSpecialPokePic( &gMonBackPicTable[species], gMonBackPicCoords[species].coords, @@ -690,8 +690,8 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) } else { - personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_OT_ID); HandleLoadSpecialPokePic( &gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, @@ -739,10 +739,10 @@ void BattleLoadSubstituteSprite(u8 a, u8 b) if (IsContest()) r4 = 0; else - r4 = GetBankIdentity(a); + r4 = GetBattlerPosition(a); if (IsContest()) LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]); - else if (GetBankSide(a) != 0) + else if (GetBattlerSide(a) != 0) LZDecompressVram(gSubstituteDollGfx, gUnknown_081FAF4C[r4]); else LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]); @@ -758,10 +758,10 @@ void BattleLoadSubstituteSprite(u8 a, u8 b) { if (!IsContest()) { - if (GetBankSide(a) != 0) - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); + if (GetBattlerSide(a) != 0) + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); else - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[a]], a); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[a]], a); } } } @@ -819,7 +819,7 @@ void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b) void BattleStopLowHpSound(void) { - u8 r4 = GetBankByIdentity(0); + u8 r4 = GetBattlerAtPosition(0); ewram17800[r4].unk0_1 = 0; if (IsDoubleBattle()) @@ -839,10 +839,10 @@ void sub_8032638(void) { if (gMain.inBattle) { - u8 r8 = GetBankByIdentity(0); - u8 r9 = GetBankByIdentity(2); - u8 r4 = pokemon_order_func(gBattlePartyID[r8]); - u8 r5 = pokemon_order_func(gBattlePartyID[r9]); + u8 r8 = GetBattlerAtPosition(0); + u8 r9 = GetBattlerAtPosition(2); + u8 r4 = pokemon_order_func(gBattlerPartyIndexes[r8]); + u8 r5 = pokemon_order_func(gBattlerPartyIndexes[r9]); if (GetMonData(&gPlayerParty[r4], MON_DATA_HP) != 0) HandleLowHpMusicChange(&gPlayerParty[r4], r8); @@ -858,7 +858,7 @@ void sub_80326EC(u8 a) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (IsBankSpritePresent(i) != 0) { @@ -881,13 +881,13 @@ void sub_80327CC(void) u8 r5; LoadCompressedObjectPic(&gUnknown_081FAF24); - r5 = GetBankByIdentity(1); - ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); + r5 = GetBattlerAtPosition(1); + ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBattlerSpriteCoord(r5, 0), GetBattlerSpriteCoord(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; if (IsDoubleBattle()) { - r5 = GetBankByIdentity(3); - ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); + r5 = GetBattlerAtPosition(3); + ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBattlerSpriteCoord(r5, 0), GetBattlerSpriteCoord(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; } } @@ -921,7 +921,7 @@ void sub_8032978(struct Sprite *sprite) void sub_8032984(u8 a, u16 b) { - if (GetBankSide(a) != 0) + if (GetBattlerSide(a) != 0) { if (ewram17800[a].transformedSpecies != 0) b = ewram17800[a].transformedSpecies; diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 629a57d25..134f6c18b 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -17,19 +17,19 @@ extern u8 gUnknown_02023A14_50; extern u32 gUnknown_02023A14_4C; extern u16 gBattleTypeFlags; extern u16 gBattleWeather; -extern u8 gActiveBank; -extern u16 gBattlePartyID[MAX_BANKS_BATTLE]; +extern u8 gActiveBattler; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern int gBattleMoveDamage; extern u8 gBankAttacker; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; -extern u8 gBattleMoveFlags; +extern u8 gAbsentBattlerFlags; +extern u8 gMoveResultFlags; extern u16 gDynamicBasePower; -extern u16 gLastUsedMove[MAX_BANKS_BATTLE]; -extern u32 gStatuses3[MAX_BANKS_BATTLE]; +extern u16 gLastUsedMove[MAX_BATTLERS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gSideAffecting[2]; -extern struct BattlePokemon gBattleMons[MAX_BANKS_BATTLE]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gCritMultiplier; extern u16 gTrainerBattleOpponent; extern u8 *BattleAIs[]; @@ -272,7 +272,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void) s32 i; u8 *data; - MEMSET_ALT(UNK_2016A00_STRUCT, 0, sizeof(struct UnkBattleStruct1), i, data); + MEMSET_ALT(AI_BATTLE_HISTORY, 0, sizeof(struct BattleHistory), i, data); if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 0x400 @@ -282,8 +282,8 @@ void BattleAI_HandleItemUseBeforeAISetup(void) { if (gTrainers[gTrainerBattleOpponent].items[i] != 0) { - UNK_2016A00_STRUCT->items[UNK_2016A00_STRUCT->numOfItems] = gTrainers[gTrainerBattleOpponent].items[i]; - UNK_2016A00_STRUCT->numOfItems++; + AI_BATTLE_HISTORY->trainerItems[AI_BATTLE_HISTORY->numItems] = gTrainers[gTrainerBattleOpponent].items[i]; + AI_BATTLE_HISTORY->numItems++; } } } @@ -303,7 +303,7 @@ void BattleAI_SetupAIData(void) for (i = 0; i < MAX_MON_MOVES; i++) AI_THINKING_STRUCT->score[i] = 100; - limitations = CheckMoveLimitations(gActiveBank, 0, 0xFF); + limitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF); // do not consider moves the AI cannot select // also, roll simulated RNG for moves that have a degree of @@ -318,17 +318,17 @@ void BattleAI_SetupAIData(void) // clear AI stack. AI_STACK->size = 0; - gBankAttacker = gActiveBank; + gBankAttacker = gActiveBattler; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { gBankTarget = Random() & 2; // just pick somebody to target. - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) gBankTarget ^= 2; } else - gBankTarget = gActiveBank ^ 1; + gBankTarget = gActiveBattler ^ 1; // special AI flag cases. if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) @@ -446,9 +446,9 @@ void sub_810745C(void) for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == 0) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == 0) { - UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; + AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; return; } } @@ -459,19 +459,19 @@ void unref_sub_81074A0(u8 a) s32 i; for (i = 0; i < 8; i++) - UNK_2016A00_STRUCT->movesUsed[a / 2][i] = 0; + AI_BATTLE_HISTORY->usedMoves[a / 2][i] = 0; } void RecordAbilityBattle(u8 a, u8 b) { - if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b; + if (GetBattlerSide(a) == 0) + AI_BATTLE_HISTORY->abilities[GetBattlerPosition(a) & 1] = b; } void RecordItemBattle(u8 a, u8 b) { - if (GetBankSide(a) == 0) - UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b; + if (GetBattlerSide(a) == 0) + AI_BATTLE_HISTORY->itemEffects[GetBattlerPosition(a) & 1] = b; } static void BattleAICmd_if_random_less_than(void) @@ -694,7 +694,7 @@ static void BattleAICmd_if_status4(void) else index = gBankTarget; - arg1 = GetBankIdentity(index) & 1; + arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); if ((gSideAffecting[arg1] & arg2) != 0) @@ -713,7 +713,7 @@ static void BattleAICmd_if_not_status4(void) else index = gBankTarget; - arg1 = GetBankIdentity(index) & 1; + arg1 = GetBattlerPosition(index) & 1; arg2 = T1_READ_32(gAIScriptPtr + 2); if ((gSideAffecting[arg1] & arg2) == 0) @@ -961,7 +961,7 @@ static void BattleAICmd_is_most_powerful_move(void) gDynamicBasePower = 0; eDynamicMoveType = 0; eDmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; for (i = 0; i < MAX_MON_MOVES; i++) @@ -1072,7 +1072,7 @@ _08108250:\n\ adds r0, r5, r2\n\ movs r2, 0x1\n\ strb r2, [r0]\n\ - ldr r0, _08108340 @ =gBattleMoveFlags\n\ + ldr r0, _08108340 @ =gMoveResultFlags\n\ strb r1, [r0]\n\ ldr r0, _08108344 @ =gCritMultiplier\n\ strb r2, [r0]\n\ @@ -1177,7 +1177,7 @@ _08108330: .4byte gBattleMoves\n\ _08108334: .4byte gSharedMem + 0x16800\n\ _08108338: .4byte gDynamicBasePower\n\ _0810833C: .4byte 0xfffff81c\n\ -_08108340: .4byte gBattleMoveFlags\n\ +_08108340: .4byte gMoveResultFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ _0810834C: .4byte gBankAttacker\n\ @@ -1317,7 +1317,7 @@ static void BattleAICmd_count_alive_pokemon(void) else index = gBankTarget; - if (GetBankSide(index) == 0) + if (GetBattlerSide(index) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -1325,14 +1325,14 @@ static void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 status; - var = gBattlePartyID[index]; - status = GetBankIdentity(index) ^ 2; - var2 = gBattlePartyID[GetBankByIdentity(status)]; + var = gBattlerPartyIndexes[index]; + status = GetBattlerPosition(index) ^ 2; + var2 = gBattlerPartyIndexes[GetBattlerAtPosition(status)]; } else { - var = gBattlePartyID[index]; - var2 = gBattlePartyID[index]; + var = gBattlerPartyIndexes[index]; + var2 = gBattlerPartyIndexes[index]; } for (i = 0; i < 6; i++) @@ -1370,13 +1370,13 @@ static void BattleAICmd_get_ability(void) else index = gBankTarget; - if (GetBankSide(index) == TARGET) + if (GetBattlerSide(index) == TARGET) { - u16 unk = GetBankIdentity(index) & 1; + u16 side = GetBattlerPosition(index) & 1; - if (UNK_2016A00_STRUCT->unk20[unk] != 0) + if (AI_BATTLE_HISTORY->abilities[side] != 0) { - AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk20[unk]; + AI_THINKING_STRUCT->funcResult = AI_BATTLE_HISTORY->abilities[side]; gAIScriptPtr += 2; return; } @@ -1430,7 +1430,7 @@ static void BattleAICmd_get_highest_possible_damage(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; AI_THINKING_STRUCT->funcResult = 0; @@ -1453,7 +1453,7 @@ static void BattleAICmd_get_highest_possible_damage(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = 10; - if (gBattleMoveFlags & 8) // if it's a status move, it wont do anything. + if (gMoveResultFlags & 8) // if it's a status move, it wont do anything. gBattleMoveDamage = 0; if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) @@ -1470,7 +1470,7 @@ static void BattleAICmd_if_damage_bonus(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = 40; @@ -1487,7 +1487,7 @@ static void BattleAICmd_if_damage_bonus(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = 10; - if (gBattleMoveFlags & 8) + if (gMoveResultFlags & 8) gBattleMoveDamage = 0; // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. @@ -1677,7 +1677,7 @@ static void BattleAICmd_if_can_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; AI_CalcDmg(gBankAttacker, gBankTarget); @@ -1706,7 +1706,7 @@ static void BattleAICmd_if_cant_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleStruct->dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; AI_CalcDmg(gBankAttacker, gBankTarget); @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_has_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) break; } if (i == 8) @@ -1779,7 +1779,7 @@ static void BattleAICmd_if_dont_have_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] == *temp_ptr) break; } if (i != 8) @@ -1812,7 +1812,7 @@ static void BattleAICmd_if_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); @@ -1841,7 +1841,7 @@ static void BattleAICmd_if_not_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i] != 0 && gBattleMoves[AI_BATTLE_HISTORY->usedMoves[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr += 7; @@ -1885,7 +1885,7 @@ static void BattleAICmd_if_encored(void) switch (gAIScriptPtr[1]) { case 0: // _08109348 - if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -1893,7 +1893,7 @@ static void BattleAICmd_if_encored(void) gAIScriptPtr += 6; return; case 1: // _08109370 - if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); return; @@ -1929,17 +1929,17 @@ static void BattleAICmd_watch(void) static void BattleAICmd_get_hold_effect(void) { u8 index; - u16 status; + u16 side; if (gAIScriptPtr[1] == USER) index = gBankAttacker; else index = gBankTarget; - if (GetBankSide(index) == 0) + if (GetBattlerSide(index) == 0) { - status = (GetBankIdentity(index) & 1); - AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk22[status]; + side = (GetBattlerPosition(index) & 1); + AI_THINKING_STRUCT->funcResult = AI_BATTLE_HISTORY->itemEffects[side]; } else AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[index].item); diff --git a/src/battle/battle_ai_switch_items.c b/src/battle/battle_ai_switch_items.c new file mode 100755 index 000000000..e01c7b729 --- /dev/null +++ b/src/battle/battle_ai_switch_items.c @@ -0,0 +1,1008 @@ +#include "global.h" +#include "battle.h" +#include "battle_ai_switch_items.h" +#include "battle_script_commands.h" +#include "data2.h" +#include "ewram.h" +#include "pokemon.h" +#include "random.h" +#include "rom_8077ABC.h" +#include "rom3.h" +#include "util.h" +#include "constants/abilities.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" + +extern u8 gUnknown_02023A14_50; + +extern u8 gLastHitBy[]; +extern u8 gActiveBattler; +extern u16 gBattleTypeFlags; +extern u8 gAbsentBattlerFlags; +extern s32 gBattleMoveDamage; +extern u8 gMoveResultFlags; +extern u16 gDynamicBasePower; +extern u8 gCritMultiplier; +extern u16 gBattlerPartyIndexes[]; +extern u16 gLastLandedMoves[]; +extern const u8 gTypeEffectiveness[]; +extern struct BattlePokemon gBattleMons[]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; + +static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); +static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); +static bool8 ShouldUseItem(void); + + +static bool8 ShouldSwitchIfPerishSong(void) +{ + if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG + && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = 6; + Emitcmd33(1, 2, 0); + return TRUE; + } + + return FALSE; +} + +#ifdef NONMATCHING +static bool8 ShouldSwitchIfWonderGuard(void) +{ + u8 opposingBattler; + u8 moveFlags; + s32 i, j; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return FALSE; + + if (gBattleMons[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)].ability != ABILITY_WONDER_GUARD) + return FALSE; + + // check if pokemon has a super effective move + opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + for (i = 0; i < 4; i++) + { + u16 move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBattler].species, gBattleMons[opposingBattler].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + return FALSE; + } + + // find a pokemon in the party that has a super effective move + for (i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0 + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG + || i == gBattlerPartyIndexes[gActiveBattler]) + continue; + + GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); // unused return value + GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY); // unused return value + + opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + for (j = 0; j < 4; j++) + { + u16 move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBattler].species, gBattleMons[opposingBattler].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && (Random() % 3) < 2) + { + // we found a mon + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; // gBattleStruct->AI_monToSwitchIntoId[GetBattlerPosition(gActiveBattler)] = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + } + + return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard +} +#else +__attribute__((naked)) +static bool8 ShouldSwitchIfWonderGuard(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + ldr r0, _0803606C @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080360A0\n\ + b _080361C8\n\ + .align 2, 0\n\ +_0803606C: .4byte gBattleTypeFlags\n\ +_08036070:\n\ + ldr r0, _08036094 @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + bl GetBattlerPosition\n\ + ldr r1, _08036098 @ =gSharedMem\n\ + lsls r0, 24\n\ + lsrs r0, 25\n\ + ldr r2, _0803609C @ =0x000160c8\n\ + adds r0, r2\n\ + adds r0, r1\n\ + strb r6, [r0]\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + movs r2, 0\n\ + bl Emitcmd33\n\ + movs r0, 0x1\n\ + b _080361CA\n\ + .align 2, 0\n\ +_08036094: .4byte gActiveBattler\n\ +_08036098: .4byte gSharedMem\n\ +_0803609C: .4byte 0x000160c8\n\ +_080360A0:\n\ + ldr r4, _080361D8 @ =gBattleMons\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0x58\n\ + muls r0, r1\n\ + adds r0, r4\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x19\n\ + beq _080360BC\n\ + b _080361C8\n\ +_080360BC:\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + movs r6, 0\n\ + adds r7, r4, 0\n\ + movs r5, 0x58\n\ + adds r0, r2, 0\n\ + muls r0, r5\n\ + adds r4, r0, r7\n\ + movs r3, 0x20\n\ + adds r3, r4\n\ + mov r8, r3\n\ +_080360D8:\n\ + lsls r1, r6, 1\n\ + ldr r0, _080361DC @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + muls r0, r5\n\ + adds r1, r0\n\ + adds r0, r7, 0\n\ + adds r0, 0xC\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + cmp r0, 0\n\ + beq _08036104\n\ + ldrh r1, [r4]\n\ + mov r3, r8\n\ + ldrb r2, [r3]\n\ + bl AI_TypeCalc\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + movs r0, 0x2\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _080361C8\n\ +_08036104:\n\ + adds r6, 0x1\n\ + cmp r6, 0x3\n\ + ble _080360D8\n\ + movs r6, 0\n\ + ldr r0, _080361E0 @ =gEnemyParty\n\ + mov r9, r0\n\ +_08036110:\n\ + movs r0, 0x64\n\ + adds r5, r6, 0\n\ + muls r5, r0\n\ + mov r2, r9\n\ + adds r4, r5, r2\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + movs r1, 0xCE\n\ + lsls r1, 1\n\ + cmp r0, r1\n\ + beq _080361C2\n\ + ldr r1, _080361E4 @ =gBattlerPartyIndexes\n\ + ldr r0, _080361DC @ =gActiveBattler\n\ + ldrb r0, [r0]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + cmp r6, r0\n\ + beq _080361C2\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + adds r0, r4, 0\n\ + movs r1, 0x2E\n\ + bl GetMonData\n\ + movs r0, 0\n\ + bl GetBattlerAtPosition\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + movs r4, 0\n\ + mov r8, r5\n\ + ldr r1, _080361D8 @ =gBattleMons\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r5, r0, r1\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ +_0803617C:\n\ + adds r1, r4, 0\n\ + adds r1, 0xD\n\ + mov r0, r8\n\ + add r0, r9\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0\n\ + beq _080361BC\n\ + ldrh r1, [r5]\n\ + ldrb r2, [r7]\n\ + bl AI_TypeCalc\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + movs r0, 0x2\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _080361BC\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _080361BC\n\ + b _08036070\n\ +_080361BC:\n\ + adds r4, 0x1\n\ + cmp r4, 0x3\n\ + ble _0803617C\n\ +_080361C2:\n\ + adds r6, 0x1\n\ + cmp r6, 0x5\n\ + ble _08036110\n\ +_080361C8:\n\ + movs r0, 0\n\ +_080361CA:\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ +_080361D8: .4byte gBattleMons\n\ +_080361DC: .4byte gActiveBattler\n\ +_080361E0: .4byte gEnemyParty\n\ +_080361E4: .4byte gBattlerPartyIndexes\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +static bool8 FindMonThatAbsorbsOpponentsMove(void) +{ + u8 battlerIn1, battlerIn2; + u8 absorbingTypeAbility; + s32 i; + + if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) + return FALSE; + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) + battlerIn2 = gActiveBattler; + else + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); + } + else + { + battlerIn1 = gActiveBattler; + battlerIn2 = gActiveBattler; + } + + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_FIRE) + absorbingTypeAbility = ABILITY_FLASH_FIRE; + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_WATER) + absorbingTypeAbility = ABILITY_WATER_ABSORB; + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_ELECTRIC) + absorbingTypeAbility = ABILITY_VOLT_ABSORB; + else + return FALSE; + + if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility) + return FALSE; + + for (i = 0; i < 6; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[battlerIn1]) + continue; + if (i == gBattlerPartyIndexes[battlerIn2]) + continue; + if (i == ewram16068arr(battlerIn1)) + continue; + if (i == ewram16068arr(battlerIn2)) + continue; + + species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + if (absorbingTypeAbility == monAbility && Random() & 1) + { + // we found a mon + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + + return FALSE; +} + +static bool8 ShouldSwitchIfNaturalCure(void) +{ + if (!(gBattleMons[gActiveBattler].status1 & STATUS_SLEEP)) + return FALSE; + if (gBattleMons[gActiveBattler].ability != ABILITY_NATURAL_CURE) + return FALSE; + if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 2) + return FALSE; + + if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 1)) + return TRUE; + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 1)) + return TRUE; + if (Random() & 1) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + + return FALSE; +} + +static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) +{ + u8 opposingBattler; + s32 i; + u8 moveFlags; + u16 move; + + opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + if (!(gAbsentBattlerFlags & gBitTable[opposingBattler])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBattler].species, gBattleMons[opposingBattler].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return FALSE; + + opposingBattler = GetBattlerAtPosition(BATTLE_PARTNER(B_POSITION_PLAYER_LEFT)); + if (!(gAbsentBattlerFlags & gBitTable[opposingBattler])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBattler].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBattler].species, gBattleMons[opposingBattler].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + + return FALSE; +} + +static bool8 AreStatsRaised(void) +{ + u8 buffedStatsValue = 0; + s32 i; + + for (i = 0; i < BATTLE_STATS_NO; i++) + { + if (gBattleMons[gActiveBattler].statStages[i] > 6) + buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6; + } + + return (buffedStatsValue > 3); +} + +static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) +{ + u8 battlerIn1, battlerIn2; + s32 i, j; + u16 move; + u8 moveFlags; + + if (gLastLandedMoves[gActiveBattler] == 0) + return FALSE; + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) + return FALSE; + if (gLastHitBy[gActiveBattler] == 0xFF) + return FALSE; + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) + battlerIn2 = gActiveBattler; + else + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); + } + else + { + battlerIn1 = gActiveBattler; + battlerIn2 = gActiveBattler; + } + + for (i = 0; i < 6; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[battlerIn1]) + continue; + if (i == gBattlerPartyIndexes[battlerIn2]) + continue; + if (i == ewram16068arr(battlerIn1)) + continue; + if (i == ewram16068arr(battlerIn2)) + continue; + + species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBattler], species, monAbility); + if (moveFlags & flags) + { + battlerIn1 = gLastHitBy[gActiveBattler]; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + if (move == 0) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[battlerIn1].species, gBattleMons[battlerIn1].ability); + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) + { + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = i; + Emitcmd33(1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + } + } + + return FALSE; +} + +static bool8 ShouldSwitch(void) +{ + u8 battlerIn1, battlerIn2; + s32 i; + s32 availableToSwitch; + + if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + return FALSE; + if (gStatuses3[gActiveBattler] & STATUS3_ROOTED) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0)) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0)) + return FALSE; // misses the flying or levitate check + if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) + { + if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL) + return FALSE; + if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL) + return FALSE; + } + + availableToSwitch = 0; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + battlerIn2 = gActiveBattler; + else + battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + } + else + { + battlerIn1 = gActiveBattler; + battlerIn2 = gActiveBattler; + } + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlerPartyIndexes[battlerIn1]) + continue; + if (i == gBattlerPartyIndexes[battlerIn2]) + continue; + if (i == ewram16068arr(battlerIn1)) + continue; + if (i == ewram16068arr(battlerIn2)) + continue; + + availableToSwitch++; + } + + if (availableToSwitch == 0) + return FALSE; + if (ShouldSwitchIfPerishSong()) + return TRUE; + if (ShouldSwitchIfWonderGuard()) + return TRUE; + if (FindMonThatAbsorbsOpponentsMove()) + return TRUE; + if (ShouldSwitchIfNaturalCure()) + return TRUE; + if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) + return FALSE; + if (AreStatsRaised()) + return FALSE; + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2) + || FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 3)) + return TRUE; + + return FALSE; +} + +void AI_TrySwitchOrUseItem(void) +{ + u8 battlerIn1, battlerIn2; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (ShouldSwitch()) + { + if (ewram160C8arr(GetBattlerPosition(gActiveBattler)) == 6) + { + s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); + if (monToSwitchId == 6) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + battlerIn1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + battlerIn2 = battlerIn1; + } + else + { + battlerIn1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + battlerIn2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + } + + for (monToSwitchId = 0; monToSwitchId < 6; monToSwitchId++) + { + if (GetMonData(&gEnemyParty[monToSwitchId], MON_DATA_HP) == 0) + continue; + if (monToSwitchId == gBattlerPartyIndexes[battlerIn1]) + continue; + if (monToSwitchId == gBattlerPartyIndexes[battlerIn2]) + continue; + if (monToSwitchId == ewram16068arr(battlerIn1)) + continue; + if (monToSwitchId == ewram16068arr(battlerIn2)) + continue; + + break; + } + } + + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = monToSwitchId; + } + + ewram16068arr(gActiveBattler) = ewram160C8arr(GetBattlerPosition(gActiveBattler)); + return; + } + else + { + #if DEBUG + if (!(gUnknown_02023A14_50 & 0x20) && ShouldUseItem()) + return; + #else + if (ShouldUseItem()) + return; + #endif + } + } + + Emitcmd33(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); +} + +static void ModulateByTypeEffectiveness(u8 attackType, u8 defenseType1, u8 defenseType2, u8 *var) +{ + s32 i = 0; + + while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) + { + if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) + { + i += 3; + continue; + } + else if (TYPE_EFFECT_ATK_TYPE(i) == attackType) + { + // check type1 + if (TYPE_EFFECT_DEF_TYPE(i) == defenseType1) + *var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10; + // check type2 + if (TYPE_EFFECT_DEF_TYPE(i) == defenseType2 && defenseType1 != defenseType2) + *var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10; + } + i += 3; + } +} + +u8 GetMostSuitableMonToSwitchInto(void) +{ + u8 opposingBattler; + u8 bestDmg; // note : should be changed to s32 + u8 bestMonId; + u8 battlerIn1, battlerIn2; + s32 i, j; + u8 invalidMons; + u16 move; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + battlerIn2 = gActiveBattler; + else + battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + + // UB: It considers the opponent only player's side even though it can battle alongside player; + opposingBattler = Random() & BIT_FLANK; + if (gAbsentBattlerFlags & gBitTable[opposingBattler]) + opposingBattler ^= BIT_FLANK; + } + else + { + opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + battlerIn1 = gActiveBattler; + battlerIn2 = gActiveBattler; + } + + invalidMons = 0; + + while (invalidMons != 0x3F) // all mons are invalid + { + bestDmg = 0; + bestMonId = 6; + // find the mon which type is the most suitable offensively + for (i = 0; i < 6; i++) + { + u16 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); + if (species != SPECIES_NONE + && GetMonData(&gEnemyParty[i], MON_DATA_HP) != 0 + && !(gBitTable[i] & invalidMons) + && gBattlerPartyIndexes[battlerIn1] != i + && gBattlerPartyIndexes[battlerIn2] != i + && i != ewram16068arr(battlerIn1) + && i != ewram16068arr(battlerIn2)) + { + u8 type1 = gBaseStats[species].type1; + u8 type2 = gBaseStats[species].type2; + u8 typeDmg = 10; + ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type1, type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type2, type1, type2, &typeDmg); + if (bestDmg < typeDmg) + { + bestDmg = typeDmg; + bestMonId = i; + } + } + else + { + invalidMons |= gBitTable[i]; + } + } + + // ok, we know the mon has the right typing but does it have at least one super effective move? + if (bestMonId != 6) + { + for (i = 0; i < 4; i++) + { + move = GetMonData(&gEnemyParty[bestMonId], MON_DATA_MOVE1 + i); + if (move != MOVE_NONE && TypeCalc(move, gActiveBattler, opposingBattler) & MOVE_RESULT_SUPER_EFFECTIVE) + break; + } + + if (i != 4) + return bestMonId; // has both the typing and at least one super effective move + + invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better + } + else + { + invalidMons = 0x3F; // no viable mon to switch + } + } + + gDynamicBasePower = 0; + gBattleStruct->dynamicMoveType = 0; + gBattleStruct->dmgMultiplier = 1; + gMoveResultFlags = 0; + gCritMultiplier = 1; + bestDmg = 0; + bestMonId = 6; + + // if we couldn't find the best mon in terms of typing, find the one that deals most damage + for (i = 0; i < 6; i++) + { + if ((u16)(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES)) == SPECIES_NONE) + continue; + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) + continue; + if (gBattlerPartyIndexes[battlerIn1] == i) + continue; + if (gBattlerPartyIndexes[battlerIn2] == i) + continue; + if (i == ewram16068arr(battlerIn1)) + continue; + if (i == ewram16068arr(battlerIn2)) + continue; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); + gBattleMoveDamage = 0; + if (move != MOVE_NONE && gBattleMoves[move].power != 1) + { + AI_CalcDmg(gActiveBattler, opposingBattler); + TypeCalc(move, gActiveBattler, opposingBattler); + } + if (bestDmg < gBattleMoveDamage) + { + bestDmg = gBattleMoveDamage; + bestMonId = i; + } + } + } + + return bestMonId; +} + +// TODO: use PokemonItemEffect struct instead of u8 once it's documented +static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u16 as item Id argument +{ + if (itemId == ITEM_FULL_RESTORE) + return AI_ITEM_FULL_RESTORE; + if (itemEffect[4] & 4) + return AI_ITEM_HEAL_HP; + if (itemEffect[3] & 0x3F) + return AI_ITEM_CURE_CONDITION; + if (itemEffect[0] & 0x3F || itemEffect[1] != 0 || itemEffect[2] != 0) + return AI_ITEM_X_STAT; + if (itemEffect[3] & 0x80) + return AI_ITEM_GUARD_SPECS; + + return AI_ITEM_NOT_RECOGNIZABLE; +} + +static bool8 ShouldUseItem(void) +{ + s32 i; + u8 validMons = 0; + bool8 shouldUse = FALSE; + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_HP) != 0 + && GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) != SPECIES_EGG) + { + validMons++; + } + } + + for (i = 0; i < 4; i++) + { + u16 item; + const u8 *itemEffects; + u8 paramOffset; + u8 battlerSide; + + if (i != 0 && validMons > (AI_BATTLE_HISTORY->numItems - i) + 1) + continue; + item = AI_BATTLE_HISTORY->trainerItems[i]; + if (item == ITEM_NONE) + continue; + if (gItemEffectTable[item - 13] == NULL) + continue; + + if (item == ITEM_ENIGMA_BERRY) + itemEffects = gSaveBlock1.enigmaBerry.itemEffect; + else + itemEffects = gItemEffectTable[item - 13]; + + ewram160D8(gActiveBattler) = GetAI_ItemType(item, itemEffects); + + switch (ewram160D8(gActiveBattler)) + { + case AI_ITEM_FULL_RESTORE: + if (gBattleMons[gActiveBattler].hp >= gBattleMons[gActiveBattler].maxHP / 4) + break; + if (gBattleMons[gActiveBattler].hp == 0) + break; + shouldUse = TRUE; + break; + case AI_ITEM_HEAL_HP: + paramOffset = GetItemEffectParamOffset(item, 4, 4); + if (paramOffset == 0) + break; + if (gBattleMons[gActiveBattler].hp == 0) + break; + if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 4 || gBattleMons[gActiveBattler].maxHP - gBattleMons[gActiveBattler].hp > itemEffects[paramOffset]) + shouldUse = TRUE; + break; + case AI_ITEM_CURE_CONDITION: + ewram160DA(gActiveBattler) = 0; + if (itemEffects[3] & 0x20 && gBattleMons[gActiveBattler].status1 & STATUS_SLEEP) + { + ewram160DA(gActiveBattler) |= 0x20; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBattler].status1 & STATUS_POISON || gBattleMons[gActiveBattler].status1 & STATUS_TOXIC_POISON)) + { + ewram160DA(gActiveBattler) |= 0x10; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x8 && gBattleMons[gActiveBattler].status1 & STATUS_BURN) + { + ewram160DA(gActiveBattler) |= 0x8; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x4 && gBattleMons[gActiveBattler].status1 & STATUS_FREEZE) + { + ewram160DA(gActiveBattler) |= 0x4; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x2 && gBattleMons[gActiveBattler].status1 & STATUS_PARALYSIS) + { + ewram160DA(gActiveBattler) |= 0x2; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x1 && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) + { + ewram160DA(gActiveBattler) |= 0x1; + shouldUse = TRUE; + } + break; + case AI_ITEM_X_STAT: + ewram160DA(gActiveBattler) = 0; + if (gDisableStructs[gActiveBattler].isFirstTurn == 0) + break; + if (itemEffects[0] & 0xF) + ewram160DA(gActiveBattler) |= 0x1; + if (itemEffects[1] & 0xF0) + ewram160DA(gActiveBattler) |= 0x2; + if (itemEffects[1] & 0xF) + ewram160DA(gActiveBattler) |= 0x4; + if (itemEffects[2] & 0xF) + ewram160DA(gActiveBattler) |= 0x8; + if (itemEffects[2] & 0xF0) + ewram160DA(gActiveBattler) |= 0x20; + if (itemEffects[0] & 0x30) + ewram160DA(gActiveBattler) |= 0x80; + shouldUse = TRUE; + break; + case AI_ITEM_GUARD_SPECS: + battlerSide = GetBattlerSide(gActiveBattler); + if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[battlerSide].mistTimer == 0) + shouldUse = TRUE; + break; + case AI_ITEM_NOT_RECOGNIZABLE: + return FALSE; + } + + if (shouldUse) + { + Emitcmd33(1, B_ACTION_USE_ITEM, 0); + ewram160D4(gActiveBattler) = item; + AI_BATTLE_HISTORY->trainerItems[i] = 0; + return shouldUse; + } + } + + return FALSE; +} diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index 03ce1798f..a3360096a 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -1287,7 +1287,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_06, }; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u8 gBankSpriteIds[]; extern u8 gBankAttacker; extern u8 gBankTarget; @@ -1490,10 +1490,10 @@ void LaunchBattleAnimation(const u8 *const moveAnims[], u16 move, u8 isMoveAnim) UpdateOamPriorityInAllHealthboxes(0); for (i = 0; i < 4; i++) { - if (GetBankSide(i) != 0) - gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); + if (GetBattlerSide(i) != 0) + gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); else - gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); + gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); } } else @@ -1679,7 +1679,7 @@ static void ScriptCmd_createsprite(void) if (subpriority < 3) subpriority = 3; - CreateSpriteAndAnimate(template, GetBankPosition(gAnimBankTarget, 2), GetBankPosition(gAnimBankTarget, 3), subpriority); + CreateSpriteAndAnimate(template, GetBattlerSpriteCoord(gAnimBankTarget, 2), GetBattlerSpriteCoord(gAnimBankTarget, 3), subpriority); gAnimVisualTaskCount++; } @@ -1829,7 +1829,7 @@ static void ScriptCmd_monbg(void) if (IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -1861,7 +1861,7 @@ static void ScriptCmd_monbg(void) bank ^= 2; if (animBank >= ANIM_BANK_ATK_PARTNER && IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -1947,7 +1947,7 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) if (IsContest() != 0) r2 = 0; else - r2 = GetBankIdentity(bank); + r2 = GetBattlerPosition(bank); sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock); if (IsContest() != 0) sub_8076380(); @@ -1976,7 +1976,7 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) LoadPalette(gPlttBufferUnfaded + 0x100 + bank * 16, 0x90, 32); DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + bank * 16, (void *)(PLTT + 0x120), 32); - sub_80E4EF8(0, 0, GetBankIdentity(bank), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); + sub_80E4EF8(0, 0, GetBattlerPosition(bank), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); } } @@ -2119,7 +2119,7 @@ static void sub_807672C(u8 taskId) gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] != 1) { - identity = GetBankIdentity(gTasks[taskId].data[2]); + identity = GetBattlerPosition(gTasks[taskId].data[2]); identity += 0xFF; if (identity <= 1 || IsContest() != 0) to_BG2 = 0; @@ -2163,7 +2163,7 @@ static void ScriptCmd_monbg_22(void) if (IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) r1 = 0; @@ -2176,7 +2176,7 @@ static void ScriptCmd_monbg_22(void) bank ^= 2; if (animBankId > ANIM_BANK_TARGET && IsAnimBankSpriteVisible(bank)) { - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) r1 = 0; @@ -2231,7 +2231,7 @@ static void sub_80769A4(u8 taskId) if (gTasks[taskId].data[1] != 1) { bank = gTasks[taskId].data[2]; - identity = GetBankIdentity(bank); + identity = GetBattlerPosition(bank); identity += 0xFF; if (identity <= 1 || IsContest() != 0) toBG_2 = 0; @@ -2369,7 +2369,7 @@ static void ScriptCmd_fadetobgfromset(void) if (IsContest()) gTasks[taskId].tBackgroundId = bg3; - else if (GetBankSide(gAnimBankTarget) == 0) + else if (GetBattlerSide(gAnimBankTarget) == 0) gTasks[taskId].tBackgroundId = bg2; else gTasks[taskId].tBackgroundId = bg1; @@ -2494,7 +2494,7 @@ s8 BattleAnimAdjustPanning(s8 a) { if (!IsContest() && (EWRAM_17810[gAnimBankAttacker].unk0 & 0x10)) { - a = GetBankSide(gAnimBankAttacker) ? 0xC0 : 0x3F; + a = GetBattlerSide(gAnimBankAttacker) ? 0xC0 : 0x3F; } //_08076FDC else @@ -2513,9 +2513,9 @@ s8 BattleAnimAdjustPanning(s8 a) //_08077004 else { - if (GetBankSide(gAnimBankAttacker) == 0) + if (GetBattlerSide(gAnimBankAttacker) == 0) { - if (GetBankSide(gAnimBankTarget) == 0) + if (GetBattlerSide(gAnimBankTarget) == 0) } //_08077042 else @@ -2552,7 +2552,7 @@ s8 BattleAnimAdjustPanning(s8 a) cmp r0, 0\n\ beq _08076FDC\n\ adds r0, r2, 0\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ movs r4, 0xC0\n\ cmp r0, 0\n\ @@ -2584,13 +2584,13 @@ _08077000: .4byte gAnimBankTarget\n\ _08077004:\n\ ldr r0, _0807702C @ =gAnimBankAttacker\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08077042\n\ ldr r0, _08077030 @ =gAnimBankTarget\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0807706E\n\ @@ -2614,7 +2614,7 @@ _08077034:\n\ _08077042:\n\ ldr r0, _08077064 @ =gAnimBankTarget\n\ ldrb r0, [r0]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -2662,14 +2662,14 @@ s8 BattleAnimAdjustPanning2(s8 pan) { if (!IsContest() && (EWRAM_17810[gAnimBankAttacker].unk0 & 0x10)) { - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) pan = 0x3F; else pan = 0xC0; } else { - if (GetBankSide(gAnimBankAttacker) != 0 || IsContest() != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0 || IsContest() != 0) pan = -pan; } return pan; @@ -3052,7 +3052,7 @@ static void ScriptCmd_monbgprio_28(void) else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -3078,13 +3078,13 @@ static void ScriptCmd_monbgprio_2A(void) wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1); sBattleAnimScriptPtr += 2; - if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankAttacker) != GetBattlerSide(gAnimBankTarget)) { if (wantedBank != 0) bank = gAnimBankTarget; else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -3097,7 +3097,7 @@ static void ScriptCmd_invisible(void) { u8 spriteId; - spriteId = GetAnimBankSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1)); + spriteId = GetAnimBattlerSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1)); if (spriteId != 0xFF) gSprites[spriteId].invisible = TRUE; @@ -3108,7 +3108,7 @@ static void ScriptCmd_visible(void) { u8 spriteId; - spriteId = GetAnimBankSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1)); + spriteId = GetAnimBattlerSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1)); if (spriteId != 0xFF) gSprites[spriteId].invisible = FALSE; @@ -3124,17 +3124,17 @@ static void ScriptCmd_doublebattle_2D(void) wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1); sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { if (wantedBank == 0) { - r4 = GetBankIdentity_permutated(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(0); + r4 = GetBattlerPosition_permutated(gAnimBankAttacker); + spriteId = GetAnimBattlerSpriteId(0); } else { - r4 = GetBankIdentity_permutated(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(1); + r4 = GetBattlerPosition_permutated(gAnimBankTarget); + spriteId = GetAnimBattlerSpriteId(1); } if (spriteId != 0xFF) { @@ -3158,17 +3158,17 @@ static void ScriptCmd_doublebattle_2E(void) wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1); sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { if (wantedBank == 0) { - r4 = GetBankIdentity_permutated(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(0); + r4 = GetBattlerPosition_permutated(gAnimBankAttacker); + spriteId = GetAnimBattlerSpriteId(0); } else { - r4 = GetBankIdentity_permutated(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(1); + r4 = GetBattlerPosition_permutated(gAnimBankTarget); + spriteId = GetAnimBattlerSpriteId(1); } if (spriteId != 0xFF && r4 == 2) { diff --git a/src/battle/battle_anim_807B69C.c b/src/battle/battle_anim_807B69C.c index 6043efb0c..92099c495 100644 --- a/src/battle/battle_anim_807B69C.c +++ b/src/battle/battle_anim_807B69C.c @@ -22,7 +22,7 @@ extern const u8 *const gBattleAnims_StatusConditions[]; extern const struct OamData gOamData_837E05C; extern const struct OamData gOamData_837DF24; -extern u8 GetBankPosition(u8, u8); +extern u8 GetBattlerSpriteCoord(u8, u8); extern void sub_80E32E0(u8); @@ -180,8 +180,8 @@ static void sub_807B8A4(struct Sprite *sprite) void sub_807B920(u8 taskId) { - s16 x = GetBankPosition(gAnimBankTarget, 2) - 32; - s16 y = GetBankPosition(gAnimBankTarget, 3) - 36; + s16 x = GetBattlerSpriteCoord(gAnimBankTarget, 2) - 32; + s16 y = GetBattlerSpriteCoord(gAnimBankTarget, 3) - 36; u8 spriteId; if (IsContest()) diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index a8b0ec329..480cb3d72 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -102,7 +102,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C2010 = void AnimTask_ShakeMon(u8 taskId) { u8 spriteId; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (spriteId == 0xff) { DestroyAnimVisualTask(taskId); @@ -170,7 +170,7 @@ void AnimTask_ShakeMon2(u8 taskId) destroy = FALSE; if (gBattleAnimArgs[0] < 4) { - sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); + sprite = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (sprite == 0xff) { DestroyAnimVisualTask(taskId); @@ -182,17 +182,17 @@ void AnimTask_ShakeMon2(u8 taskId) switch (gBattleAnimArgs[0]) { case 4: - side = GetBankByIdentity(0); + side = GetBattlerAtPosition(0); break; case 5: - side = GetBankByIdentity(2); + side = GetBattlerAtPosition(2); break; case 6: - side = GetBankByIdentity(1); + side = GetBattlerAtPosition(1); break; case 7: default: - side = GetBankByIdentity(3); + side = GetBattlerAtPosition(3); break; } @@ -263,7 +263,7 @@ static void AnimTask_ShakeMon2Step(u8 taskId) // arg 4: delay void AnimTask_ShakeMonInPlace(u8 taskId) { - u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (spriteId == 0xff) { DestroyAnimVisualTask(taskId); @@ -328,7 +328,7 @@ static void AnimTask_ShakeMonInPlaceStep(u8 taskId) // arg 4: duration void AnimTask_ShakeAndSinkMon(u8 taskId) { - u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 sprite = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); gSprites[sprite].pos2.x = gBattleAnimArgs[1]; TASK.data[0] = sprite; TASK.data[1] = gBattleAnimArgs[1]; @@ -378,7 +378,7 @@ void AnimTask_TranslateMonElliptical(u8 taskId) u8 wavePeriod; wavePeriod = 1; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (gBattleAnimArgs[4] > 5) gBattleAnimArgs[4] = 5; @@ -427,7 +427,7 @@ static void sub_80A8488(u8 taskId) // arg 4: speed (valid values are 0-5) void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; AnimTask_TranslateMonElliptical(taskId); @@ -440,7 +440,7 @@ void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) static void DoHorizontalLunge(struct Sprite *sprite) { sprite->invisible = TRUE; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) sprite->data[1] = -gBattleAnimArgs[1]; else sprite->data[1] = gBattleAnimArgs[1]; @@ -470,7 +470,7 @@ static void DoVerticalDip(struct Sprite *sprite) { u8 spriteId; sprite->invisible = TRUE; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = 0; sprite->data[2] = gBattleAnimArgs[1]; @@ -572,7 +572,7 @@ static void SlideMonToOffset(struct Sprite *sprite) battler = gAnimBankTarget; monSpriteId = gBankSpriteIds[battler]; - if (GetBankSide(battler) != SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -609,7 +609,7 @@ static void sub_80A8818(struct Sprite *sprite) v1 = gAnimBankTarget; } spriteId = gBankSpriteIds[v1]; - if (GetBankSide(v1)) + if (GetBattlerSide(v1)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -659,12 +659,12 @@ static void sub_80A88F0(struct Sprite *sprite) void AnimTask_WindUpLunge(u8 taskId) { s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[5] = -gBattleAnimArgs[5]; } - TASK.data[0] = GetAnimBankSpriteId(gBattleAnimArgs[0]); + TASK.data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); TASK.data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3]; TASK.data[2] = gBattleAnimArgs[2]; TASK.data[3] = gBattleAnimArgs[3]; @@ -718,7 +718,7 @@ void sub_80A8A80(u8 taskId) { case 0: case 1: - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; case 2: if (!IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) @@ -741,7 +741,7 @@ void sub_80A8A80(u8 taskId) return; } TASK.data[0] = spriteId; - if (GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankTarget)) { TASK.data[1] = gBattleAnimArgs[1]; } @@ -774,10 +774,10 @@ static void sub_80A8B3C(u8 taskId) void AnimTask_SwayMon(u8 taskId) { u8 spriteId; - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[4]); TASK.data[0] = gBattleAnimArgs[0]; TASK.data[1] = gBattleAnimArgs[1]; TASK.data[2] = gBattleAnimArgs[2]; @@ -812,7 +812,7 @@ static void AnimTask_SwayMonStep(u8 taskId) } else { - if (GetBankSide(TASK.data[5]) == SIDE_PLAYER) + if (GetBattlerSide(TASK.data[5]) == B_SIDE_PLAYER) { gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; } @@ -846,7 +846,7 @@ static void AnimTask_SwayMonStep(u8 taskId) void AnimTask_ScaleMonAndRestore(u8 taskId) { u8 spriteId; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]); sub_8078E70(spriteId, gBattleAnimArgs[4]); TASK.data[0] = gBattleAnimArgs[0]; TASK.data[1] = gBattleAnimArgs[1]; @@ -886,7 +886,7 @@ static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) void sub_80A8E04(u8 taskId) { u8 spriteId; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); sub_8078E70(spriteId, 0); TASK.data[1] = 0; TASK.data[2] = gBattleAnimArgs[0]; @@ -909,11 +909,11 @@ void sub_80A8E04(u8 taskId) { if (gBattleAnimArgs[2] == 0) { - TASK.data[7] = !GetBankSide(gAnimBankAttacker); + TASK.data[7] = !GetBattlerSide(gAnimBankAttacker); } else { - TASK.data[7] = !GetBankSide(gAnimBankTarget); + TASK.data[7] = !GetBattlerSide(gAnimBankTarget); } } if (TASK.data[7]) @@ -930,20 +930,20 @@ void sub_80A8E04(u8 taskId) void sub_80A8EFC(u8 taskId) { u8 spriteId; - spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); sub_8078E70(spriteId, 0); TASK.data[1] = 0; TASK.data[2] = gBattleAnimArgs[0]; if (gBattleAnimArgs[2] == 0) { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } } else { - if (GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankTarget)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } @@ -1023,7 +1023,7 @@ void sub_80A9058(u8 taskId) TASK.data[12] = 0; TASK.data[10] = gBattleAnimArgs[3]; TASK.data[11] = gBattleAnimArgs[4]; - TASK.data[7] = GetAnimBankSpriteId(1); + TASK.data[7] = GetAnimBattlerSpriteId(1); TASK.data[8] = gSprites[TASK.data[7]].pos2.x; TASK.data[9] = gSprites[TASK.data[7]].pos2.y; TASK.data[0] = 0; diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c index 21ac62401..f720d6a78 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle/battle_controller_linkopponent.c @@ -25,10 +25,10 @@ struct MovePpInfo u8 ppBonuses; }; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; extern u8 gBattleMonForms[]; @@ -57,7 +57,7 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern u8 sub_8077F68(); extern u8 sub_8079E90(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void BattleLoadOpponentMonSprite(struct Pokemon *, u8); extern void sub_8037A74(void); extern void sub_8032984(u8, u16); @@ -92,7 +92,7 @@ extern void sub_8037FAC(void); extern void move_anim_start_t2_for_situation(); extern void dp01t_0F_4_move_anim(void); extern void sub_8047858(); -extern u8 GetBankSide(u8); +extern u8 GetBattlerSide(u8); extern void StartBattleIntroAnim(); extern void sub_803A3A8(struct Sprite *); extern void sub_8044CA0(u8); @@ -250,15 +250,15 @@ void nullsub_47(void) void SetBankFuncToLinkOpponentBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = sub_803752C; + gBattleBankFunc[gActiveBattler] = sub_803752C; } void sub_803752C(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] <= 0x38) - gLinkOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] <= 0x38) + gLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkOpponentBufferExecCompleted(); } @@ -266,27 +266,27 @@ void sub_803752C(void) void sub_803757C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } void sub_80375B4(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - sub_8031B74(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam); - gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBank]].data[5]; - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + sub_8031B74(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); + gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBattler]].data[5]; + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); LinkOpponentBufferExecCompleted(); } } void sub_8037644(void) { - if ((--ewram17810[gActiveBank].unk9) == 0xFF) + if ((--ewram17810[gActiveBattler].unk9) == 0xFF) { - ewram17810[gActiveBank].unk9 = 0; + ewram17810[gActiveBattler].unk9 = 0; LinkOpponentBufferExecCompleted(); } } @@ -297,13 +297,13 @@ void sub_8037680(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) @@ -311,88 +311,88 @@ void sub_8037680(void) if (r6) { - if (GetBankIdentity(gActiveBank) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) { - if (!ewram17810[gActiveBank].unk1_0 || !ewram17810[gActiveBank ^ 2].unk1_0) + if (!ewram17810[gActiveBattler].unk1_0 || !ewram17810[gActiveBattler ^ 2].unk1_0) return; - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; - ewram17810[gActiveBank ^ 2].unk0_7 = 0; - ewram17810[gActiveBank ^ 2].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; + ewram17810[gActiveBattler ^ 2].unk0_7 = 0; + ewram17810[gActiveBattler ^ 2].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) m4aMPlayContinue(&gMPlay_BGM); } else { m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); } - ewram17810[gActiveBank].unk9 = 3; - gBattleBankFunc[gActiveBank] = sub_8037644; + ewram17810[gActiveBattler].unk9 = 3; + gBattleBankFunc[gActiveBattler] = sub_8037644; } } void sub_8037840(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!ewram17810[gActiveBank ^ 2].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_7) - sub_8141828(gActiveBank ^ 2, &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]]); - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) + sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { - if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBankIdentity(gActiveBank) == 3) + if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(gActiveBattler) == 3) { - if (++ewram17810[gActiveBank].unk9 == 1) + if (++ewram17810[gActiveBattler].unk9 == 1) return; - ewram17810[gActiveBank].unk9 = 0; + ewram17810[gActiveBattler].unk9 = 0; } if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBank ^ 2], - &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], + gHealthboxIDs[gActiveBattler ^ 2], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); - sub_804777C(gActiveBank ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + sub_804777C(gActiveBattler ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); sub_8032984( - gActiveBank ^ 2, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], MON_DATA_SPECIES)); + gActiveBattler ^ 2, + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBank], - &gEnemyParty[gBattlePartyID[gActiveBank]], + gHealthboxIDs[gActiveBattler], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8032984( - gActiveBank, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + gActiveBattler, + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBank] = sub_8037680; + gBattleBankFunc[gActiveBattler] = sub_8037680; } } void sub_8037A74(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded == TRUE - && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded == TRUE + && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) { - if (!ewram17810[gActiveBank].unk0_7) + if (!ewram17810[gActiveBattler].unk0_7) { - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); return; } - if (ewram17810[gActiveBank].unk1_0) + if (ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); LinkOpponentBufferExecCompleted(); @@ -403,32 +403,32 @@ void sub_8037A74(void) void sub_8037B24(void) { - s16 r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); if (r4 != -1) - sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); else LinkOpponentBufferExecCompleted(); } void sub_8037B78(void) { - if (!gSprites[gBankSpriteIds[gActiveBank]].inUse) + if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) { - sub_8043DB0(gHealthboxIDs[gActiveBank]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } void sub_8037BBC(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8032A08(gActiveBank); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8032A08(gActiveBattler); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -441,7 +441,7 @@ void sub_8037C2C(void) void dp01t_0F_4_move_anim(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -460,17 +460,17 @@ void dp01t_0F_4_move_anim(void) void sub_8037CC0(void) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - gBattleBankFunc[gActiveBank] = sub_8037D2C; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + gBattleBankFunc[gActiveBattler] = sub_8037D2C; } } void sub_8037D2C(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { CreateTask(c3_0802FDF4, 10); LinkOpponentBufferExecCompleted(); @@ -479,34 +479,34 @@ void sub_8037D2C(void) void sub_8037D64(void) { - if (ewram17810[gActiveBank].unk1_0) + if (ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); sub_8045A5C( - gHealthboxIDs[gActiveBank], - &gEnemyParty[gBattlePartyID[gActiveBank]], + gHealthboxIDs[gActiveBattler], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); - sub_8031F88(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_8037CC0; + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8031F88(gActiveBattler); + gBattleBankFunc[gActiveBattler] = sub_8037CC0; } } void sub_8037E30(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy - && !ewram17810[gActiveBank].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBattler].unk0_3) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8037D64; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattleBankFunc[gActiveBattler] = sub_8037D64; } } @@ -528,7 +528,7 @@ void sub_8037F34(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { sub_800832C(); - gBattleBankFunc[gActiveBank] = sub_8037EF0; + gBattleBankFunc[gActiveBattler] = sub_8037EF0; } else { @@ -542,29 +542,29 @@ void sub_8037F34(void) void sub_8037FAC(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) LinkOpponentBufferExecCompleted(); } void sub_8037FD8(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) LinkOpponentBufferExecCompleted(); } void LinkOpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = sub_803752C; + gBattleBankFunc[gActiveBattler] = sub_803752C; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = 0x38; + gBattleBufferA[gActiveBattler][0] = 0x38; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } @@ -575,13 +575,13 @@ void LinkOpponentHandleGetAttributes(void) u8 r4; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlePartyID[gActiveBank], buffer); + r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlerPartyIndexes[gActiveBattler], buffer); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -603,7 +603,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: battlePokemon.species = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES); @@ -666,7 +666,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); + data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -681,7 +681,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); + buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9); size = 1; break; case 17: @@ -905,13 +905,13 @@ void LinkOpponentHandleSetAttributes(void) u8 i; u8 r4; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8038900(gBattlePartyID[gActiveBank]); + sub_8038900(gBattlerPartyIndexes[gActiveBattler]); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -924,11 +924,11 @@ void LinkOpponentHandleSetAttributes(void) void sub_8038900(u8 a) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: { @@ -969,10 +969,10 @@ void sub_8038900(u8 a) } break; case 1: - SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case 2: - SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case 3: for (i = 0; i < 4; i++) @@ -986,154 +986,154 @@ void sub_8038900(u8 a) case 5: case 6: case 7: - SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4, &gBattleBufferA[gActiveBattler][3]); break; case 8: - SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case 9: case 10: case 11: case 12: - SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9, &gBattleBufferA[gActiveBattler][3]); break; case 17: - SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case 18: - SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case 19: - SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case 20: - SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 21: - SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 22: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case 23: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 24: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 25: - SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case 26: - SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case 27: - SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case 28: - SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 29: - SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case 30: - SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case 31: - SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case 32: - SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case 33: - SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 34: - SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 35: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case 36: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 37: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 38: - SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case 39: - SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case 40: - SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case 41: - SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 42: - SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case 43: - SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case 44: - SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case 45: - SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case 46: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case 47: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case 48: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case 49: - SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case 50: - SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case 51: - SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case 52: - SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case 53: - SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case 54: - SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case 55: - SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 56: - SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 57: - SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 58: - SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 59: - SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } } @@ -1143,36 +1143,36 @@ void LinkOpponentHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst); + MEMSET_ALT(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); LinkOpponentBufferExecCompleted(); } void LinkOpponentHandleLoadPokeSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(gActiveBank, 2), - sub_8077F68(gActiveBank), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8037A74; + GetBattlerSpriteCoord(gActiveBattler, 2), + sub_8077F68(gActiveBattler), + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattleBankFunc[gActiveBattler] = sub_8037A74; } void LinkOpponentHandleSendOutPoke(void) { - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - sub_8039430(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_8037E30; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + sub_8039430(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattleBankFunc[gActiveBattler] = sub_8037E30; } void sub_8039430(u8 a, u8 b) @@ -1180,14 +1180,14 @@ void sub_8039430(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(a, 2), + GetBattlerSpriteCoord(a, 2), sub_8077F68(a), sub_8079E90(a)); gSprites[gUnknown_0300434C[a]].data[1] = gBankSpriteIds[a]; @@ -1202,36 +1202,36 @@ void sub_8039430(u8 a, u8 b) void LinkOpponentHandleReturnPokeToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_8039648; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8039648; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8032A08(gActiveBank); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8032A08(gActiveBattler); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } void sub_8039648(void) { - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4 = 1; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 2); - gBattleBankFunc[gActiveBank] = sub_8037BBC; + ewram17810[gActiveBattler].unk4 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 2); + gBattleBankFunc[gActiveBattler] = sub_8037BBC; } break; } @@ -1244,31 +1244,31 @@ void LinkOpponentHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) xOffset = -16; else xOffset = 16; - gender = gLinkPlayers[sub_803FC34(gActiveBank)].gender; + gender = gLinkPlayers[sub_803FC34(gActiveBattler)].gender; } else { xOffset = 0; gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender; } - sub_8031A6C(gender, gActiveBank); - GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + sub_8031A6C(gender, gActiveBattler); + GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag); - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = gender; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_803757C; + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag); + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = gender; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_803757C; } void LinkOpponentHandleTrainerSlide(void) @@ -1278,29 +1278,29 @@ void LinkOpponentHandleTrainerSlide(void) void LinkOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_80375B4; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattleBankFunc[gActiveBattler] = sub_80375B4; } void LinkOpponentHandlecmd10(void) { - if (ewram17810[gActiveBank].unk4 == 0) + if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4++; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4++; } - else if (!ewram17810[gActiveBank].unk0_6) + else if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; + ewram17810[gActiveBattler].unk4 = 0; PlaySE12WithPanning(SE_POKE_DEAD, 63); - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8010384; - gBattleBankFunc[gActiveBank] = sub_8037B78; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8010384; + gBattleBankFunc[gActiveBattler] = sub_8037B78; } } @@ -1326,23 +1326,23 @@ void LinkOpponentHandlePuase(void) void LinkOpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u32 r0 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] - | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] - | (gBattleBufferA[gActiveBank][7] << 8) - | (gBattleBufferA[gActiveBank][8] << 16) - | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] - | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u32 r0 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] + | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] + | (gBattleBufferA[gActiveBattler][7] << 8) + | (gBattleBufferA[gActiveBattler][8] << 16) + | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] + | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; // Dead code. sub_8031720 always returns 0. if (sub_8031720(r0, gAnimMoveTurn) != 0) @@ -1351,34 +1351,34 @@ void LinkOpponentHandleMoveAnimation(void) } else { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_8039B64; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8039B64; } } } void sub_8039B64(void) { - u16 r4 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - u8 r7 = gBattleBufferA[gActiveBank][11]; + u16 r4 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + u8 r7 = gBattleBufferA[gActiveBattler][11]; - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite && !ewram17800[gActiveBank].unk0_3) + if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) { - ewram17800[gActiveBank].unk0_3 = 1; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17800[gActiveBattler].unk0_3 = 1; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } - ewram17810[gActiveBank].unk4 = 1; + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_80326EC(0); DoMoveAnim(r4); - ewram17810[gActiveBank].unk4 = 2; + ewram17810[gActiveBattler].unk4 = 2; } break; case 2: @@ -1386,22 +1386,22 @@ void sub_8039B64(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBank].substituteSprite) && r7 <= 1) + if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) { - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - ewram17800[gActiveBank].unk0_3 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + ewram17800[gActiveBattler].unk0_3 = 0; } - ewram17810[gActiveBank].unk4 = 3; + ewram17810[gActiveBattler].unk4 = 3; } break; case 3: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_8031F24(); sub_80324BC( - gActiveBank, - gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - ewram17810[gActiveBank].unk4 = 0; + gActiveBattler, + gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + ewram17810[gActiveBattler].unk4 = 0; LinkOpponentBufferExecCompleted(); } break; @@ -1412,9 +1412,9 @@ void LinkOpponentHandlePrintString(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBank] = sub_8037C2C; + gBattleBankFunc[gActiveBattler] = sub_8037C2C; } void LinkOpponentHandlePrintStringPlayerOnly(void) @@ -1457,21 +1457,21 @@ void LinkOpponentHandleHealthBarUpdate(void) s16 r7; load_gfxc_health_bar(0); - r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBank] = sub_8037B24; + gBattleBankFunc[gActiveBattler] = sub_8037B24; } void LinkOpponentHandleExpBarUpdate(void) @@ -1481,25 +1481,25 @@ void LinkOpponentHandleExpBarUpdate(void) void LinkOpponentHandleStatusIconUpdate(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], 9); - ewram17810[gActiveBank].unk0_4 = 0; - gBattleBankFunc[gActiveBank] = sub_8037FAC; + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); + ewram17810[gActiveBattler].unk0_4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8037FAC; } } void LinkOpponentHandleStatusAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { move_anim_start_t2_for_situation( - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] - | (gBattleBufferA[gActiveBank][3] << 8) - | (gBattleBufferA[gActiveBank][4] << 16) - | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = sub_8037FAC; + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] + | (gBattleBufferA[gActiveBattler][3] << 8) + | (gBattleBufferA[gActiveBattler][4] << 16) + | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattleBankFunc[gActiveBattler] = sub_8037FAC; } } @@ -1556,7 +1556,7 @@ void LinkOpponentHandlecmd37(void) void LinkOpponentHandlecmd38(void) { - gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } @@ -1574,16 +1574,16 @@ void LinkOpponentHandlecmd40(void) void LinkOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { LinkOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - sub_8047858(gActiveBank); - gBattleBankFunc[gActiveBank] = dp01t_0F_4_move_anim; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + sub_8047858(gActiveBattler); + gBattleBankFunc[gActiveBattler] = dp01t_0F_4_move_anim; } } @@ -1596,31 +1596,31 @@ void LinkOpponentHandleEffectivenessSound(void) { s8 pan; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) pan = -64; else pan = 63; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkOpponentBufferExecCompleted(); } void LinkOpponentHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); LinkOpponentBufferExecCompleted(); } void LinkOpponentHandleFaintingCry(void) { PlayCry3( - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25, 5); LinkOpponentBufferExecCompleted(); } void LinkOpponentHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; LinkOpponentBufferExecCompleted(); } @@ -1629,42 +1629,42 @@ void LinkOpponentHandleTrainerBallThrow(void) { u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_803A3A8); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_803A3A8); taskId = CreateTask(sub_803A2C4, 5); - gTasks[taskId].data[0] = gActiveBank; - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + gTasks[taskId].data[0] = gActiveBattler; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBank] = nullsub_47; + gBattleBankFunc[gActiveBattler] = nullsub_47; } void sub_803A2C4(u8 taskId) { u8 r9; - r9 = gActiveBank; - gActiveBank = gTasks[taskId].data[0]; + r9 = gActiveBattler; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8039430(gActiveBank, 0); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_8039430(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8039430(gActiveBank, 0); - gActiveBank ^= 2; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8039430(gActiveBank, 0); - gActiveBank ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_8039430(gActiveBattler, 0); + gActiveBattler ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_8039430(gActiveBattler, 0); + gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBank] = sub_8037840; - gActiveBank = r9; + gBattleBankFunc[gActiveBattler] = sub_8037840; + gActiveBattler = r9; DestroyTask(taskId); } @@ -1678,49 +1678,49 @@ void sub_803A3A8(struct Sprite *sprite) void LinkOpponentHandlecmd48(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == 0) { LinkOpponentBufferExecCompleted(); return; } - ewram17810[gActiveBank].unk0_0 = 1; - if (gBattleBufferA[gActiveBank][2] != 0) + ewram17810[gActiveBattler].unk0_0 = 1; + if (gBattleBufferA[gActiveBattler][2] != 0) { - if (ewram17810[gActiveBank].unk1_1 < 2) + if (ewram17810[gActiveBattler].unk1_1 < 2) { - ewram17810[gActiveBank].unk1_1++; + ewram17810[gActiveBattler].unk1_1++; return; } else { - ewram17810[gActiveBank].unk1_1 = 0; + ewram17810[gActiveBattler].unk1_1 = 0; } } - gUnknown_02024E68[gActiveBank] = sub_8044804( - gActiveBank, - (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2]); - ewram17810[gActiveBank].unk5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - ewram17810[gActiveBank].unk5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_803A4E0; + gUnknown_02024E68[gActiveBattler] = sub_8044804( + gActiveBattler, + (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBattler][4], + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2]); + ewram17810[gActiveBattler].unk5 = 0; + if (gBattleBufferA[gActiveBattler][2] != 0) + ewram17810[gActiveBattler].unk5 = 0x5D; + gBattleBankFunc[gActiveBattler] = sub_803A4E0; } void sub_803A4E0(void) { - if (ewram17810[gActiveBank].unk5++ >= 93) + if (ewram17810[gActiveBattler].unk5++ >= 93) { - ewram17810[gActiveBank].unk5 = 0; + ewram17810[gActiveBattler].unk5 = 0; LinkOpponentBufferExecCompleted(); } } void LinkOpponentHandlecmd49(void) { - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; LinkOpponentBufferExecCompleted(); } @@ -1731,25 +1731,25 @@ void LinkOpponentHandlecmd50(void) void LinkOpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank) != 0) + if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - sub_8031F88(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + sub_8031F88(gActiveBattler); } LinkOpponentBufferExecCompleted(); } void LinkOpponentHandleBattleAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - u8 r3 = gBattleBufferA[gActiveBank][1]; - u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 r3 = gBattleBufferA[gActiveBattler][1]; + u16 r4 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) LinkOpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_8037FD8; + gBattleBankFunc[gActiveBattler] = sub_8037FD8; } } @@ -1765,14 +1765,14 @@ void LinkOpponentHandleResetActionMoveSelection(void) void LinkOpponentHandlecmd55(void) { - if (gBattleBufferA[gActiveBank][1] == 3) - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + if (gBattleBufferA[gActiveBattler][1] == 3) + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; else - gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ 3; + gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ 3; FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_8037F34; + gBattleBankFunc[gActiveBattler] = sub_8037F34; } void LinkOpponentHandlecmd56(void) diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c index 1d42f56c3..0baeca43e 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle/battle_controller_linkpartner.c @@ -32,9 +32,9 @@ struct MovePpInfo extern u16 gBattleTypeFlags; extern u8 gDisplayedStringBattle[]; extern u8 gBattleBufferA[][0x200]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gBattleOutcome; extern u16 gUnknown_02024DE8; @@ -85,7 +85,7 @@ extern u8 sub_8046400(); extern void sub_80312F0(struct Sprite *); extern u8 CreateInvisibleSpriteWithCallback(); extern void BattleLoadPlayerMonSprite(); -extern u8 GetBankPosition(); +extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); extern u8 sub_8079E90(); extern void nullsub_10(); @@ -244,15 +244,15 @@ void nullsub_74(void) void SetBankFuncToLinkPartnerBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; + gBattleBankFunc[gActiveBattler] = LinkPartnerBufferRunCommand; } void LinkPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] <= 0x38) - gLinkPartnerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] <= 0x38) + gLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkPartnerBufferExecCompleted(); } @@ -260,26 +260,26 @@ void LinkPartnerBufferRunCommand(void) void sub_811DAE4(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkPartnerBufferExecCompleted(); } void sub_811DB1C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_10(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); } } void sub_811DB84(void) { - if ((--ewram17810[gActiveBank].unk9) == 0xFF) + if ((--ewram17810[gActiveBattler].unk9) == 0xFF) { - ewram17810[gActiveBank].unk9 = 0; + ewram17810[gActiveBattler].unk9 = 0; LinkPartnerBufferExecCompleted(); } } @@ -290,21 +290,21 @@ void sub_811DBC0(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & 0x40))) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) r6 = FALSE; if (r6) { - ewram17810[gActiveBank].unk9 = 3; - gBattleBankFunc[gActiveBank] = sub_811DB84; + ewram17810[gActiveBattler].unk9 = 3; + gBattleBankFunc[gActiveBattler] = sub_811DB84; } } @@ -312,34 +312,34 @@ void sub_811DCA0(void) { u8 r2; - if (!ewram17810[gActiveBank].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3) { // I couldn't get it to work as a bitfield here - r2 = *((u8 *)&ewram17810[gActiveBank ^ 2]) & 8; - if (!r2 && (++ewram17810[gActiveBank].unk9) != 1) + r2 = *((u8 *)&ewram17810[gActiveBattler ^ 2]) & 8; + if (!r2 && (++ewram17810[gActiveBattler].unk9) != 1) { - ewram17810[gActiveBank].unk9 = r2; + ewram17810[gActiveBattler].unk9 = r2; if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40)) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBank ^ 2], &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], 0); - sub_804777C(gActiveBank ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); + sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); + sub_804777C(gActiveBattler ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); } - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); (s8)ewram17810[4].unk9 &= ~1; - gBattleBankFunc[gActiveBank] = sub_811DBC0; + gBattleBankFunc[gActiveBattler] = sub_811DBC0; } } } void sub_811DDE8(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded - && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded + && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) LinkPartnerBufferExecCompleted(); } @@ -347,38 +347,38 @@ void bx_t3_healthbar_update(void) { s16 r4; - r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); LinkPartnerBufferExecCompleted(); } } void sub_811DE98(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > 160) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > 160) { - nullsub_9(GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + nullsub_9(GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } void sub_811DF34(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -391,7 +391,7 @@ void sub_811DFA0(void) void bx_blink_t3(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; @@ -411,48 +411,48 @@ void bx_blink_t3(void) void sub_811E034(void) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - gBattleBankFunc[gActiveBank] = sub_811E0A0; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + gBattleBankFunc[gActiveBattler] = sub_811E0A0; } } void sub_811E0A0(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) LinkPartnerBufferExecCompleted(); } void sub_811E0CC(void) { - if (ewram17810[gActiveBank].unk1_0) + if (ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); - sub_8031F88(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_811E034; + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8031F88(gActiveBattler); + gBattleBankFunc[gActiveBattler] = sub_811E034; } } void sub_811E1BC(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy - && !ewram17810[gActiveBank].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBattler].unk0_3) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - gBattleBankFunc[gActiveBank] = sub_811E0CC; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + gBattleBankFunc[gActiveBattler] = sub_811E0CC; } } @@ -474,7 +474,7 @@ void sub_811E29C(void) if (gBattleTypeFlags & 2) { sub_800832C(); - gBattleBankFunc[gActiveBank] = sub_811E258; + gBattleBankFunc[gActiveBattler] = sub_811E258; } else { @@ -490,28 +490,28 @@ void LinkPartnerBufferExecCompleted(void) { u8 multiplayerId; - gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; + gBattleBankFunc[gActiveBattler] = LinkPartnerBufferRunCommand; if (gBattleTypeFlags & 2) { multiplayerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &multiplayerId); - gBattleBufferA[gActiveBank][0] = 0x38; + gBattleBufferA[gActiveBattler][0] = 0x38; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } void sub_811E38C(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) LinkPartnerBufferExecCompleted(); } void sub_811E3B8(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) LinkPartnerBufferExecCompleted(); } @@ -521,13 +521,13 @@ void LinkPartnerHandleGetAttributes(void) int r6 = 0; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = dp01_getattr_by_ch1_for_player_pokemon(gBattlePartyID[gActiveBank], unk); + r6 = dp01_getattr_by_ch1_for_player_pokemon(gBattlerPartyIndexes[gActiveBattler], unk); } else { - u8 r4 = gBattleBufferA[gActiveBank][2]; + u8 r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { @@ -551,7 +551,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: battlePokemon.species = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES); @@ -613,7 +613,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); + data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -628,7 +628,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); + buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9); size = 1; break; case 17: @@ -852,13 +852,13 @@ void LinkPartnerHandleSetAttributes(void) u8 i; u8 r4; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_811EC68(gBattlePartyID[gActiveBank]); + sub_811EC68(gBattlerPartyIndexes[gActiveBattler]); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -872,11 +872,11 @@ void LinkPartnerHandleSetAttributes(void) // Duplicate of dp01_setattr_by_ch1_for_player_pokemon void sub_811EC68(u8 a) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: { @@ -917,10 +917,10 @@ void sub_811EC68(u8 a) } break; case 1: - SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case 2: - SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case 3: for (i = 0; i < 4; i++) @@ -934,157 +934,157 @@ void sub_811EC68(u8 a) case 5: case 6: case 7: - SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4, &gBattleBufferA[gActiveBattler][3]); break; case 8: - SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case 9: case 10: case 11: case 12: - SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9, &gBattleBufferA[gActiveBattler][3]); break; case 17: - SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case 18: - SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case 19: - SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case 20: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 21: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 22: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case 23: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 24: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 25: - SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case 26: - SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case 27: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case 28: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 29: - SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case 30: - SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case 31: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case 32: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case 33: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 34: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 35: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case 36: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 37: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 38: - SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case 39: - SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case 40: - SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case 41: - SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 42: - SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case 43: - SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case 44: - SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case 45: - SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case 46: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case 47: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case 48: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case 49: - SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case 50: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case 51: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case 52: - SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case 53: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case 54: - SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case 55: - SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 56: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 57: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 58: - SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 59: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void LinkPartnerHandlecmd3(void) @@ -1092,37 +1092,37 @@ void LinkPartnerHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst); + MEMSET_ALT(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][3 + i], gBattleBufferA[gActiveBattler][2], i, dst); LinkPartnerBufferExecCompleted(); } void LinkPartnerHandleLoadPokeSprite(void) { - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); GetMonSpriteTemplate_803C56C( - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), - GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), + GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(gActiveBank, 2), - sub_8077F68(gActiveBank), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - gBattleBankFunc[gActiveBank] = sub_811DDE8; + GetBattlerSpriteCoord(gActiveBattler, 2), + sub_8077F68(gActiveBattler), + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattleBankFunc[gActiveBattler] = sub_811DDE8; } void LinkPartnerHandleSendOutPoke(void) { - sub_8032AA8(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_811F864(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_811E1BC; + sub_8032AA8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + sub_811F864(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattleBankFunc[gActiveBattler] = sub_811E1BC; } void sub_811F864(u8 a, u8 b) @@ -1130,13 +1130,13 @@ void sub_811F864(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(a, 2), + GetBattlerSpriteCoord(a, 2), sub_8077F68(a), sub_8079E90(a)); gSprites[gUnknown_0300434C[a]].data[1] = gBankSpriteIds[a]; @@ -1151,35 +1151,35 @@ void sub_811F864(u8 a, u8 b) void LinkPartnerHandleReturnPokeToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_811FA5C; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_811FA5C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } void sub_811FA5C(void) { - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4 = 1; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 1); - gBattleBankFunc[gActiveBank] = sub_811DF34; + ewram17810[gActiveBattler].unk4 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); + gBattleBankFunc[gActiveBattler] = sub_811DF34; } break; } @@ -1192,28 +1192,28 @@ void LinkPartnerHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) xOffset = 16; else xOffset = -16; - gender = gLinkPlayers[sub_803FC34(gActiveBank)].gender; + gender = gLinkPlayers[sub_803FC34(gActiveBattler)].gender; } else { xOffset = 0; gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender; } - LoadPlayerTrainerBankSprite(gender, gActiveBank); - GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(gender, gActiveBattler); + GetMonSpriteTemplate_803C5A0(gender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80 + xOffset, 80 + 4 * (8 - gTrainerBackPicCoords[gender].coords), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_811DAE4; + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_811DAE4; } void LinkPartnerHandleTrainerSlide(void) @@ -1223,32 +1223,32 @@ void LinkPartnerHandleTrainerSlide(void) void LinkPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_811DB1C; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattleBankFunc[gActiveBattler] = sub_811DB1C; } void LinkPartnerHandlecmd10(void) { - if (ewram17810[gActiveBank].unk4 == 0) + if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4++; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4++; } - else if (!ewram17810[gActiveBank].unk0_6) + else if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + ewram17810[gActiveBattler].unk4 = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80105EC; - gBattleBankFunc[gActiveBank] = sub_811DE98; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80105EC; + gBattleBankFunc[gActiveBattler] = sub_811DE98; } } @@ -1274,56 +1274,56 @@ void LinkPartnerHandlePuase(void) void LinkPartnerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u32 r0 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] - | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] - | (gBattleBufferA[gActiveBank][7] << 8) - | (gBattleBufferA[gActiveBank][8] << 16) - | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] - | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u32 r0 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] + | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] + | (gBattleBufferA[gActiveBattler][7] << 8) + | (gBattleBufferA[gActiveBattler][8] << 16) + | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] + | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (sub_8031720(r0, gAnimMoveTurn) != 0) LinkPartnerBufferExecCompleted(); else { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_811FF30; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_811FF30; } } } void sub_811FF30(void) { - u16 r4 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - u8 r7 = gBattleBufferA[gActiveBank][11]; + u16 r4 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + u8 r7 = gBattleBufferA[gActiveBattler][11]; - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite && !ewram17800[gActiveBank].unk0_3) + if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) { - ewram17800[gActiveBank].unk0_3 = 1; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17800[gActiveBattler].unk0_3 = 1; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } - ewram17810[gActiveBank].unk4 = 1; + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_80326EC(0); DoMoveAnim(r4); - ewram17810[gActiveBank].unk4 = 2; + ewram17810[gActiveBattler].unk4 = 2; } break; case 2: @@ -1331,22 +1331,22 @@ void sub_811FF30(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBank].substituteSprite) && r7 <= 1) + if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) { - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - ewram17800[gActiveBank].unk0_3 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + ewram17800[gActiveBattler].unk0_3 = 0; } - ewram17810[gActiveBank].unk4 = 3; + ewram17810[gActiveBattler].unk4 = 3; } break; case 3: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_8031F24(); sub_80324BC( - gActiveBank, - gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - ewram17810[gActiveBank].unk4 = 0; + gActiveBattler, + gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + ewram17810[gActiveBattler].unk4 = 0; LinkPartnerBufferExecCompleted(); } break; @@ -1357,9 +1357,9 @@ void LinkPartnerHandlePrintString(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBank] = sub_811DFA0; + gBattleBankFunc[gActiveBattler] = sub_811DFA0; } void LinkPartnerHandlePrintStringPlayerOnly(void) @@ -1402,21 +1402,21 @@ void LinkPartnerHandleHealthBarUpdate(void) s16 r7; load_gfxc_health_bar(0); - r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBank] = bx_t3_healthbar_update; + gBattleBankFunc[gActiveBattler] = bx_t3_healthbar_update; } void LinkPartnerHandleExpBarUpdate(void) @@ -1426,25 +1426,25 @@ void LinkPartnerHandleExpBarUpdate(void) void LinkPartnerHandleStatusIconUpdate(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 9); - ewram17810[gActiveBank].unk0_4 = 0; - gBattleBankFunc[gActiveBank] = sub_811E38C; + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); + ewram17810[gActiveBattler].unk0_4 = 0; + gBattleBankFunc[gActiveBattler] = sub_811E38C; } } void LinkPartnerHandleStatusAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { move_anim_start_t2_for_situation( - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] - | (gBattleBufferA[gActiveBank][3] << 8) - | (gBattleBufferA[gActiveBank][4] << 16) - | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = sub_811E38C; + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] + | (gBattleBufferA[gActiveBattler][3] << 8) + | (gBattleBufferA[gActiveBattler][4] << 16) + | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattleBankFunc[gActiveBattler] = sub_811E38C; } } @@ -1501,7 +1501,7 @@ void LinkPartnerHandlecmd37(void) void LinkPartnerHandlecmd38(void) { - gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } @@ -1519,16 +1519,16 @@ void LinkPartnerHandlecmd40(void) void LinkPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { LinkPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - sub_8047858(gActiveBank); - gBattleBankFunc[gActiveBank] = bx_blink_t3; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + sub_8047858(gActiveBattler); + gBattleBankFunc[gActiveBattler] = bx_blink_t3; } } @@ -1541,31 +1541,31 @@ void LinkPartnerHandleEffectivenessSound(void) { s8 pan; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) pan = -64; else pan = 63; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkPartnerBufferExecCompleted(); } void LinkPartnerHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); LinkPartnerBufferExecCompleted(); } void LinkPartnerHandleFaintingCry(void) { PlayCry3( - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), -25, 5); LinkPartnerBufferExecCompleted(); } void LinkPartnerHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; LinkPartnerBufferExecCompleted(); } @@ -1575,25 +1575,25 @@ void LinkPartnerHandleTrainerBallThrow(void) u8 r4; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); r4 = AllocSpritePalette(0xD6F9); LoadCompressedPalette( - gTrainerBackPicPaletteTable[gLinkPlayers[sub_803FC34(gActiveBank)].gender].data, + gTrainerBackPicPaletteTable[gLinkPlayers[sub_803FC34(gActiveBattler)].gender].data, 0x100 + r4 * 16, 0x20); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = r4; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = r4; taskId = CreateTask(sub_812071C, 5); - gTasks[taskId].data[0] = gActiveBank; - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + gTasks[taskId].data[0] = gActiveBattler; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBank] = nullsub_74; + gBattleBankFunc[gActiveBattler] = nullsub_74; } void sub_812071C(u8 taskId) @@ -1606,61 +1606,61 @@ void sub_812071C(u8 taskId) return; } - r9 = gActiveBank; - gActiveBank = gTasks[taskId].data[0]; + r9 = gActiveBattler; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_811F864(gActiveBank, 0); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_811F864(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_811F864(gActiveBank, 0); - gActiveBank ^= 2; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_811F864(gActiveBank, 0); - gActiveBank ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_811F864(gActiveBattler, 0); + gActiveBattler ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + sub_811F864(gActiveBattler, 0); + gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBank] = sub_811DCA0; - gActiveBank = r9; + gBattleBankFunc[gActiveBattler] = sub_811DCA0; + gActiveBattler = r9; DestroyTask(taskId); } void LinkPartnerHandlecmd48(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == 0) { LinkPartnerBufferExecCompleted(); return; } - ewram17810[gActiveBank].unk0_0 = 1; - gUnknown_02024E68[gActiveBank] = sub_8044804( - gActiveBank, - (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2]); - ewram17810[gActiveBank].unk5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - ewram17810[gActiveBank].unk5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_81208E0; + ewram17810[gActiveBattler].unk0_0 = 1; + gUnknown_02024E68[gActiveBattler] = sub_8044804( + gActiveBattler, + (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBattler][4], + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2]); + ewram17810[gActiveBattler].unk5 = 0; + if (gBattleBufferA[gActiveBattler][2] != 0) + ewram17810[gActiveBattler].unk5 = 0x5D; + gBattleBankFunc[gActiveBattler] = sub_81208E0; } void sub_81208E0(void) { - if (ewram17810[gActiveBank].unk5++ >= 93) + if (ewram17810[gActiveBattler].unk5++ >= 93) { - ewram17810[gActiveBank].unk5 = 0; + ewram17810[gActiveBattler].unk5 = 0; LinkPartnerBufferExecCompleted(); } } void LinkPartnerHandlecmd49(void) { - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; LinkPartnerBufferExecCompleted(); } @@ -1671,25 +1671,25 @@ void LinkPartnerHandlecmd50(void) void LinkPartnerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank) != 0) + if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - sub_8031F88(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + sub_8031F88(gActiveBattler); } LinkPartnerBufferExecCompleted(); } void LinkPartnerHandleBattleAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - u8 r3 = gBattleBufferA[gActiveBank][1]; - u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 r3 = gBattleBufferA[gActiveBattler][1]; + u16 r4 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) LinkPartnerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_811E3B8; + gBattleBankFunc[gActiveBattler] = sub_811E3B8; } } @@ -1705,11 +1705,11 @@ void LinkPartnerHandleResetActionMoveSelection(void) void LinkPartnerHandlecmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkPartnerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_811E29C; + gBattleBankFunc[gActiveBattler] = sub_811E29C; } void LinkPartnerHandlecmd56(void) diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index e986eb38d..583690c27 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_ai_switch_items.h" #include "battle_anim.h" #include "battle_interface.h" #include "data2.h" @@ -31,9 +32,9 @@ struct MovePpInfo }; extern u8 gUnknown_02023A14_50; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gBattleBufferA[][0x200]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gBattleMonForms[]; extern struct SpriteTemplate gUnknown_02024E8C; @@ -55,7 +56,7 @@ extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern u8 gDisplayedStringBattle[]; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; extern u16 gUnknown_02024DE8; extern u8 gUnknown_02024E68[]; @@ -66,12 +67,12 @@ extern struct MusicPlayerInfo gMPlay_SE2; extern struct MusicPlayerInfo gMPlay_BGM; extern u32 gBattleExecBuffer; -extern u8 GetBankPosition(); +extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); extern u8 sub_8079E90(); extern void sub_8033018(void); extern void BattleLoadOpponentMonSprite(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void sub_8032984(u8, u16); extern void sub_80333D4(void); extern void sub_80312F0(struct Sprite *); @@ -98,9 +99,8 @@ extern void sub_8031F24(void); extern void sub_80324BC(); extern void BufferStringBattle(); extern void sub_80331D0(void); -extern void sub_8036B0C(void); -extern u8 GetBankByIdentity(u8); -extern u8 sub_8036CD4(void); +extern void AI_TrySwitchOrUseItem(void); +extern u8 GetBattlerAtPosition(u8); extern void sub_80330C8(void); extern void sub_8043D84(); extern void sub_8045A5C(); @@ -108,7 +108,7 @@ void sub_8033494(void); extern void move_anim_start_t2_for_situation(); extern void bx_blink_t7(void); extern void sub_8047858(); -extern u8 GetBankSide(u8); +extern u8 GetBattlerSide(u8); extern void StartBattleIntroAnim(); extern void sub_8044CA0(u8); extern void nullsub_45(void); @@ -264,15 +264,15 @@ void nullsub_45(void) void SetBankFuncToOpponentBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; + gBattleBankFunc[gActiveBattler] = OpponentBufferRunCommand; } void OpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] <= 0x38) - gOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] <= 0x38) + gOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else OpponentBufferExecCompleted(); } @@ -280,34 +280,34 @@ void OpponentBufferRunCommand(void) void sub_8032B4C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } // Duplicate of sub_8032B4C void sub_8032B84(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } void sub_8032BBC(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - sub_8031B74(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam); - gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBank]].data[5]; - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + sub_8031B74(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); + gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBankSpriteIds[gActiveBattler]].data[5]; + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); OpponentBufferExecCompleted(); } } void sub_8032C4C(void) { - if ((--ewram17810[gActiveBank].unk9) == 0xFF) + if ((--ewram17810[gActiveBattler].unk9) == 0xFF) { - ewram17810[gActiveBank].unk9 = 0; + ewram17810[gActiveBattler].unk9 = 0; OpponentBufferExecCompleted(); } } @@ -318,86 +318,86 @@ void sub_8032C88(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) r6 = FALSE; - if (r6 && ewram17810[gActiveBank].unk1_0 && ewram17810[gActiveBank ^ 2].unk1_0) + if (r6 && ewram17810[gActiveBattler].unk1_0 && ewram17810[gActiveBattler ^ 2].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; - ewram17810[gActiveBank ^ 2].unk0_7 = 0; - ewram17810[gActiveBank ^ 2].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; + ewram17810[gActiveBattler ^ 2].unk0_7 = 0; + ewram17810[gActiveBattler ^ 2].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) m4aMPlayContinue(&gMPlay_BGM); else m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); - ewram17810[gActiveBank].unk9 = 3; - gBattleBankFunc[gActiveBank] = sub_8032C4C; + ewram17810[gActiveBattler].unk9 = 3; + gBattleBankFunc[gActiveBattler] = sub_8032C4C; } } void sub_8032E2C(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!ewram17810[gActiveBank ^ 2].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_7) - sub_8141828(gActiveBank ^ 2, &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]]); - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) + sub_8141828(gActiveBattler ^ 2, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBank ^ 2], - &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], + gHealthboxIDs[gActiveBattler ^ 2], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); - sub_804777C(gActiveBank ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + sub_804777C(gActiveBattler ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); sub_8032984( - gActiveBank ^ 2, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], MON_DATA_SPECIES)); + gActiveBattler ^ 2, + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBank], - &gEnemyParty[gBattlePartyID[gActiveBank]], + gHealthboxIDs[gActiveBattler], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); sub_8032984( - gActiveBank, - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + gActiveBattler, + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBank] = sub_8032C88; + gBattleBankFunc[gActiveBattler] = sub_8032C88; } } void sub_8033018(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded == TRUE - && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded == TRUE + && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) { - if (!ewram17810[gActiveBank].unk0_7) + if (!ewram17810[gActiveBattler].unk0_7) { - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); return; } - if (ewram17810[gActiveBank].unk1_0) + if (ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); OpponentBufferExecCompleted(); @@ -408,32 +408,32 @@ void sub_8033018(void) void sub_80330C8(void) { - s16 r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); if (r4 != -1) - sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); else OpponentBufferExecCompleted(); } void sub_803311C(void) { - if (!gSprites[gBankSpriteIds[gActiveBank]].inUse) + if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) { - sub_8043DB0(gHealthboxIDs[gActiveBank]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); OpponentBufferExecCompleted(); } } void sub_8033160(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8032A08(gActiveBank); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8032A08(gActiveBattler); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -446,7 +446,7 @@ void sub_80331D0(void) void bx_blink_t7(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -465,17 +465,17 @@ void bx_blink_t7(void) void sub_8033264(void) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - gBattleBankFunc[gActiveBank] = sub_80332D0; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + gBattleBankFunc[gActiveBattler] = sub_80332D0; } } void sub_80332D0(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { CreateTask(c3_0802FDF4, 10); OpponentBufferExecCompleted(); @@ -484,53 +484,53 @@ void sub_80332D0(void) void sub_8033308(void) { - if (ewram17810[gActiveBank].unk1_0) + if (ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); sub_8045A5C( - gHealthboxIDs[gActiveBank], - &gEnemyParty[gBattlePartyID[gActiveBank]], + gHealthboxIDs[gActiveBattler], + &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); - sub_8031F88(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_8033264; + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8031F88(gActiveBattler); + gBattleBankFunc[gActiveBattler] = sub_8033264; } } void sub_80333D4(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy - && !ewram17810[gActiveBank].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBattler].unk0_3) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8033308; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattleBankFunc[gActiveBattler] = sub_8033308; } } void sub_8033494(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) OpponentBufferExecCompleted(); } void sub_80334C0(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) OpponentBufferExecCompleted(); } void OpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleBankFunc[gActiveBattler] = OpponentBufferRunCommand; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } void OpponentHandleGetAttributes(void) @@ -539,13 +539,13 @@ void OpponentHandleGetAttributes(void) int r6 = 0; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = sub_8033598(gBattlePartyID[gActiveBank], buffer); + r6 = sub_8033598(gBattlerPartyIndexes[gActiveBattler], buffer); } else { - u8 r4 = gBattleBufferA[gActiveBank][2]; + u8 r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { @@ -568,7 +568,7 @@ u32 sub_8033598(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: battlePokemon.species = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES); @@ -630,7 +630,7 @@ u32 sub_8033598(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); + data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -645,7 +645,7 @@ u32 sub_8033598(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); + buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9); size = 1; break; case 17: @@ -864,11 +864,11 @@ void OpponentHandlecmd1(void) struct BattlePokemon buffer; u8 i; // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard. - u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *src = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst; - MEMSET_ALT(&buffer + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst); - Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst); + MEMSET_ALT(&buffer + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); + Emitcmd29(1, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -877,13 +877,13 @@ void OpponentHandleSetAttributes(void) u8 i; u8 r4; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8033E24(gBattlePartyID[gActiveBank]); + sub_8033E24(gBattlerPartyIndexes[gActiveBattler]); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -896,11 +896,11 @@ void OpponentHandleSetAttributes(void) void sub_8033E24(u8 a) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: { @@ -941,10 +941,10 @@ void sub_8033E24(u8 a) } break; case 1: - SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case 2: - SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case 3: for (i = 0; i < 4; i++) @@ -958,154 +958,154 @@ void sub_8033E24(u8 a) case 5: case 6: case 7: - SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4, &gBattleBufferA[gActiveBattler][3]); break; case 8: - SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case 9: case 10: case 11: case 12: - SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9, &gBattleBufferA[gActiveBattler][3]); break; case 17: - SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case 18: - SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case 19: - SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case 20: - SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 21: - SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 22: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case 23: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 24: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 25: - SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case 26: - SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case 27: - SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case 28: - SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 29: - SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case 30: - SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case 31: - SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case 32: - SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case 33: - SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 34: - SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 35: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case 36: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 37: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 38: - SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case 39: - SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case 40: - SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case 41: - SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 42: - SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case 43: - SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case 44: - SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case 45: - SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case 46: - SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case 47: - SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case 48: - SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case 49: - SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case 50: - SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case 51: - SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case 52: - SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case 53: - SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case 54: - SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case 55: - SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 56: - SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 57: - SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 58: - SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 59: - SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } } @@ -1115,37 +1115,37 @@ void OpponentHandlecmd3(void) u8 *dst; u8 i; - MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i], - gBattleBufferA[gActiveBank][2], i, dst); + MEMSET_ALT(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], + gBattleBufferA[gActiveBattler][2], i, dst); OpponentBufferExecCompleted(); } void OpponentHandleLoadPokeSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(gActiveBank, 2), - sub_8077F68(gActiveBank), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = species; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8033018; + GetBattlerSpriteCoord(gActiveBattler, 2), + sub_8077F68(gActiveBattler), + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = species; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + sub_8032984(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattleBankFunc[gActiveBattler] = sub_8033018; } void OpponentHandleSendOutPoke(void) { - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - sub_803495C(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_80333D4; + sub_803495C(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattleBankFunc[gActiveBattler] = sub_80333D4; } void sub_803495C(u8 a, u8 b) @@ -1153,14 +1153,14 @@ void sub_803495C(u8 a, u8 b) u16 species; sub_8032AA8(a, b); - gBattlePartyID[a] = gBattleBufferA[a][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gBattlerPartyIndexes[a] = gBattleBufferA[a][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_SPECIES); gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[a]], a); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(a)); gBankSpriteIds[a] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(a, 2), + GetBattlerSpriteCoord(a, 2), sub_8077F68(a), sub_8079E90(a)); gSprites[gBankSpriteIds[a]].data[0] = a; @@ -1175,36 +1175,36 @@ void sub_803495C(u8 a, u8 b) void OpponentHandleReturnPokeToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_8034B74; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8034B74; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8032A08(gActiveBank); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8032A08(gActiveBattler); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); OpponentBufferExecCompleted(); } } void sub_8034B74(void) { - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4 = 1; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 2); - gBattleBankFunc[gActiveBank] = sub_8033160; + ewram17810[gActiveBattler].unk4 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 2); + gBattleBankFunc[gActiveBattler] = sub_8033160; } break; } @@ -1232,21 +1232,21 @@ void OpponentHandleTrainerThrow(void) trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; } - sub_8031A6C(trainerPicIndex, gActiveBank); - GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + sub_8031A6C(trainerPicIndex, gActiveBattler); + GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicIndex].coords), - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicIndex; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_8032B4C; + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_8032B4C; } void OpponentHandleTrainerSlide(void) @@ -1262,49 +1262,49 @@ void OpponentHandleTrainerSlide(void) else trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; - sub_8031A6C(trainerPicIndex, gActiveBank); - GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + sub_8031A6C(trainerPicIndex, gActiveBattler); + GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 0xB0, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicIndex].coords), 0x1E); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum; - gSprites[gBankSpriteIds[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicIndex; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_8032B84; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicIndex].tag); + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicIndex].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicIndex; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_8032B84; } void OpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_8032BBC; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattleBankFunc[gActiveBattler] = sub_8032BBC; } void OpponentHandlecmd10(void) { - if (ewram17810[gActiveBank].unk4 == 0) + if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4++; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4++; } - else if (!ewram17810[gActiveBank].unk0_6) + else if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; + ewram17810[gActiveBattler].unk4 = 0; PlaySE12WithPanning(SE_POKE_DEAD, 63); - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8010384; - gBattleBankFunc[gActiveBank] = sub_803311C; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8010384; + gBattleBankFunc[gActiveBattler] = sub_803311C; } } @@ -1330,23 +1330,23 @@ void OpponentHandlePuase(void) void OpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u32 r0 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] - | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] - | (gBattleBufferA[gActiveBank][7] << 8) - | (gBattleBufferA[gActiveBank][8] << 16) - | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] - | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u32 r0 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] + | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] + | (gBattleBufferA[gActiveBattler][7] << 8) + | (gBattleBufferA[gActiveBattler][8] << 16) + | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] + | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; // Dead code. sub_8031720 always returns 0. if (sub_8031720(r0, gAnimMoveTurn) != 0) @@ -1355,34 +1355,34 @@ void OpponentHandleMoveAnimation(void) } else { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_8035238; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8035238; } } } void sub_8035238(void) { - u16 r4 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8); - u8 r7 = gBattleBufferA[gActiveBank][11]; + u16 r4 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8); + u8 r7 = gBattleBufferA[gActiveBattler][11]; - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite && !ewram17800[gActiveBank].unk0_3) + if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) { - ewram17800[gActiveBank].unk0_3 = 1; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17800[gActiveBattler].unk0_3 = 1; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } - ewram17810[gActiveBank].unk4 = 1; + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_80326EC(0); DoMoveAnim(r4); - ewram17810[gActiveBank].unk4 = 2; + ewram17810[gActiveBattler].unk4 = 2; } break; case 2: @@ -1390,22 +1390,22 @@ void sub_8035238(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBank].substituteSprite) && r7 <= 1) + if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) { - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - ewram17800[gActiveBank].unk0_3 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + ewram17800[gActiveBattler].unk0_3 = 0; } - ewram17810[gActiveBank].unk4 = 3; + ewram17810[gActiveBattler].unk4 = 3; } break; case 3: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { sub_8031F24(); sub_80324BC( - gActiveBank, - gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - ewram17810[gActiveBank].unk4 = 0; + gActiveBattler, + gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + ewram17810[gActiveBattler].unk4 = 0; OpponentBufferExecCompleted(); } break; @@ -1416,9 +1416,9 @@ void OpponentHandlePrintString(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBank] = sub_80331D0; + gBattleBankFunc[gActiveBattler] = sub_80331D0; } void OpponentHandlePrintStringPlayerOnly(void) @@ -1428,7 +1428,7 @@ void OpponentHandlePrintStringPlayerOnly(void) void OpponentHandlecmd18(void) { - sub_8036B0C(); + AI_TrySwitchOrUseItem(); OpponentBufferExecCompleted(); } @@ -1447,7 +1447,7 @@ void OpponentHandlecmd20(void) mov r6, r9\n\ mov r5, r8\n\ push {r5, r6, r7}\n\ - ldr r6, ._549 @ gActiveBank\n\ + ldr r6, ._549 @ gActiveBattler\n\ ldrb r0, [r6]\n\ lsl r0, r0, #0x9\n\ ldr r1, ._549 + 4 @ gBattleBufferA\n\ @@ -1489,7 +1489,7 @@ void OpponentHandlecmd20(void) ._550:\n\ .align 2, 0\n\ ._549:\n\ - .word gActiveBank\n\ + .word gActiveBattler\n\ .word gBattleBufferA+4\n\ .word gUnknown_02023A14_50\n\ .word gBattleMoves\n\ @@ -1543,7 +1543,7 @@ void OpponentHandlecmd20(void) bne ._557 @cond_branch\n\ mov r1, sl\n\ ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ mov r1, #0x2\n\ eor r0, r0, r1\n\ lsl r0, r0, #0x18\n\ @@ -1564,7 +1564,7 @@ void OpponentHandlecmd20(void) ._557:\n\ mov r0, #0x0\n\ ._558:\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ ._561:\n\ @@ -1635,10 +1635,10 @@ void OpponentHandlecmd20(void) cmp r0, #0\n\ beq ._572 @cond_branch\n\ mov r0, #0x0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r5, ._574 + 4 @ gBankTarget\n\ strb r0, [r5]\n\ - ldr r0, ._574 + 8 @ gAbsentBankFlags\n\ + ldr r0, ._574 + 8 @ gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, ._574 + 12 @ gBitTable\n\ ldrb r0, [r5]\n\ @@ -1649,7 +1649,7 @@ void OpponentHandlecmd20(void) cmp r1, #0\n\ beq ._572 @cond_branch\n\ mov r0, #0x2\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ strb r0, [r5]\n\ ._572:\n\ ldr r0, ._574 + 4 @ gBankTarget\n\ @@ -1665,7 +1665,7 @@ void OpponentHandlecmd20(void) ._574:\n\ .word gBattleMoves\n\ .word gBankTarget\n\ - .word gAbsentBankFlags\n\ + .word gAbsentBattlerFlags\n\ .word gBitTable\n\ ._563:\n\ mov r6, #0x3\n\ @@ -1688,7 +1688,7 @@ void OpponentHandlecmd20(void) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._577 @cond_branch\n\ - ldr r0, ._579 + 4 @ gActiveBank\n\ + ldr r0, ._579 + 4 @ gActiveBattler\n\ ldrb r2, [r0]\n\ lsl r2, r2, #0x8\n\ b ._578\n\ @@ -1696,7 +1696,7 @@ void OpponentHandlecmd20(void) .align 2, 0\n\ ._579:\n\ .word gBattleMoves\n\ - .word gActiveBank\n\ + .word gActiveBattler\n\ ._577:\n\ ldr r0, ._583 @ gBattleTypeFlags\n\ ldrh r1, [r0]\n\ @@ -1710,7 +1710,7 @@ void OpponentHandlecmd20(void) lsl r1, r1, #0x18\n\ lsr r1, r1, #0x18\n\ add r0, r1, #0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ add r2, r0, #0\n\ lsl r2, r2, #0x18\n\ lsr r2, r2, #0x10\n\ @@ -1726,7 +1726,7 @@ void OpponentHandlecmd20(void) .word gBattleTypeFlags\n\ ._581:\n\ mov r0, #0x0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ add r2, r0, #0\n\ lsl r2, r2, #0x18\n\ lsr r2, r2, #0x10\n\ @@ -1751,7 +1751,7 @@ void OpponentHandlecmd20(void) { u16 r4; // Needed to match closer - struct {u16 moves[4];} *r5 = (void *)&gBattleBufferA[gActiveBank][4]; + struct {u16 moves[4];} *r5 = (void *)&gBattleBufferA[gActiveBattler][4]; if (gBattleTypeFlags & 0x498) { @@ -1767,12 +1767,12 @@ void OpponentHandlecmd20(void) break; default: if (gBattleMoves[r5->moves[r4]].target & 0x12) - gBankTarget = gActiveBank; + gBankTarget = gActiveBattler; if (gBattleMoves[r5->moves[r4]].target & 8) { - gBankTarget = GetBankByIdentity(0); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(2); + gBankTarget = GetBattlerAtPosition(0); + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) + gBankTarget = GetBattlerAtPosition(2); } r4 |= gBankTarget << 8; Emitcmd33(1, 10, r4); @@ -1793,18 +1793,18 @@ void OpponentHandlecmd20(void) if (gBattleMoves[r2].target & 0x12) { - r4 |= gActiveBank << 8; + r4 |= gActiveBattler << 8; Emitcmd33(1, 10, r4); } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - u16 r2 = GetBankByIdentity(Random() & 2) << 8; + u16 r2 = GetBattlerAtPosition(Random() & 2) << 8; Emitcmd33(1, 10, r4 | r2); } else { - u16 r2 = GetBankByIdentity(0) << 8; + u16 r2 = GetBattlerAtPosition(0) << 8; Emitcmd33(1, 10, r4 | r2); } @@ -1817,7 +1817,7 @@ void OpponentHandlecmd20(void) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ - ldr r6, _0803545C @ =gActiveBank\n\ + ldr r6, _0803545C @ =gActiveBattler\n\ ldrb r0, [r6]\n\ lsls r0, 9\n\ ldr r1, _08035460 @ =gBattleBufferA+4\n\ @@ -1841,7 +1841,7 @@ void OpponentHandlecmd20(void) movs r1, 0x4\n\ b _0803546C\n\ .align 2, 0\n\ -_0803545C: .4byte gActiveBank\n\ +_0803545C: .4byte gActiveBattler\n\ _08035460: .4byte gBattleBufferA+4\n\ _08035464: .4byte gBattleTypeFlags\n\ _08035468:\n\ @@ -1880,10 +1880,10 @@ _08035494:\n\ cmp r0, 0\n\ beq _080354CE\n\ movs r0, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ ldr r5, _080354EC @ =gBankTarget\n\ strb r0, [r5]\n\ - ldr r0, _080354F0 @ =gAbsentBankFlags\n\ + ldr r0, _080354F0 @ =gAbsentBattlerFlags\n\ ldrb r1, [r0]\n\ ldr r2, _080354F4 @ =gBitTable\n\ ldrb r0, [r5]\n\ @@ -1894,7 +1894,7 @@ _08035494:\n\ cmp r1, 0\n\ beq _080354CE\n\ movs r0, 0x2\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ strb r0, [r5]\n\ _080354CE:\n\ ldr r0, _080354EC @ =gBankTarget\n\ @@ -1911,7 +1911,7 @@ _080354E0:\n\ .align 2, 0\n\ _080354E8: .4byte gBattleMoves\n\ _080354EC: .4byte gBankTarget\n\ -_080354F0: .4byte gAbsentBankFlags\n\ +_080354F0: .4byte gAbsentBattlerFlags\n\ _080354F4: .4byte gBitTable\n\ _080354F8:\n\ movs r6, 0x3\n\ @@ -1934,7 +1934,7 @@ _080354FA:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0803553C\n\ - ldr r0, _08035538 @ =gActiveBank\n\ + ldr r0, _08035538 @ =gActiveBattler\n\ ldrb r0, [r0]\n\ lsls r0, 8\n\ orrs r4, r0\n\ @@ -1945,7 +1945,7 @@ _080354FA:\n\ b _08035586\n\ .align 2, 0\n\ _08035534: .4byte gBattleMoves\n\ -_08035538: .4byte gActiveBank\n\ +_08035538: .4byte gActiveBattler\n\ _0803553C:\n\ ldr r0, _0803556C @ =gBattleTypeFlags\n\ ldrh r1, [r0]\n\ @@ -1959,7 +1959,7 @@ _0803553C:\n\ lsls r1, 24\n\ lsrs r1, 24\n\ adds r0, r1, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -1972,7 +1972,7 @@ _0803553C:\n\ _0803556C: .4byte gBattleTypeFlags\n\ _08035570:\n\ movs r0, 0\n\ - bl GetBankByIdentity\n\ + bl GetBattlerAtPosition\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -1994,7 +1994,7 @@ _0803558A:\n\ void OpponentHandleOpenBag(void) { // What is this? - Emitcmd35(1, ewram160D4(gActiveBank)); + Emitcmd35(1, ewram160D4(gActiveBattler)); OpponentBufferExecCompleted(); } @@ -2002,39 +2002,39 @@ void OpponentHandlecmd22(void) { s32 r4; - if (ewram160C8arr(GetBankIdentity(gActiveBank)) == 6) + if (ewram160C8arr(GetBattlerPosition(gActiveBattler)) == 6) { u8 r6; u8 r5; - r4 = sub_8036CD4(); + r4 = GetMostSuitableMonToSwitchInto(); if (r4 == 6) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - r5 = GetBankByIdentity(1); + r5 = GetBattlerAtPosition(1); r6 = r5; } else { - r6 = GetBankByIdentity(1); - r5 = GetBankByIdentity(3); + r6 = GetBattlerAtPosition(1); + r5 = GetBattlerAtPosition(3); } for (r4 = 0; r4 < 6; r4++) { if (GetMonData(&gEnemyParty[r4], MON_DATA_HP) != 0 - && r4 != gBattlePartyID[r6] - && r4 != gBattlePartyID[r5]) + && r4 != gBattlerPartyIndexes[r6] + && r4 != gBattlerPartyIndexes[r5]) break; } } } else { - r4 = ewram160C8arr(GetBankIdentity(gActiveBank)); - ewram160C8arr(GetBankIdentity(gActiveBank)) = 6; + r4 = ewram160C8arr(GetBattlerPosition(gActiveBattler)); + ewram160C8arr(GetBattlerPosition(gActiveBattler)) = 6; } - ewram16068arr(gActiveBank) = r4; + ewram16068arr(gActiveBattler) = r4; Emitcmd34(1, r4, 0); OpponentBufferExecCompleted(); } @@ -2049,21 +2049,21 @@ void OpponentHandleHealthBarUpdate(void) s16 r7; load_gfxc_health_bar(0); - r7 = (gBattleBufferA[gActiveBank][3] << 8) | gBattleBufferA[gActiveBank][2]; + r7 = (gBattleBufferA[gActiveBattler][3] << 8) | gBattleBufferA[gActiveBattler][2]; if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, hp, r7); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); } - gBattleBankFunc[gActiveBank] = sub_80330C8; + gBattleBankFunc[gActiveBattler] = sub_80330C8; } void OpponentHandleExpBarUpdate(void) @@ -2073,25 +2073,25 @@ void OpponentHandleExpBarUpdate(void) void OpponentHandleStatusIconUpdate(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], 9); - ewram17810[gActiveBank].unk0_4 = 0; - gBattleBankFunc[gActiveBank] = sub_8033494; + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], 9); + ewram17810[gActiveBattler].unk0_4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8033494; } } void OpponentHandleStatusAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { move_anim_start_t2_for_situation( - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] - | (gBattleBufferA[gActiveBank][3] << 8) - | (gBattleBufferA[gActiveBank][4] << 16) - | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = sub_8033494; + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] + | (gBattleBufferA[gActiveBattler][3] << 8) + | (gBattleBufferA[gActiveBattler][4] << 16) + | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattleBankFunc[gActiveBattler] = sub_8033494; } } @@ -2148,7 +2148,7 @@ void OpponentHandlecmd37(void) void OpponentHandlecmd38(void) { - gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } @@ -2166,16 +2166,16 @@ void OpponentHandlecmd40(void) void OpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { OpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - sub_8047858(gActiveBank); - gBattleBankFunc[gActiveBank] = bx_blink_t7; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + sub_8047858(gActiveBattler); + gBattleBankFunc[gActiveBattler] = bx_blink_t7; } } @@ -2188,31 +2188,31 @@ void OpponentHandleEffectivenessSound(void) { s8 pan; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) pan = -64; else pan = 63; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); OpponentBufferExecCompleted(); } void OpponentHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); OpponentBufferExecCompleted(); } void OpponentHandleFaintingCry(void) { PlayCry3( - GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25, 5); OpponentBufferExecCompleted(); } void OpponentHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; OpponentBufferExecCompleted(); } @@ -2221,18 +2221,18 @@ void OpponentHandleTrainerBallThrow(void) { u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8035C10); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8035C10); taskId = CreateTask(sub_8035C44, 5); - gTasks[taskId].data[0] = gActiveBank; - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + gTasks[taskId].data[0] = gActiveBattler; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17840.unk9_0 = 1; - gBattleBankFunc[gActiveBank] = nullsub_45; + gBattleBankFunc[gActiveBattler] = nullsub_45; } void sub_8035C10(struct Sprite *sprite) @@ -2247,72 +2247,72 @@ void sub_8035C44(u8 taskId) { u8 r9; - r9 = gActiveBank; - gActiveBank = gTasks[taskId].data[0]; + r9 = gActiveBattler; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_803495C(gActiveBank, 0); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_803495C(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_803495C(gActiveBank, 0); - gActiveBank ^= 2; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_803495C(gActiveBank, 0); - gActiveBank ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_803495C(gActiveBattler, 0); + gActiveBattler ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_803495C(gActiveBattler, 0); + gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBank] = sub_8032E2C; - gActiveBank = r9; + gBattleBankFunc[gActiveBattler] = sub_8032E2C; + gActiveBattler = r9; DestroyTask(taskId); } void OpponentHandlecmd48(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == 0) { OpponentBufferExecCompleted(); return; } - ewram17810[gActiveBank].unk0_0 = 1; - if (gBattleBufferA[gActiveBank][2] != 0) + ewram17810[gActiveBattler].unk0_0 = 1; + if (gBattleBufferA[gActiveBattler][2] != 0) { - if (ewram17810[gActiveBank].unk1_1 < 2) + if (ewram17810[gActiveBattler].unk1_1 < 2) { - ewram17810[gActiveBank].unk1_1++; + ewram17810[gActiveBattler].unk1_1++; return; } else { - ewram17810[gActiveBank].unk1_1 = 0; + ewram17810[gActiveBattler].unk1_1 = 0; } } - gUnknown_02024E68[gActiveBank] = sub_8044804( - gActiveBank, - (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2]); - ewram17810[gActiveBank].unk5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - ewram17810[gActiveBank].unk5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_8035E2C; + gUnknown_02024E68[gActiveBattler] = sub_8044804( + gActiveBattler, + (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBattler][4], + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2]); + ewram17810[gActiveBattler].unk5 = 0; + if (gBattleBufferA[gActiveBattler][2] != 0) + ewram17810[gActiveBattler].unk5 = 0x5D; + gBattleBankFunc[gActiveBattler] = sub_8035E2C; } void sub_8035E2C(void) { - if (ewram17810[gActiveBank].unk5++ >= 93) + if (ewram17810[gActiveBattler].unk5++ >= 93) { - ewram17810[gActiveBank].unk5 = 0; + ewram17810[gActiveBattler].unk5 = 0; OpponentBufferExecCompleted(); } } void OpponentHandlecmd49(void) { - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; OpponentBufferExecCompleted(); } @@ -2323,25 +2323,25 @@ void OpponentHandlecmd50(void) void OpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank) != 0) + if (IsBankSpritePresent(gActiveBattler) != 0) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - sub_8031F88(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + sub_8031F88(gActiveBattler); } OpponentBufferExecCompleted(); } void OpponentHandleBattleAnimation(void) { - if (mplay_80342A4(gActiveBank) == 0) + if (mplay_80342A4(gActiveBattler) == 0) { - u8 r3 = gBattleBufferA[gActiveBank][1]; - u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 r3 = gBattleBufferA[gActiveBattler][1]; + u16 r4 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) OpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_80334C0; + gBattleBankFunc[gActiveBattler] = sub_80334C0; } } diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 3e259a21b..50ab1eb7e 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -46,13 +46,13 @@ extern u8 gBankAttacker; extern u8 gBankTarget; extern u32 gOamMatrixAllocBitmap; extern u8 gUnknown_020297ED; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gActionSelectionCursor[]; extern u8 gDisplayedStringBattle[]; extern u8 gMoveSelectionCursor[]; extern u8 gBattleBufferA[][0x200]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u8 gDoingBattleAnim; extern u8 gBankSpriteIds[]; @@ -101,7 +101,7 @@ extern bool8 mplay_80342A4(u8); extern void move_anim_start_t2_for_situation(); extern void bx_blink_t1(void); extern void sub_8047858(); -extern u8 GetBankSide(u8); +extern u8 GetBattlerSide(u8); extern void StartBattleIntroAnim(); extern void oamt_add_pos2_onto_pos1(); extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); @@ -121,24 +121,24 @@ extern void sub_8031F24(void); extern void sub_80324BC(); extern u8 sub_8031720(); extern void bx_wait_t1(void); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerAtPosition(u8); extern void sub_802DE10(void); extern void sub_80105EC(struct Sprite *); extern void sub_802D274(void); extern void sub_802D23C(void); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void LoadPlayerTrainerBankSprite(); extern void sub_80313A0(struct Sprite *); extern void sub_802D204(void); extern u8 sub_8079E90(); extern void sub_802DEAC(void); extern void sub_80312F0(struct Sprite *); -extern u8 GetBankPosition(); +extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); extern u8 sub_8046400(); extern void sub_802D798(void); extern void bx_0802E404(void); -extern u8 gActiveBank; +extern u8 gActiveBattler; extern void (*gBattleBankFunc[])(void); extern bool8 gDoingBattleAnim; extern u16 gBattleTypeFlags; @@ -147,10 +147,10 @@ extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_03004344; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern struct Window gUnknown_03004210; @@ -169,8 +169,8 @@ extern u8 gDisplayedStringBattle[]; extern const u8 BattleText_LinkStandby[]; extern void dp11b_obj_instanciate(u8, u8, s8, s8); -extern u8 GetBankIdentity(u8); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerPosition(u8); +extern u8 GetBattlerAtPosition(u8); extern void dp11b_obj_free(u8, u8); extern void sub_8010520(struct Sprite *); extern void sub_8010574(struct Sprite *); @@ -338,32 +338,32 @@ void nullsub_91(void) void SetBankFuncToPlayerBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand; + gBattleBankFunc[gActiveBattler] = PlayerBufferRunCommand; gDoingBattleAnim = FALSE; } void PlayerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand; + gBattleBankFunc[gActiveBattler] = PlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = 0x38; + gBattleBufferA[gActiveBattler][0] = 0x38; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } void PlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < 0x39) - gPlayerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < 0x39) + gPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else PlayerBufferExecCompleted(); } @@ -371,23 +371,23 @@ void PlayerBufferRunCommand(void) void bx_0802E404(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) PlayerBufferExecCompleted(); } void sub_802C098(void) { - u16 itemId = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u16 itemId = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - dp11b_obj_instanciate(gActiveBank, 1, 7, 1); - dp11b_obj_instanciate(gActiveBank, 0, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); DestroyMenuCursor(); // Useless switch statement. - switch (gActionSelectionCursor[gActiveBank]) + switch (gActionSelectionCursor[gActiveBattler]) { case 0: Emitcmd33(1, 0, 0); @@ -406,52 +406,52 @@ void sub_802C098(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gActionSelectionCursor[gActiveBank] & 1) + if (gActionSelectionCursor[gActiveBattler] & 1) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gActionSelectionCursor[gActiveBank] & 1)) + if (!(gActionSelectionCursor[gActiveBattler] & 1)) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_UP) { - if (gActionSelectionCursor[gActiveBank] & 2) + if (gActionSelectionCursor[gActiveBattler] & 2) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gActionSelectionCursor[gActiveBank] & 2)) + if (!(gActionSelectionCursor[gActiveBattler] & 2)) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & B_BUTTON) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && GetBankIdentity(gActiveBank) == 2 - && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(0)]) + && GetBattlerPosition(gActiveBattler) == 2 + && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(0)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if (gBattleBufferA[gActiveBank][1] == 1) + if (gBattleBufferA[gActiveBattler][1] == 1) { // Add item to bag if it is a ball if (itemId <= ITEM_PREMIER_BALL) @@ -473,9 +473,9 @@ void sub_802C098(void) void unref_sub_802C2B8(void) { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBattleBankFunc[gActiveBank] = sub_802C2EC; + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBattleBankFunc[gActiveBattler] = sub_802C2EC; } // TODO: fix this function @@ -486,21 +486,21 @@ void sub_802C2EC(void) dp11b_obj_instanciate(gUnknown_03004344, 1, 15, 1); i = 0; - if (gNoOfAllBanks != 0) + if (gBattlersCount != 0) { do { if (i != gUnknown_03004344) dp11b_obj_free(i, 1); i++; - } while (i < gNoOfAllBanks); + } while (i < gBattlersCount); } if (gMain.newKeys & A_BUTTON) { DestroyMenuCursor(); PlaySE(SE_SELECT); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; - Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBank] | (gUnknown_03004344 << 8)); + Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); dp11b_obj_free(gUnknown_03004344, 1); PlayerBufferExecCompleted(); } @@ -509,9 +509,9 @@ void sub_802C2EC(void) { PlaySE(SE_SELECT); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; - gBattleBankFunc[gActiveBank] = sub_802C68C; - dp11b_obj_instanciate(gActiveBank, 1, 7, 1); - dp11b_obj_instanciate(gActiveBank, 0, 7, 1); + gBattleBankFunc[gActiveBattler] = sub_802C68C; + dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); dp11b_obj_free(gUnknown_03004344, 1); } else if (gMain.newKeys & 0x60) @@ -520,7 +520,7 @@ void sub_802C2EC(void) gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { - u8 var = GetBankIdentity(gUnknown_03004344); + u8 var = GetBattlerPosition(gUnknown_03004344); for (i = 0; i < 4; i++) { @@ -532,19 +532,19 @@ void sub_802C2EC(void) i--; if (i < 0) i = 3; - gUnknown_03004344 = GetBankByIdentity(arr[i]); - } while(gUnknown_03004344 == gNoOfAllBanks); + gUnknown_03004344 = GetBattlerAtPosition(arr[i]); + } while(gUnknown_03004344 == gBattlersCount); i = 0; - switch (GetBankIdentity(gUnknown_03004344)) + switch (GetBattlerPosition(gUnknown_03004344)) { case 0: case 2: - if (gActiveBank == gUnknown_03004344) + if (gActiveBattler == gUnknown_03004344) { u32 moveId; asm("":::"memory"); - moveId = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank]); + moveId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); if (!(gBattleMoves[moveId].target & 2)) break; } @@ -555,7 +555,7 @@ void sub_802C2EC(void) i++; } //_0802C500 - if (gAbsentBankFlags & gBitTable[gUnknown_03004344]) + if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; @@ -567,7 +567,7 @@ void sub_802C2EC(void) gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010574; do { - u8 var = GetBankIdentity(gUnknown_03004344); + u8 var = GetBattlerPosition(gUnknown_03004344); for (i = 0; i < 4; i++) { @@ -579,19 +579,19 @@ void sub_802C2EC(void) i++; if (i > 3) i = 0; - gUnknown_03004344 = GetBankByIdentity(arr[i]); - } while (gUnknown_03004344 == gNoOfAllBanks); + gUnknown_03004344 = GetBattlerAtPosition(arr[i]); + } while (gUnknown_03004344 == gBattlersCount); i = 0; - switch (GetBankIdentity(gUnknown_03004344)) + switch (GetBattlerPosition(gUnknown_03004344)) { case 0: case 2: - if (gActiveBank == gUnknown_03004344) + if (gActiveBattler == gUnknown_03004344) { u32 moveId; asm("":::"memory"); - moveId = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank]); + moveId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); if (!(gBattleMoves[moveId].target & 2)) break; } @@ -601,7 +601,7 @@ void sub_802C2EC(void) case 3: i++; } - if (gAbsentBankFlags & gBitTable[gUnknown_03004344]) + if (gAbsentBattlerFlags & gBitTable[gUnknown_03004344]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; @@ -614,7 +614,7 @@ struct ChooseMoveStruct u8 pp[4]; u8 unkC[0x12-0xC]; u8 unk12; - u8 unk13; + u8 effectStringId; u8 filler14[0x20-0x14]; }; @@ -628,7 +628,7 @@ void sub_802C68C(void) #if DEBUG u8 count = 0; #endif - struct ChooseMoveStruct *r6 = (struct ChooseMoveStruct *)(gBattleBufferA[gActiveBank] + 4); + struct ChooseMoveStruct *r6 = (struct ChooseMoveStruct *)(gBattleBufferA[gActiveBattler] + 4); if (gMain.newKeys & A_BUTTON) { @@ -636,50 +636,50 @@ void sub_802C68C(void) PlaySE(SE_SELECT); - if (r6->moves[gMoveSelectionCursor[gActiveBank]] == MOVE_CURSE) - r4 = (r6->unk12 != TYPE_GHOST && (r6->unk13 ^ 7)) ? 0x10 : 0; + if (r6->moves[gMoveSelectionCursor[gActiveBattler]] == MOVE_CURSE) + r4 = (r6->unk12 != TYPE_GHOST && (r6->effectStringId ^ 7)) ? 0x10 : 0; else - r4 = gBattleMoves[r6->moves[gMoveSelectionCursor[gActiveBank]]].target; + r4 = gBattleMoves[r6->moves[gMoveSelectionCursor[gActiveBattler]]].target; if (r4 & 0x10) - gUnknown_03004344 = gActiveBank; + gUnknown_03004344 = gActiveBattler; else - gUnknown_03004344 = GetBankByIdentity((GetBankIdentity(gActiveBank) & 1) ^ 1); + gUnknown_03004344 = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & 1) ^ 1); - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - if ((r4 & 2) && gBattleBufferA[gActiveBank][2] == 0) + if ((r4 & 2) && gBattleBufferA[gActiveBattler][2] == 0) r8++; } else { if (!(r4 & 0x7D)) r8++; - if (r6->pp[gMoveSelectionCursor[gActiveBank]] == 0) + if (r6->pp[gMoveSelectionCursor[gActiveBattler]] == 0) { r8 = 0; } else if (!(r4 & 0x12) && CountAliveMons(0) <= 1) { - gUnknown_03004344 = sub_803C434(gActiveBank); + gUnknown_03004344 = sub_803C434(gActiveBattler); r8 = 0; } } if (r8 == 0) { DestroyMenuCursor(); - Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBank] | (gUnknown_03004344 << 8)); + Emitcmd33(1, 10, gMoveSelectionCursor[gActiveBattler] | (gUnknown_03004344 << 8)); PlayerBufferExecCompleted(); } else { - gBattleBankFunc[gActiveBank] = sub_802C2EC; + gBattleBankFunc[gActiveBattler] = sub_802C2EC; if (r4 & 0x12) - gUnknown_03004344 = gActiveBank; - else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(1)]) - gUnknown_03004344 = GetBankByIdentity(3); + gUnknown_03004344 = gActiveBattler; + else if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(1)]) + gUnknown_03004344 = GetBattlerAtPosition(3); else - gUnknown_03004344 = GetBankByIdentity(1); + gUnknown_03004344 = GetBattlerAtPosition(1); gSprites[gBankSpriteIds[gUnknown_03004344]].callback = sub_8010520; } } @@ -694,50 +694,50 @@ void sub_802C68C(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gMoveSelectionCursor[gActiveBank] & 1) + if (gMoveSelectionCursor[gActiveBattler] & 1) { - nullsub_7(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + nullsub_7(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E220(); sub_802E2D4(); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gMoveSelectionCursor[gActiveBank] & 1) - && (gMoveSelectionCursor[gActiveBank] ^ 1) < gUnknown_03004348) + if (!(gMoveSelectionCursor[gActiveBattler] & 1) + && (gMoveSelectionCursor[gActiveBattler] ^ 1) < gUnknown_03004348) { - nullsub_7(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + nullsub_7(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E220(); sub_802E2D4(); } } else if (gMain.newKeys & DPAD_UP) { - if (gMoveSelectionCursor[gActiveBank] & 2) + if (gMoveSelectionCursor[gActiveBattler] & 2) { - nullsub_7(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + nullsub_7(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E220(); sub_802E2D4(); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gMoveSelectionCursor[gActiveBank] & 2) - && (gMoveSelectionCursor[gActiveBank] ^ 2) < gUnknown_03004348) + if (!(gMoveSelectionCursor[gActiveBattler] & 2) + && (gMoveSelectionCursor[gActiveBattler] ^ 2) < gUnknown_03004348) { - nullsub_7(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + nullsub_7(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E220(); sub_802E2D4(); } @@ -746,16 +746,16 @@ void sub_802C68C(void) { if (gUnknown_03004348 > 1 && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) { - sub_802E12C(gMoveSelectionCursor[gActiveBank], gUnknown_081FAE80); - if (gMoveSelectionCursor[gActiveBank] != 0) + sub_802E12C(gMoveSelectionCursor[gActiveBattler], gUnknown_081FAE80); + if (gMoveSelectionCursor[gActiveBattler] != 0) gUnknown_03004344 = 0; else - gUnknown_03004344 = gMoveSelectionCursor[gActiveBank] + 1; + gUnknown_03004344 = gMoveSelectionCursor[gActiveBattler] + 1; sub_802E3B4(gUnknown_03004344, 27); Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); - gBattleBankFunc[gActiveBank] = sub_802CA60; + gBattleBankFunc[gActiveBattler] = sub_802CA60; } } #if DEBUG @@ -765,11 +765,11 @@ void sub_802C68C(void) s32 i; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A); - moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1)]; + moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1)]; Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37); ConvertIntToDecimalStringN( gDisplayedStringBattle, - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1), + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1), 2, 3); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37); Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39); @@ -792,7 +792,7 @@ void sub_802C68C(void) } ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39); - gBattleBankFunc[gActiveBank] = debug_sub_8030C24; + gBattleBankFunc[gActiveBattler] = debug_sub_8030C24; } #endif } @@ -814,69 +814,69 @@ void sub_802CA60(void) if (gMain.newKeys & (A_BUTTON | SELECT_BUTTON)) { PlaySE(SE_SELECT); - if (gMoveSelectionCursor[gActiveBank] != gUnknown_03004344) + if (gMoveSelectionCursor[gActiveBattler] != gUnknown_03004344) { - struct ChooseMoveStruct *r9 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBank][4]; + struct ChooseMoveStruct *r9 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; s32 i; - i = r9->moves[gMoveSelectionCursor[gActiveBank]]; - r9->moves[gMoveSelectionCursor[gActiveBank]] = r9->moves[gUnknown_03004344]; + i = r9->moves[gMoveSelectionCursor[gActiveBattler]]; + r9->moves[gMoveSelectionCursor[gActiveBattler]] = r9->moves[gUnknown_03004344]; r9->moves[gUnknown_03004344] = i; - i = r9->pp[gMoveSelectionCursor[gActiveBank]]; - r9->pp[gMoveSelectionCursor[gActiveBank]] = r9->pp[gUnknown_03004344]; + i = r9->pp[gMoveSelectionCursor[gActiveBattler]]; + r9->pp[gMoveSelectionCursor[gActiveBattler]] = r9->pp[gUnknown_03004344]; r9->pp[gUnknown_03004344] = i; - i = r9->unkC[gMoveSelectionCursor[gActiveBank]]; - r9->unkC[gMoveSelectionCursor[gActiveBank]] = r9->unkC[gUnknown_03004344]; + i = r9->unkC[gMoveSelectionCursor[gActiveBattler]]; + r9->unkC[gMoveSelectionCursor[gActiveBattler]] = r9->unkC[gUnknown_03004344]; r9->unkC[gUnknown_03004344] = i; - if (gDisableStructs[gActiveBank].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBank]]) + if (gDisableStructs[gActiveBattler].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBattler]]) { - gDisableStructs[gActiveBank].unk18_b &= ~gBitTable[gMoveSelectionCursor[gActiveBank]]; - gDisableStructs[gActiveBank].unk18_b |= gBitTable[gUnknown_03004344]; + gDisableStructs[gActiveBattler].unk18_b &= ~gBitTable[gMoveSelectionCursor[gActiveBattler]]; + gDisableStructs[gActiveBattler].unk18_b |= gBitTable[gUnknown_03004344]; } sub_802E1B0(); for (i = 0; i < 4; i++) - perMovePPBonuses[i] = (gBattleMons[gActiveBank].ppBonuses & (3 << (i * 2))) >> (i * 2); - totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]]; - perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gUnknown_03004344]; + perMovePPBonuses[i] = (gBattleMons[gActiveBattler].ppBonuses & (3 << (i * 2))) >> (i * 2); + totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]]; + perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gUnknown_03004344]; perMovePPBonuses[gUnknown_03004344] = totalPPBonuses; totalPPBonuses = 0; for (i = 0; i < 4; i++) totalPPBonuses |= perMovePPBonuses[i] << (i * 2); - gBattleMons[gActiveBank].ppBonuses = totalPPBonuses; + gBattleMons[gActiveBattler].ppBonuses = totalPPBonuses; for (i = 0; i < 4; i++) { - gBattleMons[gActiveBank].moves[i] = r9->moves[i]; - gBattleMons[gActiveBank].pp[i] = r9->pp[i]; + gBattleMons[gActiveBattler].moves[i] = r9->moves[i]; + gBattleMons[gActiveBattler].pp[i] = r9->pp[i]; } - if (!(gBattleMons[gActiveBank].status2 & 0x200000)) + if (!(gBattleMons[gActiveBattler].status2 & 0x200000)) { for (i = 0; i < 4; i++) { - sp0.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i); - sp0.pp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i); + sp0.moves[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i); + sp0.pp[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i); } - totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES); + totalPPBonuses = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES); for (i = 0; i < 4; i++) perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2); - i = sp0.moves[gMoveSelectionCursor[gActiveBank]]; - sp0.moves[gMoveSelectionCursor[gActiveBank]] = sp0.moves[gUnknown_03004344]; + i = sp0.moves[gMoveSelectionCursor[gActiveBattler]]; + sp0.moves[gMoveSelectionCursor[gActiveBattler]] = sp0.moves[gUnknown_03004344]; sp0.moves[gUnknown_03004344] = i; - i = sp0.pp[gMoveSelectionCursor[gActiveBank]]; - sp0.pp[gMoveSelectionCursor[gActiveBank]] = sp0.pp[gUnknown_03004344]; + i = sp0.pp[gMoveSelectionCursor[gActiveBattler]]; + sp0.pp[gMoveSelectionCursor[gActiveBattler]] = sp0.pp[gUnknown_03004344]; sp0.pp[gUnknown_03004344] = i; - totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]]; - perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gUnknown_03004344]; + totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]]; + perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gUnknown_03004344]; perMovePPBonuses[gUnknown_03004344] = totalPPBonuses; totalPPBonuses = 0; @@ -885,19 +885,19 @@ void sub_802CA60(void) for (i = 0; i < 4; i++) { - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, &sp0.moves[i]); - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i, &sp0.pp[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i, &sp0.moves[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i, &sp0.pp[i]); } - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES, &totalPPBonuses); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); } } else { sub_802E12C(gUnknown_03004344, BattleText_Format); } - gBattleBankFunc[gActiveBank] = sub_802C68C; - gMoveSelectionCursor[gActiveBank] = gUnknown_03004344; - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); + gBattleBankFunc[gActiveBattler] = sub_802C68C; + gMoveSelectionCursor[gActiveBattler] = gUnknown_03004344; + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -908,9 +908,9 @@ void sub_802CA60(void) { PlaySE(SE_SELECT); nullsub_7(gUnknown_03004344); - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); - sub_802E12C(gMoveSelectionCursor[gActiveBank], BattleText_Format); - gBattleBankFunc[gActiveBank] = sub_802C68C; + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); + sub_802E12C(gMoveSelectionCursor[gActiveBattler], BattleText_Format); + gBattleBankFunc[gActiveBattler] = sub_802C68C; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -919,52 +919,52 @@ void sub_802CA60(void) } if ((gMain.newKeys & DPAD_LEFT) && (gUnknown_03004344 & 1)) { - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0x1D); + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0x1D); else nullsub_7(gUnknown_03004344); gUnknown_03004344 ^= 1; PlaySE(SE_SELECT); - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) sub_802E3B4(gUnknown_03004344, 0); else sub_802E3B4(gUnknown_03004344, 0x1B); } if ((gMain.newKeys & DPAD_RIGHT) && !(gUnknown_03004344 & 1) && (gUnknown_03004344 ^ 1) < gUnknown_03004348) { - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0x1D); + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0x1D); else nullsub_7(gUnknown_03004344); gUnknown_03004344 ^= 1; PlaySE(SE_SELECT); - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) sub_802E3B4(gUnknown_03004344, 0); else sub_802E3B4(gUnknown_03004344, 0x1B); } if ((gMain.newKeys & DPAD_UP) && (gUnknown_03004344 & 2)) { - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0x1D); + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0x1D); else nullsub_7(gUnknown_03004344); gUnknown_03004344 ^= 2; PlaySE(SE_SELECT); - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) sub_802E3B4(gUnknown_03004344, 0); else sub_802E3B4(gUnknown_03004344, 0x1B); } if ((gMain.newKeys & DPAD_DOWN) && !(gUnknown_03004344 & 2) && (gUnknown_03004344 ^ 2) < gUnknown_03004348) { - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0x1D); + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0x1D); else nullsub_7(gUnknown_03004344); gUnknown_03004344 ^= 2; PlaySE(SE_SELECT); - if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBank]) + if (gUnknown_03004344 == gMoveSelectionCursor[gActiveBattler]) sub_802E3B4(gUnknown_03004344, 0); else sub_802E3B4(gUnknown_03004344, 0x1B); @@ -989,7 +989,7 @@ void sub_802D18C(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { sub_800832C(); - gBattleBankFunc[gActiveBank] = sub_802D148; + gBattleBankFunc[gActiveBattler] = sub_802D148; } else { @@ -1007,48 +1007,48 @@ void debug_sub_803107C(void); void debug_sub_8030C24(void) { - s16 move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1); + s16 move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1); switch (gMain.newAndRepeatedKeys) { case START_BUTTON: - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBankAttacker = gActiveBank; + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBankAttacker = gActiveBattler; if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) gBankTarget = gBankAttacker ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankTarget = GetBankByIdentity(3); + gBankTarget = GetBattlerAtPosition(3); else - gBankTarget = GetBankByIdentity(1); + gBankTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBank] = debug_sub_803107C; + gBattleBankFunc[gActiveBattler] = debug_sub_803107C; break; case SELECT_BUTTON: - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBankTarget = gActiveBank; + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBankTarget = gActiveBattler; if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) gBankAttacker = gBankTarget ^ 2; else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - gBankAttacker = GetBankByIdentity(3); + gBankAttacker = GetBattlerAtPosition(3); else - gBankAttacker = GetBankByIdentity(1); + gBankAttacker = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBank] = debug_sub_803107C; + gBattleBankFunc[gActiveBattler] = debug_sub_803107C; break; case R_BUTTON: if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBankAttacker = GetBankByIdentity(3); - gBankTarget = GetBankByIdentity(1); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBankAttacker = GetBattlerAtPosition(3); + gBankTarget = GetBattlerAtPosition(1); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBank] = debug_sub_803107C; + gBattleBankFunc[gActiveBattler] = debug_sub_803107C; } else { @@ -1056,8 +1056,8 @@ void debug_sub_8030C24(void) case DPAD_RIGHT: if (++move > 354) move = 1; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move); - gBattleMons[gActiveBank].moves[0] = move; + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1, &move); + gBattleMons[gActiveBattler].moves[0] = move; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38); Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37); ConvertIntToDecimalStringN(gDisplayedStringBattle, move, 2, 3); @@ -1067,13 +1067,13 @@ void debug_sub_8030C24(void) case L_BUTTON: if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBankAttacker = GetBankByIdentity(1); - gBankTarget = GetBankByIdentity(3); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBankAttacker = GetBattlerAtPosition(1); + gBankTarget = GetBattlerAtPosition(3); sub_80326EC(0); DoMoveAnim(move); - gBattleBankFunc[gActiveBank] = debug_sub_803107C; + gBattleBankFunc[gActiveBattler] = debug_sub_803107C; } else { @@ -1081,8 +1081,8 @@ void debug_sub_8030C24(void) case DPAD_LEFT: if (--move <= 0) move = 354; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move); - gBattleMons[gActiveBank].moves[0] = move; + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1, &move); + gBattleMons[gActiveBattler].moves[0] = move; Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38); Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37); ConvertIntToDecimalStringN(gDisplayedStringBattle, move, 2, 3); @@ -1108,7 +1108,7 @@ void debug_sub_8030C24(void) for (i = 0; i < 4; i++) { StringCopy(gDisplayedStringBattle, BattleText_Format); - move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i); + move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i); StringAppend(gDisplayedStringBattle, gMoveNames[move]); Text_InitWindow( &gUnknown_03004210, @@ -1118,7 +1118,7 @@ void debug_sub_8030C24(void) (i < 2) ? 0x37 : 0x39); Text_PrintWindow8002F44(&gUnknown_03004210); } - gBattleBankFunc[gActiveBank] = sub_802C68C; + gBattleBankFunc[gActiveBattler] = sub_802C68C; } } @@ -1132,8 +1132,8 @@ void debug_sub_803107C(void) s32 i; sub_80326EC(1); - dp11b_obj_instanciate(gActiveBank, 1, 7, 1); - dp11b_obj_instanciate(gActiveBank, 0, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); for (i = 0, count = 0; i < MAX_SPRITES; i++) { @@ -1155,7 +1155,7 @@ void debug_sub_803107C(void) ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2); Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 298, 14, 0x39); - gBattleBankFunc[gActiveBank] = debug_sub_8030C24; + gBattleBankFunc[gActiveBattler] = debug_sub_8030C24; } } @@ -1163,33 +1163,33 @@ void debug_sub_803107C(void) void sub_802D204(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } // duplicate of sub_802D204 void sub_802D23C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } void sub_802D274(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_10(gSaveBlock2.playerGender); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); PlayerBufferExecCompleted(); } } void sub_802D2E0(void) { - if (--ewram17810[gActiveBank].unk9 == 0xFF) + if (--ewram17810[gActiveBattler].unk9 == 0xFF) { - ewram17810[gActiveBank].unk9 = 0; + ewram17810[gActiveBattler].unk9 = 0; PlayerBufferExecCompleted(); } } @@ -1200,106 +1200,106 @@ void sub_802D31C(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBattler ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) r6 = FALSE; - if (r6 && ewram17810[gActiveBank].unk1_0 && ewram17810[gActiveBank ^ 2].unk1_0) + if (r6 && ewram17810[gActiveBattler].unk1_0 && ewram17810[gActiveBattler ^ 2].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; - ewram17810[gActiveBank ^ 2].unk0_7 = 0; - ewram17810[gActiveBank ^ 2].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; + ewram17810[gActiveBattler ^ 2].unk0_7 = 0; + ewram17810[gActiveBattler ^ 2].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) m4aMPlayContinue(&gMPlay_BGM); else m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], gActiveBank ^ 2); - ewram17810[gActiveBank].unk9 = 3; - gBattleBankFunc[gActiveBank] = sub_802D2E0; + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], gActiveBattler ^ 2); + ewram17810[gActiveBattler].unk9 = 3; + gBattleBankFunc[gActiveBattler] = sub_802D2E0; } } void sub_802D500(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (!ewram17810[gActiveBank ^ 2].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_7) - sub_8141828(gActiveBank ^ 2, &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]]); - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) + sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); sub_8045A5C( - gHealthboxIDs[gActiveBank ^ 2], - &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], + gHealthboxIDs[gActiveBattler ^ 2], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); - sub_804777C(gActiveBank ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + sub_804777C(gActiveBattler ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); } - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); sub_8045A5C( - gHealthboxIDs[gActiveBank], - &gPlayerParty[gBattlePartyID[gActiveBank]], + gHealthboxIDs[gActiveBattler], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBank] = sub_802D31C; + gBattleBankFunc[gActiveBattler] = sub_802D31C; } } void sub_802D680(void) { - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy - && ewram17810[gActiveBank].unk1_0) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy + && ewram17810[gActiveBattler].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - gBattleBankFunc[gActiveBank] = sub_802D730; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + gBattleBankFunc[gActiveBattler] = sub_802D730; } } void sub_802D730(void) { - if (!ewram17810[gActiveBank].unk0_6 && !IsCryPlayingOrClearCrySongs()) + if (!ewram17810[gActiveBattler].unk0_6 && !IsCryPlayingOrClearCrySongs()) { m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } void sub_802D798(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy - && !ewram17810[gActiveBank].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + if (gSprites[gUnknown_0300434C[gActiveBattler]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBattler].unk0_3) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); - sub_8031F88(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_802D680; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); + sub_8031F88(gActiveBattler); + gBattleBankFunc[gActiveBattler] = sub_802D680; } } @@ -1314,16 +1314,16 @@ void c3_0802FDF4(u8 taskId) void bx_t1_healthbar_update(void) { - s16 r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); + s16 r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1341,7 +1341,7 @@ void sub_802D924(u8 taskId) u8 bank = gTasks[taskId].data[2]; s16 gainedExp = gTasks[taskId].data[1]; - if (IsDoubleBattle() == TRUE || pkmnIndex != gBattlePartyID[bank]) + if (IsDoubleBattle() == TRUE || pkmnIndex != gBattlerPartyIndexes[bank]) { struct Pokemon *pkmn = &gPlayerParty[pkmnIndex]; u16 species = GetMonData(pkmn, MON_DATA_SPECIES); @@ -1356,13 +1356,13 @@ void sub_802D924(u8 taskId) SetMonData(pkmn, MON_DATA_EXP, &nextLvlExp); CalculateMonStats(pkmn); gainedExp -= nextLvlExp - currExp; - savedActiveBank = gActiveBank; - gActiveBank = bank; + savedActiveBank = gActiveBattler; + gActiveBattler = bank; Emitcmd33(1, 11, gainedExp); - gActiveBank = savedActiveBank; + gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)pkmnIndex == gBattlePartyID[bank] || (u16)pkmnIndex == gBattlePartyID[bank ^ 2])) + && ((u16)pkmnIndex == gBattlerPartyIndexes[bank] || (u16)pkmnIndex == gBattlerPartyIndexes[bank ^ 2])) gTasks[taskId].func = sub_802DCB0; else gTasks[taskId].func = sub_802DDC4; @@ -1441,10 +1441,10 @@ void sub_802DB6C(u8 taskId) asdf = sp0 - sp4; //asdf = r10 - (sp0 - sp4); r10 -= asdf; - r5 = gActiveBank; - gActiveBank = r7; + r5 = gActiveBattler; + gActiveBattler = r7; Emitcmd33(1, 11, r10); - gActiveBank = r5; + gActiveBattler = r5; gTasks[taskId].func = sub_802DCB0; } else @@ -1566,7 +1566,7 @@ _0802DB9C:\n\ ldrh r0, [r0]\n\ subs r2, r0\n\ subs r2, r4, r2\n\ - ldr r4, _0802DC74 @ =gActiveBank\n\ + ldr r4, _0802DC74 @ =gActiveBattler\n\ ldrb r5, [r4]\n\ strb r7, [r4]\n\ lsls r2, 16\n\ @@ -1583,7 +1583,7 @@ _0802DC64: .4byte gHealthboxIDs\n\ _0802DC68: .4byte gPlayerParty\n\ _0802DC6C: .4byte gExperienceTables\n\ _0802DC70: .4byte gBaseStats\n\ -_0802DC74: .4byte gActiveBank\n\ +_0802DC74: .4byte gActiveBattler\n\ _0802DC78: .4byte sub_802DCB0\n\ _0802DC7C:\n\ str r0, [sp, 0x4]\n\ @@ -1618,7 +1618,7 @@ void sub_802DCB0(u8 taskId) u8 bank = gTasks[taskId].data[2]; u8 pkmnIndex = gTasks[taskId].data[0]; - if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlePartyID[bank ^ 2]) + if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlerPartyIndexes[bank ^ 2]) bank ^= 2; move_anim_start_t4(bank, bank, bank, 0); gTasks[taskId].func = sub_802DD10; @@ -1633,7 +1633,7 @@ void sub_802DD10(u8 taskId) u8 pkmnIndex = gTasks[taskId].data[0]; GetMonData(&gPlayerParty[pkmnIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlePartyID[bank ^ 2]) + if (IsDoubleBattle() == TRUE && pkmnIndex == gBattlerPartyIndexes[bank ^ 2]) sub_8045A5C(gHealthboxIDs[bank ^ 2], &gPlayerParty[pkmnIndex], 0); else sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[pkmnIndex], 0); @@ -1655,25 +1655,25 @@ void sub_802DDC4(u8 taskId) void sub_802DE10(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_9(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); PlayerBufferExecCompleted(); } } void sub_802DEAC(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1691,9 +1691,9 @@ void sub_802DF30(void) { u8 r4; - gBattleBankFunc[gActiveBank] = sub_802DF88; - r4 = gTasks[gUnknown_0300434C[gActiveBank]].data[0]; - DestroyTask(gUnknown_0300434C[gActiveBank]); + gBattleBankFunc[gActiveBattler] = sub_802DF88; + r4 = gTasks[gUnknown_0300434C[gActiveBattler]].data[0]; + DestroyTask(gUnknown_0300434C[gActiveBattler]); sub_8094E20(r4); } } @@ -1706,7 +1706,7 @@ void sub_802DF88(void) Emitcmd34(1, gUnknown_0202E8F5, gUnknown_02038470); else Emitcmd34(1, 6, NULL); - if ((gBattleBufferA[gActiveBank][1] & 0xF) == 1) + if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1) b_link_standby_message(); PlayerBufferExecCompleted(); } @@ -1716,7 +1716,7 @@ void sub_802E004(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = sub_802E03C; + gBattleBankFunc[gActiveBattler] = sub_802E03C; nullsub_14(); sub_80A6DCC(); } @@ -1733,13 +1733,13 @@ void sub_802E03C(void) void bx_wait_t1(void) { - if (!gDoingBattleAnim || !ewram17810[gActiveBank].unk0_6) + if (!gDoingBattleAnim || !ewram17810[gActiveBattler].unk0_6) PlayerBufferExecCompleted(); } void bx_blink_t1(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -1758,7 +1758,7 @@ void bx_blink_t1(void) void sub_802E12C(s32 a, const u8 *b) { - struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBank][4]; + struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; StringCopy(gDisplayedStringBattle, b); StringAppend(gDisplayedStringBattle, gMoveNames[r4->moves[a]]); @@ -1773,7 +1773,7 @@ void sub_802E12C(s32 a, const u8 *b) void sub_802E1B0(void) { - struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBank][4]; + struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; s32 i; gUnknown_03004348 = 0; @@ -1789,9 +1789,9 @@ void sub_802E1B0(void) void sub_802E220(void) { - if (gBattleBufferA[gActiveBank][2] != 1) + if (gBattleBufferA[gActiveBattler][2] != 1) { - struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBank][4]; + struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; u8 *str = gDisplayedStringBattle; str = StringCopy(str, BattleText_Format); @@ -1803,9 +1803,9 @@ void sub_802E220(void) str[1] = 0x14; str[2] = 6; str += 3; - str = ConvertIntToDecimalStringN(str, r4->pp[gMoveSelectionCursor[gActiveBank]], 1, 2); + str = ConvertIntToDecimalStringN(str, r4->pp[gMoveSelectionCursor[gActiveBattler]], 1, 2); *str++ = CHAR_SLASH; - ConvertIntToDecimalStringN(str, r4->unkC[gMoveSelectionCursor[gActiveBank]], 1, 2); + ConvertIntToDecimalStringN(str, r4->unkC[gMoveSelectionCursor[gActiveBattler]], 1, 2); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2A2, 0x19, 0x37); Text_PrintWindow8002F44(&gUnknown_03004210); } @@ -1816,18 +1816,18 @@ extern const u8 gTypeNames[][7]; void sub_802E2D4(void) { - if (gBattleBufferA[gActiveBank][2] == 1) + if (gBattleBufferA[gActiveBattler][2] == 1) { Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37); } else { - struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBank][4]; + struct ChooseMoveStruct *r4 = (struct ChooseMoveStruct *)&gBattleBufferA[gActiveBattler][4]; u8 *str = gDisplayedStringBattle; str = StringCopy(str, BattleText_Format); - StringCopy(str, gTypeNames[gBattleMoves[r4->moves[gMoveSelectionCursor[gActiveBank]]].type]); + StringCopy(str, gTypeNames[gBattleMoves[r4->moves[gMoveSelectionCursor[gActiveBattler]]].type]); Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x39, 0x1C, 0x3A); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2C0, 0x17, 0x39); } @@ -1886,13 +1886,13 @@ void sub_802E424(void) void sub_802E434(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) PlayerBufferExecCompleted(); } void sub_802E460(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) PlayerBufferExecCompleted(); } @@ -1913,13 +1913,13 @@ void PlayerHandleGetAttributes(void) u8 r4; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - offset += dp01_getattr_by_ch1_for_player_pokemon_(gBattlePartyID[gActiveBank], unkData); + offset += dp01_getattr_by_ch1_for_player_pokemon_(gBattlerPartyIndexes[gActiveBattler], unkData); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -1942,7 +1942,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: battlePokemon.species = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES); @@ -2004,7 +2004,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); + data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -2019,7 +2019,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); + buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9); size = 1; break; case 17: @@ -2238,11 +2238,11 @@ void PlayerHandlecmd1(void) struct BattlePokemon battleMon; u8 i; // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard. - u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *src = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst; - MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst); - Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst); + MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBattler][1], src[i], gBattleBufferA[gActiveBattler][2], i, dst); + Emitcmd29(1, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -2251,13 +2251,13 @@ void PlayerHandleSetAttributes(void) u8 r4; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - dp01_setattr_by_ch1_for_player_pokemon(gBattlePartyID[gActiveBank]); + dp01_setattr_by_ch1_for_player_pokemon(gBattlerPartyIndexes[gActiveBattler]); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -2271,11 +2271,11 @@ void PlayerHandleSetAttributes(void) // Duplicate of sub_811EC68 void dp01_setattr_by_ch1_for_player_pokemon(u8 a) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: { @@ -2316,10 +2316,10 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a) } break; case 1: - SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case 2: - SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case 3: for (i = 0; i < 4; i++) @@ -2333,157 +2333,157 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a) case 5: case 6: case 7: - SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4, &gBattleBufferA[gActiveBattler][3]); break; case 8: - SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case 9: case 10: case 11: case 12: - SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9, &gBattleBufferA[gActiveBattler][3]); break; case 17: - SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case 18: - SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case 19: - SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case 20: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 21: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 22: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case 23: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 24: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 25: - SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case 26: - SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case 27: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case 28: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 29: - SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case 30: - SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case 31: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case 32: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case 33: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 34: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 35: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case 36: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 37: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 38: - SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case 39: - SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case 40: - SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case 41: - SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 42: - SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case 43: - SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case 44: - SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case 45: - SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case 46: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case 47: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case 48: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case 49: - SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case 50: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case 51: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case 52: - SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case 53: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case 54: - SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case 55: - SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 56: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 57: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 58: - SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 59: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void PlayerHandlecmd3(void) @@ -2491,27 +2491,27 @@ void PlayerHandlecmd3(void) u8 i; u8 *dst; - MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i], - gBattleBufferA[gActiveBank][2], i, dst); + MEMSET_ALT(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][3 + i], + gBattleBufferA[gActiveBattler][2], i, dst); PlayerBufferExecCompleted(); } void PlayerHandleLoadPokeSprite(void) { - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gBattleBankFunc[gActiveBank] = bx_0802E404; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gBattleBankFunc[gActiveBattler] = bx_0802E404; } void PlayerHandleSendOutPoke(void) { - sub_8032AA8(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; - sub_802F934(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_802D798; + sub_8032AA8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; + sub_802F934(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattleBankFunc[gActiveBattler] = sub_802D798; } void sub_802F934(u8 bank, u8 b) @@ -2519,13 +2519,13 @@ void sub_802F934(u8 bank, u8 b) u16 species; sub_8032AA8(bank, b); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(bank, 2), + GetBattlerSpriteCoord(bank, 2), sub_8077F68(bank), sub_8079E90(bank)); gSprites[gUnknown_0300434C[bank]].data[1] = gBankSpriteIds[bank]; @@ -2540,35 +2540,35 @@ void sub_802F934(u8 bank, u8 b) void PlayerHandleReturnPokeToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_802FB2C; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_802FB2C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); PlayerBufferExecCompleted(); } } void sub_802FB2C(void) { - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4 = 1; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - ewram17810[gActiveBank].unk4 = 0; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 1); - gBattleBankFunc[gActiveBank] = sub_802DEAC; + ewram17810[gActiveBattler].unk4 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); + gBattleBankFunc[gActiveBattler] = sub_802DEAC; } } } @@ -2579,7 +2579,7 @@ void PlayerHandleTrainerThrow(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) & 2) + if (GetBattlerPosition(gActiveBattler) & 2) r7 = 16; else r7 = -16; @@ -2588,67 +2588,67 @@ void PlayerHandleTrainerThrow(void) { r7 = 0; } - LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBank); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, r7 + 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, - sub_8079E90(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_802D204; + sub_8079E90(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_802D204; } void PlayerHandleTrainerSlide(void) { - LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBank); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_802D23C; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_802D23C; } void PlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); - gBattleBankFunc[gActiveBank] = sub_802D274; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + gBattleBankFunc[gActiveBattler] = sub_802D274; } void PlayerHandlecmd10(void) { - if (ewram17810[gActiveBank].unk4 == 0) + if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBank].substituteSprite) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4++; + if (ewram17800[gActiveBattler].substituteSprite) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4++; } else { - if (ewram17810[gActiveBank].unk0_6 == 0) + if (ewram17810[gActiveBattler].unk0_6 == 0) { - ewram17810[gActiveBank].unk4 = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + ewram17810[gActiveBattler].unk4 = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80105EC; - gBattleBankFunc[gActiveBank] = sub_802DE10; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80105EC; + gBattleBankFunc[gActiveBattler] = sub_802DE10; } } } @@ -2663,23 +2663,23 @@ void PlayerHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3); - gBattleBankFunc[gActiveBank] = bx_wait_t1; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); + gBattleBankFunc[gActiveBattler] = bx_wait_t1; } void PlayerHandleBallThrow(void) { - u8 var = gBattleBufferA[gActiveBank][1]; + u8 var = gBattleBufferA[gActiveBattler][1]; ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3); - gBattleBankFunc[gActiveBank] = bx_wait_t1; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 3); + gBattleBankFunc[gActiveBattler] = bx_wait_t1; } void PlayerHandlePuase(void) { - u8 var = gBattleBufferA[gActiveBank][1]; + u8 var = gBattleBufferA[gActiveBattler][1]; // WTF is this?? while (var != 0) @@ -2690,17 +2690,17 @@ void PlayerHandlePuase(void) void PlayerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 r0 = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 r0 = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (sub_8031720(r0, gAnimMoveTurn) != 0) { // Dead code. sub_8031720 always returns 0. @@ -2708,33 +2708,33 @@ void PlayerHandleMoveAnimation(void) } else { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_8030190; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_8030190; } } } void sub_8030190(void) { - u16 r4 = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 r7 = gBattleBufferA[gActiveBank][11]; + u16 r4 = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 r7 = gBattleBufferA[gActiveBattler][11]; - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite == 1 && ewram17800[gActiveBank].unk0_3 == 0) + if (ewram17800[gActiveBattler].substituteSprite == 1 && ewram17800[gActiveBattler].unk0_3 == 0) { - ewram17800[gActiveBank].unk0_3 = 1; - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17800[gActiveBattler].unk0_3 = 1; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } - ewram17810[gActiveBank].unk4 = 1; + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (ewram17810[gActiveBank].unk0_6 == 0) + if (ewram17810[gActiveBattler].unk0_6 == 0) { sub_80326EC(0); DoMoveAnim(r4); - ewram17810[gActiveBank].unk4 = 2; + ewram17810[gActiveBattler].unk4 = 2; } break; case 2: @@ -2742,20 +2742,20 @@ void sub_8030190(void) if (!gAnimScriptActive) { sub_80326EC(1); - if (ewram17800[gActiveBank].substituteSprite == 1 && r7 < 2) + if (ewram17800[gActiveBattler].substituteSprite == 1 && r7 < 2) { - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - ewram17800[gActiveBank].unk0_3 = 0; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + ewram17800[gActiveBattler].unk0_3 = 0; } - ewram17810[gActiveBank].unk4 = 3; + ewram17810[gActiveBattler].unk4 = 3; } break; case 3: - if (ewram17810[gActiveBank].unk0_6 == 0) + if (ewram17810[gActiveBattler].unk0_6 == 0) { sub_8031F24(); - sub_80324BC(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - ewram17810[gActiveBank].unk4 = 0; + sub_80324BC(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + ewram17810[gActiveBattler].unk4 = 0; PlayerBufferExecCompleted(); } break; @@ -2766,14 +2766,14 @@ void PlayerHandlePrintString(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15); - gBattleBankFunc[gActiveBank] = sub_802DF18; + gBattleBankFunc[gActiveBattler] = sub_802DF18; } void PlayerHandlePrintStringPlayerOnly(void) { - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) PlayerHandlePrintString(); else PlayerBufferExecCompleted(); @@ -2788,7 +2788,7 @@ void PlayerHandlecmd18(void) Text_FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38); - gBattleBankFunc[gActiveBank] = sub_802C098; + gBattleBankFunc[gActiveBattler] = sub_802C098; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -2797,7 +2797,7 @@ void PlayerHandlecmd18(void) for (r4 = 0; r4 < 4; r4++) nullsub_8(r4); - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35); @@ -2812,7 +2812,7 @@ void PlayerHandlecmd20(void) { MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); sub_80304A8(); - gBattleBankFunc[gActiveBank] = sub_802C68C; + gBattleBankFunc[gActiveBattler] = sub_802C68C; } void sub_80304A8(void) @@ -2821,8 +2821,8 @@ void sub_80304A8(void) gBattle_BG0_Y = 320; sub_802E1B0(); gUnknown_03004344 = 0xFF; - sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); - if (gBattleBufferA[gActiveBank][2] != 1) + sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); + if (gBattleBufferA[gActiveBattler][2] != 1) { Text_InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -2836,26 +2836,26 @@ void PlayerHandleOpenBag(void) s32 i; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gBattleBankFunc[gActiveBank] = sub_802E004; - gBankInMenu = gActiveBank; + gBattleBankFunc[gActiveBattler] = sub_802E004; + gBankInMenu = gActiveBattler; for (i = 0; i < 3; i++) - gUnknown_02038470[i] = gBattleBufferA[gActiveBank][1 + i]; + gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][1 + i]; } void PlayerHandlecmd22(void) { s32 i; - gUnknown_0300434C[gActiveBank] = CreateTask(TaskDummy, 0xFF); - gTasks[gUnknown_0300434C[gActiveBank]].data[0] = gBattleBufferA[gActiveBank][1] & 0xF; - ewram16054 = gBattleBufferA[gActiveBank][1] >> 4; - EWRAM_1609D = gBattleBufferA[gActiveBank][2]; - ewram160C0 = gBattleBufferA[gActiveBank][3]; + gUnknown_0300434C[gActiveBattler] = CreateTask(TaskDummy, 0xFF); + gTasks[gUnknown_0300434C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF; + ewram16054 = gBattleBufferA[gActiveBattler][1] >> 4; + EWRAM_1609D = gBattleBufferA[gActiveBattler][2]; + ewram160C0 = gBattleBufferA[gActiveBattler][3]; for (i = 0; i < 3; i++) - gUnknown_02038470[i] = gBattleBufferA[gActiveBank][4 + i]; + gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i]; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gBattleBankFunc[gActiveBank] = sub_802DF30; - gBankInMenu = gActiveBank; + gBattleBankFunc[gActiveBattler] = sub_802DF30; + gBankInMenu = gActiveBattler; } void PlayerHandlecmd23(void) @@ -2870,27 +2870,27 @@ void PlayerHandleHealthBarUpdate(void) s16 r7; load_gfxc_health_bar(0); - r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, curHP, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); - sub_80440EC(gHealthboxIDs[gActiveBank], 0, 0); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); + sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); } - gBattleBankFunc[gActiveBank] = bx_t1_healthbar_update; + gBattleBankFunc[gActiveBattler] = bx_t1_healthbar_update; } void PlayerHandleExpBarUpdate(void) { - u8 r7 = gBattleBufferA[gActiveBank][1]; + u8 r7 = gBattleBufferA[gActiveBattler][1]; if (GetMonData(&gPlayerParty[r7], MON_DATA_LEVEL) >= 100) { @@ -2903,41 +2903,41 @@ void PlayerHandleExpBarUpdate(void) load_gfxc_health_bar(1); GetMonData(&gPlayerParty[r7], MON_DATA_SPECIES); // unused return value - r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + r4 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); taskId = CreateTask(sub_802D924, 10); gTasks[taskId].data[0] = r7; gTasks[taskId].data[1] = r4; - gTasks[taskId].data[2] = gActiveBank; - gBattleBankFunc[gActiveBank] = nullsub_91; + gTasks[taskId].data[2] = gActiveBattler; + gBattleBankFunc[gActiveBattler] = nullsub_91; } } void PlayerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 9); - ewram17810[gActiveBank].unk0_4 = 0; - gBattleBankFunc[gActiveBank] = sub_802E434; + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 9); + ewram17810[gActiveBattler].unk0_4 = 0; + gBattleBankFunc[gActiveBattler] = sub_802E434; } } void PlayerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { move_anim_start_t2_for_situation( - gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = sub_802E434; + gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattleBankFunc[gActiveBattler] = sub_802E434; } } void PlayerHandleStatusXor(void) { - u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBank][1]; + u8 val = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS, &val); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS, &val); PlayerBufferExecCompleted(); } @@ -2948,19 +2948,19 @@ void PlayerHandlecmd29(void) void PlayerHandleDMATransfer(void) { - u32 val1 = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8) - | (gBattleBufferA[gActiveBank][3] << 16) - | (gBattleBufferA[gActiveBank][4] << 24); - u16 val2 = gBattleBufferA[gActiveBank][5] | (gBattleBufferA[gActiveBank][6] << 8); + u32 val1 = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8) + | (gBattleBufferA[gActiveBattler][3] << 16) + | (gBattleBufferA[gActiveBattler][4] << 24); + u16 val2 = gBattleBufferA[gActiveBattler][5] | (gBattleBufferA[gActiveBattler][6] << 8); - Dma3CopyLarge16_(&gBattleBufferA[gActiveBank][7], (u8 *)val1, val2); + Dma3CopyLarge16_(&gBattleBufferA[gActiveBattler][7], (u8 *)val1, val2); PlayerBufferExecCompleted(); } void PlayerHandlecmd31(void) { - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); PlayerBufferExecCompleted(); } @@ -3001,7 +3001,7 @@ void PlayerHandlecmd37(void) void PlayerHandlecmd38(void) { - gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } @@ -3019,16 +3019,16 @@ void PlayerHandlecmd40(void) void PlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerBufferExecCompleted(); } else { gDoingBattleAnim = 1; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - sub_8047858(gActiveBank); - gBattleBankFunc[gActiveBank] = bx_blink_t1; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + sub_8047858(gActiveBattler); + gBattleBankFunc[gActiveBattler] = bx_blink_t1; } } @@ -3041,23 +3041,23 @@ void PlayerHandleEffectivenessSound(void) { s8 pan; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) pan = -64; else pan = 63; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); PlayerBufferExecCompleted(); } void PlayerHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); PlayerBufferExecCompleted(); } void PlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerBufferExecCompleted(); @@ -3065,7 +3065,7 @@ void PlayerHandleFaintingCry(void) void PlayerHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; PlayerBufferExecCompleted(); } @@ -3075,23 +3075,23 @@ void PlayerHandleTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2.playerGender].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(task05_08033660, 5); - gTasks[taskId].data[0] = gActiveBank; - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + gTasks[taskId].data[0] = gActiveBattler; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17810[4].unk9 |= 1; - gBattleBankFunc[gActiveBank] = nullsub_91; + gBattleBankFunc[gActiveBattler] = nullsub_91; } void sub_8030E38(struct Sprite *sprite) @@ -3101,7 +3101,7 @@ void sub_8030E38(struct Sprite *sprite) FreeSpriteOamMatrix(sprite); FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); DestroySprite(sprite); - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[r4]], r4); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[r4]], r4); StartSpriteAnim(&gSprites[gBankSpriteIds[r4]], 0); } @@ -3113,104 +3113,104 @@ void task05_08033660(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & 0x40)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_802F934(gActiveBank, 0); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_802F934(gActiveBattler, 0); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_802F934(gActiveBank, 0); - gActiveBank ^= 2; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_802F934(gActiveBank, 0); - gActiveBank ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_802F934(gActiveBattler, 0); + gActiveBattler ^= 2; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + sub_802F934(gActiveBattler, 0); + gActiveBattler ^= 2; } - gBattleBankFunc[gActiveBank] = sub_802D500; - gActiveBank = savedActiveBank; + gBattleBankFunc[gActiveBattler] = sub_802D500; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } void PlayerHandlecmd48(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == 0) { PlayerBufferExecCompleted(); } else { - ewram17810[gActiveBank].unk0_0 = 1; - gUnknown_02024E68[gActiveBank] = sub_8044804(gActiveBank, (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - ewram17810[gActiveBank].unk5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - ewram17810[gActiveBank].unk5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_8031064; + ewram17810[gActiveBattler].unk0_0 = 1; + gUnknown_02024E68[gActiveBattler] = sub_8044804(gActiveBattler, (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + ewram17810[gActiveBattler].unk5 = 0; + if (gBattleBufferA[gActiveBattler][2] != 0) + ewram17810[gActiveBattler].unk5 = 0x5D; + gBattleBankFunc[gActiveBattler] = sub_8031064; } } void sub_8031064(void) { - if (ewram17810[gActiveBank].unk5++ > 0x5C) + if (ewram17810[gActiveBattler].unk5++ > 0x5C) { - ewram17810[gActiveBank].unk5 = 0; + ewram17810[gActiveBattler].unk5 = 0; PlayerBufferExecCompleted(); } } void PlayerHandlecmd49(void) { - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; PlayerBufferExecCompleted(); } void PlayerHandlecmd50(void) { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); PlayerBufferExecCompleted(); } void PlayerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - sub_8031F88(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + sub_8031F88(gActiveBattler); } PlayerBufferExecCompleted(); } void PlayerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 val2 = gBattleBufferA[gActiveBank][1]; - u16 val = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 val2 = gBattleBufferA[gActiveBattler][1]; + u16 val = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, val2, val)) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, val2, val)) PlayerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_802E460; + gBattleBankFunc[gActiveBattler] = sub_802E460; } } void PlayerHandleLinkStandbyMsg(void) { - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: b_link_standby_message(); // fall through case 1: - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); break; case 2: b_link_standby_message(); @@ -3221,17 +3221,17 @@ void PlayerHandleLinkStandbyMsg(void) void PlayerHandleResetActionMoveSelection(void) { - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; break; case 1: - gActionSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; break; case 2: - gMoveSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; break; } PlayerBufferExecCompleted(); @@ -3239,11 +3239,11 @@ void PlayerHandleResetActionMoveSelection(void) void PlayerHandlecmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_802D18C; + gBattleBankFunc[gActiveBattler] = sub_802D18C; } void PlayerHandlecmd56(void) diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 03cf8759d..53c4d71d7 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -20,7 +20,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gActionSelectionCursor[]; extern const u8 BattleText_PlayerMenu[]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern const u8 BattleText_MenuOptionsSafari[]; extern void *gBattleBankFunc[]; @@ -36,13 +36,13 @@ extern u16 gSpecialVar_ItemId; extern MainCallback gPreBattleCallback1; extern u8 gBankInMenu; extern u8 gHealthboxIDs[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gUnknown_02024DE8; extern u8 gBattleOutcome; -extern u8 GetBankSide(u8); -extern u8 GetBankByIdentity(u8); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerSide(u8); +extern u8 GetBattlerAtPosition(u8); +extern u8 GetBattlerPosition(u8); extern void LoadPlayerTrainerBankSprite(); extern u8 sub_8079E90(); extern void sub_80313A0(struct Sprite *); @@ -194,15 +194,15 @@ void unref_sub_812B464(void) void SetBankFuncToSafariBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = SafariBufferRunCommand; + gBattleBankFunc[gActiveBattler] = SafariBufferRunCommand; } void SafariBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < 0x39) - gSafariBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < 0x39) + gSafariBufferCommands[gBattleBufferA[gActiveBattler][0]](); else SafariBufferExecCompleted(); } @@ -216,7 +216,7 @@ void bx_battle_menu_t6_2(void) DestroyMenuCursor(); // Useless switch statement. - switch (gActionSelectionCursor[gActiveBank]) + switch (gActionSelectionCursor[gActiveBattler]) { case 0: Emitcmd33(1, 5, 0); @@ -235,49 +235,49 @@ void bx_battle_menu_t6_2(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gActionSelectionCursor[gActiveBank] & 1) + if (gActionSelectionCursor[gActiveBattler] & 1) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gActionSelectionCursor[gActiveBank] & 1)) + if (!(gActionSelectionCursor[gActiveBattler] & 1)) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_UP) { - if (gActionSelectionCursor[gActiveBank] & 2) + if (gActionSelectionCursor[gActiveBattler] & 2) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gActionSelectionCursor[gActiveBank] & 2)) + if (!(gActionSelectionCursor[gActiveBattler] & 2)) { PlaySE(SE_SELECT); - nullsub_8(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + nullsub_8(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); } } #if DEBUG else if (gMain.newKeys & R_BUTTON) { - if (!ewram17810[gActiveBank].unk0_5) - move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, 4, 0); + if (!ewram17810[gActiveBattler].unk0_5) + move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, 4, 0); } else if (gMain.newKeys & START_BUTTON) { @@ -288,7 +288,7 @@ void bx_battle_menu_t6_2(void) void sub_812B65C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -310,7 +310,7 @@ void sub_812B6AC(void) void bx_wait_t6(void) { - if (!gDoingBattleAnim || !ewram17810[gActiveBank].unk0_6) + if (!gDoingBattleAnim || !ewram17810[gActiveBattler].unk0_6) SafariBufferExecCompleted(); } @@ -318,7 +318,7 @@ void sub_812B724(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = sub_812B758; + gBattleBankFunc[gActiveBattler] = sub_812B758; sub_810BADC(); } } @@ -334,29 +334,29 @@ void sub_812B758(void) void sub_812B794(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) SafariBufferExecCompleted(); } void SafariBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = SafariBufferRunCommand; + gBattleBankFunc[gActiveBattler] = SafariBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = 0x38; + gBattleBufferA[gActiveBattler][0] = 0x38; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } void unref_sub_812B838(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) SafariBufferExecCompleted(); } @@ -397,18 +397,18 @@ void SafariHandleReturnPokeToBall(void) void SafariHandleTrainerThrow(void) { - LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBank); - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, gActiveBattler); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_812B65C; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_812B65C; } void SafariHandleTrainerSlide(void) @@ -435,18 +435,18 @@ void SafariHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); - gBattleBankFunc[gActiveBank] = bx_wait_t6; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); + gBattleBankFunc[gActiveBattler] = bx_wait_t6; } void SafariHandleBallThrow(void) { - u8 var = gBattleBufferA[gActiveBank][1]; + u8 var = gBattleBufferA[gActiveBattler][1]; ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); - gBattleBankFunc[gActiveBank] = bx_wait_t6; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); + gBattleBankFunc[gActiveBattler] = bx_wait_t6; } // TODO: spell Pause correctly @@ -464,14 +464,14 @@ void SafariHandlePrintString(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBattler][2]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); - gBattleBankFunc[gActiveBank] = sub_812B694; + gBattleBankFunc[gActiveBattler] = sub_812B694; } void SafariHandlePrintStringPlayerOnly(void) { - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) SafariHandlePrintString(); else SafariBufferExecCompleted(); @@ -486,7 +486,7 @@ void SafariHandlecmd18(void) gUnknown_03004210.paletteNum = 0; Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); - gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2; + gBattleBankFunc[gActiveBattler] = bx_battle_menu_t6_2; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); @@ -495,7 +495,7 @@ void SafariHandlecmd18(void) for (i = 0; i < 4; i++) nullsub_8(i); - sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + sub_802E3E4(gActionSelectionCursor[gActiveBattler], 0); StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu); Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35); @@ -515,8 +515,8 @@ void SafariHandlecmd20(void) void SafariHandleOpenBag(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gBattleBankFunc[gActiveBank] = sub_812B724; - gBankInMenu = gActiveBank; + gBattleBankFunc[gActiveBattler] = sub_812B724; + gBankInMenu = gActiveBattler; } void SafariHandlecmd22(void) @@ -541,7 +541,7 @@ void SafariHandleExpBarUpdate(void) void SafariHandleStatusIconUpdate(void) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 11); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 11); SafariBufferExecCompleted(); } @@ -629,23 +629,23 @@ void SafariHandleEffectivenessSound(void) { s8 pan; - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) pan = -64; else pan = 63; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); SafariBufferExecCompleted(); } void SafariHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); SafariBufferExecCompleted(); } void SafariHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); SafariBufferExecCompleted(); @@ -653,16 +653,16 @@ void SafariHandleFaintingCry(void) void SafariHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; SafariBufferExecCompleted(); } void SafariHandleTrainerBallThrow(void) { - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 10); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 10); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); SafariBufferExecCompleted(); } @@ -688,13 +688,13 @@ void SafariHandleSpriteInvisibility(void) void SafariHandleBattleAnimation(void) { - u8 r3 = gBattleBufferA[gActiveBank][1]; - u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 r3 = gBattleBufferA[gActiveBattler][1]; + u16 r4 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, r3, r4) != 0) SafariBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_812B794; + gBattleBankFunc[gActiveBattler] = sub_812B794; } void SafariHandleLinkStandbyMsg(void) @@ -709,12 +709,12 @@ void SafariHandleResetActionMoveSelection(void) void SafariHandlecmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); SafariBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattleBankFunc[gActiveBank] = sub_812B6AC; + gBattleBankFunc[gActiveBattler] = sub_812B6AC; } void SafariHandlecmd56(void) diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index c590b487c..26348b434 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -27,14 +27,14 @@ struct MovePpInfo u8 ppBonuses; }; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern void (*gBattleBankFunc[])(void); extern u32 gBattleExecBuffer; extern u8 gBattleBufferA[][0x200]; extern u8 gBankSpriteIds[]; extern MainCallback gPreBattleCallback1; extern bool8 gDoingBattleAnim; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; extern u16 gAnimMovePower; @@ -73,16 +73,16 @@ extern bool8 IsDoubleBattle(void); extern void c3_0802FDF4(u8); extern void PlayerHandlecmd1(void); extern void LoadPlayerTrainerBankSprite(); -extern u8 GetBankIdentity(u8); +extern u8 GetBattlerPosition(u8); extern void sub_80313A0(struct Sprite *); -extern u8 GetBankByIdentity(u8); +extern u8 GetBattlerAtPosition(u8); extern u8 sub_8031720(); extern void DoMoveAnim(); extern void sub_80326EC(); extern void sub_8031F24(void); extern void sub_80324BC(); extern void BufferStringBattle(); -extern u8 GetBankSide(u8); +extern u8 GetBattlerSide(u8); extern void sub_80304A8(void); extern void sub_8047858(); extern void StartBattleIntroAnim(); @@ -91,7 +91,7 @@ extern void StartTranslateAnimSpriteByDeltas(struct Sprite *); extern void sub_8030E38(struct Sprite *); extern void StoreSpriteCallbackInData(); extern u8 sub_8046400(); -extern u8 GetBankPosition(); +extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); extern u8 sub_8079E90(); extern void sub_80312F0(struct Sprite *); @@ -238,7 +238,7 @@ void unref_sub_8137220(void) void SetBankFuncToWallyBufferRunCommand(void) { - gBattleBankFunc[gActiveBank] = WallyBufferRunCommand; + gBattleBankFunc[gActiveBattler] = WallyBufferRunCommand; ewram160A8 = 0; ewram160A9 = 0; ewram160AA = 0; @@ -247,10 +247,10 @@ void SetBankFuncToWallyBufferRunCommand(void) void WallyBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < 0x39) - gWallyBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < 0x39) + gWallyBufferCommands[gBattleBufferA[gActiveBattler][0]](); else WallyBufferExecCompleted(); } @@ -325,7 +325,7 @@ void sub_81372BC(void) void sub_813741C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -355,7 +355,7 @@ void sub_81374C4(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = sub_81374FC; + gBattleBankFunc[gActiveBattler] = sub_81374FC; nullsub_14(); PrepareBagForWallyTutorial(); } @@ -373,27 +373,27 @@ void sub_81374FC(void) void sub_8137538(void) { - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) - sub_8141828(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler].unk0_7) + sub_8141828(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); - if (!ewram17810[gActiveBank ^ 2].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_7) - sub_8141828(gActiveBank ^ 2, &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]]); + if (!ewram17810[gActiveBattler ^ 2].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_7) + sub_8141828(gActiveBattler ^ 2, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]]); - if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_3) + if (!ewram17810[gActiveBattler].unk0_3 && !ewram17810[gActiveBattler ^ 2].unk0_3) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); - sub_8045A5C(gHealthboxIDs[gActiveBank ^ 2], &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], 0); - sub_804777C(gActiveBank ^ 2); - sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler ^ 2]]); + sub_8045A5C(gHealthboxIDs[gActiveBattler ^ 2], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ 2]], 0); + sub_804777C(gActiveBattler ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBattler ^ 2]); } - DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); - sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); - sub_804777C(gActiveBank); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBattler]]); + sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); + sub_804777C(gActiveBattler); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); ewram17840.unk9_0 = 0; - gBattleBankFunc[gActiveBank] = sub_81376B8; + gBattleBankFunc[gActiveBattler] = sub_81376B8; } } @@ -401,18 +401,18 @@ void sub_81376B8(void) { bool8 r4 = FALSE; - if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBattler]].callback == SpriteCallbackDummy) r4 = TRUE; - if (r4 && ewram17810[gActiveBank].unk1_0 && ewram17810[gActiveBank ^ 2].unk1_0) + if (r4 && ewram17810[gActiveBattler].unk1_0 && ewram17810[gActiveBattler ^ 2].unk1_0) { - ewram17810[gActiveBank].unk0_7 = 0; - ewram17810[gActiveBank].unk1_0 = 0; - ewram17810[gActiveBank ^ 2].unk0_7 = 0; - ewram17810[gActiveBank ^ 2].unk1_0 = 0; + ewram17810[gActiveBattler].unk0_7 = 0; + ewram17810[gActiveBattler].unk1_0 = 0; + ewram17810[gActiveBattler ^ 2].unk0_7 = 0; + ewram17810[gActiveBattler ^ 2].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } @@ -421,22 +421,22 @@ void sub_81377B0(void) { s16 r4; - r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); - sub_8043DFC(gHealthboxIDs[gActiveBank]); + r4 = sub_8045C78(gActiveBattler, gHealthboxIDs[gActiveBattler], 0, 0); + sub_8043DFC(gHealthboxIDs[gActiveBattler]); if (r4 != -1) { - sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBattler], r4, 0); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } void bx_blink_t5(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -455,11 +455,11 @@ void bx_blink_t5(void) void sub_813789C(void) { - if (!ewram17810[gActiveBank].unk0_6) + if (!ewram17810[gActiveBattler].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); WallyBufferExecCompleted(); } } @@ -467,35 +467,35 @@ void sub_813789C(void) // Duplicate of sub_813741C void sub_8137908(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } void sub_8137940(void) { - if (!ewram17810[gActiveBank].unk0_5) + if (!ewram17810[gActiveBattler].unk0_5) WallyBufferExecCompleted(); } void WallyBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = WallyBufferRunCommand; + gBattleBankFunc[gActiveBattler] = WallyBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 multiplayerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &multiplayerId); - gBattleBufferA[gActiveBank][0] = 0x38; + gBattleBufferA[gActiveBattler][0] = 0x38; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } void unref_sub_81379E4(void) { - if (!ewram17810[gActiveBank].unk0_4) + if (!ewram17810[gActiveBattler].unk0_4) WallyBufferExecCompleted(); } @@ -506,13 +506,13 @@ void WallyHandleGetAttributes(void) u8 r4; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - r6 = sub_8137A84(gBattlePartyID[gActiveBank], arr); + r6 = sub_8137A84(gBattlerPartyIndexes[gActiveBattler], arr); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -534,7 +534,7 @@ u32 sub_8137A84(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: battlePokemon.species = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES); @@ -596,7 +596,7 @@ u32 sub_8137A84(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); + data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -611,7 +611,7 @@ u32 sub_8137A84(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); + buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9); size = 1; break; case 17: @@ -835,13 +835,13 @@ void WallyHandleSetAttributes(void) u8 r4; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - sub_8138294(gBattlePartyID[gActiveBank]); + sub_8138294(gBattlerPartyIndexes[gActiveBattler]); } else { - r4 = gBattleBufferA[gActiveBank][2]; + r4 = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -854,11 +854,11 @@ void WallyHandleSetAttributes(void) void sub_8138294(u8 a) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case 0: { @@ -899,10 +899,10 @@ void sub_8138294(u8 a) } break; case 1: - SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case 2: - SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case 3: for (i = 0; i < 4; i++) @@ -916,157 +916,157 @@ void sub_8138294(u8 a) case 5: case 6: case 7: - SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - 4, &gBattleBufferA[gActiveBattler][3]); break; case 8: - SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case 9: case 10: case 11: case 12: - SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - 9, &gBattleBufferA[gActiveBattler][3]); break; case 17: - SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case 18: - SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case 19: - SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case 20: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 21: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 22: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case 23: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case 24: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case 25: - SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case 26: - SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case 27: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case 28: - SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 29: - SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case 30: - SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case 31: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case 32: - SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case 33: - SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 34: - SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 35: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case 36: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case 37: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case 38: - SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case 39: - SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case 40: - SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case 41: - SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case 42: - SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case 43: - SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case 44: - SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case 45: - SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case 46: - SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case 47: - SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case 48: - SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case 49: - SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case 50: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case 51: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case 52: - SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case 53: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case 54: - SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case 55: - SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 56: - SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 57: - SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 58: - SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case 59: - SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } void WallyHandlecmd3(void) @@ -1086,48 +1086,48 @@ void WallyHandleSendOutPoke(void) void WallyHandleReturnPokeToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 1); - gBattleBankFunc[gActiveBank] = sub_813789C; + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 1); + gBattleBankFunc[gActiveBattler] = sub_813789C; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - sub_8043DB0(gHealthboxIDs[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + sub_8043DB0(gHealthboxIDs[gActiveBattler]); WallyBufferExecCompleted(); } } void WallyHandleTrainerThrow(void) { - LoadPlayerTrainerBankSprite(2, gActiveBank); - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(2, gActiveBattler); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_813741C; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_813741C; } void WallyHandleTrainerSlide(void) { - LoadPlayerTrainerBankSprite(2, gActiveBank); - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + LoadPlayerTrainerBankSprite(2, gActiveBattler); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_02024E8C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[2].coords), 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80313A0; - gBattleBankFunc[gActiveBank] = sub_8137908; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80313A0; + gBattleBankFunc[gActiveBattler] = sub_8137908; } void WallyHandleTrainerSlideBack(void) @@ -1149,18 +1149,18 @@ void WallyHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); - gBattleBankFunc[gActiveBank] = bx_wait_t5; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); + gBattleBankFunc[gActiveBattler] = bx_wait_t5; } void WallyHandleBallThrow(void) { - u8 val = gBattleBufferA[gActiveBank][1]; + u8 val = gBattleBufferA[gActiveBattler][1]; ewram17840.unk8 = val; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); - gBattleBankFunc[gActiveBank] = bx_wait_t5; + move_anim_start_t4(gActiveBattler, gActiveBattler, GetBattlerAtPosition(1), 4); + gBattleBankFunc[gActiveBattler] = bx_wait_t5; } void WallyHandlePuase(void) @@ -1170,15 +1170,15 @@ void WallyHandlePuase(void) void WallyHandleMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (sub_8031720(move, gAnimMoveTurn) != 0) { // Dead code. sub_8031720 always returns 0. @@ -1186,32 +1186,32 @@ void WallyHandleMoveAnimation(void) } else { - ewram17810[gActiveBank].unk4 = 0; - gBattleBankFunc[gActiveBank] = sub_81390D0; + ewram17810[gActiveBattler].unk4 = 0; + gBattleBankFunc[gActiveBattler] = sub_81390D0; } } void sub_81390D0(void) { - u16 r4 = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 r4 = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); #ifndef NONMATCHING asm("":::"r6"); #endif - switch (ewram17810[gActiveBank].unk4) + switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBank].substituteSprite == 1) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); - ewram17810[gActiveBank].unk4 = 1; + if (ewram17800[gActiveBattler].substituteSprite == 1) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); + ewram17810[gActiveBattler].unk4 = 1; break; case 1: - if (ewram17810[gActiveBank].unk0_6 == 0) + if (ewram17810[gActiveBattler].unk0_6 == 0) { sub_80326EC(0); DoMoveAnim(r4); - ewram17810[gActiveBank].unk4 = 2; + ewram17810[gActiveBattler].unk4 = 2; } break; case 2: @@ -1219,17 +1219,17 @@ void sub_81390D0(void) if (!gAnimScriptActive) { sub_80326EC(1); - if (ewram17800[gActiveBank].substituteSprite == 1) - move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); - ewram17810[gActiveBank].unk4 = 3; + if (ewram17800[gActiveBattler].substituteSprite == 1) + move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); + ewram17810[gActiveBattler].unk4 = 3; } break; case 3: - if (ewram17810[gActiveBank].unk0_6 == 0) + if (ewram17810[gActiveBattler].unk0_6 == 0) { sub_8031F24(); - sub_80324BC(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - ewram17810[gActiveBank].unk4 = 0; + sub_80324BC(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + ewram17810[gActiveBattler].unk4 = 0; WallyBufferExecCompleted(); } break; @@ -1242,17 +1242,17 @@ void WallyHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ptr = (u16 *)&gBattleBufferA[gActiveBank][2]; + ptr = (u16 *)&gBattleBufferA[gActiveBattler][2]; if (*ptr == 2) DestroyMenuCursor(); BufferStringBattle(*ptr); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15); - gBattleBankFunc[gActiveBank] = sub_8137454; + gBattleBankFunc[gActiveBattler] = sub_8137454; } void WallyHandlePrintStringPlayerOnly(void) { - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) WallyHandlePrintString(); else WallyBufferExecCompleted(); @@ -1267,7 +1267,7 @@ void WallyHandlecmd18(void) gUnknown_03004210.paletteNum = 0; Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); - gBattleBankFunc[gActiveBank] = sub_81372BC; + gBattleBankFunc[gActiveBattler] = sub_81372BC; Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); Text_PrintWindow8002F44(&gUnknown_03004210); MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); @@ -1313,8 +1313,8 @@ void WallyHandlecmd20(void) void WallyHandleOpenBag(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gBattleBankFunc[gActiveBank] = sub_81374C4; - gBankInMenu = gActiveBank; + gBattleBankFunc[gActiveBattler] = sub_81374C4; + gBankInMenu = gActiveBattler; } void WallyHandlecmd22(void) @@ -1332,22 +1332,22 @@ void WallyHandleHealthBarUpdate(void) s16 r7; load_gfxc_health_bar(0); - r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + r7 = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (r7 != 0x7FFF) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, curHP, r7); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, curHP, r7); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); - sub_80440EC(gHealthboxIDs[gActiveBank], 0, 0); + sub_8043D84(gActiveBattler, gHealthboxIDs[gActiveBattler], maxHP, 0, r7); + sub_80440EC(gHealthboxIDs[gActiveBattler], 0, 0); } - gBattleBankFunc[gActiveBank] = sub_81377B0; + gBattleBankFunc[gActiveBattler] = sub_81377B0; } void WallyHandleExpBarUpdate(void) @@ -1432,16 +1432,16 @@ void WallyHandlecmd40(void) void WallyHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { WallyBufferExecCompleted(); } else { gDoingBattleAnim = 1; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - sub_8047858(gActiveBank); - gBattleBankFunc[gActiveBank] = bx_blink_t5; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + sub_8047858(gActiveBattler); + gBattleBankFunc[gActiveBattler] = bx_blink_t5; } } @@ -1452,25 +1452,25 @@ void WallyHandlecmd42(void) void WallyHandleEffectivenessSound(void) { - PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlaySE(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); WallyBufferExecCompleted(); } void WallyHandlecmd44(void) { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); WallyBufferExecCompleted(); } void WallyHandleFaintingCry(void) { - PlayCry1(GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), 25); + PlayCry1(GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES), 25); WallyBufferExecCompleted(); } void WallyHandleIntroSlide(void) { - StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]); + StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); gUnknown_02024DE8 |= 1; WallyBufferExecCompleted(); } @@ -1480,23 +1480,23 @@ void WallyHandleTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; - StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_8139A2C, 5); - gTasks[taskId].data[0] = gActiveBank; - if (ewram17810[gActiveBank].unk0_0) - gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + gTasks[taskId].data[0] = gActiveBattler; + if (ewram17810[gActiveBattler].unk0_0) + gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17810[4].unk9 |= 1; - gBattleBankFunc[gActiveBank] = nullsub_91; + gBattleBankFunc[gActiveBattler] = nullsub_91; } void sub_81398BC(u8 bank) @@ -1504,13 +1504,13 @@ void sub_81398BC(u8 bank) u16 species; ewram17800[bank].transformedSpecies = 0; - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); - GetMonSpriteTemplate_803C56C(species, GetBankIdentity(bank)); + GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, - GetBankPosition(bank, 2), + GetBattlerSpriteCoord(bank, 2), sub_8077F68(bank), sub_8079E90(bank)); gSprites[gUnknown_0300434C[bank]].data[1] = gBankSpriteIds[bank]; @@ -1531,27 +1531,27 @@ void sub_8139A2C(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81398BC(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_8137538; - gActiveBank = savedActiveBank; + gActiveBattler = gTasks[taskId].data[0]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + sub_81398BC(gActiveBattler); + gBattleBankFunc[gActiveBattler] = sub_8137538; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } void WallyHandlecmd48(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == 0) { WallyBufferExecCompleted(); } else { - ewram17810[gActiveBank].unk0_0 = 1; - gUnknown_02024E68[gActiveBank] = sub_8044804(gActiveBank, (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); + ewram17810[gActiveBattler].unk0_0 = 1; + gUnknown_02024E68[gActiveBattler] = sub_8044804(gActiveBattler, (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); WallyBufferExecCompleted(); } } @@ -1573,13 +1573,13 @@ void WallyHandleSpriteInvisibility(void) void WallyHandleBattleAnimation(void) { - u8 val2 = gBattleBufferA[gActiveBank][1]; - u16 val = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 val2 = gBattleBufferA[gActiveBattler][1]; + u16 val = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, val2, val)) + if (move_anim_start_t3(gActiveBattler, gActiveBattler, gActiveBattler, val2, val)) WallyBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = sub_8137940; + gBattleBankFunc[gActiveBattler] = sub_8137940; } void WallyHandleLinkStandbyMsg(void) @@ -1594,12 +1594,12 @@ void WallyHandleResetActionMoveSelection(void) void WallyHandlecmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); WallyBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattleBankFunc[gActiveBank] = sub_813746C; + gBattleBankFunc[gActiveBattler] = sub_813746C; } void WallyHandlecmd56(void) diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index 4022f07ce..bd954ae8d 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -423,8 +423,8 @@ u8 *const gUnknown_0820A904[10] = }; extern u8 gDisplayedStringBattle[]; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u8 gHealthboxIDs[]; @@ -783,7 +783,7 @@ u8 battle_make_oam_normal_battle(u8 a) if (!IsDoubleBattle()) { - if (GetBankSide(a) == 0) + if (GetBattlerSide(a) == 0) { spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[0], 240, 160, 1); spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[0], 240, 160, 1); @@ -809,10 +809,10 @@ u8 battle_make_oam_normal_battle(u8 a) //_08043A28 else { - if (GetBankSide(a) == 0) + if (GetBattlerSide(a) == 0) { - spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[GetBattlerPosition(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[GetBattlerPosition(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data[5] = spriteId1; @@ -823,8 +823,8 @@ u8 battle_make_oam_normal_battle(u8 a) //_08043ACC else { - spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[GetBattlerPosition(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[GetBattlerPosition(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data[5] = spriteId1; @@ -838,7 +838,7 @@ u8 battle_make_oam_normal_battle(u8 a) spriteId3 = CreateSpriteAtEnd(&gSpriteTemplates_820A56C[gBanksBySide[a]], 140, 60, 0); sprite = &gSprites[spriteId3]; - SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBankSide(a)]); + SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBattlerSide(a)]); sprite->subspriteMode = 2; sprite->oam.priority = 1; CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + sprite->oam.tileNum * 32, 64); @@ -951,7 +951,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { u8 spriteId1; u8 spriteId2; @@ -973,7 +973,7 @@ void sub_8043F44(u8 a) if (!IsDoubleBattle()) { - if (GetBankSide(a) != 0) + if (GetBattlerSide(a) != 0) { x = 44; y = 30; @@ -986,7 +986,7 @@ void sub_8043F44(u8 a) } else { - switch (GetBankIdentity(a)) + switch (GetBattlerPosition(a)) { case 0: x = 159; @@ -1027,14 +1027,14 @@ void sub_8043F44(u8 a) memcpy(str, gUnknown_0820A81C, sizeof(str)); if (!IsDoubleBattle()) { - if (GetBankSide(gSprites[a].data[6]) == 0) + if (GetBattlerSide(gSprites[a].data[6]) == 0) r7 = gUnknown_0820A804; else r7 = gUnknown_0820A80C; } else { - if (GetBankSide(gSprites[a].data[6]) == 0) + if (GetBattlerSide(gSprites[a].data[6]) == 0) r7 = gUnknown_0820A814; else r7 = gUnknown_0820A80C; @@ -1084,7 +1084,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) memcpy(str, gUnknown_0820A864, sizeof(str)); foo = gSprites[a].data[6]; - if (IsDoubleBattle() == TRUE || GetBankSide(foo) == 1) + if (IsDoubleBattle() == TRUE || GetBattlerSide(foo) == 1) { //_08044136 sub_8044210(a, b, c); @@ -1094,7 +1094,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) ptr = str + 6; if (c == 0) { - if (GetBankSide(gSprites[a].data[6]) == 0) + if (GetBattlerSide(gSprites[a].data[6]) == 0) r4 = gUnknown_0820A83C; else r4 = gUnknown_0820A848; @@ -1106,7 +1106,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) } else { - if (GetBankSide(gSprites[a].data[6]) == 0) + if (GetBattlerSide(gSprites[a].data[6]) == 0) r4 = gUnknown_0820A854; else r4 = gUnknown_0820A85C; @@ -1156,7 +1156,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) beq _08044136\n\ lsls r0, r5, 24\n\ lsrs r0, 24\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -1180,7 +1180,7 @@ _0804414C:\n\ ldrh r0, [r4, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ ldr r4, _08044188 @ =gUnknown_0820A848\n\ cmp r0, 0\n\ @@ -1208,7 +1208,7 @@ _08044190:\n\ ldrh r0, [r4, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ ldr r4, _080441FC @ =gUnknown_0820A85C\n\ cmp r0, 0\n\ @@ -1297,7 +1297,7 @@ _0804420C: .4byte 0x04000008\n\ r7 = gUnknown_0820A894; r10 = 2; sub_8003504(ptr, b, 0xF, 1); - if (GetBankSide(r4) == 0) + if (GetBattlerSide(r4) == 0) { CpuCopy32(sub_8043CDC(0x74), OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32, 32); } @@ -1323,7 +1323,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) // TODO: make this a local variable memcpy(str, gUnknown_0820A864, sizeof(str)); - r6 = ewram520[GetBankIdentity(gSprites[a].data[6])].filler0; + r6 = ewram520[GetBattlerPosition(gSprites[a].data[6])].filler0; r8 = 5; nature = GetNature(pkmn); StringCopy(str + 6, gNatureNames[nature]); @@ -1407,7 +1407,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) ldrh r0, [r0, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ lsls r1, r0, 1\n\ @@ -1648,21 +1648,21 @@ void sub_804454C(void) s32 i; u8 spriteId; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gSprites[gHealthboxIDs[i]].callback == SpriteCallbackDummy #if DEBUG - && (gUnknown_020297ED != 0 || GetBankSide(i) != 1) + && (gUnknown_020297ED != 0 || GetBattlerSide(i) != 1) #else - && GetBankSide(i) != 1 + && GetBattlerSide(i) != 1 #endif - && (IsDoubleBattle() || GetBankSide(i) != 0)) + && (IsDoubleBattle() || GetBattlerSide(i) != 0)) { u8 r6; ewram17800[i].unk0_4 ^= 1; r6 = ewram17800[i].unk0_4; - if (GetBankSide(i) == 0) + if (GetBattlerSide(i) == 0) { if (!IsDoubleBattle()) @@ -1675,13 +1675,13 @@ void sub_804454C(void) spriteId = gSprites[gHealthboxIDs[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } else { draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5); + sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlerPartyIndexes[i]], 5); CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32); } } @@ -1691,23 +1691,23 @@ void sub_804454C(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]]); + sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]]); } else { spriteId = gSprites[gHealthboxIDs[i]].data[5]; CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0); - sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), 1); } } else { draw_status_ailment_maybe(gHealthboxIDs[i]); - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 5); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 5); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 4); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlerPartyIndexes[i]], 4); } } gSprites[gHealthboxIDs[i]].data[7] ^= 1; @@ -1731,9 +1731,9 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) u8 sp18; u8 taskId; - if (c == 0 || GetBankIdentity(a) != 3) + if (c == 0 || GetBattlerPosition(a) != 3) { - if (GetBankSide(a) == 0) + if (GetBattlerSide(a) == 0) { r7 = 0; x = 136; @@ -1826,7 +1826,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) gSprites[sp[i]].data[2] = r7; } //_08044A76 - if (GetBankSide(a) == 0) + if (GetBattlerSide(a) == 0) { for (i = 0; i < 6; i++) //_08044A9A { @@ -1947,14 +1947,14 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) str r3, [sp, 0x10]\n\ cmp r4, 0\n\ beq _08044834\n\ - bl GetBankIdentity\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x3\n\ beq _08044878\n\ _08044834:\n\ ldr r0, [sp, 0x8]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08044854\n\ @@ -2236,7 +2236,7 @@ _08044A56:\n\ b _08044970\n\ _08044A76:\n\ ldr r0, [sp, 0x8]\n\ - bl GetBankSide\n\ + bl GetBattlerSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08044B5E\n\ @@ -2542,7 +2542,7 @@ void sub_8044CA0(u8 taskId) { for (i = 0; i < 6; i++) { - if (GetBankSide(sp8) != 0) + if (GetBattlerSide(sp8) != 0) { gSprites[sp[5 - i]].data[1] = 7 * i; gSprites[sp[5 - i]].data[3] = 0; @@ -2779,7 +2779,7 @@ void sub_8045180(struct Sprite *sprite) ptr[1] = 0x13; ptr[2] = 0x37; ptr[3] = EOS; - ptr = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180; + ptr = ewram520_2 + GetBattlerPosition(gSprites[a].data[6]) * 0x180; sub_80034D4(ptr, gDisplayedStringBattle); i = 0; @@ -2816,7 +2816,7 @@ void sub_8045180(struct Sprite *sprite) for (; i < _7; i++) CpuCopy32(sub_8043CDC(0x2B), ptr + 64 * i, 32); - if (GetBankSide(gSprites[a].data[6]) == 0 && !IsDoubleBattle()) + if (GetBattlerSide(gSprites[a].data[6]) == 0 && !IsDoubleBattle()) { r1 = (u8 *const *)gUnknown_0820A8B4; for (i = 0; i < _7; i++) @@ -2834,7 +2834,7 @@ void sub_8045180(struct Sprite *sprite) } else { - if (GetBankSide(gSprites[a].data[6]) == 0) + if (GetBattlerSide(gSprites[a].data[6]) == 0) r1 = (u8 *const *)gUnknown_0820A904; else r1 = (u8 *const *)gUnknown_0820A8DC; @@ -2863,9 +2863,9 @@ static void sub_8045458(u8 a, u8 b) return; r4 = gSprites[a].data[6]; - if (GetBankSide(r4) != 0) + if (GetBattlerSide(r4) != 0) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r4]], MON_DATA_SPECIES); if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0) { r4 = gSprites[a].data[5]; @@ -2890,9 +2890,9 @@ static void sub_8045458(u8 a, u8 b) r7 = gSprites[a].data[6]; r10 = gSprites[a].data[5]; - if (GetBankSide(r7) == 0) + if (GetBattlerSide(r7) == 0) { - r4 = GetMonData(&gPlayerParty[gBattlePartyID[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[r7]], MON_DATA_STATUS); if (!IsDoubleBattle()) r8 = 0x1A; else @@ -2900,7 +2900,7 @@ static void sub_8045458(u8 a, u8 b) } else { - r4 = GetMonData(&gEnemyParty[gBattlePartyID[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r7]], MON_DATA_STATUS); r8 = 0x11; } if (r4 & 7) @@ -2948,7 +2948,7 @@ static void sub_8045458(u8 a, u8 b) FillPalette(r0[gBattleInterfaceStatusIcons_DynPal], r4_2 + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + r4_2, (void *)(OBJ_PLTT + r4_2 * 2), 2); CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96); - if (IsDoubleBattle() == TRUE || GetBankSide(r7) == TRUE) + if (IsDoubleBattle() == TRUE || GetBattlerSide(r7) == TRUE) { if (!ewram17800[r7].unk0_4) { @@ -3027,7 +3027,7 @@ static u8 sub_80457E8(u8 a, u8 b) s32 r7; u8 *addr; - r6 = ewram520_2 + GetBankIdentity(gSprites[a].data[6]) * 0x180; + r6 = ewram520_2 + GetBattlerPosition(gSprites[a].data[6]) * 0x180; r8 = 7; sub_80034D4(r6, BattleText_SafariBalls); for (i = 0; i < r8; i++) @@ -3055,7 +3055,7 @@ static u8 sub_80457E8(u8 a, u8 b) r7 = StringCopy(gDisplayedStringBattle, BattleText_SafariBallsLeft); r7 = sub_8003504(r7, gNumSafariBalls, 10, 1); StringAppend(r7, BattleText_HighlightRed); - status = GetBankIdentity(gSprites[a].data[6]); + status = GetBattlerPosition(gSprites[a].data[6]); r7 = ewram520_2 + status * 0x180; r6 = 5; sub_80034D4(r7, gDisplayedStringBattle); @@ -3074,7 +3074,7 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) u32 currhp; r10 = gSprites[a].data[6]; - if (GetBankSide(r10) == 0) + if (GetBattlerSide(r10) == 0) { if (c == 3 || c == 0) sub_8043FC0(a, GetMonData(pkmn, MON_DATA_LEVEL)); @@ -3202,7 +3202,7 @@ static void sub_8045D58(u8 a, u8 b) break; case 1: sub_804602C(ewram17850[a].unk4, ewram17850[a].unk8, ewram17850[a].unkC, &ewram17850[a].unk10, sp8, 8); - r0 = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_LEVEL); + r0 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_LEVEL); if (r0 == 100) { for (i = 0; i < 8; i++) diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c index ed7ab3a35..f87e1f152 100644 --- a/src/battle/battle_message.c +++ b/src/battle/battle_message.c @@ -155,7 +155,7 @@ extern const u8* const gBattleStringsTable[BATTLESTRINGS_NO]; extern u16 gLastUsedItem; extern u8 gLastUsedAbility; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gBankAttacker; extern u8 gBankTarget; extern u8 gStringBank; @@ -172,7 +172,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gBattleBufferA[4][0x200]; @@ -197,14 +197,14 @@ void sub_8121D1C(u8* textBuff); void sub_8121D74(u8* textBuff); void StrCpyDecodeBattleTextBuff(u8* src, u8* dst); -u8 GetBankSide(u8 bank); +u8 GetBattlerSide(u8 bank); s32 sub_803FC34(u16); void get_trainer_name(u8* dst); u8 get_trainer_class_name_index(void); u8 GetMultiplayerId(void); -u8 GetBankByIdentity(u8 ID); -u8 GetBankSide(u8 bank); -u8 GetBankIdentity(u8 bank); +u8 GetBattlerAtPosition(u8 ID); +u8 GetBattlerSide(u8 bank); +u8 GetBattlerPosition(u8 bank); #ifdef GERMAN extern u8 *de_sub_804110C(); #endif @@ -214,7 +214,7 @@ void BufferStringBattle(u16 stringID) int i; const u8* stringPtr = NULL; - gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]); + gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBattler][4]); gLastUsedItem = gStringInfo->lastItem; gLastUsedAbility = gStringInfo->lastAbility; gBattleStruct->scriptingActive = gStringInfo->scrActive; @@ -265,7 +265,7 @@ void BufferStringBattle(u16 stringID) } break; case 1: // poke first send-out - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -305,7 +305,7 @@ void BufferStringBattle(u16 stringID) } break; case 2: // sending poke to ball msg - if (GetBankSide(gActiveBank) == 0) + if (GetBattlerSide(gActiveBattler) == 0) { if (gBattleStruct->hpScale == 0) stringPtr = BattleText_ComeBackSingle1; @@ -335,7 +335,7 @@ void BufferStringBattle(u16 stringID) } break; case 3: // switch-in msg - if (GetBankSide(gBattleStruct->scriptingActive) == 0) + if (GetBattlerSide(gBattleStruct->scriptingActive) == 0) { if (gBattleStruct->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) stringPtr = BattleText_SentOutSingle7; @@ -377,7 +377,7 @@ void BufferStringBattle(u16 stringID) if (gBattleTextBuff1[0] & 0x80) { gBattleTextBuff1[0] &= ~(0x80); - if (GetBankSide(gActiveBank) == 1 && gBattleTextBuff1[0] != 3) + if (GetBattlerSide(gActiveBattler) == 1 && gBattleTextBuff1[0] != 3) gBattleTextBuff1[0] ^= 3; if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) stringPtr = BattleText_GotAwaySafely; @@ -391,7 +391,7 @@ void BufferStringBattle(u16 stringID) } else { - if (GetBankSide(gActiveBank) == 1 && gBattleTextBuff1[0] != 3) + if (GetBattlerSide(gActiveBattler) == 1 && gBattleTextBuff1[0] != 3) gBattleTextBuff1[0] ^= 3; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -483,7 +483,7 @@ extern u8 *de_sub_8041024(s32, u32); #ifdef ENGLISH #define HANDLE_NICKNAME_STRING_CASE(bank, monIndex) \ - if (GetBankSide(bank) != 0) \ + if (GetBattlerSide(bank) != 0) \ { \ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ toCpy = BattleText_Foe; \ @@ -505,7 +505,7 @@ extern u8 *de_sub_8041024(s32, u32); toCpy = text; #else #define HANDLE_NICKNAME_STRING_CASE(bank, monIndex) \ - if (GetBankSide(bank) != 0) \ + if (GetBattlerSide(bank) != 0) \ { \ GetMonData(&gEnemyParty[monIndex], MON_DATA_NICKNAME, text); \ StringGetEnd10(text); \ @@ -575,71 +575,71 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = gBattleTextBuff3; break; case 2: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(0)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(0)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 3: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(1)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(1)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 4: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(2)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(2)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 5: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(3)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(3)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 6: // link first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 7: // link first opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 8: // link second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 9: // link second opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 10: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1)]) + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1)]) break; case 11: // attacker partner name, only bank 0/1 - if (GetBankSide(gBankAttacker) == 0) - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + if (GetBattlerSide(gBankAttacker) == 0) + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 12: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlerPartyIndexes[gBankAttacker]) break; case 13: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget]) + HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlerPartyIndexes[gBankTarget]) break; case 14: // effect bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) + HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank]) break; case 15: // active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gActiveBank, gBattlePartyID[gActiveBank]) + HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) break; case 16: // scripting active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlePartyID[gBattleStruct->scriptingActive]) + HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlerPartyIndexes[gBattleStruct->scriptingActive]) break; case 17: // current move name if (gStringInfo->currentMove > 0x162) @@ -771,37 +771,37 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = BattleText_Someone; break; case 38: - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; case 39: - if (GetBankSide(gBankTarget) == 0) + if (GetBattlerSide(gBankTarget) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; case 36: - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; case 37: - if (GetBankSide(gBankTarget) == 0) + if (GetBattlerSide(gBankTarget) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; case 40: - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) toCpy = BattleText_Ally3; else toCpy = BattleText_Foe4; break; case 41: - if (GetBankSide(gBankTarget) == 0) + if (GetBattlerSide(gBankTarget) == 0) toCpy = BattleText_Ally3; else toCpy = BattleText_Foe4; @@ -884,7 +884,7 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) break; case 4: // poke nick with prefix #ifdef ENGLISH - if (GetBankSide(src[srcID + 1]) == 0) + if (GetBattlerSide(src[srcID + 1]) == 0) { GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text); } @@ -899,7 +899,7 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) StringGetEnd10(text); StringAppend(dst, text); #else - if (GetBankSide(src[srcID + 1]) == 0) + if (GetBattlerSide(src[srcID + 1]) == 0) { GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); @@ -927,7 +927,7 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) srcID += 3; break; case 7: // poke nick without prefix - if (GetBankSide(src[srcID + 1]) == 0) + if (GetBattlerSide(src[srcID + 1]) == 0) GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); else GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c index ed8cf4583..be376a9f1 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle/battle_party_menu.c @@ -31,8 +31,8 @@ extern void nullsub_14(); extern u8 sub_803FBBC(void); extern u8 gPlayerPartyCount; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankInMenu; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; @@ -122,7 +122,7 @@ static void sub_8094998(u8 arg[3], u8 player_number) if (!IsDoubleBattle()) { pos = 1; - *temp = gBattlePartyID[GetBankByIdentity(0)]; + *temp = gBattlerPartyIndexes[GetBattlerAtPosition(0)]; for (i = 0; i <= 5; i++) if (i != *temp) temp[pos++] = i; @@ -130,8 +130,8 @@ static void sub_8094998(u8 arg[3], u8 player_number) else { pos = 2; - *temp = gBattlePartyID[GetBankByIdentity(0)]; - temp[1] = gBattlePartyID[GetBankByIdentity(2)]; + *temp = gBattlerPartyIndexes[GetBattlerAtPosition(0)]; + temp[1] = gBattlerPartyIndexes[GetBattlerAtPosition(2)]; for (i = 0; i <= 5; i++) if ((i != *temp) && (i != temp[1])) temp[pos++] = i; @@ -145,15 +145,15 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) { int i, j; u8 temp[6]; - if (!GetBankSide(arg3)) + if (!GetBattlerSide(arg3)) { - i = GetBankByIdentity(0); - j = GetBankByIdentity(2); + i = GetBattlerAtPosition(0); + j = GetBattlerAtPosition(2); } else { - i = GetBankByIdentity(1); - j = GetBankByIdentity(3); + i = GetBattlerAtPosition(1); + j = GetBattlerAtPosition(3); } if (IsLinkDoubleBattle() == TRUE) { @@ -175,7 +175,7 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) if (!IsDoubleBattle()) { int pos = 1; - *temp = gBattlePartyID[i]; + *temp = gBattlerPartyIndexes[i]; for (i = 0; i <= 5; i++) if (i != *temp) temp[pos++] = i; @@ -183,8 +183,8 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) else { int pos = 2; - *temp = gBattlePartyID[i]; - temp[1] = gBattlePartyID[j]; + *temp = gBattlerPartyIndexes[i]; + temp[1] = gBattlerPartyIndexes[j]; for (i = 0; i <= 5; i++) if ((i != *temp) && (i != temp[1])) temp[pos++] = i; @@ -662,10 +662,10 @@ static void Task_BattlePartyMenuShift(u8 taskId) gTasks[taskId].func = Task_80954C0; return; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) == 0 - && sub_8094C20(partySelection) == gBattlePartyID[i]) + if (GetBattlerSide(i) == 0 + && sub_8094C20(partySelection) == gBattlerPartyIndexes[i]) { sub_806D5A4(); GetMonNickname(&gPlayerParty[partySelection], gStringVar1); @@ -706,7 +706,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) u8 r4 = gBankInMenu; sub_806D5A4(); - r0 = pokemon_order_func(gBattlePartyID[r4]); + r0 = pokemon_order_func(gBattlerPartyIndexes[r4]); GetMonNickname(&gPlayerParty[r0], gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_CantBeSwitched); sub_806E834(gStringVar4, 0); @@ -715,7 +715,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) } gUnknown_0202E8F5 = sub_8094C20(partySelection); gUnknown_0202E8F4 = 1; - r4 = pokemon_order_func(gBattlePartyID[gBankInMenu]); + r4 = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); sub_8094C98(r4, partySelection); SwapPokemon(&gPlayerParty[r4], &gPlayerParty[partySelection]); gTasks[taskId].func = Task_809527C; diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index 194a002d3..e164a60dc 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -25,7 +25,7 @@ extern u8 gUnknown_02023A14_50; extern const u8* gBattlescriptCurrInstr; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gBattleBufferB[4][0x200]; extern u8* gUnknown_02024C1C[4]; //battlescript location when you try to choose a move you're not allowed to extern u16 gLastUsedMove[4]; @@ -36,7 +36,7 @@ extern u16 gLastUsedItem; extern u16 gCurrentMove; extern const u32 gBitTable[]; extern u16 gBattleTypeFlags; -extern u8 gNoOfAllBanks; +extern u8 gBattlersCount; extern u32 gStatuses3[4]; extern u8 gBankAttacker; extern u8 gBankTarget; @@ -44,17 +44,17 @@ extern u8 gBanksByTurnOrder[4]; extern u16 gSideAffecting[2]; extern u16 gBattleWeather; extern void (*gBattleMainFunc)(void); -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gBattleCommunication[]; extern u32 gHitMarker; extern u8 gEffectBank; extern u8 gBank1; extern s32 gBattleMoveDamage; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u16 gChosenMovesByBanks[4]; extern s32 gTakenDmg[4]; extern u8 gTakenDmgBanks[4]; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gLastUsedAbility; extern u8 gBattleTextBuff2[]; extern u8 gCurrentActionFuncId; @@ -77,9 +77,9 @@ extern const u8 gStatusConditionString_LoveJpn[]; extern const BattleCmdFunc gBattleScriptingCommandsTable[]; u8 IsImprisoned(u8 bank, u16 move); -u8 GetBankByIdentity(u8 ID); -u8 GetBankIdentity(u8 bank); -u8 GetBankSide(u8 bank); +u8 GetBattlerAtPosition(u8 ID); +u8 GetBattlerPosition(u8 bank); +u8 GetBattlerSide(u8 bank); void SetMoveEffect(bool8 primary, u8 certainArg); bool8 UproarWakeUpCheck(u8 bank); bool8 sub_8018018(u8 bank, u8, u8); @@ -259,9 +259,9 @@ void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move) if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBufferBankForExecution(gActiveBattler); } } @@ -269,11 +269,11 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk) { s32 i, j; s32 imprisionPos = 4; - u8 atkSide = GetBankSide(bankAtk); + u8 atkSide = GetBattlerSide(bankAtk); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) + if (atkSide != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) { for (j = 0; j < 4; j++) { @@ -293,9 +293,9 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk) && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); + MarkBufferBankForExecution(gActiveBattler); } } @@ -304,7 +304,7 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk) s32 i, j; s32 perishSongPos = 4; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk) { @@ -326,9 +326,9 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk) && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); + MarkBufferBankForExecution(gActiveBattler); } } @@ -339,12 +339,12 @@ void MarkAllBufferBanksForExecution(void) // unused if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) gBattleExecBuffer |= gBitTable[i] << 0x1C; } else { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) gBattleExecBuffer |= gBitTable[i]; } } @@ -402,9 +402,9 @@ bool8 WasUnableToUseMove(u8 bank) void PrepareStringBattle(u16 stringId, u8 bank) { - gActiveBank = bank; + gActiveBattler = bank; EmitPrintString(0, stringId); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } void ResetSentPokesToOpponentValue(void) @@ -415,11 +415,11 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[0] = 0; gSentPokesToOpponent[1] = 0; - for (i = 0; i < gNoOfAllBanks; i += 2) - bits |= gBitTable[gBattlePartyID[i]]; + for (i = 0; i < gBattlersCount; i += 2) + bits |= gBitTable[gBattlerPartyIndexes[i]]; - for (i = 1; i < gNoOfAllBanks; i += 2) - gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits; + for (i = 1; i < gBattlersCount; i += 2) + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } void sub_8015740(u8 bank) @@ -427,15 +427,15 @@ void sub_8015740(u8 bank) s32 i = 0; u32 bits = 0; - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(bank) == B_SIDE_OPPONENT) { - u8 id = ((bank & BIT_MON) >> 1); + u8 id = ((bank & BIT_FLANK) >> 1); gSentPokesToOpponent[id] = 0; - for (i = 0; i < gNoOfAllBanks; i += 2) + for (i = 0; i < gBattlersCount; i += 2) { - if (!(gAbsentBankFlags & gBitTable[i])) - bits |= gBitTable[gBattlePartyID[i]]; + if (!(gAbsentBattlerFlags & gBitTable[i])) + bits |= gBitTable[gBattlerPartyIndexes[i]]; } gSentPokesToOpponent[id] = bits; @@ -444,15 +444,15 @@ void sub_8015740(u8 bank) void sub_80157C4(u8 bank) { - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(bank) == B_SIDE_OPPONENT) { sub_8015740(bank); } else { s32 i; - for (i = 1; i < gNoOfAllBanks; i++) - gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]]; + for (i = 1; i < gBattlersCount; i++) + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlerPartyIndexes[bank]]; } } @@ -474,49 +474,49 @@ void BattleScriptPop(void) u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move { u8 limitations = 0; - u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]]; + u16 move = gBattleMons[gActiveBattler].moves[gBattleBufferB[gActiveBattler][2]]; u8 holdEffect; - u16* choicedMove = CHOICED_MOVE(gActiveBank); - if (gDisableStructs[gActiveBank].disabledMove == move && move) + u16* choicedMove = CHOICED_MOVE(gActiveBattler); + if (gDisableStructs[gActiveBattler].disabledMove == move && move) { - gBattleStruct->scriptingActive = gActiveBank; + gBattleStruct->scriptingActive = gActiveBattler; gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionDisabledMove; + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionDisabledMove; limitations++; } - if (move == gLastUsedMove[gActiveBank] && move != MOVE_STRUGGLE && gBattleMons[gActiveBank].status2 & STATUS2_TORMENT) + if (move == gLastUsedMove[gActiveBattler] && move != MOVE_STRUGGLE && gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT) { - CancelMultiTurnMoves(gActiveBank); - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTormented; + CancelMultiTurnMoves(gActiveBattler); + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionTormented; limitations++; } - if (gDisableStructs[gActiveBank].tauntTimer1 && gBattleMoves[move].power == 0) + if (gDisableStructs[gActiveBattler].tauntTimer1 && gBattleMoves[move].power == 0) { gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTaunted; + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionTaunted; limitations++; } - if (IsImprisoned(gActiveBank, move)) + if (IsImprisoned(gActiveBattler, move)) { gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionImprisoned; + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionImprisoned; limitations++; } - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBattler].holdEffect; else - holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); - gStringBank = gActiveBank; + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); + gStringBank = gActiveBattler; if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) { gCurrentMove = *choicedMove; - gLastUsedItem = gBattleMons[gActiveBank].item; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionChoiceBanded; + gLastUsedItem = gBattleMons[gActiveBattler].item; + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionChoiceBanded; limitations++; } - if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0) + if (gBattleMons[gActiveBattler].pp[gBattleBufferB[gActiveBattler][2]] == 0) { - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionNoPP; + gUnknown_02024C1C[gActiveBattler] = BattleScript_MoveSelectionNoPP; limitations++; } return limitations; @@ -564,29 +564,29 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) bool8 AreAllMovesUnusable(void) { u8 unusable; - unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF); + unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF); if (unusable == 0xF) //all moves are unusable { - gProtectStructs[gActiveBank].onlyStruggle = 1; - gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft; + gProtectStructs[gActiveBattler].onlyStruggle = 1; + gUnknown_02024C1C[gActiveBattler] = BattleScript_NoMovesLeft; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2)); + gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) ^ 1) | (Random() & 2)); else - gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1); + gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ 1); } else - gProtectStructs[gActiveBank].onlyStruggle = 0; + gProtectStructs[gActiveBattler].onlyStruggle = 0; return (unusable == 0xF); } u8 IsImprisoned(u8 bank, u16 move) { u8 imprisionedMoves = 0; - u8 bankSide = GetBankSide(bank); + u8 bankSide = GetBattlerSide(bank); s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISIONED) + if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISIONED) { s32 j; for (j = 0; j < 4; j++) @@ -606,10 +606,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + for (gBankAttacker = 0; gBankAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBankAttacker]; gBankAttacker++) { } - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + for (gBankTarget = 0; gBankTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBankTarget]; gBankTarget++) { } @@ -620,14 +620,14 @@ u8 UpdateTurnCounters(void) switch (gBattleStruct->turncountersTracker) { case 0: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { gBanksByTurnOrder[i] = i; } - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattlersCount - 1; i++) { s32 j; - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattlersCount; j++) { if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) SwapTurnOrder(i, j); @@ -638,7 +638,7 @@ u8 UpdateTurnCounters(void) case 1: while (gBattleStruct->turnSideTracker < 2) { - gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) { @@ -668,7 +668,7 @@ u8 UpdateTurnCounters(void) case 2: while (gBattleStruct->turnSideTracker < 2) { - gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) @@ -697,7 +697,7 @@ u8 UpdateTurnCounters(void) case 3: while (gBattleStruct->turnSideTracker < 2) { - gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; @@ -723,7 +723,7 @@ u8 UpdateTurnCounters(void) case 4: while (gBattleStruct->turnSideTracker < 2) { - gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; + gActiveBattler = gBankAttacker = sideBank = gBattleStruct->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) @@ -744,12 +744,12 @@ u8 UpdateTurnCounters(void) } break; case 5: - while (gBattleStruct->turnSideTracker < gNoOfAllBanks) + while (gBattleStruct->turnSideTracker < gBattlersCount) { - gActiveBank = gBanksByTurnOrder[gBattleStruct->turnSideTracker]; - if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) + gActiveBattler = gBanksByTurnOrder[gBattleStruct->turnSideTracker]; + if (gWishFutureKnock.wishCounter[gActiveBattler] && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp) { - gBankTarget = gActiveBank; + gBankTarget = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -854,10 +854,10 @@ u8 TurnBasedEffects(void) u8 effect = 0; gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) + while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; } @@ -866,11 +866,11 @@ u8 TurnBasedEffects(void) switch (gBattleStruct->turnEffectsTracker) { case 0: // ingrain - if ((gStatuses3[gActiveBank] & STATUS3_ROOTED) - && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP - && gBattleMons[gActiveBank].hp != 0) + if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED) + && gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP + && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -880,25 +880,25 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 1: // end turn abilities - if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0)) effect++; gBattleStruct->turnEffectsTracker++; break; case 2: // item effects - if (ItemBattleEffects(1, gActiveBank, 0)) + if (ItemBattleEffects(1, gActiveBattler, 0)) effect++; gBattleStruct->turnEffectsTracker++; break; case 18: // item effects again - if (ItemBattleEffects(1, gActiveBank, 1)) + if (ItemBattleEffects(1, gActiveBattler, 1)) effect++; gBattleStruct->turnEffectsTracker++; break; case 3: // leech seed - if (gStatuses3[gActiveBank] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBank].hp != 0) + if (gStatuses3[gActiveBattler] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBankTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleStruct->animArg1 = gBankTarget; @@ -909,9 +909,9 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 4: // poison - if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS_POISON) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_PoisonTurnDmg); @@ -920,23 +920,23 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 5: // toxic poison - if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns - gBattleMons[gActiveBank].status1 += 0x100; - gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; + if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) //not 16 turns + gBattleMons[gActiveBattler].status1 += 0x100; + gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & 0xF00) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); effect++; } gBattleStruct->turnEffectsTracker++; break; case 6: // burn - if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS_BURN) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_BurnTurnDmg); @@ -945,10 +945,10 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 7: // spooky nightmares - if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0) { // missing sleep check - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_NightmareTurnDmg); @@ -957,9 +957,9 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 8: // curse - if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_CurseTurnDmg); @@ -968,20 +968,20 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 9: // wrap - if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMons[gActiveBank].status2 -= 0x2000; - if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap + gBattleMons[gActiveBattler].status2 -= 0x2000; + if (gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) // damaged by wrap { - gBattleStruct->animArg1 = ewram16004arr(0, gActiveBank); - gBattleStruct->animArg2 = ewram16004arr(1, gActiveBank); + gBattleStruct->animArg1 = ewram16004arr(0, gActiveBattler); + gBattleStruct->animArg2 = ewram16004arr(1, gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); - gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); + gBattleTextBuff1[2] = ewram16004arr(0, gActiveBattler); + gBattleTextBuff1[3] = ewram16004arr(1, gActiveBattler); gBattleTextBuff1[4] = EOS; gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -989,8 +989,8 @@ u8 TurnBasedEffects(void) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); - gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); + gBattleTextBuff1[2] = ewram16004arr(0, gActiveBattler); + gBattleTextBuff1[3] = ewram16004arr(1, gActiveBattler); gBattleTextBuff1[4] = EOS; gBattlescriptCurrInstr = BattleScript_WrapEnds; } @@ -1000,9 +1000,9 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 10: // uproar - if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) + for (gBankAttacker = 0; gBankAttacker < gBattlersCount; gBankAttacker++) { if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) @@ -1011,35 +1011,35 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } } - if (gBankAttacker != gNoOfAllBanks) + if (gBankAttacker != gBattlersCount) { effect = 2; // a pokemon was awaken break; } else { - gBankAttacker = gActiveBank; - gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down - if (WasUnableToUseMove(gActiveBank)) + gBankAttacker = gActiveBattler; + gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down + if (WasUnableToUseMove(gActiveBattler)) { - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; + gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS; } else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); } BattleScriptExecute(BattleScript_PrintUproarOverTurns); effect = 1; @@ -1049,20 +1049,20 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 11: // thrash - if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) { - gBattleMons[gActiveBank].status2 -= 0x400; - if (WasUnableToUseMove(gActiveBank)) - CancelMultiTurnMoves(gActiveBank); - else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) - && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS)) + gBattleMons[gActiveBattler].status2 -= 0x400; + if (WasUnableToUseMove(gActiveBattler)) + CancelMultiTurnMoves(gActiveBattler); + else if (!(gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) + && (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS)) { - gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); - if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_MULTIPLETURNS); + if (!(gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; SetMoveEffect(1, 0); - if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + if (gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); effect++; } @@ -1071,22 +1071,22 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 12: // disable - if (gDisableStructs[gActiveBank].disableTimer1 != 0) + if (gDisableStructs[gActiveBattler].disableTimer1 != 0) { int i; for (i = 0; i < 4; i++) { - if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) + if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i]) break; } if (i == 4) // pokemon does not have the disabled move anymore { - gDisableStructs[gActiveBank].disabledMove = 0; - gDisableStructs[gActiveBank].disableTimer1 = 0; + gDisableStructs[gActiveBattler].disabledMove = 0; + gDisableStructs[gActiveBattler].disableTimer1 = 0; } - else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends + else if (--gDisableStructs[gActiveBattler].disableTimer1 == 0) // disable ends { - gDisableStructs[gActiveBank].disabledMove = 0; + gDisableStructs[gActiveBattler].disabledMove = 0; BattleScriptExecute(BattleScript_DisabledNoMore); effect++; } @@ -1094,18 +1094,18 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 13: // encore - if (gDisableStructs[gActiveBank].encoreTimer1 != 0) + if (gDisableStructs[gActiveBattler].encoreTimer1 != 0) { - if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore + if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; + gDisableStructs[gActiveBattler].encoredMove = 0; + gDisableStructs[gActiveBattler].encoreTimer1 = 0; } - else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 - || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) + else if (--gDisableStructs[gActiveBattler].encoreTimer1 == 0 + || gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0) { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; + gDisableStructs[gActiveBattler].encoredMove = 0; + gDisableStructs[gActiveBattler].encoreTimer1 = 0; BattleScriptExecute(BattleScript_EncoredNoMore); effect++; } @@ -1113,33 +1113,33 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 14: // lock-on decrement - if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) - gStatuses3[gActiveBank] -= 0x8; + if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS) + gStatuses3[gActiveBattler] -= 0x8; gBattleStruct->turnEffectsTracker++; break; case 15: // charge - if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) - gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; + if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0) + gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP; gBattleStruct->turnEffectsTracker++; break; case 16: // taunt - if (gDisableStructs[gActiveBank].tauntTimer1) - gDisableStructs[gActiveBank].tauntTimer1--; + if (gDisableStructs[gActiveBattler].tauntTimer1) + gDisableStructs[gActiveBattler].tauntTimer1--; gBattleStruct->turnEffectsTracker++; break; case 17: // yawn - if (gStatuses3[gActiveBank] & STATUS3_YAWN) - { - gStatuses3[gActiveBank] -= 0x800; - if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY) - && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT - && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) - { - CancelMultiTurnMoves(gActiveBank); - gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - gEffectBank = gActiveBank; + if (gStatuses3[gActiveBattler] & STATUS3_YAWN) + { + gStatuses3[gActiveBattler] -= 0x800; + if (!(gStatuses3[gActiveBattler] & STATUS3_YAWN) && !(gBattleMons[gActiveBattler].status1 & STATUS_ANY) + && gBattleMons[gActiveBattler].ability != ABILITY_VITAL_SPIRIT + && gBattleMons[gActiveBattler].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBattler)) + { + CancelMultiTurnMoves(gActiveBattler); + gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); + gEffectBank = gActiveBattler; BattleScriptExecute(BattleScript_YawnMakesAsleep); effect++; } @@ -1165,28 +1165,28 @@ bool8 HandleWishPerishSongOnTurnEnd(void) switch (gBattleStruct->sub80170DC_Tracker) { case 0: // future sight - while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks) + while (gBattleStruct->sub80170DC_Bank < gBattlersCount) { - gActiveBank = gBattleStruct->sub80170DC_Bank; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBattleStruct->sub80170DC_Bank; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gBattleStruct->sub80170DC_Bank++; else { gBattleStruct->sub80170DC_Bank++; - if (gWishFutureKnock.futureSightCounter[gActiveBank] && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) + if (gWishFutureKnock.futureSightCounter[gActiveBattler] && --gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp) { - if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT) + if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else //Doom Desire gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; - gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; + gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBattler]; + gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBattler] >> 8; gBattleTextBuff1[4] = 0xFF; - gBankTarget = gActiveBank; - gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; - gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; + gBankTarget = gActiveBattler; + gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; + gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); return 1; @@ -1196,31 +1196,31 @@ bool8 HandleWishPerishSongOnTurnEnd(void) gBattleStruct->sub80170DC_Tracker = 1; gBattleStruct->sub80170DC_Bank = 0; case 1: // perish song - while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks) + while (gBattleStruct->sub80170DC_Bank < gBattlersCount) { - gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBankAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank]; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gBattleStruct->sub80170DC_Bank++; else { gBattleStruct->sub80170DC_Bank++; - if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) + if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG) { gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 1; gBattleTextBuff1[2] = 1; gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSong1; + gBattleTextBuff1[4] = gDisableStructs[gActiveBattler].perishSongTimer1; gBattleTextBuff1[5] = 0xFF; - if (gDisableStructs[gActiveBank].perishSong1 == 0) + if (gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { - gStatuses3[gActiveBank] &= ~(STATUS3_PERISH_SONG); - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gStatuses3[gActiveBattler] &= ~(STATUS3_PERISH_SONG); + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; gBattlescriptCurrInstr = BattleScript_PerishSongHits; } else { - gDisableStructs[gActiveBank].perishSong1--; + gDisableStructs[gActiveBattler].perishSongTimer1--; gBattlescriptCurrInstr = BattleScript_PerishSongTimerGoesDown; } BattleScriptExecute(gBattlescriptCurrInstr); @@ -1248,27 +1248,27 @@ bool8 HandleFaintedMonActions(void) case 0: gBattleStruct->unk1605A = 0; gBattleStruct->sub80173A4_Tracker++; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gAbsentBankFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) - gAbsentBankFlags &= ~(gBitTable[i]); + if (gAbsentBattlerFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) + gAbsentBattlerFlags &= ~(gBitTable[i]); } case 1: do { gBank1 = gBankTarget = gBattleStruct->unk1605A; - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlePartyID[gBattleStruct->unk1605A]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A])) + if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_GiveExp); gBattleStruct->sub80173A4_Tracker = 2; return 1; } - } while (++gBattleStruct->unk1605A != gNoOfAllBanks); + } while (++gBattleStruct->unk1605A != gBattlersCount); gBattleStruct->sub80173A4_Tracker = 3; break; case 2: sub_8015740(gBank1); - if (++gBattleStruct->unk1605A == gNoOfAllBanks) + if (++gBattleStruct->unk1605A == gBattlersCount) gBattleStruct->sub80173A4_Tracker = 3; else gBattleStruct->sub80173A4_Tracker = 1; @@ -1280,17 +1280,17 @@ bool8 HandleFaintedMonActions(void) do { gBank1 = gBankTarget = gBattleStruct->unk1605A; //or should banks be switched? - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A])) + if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_HandleFaintedMon); gBattleStruct->sub80173A4_Tracker = 5; return 1; } - } while (++gBattleStruct->unk1605A != gNoOfAllBanks); + } while (++gBattleStruct->unk1605A != gBattlersCount); gBattleStruct->sub80173A4_Tracker = 6; break; case 5: - if (++gBattleStruct->unk1605A == gNoOfAllBanks) + if (++gBattleStruct->unk1605A == gBattlersCount) gBattleStruct->sub80173A4_Tracker = 6; else gBattleStruct->sub80173A4_Tracker = 4; @@ -1310,7 +1310,7 @@ bool8 HandleFaintedMonActions(void) void TryClearRageStatuses(void) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].status2 & STATUS2_RAGE && gChosenMovesByBanks[i] != MOVE_RAGE) gBattleMons[i].status2 &= ~(STATUS2_RAGE); @@ -1410,7 +1410,7 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; effect = 1; } gBattleStruct->atkCancellerTracker++; @@ -1546,7 +1546,7 @@ u8 AtkCanceller_UnableToUseMove(void) gCurrentMove = MOVE_BIDE; *bideDmg = gTakenDmg[gBankAttacker] * 2; gBankTarget = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBattlerFlags & gBitTable[gBankTarget]) gBankTarget = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } @@ -1579,9 +1579,9 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect == 2) { - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } return effect; } @@ -1597,7 +1597,7 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { r7 = sub_803FC34(bank); - if (GetBankSide(bank) == 0) + if (GetBattlerSide(bank) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -1611,22 +1611,22 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2) } else { - if (GetBankSide(bank) == 1) + if (GetBattlerSide(bank) == 1) { - r7 = GetBankByIdentity(1); - r6 = GetBankByIdentity(3); + r7 = GetBattlerAtPosition(1); + r6 = GetBattlerAtPosition(3); party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); - r6 = GetBankByIdentity(2); + r7 = GetBattlerAtPosition(0); + r6 = GetBattlerAtPosition(2); party = gPlayerParty; } if (r1 == 6) - r1 = gBattlePartyID[r7]; + r1 = gBattlerPartyIndexes[r7]; if (r2 == 6) - r2 = gBattlePartyID[r6]; + r2 = gBattlerPartyIndexes[r6]; for (i = 0; i < 6; i++) { if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6)) @@ -1695,19 +1695,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) u32 pidAtk; u32 pidDef; - if (gBankAttacker >= gNoOfAllBanks) + if (gBankAttacker >= gBattlersCount) gBankAttacker = bank; - if (GetBankSide(gBankAttacker) == 0) - pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + if (GetBattlerSide(gBankAttacker) == 0) + pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBankAttacker]]; else - pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBankAttacker]]; - if (gBankTarget >= gNoOfAllBanks) + if (gBankTarget >= gBattlersCount) gBankTarget = bank; - if (GetBankSide(gBankTarget) == 0) - pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; + if (GetBattlerSide(gBankTarget) == 0) + pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBankTarget]]; else - pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; + pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBankTarget]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1741,7 +1741,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBankAttacker >= gNoOfAllBanks) + if (gBankAttacker >= gBattlersCount) gBankAttacker = bank; switch (gLastUsedAbility) { @@ -1838,7 +1838,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_AIR_LOCK: { // that's a weird choice for a variable, why not use i or bank? - for (target1 = 0; target1 < gNoOfAllBanks; target1++) + for (target1 = 0; target1 < gBattlersCount; target1++) { effect = CastformDataTypeChange(target1); if (effect != 0) @@ -1888,10 +1888,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleMons[bank].status1 = 0; // BUG: The nightmare status does not get cleared here. This was fixed in Emerald. //gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - gBattleStruct->scriptingActive = gActiveBank = bank; + gBattleStruct->scriptingActive = gActiveBattler = bank; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); effect++; } break; @@ -2002,7 +2002,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2022,7 +2022,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_ROUGH_SKIN: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2039,7 +2039,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_EFFECT_SPORE: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2060,7 +2060,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2084,7 +2084,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_POISON_POINT: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2099,7 +2099,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2117,7 +2117,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_STATIC: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2132,7 +2132,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) @@ -2150,7 +2150,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_FLAME_BODY: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2165,7 +2165,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2183,7 +2183,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_CUTE_CHARM: if (DEBUG && (gUnknown_02023A14_50 & 4)) { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2203,7 +2203,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else { - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) @@ -2227,7 +2227,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_IMMUNITY: // 5 { - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { switch (gBattleMons[bank].ability) { @@ -2300,9 +2300,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; gBattleStruct->scriptingActive = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); return effect; } } @@ -2310,7 +2310,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_FORECAST: // 6 { - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { if (gBattleMons[bank].ability == ABILITY_FORECAST) { @@ -2357,7 +2357,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) { @@ -2371,42 +2371,42 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_TRACE: // 11 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; - side = (GetBankIdentity(i) ^ 1) & 1; - target1 = GetBankByIdentity(side); - target2 = GetBankByIdentity(side + 2); + side = (GetBattlerPosition(i) ^ 1) & 1; + target1 = GetBattlerAtPosition(side); + target2 = GetBattlerAtPosition(side + 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side); + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) { - gActiveBank = target1; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = target1; + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = target2; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = target2; + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } } else { - gActiveBank = target1; + gActiveBattler = target1; if (gBattleMons[target1].ability && gBattleMons[target1].hp) { gBattleMons[i].ability = gBattleMons[target1].ability; @@ -2422,8 +2422,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gActiveBank; - gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; + gBattleTextBuff1[2] = gActiveBattler; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gActiveBattler]; gBattleTextBuff1[4] = EOS; gBattleTextBuff2[0] = 0xFD; @@ -2436,7 +2436,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) { @@ -2451,10 +2451,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + side = GetBattlerSide(bank); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect = i + 1; @@ -2462,10 +2462,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + side = GetBattlerSide(bank); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect = i + 1; @@ -2476,21 +2476,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case 0xFD: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_MUDSPORT) effect = i + 1; } break; case 0xFE: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_WATERSPORT) effect = i + 1; } break; default: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability) { @@ -2502,7 +2502,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) { @@ -2512,7 +2512,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && i != bank) { @@ -2522,10 +2522,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + side = GetBattlerSide(bank); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect++; @@ -2533,10 +2533,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + side = GetBattlerSide(bank); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect++; @@ -2544,7 +2544,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && i != bank) { @@ -2663,7 +2663,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleStruct->scriptingActive = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBankAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2692,10 +2692,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) u8 ppBonuses; u16 move; - if (GetBankSide(bank) == 0) - poke = &gPlayerParty[gBattlePartyID[bank]]; + if (GetBattlerSide(bank) == 0) + poke = &gPlayerParty[gBattlerPartyIndexes[bank]]; else - poke = &gEnemyParty[gBattlePartyID[bank]]; + poke = &gEnemyParty[gBattlerPartyIndexes[bank]]; for (i = 0; i < 4; i++) { move = GetMonData(poke, MON_DATA_MOVE1 + i); @@ -2718,7 +2718,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleTextBuff1[4] = 0xFF; BattleScriptExecute(BattleScript_BerryPPHealEnd2); EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); effect = ITEM_PP_CHANGE; } } @@ -2736,7 +2736,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleStruct->scriptingActive = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBankAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -3097,12 +3097,12 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleStruct->scriptingActive = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBankAttacker = bank; switch (effect) { case ITEM_STATUS_CHANGE: EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case ITEM_PP_CHANGE: if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) @@ -3115,7 +3115,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case 2: break; case 3: - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { gLastUsedItem = gBattleMons[bank].item; if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) @@ -3255,9 +3255,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleStruct->scriptingActive = bank; gStringBank = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } } @@ -3268,7 +3268,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) switch (atkHoldEffect) { case HOLD_EFFECT_FLINCH: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && (Random() % 100) < bankQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED @@ -3281,7 +3281,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_SHELL_BELL: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF && gBankAttacker != gBankTarget @@ -3331,22 +3331,22 @@ void unref_sub_801B40C(void) u8 bank = 0; do { - u8 absent = gAbsentBankFlags; + u8 absent = gAbsentBattlerFlags; if (gBitTable[bank] & absent || absent & gBitTable[bank + 2]) bank++; else { if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2]) { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank) | ((bank + 2) << 4); + gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4; } if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank]) { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank + 2) | ((bank) << 4); + gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4; } bank++; } @@ -3376,16 +3376,16 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target switch (moveTarget) { case 0: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBattlerSide(gBankAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else { - side = GetBankSide(gBankAttacker); + side = GetBattlerSide(gBankAttacker); do { - targetBank = Random() % gNoOfAllBanks; - } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); + targetBank = Random() % gBattlersCount; + } while (targetBank == gBankAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) @@ -3400,35 +3400,35 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target case 8: case 32: case 64: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); - if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); + if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= 2; break; case 4: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBattlerSide(gBankAttacker) ^ 1; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4) { - if (GetBankSide(gBankAttacker) == 0) + if (GetBattlerSide(gBankAttacker) == 0) { if (Random() & 1) - targetBank = GetBankByIdentity(1); + targetBank = GetBattlerAtPosition(1); else - targetBank = GetBankByIdentity(3); + targetBank = GetBattlerAtPosition(3); } else { if (Random() & 1) - targetBank = GetBankByIdentity(0); + targetBank = GetBattlerAtPosition(0); else - targetBank = GetBankByIdentity(2); + targetBank = GetBattlerAtPosition(2); } - if (gAbsentBankFlags & gBitTable[targetBank]) + if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= 2; } else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBankAttacker) & 1) ^ 1); break; case 2: case 16: @@ -3446,7 +3446,7 @@ u8 IsMonDisobedient(void) s32 calc; if (gBattleTypeFlags & BATTLE_TYPE_LINK - || GetBankSide(gBankAttacker) == 1 + || GetBattlerSide(gBankAttacker) == 1 || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)) return 0; @@ -3519,12 +3519,12 @@ u8 IsMonDisobedient(void) { // try putting asleep int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].status2 & STATUS2_UPROAR) break; } - if (i == gNoOfAllBanks) + if (i == gBattlersCount) { gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; diff --git a/src/battle/calculate_base_damage.c b/src/battle/calculate_base_damage.c index 217ab28a3..5e63ee92c 100644 --- a/src/battle/calculate_base_damage.c +++ b/src/battle/calculate_base_damage.c @@ -71,7 +71,7 @@ const u8 gHoldEffectToType[][2] = {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL} }; -u8 GetBankSide(u8 bank); +u8 GetBattlerSide(u8 bank); #define APPLY_STAT_MOD(var, mon, stat, statIndex) \ { \ @@ -137,7 +137,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(FLAG_BADGE01_GET) - && !GetBankSide(bankAtk)) + && !GetBattlerSide(bankAtk)) attack = (110 * attack) / 100; } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -145,7 +145,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(FLAG_BADGE05_GET) - && !GetBankSide(bankDef)) + && !GetBattlerSide(bankDef)) defense = (110 * defense) / 100; } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -153,7 +153,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(FLAG_BADGE07_GET) - && !GetBankSide(bankAtk)) + && !GetBattlerSide(bankAtk)) spAttack = (110 * spAttack) / 100; } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -161,7 +161,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(FLAG_BADGE07_GET) - && !GetBankSide(bankDef)) + && !GetBattlerSide(bankDef)) spDefense = (110 * spDefense) / 100; } diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index 20c6d8676..be2adbf1b 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -19,8 +19,8 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern u16 gBattleTypeFlags; extern u8 gBankTarget; -extern u8 gActiveBank; -extern u16 gBattlePartyID[]; +extern u8 gActiveBattler; +extern u16 gBattlerPartyIndexes[]; extern u8 gBankSpriteIds[]; extern u8 gDoingBattleAnim; extern u8 gHealthboxIDs[]; @@ -333,11 +333,11 @@ u8 sub_8046400(u16 a, u8 b) u8 taskId; gDoingBattleAnim = 1; - ewram17810[gActiveBank].unk0_3 = 1; + ewram17810[gActiveBattler].unk0_3 = 1; taskId = CreateTask(sub_8046464, 5); gTasks[taskId].data[1] = a; gTasks[taskId].data[2] = b; - gTasks[taskId].data[3] = gActiveBank; + gTasks[taskId].data[3] = gActiveBattler; return 0; } @@ -357,10 +357,10 @@ static void sub_8046464(u8 taskId) } r8 = gTasks[taskId].data[2]; r5 = gTasks[taskId].data[3]; - if (GetBankSide(r5) != 0) - ball = GetMonData(&gEnemyParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + if (GetBattlerSide(r5) != 0) + ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); else - ball = GetMonData(&gPlayerParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); r4 = ball_number_to_ball_processing_index(ball); sub_80478DC(r4); spriteId = CreateSprite(&gBallSpriteTemplates[r4], 32, 80, 0x1D); @@ -376,14 +376,14 @@ static void sub_8046464(u8 taskId) gSprites[spriteId].callback = sub_8047074; break; case 0xFE: - gSprites[spriteId].pos1.x = GetBankPosition(r5, 0); - gSprites[spriteId].pos1.y = GetBankPosition(r5, 1) + 24; + gSprites[spriteId].pos1.x = GetBattlerSpriteCoord(r5, 0); + gSprites[spriteId].pos1.y = GetBattlerSpriteCoord(r5, 1) + 24; gBankTarget = r5; gSprites[spriteId].data[0] = 0; gSprites[spriteId].callback = sub_8047254; break; default: - gBankTarget = GetBankByIdentity(1); + gBankTarget = GetBattlerAtPosition(1); sp0 = TRUE; break; } @@ -394,8 +394,8 @@ static void sub_8046464(u8 taskId) return; } gSprites[spriteId].data[0] = 0x22; - gSprites[spriteId].data[2] = GetBankPosition(gBankTarget, 0); - gSprites[spriteId].data[4] = GetBankPosition(gBankTarget, 1) - 16; + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBankTarget, 0); + gSprites[spriteId].data[4] = GetBattlerSpriteCoord(gBankTarget, 1) - 16; gSprites[spriteId].data[5] = -40; InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); gSprites[spriteId].oam.affineParam = taskId; @@ -711,18 +711,18 @@ static void sub_8046C78(struct Sprite *sprite) u16 r4_2; u8 taskId; - if (GetBankSide(r5) != 0) + if (GetBattlerSide(r5) != 0) { - pkmn = &gEnemyParty[gBattlePartyID[r5]]; + pkmn = &gEnemyParty[gBattlerPartyIndexes[r5]]; r8 = 25; } else { - pkmn = &gPlayerParty[gBattlePartyID[r5]]; + pkmn = &gPlayerParty[gBattlerPartyIndexes[r5]]; r8 = -25; } species = GetMonData(pkmn, MON_DATA_SPECIES); - if ((r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) + if ((r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) && IsDoubleBattle() && ewram17840.unk9_0) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -737,7 +737,7 @@ static void sub_8046C78(struct Sprite *sprite) } if (!IsDoubleBattle() || !ewram17840.unk9_0) r4_2 = 0; - else if (r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) + else if (r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) r4_2 = 1; else r4_2 = 2; @@ -830,8 +830,8 @@ static void sub_8046FBC(struct Sprite *sprite) static void sub_8047074(struct Sprite *sprite) { sprite->data[0] = 25; - sprite->data[2] = GetBankPosition(sprite->data[6], 2); - sprite->data[4] = GetBankPosition(sprite->data[6], 3) + 24; + sprite->data[2] = GetBattlerSpriteCoord(sprite->data[6], 2); + sprite->data[4] = GetBattlerSpriteCoord(sprite->data[6], 3) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->data[6]; InitAnimSpriteTranslationOverDuration(sprite); @@ -885,7 +885,7 @@ static void sub_80470C4(struct Sprite *sprite) sprite->data[6] = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByIdentity(2)) + && sprite->data[6] == GetBattlerAtPosition(2)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; @@ -910,7 +910,7 @@ static void sub_8047254(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByIdentity(3)) + && sprite->data[6] == GetBattlerAtPosition(3)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; @@ -1102,7 +1102,7 @@ void sub_804777C(u8 a) sprite->pos2.x = 0x73; sprite->pos2.y = 0; sprite->callback = sub_8047830; - if (GetBankSide(a) != 0) + if (GetBattlerSide(a) != 0) { sprite->data[0] = -sprite->data[0]; sprite->data[1] = -sprite->data[1]; @@ -1110,7 +1110,7 @@ void sub_804777C(u8 a) sprite->pos2.y = -sprite->pos2.y; } gSprites[sprite->data[5]].callback(&gSprites[sprite->data[5]]); - if (GetBankIdentity(a) == 2) + if (GetBattlerPosition(a) == 2) sprite->callback = sub_804780C; } @@ -1187,8 +1187,8 @@ void sub_804794C(u8 a) static u16 sub_8047978(u8 a) { - if (GetBankSide(a) == 0) - return GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_POKEBALL); + if (GetBattlerSide(a) == 0) + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); else - return GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_POKEBALL); + return GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); } diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c index 85aa78ca0..f602d4835 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/battle/reshow_battle_screen.c @@ -22,8 +22,8 @@ extern u16 gBattle_BG0_Y; extern u8 gReservedSpritePaletteCount; extern u8 gActionSelectionCursor[4]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[4]; -extern u8 gNoOfAllBanks; +extern u16 gBattlerPartyIndexes[4]; +extern u8 gBattlersCount; extern u16 gBattleTypeFlags; extern u8 gBankSpriteIds[4]; extern u8 gBattleMonForms[4]; @@ -171,14 +171,14 @@ static void CB2_ReshowBattleScreenAfterMenu(void) sub_80327CC(); - opponentBank = GetBankByIdentity(1); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + opponentBank = GetBattlerAtPosition(1); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByIdentity(3); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + opponentBank = GetBattlerAtPosition(3); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); } sub_802E3E4(gActionSelectionCursor[gBankInMenu], 0); @@ -205,12 +205,12 @@ static void sub_807B06C(void) static bool8 LoadAppropiateBankSprite(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattlersCount) { - if (GetBankSide(bank)) + if (GetBattlerSide(bank)) { if (!ewram17800[bank].substituteSprite) - BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); } @@ -219,7 +219,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) LoadPlayerTrainerBankSprite(2, 0); else if (!ewram17800[bank].substituteSprite) - BattleLoadPlayerMonSprite(&gPlayerParty[gBattlePartyID[bank]], bank); + BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); @@ -230,7 +230,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) static void sub_807B184(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattlersCount) { u8 posY; @@ -238,21 +238,21 @@ static void sub_807B184(u8 bank) posY = sub_8077F7C(bank); else posY = sub_8077F68(bank); - if (GetBankSide(bank)) + if (GetBattlerSide(bank)) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - GetMonSpriteTemplate_803C56C(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBankPosition(bank, 2), posY, sub_8079E90(bank)); + GetMonSpriteTemplate_803C56C(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, sub_8079E90(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { - GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBankIdentity(0)); + GetMonSpriteTemplate_803C5A0(gSaveBlock2.playerGender, GetBattlerPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2.playerGender].coords) * 4 + 80, sub_8079E90(0)); @@ -262,7 +262,7 @@ static void sub_807B184(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { - GetMonSpriteTemplate_803C5A0(2, GetBankIdentity(0)); + GetMonSpriteTemplate_803C5A0(2, GetBattlerPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, 0x50, (8 - gTrainerBackPicCoords[2].coords) * 4 + 80, sub_8079E90(0)); @@ -272,14 +272,14 @@ static void sub_807B184(u8 bank) } else { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - GetMonSpriteTemplate_803C56C(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBankPosition(bank, 2), posY, sub_8079E90(bank)); + GetMonSpriteTemplate_803C56C(GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), posY, sub_8079E90(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); } gSprites[gBankSpriteIds[bank]].invisible = ewram17800[bank].invisible; @@ -288,7 +288,7 @@ static void sub_807B184(u8 bank) static void sub_807B508(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattlersCount) { u8 healthboxID; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) @@ -300,24 +300,24 @@ static void sub_807B508(u8 bank) gHealthboxIDs[bank] = healthboxID; sub_8043F44(bank); sub_8043DFC(healthboxID); - if (GetBankSide(bank)) - sub_8045A5C(gHealthboxIDs[bank], &gEnemyParty[gBattlePartyID[bank]], 0); + if (GetBattlerSide(bank)) + sub_8045A5C(gHealthboxIDs[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], 0); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlePartyID[bank]], 10); + sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 10); else - sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlePartyID[bank]], 0); - if (GetBankIdentity(bank) == 3 || GetBankIdentity(bank) == 2) + sub_8045A5C(gHealthboxIDs[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], 0); + if (GetBattlerPosition(bank) == 3 || GetBattlerPosition(bank) == 2) nullsub_11(gHealthboxIDs[bank], 1); else nullsub_11(gHealthboxIDs[bank], 0); - if (GetBankSide(bank)) + if (GetBattlerSide(bank)) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) sub_8043DB0(healthboxID); } else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) sub_8043DB0(healthboxID); } } diff --git a/src/berry_blender.c b/src/berry_blender.c index bf634a49f..5d40ea321 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1921,14 +1921,14 @@ u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersN r6++; } if (r6 == 5 || a3 > 3) - return 12; + return PBLOCK_CLR_BLACK; for (i = 0; i < playersNo; i++) { for (r6 = 0; r6 < playersNo; r6++) { if (berries[i].itemID == berries[r6].itemID && i != r6 && (berries[i].itemID != ITEM_ENIGMA_BERRY || sub_80502A4(berries, i, r6))) - return 12; + return PBLOCK_CLR_BLACK; } } r2 = 0; @@ -1938,24 +1938,24 @@ u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersN r2++; } if (r2 > 3) - return 13; + return PBLOCK_CLR_WHITE; if (r2 == 3) - return 11; + return PBLOCK_CLR_GRAY; for (i = 0; i < 5; i++) { if (vars[i] > 50) - return 14; + return PBLOCK_CLR_GOLD; } if (r2 == 1 && vars[0] > 0) - return 1; + return PBLOCK_CLR_RED; if (r2 == 1 && vars[1] > 0) - return 2; + return PBLOCK_CLR_BLUE; if (r2 == 1 && vars[2] > 0) - return 3; + return PBLOCK_CLR_PINK; if (r2 == 1 && vars[3] > 0) - return 4; + return PBLOCK_CLR_GREEN; if (r2 == 1 && vars[4] > 0) - return 5; + return PBLOCK_CLR_YELLOW; if (r2 == 2) { s32 var = 0; @@ -1967,28 +1967,28 @@ u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersN if (vars[gUnknown_03000520[0]] >= vars[gUnknown_03000520[1]]) { if (gUnknown_03000520[0] == 0) - return (gUnknown_03000520[1] << 16) | 6; + return (gUnknown_03000520[1] << 16) | PBLOCK_CLR_PURPLE; if (gUnknown_03000520[0] == 1) - return (gUnknown_03000520[1] << 16) | 7; + return (gUnknown_03000520[1] << 16) | PBLOCK_CLR_INDIGO; if (gUnknown_03000520[0] == 2) - return (gUnknown_03000520[1] << 16) | 8; + return (gUnknown_03000520[1] << 16) | PBLOCK_CLR_BROWN; if (gUnknown_03000520[0] == 3) - return (gUnknown_03000520[1] << 16) | 9; + return (gUnknown_03000520[1] << 16) | PBLOCK_CLR_LITEBLUE; if (gUnknown_03000520[0] == 4) - return (gUnknown_03000520[1] << 16) | 10; + return (gUnknown_03000520[1] << 16) | PBLOCK_CLR_OLIVE; } else { if (gUnknown_03000520[1] == 0) - return (gUnknown_03000520[0] << 16) | 6; + return (gUnknown_03000520[0] << 16) | PBLOCK_CLR_PURPLE; if (gUnknown_03000520[1] == 1) - return (gUnknown_03000520[0] << 16) | 7; + return (gUnknown_03000520[0] << 16) | PBLOCK_CLR_INDIGO; if (gUnknown_03000520[1] == 2) - return (gUnknown_03000520[0] << 16) | 8; + return (gUnknown_03000520[0] << 16) | PBLOCK_CLR_BROWN; if (gUnknown_03000520[1] == 3) - return (gUnknown_03000520[0] << 16) | 9; + return (gUnknown_03000520[0] << 16) | PBLOCK_CLR_LITEBLUE; if (gUnknown_03000520[1] == 4) - return (gUnknown_03000520[0] << 16) | 10; + return (gUnknown_03000520[0] << 16) | PBLOCK_CLR_OLIVE; } } return 0; @@ -3108,7 +3108,7 @@ bool8 Blender_PrintBlendingResults(void) #endif MenuPrintMessage(gBerryBlenderData->stringVar, 1, 15); RemoveBagItem(gSpecialVar_ItemId, 1); - sub_810CA34(&pokeblock); + GivePokeblock(&pokeblock); gBerryBlenderData->field_0++; break; case 6: diff --git a/src/choose_party.c b/src/choose_party.c index 4766b2fbb..b4920dedd 100644 --- a/src/choose_party.c +++ b/src/choose_party.c @@ -23,7 +23,7 @@ extern u8 gPlayerPartyCount; extern u8 gLastFieldPokeMenuOpened; extern u8 gUnknown_020384F0; -extern struct UnknownPokemonStruct2 gUnknown_02023A00[3]; +extern struct UnknownPokemonStruct2 gMultiPartnerParty[3]; extern u8 gUnknown_0202E8F6; extern struct Pokemon gUnknown_030042FC[]; extern const u16 gBattleTowerBannedSpecies[]; @@ -530,26 +530,26 @@ static void BattleTowerEntryMenuCallback_Exit(u8 taskId) #if DEBUG -void debug_sub_81381B4(void) +void Debug_CopyLastThreePartyMonsToMultiPartnerParty(void) { u8 i; - memset(gUnknown_02023A00, 0, sizeof(gUnknown_02023A00)); + memset(gMultiPartnerParty, 0, sizeof(gMultiPartnerParty)); for (i = 0; i < 3; i++) { - gUnknown_02023A00[i].species = GetMonData(&gPlayerParty[3 + i], MON_DATA_SPECIES2); - if (gUnknown_02023A00[i].species != 0) + gMultiPartnerParty[i].species = GetMonData(&gPlayerParty[3 + i], MON_DATA_SPECIES2); + if (gMultiPartnerParty[i].species != 0) { - gUnknown_02023A00[i].level = GetMonData(&gPlayerParty[3 + i], MON_DATA_LEVEL); - gUnknown_02023A00[i].hp = GetMonData(&gPlayerParty[3 + i], MON_DATA_HP); - gUnknown_02023A00[i].maxhp = GetMonData(&gPlayerParty[3 + i], MON_DATA_MAX_HP); - gUnknown_02023A00[i].status = GetMonData(&gPlayerParty[3 + i], MON_DATA_STATUS); - gUnknown_02023A00[i].heldItem = GetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM); - gUnknown_02023A00[i].personality = GetMonData(&gPlayerParty[3 + i], MON_DATA_PERSONALITY); - gUnknown_02023A00[i].gender = GetMonGender(&gPlayerParty[3 + i]); - GetMonData(&gPlayerParty[3 + i], MON_DATA_NICKNAME, gUnknown_02023A00[i].nickname); - Text_StripExtCtrlCodes(gUnknown_02023A00[i].nickname); - gUnknown_02023A00[i].language = GetMonData(&gPlayerParty[3 + i], MON_DATA_LANGUAGE); + gMultiPartnerParty[i].level = GetMonData(&gPlayerParty[3 + i], MON_DATA_LEVEL); + gMultiPartnerParty[i].hp = GetMonData(&gPlayerParty[3 + i], MON_DATA_HP); + gMultiPartnerParty[i].maxhp = GetMonData(&gPlayerParty[3 + i], MON_DATA_MAX_HP); + gMultiPartnerParty[i].status = GetMonData(&gPlayerParty[3 + i], MON_DATA_STATUS); + gMultiPartnerParty[i].heldItem = GetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM); + gMultiPartnerParty[i].personality = GetMonData(&gPlayerParty[3 + i], MON_DATA_PERSONALITY); + gMultiPartnerParty[i].gender = GetMonGender(&gPlayerParty[3 + i]); + GetMonData(&gPlayerParty[3 + i], MON_DATA_NICKNAME, gMultiPartnerParty[i].nickname); + Text_StripExtCtrlCodes(gMultiPartnerParty[i].nickname); + gMultiPartnerParty[i].language = GetMonData(&gPlayerParty[3 + i], MON_DATA_LANGUAGE); } } } @@ -591,9 +591,9 @@ static void sub_81228E8(u8 a) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != 0) CreatePartyMenuMonIcon(a, i, 3, &gPlayerParty[i]); - if (gUnknown_02023A00[i].species != 0) + if (gMultiPartnerParty[i].species != 0) { - CreateMonIcon_LinkMultiBattle(a, i + 3, 3, &gUnknown_02023A00[i]); + CreateMonIcon_LinkMultiBattle(a, i + 3, 3, &gMultiPartnerParty[i]); sub_806D50C(a, i + 3); } } @@ -611,8 +611,8 @@ static void sub_8122950(u8 a) CreateHeldItemIcon_806DCD4(a, i, item); } - if (gUnknown_02023A00[i].species != 0) - CreateHeldItemIcon_806DCD4(a, i + 3, gUnknown_02023A00[i].heldItem); + if (gMultiPartnerParty[i].species != 0) + CreateHeldItemIcon_806DCD4(a, i + 3, gMultiPartnerParty[i].heldItem); } } @@ -644,9 +644,9 @@ void HandleLinkMultiBattlePartyMenu(u8 taskId) if (!gPaletteFade.active) { gTasks[taskId].data[0] = 30; - sub_806D4AC(taskId, gUnknown_02023A00[0].species, 0); - sub_806D4AC(taskId, gUnknown_02023A00[1].species, 1); - sub_806D4AC(taskId, gUnknown_02023A00[2].species, 2); + sub_806D4AC(taskId, gMultiPartnerParty[0].species, 0); + sub_806D4AC(taskId, gMultiPartnerParty[1].species, 1); + sub_806D4AC(taskId, gMultiPartnerParty[2].species, 2); gTasks[taskId].func = sub_8122AB8; ewram1B000.unk261 = 1; } @@ -654,7 +654,7 @@ void HandleLinkMultiBattlePartyMenu(u8 taskId) static void sub_8122AB8(u8 taskId) { - sub_806D3B4(taskId, gUnknown_02023A00[1].species, gUnknown_02023A00[2].species); + sub_806D3B4(taskId, gMultiPartnerParty[1].species, gMultiPartnerParty[2].species); if (gTasks[taskId].data[0] == 0) { gTasks[taskId].func = sub_8122B10; @@ -669,25 +669,25 @@ static void sub_8122B10(u8 taskId) for (i = 0; i < 3; i++) { - if (gUnknown_02023A00[i].species != 0) + if (gMultiPartnerParty[i].species != 0) { u8 r2; - PartyMenuDoPrintHP(i + 3, 3, gUnknown_02023A00[i].hp, gUnknown_02023A00[i].maxhp); - if (gUnknown_02023A00[i].hp == 0) + PartyMenuDoPrintHP(i + 3, 3, gMultiPartnerParty[i].hp, gMultiPartnerParty[i].maxhp); + if (gMultiPartnerParty[i].hp == 0) r2 = 7; else - r2 = pokemon_ailments_get_primary(gUnknown_02023A00[i].status); + r2 = pokemon_ailments_get_primary(gMultiPartnerParty[i].status); if (r2 != 0) PartyMenuPutStatusTilemap(i + 3, 3, r2 - 1); else - PartyMenuDoPrintLevel(i + 3, 3, gUnknown_02023A00[i].level); - PartyMenuDoPrintGenderIcon(gUnknown_02023A00[i].species, gUnknown_02023A00[i].gender, 3, i + 3, gUnknown_02023A00[i].nickname); - StringCopy(gStringVar1, gUnknown_02023A00[i].nickname); + PartyMenuDoPrintLevel(i + 3, 3, gMultiPartnerParty[i].level); + PartyMenuDoPrintGenderIcon(gMultiPartnerParty[i].species, gMultiPartnerParty[i].gender, 3, i + 3, gMultiPartnerParty[i].nickname); + StringCopy(gStringVar1, gMultiPartnerParty[i].nickname); StringGetEnd10(gStringVar1); SanitizeNameString(gStringVar1); PartyMenuDoPrintMonNickname(i + 3, 3, gStringVar1); - PartyMenuDoDrawHPBar(i + 3, 3, gUnknown_02023A00[i].hp, gUnknown_02023A00[i].maxhp); + PartyMenuDoDrawHPBar(i + 3, 3, gMultiPartnerParty[i].hp, gMultiPartnerParty[i].maxhp); } } gTasks[taskId].func = sub_8122C18; diff --git a/src/contest.c b/src/contest.c index 84e5d807b..031cf768f 100644 --- a/src/contest.c +++ b/src/contest.c @@ -8,6 +8,7 @@ #include "battle_anim.h" #include "blend_palette.h" #include "contest.h" +#include "contest_effect.h" #include "contest_link_80C857C.h" #include "data2.h" #include "decompress.h" @@ -35,7 +36,6 @@ extern u8 gUnknown_020297ED; -extern u8 AreMovesContestCombo(u16, u16); // I don't think this is a bool extern void sub_80C8A38(u8); extern void sub_80C8AD0(u8); extern void sub_80C8C80(u8); @@ -61,7 +61,6 @@ extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u16 gBattle_WIN0H; -extern u32 gContestRngValue; // saved RNG value extern struct SpriteTemplate gUnknown_02024E8C; @@ -188,7 +187,6 @@ void sub_80AE6E4(u8, u8); u8 CreateJudgeSprite(void); u8 sub_80AE8B4(void); u8 sub_80AE9FC(u16, u32, u32); -bool8 IsSpeciesNotUnown(u16); void sub_80AEB30(void); void sub_80AEBEC(u16); void sub_80AED58(void); @@ -201,7 +199,6 @@ void sub_80AF1B8(void); void sub_80AF2A0(u8); void sub_80AF2FC(void); void sub_80AF3C0(void); -bool8 Contest_IsMonsTurnDisabled(u8); s16 sub_80AF688(u8); void DetermineFinalStandings(void); bool8 sub_80AF828(s32, s32, struct UnknownContestStruct6 *); @@ -248,7 +245,6 @@ void sub_80B146C(u8, u8); void sub_80B159C(void); void sub_80B1710(u8); void sub_80B1928(void); -s8 Contest_GetMoveExcitement(u16); u8 sub_80B1A2C(void); void c3_08130B10(u8); void sub_80B1B14(void); @@ -264,7 +260,6 @@ void sub_80B1F4C(u8); void sub_80B1FD0(bool8); const u8 *GetTurnOrderNumberGfx(u8); void sub_80B20C4(void); -bool8 sub_80B214C(u8); void sub_80B2184(void); void sub_80B2280(void); void sub_80B237C(u8); @@ -390,8 +385,8 @@ void ClearContestVars(void) for (i = 0; i < 4; i++) { sContestantStatus[i].unkB_0 = 0; - sContestantStatus[i].unk13 = 0xFF; - sContestantStatus[i].unk14 = 0xFF; + sContestantStatus[i].effectStringId = CONTEST_STRING_NONE; + sContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; } memset(&shared192D0, 0, sizeof(shared192D0)); @@ -402,7 +397,7 @@ void ClearContestVars(void) sub_80B0F28(0); for (i = 0; i < 4; i++) { - sContestantStatus[i].unk19 = 0xFF; + sContestantStatus[i].nextTurnOrder = 0xFF; sContest.unk19218[i] = gUnknown_02038696[i]; } sub_80B159C(); @@ -710,13 +705,13 @@ void sub_80ABCDC(u8 taskId) if (sContestantStatus[gContestPlayerMonIndex].prevMove != MOVE_NONE && sub_80B214C(gContestPlayerMonIndex) && AreMovesContestCombo(sContestantStatus[gContestPlayerMonIndex].prevMove, move) != 0 - && sContestantStatus[gContestPlayerMonIndex].unk15_4) + && sContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) { r5 = StringCopy(sp8, gUnknownText_UnknownFormatting2); } else if (move != 0 && sContestantStatus[gContestPlayerMonIndex].prevMove == move - && gContestMoves[move].effect != CONTEST_EFFECT_REPEATABLE) + && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING) { // Gray the text because it is a repeated move r5 = StringCopy(sp8, gUnknownText_UnknownFormatting3); @@ -1091,7 +1086,7 @@ void sub_80AC2CC(u8 taskId) { case 0: sub_80B0D7C(); - for (i = 0; sContest.unk19214 != shared192D0.unk0[i]; i++) + for (i = 0; sContest.unk19214 != shared192D0.turnOrder[i]; i++) ; sContest.unk19215 = i; r7 = sContest.unk19215; @@ -1118,8 +1113,8 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 2; return; case 2: - if (sContestantStatus[r7].unkC_1 != 0 - || sContestantStatus[r7].unkB_7) + if (sContestantStatus[r7].numTurnsSkipped != 0 + || sContestantStatus[r7].noMoreTurns) { gTasks[taskId].data[0] = 31; } @@ -1156,7 +1151,7 @@ void sub_80AC2CC(u8 taskId) } return; case 5: - if (sContestantStatus[r7].unkC_0) + if (sContestantStatus[r7].nervous) { gTasks[taskId].data[0] = 33; } @@ -1203,7 +1198,7 @@ void sub_80AC2CC(u8 taskId) } else { - if (!sContestantStatus[r7].unk15_4) + if (!sContestantStatus[r7].hasJudgesAttention) sub_80B03A8(r7); sub_80B20C4(); gTasks[taskId].data[0] = 23; @@ -1219,25 +1214,25 @@ void sub_80AC2CC(u8 taskId) return; case 23: gTasks[taskId].data[1] = 0; - if (sContestantStatus[r7].unk13 != 0xFF) + if (sContestantStatus[r7].effectStringId != CONTEST_STRING_NONE) { - sub_80B146C(r7, sContestantStatus[r7].unk13); - sContestantStatus[r7].unk13 = 0xFF; + sub_80B146C(r7, sContestantStatus[r7].effectStringId); + sContestantStatus[r7].effectStringId = CONTEST_STRING_NONE; gTasks[taskId].data[0] = 24; } else { - if (sContestantStatus[r7].unk14 != 0xFF) + if (sContestantStatus[r7].effectStringId2 != CONTEST_STRING_NONE) { for (i = 0; i < 4; i++) { - if (i != r7 && sContestantStatus[i].unk13 != 0xFF) + if (i != r7 && sContestantStatus[i].effectStringId != CONTEST_STRING_NONE) break; } if (i == 4) { - sub_80B146C(r7, sContestantStatus[r7].unk14); - sContestantStatus[r7].unk14 = 0xFF; + sub_80B146C(r7, sContestantStatus[r7].effectStringId2); + sContestantStatus[r7].effectStringId2 = CONTEST_STRING_NONE; gTasks[taskId].data[0] = 24; } else @@ -1256,15 +1251,15 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 23; return; case 48: - if (sContestantStatus[r7].unk11_0 == 1) + if (sContestantStatus[r7].turnOrderModAction == 1) { sub_80B1710(5); } - else if (sContestantStatus[r7].unk11_0 == 2) + else if (sContestantStatus[r7].turnOrderModAction == 2) { sub_80B1710(6); } - else if (sContestantStatus[r7].unk11_0 == 3) + else if (sContestantStatus[r7].turnOrderModAction == 3) { sub_80B1710(7); } @@ -1292,7 +1287,7 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 35; return; case 35: - if (sContestantStatus[r7].unk10_4 == 1) + if (sContestantStatus[r7].conditionMod == 1) sub_80B1710(8); gTasks[taskId].data[0] = 36; return; @@ -1338,7 +1333,7 @@ void sub_80AC2CC(u8 taskId) for (r2 = 0; r2 < 4; r2++) { if (r2 != r7 && gUnknown_02038696[r2] == i - && sContestantStatus[r2].unk13 != 0xFF) + && sContestantStatus[r2].effectStringId != CONTEST_STRING_NONE) { r4 = 1; break; @@ -1350,8 +1345,8 @@ void sub_80AC2CC(u8 taskId) if (r4) { gTasks[taskId].data[1] = gUnknown_02038696[r2]; - sub_80B146C(r2, sContestantStatus[r2].unk13); - sContestantStatus[r2].unk13 = 0xFF; + sub_80B146C(r2, sContestantStatus[r2].effectStringId); + sContestantStatus[r2].effectStringId = CONTEST_STRING_NONE; gTasks[taskId].data[0] = 27; } else @@ -1370,7 +1365,7 @@ void sub_80AC2CC(u8 taskId) case 28: for (i = 0; gTasks[taskId].data[1] != gUnknown_02038696[i]; i++) ; - sub_80AFBA0(sContestantStatus[i].appeal2 + sContestantStatus[i].unkE, -sContestantStatus[i].unkE, i); + sub_80AFBA0(sContestantStatus[i].appeal2 + sContestantStatus[i].jam, -sContestantStatus[i].jam, i); gTasks[taskId].data[0] = 29; return; case 29: @@ -1409,10 +1404,10 @@ void sub_80AC2CC(u8 taskId) PlaySE(SE_C_PASI); else PlaySE(SE_C_SYU); - if (sContestantStatus[i].unk15_5) + if (sContestantStatus[i].judgesAttentionWasRemoved) { sub_80B03A8(i); - sContestantStatus[i].unk15_5 = 0; + sContestantStatus[i].judgesAttentionWasRemoved = 0; } gTasks[taskId].data[1]++; gTasks[taskId].data[0] = 26; @@ -1421,8 +1416,8 @@ void sub_80AC2CC(u8 taskId) if (gTasks[taskId].data[10]++ > 9) { gTasks[taskId].data[10] = 0; - if (sContestantStatus[r7].unkC_1 != 0 - || sContestantStatus[r7].unk11_2) + if (sContestantStatus[r7].numTurnsSkipped != 0 + || sContestantStatus[r7].turnSkipped) { sub_80AF138(); StringCopy(gStringVar1, gContestMons[r7].nickname); @@ -1479,7 +1474,7 @@ void sub_80AC2CC(u8 taskId) { if (++gTasks[taskId].data[10] > 50) { - if (!sContestantStatus[r7].unk15_4) + if (!sContestantStatus[r7].hasJudgesAttention) { sub_80AFBA0( sContestantStatus[r7].appeal2, @@ -1536,14 +1531,14 @@ void sub_80AC2CC(u8 taskId) } return; case 41: - if (shared19328.bits_8 && r7 != shared19328.bits_9) + if (shared19328.excitementFrozen && r7 != shared19328.excitementFreezer) { gTasks[taskId].data[0] = 57; } else { r4 = shared19328.bits_0; - if (sContestantStatus[r7].unk11_4) + if (sContestantStatus[r7].overrideCategoryExcitementMod) { r4 = 1; StringCopy(gStringVar3, gMoveNames[sContestantStatus[r7].currMove]); @@ -1680,7 +1675,7 @@ void sub_80AC2CC(u8 taskId) return; case 57: sub_80AF138(); - StringCopy(gStringVar3, gContestMons[shared19328.bits_9].nickname); + StringCopy(gStringVar3, gContestMons[shared19328.excitementFreezer].nickname); StringCopy(gStringVar1, gContestMons[r7].nickname); StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]); StringExpandPlaceholders(gStringVar4, ContestString_CrowdWatches); @@ -1704,8 +1699,8 @@ void sub_80AC2CC(u8 taskId) } return; case 33: - if (sContestantStatus[r7].unk15_4) - sContestantStatus[r7].unk15_4 = 0; + if (sContestantStatus[r7].hasJudgesAttention) + sContestantStatus[r7].hasJudgesAttention = 0; sub_80B09B0(r7); StringCopy(gStringVar1, gContestMons[r7].nickname); StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]); @@ -2679,14 +2674,14 @@ bool8 sub_80AEE54(u8 a, u8 b) u16 r8; s32 r4; - if (sContestantStatus[a].unk10_4 == 0) + if (sContestantStatus[a].conditionMod == 0) return FALSE; r9 = gUnknown_02038696[a] * 5 + 2; - if (sContestantStatus[a].unk10_4 == 1) + if (sContestantStatus[a].conditionMod == 1) { r8 = sub_80AEE4C(a); r4 = 0; - while (sContestantStatus[a].unkD / 10 > r4) + while (sContestantStatus[a].condition / 10 > r4) { *(u16 *)(VRAM + 0xC026 + (r9 + r4) * 64) = r8; r4++; @@ -2694,14 +2689,14 @@ bool8 sub_80AEE54(u8 a, u8 b) if (b != 0) { PlaySE(SE_EXPMAX); - sContestantStatus[a].unk10_4 = 0; + sContestantStatus[a].conditionMod = 0; } } else { r8 = 0; r4 = 3; - while (sContestantStatus[a].unkD / 10 < r4) + while (sContestantStatus[a].condition / 10 < r4) { *(u16 *)(VRAM + 0xBFE6 + (r9 + r4) * 64) = r8; r4--; @@ -2709,7 +2704,7 @@ bool8 sub_80AEE54(u8 a, u8 b) if (b != 0) { PlaySE(SE_FU_ZAKU2); - sContestantStatus[a].unk10_4 = 0; + sContestantStatus[a].conditionMod = 0; } } return TRUE; @@ -2726,7 +2721,7 @@ void sub_80AEF50(void) u16 r6 = sub_80AEE4C(i); r4 = 0; - while (r4 < sContestantStatus[i].unkD / 10) + while (r4 < sContestantStatus[i].condition / 10) { *(u16 *)(VRAM + 0xC026 + (r8 + r4) * 64) = r6; r4++; @@ -2772,11 +2767,11 @@ bool8 sub_80AF038(u8 a) u16 r4 = 0; u8 r6 = gUnknown_02038696[a] * 5 + 2; - if (sContestantStatus[a].unk10_0 != 0 || sContestantStatus[a].unk10_1 != 0 || sContestantStatus[a].unk12 != 0 || sContestantStatus[a].unkF != 0) + if (sContestantStatus[a].resistant != 0 || sContestantStatus[a].immune != 0 || sContestantStatus[a].jamSafetyCount != 0 || sContestantStatus[a].jamReduction != 0) r4 = sub_80AEFE8(a, 0); - else if (sContestantStatus[a].unkC_0) + else if (sContestantStatus[a].nervous) r4 = sub_80AEFE8(a, 1); - else if (sContestantStatus[a].unkC_1 != 0 || sContestantStatus[a].unkB_7) + else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns) r4 = sub_80AEFE8(a, 2); else r5 = FALSE; @@ -2950,7 +2945,7 @@ void sub_80AF3C0(void) bool8 sub_80AF404(u8 a) { - if (sContestantStatus[a].unkC_1 != 0 || sContestantStatus[a].unkB_7) + if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns) return FALSE; else return TRUE; @@ -2965,34 +2960,34 @@ void sub_80AF438(void) // This is bitfield hell... sContestantStatus[i].appeal2 = 0; sContestantStatus[i].appeal1 = 0; - sContestantStatus[i].unk12 = 0; - if (sContestantStatus[i].unkC_1 > 0) - sContestantStatus[i].unkC_1--; - sContestantStatus[i].unkE = 0; - sContestantStatus[i].unk10_0 = 0; - sContestantStatus[i].unkF = 0; - sContestantStatus[i].unk10_1 = 0; - sContestantStatus[i].unk10_2 = 0; - sContestantStatus[i].unk10_3 = 0; - sContestantStatus[i].unkC_0 = 0; - sContestantStatus[i].unk13 = 0xFF; - sContestantStatus[i].unk14 = -1; - sContestantStatus[i].unk10_4 = 0; + sContestantStatus[i].jamSafetyCount = 0; + if (sContestantStatus[i].numTurnsSkipped > 0) + sContestantStatus[i].numTurnsSkipped--; + sContestantStatus[i].jam = 0; + sContestantStatus[i].resistant = 0; + sContestantStatus[i].jamReduction = 0; + sContestantStatus[i].immune = 0; + sContestantStatus[i].moreEasilyStartled = 0; + sContestantStatus[i].usedRepeatableMove = 0; + sContestantStatus[i].nervous = 0; + sContestantStatus[i].effectStringId = CONTEST_STRING_NONE; + sContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; + sContestantStatus[i].conditionMod = 0; sContestantStatus[i].unk15_2 = sContestantStatus[i].disappointedRepeat; sContestantStatus[i].disappointedRepeat = FALSE; - sContestantStatus[i].unk11_0 = 0; - sContestantStatus[i].unk11_5 = 0; - if (sContestantStatus[i].unk11_2) + sContestantStatus[i].turnOrderModAction = 0; + sContestantStatus[i].appealTripleCondition = 0; + if (sContestantStatus[i].turnSkipped) { - sContestantStatus[i].unkC_1 = 1; - sContestantStatus[i].unk11_2 = 0; + sContestantStatus[i].numTurnsSkipped = 1; + sContestantStatus[i].turnSkipped = 0; } - if (sContestantStatus[i].unk11_3) + if (sContestantStatus[i].exploded) { - sContestantStatus[i].unkB_7 = 1; - sContestantStatus[i].unk11_3 = 0; + sContestantStatus[i].noMoreTurns = 1; + sContestantStatus[i].exploded = 0; } - sContestantStatus[i].unk11_4 = 0; + sContestantStatus[i].overrideCategoryExcitementMod = 0; } for (i = 0; i < 4; i++) { @@ -3001,12 +2996,12 @@ void sub_80AF438(void) sContest.unk19248[sContest.turnNumber][i] = Contest_GetMoveExcitement(sContestantStatus[i].currMove); sContestantStatus[i].currMove = MOVE_NONE; } - shared19328.bits_8 = 0; + shared19328.excitementFrozen = 0; } bool8 Contest_IsMonsTurnDisabled(u8 a) { - if (sContestantStatus[a].unkC_1 != 0 || sContestantStatus[a].unkB_7) + if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns) return TRUE; else return FALSE; @@ -4210,7 +4205,7 @@ void unref_sub_80B0994(u8 a) void sub_80B09B0(u8 a) { - if (sContestantStatus[a].unk15_4) + if (sContestantStatus[a].hasJudgesAttention) sub_80B0368(a); else sub_80B03A8(a); @@ -4544,34 +4539,34 @@ void sub_80B114C(u8 contestant) } sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal; sContestantStatus[contestant].appeal2 = gContestEffects[effect].appeal; - shared192D0.unk4 = gContestEffects[effect].jam; - shared192D0.unk6 = gContestEffects[effect].jam; - shared192D0.unk11 = contestant; + shared192D0.jam = gContestEffects[effect].jam; + shared192D0.jam2 = gContestEffects[effect].jam; + shared192D0.contestant = contestant; for (i = 0; i < 4; i++) { - sContestantStatus[i].unkE = 0; - shared192D0.unkD[i] = 0; + sContestantStatus[i].jam = 0; + shared192D0.unnervedPokes[i] = 0; } - if (sContestantStatus[contestant].unk15_4 && AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove) == 0) - sContestantStatus[contestant].unk15_4 = 0; + if (sContestantStatus[contestant].hasJudgesAttention && AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove) == 0) + sContestantStatus[contestant].hasJudgesAttention = 0; gContestEffectFuncs[effect](); - if (sContestantStatus[contestant].unk10_4 == 1) - sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].unkD - 10; - else if (sContestantStatus[contestant].unk11_5) - sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].unkD * 3; + if (sContestantStatus[contestant].conditionMod == 1) + sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition - 10; + else if (sContestantStatus[contestant].appealTripleCondition) + sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition * 3; else - sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].unkD; + sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition; sContestantStatus[contestant].unk16 = 0; sContestantStatus[contestant].unk15_6 = 0; if (sub_80B214C(contestant)) { u8 r2 = AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove); - if (r2 != 0 && sContestantStatus[contestant].unk15_4) + if (r2 != 0 && sContestantStatus[contestant].hasJudgesAttention) { sContestantStatus[contestant].unk16 = r2; sContestantStatus[contestant].unk15_6 = 1; - sContestantStatus[contestant].unk15_4 = 0; + sContestantStatus[contestant].hasJudgesAttention = 0; sContestantStatus[contestant].unk17 = sContestantStatus[contestant].appeal1 * sContestantStatus[contestant].unk16; sContestantStatus[contestant].unk15_3 = 1; } @@ -4579,25 +4574,25 @@ void sub_80B114C(u8 contestant) { if (gContestMoves[sContestantStatus[contestant].currMove].comboStarterId != 0) { - sContestantStatus[contestant].unk15_4 = 1; + sContestantStatus[contestant].hasJudgesAttention = 1; sContestantStatus[contestant].unk15_6 = 1; } else { - sContestantStatus[contestant].unk15_4 = 0; + sContestantStatus[contestant].hasJudgesAttention = 0; } } } if (sContestantStatus[contestant].disappointedRepeat) sContestantStatus[contestant].unk18 = (sContestantStatus[contestant].moveRepeatCount + 1) * 10; - if (sContestantStatus[contestant].unkC_0) + if (sContestantStatus[contestant].nervous) { - sContestantStatus[contestant].unk15_4 = 0; + sContestantStatus[contestant].hasJudgesAttention = 0; sContestantStatus[contestant].appeal2 = 0; sContestantStatus[contestant].appeal1 = 0; } shared19328.bits_0 = Contest_GetMoveExcitement(sContestantStatus[contestant].currMove); - if (sContestantStatus[contestant].unk11_4) + if (sContestantStatus[contestant].overrideCategoryExcitementMod) shared19328.bits_0 = 1; if (shared19328.bits_0 > 0) { @@ -4625,52 +4620,52 @@ void sub_80B114C(u8 contestant) } } -void sub_80B13EC(u8 a, u8 b) +void SetContestantEffectStringID(u8 a, u8 b) { - sContestantStatus[a].unk13 = b; + sContestantStatus[a].effectStringId = b; } -void sub_80B1404(u8 a, u8 b) +void SetContestantEffectStringID2(u8 a, u8 b) { - sContestantStatus[a].unk14 = b; + sContestantStatus[a].effectStringId2 = b; } -void sub_80B141C(u8 a, u8 b) +void SetStartledString(u8 contestant, u8 jam) { - if (b >= 60) - sub_80B13EC(a, 53); - else if (b >= 40) - sub_80B13EC(a, 52); - else if (b >= 30) - sub_80B13EC(a, 51); - else if (b >= 20) - sub_80B13EC(a, 50); - else if (b >= 10) - sub_80B13EC(a, 49); + if (jam >= 60) + SetContestantEffectStringID(contestant, CONTEST_STRING_TRIPPED_OVER); + else if (jam >= 40) + SetContestantEffectStringID(contestant, CONTEST_STRING_LEAPT_UP); + else if (jam >= 30) + SetContestantEffectStringID(contestant, CONTEST_STRING_UTTER_CRY); + else if (jam >= 20) + SetContestantEffectStringID(contestant, CONTEST_STRING_TURNED_BACK); + else if (jam >= 10) + SetContestantEffectStringID(contestant, CONTEST_STRING_LOOKED_DOWN); } -void sub_80B146C(u8 a, u8 b) +void sub_80B146C(u8 contestant, u8 stringId) { - StringCopy(gStringVar1, gContestMons[a].nickname); - StringCopy(gStringVar2, gMoveNames[sContestantStatus[a].currMove]); - if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_COOL) + StringCopy(gStringVar1, gContestMons[contestant].nickname); + StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]); + if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) StringCopy(gStringVar3, gText_Contest_Shyness); - else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) + else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) StringCopy(gStringVar3, gText_Contest_Anxiety); - else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_CUTE) + else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) StringCopy(gStringVar3, gText_Contest_Laziness); - else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_SMART) + else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) StringCopy(gStringVar3, gText_Contest_Hesitancy); else StringCopy(gStringVar3, gText_Contest_Fear); - StringExpandPlaceholders(gStringVar4, gUnknown_083CC188[b]); + StringExpandPlaceholders(gStringVar4, gUnknown_083CC188[stringId]); sub_80AF138(); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); } -void sub_80B157C(u8 p) +void MakeContestantNervous(u8 p) { - sContestantStatus[p].unkC_0 = 1; + sContestantStatus[p].nervous = 1; sContestantStatus[p].currMove = MOVE_NONE; } @@ -4693,7 +4688,7 @@ void sub_80B159C(void) { for (j = 0; j < 4; j++) { - if (sContestantStatus[j].unk19 == i) + if (sContestantStatus[j].nextTurnOrder == i) { sp0[j] = i; sp4[j] = 1; @@ -4704,7 +4699,7 @@ void sub_80B159C(void) { for (j = 0; j < 4; j++) { - if (sp4[j] == 0 && sContestantStatus[j].unk19 == 0xFF) + if (sp4[j] == 0 && sContestantStatus[j].nextTurnOrder == 0xFF) { r12 = j; j++; @@ -4713,7 +4708,7 @@ void sub_80B159C(void) } for (; j < 4; j++) { - if (sp4[j] == 0 && sContestantStatus[j].unk19 == 0xFF + if (sp4[j] == 0 && sContestantStatus[j].nextTurnOrder == 0xFF && gUnknown_02038696[r12] > gUnknown_02038696[j]) r12 = j; } @@ -4724,9 +4719,9 @@ void sub_80B159C(void) for (i = 0; i < 4; i++) { - shared192D0.unk0[i] = sp0[i]; - sContestantStatus[i].unk19 = 0xFF; - sContestantStatus[i].unk10_6 = 0; + shared192D0.turnOrder[i] = sp0[i]; + sContestantStatus[i].nextTurnOrder = 0xFF; + sContestantStatus[i].turnOrderMod = 0; gUnknown_02038696[i] = sp0[i]; } } @@ -5069,7 +5064,7 @@ void sub_80B1FD0(bool8 a) for (i = 0; i < 4; i++) { - if (sContestantStatus[i].unk10_6 != 0 && a) + if (sContestantStatus[i].turnOrderMod != 0 && a) { CpuCopy32( GetTurnOrderNumberGfx(i), @@ -5087,10 +5082,10 @@ void sub_80B1FD0(bool8 a) const u8 *GetTurnOrderNumberGfx(u8 contestant) { - if (sContestantStatus[contestant].unk10_6 != 1) + if (sContestantStatus[contestant].turnOrderMod != 1) return gContestNextTurnRandomGfx; else - return gContestNextTurnNumbersGfx + sContestantStatus[contestant].unk19 * 64; + return gContestNextTurnNumbersGfx + sContestantStatus[contestant].nextTurnOrder * 64; } void sub_80B20C4(void) @@ -5099,7 +5094,7 @@ void sub_80B20C4(void) for (i = 0; i < 4; i++) { - if (shared192D0.unkD[i] != 0 && !Contest_IsMonsTurnDisabled(i)) + if (shared192D0.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { u8 r4 = gUnknown_02038696[i] * 5 + 2; u16 r0 = sub_80AEFE8(i, 3); @@ -5115,7 +5110,7 @@ void sub_80B20C4(void) bool8 sub_80B214C(u8 a) { - if (sContestantStatus[a].disappointedRepeat || sContestantStatus[a].unkC_0) + if (sContestantStatus[a].disappointedRepeat || sContestantStatus[a].nervous) return FALSE; else return TRUE; @@ -5426,8 +5421,8 @@ void sub_80B2968(void) sprite->pos2.x = 0; sprite->pos2.y = 0; - sprite->pos1.x = GetBankPosition(3, 0); - sprite->pos1.y = GetBankPosition(3, 1); + sprite->pos1.x = GetBattlerSpriteCoord(3, 0); + sprite->pos1.y = GetBattlerSpriteCoord(3, 1); sprite->invisible = TRUE; } diff --git a/src/contest_ai.c b/src/contest_ai.c index 1e249083b..e570dbafb 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -2,12 +2,9 @@ #include "contest.h" #include "random.h" #include "contest_ai.h" +#include "contest_effect.h" #include "ewram.h" -extern u8 AreMovesContestCombo(u16, u16); -extern bool8 sub_80B214C(u8); -extern bool8 Contest_IsMonsTurnDisabled(u8); - extern u16 gSpecialVar_ContestCategory; extern u8 *gAIScriptPtr; @@ -383,7 +380,7 @@ static u8 sub_8128A7C(u8 var) int i; for(i = 0; i < 4; i++) - if(shared192D0.unk0[i] == var) + if(shared192D0.turnOrder[i] == var) break; return i; @@ -497,7 +494,7 @@ static void ContestAICmd_unk_0A(void) static void ContestAICmd_get_user_order(void) { - eContestAI->scriptResult = shared192D0.unk0[eContestAI->unk41]; + eContestAI->scriptResult = shared192D0.turnOrder[eContestAI->unk41]; gAIScriptPtr += 1; } @@ -543,7 +540,7 @@ static void ContestAICmd_unk_0F(void) static void ContestAICmd_get_user_condition_maybe(void) { - eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unkD / 10; + eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].condition / 10; gAIScriptPtr += 1; } @@ -1150,7 +1147,7 @@ static void ContestAICmd_get_condition(void) { int var = sub_8128A7C(gAIScriptPtr[1]); - eContestAI->scriptResult = sContestantStatus[var].unkD / 10; + eContestAI->scriptResult = sContestantStatus[var].condition / 10; gAIScriptPtr += 2; } diff --git a/src/contest_effect.c b/src/contest_effect.c new file mode 100644 index 000000000..2932d8e6e --- /dev/null +++ b/src/contest_effect.c @@ -0,0 +1,1163 @@ +#include "global.h" +#include "ewram.h" +#include "random.h" +#include "contest.h" + +static void ContestEffect_HighlyAppealing(void); +static void ContestEffect_UserMoreEasilyStartled(void); +static void ContestEffect_GreatAppealButNoMoreMoves(void); +static void ContestEffect_RepetitionNotBoring(void); +static void ContestEffect_AvoidStartleOnce(void); +static void ContestEffect_AvoidStartle(void); +static void ContestEffect_AvoidStartleSlightly(void); +static void ContestEffect_UserLessEasilyStartled(void); +static void ContestEffect_StartleFrontMon(void); +static void ContestEffect_StartlePrevMons(void); +static void ContestEffect_StartlePrevMon2(void); +static void ContestEffect_StartlePrevMons2(void); +static void ContestEffect_ShiftJudgeAttention(void); +static void ContestEffect_StartleMonWithJudgesAttention(void); +static void ContestEffect_JamsOthersButMissOneTurn(void); +static void ContestEffect_StartleMonsSameTypeAppeal(void); +static void ContestEffect_StartleMonsCoolAppeal(void); +static void ContestEffect_StartleMonsBeautyAppeal(void); +static void ContestEffect_StartleMonsCuteAppeal(void); +static void ContestEffect_StartleMonsSmartAppeal(void); +static void ContestEffect_StartleMonsToughAppeal(void); +static void ContestEffect_MakeFollowingMonNervous(void); +static void ContestEffect_MakeFollowingMonsNervous(void); +static void ContestEffect_WorsenConditionOfPrevMons(void); +static void ContestEffect_BadlyStartlesMonsInGoodCondition(void); +static void ContestEffect_BetterIfFirst(void); +static void ContestEffect_BetterIfLast(void); +static void ContestEffect_AppealAsGoodAsPrevOnes(void); +static void ContestEffect_AppealAsGoodAsPrevOne(void); +static void ContestEffect_BetterWhenLater(void); +static void ContestEffect_QualityDependsOnTiming(void); +static void ContestEffect_BetterIfSameType(void); +static void ContestEffect_BetterIfDiffType(void); +static void ContestEffect_AffectedByPrevAppeal(void); +static void ContestEffect_ImproveConditionPreventNervousness(void); +static void ContestEffect_BetterWithGoodCondition(void); +static void ContestEffect_NextAppealEarlier(void); +static void ContestEffect_NextAppealLater(void); +static void ContestEffect_MakeScramblingTurnOrderEasier(void); +static void ContestEffect_ScrambleNextTurnOrder(void); +static void ContestEffect_ExciteAudienceInAnyContest(void); +static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void); +static void ContestEffect_BetterWhenAudienceExcited(void); +static void ContestEffect_DontExciteAudience(void); +static void JamByMoveCategory(u8); +static bool8 CanUnnerveContestant(u8); +static u8 WasAtLeastOneOpponentJammed(void); +static void JamContestant(u8, u8); +static s16 RoundTowardsZero(s16); +static s16 RoundUp(s16); + +#include "data/contest_moves.h" + +bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) { + u8 nextMoveComboMoves[4]; + u8 lastMoveComboStarterId = gContestMoves[lastMove].comboStarterId; + nextMoveComboMoves[0] = gContestMoves[nextMove].comboMoves[0]; + nextMoveComboMoves[1] = gContestMoves[nextMove].comboMoves[1]; + nextMoveComboMoves[2] = gContestMoves[nextMove].comboMoves[2]; + nextMoveComboMoves[3] = gContestMoves[nextMove].comboMoves[3]; + + if (lastMoveComboStarterId == 0) + return 0; + + if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + return gComboStarterLookupTable[lastMoveComboStarterId]; + + return 0; +} + +// A highly appealing move. +static void ContestEffect_HighlyAppealing(void) +{ +} + +// After this move, the user is more easily startled. +static void ContestEffect_UserMoreEasilyStartled(void) +{ + sContestantStatus[shared192D0.contestant].moreEasilyStartled = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MORE_CONSCIOUS); +} + +// Makes a great appeal, but allows no more to the end. +static void ContestEffect_GreatAppealButNoMoreMoves(void) +{ + sContestantStatus[shared192D0.contestant].exploded = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NO_APPEAL); +} + +// Can be used repeatedly without boring the JUDGE. +static void ContestEffect_RepetitionNotBoring(void) +{ + sContestantStatus[shared192D0.contestant].usedRepeatableMove = TRUE; + sContestantStatus[shared192D0.contestant].disappointedRepeat = FALSE; + sContestantStatus[shared192D0.contestant].moveRepeatCount = 0; +} + +// Can avoid being startled by others once. +static void ContestEffect_AvoidStartleOnce(void) +{ + sContestantStatus[shared192D0.contestant].jamSafetyCount = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SETTLE_DOWN); +} + +// Can avoid being startled by others. +static void ContestEffect_AvoidStartle(void) +{ + sContestantStatus[shared192D0.contestant].immune = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); +} + +// Can avoid being startled by others a little. +static void ContestEffect_AvoidStartleSlightly(void) +{ + sContestantStatus[shared192D0.contestant].jamReduction = 20; + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_LESS_AWARE); +} + +// After this move, the user is less likely to be startled. +static void ContestEffect_UserLessEasilyStartled(void) +{ + sContestantStatus[shared192D0.contestant].resistant = TRUE; + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_STOPPED_CARING); +} + +// Slightly startles the POKéMON in front. +static void ContestEffect_StartleFrontMon(void) +{ + u8 idx = 0; + u8 a = shared192D0.contestant; + + if (shared192D0.turnOrder[a] != 0) { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[a] - 1 == shared192D0.turnOrder[i]) + break; + } + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + idx = WasAtLeastOneOpponentJammed(); + } + if (idx == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Slightly startles those that have made appeals. +static void ContestEffect_StartlePrevMons(void) +{ + u8 idx = 0; + u8 a = shared192D0.contestant; + + if (shared192D0.turnOrder[a] != 0) { + int i; + int j = 0; + + for (i = 0; i < 4; i++) + if (shared192D0.turnOrder[a] > shared192D0.turnOrder[i]) + shared192D0.jamQueue[j++] = i; + shared192D0.jamQueue[j] = 0xFF; + idx = WasAtLeastOneOpponentJammed(); + } + if (idx == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Startles the POKéMON that appealed before the user. +static void ContestEffect_StartlePrevMon2(void) +{ + u8 rval = Random() % 10; + int jam; + + if (rval < 2) + jam = 20; + else if (rval < 8) + jam = 40; + else + jam = 60; + shared192D0.jam = jam; + ContestEffect_StartleFrontMon(); +} + +// Startles all POKéMON that appealed before the user. +static void ContestEffect_StartlePrevMons2(void) +{ + u8 numStartled = 0; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i]) + { + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + { + u8 rval = Random() % 10; + int jam; + + if (rval == 0) + jam = 0; + else if (rval <= 2) + jam = 10; + else if (rval <= 4) + jam = 20; + else if (rval <= 6) + jam = 30; + else if (rval <= 8) + jam = 40; + else + jam = 60; + shared192D0.jam = jam; + } + if (WasAtLeastOneOpponentJammed()) + numStartled++; + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + if (numStartled == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Shifts the JUDGE’s attention from others. +static void ContestEffect_ShiftJudgeAttention(void) +{ + bool32 hitAny = FALSE; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i] && + sContestantStatus[i].hasJudgesAttention && + CanUnnerveContestant(i)) + { + sContestantStatus[i].hasJudgesAttention = FALSE; + sContestantStatus[i].judgesAttentionWasRemoved = TRUE; + SetContestantEffectStringID(i, CONTEST_STRING_JUDGE_LOOK_AWAY2); + hitAny = TRUE; + } + } + } + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); + if (!hitAny) + { + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + } +} + +// Startles the POKéMON that has the JUDGE’s attention. +static void ContestEffect_StartleMonWithJudgesAttention(void) +{ + u8 numStartled = 0; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].hasJudgesAttention) + shared192D0.jam = 50; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numStartled++; + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + if (numStartled == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Jams the others, and misses one turn of appeals. +static void ContestEffect_JamsOthersButMissOneTurn(void) +{ + sContestantStatus[shared192D0.contestant].turnSkipped = TRUE; + ContestEffect_StartlePrevMons(); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Startles POKéMON that made a same-type appeal. +static void ContestEffect_StartleMonsSameTypeAppeal(void) +{ + u16 move = sContestantStatus[shared192D0.contestant].currMove; + JamByMoveCategory(gContestMoves[move].contestCategory); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made COOL appeals. +static void ContestEffect_StartleMonsCoolAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_COOL); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made BEAUTY appeals. +static void ContestEffect_StartleMonsBeautyAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_BEAUTY); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made CUTE appeals. +static void ContestEffect_StartleMonsCuteAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_CUTE); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made SMART appeals. +static void ContestEffect_StartleMonsSmartAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_SMART); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made TOUGH appeals. +static void ContestEffect_StartleMonsToughAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_TOUGH); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Makes one POKéMON after the user nervous. +static void ContestEffect_MakeFollowingMonNervous(void) +{ + bool32 hitAny = FALSE; + + if (shared192D0.turnOrder[shared192D0.contestant] != 3) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] + 1 == shared192D0.turnOrder[i]) + { + if (CanUnnerveContestant(i)) + { + MakeContestantNervous(i); + SetContestantEffectStringID(i, CONTEST_STRING_NERVOUS); + hitAny = TRUE; + } + else + { + SetContestantEffectStringID(i, CONTEST_STRING_UNAFFECTED); + hitAny = TRUE; + } + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); + if (!hitAny) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Makes all POKéMON after the user nervous. +static void ContestEffect_MakeFollowingMonsNervous(void) +{ + u8 numUnnerved = 0; + bool32 contestantUnnerved = FALSE; + u8 contestantIds[5]; + int i; + int numAfter; + s16 oddsMod[4]; + s16 odds[4]; + + memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); + for (i = 0, numAfter = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] < shared192D0.turnOrder[i] && + !sContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) + contestantIds[numAfter++] = i; + } + + if (numAfter == 1) + { + odds[0] = 60; + } + else if (numAfter == 2) + { + odds[0] = 30; + odds[1] = 30; + } + else if (numAfter == 3) + { + odds[0] = 20; + odds[1] = 20; + odds[2] = 20; + } + else + { + for (i = 0; i < 4; i++) + odds[i] = 0; + } + for (i = 0; i < 4; i++) + { + if (sContestantStatus[i].hasJudgesAttention && sub_80B214C(i)) + oddsMod[i] = gComboStarterLookupTable[gContestMoves[sContestantStatus[i].prevMove].comboStarterId] * 10; + else + oddsMod[i] = 0; + oddsMod[i] -= (sContestantStatus[i].condition / 10) * 10; + } + if (odds[0] != 0) + { + for (i = 0; contestantIds[i] != 0xFF; i++) + { + if (Random() % 100 < odds[i] + oddsMod[contestantIds[i]]) + { + if (CanUnnerveContestant(contestantIds[i])) + { + MakeContestantNervous(contestantIds[i]); + SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_NERVOUS); + numUnnerved++; + } else + contestantUnnerved = TRUE; + } else + contestantUnnerved = TRUE; + if (contestantUnnerved) + { + contestantUnnerved = FALSE; + SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED); + numUnnerved++; + } + shared192D0.unnervedPokes[contestantIds[i]] = 1; + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_UNNERVE_WAITING); + if (numUnnerved == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Worsens the condition of those that made appeals. +static void ContestEffect_WorsenConditionOfPrevMons(void) +{ + u8 numHit = 0; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i] && + sContestantStatus[i].condition > 0 && + CanUnnerveContestant(i)) + { + sContestantStatus[i].condition = 0; + sContestantStatus[i].conditionMod = 2; + SetContestantEffectStringID(i, CONTEST_STRING_REGAINED_FORM); + numHit++; + } + } + + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_TAUNT_WELL); + if (numHit == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_IGNORED); +} + +// Badly startles POKéMON in good condition. +static void ContestEffect_BadlyStartlesMonsInGoodCondition(void) +{ + u8 numHit = 0; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].condition > 0) + shared192D0.jam = 40; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numHit++; + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_JAM_WELL); + if (numHit == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_IGNORED); +} + +// The appeal works great if performed first. +static void ContestEffect_BetterIfFirst(void) +{ + if (gUnknown_02038696[shared192D0.contestant] == 0) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + sContestantStatus[shared192D0.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_HUSTLE_STANDOUT); + } +} + +// The appeal works great if performed last. +static void ContestEffect_BetterIfLast(void) +{ + if (gUnknown_02038696[shared192D0.contestant] == 3) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + sContestantStatus[shared192D0.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); + } +} + +// Makes the appeal as good as those before it. +static void ContestEffect_AppealAsGoodAsPrevOnes(void) +{ + int i; + int appealSum; + + for (i = 0, appealSum = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + appealSum += sContestantStatus[i].appeal2; + } + if (appealSum < 0) + appealSum = 0; + if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appealSum == 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL); + else + { + sContestantStatus[shared192D0.contestant].appeal2 += appealSum / 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_BEFORE); + } + sContestantStatus[shared192D0.contestant].appeal2 = RoundTowardsZero(sContestantStatus[shared192D0.contestant].appeal2); +} + +// Makes the appeal as good as the one before it. +static void ContestEffect_AppealAsGoodAsPrevOne(void) +{ + s16 appeal = 0; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i]) + appeal = sContestantStatus[i].appeal2; + } + } + if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appeal <= 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); + else + { + sContestantStatus[shared192D0.contestant].appeal2 += appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_PRECEDING); + } +} + +// The appeal works better the later it is performed. +static void ContestEffect_BetterWhenLater(void) +{ + u8 whichTurn = shared192D0.turnOrder[shared192D0.contestant]; + if (whichTurn == 0) + sContestantStatus[shared192D0.contestant].appeal2 = 10; + else + sContestantStatus[shared192D0.contestant].appeal2 = 20 * whichTurn; + if (whichTurn == 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); + else if (whichTurn == 1) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); + else if (whichTurn == 2) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); +} + +// The appeal’s quality varies depending on its timing. +static void ContestEffect_QualityDependsOnTiming(void) +{ + u8 rval = Random() % 10; + s16 appeal; + + if (rval < 3) + { + appeal = 10; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + } else if (rval < 6) + { + appeal = 20; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + } else if (rval < 8) + { + appeal = 40; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + } else if (rval < 9) + { + appeal = 60; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + } + else + { + appeal = 80; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + } + sContestantStatus[shared192D0.contestant].appeal2 = appeal; +} + +#ifdef NONMATCHING +// Not even close, send help +// Works well if it’s the same type as the one before. +static void ContestEffect_BetterIfSameType(void) +{ + s8 r4; + s8 r2; + + for (r4 = shared192D0.turnOrder[shared192D0.contestant]; r4 > 0; r4--) + { + for (r2 = 0; r2 < 4; r2++) + { + if (shared192D0.turnOrder[r2] == r4 - 1) + break; + } + if (!(sContestantStatus[r2].noMoreTurns || sContestantStatus[r2].nervous || sContestantStatus[r2].numTurnsSkipped)) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + + if (gContestMoves[move].contestCategory == gContestMoves[sContestantStatus[r2].currMove].contestCategory) + { + sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SAME_TYPE_GOOD); + } + break; + } + } +} +#else +__attribute__((naked)) void ContestEffect_BetterIfSameType(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tldr r1, _080B8940 @ =gSharedMem + 0x192D0\n" + "\tldrb r0, [r1, 0x11]\n" + "\tadds r0, r1\n" + "\tmovs r2, 0\n" + "\tldrsb r2, [r0, r2]\n" + "\tsubs r0, r2, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tmov r12, r1\n" + "\tcmp r2, 0\n" + "\tbeq _080B8994\n" + "\tldrb r5, [r1]\n" + "\tmov r6, r12\n" + "\tsubs r6, 0x70\n" + "_080B88EA:\n" + "\tmovs r2, 0\n" + "\tlsls r0, r4, 24\n" + "\tasrs r1, r0, 24\n" + "\tadds r4, r0, 0\n" + "\tcmp r5, r1\n" + "\tbeq _080B8910\n" + "\tldr r3, _080B8940 @ =gSharedMem + 0x192D0\n" + "_080B88F8:\n" + "\tlsls r0, r2, 24\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 17\n" + "\tadds r0, r2\n" + "\tlsrs r2, r0, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0x3\n" + "\tbgt _080B8910\n" + "\tadds r0, r3\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, r1\n" + "\tbne _080B88F8\n" + "_080B8910:\n" + "\tlsls r2, 24\n" + "\tasrs r1, r2, 24\n" + "\tlsls r0, r1, 3\n" + "\tsubs r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r3, r0, r6\n" + "\tldrb r1, [r3, 0xB]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tadds r7, r2, 0\n" + "\tcmp r0, 0\n" + "\tbne _080B8932\n" + "\tldrb r1, [r3, 0xC]\n" + "\tmovs r0, 0x7\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _080B8944\n" + "_080B8932:\n" + "\tmovs r1, 0xFF\n" + "\tlsls r1, 24\n" + "\tadds r0, r4, r1\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r0, 0\n" + "\tblt _080B8994\n" + "\tb _080B88EA\n" + "\t.align 2, 0\n" + "_080B8940: .4byte gSharedMem + 0x192D0\n" + "_080B8944:\n" + "\tmov r2, r12\n" + "\tldrb r1, [r2, 0x11]\n" + "\tlsls r0, r1, 3\n" + "\tsubs r0, r1\n" + "\tlsls r0, 2\n" + "\tmov r3, r12\n" + "\tsubs r3, 0x70\n" + "\tadds r5, r0, r3\n" + "\tldrh r0, [r5, 0x6]\n" + "\tldr r4, _080B899C @ =gContestMoves\n" + "\tlsls r0, 3\n" + "\tadds r6, r0, r4\n" + "\tldrb r2, [r6, 0x1]\n" + "\tlsls r2, 29\n" + "\tasrs r1, r7, 24\n" + "\tlsls r0, r1, 3\n" + "\tsubs r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrh r0, [r0, 0x6]\n" + "\tlsls r0, 3\n" + "\tadds r0, r4\n" + "\tldrb r0, [r0, 0x1]\n" + "\tlsls r0, 29\n" + "\tcmp r2, r0\n" + "\tbne _080B8994\n" + "\tldr r1, _080B89A0 @ =gContestEffects\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0, 0x1]\n" + "\tlsls r0, 1\n" + "\tldrh r1, [r5, 0x2]\n" + "\tadds r0, r1\n" + "\tstrh r0, [r5, 0x2]\n" + "\tmov r2, r12\n" + "\tldrb r0, [r2, 0x11]\n" + "\tmovs r1, 0x1F\n" + "\tbl SetContestantEffectStringID\n" + "_080B8994:\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_080B899C: .4byte gContestMoves\n" + "_080B89A0: .4byte gContestEffects"); +} +#endif + +// Works well if different in type than the one before. +static void ContestEffect_BetterIfDiffType(void) +{ + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i] && + gContestMoves[move].contestCategory != gContestMoves[sContestantStatus[i].currMove].contestCategory) + { + sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); + break; + } + } + } +} + +// Affected by how well the appeal in front goes. +static void ContestEffect_AffectedByPrevAppeal(void) +{ + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i]) + { + if (sContestantStatus[shared192D0.contestant].appeal2 > sContestantStatus[i].appeal2) + { + sContestantStatus[shared192D0.contestant].appeal2 *= 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); + } + else if (sContestantStatus[shared192D0.contestant].appeal2 < sContestantStatus[i].appeal2) + { + sContestantStatus[shared192D0.contestant].appeal2 = 0; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NOT_AS_WELL); + } + } + } + } +} + +// Ups the user’s condition. Helps prevent nervousness. +static void ContestEffect_ImproveConditionPreventNervousness(void) +{ + if (sContestantStatus[shared192D0.contestant].condition < 30) + { + sContestantStatus[shared192D0.contestant].condition += 10; + sContestantStatus[shared192D0.contestant].conditionMod = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_CONDITION_ROSE); + } + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); +} + +// The appeal works well if the user’s condition is good. +static void ContestEffect_BetterWithGoodCondition(void) +{ + sContestantStatus[shared192D0.contestant].appealTripleCondition = TRUE; + if (sContestantStatus[shared192D0.contestant].condition != 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_HOT_STATUS); + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); +} + +// The next appeal can be made earlier next turn. +static void ContestEffect_NextAppealEarlier(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + + turnOrder[shared192D0.contestant] = 0xFF; + + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + if (j != shared192D0.contestant && + i == turnOrder[j] && + turnOrder[j] == sContestantStatus[j].nextTurnOrder) + { + turnOrder[j]++; + break; + } + } + if (j == 4) + break; + } + + turnOrder[shared192D0.contestant] = 0; + sContestantStatus[shared192D0.contestant].turnOrderMod = 1; + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MOVE_UP_LINE); + } +} + +// The next appeal can be made later next turn. +static void ContestEffect_NextAppealLater(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + + turnOrder[shared192D0.contestant] = 0xFF; + + for (i = 3; i > -1; i--) + { + for (j = 0; j < 4; j++) + { + if (j != shared192D0.contestant && + i == turnOrder[j] && + turnOrder[j] == sContestantStatus[j].nextTurnOrder) + { + turnOrder[j]--; + break; + } + } + if (j == 4) + break; + } + + turnOrder[shared192D0.contestant] = 3; + sContestantStatus[shared192D0.contestant].turnOrderMod = 1; + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MOVE_BACK_LINE); + } +} + +// Makes the next turn’s order more easily scrambled. +static void ContestEffect_MakeScramblingTurnOrderEasier(void) +{ + // dummied out? +} + +// Scrambles the order of appeals on the next turn. +static void ContestEffect_ScrambleNextTurnOrder(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + u8 unselectedContestants[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + { + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + unselectedContestants[i] = i; + } + + for (i = 0; i < 4; i++) + { + u8 rval = Random() % (4 - i); + + for (j = 0; j < 4; j++) + { + if (unselectedContestants[j] != 0xFF) + { + if (rval == 0) + { + turnOrder[j] = i; + unselectedContestants[j] = 0xFF; + break; + } + else + rval--; + } + } + } + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + sContestantStatus[i].turnOrderMod = 2; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 3; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SCRAMBLE_ORDER); + } +} + +// An appeal that excites the audience in any CONTEST. +static void ContestEffect_ExciteAudienceInAnyContest(void) +{ + if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) + { + sContestantStatus[shared192D0.contestant].overrideCategoryExcitementMod = TRUE; + } +} + +// Badly startles all POKéMON that made good appeals. +static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) +{ + int i; + u8 numJammed = 0; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].appeal2 > 0) + { + shared192D0.jam = sContestantStatus[i].appeal2 / 2; + shared192D0.jam = RoundUp(shared192D0.jam); + } + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numJammed++; + } + } + if (numJammed == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// The appeal works best the more the crowd is excited. +static void ContestEffect_BetterWhenAudienceExcited(void) +{ + s16 appeal; + + if (sContest.applauseLevel == 0) + { + appeal = 10; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + } + else if (sContest.applauseLevel == 1) + { + appeal = 20; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + } + else if (sContest.applauseLevel == 2) + { + appeal = 30; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + } + else if (sContest.applauseLevel == 3) + { + appeal = 50; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + } + else + { + appeal = 60; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + } + sContestantStatus[shared192D0.contestant].appeal2 = appeal; +} + +// Temporarily stops the crowd from growing excited. +static void ContestEffect_DontExciteAudience(void) +{ + if (!shared19328.excitementFrozen) + { + shared19328.excitementFrozen = TRUE; + shared19328.excitementFreezer = shared192D0.contestant; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); + } +} + +static void JamByMoveCategory(u8 category) +{ + int i; + int numJammed = 0; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (category == gContestMoves[sContestantStatus[i].currMove].contestCategory) + shared192D0.jam = 40; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numJammed++; + } + } + + if (numJammed == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +static bool8 CanUnnerveContestant(u8 i) +{ + shared192D0.unnervedPokes[i] = 1; + if (sContestantStatus[i].immune) + { + SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING); + return FALSE; + } + else if (sContestantStatus[i].jamSafetyCount != 0) + { + sContestantStatus[i].jamSafetyCount--; + SetContestantEffectStringID(i, CONTEST_STRING_AVERT_GAZE); + return FALSE; + } + else if (!sContestantStatus[i].noMoreTurns && sContestantStatus[i].numTurnsSkipped == 0) + { + return TRUE; + } + + return FALSE; +} + +static bool8 WasAtLeastOneOpponentJammed(void) +{ + s16 jamBuffer[4] = {0}; + int i; + + for (i = 0; shared192D0.jamQueue[i] != 0xFF; i++) + { + u8 contestant = shared192D0.jamQueue[i]; + if (CanUnnerveContestant(contestant)) + { + shared192D0.jam2 = shared192D0.jam; + if (sContestantStatus[contestant].moreEasilyStartled) + shared192D0.jam2 *= 2; + if (sContestantStatus[contestant].resistant) + { + shared192D0.jam2 = 10; + SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); + } + else if ((shared192D0.jam2 -= sContestantStatus[contestant].jamReduction) <= 0) + { + shared192D0.jam2 = 0; + SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); + } + else + { + JamContestant(contestant, shared192D0.jam2); + SetStartledString(contestant, shared192D0.jam2); + jamBuffer[contestant] = shared192D0.jam2; + } + } + } + + for (i = 0; i < 4; i++) + { + if (jamBuffer[i] != 0) + return TRUE; + } + return FALSE; +} + +static void JamContestant(u8 i, u8 jam) +{ + sContestantStatus[i].appeal2 -= jam; + sContestantStatus[i].jam += jam; +} + +static s16 RoundTowardsZero(s16 score) +{ + s16 absScore = abs(score) % 10; + if (score < 0) + { + if (absScore != 0) + score -= 10 - absScore; + } + else + score -= absScore; + return score; +} + +static s16 RoundUp(s16 score) +{ + s16 absScore = abs(score) % 10; + if (absScore != 0) + score += 10 - absScore; + return score; +} diff --git a/src/contest_painting.c b/src/contest_painting.c index 7d8f53299..e90391469 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,6 +1,6 @@ #include "global.h" #include "contest_painting.h" -#include "cute_sketch.h" +#include "contest_painting_effects.h" #include "data2.h" #include "decompress.h" #include "main.h" diff --git a/src/cute_sketch.c b/src/contest_painting_effects.c index 5317bc334..b07319048 100644 --- a/src/cute_sketch.c +++ b/src/contest_painting_effects.c @@ -1,5 +1,5 @@ #include "global.h" -#include "cute_sketch.h" +#include "contest_painting_effects.h" #include "contest_painting.h" extern u16 (*gUnknown_03005DEC)[][32]; diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h new file mode 100644 index 000000000..9d269e789 --- /dev/null +++ b/src/data/contest_moves.h @@ -0,0 +1,532 @@ +#ifndef POKERUBY_CONTEST_MOVES_H +#define POKERUBY_CONTEST_MOVES_H + +const struct ContestMove gContestMoves[] = { + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // NONE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_POUND, {0, 0, 0, 0}}, // POUND + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // KARATE_CHOP + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // DOUBLE_SLAP + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // COMET_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_PUNCH + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PAY_DAY + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_FIRE_PUNCH, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // FIRE_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_ICE_PUNCH, {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0}}, // ICE_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_THUNDER_PUNCH, {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // THUNDER_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCRATCH, {COMBO_STARTER_LEER, 0, 0, 0}}, // SCRATCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_VICE_GRIP, {0, 0, 0, 0}}, // VICE_GRIP + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // GUILLOTINE + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAZOR_WIND + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SWORDS_DANCE, {0, 0, 0, 0}}, // SWORDS_DANCE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GUST + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // WING_ATTACK + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // WHIRLWIND + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FLY + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // BIND + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // SLAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // VINE_WHIP + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, COMBO_STARTER_LEER, 0, 0}}, // STOMP + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOUBLE_KICK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_KICK + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // JUMP_KICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROLLING_KICK + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SAND_ATTACK, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0}}, // SAND_ATTACK + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // HEADBUTT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_HORN_ATTACK, {COMBO_STARTER_LEER, 0, 0, 0}}, // HORN_ATTACK + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0}}, // FURY_ATTACK + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, 0, 0, 0}}, // HORN_DRILL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0}}, // TACKLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BODY_SLAM + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // WRAP + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // TAKE_DOWN + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAGE, 0, 0, 0}}, // THRASH + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // DOUBLE_EDGE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // TAIL_WHIP + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_STING + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWINEEDLE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // PIN_MISSILE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_LEER, {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0}}, // LEER + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0}}, // BITE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // GROWL + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROAR + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SING, {0, 0, 0, 0}}, // SING + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUPERSONIC + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SONIC_BOOM + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DISABLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ACID + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // EMBER + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAMETHROWER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MIST + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0}}, // WATER_GUN + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_PUMP + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SURF, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0}}, // SURF + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BEAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0}}, // BLIZZARD + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYBEAM + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE_BEAM + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // AURORA_BEAM + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_BEAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_PECK, {0, 0, 0, 0}}, // PECK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_PECK, 0, 0, 0}}, // DRILL_PECK + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // SUBMISSION + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LOW_KICK + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // COUNTER + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // SEISMIC_TOSS + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // STRENGTH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // ABSORB + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MEGA_DRAIN + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_SEED + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_GROWTH, {0, 0, 0, 0}}, // GROWTH + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // RAZOR_LEAF + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0}}, // SOLAR_BEAM + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // POISON_POWDER + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // STUN_SPORE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // SLEEP_POWDER + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // PETAL_DANCE + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_STRING_SHOT, {0, 0, 0, 0}}, // STRING_SHOT + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_RAGE, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_RAGE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_SPIN + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_SHOCK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDERBOLT + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_WAVE + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0}}, // THUNDER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ROCK_THROW, {0, 0, 0, 0}}, // ROCK_THROW + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_EARTHQUAKE, {0, 0, 0, 0}}, // EARTHQUAKE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_EARTHQUAKE, 0, 0, 0}}, // FISSURE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DIG + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TOXIC + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_CONFUSION, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0}}, // CONFUSION + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_PSYCHIC, {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0}}, // PSYCHIC + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_HYPNOSIS, {0, 0, 0, 0}}, // HYPNOSIS + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MEDITATE + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // AGILITY + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // QUICK_ATTACK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, COMBO_STARTER_RAGE, {0, 0, 0, 0}}, // RAGE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}}, // TELEPORT + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NIGHT_SHADE + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MIMIC + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SCREECH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_DOUBLE_TEAM, {0, 0, 0, 0}}, // DOUBLE_TEAM + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECOVER + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_HARDEN, {0, 0, 0, 0}}, // HARDEN + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MINIMIZE + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SMOG, 0, 0, 0}}, // SMOKESCREEN + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CONFUSE_RAY + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WITHDRAW + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_DEFENSE_CURL, {0, 0, 0, 0}}, // DEFENSE_CURL + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // BARRIER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LIGHT_SCREEN + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HAZE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // REFLECT + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_FOCUS_ENERGY, {0, 0, 0, 0}}, // FOCUS_ENERGY + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BIDE + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // METRONOME + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // MIRROR_MOVE + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SELF_DESTRUCT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SOFT_BOILED, 0, 0, 0}}, // EGG_BOMB + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SMOG, {0, 0, 0, 0}}, // SMOG + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE, {COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0}}, // SLUDGE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_CLUB, {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONE_CLUB + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_BLAST + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATERFALL + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // CLAMP + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SWIFT + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // SKULL_BASH + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SPIKE_CANNON + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // CONSTRICT + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // AMNESIA + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_KINESIS, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0}}, // KINESIS + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SOFT_BOILED, {0, 0, 0, 0}}, // SOFT_BOILED + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // HI_JUMP_KICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, 0, 0, 0}}, // GLARE + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0}}, // DREAM_EATER + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_GAS + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BARRAGE + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_LIFE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // LOVELY_KISS + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SKY_ATTACK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRANSFORM + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DIZZY_PUNCH + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SPORE + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FLASH + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYWAVE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SPLASH + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ACID_ARMOR + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0}}, // CRABHAMMER + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // EXPLOSION + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCRATCH, 0, 0, 0}}, // FURY_SWIPES + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONEMERANG, {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONEMERANG + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_REST, {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0}}, // REST + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_SLIDE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_FANG + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SHARPEN + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // TRI_ATTACK + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // SUPER_FANG + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0}}, // SLASH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUBSTITUTE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STRUGGLE + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKETCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // TRIPLE_KICK + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // THIEF + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_STRING_SHOT, 0, 0, 0}}, // SPIDER_WEB + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_MIND_READER, {0, 0, 0, 0}}, // MIND_READER + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, 0, 0, 0}}, // NIGHTMARE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAME_WHEEL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SNORE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_CURSE, {0, 0, 0, 0}}, // CURSE + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // FLAIL + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION_2 + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AEROBLAST + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // COTTON_SPORE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // REVERSAL + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // SPITE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_POWDER_SNOW, {COMBO_STARTER_HAIL, 0, 0, 0}}, // POWDER_SNOW + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_HARDEN, 0, 0, 0}}, // PROTECT + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MACH_PUNCH + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCARY_FACE, {COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0}}, // SCARY_FACE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0}}, // FAINT_ATTACK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // SWEET_KISS + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_BELLY_DRUM, {0, 0, 0, 0}}, // BELLY_DRUM + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE_BOMB, {COMBO_STARTER_SLUDGE, 0, 0, 0}}, // SLUDGE_BOMB + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SLAP, {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0}}, // MUD_SLAP + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0}}, // OCTAZOOKA + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SPIKES + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // ZAP_CANNON + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FORESIGHT + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0}}, // DESTINY_BOND + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0}}, // PERISH_SONG + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICY_WIND + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // DETECT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_RUSH, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0}}, // BONE_RUSH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_LOCK_ON, {0, 0, 0, 0}}, // LOCK_ON + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // OUTRAGE + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SANDSTORM, {0, 0, 0, 0}}, // SANDSTORM + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // GIGA_DRAIN + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ENDURE, {0, 0, 0, 0}}, // ENDURE + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_CHARM, {0, 0, 0, 0}}, // CHARM + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0}}, // ROLLOUT + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FALSE_SWIPE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SWAGGER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MILK_DRINK + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SPARK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FURY_CUTTER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STEEL_WING + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_MEAN_LOOK, {COMBO_STARTER_CURSE, 0, 0, 0}}, // MEAN_LOOK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ATTRACT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SLEEP_TALK + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HEAL_BELL + {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // RETURN + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // PRESENT + {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FRUSTRATION + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SAFEGUARD + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // PAIN_SPLIT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SACRED_FIRE + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MAGNITUDE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // DYNAMIC_PUNCH + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MEGAHORN + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_BREATH, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_BREATH + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BATON_PASS + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ENCORE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PURSUIT + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAPID_SPIN + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SWEET_SCENT, {0, 0, 0, 0}}, // SWEET_SCENT + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // IRON_TAIL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_METAL_SOUND, 0, 0, 0}}, // METAL_CLAW + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // VITAL_THROW + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MORNING_SUN + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SYNTHESIS + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MOONLIGHT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HIDDEN_POWER + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // CROSS_CHOP + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWISTER + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_RAIN_DANCE, {0, 0, 0, 0}}, // RAIN_DANCE + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SUNNY_DAY, {0, 0, 0, 0}}, // SUNNY_DAY + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // CRUNCH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // MIRROR_COAT + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PSYCH_UP + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTREME_SPEED + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ANCIENT_POWER + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_BALL + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}}, // FUTURE_SIGHT + {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_SMASH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WHIRLPOOL + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // BEAT_UP + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_FAKE_OUT, {0, 0, 0, 0}}, // FAKE_OUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // UPROAR + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_STOCKPILE, {0, 0, 0, 0}}, // STOCKPILE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SPIT_UP + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SWALLOW + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // HEAT_WAVE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_HAIL, {0, 0, 0, 0}}, // HAIL + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // TORMENT + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // FLATTER + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // WILL_O_WISP + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MEMENTO + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FACADE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // FOCUS_PUNCH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SMELLING_SALT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FOLLOW_ME + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // NATURE_POWER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CHARGE, {0, 0, 0, 0}}, // CHARGE + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, COMBO_STARTER_TAUNT, {0, 0, 0, 0}}, // TAUNT + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HELPING_HAND + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRICK + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ROLE_PLAY + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // WISH + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ASSIST + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // INGRAIN + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // SUPERPOWER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MAGIC_COAT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECYCLE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // REVENGE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // BRICK_BREAK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_YAWN, {0, 0, 0, 0}}, // YAWN + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // KNOCK_OFF + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // ENDEAVOR + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0}}, // ERUPTION + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKILL_SWAP + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // IMPRISON + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0}}, // REFRESH + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // GRUDGE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SNATCH + {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SECRET_POWER + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_DIVE, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0}}, // DIVE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0}}, // ARM_THRUST + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CAMOUFLAGE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // TAIL_GLOW + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LUSTER_PURGE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MIST_BALL + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FEATHER_DANCE + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TEETER_DANCE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAZE_KICK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SPORT, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0}}, // MUD_SPORT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BALL + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NEEDLE_ARM + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_YAWN, 0, 0, 0}}, // SLACK_OFF + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_VOICE + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_FANG + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CRUSH_CLAW + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAST_BURN + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_CANNON + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // METEOR_MASH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ASTONISH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}}, // WEATHER_BALL + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // AROMATHERAPY + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FAKE_TEARS + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AIR_CUTTER + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // OVERHEAT + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ODOR_SLEUTH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_TOMB + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SILVER_WIND + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_METAL_SOUND, {0, 0, 0, 0}}, // METAL_SOUND + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GRASS_WHISTLE + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TICKLE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // COSMIC_POWER + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_SPOUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SIGNAL_BEAM + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_PUNCH + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTRASENSORY + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // SKY_UPPERCUT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SANDSTORM, 0, 0, 0}}, // SAND_TOMB + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SHEER_COLD + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // MUDDY_WATER + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // BULLET_SEED + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AERIAL_ACE + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICICLE_SPEAR + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // IRON_DEFENSE + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BLOCK + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HOWL + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0}}, // DRAGON_CLAW + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // FRENZY_PLANT + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // BULK_UP + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BOUNCE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MUD_SHOT + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_TAIL + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // COVET + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // VOLT_TACKLE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MAGICAL_LEAF + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_WATER_SPORT, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0}}, // WATER_SPORT + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CALM_MIND, {0, 0, 0, 0}}, // CALM_MIND + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // LEAF_BLADE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_DANCE, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0}}, // DRAGON_DANCE + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_BLAST + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SHOCK_WAVE + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_PULSE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOOM_DESIRE + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYCHO_BOOST +}; + +const struct ContestEffect gContestEffects[] = { + {0, 40, 0}, // CONTEST_EFFECT_HIGHLY_APPEALING + {0, 60, 0}, // CONTEST_EFFECT_USER_MORE_EASILY_STARTLED + {0, 80, 0}, // CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES + {0, 30, 0}, // CONTEST_EFFECT_REPETITION_NOT_BORING + {1, 20, 0}, // CONTEST_EFFECT_AVOID_STARTLE_ONCE + {1, 10, 0}, // CONTEST_EFFECT_AVOID_STARTLE + {1, 30, 0}, // CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY + {1, 30, 0}, // CONTEST_EFFECT_USER_LESS_EASILY_STARTLED + {2, 30, 20}, // CONTEST_EFFECT_STARTLE_FRONT_MON + {3, 30, 10}, // CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS + {2, 20, 30}, // CONTEST_EFFECT_STARTLE_PREV_MON + {3, 20, 20}, // CONTEST_EFFECT_STARTLE_PREV_MONS + {2, 10, 40}, // CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON + {3, 10, 30}, // CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS + {2, 30, 20}, // CONTEST_EFFECT_STARTLE_PREV_MON_2 + {3, 30, 10}, // CONTEST_EFFECT_STARTLE_PREV_MONS_2 + {4, 30, 0}, // CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION + {3, 40, 40}, // CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL + {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL + {4, 20, 0}, // CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS + {4, 20, 0}, // CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS + {4, 30, 0}, // CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS + {3, 30, 10}, // CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION + {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_FIRST + {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_LAST + {5, 10, 0}, // CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES + {5, 10, 0}, // CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE + {5, 10, 0}, // CONTEST_EFFECT_BETTER_WHEN_LATER + {5, 10, 0}, // CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING + {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_SAME_TYPE + {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_DIFF_TYPE + {5, 30, 0}, // CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL + {5, 10, 0}, // CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS + {5, 10, 0}, // CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION + {6, 30, 0}, // CONTEST_EFFECT_NEXT_APPEAL_EARLIER + {6, 30, 0}, // CONTEST_EFFECT_NEXT_APPEAL_LATER + {6, 30, 0}, // CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER + {6, 30, 0}, // CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER + {5, 10, 0}, // CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST + {3, 20, 10}, // CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS + {5, 10, 0}, // CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED + {4, 30, 0} // CONTEST_EFFECT_DONT_EXCITE_AUDIENCE +}; + +// A lookup table with TRUE for each combo starter ID and FALSE for ID 0, +// which means "not a combo starter move". +const bool8 gComboStarterLookupTable[] = { + FALSE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE +}; + +void (*const gContestEffectFuncs[])(void) = { + ContestEffect_HighlyAppealing, + ContestEffect_UserMoreEasilyStartled, + ContestEffect_GreatAppealButNoMoreMoves, + ContestEffect_RepetitionNotBoring, + ContestEffect_AvoidStartleOnce, + ContestEffect_AvoidStartle, + ContestEffect_AvoidStartleSlightly, + ContestEffect_UserLessEasilyStartled, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartlePrevMon2, + ContestEffect_StartlePrevMons2, + ContestEffect_ShiftJudgeAttention, + ContestEffect_StartleMonWithJudgesAttention, + ContestEffect_JamsOthersButMissOneTurn, + ContestEffect_StartleMonsSameTypeAppeal, + ContestEffect_StartleMonsCoolAppeal, + ContestEffect_StartleMonsBeautyAppeal, + ContestEffect_StartleMonsCuteAppeal, + ContestEffect_StartleMonsSmartAppeal, + ContestEffect_StartleMonsToughAppeal, + ContestEffect_MakeFollowingMonNervous, + ContestEffect_MakeFollowingMonsNervous, + ContestEffect_WorsenConditionOfPrevMons, + ContestEffect_BadlyStartlesMonsInGoodCondition, + ContestEffect_BetterIfFirst, + ContestEffect_BetterIfLast, + ContestEffect_AppealAsGoodAsPrevOnes, + ContestEffect_AppealAsGoodAsPrevOne, + ContestEffect_BetterWhenLater, + ContestEffect_QualityDependsOnTiming, + ContestEffect_BetterIfSameType, + ContestEffect_BetterIfDiffType, + ContestEffect_AffectedByPrevAppeal, + ContestEffect_ImproveConditionPreventNervousness, + ContestEffect_BetterWithGoodCondition, + ContestEffect_NextAppealEarlier, + ContestEffect_NextAppealLater, + ContestEffect_MakeScramblingTurnOrderEasier, + ContestEffect_ScrambleNextTurnOrder, + ContestEffect_ExciteAudienceInAnyContest, + ContestEffect_BadlyStartleMonsWithGoodAppeals, + ContestEffect_BetterWhenAudienceExcited, + ContestEffect_DontExciteAudience +}; + +#endif //POKERUBY_CONTEST_MOVES_H diff --git a/src/debug/kagaya_debug_menu.c b/src/debug/kagaya_debug_menu.c index 3cb36ce0c..83736ba4d 100644 --- a/src/debug/kagaya_debug_menu.c +++ b/src/debug/kagaya_debug_menu.c @@ -83,7 +83,7 @@ u8 debug_sub_80B068C(void) { if (!UpdatePaletteFade()) { - debug_sub_80A0710(sub_805469C); + debug_sub_80A0710(c2_exit_to_overworld_1_sub_8080DEC); CloseMenu(); ScriptContext2_Enable(); return 1; @@ -102,7 +102,7 @@ u8 debug_sub_80B06E0(void) { if (!UpdatePaletteFade()) { - debug_sub_80A073C(sub_805469C); + debug_sub_80A073C(c2_exit_to_overworld_1_sub_8080DEC); CloseMenu(); ScriptContext2_Enable(); return 1; @@ -121,7 +121,7 @@ u8 Kagaya_80B0734(void) { if (!UpdatePaletteFade()) { - debug_sub_811609C(Random() % 6, sub_805469C); + debug_sub_811609C(Random() % 6, c2_exit_to_overworld_1_sub_8080DEC); CloseMenu(); ScriptContext2_Enable(); return 1; diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index c8f80eb50..7a66ded57 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -473,7 +473,7 @@ static void sub_80AA064(void) RunTasks(); UpdatePaletteFade(); if (gMain.newKeys == 4) - SetMainCallback2(sub_805469C); + SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); } static void sub_80AA090(void) @@ -891,7 +891,7 @@ void sub_80AAD44(struct Sprite *sprite, s8 var2) SetDebugMonForContest(); for (i = 0; i < 4; i++) gUnknown_02038670[i] = sub_80AE770(i, gSpecialVar_ContestCategory); - SetMainCallback2(sub_805469C); + SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); } } diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c index 550ac7bbd..3880c7b7b 100644 --- a/src/debug/nakamura_debug_menu.c +++ b/src/debug/nakamura_debug_menu.c @@ -1,189 +1,2217 @@ #if DEBUG #include "global.h" +#include "constants/items.h" +#include "constants/species.h" +#include "constants/songs.h" +#include "sound.h" +#include "data2.h" +#include "strings.h" +#include "random.h" +#include "palette.h" +#include "main.h" +#include "string_util.h" +#include "overworld.h" +#include "fieldmap.h" +#include "field_player_avatar.h" +#include "metatile_behavior.h" +#include "start_menu.h" +#include "party_menu.h" +#include "choose_party.h" +#include "secret_base.h" +#include "roamer.h" +#include "decoration_inventory.h" +#include "wild_encounter.h" #include "menu.h" +#include "menu_helpers.h" +#include "pokeblock.h" -EWRAM_DATA u8 _nakamuraData0 = 0; -EWRAM_DATA u8 _nakamuraData1 = 0; -EWRAM_DATA u8 _nakamuraData2 = 0; -EWRAM_DATA u8 _nakamuraData3 = 0; -EWRAM_DATA u8 _nakamuraData4 = 0; -EWRAM_DATA u8 _nakamuraData5 = 0; -EWRAM_DATA u16 _nakamuraData6 = 0; -EWRAM_DATA u16 _nakamuraData8 = 0; -EWRAM_DATA u16 _nakamuraDataA = 0; -EWRAM_DATA u16 _nakamuraDataC = 0; - -__attribute__((unused)) static u8 _nakamuraStatic0[0x18]; -__attribute__((unused)) static u8 _nakamuraStatic18; -__attribute__((unused)) static u8 gDebugFiller3000814[4]; - -asm(".global _nakamuraStatic0"); -asm(".global _nakamuraStatic18"); - -u8 debug_sub_815FC54(); -u8 debug_sub_815F2B4(); -u8 debug_sub_815FC94(); -u8 debug_sub_815FB1C(); -u8 debug_sub_815F2F4(); -u8 debug_sub_815F62C(); -u8 debug_sub_815FBE8(); -u8 debug_sub_815FE1C(); -u8 debug_sub_8160D98(); - -const u8 Str_843E36C[] = _("Berries"); -const u8 Str_843E374[] = _("Goods"); -const u8 Str_843E37A[] = _("{PKMN} list"); -const u8 Str_843E382[] = _("トラップ"); -const u8 Str_843E387[] = _("Move your base"); -const u8 Str_843E396[] = _("Moving {PKMN}"); -const u8 Str_843E3A0[] = _("Fishing points"); -const u8 Str_843E3AF[] = _("Set {POKEBLOCK}"); -const u8 Str_843E3B9[] = _("Make bases(to max)"); -const u8 Str_843E3CC[] = _("Base location"); - -const struct MenuAction _843E3DC[] = { - { Str_843E36C, debug_sub_815FC54 }, - { Str_843E37A, debug_sub_815F2B4 }, - { Str_843E374, debug_sub_815FC94 }, - { Str_843E387, debug_sub_815FB1C }, - { Str_843E3B9, debug_sub_815F2F4 }, - { Str_843E3CC, debug_sub_815F62C }, - { Str_843E396, debug_sub_815FBE8 }, - { Str_843E3A0, debug_sub_815FE1C }, - { Str_843E3AF, debug_sub_8160D98 }, +static bool8 TopMenu_HandleJoypad(void); +static bool8 SwitchToPkmnListMenu(void); +static bool8 MakeBasesToMax(void); +static bool8 BaseLocation(void); +static bool8 MoveYourBase_JoypadAction(void); +static bool8 SwitchToMoveYourBaseSubmenu(void); +static bool8 MovingPKMN(void); +static bool8 Give999OfAllBerries(void); +static bool8 GiveAllDecorations(void); +static bool8 FishingPoints(void); +static void NakaGenderTest_PrintSpeciesName(u8); +static void NakaGenderTest_PrintSpeciesGender(u8); +static void NakaGenderTest_PrintSpeciesLevel(u8); +static void NakaGenderTest_JoypadAction(u8); +static bool8 NakaGenderTest_HandleJoypad(void); +static u8 NakaGenderTest_ForceRerollPokemon(u8); +static bool8 SetPokeblock(void); + +// ======================================================= +// TOP MENU +// ======================================================= + +static const u8 Str_843E36C[] = _("Berries"); +static const u8 Str_843E374[] = _("Goods"); +static const u8 Str_843E37A[] = _("{PKMN} list"); +static const u8 Str_843E382[] = _("トラップ"); +static const u8 Str_843E387[] = _("Move your base"); +static const u8 Str_843E396[] = _("Moving {PKMN}"); +static const u8 Str_843E3A0[] = _("Fishing points"); +static const u8 Str_843E3AF[] = _("Set {POKEBLOCK}"); +static const u8 Str_843E3B9[] = _("Make bases(to max)"); +static const u8 Str_843E3CC[] = _("Base location"); + +static const struct MenuAction sNakamuraTopMenuActions[] = { + { Str_843E36C, Give999OfAllBerries }, + { Str_843E37A, SwitchToPkmnListMenu }, + { Str_843E374, GiveAllDecorations }, + { Str_843E387, SwitchToMoveYourBaseSubmenu }, + { Str_843E3B9, MakeBasesToMax }, + { Str_843E3CC, BaseLocation }, + { Str_843E396, MovingPKMN }, + { Str_843E3A0, FishingPoints }, + { Str_843E3AF, SetPokeblock }, }; -const u8 _843E424[][4] = { - { 1, 118, 47, 14 }, - { 2, 125, 53, 10 }, - { 3, 113, 49, 8 }, - { 0xB, 118, 67, 6 }, - { 0xC, 121, 40, 11 }, - { 0xD, 111, 35, 1 }, - { 0x15, 115, 20, 53 }, - { 0x16, 121, 18, 13 }, - { 0x17, 119, 26, 81 }, - { 0x1F, 127, 59, 67 }, - { 0x20, 125, 55, 11 }, - { 0x21, 111, 27, 27 }, - { 0x29, 114, 9, 47 }, - { 0x2A, 115, 32, 39 }, - { 0x2B, 115, 23, 8 }, - { 0x33, 114, 30, 51 }, - { 0x34, 115, 26, 15 }, - { 0x35, 115, 32, 46 }, - { 0x3D, 114, 11, 62 }, - { 0x3E, 115, 21, 18 }, - { 0x3F, 115, 25, 24 }, - { 0x47, 114, 19, 70 }, - { 0x48, 115, 32, 6 }, - { 0x49, 114, 32, 57 }, - { 0x51, 116, 71, 4 }, - { 0x52, 123, 47, 3 }, - { 0x53, 123, 57, 5 }, - { 0x5B, 116, 79, 11 }, - { 0x5C, 123, 49, 3 }, - { 0x5D, 120, 18, 12 }, - { 0x65, 120, 28, 62 }, - { 0x66, 116, 56, 6 }, - { 0x67, 119, 16, 81 }, - { 0x6F, 120, 30, 62 }, - { 0x70, 116, 55, 15 }, - { 0x71, 119, 16, 28 }, - { 0x79, 111, 33, 34 }, - { 0x7A, 118, 29, 5 }, - { 0x7B, 127, 45, 24 }, - { 0x83, 111, 24, 36 }, - { 0x84, 125, 7, 25 }, - { 0x85, 115, 8, 30 }, - { 0x8D, 111, 34, 50 }, - { 0x8E, 127, 59, 72 }, - { 0x8F, 127, 61, 21 }, - { 0x97, 127, 67, 63 }, - { 0x98, 125, 24, 32 }, - { 0x99, 111, 35, 31 }, - { 0xA1, 111, 13, 19 }, - { 0xA2, 121, 43, 7 }, - { 0xA3, 118, 47, 5 }, - { 0xA4, 111, 14, 19 }, - { 0xAB, 118, 46, 5 }, - { 0xAC, 121, 42, 7 }, - { 0xAD, 119, 19, 76 }, - { 0xAE, 115, 7, 20 }, - { 0xB5, 110, 16, 25 }, - { 0xB6, 114, 11, 27 }, - { 0xB7, 115, 8, 20 }, - { 0xBF, 110, 17, 25 }, - { 0xC0, 114, 12, 27 }, - { 0xC1, 119, 18, 76 }, - { 0xC9, 119, 5, 2 }, - { 0xCA, 119, 4, 89 }, - { 0xCB, 120, 38, 54 }, - { 0xCC, 120, 5, 76 }, - { 0xD3, 119, 5, 15 }, - { 0xD4, 119, 7, 101 }, - { 0xD5, 120, 31, 23 }, - { 0xDD, 119, 34, 24 }, - { 0xDE, 120, 26, 10 }, - { 0xDF, 119, 4, 15 }, - { 0xE7, 119, 31, 73 }, - { 0xE8, 120, 29, 85 }, - { 0xE9, 119, 6, 2 }, +static void DrawNakamuraDebugMenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(14, 0, 29, 19); + Menu_PrintItems(16, 1, ARRAY_COUNT(sNakamuraTopMenuActions), sNakamuraTopMenuActions); + InitMenu(0, 15, 1, ARRAY_COUNT(sNakamuraTopMenuActions), 0, 14); +} + +bool8 InitNakamuraDebugMenu(void) +{ + DrawNakamuraDebugMenu(); + gMenuCallback = TopMenu_HandleJoypad; + return FALSE; +} + +static bool8 TopMenu_HandleJoypad(void) +{ + if (gMain.newKeys & DPAD_UP) + { + Menu_MoveCursor(-1); + } + + if (gMain.newKeys & DPAD_DOWN) + { + Menu_MoveCursor(+1); + } + + if (gMain.newKeys & A_BUTTON) + { + MenuFunc func = sNakamuraTopMenuActions[Menu_GetCursorPos()].func; + Menu_DestroyCursor(); + return func(); + } + + if (gMain.newKeys & B_BUTTON) + { + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +// ======================================================= +// PKMN LIST +// ======================================================= + +static void Task_SwitchToPkmnListMenu(u8 taskId) +{ + if (!gPaletteFade.active) + { + Debug_CopyLastThreePartyMonsToMultiPartnerParty(); + OpenPartyMenu(PARTY_MENU_TYPE_LINK_MULTI_BATTLE, 0); + DestroyTask(taskId); + } +} + +static bool8 SwitchToPkmnListMenu(void) +{ + CloseMenu(); + Menu_EraseScreen(); + gMain.savedCallback = c2_exit_to_overworld_1_sub_8080DEC; + CreateTask(Task_SwitchToPkmnListMenu, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + return TRUE; +} + +// ======================================================= +// MAKE BASES TO MAX and BASE LOCATION +// ======================================================= + +EWRAM_DATA u8 sSecretBaseIdx = 0; + +static const u8 sSecretBaseTemplates[] = { + // ID, Route, X, Y + 0x01, 118, 47, 14 , + 0x02, 125, 53, 10 , + 0x03, 113, 49, 8 , + 0x0B, 118, 67, 6 , + 0x0C, 121, 40, 11 , + 0x0D, 111, 35, 1 , + 0x15, 115, 20, 53 , + 0x16, 121, 18, 13 , + 0x17, 119, 26, 81 , + 0x1F, 127, 59, 67 , + 0x20, 125, 55, 11 , + 0x21, 111, 27, 27 , + 0x29, 114, 9, 47 , + 0x2A, 115, 32, 39 , + 0x2B, 115, 23, 8 , + 0x33, 114, 30, 51 , + 0x34, 115, 26, 15 , + 0x35, 115, 32, 46 , + 0x3D, 114, 11, 62 , + 0x3E, 115, 21, 18 , + 0x3F, 115, 25, 24 , + 0x47, 114, 19, 70 , + 0x48, 115, 32, 6 , + 0x49, 114, 32, 57 , + 0x51, 116, 71, 4 , + 0x52, 123, 47, 3 , + 0x53, 123, 57, 5 , + 0x5B, 116, 79, 11 , + 0x5C, 123, 49, 3 , + 0x5D, 120, 18, 12 , + 0x65, 120, 28, 62 , + 0x66, 116, 56, 6 , + 0x67, 119, 16, 81 , + 0x6F, 120, 30, 62 , + 0x70, 116, 55, 15 , + 0x71, 119, 16, 28 , + 0x79, 111, 33, 34 , + 0x7A, 118, 29, 5 , + 0x7B, 127, 45, 24 , + 0x83, 111, 24, 36 , + 0x84, 125, 7, 25 , + 0x85, 115, 8, 30 , + 0x8D, 111, 34, 50 , + 0x8E, 127, 59, 72 , + 0x8F, 127, 61, 21 , + 0x97, 127, 67, 63 , + 0x98, 125, 24, 32 , + 0x99, 111, 35, 31 , + 0xA1, 111, 13, 19 , + 0xA2, 121, 43, 7 , + 0xA3, 118, 47, 5 , + 0xA4, 111, 14, 19 , + 0xAB, 118, 46, 5 , + 0xAC, 121, 42, 7 , + 0xAD, 119, 19, 76 , + 0xAE, 115, 7, 20 , + 0xB5, 110, 16, 25 , + 0xB6, 114, 11, 27 , + 0xB7, 115, 8, 20 , + 0xBF, 110, 17, 25 , + 0xC0, 114, 12, 27 , + 0xC1, 119, 18, 76 , + 0xC9, 119, 5, 2 , + 0xCA, 119, 4, 89 , + 0xCB, 120, 38, 54 , + 0xCC, 120, 5, 76 , + 0xD3, 119, 5, 15 , + 0xD4, 119, 7, 101 , + 0xD5, 120, 31, 23 , + 0xDD, 119, 34, 24 , + 0xDE, 120, 26, 10 , + 0xDF, 119, 4, 15 , + 0xE7, 119, 31, 73 , + 0xE8, 120, 29, 85 , + 0xE9, 119, 6, 2 , }; -const u8 Str_843E550[] = _("R"); -const u8 Str_843E552[] = _("X"); -const u8 Str_843E554[] = _("Y"); -const u8 Str_843E556[] = _( - "♂1\n" - "♂2\n" - "♂3\n" - "♂4\n" - "♂5\n" - "♀1\n" - "♀2\n" - "♀3\n" - "♀4\n" - "♀5"); -const u8 Str_843E574[] = _("ー"); -const u8 Str_843E576[] = _("あ"); -const u8 Str_843E578[] = _("ア"); -const u8 Str_843E57A[] = _("A"); -const u8 Str_843E57C[] = _("a"); -const u8 Str_843E57E[] = _("0"); -const u8 Str_843E580[] = _( - "ADD\n" - "DEL\n" - "EXIT"); -const u8 Str_843E58D[] = _( - "Fishing location R119\n" - " Y1\n" - " Y2\n" - " Y3\n" - "Encounter location\n" - "\n" - "\n" - "front of you"); -const u8 _843E5D1[] = {0x0F, 0x16, 0x19}; -const u8 Str_843E5D4[] = _( - "Aボタン {ESCAPE}\p" - " Bボタン ー\n" - "START けってい"); -const u8 Str_843E5F0[] = _("?"); -const u8 Str_843E5F2[] = _("HP どりょくち"); -const u8 Str_843E5FB[] = _("こうげき どりょくち"); -const u8 Str_843E606[] = _("ぼうぎょ どりょくち"); -const u8 Str_843E611[] = _("すばやさ どりょくち"); -const u8 Str_843E61C[] = _("とくこう どりょくち"); -const u8 Str_843E627[] = _("とくぼう どりょくち"); -const u8 Str_843E632[] = _("なつきど"); -const u8 Str_843E637[] = _("どりょくち ごうけい"); -const u8 Str_843E642[] = _("ここから"); -const u8 Str_843E647[] = _("ここまで"); -const u8 Str_843E64C[] = _("かいすう"); -const u8 Str_843E651[] = _("けっか"); -const u8 Str_843E655[] = _("かい"); -const u8 Str_843E658[] = _("0"); -const u8 Str_843E65A[] = _("はんい"); +static const u8 Str_843E550[] = _("R"); +static const u8 Str_843E552[] = _("X"); +static const u8 Str_843E554[] = _("Y"); +static const u8 Str_843E556[] = _( + "♂1\n" + "♂2\n" + "♂3\n" + "♂4\n" + "♂5\n" + "♀1\n" + "♀2\n" + "♀3\n" + "♀4\n" + "♀5"); + +static bool8 MakeBasesToMax(void) +{ + u8 i; + CloseMenu(); + + for (i = 1; i < 20; i++) + { + if (gSaveBlock1.secretBases[i].secretBaseId == 0) + { + u8 j; + + for (j = 0; j < 7; j++) + { + gSaveBlock1.secretBases[i].playerName[j] = gSaveBlock2.playerName[j]; + if (gSaveBlock1.secretBases[i].playerName[j] == EOS) + break; + } + + if (j == 7) + gSaveBlock1.secretBases[i].playerName[j - 1] = CHAR_A + i - 1; + else + gSaveBlock1.secretBases[i].playerName[j] = CHAR_A + i - 1; + + do + { + gSaveBlock1.secretBases[i].secretBaseId = sSecretBaseTemplates[(Random() % (ARRAY_COUNT(sSecretBaseTemplates) / 4)) * 4]; + + for (j = 0; j < i; j++) + { + if (gSaveBlock1.secretBases[i].secretBaseId == gSaveBlock1.secretBases[j].secretBaseId) + break; + } + } while (j != i); + + gSaveBlock1.secretBases[i].gender = Random() % 2; + + for (j = 0; j < 4; j++) + { + gSaveBlock1.secretBases[i].trainerId[j] = Random(); + } + + for (j = 0; j < 16; j++) + { + gSaveBlock1.secretBases[i].decorations[j] = 0; + gSaveBlock1.secretBases[i].decorationPos[j] = 0; + } + + unref_sub_80BCD7C(i); + } + } + + return TRUE; +} + +static void BaseLocation_GetCurSecretBaseData(u8 * R, u8 * X, u8 * Y) +{ + u8 i; + u8 sbId = gSaveBlock1.secretBases[sSecretBaseIdx].secretBaseId; + + for (i = 0; i < ARRAY_COUNT(sSecretBaseTemplates) / 4; i++) + { + if (sSecretBaseTemplates[i * 4] == sbId) + { + *R = sSecretBaseTemplates[i * 4 + 1]; + *X = sSecretBaseTemplates[i * 4 + 2]; + *Y = sSecretBaseTemplates[i * 4 + 3]; + break; + } + } +} + +static void BaseLocation_Redraw(void) +{ + Menu_BlankWindowRect(1, 1, 10, 10); + ConvertIntToDecimalStringN(gStringVar1, sSecretBaseIdx, STR_CONV_MODE_LEFT_ALIGN, 2); + Menu_PrintText(gStringVar1, 1, 1); + + if (gSaveBlock1.secretBases[sSecretBaseIdx].secretBaseId != 0) + { + u8 R; + u8 X; + u8 Y; + BaseLocation_GetCurSecretBaseData(&R, &X, &Y); + + sub_80BC190(gStringVar1, sSecretBaseIdx); + Menu_PrintText(gStringVar1, 1, 3); + + Menu_PrintText(Str_843E550, 1, 5); + ConvertIntToDecimalStringN(gStringVar1, R, STR_CONV_MODE_LEFT_ALIGN, 3); + Menu_PrintText(gStringVar1, 2, 5); + + Menu_PrintText(Str_843E552, 1, 7); + ConvertIntToDecimalStringN(gStringVar1, X, STR_CONV_MODE_LEFT_ALIGN, 3); + Menu_PrintText(gStringVar1, 3, 7); + + Menu_PrintText(Str_843E554, 1, 9); + ConvertIntToDecimalStringN(gStringVar1, Y, STR_CONV_MODE_LEFT_ALIGN, 3); + Menu_PrintText(gStringVar1, 3, 9); + } +} + +static bool8 BaseLocation_HandleJoypad(void) +{ + if (gMain.newKeys & DPAD_LEFT) + { + if (sSecretBaseIdx == 0) + sSecretBaseIdx = 19; + else + sSecretBaseIdx--; + BaseLocation_Redraw(); + return FALSE; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + if (sSecretBaseIdx == 19) + sSecretBaseIdx = 0; + else + sSecretBaseIdx++; + BaseLocation_Redraw(); + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static bool8 BaseLocation(void) +{ + sSecretBaseIdx = 0; + gMenuCallback = BaseLocation_HandleJoypad; + Menu_EraseWindowRect(0, 0, 29, 19); + Menu_DrawStdWindowFrame(0, 0, 11, 11); + BaseLocation_Redraw(); + return FALSE; +} + +// ======================================================= +// MOVE YOUR BASE +// ======================================================= + +EWRAM_DATA u8 sMoveYourBase_CursorPos = 0; +EWRAM_DATA u8 sMoveYourBase_XCursorPos = 0; +EWRAM_DATA u8 sSecretBaseNameCharGroup = 0; + +static const u8 Str_843E574[] = _("ー"); +static const u8 Str_843E576[][2] = { + _("あ"), + _("ア"), + _("A"), + _("a"), + _("0") +}; + +static void MoveYourBase_PrintSBOwnerID(void) +{ + u8 * otIdPtr = gSaveBlock1.secretBases[sSecretBaseIdx].trainerId; + u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0); + ConvertIntToDecimalStringN(gStringVar1, otId / 100000, STR_CONV_MODE_LEADING_ZEROS, 5); + Menu_PrintText(gStringVar1, 2, 7); + ConvertIntToDecimalStringN(gStringVar1, otId % 100000, STR_CONV_MODE_LEADING_ZEROS, 5); + Menu_PrintText(gStringVar1, 7, 7); +} + +static void MoveYourBase_PrintSBOwnerName(void) +{ + Menu_BlankWindowRect(2, 3, 11, 4); + *StringCopyN(gStringVar1, gSaveBlock1.secretBases[sSecretBaseIdx].playerName, 7) = EOS; + Menu_PrintText(gStringVar1, 2, 3); +} + +static void MoveYourBase_Redraw(void) +{ + Menu_BlankWindowRect(2, 1, 11, 10); + + ConvertIntToDecimalStringN(gStringVar1, sSecretBaseIdx, STR_CONV_MODE_LEFT_ALIGN, 2); + Menu_PrintText(gStringVar1, 2, 1); + + if (gSaveBlock1.secretBases[sSecretBaseIdx].secretBaseId != 0) + { + MoveYourBase_PrintSBOwnerName(); + MoveYourBase_PrintSBOwnerID(); + } +} + +static void MoveYourBase_UpdateXCursorPosition(void) +{ + Menu_BlankWindowRect(2, 5, 11, 6); + Menu_PrintText(Str_843E574, sMoveYourBase_XCursorPos + 2, 5); +} + +static void MoveYourBase_PrintCharacterSetName(void) +{ + if (sMoveYourBase_CursorPos) + Menu_BlankWindowRect(11, 1, 11, 2); + else + Menu_PrintText(Str_843E576[sSecretBaseNameCharGroup], 11, 1); +} + +static void MoveYourBase_EditOwnerID(s8 direction) +{ + u8 * otIdPtr = gSaveBlock1.secretBases[sSecretBaseIdx].trainerId; + u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0); + s8 digit; + int r1 = direction; + + for (digit = 9; digit > sMoveYourBase_XCursorPos; digit--) + r1 *= 10; + + otId += r1; + otIdPtr[3] = (otId & 0xFF000000) >> 24; + otIdPtr[2] = (otId & 0x00FF0000) >> 16; + otIdPtr[1] = (otId & 0x0000FF00) >> 8; + otIdPtr[0] = (otId & 0x000000FF) >> 0; + MoveYourBase_PrintSBOwnerID(); +} + +static void MoveYourBase_EditOwnerNameChar(s8 a0) +{ + u8 * namePtr = gSaveBlock1.secretBases[sSecretBaseIdx].playerName; + u8 r2 = 0; + u8 r3 = 0; + u8 i; + + if (a0 == 100) + { + for (i = sMoveYourBase_XCursorPos; i < 7; i++) + { + namePtr[i] = EOS; + } + } + else + { + switch (sSecretBaseNameCharGroup) + { + case 0: // HIRA + r3 = 1; + r2 = 80; + break; + case 1: // KATA + r3 = 81; + r2 = 160; + break; + case 2: // A-Z + r3 = CHAR_A; + r2 = CHAR_Z; + break; + case 3: // a-z + r3 = CHAR_a; + r2 = CHAR_z; + break; + case 4: // 0-9 + r3 = CHAR_0; + r2 = CHAR_0 + 9; + break; + } + + namePtr[sMoveYourBase_XCursorPos] += a0; + if (namePtr[sMoveYourBase_XCursorPos] < r3) + namePtr[sMoveYourBase_XCursorPos] = r2; + if (namePtr[sMoveYourBase_XCursorPos] > r2) + namePtr[sMoveYourBase_XCursorPos] = r3; + } + MoveYourBase_PrintSBOwnerName(); +} + +static bool8 MoveYourBase_HandleJoypad_2(void) +{ + u32 r4 = sMoveYourBase_CursorPos == 0 ? 7 : 10; + + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (sMoveYourBase_CursorPos) + MoveYourBase_EditOwnerID(1); + else + MoveYourBase_EditOwnerNameChar(1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (sMoveYourBase_CursorPos) + MoveYourBase_EditOwnerID(-1); + else + MoveYourBase_EditOwnerNameChar(-1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sMoveYourBase_XCursorPos == 0) + sMoveYourBase_XCursorPos = r4 - 1; + else + sMoveYourBase_XCursorPos--; + MoveYourBase_UpdateXCursorPosition(); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sMoveYourBase_XCursorPos == r4 - 1) + sMoveYourBase_XCursorPos = 0; + else + sMoveYourBase_XCursorPos++; + MoveYourBase_UpdateXCursorPosition(); + return FALSE; + } + + if (gMain.newKeys & SELECT_BUTTON) + { + if (sMoveYourBase_CursorPos == 0) + sSecretBaseNameCharGroup = (sSecretBaseNameCharGroup + 1) % 5; + MoveYourBase_PrintCharacterSetName(); + return FALSE; + } + + if (gMain.newKeys & A_BUTTON) + { + Menu_BlankWindowRect(2, 5, 11, 6); + Menu_BlankWindowRect(11, 1, 11, 2); + gMenuCallback = MoveYourBase_JoypadAction; + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + if (sMoveYourBase_CursorPos == 0) + MoveYourBase_EditOwnerNameChar(100); + return FALSE; + } + + return FALSE; +} + +static bool8 MoveYourBase_JoypadAction(void) +{ + if (gMain.newKeys & DPAD_UP) + { + Menu_MoveCursor(-2); + return FALSE; + } + + if (gMain.newKeys & DPAD_DOWN) + { + Menu_MoveCursor(+2); + return FALSE; + } + + if (gMain.newKeys & DPAD_LEFT) + { + if (sSecretBaseIdx == 0) + sSecretBaseIdx = 19; + else + sSecretBaseIdx--; + MoveYourBase_Redraw(); + return FALSE; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + if (sSecretBaseIdx == 19) + sSecretBaseIdx = 0; + else + sSecretBaseIdx++; + MoveYourBase_Redraw(); + return FALSE; + } + + if (gMain.newKeys & A_BUTTON) + { + if (sSecretBaseIdx != 0 && gSaveBlock1.secretBases[sSecretBaseIdx].secretBaseId != 0) + { + sMoveYourBase_CursorPos = Menu_GetCursorPos(); + sMoveYourBase_XCursorPos = 0; + MoveYourBase_UpdateXCursorPosition(); + MoveYourBase_PrintCharacterSetName(); + gMenuCallback = MoveYourBase_HandleJoypad_2; + } + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static bool8 SwitchToMoveYourBaseSubmenu(void) +{ + sSecretBaseIdx = 0; + sSecretBaseNameCharGroup = 0; + gMenuCallback = MoveYourBase_JoypadAction; + Menu_EraseWindowRect(0, 0, 29, 19); + Menu_DrawStdWindowFrame(0, 0, 12, 11); + MoveYourBase_Redraw(); + InitMenu(0, 1, 3, 3, 0, 11); + return FALSE; +} + +// ======================================================= +// MOVING PKMN (aka Roamers) +// ======================================================= + +static const u8 Str_843E580[] = _( + "ADD\n" + "DEL\n" + "EXIT"); + +static bool8 MovingPKMN_HandleJoypad(void) +{ + if (gMain.newKeys & DPAD_UP) + { + Menu_MoveCursor(-1); + return FALSE; + } + + if (gMain.newKeys & DPAD_DOWN) + { + Menu_MoveCursor(+1); + return FALSE; + } + + if (gMain.newKeys & A_BUTTON) + { + CloseMenu(); + switch (Menu_GetCursorPos()) + { + case 0: + Debug_CreateRoamer(); + break; + case 1: + ClearRoamerData(); + ClearRoamerLocationData(); + break; + } + return TRUE; + } + + if (gMain.newKeys & B_BUTTON) + { + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static bool8 MovingPKMN(void) +{ + gMenuCallback = MovingPKMN_HandleJoypad; + Menu_EraseWindowRect(0, 0, 29, 19); + Debug_GetRoamerLocation(gStringVar1); + Menu_DrawStdWindowFrame(0, 0, 11, 9); + Menu_PrintText(gStringVar1, 1, 1); + Menu_PrintText(Str_843E580, 2, 3); + InitMenu(0, 1, 3, 3, 0, 10); + return FALSE; +} + +// ======================================================= +// GIVE ALL BERRIES +// ======================================================= + +static bool8 Give999OfAllBerries(void) +{ + u16 i; + + for (i = 0; i < 43; i++) + { + gSaveBlock1.bagPocket_Berries[i].itemId = ITEM_CHERI_BERRY + i; + gSaveBlock1.bagPocket_Berries[i].quantity = 999; + } + + CloseMenu(); + return TRUE; +} + +// ======================================================= +// GIVE ALL DECORATIONS +// ======================================================= + +static bool8 GiveAllDecorations(void) +{ + ClearDecorationInventories(); + Debug_GiveAllDecorations(); + Menu_EraseWindowRect(0, 0, 29, 19); + CloseMenu(); + return TRUE; +} + +// ======================================================= +// FISHING POINTS (Feebas) +// ======================================================= + +static const u8 Str_843E58D[] = _( + "Fishing location R119\n" + " Y1\n" + " Y2\n" + " Y3\n" + "Encounter location\n" + "\n" + "\n" + "front of you"); + +static u16 FishingPoints_CountFishingTilesInMapThird(u8 a0) +{ + u16 retval = 0; + u16 height = gMapHeader.mapData->height / 3; + u16 y; + u16 x; + u16 start = height * a0; + + for (y = start; y < start + height; y++) + { + for (x = 0; x < gMapHeader.mapData->width; x++) + { + if (sub_805759C(MapGridGetMetatileBehaviorAt(x + 7, y + 7)) == TRUE) + { + retval++; + } + } + } + + return retval; +} + +static u16 FishingPoints_GetIndexOfCurrentFishingSpot(void) +{ + u16 retval = 0; + s16 x; + s16 y; + u16 xx; + u16 yy; + + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + x -= 7; + y -= 7; + + for (yy = 0; yy < gMapHeader.mapData->height; yy++) + { + for (xx = 0; xx < gMapHeader.mapData->width; xx++) + { + if (sub_805759C(MapGridGetMetatileBehaviorAt(xx + 7, yy + 7)) == TRUE) + { + retval++; + if (x == xx && y == yy) + return retval; + } + } + } + return retval + 1; +} + +static bool8 FishingPoints_HandleJoypad(void) +{ + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + Menu_EraseWindowRect(0, 0, 29, 19); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static bool8 FishingPoints(void) +{ + u16 nWaterTiles; + u16 nFeebas; + + Menu_EraseWindowRect(0, 0, 29, 19); + Menu_DrawStdWindowFrame(0, 0, 16, 19); + Menu_PrintText(Str_843E58D, 1, 1); + + ConvertIntToDecimalStringN(gStringVar1, FishingPoints_CountFishingTilesInMapThird(0), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 5, 3); + + ConvertIntToDecimalStringN(gStringVar1, FishingPoints_CountFishingTilesInMapThird(1), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 5, 5); + + ConvertIntToDecimalStringN(gStringVar1, FishingPoints_CountFishingTilesInMapThird(2), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 5, 7); + + ConvertIntToDecimalStringN(gStringVar1, FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(0), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 11, 3); + + ConvertIntToDecimalStringN(gStringVar1, FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(1), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 11, 5); + + ConvertIntToDecimalStringN(gStringVar1, FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(2), STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 11, 7); + + FeebasSeedRng(gSaveBlock1.easyChatPairs[0].unk2); + nWaterTiles = FishingPoints_CountFishingTilesInMapThird(0) + FishingPoints_CountFishingTilesInMapThird(1) + FishingPoints_CountFishingTilesInMapThird(2); + nFeebas = 0; + + while (nFeebas != 6) + { + u16 randTile = FeebasRandom() % nWaterTiles; + if (randTile == 0) + randTile = nWaterTiles; + if (randTile == 0 || randTile > 3) + { + ConvertIntToDecimalStringN(gStringVar1, randTile, STR_CONV_MODE_RIGHT_ALIGN, 4); + Menu_PrintText(gStringVar1, (nFeebas % 3) * 5 + 2, (nFeebas / 3) * 2 + 11); + nFeebas++; + } + } + + ConvertIntToDecimalStringN(gStringVar1, FishingPoints_GetIndexOfCurrentFishingSpot(), STR_CONV_MODE_RIGHT_ALIGN, 4); + Menu_PrintText(gStringVar1, 2, 17); + + gMenuCallback = FishingPoints_HandleJoypad; + + return FALSE; +} + +// ======================================================= +// GENDER TEST? +// ======================================================= + +static struct { + s16 species; + s8 level; + u8 unk3; +} sNakaGenderTestData[PARTY_SIZE]; + +EWRAM_DATA u8 sNakaGenderTest_CursorPosition = 0; +static const u8 _843E5D1[] = {0x0F, 0x16, 0x19}; +static const u8 Str_843E5D4[] = _( + "Aボタン {ESCAPE}\p" + " Bボタン ー\n" + "START けってい"); + +void NakaGenderTest(void) +{ + u8 i; + + Menu_DrawStdWindowFrame(14, 0, 29, 13); + Menu_DrawStdWindowFrame(0, 14, 29, 19); + Menu_PrintText(Str_843E5D4, 1, 15); + + for (i = 0; i < PARTY_SIZE; i++) + { + sNakaGenderTestData[i].species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + if (sNakaGenderTestData[i].species != SPECIES_NONE) + { + sNakaGenderTestData[i].level = GetMonData(gPlayerParty + i, MON_DATA_LEVEL); + NakaGenderTest_PrintSpeciesName(i); + NakaGenderTest_PrintSpeciesGender(i); + NakaGenderTest_PrintSpeciesLevel(i); + } + else + sNakaGenderTestData[i].level = 1; + sNakaGenderTestData[i].unk3 = 0; + } + + sNakaGenderTest_CursorPosition = 0; + PrintTriangleCursorWithPalette(15, 1, 0xFF); + gMenuCallback = NakaGenderTest_HandleJoypad; +} + +static void NakaGenderTest_PrintSpeciesName(u8 i) +{ + Menu_PrintText(gSpeciesNames[sNakaGenderTestData[i].species], 16, 2 * i + 1); +} + +static void NakaGenderTest_PrintSpeciesGender(u8 i) +{ + u8 sp0[] = _("?"); + u8 gender; + + gender = GetMonGender(gPlayerParty + i); + if (gender == MON_MALE) + Menu_PrintText(gOtherText_MaleSymbol2, 23, 2 * i + 1); + else if (gender == MON_FEMALE) + Menu_PrintText(gOtherText_FemaleSymbolAndLv, 23, 2 * i + 1); + else + Menu_PrintText(sp0, 23, 2 * i + 1); +} + +static void NakaGenderTest_PrintSpeciesLevel(u8 i) +{ + ConvertIntToDecimalStringN(gStringVar1, sNakaGenderTestData[i].level, STR_CONV_MODE_RIGHT_ALIGN, 3); + Menu_PrintText(gStringVar1, 26, 2 * i + 1); +} + +static void NakaGenderTest_RedrawCurrent(u8 i) +{ + Menu_BlankWindowRect(16, 2 * i + 1, 28, 2 * i + 2); + if (sNakaGenderTestData[i].species != SPECIES_NONE) + { + NakaGenderTest_PrintSpeciesName(i); + NakaGenderTest_PrintSpeciesGender(i); + NakaGenderTest_PrintSpeciesLevel(i); + } + NakaGenderTest_JoypadAction(5); +} + +static void NakaGenderTest_AdjustSpecies(u8 i, s8 dirn) +{ + if (sNakaGenderTestData[i].species == SPECIES_NONE && sNakaGenderTestData[i].unk3 == 0 && dirn == 1) + sNakaGenderTestData[i].species = SPECIES_TREECKO - 1; + sNakaGenderTestData[i].species += dirn; + if (sNakaGenderTestData[i].species >= SPECIES_CHIMECHO) + sNakaGenderTestData[i].species -= SPECIES_CHIMECHO; + if (sNakaGenderTestData[i].species < 0) + sNakaGenderTestData[i].species += SPECIES_CHIMECHO; + CreateMon(gPlayerParty + i, sNakaGenderTestData[i].species, sNakaGenderTestData[i].level, 0x20, FALSE, 0, FALSE, 0); + sNakaGenderTestData[i].unk3 = 1; +} + +static void NakaGenderTest_RerollPokemon(u8 i) +{ + if (sNakaGenderTestData[i].species != SPECIES_NONE) + NakaGenderTest_ForceRerollPokemon(i); +} + +static void NakaGenderTest_AdjustLevel(u8 i, s8 dirn) +{ + if (sNakaGenderTestData[i].species != SPECIES_NONE) + { + sNakaGenderTestData[i].level += dirn; + if (sNakaGenderTestData[i].level > 100) + sNakaGenderTestData[i].level = 1; + if (sNakaGenderTestData[i].level < 1) + sNakaGenderTestData[i].level = 100; + SetMonData(gPlayerParty + i, MON_DATA_EXP, gExperienceTables[gBaseStats[sNakaGenderTestData[i].species].growthRate] + sNakaGenderTestData[i].level); + Nakamura_NakaGenderTest_RecalcStats(gPlayerParty + i); + } +} + +static void NakaGenderTest_PartyCompactionEnsureAtLeastOne(void) +{ + u8 i; + u8 j; + + Menu_EraseWindowRect(0, 0, 29, 19); + for (i = 0; i < 5; i++) + { + for (j = i + 1; j < 6; j++) + { + if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES, NULL) == SPECIES_NONE) + { + struct Pokemon tmp = gPlayerParty[i]; + gPlayerParty[i] = gPlayerParty[j]; + gPlayerParty[j] = tmp; + } + } + } + CalculatePlayerPartyCount(); + if (gPlayerPartyCount == 0) + { + CreateMon(gPlayerParty + 0, SPECIES_BULBASAUR, 10, 0x20, FALSE, 0, FALSE, 0); + gPlayerPartyCount = 1; + } +} + +static void NakaGenderTest_JoypadAction(u8 i) +{ + u8 q; + u8 r; + PlaySE(SE_SELECT); + q = sNakaGenderTest_CursorPosition / 6; + r = sNakaGenderTest_CursorPosition % 6; + Menu_BlankWindowRect(_843E5D1[q], r * 2 + 1, _843E5D1[q], r * 2 + 2); + + if (i == 0) + { + if (r != 0) + sNakaGenderTest_CursorPosition--; + else + sNakaGenderTest_CursorPosition = q * 6 + 5; + } + + if (i == 1) + { + if (r != 5) + sNakaGenderTest_CursorPosition++; + else + sNakaGenderTest_CursorPosition = q * 6; + } + + if (i == 2) + { + if (q != 0) + sNakaGenderTest_CursorPosition -= 6; + else + sNakaGenderTest_CursorPosition = 12 + r; + } + + if (i == 3) + { + if (q != 2) + sNakaGenderTest_CursorPosition += 6; + else + sNakaGenderTest_CursorPosition = r; + } + + q = sNakaGenderTest_CursorPosition / 6; + r = sNakaGenderTest_CursorPosition % 6; + PrintTriangleCursorWithPalette(_843E5D1[q], r * 2 + 1, 0xFF); +} + +static bool8 NakaGenderTest_HandleJoypad(void) +{ + if (gMain.newKeys & DPAD_UP) + { + NakaGenderTest_JoypadAction(0); + return FALSE; + } + + if (gMain.newKeys & DPAD_DOWN) + { + NakaGenderTest_JoypadAction(1); + return FALSE; + } + + if (gMain.newKeys & DPAD_LEFT) + { + NakaGenderTest_JoypadAction(2); + return FALSE; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + NakaGenderTest_JoypadAction(3); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & A_BUTTON) + { + if (sNakaGenderTest_CursorPosition < 6) + NakaGenderTest_AdjustSpecies(sNakaGenderTest_CursorPosition, +1); + if (sNakaGenderTest_CursorPosition >= 6 && sNakaGenderTest_CursorPosition < 12) + NakaGenderTest_RerollPokemon(sNakaGenderTest_CursorPosition % 6); + if (sNakaGenderTest_CursorPosition >= 12 && sNakaGenderTest_CursorPosition < 18) + NakaGenderTest_AdjustLevel(sNakaGenderTest_CursorPosition % 6, +1); + NakaGenderTest_RedrawCurrent(sNakaGenderTest_CursorPosition % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & B_BUTTON) + { + if (sNakaGenderTest_CursorPosition < 6) + NakaGenderTest_AdjustSpecies(sNakaGenderTest_CursorPosition, -1); + if (sNakaGenderTest_CursorPosition >= 6 && sNakaGenderTest_CursorPosition < 12) + NakaGenderTest_RerollPokemon(sNakaGenderTest_CursorPosition % 6); + if (sNakaGenderTest_CursorPosition >= 12 && sNakaGenderTest_CursorPosition < 18) + NakaGenderTest_AdjustLevel(sNakaGenderTest_CursorPosition % 6, -1); + NakaGenderTest_RedrawCurrent(sNakaGenderTest_CursorPosition % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sNakaGenderTest_CursorPosition < 6) + NakaGenderTest_AdjustSpecies(sNakaGenderTest_CursorPosition, +10); + if (sNakaGenderTest_CursorPosition >= 6 && sNakaGenderTest_CursorPosition < 12) + NakaGenderTest_RerollPokemon(sNakaGenderTest_CursorPosition % 6); + if (sNakaGenderTest_CursorPosition >= 12 && sNakaGenderTest_CursorPosition < 18) + NakaGenderTest_AdjustLevel(sNakaGenderTest_CursorPosition % 6, +1); + NakaGenderTest_RedrawCurrent(sNakaGenderTest_CursorPosition % 6); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sNakaGenderTest_CursorPosition < 6) + NakaGenderTest_AdjustSpecies(sNakaGenderTest_CursorPosition, -10); + if (sNakaGenderTest_CursorPosition >= 6 && sNakaGenderTest_CursorPosition < 12) + NakaGenderTest_RerollPokemon(sNakaGenderTest_CursorPosition % 6); + if (sNakaGenderTest_CursorPosition >= 12 && sNakaGenderTest_CursorPosition < 18) + NakaGenderTest_AdjustLevel(sNakaGenderTest_CursorPosition % 6, -1); + NakaGenderTest_RedrawCurrent(sNakaGenderTest_CursorPosition % 6); + return FALSE; + } + + if (gMain.newKeys & START_BUTTON) + { + NakaGenderTest_PartyCompactionEnsureAtLeastOne(); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static u8 NakaGenderTest_ForceRerollPokemon(u8 i) +{ + u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + u8 gender = GetMonGender(gPlayerParty + i); + u8 ratio = gBaseStats[species].genderRatio; + u32 personality; + + if (ratio == MON_MALE || ratio == MON_FEMALE || ratio == MON_GENDERLESS) + return GetMonGender(gPlayerParty + i); + + switch (gender) + { + default: + return MON_MALE; + case MON_MALE: + ratio = MON_FEMALE; + break; + case MON_FEMALE: + ratio = MON_MALE; + break; + } + + do + { + personality = Random(); + personality |= (Random() << 16); + } while (GetGenderFromSpeciesAndPersonality(species, personality) != ratio); + + GetMonData(gPlayerParty + i, MON_DATA_IVS); + CreateMon(gPlayerParty + i, sNakaGenderTestData[i].species, sNakaGenderTestData[i].level, 0x20, TRUE, personality, FALSE, 0); + return ratio; +} + +// ======================================================= +// SET POKEBLOCK +// ======================================================= + +static struct Pokeblock sPokeblock; + +#ifdef NONMATCHING +static u8 SetPokeblock_CalcColor(u8 * dest, struct Pokeblock * pokeblock) +{ + u8 numGoodFlavors = 0; + u8 numBadFlavors = 0; + u8 numNeutralFlavors = 0; + u8 i; + u8 numLowFlavors; + s16 pkblk[6]; + + for (i = 0; i < 6; i++) + { + pkblk[i] = GetPokeblockData(pokeblock, i + PBLOCK_SPICY); + if (i != PBLOCK_FEEL - 1) + { + if (pkblk[i] > 0) + numGoodFlavors++; + if (pkblk[i] < 0) + numBadFlavors++; + if (pkblk[i] == 0) + numNeutralFlavors++; + } + } + + if (pkblk[0] >= 50) + { + StringCopy(dest, ContestStatsText_GoldPokeBlock); + return PBLOCK_CLR_GOLD; + } + + if (pkblk[1] >= 50) + { + StringCopy(dest, ContestStatsText_GoldPokeBlock); + return PBLOCK_CLR_GOLD; + } + + if (pkblk[2] >= 50) + { + StringCopy(dest, ContestStatsText_GoldPokeBlock); + return PBLOCK_CLR_GOLD; + } + + if (pkblk[3] >= 50) + { + StringCopy(dest, ContestStatsText_GoldPokeBlock); + return PBLOCK_CLR_GOLD; + } + + if (pkblk[4] >= 50) + { + StringCopy(dest, ContestStatsText_GoldPokeBlock); + return PBLOCK_CLR_GOLD; + } + + if (numGoodFlavors == 4) + { + StringCopy(dest, ContestStatsText_WhitePokeBlock); + return PBLOCK_CLR_WHITE; + } + + numLowFlavors = 0; + for (i = 0; i < 5; i++) + { + if (pkblk[i] == 2) + numLowFlavors++; + } + if (numLowFlavors == 3 || numNeutralFlavors == 5 || numBadFlavors == 4) + { + StringCopy(dest, ContestStatsText_BlackPokeBlock); + return PBLOCK_CLR_BLACK; + } + + if (numGoodFlavors == 3) + { + StringCopy(dest, ContestStatsText_GrayPokeBlock); + return PBLOCK_CLR_GRAY; + } + + if (numGoodFlavors == 2 || numBadFlavors == 2) + { + u8 firstNonzeroFlavor = 6; + u8 lastNonzeroFlavor = 0; + for (i = 0; i < 5; i++) + { + if (pkblk[i] != 0) + { + if (firstNonzeroFlavor == 6) + firstNonzeroFlavor = i; + else + lastNonzeroFlavor = i; + } + } + if (pkblk[firstNonzeroFlavor] >= pkblk[lastNonzeroFlavor]) + lastNonzeroFlavor = firstNonzeroFlavor; + + if (lastNonzeroFlavor == 0) + { + StringCopy(dest, ContestStatsText_PurplePokeBlock); + return PBLOCK_CLR_PURPLE; + } + + if (lastNonzeroFlavor == 1) + { + StringCopy(dest, ContestStatsText_IndigoPokeBlock); + return PBLOCK_CLR_INDIGO; + } + + if (lastNonzeroFlavor == 2) + { + StringCopy(dest, ContestStatsText_BrownPokeBlock); + return PBLOCK_CLR_BROWN; + } + + if (lastNonzeroFlavor == 3) + { + StringCopy(dest, ContestStatsText_LiteBluePokeBlock); + return PBLOCK_CLR_LITEBLUE; + } + + if (lastNonzeroFlavor == 4) + { + StringCopy(dest, ContestStatsText_OlivePokeBlock); + return PBLOCK_CLR_OLIVE; + } + } + + if (numGoodFlavors == 1 || numBadFlavors == 1) + { + if (pkblk[0] != 0) + { + StringCopy(dest, ContestStatsText_RedPokeBlock); + return PBLOCK_CLR_RED; + } + + if (pkblk[1] != 0) + { + StringCopy(dest, ContestStatsText_BluePokeBlock); + return PBLOCK_CLR_BLUE; + } + + if (pkblk[2] != 0) + { + StringCopy(dest, ContestStatsText_PinkPokeBlock); + return PBLOCK_CLR_PINK; + } + + if (pkblk[3] != 0) + { + StringCopy(dest, ContestStatsText_GreenPokeBlock); + return PBLOCK_CLR_GREEN; + } + + if (pkblk[4] != 0) + { + StringCopy(dest, ContestStatsText_YellowPokeBlock); + return PBLOCK_CLR_YELLOW; + } + } + + StringCopy(dest, gOtherText_FiveQuestions); + return 0; // PBLOCK_CLR_UNKNOWN +} +#else +__attribute__((naked)) +static u8 SetPokeblock_CalcColor(u8 * dest, struct Pokeblock * pokeblock) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, r9\n" + "\tmov\tr6, r8\n" + "\tpush\t{r6, r7}\n" + "\tadd\tsp, sp, #0xfffffff0\n" + "\tadd\tr6, r0, #0\n" + "\tmov\tr9, r1\n" + "\tmov\tr7, #0x0\n" + "\tmov\tr0, #0x0\n" + "\tmov\tr8, r0\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr5, #0x0\n" + "._329:\n" + "\tadd\tr4, r5, #1\n" + "\tlsl\tr1, r4, #0x18\n" + "\tlsr\tr1, r1, #0x18\n" + "\tmov\tr0, r9\n" + "\tstr\tr2, [sp, #0xc]\n" + "\tbl\tGetPokeblockData\n" + "\tadd\tr1, r0, #0\n" + "\tlsl\tr0, r5, #0x1\n" + "\tadd r0, r0, sp\n" + "\tstrh\tr1, [r0]\n" + "\tldr\tr2, [sp, #0xc]\n" + "\tcmp\tr5, #0x5\n" + "\tbeq\t._328\t@cond_branch\n" + "\tlsl\tr0, r1, #0x10\n" + "\tasr\tr1, r0, #0x10\n" + "\tcmp\tr1, #0\n" + "\tble\t._326\t@cond_branch\n" + "\tadd\tr0, r7, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr7, r0, #0x18\n" + "._326:\n" + "\tcmp\tr1, #0\n" + "\tbge\t._327\t@cond_branch\n" + "\tmov\tr0, r8\n" + "\tadd\tr0, r0, #0x1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr8, r0\n" + "._327:\n" + "\tcmp\tr1, #0\n" + "\tbne\t._328\t@cond_branch\n" + "\tadd\tr0, r2, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr2, r0, #0x18\n" + "._328:\n" + "\tlsl\tr0, r4, #0x18\n" + "\tlsr\tr5, r0, #0x18\n" + "\tcmp\tr5, #0x5\n" + "\tbls\t._329\t@cond_branch\n" + "\tmov\tr0, sp\n" + "\tmov\tr1, #0x0\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0x31\n" + "\tbgt\t._333\t@cond_branch\n" + "\tmov\tr0, sp\n" + "\tldrh\tr0, [r0, #0x2]\n" + "\tlsl\tr0, r0, #0x10\n" + "\tasr\tr0, r0, #0x10\n" + "\tcmp\tr0, #0x31\n" + "\tbgt\t._333\t@cond_branch\n" + "\tmov\tr0, sp\n" + "\tmov\tr4, #0x4\n" + "\tldsh\tr0, [r0, r4]\n" + "\tcmp\tr0, #0x31\n" + "\tbgt\t._333\t@cond_branch\n" + "\tmov\tr0, sp\n" + "\tmov\tr1, #0x6\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0x31\n" + "\tbgt\t._333\t@cond_branch\n" + "\tmov\tr0, sp\n" + "\tmov\tr4, #0x8\n" + "\tldsh\tr0, [r0, r4]\n" + "\tcmp\tr0, #0x31\n" + "\tble\t._334\t@cond_branch\n" + "._333:\n" + "\tldr\tr1, ._336 @ ContestStatsText_GoldPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0xe\n" + "\tb\t._400\n" + "._337:\n" + "\t.align\t2, 0\n" + "._336:\n" + "\t.word\tContestStatsText_GoldPokeBlock\n" + "._334:\n" + "\tcmp\tr7, #0x4\n" + "\tbne\t._338\t@cond_branch\n" + "\tldr\tr1, ._340 @ ContestStatsText_WhitePokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0xd\n" + "\tb\t._400\n" + "._341:\n" + "\t.align\t2, 0\n" + "._340:\n" + "\t.word\tContestStatsText_WhitePokeBlock\n" + "._338:\n" + "\tmov\tr3, #0x0\n" + "\tmov\tr5, #0x0\n" + "._343:\n" + "\tlsl\tr0, r5, #0x1\n" + "\tadd r0, r0, sp\n" + "\tmov\tr1, #0x0\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0x2\n" + "\tbne\t._342\t@cond_branch\n" + "\tadd\tr0, r3, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr3, r0, #0x18\n" + "._342:\n" + "\tadd\tr0, r5, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr5, r0, #0x18\n" + "\tcmp\tr5, #0x4\n" + "\tbls\t._343\t@cond_branch\n" + "\tcmp\tr3, #0x3\n" + "\tbeq\t._345\t@cond_branch\n" + "\tcmp\tr2, #0x5\n" + "\tbeq\t._345\t@cond_branch\n" + "\tmov\tr4, r8\n" + "\tcmp\tr4, #0x4\n" + "\tbne\t._346\t@cond_branch\n" + "._345:\n" + "\tldr\tr1, ._348 @ ContestStatsText_BlackPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0xc\n" + "\tb\t._400\n" + "._349:\n" + "\t.align\t2, 0\n" + "._348:\n" + "\t.word\tContestStatsText_BlackPokeBlock\n" + "._346:\n" + "\tcmp\tr7, #0x3\n" + "\tbne\t._350\t@cond_branch\n" + "\tldr\tr1, ._352 @ ContestStatsText_GrayPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0xb\n" + "\tb\t._400\n" + "._353:\n" + "\t.align\t2, 0\n" + "._352:\n" + "\t.word\tContestStatsText_GrayPokeBlock\n" + "._350:\n" + "\tcmp\tr7, #0x2\n" + "\tbeq\t._354\t@cond_branch\n" + "\tmov\tr0, r8\n" + "\tcmp\tr0, #0x2\n" + "\tbne\t._377\t@cond_branch\n" + "._354:\n" + "\tmov\tr3, #0x6\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr5, #0x0\n" + "._359:\n" + "\tlsl\tr0, r5, #0x1\n" + "\tadd r0, r0, sp\n" + "\tmov\tr1, #0x0\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._358\t@cond_branch\n" + "\tcmp\tr3, #0x6\n" + "\tbne\t._357\t@cond_branch\n" + "\tadd\tr3, r5, #0\n" + "\tb\t._358\n" + "._357:\n" + "\tadd\tr2, r5, #0\n" + "._358:\n" + "\tadd\tr0, r5, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr5, r0, #0x18\n" + "\tcmp\tr5, #0x4\n" + "\tbls\t._359\t@cond_branch\n" + "\tlsl\tr0, r3, #0x1\n" + "\tmov\tr4, sp\n" + "\tadd\tr1, r4, r0\n" + "\tlsl\tr0, r2, #0x1\n" + "\tadd r0, r0, sp\n" + "\tmov\tr4, #0x0\n" + "\tldsh\tr1, [r1, r4]\n" + "\tmov\tr4, #0x0\n" + "\tldsh\tr0, [r0, r4]\n" + "\tcmp\tr1, r0\n" + "\tblt\t._360\t@cond_branch\n" + "\tadd\tr2, r3, #0\n" + "._360:\n" + "\tcmp\tr2, #0\n" + "\tbne\t._361\t@cond_branch\n" + "\tldr\tr1, ._363 @ ContestStatsText_PurplePokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x6\n" + "\tb\t._400\n" + "._364:\n" + "\t.align\t2, 0\n" + "._363:\n" + "\t.word\tContestStatsText_PurplePokeBlock\n" + "._361:\n" + "\tcmp\tr2, #0x1\n" + "\tbne\t._365\t@cond_branch\n" + "\tldr\tr1, ._367 @ ContestStatsText_IndigoPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x7\n" + "\tb\t._400\n" + "._368:\n" + "\t.align\t2, 0\n" + "._367:\n" + "\t.word\tContestStatsText_IndigoPokeBlock\n" + "._365:\n" + "\tcmp\tr2, #0x2\n" + "\tbne\t._369\t@cond_branch\n" + "\tldr\tr1, ._371 @ ContestStatsText_BrownPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x8\n" + "\tb\t._400\n" + "._372:\n" + "\t.align\t2, 0\n" + "._371:\n" + "\t.word\tContestStatsText_BrownPokeBlock\n" + "._369:\n" + "\tcmp\tr2, #0x3\n" + "\tbne\t._373\t@cond_branch\n" + "\tldr\tr1, ._375 @ ContestStatsText_LiteBluePokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x9\n" + "\tb\t._400\n" + "._376:\n" + "\t.align\t2, 0\n" + "._375:\n" + "\t.word\tContestStatsText_LiteBluePokeBlock\n" + "._373:\n" + "\tcmp\tr2, #0x4\n" + "\tbne\t._377\t@cond_branch\n" + "\tldr\tr1, ._379 @ ContestStatsText_OlivePokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0xa\n" + "\tb\t._400\n" + "._380:\n" + "\t.align\t2, 0\n" + "._379:\n" + "\t.word\tContestStatsText_OlivePokeBlock\n" + "._377:\n" + "\tcmp\tr7, #0x1\n" + "\tbeq\t._381\t@cond_branch\n" + "\tmov\tr0, r8\n" + "\tcmp\tr0, #0x1\n" + "\tbne\t._399\t@cond_branch\n" + "._381:\n" + "\tmov\tr0, sp\n" + "\tmov\tr1, #0x0\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._383\t@cond_branch\n" + "\tldr\tr1, ._385 @ ContestStatsText_RedPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x1\n" + "\tb\t._400\n" + "._386:\n" + "\t.align\t2, 0\n" + "._385:\n" + "\t.word\tContestStatsText_RedPokeBlock\n" + "._383:\n" + "\tmov\tr0, sp\n" + "\tldrh\tr0, [r0, #0x2]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._387\t@cond_branch\n" + "\tldr\tr1, ._389 @ ContestStatsText_BluePokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x2\n" + "\tb\t._400\n" + "._390:\n" + "\t.align\t2, 0\n" + "._389:\n" + "\t.word\tContestStatsText_BluePokeBlock\n" + "._387:\n" + "\tmov\tr0, sp\n" + "\tmov\tr4, #0x4\n" + "\tldsh\tr0, [r0, r4]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._391\t@cond_branch\n" + "\tldr\tr1, ._393 @ ContestStatsText_PinkPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x3\n" + "\tb\t._400\n" + "._394:\n" + "\t.align\t2, 0\n" + "._393:\n" + "\t.word\tContestStatsText_PinkPokeBlock\n" + "._391:\n" + "\tmov\tr0, sp\n" + "\tmov\tr1, #0x6\n" + "\tldsh\tr0, [r0, r1]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._395\t@cond_branch\n" + "\tldr\tr1, ._397 @ ContestStatsText_GreenPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x4\n" + "\tb\t._400\n" + "._398:\n" + "\t.align\t2, 0\n" + "._397:\n" + "\t.word\tContestStatsText_GreenPokeBlock\n" + "._395:\n" + "\tmov\tr0, sp\n" + "\tmov\tr4, #0x8\n" + "\tldsh\tr0, [r0, r4]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._399\t@cond_branch\n" + "\tldr\tr1, ._401 @ ContestStatsText_YellowPokeBlock\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x5\n" + "\tb\t._400\n" + "._402:\n" + "\t.align\t2, 0\n" + "._401:\n" + "\t.word\tContestStatsText_YellowPokeBlock\n" + "._399:\n" + "\tldr\tr1, ._403 @ gOtherText_FiveQuestions\n" + "\tadd\tr0, r6, #0\n" + "\tbl\tStringCopy\n" + "\tmov\tr0, #0x0\n" + "._400:\n" + "\tadd\tsp, sp, #0x10\n" + "\tpop\t{r3, r4}\n" + "\tmov\tr8, r3\n" + "\tmov\tr9, r4\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r1}\n" + "\tbx\tr1\n" + "._404:\n" + "\t.align\t2, 0\n" + "._403:\n" + "\t.word\tgOtherText_FiveQuestions"); +} +#endif // NONMATCHING + +static void NakaDebug_PrintNum3Chars(u8 * buff, s16 a1) +{ + u8 i; + s16 divisor; + s16 quot; + s16 printZero; + + for (i = 0; i < 4; i++) + buff[i] = CHAR_SPACE; + buff[4] = EOS; + + if (a1 == 0) + buff[3] = CHAR_0; + else if (a1 > 0) + { + divisor = 100; + printZero = FALSE; + for (i = 0; i < 3; i++) + { + quot = a1 / divisor; + if (printZero || i == 2 || quot != 0) + { + buff[i + 1] = CHAR_0 + quot; + printZero = TRUE; + } + a1 %= divisor; + divisor /= 10; + } + } + else if (a1 < 0) + { + a1 = -a1; + divisor = 100; + printZero = FALSE; + for (i = 0; i < 3; i++) + { + quot = a1 / divisor; + if (printZero || i == 2 || quot != 0) + { + buff[i + 1] = CHAR_0 + quot; + if (!printZero) + buff[i] = CHAR_HYPHEN; + printZero = TRUE; + } + a1 %= divisor; + divisor /= 10; + } + } +} + +static void SetPokeblock_PrintFlavorValue(u8 a0) +{ + struct Pokeblock *pkblk = &sPokeblock; + + if (a0 == 0) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->spicy); + Menu_PrintText(gStringVar1, 8, 3); + } + else if (a0 == 1) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->dry); + Menu_PrintText(gStringVar1, 8, 5); + } + else if (a0 == 2) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->sweet); + Menu_PrintText(gStringVar1, 8, 7); + } + else if (a0 == 3) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->bitter); + Menu_PrintText(gStringVar1, 8, 9); + } + else if (a0 == 4) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->sour); + Menu_PrintText(gStringVar1, 8, 11); + } + else if (a0 == 5) + { + NakaDebug_PrintNum3Chars(gStringVar1, pkblk->feel); + Menu_PrintText(gStringVar1, 8, 13); + } +} + +static void SetPokeblock_AdjustFlavor(u8 a0, s8 a1) +{ + struct Pokeblock *pkblk = &sPokeblock; + + if (a0 == 0) + pkblk->spicy += a1; + else if (a0 == 1) + pkblk->dry += a1; + else if (a0 == 2) + pkblk->sweet += a1; + else if (a0 == 3) + pkblk->bitter += a1; + else if (a0 == 4) + pkblk->sour += a1; + else if (a0 == 5) + pkblk->feel += a1; +} + +static void SetPokeblock_RecomputeAndPrintColor(void) +{ + sPokeblock.color = SetPokeblock_CalcColor(gStringVar1, &sPokeblock); + Menu_BlankWindowRect(1, 1, 8, 2); + Menu_PrintText(gStringVar1, 1, 1); +} + +static void SetPokeblock_Init(void) +{ + u8 i; + + Menu_DrawStdWindowFrame(0, 0, 12, 15); + SetPokeblock_RecomputeAndPrintColor(); + Menu_PrintText(gContestStatsText_Spicy, 2, 3); + Menu_PrintText(gContestStatsText_Dry, 2, 5); + Menu_PrintText(gContestStatsText_Sweet, 2, 7); + Menu_PrintText(gContestStatsText_Bitter, 2, 9); + Menu_PrintText(gContestStatsText_Sour, 2, 11); + Menu_PrintText(gContestStatsText_Tasty, 2, 13); + + for (i = 0; i < 6; i++) + SetPokeblock_PrintFlavorValue(i); + + InitMenu(0, 1, 3, 6, 0, 11); +} + +static void SetPokeblock_GivePokeblock(void) +{ + struct Pokeblock * pkblk = &sPokeblock; + u8 rval = 0; + u8 i; + + if (pkblk->color == PBLOCK_CLR_BLACK) + { + if (pkblk->spicy == 2) + rval++; + + if (pkblk->sweet == 2) + rval++; + + if (pkblk->bitter == 2) + rval++; + + if (pkblk->dry == 2) + rval++; + + if (pkblk->sour == 2) + rval++; + + if (rval != 3) + { + pkblk->spicy = 2; + pkblk->sweet = 2; + pkblk->bitter = 2; + } + } + + GivePokeblock(pkblk); + SetPokeblock_RecomputeAndPrintColor(); + + for (i = 0; i < 6; i++) + SetPokeblock_PrintFlavorValue(i); +} + +static bool8 SetPokeblock_HandleJoypad(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Menu_MoveCursor(-1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Menu_MoveCursor(+1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + SetPokeblock_AdjustFlavor(Menu_GetCursorPos(), -1); + SetPokeblock_PrintFlavorValue(Menu_GetCursorPos()); + SetPokeblock_RecomputeAndPrintColor(); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + SetPokeblock_AdjustFlavor(Menu_GetCursorPos(), +1); + SetPokeblock_PrintFlavorValue(Menu_GetCursorPos()); + SetPokeblock_RecomputeAndPrintColor(); + return FALSE; + } + + if (gMain.newKeys & A_BUTTON) + { + SetPokeblock_GivePokeblock(); + PlaySE(SE_SELECT); + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + Menu_EraseWindowRect(0, 0, 29, 19); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +static bool8 SetPokeblock(void) +{ + Menu_EraseWindowRect(0, 0, 29, 19); + SetPokeblock_Init(); + gMenuCallback = SetPokeblock_HandleJoypad; + return FALSE; +} + +// ======================================================= +// EFFORT VALUES +// ======================================================= + +EWRAM_DATA u8 sEVTest_CursorPosition = 0; + +static const u8 Str_843E5F2[] = _("HP どりょくち"); +static const u8 Str_843E5FB[] = _("こうげき どりょくち"); +static const u8 Str_843E606[] = _("ぼうぎょ どりょくち"); +static const u8 Str_843E611[] = _("すばやさ どりょくち"); +static const u8 Str_843E61C[] = _("とくこう どりょくち"); +static const u8 Str_843E627[] = _("とくぼう どりょくち"); +static const u8 Str_843E632[] = _("なつきど"); +static const u8 Str_843E637[] = _("どりょくち ごうけい"); + +static void EVTest_Init(void) +{ + Menu_DrawStdWindowFrame(0, 0, 22, 19); + Menu_PrintText(gOtherText_Slash, 11, 1); + Menu_PrintText(Str_843E5F2, 2, 3); + Menu_PrintText(Str_843E5FB, 2, 5); + Menu_PrintText(Str_843E606, 2, 7); + Menu_PrintText(Str_843E611, 2, 9); + Menu_PrintText(Str_843E61C, 2, 11); + Menu_PrintText(Str_843E627, 2, 13); + Menu_PrintText(Str_843E637, 2, 15); + Menu_PrintText(Str_843E632, 2, 17); +} + +static void EVTest_PrintMonData(struct Pokemon *pokemon) +{ + u16 evTotal; + u16 curEv; + + Menu_BlankWindowRect(1, 1, 10, 2); + GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); + Menu_PrintText(gStringVar1, 1, 1); + + Menu_BlankWindowRect(12, 1, 21, 2); + Menu_PrintText(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES)], 12, 1); + + curEv = GetMonData(pokemon, MON_DATA_HP_EV); + evTotal = curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 3, 17, 4); + Menu_PrintText(gStringVar1, 13, 3); + + curEv = GetMonData(pokemon, MON_DATA_ATK_EV); + evTotal += curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 5, 17, 6); + Menu_PrintText(gStringVar1, 13, 5); + + curEv = GetMonData(pokemon, MON_DATA_DEF_EV); + evTotal += curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 7, 17, 8); + Menu_PrintText(gStringVar1, 13, 7); + + curEv = GetMonData(pokemon, MON_DATA_SPEED_EV); + evTotal += curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 9, 17, 10); + Menu_PrintText(gStringVar1, 13, 9); + + curEv = GetMonData(pokemon, MON_DATA_SPATK_EV); + evTotal += curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 11, 17, 12); + Menu_PrintText(gStringVar1, 13, 11); + + curEv = GetMonData(pokemon, MON_DATA_SPDEF_EV); + evTotal += curEv; + ConvertIntToDecimalStringN(gStringVar1, curEv, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 13, 17, 14); + Menu_PrintText(gStringVar1, 13, 13); + + ConvertIntToDecimalStringN(gStringVar1, evTotal, STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 15, 17, 16); + Menu_PrintText(gStringVar1, 13, 15); + + ConvertIntToDecimalStringN(gStringVar1, GetMonData(pokemon, MON_DATA_FRIENDSHIP), STR_CONV_MODE_LEFT_ALIGN, 5); + Menu_BlankWindowRect(13, 17, 17, 18); + Menu_PrintText(gStringVar1, 13, 17); +} + +static void EVTest_MovePartyCursor(s8 a0) +{ + s16 i; + if (a0 == -1) + { + if (sEVTest_CursorPosition == 0) + { + for (i = 5; i >= 0; i--) + { + if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES) != SPECIES_NONE) + { + sEVTest_CursorPosition = i; + return; + } + } + } + sEVTest_CursorPosition += a0; + return; + } + + if (a0 == 1) + { + sEVTest_CursorPosition += a0; + if (sEVTest_CursorPosition == 6) + sEVTest_CursorPosition = 0; + else if (GetMonData(gPlayerParty + sEVTest_CursorPosition, MON_DATA_SPECIES) == SPECIES_NONE) + sEVTest_CursorPosition = 0; + } +} + +static bool8 EVTest_HandleJoypad(void) +{ + if (gMain.newKeys & DPAD_LEFT) + { + EVTest_MovePartyCursor(-1); + EVTest_PrintMonData(gPlayerParty + sEVTest_CursorPosition); + return FALSE; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + EVTest_MovePartyCursor(+1); + EVTest_PrintMonData(gPlayerParty + sEVTest_CursorPosition); + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + Menu_EraseWindowRect(0, 0, 29, 19); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +bool8 DebugMenu_EffortValues(void) +{ + Menu_EraseWindowRect(0, 0, 29, 19); + sEVTest_CursorPosition = 0; + EVTest_Init(); + EVTest_PrintMonData(gPlayerParty + 0); + gMenuCallback = EVTest_HandleJoypad; + return FALSE; +} + +// ======================================================= +// RNG Test +// ======================================================= + +EWRAM_DATA u16 sRngLeft = 0; +EWRAM_DATA u16 sRngRight = 0; +EWRAM_DATA u16 sNumSamples = 0; +EWRAM_DATA u16 sRngMax = 0; + +static const u8 Str_843E642[] = _("ここから"); +static const u8 Str_843E647[] = _("ここまで"); +static const u8 Str_843E64C[] = _("かいすう"); +static const u8 Str_843E651[] = _("けっか"); +static const u8 Str_843E655[] = _("かい"); +static const u8 Str_843E658[] = _("0"); +static const u8 Str_843E65A[] = _("はんい"); + +static u16 EVTest_GetDiscreteUniformRandomSamples(void) +{ + u16 sampCount = 0; + u16 left; + u16 right; + u32 i; + + if (sRngLeft <= sRngRight) + { + left = sRngLeft; + right = sRngRight; + } + else + { + left = sRngRight; + right = sRngLeft; + } + + for (i = 0; i < sNumSamples; i++) + { + u16 r0 = Random() % sRngMax; + if (r0 >= left && r0 <= right) + sampCount++; + } + + return sampCount; +} + +static void RNGTest_Init(void) +{ + Menu_DrawStdWindowFrame(0, 0, 15, 11); + Menu_PrintText(Str_843E642, 2, 1); + Menu_PrintText(Str_843E647, 2, 3); + Menu_PrintText(Str_843E65A, 2, 5); + Menu_PrintText(Str_843E64C, 2, 7); + Menu_PrintText(Str_843E651, 2, 9); + Menu_PrintText(Str_843E655, 13, 9); + Menu_PrintText(Str_843E658, 12, 1); + Menu_PrintText(Str_843E658, 12, 3); + Menu_PrintText(Str_843E658, 12, 5); + Menu_PrintText(Str_843E658, 12, 7); + Menu_PrintText(Str_843E658, 12, 9); + InitMenu(0, 1, 1, 4, 0, 14); +} + +static void RNGTest_PrintNum(u16 a0) +{ + ConvertIntToDecimalStringN(gStringVar1, a0, STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 8, 9); +} + +static void RNGTest_AdjustAndPrintNumAtLine(u16 * a0, s8 a1, u8 a2) +{ + *a0 += a1; + ConvertIntToDecimalStringN(gStringVar1, *a0, STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(gStringVar1, 8, a2); +} + +static bool8 RNGTest_HandleJoypad(void) +{ + s8 r5 = gMain.heldKeys & R_BUTTON ? 100 : 1; + s8 r4; + + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Menu_MoveCursor(-1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Menu_MoveCursor(+1); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + r4 = Menu_GetCursorPos(); + if (r4 == 0) + RNGTest_AdjustAndPrintNumAtLine(&sRngLeft, -r5, 1); + if (r4 == 1) + RNGTest_AdjustAndPrintNumAtLine(&sRngRight, -r5, 3); + if (r4 == 2) + RNGTest_AdjustAndPrintNumAtLine(&sRngMax, -r5, 5); + if (r4 == 3) + RNGTest_AdjustAndPrintNumAtLine(&sNumSamples, -r5, 7); + return FALSE; + } + + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + r4 = Menu_GetCursorPos(); + if (r4 == 0) + RNGTest_AdjustAndPrintNumAtLine(&sRngLeft, r5, 1); + if (r4 == 1) + RNGTest_AdjustAndPrintNumAtLine(&sRngRight, r5, 3); + if (r4 == 2) + RNGTest_AdjustAndPrintNumAtLine(&sRngMax, r5, 5); + if (r4 == 3) + RNGTest_AdjustAndPrintNumAtLine(&sNumSamples, r5, 7); + return FALSE; + } + + if (gMain.newKeys & A_BUTTON) + { + if (sRngMax != 0) + { + PlaySE(SE_SELECT); + RNGTest_PrintNum(EVTest_GetDiscreteUniformRandomSamples()); + } + return FALSE; + } + + if (gMain.newKeys & B_BUTTON) + { + Menu_EraseWindowRect(0, 0, 29, 19); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +bool8 DebugMenu_RandomNumberTest(void) +{ + sRngLeft = 0; + sRngRight = 0; + sRngMax = 0; + sNumSamples = 0; + Menu_EraseWindowRect(0, 0, 29, 19); + RNGTest_Init(); + gMenuCallback = RNGTest_HandleJoypad; + return FALSE; +} #endif // DEBUG diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c index 9b12c1cc1..340ef2f17 100644 --- a/src/debug/start_menu_debug.c +++ b/src/debug/start_menu_debug.c @@ -1830,7 +1830,7 @@ u8 DebugMenu_EditPKMN() asm( " push {lr}\n" " bl Menu_EraseScreen\n" - " bl debug_sub_815FFDC\n" + " bl NakaGenderTest\n" " mov r0, #0x0\n" " pop {r1}\n" " bx r1\n" diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c index 8f7f5eb92..d4ef2d589 100644 --- a/src/decoration_inventory.c +++ b/src/decoration_inventory.c @@ -64,7 +64,7 @@ bool8 sub_8133FE4(u8 decorIdx) return FALSE; } -bool8 IsThereStorageSpaceForDecoration(u8 decorIdx) +bool8 GiveDecoration(u8 decorIdx) { u8 invIdx; s8 invSlot; @@ -167,11 +167,11 @@ u8 sub_81341D4(void) #if DEBUG -void debug_sub_814A3A8(void) +void Debug_GiveAllDecorations(void) { u8 decor; for (decor = 0; decor < DECOR_COUNT; decor++) - IsThereStorageSpaceForDecoration(decor); + GiveDecoration(decor); } #endif diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 35ea3952a..a7087be0f 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -326,7 +326,7 @@ void sub_8080DC4(u8 taskId) } } -void atk17_seteffectsecondary(void) +void sub_8080DEC(void) { pal_fill_black(); CreateStartMenuTask(sub_8080DC4); diff --git a/src/item_menu.c b/src/item_menu.c index 32b14e021..981f42282 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -2616,8 +2616,8 @@ static void sub_80A5888(u8 taskId) static void OnBagClose_Field0(u8 taskId) { - gTasks[taskId].data[8] = (u32)sub_805469C >> 16; - gTasks[taskId].data[9] = (u32)sub_805469C; + gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_1_sub_8080DEC >> 16; + gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_1_sub_8080DEC; gLastFieldPokeMenuOpened = 0; sub_80A5AE4(taskId); } diff --git a/src/item_use.c b/src/item_use.c index a0fbb13b2..a14abbe3e 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -48,7 +48,7 @@ extern u8 gBankInMenu; extern u8 gUnknown_081A1654[]; extern u8 gUnknown_081A168F[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u16 gBattleTypeFlags; @@ -1044,7 +1044,7 @@ void sub_80CA2BC(u8 taskId) void ItemUseInBattle_StatIncrease(u8 taskId) { - u16 partyId = gBattlePartyID[gBankInMenu]; + u16 partyId = gBattlerPartyIndexes[gBankInMenu]; Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); diff --git a/src/overworld.c b/src/overworld.c index 6376aa1af..e98e5a6a1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1415,10 +1415,10 @@ void sub_805465C(void) c2_exit_to_overworld_2_switch(); } -void sub_805469C(void) +void c2_exit_to_overworld_1_sub_8080DEC(void) { FieldClearVBlankHBlankCallbacks(); - gFieldCallback = atk17_seteffectsecondary; + gFieldCallback = sub_8080DEC; c2_exit_to_overworld_2_switch(); } diff --git a/src/pokeblock.c b/src/pokeblock.c index 6804f55d6..228d563cf 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -1070,7 +1070,7 @@ s8 GetFirstFreePokeblockSlot(void) return -1; } -bool8 sub_810CA34(const struct Pokeblock *pokeblock) +bool8 GivePokeblock(const struct Pokeblock *pokeblock) { s8 idx = GetFirstFreePokeblockSlot(); if (idx == -1) diff --git a/src/pokedex.c b/src/pokedex.c index f7baced63..d90b73178 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1694,7 +1694,7 @@ static void Task_ClosePokedex(u8 taskId) gSaveBlock2.pokedex.unknown1 = 0; gSaveBlock2.pokedex.order = gPokedexView->dexOrder; DestroyTask(taskId); - SetMainCallback2(sub_805469C); + SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); } } diff --git a/src/pokemon_1.c b/src/pokemon_1.c index a23bb3324..0622ec614 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -525,7 +525,7 @@ void CalculateMonStats(struct Pokemon *mon) } #if DEBUG -void debug_sub_803F55C(struct Pokemon *mon) +void Nakamura_NakaGenderTest_RecalcStats(struct Pokemon *mon) { s32 currentHP = GetMonData(mon, MON_DATA_HP, NULL); s32 hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL); diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 17f073815..9c60ea108 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -22,13 +22,13 @@ extern u8 gPlayerPartyCount; extern u8 gEnemyPartyCount; extern u16 gBattleTypeFlags; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern struct BattlePokemon gBattleMons[4]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u8 gBankAttacker; extern u8 gBankTarget; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gXXX_CritRelated; extern u16 gBattleWeather; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -60,21 +60,21 @@ u8 CountAliveMons(u8 a1) case 0: for (i = 0; i < 4; i++) { - if (i != gActiveBank && !(gAbsentBankFlags & gBitTable[i])) + if (i != gActiveBattler && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case 1: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBankAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case 2: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBankTarget) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; @@ -85,11 +85,11 @@ u8 CountAliveMons(u8 a1) u8 sub_803C434(u8 a1) { - u8 status = GetBankIdentity(a1) & 1; + u8 status = GetBattlerPosition(a1) & 1; status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByIdentity(status); + return GetBattlerAtPosition(status); if (CountAliveMons(0) > 1) { u8 val; @@ -98,14 +98,14 @@ u8 sub_803C434(u8 a1) val = status ^ 2; else val = status; - return GetBankByIdentity(val); + return GetBattlerAtPosition(val); } else { - if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByIdentity(status ^ 2); + if ((gAbsentBattlerFlags & gBitTable[status])) + return GetBattlerAtPosition(status ^ 2); else - return GetBankByIdentity(status); + return GetBattlerAtPosition(status); } } @@ -1226,7 +1226,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex) GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy10(gBattleMons[battleIndex].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName); - ewram160BC[GetBankSide(battleIndex)] = gBattleMons[battleIndex].hp; + ewram160BC[GetBattlerSide(battleIndex)] = gBattleMons[battleIndex].hp; for (i = 0; i < 8; i++) gBattleMons[battleIndex].statStages[i] = 6; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 9346031a6..791dd5d2f 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -28,7 +28,7 @@ extern u8 gPlayerPartyCount; extern u8 gEnemyPartyCount; extern struct BattlePokemon gBattleMons[4]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern struct BattleEnigmaBerry gEnigmaBerries[]; extern u16 gSpeciesToHoennPokedexNum[]; extern u16 gSpeciesToNationalPokedexNum[]; @@ -51,7 +51,7 @@ extern const u8 BattleText_Wally[]; extern s8 gPokeblockFlavorCompatibilityTable[]; extern u8 gLastUsedAbility; extern const u8 BattleText_PreventedSwitch[]; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern u8 BattleText_Rose[]; extern u8 BattleText_UnknownString3[]; @@ -95,7 +95,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) if (itemId == ITEM_ENIGMA_BERRY) { - temp = gEnigmaBerries[gActiveBank].itemEffect; + temp = gEnigmaBerries[gActiveBattler].itemEffect; } itemEffect = temp; @@ -1298,14 +1298,14 @@ void sub_8040B8C(void) gBattleTextBuff1[1] = 4; gBattleTextBuff1[2] = gBattleStruct->unk16054; gBattleTextBuff1[4] = EOS; - if (!GetBankSide(gBattleStruct->unk16054)) - gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->unk16054]); + if (!GetBattlerSide(gBattleStruct->unk16054)) + gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->unk16054]); else - gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->unk16054]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->unk16054]; gBattleTextBuff2[0] = 0xFD; gBattleTextBuff2[1] = 4; gBattleTextBuff2[2] = gBankInMenu; - gBattleTextBuff2[3] = pokemon_order_func(gBattlePartyID[gBankInMenu]); + gBattleTextBuff2[3] = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); gBattleTextBuff2[4] = EOS; StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4); } diff --git a/src/pokemon_item_effect.c b/src/pokemon_item_effect.c index 4ebece3b3..d26546f02 100644 --- a/src/pokemon_item_effect.c +++ b/src/pokemon_item_effect.c @@ -16,11 +16,11 @@ #include "util.h" extern s32 gBattleMoveDamage; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gBankInMenu; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; -extern u8 gActiveBank; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; +extern u8 gActiveBattler; extern u8 gStringBank; extern struct BattlePokemon gBattleMons[]; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -78,11 +78,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo gStringBank = gBankInMenu; if (gMain.inBattle) { - gActiveBank = gBankInMenu; - cmdIndex = (GetBankSide(gActiveBank) != 0); - while (cmdIndex < gNoOfAllBanks) + gActiveBattler = gBankInMenu; + cmdIndex = (GetBattlerSide(gActiveBattler) != 0); + while (cmdIndex < gBattlersCount) { - if (gBattlePartyID[cmdIndex] == partyIndex) + if (gBattlerPartyIndexes[cmdIndex] == partyIndex) { sp34 = cmdIndex; break; @@ -92,7 +92,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo } else { - gActiveBank = 0; + gActiveBattler = 0; sp34 = 4; } @@ -104,7 +104,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo if (item == ITEM_ENIGMA_BERRY) { if (gMain.inBattle) - itemEffect = gEnigmaBerries[gActiveBank].itemEffect; + itemEffect = gEnigmaBerries[gActiveBattler].itemEffect; else itemEffect = gSaveBlock1.enigmaBerry.itemEffect; } @@ -126,63 +126,63 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo retVal = FALSE; } if ((itemEffect[cmdIndex] & 0x30) - && !(gBattleMons[gActiveBank].status2 & STATUS2_FOCUS_ENERGY)) + && !(gBattleMons[gActiveBattler].status2 & STATUS2_FOCUS_ENERGY)) { - gBattleMons[gActiveBank].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY; retVal = FALSE; } if ((itemEffect[cmdIndex] & 0xF) - && gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] < 12) { - gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] += itemEffect[cmdIndex] & 0xF; - if (gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] > 12) - gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] = 12; + gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] += itemEffect[cmdIndex] & 0xF; + if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] > 12) + gBattleMons[gActiveBattler].statStages[STAT_STAGE_ATK] = 12; retVal = FALSE; } break; // in-battle stat boosting effects? case 1: if ((itemEffect[cmdIndex] & 0xF0) - && gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] < 12) { - gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4; - if (gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] > 12) - gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] = 12; + gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4; + if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] > 12) + gBattleMons[gActiveBattler].statStages[STAT_STAGE_DEF] = 12; retVal = FALSE; } if ((itemEffect[cmdIndex] & 0xF) - && gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] < 12) { - gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] += itemEffect[cmdIndex] & 0xF; - if (gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] > 12) - gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] = 12; + gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] += itemEffect[cmdIndex] & 0xF; + if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] > 12) + gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPEED] = 12; retVal = FALSE; } break; // more stat boosting effects? case 2: if ((itemEffect[cmdIndex] & 0xF0) - && gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] < 12) { - gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4; - if (gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] > 12) - gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] = 12; + gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4; + if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] > 12) + gBattleMons[gActiveBattler].statStages[STAT_STAGE_ACC] = 12; retVal = FALSE; } if ((itemEffect[cmdIndex] & 0xF) - && gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] < 12) { - gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] += itemEffect[cmdIndex] & 0xF; - if (gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] > 12) - gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] = 12; + gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] += itemEffect[cmdIndex] & 0xF; + if (gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] > 12) + gBattleMons[gActiveBattler].statStages[STAT_STAGE_SPATK] = 12; retVal = FALSE; } break; case 3: if ((itemEffect[cmdIndex] & 0x80) - && gSideTimers[GetBankSide(gActiveBank)].mistTimer == 0) + && gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer == 0) { - gSideTimers[GetBankSide(gActiveBank)].mistTimer = 5; + gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer = 5; retVal = FALSE; } if ((itemEffect[cmdIndex] & 0x40) // raise level @@ -278,15 +278,15 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo { if (sp34 != 4) { - gAbsentBankFlags &= ~gBitTable[sp34]; - CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlePartyID[sp34])); - if (GetBankSide(gActiveBank) == 0 && gBattleResults.unk4 < 255) + gAbsentBattlerFlags &= ~gBitTable[sp34]; + CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlerPartyIndexes[sp34])); + if (GetBattlerSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255) gBattleResults.unk4++; } else { - gAbsentBankFlags &= ~gBitTable[gActiveBank ^ 2]; - if (GetBankSide(gActiveBank) == 0 && gBattleResults.unk4 < 255) + gAbsentBattlerFlags &= ~gBitTable[gActiveBattler ^ 2]; + if (GetBattlerSide(gActiveBattler) == 0 && gBattleResults.unk4 < 255) gBattleResults.unk4++; } } @@ -325,16 +325,16 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo if (gMain.inBattle && sp34 != 4) { gBattleMons[sp34].hp = data; - if (!(r10 & 0x10) && GetBankSide(gActiveBank) == 0) + if (!(r10 & 0x10) && GetBattlerSide(gActiveBattler) == 0) { if (gBattleResults.unk3 < 255) gBattleResults.unk3++; // I have to re-use this variable to match. - r5 = gActiveBank; - gActiveBank = sp34; + r5 = gActiveBattler; + gActiveBattler = sp34; EmitGetAttributes(0, 0, 0); - MarkBufferBankForExecution(gActiveBank); - gActiveBank = r5; + MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = r5; } } } diff --git a/src/pokemon_menu.c b/src/pokemon_menu.c index 532340ce4..60757b7d4 100644 --- a/src/pokemon_menu.c +++ b/src/pokemon_menu.c @@ -309,7 +309,7 @@ static void sub_8089E4C(u8 taskID) if (!gPaletteFade.active) { gLastFieldPokeMenuOpened = 0; - SetMainCallback2(sub_805469C); + SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); DestroyTask(taskID); } } diff --git a/src/pokenav_before.c b/src/pokenav_before.c index 4f7eb66b4..55cf05790 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -3239,7 +3239,7 @@ void sub_80EE96C() if (!gPaletteFade.active) { sub_80F5BDC(); - sub_805469C(); + c2_exit_to_overworld_1_sub_8080DEC(); } } } diff --git a/src/region_map.c b/src/region_map.c index e40fb7752..b4ed2c558 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1912,7 +1912,7 @@ void debug_sub_8110D84(void) break; case 3: if (!UpdatePaletteFade()) - SetMainCallback2(sub_805469C); + SetMainCallback2(c2_exit_to_overworld_1_sub_8080DEC); break; case 4: if (sub_80FAB60() != 0) diff --git a/src/roamer.c b/src/roamer.c index 6ed5b6c89..459082e42 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -228,7 +228,7 @@ void GetRoamerLocation(u8 *mapGroup, u8 *mapNum) } #if DEBUG -void debug_sub_814A714(void) +void Debug_CreateRoamer(void) { if (gSaveBlock1.location.mapGroup == 0) { @@ -238,7 +238,7 @@ void debug_sub_814A714(void) } } -void debug_sub_814A73C(u8* str) +void Debug_GetRoamerLocation(u8* str) { GetMapSectionName(str, sRoamerLocation[1], 0); } diff --git a/src/rom3.c b/src/rom3.c index 7b3051b86..a9433695d 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -30,10 +30,10 @@ static EWRAM_DATA u8 gUnknown_020238C6 = 0; extern u32 gUnknown_020239FC; extern u8 gBattleBufferA[][0x200]; extern u8 gBattleBufferB[][0x200]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[]; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[]; extern u8 gBanksBySide[]; extern u16 gCurrentMove; extern u16 gChosenMove; @@ -43,7 +43,7 @@ extern u8 gBankAttacker; extern u8 gBankTarget; extern u8 gEffectBank; extern u8 gStringBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gUnknown_02024C78; extern u8 gBattleOutcome; @@ -120,7 +120,7 @@ void sub_800B950(void) sub_800BD54(); if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) sub_8094978(i, 0); } } @@ -139,7 +139,7 @@ void sub_800B9A8(void) gBanksBySide[0] = 0; gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; gBanksBySide[1] = 1; - gNoOfAllBanks = 2; + gBattlersCount = 2; } else { @@ -152,7 +152,7 @@ void sub_800B9A8(void) gBanksBySide[2] = 2; gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; gBanksBySide[3] = 3; - gNoOfAllBanks = 4; + gBattlersCount = 4; } } @@ -170,7 +170,7 @@ void sub_800BA78(void) gBanksBySide[0] = 0; gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[1] = 1; - gNoOfAllBanks = 2; + gBattlersCount = 2; } else { @@ -178,7 +178,7 @@ void sub_800BA78(void) gBanksBySide[1] = 0; gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[0] = 1; - gNoOfAllBanks = 2; + gBattlersCount = 2; } return; } @@ -195,7 +195,7 @@ void sub_800BA78(void) gBanksBySide[2] = 2; gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[3] = 3; - gNoOfAllBanks = 4; + gBattlersCount = 4; } else { @@ -207,7 +207,7 @@ void sub_800BA78(void) gBanksBySide[3] = 2; gBattleBankFunc[2] = SetBankFuncToLinkOpponentBufferRunCommand; gBanksBySide[2] = 3; - gNoOfAllBanks = 4; + gBattlersCount = 4; } return; @@ -237,12 +237,12 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -257,12 +257,12 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -274,18 +274,18 @@ void sub_800BA78(void) case 0: case 3: gBanksBySide[gLinkPlayers[i].lp_field_18] = 1; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBanksBySide[gLinkPlayers[i].lp_field_18] = 3; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } } } - gNoOfAllBanks = 4; + gBattlersCount = 4; } void sub_800BD54(void) @@ -295,7 +295,7 @@ void sub_800BD54(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < 6; j++) { @@ -308,7 +308,7 @@ void sub_800BD54(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -319,7 +319,7 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -332,9 +332,9 @@ void sub_800BD54(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Probably a typo by Game Freak. The rest use SPECIES2 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -344,9 +344,9 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0 && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -371,14 +371,14 @@ void PrepareBufferDataTransfer(u8 a, u8 *data, u16 size) case 0: for (i = 0; i < size; i++) { - gBattleBufferA[gActiveBank][i] = *data; + gBattleBufferA[gActiveBattler][i] = *data; data++; } break; case 1: for (i = 0; i < size; i++) { - gBattleBufferB[gActiveBank][i] = *data; + gBattleBufferB[gActiveBattler][i] = *data; data++; } break; @@ -416,12 +416,12 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data) } ewram14000arr(0, gTasks[gUnknown_020238C4].data[14]) = a; - ewram14000arr(1, gTasks[gUnknown_020238C4].data[14]) = gActiveBank; + ewram14000arr(1, gTasks[gUnknown_020238C4].data[14]) = gActiveBattler; ewram14000arr(2, gTasks[gUnknown_020238C4].data[14]) = gBankAttacker; ewram14000arr(3, gTasks[gUnknown_020238C4].data[14]) = gBankTarget; ewram14000arr(4, gTasks[gUnknown_020238C4].data[14]) = r9; ewram14000arr(5, gTasks[gUnknown_020238C4].data[14]) = (r9 & 0x0000FF00) >> 8; - ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBankFlags; + ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBattlerFlags; ewram14000arr(7, gTasks[gUnknown_020238C4].data[14]) = gEffectBank; for (i = 0; i < size; i++) @@ -563,7 +563,7 @@ void sub_800C47C(u8 taskId) { gBankAttacker = ewram15000arr(2, gTasks[taskId].data[15]); gBankTarget = ewram15000arr(3, gTasks[taskId].data[15]); - gAbsentBankFlags = ewram15000arr(6, gTasks[taskId].data[15]); + gAbsentBattlerFlags = ewram15000arr(6, gTasks[taskId].data[15]); gEffectBank = ewram15000arr(7, gTasks[taskId].data[15]); } break; diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 4be3390ee..cccedc89c 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -27,7 +27,7 @@ #define NUM_BATTLE_SLOTS 4 -#define gBattleMonPartyPositions gBattlePartyID +#define gBattleMonPartyPositions gBattlerPartyIndexes #define gCastformElevations gUnknownCastformData_0837F5A8 #define gCastformBackSpriteYCoords gUnknown_0837F5AC #define gTransformPersonalities gTransformedPersonalities @@ -70,7 +70,7 @@ extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern s16 gBattleAnimArgs[8]; extern u8 gBanksBySide[NUM_BATTLE_SLOTS]; -extern u8 gNoOfAllBanks; // gNumBattleMons? +extern u8 gBattlersCount; // gNumBattleMons? extern struct OamMatrix gOamMatrices[]; extern struct Struct_2017810 unk_2017810[]; extern u8 gAnimFriendship; @@ -154,7 +154,7 @@ const struct SpriteSheet gUnknown_0837F5E0[] = // pkmn_form.c -u8 GetBankPosition(u8 slot, u8 a2) +u8 GetBattlerSpriteCoord(u8 slot, u8 a2) { u8 var; u16 species; @@ -169,10 +169,10 @@ u8 GetBankPosition(u8 slot, u8 a2) { case 0: case 2: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_0; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_0; break; case 1: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_1; break; case 3: case 4: @@ -186,7 +186,7 @@ u8 GetBankPosition(u8 slot, u8 a2) } else { - if (GetBankSide(slot)) + if (GetBattlerSide(slot)) { transform = &eTransformStatuses[slot]; if (!transform->species) @@ -220,7 +220,7 @@ u8 sub_8077BFC(u8 slot, u16 species) u8 ret; u16 var; - if (GetBankSide(slot) == 0 || IsContest()) + if (GetBattlerSide(slot) == 0 || IsContest()) { if (species == SPECIES_UNOWN) { @@ -294,7 +294,7 @@ u8 sub_8077BFC(u8 slot, u16 species) u8 sub_8077DD8(u8 slot, u16 species) { u8 ret = 0; - if (GetBankSide(slot) == 1) + if (GetBattlerSide(slot) == 1) { if (!IsContest()) { @@ -314,7 +314,7 @@ u8 sub_8077E44(u8 slot, u16 species, u8 a3) u16 offset; u8 y; - if (GetBankSide(slot) == 0 || IsContest()) + if (GetBattlerSide(slot) == 0 || IsContest()) { offset = sub_8077BFC(slot, species); } @@ -323,10 +323,10 @@ u8 sub_8077E44(u8 slot, u16 species, u8 a3) offset = sub_8077BFC(slot, species); offset -= sub_8077DD8(slot, species); } - y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; + y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBattlerPosition(slot)].field_1; if (a3) { - if (GetBankSide(slot) == 0) + if (GetBattlerSide(slot) == 0) y += 8; if (y > 104) y = 104; @@ -362,22 +362,22 @@ u8 sub_8077EE4(u8 slot, u8 a2) } else { - return GetBankPosition(slot, a2); + return GetBattlerSpriteCoord(slot, a2); } } u8 sub_8077F68(u8 slot) { - return GetBankPosition(slot, 4); + return GetBattlerSpriteCoord(slot, 4); } u8 sub_8077F7C(u8 slot) { u16 var; - if (GetBankSide(slot) != 0) - var = GetBankPosition(slot, 1) + 16; + if (GetBattlerSide(slot) != 0) + var = GetBattlerSpriteCoord(slot, 1) + 16; else - var = GetBankPosition(slot, 1) + 17; + var = GetBattlerSpriteCoord(slot, 1) + 17; return var; } @@ -387,10 +387,10 @@ u8 sub_8077FC0(u8 slot) u8 r6; struct TransformStatus *transform; - r6 = GetBankPosition(slot, 1); + r6 = GetBattlerSpriteCoord(slot, 1); if (!IsContest()) { - if (GetBankSide(slot) != 0) + if (GetBattlerSide(slot) != 0) { transform = &eTransformStatuses[slot]; if (!transform->species) { @@ -407,13 +407,13 @@ u8 sub_8077FC0(u8 slot) else var = transform->species; } - if (GetBankSide(slot) != 0) + if (GetBattlerSide(slot) != 0) r6 -= sub_8077DD8(slot, var); } return r6; } -u8 GetAnimBankSpriteId(u8 whichBank) +u8 GetAnimBattlerSpriteId(u8 whichBank) { u8 *sprites; @@ -634,8 +634,8 @@ void unref_sub_8078414(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2); - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = sub_80782F8; } @@ -702,8 +702,8 @@ void unref_sub_8078588(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); - sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->callback = sub_80782F8; } @@ -741,14 +741,14 @@ void sub_8078634(u8 task) void sub_8078650(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); } void sub_807867C(struct Sprite *sprite, s16 a2) { - u16 v1 = GetBankPosition(gAnimBankAttacker, 0); - u16 v2 = GetBankPosition(gAnimBankTarget, 0); + u16 v1 = GetBattlerSpriteCoord(gAnimBankAttacker, 0); + u16 v2 = GetBattlerSpriteCoord(gAnimBankTarget, 0); if (v1 > v2) { @@ -760,7 +760,7 @@ void sub_807867C(struct Sprite *sprite, s16 a2) } else { - if (GetBankSide(gAnimBankAttacker) != 0) + if (GetBattlerSide(gAnimBankAttacker) != 0) sprite->pos1.x -= a2; else sprite->pos1.x += a2; @@ -820,21 +820,21 @@ void InitAnimSpritePos(struct Sprite *sprite, u8 a2) sprite->pos1.y += gBattleAnimArgs[1]; } -u8 GetBankSide(u8 slot) +u8 GetBattlerSide(u8 slot) { return gBanksBySide[slot] & 1; } -u8 GetBankIdentity(u8 slot) +u8 GetBattlerPosition(u8 slot) { return gBanksBySide[slot]; } -u8 GetBankByIdentity(u8 slot) +u8 GetBattlerAtPosition(u8 slot) { u8 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBanksBySide[i] == slot) break; @@ -856,7 +856,7 @@ bool8 IsBankSpritePresent(u8 slot) { if (gBanksBySide[slot] == 0xff) return FALSE; - if (GetBankSide(slot) != SIDE_PLAYER) + if (GetBattlerSide(slot) != B_SIDE_PLAYER) { if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) return TRUE; @@ -899,7 +899,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) unk->field_4 = (u8 *)(VRAM + 0xf000); unk->field_8 = 0xe; } - else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) + else if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) { unk->field_0 = (u8 *)(VRAM + 0x4000); unk->field_4 = (u8 *)(VRAM + 0xe000); @@ -1159,7 +1159,7 @@ bool8 sub_8078E38() { if (IsContest()) { - if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) + if (gSprites[GetAnimBattlerSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) return FALSE; return TRUE; } @@ -1338,25 +1338,25 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) } } else { if (a1) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) { - var |= 1 << (GetBankByIdentity(0) + 16); + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(0))) { + var |= 1 << (GetBattlerAtPosition(0) + 16); } } if (a2) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) { - shift = GetBankByIdentity(2) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(2))) { + shift = GetBattlerAtPosition(2) + 16; var |= 1 << shift; } } if (a3) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) { - shift = GetBankByIdentity(1) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(1))) { + shift = GetBattlerAtPosition(1) + 16; var |= 1 << shift; } } if (a4) { - if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) { - shift = GetBankByIdentity(3) + 16; + if (IsAnimBankSpriteVisible(GetBattlerAtPosition(3))) { + shift = GetBattlerAtPosition(3) + 16; var |= 1 << shift; } } @@ -1371,7 +1371,7 @@ u8 sub_80793A8(u8 a1) u8 unref_sub_80793B0(u8 a1) { - return GetBankByIdentity(a1); + return GetBattlerAtPosition(a1); } void sub_80793C4(struct Sprite *sprite) @@ -1421,12 +1421,12 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) v2 = 1; InitAnimSpritePos(sprite, v1); - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, v2) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, v2) + gBattleAnimArgs[3]; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -1434,11 +1434,11 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) void sub_80794A8(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_8079518; @@ -1474,12 +1474,12 @@ void sub_8079534(struct Sprite *sprite) sub_8078764(sprite, r4); slot = gAnimBankTarget; } - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sub_8078764(sprite, r4); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBankPosition(slot, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBankPosition(slot, r7) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(slot, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(slot, r7) + gBattleAnimArgs[3]; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -1487,7 +1487,7 @@ void sub_8079534(struct Sprite *sprite) s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) { u16 i; - u8 sprite = GetAnimBankSpriteId(a1); + u8 sprite = GetAnimBattlerSpriteId(a1); if (sprite != 0xff) { @@ -1573,7 +1573,7 @@ void sub_80796F8(u8 taskId) // arg 4: number of times to blend in and out void AnimTask_BlendMonInAndOut(u8 task) { - u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (spriteId == 0xff) { DestroyAnimVisualTask(task); @@ -1767,7 +1767,7 @@ u16 sub_8079B10(u8 sprite) } else { - if (!GetBankSide(i)) + if (!GetBattlerSide(i)) { transform = &eTransformStatuses[slot]; if (!transform->species) @@ -1872,7 +1872,7 @@ void sub_8079E24() { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { if (IsAnimBankSpriteVisible(i)) { @@ -1896,12 +1896,12 @@ u8 sub_8079E90(u8 bank) } else { - identity = GetBankIdentity(bank); - if (identity == IDENTITY_PLAYER_MON1) + identity = GetBattlerPosition(bank); + if (identity == B_POSITION_PLAYER_LEFT) ret = 30; - else if (identity == IDENTITY_PLAYER_MON2) + else if (identity == B_POSITION_PLAYER_RIGHT) ret = 20; - else if (identity == IDENTITY_OPPONENT_MON1) + else if (identity == B_POSITION_OPPONENT_LEFT) ret = 40; else ret = 50; @@ -1911,7 +1911,7 @@ u8 sub_8079E90(u8 bank) u8 sub_8079ED4(u8 slot) { - u8 status = GetBankIdentity(slot); + u8 status = GetBattlerPosition(slot); if (IsContest()) return 2; @@ -1921,13 +1921,13 @@ u8 sub_8079ED4(u8 slot) return BG1CNT.priority; } -u8 GetBankIdentity_permutated(u8 slot) +u8 GetBattlerPosition_permutated(u8 slot) { u8 status; if (!IsContest()) { - status = GetBankIdentity(slot); + status = GetBattlerPosition(slot); if (status == 0 || status == 3) return 2; else @@ -2037,7 +2037,7 @@ s16 sub_807A100(u8 slot, u8 a2) } else { - if (!GetBankSide(slot)) + if (!GetBattlerSide(slot)) { transform = &eTransformStatuses[slot]; if (!transform->species) @@ -2112,15 +2112,15 @@ s16 sub_807A100(u8 slot, u8 a2) case 1: return (coords->coords >> 4) * 8; case 4: - return GetBankPosition(slot, 2) - ((coords->coords >> 4) * 4); + return GetBattlerSpriteCoord(slot, 2) - ((coords->coords >> 4) * 4); case 5: - return GetBankPosition(slot, 2) + ((coords->coords >> 4) * 4); + return GetBattlerSpriteCoord(slot, 2) + ((coords->coords >> 4) * 4); case 2: - return GetBankPosition(slot, 3) - ((coords->coords & 0xf) * 4); + return GetBattlerSpriteCoord(slot, 3) - ((coords->coords & 0xf) * 4); case 3: - return GetBankPosition(slot, 3) + ((coords->coords & 0xf) * 4); + return GetBattlerSpriteCoord(slot, 3) + ((coords->coords & 0xf) * 4); case 6: - ret = GetBankPosition(slot, 1) + 0x1f; + ret = GetBattlerSpriteCoord(slot, 1) + 0x1f; return ret - coords->y_offset; default: return 0; @@ -2143,12 +2143,12 @@ void SetAverageBattlerPositions(u8 slot, bool8 a2, s16 *x, s16 *y) v1 = 2; v2 = 3; } - v3 = GetBankPosition(slot, v1); - v4 = GetBankPosition(slot, v2); + v3 = GetBattlerSpriteCoord(slot, v1); + v4 = GetBattlerSpriteCoord(slot, v2); if (IsDoubleBattle() && !IsContest()) { - v5 = GetBankPosition(slot ^ 2, v1); - v6 = GetBankPosition(slot ^ 2, v2); + v5 = GetBattlerSpriteCoord(slot ^ 2, v1); + v6 = GetBattlerSpriteCoord(slot ^ 2, v2); } else { @@ -2176,7 +2176,7 @@ u8 sub_807A4A0(int bank, u8 sprite, int species) void sub_807A544(struct Sprite *sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; @@ -2197,7 +2197,7 @@ void sub_807A544(struct Sprite *sprite) void sub_807A5C4(struct Sprite *sprite) { - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] *= -1; @@ -2221,7 +2221,7 @@ void sub_807A5C4(struct Sprite *sprite) void sub_807A63C(struct Sprite *sprite) { sub_8078650(sprite); - if (GetBankSide(gAnimBankAttacker)) + if (GetBattlerSide(gAnimBankAttacker)) sprite->pos1.x -= gBattleAnimArgs[0]; else sprite->pos1.x += gBattleAnimArgs[0]; @@ -2237,8 +2237,8 @@ void sub_807A69C(u8 taskId) u16 src; u16 dest; struct Task *task = &gTasks[taskId]; - task->data[0] = GetAnimBankSpriteId(0); - task->data[1] = (GetBankSide(gAnimBankAttacker)) ? -8 : 8; + task->data[0] = GetAnimBattlerSpriteId(0); + task->data[1] = (GetBattlerSide(gAnimBankAttacker)) ? -8 : 8; task->data[2] = 0; task->data[3] = 0; gSprites[task->data[0]].pos2.x -= task->data[0]; @@ -2318,9 +2318,9 @@ void sub_807A8D4(struct Sprite *sprite) // file_4 void sub_807A908(struct Sprite *sprite) { - sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); - sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); - if (!GetBankSide(gAnimBankAttacker)) + sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); + if (!GetBattlerSide(gAnimBankAttacker)) sprite->data[0] = 5; else sprite->data[0] = -10; @@ -2346,7 +2346,7 @@ void sub_807A9BC(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4]; sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5]; - if (!GetBankSide(gAnimBankTarget)) + if (!GetBattlerSide(gAnimBankTarget)) { x = (u16)gBattleAnimArgs[4] + 30; sprite->pos1.x += x; diff --git a/src/scrcmd.c b/src/scrcmd.c index e5272bc9c..29c1f982e 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -548,7 +548,7 @@ bool8 ScrCmd_givedecoration(struct ScriptContext *ctx) { u32 decoration = VarGet(ScriptReadHalfword(ctx)); - gSpecialVar_Result = IsThereStorageSpaceForDecoration(decoration); + gSpecialVar_Result = GiveDecoration(decoration); return FALSE; } diff --git a/src/shop.c b/src/shop.c index 87dbbeb97..42cda5e2e 100644 --- a/src/shop.c +++ b/src/shop.c @@ -691,7 +691,7 @@ static void Task_DoItemPurchase(u8 taskId) } else // a normal mart is only type 0, so types 1 and 2 are decoration marts. { - if (IsThereStorageSpaceForDecoration(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor])) + if (GiveDecoration(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor])) { if (gMartInfo.martType == MART_TYPE_1) DisplayItemMessageOnField(taskId, gOtherText_HereYouGo2, Shop_DoItemTransaction, 0xC3E1); diff --git a/src/start_menu.c b/src/start_menu.c index f2d53eb7f..f63408689 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -503,7 +503,7 @@ static u8 StartMenu_PlayerCallback(void) if (!gPaletteFade.active) { PlayRainSoundEffect(); - TrainerCard_ShowPlayerCard(sub_805469C); + TrainerCard_ShowPlayerCard(c2_exit_to_overworld_1_sub_8080DEC); return 1; } return 0; @@ -524,7 +524,7 @@ static u8 StartMenu_OptionCallback(void) { PlayRainSoundEffect(); SetMainCallback2(CB2_InitOptionMenu); - gMain.savedCallback = sub_805469C; + gMain.savedCallback = c2_exit_to_overworld_1_sub_8080DEC; return 1; } return 0; @@ -551,7 +551,7 @@ static u8 StartMenu_PlayerLinkCallback(void) if (!gPaletteFade.active) { PlayRainSoundEffect(); - TrainerCard_ShowLinkCard(gUnknown_03004860, sub_805469C); + TrainerCard_ShowLinkCard(gUnknown_03004860, c2_exit_to_overworld_1_sub_8080DEC); return 1; } return 0; diff --git a/src/trader.c b/src/trader.c index 885557d5a..e8fe743f8 100644 --- a/src/trader.c +++ b/src/trader.c @@ -249,7 +249,7 @@ void ScrSpecial_TraderDoDecorationTrade(void) struct MauvilleManTrader *trader = &gSaveBlock1.mauvilleMan.trader; sub_81340A8(gSpecialVar_0x8006); - IsThereStorageSpaceForDecoration(gSpecialVar_0x8004); + GiveDecoration(gSpecialVar_0x8004); StringCopy(trader->unk5[gSpecialVar_0x8005], gSaveBlock2.playerName); trader->unk1[gSpecialVar_0x8005] = gSpecialVar_0x8006; sub_810993C(); diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 19778e29b..ddad43a56 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -3803,7 +3803,7 @@ void FeebasSeedRng(u16 seed) } #if DEBUG -u16 debug_sub_8092344(u8 arg0) +u16 FeebasDebug_GetTrueNumberOfWaterTilesInMapThird(u8 arg0) { if (arg0 == 0) return 131; diff --git a/sym_common.txt b/sym_common.txt index aec64ebf0..07ab0629f 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -292,7 +292,7 @@ SYMBOL(gUnknown_03005D38, 4) // mauville_man.c SYMBOL(gUnknown_03005DA0, 0x48) -// cute_sketch.c +// contest_painting_effects.c SYMBOL(gUnknown_03005DE8, 4) SYMBOL(gUnknown_03005DEC, 4) SYMBOL(gUnknown_03005DF0, 4) diff --git a/sym_ewram.txt b/sym_ewram.txt index 52f205779..de0d1b1aa 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -23,7 +23,7 @@ gBattleTypeFlags = .; /* 20239F8 */ gUnknown_020239FC = .; /* 20239FC */ . += 0x4; -gUnknown_02023A00 = .; /* 2023A00 */ +gMultiPartnerParty = .; /* 2023A00 */ . += 0x4; gUnknown_02023A04 = .; /* 2023A04 */ @@ -58,16 +58,16 @@ gBattleBufferA = .; /* 2023A60 */ gBattleBufferB = .; /* 2024260 */ . += 0x800; -gActiveBank = .; /* 2024A60 */ +gActiveBattler = .; /* 2024A60 */ . += 0x4; gBattleExecBuffer = .; /* 2024A64 */ . += 0x4; -gNoOfAllBanks = .; /* 2024A68 */ +gBattlersCount = .; /* 2024A68 */ . += 0x2; -gBattlePartyID = .; /* 2024A6A */ +gBattlerPartyIndexes = .; /* 2024A6A */ . += 0x8; gBanksBySide = .; /* 2024A72 */ @@ -154,7 +154,7 @@ gEffectBank = .; /* 2024C0A */ gStringBank = .; /* 2024C0B */ . += 0x1; -gAbsentBankFlags = .; /* 2024C0C */ +gAbsentBattlerFlags = .; /* 2024C0C */ . += 0x1; gCritMultiplier = .; /* 2024C0D */ @@ -190,13 +190,13 @@ gUnknown_02024C4C = .; /* 2024C4C */ gLockedMoves = .; /* 2024C54 */ . += 0x8; -gUnknown_02024C5C = .; /* 2024C5C */ +gLastHitBy = .; /* 2024C5C */ . += 0x4; gChosenMovesByBanks = .; /* 2024C60 */ . += 0x8; -gBattleMoveFlags = .; /* 2024C68 */ +gMoveResultFlags = .; /* 2024C68 */ . += 0x4; gHitMarker = .; /* 2024C6C */ |