summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-23 15:54:19 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-23 15:54:19 +0800
commit3459fbb9a39d267c4d566e80cbab9a1d334135ab (patch)
treed046901537135b57a8a91d7abca81f38bdbc408d
parent23b2a0cc9f673363d4a6dc3d0c9e26fe50cce0c1 (diff)
battle_script_commands data decomp
-rw-r--r--asm/battle_2.s4
-rw-r--r--asm/battle_script_commands.s462
-rw-r--r--asm/evolution_scene.s16
-rw-r--r--asm/macros/battle_script.inc2
-rw-r--r--berry_fix/payload/asm/macros/battle_script.inc2
-rw-r--r--data/battle_scripts_1.s37
-rw-r--r--data/data.s51
-rw-r--r--graphics/battle_interface/unk_battlebox.pal19
-rw-r--r--graphics/battle_interface/unk_battlebox.pngbin0 -> 170 bytes
-rw-r--r--include/battle_script_commands.h2
-rw-r--r--include/battle_scripts.h1
-rw-r--r--ld_script.txt3
-rw-r--r--src/battle_script_commands.c877
13 files changed, 1178 insertions, 298 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index c87c81841..af4b972ab 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -12250,14 +12250,14 @@ _08016048:
cmp r0, 0x1F
bne _08016096
adds r0, r2, 0
- bl BankGetTurnOrder
+ bl GetBattlerTurnOrderNum
lsls r0, 24
lsrs r0, 24
ldr r3, [sp]
cmp r0, r3
bcs _08016096
ldrb r0, [r4]
- bl BankGetTurnOrder
+ bl GetBattlerTurnOrderNum
lsls r0, 24
lsrs r0, 24
str r0, [sp]
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 4bc9cd976..a7a115c1f 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -783,8 +783,8 @@ _0801DDBA:
bx r1
thumb_func_end AccuracyCalcHelper
- thumb_func_start sub_801DDC4
-sub_801DDC4: @ 801DDC4
+ thumb_func_start atk01_accuracycheck
+atk01_accuracycheck: @ 801DDC4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1074,7 +1074,7 @@ _0801DFC0:
movs r0, 0x32
mov r8, r0
_0801E012:
- ldr r1, _0801E108 @ =gUnknown_82504FC
+ ldr r1, _0801E108 @ =sAccuracyStageRatios
lsls r0, r5, 24
asrs r0, 22
adds r0, r1
@@ -1191,7 +1191,7 @@ _0801E0D4:
_0801E0FC: .4byte gBattlerAttacker
_0801E100: .4byte gBattleMoves
_0801E104: .4byte gBattleWeather
-_0801E108: .4byte gUnknown_82504FC
+_0801E108: .4byte sAccuracyStageRatios
_0801E10C: .4byte gBattleMons
_0801E110: .4byte gBattlerTarget
_0801E114: .4byte gEnigmaBerries
@@ -1286,7 +1286,7 @@ _0801E1C2:
bx r0
.align 2, 0
_0801E1D4: .4byte gBattleCommunication
- thumb_func_end sub_801DDC4
+ thumb_func_end atk01_accuracycheck
thumb_func_start atk02_attackstring
atk02_attackstring: @ 801E1D8
@@ -1563,8 +1563,8 @@ _0801E400: .4byte 0xfffff7ff
_0801E404: .4byte gBattlescriptCurrInstr
thumb_func_end atk03_ppreduce
- thumb_func_start sub_801E408
-sub_801E408: @ 801E408
+ thumb_func_start atk04_critcalc
+atk04_critcalc: @ 801E408
push {r4-r7,lr}
ldr r1, _0801E42C @ =gBattleMons
ldr r0, _0801E430 @ =gBattlerAttacker
@@ -1714,7 +1714,7 @@ _0801E4F0:
cmp r0, 0
bne _0801E580
bl Random
- ldr r2, _0801E578 @ =gUnknown_8250530
+ ldr r2, _0801E578 @ =sCriticalHitChance
lsls r1, r5, 1
adds r1, r2
lsls r0, 16
@@ -1748,7 +1748,7 @@ _0801E55A:
_0801E56C: .4byte gBattlerTarget
_0801E570: .4byte gStatuses3
_0801E574: .4byte gBattleTypeFlags
-_0801E578: .4byte gUnknown_8250530
+_0801E578: .4byte sCriticalHitChance
_0801E57C: .4byte gCritMultiplier
_0801E580:
ldr r1, _0801E594 @ =gCritMultiplier
@@ -1765,7 +1765,7 @@ _0801E584:
.align 2, 0
_0801E594: .4byte gCritMultiplier
_0801E598: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_801E408
+ thumb_func_end atk04_critcalc
thumb_func_start atk05_damagecalc
atk05_damagecalc: @ 801E59C
@@ -3788,8 +3788,8 @@ _0801F580: .4byte gBattlescriptCurrInstr
_0801F584: .4byte gUnknown_81D89F1
thumb_func_end atk09_attackanimation
- thumb_func_start sub_801F588
-sub_801F588: @ 801F588
+ thumb_func_start atk0A_waitanimation
+atk0A_waitanimation: @ 801F588
push {lr}
ldr r0, _0801F5A0 @ =gBattleControllerExecFlags
ldr r0, [r0]
@@ -3805,7 +3805,7 @@ _0801F59A:
.align 2, 0
_0801F5A0: .4byte gBattleControllerExecFlags
_0801F5A4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_801F588
+ thumb_func_end atk0A_waitanimation
thumb_func_start atk0B_healthbarupdate
atk0B_healthbarupdate: @ 801F5A8
@@ -4979,8 +4979,8 @@ _0801FEE0: .4byte gActiveBattler
_0801FEE4: .4byte gBattlerAttacker
thumb_func_end atk14_printselectionstringfromtable
- thumb_func_start BankGetTurnOrder
-BankGetTurnOrder: @ 801FEE8
+ thumb_func_start GetBattlerTurnOrderNum
+GetBattlerTurnOrderNum: @ 801FEE8
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
@@ -5010,7 +5010,7 @@ _0801FF0E:
.align 2, 0
_0801FF18: .4byte gBattlersCount
_0801FF1C: .4byte gBattlerByTurnOrder
- thumb_func_end BankGetTurnOrder
+ thumb_func_end GetBattlerTurnOrderNum
thumb_func_start SetMoveEffect
SetMoveEffect: @ 801FF20
@@ -5180,7 +5180,7 @@ _08020068:
bls _08020074
b _080206A2
_08020074:
- ldr r1, _080200B8 @ =gUnknown_825053C
+ ldr r1, _080200B8 @ =sStatusFlagsForMoveEffects
ldrb r0, [r6, 0x3]
lsls r0, 2
adds r0, r1
@@ -5208,7 +5208,7 @@ _080200A8: .4byte gBattleMons
_080200AC: .4byte gHitMarker
_080200B0: .4byte gBattleCommunication
_080200B4: .4byte gSideStatuses
-_080200B8: .4byte gUnknown_825053C
+_080200B8: .4byte sStatusFlagsForMoveEffects
_080200BC:
cmp r0, 0x40
bne _080200C2
@@ -5838,7 +5838,7 @@ _08020578:
ldr r0, [r0]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _080205BC @ =gUnknown_825053C
+ ldr r1, _080205BC @ =sStatusFlagsForMoveEffects
ldr r0, _080205C0 @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5864,7 +5864,7 @@ _08020578:
.align 2, 0
_080205B4: .4byte gMoveResultFlags
_080205B8: .4byte gBattlescriptCurrInstr
-_080205BC: .4byte gUnknown_825053C
+_080205BC: .4byte sStatusFlagsForMoveEffects
_080205C0: .4byte gBattleCommunication
_080205C4: .4byte gBattleMons
_080205C8: .4byte gEffectBattler
@@ -5881,7 +5881,7 @@ _080205CC:
str r0, [r1]
_080205E0:
ldr r2, _08020638 @ =gBattlescriptCurrInstr
- ldr r1, _0802063C @ =gUnknown_825062C
+ ldr r1, _0802063C @ =sMoveEffectBS_Ptrs
ldr r5, _08020640 @ =gBattleCommunication
ldrb r0, [r5, 0x3]
lsls r0, 2
@@ -5922,7 +5922,7 @@ _080205E0:
_08020630: .4byte gBattleMons
_08020634: .4byte gEffectBattler
_08020638: .4byte gBattlescriptCurrInstr
-_0802063C: .4byte gUnknown_825062C
+_0802063C: .4byte sMoveEffectBS_Ptrs
_08020640: .4byte gBattleCommunication
_08020644: .4byte gActiveBattler
_08020648: .4byte gUnknown_2023C30
@@ -5973,7 +5973,7 @@ _080206A2:
mov r0, r8
adds r0, 0x50
adds r1, r0
- ldr r2, _080206DC @ =gUnknown_825053C
+ ldr r2, _080206DC @ =sStatusFlagsForMoveEffects
ldrb r3, [r6, 0x3]
lsls r0, r3, 2
adds r0, r2
@@ -5995,7 +5995,7 @@ _080206D0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080206DC: .4byte gUnknown_825053C
+_080206DC: .4byte sStatusFlagsForMoveEffects
_080206E0: .4byte _080206E4
.align 2, 0
_080206E4:
@@ -6095,7 +6095,7 @@ _080207E6:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _08020824 @ =gUnknown_825062C
+ ldr r1, _08020824 @ =sMoveEffectBS_Ptrs
ldr r0, _08020828 @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6104,7 +6104,7 @@ _080207E6:
bl _08021108
.align 2, 0
_08020820: .4byte gBattlescriptCurrInstr
-_08020824: .4byte gUnknown_825062C
+_08020824: .4byte sMoveEffectBS_Ptrs
_08020828: .4byte gBattleCommunication
_0802082C:
mov r0, r9
@@ -6139,7 +6139,7 @@ _08020868: .4byte gBattlescriptCurrInstr
_0802086C: .4byte gUnknown_81D9452
_08020870:
adds r0, r2, 0
- bl BankGetTurnOrder
+ bl GetBattlerTurnOrderNum
ldr r1, _080208AC @ =gUnknown_2023BE2
lsls r0, 24
lsrs r0, 24
@@ -6155,7 +6155,7 @@ _08020886:
mov r0, r8
adds r0, 0x50
adds r2, r0
- ldr r1, _080208B0 @ =gUnknown_825053C
+ ldr r1, _080208B0 @ =sStatusFlagsForMoveEffects
ldr r0, _080208B4 @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6167,7 +6167,7 @@ _08020886:
bl _080210EC
.align 2, 0
_080208AC: .4byte gUnknown_2023BE2
-_080208B0: .4byte gUnknown_825053C
+_080208B0: .4byte sStatusFlagsForMoveEffects
_080208B4: .4byte gBattleCommunication
_080208B8:
mov r3, r9
@@ -6212,7 +6212,7 @@ _080208D4:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _0802092C @ =gUnknown_825062C
+ ldr r1, _0802092C @ =sMoveEffectBS_Ptrs
ldr r0, _08020930 @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6223,7 +6223,7 @@ _080208D4:
_08020920: .4byte gUnknown_2023DB8
_08020924: .4byte gCurrentMove
_08020928: .4byte gBattlescriptCurrInstr
-_0802092C: .4byte gUnknown_825062C
+_0802092C: .4byte sMoveEffectBS_Ptrs
_08020930: .4byte gBattleCommunication
_08020934:
ldr r5, _08020984 @ =gBattlerAttacker
@@ -6258,7 +6258,7 @@ _0802096C:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _08020998 @ =gUnknown_825062C
+ ldr r1, _08020998 @ =sMoveEffectBS_Ptrs
ldr r0, _0802099C @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6271,7 +6271,7 @@ _08020988: .4byte gUnknown_2023E7E
_0802098C: .4byte gBattleMons
_08020990: .4byte 0x0000ffff
_08020994: .4byte gBattlescriptCurrInstr
-_08020998: .4byte gUnknown_825062C
+_08020998: .4byte sMoveEffectBS_Ptrs
_0802099C: .4byte gBattleCommunication
_080209A0:
mov r4, r9
@@ -6390,7 +6390,7 @@ _08020A3C:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _08020AE0 @ =gUnknown_825062C
+ ldr r1, _08020AE0 @ =sMoveEffectBS_Ptrs
ldr r2, _08020AE4 @ =gBattleCommunication
ldrb r0, [r2, 0x3]
lsls r0, 2
@@ -6430,7 +6430,7 @@ _08020AD0: .4byte gBattleStruct
_08020AD4: .4byte gCurrentMove
_08020AD8: .4byte gBattlerAttacker
_08020ADC: .4byte gBattlescriptCurrInstr
-_08020AE0: .4byte gUnknown_825062C
+_08020AE0: .4byte sMoveEffectBS_Ptrs
_08020AE4: .4byte gBattleCommunication
_08020AE8: .4byte gUnknown_83FE664
_08020AEC:
@@ -6452,7 +6452,7 @@ _08020B04:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _08020B28 @ =gUnknown_825062C
+ ldr r1, _08020B28 @ =sMoveEffectBS_Ptrs
ldr r0, _08020B2C @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6463,7 +6463,7 @@ _08020B04:
_08020B1C: .4byte gBattleMoveDamage
_08020B20: .4byte gUnknown_2023D54
_08020B24: .4byte gBattlescriptCurrInstr
-_08020B28: .4byte gUnknown_825062C
+_08020B28: .4byte sMoveEffectBS_Ptrs
_08020B2C: .4byte gBattleCommunication
_08020B30:
ldrb r1, [r6, 0x3]
@@ -6993,7 +6993,7 @@ _08020F8E:
ldr r0, [r4]
adds r0, 0x1
bl BattleScriptPush
- ldr r1, _08020FB4 @ =gUnknown_825062C
+ ldr r1, _08020FB4 @ =sMoveEffectBS_Ptrs
ldr r0, _08020FB8 @ =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -7004,7 +7004,7 @@ _08020F8E:
_08020FA8: .4byte gBattleMoveDamage
_08020FAC: .4byte gUnknown_2023D54
_08020FB0: .4byte gBattlescriptCurrInstr
-_08020FB4: .4byte gUnknown_825062C
+_08020FB4: .4byte sMoveEffectBS_Ptrs
_08020FB8: .4byte gBattleCommunication
_08020FBC:
mov r4, r9
@@ -7344,7 +7344,7 @@ _08021264:
adds r1, 0x50
_0802126E:
adds r2, r1
- ldr r1, _0802129C @ =gUnknown_825053C
+ ldr r1, _0802129C @ =sStatusFlagsForMoveEffects
ldrb r0, [r3, 0x3]
lsls r0, 2
adds r0, r1
@@ -7365,7 +7365,7 @@ _0802126E:
bx r0
.align 2, 0
_08021298: .4byte gBattleMons
-_0802129C: .4byte gUnknown_825053C
+_0802129C: .4byte sStatusFlagsForMoveEffects
_080212A0: .4byte gBattleCommunication
_080212A4: .4byte gBattlescriptCurrInstr
_080212A8: .4byte gBattleScripting
@@ -7723,8 +7723,8 @@ _08021592:
bx r0
thumb_func_end atk19_tryfaintmon
- thumb_func_start atk1A_faint_animation
-atk1A_faint_animation: @ 80215A0
+ thumb_func_start atk1A_dofaintanimation
+atk1A_dofaintanimation: @ 80215A0
push {r4,r5,lr}
ldr r0, _080215D0 @ =gBattleControllerExecFlags
ldr r0, [r0]
@@ -7751,10 +7751,10 @@ _080215CA:
_080215D0: .4byte gBattleControllerExecFlags
_080215D4: .4byte gBattlescriptCurrInstr
_080215D8: .4byte gActiveBattler
- thumb_func_end atk1A_faint_animation
+ thumb_func_end atk1A_dofaintanimation
- thumb_func_start atk1B_faint_effects_clear
-atk1B_faint_effects_clear: @ 80215DC
+ thumb_func_start atk1B_cleareffectsonfaint
+atk1B_cleareffectsonfaint: @ 80215DC
push {r4-r6,lr}
sub sp, 0x4
ldr r0, _08021630 @ =gBattleControllerExecFlags
@@ -7799,7 +7799,7 @@ _08021630: .4byte gBattleControllerExecFlags
_08021634: .4byte gBattlescriptCurrInstr
_08021638: .4byte gActiveBattler
_0802163C: .4byte gBattleMons
- thumb_func_end atk1B_faint_effects_clear
+ thumb_func_end atk1B_cleareffectsonfaint
thumb_func_start atk1C_jumpifstatus
atk1C_jumpifstatus: @ 8021640
@@ -8347,8 +8347,8 @@ _08021A60:
bx r0
thumb_func_end atk22_jumpiftype
- thumb_func_start sub_8021A68
-sub_8021A68: @ 8021A68
+ thumb_func_start atk23_getexp
+atk23_getexp: @ 8021A68
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -9476,10 +9476,10 @@ _080223E8: .4byte gBattleControllerExecFlags
_080223EC: .4byte gBattleMons
_080223F0: .4byte gBattlerFainted
_080223F4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8021A68
+ thumb_func_end atk23_getexp
- thumb_func_start sub_80223F8
-sub_80223F8: @ 80223F8
+ thumb_func_start atk24
+atk24: @ 80223F8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -9691,7 +9691,7 @@ _0802258A:
bx r0
.align 2, 0
_08022594: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80223F8
+ thumb_func_end atk24
thumb_func_start MoveValuesCleanUp
MoveValuesCleanUp: @ 8022598
@@ -10641,8 +10641,8 @@ _08022C40: .4byte gBattlescriptCurrInstr
_08022C44: .4byte gUnknown_2023E7C
thumb_func_end atk39_pause
- thumb_func_start sub_8022C48
-sub_8022C48: @ 8022C48
+ thumb_func_start atk3A_waitstate
+atk3A_waitstate: @ 8022C48
push {lr}
ldr r0, _08022C60 @ =gBattleControllerExecFlags
ldr r0, [r0]
@@ -10658,7 +10658,7 @@ _08022C5A:
.align 2, 0
_08022C60: .4byte gBattleControllerExecFlags
_08022C64: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8022C48
+ thumb_func_end atk3A_waitstate
thumb_func_start atk3B_healthbar_update
atk3B_healthbar_update: @ 8022C68
@@ -10905,8 +10905,8 @@ _08022E2C: .4byte gBattlerAttacker
_08022E30: .4byte gBattleStruct
thumb_func_end atk44_endselectionscript
- thumb_func_start sub_8022E34
-sub_8022E34: @ 8022E34
+ thumb_func_start atk45_playanimation
+atk45_playanimation: @ 8022E34
push {r4-r6,lr}
ldr r4, _08022E84 @ =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -10998,7 +10998,7 @@ _08022EEC:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8022E34
+ thumb_func_end atk45_playanimation
thumb_func_start atk46_playanimation2
atk46_playanimation2: @ 8022EF4
@@ -13042,8 +13042,8 @@ _08023F40: .4byte gBattleStruct
_08023F44: .4byte gBitTable
thumb_func_end atk4C_getswitchedmondata
- thumb_func_start sub_8023F48
-sub_8023F48: @ 8023F48
+ thumb_func_start atk4D_switchindataupdate
+atk4D_switchindataupdate: @ 8023F48
push {r4-r7,lr}
sub sp, 0x58
ldr r0, _080240A0 @ =gBattleControllerExecFlags
@@ -13231,10 +13231,10 @@ _080240C4: .4byte gBattleMoves
_080240C8: .4byte gCurrentMove
_080240CC: .4byte gBattleScripting
_080240D0: .4byte gBattleTextBuff1
- thumb_func_end sub_8023F48
+ thumb_func_end atk4D_switchindataupdate
- thumb_func_start sub_80240D4
-sub_80240D4: @ 80240D4
+ thumb_func_start atk4E_switchinanim
+atk4E_switchinanim: @ 80240D4
push {r4-r6,lr}
ldr r0, _08024168 @ =gBattleControllerExecFlags
ldr r0, [r0]
@@ -13314,10 +13314,10 @@ _0802417C: .4byte gBattleMons
_08024180: .4byte gAbsentBattlerFlags
_08024184: .4byte gBitTable
_08024188: .4byte gBattlerPartyIndexes
- thumb_func_end sub_80240D4
+ thumb_func_end atk4E_switchinanim
- thumb_func_start sub_802418C
-sub_802418C: @ 802418C
+ thumb_func_start atk4F_jumpifcantswitch
+atk4F_jumpifcantswitch: @ 802418C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -13573,7 +13573,7 @@ _08024388:
bx r0
.align 2, 0
_08024394: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802418C
+ thumb_func_end atk4F_jumpifcantswitch
thumb_func_start sub_8024398
sub_8024398: @ 8024398
@@ -13616,8 +13616,8 @@ _080243E4: .4byte gBattleStruct
_080243E8: .4byte gBattlerPartyIndexes
thumb_func_end sub_8024398
- thumb_func_start sub_80243EC
-sub_80243EC: @ 80243EC
+ thumb_func_start atk50_openpartyscreen
+atk50_openpartyscreen: @ 80243EC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -14618,10 +14618,10 @@ _08024C2E:
_08024C3C: .4byte gActiveBattler
_08024C40: .4byte gAbsentBattlerFlags
_08024C44: .4byte gBitTable
- thumb_func_end sub_80243EC
+ thumb_func_end atk50_openpartyscreen
- thumb_func_start sub_8024C48
-sub_8024C48: @ 8024C48
+ thumb_func_start atk51_switchhandleorder
+atk51_switchhandleorder: @ 8024C48
push {r4-r7,lr}
ldr r0, _08024C74 @ =gBattleControllerExecFlags
ldr r0, [r0]
@@ -14866,10 +14866,10 @@ _08024E28: .4byte gBattleTextBuff2
_08024E2C: .4byte gActiveBattler
_08024E30: .4byte gBattleBufferB
_08024E34: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024C48
+ thumb_func_end atk51_switchhandleorder
- thumb_func_start sub_8024E38
-sub_8024E38: @ 8024E38
+ thumb_func_start atk52_switchineffects
+atk52_switchineffects: @ 8024E38
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -15186,10 +15186,10 @@ _080250C6:
.align 2, 0
_080250D4: .4byte gBattlersCount
_080250D8: .4byte gAbsentBattlerFlags
- thumb_func_end sub_8024E38
+ thumb_func_end atk52_switchineffects
- thumb_func_start atk53_trainer_slide
-atk53_trainer_slide: @ 80250DC
+ thumb_func_start atk53_trainerslidein
+atk53_trainerslidein: @ 80250DC
push {lr}
ldr r0, _080250EC @ =gBattlescriptCurrInstr
ldr r0, [r0]
@@ -15220,7 +15220,7 @@ _080250F2:
.align 2, 0
_08025114: .4byte gActiveBattler
_08025118: .4byte gBattlescriptCurrInstr
- thumb_func_end atk53_trainer_slide
+ thumb_func_end atk53_trainerslidein
thumb_func_start atk54_playse
atk54_playse: @ 802511C
@@ -15251,8 +15251,8 @@ _08025150: .4byte gBattlerAttacker
_08025154: .4byte gBattlescriptCurrInstr
thumb_func_end atk54_playse
- thumb_func_start atk55_play_sound
-atk55_play_sound: @ 8025158
+ thumb_func_start atk55_fanfare
+atk55_fanfare: @ 8025158
push {r4,r5,lr}
ldr r5, _08025188 @ =gActiveBattler
ldr r0, _0802518C @ =gBattlerAttacker
@@ -15278,7 +15278,7 @@ atk55_play_sound: @ 8025158
_08025188: .4byte gActiveBattler
_0802518C: .4byte gBattlerAttacker
_08025190: .4byte gBattlescriptCurrInstr
- thumb_func_end atk55_play_sound
+ thumb_func_end atk55_fanfare
thumb_func_start atk56_playfaintcry
atk56_playfaintcry: @ 8025194
@@ -15516,8 +15516,8 @@ _08025374: .4byte gBattleTypeFlags
_08025378: .4byte gBattlescriptCurrInstr
thumb_func_end atk59_handlelearnnewmove
- thumb_func_start sub_802537C
-sub_802537C: @ 802537C
+ thumb_func_start atk5A_yesnoboxlearnmove
+atk5A_yesnoboxlearnmove: @ 802537C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -15556,7 +15556,7 @@ _080253C4:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r0, _080253F0 @ =gUnknown_83FE791
movs r1, 0xE
bl BattlePutTextOnWindow
@@ -15566,7 +15566,7 @@ _080253C4:
strb r0, [r1, 0x1F]
ldr r0, _080253F8 @ =gBattleCommunication
strb r4, [r0, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
b _080256D0
.align 2, 0
_080253F0: .4byte gUnknown_83FE791
@@ -15585,10 +15585,10 @@ _080253FC:
beq _08025422
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_08025422:
ldr r0, _08025484 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -15602,10 +15602,10 @@ _08025422:
bne _08025448
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0x1
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_08025448:
ldr r0, _08025484 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -15625,7 +15625,7 @@ _08025448:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
movs r0, 0x1
negs r0, r0
str r4, [sp]
@@ -15888,7 +15888,7 @@ _080256A4:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r1, _080256C0 @ =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x5
@@ -15912,10 +15912,10 @@ _080256D0:
bx r0
.align 2, 0
_080256DC: .4byte gBattleControllerExecFlags
- thumb_func_end sub_802537C
+ thumb_func_end atk5A_yesnoboxlearnmove
- thumb_func_start sub_80256E0
-sub_80256E0: @ 80256E0
+ thumb_func_start atk5B_yesnoboxstoplearningmove
+atk5B_yesnoboxstoplearningmove: @ 80256E0
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _080256F4 @ =gBattleScripting
@@ -15933,7 +15933,7 @@ _080256F8:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r0, _08025720 @ =gUnknown_83FE791
movs r1, 0xE
bl BattlePutTextOnWindow
@@ -15942,7 +15942,7 @@ _080256F8:
strb r0, [r5, 0x1F]
ldr r0, _08025724 @ =gBattleCommunication
strb r4, [r0, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
b _0802580E
.align 2, 0
_08025720: .4byte gUnknown_83FE791
@@ -15960,10 +15960,10 @@ _08025728:
beq _0802574E
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_0802574E:
ldr r0, _080257AC @ =gMain
ldrh r1, [r0, 0x2E]
@@ -15977,10 +15977,10 @@ _0802574E:
bne _08025774
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0x1
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_08025774:
ldr r0, _080257AC @ =gMain
ldrh r1, [r0, 0x2E]
@@ -16025,7 +16025,7 @@ _080257C0:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
b _0802580E
.align 2, 0
_080257D4: .4byte gBattlescriptCurrInstr
@@ -16054,7 +16054,7 @@ _080257D8:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
_0802580E:
add sp, 0x4
pop {r4,r5}
@@ -16062,10 +16062,10 @@ _0802580E:
bx r0
.align 2, 0
_08025818: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80256E0
+ thumb_func_end atk5B_yesnoboxstoplearningmove
- thumb_func_start sub_802581C
-sub_802581C: @ 802581C
+ thumb_func_start atk5C_hitanimation
+atk5C_hitanimation: @ 802581C
push {r4,lr}
ldr r4, _08025888 @ =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -16132,10 +16132,10 @@ _080258A6:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_802581C
+ thumb_func_end atk5C_hitanimation
- thumb_func_start sub_80258AC
-sub_80258AC: @ 80258AC
+ thumb_func_start atk5D_getmoneyreward
+atk5D_getmoneyreward: @ 80258AC
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -16364,7 +16364,7 @@ _08025A62:
bx r0
.align 2, 0
_08025A6C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80258AC
+ thumb_func_end atk5D_getmoneyreward
thumb_func_start atk5E
atk5E: @ 8025A70
@@ -16456,8 +16456,8 @@ _08025B1C: .4byte gUnknown_20233C8
_08025B20: .4byte gUnknown_2023C08
thumb_func_end atk5E
- thumb_func_start atk5F
-atk5F: @ 8025B24
+ thumb_func_start atk5F_swapattackerwithtarget
+atk5F_swapattackerwithtarget: @ 8025B24
push {lr}
ldr r0, _08025B4C @ =gActiveBattler
ldr r2, _08025B50 @ =gBattlerAttacker
@@ -16496,7 +16496,7 @@ _08025B62:
bx r0
.align 2, 0
_08025B70: .4byte gBattlescriptCurrInstr
- thumb_func_end atk5F
+ thumb_func_end atk5F_swapattackerwithtarget
thumb_func_start atk60_incrementgamestat
atk60_incrementgamestat: @ 8025B74
@@ -16619,8 +16619,8 @@ _08025C64: .4byte gActiveBattler
_08025C68: .4byte gBattlescriptCurrInstr
thumb_func_end atk61_drawpartystatussummary
- thumb_func_start atk62
-atk62: @ 8025C6C
+ thumb_func_start atk62_hidepartystatussummary
+atk62_hidepartystatussummary: @ 8025C6C
push {r4,r5,lr}
ldr r5, _08025C94 @ =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -16641,10 +16641,10 @@ atk62: @ 8025C6C
.align 2, 0
_08025C94: .4byte gBattlescriptCurrInstr
_08025C98: .4byte gActiveBattler
- thumb_func_end atk62
+ thumb_func_end atk62_hidepartystatussummary
- thumb_func_start atk63_jumptorandomattack
-atk63_jumptorandomattack: @ 8025C9C
+ thumb_func_start atk63_jumptocalledmove
+atk63_jumptocalledmove: @ 8025C9C
push {r4,lr}
ldr r0, _08025CB4 @ =gBattlescriptCurrInstr
ldr r1, [r0]
@@ -16691,7 +16691,7 @@ _08025CF0: .4byte gCurrentMove
_08025CF4: .4byte gCalledMove
_08025CF8: .4byte gUnknown_81D65A8
_08025CFC: .4byte gBattleMoves
- thumb_func_end atk63_jumptorandomattack
+ thumb_func_end atk63_jumptocalledmove
thumb_func_start atk64_statusanimation
atk64_statusanimation: @ 8025D00
@@ -16929,7 +16929,7 @@ _08025EE4:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r0, _08025F08 @ =gUnknown_83FE791
movs r1, 0xE
bl BattlePutTextOnWindow
@@ -16937,7 +16937,7 @@ _08025EE4:
adds r0, 0x1
strb r0, [r5]
strb r4, [r5, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
b _08025F9A
.align 2, 0
_08025F08: .4byte gUnknown_83FE791
@@ -16953,10 +16953,10 @@ _08025F0C:
beq _08025F30
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0
strb r0, [r5, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_08025F30:
ldr r0, _08025F6C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -16970,10 +16970,10 @@ _08025F30:
bne _08025F56
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0x1
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_08025F56:
ldr r0, _08025F6C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -17002,7 +17002,7 @@ _08025F7E:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r1, _08025FA4 @ =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
@@ -17415,7 +17415,7 @@ _080262B0:
movs r1, 0x7
movs r2, 0x1D
movs r3, 0x13
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r1, _08026300 @ =gBattleScripting
movs r0, 0x4
strb r0, [r1, 0x1E]
@@ -17425,7 +17425,7 @@ _080262F8: .4byte gBattle_BG1_X
_080262FC: .4byte gBattle_BG1_Y
_08026300: .4byte gBattleScripting
_08026304:
- bl sub_8026404
+ bl DrawLevelUpWindow1
movs r0, 0xC
bl PutWindowTilemap
movs r0, 0xC
@@ -17450,7 +17450,7 @@ _08026330:
beq _080263F6
movs r0, 0x5
bl PlaySE
- bl sub_8026448
+ bl DrawLevelUpWindow2
movs r0, 0xC
movs r1, 0x2
bl CopyWindowToVram
@@ -17470,7 +17470,7 @@ _08026350:
movs r1, 0x7
movs r2, 0x1D
movs r3, 0x13
- bl sub_802DB7C
+ bl HandleBattleWindow
_0802636E:
ldr r1, _0802637C @ =gBattleScripting
ldrb r0, [r1, 0x1E]
@@ -17537,8 +17537,8 @@ _080263F6:
_08026400: .4byte gBattlescriptCurrInstr
thumb_func_end atk6C_drawlvlupbox
- thumb_func_start sub_8026404
-sub_8026404: @ 8026404
+ thumb_func_start DrawLevelUpWindow1
+DrawLevelUpWindow1: @ 8026404
push {lr}
sub sp, 0x14
ldr r0, _0802643C @ =gBattleStruct
@@ -17568,10 +17568,10 @@ sub_8026404: @ 8026404
_0802643C: .4byte gBattleStruct
_08026440: .4byte gPlayerParty
_08026444: .4byte gBattleResources
- thumb_func_end sub_8026404
+ thumb_func_end DrawLevelUpWindow1
- thumb_func_start sub_8026448
-sub_8026448: @ 8026448
+ thumb_func_start DrawLevelUpWindow2
+DrawLevelUpWindow2: @ 8026448
push {lr}
sub sp, 0x10
ldr r0, _08026478 @ =gBattleStruct
@@ -17596,7 +17596,7 @@ sub_8026448: @ 8026448
.align 2, 0
_08026478: .4byte gBattleStruct
_0802647C: .4byte gPlayerParty
- thumb_func_end sub_8026448
+ thumb_func_end DrawLevelUpWindow2
thumb_func_start sub_8026480
sub_8026480: @ 8026480
@@ -17915,7 +17915,7 @@ PutMonIconOnLvlUpBox: @ 8026688
bl LoadSpriteSheet
adds r0, r4, 0
bl LoadSpritePalette
- ldr r0, _08026748 @ =gUnknown_82507C8
+ ldr r0, _08026748 @ =sSpriteTemplate_MonIconOnLvlUpBox
movs r1, 0x80
lsls r1, 1
movs r2, 0xA
@@ -17946,7 +17946,7 @@ _08026738: .4byte 0xffff0000
_0802673C: .4byte 0x0000ffff
_08026740: .4byte 0xd75a0000
_08026744: .4byte 0x0000d75a
-_08026748: .4byte gUnknown_82507C8
+_08026748: .4byte sSpriteTemplate_MonIconOnLvlUpBox
_0802674C: .4byte gSprites
_08026750: .4byte gBattle_BG2_X
thumb_func_end PutMonIconOnLvlUpBox
@@ -18397,8 +18397,8 @@ _08026AA8: .4byte gLastUsedItem
_08026AAC: .4byte gBattlescriptCurrInstr
thumb_func_end atk75_useitemonopponent
- thumb_func_start sub_8026AB0
-sub_8026AB0: @ 8026AB0
+ thumb_func_start atk76_various
+atk76_various: @ 8026AB0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -18973,7 +18973,7 @@ _08026F56:
bx r0
.align 2, 0
_08026F64: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026AB0
+ thumb_func_end atk76_various
thumb_func_start atk77_setprotectlike
atk77_setprotectlike: @ 8026F68
@@ -19011,7 +19011,7 @@ _08026F98:
bne _08026FA8
movs r6, 0
_08026FA8:
- ldr r2, _08027048 @ =gUnknown_82507E0
+ ldr r2, _08027048 @ =sProtectSuccessRates
mov r5, r8
ldrb r1, [r5]
lsls r0, r1, 3
@@ -19087,7 +19087,7 @@ _08027038: .4byte gBattlerAttacker
_0802703C: .4byte gDisableStructs
_08027040: .4byte gUnknown_2023BE2
_08027044: .4byte gBattlersCount
-_08027048: .4byte gUnknown_82507E0
+_08027048: .4byte sProtectSuccessRates
_0802704C: .4byte gBattleMoves
_08027050: .4byte gCurrentMove
_08027054: .4byte gProtectStructs
@@ -21485,8 +21485,8 @@ _08028304: .4byte gBattlescriptCurrInstr
_08028308: .4byte gUnknown_81D8C10
thumb_func_end TryDoForceSwitchOut
- thumb_func_start sub_802830C
-sub_802830C: @ 802830C
+ thumb_func_start atk8F_forcerandomswitch
+atk8F_forcerandomswitch: @ 802830C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -21846,7 +21846,7 @@ _080285F8:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_802830C
+ thumb_func_end atk8F_forcerandomswitch
thumb_func_start atk90_tryconversiontypechange
atk90_tryconversiontypechange: @ 8028604
@@ -22718,8 +22718,8 @@ _08028CE8: .4byte gWishFutureKnock
_08028CEC: .4byte gBattlescriptCurrInstr
thumb_func_end atk95_setsandstorm
- thumb_func_start sub_8028CF0
-sub_8028CF0: @ 8028CF0
+ thumb_func_start atk96_weatherdamage
+atk96_weatherdamage: @ 8028CF0
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _08028DBC @ =gBattleTypeFlags
@@ -22923,10 +22923,10 @@ _08028E80: .4byte gBattlerAttacker
_08028E84: .4byte gAbsentBattlerFlags
_08028E88: .4byte gBitTable
_08028E8C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028CF0
+ thumb_func_end atk96_weatherdamage
- thumb_func_start sub_8028E90
-sub_8028E90: @ 8028E90
+ thumb_func_start atk97_tryinfatuating
+atk97_tryinfatuating: @ 8028E90
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -23126,10 +23126,10 @@ _0802902C:
_0802903C: .4byte gBitTable
_08029040: .4byte gBattlerAttacker
_08029044: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028E90
+ thumb_func_end atk97_tryinfatuating
- thumb_func_start sub_8029048
-sub_8029048: @ 8029048
+ thumb_func_start atk98_updatestatusicon
+atk98_updatestatusicon: @ 8029048
push {r4-r7,lr}
ldr r0, _080290B8 @ =gBattleControllerExecFlags
ldr r1, [r0]
@@ -23307,7 +23307,7 @@ _080291C0:
.align 2, 0
_080291C8: .4byte gActiveBattler
_080291CC: .4byte gBattleMons
- thumb_func_end sub_8029048
+ thumb_func_end atk98_updatestatusicon
thumb_func_start atk99_setmist
atk99_setmist: @ 80291D0
@@ -23738,7 +23738,7 @@ IsMoveUncopyableByMimic: @ 8029530
lsls r0, 16
lsrs r2, r0, 16
movs r3, 0
- ldr r0, _08029570 @ =gUnknown_82507E8
+ ldr r0, _08029570 @ =sMovesForbiddenToCopy
ldrh r1, [r0]
ldr r4, _08029574 @ =0x0000fffe
adds r5, r0, 0
@@ -23768,7 +23768,7 @@ _08029558:
pop {r1}
bx r1
.align 2, 0
-_08029570: .4byte gUnknown_82507E8
+_08029570: .4byte sMovesForbiddenToCopy
_08029574: .4byte 0x0000fffe
thumb_func_end IsMoveUncopyableByMimic
@@ -24013,7 +24013,7 @@ atk9E_metronome: @ 8029754
ldr r7, _080297D4 @ =gCurrentMove
movs r6, 0xB1
lsls r6, 1
- ldr r5, _080297D8 @ =gUnknown_82507E8
+ ldr r5, _080297D8 @ =sMovesForbiddenToCopy
ldr r0, _080297DC @ =gBattlescriptCurrInstr
mov r8, r0
_08029766:
@@ -24075,7 +24075,7 @@ _08029794:
bx r0
.align 2, 0
_080297D4: .4byte gCurrentMove
-_080297D8: .4byte gUnknown_82507E8
+_080297D8: .4byte sMovesForbiddenToCopy
_080297DC: .4byte gBattlescriptCurrInstr
_080297E0: .4byte 0x000001ff
_080297E4: .4byte 0x0000ffff
@@ -25703,7 +25703,7 @@ atkAC_remaininghptopower: @ 802A470
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
- ldr r0, _0802A4CC @ =gUnknown_8250810
+ ldr r0, _0802A4CC @ =sFlailHpScaleToPowerTable
ldrb r2, [r0]
cmp r1, r2
ble _0802A4AA
@@ -25718,7 +25718,7 @@ _0802A49C:
bgt _0802A49C
_0802A4AA:
ldr r2, _0802A4D0 @ =gDynamicBasePower
- ldr r1, _0802A4CC @ =gUnknown_8250810
+ ldr r1, _0802A4CC @ =sFlailHpScaleToPowerTable
adds r0, r3, 0x1
adds r0, r1
ldrb r0, [r0]
@@ -25732,7 +25732,7 @@ _0802A4AA:
.align 2, 0
_0802A4C4: .4byte gBattleMons
_0802A4C8: .4byte gBattlerAttacker
-_0802A4CC: .4byte gUnknown_8250810
+_0802A4CC: .4byte sFlailHpScaleToPowerTable
_0802A4D0: .4byte gDynamicBasePower
_0802A4D4: .4byte gBattlescriptCurrInstr
thumb_func_end atkAC_remaininghptopower
@@ -27948,8 +27948,8 @@ _0802B66A:
_0802B674: .4byte gBattlescriptCurrInstr
thumb_func_end atkC0_recoverbasedonsunlight
- thumb_func_start sub_802B678
-sub_802B678: @ 802B678
+ thumb_func_start atkC1_hiddenpowercalc
+atkC1_hiddenpowercalc: @ 802B678
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -28071,7 +28071,7 @@ _0802B764: .4byte gBattlerAttacker
_0802B768: .4byte gDynamicBasePower
_0802B76C: .4byte gBattleStruct
_0802B770: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B678
+ thumb_func_end atkC1_hiddenpowercalc
thumb_func_start atkC2_selectfirstvalidtarget
atkC2_selectfirstvalidtarget: @ 802B774
@@ -28921,7 +28921,7 @@ atkCC_callterrainattack: @ 802BE18
ands r0, r1
str r0, [r2]
ldr r4, _0802BE70 @ =gCurrentMove
- ldr r1, _0802BE74 @ =gUnknown_825081C
+ ldr r1, _0802BE74 @ =sNaturePowerMoves
ldr r0, _0802BE78 @ =gUnknown_2022B50
ldrb r0, [r0]
lsls r0, 1
@@ -28956,7 +28956,7 @@ atkCC_callterrainattack: @ 802BE18
_0802BE68: .4byte gHitMarker
_0802BE6C: .4byte 0xfffffbff
_0802BE70: .4byte gCurrentMove
-_0802BE74: .4byte gUnknown_825081C
+_0802BE74: .4byte sNaturePowerMoves
_0802BE78: .4byte gUnknown_2022B50
_0802BE7C: .4byte gBattlerTarget
_0802BE80: .4byte gUnknown_81D65A8
@@ -29269,8 +29269,8 @@ _0802C0D6:
_0802C0DC: .4byte gBattlescriptCurrInstr
thumb_func_end atkD1_trysethelpinghand
- thumb_func_start sub_802C0E0
-sub_802C0E0: @ 802C0E0
+ thumb_func_start atkD2_tryswapitems
+atkD2_tryswapitems: @ 802C0E0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -29597,7 +29597,7 @@ _0802C37A:
bx r0
.align 2, 0
_0802C38C: .4byte gBattleCommunication
- thumb_func_end sub_802C0E0
+ thumb_func_end atkD2_tryswapitems
thumb_func_start atkD3_trycopyability
atkD3_trycopyability: @ 802C390
@@ -30108,8 +30108,8 @@ _0802C762:
_0802C768: .4byte gBattlescriptCurrInstr
thumb_func_end atkDA_tryswapabilities
- thumb_func_start atkDB_tryimprision
-atkDB_tryimprision: @ 802C76C
+ thumb_func_start atkDB_tryimprison
+atkDB_tryimprison: @ 802C76C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -30246,7 +30246,7 @@ _0802C864: .4byte gBattlerAttacker
_0802C868: .4byte gBattleMons
_0802C86C: .4byte gBattlersCount
_0802C870: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDB_tryimprision
+ thumb_func_end atkDB_tryimprison
thumb_func_start atkDC_trysetgrudge
atkDC_trysetgrudge: @ 802C874
@@ -30301,7 +30301,7 @@ atkDD_weightdamagecalculation: @ 802C8CC
mov r7, r8
push {r7}
movs r5, 0
- ldr r2, _0802C930 @ =gUnknown_8250830
+ ldr r2, _0802C930 @ =sWeightToDamageTable
ldrh r0, [r2]
ldr r1, _0802C934 @ =0x0000ffff
cmp r0, r1
@@ -30348,7 +30348,7 @@ _0802C916:
strh r1, [r0]
b _0802C94A
.align 2, 0
-_0802C930: .4byte gUnknown_8250830
+_0802C930: .4byte sWeightToDamageTable
_0802C934: .4byte 0x0000ffff
_0802C938: .4byte gBattleMons
_0802C93C: .4byte gBattlerTarget
@@ -30372,8 +30372,8 @@ _0802C95C: .4byte gDynamicBasePower
_0802C960: .4byte gBattlescriptCurrInstr
thumb_func_end atkDD_weightdamagecalculation
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802C964
+ thumb_func_start atkDE_assistattackselect
+atkDE_assistattackselect: @ 802C964
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -30450,7 +30450,7 @@ _0802C9E0:
adds r1, r5, 0x1
cmp r0, 0
bne _0802CA36
- ldr r0, _0802CA9C @ =gUnknown_82507E8
+ ldr r0, _0802CA9C @ =sMovesForbiddenToCopy
ldrh r2, [r0]
adds r3, r0, 0
cmp r2, r8
@@ -30525,7 +30525,7 @@ _0802CA8C: .4byte gPlayerParty
_0802CA90: .4byte gEnemyParty
_0802CA94: .4byte gBattlerPartyIndexes
_0802CA98: .4byte 0x0000ffff
-_0802CA9C: .4byte gUnknown_82507E8
+_0802CA9C: .4byte sMovesForbiddenToCopy
_0802CAA0: .4byte gHitMarker
_0802CAA4: .4byte 0xfffffbff
_0802CAA8: .4byte gCalledMove
@@ -30556,7 +30556,7 @@ _0802CACE:
bx r0
.align 2, 0
_0802CAE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDE_asistattackselect
+ thumb_func_end atkDE_assistattackselect
thumb_func_start atkDF_trysetmagiccoat
atkDF_trysetmagiccoat: @ 802CAE4
@@ -30986,8 +30986,8 @@ _0802CE40: .4byte gBattleCommunication
_0802CE44: .4byte gBattlescriptCurrInstr
thumb_func_end atkE4_getsecretpowereffect
- thumb_func_start sub_802CE48
-sub_802CE48: @ 802CE48
+ thumb_func_start atkE5_pickup
+atkE5_pickup: @ 802CE48
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -31058,10 +31058,10 @@ _0802CEA2:
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
- ldr r1, _0802CEE4 @ =gUnknown_8250848
+ ldr r1, _0802CEE4 @ =sPickupItems
b _0802CEF0
.align 2, 0
-_0802CEE4: .4byte gUnknown_8250848
+_0802CEE4: .4byte sPickupItems
_0802CEE8:
adds r1, 0x4
adds r2, 0x1
@@ -31077,7 +31077,7 @@ _0802CEF6:
ldr r1, _0802CF24 @ =gPlayerParty
adds r0, r1
lsls r2, 2
- ldr r1, _0802CF28 @ =gUnknown_8250848
+ ldr r1, _0802CF28 @ =sPickupItems
adds r2, r1
movs r1, 0xC
bl SetMonData
@@ -31096,9 +31096,9 @@ _0802CF0A:
bx r0
.align 2, 0
_0802CF24: .4byte gPlayerParty
-_0802CF28: .4byte gUnknown_8250848
+_0802CF28: .4byte sPickupItems
_0802CF2C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802CE48
+ thumb_func_end atkE5_pickup
thumb_func_start atkE6_docastformchangeanimation
atkE6_docastformchangeanimation: @ 802CF30
@@ -31468,7 +31468,7 @@ atkEB_settypetoterrain: @ 802D1F0
movs r0, 0x21
adds r0, r3
mov r12, r0
- ldr r5, _0802D268 @ =gUnknown_8250888
+ ldr r5, _0802D268 @ =sTerrainToType
ldr r4, _0802D26C @ =gUnknown_2022B50
ldrb r0, [r4]
adds r0, r5
@@ -31513,7 +31513,7 @@ atkEB_settypetoterrain: @ 802D1F0
.align 2, 0
_0802D260: .4byte gBattleMons
_0802D264: .4byte gBattlerAttacker
-_0802D268: .4byte gUnknown_8250888
+_0802D268: .4byte sTerrainToType
_0802D26C: .4byte gUnknown_2022B50
_0802D270: .4byte gBattleTextBuff1
_0802D274: .4byte gBattlescriptCurrInstr
@@ -31633,8 +31633,8 @@ _0802D35A:
_0802D360: .4byte gBattlescriptCurrInstr
thumb_func_end atkEC_pursuitrelated
- thumb_func_start atkEF_snatchsetbanks
-atkEF_snatchsetbanks: @ 802D364
+ thumb_func_start atkED_snatchsetbattlers
+atkED_snatchsetbattlers: @ 802D364
push {r4,lr}
ldr r1, _0802D388 @ =gEffectBattler
ldr r3, _0802D38C @ =gBattlerAttacker
@@ -31674,7 +31674,7 @@ _0802D39E:
.align 2, 0
_0802D3B0: .4byte gBattleScripting
_0802D3B4: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEF_snatchsetbanks
+ thumb_func_end atkED_snatchsetbattlers
thumb_func_start atkEE_removelightscreenreflect
atkEE_removelightscreenreflect: @ 802D3B8
@@ -31738,8 +31738,8 @@ _0802D42C: .4byte gBattleScripting
_0802D430: .4byte gBattlescriptCurrInstr
thumb_func_end atkEE_removelightscreenreflect
- thumb_func_start sub_802D434
-sub_802D434: @ 802D434
+ thumb_func_start atkEF_handleballthrow
+atkEF_handleballthrow: @ 802D434
push {r4-r6,lr}
movs r4, 0
ldr r0, _0802D474 @ =gBattleControllerExecFlags
@@ -31969,7 +31969,7 @@ _0802D608:
.align 2, 0
_0802D61C: .4byte gBattleResults
_0802D620:
- ldr r1, _0802D694 @ =gUnknown_8250892
+ ldr r1, _0802D694 @ =sBallCatchBonuses
ldrh r0, [r2]
subs r0, 0x2
adds r0, r1
@@ -32027,7 +32027,7 @@ _0802D67A:
strb r1, [r0, 0x5]
b _0802D6BC
.align 2, 0
-_0802D694: .4byte gUnknown_8250892
+_0802D694: .4byte sBallCatchBonuses
_0802D698: .4byte gBattleMons
_0802D69C: .4byte gBattlerTarget
_0802D6A0: .4byte gLastUsedItem
@@ -32186,10 +32186,10 @@ _0802D7EE:
_0802D7F4: .4byte gBattleCommunication
_0802D7F8: .4byte gBattlescriptCurrInstr
_0802D7FC: .4byte gUnknown_81D9A93
- thumb_func_end sub_802D434
+ thumb_func_end atkEF_handleballthrow
- thumb_func_start sub_802D800
-sub_802D800: @ 802D800
+ thumb_func_start atkF0_givecaughtmon
+atkF0_givecaughtmon: @ 802D800
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -32334,10 +32334,10 @@ _0802D94C: .4byte gBattlerAttacker
_0802D950: .4byte gBattlerPartyIndexes
_0802D954: .4byte gEnemyParty
_0802D958: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802D800
+ thumb_func_end atkF0_givecaughtmon
- thumb_func_start sub_802D95C
-sub_802D95C: @ 802D95C
+ thumb_func_start atkF1_trysetcaughtmondexflags
+atkF1_trysetcaughtmondexflags: @ 802D95C
push {r4,r5,lr}
ldr r4, _0802D9AC @ =gEnemyParty
adds r0, r4, 0
@@ -32395,10 +32395,10 @@ _0802D9CE:
bx r0
.align 2, 0
_0802D9D4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802D95C
+ thumb_func_end atkF1_trysetcaughtmondexflags
- thumb_func_start sub_802D9D8
-sub_802D9D8: @ 802D9D8
+ thumb_func_start atkF2_displaydexinfo
+atkF2_displaydexinfo: @ 802D9D8
push {r4,r5,lr}
sub sp, 0x18
ldr r0, _0802DA00 @ =gEnemyParty
@@ -32585,10 +32585,10 @@ _0802DB6C:
.align 2, 0
_0802DB74: .4byte gPaletteFade
_0802DB78: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802D9D8
+ thumb_func_end atkF2_displaydexinfo
- thumb_func_start sub_802DB7C
-sub_802DB7C: @ 802DB7C
+ thumb_func_start HandleBattleWindow
+HandleBattleWindow: @ 802DB7C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -32754,10 +32754,10 @@ _0802DCA2:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_802DB7C
+ thumb_func_end HandleBattleWindow
- thumb_func_start sub_802DCB8
-sub_802DCB8: @ 802DCB8
+ thumb_func_start BattleCreateYesNoCursorAt
+BattleCreateYesNoCursorAt: @ 802DCB8
push {lr}
sub sp, 0x10
add r0, sp, 0xC
@@ -32787,10 +32787,10 @@ sub_802DCB8: @ 802DCB8
bx r0
.align 2, 0
_0802DCF4: .4byte gBattleCommunication
- thumb_func_end sub_802DCB8
+ thumb_func_end BattleCreateYesNoCursorAt
- thumb_func_start sub_802DCF8
-sub_802DCF8: @ 802DCF8
+ thumb_func_start BattleDestroyYesNoCursorAt
+BattleDestroyYesNoCursorAt: @ 802DCF8
push {lr}
sub sp, 0x10
add r0, sp, 0xC
@@ -32821,10 +32821,10 @@ sub_802DCF8: @ 802DCF8
bx r0
.align 2, 0
_0802DD34: .4byte gBattleCommunication
- thumb_func_end sub_802DCF8
+ thumb_func_end BattleDestroyYesNoCursorAt
- thumb_func_start sub_802DD38
-sub_802DD38: @ 802DD38
+ thumb_func_start atkF3_trygivecaughtmonnick
+atkF3_trygivecaughtmonnick: @ 802DD38
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -32860,7 +32860,7 @@ _0802DD78:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r0, _0802DDA0 @ =gUnknown_83FE791
movs r1, 0xE
bl BattlePutTextOnWindow
@@ -32869,7 +32869,7 @@ _0802DD78:
adds r0, 0x1
strb r0, [r1]
strb r4, [r1, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
b _0802DFA6
.align 2, 0
_0802DDA0: .4byte gUnknown_83FE791
@@ -32886,10 +32886,10 @@ _0802DDA8:
beq _0802DDCC
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_0802DDCC:
ldr r0, _0802DE1C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -32903,10 +32903,10 @@ _0802DDCC:
bne _0802DDF2
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0x1
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_0802DDF2:
ldr r0, _0802DE1C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -33118,7 +33118,7 @@ _0802DFA6:
bx r0
.align 2, 0
_0802DFB8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802DD38
+ thumb_func_end atkF3_trygivecaughtmonnick
thumb_func_start atkF4_subattackerhpbydmg
atkF4_subattackerhpbydmg: @ 802DFBC
@@ -33167,18 +33167,18 @@ _0802E00C: .4byte gBattlerAttacker
_0802E010: .4byte gBattlescriptCurrInstr
thumb_func_end atkF5_removeattackerstatus1
- thumb_func_start sub_802E014
-sub_802E014: @ 802E014
+ thumb_func_start atkF6_finishaction
+atkF6_finishaction: @ 802E014
ldr r1, _0802E01C @ =gCurrentActionFuncId
movs r0, 0xC
strb r0, [r1]
bx lr
.align 2, 0
_0802E01C: .4byte gCurrentActionFuncId
- thumb_func_end sub_802E014
+ thumb_func_end atkF6_finishaction
- thumb_func_start sub_802E020
-sub_802E020: @ 802E020
+ thumb_func_start atkF7_finishturn
+atkF7_finishturn: @ 802E020
ldr r1, _0802E030 @ =gCurrentActionFuncId
movs r0, 0xC
strb r0, [r1]
@@ -33191,6 +33191,6 @@ sub_802E020: @ 802E020
_0802E030: .4byte gCurrentActionFuncId
_0802E034: .4byte gUnknown_2023BE2
_0802E038: .4byte gBattlersCount
- thumb_func_end sub_802E020
+ thumb_func_end atkF7_finishturn
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 06d8a0d64..e86c6d073 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -2286,7 +2286,7 @@ _080CF176:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
ldr r0, _080CF1B4 @ =gUnknown_83FE791
movs r1, 0xE
bl BattlePutTextOnWindow
@@ -2301,7 +2301,7 @@ _080CF176:
strh r0, [r1, 0x14]
ldr r0, _080CF1B8 @ =gBattleCommunication
strb r2, [r0, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
b _080CF528
.align 2, 0
_080CF1A8: .4byte gUnknown_83FDF3C
@@ -2322,10 +2322,10 @@ _080CF1BC:
beq _080CF1E2
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_080CF1E2:
ldr r0, _080CF244 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2339,10 +2339,10 @@ _080CF1E2:
bne _080CF208
movs r0, 0x5
bl PlaySE
- bl sub_802DCF8
+ bl BattleDestroyYesNoCursorAt
movs r0, 0x1
strb r0, [r4, 0x1]
- bl sub_802DCB8
+ bl BattleCreateYesNoCursorAt
_080CF208:
ldr r0, _080CF244 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2356,7 +2356,7 @@ _080CF208:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
movs r0, 0x5
bl PlaySE
ldr r0, _080CF248 @ =gBattleCommunication
@@ -2409,7 +2409,7 @@ _080CF284:
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
- bl sub_802DB7C
+ bl HandleBattleWindow
movs r0, 0x5
bl PlaySE
ldr r1, _080CF2AC @ =gTasks
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc
index 5dd1d5a1a..223f191c5 100644
--- a/asm/macros/battle_script.inc
+++ b/asm/macros/battle_script.inc
@@ -538,7 +538,7 @@
.byte \bank_or_side
.endm
- .macro atk62 bank_or_side
+ .macro atk62_hidepartystatussummary bank_or_side
.byte 0x62
.byte \bank_or_side
.endm
diff --git a/berry_fix/payload/asm/macros/battle_script.inc b/berry_fix/payload/asm/macros/battle_script.inc
index 5dd1d5a1a..223f191c5 100644
--- a/berry_fix/payload/asm/macros/battle_script.inc
+++ b/berry_fix/payload/asm/macros/battle_script.inc
@@ -538,7 +538,7 @@
.byte \bank_or_side
.endm
- .macro atk62 bank_or_side
+ .macro atk62_hidepartystatussummary bank_or_side
.byte 0x62
.byte \bank_or_side
.endm
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 317a4991f..e084bade7 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -313,10 +313,43 @@ gUnknown_81D9192:: @ 81D9192
.incbin "baserom.gba", 0x1D9192, 0xF
gUnknown_81D91A1:: @ 81D91A1
- .incbin "baserom.gba", 0x1D91A1, 0x26
+ .incbin "baserom.gba", 0x1D91A1, 0x18
+
+BattleScript_MoveEffectSleep:: @ 81D91B9
+ .incbin "baserom.gba", 0x1D91B9, 0xE
BattleScript_YawnMakesAsleep:: @ 81D91C7
- .incbin "baserom.gba", 0x1D91C7, 0xAA
+ .incbin "baserom.gba", 0x1D91C7, 0xE
+
+BattleScript_MoveEffectPoison:: @ 81D91D5
+ .incbin "baserom.gba", 0x1D91D5, 0xF
+
+BattleScript_MoveEffectBurn:: @ 81D91E4
+ .incbin "baserom.gba", 0x1D91E4, 0xF
+
+BattleScript_MoveEffectFreeze:: @ 81D91F3
+ .incbin "baserom.gba", 0x1D91F3, 0xF
+
+BattleScript_MoveEffectParalysis:: @ 81D9202
+ .incbin "baserom.gba", 0x1D9202, 0xF
+
+BattleScript_MoveEffectUproar:: @ 81D9211
+ .incbin "baserom.gba", 0x1D9211, 0x7
+
+BattleScript_MoveEffectToxic:: @ 81D9218
+ .incbin "baserom.gba", 0x1D9218, 0xD
+
+BattleScript_MoveEffectPayDay:: @ 81D9225
+ .incbin "baserom.gba", 0x1D9225, 0x7
+
+BattleScript_MoveEffectWrap:: @ 81D922C
+ .incbin "baserom.gba", 0x1D922C, 0x9
+
+BattleScript_MoveEffectConfusion:: @ 81D9235
+ .incbin "baserom.gba", 0x1D9235, 0xE
+
+BattleScript_MoveEffectRecoil:: @ 81D9243
+ .incbin "baserom.gba", 0x1D9243, 0x2E
gUnknown_81D9271:: @ 81D9271
.incbin "baserom.gba", 0x1D9271, 0xE
diff --git a/data/data.s b/data/data.s
index 3ca955d94..b150bfb4e 100644
--- a/data/data.s
+++ b/data/data.s
@@ -278,57 +278,6 @@ gStatusConditionString_LoveJpn:: @ 82500C4
gUnknown_82500CC:: @ 82500CC
.incbin "baserom.gba", 0x2500CC, 0x38
- .section .rodata.825011C
-
- .balign 4
-gBattleScriptingCommandsTable:: @ 825011C
- .incbin "baserom.gba", 0x25011C, 0x3E0
-
-gUnknown_82504FC:: @ 82504FC
- .incbin "baserom.gba", 0x2504FC, 0x34
-
-gUnknown_8250530:: @ 8250530
- .incbin "baserom.gba", 0x250530, 0xC
-
-gUnknown_825053C:: @ 825053C
- .incbin "baserom.gba", 0x25053C, 0xF0
-
-gUnknown_825062C:: @ 825062C
- .incbin "baserom.gba", 0x25062C, 0xA4
-
-gUnknown_82506D0:: @ 82506D0
- .incbin "baserom.gba", 0x2506D0, 0x20
-
-gUnknown_82506F0:: @ 82506F0
- .incbin "baserom.gba", 0x2506F0, 0xD8
-
-gUnknown_82507C8:: @ 82507C8
- .incbin "baserom.gba", 0x2507C8, 0x18
-
-gUnknown_82507E0:: @ 82507E0
- .incbin "baserom.gba", 0x2507E0, 0x8
-
-gUnknown_82507E8:: @ 82507E8
- .incbin "baserom.gba", 0x2507E8, 0x28
-
-gUnknown_8250810:: @ 8250810
- .incbin "baserom.gba", 0x250810, 0xC
-
-gUnknown_825081C:: @ 825081C
- .incbin "baserom.gba", 0x25081C, 0x14
-
-gUnknown_8250830:: @ 8250830
- .incbin "baserom.gba", 0x250830, 0x18
-
-gUnknown_8250848:: @ 8250848
- .incbin "baserom.gba", 0x250848, 0x40
-
-gUnknown_8250888:: @ 8250888
- .incbin "baserom.gba", 0x250888, 0xA
-
-gUnknown_8250892:: @ 8250892
- .incbin "baserom.gba", 0x250892, 0xA
-
.section .rodata.825098C
gUnknown_825098C:: @ 825098C
diff --git a/graphics/battle_interface/unk_battlebox.pal b/graphics/battle_interface/unk_battlebox.pal
new file mode 100644
index 000000000..862165f3f
--- /dev/null
+++ b/graphics/battle_interface/unk_battlebox.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+255 255 255
+255 255 255
+106 90 115
+0 0 0
+213 230 255
+189 205 238
+238 238 255
+106 172 197
+90 139 180
+123 197 205
+0 0 0
+0 0 0
+123 197 255
+0 0 139
+255 131 131
+164 0 0
diff --git a/graphics/battle_interface/unk_battlebox.png b/graphics/battle_interface/unk_battlebox.png
new file mode 100644
index 000000000..9f136c3af
--- /dev/null
+++ b/graphics/battle_interface/unk_battlebox.png
Binary files differ
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 6ff287872..c75a029c2 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -54,7 +54,7 @@
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index c592ba6b8..adbbd7e0c 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -222,5 +222,6 @@ extern const u8 BattleScript_IntimidateActivates[];
extern const u8 BattleScript_IntimidateActivatesEnd3[];
extern const u8 BattleScript_IgnoresWhileAsleep[];
extern const u8 BattleScript_IgnoresAndHitsItself[];
+extern const u8 BattleScript_MoveEffectRecoil[];
#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/ld_script.txt b/ld_script.txt
index 6175679d6..e5e3dda15 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -68,6 +68,7 @@ SECTIONS {
asm/battle_1.o(.text);
asm/battle_2.o(.text);
src/battle_util.o(.text);
+ src/battle_script_commands.o(.text);
asm/battle_script_commands.o(.text);
src/battle_util2.o(.text);
src/battle_controller_player.o(.text);
@@ -381,7 +382,7 @@ SECTIONS {
src/string_util.o(.rodata);
data/data.o(.rodata);
src/battle_util.o(.rodata);
- data/data.o(.rodata.825011C);
+ src/battle_script_commands.o(.rodata);
src/battle_controller_player.o(.rodata);
data/data.o(.rodata.825098C);
src/battle_controller_opponent.o(.rodata);
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
new file mode 100644
index 000000000..8f2345beb
--- /dev/null
+++ b/src/battle_script_commands.c
@@ -0,0 +1,877 @@
+#include "global.h"
+#include "item.h"
+#include "util.h"
+#include "pokemon.h"
+#include "random.h"
+#include "data.h"
+#include "text.h"
+#include "sound.h"
+#include "pokedex.h"
+#include "window.h"
+#include "main.h"
+#include "palette.h"
+#include "money.h"
+#include "bg.h"
+#include "string_util.h"
+#include "pokemon_icon.h"
+#include "m4a.h"
+#include "mail.h"
+#include "event_data.h"
+#include "pokemon_storage_system.h"
+#include "task.h"
+#include "naming_screen.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "field_specials.h"
+#include "battle.h"
+#include "battle_message.h"
+#include "battle_anim.h"
+#include "battle_setup.h"
+#include "battle_ai_script_commands.h"
+#include "battle_scripts.h"
+#include "reshow_battle_screen.h"
+#include "battle_controllers.h"
+#include "battle_interface.h"
+#include "constants/battle_anim.h"
+#include "constants/battle_move_effects.h"
+#include "constants/battle_script_commands.h"
+#include "constants/items.h"
+#include "constants/hold_effects.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/abilities.h"
+
+#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
+
+struct StatFractions
+{
+ u8 dividend;
+ u8 divisor;
+};
+
+extern const u8 *const gBattleScriptsForMoveEffects[];
+
+bool8 IsTwoTurnsMove(u16 move);
+void TrySetDestinyBondToHappen(void);
+u8 AttacksThisTurn(u8 battlerId, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2.
+void CheckWonderGuardAndLevitate(void);
+u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr);
+bool32 IsMonGettingExpSentOut(void);
+void sub_8026480(void);
+bool8 sub_80264D0(void);
+void DrawLevelUpWindow1(void);
+void DrawLevelUpWindow2(void);
+bool8 sub_8026648(void);
+void PutMonIconOnLvlUpBox(void);
+void PutLevelAndGenderOnLvlUpBox(void);
+
+void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite);
+
+void atk00_attackcanceler(void);
+void atk01_accuracycheck(void);
+void atk02_attackstring(void);
+void atk03_ppreduce(void);
+void atk04_critcalc(void);
+void atk05_damagecalc(void);
+void atk06_typecalc(void);
+void atk07_adjustnormaldamage(void);
+void atk08_adjustnormaldamage2(void);
+void atk09_attackanimation(void);
+void atk0A_waitanimation(void);
+void atk0B_healthbarupdate(void);
+void atk0C_datahpupdate(void);
+void atk0D_critmessage(void);
+void atk0E_effectivenesssound(void);
+void atk0F_resultmessage(void);
+void atk10_printstring(void);
+void atk11_printselectionstring(void);
+void atk12_waitmessage(void);
+void atk13_printfromtable(void);
+void atk14_printselectionstringfromtable(void);
+void atk15_seteffectwithchance(void);
+void atk16_seteffectprimary(void);
+void atk17_seteffectsecondary(void);
+void atk18_clearstatusfromeffect(void);
+void atk19_tryfaintmon(void);
+void atk1A_dofaintanimation(void);
+void atk1B_cleareffectsonfaint(void);
+void atk1C_jumpifstatus(void);
+void atk1D_jumpifstatus2(void);
+void atk1E_jumpifability(void);
+void atk1F_jumpifsideaffecting(void);
+void atk20_jumpifstat(void);
+void atk21_jumpifstatus3condition(void);
+void atk22_jumpiftype(void);
+void atk23_getexp(void);
+void atk24(void);
+void atk25_movevaluescleanup(void);
+void atk26_setmultihit(void);
+void atk27_decrementmultihit(void);
+void atk28_goto(void);
+void atk29_jumpifbyte(void);
+void atk2A_jumpifhalfword(void);
+void atk2B_jumpifword(void);
+void atk2C_jumpifarrayequal(void);
+void atk2D_jumpifarraynotequal(void);
+void atk2E_setbyte(void);
+void atk2F_addbyte(void);
+void atk30_subbyte(void);
+void atk31_copyarray(void);
+void atk32_copyarraywithindex(void);
+void atk33_orbyte(void);
+void atk34_orhalfword(void);
+void atk35_orword(void);
+void atk36_bicbyte(void);
+void atk37_bichalfword(void);
+void atk38_bicword(void);
+void atk39_pause(void);
+void atk3A_waitstate(void);
+void atk3B_healthbar_update(void);
+void atk3C_return(void);
+void atk3D_end(void);
+void atk3E_end2(void);
+void atk3F_end3(void);
+void atk40_jumpifaffectedbyprotect(void);
+void atk41_call(void);
+void atk42_jumpiftype2(void);
+void atk43_jumpifabilitypresent(void);
+void atk44_endselectionscript(void);
+void atk45_playanimation(void);
+void atk46_playanimation2(void);
+void atk47_setgraphicalstatchangevalues(void);
+void atk48_playstatchangeanimation(void);
+void atk49_moveend(void);
+void atk4A_typecalc2(void);
+void atk4B_returnatktoball(void);
+void atk4C_getswitchedmondata(void);
+void atk4D_switchindataupdate(void);
+void atk4E_switchinanim(void);
+void atk4F_jumpifcantswitch(void);
+void atk50_openpartyscreen(void);
+void atk51_switchhandleorder(void);
+void atk52_switchineffects(void);
+void atk53_trainerslidein(void);
+void atk54_playse(void);
+void atk55_fanfare(void);
+void atk56_playfaintcry(void);
+void atk57(void);
+void atk58_returntoball(void);
+void atk59_handlelearnnewmove(void);
+void atk5A_yesnoboxlearnmove(void);
+void atk5B_yesnoboxstoplearningmove(void);
+void atk5C_hitanimation(void);
+void atk5D_getmoneyreward(void);
+void atk5E(void);
+void atk5F_swapattackerwithtarget(void);
+void atk60_incrementgamestat(void);
+void atk61_drawpartystatussummary(void);
+void atk62_hidepartystatussummary(void);
+void atk63_jumptocalledmove(void);
+void atk64_statusanimation(void);
+void atk65_status2animation(void);
+void atk66_chosenstatusanimation(void);
+void atk67_yesnobox(void);
+void atk68_cancelallactions(void);
+void atk69_adjustsetdamage(void);
+void atk6A_removeitem(void);
+void atk6B_atknameinbuff1(void);
+void atk6C_drawlvlupbox(void);
+void atk6D_resetsentmonsvalue(void);
+void atk6E_setatktoplayer0(void);
+void atk6F_makevisible(void);
+void atk70_recordlastability(void);
+void atk71_buffermovetolearn(void);
+void atk72_jumpifplayerran(void);
+void atk73_hpthresholds(void);
+void atk74_hpthresholds2(void);
+void atk75_useitemonopponent(void);
+void atk76_various(void);
+void atk77_setprotectlike(void);
+void atk78_faintifabilitynotdamp(void);
+void atk79_setatkhptozero(void);
+void atk7A_jumpifnexttargetvalid(void);
+void atk7B_tryhealhalfhealth(void);
+void atk7C_trymirrormove(void);
+void atk7D_setrain(void);
+void atk7E_setreflect(void);
+void atk7F_setseeded(void);
+void atk80_manipulatedamage(void);
+void atk81_trysetrest(void);
+void atk82_jumpifnotfirstturn(void);
+void atk83_nop(void);
+void atk84_jumpifcantmakeasleep(void);
+void atk85_stockpile(void);
+void atk86_stockpiletobasedamage(void);
+void atk87_stockpiletohpheal(void);
+void atk88_negativedamage(void);
+void atk89_statbuffchange(void);
+void atk8A_normalisebuffs(void);
+void atk8B_setbide(void);
+void atk8C_confuseifrepeatingattackends(void);
+void atk8D_setmultihitcounter(void);
+void atk8E_initmultihitstring(void);
+void atk8F_forcerandomswitch(void);
+void atk90_tryconversiontypechange(void);
+void atk91_givepaydaymoney(void);
+void atk92_setlightscreen(void);
+void atk93_tryKO(void);
+void atk94_damagetohalftargethp(void);
+void atk95_setsandstorm(void);
+void atk96_weatherdamage(void);
+void atk97_tryinfatuating(void);
+void atk98_updatestatusicon(void);
+void atk99_setmist(void);
+void atk9A_setfocusenergy(void);
+void atk9B_transformdataexecution(void);
+void atk9C_setsubstitute(void);
+void atk9D_mimicattackcopy(void);
+void atk9E_metronome(void);
+void atk9F_dmgtolevel(void);
+void atkA0_psywavedamageeffect(void);
+void atkA1_counterdamagecalculator(void);
+void atkA2_mirrorcoatdamagecalculator(void);
+void atkA3_disablelastusedattack(void);
+void atkA4_trysetencore(void);
+void atkA5_painsplitdmgcalc(void);
+void atkA6_settypetorandomresistance(void);
+void atkA7_setalwayshitflag(void);
+void atkA8_copymovepermanently(void);
+void atkA9_trychoosesleeptalkmove(void);
+void atkAA_setdestinybond(void);
+void atkAB_trysetdestinybondtohappen(void);
+void atkAC_remaininghptopower(void);
+void atkAD_tryspiteppreduce(void);
+void atkAE_healpartystatus(void);
+void atkAF_cursetarget(void);
+void atkB0_trysetspikes(void);
+void atkB1_setforesight(void);
+void atkB2_trysetperishsong(void);
+void atkB3_rolloutdamagecalculation(void);
+void atkB4_jumpifconfusedandstatmaxed(void);
+void atkB5_furycuttercalc(void);
+void atkB6_happinesstodamagecalculation(void);
+void atkB7_presentdamagecalculation(void);
+void atkB8_setsafeguard(void);
+void atkB9_magnitudedamagecalculation(void);
+void atkBA_jumpifnopursuitswitchdmg(void);
+void atkBB_setsunny(void);
+void atkBC_maxattackhalvehp(void);
+void atkBD_copyfoestats(void);
+void atkBE_rapidspinfree(void);
+void atkBF_setdefensecurlbit(void);
+void atkC0_recoverbasedonsunlight(void);
+void atkC1_hiddenpowercalc(void);
+void atkC2_selectfirstvalidtarget(void);
+void atkC3_trysetfutureattack(void);
+void atkC4_trydobeatup(void);
+void atkC5_setsemiinvulnerablebit(void);
+void atkC6_clearsemiinvulnerablebit(void);
+void atkC7_setminimize(void);
+void atkC8_sethail(void);
+void atkC9_jumpifattackandspecialattackcannotfall(void);
+void atkCA_setforcedtarget(void);
+void atkCB_setcharge(void);
+void atkCC_callterrainattack(void);
+void atkCD_cureifburnedparalysedorpoisoned(void);
+void atkCE_settorment(void);
+void atkCF_jumpifnodamage(void);
+void atkD0_settaunt(void);
+void atkD1_trysethelpinghand(void);
+void atkD2_tryswapitems(void);
+void atkD3_trycopyability(void);
+void atkD4_trywish(void);
+void atkD5_trysetroots(void);
+void atkD6_doubledamagedealtifdamaged(void);
+void atkD7_setyawn(void);
+void atkD8_setdamagetohealthdifference(void);
+void atkD9_scaledamagebyhealthratio(void);
+void atkDA_tryswapabilities(void);
+void atkDB_tryimprison(void);
+void atkDC_trysetgrudge(void);
+void atkDD_weightdamagecalculation(void);
+void atkDE_assistattackselect(void);
+void atkDF_trysetmagiccoat(void);
+void atkE0_trysetsnatch(void);
+void atkE1_trygetintimidatetarget(void);
+void atkE2_switchoutabilities(void);
+void atkE3_jumpifhasnohp(void);
+void atkE4_getsecretpowereffect(void);
+void atkE5_pickup(void);
+void atkE6_docastformchangeanimation(void);
+void atkE7_trycastformdatachange(void);
+void atkE8_settypebasedhalvers(void);
+void atkE9_setweatherballtype(void);
+void atkEA_tryrecycleitem(void);
+void atkEB_settypetoterrain(void);
+void atkEC_pursuitrelated(void);
+void atkED_snatchsetbattlers(void);
+void atkEE_removelightscreenreflect(void);
+void atkEF_handleballthrow(void);
+void atkF0_givecaughtmon(void);
+void atkF1_trysetcaughtmondexflags(void);
+void atkF2_displaydexinfo(void);
+void atkF3_trygivecaughtmonnick(void);
+void atkF4_subattackerhpbydmg(void);
+void atkF5_removeattackerstatus1(void);
+void atkF6_finishaction(void);
+void atkF7_finishturn(void);
+void atkF8_trainerslideout(void);
+
+void (* const gBattleScriptingCommandsTable[])(void) =
+{
+ atk00_attackcanceler,
+ atk01_accuracycheck,
+ atk02_attackstring,
+ atk03_ppreduce,
+ atk04_critcalc,
+ atk05_damagecalc,
+ atk06_typecalc,
+ atk07_adjustnormaldamage,
+ atk08_adjustnormaldamage2,
+ atk09_attackanimation,
+ atk0A_waitanimation,
+ atk0B_healthbarupdate,
+ atk0C_datahpupdate,
+ atk0D_critmessage,
+ atk0E_effectivenesssound,
+ atk0F_resultmessage,
+ atk10_printstring,
+ atk11_printselectionstring,
+ atk12_waitmessage,
+ atk13_printfromtable,
+ atk14_printselectionstringfromtable,
+ atk15_seteffectwithchance,
+ atk16_seteffectprimary,
+ atk17_seteffectsecondary,
+ atk18_clearstatusfromeffect,
+ atk19_tryfaintmon,
+ atk1A_dofaintanimation,
+ atk1B_cleareffectsonfaint,
+ atk1C_jumpifstatus,
+ atk1D_jumpifstatus2,
+ atk1E_jumpifability,
+ atk1F_jumpifsideaffecting,
+ atk20_jumpifstat,
+ atk21_jumpifstatus3condition,
+ atk22_jumpiftype,
+ atk23_getexp,
+ atk24,
+ atk25_movevaluescleanup,
+ atk26_setmultihit,
+ atk27_decrementmultihit,
+ atk28_goto,
+ atk29_jumpifbyte,
+ atk2A_jumpifhalfword,
+ atk2B_jumpifword,
+ atk2C_jumpifarrayequal,
+ atk2D_jumpifarraynotequal,
+ atk2E_setbyte,
+ atk2F_addbyte,
+ atk30_subbyte,
+ atk31_copyarray,
+ atk32_copyarraywithindex,
+ atk33_orbyte,
+ atk34_orhalfword,
+ atk35_orword,
+ atk36_bicbyte,
+ atk37_bichalfword,
+ atk38_bicword,
+ atk39_pause,
+ atk3A_waitstate,
+ atk3B_healthbar_update,
+ atk3C_return,
+ atk3D_end,
+ atk3E_end2,
+ atk3F_end3,
+ atk40_jumpifaffectedbyprotect,
+ atk41_call,
+ atk42_jumpiftype2,
+ atk43_jumpifabilitypresent,
+ atk44_endselectionscript,
+ atk45_playanimation,
+ atk46_playanimation2,
+ atk47_setgraphicalstatchangevalues,
+ atk48_playstatchangeanimation,
+ atk49_moveend,
+ atk4A_typecalc2,
+ atk4B_returnatktoball,
+ atk4C_getswitchedmondata,
+ atk4D_switchindataupdate,
+ atk4E_switchinanim,
+ atk4F_jumpifcantswitch,
+ atk50_openpartyscreen,
+ atk51_switchhandleorder,
+ atk52_switchineffects,
+ atk53_trainerslidein,
+ atk54_playse,
+ atk55_fanfare,
+ atk56_playfaintcry,
+ atk57,
+ atk58_returntoball,
+ atk59_handlelearnnewmove,
+ atk5A_yesnoboxlearnmove,
+ atk5B_yesnoboxstoplearningmove,
+ atk5C_hitanimation,
+ atk5D_getmoneyreward,
+ atk5E,
+ atk5F_swapattackerwithtarget,
+ atk60_incrementgamestat,
+ atk61_drawpartystatussummary,
+ atk62_hidepartystatussummary,
+ atk63_jumptocalledmove,
+ atk64_statusanimation,
+ atk65_status2animation,
+ atk66_chosenstatusanimation,
+ atk67_yesnobox,
+ atk68_cancelallactions,
+ atk69_adjustsetdamage,
+ atk6A_removeitem,
+ atk6B_atknameinbuff1,
+ atk6C_drawlvlupbox,
+ atk6D_resetsentmonsvalue,
+ atk6E_setatktoplayer0,
+ atk6F_makevisible,
+ atk70_recordlastability,
+ atk71_buffermovetolearn,
+ atk72_jumpifplayerran,
+ atk73_hpthresholds,
+ atk74_hpthresholds2,
+ atk75_useitemonopponent,
+ atk76_various,
+ atk77_setprotectlike,
+ atk78_faintifabilitynotdamp,
+ atk79_setatkhptozero,
+ atk7A_jumpifnexttargetvalid,
+ atk7B_tryhealhalfhealth,
+ atk7C_trymirrormove,
+ atk7D_setrain,
+ atk7E_setreflect,
+ atk7F_setseeded,
+ atk80_manipulatedamage,
+ atk81_trysetrest,
+ atk82_jumpifnotfirstturn,
+ atk83_nop,
+ atk84_jumpifcantmakeasleep,
+ atk85_stockpile,
+ atk86_stockpiletobasedamage,
+ atk87_stockpiletohpheal,
+ atk88_negativedamage,
+ atk89_statbuffchange,
+ atk8A_normalisebuffs,
+ atk8B_setbide,
+ atk8C_confuseifrepeatingattackends,
+ atk8D_setmultihitcounter,
+ atk8E_initmultihitstring,
+ atk8F_forcerandomswitch,
+ atk90_tryconversiontypechange,
+ atk91_givepaydaymoney,
+ atk92_setlightscreen,
+ atk93_tryKO,
+ atk94_damagetohalftargethp,
+ atk95_setsandstorm,
+ atk96_weatherdamage,
+ atk97_tryinfatuating,
+ atk98_updatestatusicon,
+ atk99_setmist,
+ atk9A_setfocusenergy,
+ atk9B_transformdataexecution,
+ atk9C_setsubstitute,
+ atk9D_mimicattackcopy,
+ atk9E_metronome,
+ atk9F_dmgtolevel,
+ atkA0_psywavedamageeffect,
+ atkA1_counterdamagecalculator,
+ atkA2_mirrorcoatdamagecalculator,
+ atkA3_disablelastusedattack,
+ atkA4_trysetencore,
+ atkA5_painsplitdmgcalc,
+ atkA6_settypetorandomresistance,
+ atkA7_setalwayshitflag,
+ atkA8_copymovepermanently,
+ atkA9_trychoosesleeptalkmove,
+ atkAA_setdestinybond,
+ atkAB_trysetdestinybondtohappen,
+ atkAC_remaininghptopower,
+ atkAD_tryspiteppreduce,
+ atkAE_healpartystatus,
+ atkAF_cursetarget,
+ atkB0_trysetspikes,
+ atkB1_setforesight,
+ atkB2_trysetperishsong,
+ atkB3_rolloutdamagecalculation,
+ atkB4_jumpifconfusedandstatmaxed,
+ atkB5_furycuttercalc,
+ atkB6_happinesstodamagecalculation,
+ atkB7_presentdamagecalculation,
+ atkB8_setsafeguard,
+ atkB9_magnitudedamagecalculation,
+ atkBA_jumpifnopursuitswitchdmg,
+ atkBB_setsunny,
+ atkBC_maxattackhalvehp,
+ atkBD_copyfoestats,
+ atkBE_rapidspinfree,
+ atkBF_setdefensecurlbit,
+ atkC0_recoverbasedonsunlight,
+ atkC1_hiddenpowercalc,
+ atkC2_selectfirstvalidtarget,
+ atkC3_trysetfutureattack,
+ atkC4_trydobeatup,
+ atkC5_setsemiinvulnerablebit,
+ atkC6_clearsemiinvulnerablebit,
+ atkC7_setminimize,
+ atkC8_sethail,
+ atkC9_jumpifattackandspecialattackcannotfall,
+ atkCA_setforcedtarget,
+ atkCB_setcharge,
+ atkCC_callterrainattack,
+ atkCD_cureifburnedparalysedorpoisoned,
+ atkCE_settorment,
+ atkCF_jumpifnodamage,
+ atkD0_settaunt,
+ atkD1_trysethelpinghand,
+ atkD2_tryswapitems,
+ atkD3_trycopyability,
+ atkD4_trywish,
+ atkD5_trysetroots,
+ atkD6_doubledamagedealtifdamaged,
+ atkD7_setyawn,
+ atkD8_setdamagetohealthdifference,
+ atkD9_scaledamagebyhealthratio,
+ atkDA_tryswapabilities,
+ atkDB_tryimprison,
+ atkDC_trysetgrudge,
+ atkDD_weightdamagecalculation,
+ atkDE_assistattackselect,
+ atkDF_trysetmagiccoat,
+ atkE0_trysetsnatch,
+ atkE1_trygetintimidatetarget,
+ atkE2_switchoutabilities,
+ atkE3_jumpifhasnohp,
+ atkE4_getsecretpowereffect,
+ atkE5_pickup,
+ atkE6_docastformchangeanimation,
+ atkE7_trycastformdatachange,
+ atkE8_settypebasedhalvers,
+ atkE9_setweatherballtype,
+ atkEA_tryrecycleitem,
+ atkEB_settypetoterrain,
+ atkEC_pursuitrelated,
+ atkED_snatchsetbattlers,
+ atkEE_removelightscreenreflect,
+ atkEF_handleballthrow,
+ atkF0_givecaughtmon,
+ atkF1_trysetcaughtmondexflags,
+ atkF2_displaydexinfo,
+ atkF3_trygivecaughtmonnick,
+ atkF4_subattackerhpbydmg,
+ atkF5_removeattackerstatus1,
+ atkF6_finishaction,
+ atkF7_finishturn,
+};
+
+const struct StatFractions sAccuracyStageRatios[] =
+{
+ { 33, 100 }, // -6
+ { 36, 100 }, // -5
+ { 43, 100 }, // -4
+ { 50, 100 }, // -3
+ { 60, 100 }, // -2
+ { 75, 100 }, // -1
+ { 1, 1 }, // 0
+ { 133, 100 }, // +1
+ { 166, 100 }, // +2
+ { 2, 1 }, // +3
+ { 233, 100 }, // +4
+ { 133, 50 }, // +5
+ { 3, 1 }, // +6
+};
+
+// The chance is 1/N for each stage.
+const u16 sCriticalHitChance[] = { 16, 8, 4, 3, 2 };
+
+const u32 sStatusFlagsForMoveEffects[] =
+{
+ 0x00000000,
+ STATUS1_SLEEP,
+ STATUS1_POISON,
+ STATUS1_BURN,
+ STATUS1_FREEZE,
+ STATUS1_PARALYSIS,
+ STATUS1_TOXIC_POISON,
+ STATUS2_CONFUSION,
+ STATUS2_FLINCHED,
+ 0x00000000,
+ STATUS2_UPROAR,
+ 0x00000000,
+ STATUS2_MULTIPLETURNS,
+ STATUS2_WRAPPED,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ STATUS2_RECHARGE,
+ 0x00000000,
+ 0x00000000,
+ STATUS2_ESCAPE_PREVENTION,
+ STATUS2_NIGHTMARE,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ STATUS2_LOCK_CONFUSE,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000
+};
+
+const u8 *const sMoveEffectBS_Ptrs[] =
+{
+ [0] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison,
+ [MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn,
+ [MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze,
+ [MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis,
+ [MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic,
+ [MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion,
+ [MOVE_EFFECT_FLINCH] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_TRI_ATTACK] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar,
+ [MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay,
+ [MOVE_EFFECT_CHARGING] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap,
+ [MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil,
+ [MOVE_EFFECT_ATK_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_DEF_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SPD_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SP_ATK_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SP_DEF_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_ACC_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_EVS_PLUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_ATK_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_DEF_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SPD_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SP_ATK_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_SP_DEF_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_ACC_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_EVS_MINUS_1] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_RECHARGE] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_RAGE] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_STEAL_ITEM] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_PREVENT_ESCAPE] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_NIGHTMARE] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_ALL_STATS_UP] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_RAPIDSPIN] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_REMOVE_PARALYSIS] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_ATK_DEF_DOWN] = BattleScript_MoveEffectSleep,
+ [MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil,
+};
+
+// not used
+static const struct WindowTemplate sUnusedWinTemplate =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 15,
+ .paletteNum = 31,
+ .baseBlock = 0x3F,
+};
+
+const u16 gUnknown_82506D0[] = INCBIN_U16("graphics/battle_interface/unk_battlebox.gbapal");
+const u32 gUnknown_82506F0[] = INCBIN_U32("graphics/battle_interface/unk_battlebox.4bpp.lz");
+
+// not used
+const u8 sRubyLevelUpStatBoxStats[] =
+{
+ MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK,
+ MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPEED
+};
+
+const struct OamData sOamData_MonIconOnLvlUpBox =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x32),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+#define MON_ICON_LVLUP_BOX_TAG 0xD75A
+
+const struct SpriteTemplate sSpriteTemplate_MonIconOnLvlUpBox =
+{
+ .tileTag = MON_ICON_LVLUP_BOX_TAG,
+ .paletteTag = MON_ICON_LVLUP_BOX_TAG,
+ .oam = &sOamData_MonIconOnLvlUpBox,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_MonIconOnLvlUpBox
+};
+
+const u16 sProtectSuccessRates[] =
+{
+ USHRT_MAX,
+ USHRT_MAX / 2,
+ USHRT_MAX / 4,
+ USHRT_MAX / 8
+};
+
+#define MIMIC_FORBIDDEN_END 0xFFFE
+#define METRONOME_FORBIDDEN_END 0xFFFF
+#define ASSIST_FORBIDDEN_END 0xFFFF
+
+const u16 sMovesForbiddenToCopy[] =
+{
+ MOVE_METRONOME,
+ MOVE_STRUGGLE,
+ MOVE_SKETCH,
+ MOVE_MIMIC,
+ MIMIC_FORBIDDEN_END,
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_PROTECT,
+ MOVE_DETECT,
+ MOVE_ENDURE,
+ MOVE_DESTINY_BOND,
+ MOVE_SLEEP_TALK,
+ MOVE_THIEF,
+ MOVE_FOLLOW_ME,
+ MOVE_SNATCH,
+ MOVE_HELPING_HAND,
+ MOVE_COVET,
+ MOVE_TRICK,
+ MOVE_FOCUS_PUNCH,
+ METRONOME_FORBIDDEN_END
+};
+
+const u8 sFlailHpScaleToPowerTable[] =
+{
+ 1, 200,
+ 4, 150,
+ 9, 100,
+ 16, 80,
+ 32, 40,
+ 48, 20
+};
+
+const u16 sNaturePowerMoves[] =
+{
+ MOVE_STUN_SPORE,
+ MOVE_RAZOR_LEAF,
+ MOVE_EARTHQUAKE,
+ MOVE_HYDRO_PUMP,
+ MOVE_SURF,
+ MOVE_BUBBLE_BEAM,
+ MOVE_ROCK_SLIDE,
+ MOVE_SHADOW_BALL,
+ MOVE_SWIFT,
+ MOVE_SWIFT
+};
+
+const u16 sWeightToDamageTable[] =
+{
+ 100, 20,
+ 250, 40,
+ 500, 60,
+ 1000, 80,
+ 2000, 100,
+ 0xFFFF, 0xFFFF
+};
+
+const u16 sPickupItems[] =
+{
+ ITEM_ORAN_BERRY,
+ ITEM_BURN_HEAL,
+ ITEM_CHERI_BERRY,
+ ITEM_MAX_REVIVE,
+ ITEM_CHESTO_BERRY,
+ ITEM_MAX_ETHER,
+ ITEM_PECHA_BERRY,
+ ITEM_SACRED_ASH,
+ ITEM_RAWST_BERRY,
+ ITEM_037,
+ ITEM_ASPEAR_BERRY,
+ ITEM_IRON,
+ ITEM_PERSIM_BERRY,
+ ITEM_X_ATTACK,
+ ITEM_TM10,
+ ITEM_POKE_DOLL,
+ ITEM_PP_UP,
+ ITEM_ESCAPE_ROPE,
+ ITEM_RARE_CANDY,
+ ITEM_05A,
+ ITEM_NUGGET,
+ ITEM_FIRE_STONE,
+ ITEM_SPELON_BERRY,
+ ITEM_THUNDER_STONE,
+ ITEM_PAMTRE_BERRY,
+ ITEM_WATER_STONE,
+ ITEM_WATMEL_BERRY,
+ ITEM_LEAF_STONE,
+ ITEM_DURIN_BERRY,
+ ITEM_063,
+ ITEM_BELUE_BERRY,
+ ITEM_MASTER_BALL
+};
+
+const u8 sTerrainToType[] =
+{
+ TYPE_GRASS, // tall grass
+ TYPE_GRASS, // long grass
+ TYPE_GROUND, // sand
+ TYPE_WATER, // underwater
+ TYPE_WATER, // water
+ TYPE_WATER, // pond water
+ TYPE_ROCK, // rock
+ TYPE_ROCK, // cave
+ TYPE_NORMAL, // building
+ TYPE_NORMAL, // plain
+};
+
+const u8 sBallCatchBonuses[] =
+{
+ 20, 15, 10, 15 // Ultra, Great, Poke, Safari
+};
+
+const u32 gUnknown_8250898 = 0xFF7EAE60;